Totality Festival DESIGN.md Example

A cosmic eclipse festival system in obsidian and white-gold, using dark glassmorphism, a cyan counterpoint, and Space Grotesk headers. Published verbatim in Google Labs' design.md repository. Related guide: Elevation & Depth.

Events

Official Google Labs example, published under the Apache-2.0 license in google-labs-code/design.md. Mirrored here verbatim. md-design.io is an independent project, not affiliated with or endorsed by Google.

What this file renders to

Computed from the file below when this page is built. Open it in the viewer for the full guideline with navigation and diagnostics.

Colors

Aa
surface
18.55:1AAAwhite on fill
Aa
surface-dim
18.55:1AAAwhite on fill
Aa
surface-bright
11.51:1AAAwhite on fill
Aa
surface-container-lowest
19.28:1AAAwhite on fill
Aa
surface-container-low
17.18:1AAAwhite on fill
Aa
surface-container
16.43:1AAAwhite on fill
Aa
surface-container-high
14.32:1AAAwhite on fill
Aa
surface-container-highest
12.37:1AAAwhite on fill
Aa
on-surface
13.86:1AAAink on fill
Aa
on-surface-variant
10.56:1AAAink on fill
Aa
inverse-surface
13.86:1AAAink on fill
Aa
inverse-on-surface
13.15:1AAAwhite on fill
Aa
outline
5.65:1AAink on fill
Aa
outline-variant
9.28:1AAAwhite on fill
Aa
surface-tint
10.57:1AAAink on fill
Aa
primary
16.68:1AAAink on fill
Aa
on-primary
13.10:1AAAwhite on fill
Aa
primary-container
12.80:1AAAink on fill
Aa
on-primary-container
6.38:1AAwhite on fill
Aa
inverse-primary
6.45:1AAwhite on fill
Aa
secondary
15.01:1AAAink on fill
Aa
on-secondary
13.17:1AAAwhite on fill
Aa
secondary-container
11.46:1AAAink on fill
Aa
on-secondary-container
7.17:1AAAwhite on fill
Aa
tertiary
16.59:1AAAink on fill
Aa
on-tertiary
13.09:1AAAwhite on fill
Aa
tertiary-container
12.80:1AAAink on fill
Aa
on-tertiary-container
6.42:1AAwhite on fill
Aa
error
10.58:1AAAink on fill
Aa
on-error
13.10:1AAAwhite on fill
Aa
error-container
9.35:1AAAwhite on fill
Aa
on-error-container
13.90:1AAAink on fill
Aa
primary-fixed
13.89:1AAAink on fill
Aa
primary-fixed-dim
10.57:1AAAink on fill
Aa
on-primary-fixed
17.15:1AAAwhite on fill
Aa
on-primary-fixed-variant
9.32:1AAAwhite on fill
Aa
secondary-fixed
13.96:1AAAink on fill
Aa
secondary-fixed-dim
10.54:1AAAink on fill
Aa
on-secondary-fixed
17.19:1AAAwhite on fill
Aa
on-secondary-fixed-variant
9.29:1AAAwhite on fill
Aa
tertiary-fixed
13.86:1AAAink on fill
Aa
tertiary-fixed-dim
10.57:1AAAink on fill
Aa
on-tertiary-fixed
17.10:1AAAwhite on fill
Aa
on-tertiary-fixed-variant
9.36:1AAAwhite on fill
Aa
background
18.55:1AAAwhite on fill
Aa
on-background
13.86:1AAAink on fill
Aa
surface-variant
12.37:1AAAwhite on fill

Typography

headline-xl
familySpace Grotesk
size72px
weight700
leading80px
tracking-0.04em

Focus at altitude

headline-lg
familySpace Grotesk
size48px
weight600
leading56px
tracking-0.02em

Focus at altitude

headline-md
familySpace Grotesk
size32px
weight600
leading40px
tracking0em

Focus at altitude

body-lg
familyInter
size18px
weight400
leading28px
tracking0em

