SlideShare a Scribd company logo
1 of 20
Download to read offline
Visualforceへの
Salesforce Lightning Design System (SLDS)
適⽤はどうします?
作成⽇ 2017/12/11
​@xlouder
Salesforce Platform Advent Calendar 2017 11⽇⽬
VisualforceにSLDSを適⽤するには下記の2つの⽅法があります
1. <apex:slds>要素を追加
2. ダウンロードしたSLDSを静的リソースに格納し、読み込んで利⽤する
尚、Salesforceの公式ドキュメントとしては、1. を推奨しています。
SLDS適⽤⽅法の種類
公式ドキュメントの記載
・LIGHTNING DESIGN SYSTEM
https://www.lightningdesignsystem.com/platforms/visualforce/
・Visualforce 開発者ガイド - Lightning Design System の使⽤
https://developer.salesforce.com/docs/atlas.ja-jp.206.0.pages.meta/pages/pages_styling_slds.htm
「1. <apex:slds>要素の追加」の設定⽅法
設定⽅法
1. Visualforce(VF)ページ内の任意の場所に <apex:slds /> を追加
メリット
• SLDSのバージョンアップ内容が⾃動的に反映される
デメリット
• SLDSのバージョンを指定できないため、
将来的に開発した画⾯の⾒た⽬が変わってしまう可能性がある
ただし下記の場合は、範囲指定クラス slds-scope を含める必要があります。
・SLDSの適⽤をページ全体ではなく範囲を指定したい時
・<apex:page>要素のapplyBodyTag または applyHtmlTag を false に設定している
例)
<div class="slds-scope"> </div>
<body class="slds-scope"> </body>
「2. SLDSを静的リソースに格納し、読み込んで利⽤する」の設定⽅法
設定⽅法
1. SLDSを(リンク先のGitHubから)ダウンロード
• https://www.lightningdesignsystem.com/downloads
2. ダウンロードしたファイルを静的リソースに格納して、VFページ内で利⽤
メリット
• 指定バージョンのSLDSが利⽤可能
• SLDSのバージョンアップに影響されない
デメリット
• SalesforceとSLDSのバージョンに差分が出た時に影響有無を確認する必要あり
• 容量に限りのある静的リソースを利⽤している
​実際にやってみましょう。
使⽤するVF
​⼊⼒項⽬が並んでいる、このVFページにSLDSを適⽤してみましょう。
「1. <apex:slds>要素の追加」
下記コードのように、<apex:slds>要素を追加します。
使⽤しているSLDSのバージョン確認
実際のVF画⾯を⾒てみましょう。
ブラウザの開発ツールから、使⽤されているSLDSのバージョンを確認することが可能です。
Winterʼ18 (API 41.0) 環境でのSLDSバージョンは、最新バージョン「2.4.6」ではなく少し前のバージョン(Summerʼ17)
が利⽤されているようです。
※2017/12/11 現在
VF画⾯を表⽰
​設定⽅法と設定した結果を⾒てみましょう
VF画⾯(Before) VF画⾯(After)
なんということでしょう
ボタンが少し⼤きくなったり、⽇付リンクが⻘くなったり…
ほとんど変わっていません。
イメージしているSLDSを適⽤したVF画⾯
きっと、こんな画面ですよね?
Lightning Experience(LEX)標準画⾯
Winterʼ18 新機能を適⽤してみよう
​Winerʼ18 のリリースノートに下記がありましたので、適⽤してみます。
​Lightning Experience のスタイルシートを使⽤して既存の Visualforce ページを⾃動的にスタイル設定
https://releasenotes.docs.salesforce.com/ja-jp/winter18/release-notes/rn_vf_lightningstylesheets.htm
VF画⾯を表⽰
​設定⽅法と設定した結果を⾒てみましょう
VF画⾯(Before) VF画⾯(After)
なんということでしょう
ヘッダーが消えたり、複数選択リストやリッチテキストエリアがおかしくなったり、真っ⽩に…
LEXに近付いた部分と、遠ざかった部分がありますね。。
実際は、
• <apex:slds>要素の追加はSLDSを利⽤できるようになるだけであり、
VFタグへの⾃動適⽤は期待できない
• SLDSに対応していないVFタグが沢⼭ある
となっているため、各要素にSLDSを適⽤する場合は、
CSSクラスを⾃分で指定する必要があります。
各要素に頑張ってCSSを適用すると・・
​※<apex:slds>要素の追加と静的リソース格納と共通の内容
​ごめんなさい。
ソースコードが汚くなったのでソースコード
は省略しました。
理想的なSLDSの使⽤⽅法
SLDSを綺麗に適⽤するには、HTMLタグと組み合わせるのが推奨です。
しかしコードを書くと結構⼤変だったりします。
参考に、テキスト項⽬(⼊⼒)と参照項⽬(⼊⼒)のSLDSを貼り付けます。
Lightning Design System - Input
https://www.lightningdesignsystem.com/components/input/#content
Lightning Design System - Lookups
https://www.lightningdesignsystem.com/components/lookups/#content
まとめ
• SLDSを綺麗に適⽤しようとすればするほどVFタグの利⽤は難しい
• どのレベルまでSLDSを適⽤させる必要があるのかを場⾯毎に要検討
• Classic StyleのVF画⾯開発の⽅が ”現時点では” 開発⽣産性は⾼い
• SLDSを完全に適⽤させるのであれば、Lightningコンポーネント開
発も検討した⽅が良い
• SLDS適⽤は慣れていないと⾒積りし⾟いので、プロトタイプ開発を
してみたほうが良いと思います(感想)
おまけ:サンタさんへの願い事
• <apex:slds>でSLDSのバージョン指定をできるようにしてほしい
• Visualforce開発者ガイドとSLDSのドキュメントをまとめたガイドがほしい
VisualforceへのSalesforce Lightning Design System (SLDS) 適用はどうします?

