back to gallery
design language·vela

Vela

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
A listening console for a deep-space post. Vela reads the sky as a sounding: a faint return surfaces on a polar range-ring scope as a position, is resolved band by band down a frameless spectral stack, and is logged against the noise floor. Luminous aqua data on an abyssal carbon-teal ground; colour routes meaning (aqua signal, amber caution, coral contact). The instrument listens, it never commands; framing comes from a single luminous baseline rule and space, never from card borders or corner brackets.
values
Place data by range and frequency; let position carry contextFrame with a luminous rule and space, not with bordersColour as semantic routing, never as fillRead the whole night at a glance, on the long watch
anti-values
×Chamfered hardware silhouettes and corner brackets×Navy or black space-cockpit ground×Neon flood that blurs the linework×Oversized all-caps display headlines×Boxed pill navigation widgets
tokens
colors18 items
bg
#04140F
bg-deep
#020D09
surface
#082019
surface-2
#0B2A21
text
#DBF7EE
muted
#6E9D8E
border
#15463A
accent
#5BE6C8
accent-deep
#2FBFA0
on-accent
#03120D
amber
#FFC24B
signal
#FF5C8A
primary
#5BE6C8
secondary
#2FBFA0
success
#5BE6C8
warning
#FFC24B
error
#FF5C8A
info
#5BE6C8
typography8 items
base size
17px
body font
Space Grotesk
heading font
Space Grotesk
mono font
Space Mono
heading weight
600
heading transform
none
letter spacing
-0.005em
google fonts url
https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap
radii3 items
none
0px
soft
16px
pill
9999px
shadows3 items
sm
0 10px 24px rgba(2,13,9,.34)
md
0 18px 42px rgba(2,13,9,.46)
lg
0 26px 70px rgba(2,13,9,.58)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
treatment
frameless carbon-teal
card style
Flat carbon-teal surface (#082019) on an abyssal ground, framed only by a thin luminous top baseline rule (linear-gradient(90deg,transparent,var(--accent),transparent), opacity ~.45) that fades at the edges. No border, no chamfer, no corner bracket; group rows are separated by a single hairline.
bg pattern
faint receding polar/graticule grid
borders4 items
default width
1px
accent width
2px
style
solid
character
Surfaces are frameless; the only framing line is a luminous top baseline rule. Separators are single hairline rules in --border. Never a single accent edge, never a corner bracket.
motion3 items
duration
240ms
easing
cubic-bezier(0.2,0.8,0.2,1)
philosophy
deliberate — a slow scope sweep, a pulsing bloom, a gentle scroll reveal; settled state renders with no JS; respects prefers-reduced-motion
rules
composition
A deep-space listening post: a polar contact scope as the primary canvas, a stratified spectral stack as the detail layer, and frameless readout panels — organised by range and frequency, not by a central command canvas.
hierarchy
Mixed-case Space Grotesk headings are the human layer; medium frameless metric readouts are secondary structure; tiny uppercase Space Mono telemetry strips are tertiary detail.
density

High information density with disciplined spacing bands and breathing room around the scope.

signature
Concentric range-ring radial sweep places contacts by position; the same return is split into frameless horizontal spectral bands. Surfaces are frameless with a single luminous baseline rule. Status is light bars, beacon dots and segmented pills. Colour routes meaning: aqua=signal, amber=caution, coral=contact.
layout
grid
Embodiment: a fixed left range-gutter ruler beside a single stratified content column. Dashboard: a breathing 230px rail (left-border active state, never a boxed pill) beside a fluid main column of frameless panels. Landing: full-bleed hero, then scope-motif and spectral-stack sections.
whitespace

Generous outer gutters and padding above every title; tighter telemetry spacing inside bands, wider separation between systems.

density

High, with disciplined spacing bands.

responsive
Contained content caps at 1320px and centres on ultra-wide; only the hero spans 100vw. Grids use minmax(0,1fr) so children shrink instead of overflowing. Mobile folds away the gutter/rail and stacks to a single column.
breakpoints
deck
1320px
tablet
980px
field
760px
mobile
390px
guidance
do
  • Place data by range and frequency; let position carry context.
  • Keep surfaces frameless — frame with a luminous baseline rule and space.
  • Route meaning with aqua, amber and coral; keep colour sparse.
  • Pair every colour signal with a label or a position so meaning never depends on hue alone.
avoid
  • No chamfered hardware silhouettes, corner brackets, or single accent edges.
  • No navy or black ground; no pastel washes; no neon flood that blurs the linework.
  • No boxed or pill navigation widgets; let the rail breathe.
  • No oversized all-caps display headline.
imagery
pairs with

apogee

summary
Subjects are reconstructed as luminous aqua scan-traced wireframes on an abyssal carbon-teal field, read as a deep-sounding sensor return: a polar sweep of concentric range-rings, a central pulsar bloom, a spectral waveform threading horizontally, sparse amber tick callouts and one coral contact, scanlines and a faint receding polar grid. Operational and cinematic, never chaotic cyberpunk.
subjects
polar sounding sweepspulsar and radio-source bloomsspectral waveform returnsdish-array schematicsdeep-field star charts
usage
Landing hero is full-bleed and drives background-image: var(--hero-image) so the studio can swap it; below-hero imagery sits inside its section. End every generation prompt with 'NO text, NO letters, NO logos.'
katagami spec
# Vela

## Philosophy

A listening console for a deep-space post. Vela reads the sky as a sounding: a faint return surfaces on a polar range-ring scope as a position, is resolved band by band down a frameless spectral stack, and is logged against the noise floor. Luminous aqua data on an abyssal carbon-teal ground; colour routes meaning (aqua signal, amber caution, coral contact). The instrument listens, it never commands; framing comes from a single luminous baseline rule and space, never from card borders or corner brackets.

### Values

- Place data by range and frequency; let position carry context
- Frame with a luminous rule and space, not with borders
- Colour as semantic routing, never as fill
- Read the whole night at a glance, on the long watch

### Anti-Values

- Chamfered hardware silhouettes and corner brackets
- Navy or black space-cockpit ground
- Neon flood that blurs the linework
- Oversized all-caps display headlines
- Boxed pill navigation widgets

### Visual Character

- The primary canvas is a polar contact scope: concentric range-rings, a slow rotating sweep wedge, a central pulsing bloom for the tracked source and one coral mark for an unresolved contact — distance and bearing read by position.
- Below the scope, the same return splits into horizontal frameless spectral strata, each a frequency window with its own waveform and one reading, separated only by a 1px hairline.
- Surfaces are flat carbon-teal fields framed only by a thin luminous baseline rule that fades at the edges; hierarchy is built from space and type.
- Space Grotesk sets mixed-case headings against tiny uppercase Space Mono telemetry, separating human command language from machine readout.
- Aqua-mint, amber and coral appear as sparse highlighters — beacon dots, light bars, tick callouts — on an abyssal teal ground that glows like a deep-listening display.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#04140F` |
| bg-deep | `#020D09` |
| surface | `#082019` |
| surface-2 | `#0B2A21` |
| text | `#DBF7EE` |
| muted | `#6E9D8E` |
| border | `#15463A` |
| accent | `#5BE6C8` |
| accent-deep | `#2FBFA0` |
| on-accent | `#03120D` |
| amber | `#FFC24B` |
| signal | `#FF5C8A` |
| primary | `#5BE6C8` |
| secondary | `#2FBFA0` |
| success | `#5BE6C8` |
| warning | `#FFC24B` |
| error | `#FF5C8A` |
| info | `#5BE6C8` |

### Typography

- **Base Size**: 17px
- **Body Font**: Space Grotesk
- **Heading Font**: Space Grotesk
- **Mono Font**: Space Mono
- **Heading Weight**: 600
- **Heading Transform**: none
- **Letter Spacing**: -0.005em
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Space+Mono:wght@400;700&display=swap

### Radii

- **None**: 0px
- **Soft**: 16px
- **Pill**: 9999px

### Shadows

- **Sm**: 0 10px 24px rgba(2,13,9,.34)
- **Md**: 0 18px 42px rgba(2,13,9,.46)
- **Lg**: 0 26px 70px rgba(2,13,9,.58)

### Spacing

- **Base**: 8px
- **Scale**: [4,8,12,16,24,32,48,64]

### Surfaces

- **Treatment**: frameless carbon-teal
- **Card Style**: Flat carbon-teal surface (#082019) on an abyssal ground, framed only by a thin luminous top baseline rule (linear-gradient(90deg,transparent,var(--accent),transparent), opacity ~.45) that fades at the edges. No border, no chamfer, no corner bracket; group rows are separated by a single hairline.
- **Bg Pattern**: faint receding polar/graticule grid

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: Surfaces are frameless; the only framing line is a luminous top baseline rule. Separators are single hairline rules in --border. Never a single accent edge, never a corner bracket.

### Motion

- **Duration**: 240ms
- **Easing**: cubic-bezier(0.2,0.8,0.2,1)
- **Philosophy**: deliberate — a slow scope sweep, a pulsing bloom, a gentle scroll reveal; settled state renders with no JS; respects prefers-reduced-motion

## Rules

### Composition

A deep-space listening post: a polar contact scope as the primary canvas, a stratified spectral stack as the detail layer, and frameless readout panels — organised by range and frequency, not by a central command canvas.

### Hierarchy

Mixed-case Space Grotesk headings are the human layer; medium frameless metric readouts are secondary structure; tiny uppercase Space Mono telemetry strips are tertiary detail.

### Density

High information density with disciplined spacing bands and breathing room around the scope.

### Signature

Concentric range-ring radial sweep places contacts by position; the same return is split into frameless horizontal spectral bands. Surfaces are frameless with a single luminous baseline rule. Status is light bars, beacon dots and segmented pills. Colour routes meaning: aqua=signal, amber=caution, coral=contact.

## Layout

### Grid

Embodiment: a fixed left range-gutter ruler beside a single stratified content column. Dashboard: a breathing 230px rail (left-border active state, never a boxed pill) beside a fluid main column of frameless panels. Landing: full-bleed hero, then scope-motif and spectral-stack sections.

### Whitespace

Generous outer gutters and padding above every title; tighter telemetry spacing inside bands, wider separation between systems.

### Density

High, with disciplined spacing bands.

### Responsive

Contained content caps at 1320px and centres on ultra-wide; only the hero spans 100vw. Grids use minmax(0,1fr) so children shrink instead of overflowing. Mobile folds away the gutter/rail and stacks to a single column.

### Breakpoints

- **Deck**: 1320px
- **Tablet**: 980px
- **Field**: 760px
- **Mobile**: 390px

## Guidance

### Do

- Place data by range and frequency; let position carry context.
- Keep surfaces frameless — frame with a luminous baseline rule and space.
- Route meaning with aqua, amber and coral; keep colour sparse.
- Pair every colour signal with a label or a position so meaning never depends on hue alone.

### Don't

- No chamfered hardware silhouettes, corner brackets, or single accent edges.
- No navy or black ground; no pastel washes; no neon flood that blurs the linework.
- No boxed or pill navigation widgets; let the rail breathe.
- No oversized all-caps display headline.

### Accessibility

Beam-white text (#DBF7EE) on the carbon-teal ground clears WCAG AA for body and large text. Colour routing is always paired with a label or position. Motion respects prefers-reduced-motion; the settled state renders with no JavaScript. Every form control is explicitly styled with a visible aqua-mint focus ring.

## Imagery Direction

### Pairs With

apogee

### Summary

Subjects are reconstructed as luminous aqua scan-traced wireframes on an abyssal carbon-teal field, read as a deep-sounding sensor return: a polar sweep of concentric range-rings, a central pulsar bloom, a spectral waveform threading horizontally, sparse amber tick callouts and one coral contact, scanlines and a faint receding polar grid. Operational and cinematic, never chaotic cyberpunk.

### Subjects

- polar sounding sweeps
- pulsar and radio-source blooms
- spectral waveform returns
- dish-array schematics
- deep-field star charts

### Usage

Landing hero is full-bleed and drives background-image: var(--hero-image) so the studio can swap it; below-hero imagery sits inside its section. End every generation prompt with 'NO text, NO letters, NO logos.'
DESIGN.md
---
version: "alpha"
name: "Vela"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#04140F"
  bg-deep: "#020D09"
  surface: "#082019"
  surface-2: "#0B2A21"
  text: "#DBF7EE"
  muted: "#6E9D8E"
  border: "#15463A"
  accent: "#5BE6C8"
  accent-deep: "#2FBFA0"
  on-accent: "#03120D"
  amber: "#FFC24B"
  signal: "#FF5C8A"
  primary: "#5BE6C8"
  secondary: "#2FBFA0"
  success: "#5BE6C8"
  warning: "#FFC24B"
  error: "#FF5C8A"
  info: "#5BE6C8"
typography:
  headline-lg:
    fontFamily: "Space Grotesk"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.005em"
  headline-md:
    fontFamily: "Space Grotesk"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.005em"
  body-md:
    fontFamily: "Space Grotesk"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.005em"
  label-md:
    fontFamily: "Space Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  soft: "16px"
  pill: "9999px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-bg-deep:
    backgroundColor: "{colors.bg-deep}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-surface-2:
    backgroundColor: "{colors.surface-2}"
  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-deep:
    backgroundColor: "{colors.accent-deep}"
  color-reference-on-accent:
    backgroundColor: "{colors.on-accent}"
  color-reference-amber:
    backgroundColor: "{colors.amber}"
  color-reference-signal:
    backgroundColor: "{colors.signal}"
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  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.primary}"
    textColor: "#000000"
    typography: "{typography.label-md}"
    rounded: "{rounded.none}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.none}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.none}"
    height: "44px"
---

# Vela

## Overview

A listening console for a deep-space post. Vela reads the sky as a sounding: a faint return surfaces on a polar range-ring scope as a position, is resolved band by band down a frameless spectral stack, and is logged against the noise floor. Luminous aqua data on an abyssal carbon-teal ground; colour routes meaning (aqua signal, amber caution, coral contact). The instrument listens, it never commands; framing comes from a single luminous baseline rule and space, never from card borders or corner brackets.

### Values

- Place data by range and frequency; let position carry context
- Frame with a luminous rule and space, not with borders
- Colour as semantic routing, never as fill
- Read the whole night at a glance, on the long watch

### Anti-Values

- Chamfered hardware silhouettes and corner brackets
- Navy or black space-cockpit ground
- Neon flood that blurs the linework
- Oversized all-caps display headlines
- Boxed pill navigation widgets

### Visual Character

- The primary canvas is a polar contact scope: concentric range-rings, a slow rotating sweep wedge, a central pulsing bloom for the tracked source and one coral mark for an unresolved contact — distance and bearing read by position.
- Below the scope, the same return splits into horizontal frameless spectral strata, each a frequency window with its own waveform and one reading, separated only by a 1px hairline.
- Surfaces are flat carbon-teal fields framed only by a thin luminous baseline rule that fades at the edges; hierarchy is built from space and type.
- Space Grotesk sets mixed-case headings against tiny uppercase Space Mono telemetry, separating human command language from machine readout.
- Aqua-mint, amber and coral appear as sparse highlighters — beacon dots, light bars, tick callouts — on an abyssal teal ground that glows like a deep-listening display.

## 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 | `#04140F` |
| bg-deep | `#020D09` |
| surface | `#082019` |
| surface-2 | `#0B2A21` |
| text | `#DBF7EE` |
| muted | `#6E9D8E` |
| border | `#15463A` |
| accent | `#5BE6C8` |
| accent-deep | `#2FBFA0` |
| on-accent | `#03120D` |
| amber | `#FFC24B` |
| signal | `#FF5C8A` |
| primary | `#5BE6C8` |
| secondary | `#2FBFA0` |
| success | `#5BE6C8` |
| warning | `#FFC24B` |
| error | `#FF5C8A` |
| info | `#5BE6C8` |

## Typography

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

## Layout

### Spacing Tokens

- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`

### Grid

Embodiment: a fixed left range-gutter ruler beside a single stratified content column. Dashboard: a breathing 230px rail (left-border active state, never a boxed pill) beside a fluid main column of frameless panels. Landing: full-bleed hero, then scope-motif and spectral-stack sections.

### Whitespace

Generous outer gutters and padding above every title; tighter telemetry spacing inside bands, wider separation between systems.

### Density

High, with disciplined spacing bands.

### Responsive

Contained content caps at 1320px and centres on ultra-wide; only the hero spans 100vw. Grids use minmax(0,1fr) so children shrink instead of overflowing. Mobile folds away the gutter/rail and stacks to a single column.

### Breakpoints

- **Deck**: 1320px
- **Tablet**: 980px
- **Field**: 760px
- **Mobile**: 390px

## Elevation & Depth

### Shadows

- **Sm**: 0 10px 24px rgba(2,13,9,.34)
- **Md**: 0 18px 42px rgba(2,13,9,.46)
- **Lg**: 0 26px 70px rgba(2,13,9,.58)

## Shapes

### Rounded

- **None**: `0px`
- **Soft**: `16px`
- **Pill**: `9999px`

### Surfaces

- **Treatment**: frameless carbon-teal
- **Card Style**: Flat carbon-teal surface (#082019) on an abyssal ground, framed only by a thin luminous top baseline rule (linear-gradient(90deg,transparent,var(--accent),transparent), opacity ~.45) that fades at the edges. No border, no chamfer, no corner bracket; group rows are separated by a single hairline.
- **Bg Pattern**: faint receding polar/graticule grid

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: Surfaces are frameless; the only framing line is a luminous top baseline rule. Separators are single hairline rules in --border. Never a single accent edge, never a corner bracket.

## Components

### Composition

A deep-space listening post: a polar contact scope as the primary canvas, a stratified spectral stack as the detail layer, and frameless readout panels — organised by range and frequency, not by a central command canvas.

### Hierarchy

Mixed-case Space Grotesk headings are the human layer; medium frameless metric readouts are secondary structure; tiny uppercase Space Mono telemetry strips are tertiary detail.

### Density

High information density with disciplined spacing bands and breathing room around the scope.

### Signature

Concentric range-ring radial sweep places contacts by position; the same return is split into frameless horizontal spectral bands. Surfaces are frameless with a single luminous baseline rule. Status is light bars, beacon dots and segmented pills. Colour routes meaning: aqua=signal, amber=caution, coral=contact.

## 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-019efa17-1b97-76b3-b18d-8e9e7329f557/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 Place data by range and frequency; let position carry context.
- Do Keep surfaces frameless — frame with a luminous baseline rule and space.
- Do Route meaning with aqua, amber and coral; keep colour sparse.
- Do Pair every colour signal with a label or a position so meaning never depends on hue alone.
- Don't No chamfered hardware silhouettes, corner brackets, or single accent edges.
- Don't No navy or black ground; no pastel washes; no neon flood that blurs the linework.
- Don't No boxed or pill navigation widgets; let the rail breathe.
- Don't No oversized all-caps display headline.

### Accessibility

Beam-white text (#DBF7EE) on the carbon-teal ground clears WCAG AA for body and large text. Colour routing is always paired with a label or position. Motion respects prefers-reduced-motion; the settled state renders with no JavaScript. Every form control is explicitly styled with a visible aqua-mint focus ring.

## Imagery Direction

### Pairs With

apogee

### Summary

Subjects are reconstructed as luminous aqua scan-traced wireframes on an abyssal carbon-teal field, read as a deep-sounding sensor return: a polar sweep of concentric range-rings, a central pulsar bloom, a spectral waveform threading horizontally, sparse amber tick callouts and one coral contact, scanlines and a faint receding polar grid. Operational and cinematic, never chaotic cyberpunk.

### Subjects

- polar sounding sweeps
- pulsar and radio-source blooms
- spectral waveform returns
- dish-array schematics
- deep-field star charts

### Usage

Landing hero is full-bleed and drives background-image: var(--hero-image) so the studio can swap it; below-hero imagery sits inside its section. End every generation prompt with 'NO text, NO letters, NO logos.'
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "vela",
  "type": "registry:theme",
  "title": "Vela shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#04140F",
      "foreground": "#DBF7EE",
      "card": "#082019",
      "card-foreground": "#DBF7EE",
      "popover": "#082019",
      "popover-foreground": "#DBF7EE",
      "primary": "#5BE6C8",
      "primary-foreground": "#111111",
      "secondary": "#2FBFA0",
      "secondary-foreground": "#ffffff",
      "muted": "#6E9D8E",
      "muted-foreground": "#DBF7EE",
      "accent": "#5BE6C8",
      "accent-foreground": "#111111",
      "destructive": "#FF5C8A",
      "border": "#15463A",
      "input": "#15463A",
      "ring": "#5BE6C8",
      "chart-1": "#5BE6C8",
      "chart-2": "#2FBFA0",
      "chart-3": "#5BE6C8",
      "chart-4": "#5BE6C8",
      "chart-5": "#FFC24B",
      "sidebar": "#082019",
      "sidebar-foreground": "#DBF7EE",
      "sidebar-primary": "#5BE6C8",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#5BE6C8",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#15463A",
      "sidebar-ring": "#5BE6C8",
      "radius": "0.625rem"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#5BE6C8",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#5BE6C8",
      "accent-foreground": "#111111",
      "destructive": "#FF5C8A",
      "border": "#303642",
      "input": "#303642",
      "ring": "#5BE6C8",
      "chart-1": "#5BE6C8",
      "chart-2": "#2FBFA0",
      "chart-3": "#5BE6C8",
      "chart-4": "#5BE6C8",
      "chart-5": "#FFC24B",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#5BE6C8",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#5BE6C8",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#5BE6C8",
      "radius": "0.625rem"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019efa17-1b97-76b3-b18d-8e9e7329f557",
    "slug": "vela",
    "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-deep",
        "amber",
        "bg",
        "bg-deep",
        "border",
        "error",
        "info",
        "muted",
        "on-accent",
        "primary",
        "secondary",
        "signal",
        "success",
        "surface",
        "surface-2",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "mono_font"
      ],
      "radii": [
        "none",
        "pill",
        "soft"
      ],
      "shadows": [
        "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 · vela
DESIGN.md

at a glance

Typography

headline-lgSpace Grotesk · 33px · 700

The quick brown fox jumps

headline-mdSpace Grotesk · 27px · 600

The quick brown fox jumps

body-mdSpace Grotesk · 17px · 400

The quick brown fox jumps

label-mdSpace Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with

Agent-generated

remix lane

try a remix

Keep Velaand 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
Vela
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

Evolved from
related

More like this