From c8a3d92be46b096b7b3494890e126ea682947eb9 Mon Sep 17 00:00:00 2001 From: Julian Freeman Date: Thu, 16 Apr 2026 13:00:10 -0400 Subject: [PATCH] change ui --- src/App.vue | 48 ++++++++++++++++++++++++++++++++++++----- src/styles.css | 58 ++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 85 insertions(+), 21 deletions(-) diff --git a/src/App.vue b/src/App.vue index 609a4a9..d5af110 100644 --- a/src/App.vue +++ b/src/App.vue @@ -49,6 +49,7 @@ const loading = ref(true); const error = ref(""); const response = ref({ browsers: [] }); const selectedBrowserId = ref(""); +const activeSection = ref<"profiles" | "extensions" | "bookmarks">("profiles"); const browsers = computed(() => response.value.browsers); const currentBrowser = computed(() => @@ -109,6 +110,13 @@ function domainFromUrl(url: string) { } } +function sectionCount(section: "profiles" | "extensions" | "bookmarks") { + if (!currentBrowser.value) return 0; + if (section === "profiles") return currentBrowser.value.profiles.length; + if (section === "extensions") return currentBrowser.value.extensions.length; + return currentBrowser.value.bookmarks.length; +} + onMounted(() => { void scanBrowsers(); }); @@ -193,7 +201,37 @@ onMounted(() => { -
+
+ + + +
+ +

Profiles

@@ -202,7 +240,7 @@ onMounted(() => { {{ currentBrowser.profiles.length }}
-
+
{
-
+

Extensions

@@ -240,7 +278,7 @@ onMounted(() => { {{ currentBrowser.extensions.length }}
-
+
{
-
+

Bookmarks

diff --git a/src/styles.css b/src/styles.css index 9b67c53..4f508cf 100644 --- a/src/styles.css +++ b/src/styles.css @@ -258,6 +258,7 @@ button { } .hero-card, +.section-tabs, .content-section, .state-panel { border: 1px solid var(--panel-border); @@ -312,6 +313,42 @@ button { padding: 24px; } +.section-tabs { + display: flex; + gap: 10px; + margin-top: 20px; + padding: 10px; +} + +.section-tab { + display: inline-flex; + align-items: center; + justify-content: space-between; + gap: 12px; + min-width: 0; + flex: 1; + padding: 14px 16px; + border-radius: 20px; + color: var(--muted); + background: rgba(255, 255, 255, 0.58); + cursor: pointer; + transition: + background 160ms ease, + color 160ms ease, + transform 160ms ease, + box-shadow 160ms ease; +} + +.section-tab:hover { + transform: translateY(-1px); +} + +.section-tab.active { + color: var(--text); + background: linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(232, 240, 255, 0.92)); + box-shadow: 0 12px 24px rgba(15, 23, 42, 0.08); +} + .section-heading { display: flex; align-items: center; @@ -346,11 +383,11 @@ button { color: var(--badge-text); } -.profile-grid, -.extension-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 16px; +.stack-list, +.bookmark-list { + display: flex; + flex-direction: column; + gap: 14px; } .profile-card, @@ -437,12 +474,6 @@ button { margin-top: 12px; } -.bookmark-list { - display: flex; - flex-direction: column; - gap: 14px; -} - .state-panel, .empty-card { display: grid; @@ -484,11 +515,6 @@ button { grid-template-columns: 1fr; } - .profile-grid, - .extension-grid { - grid-template-columns: 1fr; - } - .profile-card, .extension-card, .bookmark-card {