diff --git a/frontend/app/admin/SettingsPage.tsx b/frontend/app/admin/SettingsPage.tsx index eb96b5f..e156df3 100644 --- a/frontend/app/admin/SettingsPage.tsx +++ b/frontend/app/admin/SettingsPage.tsx @@ -300,7 +300,7 @@ export default function SettingsPage({ section }: SettingsPageProps) { requests_data_source: 'Pick where Magent should read requests from.', log_level: 'How much detail is written to the activity log.', log_file: 'Where the activity log is stored.', - site_build_number: 'Build number shown in the footer (auto-set from releases).', + site_build_number: 'Build number shown in the account menu (auto-set from releases).', site_banner_enabled: 'Enable a sitewide banner for announcements.', site_banner_message: 'Short banner message for maintenance or updates.', site_banner_tone: 'Visual tone for the banner.', diff --git a/frontend/app/globals.css b/frontend/app/globals.css index 15ff479..9826b62 100644 --- a/frontend/app/globals.css +++ b/frontend/app/globals.css @@ -175,30 +175,35 @@ body { margin-right: auto; } -.signed-in { - font-size: 12px; - text-transform: uppercase; - letter-spacing: 0.08em; - color: var(--ink-muted); - padding: 6px 10px; - border-radius: 999px; - border: 1px dashed var(--border); - background: transparent; - cursor: pointer; -} - .signed-in-menu { position: relative; display: inline-flex; align-items: center; } +.avatar-button { + width: 44px; + height: 44px; + border-radius: 50%; + border: 1px solid rgba(255, 255, 255, 0.12); + background: linear-gradient(130deg, rgba(28, 107, 255, 0.35), rgba(17, 214, 198, 0.25)); + color: var(--ink); + font-weight: 700; + letter-spacing: 0.04em; + text-transform: uppercase; + display: inline-flex; + align-items: center; + justify-content: center; + box-shadow: 0 10px 20px rgba(28, 107, 255, 0.25); + cursor: pointer; +} + .signed-in-dropdown { position: absolute; top: calc(100% + 8px); right: 0; - min-width: 180px; - background: rgba(14, 20, 32, 0.95); + width: min(260px, 90vw); + background: rgba(14, 20, 32, 0.96); border: 1px solid var(--border); border-radius: 12px; padding: 8px; @@ -206,17 +211,50 @@ body { z-index: 20; } -.signed-in-dropdown a { +.signed-in-header { + font-size: 11px; + letter-spacing: 0.06em; + text-transform: uppercase; + color: var(--ink-muted); + padding: 8px 10px 6px; + border-bottom: 1px solid rgba(255, 255, 255, 0.08); +} + +.signed-in-actions { + display: grid; + gap: 6px; + padding: 8px 4px 4px; +} + +.signed-in-actions a, +.signed-in-signout { display: block; padding: 8px 12px; border-radius: 10px; color: var(--ink); text-decoration: none; - text-align: center; + text-align: left; + background: rgba(255, 255, 255, 0.05); + border: 1px solid rgba(255, 255, 255, 0.08); } -.signed-in-dropdown a:hover { - background: rgba(255, 255, 255, 0.08); +.signed-in-signout { + cursor: pointer; + font: inherit; +} + +.signed-in-actions a:hover, +.signed-in-signout:hover { + background: rgba(255, 255, 255, 0.12); +} + +.signed-in-build { + margin-top: 6px; + padding: 6px 10px 8px; + font-size: 11px; + color: var(--ink-muted); + text-align: left; + letter-spacing: 0.04em; } .theme-toggle { @@ -1446,21 +1484,18 @@ button span { } .signed-in-menu { - width: 100%; + margin-left: auto; } - .signed-in { - width: 100%; - text-align: left; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; + .avatar-button { + width: 40px; + height: 40px; } .signed-in-dropdown { - position: static; - width: 100%; - margin-top: 8px; + right: 0; + left: auto; + width: min(260px, 92vw); } .header-actions { diff --git a/frontend/app/layout.tsx b/frontend/app/layout.tsx index 81b6d71..fdb99a9 100644 --- a/frontend/app/layout.tsx +++ b/frontend/app/layout.tsx @@ -29,8 +29,8 @@ export default function RootLayout({ children }: { children: ReactNode }) {