> From [PageWeave Design](https://pageweave-design.pageweave.site) — a working library for agentic web development. Full index: [llms.txt](https://pageweave-design.pageweave.site/llms.txt)

# Ember Desk

Dark editorial — warm charcoal, cream ink, persimmon pointer

- Category: Themes
- Swatches: #161310 #f0ebe0 #e8704f #d9c9a3
- Tags: dark editorial warm serif

## About this theme

A dark editorial ground with a persimmon accent — the register of a well-kept print workshop after hours. Warm near-black paper instead of blue-black, cream ink instead of pure white, one saturated accent doing all the pointing.

## Apply it

Paste the CSS into `update_theme`:

```
update_theme(website: "your-site", config: { css: <theme_css below> })
```

PageWeave wraps bare variables in the active `[data-theme]` automatically.

## Pair with

- Display: **Fraunces** (opsz axis up) or Newsreader
- Body: **Instrument Sans** or Source Serif 4
- Mono: **Spline Sans Mono**

## Where it works

Essays and journals, agent-facing documentation, portfolios that want gravity without luxury theatrics. The warm hue keeps long reading sessions comfortable; the persimmon accent survives both screen and print screenshots.

## Tuning

- Cooler room? Shift all hues from 75–85 toward 260 and drop chroma by half.
- More contrast for a11y? Raise base-content to oklch(0.95 0.01 85) and darken base-100 to 0.15.
- Accent fatigue? Reserve primary for exactly one element per viewport.

## Theme CSS — paste into update_theme

```css
color-scheme: dark;
--color-base-100: oklch(0.17 0.008 80);
--color-base-200: oklch(0.21 0.01 80);
--color-base-300: oklch(0.26 0.012 80);
--color-base-content: oklch(0.92 0.015 85);
--color-primary: oklch(0.67 0.16 40);
--color-primary-content: oklch(0.15 0.02 40);
--color-secondary: oklch(0.79 0.08 88);
--color-secondary-content: oklch(0.2 0.03 88);
--color-accent: oklch(0.74 0.1 185);
--color-accent-content: oklch(0.18 0.04 185);
--color-neutral: oklch(0.25 0.01 80);
--color-neutral-content: oklch(0.9 0.01 85);
--color-info: oklch(0.72 0.09 230);
--color-info-content: oklch(0.16 0.03 230);
--color-success: oklch(0.72 0.13 150);
--color-success-content: oklch(0.16 0.04 150);
--color-warning: oklch(0.8 0.13 85);
--color-warning-content: oklch(0.2 0.04 85);
--color-error: oklch(0.63 0.19 25);
--color-error-content: oklch(0.97 0.01 25);
--radius-selector: 0rem;
--radius-field: 0rem;
--radius-box: 0rem;
--size-selector: 0.25rem;
--size-field: 0.25rem;
--border: 1px;
--depth: 0;
--noise: 1;
```