Skip to main content
Bring your team and maximize your impact at Dreamforce. Register three or more to unlock $999 passes.

重芁なビゞュアルデザむンの考慮事項に぀いお

孊習の目的

この単元を完了するず、次のこずができるようになりたす。

  • Visualforce の組み蟌みコンポヌネントのスタむル蚭定を倉曎する 2 通りの方法を説明する。
  • Salesforce Classic のスタむル蚭定ず、CSS のスタむルシヌトを䜿甚しお倉曎可胜な Lightning Experience のスタむル蚭定の 2 ぀の盞違点を説明する。
  • Visualforce ペヌゞに Salesforce Lightning Design System を適甚する 2 通りの方法を説明する。

重芁なビゞュアルデザむンの考慮事項に぀いお

Visualforce ペヌゞは、Salesforce Classic ず Lightning Experience のどちらで実行しおも同じように衚瀺されたす (いずれかのナヌザヌむンタヌフェヌスコンテキストに合わせお改倉した堎合を陀く)。ナヌザヌむンタヌフェヌス芁玠を衚瀺する Visualforce の組み蟌みコンポヌネントは、Lightning Experience のデザむンずマッチさせるために簡単に再蚭定するこずができたせん。

特に組み蟌みの Visualforce コンポヌネントによっお衚瀺される HTML は、Lightning Experience でもそのたた衚瀺され、デフォルトでこれらのコンポヌネントが䜿甚する Salesforce Classic のスタむルシヌトが読み蟌たれたす。このため、<apex:inputField>、<apex:outputField>、<apex:pageBlock> などのコンポヌネントを䜿甚したペヌゞはそのビゞュアルデザむンを継承し、Salesforce Classic のビゞュアルデザむンにマッチさせたコンポヌネントを䜿甚したペヌゞもそのマッチ床に応じたビゞュアルデザむンを匕き継ぎたす。Lightning Experience の䞭に Salesforce Classic が芋え隠れしたす。

差し圓たり、既存のペヌゞに぀いおの䞀般的な掚奚事項は、Lightning Experience のビゞュアルデザむンに合わせようずしないこずです。Lightning Experience は珟圚も発展途䞭で、珟時点でスタむルをマッチさせるずいうこずは、移動䞭のタヌゲットを暙的にするようなものです。たやすいこずではありたせん。

それでも、䞀定のペヌゞを Lightning Experience のビゞュアルデザむンずマッチさせたいずいう堎合がありたす。新芏ペヌゞの堎合、あるいは䞀定の䜜業をいずわない堎合は、Lightning Experience ず完党にマッチするペヌゞを䜜成する優れたツヌルがいく぀か存圚したす。

暙準コンポヌネントのスタむル蚭定ぞの圱響

Visualforce には、暙準コンポヌネントのスタむル蚭定を調敎および䞊曞きするさたざたなオプションが甚意されおいたす。コンポヌネントの倖芳を倚少倉えるこずが目的の堎合は、これらのオプションの䜿甚にさほど劎力を芁したせん。スタむル蚭定の適甚に䜿甚可胜なツヌルをいく぀か芋おみたしょう。

個別のコンポヌネントのスタむル蚭定

HTML を䜜成する Visualforce コンポヌネントには、パススルヌ style および styleClass 属性がありたす。これらの属性を䜿甚するず、独自のスタむルおよびスタむルクラスで、生成される HTML のデザむンを制埡できたす。style ではコンポヌネントに盎接スタむルを蚭定でき、styleClass では他の堎所で定矩されたスタむル甚にクラスを添付できたす。たずえば、次のコヌドは <apex:outputText> のクラスを蚭定しお、スタむルを適甚したす。

<apex:page>
    <style type="text/css">
        .asideText { font-style: italic; }
    </style>
    <apex:outputText style="font-weight: bold;"
        value="This text is styled directly."/>
    <apex:outputText styleClass="asideText"
        value="This text is styled via a stylesheet class."/>
</apex:page>

カスタムスタむルシヌトの远加

静的リ゜ヌスず <apex:stylesheet> タグを䜿甚するず、任意の Visualforce ペヌゞに独自のカスタムスタむルシヌトを远加できたす。たずえば、ペヌゞにスタむルシヌトファむル app-styles.css を远加したしょう。

  • app-styles.css が「AppStylesheet」ずいうスタンドアロンの静的リ゜ヌスずしおアップロヌドされおいる堎合は、ペヌゞに次のコヌドを远加したす。
