CSS Feature Support Checker

Test CSS feature support on any browser - smart TVs, embedded devices, and non-standard environments.

Layout

Modern layout systems and alignment primitives for responsive interfaces.

  • CSS Grid

    Two-dimensional layout systems with named areas and tracks.

    display: gridMDN
  • grid-template-areas

    Name Grid areas and place items using area mapping.

    grid-template-areas: "a a" "b b"MDN
  • grid-auto-flow: dense

    Allow Grid auto-placement to backfill gaps in earlier rows/columns.

    grid-auto-flow: row denseMDN
  • place-items / place-content / place-self

    Alignment shorthands for aligning items and content in Grid/Flex.

    place-items: centerMDN
  • place-content

    Shorthand for aligning Grid/Flex lines in the container.

    place-content: centerMDN
  • place-self

    Shorthand for aligning a single Grid/Flex item.

    place-self: centerMDN
  • justify-items

    Control inline-axis alignment of items inside a grid container.

    justify-items: centerMDN
  • justify-self

    Control inline-axis alignment for a single grid item.

    justify-self: centerMDN
  • repeat()

    Repeat Grid tracks without duplicating template definitions.

    grid-template-columns: repeat(3, 1fr)MDN
  • grid-template (shorthand)

    Define rows and columns in a single Grid shorthand.

    grid-template: auto / 1fr 2frMDN
  • grid-row / grid-column

    Place Grid items using line-based placement shorthands.

    grid-column: 1 / -1MDN
  • grid-area

    Place Grid items with the grid-area shorthand (lines or named areas).

    grid-area: 1 / 1 / 2 / 3MDN
  • span placement

    Span grid items across tracks using the span keyword.

    grid-column: span 2MDN
  • grid-auto-rows / grid-auto-columns

    Size implicit Grid tracks created by auto-placement.

    grid-auto-rows: minmax(80px, auto)MDN
  • Flexbox

    One-dimensional flexible box layout system.

    display: flexMDN
  • inline-flex

    Create a flex container that participates in inline flow.

    display: inline-flexMDN
  • flex-wrap

    Allow flex items to wrap onto multiple lines.

    flex-wrap: wrapMDN
  • align-items: baseline

    Align items by their typographic baselines.

    align-items: baselineMDN
  • align-self

    Override align-items alignment for a single flex/grid item.

    align-self: centerMDN
  • flex-direction

    Control the main axis direction for flex layout.

    flex-direction: columnMDN
  • flex-flow (shorthand)

    Shorthand for flex-direction and flex-wrap.

    flex-flow: row wrapMDN
  • flex (shorthand)

    Shorthand for flex-grow, flex-shrink, and flex-basis.

    flex: 1 1 autoMDN
  • order

    Reorder flex items independent of source order.

    order: 1MDN
  • flex-basis: content

    Size flex items based on their intrinsic content size.

    flex-basis: contentMDN
  • justify-content: space-evenly

    Distribute free space evenly between and around items.

    justify-content: space-evenlyMDN
  • Subgrid

    Grandchild elements that align to the tracks of a parent grid.

    grid-template-columns: subgridMDN
  • gap

    Spacing between Grid and Flexbox items.

    gap: 1remMDN
  • row-gap / column-gap

    Axis-specific gaps for multi-row/column layouts.

    row-gap: 1remMDN
  • Container Queries

    Style children based on ancestor container dimensions rather than the viewport.

    container-type: inline-sizeMDN
  • minmax()

    Define size range for Grid tracks.

    grid-template-columns: minmax(100px, 1fr)MDN
  • auto-fit / auto-fill

    Automatically adjust Grid columns to available space.

    grid-template-columns: repeat(auto-fit, minmax(100px, 1fr))MDN
  • Masonry (draft)

    Masonry-style grid track sizing (experimental / draft support).

    grid-template-rows: masonryMDN

Sizing & Intrinsics

