back to gallery
design language·plinth

Plinth

A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.

Download DESIGN.md

Portable DESIGN.md source of truth for most agents and apps.

the spec

specification

philosophy
summary
Display-case commerce: a storefront that behaves like a lit vitrine after hours. One object at a time floats on an illuminated shelf against a deep teal-charcoal ground, measured on a caliper spec-rail, with the buy docked where your hand expects it. Citrus is the light that marks purchase; deep teal is the trust that stays.
values
one object under one lightmeasured, not marketed — figures on a railcitrus as purchase energy, never decorationdeep teal as durable assurancedark cabinet ground, never white
anti-values
×white product-stage default×rainbow promotional grids×a wall of identical product cards×a third vivid hue creeping in×marketing copy where a measured figure belongs
tokens
colors16 items
bg
#0E1614
surface
#16211E
recess
#0A100E
shelf
#1E2D29
text
#EDF2EF
muted
#8FA39C
border
#2A3A35
accent
#D7FF4A
accent_dim
#A7C92F
on_accent
#0B140C
jade
#34C9B4
teal_deep
#0E5F58
success
#34C9B4
warning
#E8B53A
error
#FF6B5E
info
#34C9B4
typography8 items
base size
17px
body font
Geist
heading font
Bricolage Grotesque
mono font
Geist Mono
heading weight
800
heading transform
none
letter spacing
-0.03em
google fonts url
https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,700;12..96,800&family=Geist:wght@400;500;600&family=Geist+Mono:wght@400;500;600&display=swap
radii5 items
sm
4px
md
18px
lg
28px
full
9999px
none
0
shadows4 items
sm
0 1px 0 rgba(237,242,239,.05)
md
0 18px 44px rgba(0,0,0,.5)
lg
0 26px 60px rgba(0,0,0,.55)
glow
0 0 48px -8px rgba(215,255,74,.45)
spacing2 items
base
6px
scale
6, 12, 18, 28, 44, 72, 112
surfaces3 items
bg pattern
none; dark teal-charcoal cabinet interior, objects lit on surface-to-shelf gradient panels with a citrus underline-of-light at the bottom edge; no dot, grid, stripe, or paper texture
card style
matte dark shelf-gradient panels, no borders, deep cabinet drop shadow, optional citrus light-underline; spec rows grouped by cool hairlines not a card per item; radii 18px cards / 28px panels
treatment
lit display case — one citrus halo of light behind the staged object and on the one primary control; deep teal seals assurance
borders4 items
default width
1px
accent width
1px
style
solid
character
cool teal-charcoal hairlines for structure (the grouping dividers); citrus only on focus rings and the selected chip edge, never as a decorative side stripe
motion3 items
duration
200ms
easing
cubic-bezier(.2,.8,.2,1)
philosophy
the settled fully-rendered page is the default and visible with no JS; sections lift in on scroll, the primary control lifts 2px on hover, gauges fill toward the light; respects prefers-reduced-motion
rules
composition
Stage one object at a time on a lit shelf-row against a dark cabinet ground; frame it with a caliper spec-rail and a stock fill gauge; dock the primary acquisition where the hand expects it. Vertical stacked shelf rhythm, not an asymmetric offset commerce grid.
hierarchy
Large Bricolage display type and the lit object first, then a single citrus control for the next purchase action, with deep teal reserved for assurance and confidence.
density
Low-density dark surfaces with compact mono high-information islands for price, stock, and spec figures; the largest whitespace gap is dramatically larger than form gaps.
signature
Caliper spec-rail (citrus-tipped measured rail with mono callouts); stock fill gauge (jade-to-citrus bar filling toward the light); lit shelf-row (surface-to-shelf gradient panel with a citrus underline-of-light); docked acquisition (the one citrus-lit control); small square caliper-edged option chips.
layout
grid
Contained editorial column (max 1240px) with vertically stacked lit shelf-rows and section bands; product detail uses a two-column object + spec/dock split that collapses to one column.
whitespace

Large quiet dark margins frame the lit object; internal control groups use 6-18px gaps while hero and section gaps expand to 72-112px.

density

airy dark stage with compact mono high-information islands for price/stock/spec

responsive
Renders from ~390px mobile to 2560px+ ultra-wide; single column on mobile with the object and dock first; contained content capped and centred on ultra-wide, only the hero spans 100vw.
breakpoints
mobile
390px
tablet
768px
desktop
1440px
reflow
900px and 560px
guidance
do
  • Keep the ground the dark teal-charcoal cabinet; let one object be lit at a time.
  • Use citrus only for purchase intent, selected state, and focus; hang figures on the caliper rail.
  • Use deep teal and jade for assurance, confidence, and in-stock signals.
  • Group spec rows with cool hairlines and the rail, not a card per item.
