back to gallery
design language·mascon

Mascon

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 language for a buried lunar shelter, read the way you drill it: top down, by depth. There is no left-edge service spine and no command panel bolted to a wall — the whole interface is a core sample. You descend through strata: surface regolith, the airlock, the pressurized core where one operator breathes, then bedrock and the mass concentration (the mascon) below. A meter ruler keeps you oriented; a continuous core column carries every life-support state down the page.
values
Depth is the hierarchy: light and spacious at the surface, dense and quiet toward bedrockHuman scale: one operator drawn against two hundred metres of strataProcedure over spectacleMaterial honesty: regolith, aluminum, ink, the umbilical lineColour spent only on consequence: oxygen, hold, alarmOrientation by depth: every reading has a metre location
anti-values
×Black or white default grounds×A left service-spine binder, full-width amber tape bars, or condensed all-caps display (that is the sibling, Regolith)×Seven-segment command capsules and generic SaaS card grids×Glow, bloom, neon, glass, or gradient washes×Accent colour spent on decoration rather than a real life-support state
tokens
colors14 items
bg
#1B1714
surface
#241F1A
surface_2
#2E2823
recess
#14110E
text
#F0E9DD
bone
#D9CFBE
muted
#A0968A
border
rgba(240,233,221,0.10)
accent
#5FD3C8
on_accent
#14110E
success
#5FD3C8
warning
#D69A3A
error
#C9622F
info
#A0968A
typography8 items
base size
17px
body font
Spline Sans
heading font
Space Grotesk
mono font
Spline Sans Mono
heading weight
600
heading transform
none
letter spacing
-0.01em
google fonts url
https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Spline+Sans:wght@400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600&display=swap
radii5 items
none
0
sm
16px
md
16px
lg
16px
full
9999px
shadows3 items
sm
inset 0 0 0 1px rgba(240,233,221,0.05)
md
0 24px 60px rgba(0,0,0,0.42)
lg
0 48px 120px rgba(0,0,0,0.55)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
bg pattern
warm iron-oxide regolith ground with a descent gradient (lighter soil at the surface, deepest core at the bottom); a continuous core-sample column and a meter depth ruler down the left
card style
flat warm-dark plates with 16px band corners, inset bone hairline, generous padding; no glass, no gradient washes, no accent edges
treatment
regolith soil and aluminum on warm dark; dot-matrix punch readouts; no glow, no neon
borders4 items
default width
1px
accent width
0
style
solid
character
near-invisible bone hairlines for structure only; colour is carried by the core-sample intervals and status pills, never by an accent edge on a card
motion3 items
duration
500ms
easing
cubic-bezier(.2,.7,.2,1)
philosophy
the settled, fully-rendered page is the default and shows with no JavaScript; motion is layered on top behind an .mtn class on <html> — bands rise and core intervals fill downward like drilling as you descend; respects prefers-reduced-motion
rules
composition
Stack content by depth as horizontal strata, oriented by a persistent left meter ruler and a continuous core-sample column. Let the surface breathe and the bedrock go quiet; risk surfaces at the bottom of the core. Never a left service-spine binder or columns-in-a-binder.
hierarchy
Hierarchy is depth and the core column, not colour variety. Display titles are mixed-case Space Grotesk; readouts and part-IDs are mono; body annotations stay small. Oxygen-cyan leads; amber marks a hold; rust marks a real alarm.
density
Dense inside metric matrices and the descent ledger, but every dense stratum has a quieter, deeper band or a core-column pause nearby so the page reads controlled.
signature
A depth-strata register; a continuous core-sample column with role-coloured intervals; a persistent meter depth ruler; dot-matrix punch-grid readouts; and one operator at human scale against the strata.
layout
grid

Three-track grid: depth-ruler | core-column | content stack. Content caps at ~1320-1480px and centres; only the landing hero spans 100vw.

whitespace

4-8px for dot-matrix and ticks, 16-32px inside plates, 48-96px for strata gaps and the surface breath; pad above every title.

density

Light and spacious at the surface stratum, denser in the core metrics and ledger, quiet again at bedrock.

responsive
Renders from ~390px mobile to 2560px+ ultra-wide; tablet drops the depth ruler, mobile collapses to a single scrollable descent with a thin core spine; grids shrink rather than overflow (minmax(0,1fr) + min-width:0).
breakpoints
mobile
390px
tablet
768px
desktop
1200px
reflow
1100px and 900px and 560px
guidance
do
  • Stack content by depth; let the meter ruler and core column orient every reading.
  • Lead with oxygen-cyan; reserve amber for hold and rust for alarm.
  • Keep one operator at human scale somewhere on the page.
  • Let the surface stratum breathe and the bedrock go quiet.
  • Read telemetry as dot-matrix punch grids in the metric's role colour.
  • Use mixed-case Space Grotesk display and mono readouts; pad above titles.
