@@ -153,23 +153,28 @@ Yields:
153
153
154
154
## Support
155
155
156
- * [x] ` * ` (universal selector, namespaces not supported )
156
+ * [x] ` * ` (universal selector)
157
157
* [x] ` , ` (multiple selector)
158
158
* [x] ` p ` (type selector)
159
159
* [x] ` .class ` (class selector)
160
160
* [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)
161
165
* [x] ` [attr] ` (attribute existence)
162
166
* [x] ` [attr=value] ` (attribute equality)
163
167
* [x] ` [attr~=value] ` (attribute contains in space-separated list)
164
168
* [x] ` [attr|=value] ` (attribute equality or prefix)
165
169
* [x] ` [attr^=value] ` (attribute begins with)
166
170
* [x] ` [attr$=value] ` (attribute ends with)
167
171
* [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)
173
178
* [x] ` :any-link ` (pseudo-class)
174
179
* [x] ` :blank ` (pseudo-class)
175
180
* [x] ` :checked ` (pseudo-class)
@@ -182,47 +187,60 @@ Yields:
182
187
* [x] ` :required ` (pseudo-class)
183
188
* [x] ` :root ` (pseudo-class)
184
189
* [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)
189
190
* [x] \* ` :first-child ` (pseudo-class)
190
191
* [x] \* ` :first-of-type ` (pseudo-class)
191
192
* [x] \* ` :last-child ` (pseudo-class)
192
193
* [x] \* ` :last-of-type ` (pseudo-class)
193
194
* [x] \* ` :only-child ` (pseudo-class)
194
195
* [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)
199
200
200
201
## Unsupported
201
202
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)
204
210
* [ ] ‡ ` [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)
205
214
* [ ] † ` :active ` (pseudo-class)
206
215
* [ ] † ` :current ` (pseudo-class)
216
+ * [ ] † ` :current() ` (functional pseudo-class)
207
217
* [ ] † ` :default ` (pseudo-class)
208
218
* [ ] † ` :defined ` (pseudo-class)
209
- * [ ] † ` :fullscreen ` (pseudo-class)
219
+ * [ ] † ` :drop ` (pseudo-class)
220
+ * [ ] † ` :drop() ` (functional pseudo-class)
210
221
* [ ] † ` :focus ` (pseudo-class)
222
+ * [ ] † ` :focus-visible ` (pseudo-class)
223
+ * [ ] † ` :focus-within ` (pseudo-class)
224
+ * [ ] † ` :fullscreen ` (pseudo-class)
211
225
* [ ] † ` :future ` (pseudo-class)
212
- * [ ] § ` :has() ` (pseudo-class)
226
+ * [ ] ‖ ` :host() ` (functional pseudo-class)
227
+ * [ ] ‖ ` :host-context() ` (functional pseudo-class)
213
228
* [ ] † ` :hover ` (pseudo-class)
214
- * [ ] † ` :indeterminate ` (pseudo-class)
215
229
* [ ] § ` :in-range ` (pseudo-class)
230
+ * [ ] † ` :indeterminate ` (pseudo-class)
216
231
* [ ] § ` :invalid ` (pseudo-class)
217
232
* [ ] † ` :link ` (pseudo-class)
218
233
* [ ] † ` :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)
221
236
* [ ] § ` :out-of-range ` (pseudo-class)
222
237
* [ ] † ` :past ` (pseudo-class)
223
238
* [ ] † ` :paused ` (pseudo-class)
224
239
* [ ] † ` :placeholder-shown ` (pseudo-class)
225
240
* [ ] † ` :playing ` (pseudo-class)
241
+ * [ ] ‖ ` :something() ` (functional pseudo-class)
242
+ * [ ] † ` :target ` (pseudo-class)
243
+ * [ ] † ` :target-within ` (pseudo-class)
226
244
* [ ] † ` :user-error ` (pseudo-class)
227
245
* [ ] † ` :user-invalid ` (pseudo-class)
228
246
* [ ] § ` :valid ` (pseudo-class)
@@ -235,6 +253,7 @@ Yields:
235
253
* † — Needs a user, browser, interactivity, or scripting to make sense
236
254
* ‡ — Not supported by the underlying algorithm
237
255
* § — Not very interested in writing / including the code for this
256
+ * ‖ — Too new, the spec is still changing
238
257
239
258
## Contribute
240
259
0 commit comments