Reference

Support matrix

Status values: Yes (mapped, covered by a test), Approx (mapped with a documented approximation and an info diagnostic), Ignored (accepted, no effect, info diagnostic), No (rejected with a warning). Anything not listed produces CSS007 or TW001.

YES · MAPPED + TESTEDAPPROX · DOCUMENTEDIGNORED · NO EFFECTNO · WARNING

Elements17 ROWS

div section main header footer nav aside article form fieldset figure ul ol li p h1-h6 dl dt dd details summary dialog blockquote pre table tr td thYESContainer (Vertical/Horizontal/Wrap/Grid/Scroll Box, Canvas, Overlay) or Text Block when text-only
span a b strong i em u s small code kbd sub sup mark abbr cite q time labelYESInline text run (flattened) or container when styled as a box
brYESLine break in text
button, role="button", input[type=button/submit]YESButton with label or content
imgYESImage (texture imported), object-cover/contain via Scale Box
progressYESProgress Bar
input[type=checkbox/radio]YESCheck Box
input[type=range]YESSlider
input (text, password, email, number, search, ...)YESEditable Text Box
textareaYESMulti-Line Editable Text Box
select / optionYESCombo Box (String)
hrYES1px Border line
svg (inline) and img src="*.svg"YES (MAP014 INFO)Rasterized to a UI texture at 2x: rect, circle, ellipse, line, polyline, polygon, path (all commands incl. arcs), g, use, symbol, transforms, fill rules, strokes (width, caps, joins, miter limit), opacity, linear and radial gradients, viewBox with preserveAspectRatio, currentColor. Not drawn (MAP023): text, image, filter, mask, clipPath, pattern, marker, dash arrays
video canvas iframe object embed audioAPPROX (MAP001)Container
scriptIGNORED (HTML010)
link rel=stylesheetYES (HTML013)Relative local files, loaded in document order with their @imports; remote URLs are not fetched (HTML011)
head title meta style template noscriptCONSUMED / SKIPPED

Attributes

id, class, style, hidden, disabled, checked, selected, readonly, placeholder, value, min, max, src, width/height on media, role, data-bind, data-event, data-widget, data-loc, data-value, data-checked.

CSS properties42 ROWS

