test_variant_extraction() — tailwindcss Function Reference
Architecture documentation for the test_variant_extraction() function in variant_machine.rs from the tailwindcss codebase.
Entity Profile
Dependency Diagram
graph TD 67351e4e_3eb9_d14b_51db_22074456445c["test_variant_extraction()"] 65f88ee5_a242_be7c_fc9b_70da07dd6b00["variant_machine.rs"] 67351e4e_3eb9_d14b_51db_22074456445c -->|defined in| 65f88ee5_a242_be7c_fc9b_70da07dd6b00 style 67351e4e_3eb9_d14b_51db_22074456445c fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
crates/oxide/src/extractor/variant_machine.rs lines 97–145
fn test_variant_extraction() {
for (input, expected) in [
// Simple variant
("hover:flex", vec!["hover:"]),
// Single character variant
("a:flex", vec!["a:"]),
("*:flex", vec!["*:"]),
// With special characters
("**:flex", vec!["**:"]),
// With dashes
("data-disabled:flex", vec!["data-disabled:"]),
// Multiple variants
("hover:focus:flex", vec!["hover:", "focus:"]),
// Arbitrary variant
("[&:hover:focus]:flex", vec!["[&:hover:focus]:"]),
// Arbitrary variant with nested brackets
(
"[&>[data-slot=icon]:last-child]:",
vec!["[&>[data-slot=icon]:last-child]:"],
),
(
"sm:[&>[data-slot=icon]:last-child]:",
vec!["sm:", "[&>[data-slot=icon]:last-child]:"],
),
(
"[:is(italic):is(underline)]:",
vec!["[:is(italic):is(underline)]:"],
),
// Modifiers
("group-hover/foo:flex", vec!["group-hover/foo:"]),
("group-hover/[.parent]:flex", vec!["group-hover/[.parent]:"]),
// Arbitrary variant with bracket notation
("data-[state=pending]:flex", vec!["data-[state=pending]:"]),
// Arbitrary variant with CSS property shorthand
("supports-(--my-color):flex", vec!["supports-(--my-color):"]),
// -------------------------------------------------------------
// Exceptions
// Empty arbitrary variant is not allowed
("[]:flex", vec![]),
// Named variant must be followed by `:`
("hover", vec![]),
// Modifier cannot be followed by another modifier. However, we don't check boundary
// characters in this state machine so we will get `bar:`.
("group-hover/foo/bar:flex", vec!["bar:"]),
] {
assert_eq!(VariantMachine::test_extract_all(input), expected);
}
}
Domain
Subdomains
Source
Frequently Asked Questions
What does test_variant_extraction() do?
test_variant_extraction() is a function in the tailwindcss codebase, defined in crates/oxide/src/extractor/variant_machine.rs.
Where is test_variant_extraction() defined?
test_variant_extraction() is defined in crates/oxide/src/extractor/variant_machine.rs at line 97.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free