網站導覽

語法

宣告與值

可用的 class 形式、原生值解析、單位、重要性與固定 utility。

本頁目錄

class 以已註冊的 utility 或原生宣告開頭,後面可加選擇器、條件與重要性標記。本頁定義這些宣告形式、值解析與拒絕規則。完整教學請見語法教學,原生屬性的意義則請查閱 CSS 參考。

下方具名形式假設已透過 @import '@master/css' 載入預設集。專案定義可以新增或替換 utilities,原生宣告則不需要已註冊的 utility。

可用形式

形式範例意義
靜態 utilityflex已註冊名稱;此例為 display: flex
Token utilityp-md已註冊前綴與 token 鍵;此例為 padding: var(--spacing-md)
函式 utilityp(12)帶參數的已註冊函式;此例為 padding: calc(12 * 1px)
原生宣告(padding:1rem)一個完整 CSS 屬性與值

這些是不同語法形式,不是可互換的拼寫。靜態、token 與函式 utilities 都可能包含多個宣告:truncate、text-sm 與 grid-cols(2) 都是組合樣式。原生開頭則恰好包含一個宣告,可使用 CSS 簡寫屬性。

產生的 CSS
@layer theme {  :root,  :host {    --spacing-md: 1rem  }}@layer utilities {  .flex {    display: flex  }  .p-md {    padding: var(--spacing-md)  }  .p\(12\) {    padding: calc(12 * 1px)  }  .\(padding\:1rem\) {    padding: 1rem  }}

每種形式都接受後綴。在 p(12):hover@sm! 中,開頭是 p(12),:hover 是選擇器,@sm 是條件,! 則標記重要性。後綴只影響自己的 class。完整契約請見選擇器與條件。

原生宣告

以完整屬性名稱撰寫 (property:value)。Master CSS 會先讀取括號配對完整的開頭,再解析後綴。單獨名稱後的冒號會開始選擇器:flex:hover 選取已註冊的 flex utility,display:block 並不是 (display:block) 的替代形式。

結束邊界

字串、註解、跳脫、巢狀括號與方括號,以及未加引號的 url() token,都依循 CSS 組成值邊界。引號字串中的 ) 不會關閉開頭:

<span class="(content:')')::before"></span>

引號內的括號仍屬於值

第一個右括號是引號內的值文字。下一個才結束宣告;::before 從宣告外開始。

文字說明
  1. 在 (content:')')::before 中,content 是屬性,')' 是引號包住的值。
  2. 字串內的 ) 會保留。下一個 ) 才結束原生宣告頭部。
  3. ::before 後綴指向偽元素,生成的宣告為 content: ')';。

開頭內的其他 CSS 結構也保留各自邊界:

