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
  6a036819_1cd4_f532_6d62_77770a6b1666["arbitraryVariants()"]
  53ff5109_5a35_0396_6060_ad17d2d3ada8["walkVariants()"]
  6a036819_1cd4_f532_6d62_77770a6b1666 -->|calls| 53ff5109_5a35_0396_6060_ad17d2d3ada8
  1febc78c_5fc5_7a9e_bbde_e23926ba37fc["printVariant()"]
  6a036819_1cd4_f532_6d62_77770a6b1666 -->|calls| 1febc78c_5fc5_7a9e_bbde_e23926ba37fc
  ceb1ff41_a641_27dd_6289_7f779710b411["parseVariant()"]
  6a036819_1cd4_f532_6d62_77770a6b1666 -->|calls| ceb1ff41_a641_27dd_6289_7f779710b411
  f79e35a4_ca5c_11c1_36f2_8974eceaf515["replaceObject()"]
  6a036819_1cd4_f532_6d62_77770a6b1666 -->|calls| f79e35a4_ca5c_11c1_36f2_8974eceaf515
  0aa64a1c_efd8_a69d_48ed_649b7a86c854["get()"]
  6a036819_1cd4_f532_6d62_77770a6b1666 -->|calls| 0aa64a1c_efd8_a69d_48ed_649b7a86c854
  style 6a036819_1cd4_f532_6d62_77770a6b1666 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
}

Domain

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