- ToolboxVignette: prop bullets[] remplace description, touch targets agrandis - Design arrondi: border-radius 16px cards, 20px pills, 12px inputs, no borders - Hover animations: translateY(-3px) + shadow, active states pour touch - SectionLayout: toolbox accordion mobile, pills scroll horizontal, responsive title/subtitle - app.vue: MoodSwitcher dans drawer mobile, header responsive, nav touch-friendly - Dashboard: grille 2-colonnes mobile, connect banner column layout, formula code scroll - Documents/decisions/mandates/protocols: cards responsive (padding, font-size, gap) - Login: touch targets 3rem min, iOS zoom prevention, responsive sizing - Modals: padding responsive sm:p-6 - Protocols: table compact mobile, proto items responsive - nuxt.config: host 0.0.0.0 pour fix IPv4/IPv6 binding Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
249 lines
7.5 KiB
CSS
249 lines
7.5 KiB
CSS
/* ==========================================================================
|
|
ğ(Decision) — Mood / Ambiance System
|
|
Palettes harmoniques variees, colores en lite, lumineux en dark.
|
|
========================================================================== */
|
|
|
|
/* --------------------------------------------------------------------------
|
|
Peps — Chaud, colore, tonique (Light)
|
|
Palette: corail / ocre / bleu electrique / vert vif
|
|
-------------------------------------------------------------------------- */
|
|
.mood-peps {
|
|
--mood-bg: #faf9f6;
|
|
--mood-surface: #ffffff;
|
|
--mood-surface-hover: #fdf2ec;
|
|
--mood-text: #1e1410;
|
|
--mood-text-muted: #7a5e48;
|
|
--mood-accent: #d44a10;
|
|
--mood-accent-soft: rgba(212, 74, 16, 0.08);
|
|
--mood-accent-text: #ffffff;
|
|
--mood-border: #e8d8c8;
|
|
--mood-secondary: #2874a6;
|
|
--mood-tertiary: #c4841d;
|
|
--mood-success: #1a8c3e;
|
|
--mood-warning: #c47d0a;
|
|
--mood-error: #c23028;
|
|
--mood-gradient: linear-gradient(145deg, #fdf8f0 0%, #ffffff 40%, #f0f6fb 100%);
|
|
--mood-shadow: rgba(180, 80, 20, 0.07);
|
|
--mood-input-bg: #ffffff;
|
|
--mood-input-border: #d4c0aa;
|
|
--mood-input-focus: #d44a10;
|
|
|
|
--mood-status-prepa: #b8600e;
|
|
--mood-status-prepa-bg: rgba(184, 96, 14, 0.12);
|
|
--mood-status-vote: #2874a6;
|
|
--mood-status-vote-bg: rgba(40, 116, 166, 0.10);
|
|
--mood-status-vigueur: #1a8c3e;
|
|
--mood-status-vigueur-bg: rgba(26, 140, 62, 0.10);
|
|
--mood-status-clos: #6e5844;
|
|
--mood-status-clos-bg: rgba(110, 88, 68, 0.08);
|
|
}
|
|
|
|
/* --------------------------------------------------------------------------
|
|
Zen — Foret profonde, vegetal et mineral (Light)
|
|
Palette: vert sombre / brun chaud / bleu ardoise / terre
|
|
-------------------------------------------------------------------------- */
|
|
.mood-zen {
|
|
--mood-bg: #f0f4ef;
|
|
--mood-surface: #fafcf9;
|
|
--mood-surface-hover: #e4ece0;
|
|
--mood-text: #0e1a0c;
|
|
--mood-text-muted: #3a5634;
|
|
--mood-accent: #1a6838;
|
|
--mood-accent-soft: rgba(26, 104, 56, 0.08);
|
|
--mood-accent-text: #ffffff;
|
|
--mood-border: #a0c098;
|
|
--mood-secondary: #6b5838;
|
|
--mood-tertiary: #3a6878;
|
|
--mood-success: #146830;
|
|
--mood-warning: #8a6018;
|
|
--mood-error: #a03030;
|
|
--mood-gradient: linear-gradient(145deg, #eaf2e6 0%, #fafcf9 40%, #f0ece4 100%);
|
|
--mood-shadow: rgba(26, 80, 40, 0.08);
|
|
--mood-input-bg: #fafcf9;
|
|
--mood-input-border: #90b088;
|
|
--mood-input-focus: #1a6838;
|
|
|
|
--mood-status-prepa: #8a6018;
|
|
--mood-status-prepa-bg: rgba(138, 96, 24, 0.10);
|
|
--mood-status-vote: #3a6878;
|
|
--mood-status-vote-bg: rgba(58, 104, 120, 0.10);
|
|
--mood-status-vigueur: #146830;
|
|
--mood-status-vigueur-bg: rgba(20, 104, 48, 0.10);
|
|
--mood-status-clos: #506848;
|
|
--mood-status-clos-bg: rgba(80, 104, 72, 0.08);
|
|
}
|
|
|
|
/* --------------------------------------------------------------------------
|
|
Chagrine — Profond, electrique, bleu dominant (Dark)
|
|
Palette: bleu electrique / cyan / magenta / or
|
|
-------------------------------------------------------------------------- */
|
|
.mood-chagrine {
|
|
--mood-bg: #0c1018;
|
|
--mood-surface: #121824;
|
|
--mood-surface-hover: #1a2438;
|
|
--mood-text: #d8e4f0;
|
|
--mood-text-muted: #7898c0;
|
|
--mood-accent: #4088d8;
|
|
--mood-accent-soft: rgba(64, 136, 216, 0.12);
|
|
--mood-accent-text: #ffffff;
|
|
--mood-border: #1e3050;
|
|
--mood-secondary: #38c8c8;
|
|
--mood-tertiary: #d870a0;
|
|
--mood-success: #38d080;
|
|
--mood-warning: #e0b040;
|
|
--mood-error: #e06060;
|
|
--mood-gradient: linear-gradient(145deg, #0c1018 0%, #121824 40%, #0c1420 100%);
|
|
--mood-shadow: rgba(40, 100, 200, 0.15);
|
|
--mood-input-bg: #121824;
|
|
--mood-input-border: #283c58;
|
|
--mood-input-focus: #4088d8;
|
|
|
|
--mood-status-prepa: #e0b040;
|
|
--mood-status-prepa-bg: rgba(224, 176, 64, 0.15);
|
|
--mood-status-vote: #38c8c8;
|
|
--mood-status-vote-bg: rgba(56, 200, 200, 0.14);
|
|
--mood-status-vigueur: #38d080;
|
|
--mood-status-vigueur-bg: rgba(56, 208, 128, 0.14);
|
|
--mood-status-clos: #6080a8;
|
|
--mood-status-clos-bg: rgba(96, 128, 168, 0.12);
|
|
}
|
|
|
|
/* --------------------------------------------------------------------------
|
|
Grave — Chaud, mineral, lumineux (Dark)
|
|
Palette: ambre / cuivre / bleu acier / vert oxyde
|
|
-------------------------------------------------------------------------- */
|
|
.mood-grave {
|
|
--mood-bg: #12110e;
|
|
--mood-surface: #1a1814;
|
|
--mood-surface-hover: #24201a;
|
|
--mood-text: #e8e0d0;
|
|
--mood-text-muted: #a09880;
|
|
--mood-accent: #d09828;
|
|
--mood-accent-soft: rgba(208, 152, 40, 0.10);
|
|
--mood-accent-text: #12110e;
|
|
--mood-border: #302c24;
|
|
--mood-secondary: #5898c8;
|
|
--mood-tertiary: #c87848;
|
|
--mood-success: #48c870;
|
|
--mood-warning: #d0a030;
|
|
--mood-error: #d05050;
|
|
--mood-gradient: linear-gradient(145deg, #12110e 0%, #1a1814 40%, #141618 100%);
|
|
--mood-shadow: rgba(180, 130, 40, 0.10);
|
|
--mood-input-bg: #1a1814;
|
|
--mood-input-border: #3a3428;
|
|
--mood-input-focus: #d09828;
|
|
|
|
--mood-status-prepa: #c87848;
|
|
--mood-status-prepa-bg: rgba(200, 120, 72, 0.15);
|
|
--mood-status-vote: #5898c8;
|
|
--mood-status-vote-bg: rgba(88, 152, 200, 0.14);
|
|
--mood-status-vigueur: #48c870;
|
|
--mood-status-vigueur-bg: rgba(72, 200, 112, 0.14);
|
|
--mood-status-clos: #787060;
|
|
--mood-status-clos-bg: rgba(120, 112, 96, 0.12);
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Global design tokens — Nunito, rounded, borderless
|
|
========================================================================== */
|
|
|
|
*,
|
|
*::before,
|
|
*::after {
|
|
border-color: transparent;
|
|
}
|
|
|
|
html {
|
|
font-family: 'Nunito', system-ui, -apple-system, sans-serif;
|
|
font-size: 16px;
|
|
}
|
|
|
|
body {
|
|
font-family: 'Nunito', system-ui, -apple-system, sans-serif;
|
|
transition: background-color 0.3s ease, color 0.3s ease;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
/* --- No borders anywhere --- */
|
|
button, input, select, textarea {
|
|
border: none !important;
|
|
outline: none;
|
|
font-family: inherit;
|
|
}
|
|
|
|
input:focus, select:focus, textarea:focus {
|
|
outline: none;
|
|
box-shadow: 0 0 0 2.5px var(--mood-accent-soft);
|
|
}
|
|
|
|
/* --- Status pills --- */
|
|
.status-pill {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
padding: 5px 14px;
|
|
border-radius: 20px;
|
|
font-size: 0.8125rem;
|
|
font-weight: 700;
|
|
letter-spacing: 0.01em;
|
|
cursor: pointer;
|
|
transition: all 0.15s ease;
|
|
user-select: none;
|
|
border: none !important;
|
|
}
|
|
.status-pill:hover {
|
|
filter: brightness(1.08);
|
|
transform: translateY(-1px);
|
|
}
|
|
.status-pill.active {
|
|
box-shadow: 0 0 0 2.5px var(--mood-accent);
|
|
}
|
|
|
|
.status-prepa {
|
|
background: var(--mood-status-prepa-bg);
|
|
color: var(--mood-status-prepa);
|
|
}
|
|
.status-vote {
|
|
background: var(--mood-status-vote-bg);
|
|
color: var(--mood-status-vote);
|
|
}
|
|
.status-vigueur {
|
|
background: var(--mood-status-vigueur-bg);
|
|
color: var(--mood-status-vigueur);
|
|
}
|
|
.status-clos {
|
|
background: var(--mood-status-clos-bg);
|
|
color: var(--mood-status-clos);
|
|
}
|
|
|
|
/* ==========================================================================
|
|
Nuxt UI overrides — borderless everything
|
|
========================================================================== */
|
|
|
|
:root .mood-peps,
|
|
:root .mood-zen,
|
|
:root .mood-chagrine,
|
|
:root .mood-grave {
|
|
--ui-border: transparent;
|
|
--ui-bg: var(--mood-input-bg);
|
|
--ui-text-highlighted: var(--mood-accent);
|
|
}
|
|
|
|
:root button,
|
|
:root [class*="UButton"],
|
|
:root [class*="u-button"],
|
|
:root [data-variant] {
|
|
border: none !important;
|
|
font-family: 'Nunito', system-ui, sans-serif !important;
|
|
}
|
|
|
|
:root input,
|
|
:root textarea,
|
|
:root select,
|
|
:root [class*="UInput"],
|
|
:root [class*="USelect"],
|
|
:root [class*="UTextarea"] {
|
|
border: none !important;
|
|
font-family: 'Nunito', system-ui, sans-serif !important;
|
|
}
|