# Monochromatic Design — AI design spec

> Uses different shades of a single color.
>
> Style page: https://www.aiwebstyle.com/styles/monochromatic.html · Live preview: https://www.aiwebstyle.com/previews/monochromatic.html
>
> Drop this file at the root of a project and point your coding agent at it. Every value is copied from the working stylesheet, not estimated.

## 1. What this style is

Monochromatic design is suitable for brands wishing to convey focus, stability, and a high-quality feel, such as corporate websites, portfolios, high-end product showcases, etc. It can be any color, not just black and white or gray.

## 2. Tokens

### Page surface

| Token | Value | Purpose |
|---|---|---|
| `--page-bg` | `var(--mono-lightest)` | Page background (solid fallback) |
| `--page-bg-gradient` | `none` | Page background gradient; overrides the solid unless `none` |

### Text

| Token | Value | Purpose |
|---|---|---|
| `--text-color` | `var(--mono-darker)` | Body text |
| `--heading-color` | `var(--mono-darkest)` | Headings |

### Links

| Token | Value | Purpose |
|---|---|---|
| `--link-color` | `var(--mono-base)` | Link and inline accent |
| `--link-hover-color` | `var(--mono-dark)` | Link hover |

### Borders

| Token | Value | Purpose |
|---|---|---|
| `--border-color` | `var(--mono-lighter)` | Dividers and input borders |

### Cards

| Token | Value | Purpose |
|---|---|---|
| `--card-bg` | `#ffffff` | Card surface |
| `--card-border-radius` | `5px` | Card corner radius |
| `--card-shadow` | `0 2px 4px rgba(0, 64, 128, 0.1)` | Card at rest |
| `--card-hover-shadow` | `0 4px 8px rgba(0, 64, 128, 0.15)` | Card on hover |

### Header

| Token | Value | Purpose |
|---|---|---|
| `--header-bg` | `var(--mono-base)` | Sticky header surface |
| `--header-text-color` | `var(--mono-text-light)` | Header text and nav links |
| `--header-shadow` | `none` | Header elevation (usually `none`) |

### Footer

| Token | Value | Purpose |
|---|---|---|
| `--footer-bg` | `var(--mono-lightest)` | Footer surface |
| `--footer-text-color` | `var(--mono-dark)` | Footer text |

### Buttons

| Token | Value | Purpose |
|---|---|---|
| `--button-bg` | `var(--mono-base)` | Primary button fill |
| `--button-text-color` | `var(--mono-text-light)` | Primary button label |
| `--button-hover-bg` | `var(--mono-dark)` | Primary button hover fill |
| `--button-border` | `none` | Primary button border |
| `--button-secondary-bg` | `var(--mono-light)` | Secondary button fill |
| `--button-secondary-text-color` | `var(--mono-text-dark)` | Secondary button label |
| `--button-secondary-hover-bg` | `var(--mono-lighter)` | Secondary button hover fill |

### Code / prompt block

| Token | Value | Purpose |
|---|---|---|
| `--prompt-bg` | `var(--mono-lighter)` | Code / prompt block surface |
| `--prompt-text-color` | `var(--mono-darker)` | Code / prompt block text |

### Type

| Token | Value | Purpose |
|---|---|---|
| `--base-font` | `var(--font-roboto)` | Body font stack |
| `--heading-font` | `var(--font-roboto)` | Heading font stack |

### Other tokens in this theme

| Token | Value |
|---|---|
| `--mono-base` | `#0d6efd` |
| `--mono-lightest` | `#e6f0ff` |
| `--mono-lighter` | `#b3d1ff` |
| `--mono-light` | `#66a3ff` |
| `--mono-dark` | `#0059b3` |
| `--mono-darker` | `#004080` |
| `--mono-darkest` | `#00264d` |
| `--mono-text-light` | `#fff` |
| `--mono-text-dark` | `#00264d` |
| `--button-secondary-border` | `none` |
| `--button-border-radius` | `5px` |

## 3. Do

- Drive every color, radius and shadow from the tokens below. No literal hex values in component code.
- Reuse the `--card-*` tokens for any elevated surface (card, panel, modal, dropdown) so elevation stays consistent.
- Keep header and footer on `--header-*` / `--footer-*` even when the page background is a gradient.

## 4. Don't

- Do not blend tokens from another style in this library — one page, one token set.
- Do not invent a hover state: every interactive element has a `*-hover-*` token above.

## 5. Using this with a coding agent

Place this file at the project root as `DESIGN.md`, then instruct the agent:

> Follow `DESIGN.md` for all UI. Every color, radius and shadow comes from its token table. If you need a state that is not listed, derive it from the nearest listed token and add the new token to `DESIGN.md` instead of hard-coding a value.

If the project already has a token layer (Tailwind config, CSS custom properties, a theme file), map these tokens onto it one-to-one and keep the names unchanged.

## 6. Original prompt

```text
Create a monochromatic portfolio website using only shades, tints, and tones of blue (e.g., #0d6efd). Vary the lightness and saturation for contrast between text, background, and elements.
```

---

*Generated from the `monochromatic` theme in `style.css`. Token values are verbatim — regenerate rather than edit by hand.*