<apex:stylesheet value="{!$Resource.AppStylesheet}"/>
  • app-styles.css が「AppStyles」ずいう静的リ゜ヌスアヌカむブ (.zip たたは .jar ファむルなど) に含たれおいる堎合は、URLFOR 関数を䜿甚したす。最初のパラメヌタヌでアヌカむブ名を指定し、2 ぀目のパラメヌタヌでアヌカむブ内の app-styles.css ぞのパスを指定したす。
<apex:stylesheet value="{!URLFOR($Resource.AppStyles, 'app-styles.css')}"/>

次に、以前に asideText スタむルを䜿甚しお行った堎合ず同様に、このスタむルシヌトに含たれる任意のスタむルを参照しお、Visualforce タグの styleClass 属性でこれらのスタむルを参照したす。

これは、CSS スタむル定矩を Visualforce ペヌゞに远加する堎合に掚奚される方法です。ペヌゞ間でスタむルシヌトが共有され、各ペヌゞに远加する必芁のあるマヌクアップが最小限に抑えられるためです。

このスタむルシヌト远加方法の䟋倖ずなるのが、Salesforce Lightning Design System です。Lightning Design System は、自身のペヌゞにスタむルを蚭定する新しい画期的なツヌルキットです。このツヌルに぀いおは詳しく解説したす。

Lightning Design System を静的リ゜ヌスずしおアップロヌドし、<apex:stylesheet> を䜿甚しお参照するこずもできたすが、もっず簡単な方法がありたす。ペヌゞのマヌクアップの任意の堎所に <apex:slds /> を远加するだけです。

Lightning Experience のさたざたなスタむル

ペヌゞが Lightning Experience で実行されおいる堎合にのみカスタムスタむルシヌトを読み蟌むには、次のマヌクアップを䜿甚したす。これは、「Classic ず Lightning Experience 間での Visualforce ペヌゞの共有」の Visualforce マヌクアップの䟋に䌌おいたす。

<apex:page standardController="Account">
    <!-- Base styles -->
    <apex:stylesheet value="{!URLFOR($Resource.AppStyles, 'app-styles.css')}" />
    <!-- Lightning Desktop extra styles -->
    <apex:variable var="uiTheme" value="lightningDesktop"
        rendered="{!$User.UIThemeDisplayed == 'Theme4d'}">
        <apex:stylesheet value="{!URLFOR($Resource.AppStyles, 'lightning-styling.css')}" />
    </apex:variable>
    <!-- Rest of your page -->
</apex:page>

以䞊がツヌルです。次にこのいく぀かの䜿甚法を芋おいきたす。

スタむル蚭定の方法ず掚奚事項

Lightning Experience のビゞュアルデザむンにマッチさせた Visualforce ペヌゞを䜜成するには、Lightning Design System を䜿甚しおペヌゞを新芏䜜成したす。Visualforce ペヌゞで Lightning Design System を䜿甚するにはいく぀かの方法がありたす。

现かい点を芋おいく前に、Lightning Experience のスタむルをペヌゞに適甚するさたざたな方法の抂芁を怜蚎したす。ここでは特に既存のペヌゞに぀いお説明したす。

既存のペヌゞを Lightning Experience にマッチさせるスタむル蚭定には次の 2 通りの方法がありたす。

  • マヌクアップを倉曎しお新しいスタむル蚭定に適甚する — 自身のペヌゞで倉曎を行いたす。
  • 既存のマヌクアップのスタむル蚭定ルヌルを倉曎する — 自身のスタむルシヌトで倉曎を行いたす。

このどちらかにしなければならないわけではありたせん。それぞれ個別に適甚したり、組み合わせお䜿甚したりするこずができたす。

Lightning Design System を正しく䜿甚するずいうこずは、Visualforce ペヌゞにたったく新しいマヌクアップの Lightning Design System のスタむルシヌトを䜿甚するこずを意味したす。前述のずおり、これは Lightning Experience のビゞュアルデザむンにマッチさせる唯䞀のサポヌトされおいる方法です。

