From dd9ebd2afcaa7b6214dafeadec53c8cb73eebdeb Mon Sep 17 00:00:00 2001 From: Brad Stein Date: Tue, 6 Jan 2026 13:55:24 -0300 Subject: [PATCH] refine onboarding steps and app layout --- .../atlas_portal/routes/access_requests.py | 1 + frontend/src/views/AccountView.vue | 11 +++--- frontend/src/views/AppsView.vue | 13 +++++-- frontend/src/views/OnboardingView.vue | 34 +++++++++++++++++-- frontend/src/views/RequestAccessView.vue | 3 +- 5 files changed, 50 insertions(+), 12 deletions(-) diff --git a/backend/atlas_portal/routes/access_requests.py b/backend/atlas_portal/routes/access_requests.py index 6f440c4..59b7694 100644 --- a/backend/atlas_portal/routes/access_requests.py +++ b/backend/atlas_portal/routes/access_requests.py @@ -59,6 +59,7 @@ def _verify_url(request_code: str, token: str) -> str: ONBOARDING_STEPS: tuple[str, ...] = ( "vaultwarden_master_password", "vaultwarden_browser_extension", + "vaultwarden_desktop_app", "vaultwarden_mobile_app", "keycloak_password_rotated", "keycloak_mfa_optional", diff --git a/frontend/src/views/AccountView.vue b/frontend/src/views/AccountView.vue index 622dd35..4bcc43d 100644 --- a/frontend/src/views/AccountView.vue +++ b/frontend/src/views/AccountView.vue @@ -549,7 +549,7 @@ async function copy(key, text) { flex-wrap: wrap; align-items: center; justify-content: flex-end; - gap: 24px; + gap: 28px; } .divider { @@ -591,15 +591,16 @@ h1 { } .account-stack { - display: flex; - flex-direction: column; + display: grid; + grid-template-rows: repeat(2, minmax(0, 1fr)); gap: 12px; height: 100%; } .account-stack .module { - flex: 1 1 0; min-height: 0; + display: flex; + flex-direction: column; } .module { @@ -702,7 +703,7 @@ button.primary { } .jellyfin-detail { - margin-top: 12px; + margin-top: auto; } .copy { diff --git a/frontend/src/views/AppsView.vue b/frontend/src/views/AppsView.vue index 12147a0..f603a12 100644 --- a/frontend/src/views/AppsView.vue +++ b/frontend/src/views/AppsView.vue @@ -194,6 +194,8 @@ const sections = [ .category { padding: 18px; + display: flex; + flex-direction: column; } .section-head { @@ -202,8 +204,7 @@ const sections = [ justify-content: space-between; gap: 18px; margin-bottom: 14px; - height: 92px; - overflow: hidden; + min-height: 92px; } .group + .group { @@ -228,10 +229,16 @@ const sections = [ .tiles { display: grid; - grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); + grid-template-columns: 1fr; gap: 12px; } +@media (min-width: 680px) { + .tiles { + grid-template-columns: repeat(2, minmax(0, 1fr)); + } +} + .tile { display: block; text-decoration: none; diff --git a/frontend/src/views/OnboardingView.vue b/frontend/src/views/OnboardingView.vue index 43f7c44..b9abac8 100644 --- a/frontend/src/views/OnboardingView.vue +++ b/frontend/src/views/OnboardingView.vue @@ -166,6 +166,25 @@

+
  • + +

    + Install the Bitwarden desktop app and set the server to vault.bstein.dev (Settings → Account → Environment → Self-hosted). + Bitwarden downloads. +

    +
  • +