Home / Function/ printVariant() — tailwindcss Function Reference

printVariant() — tailwindcss Function Reference

Architecture documentation for the printVariant() function in candidate.ts from the tailwindcss codebase.

Function typescript OxideEngine Scanner calls 4 called by 6

Entity Profile

Dependency Diagram

graph TD
  02a5a469_a54f_7532_8b33_d407c3c7f34a["printVariant()"]
  669e6a28_c71f_3c5e_9c53_915cede7da78["candidate.ts"]
  02a5a469_a54f_7532_8b33_d407c3c7f34a -->|defined in| 669e6a28_c71f_3c5e_9c53_915cede7da78
  bc19ae8d_4f83_e280_be05_e35eee14b3e7["migrateArbitraryVariants()"]
  bc19ae8d_4f83_e280_be05_e35eee14b3e7 -->|calls| 02a5a469_a54f_7532_8b33_d407c3c7f34a
  87ba7eab_3a52_d53e_dfd4_e507e9763b55["printCandidate()"]
  87ba7eab_3a52_d53e_dfd4_e507e9763b55 -->|calls| 02a5a469_a54f_7532_8b33_d407c3c7f34a
  e5cfde3f_0bc0_3155_68b2_7635f9cbb320["createCanonicalizeCandidateCache()"]
  e5cfde3f_0bc0_3155_68b2_7635f9cbb320 -->|calls| 02a5a469_a54f_7532_8b33_d407c3c7f34a
  33cdfd56_8951_3531_38f7_dd0b0f31dbab["arbitraryVariants()"]
  33cdfd56_8951_3531_38f7_dd0b0f31dbab -->|calls| 02a5a469_a54f_7532_8b33_d407c3c7f34a
  8097972e_4628_663f_72e8_08883183690d["modernizeArbitraryValuesVariant()"]
  8097972e_4628_663f_72e8_08883183690d -->|calls| 02a5a469_a54f_7532_8b33_d407c3c7f34a
  9b965fd7_d8e9_0b43_cd5d_c9294ab598ed["buildDesignSystem()"]
  9b965fd7_d8e9_0b43_cd5d_c9294ab598ed -->|calls| 02a5a469_a54f_7532_8b33_d407c3c7f34a
  dcb78b18_ea9f_1a7d_ae16_22caeb338381["printArbitraryValue()"]
  02a5a469_a54f_7532_8b33_d407c3c7f34a -->|calls| dcb78b18_ea9f_1a7d_ae16_22caeb338381
  9ca89fb0_b197_c98a_11fa_8bc0f2185deb["simplifyArbitraryVariant()"]
  02a5a469_a54f_7532_8b33_d407c3c7f34a -->|calls| 9ca89fb0_b197_c98a_11fa_8bc0f2185deb
  d9711825_9ed0_11e4_fd42_f0570831bc55["isVar()"]
  02a5a469_a54f_7532_8b33_d407c3c7f34a -->|calls| d9711825_9ed0_11e4_fd42_f0570831bc55
  a6395463_48d3_f807_4ce5_c8a5f1546d06["printModifier()"]
  02a5a469_a54f_7532_8b33_d407c3c7f34a -->|calls| a6395463_48d3_f807_4ce5_c8a5f1546d06
  style 02a5a469_a54f_7532_8b33_d407c3c7f34a 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

Frequently Asked Questions

What does printVariant() do?
printVariant() is a function in the tailwindcss codebase, defined in packages/tailwindcss/src/candidate.ts.
Where is printVariant() defined?
printVariant() is defined in packages/tailwindcss/src/candidate.ts at line 986.
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