CSS @layerã培åºè§£èª¬ãããã©ãŒãã³ã¹ãžã®åœ±é¿ãåæããäžçäžã®Webã¬ã³ããªã³ã°ãé«éåããããã®ã¬ã€ã€ãŒåŠçãªãŒããŒãããæé©åæŠç¥ãæäŸããŸãã
CSS @layerã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ïŒã¬ã€ã€ãŒåŠçãªãŒããŒãããåæ
CSSã«ã¹ã±ãŒãã¬ã€ã€ãŒïŒ@layerïŒã®å°å
¥ã¯ãCSSã®è©³çŽ°åºŠãšæ§æã管çããããã®åŒ·åãªã¡ã«ããºã ãæäŸããŸãããããã倧ããªåã«ã¯å€§ããªè²¬ä»»ã䌎ããŸãã@layerãããã©ãŒãã³ã¹ã«äžããæœåšçãªåœ±é¿ãçè§£ãããã®äœ¿çšãæé©åããããšã¯ãäžçäžã®ãŠãŒã¶ãŒã«é«éã§å¹ççãªWebäœéšãç¶æããããã«äžå¯æ¬ ã§ãã
CSSã«ã¹ã±ãŒãã¬ã€ã€ãŒãšã¯ïŒ
CSSã«ã¹ã±ãŒãã¬ã€ã€ãŒã䜿çšãããšãéçºè ã¯CSSã«ãŒã«ãè«ççãªã¬ã€ã€ãŒã«ã°ã«ãŒãåããã«ã¹ã±ãŒãã®é åºã«åœ±é¿ãäžããã¹ã¿ã€ãªã³ã°ããã现ããå¶åŸ¡ã§ããŸããããã¯ãè€éãªã¹ã¿ã€ã«ã·ãŒãããµãŒãããŒãã£ã®ã©ã€ãã©ãªãããŒããæã€å€§èŠæš¡ãªãããžã§ã¯ãã§ç¹ã«åœ¹ç«ã¡ãŸãã
åºæ¬çãªäŸã次ã«ç€ºããŸãã
@layer base, components, overrides;
@layer base {
body { font-family: sans-serif; }
}
@layer components {
button { padding: 10px 20px; border: none; }
}
@layer overrides {
button { background-color: red; color: white; }
}
ãã®äŸã§ã¯ãoverridesã¬ã€ã€ãŒã®ã¹ã¿ã€ã«ãcomponentsã¬ã€ã€ãŒãããåªå
ãããcomponentsã¬ã€ã€ãŒã¯baseã¬ã€ã€ãŒãããåªå
ãããŸããããã«ãããéçºè
ã¯è©³çŽ°åºŠã®ããã¯ã ãã«é Œãããšãªããããã©ã«ãã®ã¹ã¿ã€ã«ãç°¡åã«äžæžãã§ããŸãã
CSS @layerã®æœåšçãªããã©ãŒãã³ã¹ã®èœãšã穎
@layerã¯å€§ããªå©ç¹ãæäŸããŸããããã®æœåšçãªããã©ãŒãã³ã¹ãžã®åœ±é¿ãèªèããããšãäžå¯æ¬ ã§ãããã©ãŠã¶ã¯ãããã®ã¬ã€ã€ãŒãåŠçããã³ç®¡çããå¿
èŠããããç¹ã«è€éãªã·ããªãªã§ã¯ãªãŒããŒããããçºçããå¯èœæ§ããããŸãã
1. ã¹ã¿ã€ã«åèšç®ã®å¢å
ãã©ãŠã¶ãããŒãžãã¬ã³ããªã³ã°ãŸãã¯åã¬ã³ããªã³ã°ããå¿
èŠããããã³ã«ãã¹ã¿ã€ã«ã®åèšç®ãå®è¡ãããŸããããã«ã¯ãããŒãžäžã®åèŠçŽ ã«ã©ã®CSSã«ãŒã«ãé©çšãããããæ±ºå®ããäœæ¥ãå«ãŸããŸãã@layerã䜿çšãããšããã©ãŠã¶ã¯ã¬ã€ã€ãŒéå±€ãèæ
®ããå¿
èŠããããã¹ã¿ã€ã«ã®åèšç®ã«å¿
èŠãªè€éããšæéãå¢å ããå¯èœæ§ããããŸãã
ã·ããªãªïŒæ·±ããã¹ããããã³ã³ããŒãã³ããšãè€æ°ã®ã¬ã€ã€ãŒã«åæ£ããã倿°ã®CSSã«ãŒã«ãæã€è€éãªWebã¢ããªã±ãŒã·ã§ã³ãæ³åããŠã¿ãŠãã ããã1ã€ã®ã¬ã€ã€ãŒã®å°ããªå€æŽããéå±€å šäœã«ãããåèšç®ã®ã«ã¹ã±ãŒããåŒãèµ·ãããé¡èãªããã©ãŒãã³ã¹ã®äœäžã«ã€ãªããå¯èœæ§ããããŸãã
äŸïŒåå衚瀺ããŠãŒã¶ãŒã€ã³ã¿ãŒãã§ãŒã¹ããã©ã³ãã£ã³ã°ã«ã¬ã€ã€ãŒãã¹ã¿ã€ã«ã䜿çšããå€§èŠæš¡ãªeã³ããŒã¹ãµã€ãããµã€ãå šäœã®ãã©ã³ããµã€ãºã«åœ±é¿ãäžããããŒã¹ã¬ã€ã€ãŒã倿Žãããšãå€§å¹ ãªåèšç®æéãçºçããç¹ã«äœã¹ããã¯ã®ããã€ã¹ããäžçã®äžéšã®å°åã§äžè¬çãªäœéãªãããã¯ãŒã¯æ¥ç¶ã«ãããŠããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
2. ã¡ã¢ãªãªãŒããŒããã
ãã©ãŠã¶ã¯ãåã¬ã€ã€ãŒãšãã®é¢é£ã¹ã¿ã€ã«ã«é¢ããæ å ±ãä¿åããã³ç®¡çããå¿ èŠããããŸããããã«ãããç¹ã«å€æ°ã®ã¬ã€ã€ãŒãè€éãªã¹ã¿ã€ã«ã«ãŒã«ãæ±ãå Žåã«ãã¡ã¢ãªæ¶è²»éãå¢å ããå¯èœæ§ããããŸãã
ã·ããªãªïŒãµãŒãããŒãã£ã®ã©ã€ãã©ãªãå€çšãããããããç¬èªã®ã¬ã€ã€ãŒã»ãããå®çŸ©ããŠããå¯èœæ§ã®ããWebã¢ããªã±ãŒã·ã§ã³ã§ã¯ãå€§å¹ ãªã¡ã¢ãªãªãŒããŒããããçºçããå¯èœæ§ããããŸããããã¯ãã¡ã¢ãªãªãœãŒã¹ãéãããŠããã¢ãã€ã«ããã€ã¹ã§ã¯ç¹ã«åé¡ã«ãªãããšããããŸãã
äŸïŒããŸããŸãªãœãŒã¹ããã®ãŠã£ãžã§ããããã©ã°ã€ã³ãçµ±åãããããããç¬èªã®ã¬ã€ã€ãŒãCSSã䜿çšããŠããã°ããŒãã«ãã¥ãŒã¹ããŒã¿ã«ãèããŠã¿ãŸãããããããã®ã¬ã€ã€ãŒã®åèšã¡ã¢ãªãããããªã³ãã¯ããµã€ãå šäœã®ããã©ãŒãã³ã¹ã«æªåœ±é¿ãåãŒãå¯èœæ§ããããç¹ã«RAMãéãããŠããå€ãã¹ããŒããã©ã³ãã¿ãã¬ããã§ãµã€ãã«ã¢ã¯ã»ã¹ãããŠãŒã¶ãŒã«ãšã£ãŠã¯åé¡ãšãªããŸãã
3. ããŒã¹æéã®å¢å
ãã©ãŠã¶ã¯CSSã³ãŒããããŒã¹ããã¬ã€ã€ãŒã®å éšè¡šçŸãæ§ç¯ããå¿ èŠããããŸããè€éãªã¬ã€ã€ãŒå®çŸ©ãå ¥ãçµãã ã¹ã¿ã€ã«ã«ãŒã«ã¯ãããŒã¹æéãå¢å ãããããŒãžã®åæã¬ã³ããªã³ã°ãé ãããå¯èœæ§ããããŸãã
ã·ããªãªïŒæ·±ããã¹ããããã¬ã€ã€ãŒãšè€éãªã»ã¬ã¯ã¿ãæã€å€§èŠæš¡ãªCSSãã¡ã€ã«ã¯ãããŒã¹æéãå€§å¹ ã«å¢å ãããFirst Contentful PaintïŒFCPïŒãšLargest Contentful PaintïŒLCPïŒãé å»¶ãããå¯èœæ§ããããŸããããã¯ãç¹ã«äœéãªãããã¯ãŒã¯æ¥ç¶ã«ãããŠããŠãŒã¶ãŒã®äœæããã©ãŒãã³ã¹ã«æªåœ±é¿ãäžããå¯èœæ§ããããŸãã
äŸïŒè€éãªã¬ã€ã¢ãŠããšã¹ã¿ã€ãªã³ã°ãæã€ã€ã³ã¿ã©ã¯ãã£ããªã³ãŒã¹ãæäŸãããªã³ã©ã€ã³æè²çšã®Webã¢ããªã±ãŒã·ã§ã³ãCSSãéå°ãªã¬ã€ã€ãŒãšè€éãªã»ã¬ã¯ã¿ã§æé©åãããŠããªãå ŽåãããŒã¹æéãé·ããªããåæã®ã³ãŒã¹ã³ã³ãã³ãã®è¡šç€ºãé ãã垯åå¹ ãéãããŠããå°åã®åŠçã®åŠç¿äœéšã劚ããå¯èœæ§ããããŸãã
@layerã®ããã©ãŒãã³ã¹åæïŒããŒã«ãšãã¯ããã¯
@layerã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ãçè§£ãã軜æžããããã«ã¯ãåæãšæé©åã®ããã®é©åãªããŒã«ãšãã¯ããã¯ã䜿çšããããšãéèŠã§ãã
1. ãã©ãŠã¶éçºè ããŒã«
ææ°ã®ãã©ãŠã¶éçºè ããŒã«ã¯ãCSSã®ããã©ãŒãã³ã¹ã«é¢ãã貎éãªæŽå¯ãæäŸããŸããChromeãFirefoxãSafariã®ãããã©ãŒãã³ã¹ãããã«ã䜿çšãããšãã¹ã¿ã€ã«ã®åèšç®ãã¬ã³ããªã³ã°æéãªã©ããã©ãŠã¶ã®ã¢ã¯ãã£ããã£ã®ã¿ã€ã ã©ã€ã³ãèšé²ã§ããŸãã
äœ¿çšæ¹æ³ïŒ
- ãã©ãŠã¶ã§éçºè ããŒã«ãéããŸãïŒéåžžã¯F12ããŒãæŒããŸãïŒã
- ãããã©ãŒãã³ã¹ãããã«ã«ç§»åããŸãã
- ãèšé²ããã¿ã³ãã¯ãªãã¯ããWebããŒãžãæäœããŸãã
- èšé²ã忢ããã¿ã€ã ã©ã€ã³ãåæããŸãã
ã¹ã¿ã€ã«ã®åèšç®ãšã¬ã³ããªã³ã°æéã衚ãé·ãããŒãæ¢ããŸãã@layerãããã©ãŒãã³ã¹ã®ããã«ããã¯ã«ãªã£ãŠããå¯èœæ§ã®ããé åãç¹å®ããŸãã
äŸïŒã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã¿ã€ã ã©ã€ã³ãåæãããšããŠãŒã¶ãŒã®æäœåŸã«ã¹ã¿ã€ã«ã®åèšç®ã«ããªãã®æéãããã£ãŠããããšãããããŸããããã«èª¿æ»ãããšãããŒã¹ã¬ã€ã€ãŒã®å€æŽã«ãã倿°ã®CSSã«ãŒã«ãåèšç®ãããŠããããšã倿ããæé©åã®å¿ èŠæ§ãæµ®ã圫ãã«ãªããŸãã
2. Lighthouse
Lighthouseã¯ãWebããŒãžã®å質ãåäžãããããã®èªååããŒã«ã§ããããã©ãŒãã³ã¹ãã¢ã¯ã»ã·ããªãã£ããã¹ããã©ã¯ãã£ã¹ãSEOã«é¢ããç£æ»ãæäŸããŸããLighthouseã¯ã@layerã«é¢é£ããæœåšçãªCSSããã©ãŒãã³ã¹ã®åé¡ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãã
äœ¿çšæ¹æ³ïŒ
- ãã©ãŠã¶ã§éçºè ããŒã«ãéããŸãã
- ãLighthouseãããã«ã«ç§»åããŸãã
- ç£æ»ãããã«ããŽãªïŒäŸïŒããã©ãŒãã³ã¹ïŒãéžæããŸãã
- ãã¬ããŒããçæããã¿ã³ãã¯ãªãã¯ããŸãã
Lighthouseã¯ãWebããŒãžã®ããã©ãŒãã³ã¹ãåäžãããããã®ææ¡ãå«ãã¬ããŒããæäŸããŸããCSSã®æé©åãšã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ã«é¢é£ããç£æ»ã«æ³šæãæã£ãŠãã ããã
äŸïŒLighthouseã¯ããŠã§ããµã€ãã®First Contentful PaintïŒFCPïŒãå€§å¹ ã«é ããŠããããšãç¹å®ããŸããã¬ããŒãã¯ãCSSé ä¿¡ãæé©åããCSSã»ã¬ã¯ã¿ã®è€éãã軜æžããããšãææ¡ããŸãããããªãåæã«ãããéå°ãªã¬ã€ã€ãŒãã¹ã¿ã€ã«ãšé床ã«å ·äœçãªã»ã¬ã¯ã¿ã®äœ¿çšãFCPã®é å»¶ã«å¯äžããŠããããšãæããã«ãªããŸãã
3. CSSç£æ»ããŒã«
å°çšã®CSSç£æ»ããŒã«ã¯ãã¹ã¿ã€ã«ã·ãŒãã®æœåšçãªããã©ãŒãã³ã¹åé¡ãç¹å®ããã®ã«åœ¹ç«ã¡ãŸãããããã®ããŒã«ã¯ãCSSã³ãŒããåæããã»ã¬ã¯ã¿ã®è€éãã®è»œæžãåé·ãªã«ãŒã«ã®åé€ãã¬ã€ã€ãŒå®çŸ©ã®åçåãªã©ã®æé©åã«é¢ããæšå¥šäºé ãæäŸã§ããŸãã
äŸïŒ
- CSSLintïŒCSSã³ãŒãã®æœåšçãªåé¡ãç¹å®ã§ãã人æ°ã®ãªãŒãã³ãœãŒã¹CSSãªã³ã¿ãŒã
- StylelintïŒäžè²«ããã³ãŒãã£ã³ã°ã¹ã¿ã€ã«ã匷å¶ããæœåšçãªãšã©ãŒãããã©ãŒãã³ã¹ã®åé¡ãç¹å®ããã®ã«åœ¹ç«ã€ææ°ã®CSSãªã³ã¿ãŒã
äœ¿çšæ¹æ³ïŒ
- éžæããCSSç£æ»ããŒã«ãã€ã³ã¹ããŒã«ããŸãã
- CSSãã¡ã€ã«ãåæããããã«ããŒã«ãæ§æããŸãã
- ã¬ããŒãã確èªããç¹å®ãããåé¡ã«å¯ŸåŠããŸãã
äŸïŒå€§èŠæš¡ãªã¹ã¿ã€ã«ã·ãŒãã§CSSç£æ»ããŒã«ãå®è¡ãããšãè€æ°ã®ã¬ã€ã€ãŒå ã«å€æ°ã®åé·ãªCSSã«ãŒã«ãšé床ã«å ·äœçãªã»ã¬ã¯ã¿ãããããšãæããã«ãªããŸãããããã®åé·æ§ãåé€ããã»ã¬ã¯ã¿ãç°¡çŽ åããããšã§ãã¹ã¿ã€ã«ã·ãŒãã®ããã©ãŒãã³ã¹ãå€§å¹ ã«åäžãããããšãã§ããŸãã
@layerã®ããã©ãŒãã³ã¹ãæé©åããããã®æŠç¥
@layerã«é¢é£ããæœåšçãªããã©ãŒãã³ã¹ã®åé¡ãç¹å®ãããããªãŒããŒãããã軜æžããWebããŒãžã®ã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ãåäžãããããã«ãããŸããŸãªæé©åæŠç¥ãå®è£
ã§ããŸãã
1. ã¬ã€ã€ãŒæ°ãæå°éã«æãã
å®çŸ©ããã¬ã€ã€ãŒãå€ãã»ã©ããã©ãŠã¶ã管çããå¿ èŠã®ãããªãŒããŒããããå¢å ããŸããç®çã®ã¬ãã«ã®æ§æãšå¶åŸ¡ãéæããããã«ãå¿ èŠãªæ°ã®ã¬ã€ã€ãŒã®ã¿ã䜿çšããããåªããŠãã ããã倧ããªã¡ãªãããæäŸããã«è€éããå¢ããããªãé床ã«çްååãããã¬ã€ã€ãŒãäœæããããšã¯é¿ããŠãã ããã
äŸïŒUIã®åã ã®ã³ã³ããŒãã³ãããšã«åå¥ã®ã¬ã€ã€ãŒãäœæãã代ããã«ãé¢é£ããã³ã³ããŒãã³ããåäžã®ã¬ã€ã€ãŒã«ã°ã«ãŒãåããããšãæ€èšããŠãã ãããããã«ãããã¬ã€ã€ãŒã®ç·æ°ãæžãããã«ã¹ã±ãŒããç°¡çŽ åã§ããŸãã
2. ã»ã¬ã¯ã¿ã®è€éãã軜æžãã
è€éãªCSSã»ã¬ã¯ã¿ã¯ãã¹ã¿ã€ã«ã®åèšç®ã«å¿ èŠãªæéãå€§å¹ ã«å¢å ãããå¯èœæ§ããããŸããèŠçŽ ã®éå±€ã«äŸåããæ·±ããã¹ããããã»ã¬ã¯ã¿ã®ä»£ããã«ãã¯ã©ã¹åãIDãªã©ã®ããå¹ççãªã»ã¬ã¯ã¿ã䜿çšããŠãã ããã
äŸïŒ.container div p { ... }ã®ãããªã»ã¬ã¯ã¿ã䜿çšãã代ããã«ã段èœèŠçŽ ã«.container-paragraph { ... }ã®ãããªç¹å®ã®ã¯ã©ã¹ã远å ããããšãæ€èšããŠãã ãããããã«ãããã»ã¬ã¯ã¿ãããå¹ççã«ãªãããã©ãŠã¶ãã«ãŒã«ãç
§åããããã«å¿
èŠãªæéãççž®ãããŸãã
3. ã¬ã€ã€ãŒã®éè€ãé¿ãã
éè€ããã¬ã€ã€ãŒã¯ãææ§ããçã¿åºããã«ã¹ã±ãŒãã®è€éããå¢ãå¯èœæ§ããããŸããã¬ã€ã€ãŒãæç¢ºã«å®çŸ©ããããããã®éã«éè€ãæå°éã«æããããŠããããšã確èªããŠãã ãããããã«ãããã«ã¹ã±ãŒãã®é åºãçè§£ãããããªããäºæããªãã¹ã¿ã€ã«ã®ç«¶åã®å¯èœæ§ãæžããããšãã§ããŸãã
äŸïŒåãèŠçŽ ã®ã¹ã¿ã€ã«ãäž¡æ¹ãšãå®çŸ©ãã2ã€ã®ã¬ã€ã€ãŒãããå Žåã¯ãã©ã¡ãã®ã¹ã¿ã€ã«ãåªå ãããããæç¢ºã«å®çŸ©ããããã«ã¬ã€ã€ãŒãé åºä»ããããŠããããšã確èªããŠãã ãããã«ã¹ã±ãŒãã®é åºãäžæç¢ºãŸãã¯ææ§ãªç¶æ³ã¯é¿ããŠãã ããã
4. ã¯ãªãã£ã«ã«CSSãåªå ãã
WebããŒãžã®åæãã¥ãŒããŒããã¬ã³ããªã³ã°ããããã«äžå¯æ¬ ãªCSSã«ãŒã«ãç¹å®ãããã®é ä¿¡ãåªå ããŸããããã¯ãã¯ãªãã£ã«ã«CSSãHTMLããã¥ã¡ã³ãã«çŽæ¥ã€ã³ã©ã€ã³åããããHTTP/2ãµãŒããŒããã·ã¥ãªã©ã®æè¡ã䜿çšããŠã¬ã³ããªã³ã°ããã»ã¹ã®æ©ã段éã§ã¯ãªãã£ã«ã«CSSãé ä¿¡ããããšã§å®çŸã§ããŸãã
äŸïŒCriticalCSSã®ãããªããŒã«ã䜿çšããŠãWebããŒãžã®ãã¡ãŒã¹ããã¥ãŒã³ã³ãã³ããã¬ã³ããªã³ã°ããããã«å¿ èŠãªCSSã«ãŒã«ãæœåºããŸãããããã®ã«ãŒã«ãHTMLããã¥ã¡ã³ãã«çŽæ¥ã€ã³ã©ã€ã³åããŠãåæãã¥ãŒããŒããè¿ éã«ã¬ã³ããªã³ã°ãããããã«ããŸãã
5. ã¬ã€ã€ãŒã®é åºãšè©³çŽ°åºŠãèæ ®ãã
ã¬ã€ã€ãŒãå®çŸ©ãããé åºãšåã¬ã€ã€ãŒå ã®ã«ãŒã«ã®è©³çŽ°åºŠã¯ãã«ã¹ã±ãŒãã«å€§ããªåœ±é¿ãäžããŸããç®çã®ã¹ã¿ã€ã«ãåªå ãããããã«ãã¬ã€ã€ãŒã®é åºãæ éã«æ€èšããŠãã ãããä»ã®ã¬ã€ã€ãŒã«ãã£ãŠäžæžããããããšãæå³ããã¬ã€ã€ãŒã§ãé床ã«å ·äœçãªã»ã¬ã¯ã¿ã䜿çšããããšã¯é¿ããŠãã ããã
äŸïŒããã©ã«ãã¹ã¿ã€ã«çšã®ã¬ã€ã€ãŒãšäžæžãçšã®ã¬ã€ã€ãŒãããå Žåã¯ãäžæžãã¬ã€ã€ãŒãããã©ã«ãã¹ã¿ã€ã«ã¬ã€ã€ãŒã®åŸã«å®çŸ©ãããŠããããšã確èªããŠãã ããããŸããããã©ã«ãã¹ã¿ã€ã«ã¬ã€ã€ãŒã§é床ã«å ·äœçãªã»ã¬ã¯ã¿ã䜿çšãããšãäžæžãã¬ã€ã€ãŒã§ããããäžæžãããã®ãé£ãããªããããé¿ããŠãã ããã
6. ãããã¡ã€ãªã³ã°ãšæž¬å®
æãéèŠãªã¹ãããã¯ãã¢ããªã±ãŒã·ã§ã³ããããã¡ã€ãªã³ã°ãã@layerã®äœ¿çšã«ããå®éã®åœ±é¿ã枬å®ããããšã§ããä»®å®ã«é Œããããã©ãŠã¶ã®éçºè
ããŒã«ã䜿çšããŠããã«ããã¯ãç¹å®ããæé©åãå®éã«ããã©ãŒãã³ã¹ãåäžãããŠããããšã確èªããŠãã ããã
äŸïŒæé©åæŠç¥ãå®è£ ããååŸã§ããã©ãŠã¶ã®éçºè ããŒã«ã®ããã©ãŒãã³ã¹ããã«ã䜿çšããŠãWebããŒãžã®ã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ãèšé²ããŸããã¿ã€ã ã©ã€ã³ãæ¯èŒããŠãæé©åãã¬ã³ããªã³ã°æéã®æž¬å®å¯èœãªæ¹åã«ã€ãªãã£ããã©ããã確èªããŸãã
7. ããªãŒã·ã§ã€ãã³ã°ãšæªäœ¿çšCSSã®åé€
ããŒã«ã䜿çšããŠããããžã§ã¯ãããæªäœ¿çšã®CSSãåé€ããŸããããã«ããããã©ãŠã¶ãè§£æããã³åŠçããå¿ èŠã®ããã³ãŒãã®éãæžããããã©ãŒãã³ã¹ãåäžããŸããWebpackãParcelãRollupãªã©ã®ææ°ã®ãã«ãããŒã«ã«ã¯ãæªäœ¿çšã®CSSãèªåçã«èå¥ããŠåé€ã§ãããã©ã°ã€ã³ããããŸãã
äŸïŒãã«ãããã»ã¹ã«PurgeCSSãŸãã¯UnCSSãçµ±åããŠãæ¬çªãã«ãããæªäœ¿çšã®CSSã«ãŒã«ãèªåçã«åé€ããŸããããã«ãããCSSãã¡ã€ã«ã®ãµã€ãºãå€§å¹ ã«åæžãããã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ãåäžããŸãã
8. ããŸããŸãªããã€ã¹ãšãããã¯ãŒã¯æ¡ä»¶ã«åãããæé©å
ããŸããŸãªããã€ã¹ãšãããã¯ãŒã¯æ¡ä»¶ã«ããã@layerã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ãèæ
®ããŠãã ãããåŠçèœåãéããããããã¯ãŒã¯æ¥ç¶ãé
ãã¢ãã€ã«ããã€ã¹ã¯ãããã©ãŒãã³ã¹ã®åé¡ã«å¯ŸããŠãã圱é¿ãåããããå¯èœæ§ããããŸããWebããŒãžãå¹
åºãããã€ã¹ãšãããã¯ãŒã¯æ¡ä»¶ã§è¯å¥œã«åäœããããã«ãCSSãšã¬ã€ã€ãŒå®çŸ©ãæé©åããŸããã¬ã¹ãã³ã·ããã¶ã€ã³ã®ååãå®è£
ããŠããŠãŒã¶ãŒã®ããã€ã¹ãšç»é¢ãµã€ãºã«åºã¥ããŠWebããŒãžã®ã¹ã¿ã€ãªã³ã°ãšã¬ã€ã¢ãŠããé©å¿ãããŸãã
äŸïŒã¡ãã£ã¢ã¯ãšãªã䜿çšããŠãããã€ã¹ã®ç»é¢ãµã€ãºãšè§£å床ã«åºã¥ããŠç°ãªãã¹ã¿ã€ã«ãé©çšããŸããããã«ãããããŸããŸãªããã€ã¹åãã«ã¹ã¿ã€ãªã³ã°ãæé©åããäžèŠãªCSSã«ãŒã«ãå¿ èŠã®ãªãããã€ã¹ã«é©çšãããã®ãé²ãããšãã§ããŸãããŸããã¢ãããã£ãããŒãã£ã³ã°ã®ãããªæè¡ã䜿çšããŠããŠãŒã¶ãŒã®ãããã¯ãŒã¯æ¥ç¶é床ã«åºã¥ããŠç°ãªãCSSãã¡ã€ã«ãèªã¿èŸŒãããšãæ€èšããŠãã ããã
å®äžçã®äŸãšã±ãŒã¹ã¹ã¿ãã£
@layerãããã©ãŒãã³ã¹ã«ã©ã®ããã«åœ±é¿ãããã®äœ¿çšãæé©åããæ¹æ³ã«ã€ããŠãããã€ãã®å®äžçã®äŸãèŠãŠã¿ãŸãããã
äŸ1ïŒå€§èŠæš¡ãªEã³ããŒã¹ãµã€ã
å€§èŠæš¡ãªeã³ããŒã¹ãµã€ãã§ã¯ã@layerã䜿çšããŠãã°ããŒãã«ã¹ã¿ã€ã«ãã³ã³ããŒãã³ãåºæã®ã¹ã¿ã€ã«ãããã³ããŒãã®äžæžãã管çããŠããŸããåæã®å®è£
ã§ã¯ãç¹ã«è€éãªã¬ã€ã¢ãŠããæã€ååããŒãžã§ã¬ã³ããªã³ã°æéãé
ããªããŸããã
æé©åæŠç¥ïŒ
- é¢é£ããã³ã³ããŒãã³ãã¹ã¿ã€ã«ãããå°ãªãã¬ã€ã€ãŒã«çµ±åããããšã§ãã¬ã€ã€ãŒã®æ°ãæžãããŸããã
- CSSã»ã¬ã¯ã¿ãæé©åããŠãè€éãã軜æžããŸããã
- ååããŒãžã®ã¯ãªãã£ã«ã«CSSãåªå ããŸããã
- ããªãŒã·ã§ã€ãã³ã°ã䜿çšããŠæªäœ¿çšã®CSSãåé€ããŸããã
çµæïŒã¬ã³ããªã³ã°æéã30ïŒ æ¹åããCSSãã¡ã€ã«ã®ãµã€ãºã20ïŒ åæžããŸããã
äŸ2ïŒã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ïŒSPAïŒ
ã·ã³ã°ã«ããŒãžã¢ããªã±ãŒã·ã§ã³ã§ã¯ã@layerã䜿çšããŠãããŸããŸãªãã¥ãŒãšã³ã³ããŒãã³ãã®ã¹ã¿ã€ã«ã管çããŠããŸããåæã®å®è£
ã§ã¯ãã¡ã¢ãªæ¶è²»éã®å¢å ãšã¹ã¿ã€ã«åèšç®æéã®é
å»¶ãçºçããŸããã
æé©åæŠç¥ïŒ
- åã¬ã€ã€ãŒã®ã¹ã³ãŒããæ éã«å®çŸ©ããããšã§ãã¬ã€ã€ãŒã®éè€ãé¿ããŸããã
- ç®çã®ã¹ã¿ã€ã«ãåªå ãããããã«ã¬ã€ã€ãŒã®é åºãæé©åããŸããã
- ã³ãŒãåå²ã䜿çšããŠãå¿ èŠãªãšãã«ã®ã¿CSSãã¡ã€ã«ãèªã¿èŸŒãããã«ããŸããã
çµæïŒã¡ã¢ãªæ¶è²»éã15ïŒ åæžããã¹ã¿ã€ã«åèšç®æéã25ïŒ æ¹åããŸããã
äŸ3ïŒã°ããŒãã«ãã¥ãŒã¹ããŒã¿ã«
ã°ããŒãã«ãã¥ãŒã¹ããŒã¿ã«ã¯ãããŸããŸãªãœãŒã¹ããã®ãŠã£ãžã§ããããã©ã°ã€ã³ãçµ±åããŠããããããããç¬èªã®ã¬ã€ã€ãŒãCSSã䜿çšããŠããŸãããããã®ã¬ã€ã€ãŒã®åèšã¡ã¢ãªãããããªã³ãã¯ããµã€ãã®ããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžããŸããã
æé©åæŠç¥ïŒ
- ç°ãªãã¬ã€ã€ãŒã«ãããåé·ãªCSSã«ãŒã«ãç¹å®ããŠåé€ããŸããã
- ç°ãªããœãŒã¹ããã®é¡äŒŒããã¬ã€ã€ãŒãããå°ãªãã¬ã€ã€ãŒã«çµ±åããŸããã
- CSSç£æ»ããŒã«ã䜿çšããŠãããã©ãŒãã³ã¹ã®åé¡ãç¹å®ããä¿®æ£ããŸããã
çµæïŒããŒãžã®èªã¿èŸŒã¿æéã20ïŒ æ¹åããã¡ã¢ãªæ¶è²»éã10ïŒ åæžããŸããã
çµè«
CSSã«ã¹ã±ãŒãã¬ã€ã€ãŒã¯ãCSSã®è©³çŽ°åºŠãšæ§æã管çããããã®åŒ·åãªæ¹æ³ãæäŸããŸããããããæœåšçãªããã©ãŒãã³ã¹ãžã®åœ±é¿ãèªèããäžçäžã®ãŠãŒã¶ãŒã«é«éã§å¹ççãªWebäœéšãä¿èšŒããããã«ãã®äœ¿çšãæé©åããããšãéèŠã§ããæœåšçãªèœãšã穎ãçè§£ããåæã«é©åãªããŒã«ãšãã¯ããã¯ã䜿çšãã广çãªæé©åæŠç¥ãå®è£
ããããšã§ãããã©ãŒãã³ã¹ãç ç²ã«ããããšãªã@layerã®å©ç¹ã掻çšã§ããŸãã倿Žã®åœ±é¿ãåžžã«ãããã¡ã€ãªã³ã°ããŠæž¬å®ããæé©åãå®éã«ããã©ãŒãã³ã¹ãåäžãããŠããããšã確èªããããšãå¿ããªãã§ãã ãããCSSã¬ã€ã€ãŒã®åãåãå
¥ããã°ããŒãã«ãªãªãŒãã£ãšã³ã¹ã®ããã«ããã©ãŒãã³ã¹ãé«ãä¿å®ããããWebã¢ããªã±ãŒã·ã§ã³ãäœæããããã«è³¢ã䜿çšããŠãã ããã