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
  33cdfd56_8951_3531_38f7_dd0b0f31dbab["arbitraryVariants()"]
  7d350d81_5de1_f9f3_5b2c_19ec8fd3c37e["canonicalize-candidates.ts"]
  33cdfd56_8951_3531_38f7_dd0b0f31dbab -->|defined in| 7d350d81_5de1_f9f3_5b2c_19ec8fd3c37e
  bb11a053_5909_cc72_a9a1_0f42f67e2bf6["walkVariants()"]
  33cdfd56_8951_3531_38f7_dd0b0f31dbab -->|calls| bb11a053_5909_cc72_a9a1_0f42f67e2bf6
  02a5a469_a54f_7532_8b33_d407c3c7f34a["printVariant()"]
  33cdfd56_8951_3531_38f7_dd0b0f31dbab -->|calls| 02a5a469_a54f_7532_8b33_d407c3c7f34a
  7ba77268_84c7_7083_8f22_251a4a791d25["parseVariant()"]
  33cdfd56_8951_3531_38f7_dd0b0f31dbab -->|calls| 7ba77268_84c7_7083_8f22_251a4a791d25
  171d2039_b637_0b5d_5082_71ca42e05d86["replaceObject()"]
  33cdfd56_8951_3531_38f7_dd0b0f31dbab -->|calls| 171d2039_b637_0b5d_5082_71ca42e05d86
  5bcf4886_1230_a8ff_7302_a26cc5a9a525["get()"]
  33cdfd56_8951_3531_38f7_dd0b0f31dbab -->|calls| 5bcf4886_1230_a8ff_7302_a26cc5a9a525
  style 33cdfd56_8951_3531_38f7_dd0b0f31dbab 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, defined in packages/tailwindcss/src/canonicalize-candidates.ts.
Where is arbitraryVariants() defined?
arbitraryVariants() is defined in packages/tailwindcss/src/canonicalize-candidates.ts at line 1309.
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