@osiris-smarttv/style-util
v0.1.1
Published
Layered className merge (Tailwind + design tokens + SCSS modules) for Smart TV UI
Readme
@osiris-smarttv/style-util
Layered className composition utility for Smart TV UI codebases.
Combines:
- Tailwind utility classes
- design-token-aware atomic classes
- CSS module classes
- caller
classNameoverrides
with deterministic merge order and tailwind-merge conflict resolution.
Install
npm i @osiris-smarttv/style-utilQuick start
import { cn } from '@osiris-smarttv/style-util'
const className = cn({
tw: ['flex', 'items-center', 'px-4'],
s: [styles.container, isActive && styles.active],
className: props.className,
})API
cn(input)- default combinercreateCn()- build custom combinercreateCnForTokens()- token-typed combiner factory
Key exported types:
CnInputTwClassAtomicClassModuleClassDesignTokenDesignTokenValue
Merge behavior
Layer precedence is explicit and stable:
twatomicsclassName
tailwind-merge runs on Tailwind-like layers to drop conflicting utilities.
Module classes are preserved.
Local development
yarn install
yarn build
yarn typecheck
yarn testManual publish (no GitHub Actions)
yarn publish:check
yarn publish:dry-run
yarn publish:manualIf publish returns 404 or permission errors for @osiris-smarttv/*, verify:
- your npm account has publish access to scope
@osiris-smarttv - package name is allowed by org policy
- you are authenticated against
https://registry.npmjs.org/
