Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
6UJMJUZ fi STUͳ$44JO+4 ʙ5BJMXJOE$44ͱ$IBLSB6*Λఴ͑ͯʙ +91SFTT5FDI5BML
Slide 2
Slide 2 text
ࣗݾհ w খּݪΈ͖ͭ!ZBNJU[LZ w औక$%0 w ೝఆεΫϥϜϚελʔ w ͖ͳͷ w 1ZUIPOɺ3FBDUɺΨύΦ
Slide 3
Slide 3 text
ࣗݾհ झຯͰαʔόʔϨεͳ$.4Λ։ൃ ˞$IBLSB6*Λར༻
Slide 4
Slide 4 text
ࣗݾհ ˞͍ͣΕDTTJOKTΛར༻͠ɺεϐʔσΟʔʹ։ൃ +9ͷ3FBDUϓϩδΣΫτ
Slide 5
Slide 5 text
ຊͷςʔϚ 6UJMJUZ fi STUͳ$44JO+4 ͷັྗΛଟ͘ͷਓʹͬͯ΄͍͠ʂ
Slide 6
Slide 6 text
ຊͷςʔϚ 6UJMJUZ fi STUͳ$44JO+4
Slide 7
Slide 7 text
3FBDUʷελΠϧγʔτ 3FBDUͷΞϓϦέʔγϣϯɺ Ͳ͏ͬͯελΠϧద༻͢Δ͔ʁ
Slide 8
Slide 8 text
ύλʔϯ1: ී௨ͷ CSS Λॻ͘ 3FBDU $44
Slide 9
Slide 9 text
ૉͷ CSS ͷ DMBTT໊άϩʔόϧͳఆٛ ˠ໊લিಥͷةݥੑ هࣄͷUJUMF ϥϯΩϯάͷUJUMF ʺ ͔ͤͬ͘ίϯϙʔωϯτࢤͰΘ͚ͯʜ
Slide 10
Slide 10 text
༨ஊɿBEM ͳͲͷΞϓϩʔν άϩʔόϧͳ໊લۭؒʹ໋໊نଇΛ࣋ͪࠐΉ BSUJDMF@@UJUMF SBOLJOH@@UJUMF ʺ
Slide 11
Slide 11 text
ύλʔϯCSS Modules $44 3FBDU DTTΛίϯϙʔωϯτ͝ͱʹ3FBDU͔ΒJNQPSU
Slide 12
Slide 12 text
CSS Modulesͷग़ྗ݁ՌͷΠϝʔδ $44 )5.- DMBTT໊ࣗಈͰϋογϡԽ͞Εɺিಥ͠ͳ͍
هࣄͷλΠτϧ
Slide 13
Slide 13 text
ɾྑ͘ѱ͘$44 ɾελΠϧఆٛDMBTT໊͕ܕ҆શͰͳ͍ ɾ+454ͷมΛຒΊࠐΊͳ͍ $443FBDU5ZQF4DSJQUͰͳ͍ʂ CSS Modules ํࣜͷ ˞ճආࡦҰ෦͋Δ ˠ$44Λ+454্Ͱఆ͍ٛͨ͠
Slide 14
Slide 14 text
ύλʔϯ3: CSS-in-JS • 1ϑΝΠϧͰఆٛՄೳ • styled.λά໊Ͱఆٛ • มຒΊࠐΈՄೳ // Article.tsx import styled from '@emotion/styled' import theme from '...' const Title = styled.div({ fontWeight: 'bold', fontSize: 14, color: theme.colors.primary, }) export const Article: React.FC = () => (
هࣄͷλΠτϧ {/* ... */}
)
Slide 15
Slide 15 text
$44JO+4ͷग़ྗ݁ՌͷΠϝʔδ $44 )5.- $44.PEVMFTಉ༷ɺDMBTT໊ࣗಈͰϋογϡԽ มຒΊࠐ·ΕΔ .css-16qf5wg { font-weight: bold; font-size: 14px; color: #123456; }
هࣄͷλΠτϧ
Slide 16
Slide 16 text
̍ɽάϩʔόϧͳ$44Λॻ͘ ̎ɽ$44.PEVMFTͰJNQPSU͢Δ ̏ɽ$44JO+4 3FBDUΞϓϦέʔγϣϯΛελΠϧ͢Δํ๏ ̏ͭհ ͜͜·Ͱͷ·ͱΊ
Slide 17
Slide 17 text
ຊͷςʔϚ 6UJMJUZ fi STUͳ$44JO+4
Slide 18
Slide 18 text
CSS ͋Δ͋Δ )5.- $44
هࣄͷλΠτϧ
12:23
.title { font-weight: bold; font-size: 14px; } .title-wrapper { display: flex; } ͪΐͬͱσβΠϯௐ͢ΔͨΊͷXSBQQFSരʂ
Slide 19
Slide 19 text
CSS ͷ ̍ɽDMBTT໊͕άϩʔόϧมͰিಥ͍͢͠ DMBTT໊Λߟ͑Δͷ͕ຊ࣭తͰͳ͍ɺ͕͔͔࣌ؒΔ ˠDMBTT໊ม໊ߟ͑ͣʹελΠϦϯά͠Α͏ʂ
Slide 20
Slide 20 text
Tailwind CSS ʹΑΔελΠϦϯά ࣗલͰͷDMBTT໊ఆٛɺ$44ͳͲॻ͔ͣελΠϦϯά ˞ެࣜαΠτΑΓ
Slide 21
Slide 21 text
ຊͷςʔϚ 6UJMJUZ fi STUͳ$44JO+4
Slide 22
Slide 22 text
Utility ͱ… $44Λॻ͔ͣʹελΠϧ͕ద༻Ͱ͖Δɺ $44ΑΓศརͳDMBTT໊ϓϩύςΟ .md:flex .text-gray-500 1$αΠζͷͱ͖ͷΈ fl FY Ϩεϙϯγϒ จࣈ৭ΛʮHSBZʯʹ ςʔϚΧϥʔ .shadow-md ΄Ͳ΄ͲαΠζͷӨ
Slide 23
Slide 23 text
ຊͷςʔϚ 6UJMJUZ fi STUͳ$44JO+4
Slide 24
Slide 24 text
Utility- fi rst ͳϝϦοτ ɾDMBTT໊Λ͍͍ͪͪఆٛ͠ͳͯ͘ྑ͍ ɾϨεϙϯγϒ͕؆୯ʹ࣮ݱͰ͖Δ $44JO+4ͷϝϦοτ ɾ5ZQF4DSJQUͷΈʹΔͷͰܕ҆શͰɺิ͕ޮ͘ ɾมͷຒΊࠐΈͳͲɺ+BWB4DSJQU͕ຒΊࠐΊΔ Utility- fi rst ͳ CSS-in-JS ͷϝϦοτ ʮ྆ํʯͷϝϦοτ͕ڗडͰ͖Δʂ ʴ
Slide 25
Slide 25 text
Chakra UI ͷྫ // Article.tsx import { Box } from '@chakra-ui/react' export const Article = (props) => ( هࣄͷλΠτϧ ) • ελΠϧΛίϯϙʔωϯτͷpropͰఆٛՄೳ • prop໊৭໊ͳͲܕ҆શͰิ͕ޮ͘ • ৭αΠζͷςʔϚΛద༻Մೳ • Ϩεϙϯγϒ؆୯ʹఆٛ ※ ʹ props Λશ෦͢ͱɺࣗલίϯϙʔωϯτ Utility ͑ͯΦεεϝ
Slide 26
Slide 26 text
ิ 6UJMJUZGSJFOEMZͳ$44JO+4ϥΠϒϥϦ IUUQTUFDIKYQSFTTOFUFOUSZVUJMJUZ fi STUDTTJOKT ˒L ˒L ˒L // Article.tsx import { x } from ‘@styled/emotion' export const Article = (props) => ( هࣄͷλΠτϧ ) // Article.tsx import { Box } from '@chakra-ui/react' export const Article = (props) => ( هࣄͷλΠτϧ ) *&࣮࣭ରԠ🙆 *&Ұ෦ରԠ🙆 *&ඇରԠ❌ 6UJMJUZͷΈ 6*ϥΠϒϥϦ6UJMJUZ 6*ϥΠϒϥϦ6UJMJUZ // Article.tsx import { Box } from '@material-ui/core' export const Article = (props) => ( هࣄͷλΠτϧ )
Slide 27
Slide 27 text
༨ஊɿଞͷએݴత UI ϑϨʔϜϫʔΫ @override Widget build(BuildContext context) { return Center( child: Text( 'Click me!', style: TextStyle( fontSize: 60.0, fontWeight: FontWeight.bold, ), ), ); } 6UJMJUZ fi STUͳ$44JO+4ͱಉ͡Α͏ͳॻ͖ํ
Slide 28
Slide 28 text
·ͱΊ 6UJMJUZ fi STUͳ$44JO+4 Utility- fi rst ͳϝϦοτ ʴ CSS-in-JS ͷϝϦοτ ɾ5ZQF4DSJQUͷΈʹΔͷͰܕ҆શͰɺิ͕ޮ͘ ɾมͷຒΊࠐΈͳͲɺ+BWB4DSJQU͕ຒΊࠐΊΔ ɾDMBTT໊ΛఆٛͤͣɺϨεϙϯγϒγϯϓϧʹ࣮ݱ → ੜ࢈ੑߴ͘ίʔυ͕ॻ͚Δ