feat: sidebar user menu Notion-style + settings page + tag colors + preview images/PDF
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped

- Sidebar header: user menu dropdown (Settings, Switch workspace, Log out)
  avec avatar + nom + email, chevron animé, fond opaque #1E1E1E
- Nouvelle page /settings avec gestion globale des tags:
  créer tag avec couleur, changer couleur, supprimer, liste avec compteurs
- API tag management: POST/PUT/DELETE /api/settings/tags, GET /api/settings/tags/all
- Preview panel: affichage images (img tag), PDF (lien viewer), détection format
- workspace-chevron CSS: rotation 180° quand menu ouvert
This commit is contained in:
2026-07-12 12:35:17 -04:00
parent 17f158ca18
commit 004c47df34
5 changed files with 292 additions and 168 deletions
+50
View File
@@ -162,6 +162,56 @@ input, select, textarea { font-family: inherit; color: inherit; }
color: var(--text-primary);
}
.workspace-chevron {
font-size: 10px;
color: var(--text-dim);
transition: transform 0.2s ease;
}
.workspace-chevron.open {
transform: rotate(180deg);
}
/* User menu dropdown */
.user-menu-dropdown {
position: absolute;
top: 100%;
left: 8px;
right: 8px;
margin-top: 4px;
background: #1E1E1E;
border: 1px solid var(--border-strong);
border-radius: 10px;
box-shadow: 0 12px 32px rgba(0,0,0,.6);
z-index: 400;
padding: 4px 0;
overflow: hidden;
}
.um-user-info {
display: flex;
align-items: center;
gap: 10px;
padding: 10px 14px;
}
.um-avatar {
width: 28px; height: 28px;
background: var(--bg-tertiary);
border-radius: 6px;
display: flex; align-items: center; justify-content: center;
font-size: 14px; font-weight: 600; color: var(--text);
flex-shrink: 0;
}
.um-name { font-size: 14px; font-weight: 600; color: var(--text); }
.um-plan { font-size: 12px; color: var(--text-dim); margin-top: 1px; }
.um-sep { height: 1px; background: var(--border); margin: 3px 0; }
.um-item {
display: flex; align-items: center; gap: 8px;
padding: 7px 14px; font-size: 13px; color: var(--text);
text-decoration: none; cursor: pointer; transition: background 100ms;
}
.um-item:hover { background: var(--bg-hover); }
.um-danger { color: var(--danger); }
.um-danger:hover { background: rgba(255,80,80,.1); }
.sidebar-actions {
display: flex;
align-items: center;