承接 vollegrond/rootstock 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

vollegrond/rootstock

Composer 安装命令:

composer require vollegrond/rootstock

包简介

Framework-agnostic PHP library for generating CSS utility classes.

README 文档

README

How to use utility classes

Every utility class begins with @ and contains a single style definition, optionally followed by one or more variants. The final segment specifies the actual styling for elements, while any preceding segments are variants that determine when or where the styling is applied.

A basic utility class looks like this: @d[block]. A more advanced utility class might look like this: @lg:hover:d[block]!. The final part always defines the style to be applied (in this case, display: block). In the advanced example, additional conditions specify when the style should apply — in this case, only from the lg breakpoint and on hover.

Hover, focus, and other states

Using utilities to style elements based on pseudo classes and elements

Pseudo classes

The following pseudo-classes are supported:

  • :last (mapped to :last-child)
  • :first (mapped to :first-child)
  • :even (mapped to :nth-child(even))
  • :odd (mapped to :nth-child(odd))
  • :hover
  • :focus
  • :active

Pseudo elements

The following pseudo-elements are supported:

  • :after
  • :before
  • :placeholder
  • :selection

Responsive design

Using responsive utility variants to apply styles only from specific breakpoints:

Supported breakpoints are:

  • sm (≥576px)
  • md (≥768px)
  • lg (≥992px)
  • xl (≥1200px)
  • xxl (≥1400px)

Dark mode

Using variants to style your site in dark mode.

