Home / Function/ arbitraryVariants() — tailwindcss Function Reference

arbitraryVariants() — tailwindcss Function Reference

Architecture documentation for the arbitraryVariants() function in canonicalize-candidates.ts from the tailwindcss codebase.

Entity Profile

Dependency Diagram

graph TD
  d6d6389c_e8ac_a603_fb73_c284bcbea150["arbitraryVariants()"]
  5fbe9f30_4678_6100_0870_5216b48ccf87["walkVariants()"]
  d6d6389c_e8ac_a603_fb73_c284bcbea150 -->|calls| 5fbe9f30_4678_6100_0870_5216b48ccf87
  49c38785_1012_962e_d353_b5b1d6858132["printVariant()"]
  d6d6389c_e8ac_a603_fb73_c284bcbea150 -->|calls| 49c38785_1012_962e_d353_b5b1d6858132
  ca76ae68_c9c0_d977_a6d8_8ba86685bf25["parseVariant()"]
  d6d6389c_e8ac_a603_fb73_c284bcbea150 -->|calls| ca76ae68_c9c0_d977_a6d8_8ba86685bf25
  2d70e77d_ce8f_238d_2b32_a8b4190f2628["replaceObject()"]
  d6d6389c_e8ac_a603_fb73_c284bcbea150 -->|calls| 2d70e77d_ce8f_238d_2b32_a8b4190f2628
  4cd99e59_ac1e_2a1f_0946_33cc1afd2532["get()"]
  d6d6389c_e8ac_a603_fb73_c284bcbea150 -->|calls| 4cd99e59_ac1e_2a1f_0946_33cc1afd2532
  style d6d6389c_e8ac_a603_fb73_c284bcbea150 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/tailwindcss/src/canonicalize-candidates.ts lines 1309–1336

function arbitraryVariants(
  variant: Variant,
  options: InternalCanonicalizeOptions,
): Variant | Variant[] {
  let designSystem = options.designSystem
  let signatures = designSystem.storage[VARIANT_SIGNATURE_KEY]
  let variants = designSystem.storage[PRE_COMPUTED_VARIANTS_KEY]

  let iterator = walkVariants(variant)
  for (let [variant] of iterator) {
    if (variant.kind === 'compound') continue

    let targetString = designSystem.printVariant(variant)
    let targetSignature = signatures.get(targetString)
    if (typeof targetSignature !== 'string') continue

    let foundVariants = variants.get(targetSignature)
    if (foundVariants.length !== 1) continue

    let foundVariant = foundVariants[0]
    let parsedVariant = designSystem.parseVariant(foundVariant)
    if (parsedVariant === null) continue

    replaceObject(variant, parsedVariant)
  }

  return variant
}

Subdomains

Frequently Asked Questions

What does arbitraryVariants() do?
arbitraryVariants() is a function in the tailwindcss codebase.
What does arbitraryVariants() call?
arbitraryVariants() calls 5 function(s): get, parseVariant, printVariant, replaceObject, walkVariants.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free