# matteosantoro.dev — Design System Reference

## 1. Visual Theme & Atmosphere

Systematic monochromatic refinement. Matteosantoro.dev operates entirely in a black-to-white gradient of opacity values — no named colours exist beyond black and white with carefully calibrated alpha layers. This opacity-first approach means the palette automatically adapts to any background context. System font (ui-sans-serif) signals a developer who values performance and native rendering over brand expression.

---

## 2. Color Palette & Roles

- **background**: rgb(255, 255, 255)
- **text**: rgba(0, 0, 0, 0.95) — near-black
- **textPrimary**: rgba(0, 0, 0, 0.85)
- **textBody**: rgba(0, 0, 0, 0.82)
- **textMuted**: rgba(0, 0, 0, 0.9)
- **border**: rgb(229, 231, 235) — Tailwind gray-200
- **surfaceLight**: rgba(0, 0, 0, 0.05) — card background tint
- **interactiveHover**: rgba(100, 116, 139, 0.1) — subtle slate hover
- **dark**: rgb(0, 0, 0)
- **white**: rgb(255, 255, 255)

*Notably absent:* Custom typeface

---

## 3. Typography Rules

**Typeface(s):** ui-sans-serif (system font stack)

**Tech stack fonts hint:** Tailwind CSS

- **note**: System font stack means native rendering — no loading, no FOUT. Scale relies on Tailwind defaults. Developer-centric priority on performance over custom typography.

---

## 4. Component Stylings

**Border Radius:** Tailwind defaults (rounded)

**Shadows:** Subtle Tailwind shadow scale — low-contrast, flat feel

**Gradients:** None

Components lean on spacing and typography for distinction rather than decorative chrome. Buttons likely use filled + ghost variants in the primary colour.

---

## 5. Layout Principles

Built on **Tailwind CSS**. Layouts follow a content-first grid — wide gutters, deliberate whitespace rhythm. Section breaks use background-colour contrast rather than divider lines.

---

## 6. Depth & Elevation

Elevation system: Subtle Tailwind shadow scale — low-contrast, flat feel. Depth is used purposefully, not decoratively.

---

## 7. Do's and Don'ts

**Do:**
- Use the exact colour roles as defined — each serves a specific semantic purpose
- Respect the typeface role boundaries (each font has one job)
- Preserve generous whitespace — crowding breaks the design language
- Keep interactions restrained: hover opacity or colour-shift, not complex transforms

**Don't:**
- Introduce colours outside the defined palette
- Mix typefaces beyond the established pairing
- Add drop shadows where the design is intentionally flat
- Use gradients unless the site already employs them
- Add Custom typeface
- Add named colours

---

## 8. Responsive Behavior

Pure Tailwind breakpoints; minimal layout complexity

On mobile, the core design language holds — the reduction is spatial (tighter gutters, stacked columns) not stylistic. Colour, typography, and component styles remain unchanged.

---

## 9. Agent Prompt Guide

> Use this as a one-paragraph brief when prompting an AI to build in this design language:

**"Developer portfolio: system font only, opacity-based black/white palette, Tailwind CSS, flat cards with rgba(0,0,0,0.05) surfaces, no gradients, slate hover states, maximum simplicity"**

---

*Generated by Sparkbites — extracted from live CSS analysis*