Sizing primitives, intrinsic sizing behavior, and replaced element fitting.

  • aspect-ratio

    Define width-to-height ratio for elements.

    aspect-ratio: 16 / 9MDN
  • object-fit

    Control how replaced elements resize within containers.

    object-fit: coverMDN
  • object-position

    Position replaced content within element box.

    object-position: center topMDN
  • object-view-box

    Define viewport region for replaced elements.

    object-view-box: inset(0)MDN
  • clamp()

    Clamp values between minimum and maximum.

    width: clamp(10px, 50%, 100px)MDN
  • fit-content()

    Clamp a size to the available space while respecting intrinsic sizing.

    width: fit-content(200px)MDN
  • min-content / max-content

    Use intrinsic sizing keywords for shrink-to-fit and content-based sizing.

    width: min-contentMDN
  • block-size / inline-size

    Logical sizing properties for flow-relative dimensions.

    block-size: 100pxMDN
  • max-block-size / min-block-size

    Logical constraints for block dimensions.

    max-block-size: 500pxMDN
  • max-inline-size / min-inline-size

    Logical constraints for inline dimensions.

    max-inline-size: 80chMDN
  • field-sizing

    Control form field intrinsic sizing behavior.

    field-sizing: contentMDN

Logical Properties

Flow-relative properties that adapt to writing modes and text direction.

  • margin-inline

    Logical inline margins that adapt to writing mode.

    margin-inline: 1remMDN
  • margin-block

    Logical block margins that adapt to writing mode.

    margin-block: 1remMDN
  • padding-inline

    Logical inline padding that adapts to writing mode.

    padding-inline: 1remMDN
  • padding-block

    Logical block padding that adapts to writing mode.

    padding-block: 1remMDN
  • border-inline

    Logical inline borders that adapt to writing mode.

    border-inline: 1px solidMDN
  • border-block

    Logical block borders that adapt to writing mode.

    border-block: 1px solidMDN
  • inset

    Shorthand for top, right, bottom, left positioning.

    inset: 0MDN
  • inset-inline

    Logical inline positioning offsets.

    inset-inline: 0MDN
  • inset-block

    Logical block positioning offsets.

    inset-block: 0MDN
  • border-start-start-radius

    Logical border radius properties for corners.

    border-start-start-radius: 8pxMDN

Color & Effects

Modern color spaces and compositing tricks verified on-device.

  • accent-color

    Customize color of form controls.

    accent-color: blueMDN
  • Display-P3 Color

    Wide gamut color for high-end HDR panels.

    color: color(display-p3 1 0.5 0.3)MDN
  • LCH Color

    Device-independent color space with perceptual uniformity.

    color: lch(50% 100 180)MDN
  • LAB Color

    Perceptually uniform color space covering all visible colors.

    color: lab(50% 40 -20)MDN
  • OKLCH / OKLab

    Perceptually uniform colors for accessible UI contrast.

    color: oklch(70% 0.1 230)MDN
  • HWB Color

    Hue-Whiteness-Blackness color notation.

    color: hwb(180 10% 20%)MDN
  • color-mix()

    Blend colors with declarative compositing math.

    background: color-mix(in srgb, red 60%, blue)MDN
  • Relative Color Syntax

    Derive colors from existing color values.

    color: rgb(from blue r g b / 50%)MDN
  • light-dark()

    Choose colors based on color scheme automatically.

    color: light-dark(black, white)MDN
  • Color Interpolation

    Control color space for gradients and animations.

    background: linear-gradient(in oklch, red, blue)MDN

Visual Effects

Filters, blending modes, masks, and other visual effects for modern UIs.

  • backdrop-filter

    Apply filters to the area behind an element.

    backdrop-filter: blur(10px)MDN
  • filter

    Apply graphical effects like blur and color manipulation.

    filter: grayscale(50%)MDN
  • mix-blend-mode

    Control how element content blends with background.

    mix-blend-mode: multiplyMDN
  • background-blend-mode

    Blend multiple background layers together.

    background-blend-mode: overlayMDN
  • clip-path

    Create complex shapes by clipping elements.

    clip-path: circle(50%)MDN
  • mask-image

    Use images as masks to control element visibility.

    mask-image: linear-gradient(black, transparent)MDN

Text & Typography