More Related Content

What's hot

10 power night2014_uematsu
10 power night2014_uematsu10 power night2014_uematsu
10 power night2014_uematsu
TerraSky
 
SharePoint アプリ開発ツールの比較
SharePoint アプリ開発ツールの比較SharePoint アプリ開発ツールの比較
SharePoint アプリ開発ツールの比較
Yoshitaka Seo
 

What's hot (20)

クラウドビジネスアプリ ~ Visual Studio 2013 の新しいプロジェクトテンプレート
クラウドビジネスアプリ ~ Visual Studio 2013 の新しいプロジェクトテンプレートクラウドビジネスアプリ ~ Visual Studio 2013 の新しいプロジェクトテンプレート
クラウドビジネスアプリ ~ Visual Studio 2013 の新しいプロジェクトテンプレート
 
Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発Lightingコンポーネントベーシック開発
Lightingコンポーネントベーシック開発
 
Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06Five Steps to Culture Change を日本語で解説する 2020/11/06
Five Steps to Culture Change を日本語で解説する 2020/11/06
 
Salesforce DUG meetup #10 MiniHack完全制覇の旅
Salesforce DUG meetup #10 MiniHack完全制覇の旅Salesforce DUG meetup #10 MiniHack完全制覇の旅
Salesforce DUG meetup #10 MiniHack完全制覇の旅
 
10 power night2014_uematsu
10 power night2014_uematsu10 power night2014_uematsu
10 power night2014_uematsu
 
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
2021/02/19 Alterbooth 多忙なアーキテクトのためのクラウド導入フレームワーク (CAF) ダイジェスト
 
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
[TL04] .NET 15 周年の今こそ考えるクラウドネイティブ アプリケーションと .NET の活用
 
2021 01-30 Visual Studio 2019 知っているか!?この機能 in BuriKaigi2021
2021 01-30 Visual Studio 2019 知っているか!?この機能 in BuriKaigi20212021 01-30 Visual Studio 2019 知っているか!?この機能 in BuriKaigi2021
2021 01-30 Visual Studio 2019 知っているか!?この機能 in BuriKaigi2021
 
SharePoint Framework アップデート SPFx v1.12.1
SharePoint Framework アップデート SPFx v1.12.1SharePoint Framework アップデート SPFx v1.12.1
SharePoint Framework アップデート SPFx v1.12.1
 
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ2020/12/03 SaaS を正しい方向へ加速するフィードバックループ
2020/12/03 SaaS を正しい方向へ加速するフィードバックループ
 
