YotoShelf
Design

Spacing

Base unit: 4px. Each token is a multiple of that unit.

Use CSS variables; never hardcode pixel values.

Spacing Scale

Visual representation of every spacing token. Bar width corresponds to the actual pixel value.

--spacing-0 0 0px
--spacing-0-5 0.125rem 2px
--spacing-1 0.25rem 4px
--spacing-1-5 0.375rem 6px
--spacing-2 0.5rem 8px
--spacing-3 0.75rem 12px
--spacing-4 1rem 16px
--spacing-5 1.25rem 20px
--spacing-6 1.5rem 24px
--spacing-8 2rem 32px
--spacing-10 2.5rem 40px
--spacing-12 3rem 48px
--spacing-16 4rem 64px
--spacing-20 5rem 80px
--spacing-24 6rem 96px

Usage Principles

Use the scale

All spacing (margin, padding, gap, inset) should use a token. If a value doesn't exist in the scale, use the nearest token or request a new one.

Component density

Use --spacing-1--spacing-3 for tight internal padding (icon buttons, table cells). Use --spacing-4--spacing-6 for component padding. Use --spacing-8+ for section gaps.

Layout rhythm

Page-level gaps between sections: --spacing-12 or --spacing-16. Between related groups: --spacing-6 or --spacing-8. Between items in a list: --spacing-2 or --spacing-3.

Border Radius Scale

Two families, and the split matters more than the numbers. Surfaces are tight — cards sit at 8px and never grow, because a card in this system is defined by its hairline border, not by rounding. Controls are pills — anything that reads as a button, badge, or chip uses --radius-full. There is no middle ground; a 16px floating card is not part of this language.

--radius-sm 8px Small surfaces, nav-link hover targets
--radius-card 8px Cards. The card anatomy; do not substitute
--radius-md 10px Inputs
--radius-lg 12px Panels, dialogs
--radius-xl 16px Large panels
--radius-2xl 20px Carousel frames, hero plates
--radius-full 9999px Pill: buttons, badges, chips

Shadow Scale

Cards carry no shadow at rest — they are separated by their border and the page background. The only brand-shaped shadow is the button's: a warm accent-tinted lift over a forest-tinted contact shadow. Everything else is a neutral utility for overlays and hover affordances.

--shadow-btn Aa
--shadow-btn-hover Aa
--shadow-card none
--shadow-sm Aa
--shadow-md Aa
--shadow-lg Aa
--shadow-xl Aa