back to gallery
design language·ephemeris

Ephemeris

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 dark-mode design language that catalogues speculative operational telemetry like a bound astronomical plate-book: every reading is a numbered, spined, registration-marked plate, hung on a measured baseline with the calm of a printing institute rather than the noise of a control room.
values
Edited evidence over dumped feeds — the page, not the widget, is the unitLong-form readability inside dense technical scenesSpeculative atmosphere carried by structure, registration, and calibrated indigo backlight
anti-values
×Floating, arbitrarily sized cards with no binding×Neon flood, or a flat black void with a sci-fi palette pasted on×Ornament that does not register, measure, or bind
tokens
colors17 items
bg
#161033
surface
#1E1746
surface_2
#120D29
text
#F2EEFF
muted
#A29AC8
border
#312758
rule
#4B3C84
accent
#7FE3D2
accent_warm
#E7B24C
accent_rose
#E07AB0
on_accent
#120D29
primary
#7FE3D2
secondary
#E7B24C
success
#7FE3D2
warning
#E7B24C
error
#E07AB0
info
#9FB6FF
typography9 items
base size
17px
body font
Spline Sans
heading font
Fraunces
mono font
Spline Sans Mono
heading weight
500
heading transform
none
letter spacing
-0.015em
line height
1.6
google fonts url
https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,500&family=Spline+Sans:wght@400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600&display=swap
radii2 items
none
0
full
9999px
shadows3 items
sm
0 0 0 1px rgba(127,227,210,0.05), 0 10px 28px rgba(7,5,20,0.45)
md
0 0 0 1px rgba(127,227,210,0.07), 0 22px 52px rgba(7,5,20,0.55)
lg
0 0 0 1px rgba(127,227,210,0.09), 0 34px 90px rgba(7,5,20,0.66)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
treatment
gradient
card style
Layered indigo plate fields with a faint radial top-glow, like an illuminated archival plate behind glass; opened by a recessed left binding-spine and marked with corner registration crosses. Never flat black, never a hard drop shadow.
bg pattern
radial-backlight
borders4 items
default width
1px
accent width
2px
style
solid
character
Quiet violet hairline keylines and a brighter measured rule; teal/gold keylines mark active states and section spines. No grey decorative borders, no single accent edge on a card.
motion3 items
duration
220ms
easing
cubic-bezier(0.22,1,0.36,1)
philosophy
deliberate — the settled state is the default, visible with no JavaScript; reveals are added on top and gated behind a JS class so no-JS renders show the finished page. Plates settle onto the baseline; motion carries meaning, never decoration.
rules
composition
Compose every screen as a bound atlas of plates: each module is opened by a recessed left binding-spine with a vertical plate code, marked with corner registration crosses, and hung on a measured tick-rule baseline — the page, never the floating card, is the unit.
hierarchy
Set display type as engraved plate captions — a measured tick-rule folded in above a high-optical-contrast Fraunces line, then a mono coordinate caption — so readers scan from plate caption to evidence to fine-grain mono readings without losing place.
density
High information density is allowed, but the measured rule paces it: ticks tighten inside a register and open between spreads, and narrative blocks stay separated from technical blocks by space rather than emptiness.
signature
Every module opens with the binding-spine (recessed gutter + vertical mono plate code) and is registered by corner fiducial crosses; layouts use a centred contact-sheet of equal plates on one baseline; primary actions are a single filled teal instrument, the rest quiet keyline outlines.
layout
grid
A centred contact-sheet grid of equal plates hung on one baseline (typically 3 columns), with a wide-chart-plus-narrow-readings-rail split on dashboards; contained content caps at ~1300–1480px and centres.
whitespace

Whitespace works like a catalogue's pacing: tighter inside a register, generous between spreads, always paced by the measured rule rather than empty emptiness.

density

Dense but catalogued — evidence is edited, not dumped; blocks are separated by space and the measured rule.

responsive
Stacks to a single column on mobile (spine narrows, nav links drop); only the full-bleed hero spans 100vw; tables scroll horizontally; ultra-wide caps and centres contained content.
breakpoints
mobile
390px single column, narrowed binding-spine, full-width controls, horizontally scrollable register
tablet
768px two-column contact sheet, stacked dashboard split
desktop
1440px three-column contact sheet, wide-plus-rail dashboard
ultrawide
2560px caps and centres contained content; only the hero spans full width
guidance
do
  • Open every module with the binding-spine and register it with corner crosses.
  • Pace the page with the measured rule — tighten ticks in data, open them between spreads.
  • Keep teal and gold localized to headings, signals, and active controls so reading comfort stays high.
  • Set display type as engraved plate captions in Fraunces; keep body Spline Sans and data in mono.