無料Webセミナー:効率的な情報共有によるプロジェクト管理・運用の改善方法
無料Webセミナー:効率的な情報共有によるプロジェクト管理・運用の改善方法無料Webセミナー:効率的な情報共有によるプロジェクト管理・運用の改善方法
無料Webセミナー:効率的な情報共有によるプロジェクト管理・運用の改善方法
 
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
レガシー Web からの脱却 ~ 開発者が次に目指すべき Web アプリの姿とは?
 
CodelessDevelop using iPaas
CodelessDevelop using iPaasCodelessDevelop using iPaas
CodelessDevelop using iPaas
 
1_各Atlassian製品の紹介
1_各Atlassian製品の紹介1_各Atlassian製品の紹介
1_各Atlassian製品の紹介
 
SharePoint アプリ開発ツールの比較
SharePoint アプリ開発ツールの比較SharePoint アプリ開発ツールの比較
SharePoint アプリ開発ツールの比較
 
Visual Studio を使用した Cordova 開発
Visual Studio を使用した Cordova 開発Visual Studio を使用した Cordova 開発
Visual Studio を使用した Cordova 開発
 
Container microservices
Container microservicesContainer microservices
Container microservices
 
20190427 global azurebootcamp
20190427 global azurebootcamp20190427 global azurebootcamp
20190427 global azurebootcamp
 
Office アドイン ハンズオン
Office アドイン ハンズオンOffice アドイン ハンズオン
Office アドイン ハンズオン
 
SharePoint 開発でできること 2019年9月版
SharePoint 開発でできること 2019年9月版SharePoint 開発でできること 2019年9月版
SharePoint 開発でできること 2019年9月版
 

Similar to VisualforceへのSalesforce Lightning Design System (SLDS) 適用はどうします?

【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
SFDG ROOKIES
 
2012年1月技術ひろば
2012年1月技術ひろば2012年1月技術ひろば
2012年1月技術ひろば
貴仁 大和屋
 
Metroスタイルアプリに向けたxamlデザイナーの変更点
Metroスタイルアプリに向けたxamlデザイナーの変更点Metroスタイルアプリに向けたxamlデザイナーの変更点
Metroスタイルアプリに向けたxamlデザイナーの変更点
vsug_jim
 
1 power night2014_imaoka
1 power night2014_imaoka1 power night2014_imaoka
1 power night2014_imaoka
TerraSky
 

Similar to VisualforceへのSalesforce Lightning Design System (SLDS) 適用はどうします? (20)

ノンコーディングでactive directoryを管理してみる
ノンコーディングでactive directoryを管理してみるノンコーディングでactive directoryを管理してみる
ノンコーディングでactive directoryを管理してみる
 
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform ServiceTokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
Tokyo SFDG Meetup#16 / Release Note, Einstein Platform Service
 
AWS to Salesforce 活用例 ~SSL Termination試してみました~
AWS to Salesforce 活用例 ~SSL Termination試してみました~AWS to Salesforce 活用例 ~SSL Termination試してみました~
AWS to Salesforce 活用例 ~SSL Termination試してみました~
 
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
【Devsumi2019】開発者に贈るSalesforceプラットフォーム概論と最新動向
 
System centerを中心とした統合管理-オンプレミスからクラウドまで
System centerを中心とした統合管理-オンプレミスからクラウドまでSystem centerを中心とした統合管理-オンプレミスからクラウドまで
System centerを中心とした統合管理-オンプレミスからクラウドまで
 
Windows Admin Center -Project Honolulu改め-
Windows Admin Center -Project Honolulu改め-Windows Admin Center -Project Honolulu改め-
Windows Admin Center -Project Honolulu改め-
 
Workspace ONE PoC Guide Chapter 3 Office365 Integration v1.1
Workspace ONE PoC Guide Chapter 3 Office365 Integration v1.1Workspace ONE PoC Guide Chapter 3 Office365 Integration v1.1
Workspace ONE PoC Guide Chapter 3 Office365 Integration v1.1
 
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
 
2012年1月技術ひろば
2012年1月技術ひろば2012年1月技術ひろば
2012年1月技術ひろば
 
20150901 ops jaws_araya_v2
20150901 ops jaws_araya_v220150901 ops jaws_araya_v2
20150901 ops jaws_araya_v2
 
