CSS View Transitionæ¬äŒŒèŠçŽ ã®ããã©ãŒãã³ã¹ãæ·±ãæãäžãããã©ã³ãžã·ã§ã³èŠçŽ ã®ã¬ã³ããªã³ã°ãæé©åæè¡ãã¹ã ãŒãºã§å¹ççãªãã©ã³ãžã·ã§ã³ã®ããã®ãã¹ããã©ã¯ãã£ã¹ã«çŠç¹ãåœãŠãŸãã
CSS View Transitionæ¬äŒŒèŠçŽ ã®ããã©ãŒãã³ã¹ïŒãã©ã³ãžã·ã§ã³èŠçŽ ã®ã¬ã³ããªã³ã°
CSS View Transitions APIã¯ãWebã¢ããªã±ãŒã·ã§ã³ã®ç°ãªãç¶æ éã§ã¹ã ãŒãºã§èŠèŠçã«é åçãªãã©ã³ãžã·ã§ã³ãäœæãã匷åãªæ¹æ³ãæäŸããŸãããããããã¥ãŒã»ãã©ã³ãžã·ã§ã³ã§æé©ãªããã©ãŒãã³ã¹ãéæããã«ã¯ããã©ã³ãžã·ã§ã³èŠçŽ ãã©ã®ããã«ã¬ã³ããªã³ã°ããããããããŠã¬ã³ããªã³ã°ã³ã¹ããæå°éã«æããæ¹æ³ãæ·±ãçè§£ããå¿ èŠããããŸãããã®èšäºã§ã¯ããã©ã³ãžã·ã§ã³èŠçŽ ã®ã¬ã³ããªã³ã°ã«é¢ããããã©ãŒãã³ã¹ã®åŽé¢ãæãäžãããã¥ãŒã»ãã©ã³ãžã·ã§ã³ãçŸããå¹ççã§ããããšãä¿èšŒããããã®å®è·µçãªæŽå¯ãšãã¯ããã¯ãæäŸããŸãã
ãã¥ãŒã»ãã©ã³ãžã·ã§ã³æ¬äŒŒèŠçŽ ã®çè§£
View Transitions APIã¯ããã©ã³ãžã·ã§ã³äžã«èŠçŽ ã®ã¹ãããã·ã§ãããèªåçã«ãã£ããã£ããããããæ¬äŒŒèŠçŽ ã§ã©ããããŠãå€èгãäœçœ®ãã¢ãã¡ãŒã·ã§ã³åã§ããããã«ããŸãããã©ã³ãžã·ã§ã³ã®ã¬ã³ããªã³ã°ã«é¢ããäž»èŠãªæ¬äŒŒèŠçŽ ã¯æ¬¡ã®ãšããã§ãïŒ
- ::view-transition-group(name)ïŒåããã©ã³ãžã·ã§ã³åãæã€èŠçŽ ãã°ã«ãŒãåãããã©ã³ãžã·ã§ã³ã®èŠèŠçãªã³ã³ãããäœæããŸãã
- ::view-transition-image-pair(name)ïŒãã©ã³ãžã·ã§ã³ã«é¢ããå€ãç»åãšæ°ããç»åã®äž¡æ¹ãå«ã¿ãŸãã
- ::view-transition-old(name)ïŒèŠçŽ ã®å€ãç¶æ ã衚ããŸãã
- ::view-transition-new(name)ïŒèŠçŽ ã®æ°ããç¶æ ã衚ããŸãã
ãããã®æ¬äŒŒèŠçŽ ãã©ã®ããã«ã¬ã³ããªã³ã°ãããããçè§£ããããšã¯ãããã©ãŒãã³ã¹ãæé©åããããã«äžå¯æ¬ ã§ãããã©ãŠã¶ã¯ãããã®èŠçŽ ãåçã«äœæãããã®èŠèŠçãªããããã£ã¯CSSã¢ãã¡ãŒã·ã§ã³ãšãã©ã³ãžã·ã§ã³ãä»ããŠå¶åŸ¡ãããŸãã
ã¬ã³ããªã³ã°ãã€ãã©ã€ã³ãšãã¥ãŒã»ãã©ã³ãžã·ã§ã³
ã¬ã³ããªã³ã°ãã€ãã©ã€ã³ã¯ããã©ãŠã¶ãç»é¢ã«ã³ã³ãã³ãã衚瀺ããããã«å®è¡ããããã€ãã®ã¹ããŒãžã§æ§æãããŠããŸãããã¥ãŒã»ãã©ã³ãžã·ã§ã³ããã®ãã€ãã©ã€ã³ãšã©ã®ããã«çžäºäœçšããããçè§£ããããšã¯ãããã©ãŒãã³ã¹æé©åã«äžå¯æ¬ ã§ããäž»ãªã¹ããŒãžã¯æ¬¡ã®ãšããã§ãïŒ
- JavaScriptïŒ
document.startViewTransition()ãåŒã³åºããŠãã¥ãŒã»ãã©ã³ãžã·ã§ã³ãéå§ããŸãã - ã¹ã¿ã€ã«ïŒãã©ãŠã¶ã¯ãã©ã³ãžã·ã§ã³èŠçŽ ã«é©çšãããCSSã¹ã¿ã€ã«ãèšç®ããŸãã
- ã¬ã€ã¢ãŠãïŒãã©ãŠã¶ã¯ããŒãžäžã®åèŠçŽ ã®äœçœ®ãšãµã€ãºã決å®ããŸãã
- ãã€ã³ãïŒãã©ãŠã¶ã¯èŠèŠèŠçŽ ããããããããŸãã¯ã¬ã€ã€ãŒã«æç»ããŸãã
- ã³ã³ããžããïŒåæïŒïŒãã©ãŠã¶ã¯ã¬ã€ã€ãŒãçµã¿åãããŠè¡šç€ºçšã®æçµçãªç»åãçæããŸãã
ãã¥ãŒã»ãã©ã³ãžã·ã§ã³ã¯ãåã¹ããŒãžãç¹ã«ãã€ã³ããšã³ã³ããžããã®ã¹ããŒãžã®ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã倿°ã®èŠçŽ ãè€éãªã¢ãã¡ãŒã·ã§ã³ããŸãã¯é«ã³ã¹ããªCSSããããã£ãæã€è€éãªãã©ã³ãžã·ã§ã³ã¯ãã¬ã³ããªã³ã°æéãå€§å¹ ã«å¢å ãããã«ã¯ã«ã¯ããã¢ãã¡ãŒã·ã§ã³ïŒãžã£ã³ã¯ïŒãåŒãèµ·ããå¯èœæ§ããããŸãã
ãã©ã³ãžã·ã§ã³èŠçŽ ã®ã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããèŠå
ãã¥ãŒã»ãã©ã³ãžã·ã§ã³äžã®ã¬ã³ããªã³ã°ããã©ãŒãã³ã¹äœäžã«ã¯ãããã€ãã®èŠå ãå¯äžããå¯èœæ§ããããŸãïŒ
- ãã€ã³ãã®è€éãïŒã¢ãã¡ãŒã·ã§ã³åãããèŠèŠèŠçŽ ã®è€éãã¯ããã€ã³ãæéã«çŽæ¥åœ±é¿ããŸãã圱ãã°ã©ããŒã·ã§ã³ããŒããããŸãã¯è€éãªåœ¢ç¶ãæã€èŠçŽ ã¯ãã¬ã³ããªã³ã°ã«ããå€ãã®åŠçèœåãå¿ èŠãšããŸãã
- ã¬ã€ã€ãŒã®äœæïŒ
transformãopacityãwill-changeãªã©ã®ç¹å®ã®CSSããããã£ã¯ãæ°ããã¬ã€ã€ãŒã®äœæãããªã¬ãŒããå¯èœæ§ããããŸããã¬ã€ã€ãŒã¯ã³ã³ããžããã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãããéå°ãªã¬ã€ã€ãŒäœæã¯ãªãŒããŒãããã远å ããå¯èœæ§ããããŸãã - ã³ã³ããžããã®è€éãïŒè€æ°ã®ã¬ã€ã€ãŒãæçµçãªç»åã«çµåããããšã¯ãç¹ã«ã¬ã€ã€ãŒãéãªã£ãŠãããããã¬ã³ãã£ã³ã°ãå¿ èŠãªå Žåã«èšç®ã³ã¹ããé«ããªãå¯èœæ§ããããŸãã
- ã¢ãã¡ãŒã·ã§ã³ã®è€éãïŒå€æ°ã®ããããã£ãããŒãã¬ãŒã ãå«ãè€éãªã¢ãã¡ãŒã·ã§ã³ã¯ããã©ãŠã¶ã®ã¬ã³ããªã³ã°ãšã³ãžã³ã«è² æ ããããå¯èœæ§ããããŸãã
- èŠçŽ ã®æ°ïŒãã©ã³ãžã·ã§ã³äžã«ã¢ãã¡ãŒã·ã§ã³åãããèŠçŽ ã®æ°ãéåžžã«å€ããšãç¹ã«äœã¹ããã¯ã®ããã€ã¹ã§ã¯ããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãã
- ãªãã€ã³ããšãªãããŒïŒèŠçŽ ã®ãžãªã¡ããªïŒãµã€ãºãäœçœ®ïŒã®å€æŽã¯ãªãããŒãããªã¬ãŒãããã©ãŠã¶ã«ããŒãžã®ã¬ã€ã¢ãŠããåèšç®ãããŸããèŠçŽ ã®å€èгã®å€æŽã¯ãªãã€ã³ããããªã¬ãŒããŸãããªãã€ã³ããšãªãããŒã¯ã©ã¡ããã³ã¹ãã®ãããæäœã§ãããæå°éã«æããã¹ãã§ãã
ãã©ã³ãžã·ã§ã³èŠçŽ ã¬ã³ããªã³ã°ã®æé©åæè¡
ã¹ã ãŒãºã§å¹ççãªãã¥ãŒã»ãã©ã³ãžã·ã§ã³ãå®çŸããã«ã¯ã以äžã®æé©åæè¡ãæ€èšããŠãã ããïŒ
1. ãã€ã³ãã®è€éãã軜æžãã
- èŠèŠèŠçŽ ãåçŽåããïŒåœ±ãã°ã©ããŒã·ã§ã³ããŒããã®å°ãªããããã·ã³ãã«ãªãã¶ã€ã³ãéžæããŸããCSSãã£ã«ã¿ãŒã¯ããã©ãŒãã³ã¹ã«è² è·ããããå¯èœæ§ããããããæ§ããã«äœ¿çšããããšãæ€èšããŠãã ããã
- ç»åãæé©åããïŒWebPãAVIFã®ãããªæé©åãããç»å圢åŒã䜿çšããç»åã衚瀺寞æ³ã«é©ãããµã€ãºã§ããããšã確èªããŸãããã©ãŠã¶ã§å€§ããªç»åãçž®å°ãããšäžèŠãªåŠçãçºçããå¯èœæ§ããããããé¿ããŠãã ããã
- ãã¯ã¿ãŒã°ã©ãã£ãã¯ã¹ïŒSVGïŒã䜿çšããïŒSVGã¯ã¹ã±ãŒã©ãã«ã§ãããåçŽãªåœ¢ç¶ãã¢ã€ã³ã³ã«ã¯ã©ã¹ã¿ãŒç»åãããããã©ãŒãã³ã¹ãé«ãããšãå€ãã§ããäžèŠãªã¡ã¿ããŒã¿ãåé€ãããã¹ãåçŽåããããšã§SVGãæé©åããŸãã
- è€éãªèæ¯ã®éãªããé¿ããïŒéãªãåãã°ã©ããŒã·ã§ã³ãè€éãªèæ¯ç»åã¯ããã€ã³ãæéãå€§å¹ ã«å¢å ãããå¯èœæ§ããããŸããèæ¯ãåçŽåããããå¯èœãªå Žåã¯åè²ã䜿çšããããã«ããŠãã ããã
äŸïŒè€æ°ã®ã«ã©ãŒã¹ããããæã€è€éãªã°ã©ããŒã·ã§ã³ã䜿çšãã代ããã«ãããå°ãªãã¹ããããæã€ã·ã³ãã«ãªã°ã©ããŒã·ã§ã³ãåè²ã®èæ¯è²ã䜿çšããããšãæ€èšããŠãã ãããç»åã䜿çšããå Žåã¯ãWebé ä¿¡çšã«æé©åãããŠããããšã確èªããŠãã ããã
2. ã¬ã€ã€ãŒç®¡çãæé©åãã
will-changeãæ§ããã«äœ¿çšããïŒwill-changeããããã£ã¯ãèŠçŽ ã倿Žãããããšããã©ãŠã¶ã«ç€ºåããäºåã«æé©åãå®è¡ã§ããããã«ããŸããããããwill-changeã䜿ãããããšãéå°ãªã¬ã€ã€ãŒäœæãšã¡ã¢ãªæ¶è²»ã®å¢å ã«ã€ãªããå¯èœæ§ããããŸããwill-changeã¯ãã¢ã¯ãã£ãã«ã¢ãã¡ãŒã·ã§ã³åãããŠããèŠçŽ ã«ã®ã¿é©çšããŠãã ããã- èŠçŽ ãã¬ã€ã€ãŒã«ææ Œãããã®ã¯æ
éã«ïŒ
transformãopacityãªã©ã®ç¹å®ã®CSSããããã£ã¯ãèŠçŽ ãèªåçã«ã¬ã€ã€ãŒã«ææ ŒãããŸããããã¯ã³ã³ããžããã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãããéå°ãªã¬ã€ã€ãŒäœæã¯ãªãŒããŒãããã远å ããå¯èœæ§ããããŸããã©ã®èŠçŽ ãã¬ã€ã€ãŒã«ææ ŒããŠãããã«æ³šæããäžèŠãªã¬ã€ã€ãŒäœæãé¿ããŠãã ããã - ã¬ã€ã€ãŒãçµ±åããïŒå¯èœã§ããã°ãè€æ°ã®èŠçŽ ãåäžã®ã¬ã€ã€ãŒã«çµ±åããŠã¿ãŠãã ãããããã«ããããã©ãŠã¶ã管çããå¿ èŠã®ããã¬ã€ã€ãŒã®æ°ãæžãããã³ã³ããžããã®ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
äŸïŒã°ã«ãŒãå
ã®åã
ã®èŠçŽ ãã¢ãã¡ãŒã·ã§ã³åãã代ããã«ã芪èŠçŽ ã«transformãé©çšããŠãã°ã«ãŒãå
šäœãåäžã®ã¬ã€ã€ãŒãšããŠã¢ãã¡ãŒã·ã§ã³åããããšãæ€èšããŠãã ããã
3. ã¢ãã¡ãŒã·ã§ã³ãåçŽåãã
- TransformãšOpacityã䜿çšããïŒ
transformãšopacityã®ã¢ãã¡ãŒã·ã§ã³ã¯ãGPUã§çŽæ¥åŠçã§ãããããä»ã®CSSããããã£ãã¢ãã¡ãŒã·ã§ã³åãããããäžè¬çã«ããã©ãŒãã³ã¹ãé«ãã§ãã - ã¬ã€ã¢ãŠããããªã¬ãŒããããããã£ãé¿ããïŒ
widthãheightãmarginãpaddingãªã©ã®ã¬ã€ã¢ãŠãã«åœ±é¿ãäžããããããã£ãã¢ãã¡ãŒã·ã§ã³åãããšãã³ã¹ãã®ãããæäœã§ãããªãããŒãããªã¬ãŒãããå¯èœæ§ããããŸããèŠçŽ ã®ãµã€ãºãšäœçœ®ãã¢ãã¡ãŒã·ã§ã³åããã«ã¯ã代ããã«transformã䜿çšããŠãã ããã - JavaScriptã¢ãã¡ãŒã·ã§ã³ããCSSãã©ã³ãžã·ã§ã³ã䜿çšããïŒCSSãã©ã³ãžã·ã§ã³ã¯ããã©ãŠã¶ããã广çã«æé©åã§ãããããJavaScriptã¢ãã¡ãŒã·ã§ã³ãããããã©ãŒãã³ã¹ãé«ãããšãå€ãã§ãã
- ããŒãã¬ãŒã ã®æ°ãæžããïŒããŒãã¬ãŒã ãå°ãªãã»ã©ãäžè¬çã«ã¹ã ãŒãºã§å¹ççãªã¢ãã¡ãŒã·ã§ã³ã«ãªããŸããäžèŠãªããŒãã¬ãŒã ãé¿ããæå°éã®ã¹ãããã§ã¹ã ãŒãºãªãã©ã³ãžã·ã§ã³ãç®æããŠãã ããã
transition-durationãè³¢ã䜿çšããïŒãã©ã³ãžã·ã§ã³ã®æç¶æéãçããšã¢ãã¡ãŒã·ã§ã³ããããããšæããããŸãããéåžžã«çãæç¶æéã¯ããã©ãŒãã³ã¹ã®åé¡ãããç®ç«ãããå¯èœæ§ããããŸããå¿çæ§ãšæ»ãããã®ãã©ã³ã¹ãèŠã€ããããã«ãããŸããŸãªæç¶æéã詊ããŠã¿ãŠãã ããã- ã€ãŒãžã³ã°é¢æ°ãæé©åããïŒäžéšã®ã€ãŒãžã³ã°é¢æ°ã¯ãä»ã®ãã®ãããèšç®ã³ã¹ããé«ããªããŸããããŸããŸãªã€ãŒãžã³ã°é¢æ°ã詊ããŠãæå°éã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ã§æãŸããèŠèŠå¹æãæäŸãããã®ãèŠã€ããŠãã ããã
äŸïŒèŠçŽ ã®widthãã¢ãã¡ãŒã·ã§ã³åãã代ããã«ãtransform: scaleX()ã䜿çšããŠããªãããŒãããªã¬ãŒããããšãªãåãèŠèŠå¹æãå®çŸããŸãã
4. èŠçŽ æ°ãæé©åãã
- DOMãµã€ãºãåæžããïŒDOMãå°ããã»ã©ãäžè¬çã«ããã©ãŒãã³ã¹ãåäžããŸããããŒãžããäžèŠãªèŠçŽ ãåé€ããå¯èœãªå Žåã¯DOMæ§é ãåçŽåããŠãã ããã
- ãªã¹ããšã°ãªãããä»®æ³åããïŒé·ããªã¹ããã°ãªãããã¢ãã¡ãŒã·ã§ã³åããå Žåã¯ãä»®æ³åæè¡ã䜿çšããŠè¡šç€ºãããŠããã¢ã€ãã ã®ã¿ãã¬ã³ããªã³ã°ããããšãæ€èšããŠãã ãããããã«ãããã¢ãã¡ãŒã·ã§ã³åãããèŠçŽ ã®æ°ãå€§å¹ ã«åæžããããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
- CSS Containmentã䜿çšããïŒ
containããããã£ã䜿çšãããšãDOMã®äžéšãåé¢ããããé åã®å€æŽãä»ã®é åã«åœ±é¿ãäžããã®ãé²ãããšãã§ããŸããããã«ããããªãããŒãšãªãã€ã³ãã®ç¯å²ãçããããšã§ãã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ãåäžãããããšãã§ããŸãã
äŸïŒé·ãã¢ã€ãã ã®ãªã¹ããããå Žåã¯ãReact Virtualizedãvue-virtual-scrollerã®ãããªã©ã€ãã©ãªã䜿çšããŠãçŸåšãã¥ãŒããŒãã«è¡šç€ºãããŠããã¢ã€ãã ã®ã¿ãã¬ã³ããªã³ã°ããŸãã
5. åé¢ããèé¢ãžã®ã¬ã³ããªã³ã°ãšZ-Index
èŠçŽ ããã€ã³ããããé åºãããã©ãŒãã³ã¹ã«åœ±é¿ãäžããå¯èœæ§ããããŸãããã©ãŠã¶ã¯äžè¬çã«åé¢ããèé¢ã®é ã«èŠçŽ ããã€ã³ãããŸããã€ãŸããz-indexå€ãé«ãèŠçŽ ãåŸã§ãã€ã³ããããŸããç°ãªãz-indexå€ãæã€è€éãªéãªãåãèŠçŽ ã¯ããã¯ã»ã«ãè€æ°åãã€ã³ãããããªãŒããŒãããŒã«ã€ãªããå¯èœæ§ããããŸããView Transition APIã¯ã¹ã ãŒãºãªãã©ã³ãžã·ã§ã³ãä¿èšŒããããã«z-indexã管çããŸãããz-indexã®åäœãçè§£ããããšã¯äŸç¶ãšããŠéèŠã§ãã
- éãªãåãèŠçŽ ãæå°éã«æããïŒãã¶ã€ã³å ã®éãªãåãèŠçŽ ã®æ°ãæžãããŸããéãªããå¿ èŠãªå Žåã¯ãèŠçŽ ãã³ã³ããžããçšã«æé©åãããŠããããšã確èªããŠãã ããã
- Z-IndexãæŠç¥çã«äœ¿çšããïŒäžèŠãªãªãŒããŒãããŒãé¿ããããã«ãz-indexå€ãæ éã«å²ãåœãŠãŠãã ãããç°ãªãz-indexå€ã®æ°ãæå°éã«æããããã«ããŠãã ããã
- éæãªãªãŒããŒã¬ã€ãé¿ããïŒéæãªãªãŒããŒã¬ã€ã¯ãäžã®ãã¯ã»ã«ããã¬ã³ãããå¿ èŠããããããã¬ã³ããªã³ã°ã«ã³ã¹ãããããå¯èœæ§ããããŸãã代ããã«äžéæãªè²ãã¢ã«ãã¡ãã£ãã«ä»ãã®æé©åãããç»å圢åŒã䜿çšããããšãæ€èšããŠãã ããã
äŸïŒã¡ã€ã³ã³ã³ãã³ãã®äžã«è¡šç€ºãããã¢ãŒãã«ãŠã£ã³ããŠãããå Žåãz-indexã䜿çšããŠã¢ãŒãã«ãã³ã³ãã³ãã®äžã«é 眮ãããäžèŠãªãã¬ã³ãã£ã³ã°ãé¿ããããã«ã¢ãŒãã«ã®èæ¯ãäžéæã§ããããšã確èªããŠãã ããã
6. ããŒã«ãšãããã¡ã€ãªã³ã°
ãã©ãŠã¶ã®éçºè ããŒã«ã掻çšããããšã¯ããã¥ãŒã»ãã©ã³ãžã·ã§ã³ã®ããã©ãŒãã³ã¹ããã«ããã¯ãç¹å®ãã察åŠããããã«äžå¯æ¬ ã§ãã
- Chrome DevToolsããã©ãŒãã³ã¹ããã«ïŒããã©ãŒãã³ã¹ããã«ã䜿çšããŠããã¥ãŒã»ãã©ã³ãžã·ã§ã³ã®ã¬ã³ããªã³ã°ããã©ãŒãã³ã¹ãèšé²ããã³åæããŸããé·ããã€ã³ãæéãéå°ãªã¬ã€ã€ãŒäœæããã®ä»ã®ããã©ãŒãã³ã¹åé¡ãç¹å®ããŸãã
- Firefox ProfilerïŒChrome DevToolsãšåæ§ã«ãFirefox Profilerã¯ããã¥ãŒã»ãã©ã³ãžã·ã§ã³ãå«ãWebã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã«é¢ããè©³çŽ°ãªæŽå¯ãæäŸããŸãã
- WebPageTestïŒWebPageTestã¯ãããŸããŸãªããã€ã¹ããããã¯ãŒã¯æ¡ä»¶äžã§WebããŒãžã®ããã©ãŒãã³ã¹ããã¹ãããããã®åŒ·åãªãªã³ã©ã€ã³ããŒã«ã§ããããŒã«ã«ã®éçºç°å¢ã§ã¯æããã«ãªããªãããã©ãŒãã³ã¹ã®åé¡ãç¹å®ããããã«WebPageTestã䜿çšããŸãã
äŸïŒChrome DevToolsããã©ãŒãã³ã¹ããã«ã䜿çšããŠãã¥ãŒã»ãã©ã³ãžã·ã§ã³ãèšé²ããã¿ã€ã ã©ã€ã³ãåæããŸããé·ããã€ã³ãæéãéå°ãªã¬ã€ã€ãŒäœæããã®ä»ã®ããã©ãŒãã³ã¹ããã«ããã¯ãæ¢ããŸããããã©ãŒãã³ã¹åé¡ã®åå ãšãªã£ãŠããç¹å®ã®èŠçŽ ãã¢ãã¡ãŒã·ã§ã³ãç¹å®ããäžèšã§èª¬æããæé©åæè¡ãé©çšããŸãã
å®äžçã®äŸãšã±ãŒã¹ã¹ã¿ãã£
ãããã®æé©åæè¡ããã¥ãŒã»ãã©ã³ãžã·ã§ã³ã®ããã©ãŒãã³ã¹ãåäžãããããã«ã©ã®ããã«é©çšã§ããããããã€ãã®å®äžçã®äŸãèŠãŠã¿ãŸãããïŒ
äŸ1ïŒEã³ããŒã¹ååããŒãžã®ãã©ã³ãžã·ã§ã³
ååäžèЧããŒãžãšåå¥ã®ååããŒãžéã®ãã©ã³ãžã·ã§ã³ãã¢ãã¡ãŒã·ã§ã³åããããã«ãã¥ãŒã»ãã©ã³ãžã·ã§ã³ã䜿çšããEã³ããŒã¹ãµã€ããèããŠã¿ãŸããããå ã®å®è£ ã§ã¯ãè€éãªååç»åãšéå°ãªDOMãµã€ãºã®ããã«ã¢ãã¡ãŒã·ã§ã³ãã«ã¯ã«ã¯ããŠããŸããã
é©çšãããæé©åïŒ
- WebP圢åŒã䜿çšããŠååç»åãæé©åããŸããã
- ååç»åã«é å»¶èªã¿èŸŒã¿ã䜿çšããŠåæDOMãµã€ãºãåæžããŸããã
- ååããŒãžã®ã¬ã€ã¢ãŠããåçŽåããŠDOMèŠçŽ ã®æ°ãæžãããŸããã
widthãšheightã®ä»£ããã«transformã䜿çšããŠååç»åãã¢ãã¡ãŒã·ã§ã³åããŸããã
çµæïŒ
- ãã©ã³ãžã·ã§ã³ã®æ»ãããã60ïŒ åäžããŸããã
- ããŒãžã®èªã¿èŸŒã¿æéã30ïŒ ççž®ãããŸããã
äŸ2ïŒãã¥ãŒã¹ãµã€ãã®èšäºãã©ã³ãžã·ã§ã³
ãããã¥ãŒã¹ãµã€ãã¯ãèšäºäžèЧããŒãžãšåå¥ã®èšäºããŒãžéã®ãã©ã³ãžã·ã§ã³ãã¢ãã¡ãŒã·ã§ã³åããããã«ãã¥ãŒã»ãã©ã³ãžã·ã§ã³ã䜿çšããŠããŸãããå ã®å®è£ ã§ã¯ãè€éãªCSSãã£ã«ã¿ãŒãšã¢ãã¡ãŒã·ã§ã³ã®ããã«ããã©ãŒãã³ã¹ã®åé¡ãçºçããŠããŸããã
é©çšãããæé©åïŒ
- è€éãªCSSãã£ã«ã¿ãŒãããã·ã³ãã«ãªä»£æ¿æ¡ã«çœ®ãæããŸããã
- ã¢ãã¡ãŒã·ã§ã³ã®ããŒãã¬ãŒã ã®æ°ãæžãããŸããã
- éå°ãªã¬ã€ã€ãŒäœæãé¿ããããã«
will-changeãæ§ããã«äœ¿çšããŸããã
çµæïŒ
- ãã©ã³ãžã·ã§ã³ã®æ»ãããã45ïŒ åäžããŸããã
- ãã©ã³ãžã·ã§ã³äžã®CPU䜿çšçã25ïŒ æžå°ããŸããã
çµè«
CSS View Transitionsã¯ãWebã¢ããªã±ãŒã·ã§ã³ã®ãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãåäžãããé åçãªæ¹æ³ãæäŸããŸãããã©ã³ãžã·ã§ã³èŠçŽ ãã©ã®ããã«ã¬ã³ããªã³ã°ãããããçè§£ãããã®èšäºã§èª¬æããæé©åæè¡ãé©çšããããšã§ããã¥ãŒã»ãã©ã³ãžã·ã§ã³ãèŠèŠçã«é åçã§ããã©ãŒãã³ã¹ãé«ãããšãä¿èšŒã§ããŸãããã©ãŠã¶ã®éçºè ããŒã«ã䜿çšããŠãã©ã³ãžã·ã§ã³ããããã¡ã€ãªã³ã°ããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããŠå¯ŸåŠããããšãå¿ããªãã§ãã ãããããã©ãŒãã³ã¹ãåªå ããããšã§ãé åçã§å¿çæ§ã®é«ãWebã¢ããªã±ãŒã·ã§ã³ãäœæããããŸããŸãªããã€ã¹ããããã¯ãŒã¯æ¡ä»¶äžã§ã·ãŒã ã¬ã¹ãªãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸã§ããŸããéèŠãªãã€ã³ãã¯ãèŠèŠèŠçŽ ã®åçŽåãã¬ã€ã€ãŒç®¡çã®æé©åãã¢ãã¡ãŒã·ã§ã³ã®åçŽåãèŠçŽ æ°ã®åæžããããŠz-indexã®æŠç¥çãªäœ¿çšã§ãããã¥ãŒã»ãã©ã³ãžã·ã§ã³ãç¶ç¶çã«ç£èŠããã³æé©åããããšã§ãWebã¢ããªã±ãŒã·ã§ã³ãäžçäžã§äžè²«ããŠã¹ã ãŒãºã§æ¥œãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæäŸã§ããããã«ããããšãã§ããŸãã