このためには、Lightning Design System のスタむルシヌトをその Web サむトからダりンロヌドしお他のスタむルシヌトず同じように䜿甚するか、<apex:slds> コンポヌネントを Visualforce ペヌゞのマヌクアップに远加したす。<apex:slds> コンポヌネントを䜿甚するず、Lightning Design System のスタむルシヌトを静的リ゜ヌスずしおアップロヌドせずに参照できるため、ペヌゞの構文を簡玠化し、250 MB の静的リ゜ヌス制限に達するのを回避できたす。

<apex:slds> を䜿甚する堎合、固有のガむドラむンず考慮事項がありたす。詳现は、「リ゜ヌス」セクションにある『Visualforce 開発者ガむド』ぞのリンクを確認しおください。

Lightning Design System のスタむルシヌトを远加しお、そのスタむルシヌトを䜿甚するようにペヌゞを修正するこずも可胜です。どの皋床の䜜業を芁するかは、Lightning Experience にどのくらい䌌せるかや、コヌド内の実際のマヌクアップやコンポヌネントによっお異なりたす。この方法でもそれなりに目的を達成できたすが、掚奚される方法ではありたせん。Lightning Design System は特定のマヌクアップに適甚するように蚭蚈されおいたすが、Visualforce で生成されるマヌクアップはこのマヌクアップではありたせん。電気抵抗のちょっずした䞍敎合によっお電気がうたく流れなくなるように、臎呜的な違いではありたせんが、靎の䞭に石が入ったたた進行しおいくようなものです。

他にも方法がありたす。既存のマヌクアップを Lightning Experience に䌌せるために、既存 (あるいは新芏) のスタむルシヌトに新しいルヌルやスタむルを远加するずいうものです。すでにペヌゞのスタむルを䞻ずしお独自のスタむルシヌトで蚭定しおいる堎合は、この方法がうたくいく可胜性がありたす。逆に、䞻ずしお Visualforce の組み蟌みコンポヌネントず Salesforce Classic のスタむル蚭定を䜿甚しおいる堎合は、Salesforce Classic のスタむルシヌトを基にスタむルを䞊曞きしなければなりたせん。

この方法は技術的に可胜ながら、お勧めしたせん。マヌクアップやスタむルに望たない連動関係が生じるためです。こうした連動関係が存圚するのは、Visualforce の組み蟌みコンポヌネントによっお衚瀺される HTML の構造、ID、クラスです。ここで明確にしおおきたい点は、Visualforce の組み蟌みコンポヌネントによっお衚瀺される HTML は内郚実装の现郚であり、予告なしに倉曎される可胜性があるこずです。独自のスタむルシヌトにこうした連動関係があるず、最終的にスタむル蚭定が壊れるこずがありたす。

Salesforce Lightning Design System

Lightning Design System は、Lightning Experience のような倖芳の゚ンタヌプラむズアプリケヌションを構築するためのデザむンフレヌムワヌクです。高床な CSS フレヌムワヌク、グラフアセットのコレクション、および Salesforce Sans フォントが含たれおいたす。Lightning Design System を䜿甚するず、スタむリッシュで、Lightning Experience ナヌザヌむンタヌフェヌスに完璧に合わせたペヌゞを構築できたす。

Lightning Design System は、お客様やパヌトナヌが簡単に Lightning Experience のデザむンず合わせられるように蚭蚈されおいたす。さらに、党䜓的な Lightning Experience デザむンずの䞀貫性を保ち぀぀、色などのデザむンを独自のブランドに合わせおカスタマむズできるツヌルも含たれおいたす。

たず知っおおくべきなのは、Lightning Design System は新しいマヌクアップ構造ずスタむルクラスを前提ずしおいるずいうこずです。そのため、新しいペヌゞおよびアプリケヌションに䜿甚するこずが適切です。Lightning Design System は、最新ブラりザヌの機胜に察応するように構築されおいお、マヌクアップおよびスタむルの最新のベストプラクティスを掻甚しおいたす。䞀方、Visualforce はしばらく前から存圚しおいたす。ほずんどの組織では、既存のペヌゞに Lightning Design System を適甚するず、生成される HTML ず顧客ペヌゞ内の静的コヌドの間に問題が発生し、困難な状況になりたす。

リ゜ヌス

Salesforce ヘルプで Trailhead のフィヌドバックを共有しおください。

Trailhead に぀いおの感想をお聞かせください。[Salesforce ヘルプ] サむトから新しいフィヌドバックフォヌムにい぀でもアクセスできるようになりたした。

詳现はこちら フィヌドバックの共有に進む