display block / inline / inline-block / flex / inline-flex / grid / noneYEScontents, table* treated as block/inline-block
position static / relative / absolute / fixed / stickyYESabsolute and fixed anchor to nearest container
top right bottom left insetYESpx and percent
z-indexYESCanvas ZOrder
width height min-width min-height max-width max-heightYESpx via Size Box; percent via fill weight (MAP004) or anchors
padding*YESBorder padding / Button padding
margin*YESSlot padding; auto centres blocks
overflow overflow-x overflow-yYEShidden clips; scroll/auto becomes Scroll Box
aspect-ratioYESWith one px side the other follows (w-[200px] aspect-video gives 112.5px); without a px side MAP013
flex-direction flex-wrap justify-content align-items align-self flex-grow flex-shrink flex-basis flex flex-flow orderYESspace-* via Spacers
row-gap column-gap gapYES
grid-template-columns grid-template-rows (repeat(N, ...) or N tracks)YESequal columns
grid-column grid-row (span N, a / b)YES
align-content justify-items justify-self place-*IGNORED
background-color backgroundYES
background-image: url()YEStexture imported
gradients (linear-gradient, radial-gradient, Tailwind bg-gradient-to-*, bg-linear-*, bg-radial, from via to, from-N% to-N%)YESImage with the plugin's gradient material, matched against Chrome to 1/255: up to three stops with positions, premultiplied sRGB interpolation, angles and corner keywords (CSS corner rule), circle/ellipse with closest/farthest side/corner, rounded corners kept, covers the padding box. More stops: MAP005. Angles/circles need a resolvable px box size: MAP017
opacityYESRenderOpacity
border* (width, style, color, per side)YESuniform width, max of sides
border-radius (per corner)YESrounded box brush
box-shadowIGNORED (MAP006)
backdrop-filter: blur()YESnative Background Blur widget with the same radius
visibilityYESHidden
object-fitYESScale Box
colorYES
font-size (px, rem, em, %, keywords)YESx0.75 to Slate size
font-weightYEStypeface Bold at 600+, Light at 300-
font-styleYESItalic typeface
font-familyYESresolved to a font asset: @font-face files next to the HTML, then installed system fonts (Windows registry), imported as inline Font Face assets and a composite Font under <dest>/Fonts with faces by weight and slant (EMIT009); generic families and unknown families use the default asset (EMIT010); --font forces one asset
line-heightYESexact: computed from the imported font's hhea metrics the way Slate rounds them; unitless values inherit as a factor of each element's own font size
letter-spacingYES1/1000 em
text-alignYES
text-transform uppercase / lowercase / capitalizeYESuppercase and lowercase are text policies; capitalize is applied to the text at import (the String Table holds the title-cased string)
text-decoration underline / line-throughRECORDEDstrike supported by UMG, underline not
white-spaceYESnowrap disables wrapping
text-overflowYESellipsis
transform: translate(-50%, -50%), translateX(-50%), translateY(-50%) (percentages)YESCanvas slot alignment, same as -translate-x-1/2; combined with left:50%/top:50% this is the centring idiom. Px translations go to the render transform (next row)
transform: rotate() scale() translate(px)YESWidget render transform (MAP021). skew, matrix and perspective are skipped
transform-originYESRender transform pivot: keywords, percentages, px against the element's px size (MAP022 when it has none); Tailwind origin-*
border-top/right/bottom/left on some sides onlyYESDrawn as edge lines over the box (MAP020); equal borders on all four sides use the native outline
transition* animation* cursor user-select pointer-events filter backdrop-filter outline box-sizingIGNORED (CSS009)
custom properties --x, var()YESwith fallbacks

Selectors

Element, .class, #id, [attr], [attr=value], *, :root, descendant, child >, :hover :focus :active :disabled :focus-visible :focus-within :checked, selector lists. Not supported: +, ~, ::pseudo-elements, :not(), :nth-*, :first-child, nesting, attribute substring matchers.

At-rules

@layer, @supports, @scope (bodies parsed), @media screen/all (parsed), other @media (ignored, CSS002), @theme (tokens), @import (local files spliced in, CSS004 otherwise), @keyframes (ignored), @font-face (local file sources imported as font assets).

Tailwind utilities

Display, flex, grid, gap, space-x/y, padding, margin, sizing (w h size min max, fractions, full screen auto px, arbitrary), position (inset top right bottom left, z), overflow, visibility, aspect, grid-cols grid-rows col-span col-start col-end row-*, background colours with /opacity and arbitrary, bg-gradient-to-* bg-linear-* bg-radial from via to with from-N% via-N% to-N% (native gradient material), opacity, rounded* (all corners and sides, all sizes, arbitrary), border* (widths, sides, colours, styles), shadow* (recorded, ignored on brushes), text-{size} with /{leading}, text-{color}, text-{align}, font-{weight}, font-sans/serif/mono, italic, underline line-through no-underline, uppercase lowercase capitalize normal-case, truncate text-ellipsis text-clip text-nowrap, tracking-*, leading-*, whitespace-*, object-*. Variants: sm md lg xl 2xl against --viewport, hover focus active disabled group-hover, dark with --dark, ! important, - negative. origin-* (transform-origin), aspect-*. Everything behavioural (transition cursor ring outline animate transform scale rotate translate blur backdrop-* select-* pointer-events-* ...) is accepted and ignored (TW003). Unknown classes are reported (TW001).

Colours

#rgb #rgba #rrggbb #rrggbbaa, rgb() rgba() (comma and slash syntax), hsl() hsla(), oklch() oklab(), 148 named colours, transparent, currentColor, the full Tailwind palette (22 families x 11 shades) plus white black.