Font technologies that keep brand systems consistent on embedded browsers

  • Variable Fonts

    Fine-grained axis control via font-variation-settings.

    font-variation-settings: "wght" 500MDN
  • initial-letter

    Create drop caps without complex positioning.

    initial-letter: 3MDN
  • font-palette

    Select predefined color palettes from color fonts.

    font-palette: normalMDN
  • text-box-trim

    Trim font ascent/descent to tighten vertical rhythm.

    text-box-trim: trim-bothMDN
  • text-box-edge

    Control which font metrics are used for text box edges.

    text-box-edge: cap alphabeticMDN
  • text-wrap: balance

    Automatically balance text across lines for better readability.

    text-wrap: balanceMDN
  • text-wrap: pretty

    Avoid orphans and improve text appearance in paragraphs.

    text-wrap: prettyMDN
  • text-wrap: stable

    Minimize reflow during editing by stabilizing line breaks.

    text-wrap: stableMDN
  • white-space-collapse

    Control how white space is collapsed in text.

    white-space-collapse: preserveMDN
  • text-wrap-mode

    Control whether text wraps at soft wrap opportunities.

    text-wrap-mode: wrapMDN

Motion & Timeline

Scroll-driven and timeline controlled UI animation primitives.

  • Scroll-Linked Animations

    Synchronize animation progress to scroll offsets.

    animation-timeline: scroll()MDN
  • View Timelines

    Trigger effects as elements intersect a scrollport.

    view-timeline-name: noneMDN
  • animation-range

    Control animation progress range along timeline.

    animation-range: entry 0% exit 100%MDN
  • High-Frame Animations

    Ensure browsers can address 120Hz+ animation-timing-function.

    animation-timing-function: linear(0, 0.3, 1)MDN
  • View Transitions

    Smooth page and state transitions with native browser support.

    view-transition-name: mainMDN
  • Individual Transform Properties

    Animate translate, rotate, scale independently in keyframes.

    translate: 50px 100pxMDN
  • interpolate-size

    Enable smooth animations to auto height/width values.

    interpolate-size: allow-keywordsMDN

Scrolling & Overflow

Advanced scroll behavior, snap points, and overflow control for smooth scrolling experiences.

  • scroll-snap-type

    Define scroll snapping behavior for containers.

    scroll-snap-type: y mandatoryMDN
  • scroll-snap-align

    Control alignment of snap positions.

    scroll-snap-align: startMDN
  • scroll-snap-stop

    Force scroll container to stop at snap points.

    scroll-snap-stop: alwaysMDN
  • scroll-behavior

    Enable smooth scrolling animations.

    scroll-behavior: smoothMDN
  • scroll-margin

    Define scroll snap area margins.

    scroll-margin: 1remMDN
  • scroll-padding

    Define scroll container padding for snap positioning.

    scroll-padding: 1remMDN
  • overscroll-behavior

    Control scroll chaining and bounce effects.

    overscroll-behavior: containMDN
  • scrollbar-color

    Customize scrollbar colors.

    scrollbar-color: red blueMDN
  • scrollbar-width

    Control scrollbar width or hide scrollbars.

    scrollbar-width: thinMDN
  • scrollbar-gutter

    Reserve space for scrollbars to prevent layout shifts.

    scrollbar-gutter: stableMDN
  • overflow-clip-margin

    Extend clipping bounds beyond content box.

    overflow-clip-margin: 10pxMDN

Positioning & Anchoring

Advanced positioning techniques including anchor positioning and motion paths.

  • position-anchor

    Reference an anchor element for positioning.

    position-anchor: --my-anchorMDN
  • position-area

    Define position relative to anchor element areas.

    position-area: topMDN
  • position-try-fallbacks

    Specify fallback positions when primary position fails.

    position-try-fallbacks: --bottomMDN
  • offset-path

    Define motion path for element positioning.

    offset-path: path('M 0 0 L 100 100')MDN
  • offset-distance

    Control position along motion path.

    offset-distance: 50%MDN
  • offset-rotate

    Control rotation along motion path.

    offset-rotate: autoMDN

Selectors & Scoping

