UNPKG

@winglet/style-utils

Version:

Comprehensive CSS and style management utilities including className manipulation, CSS compression, and universal style manager for TypeScript projects

30 lines (29 loc) 1.16 kB
import type { ClassValue } from './type'; /** * Concatenates CSS class names conditionally, similar to clsx/classnames but more lightweight. * Accepts various input types including strings, numbers, arrays, and objects. * Filters out falsy values and handles nested structures recursively. * * @param args - Variable number of class value arguments that can be strings, numbers, arrays, or objects * @returns A single concatenated string of class names, separated by spaces * * @example * ```typescript * // String and number inputs * cx('btn', 'primary') // 'btn primary' * cx('btn', 123) // 'btn 123' * * // Conditional classes with falsy values * cx('btn', false && 'hidden', null, undefined, 'active') // 'btn active' * * // Object notation for conditional classes * cx('btn', { 'btn-primary': true, 'btn-disabled': false }) // 'btn btn-primary' * * // Array inputs with nesting * cx(['btn', 'primary'], ['large', false && 'hidden']) // 'btn primary large' * * // Mixed inputs * cx('btn', { primary: true }, ['large'], null, 'active') // 'btn primary large active' * ``` */ export declare const cx: (...args: ClassValue[]) => string;