Skip to main content

CSS Property Index

This is the complete index of all supported CSS properties in wgpu-html, formatted as a property table. Columns:

  • Property — CSS property name (kebab-case)
  • Values — accepted syntax
  • Initial — CSS specification initial value
  • Inherited — whether the property inherits by default
  • Notes — implementation status (✅ fully implemented, ⚠️ partial, ❌ parsed only)

Layout & Box Model

PropertyValuesInitialInheritedNotes
displayblock | inline | inline-block | flex | grid | none | (9 table variants)inlineNo✅ Block/flex/grid/none; table falls through to block
positionstatic | relative | absolute | fixedstaticNo✅ Absolute/relative/fixed; sticky degrades to relative
width<length> | <percentage> | autoautoNo✅ All units, calc(), min()/max()/clamp()
height<length> | <percentage> | autoautoNo✅ All units
min-width<length> | <percentage> | autoautoNo✅ Clamping during layout
max-width<length> | <percentage> | autononeNo✅ Clamping during layout
min-height<length> | <percentage> | autoautoNo✅ Clamping during layout
max-height<length> | <percentage> | autononeNo✅ Clamping during layout
box-sizingcontent-box | border-boxcontent-boxNo✅ Affects width/height interpretation
margin<length> | <percentage> | auto (1–4 values)0No✅ Shorthand with 1–4 value expansion
margin-top<length> | <percentage> | auto0No✅ Auto margin horizontal centering
margin-right<length> | <percentage> | auto0No
margin-bottom<length> | <percentage> | auto0No
margin-left<length> | <percentage> | auto0No
padding<length> | <percentage> (1–4 values)0No✅ Shorthand with 1–4 value expansion
padding-top<length> | <percentage>0No
padding-right<length> | <percentage>0No
padding-bottom<length> | <percentage>0No
padding-left<length> | <percentage>0No
top<length> | <percentage> | autoautoNo✅ Offsets for positioned elements
right<length> | <percentage> | autoautoNo✅ Right/bottom anchoring
bottom<length> | <percentage> | autoautoNo
left<length> | <percentage> | autoautoNo

Borders

PropertyValuesInitialInheritedNotes
border<width> <style> <color> (any order)medium none currentColorNo✅ Shorthand fans out to all four sides
border-top<width> <style> <color>see individualNo✅ Per-side shorthand
border-right<width> <style> <color>see individualNo
border-bottom<width> <style> <color>see individualNo
border-left<width> <style> <color>see individualNo
border-width<length> (1–4 values)mediumNo⚠️ Parsed + applied as length
border-stylenone | hidden | solid | dashed | dotted | double | groove | ridge | inset | outsetnoneNo⚠️ double/groove/ridge/inset/outset fall through to solid
border-color<color> (1–4 values)currentColorNo⚠️ Border without explicit color is skipped (no currentColor fallback)
border-top-width<length>mediumNo
border-right-width<length>mediumNo
border-bottom-width<length>mediumNo
border-left-width<length>mediumNo
border-top-style<border-style>noneNo
border-right-style<border-style>noneNo
border-bottom-style<border-style>noneNo
border-left-style<border-style>noneNo
border-top-color<color>currentColorNo⚠️ Same currentColor limitation
border-right-color<color>currentColorNo⚠️
border-bottom-color<color>currentColorNo⚠️
border-left-color<color>currentColorNo⚠️
border-radius<length> [ / <length> ]? (1–4 values per side)0No✅ Elliptical syntax with /, CSS3 corner-overflow clamping
border-top-left-radius<length> [<length>]?0No✅ H + V component
border-top-right-radius<length> [<length>]?0No
border-bottom-right-radius<length> [<length>]?0No
border-bottom-left-radius<length> [<length>]?0No

Colors & Backgrounds

PropertyValuesInitialInheritedNotes
color<color>canvastextYes✅ Full color parsing; inherited
background-color<color> | transparenttransparentNo
background-imageurl(...) | nonenoneNo✅ URL-based image loading
background-repeatrepeat | repeat-x | repeat-y | no-repeatrepeatNo✅ Tiling with background-clip
background-clipborder-box | padding-box | content-boxborder-boxNo✅ Concentric inner-radius reduction for clipping
background-size<string> (raw)autoNo⚠️ Parsed and stored as raw string; limited layout consumption
background-position<string> (raw)0% 0%No⚠️ Parsed and stored as raw string; limited layout consumption

Typography

PropertyValuesInitialInheritedNotes
color<color>canvastextYes✅ All color formats
font-family<family-name> [, <family-name>]*UA-dependentYes✅ Comma-separated fallback; generic keywords: sans-serif, serif, monospace, cursive, fantasy, system-ui, ui-*
font-size<length> | <percentage>mediumYes✅ All length units
font-weightnormal | bold | bolder | lighter | 100900normalYes✅ Full numeric range
font-stylenormal | italic | obliquenormalYes✅ Italic shaping via cosmic-text
line-heightnormal | <number> | <length> | <percentage>normalYes✅ Default ~1.25× font-size; number multiplier, length, percentage
letter-spacingnormal | <length>normalYes✅ Post-shape per-glyph offset
text-alignleft | right | center | start | endstartYes✅ Block-level horizontal alignment; justify also supported but not listed in enum
text-transformnone | uppercase | lowercase | capitalizenoneYes✅ Applied pre-shape; full uppercase/lowercase/capitalize
text-decorationnone | underline | overline | line-throughnoneYes✅ Rendered as solid quads at correct vertical offsets
white-spacenormal | prenormalYes✅ Normal: whitespace collapse; Pre: preserve
vertical-alignbaseline | sub | super | text-top | text-bottom | middle | top | bottom | <length>baselineNo❌ Parsed; limited layout effect

