feat: réécriture frontend Alpine.js + HTMX + Swup (branche frontend/alpine)
Remplace Vue 3 / Vite / TypeScript par une stack légère statique : - Alpine.js v3 : réactivité inline, stores auth/ui/i18n, composants par page - HTMX v2 : interactions serveur via attributs HTML - Swup v4 : transitions de page (bundlé via esbuild, IIFE browser-loadable) - xterm.js v5 : terminal PTY (bundlé via esbuild) Structure : HTML statiques + js/app.js + js/terminal.js + css/ + locales/ Build : esbuild (bundle Swup + xterm seulement) → dist/ → Nginx Dockerfile simplifié : node:22-alpine build → nginx:1.27-alpine serve Pages : index, install, login, dashboard, proxmox, updates, terminal, settings, modules URLs propres via nginx try_files $uri.html Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
7ba0ff143c
commit
2098c80ec1
48 changed files with 2446 additions and 5317 deletions
70
frontend/css/light.css
Normal file
70
frontend/css/light.css
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
/* ============================================================
|
||||
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);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue