librelad 875a60f90f LibrePortal v0.1.0 — initial release
A free, open, self-hosted app platform (GNU AGPLv3): one-click app deploys,
Traefik reverse proxy with automatic SSL, rootless Docker support, gluetun
VPN routing, and a web dashboard to manage it all.

Free & open forever to self-host; optional paid hosted services fund it.
See PROMISE.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

Signed-off-by: librelad <librelad@digitalangels.vip>
2026-05-21 20:37:54 +01:00

76 lines
2.2 KiB
CSS

/* Light — clean white surface, dark text. */
[data-theme="light"] {
--gradient-from: #f5f7fb;
--gradient-mid: #eef2f8;
--gradient-to: #e6edf6;
--surface-bg: #ffffff;
--surface-bg-solid: #ffffff;
--surface-elevated: #ffffff;
--surface-sunken: #f8f9fa;
--surface-hover: rgba(0, 0, 0, 0.04);
--surface-selected: rgba(30, 144, 255, 0.10);
--border: #dee2e6;
--border-strong: #ced4da;
--border-subtle: #e9ecef;
--text-primary: #212529;
--text-secondary: #495057;
--text-muted: #6c757d;
--text-on-accent: #ffffff;
--accent: #1e90ff;
--accent-hover: #0c6dd4;
--accent-soft: rgba(30, 144, 255, 0.10);
--accent-rgb: 30, 144, 255;
--status-success: #28a745;
--status-success-hover: #218838;
--status-success-rgb: 40, 167, 69;
--status-danger: #dc3545;
--status-danger-hover: #c82333;
--status-danger-rgb: 220, 53, 69;
--status-warning: #ff9800;
--status-warning-rgb: 255, 152, 0;
--status-info: #17a2b8;
--status-info-rgb: 23, 162, 184;
--text-rgb: 0, 0, 0;
--bg-rgb: 255, 255, 255;
--card-bg: #ffffff;
--card-border: #dee2e6;
--card-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
--card-shadow-hover: 0 6px 16px rgba(0, 0, 0, 0.12);
--input-bg: #ffffff;
--input-border: #ced4da;
--input-text: #212529;
--console-bg: #f8f9fa;
--console-text: #212529;
--code-bg: #f1f3f5;
--code-text: #212529;
--tooltip-bg: #212529;
--tooltip-text: #ffffff;
--topbar-bg: #ffffff;
--topbar-text: #212529;
--topbar-border: #dee2e6;
--sidebar-bg: #ffffff;
--sidebar-text: #212529;
--sidebar-border: #dee2e6;
--bg-primary: var(--topbar-bg);
--bg-secondary: var(--surface-sunken);
--bg-tertiary: var(--border-subtle);
--text-color: var(--text-primary);
--primary-color: var(--accent);
--primary-hover: var(--accent-hover);
--primary-color-rgb: var(--accent-rgb);
--border-color: var(--border);
--content-bg: var(--surface-bg);
--hover-bg: var(--surface-hover);
--error-color: var(--status-danger);
--danger-color: var(--status-danger);
}