v0.2.1: top-bar avatar, You/Admin settings groups, admin models

- Replace the gear/username button with a round initials avatar (per-user
  deterministic color via a new daybook_extras template filter); dropdown
  now shows the username and keeps Settings/About/theme/logout. Sets up an
  optional profile photo later.
- Regroup the settings nav into "You" (Account, API Keys, Storage, Demo
  Data) and a superuser-only "Admin" (Users), About separate — the split
  now reflects who each setting affects, not a flat list.
- Register ApiKey (key read-only) and TagColor in Django admin so /admin/
  is complete as the operator break-glass tool, distinct from the themed
  Settings product surface.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
peter 2026-09-04 11:33:23 +01:00
parent 19c1798f90
commit b382eb857b
8 changed files with 134 additions and 12 deletions

View file

@ -128,6 +128,42 @@ body {
border-color: var(--control-border);
}
.avatar-button {
background: transparent;
border: 0;
border-radius: 50%;
cursor: pointer;
line-height: 0;
padding: 2px;
}
.avatar-button:hover .avatar,
.avatar-button:focus-visible .avatar {
box-shadow: 0 0 0 2px var(--content-bg), 0 0 0 4px var(--control-border);
}
.avatar {
align-items: center;
border-radius: 50%;
color: #fff;
display: inline-flex;
font-size: 0.9rem;
font-weight: 600;
height: 2rem;
justify-content: center;
line-height: 1;
width: 2rem;
}
.user-menu-name {
border-bottom: 1px solid var(--control-border);
color: var(--muted);
font-size: 0.8rem;
font-weight: 600;
margin-bottom: 0.25rem;
padding: 0.5rem 0.8rem;
}
.user-menu-dropdown {
background: var(--surface);
border: 1px solid var(--control-border);
@ -968,6 +1004,21 @@ kbd {
padding-bottom: 0.7rem !important;
}
.settings-nav-group {
display: flex;
flex-direction: column;
margin-bottom: 0.9rem;
}
.settings-nav-heading {
color: var(--muted);
font-size: 0.7rem;
font-weight: 700;
letter-spacing: 0.06em;
padding: 0.3rem 0.7rem;
text-transform: uppercase;
}
.settings-panel {
max-width: 42rem;
padding: 1.6rem 2rem;