Documentation: https://components.pplethai.org/
Monorepo for @pplethai/components — the People's Party React design system built on shadcn/ui.
| Package | Description |
|---|---|
@pplethai/components |
Publishable React component library |
docs |
Vite documentation site |
pnpm install
pnpm dev # docs site at http://localhost:5173
pnpm build # build library + docs
pnpm test # vitest in packages/componentspnpm add @pplethai/components react react-dom react-hook-form zodimport "@pplethai/components/styles.css";
import { Button, Card, cn } from "@pplethai/components";
import { Form, FormTextField } from "@pplethai/components/form";import type { Config } from "tailwindcss";
import preset from "@pplethai/components/tailwind-preset";
export default {
presets: [preset],
content: ["./src/**/*.{ts,tsx}", "./node_modules/@pplethai/components/dist/**/*.js"],
} satisfies Config;Headings use Anakotmai (medium only) from the party CDN. Body uses IBM Plex Sans Thai Looped via @fontsource (400 and 600).
Uses Changesets. Releases run from .github/workflows/release.yml via npm trusted publishing (GitHub OIDC — no NPM_TOKEN secret).
On npm → @pplethai/components → Settings → Trusted publishing, add a GitHub Actions trusted publisher:
| Field | Value |
|---|---|
| Repository owner | PPLEThai |
| Repository name | pple-design-system |
| Workflow filename | release.yml |
| Environment | (leave empty unless you add a GitHub Environment) |
The workflow filename must match exactly (including .yml). After the first successful OIDC publish, you can remove the NPM_TOKEN repository secret if it is still configured.
Run Deploy Docs to Cloudflare Pages from the Actions tab (manual workflow). Add repository secrets:
CLOUDFLARE_API_TOKEN— API token with Cloudflare Pages — Edit permissionCLOUDFLARE_ACCOUNT_ID— your Cloudflare account IDCLOUDFLARE_PAGES_PROJECT_NAME— Cloudflare Pages project name (e.g.pple-design-systems-docs)
Create a Pages project with the same name as CLOUDFLARE_PAGES_PROJECT_NAME before deploying.
MIT