Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Drupal テーマ開発入門講座 第5回 ブレークポイントとメディアクエリ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
アクイアジャパン Acquia Japan
June 01, 2022
Programming
180
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Drupal テーマ開発入門講座 第5回 ブレークポイントとメディアクエリ
https://www.acquia.com/jp/events/webinars/drupal-theming-development-vol5
アクイアジャパン Acquia Japan
June 01, 2022
More Decks by アクイアジャパン Acquia Japan
See All by アクイアジャパン Acquia Japan
Auth0 by OktaとDrupalで実践!認証付きアプリケーションの新しいアプローチ
acquiajp
0
240
Drupal 10.3の新機能紹介ウェビナー
acquiajp
0
280
DrupalCon Portland 2024 総まとめウェビナー
acquiajp
0
140
開発者必見!Acquia Cloud IDEで最高のDrupal開発を始めよう
acquiajp
0
240
触って学ぶ!デジタルアセット管理 Acquia DAM ハンズオンウェビナー
acquiajp
0
57
DrupalCon Lille 2023 総まとめウェビナー
acquiajp
0
120
コンテンツ設計手法で変更に強いアプリケーションを実現する〜ローコードによるWebアプリのバックエンド実装 #CNDF2023
acquiajp
0
410
DrupalCon Pittsburgh 2023 総まとめウェビナー
acquiajp
0
110
Acquia製品概要&Site Studioデモのご紹介
acquiajp
0
150
Other Decks in Programming
See All in Programming
Family mrubyの進捗
kishima
1
110
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
2
760
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
2
290
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
520
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
130
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
270
typoなんかねぇよ
raspython3
0
690
Swift愛好会100回記念 第1回を振り返る
jollyjoester
0
120
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
470
標準パッケージに uuid が追加された 背景から見る Go らしい意思決定 / go_127_uuid_decision
convto
5
6k
Laravelのアプリケーションをどこにデプロイするか #ツナギメオフライン.9
akase244
0
120
Featured
See All Featured
Side Projects
sachag
456
43k
So, you think you're a good person
axbom
PRO
2
2.1k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Code Review Best Practice
trishagee
74
20k
Into the Great Unknown - MozCon
thekraken
41
2.7k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
Making the Leap to Tech Lead
cromwellryan
135
10k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
270
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Making Projects Easy
brettharned
120
6.7k
Color Theory Basics | Prateek | Gurzu
gurzu
0
460
Transcript
ୈ5ճ ϒϨʔΫϙΠϯτͱϝσΟΞΫΤϦ Drupal ςʔϚ ։ൃೖߨ࠲
Drupal ςʔϚ։ൃೖߨ࠲γϦʔζ – Drupalʹ͓͚ΔʮςʔϚʯͱɺWebαΠτͷݟͨΛ୲͏ػೳͰ͢ɻຊΣϏφʔγϦʔ ζͰɺDrupalͷςʔϚ։ൃʹؔ͢ΔجૅࣝΛղઆ͠·͢ɻ – DrupalͷϑϩϯτΤϯυपΓʹ͍ͭͯମܥతʹֶͼ͍ͨํɺࣗͰΧελϜςʔϚΛ࡞Ε ΔΑ͏ʹͳΓ͍ͨํɺΞΫΠΞೝఆσϕϩούʔࢼݧΛࢦ͢ํʹ͓͢͢ΊͰ͢ɻ – DrupalΛҰ௨Γૢ࡞ͨ͜͠ͱ͕͋ΔํΛରͱ͍ͯ͠·͢ɻ·ͩDrupalΛ৮ͬͨ͜ͱ͕ແ
͍ํɺॳ৺ऀ͚DrupalνϡʔτϦΞϧಈըʢຊޠʣΛઌʹݟ͓ͯ͘ͱΑΓཧղ͕ਂ ·Γ·͢ɻ
1. ϝσΟΞΫΤϦͷ֓ཁ 2. DrupalͷϒϨʔΫϙΠϯτ 3. ࿅श ΞδΣϯμ
ϝσΟΞΫΤϦͷ֓ཁ
– ը໘෯ʹԠͯ͡ҟͳΔϨΠΞτΛ࡞Ͱ ͖ΔɺCSSͷػೳͰ͢ɻ – 1ͭͷϖʔδͰෳͷҟͳΔදࣔڥʹରԠ ͢ΔϨεϙϯγϒWebσβΠϯΛ࣮ݱ͢Δ͜ ͱ͕Ͱ͖·͢ɻ ϝσΟΞΫΤϦ(Media Query)ͱ λϒϨοτ
εϚϗ σεΫτοϓ
ϝσΟΞΫΤϦͷجຊߏจ @media media-type and (media-feature-rule) { /* CSS نଇΛ͜͜ʹ */
} CSSϑΝΠϧʹهड़͠·͢ɻ
ϝσΟΞΫΤϦͷجຊߏจ @media media-type and (media-feature-rule) { /* CSS نଇΛ͜͜ʹ */
} ʮϝσΟΞλΠϓʯ Λࢦఆ ʮϝσΟΞಛੑʯΛ ༻͠ͳ͕Βϧʔϧ Λهड़ { } ʹCSSΛهड़ɻ ϝσΟλΠϓɺϧʔϧʹ߹க͠ ͨ߹ɺCSS͕ద༻͞ΕΔɻ
ϝσΟΞλΠϓͱ – σόΠεͷҰൠతͳΧςΰϦΛදͨ͠ͷͰ͢ɻ – ࣍ͷ͕ར༻ՄೳͰ͢ɻ – allɿશͯͷσόΠεʹదͨ͠ͷ – printɿҹ༻ը໘Λର –
screenɿओʹը໘Λର – ϝσΟΞλΠϓͷࢦఆඞਢͰ͋Γ·ͤΜɻະࢦఆͷ߹ all ͕ ݺͼग़͞Ε·͢ɻ
ϝσΟΞλΠϓΛࢦఆͨ͠ྫ ྫɿϖʔδͷҹը໘ͷΈbodyཁૉͷϑΥϯταΠζΛ12ptʹઃఆ ͢Δ߹ @media print { body { font-size: 12pt;
} }
ϝσΟΞಛੑͱ – ϢʔβʔΤʔδΣϯτɺग़ྗσόΠεɺڥͷಛఆͷಛੑΛهड़͢Δ ͨΊʹ༻͞Ε·͢ɻ – ओͳϝσΟΞಛੑ – orientationɿը໘ͷ͖Λఆ – heightɿը໘ͷߴ͞Λఆ
– widthɿը໘ͷ෯Λఆ – ଞʹͨ͘͞Μʂৄ͘͠MDN Web Docs – ϝσΟΞಛੑʹؔͯ͠ɺࢦఆඞਢͰ͋Γ·ͤΜɻ
ϝσΟΞಛੑΛࢦఆͨ͠ྫ ྫɿϝσΟΞλΠϓ͕εΫϦʔϯɺ͔ͭը໘෯͕600pxʹ߹கͨ͠ ࡍʹbodyཁૉͷςΩετͷ৭Λ৭ʹ͢Δ @media screen and (width: 600px) { body
{ color: red; } }
ϒϨʔΫϙΠϯτͱ – ը໘෯ʹԠͯ͡ϨΠΞτΛΓସ͑ΔϙΠϯτΛҙຯ͠·͢ɻ – ଟ͘ͷ߹ɺϝσΟΞΫΤϦͷwin-widthmax-widthʹΑͬͯهड़͞Ε·͢ɻ @media all and (min-width: 560px)
{ /* ࠷খ෯͕560pxͷ߹ */ } @media all and (min-width: 851px) { /* ࠷খ෯͕851pxͷ߹ */ }
BartikͰ༻͞ΕΔϒϨʔΫϙΠϯτͷྫ /* ԼهͷϝσΟΞΫΤϦҎ֎(0ʙ559px)ͷը໘෯Ͱద༻͞ΕΔ */ @media all and (min-width: 560px) {
/* 560ʙ850pxͷ෯Ͱద༻͞ΕΔ */ } @media all and (min-width: 851px) { /* 851pxҎ্ͷ෯Ͱద༻͞ΕΔ */ } core/themes/bartik/css/components/featured-bottom.css
ࢀߟ) ϞόΠϧϑΝʔετͱσεΫτοϓϑΝʔετ https://joegalley.com/articles/mobile-first-vs-desktop-first-media-queries Qɿmin-width max-width Ͳ͏͍͚Δ͖͔ʁ Aɿ࣮͢ΔαΠτ͕ ɹϞόΠϧϑΝʔετͷ߹
min-width Λ༻͠ɺ ɹσεΫτοϓϑΝʔετͷ߹ max-width Λ༻͢Δɻ ɹͦ͏͢Δ͜ͱͰɺϝσΟΞΫΤϦͷ֎ଆͰෳࡶʹͳΓ͑Δը໘෯ɹ ΛελΠϦϯάͰ͖ΔΑ͏ʹͳΔɻ
ࢀߟ) ϞόΠϧϑΝʔετͱσεΫτοϓϑΝʔετ ϞόΠϧϑΝʔετͷ߹ σεΫτοϓϑΝʔετͷ߹ /* ԼهͷϝσΟΞΫΤϦҎ֎(1201pxҎ্)ͷը໘෯Ͱ ద༻͞ΕΔ */ @media (max-width:
1200px) { /* 993ʙ1200pxͷ෯Ͱద༻͞ΕΔ */ } @media (max-width: 992px) { /* 769ʙ992pxͷ෯Ͱద༻͞ΕΔ */ } @media (max-width: 768px) { /* 0ʙ768pxͷ෯Ͱద༻͞ΕΔ */ } /* ԼهͷϝσΟΞΫΤϦҎ֎(0ʙ767px)ͷը໘෯Ͱ ద༻͞ΕΔ */ @media (min-width: 768px) { /* 768ʙ991pxͷ෯Ͱద༻͞ΕΔ */ } @media (min-width: 992px) { /* 992ʙ1199pxͷ෯Ͱద༻͞ΕΔ */ } @media (min-width: 1200px) { /* 1200pxҎ্ͷ෯Ͱద༻͞ΕΔ */ } https://joegalley.com/articles/mobile-first-vs-desktop-first-media-queries ϝσΟΞΫΤ Ϧͷ֎ଆͰɺ Ұ൪هड़ྔ͕ ଟ͘ͳΔ
࠶ܝ) BartikͰ༻͞ΕΔϒϨʔΫϙΠϯτͷྫ /* ԼهͷϝσΟΞΫΤϦҎ֎(0ʙ559px)ͷը໘෯Ͱద༻͞ΕΔ */ @media all and (min-width: 560px)
{ /* 560ʙ850pxͷ෯Ͱద༻͞ΕΔ */ } @media all and (min-width: 851px) { /* 851pxҎ্ͷ෯Ͱద༻͞ΕΔ */ } BartikͰɺϞόΠϧϑΝʔετɺσεΫτοϓϑΝʔετɺͲͪΒͷΞϓϩʔ νΛऔ͍ͬͯΔͰ͠ΐ͏ʁ
DrupalͷϒϨʔΫϙΠϯτ
BreakpointϞδϡʔϧͱ *.breakpionts.yml – BartikͷྫΛݟ͍͍ͯͨͩͨ௨ΓɺDrupalͰ௨ৗͷϑϩϯτΤϯυ։ ൃͱಉ༷ʹɺCSSϑΝΠϧʹϝσΟΞΫΤϦΛهड़͢Δ͜ͱͰϒϨʔΫ ϙΠϯτΛՃ͠ɺσόΠεʹԠͨ͡ϨΠΞτΛ࡞Ͱ͖·͢ɻ – ςʔϚͰ༻͍ͯ͠ΔϒϨʔΫϙΠϯτΛ *.breakpoints.yml ʹఆٛ͢
Δ͜ͱͰɺίΞͷBreakpointϞδϡʔϧΛհͯ͠ϒϨʔΫϙΠϯτͷ ใΛDrupalαΠτͰར༻Ͱ͖ΔΑ͏ʹͳΓ·͢ɻ – DrupalίΞͰɺResponsive ImageϞδϡʔϧͰϒϨʔΫϙΠϯτ ใΛར༻Ͱ͖·͢ɻ
Responsive ImageϞδϡʔϧͱ – ςʔϚ/ϞδϡʔϧʹΑͬͯఏڙ͞ΕΔϒϨʔΫϙ ΠϯτใΛ༻ͯ͠ɺϖʔδͷը໘෯ʹԠͯ͡ ҟͳΔαΠζͷը૾ΛಡΈࠐΉ͜ͱ͕Ͱ͖·͢ɻ – Responsive ImageϞδϡʔϧͰςʔϚ/Ϟδϡʔ ϧͷϒϨʔΫϙΠϯτใΛಡΈࠐΉඞཁ͕͋Δ
ͨΊɺBreakpointϞδϡʔϧ͕ඞཁͰ͢ɻ – Responsive ImageϞδϡʔϧɺHTML5ͷ pictureλάΛ༻͍ͯը૾ΛαΠτʹදࣔ͠·͢ɻ
Responsive ImageϞδϡʔϧͱ – εϚϗͷΑ͏ͳখ͍͞ը໘Ͱϖʔδ͔ΒΞΫηε͕͋Δ߹ɺσόΠεʹૹ৴͞ ΕΔը૾αΠζΛখ͘͞Ͱ͖ɺϖʔδͷಡΈࠐΈ࣌ؒΛॖͰ͖ΔՄೳੑ͕͋ Γ·͢ɻ – ·ͨɺը໘ͷେ͖͍σΟεϓϨΠɺRetinaσΟεϓϨΠͳͲߴըૉσόΠε͔ ΒΞΫηε͕͋Δ߹ɺେ͖͍αΠζͷը૾Λૹ৴͢Δ͜ͱͰɺը૾͕ߥΕΔ ͜ͱͳ͘៉ྷʹݟͤΔ͜ͱ͕Ͱ͖·͢ɻ
*.breakpionts.yml ͲΜͳ࣌ʹඞཁ͔ QɿΧελϜςʔϚͰ *.breakpoints.yml ͕ඞཁʹͳΔγʔϯͬͯͲΜͳ࣌ʁ AɿResponsive ImageϞδϡʔϧͳͲɺDrupalαΠτͷ ɹଞϞδϡʔϧ/ςʔϚͰϒϨʔΫϙΠϯτใΛར༻͍ͨ࣌͠ʹ
ɹඞཁͰ͢ɻ ɹٯΛݴ͏ͱɺ DrupalαΠτͰϒϨʔΫϙΠϯτใΛ ɹར༻͠ͳ͍ʢResponsive ImageϞδϡʔϧΛར༻͠ͳ͍ͳͲʣ߹ɺ ɹ*.breakpoints.ymlඞཁ͋Γ·ͤΜɻ
*.breakpoints.ymlͷهड़ํ๏ bartik.mobile: label: mobile mediaQuery: '' weight: 0 multipliers: -
1x bartik.narrow: label: narrow mediaQuery: 'all and (min-width: 560px) and (max-width: 850px)' weight: 1 multipliers: - 1x bartik.wide: label: wide mediaQuery: 'all and (min-width: 851px)' weight: 2 multipliers: - 1x ઃఆϑΝΠϧɺओʹϥϕϧͱϝσΟΞΫΤϦͰߏ ͞Ε·͢ɻ – bartik.mobileͳͲ࠷্ҐͷΩʔϒϨʔΫϙΠ ϯτͷϚγϯ໊ɻϑΝΠϧͰҰҙͰ͋Δඞཁ ͋Γɻ – labelɿϒϨʔΫϙΠϯτΛࣔ͢ɺਓ͕ಡΉͨ Ίͷϥϕϧ໊ɻ༁Մೳɻ – mediaQueryɿϒϨʔΫϙΠϯτͰදݱ͍ͨ͠ ϝσΟΞΫΤϦɻۭࢦఆՄೳɻ – weightɿϒϨʔΫϙΠϯτͷॱংɻ – multipliersɿϐΫηϧղ૾ɻ1xɺ1.5xɺ2xͰ ࢦఆɻ
ԋश ΧελϜςʔϚͰϒϨʔΫϙΠϯτઃఆϑΝΠϧΛ࡞͠Α͏ – *.breakpoints.yml ϑΝΠϧͷ࡞ – ͲΜͳϒϨʔΫϙΠϯτΛఆٛ͢Δ͔ – ϨεϙϯγϒΠϝʔδϞδϡʔϧͰϒϨʔΫϙΠϯτใΛ׆ ༻ͯ͠ΈΑ͏
࿅श
*.breakpoints.yml ɺԿΛߦ͏ͨΊͷϑΝΠϧͰ͔͢ʁ 1. ςʔϚͰ༻͢ΔϒϨʔΫϙΠϯτΛఆٛ͠ɺը໘෯ʹԠͯ͡༻͢Δ CSSΛΓସ͑ΔͨΊʹ༻͞ΕΔɻ 2. ςʔϚͰ͋Β͔͡Ίఆٛ͞Ε͍ͯΔϒϨʔΫϙΠϯτΛ্ॻ͖͢ΔͨΊʹ ༻͞ΕΔɻ 3. ςʔϚ։ൃͰσόοά࡞ۀΛߦ͏ͨΊʹ༻͞ΕΔɻ
4. ίΞͷResponsive ImageϞδϡʔϧʹϒϨʔΫϙΠϯτใΛఏڙ͢Δͨ Ίʹ༻͞ΕΔɻ ࿅श1
*.breakpoints.yml ɺԿΛߦ͏ͨΊͷϑΝΠϧͰ͔͢ʁ 1. ςʔϚͰ༻͢ΔϒϨʔΫϙΠϯτΛఆٛ͠ɺը໘෯ʹԠͯ͡༻͢Δ CSSΛΓସ͑ΔͨΊʹ༻͞ΕΔɻ 2. ςʔϚͰ͋Β͔͡Ίఆٛ͞Ε͍ͯΔϒϨʔΫϙΠϯτΛ্ॻ͖͢ΔͨΊʹ ༻͞ΕΔɻ 3. ςʔϚ։ൃͰσόοά࡞ۀΛߦ͏ͨΊʹ༻͞ΕΔɻ
4. ίΞͷResponsive ImageϞδϡʔϧʹϒϨʔΫϙΠϯτใΛఏڙ͢Δͨ Ίʹ༻͞ΕΔɻ ࿅श1 4
ςʔϚʹ͓͚Δ *.breakpoints.yml ϑΝΠϧʹ͍ͭͯͷਖ਼͍͠هड़ͲΕͰ ͔͢ʁ 1. ϑΝΠϧͷ༰Drupalͷཧը໘͔Βฤू͕ߦ͑Δɻ 2. ϑΝΠϧͷ༰ΛDrupalαΠτͰ׆༻͢ΔʹɺBreakpointϞδϡʔ ϧΛ༗ޮʹ͠ͳ͚ΕͳΒͳ͍ɻ 3.
ϑΝΠϧʹهड़͢ΔϝσΟΞΫΤϦɺςʔϚͷCSSͰར༻͢ΔϒϨʔ ΫϙΠϯτͷϝσΟΞΫΤϦͱશҰகͤ͞ͳ͍ͱػೳ͠ͳ͍ɻ ࿅श2
ςʔϚʹ͓͚Δ *.breakpoints.yml ϑΝΠϧʹ͍ͭͯͷਖ਼͍͠هड़ͲΕͰ ͔͢ʁ 1. ϑΝΠϧͷ༰Drupalͷཧը໘͔Βฤू͕ߦ͑Δɻ 2. ϑΝΠϧͷ༰ΛDrupalαΠτͰ׆༻͢ΔʹɺBreakpointϞδϡʔ ϧΛ༗ޮʹ͠ͳ͚ΕͳΒͳ͍ɻ 3.
ϑΝΠϧʹهड़͢ΔϝσΟΞΫΤϦɺςʔϚͷCSSͰར༻͢ΔϒϨʔ ΫϙΠϯτͷϝσΟΞΫΤϦͱશҰகͤ͞ͳ͍ͱػೳ͠ͳ͍ɻ ࿅श2 2
ຊͷΞδΣϯμऴྃ
1. ϝσΟΞΫΤϦͷ֓ཁ 2. DrupalͷϒϨʔΫϙΠϯτ 3. ࿅श ΞδΣϯμ
None