@@ -153,23 +153,28 @@ Yields:
153153
154154## Support
155155
156- * [x] ` * ` (universal selector, namespaces not supported )
156+ * [x] ` * ` (universal selector)
157157* [x] ` , ` (multiple selector)
158158* [x] ` p ` (type selector)
159159* [x] ` .class ` (class selector)
160160* [x] ` #id ` (id selector)
161+ * [x] ` article p ` (combinator: descendant selector)
162+ * [x] ` article > p ` (combinator: child selector)
163+ * [x] ` h1 + p ` (combinator: adjacent sibling selector)
164+ * [x] ` h1 ~ p ` (combinator: general sibling selector)
161165* [x] ` [attr] ` (attribute existence)
162166* [x] ` [attr=value] ` (attribute equality)
163167* [x] ` [attr~=value] ` (attribute contains in space-separated list)
164168* [x] ` [attr|=value] ` (attribute equality or prefix)
165169* [x] ` [attr^=value] ` (attribute begins with)
166170* [x] ` [attr$=value] ` (attribute ends with)
167171* [x] ` [attr*=value] ` (attribute contains)
168- * [x] ` :any() ` (pseudo-class, use ` :matches ` instead)
169- * [x] ` :dir() ` (pseudo-class)
170- * [x] ` :lang() ` (pseudo-class)
171- * [x] ` :matches() ` (pseudo-class)
172- * [x] ` :not() ` (pseudo-class)
172+ * [x] ` :any() ` (functional pseudo-class, use ` :matches ` instead)
173+ * [x] ` :dir() ` (functional pseudo-class)
174+ * [x] ` :has() ` (functional pseudo-class)
175+ * [x] ` :lang() ` (functional pseudo-class)
176+ * [x] ` :matches() ` (functional pseudo-class)
177+ * [x] ` :not() ` (functional pseudo-class)
173178* [x] ` :any-link ` (pseudo-class)
174179* [x] ` :blank ` (pseudo-class)
175180* [x] ` :checked ` (pseudo-class)
@@ -182,47 +187,60 @@ Yields:
182187* [x] ` :required ` (pseudo-class)
183188* [x] ` :root ` (pseudo-class)
184189* [x] ` :scope ` (pseudo-class):
185- * [x] ` article p ` (combinator: descendant selector)
186- * [x] ` article > p ` (combinator: child selector)
187- * [x] ` h1 + p ` (combinator: adjacent sibling selector)
188- * [x] ` h1 ~ p ` (combinator: general sibling selector)
189190* [x] \* ` :first-child ` (pseudo-class)
190191* [x] \* ` :first-of-type ` (pseudo-class)
191192* [x] \* ` :last-child ` (pseudo-class)
192193* [x] \* ` :last-of-type ` (pseudo-class)
193194* [x] \* ` :only-child ` (pseudo-class)
194195* [x] \* ` :only-of-type ` (pseudo-class)
195- * [x] \* ` :nth-child() ` (pseudo-class)
196- * [x] \* ` :nth-last-child() ` (pseudo-class)
197- * [x] \* ` :nth-last-of-type() ` (pseudo-class)
198- * [x] \* ` :nth-of-type() ` (pseudo-class)
196+ * [x] \* ` :nth-child() ` (functional pseudo-class)
197+ * [x] \* ` :nth-last-child() ` (functional pseudo-class)
198+ * [x] \* ` :nth-last-of-type() ` (functional pseudo-class)
199+ * [x] \* ` :nth-of-type() ` (functional pseudo-class)
199200
200201## Unsupported
201202
202- * [ ] ` >> ` (explicit descendant combinator)
203- * [ ] ` || ` (column combinator)
203+ * [ ] † ` || ` (column combinator)
204+ * [ ] ‡ ` ns|E ` (namespace type selector)
205+ * [ ] ‡ ` *|E ` (any namespace type selector)
206+ * [ ] ‡ ` |E ` (no namespace type selector)
207+ * [ ] ‡ ` [ns|attr] ` (namespace attribute)
208+ * [ ] ‡ ` [*|attr] ` (any namespace attribute)
209+ * [ ] ‡ ` [|attr] ` (no namespace attribute)
204210* [ ] ‡ ` [attr=value i] ` (attribute case-insensitive)
211+ * [ ] ‡ ` :has() ` (functional pseudo class)
212+ * [ ] ‖ ` :nth-child(n of S) ` (scoped to parent S)
213+ * [ ] ‖ ` :nth-last-child(n of S) ` (scoped to parent S)
205214* [ ] † ` :active ` (pseudo-class)
206215* [ ] † ` :current ` (pseudo-class)
216+ * [ ] † ` :current() ` (functional pseudo-class)
207217* [ ] † ` :default ` (pseudo-class)
208218* [ ] † ` :defined ` (pseudo-class)
209- * [ ] † ` :fullscreen ` (pseudo-class)
219+ * [ ] † ` :drop ` (pseudo-class)
220+ * [ ] † ` :drop() ` (functional pseudo-class)
210221* [ ] † ` :focus ` (pseudo-class)
222+ * [ ] † ` :focus-visible ` (pseudo-class)
223+ * [ ] † ` :focus-within ` (pseudo-class)
224+ * [ ] † ` :fullscreen ` (pseudo-class)
211225* [ ] † ` :future ` (pseudo-class)
212- * [ ] § ` :has() ` (pseudo-class)
226+ * [ ] ‖ ` :host() ` (functional pseudo-class)
227+ * [ ] ‖ ` :host-context() ` (functional pseudo-class)
213228* [ ] † ` :hover ` (pseudo-class)
214- * [ ] † ` :indeterminate ` (pseudo-class)
215229* [ ] § ` :in-range ` (pseudo-class)
230+ * [ ] † ` :indeterminate ` (pseudo-class)
216231* [ ] § ` :invalid ` (pseudo-class)
217232* [ ] † ` :link ` (pseudo-class)
218233* [ ] † ` :local-link ` (pseudo-class)
219- * [ ] † ` nth-column() ` (pseudo-class)
220- * [ ] † ` nth-last-column() ` (pseudo-class)
234+ * [ ] † ` : nth-column()` (functional pseudo-class)
235+ * [ ] † ` : nth-last-column()` (functional pseudo-class)
221236* [ ] § ` :out-of-range ` (pseudo-class)
222237* [ ] † ` :past ` (pseudo-class)
223238* [ ] † ` :paused ` (pseudo-class)
224239* [ ] † ` :placeholder-shown ` (pseudo-class)
225240* [ ] † ` :playing ` (pseudo-class)
241+ * [ ] ‖ ` :something() ` (functional pseudo-class)
242+ * [ ] † ` :target ` (pseudo-class)
243+ * [ ] † ` :target-within ` (pseudo-class)
226244* [ ] † ` :user-error ` (pseudo-class)
227245* [ ] † ` :user-invalid ` (pseudo-class)
228246* [ ] § ` :valid ` (pseudo-class)
@@ -235,6 +253,7 @@ Yields:
235253* † — Needs a user, browser, interactivity, or scripting to make sense
236254* ‡ — Not supported by the underlying algorithm
237255* § — Not very interested in writing / including the code for this
256+ * ‖ — Too new, the spec is still changing
238257
239258## Contribute
240259
0 commit comments