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.
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-onlyspan 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 boxbrYESLine break in textbutton, role="button", input[type=button/submit]YESButton with label or contentimgYESImage (texture imported), object-cover/contain via Scale BoxprogressYESProgress Barinput[type=checkbox/radio]YESCheck Boxinput[type=range]YESSliderinput (text, password, email, number, search, ...)YESEditable Text BoxtextareaYESMulti-Line Editable Text Boxselect / optionYESCombo Box (String)hrYES1px Border linesvg (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 arraysvideo canvas iframe object embed audioAPPROX (MAP001)ContainerscriptIGNORED (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 / SKIPPEDAttributes
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-blockposition static / relative / absolute / fixed / stickyYESabsolute and fixed anchor to nearest containertop right bottom left insetYESpx and percentz-indexYESCanvas ZOrderwidth height min-width min-height max-width max-heightYESpx via Size Box; percent via fill weight (MAP004) or anchorspadding*YESBorder padding / Button paddingmargin*YESSlot padding; auto centres blocksoverflow overflow-x overflow-yYEShidden clips; scroll/auto becomes Scroll Boxaspect-ratioYESWith one px side the other follows (w-[200px] aspect-video gives 112.5px); without a px side MAP013flex-direction flex-wrap justify-content align-items align-self flex-grow flex-shrink flex-basis flex flex-flow orderYESspace-* via Spacersrow-gap column-gap gapYESgrid-template-columns grid-template-rows (repeat(N, ...) or N tracks)YESequal columnsgrid-column grid-row (span N, a / b)YESalign-content justify-items justify-self place-*IGNOREDbackground-color backgroundYESbackground-image: url()YEStexture importedlinear-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: MAP017opacityYESRenderOpacityborder* (width, style, color, per side)YESuniform width, max of sidesborder-radius (per corner)YESrounded box brushbox-shadowIGNORED (MAP006)backdrop-filter: blur()YESnative Background Blur widget with the same radiusvisibilityYESHiddenobject-fitYESScale BoxcolorYESfont-size (px, rem, em, %, keywords)YESx0.75 to Slate sizefont-weightYEStypeface Bold at 600+, Light at 300-font-styleYESItalic typefacefont-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 assetline-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 sizeletter-spacingYES1/1000 emtext-alignYEStext-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 notwhite-spaceYESnowrap disables wrappingtext-overflowYESellipsistransform: 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 skippedtransform-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 outlinetransition* animation* cursor user-select pointer-events filter backdrop-filter outline box-sizingIGNORED (CSS009)--x, var()YESwith fallbacksSelectors
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.