# @astryxdesign/core Core UI components, theme system, and utilities for the XDS design system. For project setup, see [Quick Start](#quick-start) below. ## Component Docs Look up any component's full API (props, types, best practices, and theming): ```bash node node_modules/@astryxdesign/core/docs.mjs Button # full docs for a component node node_modules/@astryxdesign/core/docs.mjs --list # list all components node node_modules/@astryxdesign/core/docs.mjs --list --brief # brief summaries ``` ## Page Layouts Building a full page? Start with a template rather than composing from scratch. Templates are content-only; they compose `XDSLayout` with header, content, and panel slots into common page patterns (dashboards, settings, forms, detail pages). Wrap them in your own app chrome (`XDSAppShell`, `XDSTopNav`, `XDSSideNav`) to add global navigation. Requires `@astryxdesign/cli` (`npm install -D @astryxdesign/cli`): ```bash npx astryx template --list # browse all page and block templates npx astryx template dashboard # emit full page source npx astryx template settings --skeleton # layout skeleton with spatial annotations ``` ## XDS CLI The CLI (`@astryxdesign/cli`) provides additional tooling: ```bash npx astryx --help # full listing of all commands npx astryx component Button # full docs + related block templates npx astryx docs # reference docs (principles, tokens, theming, styling) npx astryx docs theme # theming guide (Theme, defineTheme, light/dark) npx astryx docs tokens # spacing, color, radius, typography token reference npx astryx init # initialize XDS in your project npx astryx theme build # build theme CSS for production npx astryx swizzle Button # eject component source for customization npx astryx upgrade --apply # run codemods to migrate between versions npx astryx discover # discover external XDS packages npx astryx gap-report # report a missing capability ``` ## Related Packages | Package | Description | | ----------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- | | [`@astryxdesign/cli`](https://github.com/facebook/astryx/tree/main/packages/cli) | CLI tooling: component docs, templates, scaffolding, codemods | | [`@astryxdesign/theme-neutral`](https://github.com/facebook/astryx/tree/main/packages/themes/neutral) | Muted, minimal theme (Lucide icons) | ## Resources - [Component Storybook](https://facebook.github.io/astryx/) - [GitHub Repository](https://github.com/facebook/astryx) --- ## Quick Start Install XDS and a theme: ```bash npm install @astryxdesign/core @astryxdesign/theme-neutral ``` Then pick your setup below based on your framework and styling approach. ### Next.js + Tailwind (simplest) No build plugins needed; XDS ships pre-built CSS that works alongside Tailwind. **`src/app/globals.css`** ```css @layer reset, theme, base, astryx-base, astryx-theme, components, utilities; @import 'tailwindcss/theme.css' layer(theme); @import 'tailwindcss/preflight.css' layer(base); @import '@astryxdesign/core/reset.css'; @import '@astryxdesign/core/astryx.css'; @import '@astryxdesign/theme-neutral/theme.css'; @import '@astryxdesign/core/tailwind-theme.css'; @import 'tailwindcss/utilities.css' layer(utilities); ``` The `tailwind-theme.css` import maps system tokens to Tailwind utilities via `@theme inline`: ```tsx // Without the bridge — verbose: