ðš CSS Advent Calendar: Day 24 / The Future of Web UI is Declarative. - How Design System can bridge Imperative Design?
Published on
Updated on
Design ãš Web Design ã®ææ³ãæ©æž¡ããã Design SystemãSemantic Design ãš Declarative Design System ã®é¢ä¿æ§
Table of Contents
Table of Contents
ã¯ããã«
Day23 ã§ã¯ãCSS ã Declarative ã§ããããšããã®ç¹åŸŽã掻ããã Declarative 㪠Web Design ãããããšã§ãDeclarative ã§ãããšãã CSS ã®æ§è³ªã«åºã¥ãããFault Tolerant ã§æè»æ§ãåãããã¶ã€ã³ãå¯èœã«ãªããšè¿°ã¹ãŸããã
Declarative 㪠Web Design ãšãããã€ã³ãã»ããã®ã·ããã«å¯ŸããŠãå®éã«ã©ã®ãããªã¢ãããŒãããšã£ãŠãããã®ã§ããããã ä»åã¯ããã¶ã€ã³ããŒã«ã®çŸç¶ãšãDesign System ãéããŠãDeclarative 㪠Web Design ãå®çŸããããã®äžã€ã®ã¢ãããŒããèå¯ããŠããŸãã
Design Tools
ãã¶ã€ã³ããŒã«ãšèšã£ãŠãæ§ã ã§ãããä»åè«ãããå 容ã¯ã©ã®ããŒã«ãåã£ãŠãã»ãšãã©å€ãããªããããããã§ã¯ Figma ãäŸã«è©±ããŸãã
Figma ã«ãããŠã¯ãLayer ã Component, Property, Swap Component ãªã©ãšãã£ã圢ã§ãComponent-driven ã«å³ãããã¶ã€ã³ãå¯èœã«ããæ©èœãããŸãå®è£ ããŠããŸãã
ãããããæ å ±ã»ããŒã¿ã®æŽçãã¯ãWeb ã¢ããªã±ãŒã·ã§ã³ã®åŸæãšãããšããã§ããããã¶ã€ã³ããŒã«ã«ãã£ãŠãã³ã³ããŒãã³ãåäœã§ãã¶ã€ã³ã®åå©çšã容æã«ãªããŸããã
ããããªããããã¶ã€ã³ããŒã«ã§äœæããã³ã³ããŒãã³ãããã³ã³ããŒãã³ãã®å®è£ æã«ãã®ãŸãŸåç §å¯èœããšãããšãããã§ã¯ãããŸããã ãªããªãã°ãããã«ã¯ãã¶ã€ã³ããŒã«ãšãã©ãŠã¶ã®éã§ãç®çãšå¶çŽãç°ãªãããã§ãã
ãããŸã§ã«èŠãŠããããã«ããã©ãŠã¶ã¯ããŠãŒã¶ã®ããããç¶æ³ãšãããæªç¥ã®å€æ°ããå ¥åãšããŠããŸãã CSS ã ãã§ã Value Processing ã Cascade ãšããã®ä»èšå€§ãªèšç®ãã¬ã³ããªã³ã°ãšã³ãžã³ã§ãªãããŠãããããã®èšç®çµæãç»é¢ã«åºåãããŠããŸãã
ãããŠããã¶ã€ã³ããŒã«ããã®åºåãå®å šã«åçŸããããšã¯ãçŸæç¹ã§ã¯å°é£ã§ãã ãã¶ã€ã³ããŒã«ã¯éçãªãã¶ã€ã³ã®äœæãšç®¡çã«æé©åããã©ãŠã¶ã¯åçãªã³ã³ãã³ãã®å®è¡ãšè¡šç€ºã«æé©åãããŠãããäºãã«çžè£çãªé¢ä¿ã«ãããŸãã
The Gap
Web Design ãšããæèã«ãããŠãCSS ããDeclarative ãªããŒã«ãã§ããã°ããã¶ã€ã³ããŒã«ã¯å€ããã¬ãŒã ãµã€ãºãªã©ã®è¡šç€ºèŠä»¶ãå ·äœçã«æç€ºãããImperative ãªããŒã«ãã§ãããšãããŸãã ããã Auto Layout ã GridãHug/ Fill Container ã®ãããªæ©èœã Figma ã«è¿œå ãããŠããèåŸã®åŠçã¯ãã©ãŠã¶ãšã³ãžã³ã®ãããšç°ãªããæ©èœã¯ CSS ã®ä»æ§ã«åŸã£ãŠããããã§ã¯ãããŸããã ããããäºæ ãããããããã¶ã€ã³ããŒã«ã® Flexbox/Grid/Intrinsic Sizing/etc 㯠CSS ã®ãã㪠Declarative ããåçŸããŠæ©èœããŸããã
ãã¶ã€ã³ããŒã«ã¯ Imperative ã§ãããšããå¶çŽãšãã®ç®çãããDeclarative 㪠CSS ã®é²åã«è¿œãã€ãããšã¯å°é£ã§ãã CSS ã§ Declarative ã«è¡šçŸã§ããããšãå¢ããã°å¢ããã»ã©ããã®å·®ã¯æ¡å€§ããŠããäžæ¹ã§ãããã
ãã®ãããªæè¡çå¶çŽã«ããããã¶ã€ã³ããŒã«åäœã§ã¯ CSS ã®æã€ Declarative ãªç¹æ§ãå®å šã«è¡šçŸããããšã¯é£ããããDeclarative Designãã®å®çŸã«ã¯å¥ã®ã¢ãããŒããå¿ èŠãšãªããŸãã
Bridging the Gap between Design and CSS
ããã§ããããŸã§æ¬é£èŒã§è§ŠããŠããªãã£ããDesign Systemããšããååšã€ããŠè§ŠããŠãããŸãã ãªããªãã°ãCSS ãšãã¶ã€ã³ã®ä»²ç«ã¡ãšãªãèŠçŽ ã§ãã Design System ã¯ãçè«çã«ã¯ããã®åé¡ãæéããããã«åœ¹ç«ã€å¯èœæ§ãããããã§ãã
Design System
Design System ãšããèšèèªäœã¯éåžžã«å¹ ãæã£ãŠãããçµç¹ãããŒã ã«ãã£ãŠç°ãªãè§£éãããããšãã§ããŸãã
Figma ã®è¡šçŸãåŒçšãããšãDesign System ã®åœ¹å²ã¯ãäžè²«ãã補åãäœéšã®å€èŠ³ãšæè§Šãç¶æããããã®ãæ§æèŠçŽ ãšæšæºã®ã»ãããã§ãã
At its core, a design system is a set of building blocks and standards that help keep the look and feel of products and experiences consistent.
ãŸããJeremy Keith ã®èšèãåãããšãDesign System ã¯ãOuter Circleãã§ããããã¿ãŒã³ãšãã®é£æºãäŒããããã®ããŸããŸãªèŠçŽ ãå å«ããããšãã§ãããã®ã§ãã
The generally-accepted definition of a design system is that itâs the outer circle â it encompasses pattern libraries, style guides, and any other artefacts. But thereâs something more. Just because you have a collection of design patterns doesnât mean you have a design system. A system is a framework. Itâs a rulebook. Itâs what tells you how those patterns work together.
Jeremy Keith â Design Systems | Brad Frost
å ·äœçã«ã¯ã以äžã®ãããªèŠçŽ ã§æ§æãããããšãäžè¬çã§ãã
- ã³ã³ããŒãã³ãã©ã€ãã©ãª: åå©çšå¯èœãª UI ããŒããšãã®æ¯ãèãã®å®çŸ©
- ãã¶ã€ã³ããŒã¯ã³: ColorãTypographyãSpacing ãªã©ã®æå°åäœã®å€ãå®çŸ©ãããã®
- ã¬ã€ãã©ã€ã³: ã¢ã¯ã»ã·ããªãã£ã¬ã€ããã¹ã¿ã€ã«ã¬ã€ãããã©ã³ãã¬ã€ããã¬ã€ã¢ãŠãã¬ã€ããªã©ãååãæéã瀺ãããã®
- ããã¥ã¡ã³ããŒã·ã§ã³ïŒãã¶ã€ã³ã·ã¹ãã æ§æèŠçŽ ã®äœ¿ãæ¹ããã¹ããã©ã¯ãã£ã¹ã説æããè³æ
- etc
ãã¶ã€ã³ããŒã¯ã³ã«é¢ããŠã¯ãW3C ã® Community Group ãååšãããã©ãŒãããã®æšæºåãé²ããããŠããŸãã DTCG(Design Token Community Group) ã®å®çŸ©ãåŒçšãããšããã¶ã€ã³ããŒã¯ã³ã¯ããã©ãããã©ãŒã ã«äŸåããªãæ¹æ³ã§ãã¶ã€ã³ã®æ±ºå®ã衚çŸããããã®æ¹æ³è«ãã§ãã
Design tokens are a methodology for expressing design decisions in a platform-agnostic way so that they can be shared across different disciplines, tools, and technologies. They help establish a common vocabulary across organisations.
Salesforce Lightning Design System ã®åµèšè ã§ãããDTCG ã® Chair ã§ããã Jina Anne ã®èª¬æãããã¶ã€ã³ããŒã¯ã³ãçè§£ããäžã§åèã«ãªããŸãã
æ¬èšäºã§ã¯ãäžèšã®ãããªèŠçŽ ããæ§æããããã®ã Design System ãšããŠæ±ããŸãã
ãã® Design System ã®ã³ã³ããŒãã³ãããã¶ã€ã³ããŒã¯ã³ããäºããæ£ãããæ§ç¯ããŠããã°ãããããç¶æ³ã«ãããŠäžè²«ãããã¶ã€ã³ããã°ããå±éããããšãã§ããŸãã ããããã®ããæ£ããããšããèšèã«ã¯è§£éã®äœå°ããããŸãã
Design System has to be âŠ
Imperative ãªèãæ¹ã§ Design System ãæ§ç¯ãããšããæ£ãããã¯ãç·»å¯ãªããšããæå³åãã«ãªããŸãã ãã¶ã€ã³ããŒã«ãšåŒ·ãçµåãã Design System ã§ã¯ãImperative ãªèãæ¹ã® Design System ã«ãªããããã§ãã ãã®å Žåãç¹å®ã® Viewport ã«åºã¥ãããã¯ã»ã«å€ã§ã®ã¹ããŒã·ã³ã°ã rem ã§ã®ãã©ã³ããµã€ãºãhex ã§ã®ã«ã©ãŒæå®ãªã©ããã¶ã€ã³ããŒã«ã衚çŸã§ããç¯å²ã§ãç·»å¯ãª Design Systemããå®çŸ©ãããŸãã
Declarative ãªèãæ¹ã§ Design System ãæ§ç¯ãããšããæ£ãããã¯ãæè»ãªããšããæå³åãã«ãªããŸãã Declarative ã§ãããšãã CSS ã®æ§è³ªãå©çšãã Design System ã¯ãDeclarative ãªèãæ¹ã® Design System ã«ãªããããã§ãã ãã®å Žåããããã Viewport ã§ãã³ã³ããã«å¯ŸããŠéåæã®ãªãããã«å€åããã¹ããŒã·ã³ã°ããã³ã³ããã®å¹ ã«å¿ããŠå€åãããã©ã³ããµã€ãºããŠãŒã¶ã®ç°å¢ã«ãããŠæé©ãªè²åãªã©ãCSS ã® Declarative ãªããã³ã·ã£ã«ãæå€§éã«æŽ»ããããFault Tolerant ã§æè»ãª Design Systemããå®çŸ©ãããŸãã
äŸãšããŠãã«ãŒãã³ã³ããŒãã³ãã®äœæãèããŸãã
Imperative ãªèãæ¹ã®ã³ã³ããŒãã³ãã§ã¯ãåºåçµæã®å®ç§ããåãããŸãã ç¹å®ã® Viewport ã«å¯ŸããŠå®ç§ãªã¹ã¿ã€ã«ãå®çŸããããã«ã¯ããMedia Queriesããå©çšããŠã³ã³ããŒãã³ããæ§ç¯ããã®ãæé©ã§ãã ãã£ãŠãImperative 㪠Design System ã®ã³ã³ããŒãã³ãã§ã¯ãMedia Queries ã®å©çšãããããã¢ãã€ã«ãš PC ã§ç°ãªãã¹ã¿ã€ã«ã·ãŒãããã¶ã€ã³ããŒã¯ã³ãé©çšãããããã§ãããã
äžæ¹ãDeclarative ãªèãæ¹ã§ã³ã³ããŒãã³ããäœããšãViewport ãããã€ã¹ã«ãã£ãŠã¹ã¿ã€ã«ã·ãŒãã倿Žããããªãããšã¯ãããŸããã
ãªããªãã°ããã®ç»é¢ãããã€ã¹ã§ãªãå Žåã«é©çšããã¹ã¿ã€ã«ãå£ããŠããŸããFault Tolerant ã§ãªãã³ã³ããŒãã³ãã«ãªãããã§ãã
ãã£ãŠãDeclarative 㪠Design System ã§ã¯ãã³ã³ããã«å¯ŸããŠæè»ãªã³ã³ãã³ãã宣èšããããã«ãContainer Queriesããå©çšããããmin()
, max()
, clamp()
ãªã©ã®é¢æ°ãå©çšãããããŠãViewport ã«äŸåããã¹ã¿ã€ã«ãé¿ããã§ãããã
以äžã®äŸã§ã¯ãMedia Queries ãå©çšãã Imperative ãªã³ã³ããŒãã³ããšãContainer Queries ãå©çšãã Declarative ãªã³ã³ããŒãã³ãã瀺ããŠããŸãã
See the Pen Media or Container by saku (@sakupi01) on CodePen.
Design System ã®å¥ã®æ§æèŠçŽ ã§ããããã¶ã€ã³ããŒã¯ã³ãäŸã«ãšã£ãŠã¿ãŸãããã
Imperative ãªèãæ¹ã®ãã¶ã€ã³ããŒã¯ã³ã§ã¯ãåºåã®å®ç§ããéèŠã«ãªããããåºåçµæããã®ãŸãŸãã¶ã€ã³ããŒã¯ã³ã«åæ ãããã§ãããã
ã«ã©ãŒã§ããã° --button-color-primary: #ff4081;
ã--button-color-secondary: #ff4081;
å ããŠãããããã«å¯ŸãããããŒç¶æ
ããã©ãŒã«ã¹ç¶æ
ãªã©ã®ããªãšãŒã·ã§ã³ãå®çŸ©ããããããããŸããã
察ããŠãDeclarative ãªèãæ¹ã®ãã¶ã€ã³ããŒã¯ã³ã§ã¯ãåºåã®å®ç§ãã¯ãã«ãŒã«ã»ããã»ã©éèŠèŠãããŸããã ããããç¶æ³ã§ãã¶ã€ã³ããŒã¯ã³ã®æå³ãä¿ãããããã«ãããæœè±¡çãªå€ã§ãã¶ã€ã³ããŒã¯ã³ãå®çŸ©ããã§ãããã 以äžã®äŸã§ã¯ãbutton ã® Color ã«ã¯æ¬¡ã®ãããªæå³ããããŸãã
ãéåžžç¶æ ã§ã¯ãPrimary Color ãŸã㯠Secondary Color ã®ããããã䜿çšããããããŒç¶æ ã§ã¯ãèæ¯è²ãå ã®è²ãã 20% ããŒã¯ã«ããããšã§ãã€ã³ã¿ã©ã¯ãã£ãã§ããããšã瀺ããã
極端ãªäŸãæãããšããã㯠CSS ã§ä»¥äžã®ããã«ãšã³ã³ãŒãã§ããŸãã
:root {
/* global tokens */
--pink-color-hue: 10;
--pink-color-saturation: 80%;
--pink-color-lightness: 80%;
--green-color-hue: 70;
--green-color-saturation: 40%;
--green-color-lightness: 80%;
/* semantic tokens */
--semantic-primary-color: hsl(var(--pink-color-hue) var(--pink-color-saturation) var(--pink-color-lightness));
--semantic-secondary-color: hsl(var(--green-color-hue) var(--green-color-saturation) var(--green-color-lightness));
}
button {
--button-color: if(style(--state: primary): var(--semantic-primary-color); else: var(--semantic-secondary-color));
--state: primary; /* or secondary */
background-color: var(--button-color);
&:hover {
--button-color-hover: color-mix(in hsl, var(--button-color) 90%, black 10%);
background-color: var(--button-color-hover);
}
}
ããã2ã€ã® Design System ã®ã¢ãããŒãã¯æ ¹æ¬çã«ç°ãªããã®ã§ããããããã®ææç©ããDesign Systemãã«ãªãåŸãŸãã
ãããã¶ã€ããéçºè ã Imperative ãªèãæ¹ãæã£ãŠããŠãFigma ã Single Source of Truth ãšèããããŠãããªããImperative Design System ã®æ¹ãé©ããŠãããããããŸããã
ããããCSS ã HTML ã®èгç¹ãããã¶ã€ã³ãèããããšãã§ããããŒã ãããã®ã§ããã°ãDeclarative Design System ãæ§ç¯ã§ããããã³ã·ã£ã«ããããšæããŸãã
How Declarative Design System relates to Design?
æ··ä¹±ãé¿ãããããããã§æ±ãçšèªã®æŽçãããŠãããŸãã
- Design: Figma ã§äœæãããåå¥ã®ç»é¢ã UIãçŸç¶ã§ã¯ã Imperative ã«äœæããããã®ã
- Web Design: Web äžã®ãã¶ã€ã³ã®ããæ¹ã«é¢ãããã€ã³ãã»ãããå²åŠã
- Design System: ãã¶ã€ã³ã®äžè²«æ§ãä¿ã€ããã®ã³ã³ããŒãã³ãã»ããŒã¯ã³ã»ã¬ã€ãã©ã€ã³ã»etc ã®éåäœã
Web ã®ç¹æ§äžãWeb ãå®å šã«å¶åŸ¡ããããšãã§ããªãç¹ã¯ãæ¬é£èŒã§ã床ã è§ŠããŠããŸããã
Day23 ã§è©³ããè¿°ã¹ãŸããããDeclarative Web Design ã®æ žå¿ã¯ãåæã«åºã¥ããå¶åŸ¡ãæé€ããåºåã®ããã®è©³çްããã©ãŠã¶ã«å§ããããã®ã宣èšããã¶ã€ã³ãããããšã§ãã Web ãåæãšãã Design System ãªãã°ãWeb ã®æã€ãæªç¥ã®å€æ°ãã«å¯ŸããŠãæè»ã«ã»æé©ã«å¯Ÿå¿ããããšãç®æã Declarative 㪠Design System ã¯ç®æãã¹ããã®ã§ãããšãå人çã«ã¯èããŠããŸãã
ããããDesign System èªäœã Declarative ã§ãã£ãŠããããã ãã§ Declarative 㪠Web Design ãšããå²åŠãéæãããããã§ã¯ãããŸããã ãªããªãã°ãDesign System 㯠Design ãæããã«ãŒã«ã®éåäœã§ããããã§ãã
ã§ã¯ãDeclarative Design System ãéããŠãDeclarative Web Design ãå®çŸããã«ã¯ãã©ã®ããã« Design ãæããã°è¯ãã®ã§ããããïŒ
Design has to be Semantic
ããæ°å¹Žã§ãCSS ã®æ©èœã¯é£èºçã«å¢ãããããŸã§ Imperative ã«å®è£ ããŠãã/ã§ããªãã£ãããšããDeclarative ã«è¡šçŸã§ããå¹ ãåºãããŸããã
ãã㪠CSS ããã«æŽ»çšãããDeclarative 㪠Design Systemããæ§ç¯ããããã«ã¯ãCSS ã§ãäœããDeclare ããŠããã®ããæç¢ºã«ããããšã倧äºã§ãã
äŸãã°ãForm Input ã®ãã¶ã€ã³ã§èããŠã¿ãŸãã ãå ¥åæ¬ã®å¹ ã 280px ã«ãããïŒããšãããã¶ã€ã³ããã£ããšãããã¶ã€ã³ããã®ãŸãŸ CSS ã«ç¿»èš³ãããšã以äžã®ããã«ãªããŸãã
.input {
width: 280px;
}
ãããããªã 280px ãªã®ãïŒ ãã®ããã¶ã€ã³ã®æå³ããèãããšãããã©ãŒã å šäœã®å¹ ã®çŽååã«ãããã£ãããããã¯ãé·ãããçãããªããã¡ããã©è¯ãå¹ ã«ãããã£ãããªã©ãšãã£ãçç±ãèŠããŠããå¯èœæ§ããããŸãã ããããŠãããã¶ã€ã³ã®æå³ããè§£éã§ãããšãããé©å㪠CSS ã«ç¿»èš³ã§ããŸãã
.input {
width: min(50cqw, 20rem);
}
ããããããšã§ãã³ã³ããã®å¹ ãå€ãã£ãŠããã©ãŒã ã®æå³ã«åŸã£ãé©åãªå¹ ãä¿ã€ããšãã§ããŸãã
å¥ã®äŸãšããŠãã«ãŒãã³ã³ããŒãã³ãã®éã®ã¹ããŒã·ã³ã°ãèããŠã¿ãŸãããã
ãã«ãŒãå士ã®ééã 16px ã«ããããšãããã¶ã€ã³ãåæ§ã§ãã ãã¶ã€ã³ããã®ãŸãŸ CSS ã«ç¿»èš³ãããšã以äžã®ããã«ãªããŸãã
.card + .card {
margin-top: 16px;
}
ãããããã®åºå®å€ã®èæ¯ã«ã¯ããé©åºŠãªäœçœã§èŠããããããã£ãããããã¯ãç»é¢ãµã€ãºã«é¢ä¿ãªã調åãä¿ã¡ããã£ãããšãããäœãããã®ããã¶ã€ã³ã®æå³ããååšããã¯ãã§ãã ããã¶ã€ã³ã®æå³ãããããŸã§è§£éã§ãããšãããé©å㪠CSS ã«ç¿»èš³ã§ããŸãã
.card-container {
container-type: inline-size;
display: grid;
gap: clamp(0.5rem, 2cqw, 1.5rem);
}
ãã®ããã«ããã¶ã€ã³ã®ãæå³ããçè§£ããããšã§ããã¶ã€ã³ãã CSS ã§ Declare ããã«ãŒã«ã«ã翻蚳ãããããšãã§ããŸãã çµæãæå³ã«æ²¿ã£ãé©å㪠CSS ãé©çšã§ããããã«ãªããDeclarative 㪠Design System ã®æ§ç¯ãæããŸãã
泚æããªããã°ãªããªãã®ã¯ããã¶ã€ã³ã®ãæå³ã¥ããã®ã¬ãã«ã¯ã CSS ã§ãµããŒãã§ããæ©èœã«åãããŠèª¿æŽããããšããããšã§ãã
äŸãã°ããã³ã³ãã³ãã«å¿ããŠæè»ã«å€åããå¹
ããšããçæ³çãªæå³ããã£ãå ŽåãContainer Queries & Units ãå©çšå¯èœãªããåã
ã®ã³ã³ããŒãã³ãã width: clamp(20ch, 50cqw, 30ch)
ã®ããã«è¡šçŸã§ããŸãã
ããããContainer Queries ãå©çšå¯èœã§ãªããªãã°ãFlexbox ãçšã㊠flex: 1 1 20ch; max-width: 30ch
ãšè¡šçŸãããããããŸããã
ã€ãŸããCSS ã®æã¡åŸã衚çŸã®å¹
ã«åãããŠãé©åãªç²åºŠã§ãã¶ã€ã³ããæå³ã¥ããããããšãå¿
èŠã§ãã
èšãæãããšãCSS ã Declare ã§ããã¬ãã«ãŸã§ããã¶ã€ã³ã®ãæå³ããè§£éãç¶ããå¿
èŠããããšããããšã§ãã
Semantic Design is the Foundation of Declarative Design Systems & Declarative Web Design
ãããŸã§ã®äŸãããDeclarative 㪠Design System ã Web Design ãå®çŸããã«ã¯ããã¶ã€ã³ãããªããããªã£ãŠããã®ãããšãã**æå³ïŒSemanticïŒ**ãçè§£ããããšãäžå¯æ¬ ã ãšèšããŸãã
Container Queries ã :has()
ã®ç»å Žã«ãã£ãŠããã³ã³ããŒãã³ãã®èšèšã®ä»æ¹ãå€ããããšãã䞻匵ããããããããŸããããDeclarative 㪠Design System ã Web Design ãå®çŸããäžã§ã®åºæ¬çãªèãæ¹ã¯å€ãããŸããã
äŸãã°ããã¶ã€ã³ã®æå³ãããããªãç¶æ³ã§ã 300px ã§åºå®ã§ããããšãã§ããå ŽåããããåçŽã« width: 300px
ãšç¿»èš³ããã°ååã§ãã
Container Queries ãå©çšå¯èœã«ãªã£ããããšãã£ãŠãã³ã³ãããåºå®å¹
ã®ã³ã³ããŒãã³ãã«å¯ŸããŠãContainer Queries ã«ç¿»èš³ã§ãããŸã§ãã¶ã€ã³ãæå³ã¥ãããŠãæšã¿ããããŸããã
æ°ãã CSS ã®æ©èœã¯ããã®æ©èœãããã¶ã€ã³ã®æå³ããããé©åã«è¡šçŸã§ããã®ã§ããã°äœ¿çšã§ãããšæããŸãã CSS ã®æ°æ©èœã絶察çãªæè¡ãšããŠæããã®ã§ã¯ãªããããã¶ã€ã³ã®æå³ãé©åã«å®£èšããããã®ææ®µããšããŠæããããšãéèŠã ãšãçè ã¯èããŠããŸãã
Appendix
- Adactio: JournalâDeclarative design systems
- State of CSS
- Whatâs New in Web UI/CSS