Backend Go 1.23+ : - API REST + WebSocket (chi, gorilla/websocket) - Authentification PAM via SSH + JWT RS256 - Chiffrement AES-256-GCM pour secrets SQLite - Pool SSH, client Proxmox REST, hub WebSocket pub/sub - Système de modules compilés à initialisation conditionnelle - Audit log, migrations SQLite versionnées Frontend Vue 3 + Vite + TypeScript : - Thème Neumorphism sombre/clair (CSS custom properties) - Wizard d'installation, Dashboard drag-drop, Terminal xterm.js - Toutes les vues CORE + stubs modules optionnels - i18n EN/FR (vue-i18n v11) Infrastructure : - Docker multi-stage (Go → alpine, Node → nginx) - docker-compose.yml, .gitattributes, LICENSE MIT, README Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
70 lines
1.6 KiB
CSS
70 lines
1.6 KiB
CSS
/* ============================================================
|
|
ProxmoxPanel — Thème clair
|
|
============================================================ */
|
|
|
|
[data-theme="light"] {
|
|
--neu-bg: #e8ecf2;
|
|
--neu-surface: #eef1f8;
|
|
--neu-text: #2d3561;
|
|
--neu-text-muted: #8892b0;
|
|
--neu-border: #d4d9e8;
|
|
|
|
--neu-shadow-dark: #c8cdd8;
|
|
--neu-shadow-light: #ffffff;
|
|
|
|
--neu-primary: #4a6bd4;
|
|
--neu-primary-dim: #3558c0;
|
|
--neu-success: #2ea87a;
|
|
--neu-warning: #d4860e;
|
|
--neu-danger: #d43f52;
|
|
--neu-info: #1fa8bc;
|
|
|
|
color-scheme: light;
|
|
}
|
|
|
|
[data-theme="light"] body {
|
|
background-color: var(--neu-bg);
|
|
color: var(--neu-text);
|
|
}
|
|
|
|
[data-theme="light"] .neu-card {
|
|
background: var(--neu-surface);
|
|
box-shadow:
|
|
5px 5px 10px var(--neu-shadow-dark),
|
|
-5px -5px 10px var(--neu-shadow-light);
|
|
}
|
|
|
|
[data-theme="light"] .neu-inset {
|
|
background: var(--neu-bg);
|
|
box-shadow:
|
|
inset 3px 3px 7px var(--neu-shadow-dark),
|
|
inset -3px -3px 7px var(--neu-shadow-light);
|
|
}
|
|
|
|
[data-theme="light"] .neu-btn {
|
|
box-shadow:
|
|
4px 4px 8px var(--neu-shadow-dark),
|
|
-4px -4px 8px var(--neu-shadow-light);
|
|
}
|
|
|
|
[data-theme="light"] .neu-input {
|
|
background: var(--neu-bg);
|
|
color: var(--neu-text);
|
|
box-shadow:
|
|
inset 3px 3px 7px var(--neu-shadow-dark),
|
|
inset -3px -3px 7px var(--neu-shadow-light);
|
|
}
|
|
|
|
[data-theme="light"] ::selection {
|
|
background: rgba(74, 107, 212, 0.25);
|
|
color: var(--neu-text);
|
|
}
|
|
|
|
/* Scrollbar thème clair */
|
|
[data-theme="light"] ::-webkit-scrollbar-track {
|
|
background: var(--neu-bg);
|
|
}
|
|
|
|
[data-theme="light"] ::-webkit-scrollbar-thumb {
|
|
background: var(--neu-border);
|
|
}
|