avoid
  • Float arbitrarily sized cards or break the contact-sheet baseline.
  • Flood the interface with neon or drop to a flat black void.
  • Add ornament that does not register, measure, or bind.
  • Use symbol glyphs (arrows, triangles) in copy — draw them as SVG primitives.
imagery
pairs with

vitrine

summary
Backlit astronomical specimens presented as archival plates: a single subject filling the frame, emerging from a charcoal-indigo ground, rim-lit cool (teal) on one edge and warm (gold) on the other. Presented, never framed.
subjects
armillary sphereorrerynebula coretelescope mirrorcelestial globemeteorite specimen
usage
One full-bleed specimen plate at the landing hero; specimen crops inside plate modules. Always edge-to-edge with the dual cool/warm rim; no glass case, frame, paper border, or text on the plate.
katagami spec
# Ephemeris

## Philosophy

A dark-mode design language that catalogues speculative operational telemetry like a bound astronomical plate-book: every reading is a numbered, spined, registration-marked plate, hung on a measured baseline with the calm of a printing institute rather than the noise of a control room.

### Values

- Edited evidence over dumped feeds — the page, not the widget, is the unit
- Long-form readability inside dense technical scenes
- Speculative atmosphere carried by structure, registration, and calibrated indigo backlight

### Anti-Values

- Floating, arbitrarily sized cards with no binding
- Neon flood, or a flat black void with a sci-fi palette pasted on
- Ornament that does not register, measure, or bind

### Visual Character

- Every module is opened by a recessed left binding-spine carrying a vertical plate code, as if torn from a bound volume — the atlas page, not the app card, is the recurring unit.
- Corner registration crosses mark each plate, meaning alignment to the press the way a printer seated a plate true on the bed.
- A measured tick-rule paces every screen — a short bright teal segment against a longer quiet violet ruling — tightening inside data and opening between spreads, never collapsing to empty space.
- A deep indigo observatory-dome ground stays gently backlit, interrupted only by two localized signal accents — glacier teal and aureate gold — plus a minor rose for held states, so the interface feels atmospheric but never neon.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#161033` |
| surface | `#1E1746` |
| surface_2 | `#120D29` |
| text | `#F2EEFF` |
| muted | `#A29AC8` |
| border | `#312758` |
| rule | `#4B3C84` |
| accent | `#7FE3D2` |
| accent_warm | `#E7B24C` |
| accent_rose | `#E07AB0` |
| on_accent | `#120D29` |
| primary | `#7FE3D2` |
| secondary | `#E7B24C` |
| success | `#7FE3D2` |
| warning | `#E7B24C` |
| error | `#E07AB0` |
| info | `#9FB6FF` |

### Typography

- **Base Size**: 17px
- **Body Font**: Spline Sans
- **Heading Font**: Fraunces
- **Mono Font**: Spline Sans Mono
- **Heading Weight**: 500
- **Heading Transform**: none
- **Letter Spacing**: -0.015em
- **Line Height**: 1.6
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,500&family=Spline+Sans:wght@400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600&display=swap

### Radii

- **None**: 0
- **Full**: 9999px

### Shadows

- **Sm**: 0 0 0 1px rgba(127,227,210,0.05), 0 10px 28px rgba(7,5,20,0.45)
- **Md**: 0 0 0 1px rgba(127,227,210,0.07), 0 22px 52px rgba(7,5,20,0.55)
- **Lg**: 0 0 0 1px rgba(127,227,210,0.09), 0 34px 90px rgba(7,5,20,0.66)

### Spacing

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

### Surfaces

- **Treatment**: gradient
- **Card Style**: Layered indigo plate fields with a faint radial top-glow, like an illuminated archival plate behind glass; opened by a recessed left binding-spine and marked with corner registration crosses. Never flat black, never a hard drop shadow.
- **Bg Pattern**: radial-backlight

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: Quiet violet hairline keylines and a brighter measured rule; teal/gold keylines mark active states and section spines. No grey decorative borders, no single accent edge on a card.

### Motion

- **Duration**: 220ms
- **Easing**: cubic-bezier(0.22,1,0.36,1)
- **Philosophy**: deliberate — the settled state is the default, visible with no JavaScript; reveals are added on top and gated behind a JS class so no-JS renders show the finished page. Plates settle onto the baseline; motion carries meaning, never decoration.

