apps/shade/src/docs/introduction.mdx
import { Meta } from '@storybook/addon-docs/blocks';
<Meta title="Overview / Introduction" /> <div className="sb-doc">Stack, Inline, Box, Grid, Container, Text. Layout, not chrome.Button, Input, Dialog, Tabs… Generic and accessible. Built on Radix + ShadCN.PageHeader, ListPage, KpiCard, Filters. Product-shaped compositions.The boundaries between those layers are the whole point. See Layers for the decision flow.
Shade is the default source for Ghost Admin UI. It's already wired into every admin app — just import:
import {Button} from '@tryghost/shade/components';
import {Stack} from '@tryghost/shade/primitives';
If a control exists, use it. If it doesn't and you'll reuse it, Layers tells you which folder to add it to.
For AI-assisted work, see apps/shade/AGENTS.md — the canonical rules for where new code goes.