20200729 f1 instance_intro
20200729 f1 instance_intro20200729 f1 instance_intro
20200729 f1 instance_intro
 
Metroスタイルアプリに向けたxamlデザイナーの変更点
Metroスタイルアプリに向けたxamlデザイナーの変更点Metroスタイルアプリに向けたxamlデザイナーの変更点
Metroスタイルアプリに向けたxamlデザイナーの変更点
 
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
幅広い技術力が身につくSalesforceエンジニアのススメ〜入門編〜
 
May the FaaS be with us!!
May the FaaS be with us!!May the FaaS be with us!!
May the FaaS be with us!!
 
1 power night2014_imaoka
1 power night2014_imaoka1 power night2014_imaoka
1 power night2014_imaoka
 
Salesforce DUG meetup09 summer15
Salesforce DUG meetup09 summer15Salesforce DUG meetup09 summer15
Salesforce DUG meetup09 summer15
 
Interact2019 - Windows Admin Center 2019年6月のお話
Interact2019 - Windows Admin Center 2019年6月のお話Interact2019 - Windows Admin Center 2019年6月のお話
Interact2019 - Windows Admin Center 2019年6月のお話
 
Drupal deployment trial on Engine Yard
Drupal deployment trial on Engine YardDrupal deployment trial on Engine Yard
Drupal deployment trial on Engine Yard
 
Visual Studio 2019 新機能を時間のかぎりできるだけ!
Visual Studio 2019 新機能を時間のかぎりできるだけ!Visual Studio 2019 新機能を時間のかぎりできるだけ!
Visual Studio 2019 新機能を時間のかぎりできるだけ!
 
App cloud lightning-component-20170517
App cloud lightning-component-20170517App cloud lightning-component-20170517
App cloud lightning-component-20170517
 

More from 寛 吉田

The mash-up choice
The mash-up choiceThe mash-up choice
The mash-up choice
寛 吉田
 
SkyVisualEditorで使ってるコードちょっとだけ教えます-PDFでの文字折返し-
SkyVisualEditorで使ってるコードちょっとだけ教えます-PDFでの文字折返し-SkyVisualEditorで使ってるコードちょっとだけ教えます-PDFでの文字折返し-
SkyVisualEditorで使ってるコードちょっとだけ教えます-PDFでの文字折返し-
寛 吉田
 

More from 寛 吉田 (8)

[TerraSky Day 2016] エンジニアのためになる!実用的なSalesforceページデザインについて考えてみよう
[TerraSky Day 2016] エンジニアのためになる!実用的なSalesforceページデザインについて考えてみよう[TerraSky Day 2016] エンジニアのためになる!実用的なSalesforceページデザインについて考えてみよう
[TerraSky Day 2016] エンジニアのためになる!実用的なSalesforceページデザインについて考えてみよう
 
聞いてスッキリ!Lightningの理解ポイント
聞いてスッキリ!Lightningの理解ポイント聞いてスッキリ!Lightningの理解ポイント
聞いてスッキリ!Lightningの理解ポイント
 
Do you known issues ? - Practical use of known issue -
Do you known issues ? - Practical use of known issue -Do you known issues ? - Practical use of known issue -
Do you known issues ? - Practical use of known issue -
 
Clickjack protection for salesforce
Clickjack protection for salesforceClickjack protection for salesforce
Clickjack protection for salesforce
 
The mash-up choice
The mash-up choiceThe mash-up choice
The mash-up choice
 
Performance of visualforce lt version-20121031
Performance of visualforce lt version-20121031Performance of visualforce lt version-20121031
Performance of visualforce lt version-20121031
 
Performance of Visualforce
Performance of VisualforcePerformance of Visualforce
Performance of Visualforce
 
SkyVisualEditorで使ってるコードちょっとだけ教えます-PDFでの文字折返し-
SkyVisualEditorで使ってるコードちょっとだけ教えます-PDFでの文字折返し-SkyVisualEditorで使ってるコードちょっとだけ教えます-PDFでの文字折返し-
SkyVisualEditorで使ってるコードちょっとだけ教えます-PDFでの文字折返し-
 

Recently uploaded

Recently uploaded (11)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

VisualforceへのSalesforce Lightning Design System (SLDS) 適用はどうします?