avoid
  • Do not default to a black or white ground.
  • Do not use a left service-spine binder, full-width amber tape bars, condensed all-caps display, or seven-segment command capsules (that is the sibling, Regolith).
  • Do not spend an accent on decoration, give a card an accent edge, or box the masthead into a pill.
  • Do not use glow, bloom, neon, glass, or gradient washes.
  • Do not round to arbitrary radii or nest cards.
imagery
pairs with

anodize

summary
Flat high-contrast monochrome inked engineering plates of core samples, strata cutaways, umbilical lines, and hatch seals, with one operator at human scale against the depth of the strata; halftone hatching, a single amber risk-tape, a barcode part-ID rail.
subjects
lunar core-sample / strata cutawayburied habitat module in sectionoxygen umbilical lineshatch seal diagramone EVA operator at human scalemascon mass-concentration core
usage
Full-bleed landing hero as a vertical core-sample column bleeding off all edges; feature plates as tighter inked figures with leader-line callouts; empty-states as a sparse strata outline on a large vacuum-black-to-soil field.
katagami spec
# Mascon

## Philosophy

A language for a buried lunar shelter, read the way you drill it: top down, by depth. There is no left-edge service spine and no command panel bolted to a wall — the whole interface is a core sample. You descend through strata: surface regolith, the airlock, the pressurized core where one operator breathes, then bedrock and the mass concentration (the mascon) below. A meter ruler keeps you oriented; a continuous core column carries every life-support state down the page.

### Values

- Depth is the hierarchy: light and spacious at the surface, dense and quiet toward bedrock
- Human scale: one operator drawn against two hundred metres of strata
- Procedure over spectacle
- Material honesty: regolith, aluminum, ink, the umbilical line
- Colour spent only on consequence: oxygen, hold, alarm
- Orientation by depth: every reading has a metre location

### Anti-Values

- Black or white default grounds
- A left service-spine binder, full-width amber tape bars, or condensed all-caps display (that is the sibling, Regolith)
- Seven-segment command capsules and generic SaaS card grids
- Glow, bloom, neon, glass, or gradient washes
- Accent colour spent on decoration rather than a real life-support state

### Visual Character

- A continuous vertical core-sample column runs down the left edge through the whole page, divided into intervals coloured by role — cyan oxygen, amber hold, rust risk, hatched soil and rock — recolouring on palette swap because every interval maps to a semantic role.
- A persistent meter depth ruler with tick marks sits left of the core, giving every reading a location in the strata; sections are horizontal strata stacked by depth, not columns in a binder.
- Telemetry reads as dot-matrix punch grids whose lit dots take the metric's role colour, on a warm iron-oxide regolith ground tuned warm in its neutrals.
- Display is Space Grotesk, geometric and wide and mixed-case; body is Spline Sans; readouts and part-IDs are Spline Sans Mono — never condensed all-caps.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#1B1714` |
| surface | `#241F1A` |
| surface_2 | `#2E2823` |
| recess | `#14110E` |
| text | `#F0E9DD` |
| bone | `#D9CFBE` |
| muted | `#A0968A` |
| border | `rgba(240,233,221,0.10)` |
| accent | `#5FD3C8` |
| on_accent | `#14110E` |
| success | `#5FD3C8` |
| warning | `#D69A3A` |
| error | `#C9622F` |
| info | `#A0968A` |

### Typography

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

### Radii

- **None**: 0
- **Sm**: 16px
- **Md**: 16px
- **Lg**: 16px
- **Full**: 9999px

### Shadows

- **Sm**: inset 0 0 0 1px rgba(240,233,221,0.05)
- **Md**: 0 24px 60px rgba(0,0,0,0.42)
- **Lg**: 0 48px 120px rgba(0,0,0,0.55)

### Spacing

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

### Surfaces

- **Bg Pattern**: warm iron-oxide regolith ground with a descent gradient (lighter soil at the surface, deepest core at the bottom); a continuous core-sample column and a meter depth ruler down the left
- **Card Style**: flat warm-dark plates with 16px band corners, inset bone hairline, generous padding; no glass, no gradient washes, no accent edges
- **Treatment**: regolith soil and aluminum on warm dark; dot-matrix punch readouts; no glow, no neon

