Skip to content

NESTstack v1.5.0 — Appearance customization via carrier-profile

Choose a tag to compare

@cindiekinzz-coder cindiekinzz-coder released this 25 Apr 19:34
· 42 commits to master since this release

What's new

Carriers can now restyle the dashboard without forking. Fonts, accent colors, and background tone are pulled from carrier-profile.json#appearance at runtime via a new gateway endpoint.

Sparked by a Haven thread — Nana asked if they could work with the font; the answer became this release. The carrier-profile system we shipped in v1.4.0 was designed to absorb exactly this kind of customization without forking, and now it does.

New appearance section in carrier-profile.json

"appearance": {
  "font_family": "'Inter', sans-serif",
  "font_display": "'Cinzel', serif",
  "font_mono": "'IBM Plex Mono', monospace",
  "accent_primary": "#a855f7",
  "accent_secondary": "#f59e0b",
  "background_tone": "#0a0a0f"
}

Empty values fall through to NESTstack's cyberpunk defaults. No appearance section = no-op.

How it works

  1. Gateway exposes GET /appearance.css — renders carrier-profile.appearance as CSS custom properties on :root. Cached 5 minutes, CORS-enabled.
  2. Dashboard's config.js now has injectAppearanceCss() that pulls appearance.css from the configured gateway and appends it after styles.css, so carrier values override the defaults at runtime.
  3. styles.css declares the carrier-overridable variables on :root with sane defaults. 20 hardcoded font-family declarations got refactored to reference the variables.

Setup for community users

# Edit your carrier-profile.json — add the appearance section
wrangler secret put CARRIER_PROFILE_JSON < carrier-profile.json

# Reload dashboard. Done. Your fonts, your accents, your home.

Continuity.