Skip to content

Coverage

Living checklist of what extract does today vs target behavior. Cases are enforced in crates/core/src/coverage.rs.

Run the matrix

bash
# JSON for playground UI
DRIFTCSS_COVERAGE_DUMP=1 cargo test -p driftcss-core coverage_dump -- --ignored --nocapture

cargo test -p driftcss-core coverage_matrix
# prints cases marked Gap — today none; limitations are shipped pass-through
cargo test -p driftcss-core coverage_known_gaps -- --nocapture

Legend

StatusMeaning
shippedIntended behavior; tests must pass
gapDocumented limitation

Outcomes

OutcomeMeaning
AtomizedSimple .class (+ :hover) → hashed atoms + mapping
Pass-throughIn output CSS; no JSX rewrite for that selector
DroppedRare; file a bug if rules disappear

Summary

CategoryShippedKnown gaps
selector.foo, :hover, ::before / ::after atomscombinators, compounds pass-through
nesting&:hover, &::before / &::after, NestedDeclarations, nested @media; & .child / &.active pass through the whole parentdescendant / combinator / &.active atoms
at_rule@import, @font-face, @keyframes; @scope pass-through; @media / @supports / @container atomize inner .class; @layer / @starting-style serialize the block onlyatoms inside @layer
declarationshorthands, custom props, property filters; whitespace / hex var() calc() hash-stabledeeper var() / calc() canonicalization

Full detail: COVERAGE.md on GitHub.