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
レスポンシブデザインに見受けられる4つの段階 ~実現のためのZurb Foundation~
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
kohki-shikata
October 29, 2016
Design
530
0
Share
レスポンシブデザインに見受けられる4つの段階 ~実現のためのZurb Foundation~
CSS Talk vol.1での発表内容です
kohki-shikata
October 29, 2016
Other Decks in Design
See All in Design
【pmconf2025】PdMの頭の中を見える化する体験構造図
kamechi7222222
1
2.2k
Mandalyn_DT5001_FinalAssignment.pdf
lynteo
0
210
2026年の勢い / Momentum for 2026
bebe
0
420
kintone Style Book
kintone
6
13k
Diverse Design Team Deck
diverse
0
1.4k
デザイナーとエンジニアで 同じ山に登ろう
moco1013
0
210
TUNAG BOOK 2024
stmn
PRO
0
1.5k
Treasure_Hunting
solmetts
0
380
「見せる」登壇資料デザインの極意
takanorip
3
750
デザインとフロントエンドの境界が融ける Claude Code × Figma
littlebusters
1
2.4k
AI時代に必要な アイデアの形
uxman
0
170
【サイバーエージェント】Creative Switch 会社説明資料
cyberagent_creators
0
5.9k
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
360
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.2k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
100
Abbi's Birthday
coloredviolet
2
7.2k
How to build a perfect <img>
jonoalderson
1
5.4k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
370
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
680
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The Language of Interfaces
destraynor
162
26k
Visualization
eitanlees
150
17k
How to Ace a Technical Interview
jacobian
281
24k
WENDY [Excerpt]
tessaabrams
10
37k
Transcript
Ϩεϙϯγϒɺࢦ͖̐ͭ͢ͷஈ֊ ʙ࣮ݱͷͨΊͷZurb Foundationʙ 2016/10/29ɹCSS Talk vol.1 @ TAM Coworking
ࣗݾհ ͔ͨ͜͠͏͖ גࣜձࣾND&I ϓϥϯφʔ ※࠷ۙɺ΄ͱΜͲιʔείʔυΛॻ͍ͯ·ͤΜ
ࣗݾհ ͔ͨ͜͠͏͖ גࣜձࣾND&I ϓϥϯφʔ concrete5Ҋ͔݅Γͬͯ·͢ 10% 90% concrete5 ͦͷଞ
ࣗݾհ ͔ͨ͜͠͏͖ גࣜձࣾND&I ϓϥϯφʔ ϑϦʔϥϯεͷάϥϑΟοΫσβΠφʔ →ςϨϏہͷCGσβΠφʔ →ϑϦʔϥϯεͰWeb&ө૾ͷσβΠφʔ →๏ਓԽʴconcrete5ΠϯςάϨʔτύʔτφʔ →ݱ৬ͷձࣾʹJOIN ܦྺ
concrete5Ҋ͔݅Γͬͯ·͢ झຯɿమಓɾϐΞϊ
ࣗݾհ ͔ͨ͜͠͏͖ גࣜձࣾND&I ϓϥϯφʔ ϑϦʔϥϯεͷάϥϑΟοΫσβΠφʔ →ςϨϏہͷCGσβΠφʔ →ϑϦʔϥϯεͰWeb&ө૾ͷσβΠφʔ →๏ਓԽʴconcrete5ΠϯςάϨʔτύʔτφʔ →ݱ৬ͷձࣾʹJOIN ܦྺ
concrete5Ҋ͔݅Γͬͯ·͢ ࠷ۙɺ݁ࠗ͠·ͨ͠ ࠺͔ΒʮϫΠ͘ΜʯͱݺΕͯ·͢ झຯɿమಓɾϐΞϊ
ΞδΣϯμ ϨεϙϯγϒσβΠϯʹ ݟड͚ΒΕΔ̐ͭͷஈ֊ Zurb Foundationʹ͍ͭͯ
ࠓ͓͢Δ͜ͱͷલఏ WebαΠτʢ΄͒Ή͐͡ʣ Λલఏʹ͠·͢ɻ SPAͱ͔ɺ WebγεςϜͷͰ͋Γ·ͤΜɻ ͦ͏͍͏ͷΛظ͞Ε͍ͯͨํɺ ΰϝϯφαΠ
ࠓ͓͢Δ͜ͱͷલఏ WebαΠτʢ΄͒Ή͐͡ʣ Λલఏʹ͠·͢ɻ ͋ͱɺͪΐͬͱJSͷೖΓ·͢ɻ Pure CSS͡Όͳͯ͘ɺΰϝϯͶʂ
ϨεϙϯγϒσβΠϯͬͯʁ • ʮαΠτΛεϚϗରԠ͢ΔͨΊͷٕज़ʯ • ʮϫϯιʔεɾϚϧνϢʔεͰݮͰ͖Δʯ • ʮϝσΟΞΫΤϦΛͨ͘͞Μ࡞Εɺ ɹεϚϗ͚ͩ͡Όͳ͘ɺλϒϨοτʹରԠͰ͖Δʯ • ʮGoogle͕ਪͯ͠ΔΜͩΑͶʯ
• ʮͦͷҰํͰɺσβΠϯʹ੍͕…ʯ • ʮιʔεͷංେԽ͕…ʯ
ϨεϙϯγϒσβΠϯɺ͜͜Ͱͷఆٛ 8FCαΠτΛ εϚϗରԠͤ͞ΔͨΊͷΞϓϩʔνٕज़ 2. CSSϝσΟΞΫΤϦΛ֩ͱ͢Δ 3. ϫϯιʔεɾϚϧνϢʔε
εϚϗରԠͷΞϓϩʔνٕज़ • UAذ • αʔόʔαΠυ • ϛυϧΣΞͰߦ͏ ʢPHPRubyʣ • WebαʔόʔͰߦ͏
ʢ.htaccessʣ • ΫϥΠΞϯταΠυʢJSʣ • Ϩεϙϯγϒʢը໘෯ʣ Ί ͬ ͪ Ό ͍ ͬ ͺ ͍ ͋ Δ Ͷ ʂ ࠓͪΖΜͬͪ͜ͷʂ
ϨεϙϯγϒσβΠϯʹ ݟड͚ΒΕΔ̐ͭͷஈ֊ ϑΣʔζ1 ϑΣʔζ2 ϑΣʔζ3 ϑΣʔζ4
ϨεϙϯγϒσβΠϯʹ ݟड͚ΒΕΔ̐ͭͷஈ֊ ϑΣʔζ1 ϑΣʔζ2 ϑΣʔζ3 ϑΣʔζ4 μϝϙϯγϒ
μϝϙϯγϒͷಛ • ίϯςϯπ͕ը໘͔ΒΈग़͢ɻϨΠΞτ͔ΒΈग़͢ɻ • ίϯςϯπಉ͕࢜ॏͳΔɻݟ͑ͳ͍෦͕ੜ͡Δ • ίϯςϯπը૾ͷαΠζ͕ෆࣗવʹେ͖͘ͳͬͨΓখ͘͞ͳͬͨΓ͢Δ • ίϯςϯπը૾ͷΞεϖΫτൺ͕ਖ਼͘͠࠶ݱ͞Εͳ͍
࢜ࢁʹొΔͨ Ίʹඞཁͳͷ ಓ۩"NB[POฤ ެ։ɿ ,PILJ ෆମࡋ
࢜ࢁʹొΔͨ Ίʹඞཁͳͷ ಓ۩"NB[POฤ ެ։ɿ ,PILJ ळɺͦΕొࢁͷقઅɻ࢜ࢁʹઓ͠Α͏ͱ ͢Δʹɺͪΐ͏Ͳ͍͍قઅͰ͢ΑͶɻࠓ ɺ࢜ࢁʹΞλοΫ͢ΔͨΊʹඞཁͳಓ۩Λ Amazon͚ͩͰἧ͑Δ͜ͱʹνϟϨϯδͯ͠Έ· ͠ΐ͏ʂɹωοτͰҙ֎ͱἧ͑Δ͜ͱ͕ग़དྷ
ΔΜͰ͢Αʂ ෆମࡋ
࢜ࢁʹొΔͨ Ίʹඞཁͳͷ ಓ۩"NB[POฤ ެ։ɿ ,PILJ ෆମࡋ
࢜ࢁʹొΔͨ Ίʹඞཁͳͷ ಓ۩"NB[POฤ ެ։ɿ ,PILJ ෆମࡋ
μϝϙϯγϒͷಛ wJNQPSUBOUͷཛྷ wܧঝ͕ͱͬͪΒ͔ͬͯ͠·͍ɺ ϝϯςφϏϦςΟ͕ۃʹѱ͍ɻ
ϨεϙϯγϒσβΠϯʹ ݟड͚ΒΕΔ̐ͭͷஈ֊ ϑΣʔζ1 ϑΣʔζ3 ϑΣʔζ4 μϝϙϯγϒϙϯγϒ ϑΣʔζ2
ϙϯγϒͷಛ •ॎʹ߲͕͍άϩφϏ •̐֊ɺ.֊ͱԣʹ͘ͳΔύϯͣ͘Ϧετ •߲ͦͦͷଟ͍ɺ αΠτϚοϓతͳϑολʔάϩφϏɻ
αϯϓϧגࣜձࣾ ձࣾ֓ཁ औѻ Ωϟϯϖʔϯ Ωϟϯϖʔϯ ͓͍߹Θͤ ݸਓใอޢํ ΞΫηε ࠾༻ใ 06-1234-5678
ฏ9:00~18:00
αϯϓϧגࣜձࣾ ձࣾ֓ཁ औѻ Ωϟϯϖʔϯ $43׆ಈ ͓͍߹Θͤ ݸਓใอޢํ ΞΫηε ࠾༻ใ 06-1234-5678
ฏ9:00~18:00 αϯϓϧגࣜձࣾ ձࣾ֓ཁ औѻ Ωϟϯϖʔϯ $43׆ಈ ΞΫηε ࠾༻ใ ͓͍߹Θͤ ݸਓใอޢํ 06-1234-5678 ฏ9:00~18:00
ϨεϙϯγϒσβΠϯʹ ݟड͚ΒΕΔ̐ͭͷஈ֊ ϑΣʔζ1 ϑΣʔζ4 μϝϙϯγϒ ϑΣʔζ2 ϙϯγϒ ϑΣʔζ3 ΄΅ϙϯγϒ
ϙϯγϒͷಛ • άϩφϏϋϯόʔΨʔϝχϡʔΦϑΩϟϯόεʹ • ը૾߹ʹԠͯ͡ɺΞʔτσΟϨΫγϣϯͷৼΓ͚͕ͳ͞ΕΔ • PC࣌ϓϨʔϯͳςΩετ͕ͩɺSP࣌ɺݟग़͠ͰΞίʔσΟΦϯͳͲ ʢex. Wikipediaʣ
αϯϓϧגࣜձࣾ औѻ $43׆ಈ ͓͍߹Θͤ 06-1234-5678 ฏ9:00~18:00 αϯϓϧגࣜձࣾ ձࣾ֓ཁ औѻ Ωϟϯϖʔϯ
$43׆ಈ ΞΫηε ࠾༻ใ ͓͍߹Θͤ ݸਓใอޢํ ≡
αϯϓϧגࣜձࣾ औѻ $43׆ಈ ͓͍߹Θͤ 06-1234-5678 ฏ9:00~18:00 αϯϓϧגࣜձࣾ ձࣾ֓ཁ औѻ Ωϟϯϖʔϯ
$43׆ಈ ΞΫηε ࠾༻ใ ͓͍߹Θͤ ݸਓใอޢํ ≡ ձࣾ֓ཁ औѻ Ωϟϯϖʔϯ $43׆ಈ ΞΫηε ࠾༻ใ ͓͍߹Θͤ ݸਓใอޢํ
ϨεϙϯγϒσβΠϯʹ ݟड͚ΒΕΔ̐ͭͷஈ֊ ϑΣʔζ1 ϑΣʔζ4 μϝϙϯγϒ ϑΣʔζ2 ϙϯγϒ ϑΣʔζ3 ΄΅ϙϯγϒ Ϩεϙϯγϒ
શͳΔ
Ϩεϙϯγϒͷಛ • ϒϨΠΫϙΠϯτؒͰத్ͳݟͨʹͳΔελΠϧͷղܾ ◦ ࡉ͔͘ϒϨΠΫϙΠϯτΛΔ ◦ ྟ࣌ͷϝσΟΞΫΤϦΛΔ • Ϛεϗόʔ࣌ͷσβΠϯΛλονσόΠεͰผͷදݱͰΞϓϩʔνͤ͞ Δ
◦ ը໘෯͚ͩͰఆͰ͖ͣɺೖྗσόΠεΛஅ͢ΔΈ ʢJSʣ͕ඞཁ શͳΔ
Ϩεϙϯγϒͷಛ • ϒϨΠΫϙΠϯτؒͰத్ͳݟͨʹͳΔελΠϧͷղܾ ◦ ࡉ͔͘ϒϨΠΫϙΠϯτΛΔ ◦ ྟ࣌ͷϝσΟΞΫΤϦΛΔ • Ϛεϗόʔ࣌ͷσβΠϯΛλονσόΠεͰผͷදݱͰΞϓϩʔνͤ͞ Δ
◦ ը໘෯͚ͩͰఆͰ͖ͣɺೖྗσόΠεΛஅ͢ΔΈ ʢJSʣ͕ඞཁ શͳΔ
͜͜·Ͱͷ·ͱΊ μϝϙϯγϒ ϙϯγϒ ΄΅ϙϯγϒ Ϩεϙϯγϒ ೲϨϕϧ × ̋ ̋ ˕
ಛ ෆମࡋ UI͕ ચ࿅͞Εͯͳ͍ ͍ΘΏΔ Ϩεϙϯγϒ Ϩεϙϯγϒ͚ͩͲ ؾ͕͖͍ͯΔ ඞཁͳࣝ CSSͷجຊతͳཧղ ࠨهʹಉ͡ ϝσΟΞΫΤϦɺJSɺ ϑϨʔϜϫʔΫͷཧղ ࠨهͷ͞ΒͳΔ ਂ͍ཧղ ސ٬ຬ ೲෆՄ த ߴ ͜ͷΜΛࢦͦ͏
ͱ͜ΖͰ…
ૣ͘ؼΕͯ·͔͢ʁ
ૣ͘ؼΕͯ·͔͢ʁ పఈతʹޮԽ͢Δ
ࢲͷ੍࡞ελϯε 1. ̋̋ͷ࠶ൃ໌͠ͳ͍ 2. ̋̋ͷݞʹͷΔ 3. ̋̋Λ݉ͶΔ
ंྠͷ࠶ൃ໌͠ͳ͍ Don’t reinvent the wheel طʹ͋Δͷɺ͔̍ΒΘͳ͍ ૉࡐɺΞϦϞϊͷྲྀ༻ Φʔϓϯιʔεͷར༻ɺ ޮՌతͳंྠ࠶ൃ໌ͷճආ
ࢲͷ੍࡞ελϯε 1. ंྠͷ࠶ൃ໌͠ͳ͍ 2. ̋̋ͷݞʹͷΔ 3. ̋̋Λ݉ͶΔ
ڊਓͷݞʹͷΔ ༸ͷ͜ͱΘ͟ ઌਓͷੵΈॏͶͨൃݟʹج͍ͮͯ Կ͔Λൃݟ͢Δ͜ͱΛࢦ͢ Φʔϓϯιʔεɺ Ғେͳʮڊਓʯ ۦஞ͍͚ͯ͠·ͤΜ
ࢲͷ੍࡞ελϯε 1. ंྠͷ࠶ൃ໌͠ͳ͍ 2. ڊਓͷݞʹͷΔ 3. େখΛ݉ͶΔ
͞Βʹ… ϓϦϓϩηοαͷ׆༻ HTMLɹ→ɹjade(pug) CSSɹɹ→ɹSass(SCSS) ࢄίʔσΟϯά GitʢձࣾͰBitbucketΛར༻ʣ 伱ؒʹۭ͍ͨ Ϧιʔεͷೖ͕Մೳ
None
WebαΠτ͖ͷػೳ͕࠷ॳ͔Β༻ҙ͞Ε͍ͯΔ EqualizerɺInterchangeɺBlockGrid Sass(SCSS)ͰͷΧελϚΠζ͕લఏ ϒϨΠΫϙΠϯτΛมߋՄೳ ϓϩδΣΫτਐߦதͷมߋՄೳ ϒϨΠΫϙΠϯτJSʹ͢͜ͱͰ͖Δ window.resizeͰൃՐ͠ɺཁૉͷૢ࡞ͳͲ͕Մೳ
WebαΠτ͖ͷػೳ͕࠷ॳ͔Β༻ҙ͞Ε͍ͯΔ EqualizerɺInterchangeɺBlockGrid Sass(SCSS)ͰͷΧελϚΠζ͕લఏ ϒϨΠΫϙΠϯτΛมߋՄೳ ϓϩδΣΫτਐߦதͷมߋՄೳ ϒϨΠΫϙΠϯτJSʹ͢͜ͱͰ͖Δ window.resizeͰൃՐ͠ɺཁૉͷૢ࡞ͳͲ͕Մೳ ͨ͘͞Μ͋Γ͗ͯ͢ ޠΓਚͤ͘ͳ͍ʂ
WebαΠτ͖ͷػೳ͕࠷ॳ͔Β༻ҙ͞Ε͍ͯΔ EqualizerɺInterchangeɺBlockGrid Sass(SCSS)ͰͷΧελϚΠζ͕લఏ ϒϨΠΫϙΠϯτΛมߋՄೳ ϓϩδΣΫτਐߦதͷมߋՄೳ ϒϨΠΫϙΠϯτJSʹ͢͜ͱͰ͖Δ window.resizeͰൃՐ͠ɺཁૉͷૢ࡞ͳͲ͕Մೳ ৄ͘͠ ɹɹ࠙ձͰʂ
ͪΐͬ͜ͱφϏ 06-1234-5678 αϯϓϧגࣜձࣾ ձࣾ֓ཁ औѻ Ωϟϯϖʔϯ $43׆ಈ ΞΫηε ࠾༻ใ ͓͍߹Θͤ
ݸਓใอޢํ
ͪΐͬ͜ͱφϏ 06-1234-5678 αϯϓϧגࣜձࣾ ձࣾ֓ཁ औѻ Ωϟϯϖʔϯ $43׆ಈ ΞΫηε ࠾༻ใ ͓͍߹Θͤ
ݸਓใอޢํ αϯϓϧגࣜձࣾ औѻ $43׆ಈ ͓͍߹Θͤ ≡ ձࣾ֓ཁ औѻ Ωϟϯϖʔϯ $43׆ಈ ͓͍߹Θͤ ΞΫηε ࠾༻ใ ݸਓใอޢํ
ͪΐͬ͜ͱφϏ 06-1234-5678 αϯϓϧגࣜձࣾ ձࣾ֓ཁ औѻ Ωϟϯϖʔϯ $43׆ಈ ΞΫηε ࠾༻ใ ͓͍߹Θͤ
ݸਓใอޢํ αϯϓϧגࣜձࣾ औѻ $43׆ಈ ͓͍߹Θͤ ≡ ձࣾ֓ཁ औѻ Ωϟϯϖʔϯ $43׆ಈ ͓͍߹Θͤ ΞΫηε ࠾༻ใ ݸਓใอޢํ μα͘ͳ͍ʁ
ͪΐͬ͜ͱφϏ 06-1234-5678 αϯϓϧגࣜձࣾ ձࣾ֓ཁ औѻ Ωϟϯϖʔϯ $43׆ಈ ΞΫηε ࠾༻ใ ͓͍߹Θͤ
ݸਓใอޢํ αϯϓϧגࣜձࣾ औѻ $43׆ಈ ͓͍߹Θͤ ≡ ձࣾ֓ཁ औѻ Ωϟϯϖʔϯ $43׆ಈ ΞΫηε ࠾༻ใ ͓͍߹Θͤ ݸਓใอޢํ
/ 2. Breakpoints // -------------- $breakpoints: ( small: 0, medium:
640px, large: 1024px, xlarge: 1200px, xxlarge: 1440px, ); $breakpoint-classes: (small medium large); _setting.scss
// header navigation improvement when screen is small function get_replace()
{ var subnav = $('#subnav li'); $('#gnav-parent').append(subnav); $('#subnav').css("display","none"); // console.log("newSize: " + newSize); // console.log("cw: " + cw); } function get_replace_reverse() { var subnav = $('#gnav-parent .subnav- item'); $('#subnav ul').append(subnav); $('#subnav').css("display","block"); console.log("oldSize: " + oldSize); console.log("cw: " + cw); } w.on('changed.zf.mediaquery', function(event, newSize, oldSize) { var cw = Foundation.MediaQuery.current; if(newSize === "small") { get_replace(); } else if(oldSize === "small") { get_replace_reverse(); } }); w.load(function(){ var cw = Foundation.MediaQuery.current; if(cw === "small") { get_replace(); } }) app.jsʢ͜͏ॻ͘ͱɺͪΐͬ͜ͱφϏ͕εϚϗͷ࣌ʹάϩφϏʹೖΔʣ
EQUALIZER ɾJSͷߴ͞ἧ͑ ɾݱͷαΠτ੍࡞ʹඞਢ ɾZF6͔Βɺྻ͝ͱͷߴ͞ἧ͑ʹରԠ ɾjquery.matchHeight͍Βͣʂ ɾશ෦ೖΓʢେখΛ͔ͶΔʣ͔Βɺ ɹߴ͞ἧ͑Λ४උ͢Δ͕࣌ؒݮΔ
INTERCHANGE CodepenͰݟͯΈΑ͏
BLOCK GRID 12Ҏ֎ͰۉʹׂΕΔάϦουΧϥϜ 5ɺ7ͰׂΕΔʂʢૉׂʣ ׂΔͷ࠷େ8 ͚ͩͲɺSass൛Ͱແ੍ݶͰׂΕΔ
ৄ͍͠ใQiitaͰʂ
ZF·ͱΊ FoundationʹɺαΠτ੍࡞دΓͷ ศརͳίϯϙʔωϯτ͕ἧ͍ͬͯΔ શ෦ೖΓͳͷͰɺίϯϙʔωϯτಉ࢜ͷ ׯব͕ى͖ʹ͍͘ ޙ͔Βͷ༷มߋʹڧ͍ʂ
ࠓճͷ·ͱΊ ΄΅ϙϯγϒҎ্ɺ શͳΔϨεϙϯγϒΛࢦͦ͏ʂ ͦΕΛ࣮ݱ͢ΔͨΊʹɺ Zurb FoundationΛͬͯΈΑ͏ʂ