foo:after {
foo::first-letter {
foo:nth-child(2n+1) {
foo.bar {
foo#bar {
#foo > .bar:not(baz):after {
div[foo="bar"] {
----------------------------------------------------
[
["selector", [
"foo",
["pseudo-element", ":after"]
]], ["punctuation", "{"],
["selector", [
"foo",
["pseudo-element", "::first-letter"]
]], ["punctuation", "{"],
["selector", [
"foo",
["pseudo-class", ":nth-child(2n+1)"]
]], ["punctuation", "{"],
["selector", [
"foo",
["class", ".bar"]
]], ["punctuation", "{"],
["selector", [
"foo",
["id", "#bar"]
]], ["punctuation", "{"],
["selector", [
["id", "#foo"],
" > ",
["class", ".bar"],
["pseudo-class", ":not(baz)"],
["pseudo-element", ":after"]
]], ["punctuation", "{"],
["selector", [
"div",
["attribute", "[foo=\"bar\"]"]
]], ["punctuation", "{"]
]
----------------------------------------------------
Checks for pseudo-elements, pseudo-classes, classes and ids inside selectors.