ãå³è§£ã§æ¯èŒãTailwind CSS v4 vs CSS Modules â ã¹ã¿ã€ãªã³ã°ææ³ã®éžã³æ¹ã培åºè§£èª¬
æè¿ããã³ããšã³ãã®å匷ãå§ãããã ãã©ãCSSã®æžãæ¹ã£ãŠããããããã®ïŒ Tailwind CSSãšãCSS Modulesãšãèããã©ãäœãéãã®ããªïŒ
ãã質åã ãïŒ CSSã®æžãæ¹ã«ã¯å€§ããåããŠããŠãŒãã£ãªãã£ãã¡ãŒã¹ãããšãã¹ã³ãŒãä»ãCSSããšãã2ã€ã®ã¢ãããŒãããããã ãTailwind CSSã¯ãŠãŒãã£ãªãã£ãã¡ãŒã¹ãã®ä»£è¡šæ Œã§ãHTMLã«çŽæ¥ flex ã text-center ã¿ãããªå°ããªã¯ã©ã¹ã䞊ã¹ãŠã¹ã¿ã€ã«ãçµã¿ç«ãŠãæ¹åŒã ããäžæ¹ã®CSS Modulesã¯ãã³ã³ããŒãã³ãããšã«å°çšã®CSSãã¡ã€ã«ãæžããŠãã¯ã©ã¹åãèªåçã«ãŠããŒã¯ã«å€æãããä»çµã¿ã ãã
ãŠãŒãã£ãªãã£ãã¡ãŒã¹ãã£ãŠãHTMLãã¯ã©ã¹ã ããã«ãªã£ããããªãã®ïŒ ã¡ãã£ãšèªã¿ã«ãããã ãªã£ãŠæããã ãã©âŠ
確ãã«Tailwindã¯HTMLã«ã¯ã©ã¹ããããã䞊ã¶ãããæåã¯ãããã£ãã£ãŠæã人ãå€ãããã§ããã®ã¶ãCSSãã¡ã€ã«ãå¥ã«ç®¡çããªããŠãããããã¶ã€ã³ã®å€æŽãHTMLãèŠãã ãã§å®çµãããã ãCSS Modulesã¯åŸæ¥ã®CSSã«è¿ãæžãæ¹ãã§ãããããCSSã«æ £ããŠãã人ã«ã¯éŠŽæã¿ããããããã ãã³ã³ããŒãã³ããšCSSãã¡ã€ã«ãè¡ãæ¥ããå¿ èŠããããã
Tailwind CSS v4ãåºãã£ãŠèãããã©ãv3ãšäœãå€ãã£ãã®ïŒ
v4ã¯å éšãšã³ãžã³ãå®å šã«å·æ°ããããã ããOxideããšããæ°ãããšã³ãžã³ãšLightning CSSãæ¡çšããŠããŠããã«ãé床ãv3ã®æå€§5åãéããªã£ãããèšå®ãã¡ã€ã«ã® tailwind.config.js ãäžèŠã«ãªã£ãŠãCSSãã¡ã€ã«ã®äžã§çŽæ¥èšå®ãæžãããCSS-first configurationããå°å ¥ããããã ãããšã¯ã«ã¹ã±ãŒãã¬ã€ã€ãŒã®ãã€ãã£ããµããŒãããã³ã³ããã¯ãšãªã®çµã¿èŸŒã¿å¯Ÿå¿ãªããã倧ããªé²åã ãã
5åéãã£ãŠããããïŒ CSS Modulesã®ã»ãã¯ã©ããªä»çµã¿ãªã®ïŒ
CSS Modulesã¯ãæ®éã®CSSãã¡ã€ã«ã« .module.css ãšããæ¡åŒµåãã€ããŠæžããã ããã«ãæã«ã¯ã©ã¹åãèªåçã«ããã·ã¥ä»ãã®ãŠããŒã¯ãªååã«å€æããããããä»ã®ã³ã³ããŒãã³ããšã¯ã©ã¹åãè¡çªããå¿é ããªãããããšãã° .button ã£ãŠæžããã¯ã©ã¹ããå®éã«ã¯ button_x7d2f ã¿ãããªååã«ãªããã ãReactãVueãAstroãªã©äž»èŠãªãã¬ãŒã ã¯ãŒã¯ããã€ãã£ãã§ãµããŒãããŠããã®ã匷ã¿ã ãã
ã³ã³ããŒãã³ããšã®çžæ§ã£ãŠã©ã£ã¡ãããã®ïŒ ReactãšãAstroã§äœ¿ããšããéžã³æ¹ã®ã³ãã¯ããã®ããªïŒ
ã³ã³ããŒãã³ãããŒã¹ã®éçºã ãšãã©ã¡ããçžæ§ã¯ãããã ãã©ç¹åŸŽãéãããTailwindã¯ã³ã³ããŒãã³ãã®ãã³ãã¬ãŒãå ã§ã¹ã¿ã€ã«ãå®çµãããããå°ããªUIããŒãããµã¯ãµã¯äœãã®ã«åããŠãããã ãCSS Modulesã¯ã¹ã¿ã€ã«ããã¡ã€ã«ãšããŠåé¢ã§ããããããã¶ã€ããŒãšãšã³ãžãã¢ã忥ããããã¡ãªãããããããAstroã ãšScoped CSSã䜿ãããã©ãCSS Modulesãéžã¶ãšãã¬ãŒã ã¯ãŒã¯éã§ã¹ã¿ã€ã«ãåå©çšãããããã
ããã©ãŒãã³ã¹ã®é¢ã§ã¯ã©ã£ã¡ãæå©ãªã®ïŒ
ããã©ãŒãã³ã¹ã¯ã©ã¡ããåªç§ã ãã©ãã¢ãããŒããéããã ãTailwind v4ã¯ãã«ãæã«äœ¿çšãããŠãããŠãŒãã£ãªãã£ã¯ã©ã¹ã ããæœåºãããããæçµçãªCSSãã¡ã€ã«ããšãŠãå°ãããªãããv4ã®Oxideãšã³ãžã³ã¯Rust補ã ããè§£æãçéã ããCSS Modulesã¯ã³ã³ããŒãã³ãåäœã§CSSãåå²ããããããã³ãŒãåå²ãšã®çžæ§ãããããã ããåãã¹ã¿ã€ã«ãè€æ°ã®ã³ã³ããŒãã³ãã§æžããšCSSãéè€ããå¯èœæ§ããããã ãå€§èŠæš¡ãããžã§ã¯ãã ãšTailwindã®ã»ããCSSã®ç·éã¯å°ãããªãåŸåããããã
ããŒã éçºã ãšã©ã£ã¡ãéžãã ãããã®ããªïŒ å€æåºæºãç¥ããããª
ããŒã ã®æ§æãã¹ãã«ã»ããã§å€ãããã ãTailwindã¯ãã¶ã€ã³ã·ã¹ãã ãçµã¿èŸŒãŸããŠãããããããŒã å šäœã§çµ±äžæã®ããUIãäœããããããã ãTailwindç¬èªã®ã¯ã©ã¹åãèŠããåŠç¿ã³ã¹ããããããCSS Modulesã¯æšæºã®CSSã®ç¥èããã®ãŸãŸäœ¿ãããããæ°ã¡ã³ããŒã®åå ¥éå£ãäœãã®ã匷ã¿ã ããæè¿ã®ãã¬ã³ããšããŠã¯ãTailwindãæ¡çšããããŒã ãå¢ããŠãããã©ãCSS Modulesãåå®å šãªtyped-css-modulesãšçµã¿åããããšå ç¢ãªéçºãã§ãããã
äž¡æ¹ãçµã¿åãããŠäœ¿ãããšãã§ããã®ïŒ
ãã¡ããã§ãããïŒ å®ã¯ãããããã©ã³ãšã³ãžãã¢ã®éã§ã¯å²ãšäººæ°ã®ã¢ãããŒããªãã ãã¬ã€ã¢ãŠããæ±çšçãªã¹ã¿ã€ã«ã«ã¯Tailwindã®ãŠãŒãã£ãªãã£ã䜿ã£ãŠãè€éãªã¢ãã¡ãŒã·ã§ã³ãã³ã³ããŒãã³ãåºæã®ã¹ã¿ã€ã«ã«ã¯CSS Modulesã䜿ããã€ããªããæŠç¥ã ããTailwind v4ã¯ã«ã¹ã±ãŒãã¬ã€ã€ãŒã«å¯Ÿå¿ããŠãããããCSS Modulesãšã®å ±åãv3ãããã£ãšã¹ã ãŒãºã«ãªã£ããã ã倧äºãªã®ã¯ãã©ã¡ããäžæ¹ãã§ã¯ãªãããããžã§ã¯ãã®èŠä»¶ã«åãããŠæè»ã«éžã¶ããšã ãã
ãªãã»ã©ãã©ã£ã¡ã匷ã¿ããããã ãïŒ ãŸãã¯Tailwind v4ãè§Šã£ãŠã¿ããããª
ãããïŒ v4ã¯èšå®ãã¡ã€ã«ãªãã§ããå§ãããããããåŠç¿ã®ããŒãã«ãv3ããäžãã£ãŠãããããŸãã¯å°ããªãããžã§ã¯ãã§äž¡æ¹è©ŠããŠã¿ãŠãèªåãããŒã ã«åãã¹ã¿ã€ã«ãèŠã€ããã®ãããããã ããã©ã¡ããéžãã§ããä¿å®ããããCSSããæžãæèãäžçªå€§åã ãããã