البدء
تُوزَّع Zephora UI كحزم مُنطاقة (scoped). ثبّت حزمة React ومحرّك السمات، واستورد ورقة الأنماط الأساسية مرة واحدة، ثم ركّب المكوّنات.
التثبيت
npm install @zephora/react @zephora/theme @zephora/tokens # React Native npm install @zephora/native @zephora/theme @zephora/tokens
الاستخدام
import "@zephora/react/styles.css";
import { Button, Card, CardBody, Input } from "@zephora/react";
import { ThemeProvider, darkTheme } from "@zephora/theme";
export default function App() {
return (
<ThemeProvider theme={darkTheme}>
<Card>
<CardBody>
<Input placeholder="Email" />
<Button>Save</Button>
</CardBody>
</Card>
</ThemeProvider>
);
}React Native
import { ZephoraProvider, Button } from "@zephora/native";
import { darkTheme } from "@zephora/theme";
export default function App() {
return (
<ZephoraProvider theme={darkTheme}>
<Button onPress={() => {}}>Save</Button>
</ZephoraProvider>
);
}Tree shaking
كل حزمة تعطي الأولوية لـ ESM مع sideEffects مقصورة على CSS. استورد فقط ما تستخدمه؛ وأدوات الحزم تُسقط الباقي. تُفرض ميزانية gzip لكل مكوّن (~5KB) في CI عبر size-limit.