Skip to content

Commit 1efd756

Browse files
committed
add visible pseudoclass
1 parent 29671ac commit 1efd756

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

src/browser/css/parser.zig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,7 @@ pub const Parser = struct {
582582
.only_of_type => return .{ .pseudo_class_only_child = true },
583583
.input, .empty, .root, .link => return .{ .pseudo_class = pseudo_class },
584584
.enabled, .disabled, .checked => return .{ .pseudo_class = pseudo_class },
585+
.visible => return .{ .pseudo_class = pseudo_class },
585586
.lang => {
586587
if (!p.consumeParenthesis()) return ParseError.ExpectedParenthesis;
587588
if (p.i == p.s.len) return ParseError.UnmatchParenthesis;

src/browser/css/selector.zig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@ pub const PseudoClass = enum {
100100
spelling_error,
101101
modal,
102102
popover_open,
103+
visible,
103104

104105
pub const Error = error{
105106
InvalidPseudoClass,
@@ -157,6 +158,7 @@ pub const PseudoClass = enum {
157158
asUint(u56, "enabled") => return .enabled,
158159
asUint(u56, "matches") => return .matches,
159160
asUint(u56, "visited") => return .visited,
161+
asUint(u56, "visible") => return .visible,
160162
else => {},
161163
},
162164
8 => switch (@as(u64, @bitCast(selector[0..8].*))) {
@@ -567,6 +569,8 @@ pub const Selector = union(enum) {
567569
// TODO implement using the url fragment.
568570
// see https://developer.mozilla.org/en-US/docs/Web/CSS/:target
569571
.target => return false,
572+
// visible always returns true.
573+
.visible => return true,
570574

571575
// all others pseudo class are handled by specialized
572576
// pseudo_class_X selectors.

0 commit comments

Comments
 (0)