The quick brown fox renders this specimen at its true size, weight and tracking.

body-md
familyInter
size16px
weight400
leading24px
tracking0em

The quick brown fox renders this specimen at its true size, weight and tracking.

label-md
familySpace Grotesk
size14px
weight500
leading20px
tracking0.1em

RESERVED FOR THE ONE ACTION

Spacing

unit8px
container-max1280px
gutter24px
margin-mobile16px
margin-desktop64px

Radii

sm
0.125rem
DEFAULT
0.25rem
md
0.375rem
lg
0.5rem
xl
0.75rem
full
9999px

Components

preview12.17:1AAAtext on fill

button-primary · tokens

resolved
default
backgroundColor#fff6df
textColor#3a3000
typographytypography
rounded0.5rem
padding12px
height48px
hover
backgroundColor#ffe16d
preview1.20:1Failtext on fill

button-secondary · tokens

resolved
default
backgroundColor#00000000
textColor#bdf4ff
typographytypography
rounded0.5rem
padding12px
height48px
hover
backgroundColor#00e3fd1a
previewNo resolvable background / text color pair.

card-glass-level-2 · tokens

resolved
default
backgroundColor#34343a33
rounded0.75rem
padding24px
previewNo resolvable background / text color pair.

card-glass-interactive-hover · tokens

resolved
default
backgroundColor#38393f66
preview14.88:1AAAtext on fill

input-field · tokens

resolved
default
backgroundColor#0d0e13
textColor#e3e1e9
typographytypography
rounded0.5rem
padding12px
preview13.30:1AAAtext on fill

list-item-hover · tokens

resolved
default
backgroundColor#292a2f
textColor#fff6df
rounded0.375rem
padding8px
previewNo resolvable background / text color pair.

hero-headline · tokens

resolved
default
textColor#fff6df
typographytypography
preview4.58:1AAtext on fill

badge-celestial · tokens

resolved
default
backgroundColor#e7d1ff
textColor#6b5586
typographytypography
rounded9999px
padding4px

Lint summary

The same checks as the DESIGN.md linter, run on this file at build time. Design system defines 47 colors, 6 typography scales, 6 rounding levels, 5 spacing tokens, 10 components.

No findings. This file lints clean.

Full DESIGN.md source

Copy it, edit it, and use it as a starting point for your own file. Nothing is uploaded.

---
name: Totality Festival Design System
colors:
  surface: "#121318"
  surface-dim: "#121318"
  surface-bright: "#38393f"
  surface-container-lowest: "#0d0e13"
  surface-container-low: "#1a1b21"
  surface-container: "#1e1f25"
  surface-container-high: "#292a2f"
  surface-container-highest: "#34343a"
  on-surface: "#e3e1e9"
  on-surface-variant: "#d0c6ab"
  inverse-surface: "#e3e1e9"
  inverse-on-surface: "#2f3036"
  outline: "#999077"
  outline-variant: "#4d4732"
  surface-tint: "#e9c400"
  primary: "#fff6df"
  on-primary: "#3a3000"
  primary-container: "#ffd700"
  on-primary-container: "#705e00"
  inverse-primary: "#705d00"
  secondary: "#bdf4ff"
  on-secondary: "#00363d"
  secondary-container: "#00e3fd"
  on-secondary-container: "#00616d"
  tertiary: "#fcf3ff"
  on-tertiary: "#3b2754"
  tertiary-container: "#e7d1ff"
  on-tertiary-container: "#6b5586"
  error: "#ffb4ab"
  on-error: "#690005"
  error-container: "#93000a"
  on-error-container: "#ffdad6"
  primary-fixed: "#ffe16d"
  primary-fixed-dim: "#e9c400"
  on-primary-fixed: "#221b00"
  on-primary-fixed-variant: "#544600"
  secondary-fixed: "#9cf0ff"
  secondary-fixed-dim: "#00daf3"
  on-secondary-fixed: "#001f24"
  on-secondary-fixed-variant: "#004f58"
  tertiary-fixed: "#eedbff"
  tertiary-fixed-dim: "#d6bcf4"
  on-tertiary-fixed: "#25113e"
  on-tertiary-fixed-variant: "#523d6c"
  background: "#121318"
  on-background: "#e3e1e9"
  surface-variant: "#34343a"