Class值的邊界
(width:calc(1px+(2px*3)))巢狀括號屬於計算式
(grid-template-columns:[start]|1fr|[end])方括號包住 Grid 線名稱
(background-image:url(/a{b.svg))大括號屬於未加引號的 URL token
產生的 CSS
@layer utilities {  .\(background-image\:url\(\/a\{b\.svg\)\) {    background-image:url(/a{b.svg)  }  .\(grid-template-columns\:\[start\]\|1fr\|\[end\]\) {    grid-template-columns: [start] 1fr [end]  }  .\(width\:calc\(1px\+\(2px\*3\)\)\) {    width: calc(1px + (2px * 3))  }  .\(content\:\'\)\'\)\:\:before::before {    content: ')'  }}

值內仍適用 CSS 跳脫規則。未加引號的 URL 若含括號,請改用引號 URL 或 CSS 跳脫,維持 token 合法。

無效開頭

格式錯誤的開頭不會產生規則,也不會改以 utility 或其他 class 形式重試。

拒絕的 class原因
(display:block缺少結束括號
(color:red)(display:block)一個 class 內有兩個開頭
(color:red;display:block)超過一個宣告
(display:block;)頂層分號,即使出現在結尾也不接受
(width:calc(1px])分隔符不配對
(width:)一般屬性的值為空
(color:{red})將大括號區塊作為一般屬性值
(width:calc(((…1px…)))) 巢狀 65 層括號巢狀深度超過 64 層

自訂屬性可以有空值或配對完整的大括號區塊:(--slot:) 與 (--state:{open}) 都合法。(--slot:!important) 是值為空的重要自訂屬性,(width:!important) 則無效。

輸出與瀏覽器合法性

語法合法的屬性名稱,即使工具沒有列出,也能輸出宣告。原生值不限於預設集,但仍必須是目標瀏覽器中該屬性的合法值。例如 (font-size:48) 會輸出 font-size: 48,不會自動取得 px,而這個非零無單位長度是無效 CSS。請用 (font-size:48px) 表達該長度。(field-sizing:content) 這類原生屬性不需要註冊 utility。

產生的 CSS
@layer utilities {  .\(field-sizing\:content\) {    field-sizing: content  }  .\(font-size\:48px\) {    font-size: 48px  }}

Master CSS 會輸出特定相容宣告,例如在 backdrop-filter 旁加入 -webkit-backdrop-filter,但不會加入廠商專屬選擇器,也不會替瀏覽器功能補上 polyfill。請檢查生成 CSS,並透過相容性選擇瀏覽器需求與備援設計。

產生的 CSS
@layer utilities {  .\(backdrop-filter\:blur\(16px\)\) {    -webkit-backdrop-filter: blur(16px);    backdrop-filter: blur(16px)  }  .\(background-color\:\#000\)\:\:-webkit-scrollbar::-webkit-scrollbar {    background-color: #000  }}

值的編碼

空白、字串與底線

即使值包含 CSS 引號,HTML 空白仍會分隔 class。class 值內未加引號的 | 會編碼一個空白;引號字串內的管線符號則維持原樣。逗號與斜線等 CSS 標點應保留在原位。

<div class="(color:rgb(30|60|90/80%)) (content:'a|b')::before"></div>
產生的 CSS
@layer utilities {  .\(animation-name\:slide_in\) {    animation-name: slide_in  }  .\(color\:rgb\(30\|60\|90\/80\%\)\) {    color: rgb(30 60 90/80%)  }  .\(color\:red\)_a a {    color: red  }  .\(content\:\'a\|b\'\)\:\:before::before {    content: 'a|b'  }}

色彩值會成為 rgb(30 60 90 / 80%),content 字串則保留為 'a|b'。CSS 字串中需要真正空白時,請使用 \000020 這類 CSS 跳脫:(content:'New\000020collection')::before 會產生「New collection」。六位數跳脫可避免 HTML class 中出現終止空白。

原生開頭內的底線是字面字元,例如 slide_in。開頭結束後,_ 會開始後代選擇器:(color:red)_a 指向後代連結。已註冊 utility 名稱不能包含 _,但含底線的 token 鍵仍可透過 var(--name) 參照。

函式與明確變數

CSS 函式仍是原生屬性的值。Master CSS 會正規化 calc(100%-2rem) 中的算術空白,涵蓋最多 64 層巢狀括號與 1px-2px-3px 這類連續減法;更深的內容則保留原樣。計算由瀏覽器執行。Master CSS 不會從單獨字詞推論 token,也不會把 CSS 函式當作 utility 呼叫求值。

產生的 CSS
@layer theme {  :root,  :host {    --color-red-60: oklch(60.94% .2501 29.2)  }  :root,  :host {    --color-red: var(--color-red-60)  }}@layer utilities {  .\(color\:var\(--color-red\)\) {    color: var(--color-red)  }  .\(width\:calc\(100\%-2rem\)\) {    width: calc(100% - 2rem)  }  .\(width\:calc\(100\%-var\(--spacing-md\)\)\) {    width: calc(100%-var(--spacing-md))  }}

原生色彩值保留原意:(color:red)、(color:#175fe9) 與 (color:rgb(23,95,233)) 都提供 CSS 值,fg-red 則選取主題 token。var() 參照必須明確撰寫;(font-family:mono) 指定的是 CSS 字型家族 mono,不是 --font-mono。token 解析、模式與衍生值請見變數與模式。

數字與單位

原生宣告會保留單位,不會將 rem 轉成像素,也不會依屬性推論單位。小數前的零可以省略:(opacity:.5) 與 (opacity:0.5) 提供相同數值。

原生值解讀方式
(margin:1rem)相對於根元素字級的長度
(width:50%)依屬性的情境解析百分比
(rotate:30deg)明確指定的角度
(animation-duration:200ms)明確指定的時間;.2s 表達相同時長
(opacity:.5)無單位數值
(background-image:image-set(url(a.png)|1x,url(b.png)|2x))以每個 CSS 像素的點數指定原生影像解析度

屬性是否接受數字、長度、百分比或其他型別,由 CSS 值與單位規則決定。p(12) 則不同:預設集的函式會明確將引數乘以 1px。

負值

原生負值寫在值內,例如 (margin-top:-2rem)。直接數值引數使用 mt(-8)。負值 token class 則在完整 class 前加上 -:-mt-sm。負值 token 形式需要數值型 token 與支援負值的 utility;padding 不支援負值,因此 -p-sm 會被拒絕。

產生的 CSS
@layer theme {  :root,  :host {    --spacing-sm: .75rem  }}@layer utilities {  .-mt-sm {    margin-top: calc(var(--spacing-sm) * -1)  }  .mt\(-8\) {    margin-top: calc(-8 * 1px)  }  .\(margin-top\:-2rem\) {    margin-top: -2rem  }}

引數驗證不會重新定義 CSS 屬性對值的限制。

已註冊的 utility

token 名稱

token 前綴由 utility 定義註冊,不會從屬性縮寫推論。p-md 讀取 --spacing-md;fg-red 與 bg-red 都讀取 --color-red,但設定不同屬性。不會自動產生 padding-md 這類完整屬性名稱的對應形式,也沒有 p-4 這類隱含數值尺度:所選命名空間中必須存在該鍵。

靜態名稱優先於拼法相同的 token class。例如,即使專案定義了 --container-full,w-full 仍是 width: 100%;即使存在 --radius-pill,pill 仍是全圓角半徑。名稱相同的靜態 utility 與函式會各自獨立註冊。

完整的前綴與命名空間對應請見 token 家族索引,註冊與取代規則請見 utility 定義。主題 token說明如何定義專案值並設定作用範圍。

固定拼法保留自己的定義

兩個父元素皆寬 240px。自訂 --container-full 為 12rem(根元素字級 16px 時為 192px);w-full 仍是固定的 100% utility。

文字說明
  1. 設定定義 @theme { --container-full: 12rem; }。預設集已將完整固定名稱 w-full 註冊為 width: 100%。
  2. 因此 w-full 填滿 240px 的父元素。明確的 (width:var(--container-full)) class 讀取 --container-full,讓第二個區塊寬 192px。
  3. token 仍可透過明確的 var() 參照使用;定義它不會取代固定的 w-full 註冊。

直接數值

m(4)、b(1) 與 grow(1) 這類預設函式接受一個靜態數字。長度函式輸出乘以 1px 的運算;grow()、shrink() 與 order() 直接傳遞數值,其中 order() 要求整數。零、小數與負值引數是否可用,依各參數宣告的型別決定。

單位與動態運算式不屬於數值引數:m(1px) 與 b(var(--x)) 不會生成規則。這類值請使用 (margin:1rem) 或 (border-width:var(--x))。直接數值提供完整函式清單、參數型別與生成宣告。

組合樣式可協調多個屬性或伴隨值:text-sm 包含字級、行高與字距,animate-fade 則提供動畫簡寫。查找與覆寫規則分別見文字 token與動態效果 token。

自訂屬性

(--name:value) 頭部會在符合選擇器的元素上宣告 CSS 自訂屬性。它可使用與其他宣告相同的選擇器與條件,不會註冊 utility 或主題 token。

<div class="(--progress:40%) (--progress:60%):hover (width:var(--progress))">Progress</div>
產生的 CSS
@layer utilities {  .\(--progress\:40\%\) {    --progress: 40%  }  .\(width\:var\(--progress\)\) {    width: var(--progress)  }  .\(--progress\:60\%\)\:hover:hover {    --progress: 60%  }}

var(--progress) 使用一般 CSS 解析與繼承規則。未解析的變數或替換後不相容的值,可能讓引用該值的宣告失效;請視需要使用 CSS 變數備援值。語法教學說明如何固定 class,並另外提供動態值。

組合與重要性

分開的 class 表達獨立決策,例如 b(1) b-solid b-line-control。原生簡寫仍受支援;這項撰寫偏好不會改變 CSS 語法。需要相同選擇器與條件的每個 class 都要分別加上後綴。

<ul class="block>li:hover@md (font-size:14px)>li:hover@md text-center>li:hover@md">…</ul>

在相同串接層、條件與選擇器中,組合樣式排在單一宣告 utility 之前,接著才是原生宣告。單一宣告 utility 先依屬性家族與涵蓋範圍排序,再依值的來源排序;同一屬性中,token 會排在固定值或直接數值之前。HTML class 的順序不會決定結果:

產生的 CSS
@layer theme {  :root,  :host {    --spacing-md: 1rem  }}@layer utilities {  .m-md {    margin: var(--spacing-md)  }  .mx-auto {    margin-inline: auto  }  .mt\(0\) {    margin-top: calc(0 * 1px)  }  .p-md {    padding: var(--spacing-md)  }  .p\(12\) {    padding: calc(12 * 1px)  }  .\(padding\:1rem\) {    padding: 1rem  }}

此處原生 padding 排在兩個 utility 之後,而 mt(0) 與 mx-auto 會覆寫 m-md 的對應部分。完整排序契約見串接層。若要選擇元件 class、@utility 組合樣式或 CSS mixin,請見重複使用樣式。

重要性

結尾的 ! 會將該 class 的宣告標為重要。括號值內尾端的原生 !important 效果相同;同時撰寫兩者也只會輸出一次。字串內的 '!important' 仍是內容文字。

產生的 CSS
@layer utilities {  .text-center\! {    text-align: center !important  }  .\(color\:red\!important\) {    color: red !important  }  .\(color\:red\!important\)\! {    color: red !important  }  .\(content\:\'\!important\'\)\:\:before::before {    content: '!important'  }}

重要性套用到組合樣式內每個宣告

末端一個 ! 會標記全部三個宣告;省略號略去 token 參照。它不會將鄰近 HTML class 或主題 token 定義標為重要。

文字說明
  1. text-sm 使用主要 token 與伴隨參照,寫入 font-size、line-height 與 letter-spacing。
  2. text-sm! 將三個生成宣告都標為 !important。相依宣告仍是一般主題 token。

固定 utility 查找表

預設集提供 292 個固定、單一宣告的 utility,每個只設定表列的屬性:flex-col 不會啟用 flex 排版,b-none 不會重設邊框寬度,pill 也不會設定尺寸。包含多個宣告的 truncate 組合樣式另列於截斷。

類別, 宣告CSS
blockdisplay: block
inlinedisplay: inline
inline-blockdisplay: inline-block
flow-rootdisplay: flow-root
flexdisplay: flex
inline-flexdisplay: inline-flex
griddisplay: grid
inline-griddisplay: inline-grid
contentsdisplay: contents
list-itemdisplay: list-item
tabledisplay: table
inline-tabledisplay: inline-table
table-captiondisplay: table-caption
table-celldisplay: table-cell
table-columndisplay: table-column
table-column-groupdisplay: table-column-group
table-header-groupdisplay: table-header-group
table-footer-groupdisplay: table-footer-group
table-rowdisplay: table-row
table-row-groupdisplay: table-row-group
hiddendisplay: none
staticposition: static
relativeposition: relative
absoluteposition: absolute
fixedposition: fixed
stickyposition: sticky
visiblevisibility: visible
invisiblevisibility: hidden
isolateisolation: isolate
box-borderbox-sizing: border-box
box-contentbox-sizing: content-box
italicfont-style: italic
obliquefont-style: oblique
uppercasetext-transform: uppercase
lowercasetext-transform: lowercase
capitalizetext-transform: capitalize
underlinetext-decoration-line: underline
overlinetext-decoration-line: overline
line-throughtext-decoration-line: line-through
flex-rowflex-direction: row
flex-row-reverseflex-direction: row-reverse
flex-colflex-direction: column
flex-col-reverseflex-direction: column-reverse
flex-wrapflex-wrap: wrap
flex-nowrapflex-wrap: nowrap
flex-wrap-reverseflex-wrap: wrap-reverse
items-normalalign-items: normal
items-startalign-items: start
items-endalign-items: end
items-flex-startalign-items: flex-start
items-flex-endalign-items: flex-end
items-centeralign-items: center
items-baselinealign-items: baseline
items-stretchalign-items: stretch
content-normalalign-content: normal
content-startalign-content: start
content-endalign-content: end
content-flex-startalign-content: flex-start
content-flex-endalign-content: flex-end
content-centeralign-content: center
content-baselinealign-content: baseline
content-stretchalign-content: stretch
content-betweenalign-content: space-between
content-aroundalign-content: space-around
content-evenlyalign-content: space-evenly
self-autoalign-self: auto
self-normalalign-self: normal
self-startalign-self: start
self-endalign-self: end
self-flex-startalign-self: flex-start
self-flex-endalign-self: flex-end
self-centeralign-self: center
self-baselinealign-self: baseline
self-stretchalign-self: stretch
justify-normaljustify-content: normal
justify-startjustify-content: start
justify-endjustify-content: end
justify-flex-startjustify-content: flex-start
justify-flex-endjustify-content: flex-end
justify-centerjustify-content: center
justify-betweenjustify-content: space-between
justify-aroundjustify-content: space-around
justify-evenlyjustify-content: space-evenly
justify-stretchjustify-content: stretch
object-coverobject-fit: cover
object-containobject-fit: contain
object-fillobject-fit: fill
object-noneobject-fit: none
object-scale-downobject-fit: scale-down
object-centerobject-position: center
object-topobject-position: top
object-bottomobject-position: bottom
object-leftobject-position: left
object-rightobject-position: right
m-automargin: auto
mt-automargin-top: auto
mr-automargin-right: auto
mb-automargin-bottom: auto
ml-automargin-left: auto
mx-automargin-inline: auto
mxs-automargin-inline-start: auto
mxe-automargin-inline-end: auto
my-automargin-block: auto
mys-automargin-block-start: auto
mye-automargin-block-end: auto
top-autotop: auto
right-autoright: auto
bottom-autobottom: auto
left-autoleft: auto
inset-autoinset: auto
ix-autoinset-inline: auto
ixs-autoinset-inline-start: auto
ixe-autoinset-inline-end: auto
iy-autoinset-block: auto
iys-autoinset-block-start: auto
iye-autoinset-block-end: auto
w-autowidth: auto
h-autoheight: auto
size-x-autoinline-size: auto
size-y-autoblock-size: auto
min-w-automin-width: auto
min-h-automin-height: auto
min-size-x-automin-inline-size: auto
min-size-y-automin-block-size: auto
basis-autoflex-basis: auto
max-w-nonemax-width: none
max-h-nonemax-height: none
max-size-x-nonemax-inline-size: none
max-size-y-nonemax-block-size: none
w-fullwidth: 100%
w-fitwidth: fit-content
w-maxwidth: max-content
w-minwidth: min-content
h-fullheight: 100%
h-fitheight: fit-content
h-maxheight: max-content
h-minheight: min-content
size-x-fullinline-size: 100%
size-x-fitinline-size: fit-content
size-x-maxinline-size: max-content
size-x-mininline-size: min-content
size-y-fullblock-size: 100%
size-y-fitblock-size: fit-content
size-y-maxblock-size: max-content
size-y-minblock-size: min-content
min-w-fullmin-width: 100%
min-w-fitmin-width: fit-content
min-w-maxmin-width: max-content
min-w-minmin-width: min-content
min-h-fullmin-height: 100%
min-h-fitmin-height: fit-content
min-h-maxmin-height: max-content
min-h-minmin-height: min-content
min-size-x-fullmin-inline-size: 100%
min-size-x-fitmin-inline-size: fit-content
min-size-x-maxmin-inline-size: max-content
min-size-x-minmin-inline-size: min-content
min-size-y-fullmin-block-size: 100%
min-size-y-fitmin-block-size: fit-content
min-size-y-maxmin-block-size: max-content
min-size-y-minmin-block-size: min-content
max-w-fullmax-width: 100%
max-w-fitmax-width: fit-content
max-w-maxmax-width: max-content
max-w-minmax-width: min-content
max-h-fullmax-height: 100%
max-h-fitmax-height: fit-content
max-h-maxmax-height: max-content
max-h-minmax-height: min-content
max-size-x-fullmax-inline-size: 100%
max-size-x-fitmax-inline-size: fit-content
max-size-x-maxmax-inline-size: max-content
max-size-x-minmax-inline-size: min-content
max-size-y-fullmax-block-size: 100%
max-size-y-fitmax-block-size: fit-content
max-size-y-maxmax-block-size: max-content
max-size-y-minmax-block-size: min-content
basis-fullflex-basis: 100%
basis-fitflex-basis: fit-content
basis-maxflex-basis: max-content
basis-minflex-basis: min-content
order-firstorder: -999999
order-lastorder: 999999
pillborder-radius: calc(infinity*1px)
b-solidborder-style: solid
b-dashedborder-style: dashed
b-dottedborder-style: dotted
b-doubleborder-style: double
b-noneborder-style: none
bt-solidborder-top-style: solid
bt-dashedborder-top-style: dashed
bt-dottedborder-top-style: dotted
bt-doubleborder-top-style: double
bt-noneborder-top-style: none
br-solidborder-right-style: solid
br-dashedborder-right-style: dashed
br-dottedborder-right-style: dotted
br-doubleborder-right-style: double
br-noneborder-right-style: none
bb-solidborder-bottom-style: solid
bb-dashedborder-bottom-style: dashed
bb-dottedborder-bottom-style: dotted
bb-doubleborder-bottom-style: double
bb-noneborder-bottom-style: none
bl-solidborder-left-style: solid
bl-dashedborder-left-style: dashed
bl-dottedborder-left-style: dotted
bl-doubleborder-left-style: double
bl-noneborder-left-style: none
bx-solidborder-inline-style: solid
bx-dashedborder-inline-style: dashed
bx-dottedborder-inline-style: dotted
bx-doubleborder-inline-style: double
bx-noneborder-inline-style: none
bxs-solidborder-inline-start-style: solid
bxs-dashedborder-inline-start-style: dashed
bxs-dottedborder-inline-start-style: dotted
bxs-doubleborder-inline-start-style: double
bxs-noneborder-inline-start-style: none
bxe-solidborder-inline-end-style: solid
bxe-dashedborder-inline-end-style: dashed
bxe-dottedborder-inline-end-style: dotted
bxe-doubleborder-inline-end-style: double
bxe-noneborder-inline-end-style: none
by-solidborder-block-style: solid
by-dashedborder-block-style: dashed
by-dottedborder-block-style: dotted
by-doubleborder-block-style: double
by-noneborder-block-style: none
bys-solidborder-block-start-style: solid
bys-dashedborder-block-start-style: dashed
bys-dottedborder-block-start-style: dotted
bys-doubleborder-block-start-style: double
bys-noneborder-block-start-style: none
bye-solidborder-block-end-style: solid
bye-dashedborder-block-end-style: dashed
bye-dottedborder-block-end-style: dotted
bye-doubleborder-block-end-style: double
bye-noneborder-block-end-style: none
outline-solidoutline-style: solid
outline-dashedoutline-style: dashed
outline-dottedoutline-style: dotted
outline-doubleoutline-style: double
outline-noneoutline-style: none
text-lefttext-align: left
text-centertext-align: center
text-righttext-align: right
text-starttext-align: start
text-endtext-align: end
text-justifytext-align: justify
overflow-autooverflow: auto
overflow-hiddenoverflow: hidden
overflow-clipoverflow: clip
overflow-visibleoverflow: visible
overflow-scrolloverflow: scroll
overflow-x-autooverflow-x: auto
overflow-x-hiddenoverflow-x: hidden
overflow-x-clipoverflow-x: clip
overflow-x-visibleoverflow-x: visible
overflow-x-scrolloverflow-x: scroll
overflow-y-autooverflow-y: auto
overflow-y-hiddenoverflow-y: hidden
overflow-y-clipoverflow-y: clip
overflow-y-visibleoverflow-y: visible
overflow-y-scrolloverflow-y: scroll
whitespace-normalwhite-space: normal
whitespace-nowrapwhite-space: nowrap
whitespace-prewhite-space: pre
whitespace-pre-wrapwhite-space: pre-wrap
whitespace-pre-linewhite-space: pre-line
whitespace-break-spaceswhite-space: break-spaces
select-noneuser-select: none
select-textuser-select: text
select-alluser-select: all
select-autouser-select: auto
pointer-nonepointer-events: none
pointer-autopointer-events: auto
vertical-baselinevertical-align: baseline
vertical-topvertical-align: top
vertical-middlevertical-align: middle
vertical-bottomvertical-align: bottom
vertical-text-topvertical-align: text-top
vertical-text-bottomvertical-align: text-bottom
vertical-subvertical-align: sub
vertical-supervertical-align: super
container-inlinecontainer-type: inline-size
container-sizecontainer-type: size
container-normalcontainer-type: normal
wrap-anywhereoverflow-wrap: anywhere
wrap-break-wordoverflow-wrap: break-word
wrap-normaloverflow-wrap: normal
ellipsistext-overflow: ellipsis

start 與 end 保留原生語意,與 flex-start、flex-end 不同。邏輯軸中,x 表示行內軸,y 表示區塊軸;t、r、b、l 則是實體邊。固定 utility 接受選擇器、條件與 !,並在使用時輸出 CSS。