Zephora UI

Integrare Tailwind

Două piese: un preset generat din tokenuri (zephoraPreset) și un mod headless (unstyled) pe fiecare componentă.

Preset

// tailwind.config.js
import { zephoraPreset } from "@zephora/tailwind-preset";

export default {
  presets: [zephoraPreset],
  content: ["./src/**/*.{ts,tsx}"],
};

Preset-ul mapează tokenurile Zephora în Tailwind: scale de culori (primary-500…), spațiere, radius, dimensiuni de font cu înălțimi de rând, umbre de elevație, durate/easing-uri de mișcare și z-index. Expune și culori semantice reactive la temă, susținute de aceleași variabile CSS pe care le folosesc componentele stilizate — bg-background, text-foreground, bg-accent, border-border, ring-ring — astfel încât utilitarele Tailwind urmează automat tema activă.

Mod headless

Transmite unstyled pentru a elimina stilizarea Zephora păstrând comportamentul și accesibilitatea. Apoi stilizează cu Tailwind:

<Button
  unstyled
  className="rounded-lg bg-accent px-4 py-2 text-accent-foreground hover:opacity-90 focus-visible:outline focus-visible:outline-2 focus-visible:outline-ring"
>
  Tailwind button
</Button>

Tailwind v4

Cu configurația CSS-first din Tailwind v4, încarcă preset-ul prin @config, sau importă @zephora/tokens/css și referențiază direct variabilele brute --z-* în @theme.