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
HTML・CMSから考えるコンポーネント化について
Search
redamoon
January 27, 2018
460
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
HTML・CMSから考えるコンポーネント化について
redamoon
January 27, 2018
More Decks by redamoon
See All by redamoon
「速くなった」では足りない ─ Cursor Meetup Sapporo で話した、弥生の Cursor 組織導入1年
redamoon
0
660
もくテク_AI駆動開発の標準化を進める_-_プロセス整備とルール選定基準の整理.pdf
redamoon
0
2.3k
MTDDCMeetupTokyo_2023_LT.pdf
redamoon
0
190
Supabase + Nuxt3 の実装素振りで チャットアプリを作ってみた
redamoon
1
430
Movable Type を Headless CMS として活用した Jamstack開発手法
redamoon
0
250
Data APIを活用したWEBサイト構築手法
redamoon
1
79
sacss110_pdf.pdf
redamoon
1
160
Vue meet up sapporo Vue + Storybook導入について
redamoon
0
72
Movable Type 7を触ってみた
redamoon
0
250
Featured
See All Featured
Paper Plane (Part 1)
katiecoart
PRO
2
12k
Principles of Awesome APIs and How to Build Them.
keavy
128
18k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Odyssey Design
rkendrick25
PRO
2
890
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
610
Embracing the Ebb and Flow
colly
88
5.2k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
How to Ace a Technical Interview
jacobian
280
24k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Amusing Abliteration
ianozsvald
1
360
Exploring anti-patterns in Rails
aemeredith
4
540
Rebuilding a faster, lazier Slack
samanthasiow
85
9.7k
Transcript
)5.-ɾ$.4͔Βߟ͑ΔίϯϙʔωϯτԽʹ͍ͭͯ Frontend Nagoya #3 2018.01.27 () at ϕʔεΩϟϯϓ໊ݹ
None
ܽߤܾఆޙʹΕʂ ࡳຈ͔Β໊ݹʹདྷΔͷʹɻɻɻ ͔͔࣌ؒΓ·ͨ͠ʂʂʂ
ొஃܾఆͷ࢝·Γɻɻ ʢϜAʣʮ݄̍Ջʁʁʯ
ɾؔޱ༐थ ɾגࣜձࣾ)".803,4ϑϩϯτΤϯυΤϯδχΞ ɾओͳۀɿ)5.-ɾ$44ɾ+BWB4DSJQUɾ$.4ߏங ɾ͖ͳ$.4ɿ.PWBCMF5ZQFɾ$SBGUDNT ɾ5XJUUFSɿ!SFEBNPPO ɾ(JUIVCɿSFEBNPPO
IUUQTSFEBNPPOOFU
ࠓ͢͜ͱͱ͞ͳ͍͜ͱ
͢͜ͱͱ͞ͳ͍͜ͱ ɾίϯϙʔωϯτԽʹ͍ͭͯͷ֓೦తߟ͑ํͳ ɾۀϫʔΫϑϩʔʹϑΥʔΧεͨ͠༰ ɾ$.4Խ͢Δલஈ֊Ͱ)5.-͕Ͳ͏͋Δ͖͔ ˙͞ͳ͍͜ͱ ˙͍ͨ͜͠ͱ
$.4Խ·Ͱͷఔ σβΠϯ ΫϥΠΞϯτʹఏग़͢ΔඞཁͳϖʔδͷσβΠϯ੍࡞ ίʔσΟϯάʢϓϨϏϡʔ༻ʣ ΫϥΠΞϯτʹઌߦͯ͠ݟ͓ͤͯ͘੩తͷϖʔδ $.4Խ $.4ಠࣗͷςϯϓϨʔτه๏ʢλάͳͲʣʹԊͬͨܗͰΈࠐΉ
$.4Խ͢ΔͨΊʹʁ
)5.-σʔλ $.4Խ )5.-σʔλΛ$.4ಠࣗλάɾςϯϓϨʔτʹม )5.-͔ͳΒͣඞཁͳఔ $.4Խ͢ΔͨΊʹʁ
<div class="card card--blue"> <figure class="card__element"> <figcaption>Ωϟϓγϣϯ01ͷςΩετΩϟϓγϣϯ01ͷςΩετ</figcaption> <img src="dummy01.jpg" alt="Ωϟϓγϣϯ01ͷςΩετ"> </figure>
<a class="card__button" href=“/path/“>Ϙλϯ01</a> </div> <div class="card card--black"> <figure class="card__element"> <figcaption>Ωϟϓγϣϯ02ͷςΩετΩϟϓγϣϯ02ͷςΩετ</figcaption> <img src="dummy02.jpg" alt="Ωϟϓγϣϯ02ͷςΩετ"> </figure> <a class=“card__button" href=“/path/“>Ϙλϯ02</a> </div> )5.-σʔλ
None
$.4Խʢ.PWBCMF5ZQFͷྫʣ <mt:Ignore>Layout Card Block Component</mt:Ignore> <mt:SetVarTemplate name="_base_card" key="base_card" note="Layout Card
Block Component"> <div class="card <mt:Var name="_base_card_class-modifier" />"> <figure class="card__element"> <figcaption><mt:Var name="_base_card_text" /></figcaption> <img src="<mt:Var name="_base_card_img" />" alt="<mt:Var name="_base_card_text" />"> </figure> <a class="card__button" href="<mt:Var name="_base_card_button-link" />"><mt:Var name="_base_card_button-name" /></a> </div> </mt:SetVarTemplate>
$.4Խʢ.PWBCMF5ZQFͷ߹ʣग़ྗ <mt:Ignore>Layout Card Block Component Output</mt:Ignore> <mt:Var name="_base_card" key="button" _base_card_class-modifier="card--blue"
_base_card_text="Ωϟϓγϣϯ01ͷςΩετΩϟϓγϣϯ01ͷςΩετ" _base_card_img="dummy01.jpg" _base_card_button-link="/path/" _base_card_button-name="button_name" /> <mt:Var name="_base_card" key="button" _base_card_class-modifier="card--black" _base_card_text="Ωϟϓγϣϯ02ͷςΩετΩϟϓγϣϯ02ͷςΩετ" _base_card_img=“dummy02.jpg" _base_card_button-link="/path/" _base_card_button-name="button_name" />
੩తίʔσΟϯά͔Β$.4Խ͢Δཧ༝
੩తίʔσΟϯά͔Β$.4Խ͢Δཧ༝ ɾαʔό͕༻ҙ͞Εͯͳ͍έʔεʢҊ݅ʹΑͬͯఏڙλΠϛϯάҟͳΔʣ ɾίʔσΟϯά্ͷόάͳͲΛۃྗແͨ͘͢ΊʢखΓΛ࠷খݶʹ͢Δʣ ɾ֬ೝݩʢΫϥΠΞϯτ൛ݖݩͳͲʣ͕ଟ͍έʔεʢେखͷӡ༻ʣ ɾผ$.4ʹ8&#αΠτΛҠߦ͢ΔέʔεʢϦχϡʔΞϧͰͳ͍ϨΞͳέʔεʣ
ίʔσΟϯάͷ࣭͕$.4Խͷ࣭ʹӨڹ͢Δ
ݱͷྲྀΕʢ͕ࣗۀքೖͬͨࠒ͘Β͍ʣ ɾඞཁͳϖʔδͷσβΠϯΛ͢Δ ɾϏδϡΞϧʹඞཁͳϘλϯը૾ͳͲͷॻ͖ग़͠FUD ɾඞཁͳϖʔδΛେྔʹίʔσΟϯάʢ࣌ʹԿສϖʔδ͠͠ʣ ɾίʔσΟϯάσʔλΛ$.4ԽʢςʔϚԽʣ
࠷ۙͷίʔσΟϯάۀͷݱʁ ੩తαΠτδΣωϨʔλΛ༻͢Δ͜ͱͰ ۀͷޮԽΛਤΔ͜ͱ͕ҰൠԽ͞Ε͖ͯͨ
None
)5.-σʔλʢ/VOKVDLTͷ߹ʣ {# Layout Card Block Component #} {% macro _base_card(_base_card_class-modifier,_base_card_text,_base_card_img,_base_card_button-
link,_base_card_button-name) %} <div class="card {{ _base_card_class-modifier }}"> <figure class="card__element"> <figcaption>{{ _base_card_text }}</figcaption> <img src="{{ _base_card_img }}" alt="{{ _base_card_text }}"> </figure> <a class="card__button" href="{{ _base_card_button-link }}"> {{ _base_card_button-name }} </a> </div> {% endmacro %}
)5.-σʔλʢ/VOKVDLTͷ߹ʣग़ྗ {# Layout Card Block Component Setting #} {% import
'_partial/component.html' as component %} {# Layout Card Block Component Output #} {{ component._base_card('card--blue', 'text', 'dummy01.jpg' '/path/', 'button-name') }} {{ component._base_card('card--black', 'text', 'dummy02.jpg' '/path/', 'button-name') }}
%&.0
੩తαΠτδΣωϨʔλΛ͏͜ͱͰมΘͬͨ͜ͱ ɾඞཁͳେྔϖʔδϨΠΞτΛ࡞ΒͣʹߏͷύʔπԽ͕Մೳ ɾมߋՕॴͷࠩΛඞཁ࠷ݶʹͳͬͨ ɾ$.4Խͤͣʹ)5.-͚ͩͰཧɾӡ༻Մೳ ɾ$.4ԽͷఔͰඞཁͳϩδοΫͳͲͷݟ௨͕͠ྑ͘ͳͬͨ
ͱߏͷׂ
ͱߏͷׂ <div class="card card--blue"> <figure class="card__element"> <figcaption>Ωϟϓγϣϯ01ͷςΩετΩϟϓγϣϯ01ͷςΩετ</figcaption> <img src="dummy01.jpg" alt="Ωϟϓγϣϯ01ͷςΩετ">
</figure> <a class="card__button" href=“/path/“>Ϙλϯ01</a> </div> ɾߏʢ)5.-ʣͷཧΛҰͭʹ·ͱΊΔ ɾҙͰมߋՄೳʹ͢Δ ɾ܁Γฦ͢෦ϧʔϓͳͲΛ׆༻͢Δ
Ͳ͏͍ͬͨ෦Λ ίϯϙʔωϯτԽ͓ͯ͘͠ͷ͕͍͍ͷ͔ʁ ɾݟग़͠ ɾςΩετͷ০ ɾ൚༻తͳϒϩοΫϨΠΞτ ɾϘλϯ ɾهࣄͷϦετFUD ༻ස͕ଟ͍)5.-σʔλΛίϯϙʔωϯτԽ͓ͯ͘͠
෦Խ͞Εͨ)5.- $.4Խ ੩తαΠτδΣωϨʔλͰ෦Խ͞Εͨ )5.-Λݩʹ$.4Խ͍ͯ͘͠ ݱࡏͷߏஙϑϩʔ
ίϯϙʔωϯτԽͨ͠)5.-ͷϝϦοτ ɾ)5.-มߋʹରԠ͍͢͠ ɾσʔλͷఆٛଞͷҊ݅ͷίʔσΟϯάͰ༻Մೳ ɾύʔπԽ͞Ε͍ͯΔ͜ͱͰ$.4ͷΈࠐΈ͍͢͠ ɾύʔπ໊ͷ໋໊͕͢Ͱʹܾ·͍ͬͯΔͨΊམͱ͠ࠐΈ͍͢
ίʔσΟϯάσʔλͱ$.4ͱ ྑ͍ؔͰ͋Γ͍ͨͰ͢Ͷ
IUUQTNP[JMMBHJUIVCJPOVOKVDLT IUUQTHJUIVCDPNSFEBNPPOGSPOUFOEOBHPZBWPM IUUQTHJUIVCDPNSFEBNPPONUUIFNFTUBSUFSLFU IUUQTSFEBNPPOOFU