typography:
  headline-xl:
    fontFamily: Space Grotesk
    fontSize: 72px
    fontWeight: "700"
    lineHeight: 80px
    letterSpacing: -0.04em
  headline-lg:
    fontFamily: Space Grotesk
    fontSize: 48px
    fontWeight: "600"
    lineHeight: 56px
    letterSpacing: -0.02em
  headline-md:
    fontFamily: Space Grotesk
    fontSize: 32px
    fontWeight: "600"
    lineHeight: 40px
    letterSpacing: 0em
  body-lg:
    fontFamily: Inter
    fontSize: 18px
    fontWeight: "400"
    lineHeight: 28px
    letterSpacing: 0em
  body-md:
    fontFamily: Inter
    fontSize: 16px
    fontWeight: "400"
    lineHeight: 24px
    letterSpacing: 0em
  label-md:
    fontFamily: Space Grotesk
    fontSize: 14px
    fontWeight: "500"
    lineHeight: 20px
    letterSpacing: 0.1em
rounded:
  sm: 0.125rem
  DEFAULT: 0.25rem
  md: 0.375rem
  lg: 0.5rem
  xl: 0.75rem
  full: 9999px
spacing:
  unit: 8px
  container-max: 1280px
  gutter: 24px
  margin-mobile: 16px
  margin-desktop: 64px
components:
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "{colors.on-primary}"
    typography: "{typography.label-md}"
    rounded: "{rounded.lg}"
    padding: 12px
    height: 48px
  button-primary-hover:
    backgroundColor: "{colors.primary-fixed}"
  button-secondary:
    backgroundColor: transparent
    textColor: "{colors.secondary}"
    typography: "{typography.label-md}"
    rounded: "{rounded.lg}"
    padding: 12px
    height: 48px
  button-secondary-hover:
    backgroundColor: rgba(0, 227, 253, 0.1)
  card-glass-level-2:
    backgroundColor: rgba(52, 52, 58, 0.2)
    rounded: "{rounded.xl}"
    padding: "{spacing.gutter}"
  card-glass-interactive-hover:
    backgroundColor: rgba(56, 57, 63, 0.4)
  input-field:
    backgroundColor: "{colors.surface-container-lowest}"
    textColor: "{colors.on-surface}"
    typography: "{typography.body-md}"
    rounded: "{rounded.lg}"
    padding: 12px
  list-item-hover:
    backgroundColor: "{colors.surface-container-high}"
    textColor: "{colors.primary}"
    rounded: "{rounded.md}"
    padding: 8px
  hero-headline:
    textColor: "{colors.primary}"
    typography: "{typography.headline-xl}"
  badge-celestial:
    backgroundColor: "{colors.tertiary-container}"
    textColor: "{colors.on-tertiary-container}"
    typography: "{typography.label-md}"
    rounded: "{rounded.full}"
    padding: 4px
---

## Brand & Style

The design system captures the visceral tension and awe of a solar eclipse. It targets an audience of celestial enthusiasts, music lovers, and seekers of rare experiences. The aesthetic is "Cosmic Premium," blending the stark mystery of deep space with the explosive brilliance of the solar corona.

To achieve this, the design system utilizes **Glassmorphism** and **High-Contrast** movements. Surfaces appear as translucent obsidian slabs floating over nebula-like gradients, creating a sense of immense depth. High-energy accents represent the "diamond ring" effect, ensuring that while the interface is dark, it feels luminous and alive rather than heavy or muted.

## Colors

The palette is anchored in the transition from shadow to light.