### Borders

- **Default Width**: 1px
- **Accent Width**: 0
- **Style**: solid
- **Character**: near-invisible bone hairlines for structure only; colour is carried by the core-sample intervals and status pills, never by an accent edge on a card

### Motion

- **Duration**: 500ms
- **Easing**: cubic-bezier(.2,.7,.2,1)
- **Philosophy**: the settled, fully-rendered page is the default and shows with no JavaScript; motion is layered on top behind an .mtn class on <html> — bands rise and core intervals fill downward like drilling as you descend; respects prefers-reduced-motion

## Rules

### Composition

Stack content by depth as horizontal strata, oriented by a persistent left meter ruler and a continuous core-sample column. Let the surface breathe and the bedrock go quiet; risk surfaces at the bottom of the core. Never a left service-spine binder or columns-in-a-binder.

### Hierarchy

Hierarchy is depth and the core column, not colour variety. Display titles are mixed-case Space Grotesk; readouts and part-IDs are mono; body annotations stay small. Oxygen-cyan leads; amber marks a hold; rust marks a real alarm.

### Density

Dense inside metric matrices and the descent ledger, but every dense stratum has a quieter, deeper band or a core-column pause nearby so the page reads controlled.

### Signature

A depth-strata register; a continuous core-sample column with role-coloured intervals; a persistent meter depth ruler; dot-matrix punch-grid readouts; and one operator at human scale against the strata.

## Layout

### Grid

Three-track grid: depth-ruler | core-column | content stack. Content caps at ~1320-1480px and centres; only the landing hero spans 100vw.

### Whitespace

4-8px for dot-matrix and ticks, 16-32px inside plates, 48-96px for strata gaps and the surface breath; pad above every title.

### Density

Light and spacious at the surface stratum, denser in the core metrics and ledger, quiet again at bedrock.

### Responsive

Renders from ~390px mobile to 2560px+ ultra-wide; tablet drops the depth ruler, mobile collapses to a single scrollable descent with a thin core spine; grids shrink rather than overflow (minmax(0,1fr) + min-width:0).

### Breakpoints

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

## Guidance

### Do

- Stack content by depth; let the meter ruler and core column orient every reading.
- Lead with oxygen-cyan; reserve amber for hold and rust for alarm.
- Keep one operator at human scale somewhere on the page.
- Let the surface stratum breathe and the bedrock go quiet.
- Read telemetry as dot-matrix punch grids in the metric's role colour.
- Use mixed-case Space Grotesk display and mono readouts; pad above titles.

### Don't

- Do not default to a black or white ground.
- Do not use a left service-spine binder, full-width amber tape bars, condensed all-caps display, or seven-segment command capsules (that is the sibling, Regolith).
- Do not spend an accent on decoration, give a card an accent edge, or box the masthead into a pill.
- Do not use glow, bloom, neon, glass, or gradient washes.
- Do not round to arbitrary radii or nest cards.

### Accessibility

High contrast bone/cyan on warm-dark; status carried by colour AND label/shape; mono readouts stay 15px+; visible 2px cyan focus rings with offset; all form controls explicitly styled with no browser defaults.

## Imagery Direction

### Pairs With

anodize

### Summary

Flat high-contrast monochrome inked engineering plates of core samples, strata cutaways, umbilical lines, and hatch seals, with one operator at human scale against the depth of the strata; halftone hatching, a single amber risk-tape, a barcode part-ID rail.

### Subjects

- lunar core-sample / strata cutaway
- buried habitat module in section
- oxygen umbilical lines
- hatch seal diagram
- one EVA operator at human scale
- mascon mass-concentration core

### Usage

Full-bleed landing hero as a vertical core-sample column bleeding off all edges; feature plates as tighter inked figures with leader-line callouts; empty-states as a sparse strata outline on a large vacuum-black-to-soil field.
DESIGN.md
---
version: "alpha"
name: "Mascon"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#1B1714"
  surface: "#241F1A"
  surface_2: "#2E2823"
  recess: "#14110E"
  text: "#F0E9DD"
  bone: "#D9CFBE"
  muted: "#A0968A"
  accent: "#5FD3C8"
  on_accent: "#14110E"
  success: "#5FD3C8"
  warning: "#D69A3A"
  error: "#C9622F"
  info: "#A0968A"
