- Accordion
- Alert
- Alert Dialog
- Aspect Ratio
- Attachment
- Avatar
- Badge
- Breadcrumb
- Bubble
- Button
- Button Group
- Calendar
- Card
- Carousel
- Chart
- Checkbox
- Collapsible
- Combobox
- Command
- Context Menu
- Date Picker
- Dialog
- Drawer
- Dropdown Menu
- Empty
- Field
- Hover Card
- Input
- Input OTP
- Input Group
- Item
- Kbd
- Label
- Marker
- Menubar
- Message
- Message Scroller
- Native Select
- Navigation Menu
- Pagination
- Popover
- Progress
- Radio Group
- Resizable
- Scroll Area
- Select
- Separator
- Sheet
- Sidebar
- Skeleton
- Slider
- Sonner
- Spinner
- Switch
- Table
- Tabs
- Textarea
- Toggle
- Toggle Group
- Tooltip
- New Component
Introduction
A component library for teams building with multiple brands — registry-based, Figma-connected, and built for AI workflows.
GIN Design is a component library for teams building with multiple brands — built by Nuno Santos.
The Registry
Components are not an npm package. When you install a component, the shadcn CLI copies the source file directly into your project — you own the code and can change anything, without waiting for an upstream release.
$ npx shadcn add https://gin-design.vercel.app/r/button
The /r/ path is the registry endpoint — a shadcn convention. The CLI fetches https://gin-design.vercel.app/r/button.json, reads the component manifest (source files, dependencies, install targets), and copies everything into your project. You never interact with that URL directly; it's what the CLI calls behind the scenes.
Every component page shows the exact command to install it. Pick what you need, leave what you don't.
Figma Integration
Each component can be linked to a Figma frame. When a Figma URL is declared on a component page, a View in Figma shortcut appears alongside the component preview — opening the exact frame or section in your design file.
Beyond linking, the library includes a Figma Diff feature: connect your Figma file via API token and get a structured diff of what changed in your designs since the last sync — useful for keeping code and design in step when the design evolves.
To use it, set your Figma access token:
FIGMA_ACCESS_TOKEN=your_token_hereAI Integration
Every component page is built to work as AI context, not just documentation.
Copy Page
The Copy Page button fetches the full page content as markdown and copies it to your clipboard. Paste it directly into Claude, ChatGPT, or any local model as structured context for the component you're working with.
The dropdown extends this into one-click actions:
- Open in Claude / Open in ChatGPT — opens the AI tool with a pre-built prompt that points to the page's markdown URL and tells the model which brand theme is active. The model reads the full documentation before you type a single word.
- Open in v0 — opens the component in v0's sandbox using the registry JSON, with CSS variables pre-loaded so the preview renders correctly in your brand's colours.
- View as Markdown — opens the raw
.mdversion of the page in a new tab. Every docs page is available at its.mdURL (/docs/components/button.md) for programmatic access, MCP tools, or custom AI pipelines. - Open in JSON — opens the raw registry entry, useful for inspecting what gets installed or feeding it to an agent.
Specs Block
Every component page ends with a ## Specs section — a structured block designed to be pasted into any AI prompt. It contains:
- Component name, file path, install target, and dependencies
- Full CSS design tokens (light and dark mode values)
- Variant and size reference with their exact Tailwind classes
- Prop definitions with types and defaults
- Code conventions:
cn,cva,Slot, focus ring, disabled state
When you open a page in Claude or ChatGPT via the toolbar, the Specs block is already included — the model gets exact token values and variant names, not generic shadcn assumptions.
LLM Index
The library exposes two machine-readable endpoints for AI crawlers and custom pipelines:
/llms.txt— lists all documented pages/llms-full.txt— includes the full markdown content of every page in one file
These follow the llms.txt convention and make the entire library indexable by any tool that supports it.
Themes
Components are built on a base theme (Mint) and support multiple brand themes — each a set of CSS variable overrides. Available themes are listed in the Themes section of the sidebar.
What's Inside
Components
UI primitives — buttons, inputs, dialogs, and more. Built on Radix UI for accessibility, styled with Tailwind CSS 4.
Elements
Complex, data-driven components: data tables, calendars, auth forms. Designed to drop into real product pages with minimal setup.
Blocks
Pre-assembled page sections: login, signup, featured layouts. Built from the component library and ready to adapt.
Copy Page and Share
Each component page has two toolbar buttons:
Copy Page copies the full page content as markdown to your clipboard — ready to paste into any AI tool as context. The dropdown also lets you open the component directly in Claude, ChatGPT, or v0, or jump to the Figma frame, the raw JSON registry entry, or the markdown URL.
Share (the icon button) copies the page link, lets you copy the raw registry JSON, or posts the component directly to your team's Discord channel.