Skip to content

Commit 368aecd

Browse files
committed
Add support for element display state pseudo classes
Fixes parcel-bundler#496
1 parent b20cc5f commit 368aecd

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

src/selector.rs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,15 @@ impl<'a, 'o, 'i> parcel_selectors::parser::Parser<'i> for SelectorParser<'a, 'o,
108108
"-moz-full-screen" => Fullscreen(VendorPrefix::Moz),
109109
"-ms-fullscreen" => Fullscreen(VendorPrefix::Ms),
110110

111+
// https://drafts.csswg.org/selectors/#display-state-pseudos
112+
"open" => Open,
113+
"closed" => Closed,
114+
"modal" => Modal,
115+
"picture-in-picture" => PictureInPicture,
116+
117+
// https://html.spec.whatwg.org/multipage/semantics-other.html#selector-popover-open
118+
"popover-open" => PopoverOpen,
119+
111120
// https://drafts.csswg.org/selectors-4/#the-defined-pseudo
112121
"defined" => Defined,
113122

@@ -399,6 +408,20 @@ pub enum PseudoClass<'i> {
399408
#[cfg_attr(feature = "serde", serde(with = "PrefixWrapper"))]
400409
Fullscreen(VendorPrefix),
401410

411+
// https://drafts.csswg.org/selectors/#display-state-pseudos
412+
/// The [:open](https://drafts.csswg.org/selectors/#selectordef-open) pseudo class.
413+
Open,
414+
/// The [:closed](https://drafts.csswg.org/selectors/#selectordef-closed) pseudo class.
415+
Closed,
416+
/// The [:modal](https://drafts.csswg.org/selectors/#modal-state) pseudo class.
417+
Modal,
418+
/// The [:picture-in-picture](https://drafts.csswg.org/selectors/#pip-state) pseudo class.
419+
PictureInPicture,
420+
421+
// https://html.spec.whatwg.org/multipage/semantics-other.html#selector-popover-open
422+
/// The [:popover-open](https://html.spec.whatwg.org/multipage/semantics-other.html#selector-popover-open) pseudo class.
423+
PopoverOpen,
424+
402425
/// The [:defined](https://drafts.csswg.org/selectors-4/#the-defined-pseudo) pseudo class.
403426
Defined,
404427

@@ -670,6 +693,15 @@ where
670693
}
671694
}
672695

696+
// https://drafts.csswg.org/selectors/#display-state-pseudos
697+
Open => dest.write_str(":open"),
698+
Closed => dest.write_str(":closed"),
699+
Modal => dest.write_str(":modal"),
700+
PictureInPicture => dest.write_str(":picture-in-picture"),
701+
702+
// https://html.spec.whatwg.org/multipage/semantics-other.html#selector-popover-open
703+
PopoverOpen => dest.write_str(":popover-open"),
704+
673705
// https://drafts.csswg.org/selectors-4/#the-defined-pseudo
674706
Defined => dest.write_str(":defined"),
675707

0 commit comments

Comments
 (0)