typography:
  headline-lg:
    fontFamily: "Space Grotesk"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.01em"
  headline-md:
    fontFamily: "Space Grotesk"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.01em"
  body-md:
    fontFamily: "Spline Sans"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.01em"
  label-md:
    fontFamily: "Spline Sans Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  sm: "16px"
  md: "16px"
  lg: "16px"
  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-recess:
    backgroundColor: "{colors.recess}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-bone:
    backgroundColor: "{colors.bone}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  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"
---

# Mascon

## Overview

A language for a buried lunar shelter, read the way you drill it: top down, by depth. There is no left-edge service spine and no command panel bolted to a wall — the whole interface is a core sample. You descend through strata: surface regolith, the airlock, the pressurized core where one operator breathes, then bedrock and the mass concentration (the mascon) below. A meter ruler keeps you oriented; a continuous core column carries every life-support state down the page.

### Values

- Depth is the hierarchy: light and spacious at the surface, dense and quiet toward bedrock
- Human scale: one operator drawn against two hundred metres of strata
- Procedure over spectacle
- Material honesty: regolith, aluminum, ink, the umbilical line
- Colour spent only on consequence: oxygen, hold, alarm
- Orientation by depth: every reading has a metre location

### Anti-Values

- Black or white default grounds
- A left service-spine binder, full-width amber tape bars, or condensed all-caps display (that is the sibling, Regolith)
- Seven-segment command capsules and generic SaaS card grids
- Glow, bloom, neon, glass, or gradient washes
- Accent colour spent on decoration rather than a real life-support state

### Visual Character

- A continuous vertical core-sample column runs down the left edge through the whole page, divided into intervals coloured by role — cyan oxygen, amber hold, rust risk, hatched soil and rock — recolouring on palette swap because every interval maps to a semantic role.
- A persistent meter depth ruler with tick marks sits left of the core, giving every reading a location in the strata; sections are horizontal strata stacked by depth, not columns in a binder.
- Telemetry reads as dot-matrix punch grids whose lit dots take the metric's role colour, on a warm iron-oxide regolith ground tuned warm in its neutrals.
- Display is Space Grotesk, geometric and wide and mixed-case; body is Spline Sans; readouts and part-IDs are Spline Sans Mono — never condensed all-caps.

## 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 | `#1B1714` |
| surface | `#241F1A` |
| surface_2 | `#2E2823` |
| recess | `#14110E` |
| text | `#F0E9DD` |
| bone | `#D9CFBE` |
| muted | `#A0968A` |
| accent | `#5FD3C8` |
| on_accent | `#14110E` |
| success | `#5FD3C8` |
| warning | `#D69A3A` |
| error | `#C9622F` |
| info | `#A0968A` |

## 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**: 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

Three-track grid: depth-ruler | core-column | content stack. Content caps at ~1320-1480px and centres; only the landing hero spans 100vw.

### Whitespace

4-8px for dot-matrix and ticks, 16-32px inside plates, 48-96px for strata gaps and the surface breath; pad above every title.

### Density

Light and spacious at the surface stratum, denser in the core metrics and ledger, quiet again at bedrock.

### Responsive

Renders from ~390px mobile to 2560px+ ultra-wide; tablet drops the depth ruler, mobile collapses to a single scrollable descent with a thin core spine; grids shrink rather than overflow (minmax(0,1fr) + min-width:0).

### Breakpoints

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

## Elevation & Depth

### Shadows

- **Sm**: inset 0 0 0 1px rgba(240,233,221,0.05)
- **Md**: 0 24px 60px rgba(0,0,0,0.42)
- **Lg**: 0 48px 120px rgba(0,0,0,0.55)

## Shapes

### Rounded

- **None**: `0px`
- **Sm**: `16px`
- **Md**: `16px`
- **Lg**: `16px`
- **Full**: `9999px`

### Surfaces

- **Bg Pattern**: warm iron-oxide regolith ground with a descent gradient (lighter soil at the surface, deepest core at the bottom); a continuous core-sample column and a meter depth ruler down the left
- **Card Style**: flat warm-dark plates with 16px band corners, inset bone hairline, generous padding; no glass, no gradient washes, no accent edges
- **Treatment**: regolith soil and aluminum on warm dark; dot-matrix punch readouts; no glow, no neon

### Borders

- **Default Width**: 1px
- **Accent Width**: 0
- **Style**: solid
- **Character**: near-invisible bone hairlines for structure only; colour is carried by the core-sample intervals and status pills, never by an accent edge on a card

## Components

### Composition

Stack content by depth as horizontal strata, oriented by a persistent left meter ruler and a continuous core-sample column. Let the surface breathe and the bedrock go quiet; risk surfaces at the bottom of the core. Never a left service-spine binder or columns-in-a-binder.

