From 8d6273950342e9e29429c4e240b8944fb19a79a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Arrufat?= Date: Thu, 24 Sep 2026 09:24:28 +0200 Subject: [PATCH 1/3] Split the style cascade into property groups Each group owns its rule buckets, its memo and its cascade priorities, so a rule only joins the groups it declares something in. Visibility keeps display, visibility, opacity and pointer-events; overflow and overscroll-behavior move to a geometry group. A visibility probe no longer matches overflow-only rules, and its memo entry shrinks to 6 bits. --- src/browser/StyleManager.zig | 756 ++++++++++++++++++++--------------- 1 file changed, 430 insertions(+), 326 deletions(-) diff --git a/src/browser/StyleManager.zig b/src/browser/StyleManager.zig index a5ed6f4e7..89fde0034 100644 --- a/src/browser/StyleManager.zig +++ b/src/browser/StyleManager.zig @@ -41,26 +41,19 @@ const Allocator = std.mem.Allocator; // Tracks the CSS properties the renderless layout acts on (display, visibility, // opacity, pointer-events, overflow) from