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
0
260
Drupal テーマ開発入門講座 第3回 ベーステーマとサブテーマ
https://www.acquia.com/jp/events/webinars/drupal-theming-development-vol3
アクイアジャパン Acquia Japan
April 06, 2022
Tweet
Share
More Decks by アクイアジャパン Acquia Japan
See All by アクイアジャパン Acquia Japan
Auth0 by OktaとDrupalで実践!認証付きアプリケーションの新しいアプローチ
acquiajp
0
150
Drupal 10.3の新機能紹介ウェビナー
acquiajp
0
210
DrupalCon Portland 2024 総まとめウェビナー
acquiajp
0
82
開発者必見!Acquia Cloud IDEで最高のDrupal開発を始めよう
acquiajp
0
150
触って学ぶ!デジタルアセット管理 Acquia DAM ハンズオンウェビナー
acquiajp
0
30
DrupalCon Lille 2023 総まとめウェビナー
acquiajp
0
55
コンテンツ設計手法で変更に強いアプリケーションを実現する〜ローコードによるWebアプリのバックエンド実装 #CNDF2023
acquiajp
0
360
DrupalCon Pittsburgh 2023 総まとめウェビナー
acquiajp
0
86
Acquia製品概要&Site Studioデモのご紹介
acquiajp
0
99
Other Decks in Programming
See All in Programming
新世界の理解
koriym
0
140
Bedrock AgentCore ObservabilityによるAIエージェントの運用
licux
9
700
TROCCO×dbtで実現する人にもAIにもやさしいデータ基盤
nealle
0
240
大規模FlutterプロジェクトのCI実行時間を約8割削減した話
teamlab
PRO
0
480
GitHub Copilotの全体像と活用のヒント AI駆動開発の最初の一歩
74th
7
2.9k
GUI操作LLMの最新動向: UI-TARSと関連論文紹介
kfujikawa
0
960
フロントエンドのmonorepo化と責務分離のリアーキテクト
kajitack
2
110
エンジニアのための”最低限いい感じ”デザイン入門
shunshobon
0
110
AHC051解法紹介
eijirou
0
580
Flutterと Vibe Coding で個人開発!
hyshu
1
250
UbieのAIパートナーを支えるコンテキストエンジニアリング実践
syucream
2
450
画像コンペでのベースラインモデルの育て方
tattaka
3
1.7k
Featured
See All Featured
BBQ
matthewcrist
89
9.8k
Visualization
eitanlees
146
16k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.4k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
Making the Leap to Tech Lead
cromwellryan
134
9.5k
Typedesign – Prime Four
hannesfritz
42
2.8k
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