### Hierarchy

Hierarchy is depth and the core column, not colour variety. Display titles are mixed-case Space Grotesk; readouts and part-IDs are mono; body annotations stay small. Oxygen-cyan leads; amber marks a hold; rust marks a real alarm.

### Density

Dense inside metric matrices and the descent ledger, but every dense stratum has a quieter, deeper band or a core-column pause nearby so the page reads controlled.

### Signature

A depth-strata register; a continuous core-sample column with role-coloured intervals; a persistent meter depth ruler; dot-matrix punch-grid readouts; and one operator at human scale against the strata.

## 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-019ef9bd-4e80-7452-bb29-5cf8257633e2/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 Stack content by depth; let the meter ruler and core column orient every reading.
- Do Lead with oxygen-cyan; reserve amber for hold and rust for alarm.
- Do Keep one operator at human scale somewhere on the page.
- Do Let the surface stratum breathe and the bedrock go quiet.
- Do Read telemetry as dot-matrix punch grids in the metric's role colour.
- Do Use mixed-case Space Grotesk display and mono readouts; pad above titles.
- Don't Do not default to a black or white ground.
- Don't Do not use a left service-spine binder, full-width amber tape bars, condensed all-caps display, or seven-segment command capsules (that is the sibling, Regolith).
- Don't Do not spend an accent on decoration, give a card an accent edge, or box the masthead into a pill.
- Don't Do not use glow, bloom, neon, glass, or gradient washes.
- Don't Do not round to arbitrary radii or nest cards.

### Accessibility

High contrast bone/cyan on warm-dark; status carried by colour AND label/shape; mono readouts stay 15px+; visible 2px cyan focus rings with offset; all form controls explicitly styled with no browser defaults.

## Imagery Direction

### Pairs With

anodize

### Summary

Flat high-contrast monochrome inked engineering plates of core samples, strata cutaways, umbilical lines, and hatch seals, with one operator at human scale against the depth of the strata; halftone hatching, a single amber risk-tape, a barcode part-ID rail.

### Subjects

- lunar core-sample / strata cutaway
- buried habitat module in section
- oxygen umbilical lines
- hatch seal diagram
- one EVA operator at human scale
- mascon mass-concentration core

### Usage

Full-bleed landing hero as a vertical core-sample column bleeding off all edges; feature plates as tighter inked figures with leader-line callouts; empty-states as a sparse strata outline on a large vacuum-black-to-soil field.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "mascon",
  "type": "registry:theme",
  "title": "Mascon shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#1B1714",
      "foreground": "#F0E9DD",
      "card": "#241F1A",
      "card-foreground": "#F0E9DD",
      "popover": "#241F1A",
      "popover-foreground": "#F0E9DD",
      "primary": "#F0E9DD",
      "primary-foreground": "#111111",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#A0968A",
      "muted-foreground": "#F0E9DD",
      "accent": "#5FD3C8",
      "accent-foreground": "#ffffff",
      "destructive": "#C9622F",
      "border": "rgba(240,233,221,0.10)",
      "input": "rgba(240,233,221,0.10)",
      "ring": "#5FD3C8",
      "chart-1": "#F0E9DD",
      "chart-2": "#f4f4f5",
      "chart-3": "#5FD3C8",
      "chart-4": "#5FD3C8",
      "chart-5": "#D69A3A",
      "sidebar": "#241F1A",
      "sidebar-foreground": "#F0E9DD",
      "sidebar-primary": "#F0E9DD",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#A0968A",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "rgba(240,233,221,0.10)",
      "sidebar-ring": "#5FD3C8",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#F0E9DD",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#5FD3C8",
      "accent-foreground": "#ffffff",
      "destructive": "#C9622F",
      "border": "#303642",
      "input": "#303642",
      "ring": "#5FD3C8",
      "chart-1": "#F0E9DD",
      "chart-2": "#f4f4f5",
      "chart-3": "#5FD3C8",
      "chart-4": "#5FD3C8",
      "chart-5": "#D69A3A",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#F0E9DD",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#5FD3C8",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#5FD3C8",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ef9bd-4e80-7452-bb29-5cf8257633e2",
    "slug": "mascon",
    "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",
        "bg",
        "bone",
        "border",
        "error",
        "info",
        "muted",
        "on_accent",
        "recess",
        "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": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "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 · mascon
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-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 Masconand 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
Mascon
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

Evolved from
related

More like this