avoid
  • Do not default to a white product stage or add a third vivid hue.
  • Do not build a rainbow promotion, colored side rails, or a wall of identical cards.
  • Do not box the nav into a pill or float it; let it sit open across the header.
  • Do not mix arbitrary radii; keep 4 / 18 / 28 / 9999.
imagery
pairs with

vitrine-studio

summary
One dominant object floated and lit on a dark seamless cabinet stage with a citrus halo of backlight and a cool teal reflection beneath — the Vitrine Studio technique applied against a dark ground rather than white.
subjects
a titanium watch with a teal diala sculptural object on a glass shelfa single premium product floated in a lit cabinet
usage

Full-bleed hero with the object lit center-frame; feature panels crop tighter with a reduced halo; never a room, scene, horizon, or multiple competing objects.

katagami spec
# Plinth

## Philosophy

Display-case commerce: a storefront that behaves like a lit vitrine after hours. One object at a time floats on an illuminated shelf against a deep teal-charcoal ground, measured on a caliper spec-rail, with the buy docked where your hand expects it. Citrus is the light that marks purchase; deep teal is the trust that stays.

### Values

- one object under one light
- measured, not marketed — figures on a rail
- citrus as purchase energy, never decoration
- deep teal as durable assurance
- dark cabinet ground, never white

### Anti-Values

- white product-stage default
- rainbow promotional grids
- a wall of identical product cards
- a third vivid hue creeping in
- marketing copy where a measured figure belongs

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#0E1614` |
| surface | `#16211E` |
| recess | `#0A100E` |
| shelf | `#1E2D29` |
| text | `#EDF2EF` |
| muted | `#8FA39C` |
| border | `#2A3A35` |
| accent | `#D7FF4A` |
| accent_dim | `#A7C92F` |
| on_accent | `#0B140C` |
| jade | `#34C9B4` |
| teal_deep | `#0E5F58` |
| success | `#34C9B4` |
| warning | `#E8B53A` |
| error | `#FF6B5E` |
| info | `#34C9B4` |

### Typography

- **Base Size**: 17px
- **Body Font**: Geist
- **Heading Font**: Bricolage Grotesque
- **Mono Font**: Geist Mono
- **Heading Weight**: 800
- **Heading Transform**: none
- **Letter Spacing**: -0.03em
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,700;12..96,800&family=Geist:wght@400;500;600&family=Geist+Mono:wght@400;500;600&display=swap

### Radii

- **Sm**: 4px
- **Md**: 18px
- **Lg**: 28px
- **Full**: 9999px
- **None**: 0

### Shadows

- **Sm**: 0 1px 0 rgba(237,242,239,.05)
- **Md**: 0 18px 44px rgba(0,0,0,.5)
- **Lg**: 0 26px 60px rgba(0,0,0,.55)
- **Glow**: 0 0 48px -8px rgba(215,255,74,.45)

### Spacing

- **Base**: 6px
- **Scale**: [6,12,18,28,44,72,112]

### Surfaces

- **Bg Pattern**: none; dark teal-charcoal cabinet interior, objects lit on surface-to-shelf gradient panels with a citrus underline-of-light at the bottom edge; no dot, grid, stripe, or paper texture
- **Card Style**: matte dark shelf-gradient panels, no borders, deep cabinet drop shadow, optional citrus light-underline; spec rows grouped by cool hairlines not a card per item; radii 18px cards / 28px panels
- **Treatment**: lit display case — one citrus halo of light behind the staged object and on the one primary control; deep teal seals assurance

### Borders

- **Default Width**: 1px
- **Accent Width**: 1px
- **Style**: solid
- **Character**: cool teal-charcoal hairlines for structure (the grouping dividers); citrus only on focus rings and the selected chip edge, never as a decorative side stripe

### Motion

- **Duration**: 200ms
- **Easing**: cubic-bezier(.2,.8,.2,1)
- **Philosophy**: the settled fully-rendered page is the default and visible with no JS; sections lift in on scroll, the primary control lifts 2px on hover, gauges fill toward the light; respects prefers-reduced-motion

## Rules

### Composition

Stage one object at a time on a lit shelf-row against a dark cabinet ground; frame it with a caliper spec-rail and a stock fill gauge; dock the primary acquisition where the hand expects it. Vertical stacked shelf rhythm, not an asymmetric offset commerce grid.

### Hierarchy

