CSS Feature Support Checker
Test CSS feature support on any browser - smart TVs, embedded devices, and non-standard environments.
Layout & Sizing
Modern layout systems, sizing functions, and spatial control for responsive interfaces.
- ⏳ aspect-ratio
Define width-to-height ratio for elements.
aspect-ratio: 16 / 9MDN - ⏳ CSS Grid
Two-dimensional layout systems with named areas and tracks.
display: gridMDN - ⏳ Flexbox
One-dimensional flexible box layout system.
display: flexMDN - ⏳ 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 - ⏳ Container Queries
Style children based on ancestor container dimensions rather than the viewport.
container-type: inline-sizeMDN - ⏳ 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 - ⏳ 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 - ⏳ 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.
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