render: real-world CSS rendering parity

Colors: oklch()/oklab() and color-mix(); linear-gradient backgrounds.
Grid: named-line placement, repeat() expansion, drop whitespace-only
grid items; upgrade taffy 0.7 -> 0.12 so aspect-ratio images in
auto-height rows no longer collapse to slivers.
CSS: @layer, nesting, @property, :is()/:where(), clamp(), @media not all;
source/track/param/area and svg desc/metadata as display:none.
Images: webp + intrinsic sizing, srcset/picture, browser UA + Accept for
CDN fetches, grey placeholder on failure; width/height HTML attributes
rank below author CSS with aspect-ratio preserved for auto axes.
This commit is contained in:
SGavrl committed 2026-07-11 19:52:36 +00:00
1 parent 88313178b2
commit 2652ee64a4
17 files changed
+4482 -368

No files matched your search

+11
View File
@@ -187,6 +187,17 @@ impl<'i> parser::Parser<'i> for ObscuraSelectorParser {
true
}
// Allow `:is()` and `:where()`. The selectors crate gates these on this hook
// (default false), so without it every `:where(...)`/`:is(...)` selector
// failed to parse and was dropped, discarding those rules from both the
// render cascade and querySelectorAll. Tailwind's preflight and most modern
// resets wrap their rules in `:where(...)` for zero specificity, so this
// blanked large parts of many sites. Matching (Component::Is/Where) is built
// into the crate, so enabling parsing is sufficient.
fn parse_is_and_where(&self) -> bool {
true
}
fn parse_non_ts_pseudo_class(
&self,
_location: cssparser::SourceLocation,