printVariant() — tailwindcss Function Reference
Architecture documentation for the printVariant() function in candidate.ts from the tailwindcss codebase.
Entity Profile
Dependency Diagram
graph TD 1febc78c_5fc5_7a9e_bbde_e23926ba37fc["printVariant()"] 707ef5d3_1654_7094_06d2_99e8004cab43["migrateArbitraryVariants()"] 707ef5d3_1654_7094_06d2_99e8004cab43 -->|calls| 1febc78c_5fc5_7a9e_bbde_e23926ba37fc 4c29981d_a61a_00fb_b3b5_5a69228c4fff["printCandidate()"] 4c29981d_a61a_00fb_b3b5_5a69228c4fff -->|calls| 1febc78c_5fc5_7a9e_bbde_e23926ba37fc 85c01f92_2868_9f10_aa0d_1b8b6eaeaaa3["createCanonicalizeCandidateCache()"] 85c01f92_2868_9f10_aa0d_1b8b6eaeaaa3 -->|calls| 1febc78c_5fc5_7a9e_bbde_e23926ba37fc 6a036819_1cd4_f532_6d62_77770a6b1666["arbitraryVariants()"] 6a036819_1cd4_f532_6d62_77770a6b1666 -->|calls| 1febc78c_5fc5_7a9e_bbde_e23926ba37fc c17298f2_5925_766a_629e_a0acb211713d["modernizeArbitraryValuesVariant()"] c17298f2_5925_766a_629e_a0acb211713d -->|calls| 1febc78c_5fc5_7a9e_bbde_e23926ba37fc c58d3214_88d6_f4fc_257f_8e84def5b24f["buildDesignSystem()"] c58d3214_88d6_f4fc_257f_8e84def5b24f -->|calls| 1febc78c_5fc5_7a9e_bbde_e23926ba37fc c6f44294_1faa_f8d2_1ba3_f57256e33fc7["printArbitraryValue()"] 1febc78c_5fc5_7a9e_bbde_e23926ba37fc -->|calls| c6f44294_1faa_f8d2_1ba3_f57256e33fc7 c8d546d6_f035_7355_3756_1dab825327f3["simplifyArbitraryVariant()"] 1febc78c_5fc5_7a9e_bbde_e23926ba37fc -->|calls| c8d546d6_f035_7355_3756_1dab825327f3 84ddf159_5fc2_32a9_8653_06768bdaa804["isVar()"] 1febc78c_5fc5_7a9e_bbde_e23926ba37fc -->|calls| 84ddf159_5fc2_32a9_8653_06768bdaa804 96d4f916_c113_06d2_e068_b35bf556aaf5["printModifier()"] 1febc78c_5fc5_7a9e_bbde_e23926ba37fc -->|calls| 96d4f916_c113_06d2_e068_b35bf556aaf5 style 1febc78c_5fc5_7a9e_bbde_e23926ba37fc fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/tailwindcss/src/candidate.ts lines 986–1031
export function printVariant(variant: Variant) {
// Handle static variants
if (variant.kind === 'static') {
return variant.root
}
// Handle arbitrary variants
if (variant.kind === 'arbitrary') {
return `[${printArbitraryValue(simplifyArbitraryVariant(variant.selector))}]`
}
let base: string = ''
// Handle functional variants
if (variant.kind === 'functional') {
base += variant.root
// `@` is a special case for functional variants. We want to print: `@lg`
// instead of `@-lg`
let hasDash = variant.root !== '@'
if (variant.value) {
if (variant.value.kind === 'arbitrary') {
let isVarValue = isVar(variant.value.value)
let value = isVarValue ? variant.value.value.slice(4, -1) : variant.value.value
let [open, close] = isVarValue ? ['(', ')'] : ['[', ']']
base += `${hasDash ? '-' : ''}${open}${printArbitraryValue(value)}${close}`
} else if (variant.value.kind === 'named') {
base += `${hasDash ? '-' : ''}${variant.value.value}`
}
}
}
// Handle compound variants
if (variant.kind === 'compound') {
base += variant.root
base += '-'
base += printVariant(variant.variant)
}
// Handle modifiers
if (variant.kind === 'functional' || variant.kind === 'compound') {
base += printModifier(variant.modifier)
}
return base
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does printVariant() do?
printVariant() is a function in the tailwindcss codebase.
What does printVariant() call?
printVariant() calls 4 function(s): isVar, printArbitraryValue, printModifier, simplifyArbitraryVariant.
What calls printVariant()?
printVariant() is called by 6 function(s): arbitraryVariants, buildDesignSystem, createCanonicalizeCandidateCache, migrateArbitraryVariants, modernizeArbitraryValuesVariant, printCandidate.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free