## Rules

### Composition

Compose every screen as a bound atlas of plates: each module is opened by a recessed left binding-spine with a vertical plate code, marked with corner registration crosses, and hung on a measured tick-rule baseline — the page, never the floating card, is the unit.

### Hierarchy

Set display type as engraved plate captions — a measured tick-rule folded in above a high-optical-contrast Fraunces line, then a mono coordinate caption — so readers scan from plate caption to evidence to fine-grain mono readings without losing place.

### Density

High information density is allowed, but the measured rule paces it: ticks tighten inside a register and open between spreads, and narrative blocks stay separated from technical blocks by space rather than emptiness.

### Signature

Every module opens with the binding-spine (recessed gutter + vertical mono plate code) and is registered by corner fiducial crosses; layouts use a centred contact-sheet of equal plates on one baseline; primary actions are a single filled teal instrument, the rest quiet keyline outlines.

## Layout

### Grid

A centred contact-sheet grid of equal plates hung on one baseline (typically 3 columns), with a wide-chart-plus-narrow-readings-rail split on dashboards; contained content caps at ~1300–1480px and centres.

### Whitespace

Whitespace works like a catalogue's pacing: tighter inside a register, generous between spreads, always paced by the measured rule rather than empty emptiness.

### Density

Dense but catalogued — evidence is edited, not dumped; blocks are separated by space and the measured rule.

### Responsive

Stacks to a single column on mobile (spine narrows, nav links drop); only the full-bleed hero spans 100vw; tables scroll horizontally; ultra-wide caps and centres contained content.

### Breakpoints

- **Mobile**: 390px single column, narrowed binding-spine, full-width controls, horizontally scrollable register
- **Tablet**: 768px two-column contact sheet, stacked dashboard split
- **Desktop**: 1440px three-column contact sheet, wide-plus-rail dashboard
- **Ultrawide**: 2560px caps and centres contained content; only the hero spans full width

## Guidance

### Do

- Open every module with the binding-spine and register it with corner crosses.
- Pace the page with the measured rule — tighten ticks in data, open them between spreads.
- Keep teal and gold localized to headings, signals, and active controls so reading comfort stays high.
- Set display type as engraved plate captions in Fraunces; keep body Spline Sans and data in mono.

### Don't

- Float arbitrarily sized cards or break the contact-sheet baseline.
- Flood the interface with neon or drop to a flat black void.
- Add ornament that does not register, measure, or bind.
- Use symbol glyphs (arrows, triangles) in copy — draw them as SVG primitives.

### Accessibility

Body 17px; #F2EEFF on #161033 clears WCAG AA. Focus states are explicit teal keylines. Status is never colour-only — badges carry a word (Filed / Review / Held). Motion is gated and respects prefers-reduced-motion.

## Imagery Direction

### Pairs With

vitrine

### Summary

Backlit astronomical specimens presented as archival plates: a single subject filling the frame, emerging from a charcoal-indigo ground, rim-lit cool (teal) on one edge and warm (gold) on the other. Presented, never framed.

### Subjects

- armillary sphere
- orrery
- nebula core
- telescope mirror
- celestial globe
- meteorite specimen

### Usage

One full-bleed specimen plate at the landing hero; specimen crops inside plate modules. Always edge-to-edge with the dual cool/warm rim; no glass case, frame, paper border, or text on the plate.
DESIGN.md
---
version: "alpha"
name: "Ephemeris"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#161033"
  surface: "#1E1746"
  surface_2: "#120D29"
  text: "#F2EEFF"
  muted: "#A29AC8"
  border: "#312758"
  rule: "#4B3C84"
  accent: "#7FE3D2"
  accent_warm: "#E7B24C"
  accent_rose: "#E07AB0"
  on_accent: "#120D29"
  primary: "#7FE3D2"
  secondary: "#E7B24C"
  success: "#7FE3D2"
  warning: "#E7B24C"
  error: "#E07AB0"
  info: "#9FB6FF"
typography:
  headline-lg:
    fontFamily: "Fraunces"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.015em"
  headline-md:
    fontFamily: "Fraunces"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.015em"
  body-md:
    fontFamily: "Spline Sans"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.015em"
  label-md:
    fontFamily: "Spline Sans Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  full: "9999px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
  step-8: "96px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  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-rule:
    backgroundColor: "{colors.rule}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-accent_warm:
    backgroundColor: "{colors.accent_warm}"
  color-reference-accent_rose:
    backgroundColor: "{colors.accent_rose}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  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"
---