Large Bricolage display type and the lit object first, then a single citrus control for the next purchase action, with deep teal reserved for assurance and confidence.

### Density

Low-density dark surfaces with compact mono high-information islands for price, stock, and spec figures; the largest whitespace gap is dramatically larger than form gaps.

### Signature

Caliper spec-rail (citrus-tipped measured rail with mono callouts); stock fill gauge (jade-to-citrus bar filling toward the light); lit shelf-row (surface-to-shelf gradient panel with a citrus underline-of-light); docked acquisition (the one citrus-lit control); small square caliper-edged option chips.

## Layout

### Grid

Contained editorial column (max 1240px) with vertically stacked lit shelf-rows and section bands; product detail uses a two-column object + spec/dock split that collapses to one column.

### Whitespace

Large quiet dark margins frame the lit object; internal control groups use 6-18px gaps while hero and section gaps expand to 72-112px.

### Density

airy dark stage with compact mono high-information islands for price/stock/spec

### Responsive

Renders from ~390px mobile to 2560px+ ultra-wide; single column on mobile with the object and dock first; contained content capped and centred on ultra-wide, only the hero spans 100vw.

### Breakpoints

- **Mobile**: 390px
- **Tablet**: 768px
- **Desktop**: 1440px
- **Reflow**: 900px and 560px

## Guidance

### Do

- Keep the ground the dark teal-charcoal cabinet; let one object be lit at a time.
- Use citrus only for purchase intent, selected state, and focus; hang figures on the caliper rail.
- Use deep teal and jade for assurance, confidence, and in-stock signals.
- Group spec rows with cool hairlines and the rail, not a card per item.

### Don't

- Do not default to a white product stage or add a third vivid hue.
- Do not build a rainbow promotion, colored side rails, or a wall of identical cards.
- Do not box the nav into a pill or float it; let it sit open across the header.
- Do not mix arbitrary radii; keep 4 / 18 / 28 / 9999.

### Accessibility

