Zephora UI

التكامل مع Tailwind

جزآن: preset مُولَّد من الرموز (zephoraPreset) ووضع بلا واجهة (headless) (unstyled) على كل مكوّن.

Preset

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

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

يربط الـ preset رموز Zephora بـ Tailwind: مقاييس الألوان (primary-500…)، والتباعد، ونصف القطر، وأحجام الخطوط مع ارتفاعات الأسطر، وظلال الارتفاع، ومدد/تسارعات الحركة، وz-index. كما يوفّر ألوانًا دلالية متجاوبة مع السمة مدعومة بنفس متغيّرات CSS التي تستخدمها المكوّنات المنسّقة — bg-background، text-foreground، bg-accent، border-border، ring-ring — بحيث تتبع أدوات Tailwind السمة النشطة تلقائيًا.

الوضع بلا واجهة (headless)

مرّر unstyled لإزالة تنسيق Zephora مع الإبقاء على السلوك وإمكانية الوصول. ثم نسّق باستخدام 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

مع تهيئة Tailwind v4 ذات أولوية CSS، حمّل الـ preset عبر @config، أو استورد @zephora/tokens/css وأشِر إلى متغيّرات --z-* الخام مباشرة داخل @theme.