You can easily use the dark variant to only apply the style on dark mode. Like this: @dark:color[#FFF]

Utility classes list

Layout

aspect-ratio

Class Style Example
aspect[square] aspect-ratio: 1 / 1;
aspect[auto] aspect-ratio: auto;
aspect[<ratio>] aspect-ratio: <ratio>; aspect[16/9]
aspect[<var>] aspect-ratio: <var>; aspect[--my-aspect-ratio]

columns

Class Style Example
columns[auto] columns: auto;
columns[<number>] columns: <number>; columns[3]
columns[<var>] columns: <var>; columns[--my-columns]

break-after

Class Style Example
break-after[auto] break-after: auto;
break-after[avoid] break-after: avoid;
break-after[all] break-after: all;
break-after[avoid-page] break-after: avoid-page;
break-after[page] break-after: page;
break-after[left] break-after: left;
break-after[right] break-after: right;
break-after[column] break-after: column;
break-after[<var>] break-after: *<var>*; break-after[--my-break]

break-before

Class Style Example
break-before[auto] break-before: auto;
break-before[avoid] break-before: avoid;
break-before[all] break-before: all;
break-before[avoid-page] break-before: avoid-page;
break-before[page] break-before: page;
break-before[left] break-before: left;
break-before[right] break-before: right;
break-before[column] break-before: column;
break-before[<var>] break-before: *<var>*; break-before[--my-break]

break-inside

Class Style Example
break-inside[auto] break-inside: auto;
break-inside[avoid] break-inside: avoid;
break-inside[avoid-page] break-inside: avoid-page;
break-inside[avoid-column] break-inside: avoid-column;
break-inside[<var>] break-inside: *<var>*; break-inside[--my-break]

box-decoration-break

Class Style Example
box-decoration-break[clone] box-decoration-break: clone;
box-decoration-break[slice] box-decoration-break: slice;
box-decoration-break[<var>] box-decoration-break: *<var>*; box-decoration-break[--my-decoration]

box-sizing

Class Style Example
box[border] box-sizing: border-box;
box[content] box-sizing: content-box;
box[<var>] box-sizing: *<var>*; box[--my-sizing]

display

Class Style Example
d[none] display: none;
d[grid] display: grid;
d[inline] display: inline;
d[inline-block] display: inline-block;
d[block] display: block;
d[table] display: table;
d[table-cell] display: table-cell;
d[table-row] display: table-row;
d[flex] display: flex;
d[inline-flex] display: inline-flex;
d[<var>] display: *<var>*; d[--my-display]

float

Class Style Example
float[left] float: left;
float[right] float: right;
float[start] float: start;
float[end] float: end;
float[none] float: none;
float[<var>] float: *<var>*; float[--my-float]

clear

Class Style Example
clear[left] clear: left;
clear[right] clear: right;
clear[both] clear: both;
clear[start] clear: start;
clear[end] clear: end;
clear[none] clear: none;
clear[<var>] clear: *<var>*; clear[--my-clear]

isolation

Class Style Example
isolation[isolate] isolation: isolate;
isolation[auto] isolation: auto;
isolation[<var>] isolation: *<var>*; isolation[--my-isolation]

object-fit

Class Style Example
object-fit[contain] object-fit: contain;
object-fit[cover] object-fit: cover;
object-fit[fill] object-fit: fill;
object-fit[none] object-fit: none;
object-fit[scale-down] object-fit: scale-down;
object-fit[<var>] object-fit: *<var>*; object-fit[--my-fit]
object-fit[<custom>] object-fit: *<custom>*; object-fit[custom-value]

object-position

Class Style Example
object-position[top-left] object-position: top left;
object-position[top] object-position: top;
object-position[top-right] object-position: top right;
object-position[left] object-position: left;
object-position[center] object-position: center;
object-position[right] object-position: right;
object-position[bottom-left] object-position: bottom left;
object-position[bottom] object-position: bottom;
object-position[bottom-right] object-position: bottom right;
object-position[<var>] object-position: *<var>*; object-position[--my-position]
object-position[<custom>] object-position: *<custom>*; object-position[custom-value]

overflow

Class Style Example
overflow[visible] overflow: visible;
overflow[hidden] overflow: hidden;
overflow[scroll] overflow: scroll;
overflow[clip] overflow: clip;
overflow[auto] overflow: auto;
overflow[<var>] overflow: *<var>*; overflow[--my-overflow]

overflow-x

Class Style Example
overflow-x[visible] overflow-x: visible;
overflow-x[hidden] overflow-x: hidden;
overflow-x[scroll] overflow-x: scroll;
overflow-x[clip] overflow-x: clip;
overflow-x[auto] overflow-x: auto;
overflow-x[<var>] overflow-x: *<var>*; overflow-x[--my-overflow]

overflow-y

Class Style Example
overflow-y[visible] overflow-y: visible;
overflow-y[hidden] overflow-y: hidden;
overflow-y[scroll] overflow-y: scroll;
overflow-y[clip] overflow-y: clip;
overflow-y[auto] overflow-y: auto;
overflow-y[<var>] overflow-y: *<var>*; overflow-y[--my-overflow]

overscroll-behavior

Class Style Example
overscroll[auto] overscroll-behavior: auto;
overscroll[contain] overscroll-behavior: contain;
overscroll[none] overscroll-behavior: none;
overscroll[<var>] overscroll-behavior: *<var>*; overscroll[--my-overscroll]

position

Class Style Example
position[static] position: static;
position[fixed] position: fixed;
position[absolute] position: absolute;
position[relative] position: relative;
position[sticky] position: sticky;
position[<var>] position: *<var>*; position[--my-position]

top / right / bottom / left

Class Style Example
top[auto] top: auto;
top[full] top: 100%;
top[<fraction>] top: *<fraction>*; top[1/2]
top[<dimension>] top: *<dimension>*; top[10px]
top[<var>] top: *<var>*; top[--my-top]
right[auto] right: auto;
right[full] right: 100%;
right[<fraction>] right: *<fraction>*; right[1/2]
right[<dimension>] right: *<dimension>*; right[10px]
right[<var>] right: *<var>*; right[--my-right]
bottom[auto] bottom: auto;
bottom[full] bottom: 100%;
bottom[<fraction>] bottom: *<fraction>*; bottom[1/2]
bottom[<dimension>] bottom: *<dimension>*; bottom[10px]
bottom[<var>] bottom: *<var>*; bottom[--my-bottom]
left[auto] left: auto;
left[full] left: 100%;
left[<fraction>] left: *<fraction>*; left[1/2]
left[<dimension>] left: *<dimension>*; left[10px]
left[<var>] left: *<var>*; left[--my-left]

visibility

Class Style Example
visibility[visible] visibility: visible;
visibility[invisible] visibility: invisible;
visibility[collapsable] visibility: collapsable;
visibility[<var>] visibility: *<var>*; visibility[--my-visibility]

z-index

Class Style Example
z[auto] z-index: auto;
z[<number>] z-index: *<number>*; z[10]
z[<var>] z-index: *<var>*; z[--my-z]

Flex

flex

Class Style Example
flex[auto] flex: auto;
flex[none] flex: none;
flex[initial] flex: 0 auto;
flex[1] flex: 1;
flex[<number>] flex: *<number>*; flex[2]
flex[<custom>] flex: *<custom>*; flex[1_0_auto]

flex-basis

Class Style Example
flex[basis:auto] flex-basis: auto;
flex[basis:full] flex-basis: 100%;
flex[basis:<fraction>] flex-basis: *<fraction>*; flex[basis:1/2]
flex[basis:<dimension>] flex-basis: *<dimension>*; flex[basis:10px]
flex[basis:<var>] flex-basis: *<var>*; flex[basis:--my-basis]

flex-direction

Class Style Example
flex[row] flex-direction: row;
flex[row-reverse] flex-direction: row-reverse;
flex[column] flex-direction: column;
flex[column-reverse] flex-direction: column-reverse;

flex-wrap

Class Style Example
flex[nowrap] flex-wrap: nowrap;
flex[wrap] flex-wrap: wrap;
flex[wrap-reverse] flex-wrap: wrap-reverse;

flex-grow

Class Style Example
flex[grow] flex-grow: 1;
flex[grow:<number>] flex-grow: *<number>*; flex[grow:2]
flex[grow:<var>] flex-grow: *<var>*; flex[grow:--my-grow]

flex-shrink

Class Style Example
flex[shrink] flex-shrink: 1;
flex[shrink:<number>] flex-shrink: *<number>*; flex[shrink:2]
flex[shrink:<var>] flex-shrink: *<var>*; flex[shrink:--my-shrink]

order

Class Style Example
order[first] order: -9999;
order[last] order: 9999;
order[none] order: 0;
order[<number>] order: *<number>*; order[2]
order[<var>] order: *<var>*; order[--my-order]

Grid

grid-template-columns

Class Style Example
grid[cols:none] grid-template-columns: none;
grid[cols:subgrid] grid-template-columns: subgrid;
grid[cols:<number>] grid-template-columns: repeat(*<number>*, minmax(0, 1fr)); grid[cols:3]
grid[cols:<custom>] grid-template-columns: *<custom>*; grid[cols:[200px_1fr_200px]]
grid[cols:<var>] grid-template-columns: *<var>*; grid[cols:--my-cols]

grid-template-rows

Class Style Example
grid[rows:none] grid-template-rows: none;
grid[rows:subgrid] grid-template-rows: subgrid;
grid[rows:<number>] grid-template-rows: repeat(*<number>*, minmax(0, 1fr)); grid[rows:3]
grid[rows:<custom>] grid-template-rows: *<custom>*; grid[rows:[100px_1fr]]
grid[rows:<var>] grid-template-rows: *<var>*; grid[rows:--my-rows]

grid-column-span

Class Style Example
grid[span:full] grid-column: 1 / -1;
grid[span:<number>] grid-column: span *<number>* / span *<number>*; grid[span:2]
grid[span:<var>] grid-column: span *<var>* / span *<var>*; grid[span:--my-span]

grid-column

Class Style Example
grid[column:auto] grid-column: auto;
grid[column:<number>] grid-column: *<number>*; grid[column:2]
grid[column:<var>] grid-column: *<var>*; grid[column:--my-col]
grid[column-start:auto] grid-column-start: auto;
grid[column-start:<number>] grid-column-start: *<number>*; grid[column-start:1]
grid[column-end:auto] grid-column-end: auto;
grid[column-end:<number>] grid-column-end: *<number>*; grid[column-end:3]

grid-row

Class Style Example
grid[row:auto] grid-row: auto;
grid[row:<number>] grid-row: *<number>*; grid[row:2]
grid[row:<var>] grid-row: *<var>*; grid[row:--my-row]

grid-auto-flow

Class Style Example
grid[flow:row] grid-auto-flow: row;
grid[flow:column] grid-auto-flow: column;
grid[flow:dense] grid-auto-flow: dense;
grid[flow:row-dense] grid-auto-flow: row dense;
grid[flow:column-dense] grid-auto-flow: column dense;

grid-auto-columns

Class Style Example
grid[auto-columns:auto] grid-auto-columns: auto;
grid[auto-columns:min] grid-auto-columns: min-content;
grid[auto-columns:max] grid-auto-columns: max-content;
grid[auto-columns:fr] grid-auto-columns: minmax(0, 1fr);
grid[auto-columns:<dimension>] grid-auto-columns: *<dimension>*; grid[auto-columns:100px]
grid[auto-columns:<var>] grid-auto-columns: *<var>*; grid[auto-columns:--my-cols]

grid-auto-rows

Class Style Example
grid[auto-rows:auto] grid-auto-rows: auto;
grid[auto-rows:min] grid-auto-rows: min-content;
grid[auto-rows:max] grid-auto-rows: max-content;
grid[auto-rows:fr] grid-auto-rows: minmax(0, 1fr);
grid[auto-rows:<dimension>] grid-auto-rows: *<dimension>*; grid[auto-rows:100px]
grid[auto-rows:<var>] grid-auto-rows: *<var>*; grid[auto-rows:--my-rows]

gap

Class Style Example
gap[<theme-size>] gap: var(--theme-gap-*<theme-size\>*); gap[sm]
gap[<dimension>] gap: *<dimension>*; gap[10px]
gap[<var>] gap: *<var>*; gap[--my-gap]
gap[x:<dimension>] column-gap: *<dimension>*; gap[x:10px]
gap[x:<var>] column-gap: *<var>*; gap[x:--my-gap]
gap[y:<dimension>] row-gap: *<dimension>*; gap[y:10px]
gap[y:<var>] row-gap: *<var>*; gap[y:--my-gap]

justify-content

Class Style Example
justify-content[start] justify-content: start;
justify-content[end] justify-content: end;
justify-content[center] justify-content: center;
justify-content[between] justify-content: space-between;
justify-content[around] justify-content: space-around;
justify-content[evenly] justify-content: space-evenly;
justify-content[stretch] justify-content: stretch;
justify-content[baseline] justify-content: baseline;
justify-content[normal] justify-content: normal;
justify-content[end-safe] justify-content: safe end;
justify-content[center-safe] justify-content: safe center;

justify-items

Class Style Example
justify-items[start] justify-items: start;
justify-items[end] justify-items: end;
justify-items[center] justify-items: center;
justify-items[stretch] justify-items: stretch;
justify-items[normal] justify-items: normal;
justify-items[end-safe] justify-items: safe end;
justify-items[center-safe] justify-items: safe center;

justify-self

Class Style Example
justify-self[auto] justify-self: auto;
justify-self[start] justify-self: start;
justify-self[end] justify-self: end;
justify-self[center] justify-self: center;
justify-self[stretch] justify-self: stretch;
justify-self[end-safe] justify-self: safe end;
justify-self[center-safe] justify-self: safe center;

align-content

Class Style Example
align-content[start] align-content: start;
align-content[end] align-content: end;
align-content[center] align-content: center;
align-content[between] align-content: space-between;
align-content[around] align-content: space-around;
align-content[evenly] align-content: space-evenly;
align-content[stretch] align-content: stretch;
align-content[baseline] align-content: baseline;
align-content[normal] align-content: normal;
align-content[end-safe] align-content: safe end;
align-content[center-safe] align-content: safe center;

align-items

Class Style Example
align-items[start] align-items: start;
align-items[end] align-items: end;
align-items[center] align-items: center;
align-items[stretch] align-items: stretch;
align-items[baseline] align-items: baseline;
align-items[baseline-last] align-items: last baseline;
align-items[end-safe] align-items: safe end;
align-items[center-safe] align-items: safe center;

align-self

Class Style Example
align-self[auto] align-self: auto;
align-self[start] align-self: start;
align-self[end] align-self: end;
align-self[center] align-self: center;
align-self[stretch] align-self: stretch;
align-self[baseline] align-self: baseline;
align-self[baseline-last] align-self: last baseline;
align-self[end-safe] align-self: safe end;
align-self[center-safe] align-self: safe center;

place-content

Class Style Example
place-content[start] place-content: start;
place-content[end] place-content: end;
place-content[center] place-content: center;
place-content[between] place-content: space-between;
place-content[around] place-content: space-around;
place-content[evenly] place-content: space-evenly;
place-content[baseline] place-content: baseline;
place-content[stretch] place-content: stretch;
place-content[end-safe] place-content: safe end;
place-content[center-safe] place-content: safe center;

place-items

Class Style Example
place-items[start] place-items: start;
place-items[end] place-items: end;
place-items[center] place-items: center;
place-items[stretch] place-items: stretch;
place-items[baseline] place-items: baseline;

place-self

Class Style Example
place-self[auto] place-self: auto;
place-self[start] place-self: start;
place-self[end] place-self: end;
place-self[center] place-self: center;
place-self[stretch] place-self: stretch;

Spacing

padding

Class Style Example
p[auto] padding: auto;
p[<dimension>] padding: *<dimension>*; p[10px]
p[<var>] padding: *<var>*; p[--my-padding]
pt[<dimension>] padding-top: *<dimension>*; pt[10px]
pb[<dimension>] padding-bottom: *<dimension>*; pb[10px]
ps[<dimension>] padding-left: *<dimension>*; ps[10px]
pe[<dimension>] padding-right: *<dimension>*; pe[10px]
px[<dimension>] padding-left: *<dimension>*; padding-right: *<dimension>*; px[10px]
py[<dimension>] padding-top: *<dimension>*; padding-bottom: *<dimension>*; py[10px]

margin

Class Style Example
m[auto] margin: auto;
m[<dimension>] margin: *<dimension>*; m[10px]
m[<var>] margin: *<var>*; m[--my-margin]
mt[<dimension>] margin-top: *<dimension>*; mt[10px]
mb[<dimension>] margin-bottom: *<dimension>*; mb[10px]
ms[<dimension>] margin-left: *<dimension>*; ms[10px]
me[<dimension>] margin-right: *<dimension>*; me[10px]
mx[<dimension>] margin-left: *<dimension>*; margin-right: *<dimension>*; mx[10px]
mx[auto] margin-left: auto; margin-right: auto;
my[<dimension>] margin-top: *<dimension>*; margin-bottom: *<dimension>*; my[10px]

Sizing

width

Class Style Example
w[auto] width: auto;
w[full] width: 100%;
w[screen] width: 100vw;
w[dvw] width: 100dvw;
w[lvw] width: 100lvw;
w[svw] width: 100svw;
w[min] width: min-content;
w[max] width: max-content;
w[fit] width: fit-content;
w[lh] width: 1lh;
w[<dimension>] width: *<dimension>*; w[10px]
w[<fraction>] width: *<fraction>*; w[1/2]
w[<var>] width: *<var>*; w[--my-width]

min-width

Class Style Example
min-w[auto] min-width: auto;
min-w[full] min-width: 100%;
min-w[screen] min-width: 100vw;
min-w[dvw] min-width: 100dvw;
min-w[lvw] min-width: 100lvw;
min-w[svw] min-width: 100svw;
min-w[min] min-width: min-content;
min-w[max] min-width: max-content;
min-w[fit] min-width: fit-content;
min-w[<dimension>] min-width: *<dimension>*; min-w[10px]
min-w[<fraction>] min-width: *<fraction>*; min-w[1/2]
min-w[<var>] min-width: *<var>*; min-w[--my-min-width]

max-width

Class Style Example
max-w[auto] max-width: auto;
max-w[full] max-width: 100%;
max-w[screen] max-width: 100vw;
max-w[dvw] max-width: 100dvw;
max-w[lvw] max-width: 100lvw;
max-w[svw] max-width: 100svw;
max-w[min] max-width: min-content;
max-w[max] max-width: max-content;
max-w[fit] max-width: fit-content;
max-w[<dimension>] max-width: *<dimension>*; max-w[10px]
max-w[<fraction>] max-width: *<fraction>*; max-w[1/2]
max-w[<var>] max-width: *<var>*; max-w[--my-max-width]

height

Class Style Example
h[auto] height: auto;
h[full] height: 100%;
h[screen] height: 100vh;
h[dvh] height: 100dvh;
h[lvh] height: 100lvh;
h[svh] height: 100svh;
h[min] height: min-content;
h[max] height: max-content;
h[fit] height: fit-content;
h[lh] height: 1lh;
h[<dimension>] height: *<dimension>*; h[10px]
h[<fraction>] height: *<fraction>*; h[1/2]
h[<var>] height: *<var>*; h[--my-height]

min-height

Class Style Example
min-h[auto] min-height: auto;
min-h[full] min-height: 100%;
min-h[screen] min-height: 100vh;
min-h[dvh] min-height: 100dvh;
min-h[lvh] min-height: 100lvh;
min-h[svh] min-height: 100svh;
min-h[min] min-height: min-content;
min-h[max] min-height: max-content;
min-h[fit] min-height: fit-content;
min-h[<dimension>] min-height: *<dimension>*; min-h[10px]
min-h[<fraction>] min-height: *<fraction>*; min-h[1/2]
min-h[<var>] min-height: *<var>*; min-h[--my-min-height]

max-height

Class Style Example
max-h[auto] max-height: auto;
max-h[full] max-height: 100%;
max-h[screen] max-height: 100vh;
max-h[dvh] max-height: 100dvh;
max-h[lvh] max-height: 100lvh;
max-h[svh] max-height: 100svh;
max-h[min] max-height: min-content;
max-h[max] max-height: max-content;
max-h[fit] max-height: fit-content;
max-h[<dimension>] max-height: *<dimension>*; max-h[10px]
max-h[<fraction>] max-height: *<fraction>*; max-h[1/2]
max-h[<var>] max-height: *<var>*; max-h[--my-max-height]

Typography

font-family

Class Style Example
font[family:sans] font-family: var(--theme-font-sans);
font[family:serif] font-family: var(--theme-font-serif);
font[family:mono] font-family: var(--theme-font-mono);
font[family:<var>] font-family: *<var>*; font[family:--my-font]
font[family:<custom>] font-family: *<custom>*; font[family:Georgia]

font-size

Class Style Example
font[size:xs] font-size: var(--theme-font-xs);
font[size:sm] font-size: var(--theme-font-sm);
font[size:md] font-size: var(--theme-font-md);
font[size:lg] font-size: var(--theme-font-lg);
font[size:xl] font-size: var(--theme-font-xl);
font[size:<dimension>] font-size: *<dimension>*; font[size:20px]
font[size:<var>] font-size: *<var>*; font[size:--my-size]

font-smoothing

Class Style Example
font[smoothing:antialiased] -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
font[smoothing:auto] -webkit-font-smoothing: auto; -moz-osx-font-smoothing: auto;
font[smoothing:none] -webkit-font-smoothing: none;

font-style

Class Style Example
font[style:italic] font-style: italic;
font[style:normal] font-style: normal;

font-weight

Class Style Example
font[weight:100] font-weight: 100;
font[weight:200] font-weight: 200;
font[weight:300] font-weight: 300;
font[weight:400] font-weight: 400;
font[weight:500] font-weight: 500;
font[weight:600] font-weight: 600;
font[weight:700] font-weight: 700;
font[weight:800] font-weight: 800;
font[weight:900] font-weight: 900;
font[weight:bold] font-weight: bold;
font[weight:bolder] font-weight: bolder;

font-stretch

Class Style Example
font[stretch:ultra-condensed] font-stretch: ultra-condensed;
font[stretch:extra-condensed] font-stretch: extra-condensed;
font[stretch:condensed] font-stretch: condensed;
font[stretch:semi-condensed] font-stretch: semi-condensed;
font[stretch:normal] font-stretch: normal;
font[stretch:semi-expanded] font-stretch: semi-expanded;
font[stretch:expanded] font-stretch: expanded;
font[stretch:extra-expanded] font-stretch: extra-expanded;
font[stretch:ultra-expanded] font-stretch: ultra-expanded;
font[stretch:<percentage>] font-stretch: *<percentage>*; font[stretch:75%]
font[stretch:<var>] font-stretch: *<var>*; font[stretch:--my-stretch]

font-variant-numeric

Class Style Example
font[variant-numeric:normal] font-variant-numeric: normal;
font[variant-numeric:ordinal] font-variant-numeric: ordinal;
font[variant-numeric:slashed-zero] font-variant-numeric: slashed-zero;
font[variant-numeric:lining-nums] font-variant-numeric: lining-nums;
font[variant-numeric:oldstyle-nums] font-variant-numeric: oldstyle-nums;
font[variant-numeric:proportional-nums] font-variant-numeric: proportional-nums;
font[variant-numeric:tabular-nums] font-variant-numeric: tabular-nums;
font[variant-numeric:diagonal-fractions] font-variant-numeric: diagonal-fractions;
font[variant-numeric:stacked-fractions] font-variant-numeric: stacked-fractions;

letter-spacing

Class Style Example
letterspacing[tight] letter-spacing: var(--theme-letterSpacing-tight);
letterspacing[normal] letter-spacing: var(--theme-letterSpacing-normal);
letterspacing[wide] letter-spacing: var(--theme-letterSpacing-wide);
letterspacing[<dimension>] letter-spacing: *<dimension>*; letterspacing[2px]
letterspacing[<var>] letter-spacing: *<var>*; letterspacing[--my-spacing]

line-clamp

Class Style Example
lineclamp[none] line-clamp: none;
lineclamp[<number>] line-clamp: *<number>*; lineclamp[3]
lineclamp[<var>] line-clamp: *<var>*; lineclamp[--my-clamp]

line-height

Class Style Example
lh[none] line-height: none;
lh[tight] line-height: var(--theme-lineHeight-tight);
lh[snug] line-height: var(--theme-lineHeight-snug);
lh[normal] line-height: var(--theme-lineHeight-normal);
lh[relaxed] line-height: var(--theme-lineHeight-relaxed);
lh[loose] line-height: var(--theme-lineHeight-loose);
lh[<number>] line-height: *<number>*; lh[1.5]
lh[<var>] line-height: *<var>*; lh[--my-height]

list-style-image

Class Style Example
list[image:none] list-style-image: none;
list[image:<url>] list-style-image: *<url>*; list[image:url(image.png)]
list[image:<var>] list-style-image: *<var>*; list[image:--my-image]

list-style-position

Class Style Example
list[position:inside] list-style-position: inside;
list[position:outside] list-style-position: outside;

list-style-type

Class Style Example
list[type:none] list-style-type: none;
list[type:disc] list-style-type: disc;
list[type:decimal] list-style-type: decimal;
list[type:<custom>] list-style-type: *<custom>*; list[type:upper-roman]
list[type:<var>] list-style-type: *<var>*; list[type:--my-type]

text-align

Class Style Example
text[left] text-align: left;
text[center] text-align: center;
text[right] text-align: right;
text[justify] text-align: justify;
text[start] text-align: start;
text[end] text-align: end;

text-decoration

Class Style Example
text[underline] text-decoration: underline;
text[overline] text-decoration: overline;
text[line-through] text-decoration: line-through;
text[no-underline] text-decoration: none;

text-transform

Class Style Example
text[uppercase] text-transform: uppercase;
text[lowercase] text-transform: lowercase;
text[capitalize] text-transform: capitalize;
text[normal-case] text-transform: none;

text-overflow

Class Style Example
text[truncate] overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
text[ellipsis] text-overflow: ellipsis;
text[clip] text-overflow: clip;

text-wrap

Class Style Example
text[wrap] text-wrap: wrap;
text[nowrap] text-wrap: nowrap;
text[balance] text-wrap: balance;
text[pretty] text-wrap: pretty;

text-indent

Class Style Example
text[indent:<dimension>] text-indent: *<dimension>*; text[indent:2em]
text[indent:<var>] text-indent: *<var>*; text[indent:--my-indent]

vertical-align

Class Style Example
text[vertical:baseline] vertical-align: baseline;
text[vertical:top] vertical-align: top;
text[vertical:middle] vertical-align: middle;
text[vertical:bottom] vertical-align: bottom;
text[vertical:text-top] vertical-align: text-top;
text[vertical:text-bottom] vertical-align: text-bottom;
text[vertical:sub] vertical-align: sub;
text[vertical:super] vertical-align: super;
text[vertical:<dimension>] vertical-align: *<dimension>*; text[vertical:4px]
text[vertical:<var>] vertical-align: *<var>*; text[vertical:--my-align]

white-space

Class Style Example
whitespace[normal] white-space: normal;
whitespace[nowrap] white-space: nowrap;
whitespace[pre] white-space: pre;
whitespace[pre-line] white-space: pre-line;
whitespace[pre-wrap] white-space: pre-wrap;
whitespace[break-spaces] white-space: break-spaces;

word-break

Class Style Example
wordbreak[normal] word-break: normal;
wordbreak[break-all] word-break: break-all;
wordbreak[keep-all] word-break: keep-all;

overflow-wrap

Class Style Example
overflow-wrap[normal] overflow-wrap: normal;
overflow-wrap[break-word] overflow-wrap: break-word;
overflow-wrap[anywhere] overflow-wrap: anywhere;
overflow-wrap[<var>] overflow-wrap: *<var>*; overflow-wrap[--my-wrap]

hyphens

Class Style Example
hyphens[none] hyphens: none;
hyphens[manual] hyphens: manual;
hyphens[auto] hyphens: auto;
hyphens[<var>] hyphens: *<var>*; hyphens[--my-hyphens]

content

Class Style Example
content[none] content: none;
content[<string>] content: *<string>*; content["Hello"]
content[<var>] content: *<var>*; content[--my-content]

Backgrounds

background-attachment

Class Style Example
bg[fixed] background-attachment: fixed;
bg[local] background-attachment: local;
bg[scroll] background-attachment: scroll;

background-clip

Class Style Example
bg[clip:border] background-clip: border-box;
bg[clip:padding] background-clip: padding-box;
bg[clip:content] background-clip: content-box;
bg[clip:text] background-clip: text;

background-color

Class Style Example
bg[none] background-color: none;
bg[inherit] background-color: inherit;
bg[transparent] background-color: transparent;
bg[current] background-color: currentColor;
bg[<hex>] background-color: *<hex>*; bg[#ff0000]
bg[<color-function>] background-color: *<color-function>*; bg[oklch(70%_0.1_180)]
bg[<var>] background-color: *<var>*; bg[--my-bg]

background-image

Class Style Example
bg[image:<url>] background-image: *<url>*; bg[image:url(image.png)]
bg[image:<var>] background-image: *<var>*; bg[image:--my-image]
bg[url(<src>)] background-image: url(*<src>*); bg[url(image.png)]

background-origin

Class Style Example
bg[origin:border] background-origin: border-box;
bg[origin:padding] background-origin: padding-box;
bg[origin:content] background-origin: content-box;

background-position

Class Style Example
bg[position:top] background-position: top;
bg[position:right] background-position: right;
bg[position:bottom] background-position: bottom;
bg[position:left] background-position: left;
bg[position:center] background-position: center;
bg[position:<custom>] background-position: *<custom>*; bg[position:center_top]
bg[position:<var>] background-position: *<var>*; bg[position:--my-position]

background-repeat

Class Style Example
bg[repeat] background-repeat: repeat;
bg[repeat:repeat] background-repeat: repeat;
bg[repeat:no-repeat] background-repeat: no-repeat;
bg[repeat:space] background-repeat: space;
bg[repeat:round] background-repeat: round;
bg[repeat:x] background-repeat: repeat-x;
bg[repeat:y] background-repeat: repeat-y;
bg[repeat:<var>] background-repeat: *<var>*; bg[repeat:--my-repeat]

background-size

Class Style Example
bg[size:auto] background-size: auto;
bg[size:cover] background-size: cover;
bg[size:contain] background-size: contain;
bg[size:<custom>] background-size: *<custom>*; bg[size:100px_auto]
bg[size:<var>] background-size: *<var>*; bg[size:--my-size]

Borders

border-radius

Class Style Example
border[radius:none] border-radius: 0;
border[radius:full] border-radius: calc(infinity * 1px);
border[radius:sm] border-radius: var(--theme-radius-sm);
border[radius:md] border-radius: var(--theme-radius-md);
border[radius:lg] border-radius: var(--theme-radius-lg);
border[radius:<dimension>] border-radius: *<dimension>*; border[radius:10px]
border[radius:<var>] border-radius: *<var>*; border[radius:--my-radius]
border[radius-t:<dimension>] border-top-left-radius: *<dimension>*; border-top-right-radius: *<dimension>*; border[radius-t:8px]
border[radius-r:<dimension>] border-top-right-radius: *<dimension>*; border-bottom-right-radius: *<dimension>*; border[radius-r:8px]
border[radius-b:<dimension>] border-bottom-left-radius: *<dimension>*; border-bottom-right-radius: *<dimension>*; border[radius-b:8px]
border[radius-l:<dimension>] border-top-left-radius: *<dimension>*; border-bottom-left-radius: *<dimension>*; border[radius-l:8px]
border[radius-tl:<dimension>] border-top-left-radius: *<dimension>*; border[radius-tl:8px]
border[radius-tr:<dimension>] border-top-right-radius: *<dimension>*; border[radius-tr:8px]
border[radius-br:<dimension>] border-bottom-right-radius: *<dimension>*; border[radius-br:8px]
border[radius-bl:<dimension>] border-bottom-left-radius: *<dimension>*; border[radius-bl:8px]

border-width

Class Style Example
border[0] border-width: 0;
border[<dimension>] border-width: *<dimension>*; border[2px]
border[<var>] border-width: *<var>*; border[--my-width]
border[t:<dimension>] border-top-width: *<dimension>*; border[t:2px]
border[r:<dimension>] border-right-width: *<dimension>*; border[r:2px]
border[b:<dimension>] border-bottom-width: *<dimension>*; border[b:2px]
border[l:<dimension>] border-left-width: *<dimension>*; border[l:2px]
border[x:<dimension>] border-inline-width: *<dimension>*; border[x:2px]
border[y:<dimension>] border-block-width: *<dimension>*; border[y:2px]
border[s:<dimension>] border-inline-start-width: *<dimension>*; border[s:2px]
border[e:<dimension>] border-inline-end-width: *<dimension>*; border[e:2px]

border-color

Class Style Example
border[color:transparent] border-color: transparent;
border[color:current] border-color: currentColor;
border[color:<hex>] border-color: *<hex>*; border[color:#000000]
border[color:<color-function>] border-color: *<color-function>*; border[color:oklch(50%_0.1_180)]
border[color:<var>] border-color: *<var>*; border[color:--my-color]

border-style

Class Style Example
border[style:solid] border-style: solid;
border[style:dashed] border-style: dashed;
border[style:dotted] border-style: dotted;
border[style:double] border-style: double;
border[style:hidden] border-style: hidden;
border[style:none] border-style: none;

border-divide

Class Style Example
border[divide-x] border-inline-start-width: 0px; border-inline-end-width: 1px; (on child elements)
border[divide-x:<dimension>] border-inline-start-width: 0px; border-inline-end-width: *<dimension>*; border[divide-x:2px]
border[divide-y] border-top-width: 0px; border-bottom-width: 1px; (on child elements)
border[divide-y:<dimension>] border-top-width: 0px; border-bottom-width: *<dimension>*; border[divide-y:2px]
border[divide:solid] border-style: solid; (on child elements)
border[divide:dashed] border-style: dashed; (on child elements)

outline

Class Style Example
outline[0] outline-width: 0;
outline[<dimension>] outline-width: *<dimension>*; outline[2px]
outline[width:<dimension>] outline-width: *<dimension>*; outline[width:2px]
outline[color:transparent] outline-color: transparent;
outline[color:current] outline-color: currentColor;
outline[color:<hex>] outline-color: *<hex>*; outline[color:#000]
outline[color:<var>] outline-color: *<var>*; outline[color:--my-color]
outline[style:solid] outline-style: solid;
outline[style:dashed] outline-style: dashed;
outline[style:dotted] outline-style: dotted;
outline[style:double] outline-style: double;
outline[style:none] outline-style: none;
outline[offset:<var>] outline-offset: *<var>*; outline[offset:--my-offset]

Effects

box-shadow

Class Style Example
shadow[none] box-shadow: 0 0 #0000;
shadow[xs] box-shadow: var(--theme-shadow-xs);
shadow[sm] box-shadow: var(--theme-shadow-sm);
shadow[md] box-shadow: var(--theme-shadow-md);
shadow[lg] box-shadow: var(--theme-shadow-lg);
shadow[xl] box-shadow: var(--theme-shadow-xl);
shadow[<custom>] box-shadow: *<custom>*; shadow[0_2px_4px_#000]
shadow[<var>] box-shadow: *<var>*; shadow[--my-shadow]
shadow[color:<hex>] --uc-shadow-color: *<hex>*; shadow[color:#000]
shadow[color:<var>] --uc-shadow-color: *<var>*; shadow[color:--my-color]

inset-shadow

Class Style Example
inset-shadow[none] box-shadow: inset 0 0 #0000;
inset-shadow[xs] box-shadow: inset var(--theme-shadow-xs);
inset-shadow[sm] box-shadow: inset var(--theme-shadow-sm);
inset-shadow[<var>] box-shadow: inset *<var>*; inset-shadow[--my-shadow]

ring

Class Style Example
ring[<number>] box-shadow: 0 0 0 *<number>*px var(--uc-ring-color); ring[2]
ring[<var>] box-shadow: 0 0 0 *<var>* var(--uc-ring-color); ring[--my-ring]
ring[color:<hex>] --uc-ring-color: *<hex>*; ring[color:#000]
ring[color:<var>] --uc-ring-color: *<var>*; ring[color:--my-color]

opacity

Class Style Example
opacity[0] opacity: 0;
opacity[25] opacity: 0.25;
opacity[50] opacity: 0.5;
opacity[75] opacity: 0.75;
opacity[100] opacity: 1;
opacity[<number>] opacity: *<number>*; opacity[0.8]
opacity[<var>] opacity: *<var>*; opacity[--my-opacity]

mix-blend-mode

Class Style Example
mix-blend[normal] mix-blend-mode: normal;
mix-blend[multiply] mix-blend-mode: multiply;
mix-blend[screen] mix-blend-mode: screen;
mix-blend[overlay] mix-blend-mode: overlay;
mix-blend[darken] mix-blend-mode: darken;
mix-blend[lighten] mix-blend-mode: lighten;
mix-blend[color-dodge] mix-blend-mode: color-dodge;
mix-blend[color-burn] mix-blend-mode: color-burn;
mix-blend[hard-light] mix-blend-mode: hard-light;
mix-blend[soft-light] mix-blend-mode: soft-light;
mix-blend[difference] mix-blend-mode: difference;
mix-blend[exclusion] mix-blend-mode: exclusion;
mix-blend[hue] mix-blend-mode: hue;
mix-blend[saturation] mix-blend-mode: saturation;
mix-blend[color] mix-blend-mode: color;
mix-blend[luminosity] mix-blend-mode: luminosity;
mix-blend[plus-darker] mix-blend-mode: plus-darker;
mix-blend[plus-lighter] mix-blend-mode: plus-lighter;

background-blend-mode

Class Style Example
bg-blend[normal] background-blend-mode: normal;
bg-blend[multiply] background-blend-mode: multiply;
bg-blend[screen] background-blend-mode: screen;
bg-blend[overlay] background-blend-mode: overlay;
bg-blend[darken] background-blend-mode: darken;
bg-blend[lighten] background-blend-mode: lighten;
bg-blend[color-dodge] background-blend-mode: color-dodge;
bg-blend[color-burn] background-blend-mode: color-burn;
bg-blend[hard-light] background-blend-mode: hard-light;
bg-blend[soft-light] background-blend-mode: soft-light;
bg-blend[difference] background-blend-mode: difference;
bg-blend[exclusion] background-blend-mode: exclusion;
bg-blend[hue] background-blend-mode: hue;
bg-blend[saturation] background-blend-mode: saturation;
bg-blend[color] background-blend-mode: color;
bg-blend[luminosity] background-blend-mode: luminosity;
bg-blend[plus-darker] background-blend-mode: plus-darker;
bg-blend[plus-lighter] background-blend-mode: plus-lighter;

mask-clip

Class Style Example
mask[clip:border] mask-clip: border-box;
mask[clip:padding] mask-clip: padding-box;
mask[clip:content] mask-clip: content-box;
mask[clip:fill] mask-clip: fill-box;
mask[clip:stroke] mask-clip: stroke-box;
mask[clip:view] mask-clip: view-box;
mask[clip:no-clip] mask-clip: no-clip;

mask-composite

Class Style Example
mask[composite:add] mask-composite: add;
mask[composite:subtract] mask-composite: subtract;
mask[composite:intersect] mask-composite: intersect;
mask[composite:exclude] mask-composite: exclude;

mask-image

Class Style Example
mask[image:<url>] mask-image: *<url>*; mask[image:url(mask.png)]
mask[image:<var>] mask-image: *<var>*; mask[image:--my-mask]

mask-mode

Class Style Example
mask[mode:alpha] mask-mode: alpha;
mask[mode:luminance] mask-mode: luminance;
mask[mode:match-source] mask-mode: match-source;

mask-position

Class Style Example
mask[position:top] mask-position: top;
mask[position:right] mask-position: right;
mask[position:bottom] mask-position: bottom;
mask[position:left] mask-position: left;
mask[position:center] mask-position: center;
mask[position:top-left] mask-position: top left;
mask[position:top-right] mask-position: top right;
mask[position:bottom-left] mask-position: bottom left;
mask[position:bottom-right] mask-position: bottom right;
mask[position:<var>] mask-position: *<var>*; mask[position:--my-position]

mask-repeat

Class Style Example
mask[repeat:repeat] mask-repeat: repeat;
mask[repeat:no-repeat] mask-repeat: no-repeat;
mask[repeat:space] mask-repeat: space;
mask[repeat:round] mask-repeat: round;
mask[repeat:x] mask-repeat: repeat-x;
mask[repeat:y] mask-repeat: repeat-y;

mask-size

Class Style Example
mask[size:auto] mask-size: auto;
mask[size:cover] mask-size: cover;
mask[size:contain] mask-size: contain;
mask[size:<custom>] mask-size: *<custom>*; mask[size:100px_auto]
mask[size:<var>] mask-size: *<var>*; mask[size:--my-size]

mask-type

Class Style Example
mask[type:alpha] mask-type: alpha;
mask[type:luminance] mask-type: luminance;

Filters

Filters are composable — multiple filter utilities can be combined on the same element. Each utility sets a CSS custom property and the combined filter property is updated automatically.

blur

Class Style Example
blur[<px>] --uc-blur: blur(*<px>*); filter: ...; blur[4px]
blur[sm] --uc-blur: blur(var(--theme-blur-sm)); filter: ...;
blur[md] --uc-blur: blur(var(--theme-blur-md)); filter: ...;
blur[lg] --uc-blur: blur(var(--theme-blur-lg)); filter: ...;
blur[<var>] --uc-blur: blur(*<var>*); filter: ...; blur[--my-blur]

brightness

Class Style Example
brightness[<%>] --uc-brightness: brightness(*<%>*); filter: ...; brightness[150%]
brightness[<var>] --uc-brightness: brightness(*<var>*); filter: ...; brightness[--my-brightness]

contrast

Class Style Example
contrast[<%>] --uc-contrast: contrast(*<%>*); filter: ...; contrast[200%]
contrast[<var>] --uc-contrast: contrast(*<var>*); filter: ...; contrast[--my-contrast]

grayscale

Class Style Example
grayscale[<%>] --uc-grayscale: grayscale(*<%>*); filter: ...; grayscale[100%]
grayscale[<var>] --uc-grayscale: grayscale(*<var>*); filter: ...; grayscale[--my-grayscale]

hue-rotate

Class Style Example
hue-rotate[<angle>] --uc-hue-rotate: hue-rotate(*<angle>*); filter: ...; hue-rotate[180deg]
hue-rotate[<var>] --uc-hue-rotate: hue-rotate(*<var>*); filter: ...; hue-rotate[--my-hue]

invert

Class Style Example
invert[<%>] --uc-invert: invert(*<%>*); filter: ...; invert[100%]
invert[<var>] --uc-invert: invert(*<var>*); filter: ...; invert[--my-invert]

saturate

Class Style Example
saturate[<%>] --uc-saturate: saturate(*<%>*); filter: ...; saturate[50%]
saturate[<var>] --uc-saturate: saturate(*<var>*); filter: ...; saturate[--my-saturate]

sepia

Class Style Example
sepia[<%>] --uc-sepia: sepia(*<%>*); filter: ...; sepia[100%]
sepia[<var>] --uc-sepia: sepia(*<var>*); filter: ...; sepia[--my-sepia]

drop-shadow

Class Style Example
drop-shadow[none] --uc-drop-shadow: drop-shadow(0 0 #0000); filter: ...;
drop-shadow[xs] --uc-drop-shadow-length: var(--theme-drop-shadow-xs); filter: ...;
drop-shadow[sm] --uc-drop-shadow-length: var(--theme-drop-shadow-sm); filter: ...;
drop-shadow[md] --uc-drop-shadow-length: var(--theme-drop-shadow-md); filter: ...;
drop-shadow[lg] --uc-drop-shadow-length: var(--theme-drop-shadow-lg); filter: ...;
drop-shadow[xl] --uc-drop-shadow-length: var(--theme-drop-shadow-xl); filter: ...;
drop-shadow[<var>] --uc-drop-shadow-length: *<var>*; filter: ...; drop-shadow[--my-shadow]
drop-shadow[color:<hex>] --uc-drop-shadow-color: *<hex>*; drop-shadow[color:#000]
drop-shadow[color:<var>] --uc-drop-shadow-color: *<var>*; drop-shadow[color:--my-color]

backdrop

Backdrop filter utilities work the same as their filter counterparts but apply to backdrop-filter instead.

Class Style Example
backdrop[blur:<px>] --uc-blur: blur(*<px>*); backdrop-filter: ...; backdrop[blur:4px]
backdrop[blur:sm] --uc-blur: blur(var(--theme-blur-sm)); backdrop-filter: ...;
backdrop[brightness:<%>] --uc-brightness: brightness(*<%>*); backdrop-filter: ...; backdrop[brightness:150%]
backdrop[contrast:<%>] --uc-contrast: contrast(*<%>*); backdrop-filter: ...; backdrop[contrast:200%]
backdrop[grayscale:<%>] --uc-grayscale: grayscale(*<%>*); backdrop-filter: ...; backdrop[grayscale:100%]
backdrop[hue-rotate:<angle>] --uc-hue-rotate: hue-rotate(*<angle>*); backdrop-filter: ...; backdrop[hue-rotate:180deg]
backdrop[invert:<%>] --uc-invert: invert(*<%>*); backdrop-filter: ...; backdrop[invert:100%]
backdrop[saturate:<%>] --uc-saturate: saturate(*<%>*); backdrop-filter: ...; backdrop[saturate:50%]
backdrop[sepia:<%>] --uc-sepia: sepia(*<%>*); backdrop-filter: ...; backdrop[sepia:100%]

Transition

transition

Class Style Example
transition[all] transition-property: all; transition-timing-function: ...; transition-duration: ...;
transition[colors] transition-property: color, background-color, ...; transition-timing-function: ...; transition-duration: ...;
transition[opacity] transition-property: opacity; transition-timing-function: ...; transition-duration: ...;
transition[shadow] transition-property: box-shadow; transition-timing-function: ...; transition-duration: ...;
transition[transform] transition-property: transform, translate, scale, rotate; transition-timing-function: ...; transition-duration: ...;
transition[none] transition-property: none; transition-timing-function: ...; transition-duration: ...;
transition[normal] transition-behavior: normal;
transition[discrete] transition-behavior: allow-discrete;
transition[linear] transition-timing-function: linear;
transition[ease-in] transition-timing-function: var(--ease-in);
transition[ease-out] transition-timing-function: var(--ease-out);
transition[ease-in-out] transition-timing-function: var(--ease-in-out);
transition[duration:<time>] transition-duration: *<time>*; transition[duration:300ms]
transition[duration:<number>] transition-duration: *<number>*ms; transition[duration:300]
transition[duration:initial] transition-duration: initial;
transition[delay:<time>] transition-delay: *<time>*; transition[delay:100ms]
transition[delay:<number>] transition-delay: *<number>*ms; transition[delay:100]
transition[timing:initial] transition-timing-function: initial;
transition[timing:<var>] transition-timing-function: *<var>*; transition[timing:--my-timing]
transition[timing:<custom>] transition-timing-function: *<custom>*; transition[timing:cubic-bezier(0.4,0,0.2,1)]

animation

Class Style Example
animate[none] animation: none;
animate[spin] animation: var(--animate-spin); registers @keyframes spin
animate[ping] animation: var(--animate-ping); registers @keyframes ping
animate[pulse] animation: var(--animate-pulse); registers @keyframes pulse
animate[bounce] animation: var(--animate-bounce); registers @keyframes bounce
animate[<var>] animation: *<var>*; animate[--my-animation]
animate[<custom>] animation: *<custom>*; animate[spin_1s_linear_infinite]

Transform

backface-visibility

Class Style Example
backface[hidden] backface-visibility: hidden;
backface[visible] backface-visibility: visible;

perspective

Class Style Example
perspective[none] perspective: none;
perspective[dramatic] perspective: var(--perspective-dramatic); (100px)
perspective[near] perspective: var(--perspective-near); (300px)
perspective[normal] perspective: var(--perspective-normal); (500px)
perspective[midrange] perspective: var(--perspective-midrange); (800px)
perspective[distant] perspective: var(--perspective-distant); (1200px)
perspective[<px>] perspective: *<px>*; perspective[500px]
perspective[<var>] perspective: *<var>*; perspective[--my-perspective]
perspective[origin:center] perspective-origin: center;
perspective[origin:top] perspective-origin: top;
perspective[origin:right] perspective-origin: right;
perspective[origin:bottom] perspective-origin: bottom;
perspective[origin:left] perspective-origin: left;
perspective[origin:top-right] perspective-origin: top right;
perspective[origin:top-left] perspective-origin: top left;
perspective[origin:bottom-right] perspective-origin: bottom right;
perspective[origin:bottom-left] perspective-origin: bottom left;
perspective[origin:<var>] perspective-origin: *<var>*; perspective[origin:--my-origin]
perspective[origin:<custom>] perspective-origin: *<custom>*; perspective[origin:50%_50%]

rotate

Class Style Example
rotate[none] rotate: none;
rotate[<angle>] rotate: *<angle>*; rotate[45deg]
rotate[<number>] rotate: *<number>*deg; rotate[45]
rotate[<var>] rotate: *<var>*; rotate[--my-rotate]
rotate[x:<angle>] --uc-rotate-x: rotateX(*<angle>*); transform: ...; rotate[x:45deg]
rotate[y:<angle>] --uc-rotate-y: rotateY(*<angle>*); transform: ...; rotate[y:30deg]
rotate[z:<angle>] --uc-rotate-z: rotateZ(*<angle>*); transform: ...; rotate[z:90deg]

scale

Class Style Example
scale[none] scale: none;
scale[<%>] scale: *<%>* *<%>*; scale[150%]
scale[<number>] scale: *<number>*% *<number>*%; scale[1.5]
scale[<var>] scale: *<var>*; scale[--my-scale]
scale[x:<%>] --uc-scale-x: *<%>*; scale: ...; scale[x:150%]
scale[y:<%>] --uc-scale-y: *<%>*; scale: ...; scale[y:50%]
scale[z:<%>] --uc-scale-z: *<%>*; scale: ...; scale[z:100%]

skew

Class Style Example
skew[<angle>] --uc-skew-x: skewX(*<angle>*); --uc-skew-y: skewY(*<angle>*); transform: ...; skew[10deg]
skew[<number>] --uc-skew-x: skewX(*<number>*deg); --uc-skew-y: skewY(*<number>*deg); transform: ...; skew[10]
skew[<var>] --uc-skew-x: skewX(*<var>*); --uc-skew-y: skewY(*<var>*); transform: ...; skew[--my-skew]
skew[x:<angle>] --uc-skew-x: skewX(*<angle>*); transform: ...; skew[x:10deg]
skew[y:<angle>] --uc-skew-y: skewY(*<angle>*); transform: ...; skew[y:5deg]

transform

Class Style Example
transform[none] transform: none;
transform[<var>] transform: *<var>*; transform[--my-transform]
transform[<custom>] transform: *<custom>*; transform[translateX(10px)]
transform[origin:center] transform-origin: center;
transform[origin:top] transform-origin: top;
transform[origin:right] transform-origin: right;
transform[origin:bottom] transform-origin: bottom;
transform[origin:left] transform-origin: left;
transform[origin:top-right] transform-origin: top right;
transform[origin:top-left] transform-origin: top left;
transform[origin:bottom-right] transform-origin: bottom right;
transform[origin:bottom-left] transform-origin: bottom left;
transform[origin:<var>] transform-origin: *<var>*; transform[origin:--my-origin]
transform[origin:<custom>] transform-origin: *<custom>*; transform[origin:50%_50%]
transform[style:flat] transform-origin: flat;
transform[style:3d] transform-origin: reserve-3d;

translate

Class Style Example
translate[<dimension>] translate: *<dimension>* *<dimension>*; translate[10px]
translate[full] translate: 100% 100%;
translate[<fraction>] translate: *<fraction>* *<fraction>*; translate[1/2]
translate[<var>] translate: *<var>*; translate[--my-translate]
translate[x:<dimension>] --uc-translate-x: *<dimension>*; translate: ...; translate[x:10px]
translate[x:full] --uc-translate-x: 100%; translate: ...;
translate[y:<dimension>] --uc-translate-y: *<dimension>*; translate: ...; translate[y:50%]
translate[z:<dimension>] --uc-translate-z: *<dimension>*; translate: ...; translate[z:0px]

Interactivity

accent-color

Class Style Example
accent[auto] accent-color: auto;
accent[<hex>] accent-color: *<hex>*; accent[#ff0000]
accent[<var>] accent-color: *<var>*; accent[--my-accent]

appearance

Class Style Example
appearance[none] appearance: none;
appearance[auto] appearance: auto;

caret-color

Class Style Example
caret[auto] caret-color: auto;
caret[<hex>] caret-color: *<hex>*; caret[#ff0000]
caret[<var>] caret-color: *<var>*; caret[--my-caret]

color-scheme

Class Style Example
scheme[normal] color-scheme: normal;
scheme[light] color-scheme: light;
scheme[dark] color-scheme: dark;
scheme[light-dark] color-scheme: light dark;
scheme[only-dark] color-scheme: only dark;
scheme[only-light] color-scheme: only light;

cursor

Class Style Example
cursor[pointer] cursor: pointer;
cursor[default] cursor: default;
cursor[move] cursor: move;
cursor[not-allowed] cursor: not-allowed;
cursor[grab] cursor: grab;
cursor[grabbing] cursor: grabbing;
cursor[none] cursor: none;
cursor[auto] cursor: auto;
cursor[<url>] cursor: *<url>*; cursor[url(cursor.png)]
cursor[<var>] cursor: *<var>*; cursor[--my-cursor]

field-sizing

Class Style Example
field-sizing[content] field-sizing: content;
field-sizing[fixed] field-sizing: fixed;

pointer-events

Class Style Example
pointer-events[auto] pointer-events: auto;
pointer-events[none] pointer-events: none;

resize

Class Style Example
resize[none] resize: none;
resize[both] resize: both;
resize[y] resize: vertical;
resize[x] resize: horizontal;

scroll-behavior

Class Style Example
scroll[auto] scroll-behavior: auto;
scroll[smooth] scroll-behavior: smooth;

scroll-margin

Class Style Example
scroll[m:<dimension>] scroll-margin: *<dimension>*; scroll[m:10px]
scroll[mx:<dimension>] scroll-margin-inline: *<dimension>*; scroll[mx:10px]
scroll[my:<dimension>] scroll-margin-block: *<dimension>*; scroll[my:10px]
scroll[ms:<dimension>] scroll-margin-inline-start: *<dimension>*; scroll[ms:10px]
scroll[me:<dimension>] scroll-margin-inline-end: *<dimension>*; scroll[me:10px]
scroll[mt:<dimension>] scroll-margin-top: *<dimension>*; scroll[mt:10px]
scroll[mr:<dimension>] scroll-margin-right: *<dimension>*; scroll[mr:10px]
scroll[mb:<dimension>] scroll-margin-bottom: *<dimension>*; scroll[mb:10px]
scroll[ml:<dimension>] scroll-margin-left: *<dimension>*; scroll[ml:10px]

scroll-padding

Class Style Example
scroll[p:<dimension>] scroll-padding: *<dimension>*; scroll[p:10px]
scroll[px:<dimension>] scroll-padding-inline: *<dimension>*; scroll[px:10px]
scroll[py:<dimension>] scroll-padding-block: *<dimension>*; scroll[py:10px]
scroll[ps:<dimension>] scroll-padding-inline-start: *<dimension>*; scroll[ps:10px]
scroll[pe:<dimension>] scroll-padding-inline-end: *<dimension>*; scroll[pe:10px]
scroll[pt:<dimension>] scroll-padding-top: *<dimension>*; scroll[pt:10px]
scroll[pr:<dimension>] scroll-padding-right: *<dimension>*; scroll[pr:10px]
scroll[pb:<dimension>] scroll-padding-bottom: *<dimension>*; scroll[pb:10px]
scroll[pl:<dimension>] scroll-padding-left: *<dimension>*; scroll[pl:10px]

scroll-snap

Class Style Example
snap[x] scroll-snap-type: x var(--uc-scroll-snap-strictness);
snap[y] scroll-snap-type: y var(--uc-scroll-snap-strictness);
snap[both] scroll-snap-type: both var(--uc-scroll-snap-strictness);
snap[none] scroll-snap-type: none;
snap[mandatory] --uc-scroll-snap-strictness: mandatory;
snap[proximity] --uc-scroll-snap-strictness: proximity;
snap[align:start] scroll-snap-align: start;
snap[align:end] scroll-snap-align: end;
snap[align:center] scroll-snap-align: center;
snap[align:none] scroll-snap-align: none;
snap[stop:normal] scroll-snap-stop: normal;
snap[stop:always] scroll-snap-stop: always;
snap[type:none] scroll-snap-type: none;
snap[type:mandatory] scroll-snap-type: mandatory;
snap[type:proximity] scroll-snap-type: proximity;
snap[type:x] scroll-snap-type: x var(--uc-scroll-snap-strictness);
snap[type:y] scroll-snap-type: y var(--uc-scroll-snap-strictness);
snap[type:both] scroll-snap-type: both var(--uc-scroll-snap-strictness);

touch-action

Class Style Example
touch[auto] touch-action: auto;
touch[none] touch-action: none;
touch[pan-x] touch-action: pan-x;
touch[pan-y] touch-action: pan-y;
touch[pan-left] touch-action: pan-left;
touch[pan-right] touch-action: pan-right;
touch[pan-up] touch-action: pan-up;
touch[pan-down] touch-action: pan-down;
touch[pinch-zoom] touch-action: pinch-zoom;
touch[manipulation] touch-action: manipulation;

user-select

Class Style Example
select[none] user-select: none;
select[text] user-select: text;
select[all] user-select: all;
select[auto] user-select: auto;

will-change

Class Style Example
will-change[auto] will-change: auto;
will-change[transform] will-change: transform;
will-change[contents] will-change: contents;
will-change[scroll] will-change: scroll-position;
will-change[inherit] will-change: inherit;
will-change[initial] will-change: initial;
will-change[revert] will-change: revert;
will-change[revert-layer] will-change: revert-layer;
will-change[unset] will-change: unset;
will-change[<var>] will-change: *<var>*; will-change[--my-change]
will-change[<custom>] will-change: *<custom>*; will-change[opacity,transform]

SVG

fill

Class Style Example
fill[none] fill: none;
fill[transparent] fill: transparent;
fill[current] fill: currentColor;
fill[<hex>] fill: *<hex>*; fill[#ff0000]
fill[<var>] fill: *<var>*; fill[--my-fill]

stroke

Class Style Example
stroke[none] stroke: none;
stroke[transparent] stroke: transparent;
stroke[current] stroke: currentColor;
stroke[<hex>] stroke: *<hex>*; stroke[#ff0000]
stroke[<var>] stroke: *<var>*; stroke[--my-stroke]
stroke[width:<number>] stroke-width: *<number>*; stroke[width:2]
stroke[width:0] stroke-width: 0;

Accessibility

forced-color-adjust

Class Style Example
forced-color-adjust[auto] forced-color-adjust: auto;
forced-color-adjust[none] forced-color-adjust: none;

vollegrond/rootstock 适用场景与选型建议

vollegrond/rootstock 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 04 月 04 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 vollegrond/rootstock 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 vollegrond/rootstock 我们能提供哪些服务?
定制开发 / 二次开发

基于 vollegrond/rootstock 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 7
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 20
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-04