diff --git a/frontend/css/pages.css b/frontend/css/pages.css index 48b706d..424d76a 100644 --- a/frontend/css/pages.css +++ b/frontend/css/pages.css @@ -552,53 +552,91 @@ .widget-size-2 { grid-column: span 2; } @media (max-width: 720px) { .widget-size-2 { grid-column: span 1; } } +.widget { position: relative; } .widget.is-dragging { opacity: 0.35; transform: scale(.97); } -.widget.drag-over { outline: 2px dashed var(--neu-primary); transform: scale(1.02); } +.widget-highlighted { outline: 2px solid var(--neu-primary) !important; outline-offset: 2px; } -.widget-edit-bar { +/* Edit mode layout : grid + panel côte à côte */ +.edit-mode-layout { display: flex; - align-items: center; - gap: .375rem; - padding: .25rem 0 .75rem; - border-bottom: 1px solid var(--neu-border); - margin-bottom: .75rem; + gap: 1.25rem; + align-items: flex-start; +} +.edit-mode-layout .widgets-grid { + flex: 1; + min-width: 0; } -.widget-edit-bar-title { flex: 1; font-size: .75rem; font-weight: 600; color: var(--neu-text-muted); text-transform: uppercase; } -.edit-mode-banner { - display: flex; - align-items: center; - gap: .75rem; - padding: .625rem 1rem; - border-radius: var(--neu-radius-sm); - background: rgba(108, 142, 244, 0.1); - border: 1px solid var(--neu-primary); - margin-bottom: 1.25rem; - font-size: .875rem; - color: var(--neu-primary); +/* Widget panel (liste de tous les widgets en mode édition) */ +.widget-panel { + width: 200px; + flex-shrink: 0; + position: sticky; + top: 1rem; + padding: 1rem; } -.edit-mode-banner i { font-size: 1.1rem; } - -.widget-add-grid { - display: flex; - flex-wrap: wrap; - gap: .75rem; - margin-top: 1.5rem; -} -.widget-add-btn { +.widget-panel-title { display: flex; align-items: center; gap: .5rem; - padding: .5rem 1rem; - border-radius: var(--neu-radius-sm); - border: 1px dashed var(--neu-border); - background: transparent; - color: var(--neu-text-muted); - cursor: pointer; font-size: .875rem; - transition: all .15s; + font-weight: 700; + margin: 0 0 .75rem 0; + padding-bottom: .5rem; + border-bottom: 1px solid var(--neu-border); +} +.widget-panel-list { + list-style: none; + padding: 0; + margin: 0; + display: flex; + flex-direction: column; + gap: .2rem; +} +.widget-panel-item { + display: flex; + align-items: center; + gap: .5rem; + padding: .4rem .375rem; + border-radius: var(--neu-radius-sm); + cursor: default; + transition: background .15s; +} +.widget-panel-item:hover { background: rgba(108, 142, 244, 0.08); } +.widget-panel-label { + flex: 1; + font-size: .85rem; + color: var(--neu-text-muted); + transition: color .15s; +} +.widget-panel-item.is-visible .widget-panel-label { color: var(--neu-text); } +.widget-panel-toggle { + background: none; + border: none; + cursor: pointer; + color: var(--neu-text-muted); + padding: .2rem; + border-radius: .2rem; + line-height: 1; + transition: color .15s; +} +.widget-panel-toggle:hover { color: var(--neu-primary); } + +/* Resize handle (coin bas-droit de la tuile, edit mode) */ +.widget-resize-handle { + position: absolute; + bottom: 0; + right: 0; + width: 22px; + height: 22px; + cursor: ew-resize; + border-radius: 0 0 var(--neu-radius-sm) 0; + background: linear-gradient(135deg, transparent 50%, var(--neu-border) 50%); + transition: background .15s; +} +.widget-resize-handle:hover { + background: linear-gradient(135deg, transparent 50%, var(--neu-primary) 50%); } -.widget-add-btn:hover { border-color: var(--neu-primary); color: var(--neu-primary); } /* ── Profil / préférences ────────────────────────────────────────────────────── */ .settings-section { diff --git a/frontend/dashboard.html b/frontend/dashboard.html index e6d4a8d..7d98c9b 100644 --- a/frontend/dashboard.html +++ b/frontend/dashboard.html @@ -59,32 +59,12 @@