shipping in NebulaProxy & NebulaMonitor

The dark UI running
every Nebula panel.

One neutral, near-black system — flat surfaces, restrained color, a light-on-dark primary action — built for proxies, dashboards and anything that needs to stay legible at 3am. No theme picker, no light mode: dark is the product.

Domains
4 active · 1 degraded
All routed
api.paxcia.net42ms
app.nebulamonitor.io61ms
edge-eu.nebula.sh318ms
legacy.internaltimeout
2.14Mrequests / 24h
+12.4%
Foundations / 01

Color

Everything sits on near-black. Color is spent almost entirely on state — success, warning, error — never on decoration. Click any swatch to copy its hex.

Foundations / 02

Typography

Inter for every weight of interface text, JetBrains Mono for anything that's a value — hostnames, hex codes, latencies, ports.

Aa — Section title 38 / 600
Aa — Card title 20 / 600
Aa — Body text, the size almost everything renders at 14 / 400
Aa — Muted / secondary text, descriptions and captions 12.5 / 400
api.paxcia.net · 200 OK · 42ms mono / 13
Components / 01

Buttons

Primary is the odd one out on purpose — a light gradient chip on a dark page reads as the one thing you're meant to press.

Components / 02

Badges

Status only. Translucent fill, a matching border, never a solid block of color.

● Healthy ● Degraded ● Down Info Outline Pill
Components / 03

Cards

Three surface treatments depending on how much a card needs to separate from the page: flat, bordered, and the shadcn-derived variant used in the older admin views.

card-standard

Flat surface, transparent border until hover. Used for list rows and stat tiles.

card-elevated

Same surface, permanent border. Used for grouped settings panels.

Card / shadcn

Radix-based primitive, kept for legacy admin screens.

Components / 04

Forms

Inputs sit a shade lighter than the page, with a soft glow ring on focus instead of a hard outline.

Force HTTPS
Maintenance mode
Enable access logs
Components / 06

Feedback

Alerts reuse the exact same three semantic colors as badges — one vocabulary for state, everywhere in the product.

Certificate renewed
app.paxcia.net is valid for 90 more days.
Backend responding slowly
edge-eu.nebula.sh p95 latency above 300ms for 5 min.
Health check failing
legacy.internal has not responded in 4 attempts.
Use it

Get the code

The two files that carry the whole system. Drop the tokens into a Tailwind config and the component classes into your global stylesheet.

colors: {
  void: '#09090b',
  surface: '#111113',
  'surface-2': '#18181b',
  border: { DEFAULT: '#27272a', strong: '#3f3f46' },
  ink: { DEFAULT: '#fafafa', muted: '#a1a1aa', subtle: '#71717a' },
  success: '#3ecf8e',
  warning: '#f7b955',
  error:   '#ef6a6a',
},
borderRadius: { sm: '4px', DEFAULT: '8px', lg: '12px', xl: '16px' },
fontFamily: {
  sans: ['Inter', '-apple-system', 'sans-serif'],
  mono: ['"JetBrains Mono"', 'monospace'],
},
keyframes: {
  'fade-in':  { from: { opacity: '0', transform: 'translateY(8px)' }, to: { opacity: '1', transform: 'translateY(0)' } },
  'scale-in': { from: { opacity: '0', transform: 'scale(0.98)' },  to: { opacity: '1', transform: 'scale(1)' } },
},
// primary action is a light gradient, never a hue —
// it's the only element allowed to break the dark palette.