The runtime package provides helpers for composing className strings
dynamically. For static sz props, no helpers are needed — the compiler
produces plain strings at build time.
5 Helpers
_sz, _szIf, _szSwitch, _szMerge, __szColorVar
~0B Runtime Cost
Static sz props — zero overhead. Helpers only ship when you use them.
Tree Shakeable ESM
Import only what you use. Dead code eliminated at build time.
When the compiler pre-transforms sz objects to strings at build time,
this function simply passes through the string (zero overhead).
For runtime usage, it can also concatenate multiple class strings
or transform SzObjects on-the-fly.
@param ― classes - Class names or SzObjects to concatenate
@returns ― Combined className string
@example
// Passthrough (from compiler) - zero overhead
_sz('p-4 bg-red-500')
// Returns: "p-4 bg-red-500"
// With conditionals
_sz('base', isActive &&'active', error &&'error')
// Returns: "base active" (if isActive is true, error is false)
When the compiler pre-transforms sz objects to strings at build time,
this function simply passes through the string (zero overhead).
For runtime usage, it can also concatenate multiple class strings
or transform SzObjects on-the-fly.
@param ― classes - Class names or SzObjects to concatenate
@returns ― Combined className string
@example
// Passthrough (from compiler) - zero overhead
_sz('p-4 bg-red-500')
// Returns: "p-4 bg-red-500"
// With conditionals
_sz('base', isActive &&'active', error &&'error')
// Returns: "base active" (if isActive is true, error is false)
When the compiler pre-transforms sz objects to strings at build time,
this function simply passes through the string (zero overhead).
For runtime usage, it can also concatenate multiple class strings
or transform SzObjects on-the-fly.
@param ― classes - Class names or SzObjects to concatenate
@returns ― Combined className string
@example
// Passthrough (from compiler) - zero overhead
_sz('p-4 bg-red-500')
// Returns: "p-4 bg-red-500"
// With conditionals
_sz('base', isActive &&'active', error &&'error')
// Returns: "base active" (if isActive is true, error is false)
When the compiler pre-transforms sz objects to strings at build time,
this function simply passes through the string (zero overhead).
For runtime usage, it can also concatenate multiple class strings
or transform SzObjects on-the-fly.
@param ― classes - Class names or SzObjects to concatenate
@returns ― Combined className string
@example
// Passthrough (from compiler) - zero overhead
_sz('p-4 bg-red-500')
// Returns: "p-4 bg-red-500"
// With conditionals
_sz('base', isActive &&'active', error &&'error')
// Returns: "base active" (if isActive is true, error is false)
All variant class combinations are catalogued at build time — the compiler extracts every
possible output and adds them to the Tailwind safelist so CSS is pre-generated.