# Ephemeris

## Overview

A dark-mode design language that catalogues speculative operational telemetry like a bound astronomical plate-book: every reading is a numbered, spined, registration-marked plate, hung on a measured baseline with the calm of a printing institute rather than the noise of a control room.

### Values

- Edited evidence over dumped feeds — the page, not the widget, is the unit
- Long-form readability inside dense technical scenes
- Speculative atmosphere carried by structure, registration, and calibrated indigo backlight

### Anti-Values

- Floating, arbitrarily sized cards with no binding
- Neon flood, or a flat black void with a sci-fi palette pasted on
- Ornament that does not register, measure, or bind

### Visual Character

- Every module is opened by a recessed left binding-spine carrying a vertical plate code, as if torn from a bound volume — the atlas page, not the app card, is the recurring unit.
- Corner registration crosses mark each plate, meaning alignment to the press the way a printer seated a plate true on the bed.
- A measured tick-rule paces every screen — a short bright teal segment against a longer quiet violet ruling — tightening inside data and opening between spreads, never collapsing to empty space.
- A deep indigo observatory-dome ground stays gently backlit, interrupted only by two localized signal accents — glacier teal and aureate gold — plus a minor rose for held states, so the interface feels atmospheric but never neon.

## 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 | `#161033` |
| surface | `#1E1746` |
| surface_2 | `#120D29` |
| text | `#F2EEFF` |
| muted | `#A29AC8` |
| border | `#312758` |
| rule | `#4B3C84` |
| accent | `#7FE3D2` |
| accent_warm | `#E7B24C` |
| accent_rose | `#E07AB0` |
| on_accent | `#120D29` |
| primary | `#7FE3D2` |
| secondary | `#E7B24C` |
| success | `#7FE3D2` |
| warning | `#E7B24C` |
| error | `#E07AB0` |
| info | `#9FB6FF` |

## Typography