Overflow & Visibility

PropertyValuesInitialInheritedNotes
overflowvisible | hidden | scroll | autovisibleNo✅ Sets both axes
overflow-xvisible | hidden | scroll | autovisibleNo✅ Per-axis clipping
overflow-yvisible | hidden | scroll | autovisibleNo✅ Per-axis clipping
opacity<number> (0–1)1No✅ Multiplicative inheritance; baked into color alpha
visibilityvisible | hiddenvisibleYes✅ Inherited
z-index<integer> | autoautoNo❌ Parsed; not consumed in paint ordering
pointer-eventsauto | noneautoYesnone skips hit-testing; children with auto remain hittable
user-selectauto | none | text | allautoYesnone suppresses selection; text/all treated as auto
cursor<string>autoYes⚠️ Parsed; not applied to OS cursor shape

Flexbox

PropertyValuesInitialInheritedNotes
flex-directionrow | row-reverse | column | column-reverserowNo✅ Main axis direction
flex-wrapnowrap | wrap | wrap-reversenowrapNo✅ Multi-line wrapping
justify-contentflex-start | flex-end | center | space-between | space-around | space-evenly | start | end | left | rightflex-startNo✅ Full CSS-Flex-1 alignment
align-itemsflex-start | flex-end | center | stretch | baseline | start | endstretchNo✅ Baseline falls to start
align-contentflex-start | flex-end | center | stretch | space-between | space-around | space-evenly | start | endstretchNo✅ Multi-line cross-axis alignment
align-selfauto | flex-start | flex-end | center | stretch | baseline | start | endautoNo✅ Per-item override of align-items
flexnone | <flex-grow> <flex-shrink> <flex-basis>0 1 autoNo✅ Three-value shorthand
flex-grow<number>0No✅ Two-pass grow distribution
flex-shrink<number>1No✅ Two-pass shrink distribution; content-based minimum per CSS-Flex-1 §4.5
flex-basis<length> | autoautoNo✅ Initial main size before grow/shrink
order<integer>0No✅ Visual reorder without affecting source order (hit-testing preserved)
gap<length> | <percentage>0No✅ Sets both row-gap and column-gap
row-gap<length> | <percentage>0No
column-gap<length> | <percentage>0No

CSS Grid

PropertyValuesInitialInheritedNotes
grid-template-columns<track-list> | nonenoneNopx, fr, auto, minmax(), repeat()
grid-template-rows<track-list> | nonenoneNo✅ Same track sizing
grid-auto-columns<track-size>autoNo✅ Implicit column track size
grid-auto-rows<track-size>autoNo✅ Implicit row track size
grid-auto-flowrow | column | dense | row dense | column denserowNo✅ Row/column major auto-placement
grid-column-start<integer> | span <integer> | autoautoNo✅ Line-based placement
grid-column-end<integer> | span <integer> | autoautoNo
grid-row-start<integer> | span <integer> | autoautoNo
grid-row-end<integer> | span <integer> | autoautoNo
grid-column<start> / <end>auto / autoNo✅ Shorthand
grid-row<start> / <end>auto / autoNo✅ Shorthand
justify-itemsstart | center | end | stretchstretchNo✅ Inline-axis item alignment
justify-selfstart | center | end | stretchautoNo✅ Per-item inline-axis override
align-itemsstart | center | end | stretchstretchNo✅ Block-axis item alignment (grid uses same enum)
align-selfstart | center | end | stretchautoNo✅ Per-item block-axis override
justify-contentstart | center | end | stretch | space-between | space-around | space-evenlystartNo✅ Grid container inline-axis alignment
align-contentstart | center | end | stretch | space-between | space-around | space-evenlystartNo✅ Grid container block-axis alignment
gap<length> | <percentage>0No✅ Sets both row-gap and column-gap
row-gap<length> | <percentage>0No
column-gap<length> | <percentage>0No

Effects & Transforms

PropertyValuesInitialInheritedNotes
transform<string> (raw)noneNo❌ Parsed as raw string; never consumed
transform-origin<string> (raw)50% 50%No❌ Parsed as raw string; never consumed
transition<string> (raw)all 0s ease 0sNo❌ Parsed as raw string; never consumed
animation<string> (raw)noneNo❌ Parsed as raw string; never consumed
box-shadow<string> (raw)noneNo❌ Parsed as raw string; never consumed

Grid Track Size Units

wgpu-html supports the following track sizing types within grid-template-columns and grid-template-rows:

UnitDescriptionExample
px / <length>Fixed pixel/unit track200px
frFlex fraction of remaining space1fr, 2fr
autoIntrinsic (content-based) sizingauto
minmax(min, max)Clamped track rangeminmax(100px, 1fr)
repeat(count, track)Repeated track patternrepeat(3, 1fr), repeat(auto-fill, 200px)