Modern selector capabilities for precise element targeting and style isolation.

  • :has() Pseudo-Class

    Select parent elements based on children state (parent selector).

    selector(:has(> img))MDN
  • :is() Pseudo-Class

    Match multiple selectors with forgiving syntax.

    selector(:is(h1, h2, h3))MDN
  • :where() Pseudo-Class

    Like :is() but with zero specificity for easier overrides.

    selector(:where(h1, h2))MDN
  • :focus-visible

    Style focus only when keyboard navigation is detected.

    selector(:focus-visible)MDN
  • :focus-within

    Style elements when they or descendants have focus.

    selector(:focus-within)MDN
  • CSS Nesting

    Nest selectors without preprocessors for better readability.

    selector(& .nested)MDN

Custom Properties

CSS custom properties (variables) and functions for dynamic styling.

  • CSS Custom Properties (Variables)

    Define and use custom CSS variables with -- prefix.

    --custom: redMDN
  • var()

    Reference custom properties using the var() function.

    color: var(--custom)MDN

Responsive & Viewport

Modern units and techniques for responsive design across all screen sizes.

  • Viewport Units (vh, vw)

    Classic viewport units for responsive layouts.

    height: 100vhMDN
  • Dynamic Viewport Units (dvh, dvw)

    Dynamic units that account for mobile browser chrome visibility.

    height: 100dvhMDN
  • Small Viewport Units (svh, svw)

    Viewport units using smallest possible viewport size.

    height: 100svhMDN
  • Large Viewport Units (lvh, lvw)

    Viewport units using largest possible viewport size.

    height: 100lvhMDN
  • Dynamic Inline/Block Units (dvi, dvb)

    Dynamic viewport units for inline and block dimensions.

    width: 100dviMDN
  • Viewport Min/Max (dvmin, dvmax)

    Dynamic viewport minimum and maximum dimension units.

    width: 50dvminMDN
  • Container Query Width (cqw)

    Container query unit relative to container width.

    width: 50cqwMDN
  • Container Query Height (cqh)

    Container query unit relative to container height.

    height: 50cqhMDN
  • Container Inline/Block (cqi, cqb)

    Container query units for inline and block dimensions.

    width: 50cqiMDN
  • Container Min/Max (cqmin, cqmax)

    Container query minimum and maximum dimension units.

    width: 50cqminMDN
  • Safe Area Insets (env())

    Use env(safe-area-inset-*) to account for notches and system UI on devices.

    padding: env(safe-area-inset-top)MDN

Miscellaneous

Additional modern CSS features including math functions, media queries, and utility properties.

  • content-visibility

    Defer rendering of off-screen content for performance.

    content-visibility: autoMDN
  • contain-intrinsic-size

    Set placeholder size for content-visibility elements.

    contain-intrinsic-size: 500pxMDN
  • zoom

    Scale element and its contents.

    zoom: 1.5MDN
  • resize

    Enable user resizing of elements with logical values.

    resize: blockMDN
  • text-decoration-thickness

    Control thickness of text decorations.

    text-decoration-thickness: 2pxMDN
  • text-underline-offset

    Control distance of underline from text.

    text-underline-offset: 3pxMDN
  • round()

    Round numeric values using different strategies.

    width: round(nearest, 15.6px, 1px)MDN
  • mod()

    Calculate modulo of two numbers.

    width: mod(18px, 5px)MDN
  • rem()

    Calculate remainder of division.

    width: rem(18px, 5px)MDN
  • hypot()

    Calculate hypotenuse using Pythagorean theorem.

    width: hypot(3px, 4px)MDN
  • sin(), cos(), tan()

    Trigonometric functions for advanced calculations.

    width: calc(100px * sin(45deg))MDN
  • abs(), sign()

    Absolute value and sign mathematical functions.

    width: abs(-10px)MDN
  • pointer: coarse

    Detect coarse pointers such as touch input.

    @media (pointer: coarse)MDN
  • hover: none

    Detect environments where hover interactions are not available.

    @media (hover: none)MDN
  • prefers-reduced-motion

    Detect user preference for reduced motion.

    @media (prefers-reduced-motion: reduce)MDN
  • prefers-color-scheme

    Detect user's color scheme preference (light/dark).

    @media (prefers-color-scheme: dark)MDN
  • prefers-contrast

    Detect user preference for contrast levels.

    @media (prefers-contrast: more)MDN
  • prefers-reduced-transparency

    Detect user preference for reduced transparency.

    @media (prefers-reduced-transparency: reduce)MDN