Gallery
Gallery — Quiet Monochrome Portfolio
Live preview
Use this system
Three ways to drop Gallery into your workflow.
Save the file for your tool — your agent then generates UI in Gallery, automatically.
CLAUDE.mdRepo root — Claude Code reads it automatically.
.cursor/rules/gallery.mdcProject rule — applied to every generation.
.windsurfrulesRepo root — Cascade reads it automatically.
.github/copilot-instructions.mdRepo-wide custom instructions for Copilot.
The system
Brand & Voice
Gallery gets out of the way. Near-monochrome, square-cornered, and silent — the work hangs on white walls. Restraint is the statement: no accent color, just careful spacing and impeccable type.
Layout & Grid
A strict modular grid with consistent gutters. Images set the rhythm; captions are small, muted, and aligned. Negative space is a deliberate material.
Components
Buttons
Text and hairline-bordered buttons only. Hover shifts to color.brand.primary
with no rounding and no shadow.
Image Grid
Edge-aligned thumbnails that fade in; the lightbox uses shadow.md and muted
chrome so the image dominates.
Accessibility
High-contrast monochrome means primary and muted text comfortably pass WCAG AA. State colors appear only with labels, and focus outlines remain crisp.
Tokens
Color (14)
Tokens
Export
One source of truth, five formats — copy or download any of them.
---$schema: https://designmd.in/schema/v1.jsonid: galleryname: Gallerytitle: Gallery — Quiet Monochrome Portfolioversion: 1.0.0category: portfoliotags: [portfolio, monochrome, minimal, gallery, restrained]author: designmdlicense: CC-BY-4.0updatedAt: 2026-06-22colorMode: [light]tokens: color: brand: primary: { value: "oklch(0.3 0.008 270)", type: color } secondary: { value: "oklch(0.5 0.01 270)", type: color } onBrand: { value: "oklch(0.99 0 0)", type: color } text: primary: { value: "oklch(0.2 0.004 270)", type: color } muted: { value: "oklch(0.45 0.006 270)", type: color } link: { value: "{color.brand.primary}", type: color } surface: base: { value: "oklch(0.985 0.001 270)", type: color } raised: { value: "oklch(1 0 0)", type: color } sunken: { value: "oklch(0.965 0.002 270)", type: color } border: default: { value: "oklch(0.88 0.003 270)", type: color } state: success: { value: "oklch(0.55 0.13 150)", type: color } danger: { value: "oklch(0.54 0.19 25)", type: color } warning: { value: "oklch(0.66 0.13 70)", type: color } info: { value: "oklch(0.55 0.12 250)", type: color } typography: family: sans: { value: "Neue Haas Grotesk, Helvetica, Arial, sans-serif", type: fontFamily } mono: { value: "ui-monospace, monospace", type: fontFamily } scale: sm: { value: "0.8125rem", type: dimension } base: { value: "1rem", type: dimension } lg: { value: "1.25rem", type: dimension } xl: { value: "1.5rem", type: dimension } "2xl": { value: "2rem", type: dimension } "3xl": { value: "2.75rem", type: dimension } weight: regular: { value: 400, type: fontWeight } bold: { value: 600, type: fontWeight } leading: tight: { value: 1.15, type: number } normal: { value: 1.55, type: number } spacing: base: { value: "0.25rem", type: dimension } radius: sm: { value: "0rem", type: dimension } md: { value: "0rem", type: dimension } full: { value: "9999px", type: dimension } shadow: sm: { value: "0 1px 2px oklch(0.2 0 0 / 0.05)", type: shadow } md: { value: "0 8px 24px oklch(0.2 0 0 / 0.08)", type: shadow } motion: duration: base: { value: "200ms", type: duration } easing: standard: { value: "cubic-bezier(0.4, 0, 0.2, 1)", type: cubicBezier } breakpoint: md: { value: "768px", type: dimension } iconography: style: { value: "1px hairline icons, minimal", type: descriptor } zIndex: dropdown: { value: 1000, type: number } modal: { value: 1300, type: number }---# Gallery Design System## Brand & VoiceGallery gets out of the way. Near-monochrome, square-cornered, and silent — thework hangs on white walls. Restraint is the statement: no accent color, justcareful spacing and impeccable type.## Layout & GridA strict modular grid with consistent gutters. Images set the rhythm; captionsare small, muted, and aligned. Negative space is a deliberate material.## Components### ButtonsText and hairline-bordered buttons only. Hover shifts to `color.brand.primary`with no rounding and no shadow.### Image GridEdge-aligned thumbnails that fade in; the lightbox uses `shadow.md` and mutedchrome so the image dominates.## AccessibilityHigh-contrast monochrome means primary and muted text comfortably pass WCAG AA.State colors appear only with labels, and focus outlines remain crisp.