PageWeave/Design

Themes / Ember Desk

1 Theme darkeditorialwarmserif .md

Ember Desk

Dark editorial — warm charcoal, cream ink, persimmon pointer

#161310 #f0ebe0 #e8704f #d9c9a3

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.

CSS Paste into update_theme

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;