今週のCSSは、browser navigation、shape decoration、typographic rhythmをdeclarative primitiveへ近づけました。提案中のCSS Route and Navigation Matching仕様は@route、@navigation、:nav-source、:link-to()を導入します。これによりview transitionの方向やlink stylingを、JavaScriptのevent処理なしに出発点・到着点・クリックしたelementへ反応させられます。
Shape APIも広がっています。実験的なborder-shapeはclip-pathと同じbasic shapeを受け取りながら、border・outline・shadowをpathに沿わせ、二つのshapeで外側と内側の境界を定義してcutoutや複雑なframeを作れます。Ahmad Shadeedのlhガイドは、よりすぐ使えるprimitiveです。spacing、mask、icon、float imageを計算済みline-heightに合わせると、typography変更後も整列が保たれます。これらに共通する設計原則は、visual effectを固定pixelやJavaScript stateと同期させるのではなく、関係そのものをCSSへ記述することです。
Browser convergenceはまだ未完成です。Firefoxのprogress()はNightlyでFirefox 155への搭載予定、CSS mixinはprototype段階、border-shapeはChrome限定です。Progressive enhancementとsupport checkは実装の一部です。
二つの実践videoが、その原則を具体化します。拡張されたCSS attr()は既存data attributeをtyped color、length、delay、identifierへ変え、Kevin Powellはraw application dataをcustom propertyで渡してunit変換、cap、visual constantをcalc()とmin()へ置きます。どちらもsynchronization codeを減らしますが、typed attribute supportには依然としてChrome優先のprogressive-enhancement経路が必要です。