apps/shade/README.md
Ghost Design System that can be used by micro-frontends.
Shade is consumed internally across Ghost apps. The package is currently private; when published, consumption will follow standard npm usage.
Example:
import {Button} from '@tryghost/shade/components';
export function Example() {
return <Button>Continue</Button>;
}
CSS-first styling contract:
/* app entry CSS */
@import "@tryghost/shade/styles.css";
No Tailwind preset/config import is required for Shade runtime styling.
Scoping and dark mode:
.shade container..dark within that scope.Wrap your surface with ShadeApp (includes provider and scoping):
import {ShadeApp} from '@tryghost/shade/app';
<ShadeApp darkMode={false}>
</ShadeApp>
This is a monorepo package.
Follow the instructions for the top-level repo.
git clone this repo & cd into it as usualpnpm to install top-level dependencies.Local docs with Storybook:
pnpm storybook — run Storybook and view docs under src/docs/pnpm build-storybook — build a static exportpnpm test — type-checks and runs Vitest with coveragepnpm test:unit — type-checks and runs Vitestpnpm test:types — TypeScript onlypnpm lint — ESLint for src/ and test/@/lib/utils (not @/utils). Use cn(...) to merge class names and prefer CVA for variants.src/docs/*).