Intégration Tailwind
Deux éléments : un preset généré à partir des tokens (zephoraPreset) et un mode headless (unstyled) sur chaque composant.
Preset
// tailwind.config.js
import { zephoraPreset } from "@zephora/tailwind-preset";
export default {
presets: [zephoraPreset],
content: ["./src/**/*.{ts,tsx}"],
};Le preset mappe les tokens Zephora vers Tailwind : échelles de couleurs (primary-500…), espacements, rayons, tailles de police avec hauteurs de ligne, ombres d'élévation, durées/courbes d'animation et z-index. Il expose aussi des couleurs sémantiques réactives au thème, adossées aux mêmes variables CSS que celles utilisées par les composants stylés — bg-background, text-foreground, bg-accent, border-border, ring-ring — pour que les utilitaires Tailwind suivent automatiquement le thème actif.
Mode headless
Passez unstyled pour retirer le style Zephora tout en conservant le comportement et l'accessibilité. Puis stylez avec 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
Avec la configuration CSS-first de Tailwind v4, chargez le preset via @config, ou importez @zephora/tokens/css et référencez directement les variables brutes --z-* dans @theme.