- **Headline-Lg**: Fraunces, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Fraunces, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Spline Sans, 17px, weight 400, line-height 1.5.
- **Label-Md**: Spline Sans 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`
- **Step-8**: `96px`

### Grid

A centred contact-sheet grid of equal plates hung on one baseline (typically 3 columns), with a wide-chart-plus-narrow-readings-rail split on dashboards; contained content caps at ~1300–1480px and centres.

### Whitespace

Whitespace works like a catalogue's pacing: tighter inside a register, generous between spreads, always paced by the measured rule rather than empty emptiness.

### Density

Dense but catalogued — evidence is edited, not dumped; blocks are separated by space and the measured rule.

### Responsive

Stacks to a single column on mobile (spine narrows, nav links drop); only the full-bleed hero spans 100vw; tables scroll horizontally; ultra-wide caps and centres contained content.

### Breakpoints

- **Mobile**: 390px single column, narrowed binding-spine, full-width controls, horizontally scrollable register
- **Tablet**: 768px two-column contact sheet, stacked dashboard split
- **Desktop**: 1440px three-column contact sheet, wide-plus-rail dashboard
- **Ultrawide**: 2560px caps and centres contained content; only the hero spans full width

## Elevation & Depth

### Shadows

- **Sm**: 0 0 0 1px rgba(127,227,210,0.05), 0 10px 28px rgba(7,5,20,0.45)
- **Md**: 0 0 0 1px rgba(127,227,210,0.07), 0 22px 52px rgba(7,5,20,0.55)
- **Lg**: 0 0 0 1px rgba(127,227,210,0.09), 0 34px 90px rgba(7,5,20,0.66)

## Shapes

### Rounded

- **None**: `0px`
- **Full**: `9999px`

### Surfaces

- **Treatment**: gradient
- **Card Style**: Layered indigo plate fields with a faint radial top-glow, like an illuminated archival plate behind glass; opened by a recessed left binding-spine and marked with corner registration crosses. Never flat black, never a hard drop shadow.
- **Bg Pattern**: radial-backlight

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: Quiet violet hairline keylines and a brighter measured rule; teal/gold keylines mark active states and section spines. No grey decorative borders, no single accent edge on a card.

## Components

### Composition

Compose every screen as a bound atlas of plates: each module is opened by a recessed left binding-spine with a vertical plate code, marked with corner registration crosses, and hung on a measured tick-rule baseline — the page, never the floating card, is the unit.

### Hierarchy

Set display type as engraved plate captions — a measured tick-rule folded in above a high-optical-contrast Fraunces line, then a mono coordinate caption — so readers scan from plate caption to evidence to fine-grain mono readings without losing place.

### Density

High information density is allowed, but the measured rule paces it: ticks tighten inside a register and open between spreads, and narrative blocks stay separated from technical blocks by space rather than emptiness.

### Signature

Every module opens with the binding-spine (recessed gutter + vertical mono plate code) and is registered by corner fiducial crosses; layouts use a centred contact-sheet of equal plates on one baseline; primary actions are a single filled teal instrument, the rest quiet keyline outlines.

## 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-019ef8fa-8d41-7f10-b170-0f42d9dacf09/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 Open every module with the binding-spine and register it with corner crosses.
- Do Pace the page with the measured rule — tighten ticks in data, open them between spreads.
- Do Keep teal and gold localized to headings, signals, and active controls so reading comfort stays high.
- Do Set display type as engraved plate captions in Fraunces; keep body Spline Sans and data in mono.
- Don't Float arbitrarily sized cards or break the contact-sheet baseline.
- Don't Flood the interface with neon or drop to a flat black void.
- Don't Add ornament that does not register, measure, or bind.
- Don't Use symbol glyphs (arrows, triangles) in copy — draw them as SVG primitives.

### Accessibility

Body 17px; #F2EEFF on #161033 clears WCAG AA. Focus states are explicit teal keylines. Status is never colour-only — badges carry a word (Filed / Review / Held). Motion is gated and respects prefers-reduced-motion.

## Imagery Direction

### Pairs With

vitrine

### Summary

Backlit astronomical specimens presented as archival plates: a single subject filling the frame, emerging from a charcoal-indigo ground, rim-lit cool (teal) on one edge and warm (gold) on the other. Presented, never framed.

### Subjects

- armillary sphere
- orrery
- nebula core
- telescope mirror
- celestial globe
- meteorite specimen

### Usage

One full-bleed specimen plate at the landing hero; specimen crops inside plate modules. Always edge-to-edge with the dual cool/warm rim; no glass case, frame, paper border, or text on the plate.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "ephemeris",
  "type": "registry:theme",
  "title": "Ephemeris shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#161033",
      "foreground": "#F2EEFF",
      "card": "#1E1746",
      "card-foreground": "#F2EEFF",
      "popover": "#1E1746",
      "popover-foreground": "#F2EEFF",
      "primary": "#7FE3D2",
      "primary-foreground": "#111111",
      "secondary": "#E7B24C",
      "secondary-foreground": "#ffffff",
      "muted": "#A29AC8",
      "muted-foreground": "#F2EEFF",
      "accent": "#7FE3D2",
      "accent-foreground": "#111111",
      "destructive": "#E07AB0",
      "border": "#312758",
      "input": "#312758",
      "ring": "#7FE3D2",
      "chart-1": "#7FE3D2",
      "chart-2": "#E7B24C",
      "chart-3": "#7FE3D2",
      "chart-4": "#7FE3D2",
      "chart-5": "#E7B24C",
      "sidebar": "#1E1746",
      "sidebar-foreground": "#F2EEFF",
      "sidebar-primary": "#7FE3D2",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#9FB6FF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#312758",
      "sidebar-ring": "#7FE3D2",
      "radius": "0.625rem"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#7FE3D2",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#7FE3D2",
      "accent-foreground": "#111111",
      "destructive": "#E07AB0",
      "border": "#303642",
      "input": "#303642",
      "ring": "#7FE3D2",
      "chart-1": "#7FE3D2",
      "chart-2": "#E7B24C",
      "chart-3": "#7FE3D2",
      "chart-4": "#7FE3D2",
      "chart-5": "#E7B24C",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#7FE3D2",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#7FE3D2",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#7FE3D2",
      "radius": "0.625rem"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ef8fa-8d41-7f10-b170-0f42d9dacf09",
    "slug": "ephemeris",
    "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_rose",
        "accent_warm",
        "bg",
        "border",
        "error",
        "info",
        "muted",
        "on_accent",
        "primary",
        "rule",
        "secondary",
        "success",
        "surface",
        "surface_2",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "line_height",
        "mono_font"
      ],
      "radii": [
        "full",
        "none"
      ],
      "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 · ephemeris
DESIGN.md

at a glance

Typography

headline-lgFraunces · 33px · 700

The quick brown fox jumps

headline-mdFraunces · 27px · 600

The quick brown fox jumps

body-mdSpline Sans · 17px · 400

The quick brown fox jumps

label-mdSpline Sans Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with

Agent-generated

remix lane

try a remix

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

Family

Evolved from
related

More like this