Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Drupal テーマ開発入門講座 第3回 ベーステーマとサブテーマ
Search
アクイアジャパン Acquia Japan
April 06, 2022
Programming
260
0
Share
Drupal テーマ開発入門講座 第3回 ベーステーマとサブテーマ
https://www.acquia.com/jp/events/webinars/drupal-theming-development-vol3
アクイアジャパン Acquia Japan
April 06, 2022
More Decks by アクイアジャパン Acquia Japan
See All by アクイアジャパン Acquia Japan
Auth0 by OktaとDrupalで実践!認証付きアプリケーションの新しいアプローチ
acquiajp
0
210
Drupal 10.3の新機能紹介ウェビナー
acquiajp
0
250
DrupalCon Portland 2024 総まとめウェビナー
acquiajp
0
100
開発者必見!Acquia Cloud IDEで最高のDrupal開発を始めよう
acquiajp
0
190
触って学ぶ!デジタルアセット管理 Acquia DAM ハンズオンウェビナー
acquiajp
0
43
DrupalCon Lille 2023 総まとめウェビナー
acquiajp
0
77
コンテンツ設計手法で変更に強いアプリケーションを実現する〜ローコードによるWebアプリのバックエンド実装 #CNDF2023
acquiajp
0
390
DrupalCon Pittsburgh 2023 総まとめウェビナー
acquiajp
0
99
Acquia製品概要&Site Studioデモのご紹介
acquiajp
0
130
Other Decks in Programming
See All in Programming
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
120
Nuxt Server Components
wattanx
0
250
条件判定に名前、つけてますか? #phperkaigi #c
77web
2
970
20260320登壇資料
pharct
0
160
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
290
Coding as Prompting Since 2025
ragingwind
0
740
煩雑なSkills管理をSoC(関心の分離)により解決する――関心を分離し、プロンプトを部品として育てるためのOSSを作った話 / Solving Complex Skills Management Through SoC (Separation of Concerns)
nrslib
3
520
実践ハーネスエンジニアリング #MOSHTech
kajitack
7
5.8k
PHP でエミュレータを自作して Ubuntu を動かそう
m3m0r7
PRO
2
170
生成 AI 時代のスナップショットテストってやつを見せてあげますよ(α版)
ojun9
0
340
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
540
Xdebug と IDE による デバッグ実行の仕組みを見る / Exploring-How-Debugging-Works-with-Xdebug-and-an-IDE
shin1x1
0
340
Featured
See All Featured
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
360
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
How to Talk to Developers About Accessibility
jct
2
170
SEO for Brand Visibility & Recognition
aleyda
0
4.4k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
250
Technical Leadership for Architectural Decision Making
baasie
3
310
BBQ
matthewcrist
89
10k
GitHub's CSS Performance
jonrohan
1032
470k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
190
Discover your Explorer Soul
emna__ayadi
2
1.1k
Transcript
ୈ3ճ ϕʔεςʔϚͱαϒςʔϚ Drupal ςʔϚ ։ൃೖߨ࠲
Drupal ςʔϚ։ൃೖߨ࠲γϦʔζ – Drupalʹ͓͚ΔʮςʔϚʯͱɺWebαΠτͷݟͨΛ୲͏ػೳͰ͢ɻຊΣϏφʔγϦʔ ζͰɺDrupalͷςʔϚ։ൃʹؔ͢ΔجૅࣝΛղઆ͠·͢ɻ – DrupalͷϑϩϯτΤϯυपΓʹ͍ͭͯମܥతʹֶͼ͍ͨํɺࣗͰΧελϜςʔϚΛ࡞ΕΔ Α͏ʹͳΓ͍ͨํɺΞΫΠΞೝఆσϕϩούʔࢼݧΛࢦ͢ํʹ͓͢͢ΊͰ͢ɻ – DrupalΛҰ௨Γૢ࡞ͨ͜͠ͱ͕͋ΔํΛରͱ͍ͯ͠·͢ɻ·ͩDrupalΛ৮ͬͨ͜ͱ͕ແ͍
ํɺॳ৺ऀ͚DrupalνϡʔτϦΞϧಈըʢຊޠʣΛઌʹݟ͓ͯ͘ͱΑΓཧղ͕ਂ·Γ ·͢ɻ
ΞδΣϯμ 1. ςʔϚͷܧঝʹ͍ͭͯ 2. ϕʔεςʔϚΛ༻͢Δ 3. ࿅श
ςʔϚͷܧঝʹ͍ͭͯ
ςʔϚΛܧঝͯ͠ޮతʹςʔϚ։ൃΛߦ͏ – ίϯτϦϏϡʔτςʔϚΛΧελϚΠζ͍ͨ͠߹ɾɾ – ॻ͖͑ͯ͠·͏ͱɺΞοϓσʔτͷࡍʹมߋ͕ࣦΘΕͯ͠· ͍·͢ʂ – ϕʔεςʔϚͱαϒςʔϚͷΈΛ͑ɺϑΝΠϧΛॻ͖ ͑Δ͜ͱͳ͘ΧελϚΠζ͕ՄೳʹͳΓ·͢ɻ
– BootstrapͷσβΠϯϑϨʔϜϫʔΫΛ༻͢Δ߹ɾɾ – ඞཁͳߏ͕Έࠐ·Εɺ͙͢ʹΧελϚΠζʹऔΓΉ͜ͱ͕Ͱ ͖ΔελʔλʔςʔϚ͕ଟެ։͞Ε͍ͯ·͢ɻ
ϕʔεςʔϚͱαϒςʔϚ – ϕʔεςʔϚ – αϒςʔϚͷͱͳΔςʔϚͰ͢ɻ – ελʔλʔςʔϚͱݺΕ·͢ɻ – αϒςʔϚ
– ͋ΔϕʔεςʔϚΛݩʹ࡞ΒΕͨςʔϚΛαϒςʔϚͱݺͼ·͢ɻ – *.info.yml ͷ base theme ΩʔͰϕʔεςʔϚΛࢦఆ͠·͢ɻ – ྫʣbase theme: stable – ϕʔεςʔϚ͕࣋ͭελΠϧςϯϓϨʔτͳͲͷҰ෦ͷߏΛܧঝ͠ ͳ͕ΒΧελϚΠζͰ͖·͢ɻ – αϒςʔϚผͷαϒςʔϚͷࢠʹ͢Δ͜ͱ͕ՄೳͰ͢ɻ
ςʔϚͷ༏ઌॱҐ αϒςʔϚ > ϕʔεςʔϚ > ίΞ ςʔϚϑΝΠϧͷ༻࣍ͷΑ͏ʹ༏ઌ͞Ε·͢ɻ ※શͯͷϦιʔε͕ܧঝ͞ΕΔΘ͚Ͱ͋Γ·ͤΜɻ
αϒςʔϚ͕ܧঝ͢ΔϦιʔε – *.theme – *.breakpoints.yml – ςϯϓϨʔτϑΝΠϧ(*.html.twig) – εΫϦʔϯγϣοτ –
ը૾ – CSS – JavaScript ϕʔεςʔϚʹ*.libraries.yml ͕ଘࡏ͢Δ߹ɺܧঝ͞Ε·͢ɻ
αϒςʔϚ͕ܧঝ͠ͳ͍Ϧιʔε – *.info.yml – ϕʔεςʔϚ͕༻͞Ε͍ͯΔ͔Ͳ͏͔ʹݶΒͣɺશͯͷςʔϚʹ *.info.yml͕ඞ ཁͰ͢ɻ – Ϧʔδϣϯ –
ϕʔεςʔϚͷϦʔδϣϯΛར༻͍ͨ͠߹ɺ*.info.ymlʹϦʔδϣϯઃఆΛί ϐʔ͢Δ͜ͱͰߦ͍·͢ɻ – ColorϞδϡʔϧ – logo.svg – favicon.ico
ࢀߟ) ColorϞδϡʔϧͱ ରԠ͢ΔςʔϚͷΧϥʔε ΩʔϚΛมߋͰ͖ΔΑ͏ʹ ͳΓ·͢ɻ
ϕʔεςʔϚͷࢦఆํ๏ name: Marucha type: theme description: '·ΔͷͨΊͷΧελϜςʔϚ' core_version_requirement: ^8 ||
^9 base theme: classy *.info.yml ͷbase themeΩʔʹʹ͍ͨ͠ςʔϚͷϚγϯ໊Λࢦఆ͢Δ͜ͱͰϕʔ εςʔϚΛࢦఆ͠·͢ɻ ྫʣϕʔεςʔϚʹίΞͷClassyςʔϚΛ༻͢Δ߹
αϒςʔϚͷαϒςʔϚ – αϒςʔϚผͷαϒςʔϚͷࢠʹ͢Δ͜ͱ͕ՄೳͰ͢ɻ – ͜ͷܧঝͷνΣʔϯʹ੍ݶ͋Γ·ͤΜɻ ThemeA ThemeB ThemeC ThemeF ࢠ
ࢠ ࢠ ThemeD ThemeE ࢠ ࢠ
BartikΛϕʔεςʔϚʹࢦఆͯ͠ΈΑ͏ – *.info.ymlͰBartikΛϕʔεςʔϚʹࢦఆ͠Α͏ – Bartikͱಉ͡ϦʔδϣϯΛ༻͢ΔʹͲ͏͢Εྑ͍͔ – ͲΜͳϦιʔε͕Bartik͔Βܧঝ͞Ε͍ͯΔ͔֬ೝ͠Α͏ – ϨΠΞτΛ͍ͬͯ͡ΈΑ͏ ԋश
※BartikϕʔεςʔϚʹద͞ͳ͍ͷͰɺຊ൪αΠτͰBartikΛϕʔεςʔϚʹ ར༻͢Δͷ߇͑·͠ΐ͏ɻ
ϕʔεςʔϚΛ༻͢Δ
ίΞςʔϚΛϕʔεςʔϚʹར༻͢Δ – Classy – Stable͕ϕʔεςʔϚͱͯ͠ࢦఆ͞Ε͓ͯΓɺStableΛ֦ுͯ͠ɺϞμϯͳϨΠΞτΛ࣮ݱ͢ ΔͨΊʹཱͭଟ͘ͷΫϥε͕༻ҙ͞Ε͍·͢ɻ – ΧελϜςʔϚΛ࡞͢ΔࡍͷϕʔεςʔϚͱͯ͠ར༻Ͱ͖·͢ɻ –
Stable – Classyಉ༷ɺΧελϜςʔϚΛ࡞͢ΔࡍͷϕʔεςʔϚͱͯ͠ར༻Ͱ͖·͢ɻ࠷খݶͷCSSΫ ϥεͰΑΓΫϦʔϯͳΞϓϩʔνΛऔΓ͍ͨ߹ʹબ͞Ε·͢ɻ – StableͱผʹɺDrupal 9͔ΒStable 9(stable9)ͱ͍͏ίΞςʔϚ͕༻ҙ͞Ε·ͨ͠ɻStable͔Β ͍͔ͭ͘ͷมߋ͕Ճ͑ΒΕ͍ͯ·͢ɻStableDrupal 10Ͱআ͞ΕΔ༧ఆͰ͢ɻ – Stark – ओʹಈ࡞֬ೝɺτϥϒϧγϡʔςΟϯάΛతͱͯ͠ఏڙ͞Ε·͢ɻCSSઃఆ͞Ε͍ͯ·ͤ Μɻ
ίϛϡχςΟͰఏڙ͞ΕΔϕʔεςʔϚͷྫ https://www.drupal.org/project/project_theme ͔Β୳͢͜ͱ͕Ͱ͖·͢ɻ – Barrio – Bootstrapόʔδϣϯ4/5ʹରԠͨ͠ϕʔεςʔϚɻ – Radix
– Bootstrapόʔδϣϯ4/5ɺSassɺES6, BrowserSync͕Έࠐ·ΕͨϕʔεςʔϚɻ – W3CSS Theme – W3.CSSϑϨʔϜϫʔΫΛར༻ͨ͠ϕʔεςʔϚɻ
ࢀߟ) Drupal 10ͰͷςʔϚ։ൃ • Classyͷஔ͖͑Λతͱͯ͠ɺ৽͍͠ΧελϜςʔϚͷ࡞ϓϩηεͱϕʔεςʔϚΛܭը • ελʔλʔΩοτςʔϚαϒςʔϚͷϕʔεςʔϚͱͯ͠ػೳ͢ΔͷͰͳ͘ɺςʔϚΛ৽͘͠࡞ ͢Δࡍʹίϐʔ͞ΕΔςʔϚͱͯ͠ػೳ͢Δ • ςʔϚΛίϐʔ͢ΔͨΊͷίϚϯυΛDrupalίΞͰఏڙ
◦ $ php core/scripts/drupal generate-theme mytheme ςʔϚ։ൃͷͨΊͷελʔλʔΩοτ͕ొ https://www.drupal.org/about/core/blog/new-starterkit-will-change-how-you-create-themes-in-drupal-10 https://www.drupal.org/project/drupal/issues/3050384
࿅श
࿅श1 ʮελʔλʔςʔϚʯͷઆ໌ͱͯ͠ਖ਼͍͠ͷΛ2ͭબΜͰ͍ͩ͘͞ɻ 1. αϒςʔϚ͕ґଘ͢ΔςʔϚɻ 2. ClassyΛجʹͨ͠ΧελϚΠζՄೳͳςʔϚɻ 3. ΧελϜςʔϚΛ࡞͢Δࡍʹඞͣ༻͢ΔςʔϚɻ 4. ϕʔεςʔϚͷผ໊ɻ
࿅श1 ʮελʔλʔςʔϚʯͷઆ໌ͱͯ͠ਖ਼͍͠ͷΛ2ͭબΜͰ͍ͩ͘͞ɻ 1. αϒςʔϚ͕ґଘ͢ΔςʔϚɻ 2. ClassyΛجʹͨ͠ΧελϚΠζՄೳͳςʔϚɻ 3. ΧελϜςʔϚΛ࡞͢Δࡍʹඞͣ༻͢ΔςʔϚɻ 4. ϕʔεςʔϚͷผ໊ɻ
1, 4
࿅श2 αϒςʔϚ͕ܧঝ͠ͳ͍ͷԿͰ͔͢ʁ2ͭબ͍ͯͩ͘͠͞ɻ 1. ελΠϧγʔτ 2. JavaScript 3. *.info.yml 4. logo.svg
5. ςϯϓϨʔτϑΝΠϧ
࿅श2 αϒςʔϚ͕ܧঝ͠ͳ͍ͷԿͰ͔͢ʁ2ͭબ͍ͯͩ͘͠͞ɻ 1. ελΠϧγʔτ 2. JavaScript 3. *.info.yml 4. logo.svg
5. ςϯϓϨʔτϑΝΠϧ 3, 4
࿅श3 αϒςʔϚͰϕʔεςʔϚͷϦʔδϣϯΛ༻͢ΔʹͲ͏͢Εྑ͍Ͱ͔͢ʁ 1. ϦʔδϣϯαϒςʔϚʹܧঝ͞ΕΔͨΊɺԿ͠ͳͯ͘ྑ͍ɻ 2. αϒςʔϚଆͷ*.info.ymlͰɺϕʔεςʔϚͱಉ͡ϦʔδϣϯΛఆٛ͢Δඞཁ ͕͋Δɻ 3. αϒςʔϚଆͷ*.info.ymlͰɺregionΩʔʹϕʔεςʔϚͷϚγϯ໊Λࢦఆ͢ Δඞཁ͕͋Δɻ
࿅श3 αϒςʔϚͰϕʔεςʔϚͷϦʔδϣϯΛ༻͢ΔʹͲ͏͢Εྑ͍Ͱ͔͢ʁ 1. ϦʔδϣϯαϒςʔϚʹܧঝ͞ΕΔͨΊɺԿ͠ͳͯ͘ྑ͍ɻ 2. αϒςʔϚଆͷ*.info.ymlͰɺϕʔεςʔϚͱಉ͡ϦʔδϣϯΛఆٛ͢Δඞཁ ͕͋Δɻ 3. αϒςʔϚଆͷ*.info.ymlͰɺregionΩʔʹϕʔεςʔϚͷϚγϯ໊Λࢦఆ͢ Δඞཁ͕͋Δɻ
2
࿅श4 αϒςʔϚͰϕʔεςʔϚΛೝࣝͤ͞Δํ๏࣍ͷ͏ͪͲΕͰ͔͢ʁ 1. αϒςʔϚͷϚγϯ໊Λɺ{ϕʔεςʔϚͷϚγϯ໊}-subtheme ͱ໋໊͢Δ͜ͱͰ ೝࣝͤ͞Δɻ 2. ϕʔεςʔϚͷσΟϨΫτϦʹαϒςʔϚ༻ͷσΟϨΫτϦΛ࡞͠ɺͦ͜Ͱ ςʔϚΛ࡞͢Δɻ 3.
ϕʔεςʔϚͷ*.info.ymlϑΝΠϧͰαϒςʔϚΛࢦఆ͢Δɻ 4. αϒςʔϚͷ*.info.ymlϑΝΠϧͰϕʔεςʔϚΛࢦఆ͢Δɻ
࿅श4 αϒςʔϚͰϕʔεςʔϚΛೝࣝͤ͞Δํ๏࣍ͷ͏ͪͲΕͰ͔͢ʁ 1. αϒςʔϚͷϚγϯ໊Λɺ{ϕʔεςʔϚͷϚγϯ໊}-subtheme ͱ໋໊͢Δ͜ͱͰ ೝࣝͤ͞Δɻ 2. ϕʔεςʔϚͷσΟϨΫτϦʹαϒςʔϚ༻ͷσΟϨΫτϦΛ࡞͠ɺͦ͜Ͱ ςʔϚΛ࡞͢Δɻ 3.
ϕʔεςʔϚͷ*.info.ymlϑΝΠϧͰαϒςʔϚΛࢦఆ͢Δɻ 4. αϒςʔϚͷ*.info.ymlϑΝΠϧͰϕʔεςʔϚΛࢦఆ͢Δɻ 4
ຊͷΞδΣϯμऴྃ
ΞδΣϯμ 1. ςʔϚͷܧঝʹ͍ͭͯ 2. ϕʔεςʔϚΛ༻͢Δ 3. ࿅श
None