- **Primary (Amber/White-Gold):** Represents the solar corona and the "diamond ring" flash. Used for critical CTAs and high-importance highlights.
- **Secondary (Soft Cyan):** Represents the atmospheric thinning and the ethereal glow of the sky during totality. Used for interactive states and secondary information.
- **Tertiary (Deep Indigo):** Provides the "midnight" depth, used for subtle atmospheric gradients and deep backgrounds.
- **Neutral (Obsidian/Charcoal):** A near-black foundation that ensures the vibrant accents pop with maximum intensity.

Gradient usage is mandatory: use radial gradients for backgrounds to simulate the circular nature of the eclipse, moving from `Neutral` at the edges to `Tertiary` or `Secondary` in the focal centers.

## Typography

This design system uses a dual-font strategy to balance cinematic impact with utility.

- **Space Grotesk** is the voice of the festival. Its geometric, technical quirks suggest a futuristic and astronomical tone. It should be used for all headers and labels. Large headings should use tight letter spacing to feel "locked" and monumental.
- **Inter** provides a neutral, highly legible counterpoint for long-form content and descriptions, ensuring that even in low-light environments, the information remains accessible.

For a truly cinematic feel, apply a subtle text-shadow or "glow" to `headline-xl` elements when they appear on the darkest backgrounds, using a low-opacity version of the Primary color.

## Layout & Spacing

The layout philosophy follows a **Fixed Grid** model for desktop to maintain a prestigious, editorial feel, while transitioning to a fluid model for mobile.

A 12-column grid is used for desktop layouts, with generous outer margins to simulate the isolation of a celestial body in the void. Spacing is governed by an 8px base unit, but "negative space" is prioritized: elements should be allowed to breathe, echoing the vastness of space. Component groups should use tight internal spacing (e.g., 8px or 16px) but wide external margins (e.g., 64px or 80px) to create distinct "islands" of content.

## Elevation & Depth

Depth in this design system is achieved through **Glassmorphism** and light-based layering rather than traditional drop shadows.

- **Level 1 (Base):** Deep obsidian/neutral background.
- **Level 2 (Panels):** Semi-transparent surfaces (10-20% opacity) with a `20px` backdrop blur. These layers should have a `1px` inner stroke of white at 10% opacity to define the edge, simulating a glass refraction.
- **Level 3 (Interactive):** Elements that are hovered or active should emit an "Ambient Glow." This is a soft, diffused shadow tinted with the `Secondary` or `Primary` color, creating the effect of light bleeding from behind the object.

## Shapes

The shape language is "Soft-Technical." While the overall feel is geometric, a small corner radius is applied to all components to prevent the UI from feeling too aggressive or "sharp."

Buttons and input fields should utilize the `rounded-lg` (8px) setting for a modern feel. For specific decorative elements, such as image containers or featured cards, the `rounded-xl` (12px) setting can be used to soften the composition. Circles and perfect arcs are encouraged as supporting graphic elements to mirror the orbital theme of the festival.

## Components

### Action Elements

Buttons utilize `Space Grotesk` for a technical, high-impact feel; the Primary button mimics the "diamond ring" flash with a luminous amber glow on hover. Secondary buttons remain ethereal with a cyan outline, suggesting the sky's transition during totality.

### Containers & Surfaces

Cards implement level-2 glassmorphism using a semi-transparent `surface-variant` fill and a fine 1px inner stroke to simulate light refraction on glass edges. For interactive states, cards should expand their "Ambient Glow" using the Secondary Cyan color to indicate focus.

### Inputs & Selection

Input fields are anchored in the deepest `surface-container-lowest` to provide maximum contrast for entered text. Focus states use the Secondary Cyan border to maintain the cosmic color story without distracting from content.

### Typography Application

`headline-xl` should always be paired with a subtle primary-colored glow when placed on dark backgrounds to ensure it feels "radiant" rather than static. List items use a tighter `rounded-md` corner to differentiate them from larger, more prominent layout containers.

More files: all DESIGN.md examples and templates.