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 OxideCore Scanner calls 4 called by 6

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

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