High contrast light text (#EDF2EF) on the dark ground; citrus primary uses near-black ink; every form control explicitly styled with a visible citrus focus ring; motion gated behind prefers-reduced-motion; settled state visible with no JavaScript.

## Imagery Direction

### Pairs With

vitrine-studio

### Summary

One dominant object floated and lit on a dark seamless cabinet stage with a citrus halo of backlight and a cool teal reflection beneath — the Vitrine Studio technique applied against a dark ground rather than white.

### Subjects

- a titanium watch with a teal dial
- a sculptural object on a glass shelf
- a single premium product floated in a lit cabinet

### Usage

Full-bleed hero with the object lit center-frame; feature panels crop tighter with a reduced halo; never a room, scene, horizon, or multiple competing objects.
DESIGN.md
---
version: "alpha"
name: "Plinth"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#0E1614"
  surface: "#16211E"
  recess: "#0A100E"
  shelf: "#1E2D29"
  text: "#EDF2EF"
  muted: "#8FA39C"
  border: "#2A3A35"
  accent: "#D7FF4A"
  accent_dim: "#A7C92F"
  on_accent: "#0B140C"
  jade: "#34C9B4"
  teal_deep: "#0E5F58"
  success: "#34C9B4"
  warning: "#E8B53A"
  error: "#FF6B5E"
  info: "#34C9B4"
typography:
  headline-lg:
    fontFamily: "Bricolage Grotesque"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.03em"
  headline-md:
    fontFamily: "Bricolage Grotesque"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.03em"
  body-md:
    fontFamily: "Geist"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.03em"
  label-md:
    fontFamily: "Geist Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  sm: "4px"
  md: "18px"
  lg: "28px"
  full: "9999px"
  none: "0px"
spacing:
  base: "6px"
  xs: "6px"
  sm: "12px"
  md: "18px"
  lg: "28px"
  xl: "44px"
  2xl: "72px"
  3xl: "112px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-recess:
    backgroundColor: "{colors.recess}"
  color-reference-shelf:
    backgroundColor: "{colors.shelf}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-accent_dim:
    backgroundColor: "{colors.accent_dim}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-jade:
    backgroundColor: "{colors.jade}"
  color-reference-teal_deep:
    backgroundColor: "{colors.teal_deep}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  button-primary:
    backgroundColor: "{colors.accent}"
    textColor: "#000000"
    typography: "{typography.label-md}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    height: "44px"
---

# Plinth

## Overview

Display-case commerce: a storefront that behaves like a lit vitrine after hours. One object at a time floats on an illuminated shelf against a deep teal-charcoal ground, measured on a caliper spec-rail, with the buy docked where your hand expects it. Citrus is the light that marks purchase; deep teal is the trust that stays.

### Values

- one object under one light
- measured, not marketed — figures on a rail
- citrus as purchase energy, never decoration
- deep teal as durable assurance
- dark cabinet ground, never white

### Anti-Values

- white product-stage default
- rainbow promotional grids
- a wall of identical product cards
- a third vivid hue creeping in
- marketing copy where a measured figure belongs

## Colors

Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.

| Token | Value |
|-------|-------|
| bg | `#0E1614` |
| surface | `#16211E` |
| recess | `#0A100E` |
| shelf | `#1E2D29` |
| text | `#EDF2EF` |
| muted | `#8FA39C` |
| border | `#2A3A35` |
| accent | `#D7FF4A` |
| accent_dim | `#A7C92F` |
| on_accent | `#0B140C` |
| jade | `#34C9B4` |
| teal_deep | `#0E5F58` |
| success | `#34C9B4` |
| warning | `#E8B53A` |
| error | `#FF6B5E` |
| info | `#34C9B4` |

## Typography

- **Headline-Lg**: Bricolage Grotesque, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Bricolage Grotesque, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Geist, 17px, weight 400, line-height 1.5.
- **Label-Md**: Geist Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `6px`
- **Xs**: `6px`
- **Sm**: `12px`
- **Md**: `18px`
- **Lg**: `28px`
- **Xl**: `44px`
- **2xl**: `72px`
- **3xl**: `112px`

### Grid

Contained editorial column (max 1240px) with vertically stacked lit shelf-rows and section bands; product detail uses a two-column object + spec/dock split that collapses to one column.

### Whitespace

Large quiet dark margins frame the lit object; internal control groups use 6-18px gaps while hero and section gaps expand to 72-112px.

### Density

airy dark stage with compact mono high-information islands for price/stock/spec

### Responsive

Renders from ~390px mobile to 2560px+ ultra-wide; single column on mobile with the object and dock first; contained content capped and centred on ultra-wide, only the hero spans 100vw.

### Breakpoints

- **Mobile**: 390px
- **Tablet**: 768px
- **Desktop**: 1440px
- **Reflow**: 900px and 560px

## Elevation & Depth

### Shadows

- **Sm**: 0 1px 0 rgba(237,242,239,.05)
- **Md**: 0 18px 44px rgba(0,0,0,.5)
- **Lg**: 0 26px 60px rgba(0,0,0,.55)
- **Glow**: 0 0 48px -8px rgba(215,255,74,.45)

## Shapes

### Rounded

- **Sm**: `4px`
- **Md**: `18px`
- **Lg**: `28px`
- **Full**: `9999px`
- **None**: `0px`

### Surfaces

- **Bg Pattern**: none; dark teal-charcoal cabinet interior, objects lit on surface-to-shelf gradient panels with a citrus underline-of-light at the bottom edge; no dot, grid, stripe, or paper texture
- **Card Style**: matte dark shelf-gradient panels, no borders, deep cabinet drop shadow, optional citrus light-underline; spec rows grouped by cool hairlines not a card per item; radii 18px cards / 28px panels
- **Treatment**: lit display case — one citrus halo of light behind the staged object and on the one primary control; deep teal seals assurance

### Borders

- **Default Width**: 1px
- **Accent Width**: 1px
- **Style**: solid
- **Character**: cool teal-charcoal hairlines for structure (the grouping dividers); citrus only on focus rings and the selected chip edge, never as a decorative side stripe

## Components

### Composition

Stage one object at a time on a lit shelf-row against a dark cabinet ground; frame it with a caliper spec-rail and a stock fill gauge; dock the primary acquisition where the hand expects it. Vertical stacked shelf rhythm, not an asymmetric offset commerce grid.

### Hierarchy

Large Bricolage display type and the lit object first, then a single citrus control for the next purchase action, with deep teal reserved for assurance and confidence.

### Density

Low-density dark surfaces with compact mono high-information islands for price, stock, and spec figures; the largest whitespace gap is dramatically larger than form gaps.

### Signature

Caliper spec-rail (citrus-tipped measured rail with mono callouts); stock fill gauge (jade-to-citrus bar filling toward the light); lit shelf-row (surface-to-shelf gradient panel with a citrus underline-of-light); docked acquisition (the one citrus-lit control); small square caliper-edged option chips.

## shadcn/ui Usage

When the target app uses shadcn/ui, copy DESIGN.md with shadcn instead of the plain DESIGN.md. It contains the same Katagami design-language source plus the shadcn/ui primitives, imports, theme variables, component recipes, and preview-shot guidance.

DESIGN.md with shadcn: `/language/en-019ef974-81de-7b50-8c5f-c11925d4f8af/DESIGN.with-shadcn.md`.

The shadcn page also exposes optional machine-readable files for automation, but the human-facing handoff is DESIGN.md with shadcn.

Install recommended primitives with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.

Use these primitives in shadcn apps:
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table

Implementation rule for agents: import shadcn primitives from `@/components/ui/*`, apply the generated CSS variables first, then compose the language-specific recipes from the companion MD. Katagami remains the source of truth; shadcn names are the implementation surface.

## Do's and Don'ts

- Do Keep the ground the dark teal-charcoal cabinet; let one object be lit at a time.
- Do Use citrus only for purchase intent, selected state, and focus; hang figures on the caliper rail.
- Do Use deep teal and jade for assurance, confidence, and in-stock signals.
- Do Group spec rows with cool hairlines and the rail, not a card per item.
- Don't Do not default to a white product stage or add a third vivid hue.
- Don't Do not build a rainbow promotion, colored side rails, or a wall of identical cards.
- Don't Do not box the nav into a pill or float it; let it sit open across the header.
- Don't Do not mix arbitrary radii; keep 4 / 18 / 28 / 9999.

### Accessibility

High contrast light text (#EDF2EF) on the dark ground; citrus primary uses near-black ink; every form control explicitly styled with a visible citrus focus ring; motion gated behind prefers-reduced-motion; settled state visible with no JavaScript.

## Imagery Direction

### Pairs With

vitrine-studio

### Summary

One dominant object floated and lit on a dark seamless cabinet stage with a citrus halo of backlight and a cool teal reflection beneath — the Vitrine Studio technique applied against a dark ground rather than white.

### Subjects

- a titanium watch with a teal dial
- a sculptural object on a glass shelf
- a single premium product floated in a lit cabinet

### Usage

Full-bleed hero with the object lit center-frame; feature panels crop tighter with a reduced halo; never a room, scene, horizon, or multiple competing objects.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "plinth",
  "type": "registry:theme",
  "title": "Plinth shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#0E1614",
      "foreground": "#EDF2EF",
      "card": "#16211E",
      "card-foreground": "#EDF2EF",
      "popover": "#16211E",
      "popover-foreground": "#EDF2EF",
      "primary": "#EDF2EF",
      "primary-foreground": "#111111",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#8FA39C",
      "muted-foreground": "#EDF2EF",
      "accent": "#D7FF4A",
      "accent-foreground": "#111111",
      "destructive": "#FF6B5E",
      "border": "#2A3A35",
      "input": "#2A3A35",
      "ring": "#D7FF4A",
      "chart-1": "#EDF2EF",
      "chart-2": "#f4f4f5",
      "chart-3": "#D7FF4A",
      "chart-4": "#34C9B4",
      "chart-5": "#E8B53A",
      "sidebar": "#16211E",
      "sidebar-foreground": "#EDF2EF",
      "sidebar-primary": "#EDF2EF",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#34C9B4",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#2A3A35",
      "sidebar-ring": "#D7FF4A",
      "radius": "18px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#EDF2EF",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D7FF4A",
      "accent-foreground": "#111111",
      "destructive": "#FF6B5E",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D7FF4A",
      "chart-1": "#EDF2EF",
      "chart-2": "#f4f4f5",
      "chart-3": "#D7FF4A",
      "chart-4": "#34C9B4",
      "chart-5": "#E8B53A",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#EDF2EF",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#D7FF4A",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D7FF4A",
      "radius": "18px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ef974-81de-7b50-8c5f-c11925d4f8af",
    "slug": "plinth",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "colors": [
        "accent",
        "accent_dim",
        "bg",
        "border",
        "error",
        "info",
        "jade",
        "muted",
        "on_accent",
        "recess",
        "shelf",
        "success",
        "surface",
        "teal_deep",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "mono_font"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "glow",
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ]
    }
  }
}
```
in the wild

embodiments

bespoke marketing landingopen full page ↗
landing · plinth
DESIGN.md

at a glance

Typography

headline-lgBricolage Grotesque · 33px · 700

The quick brown fox jumps

headline-mdBricolage Grotesque · 27px · 600

The quick brown fox jumps

body-mdGeist · 17px · 400

The quick brown fox jumps

label-mdGeist Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with

Agent-generated

remix lane

try a remix

Keep Plinthand swap a palette and an art style onto it — the landing & dashboard recolor live. The Studio does the same with all three lanes free.

UI language · fixed
Plinth
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

related

More like this