diff --git a/src/components/browser-data/AssociatedProfilesModal.vue b/src/components/browser-data/AssociatedProfilesModal.vue index 92ef53a..9a14a9f 100644 --- a/src/components/browser-data/AssociatedProfilesModal.vue +++ b/src/components/browser-data/AssociatedProfilesModal.vue @@ -1,6 +1,5 @@ @@ -44,33 +40,40 @@ function hasBookmarkPath( - + @@ -104,7 +104,7 @@ function hasBookmarkPath( } .modal-card { - width: min(720px, 100%); + width: min(760px, 100%); max-height: min(78vh, 820px); display: flex; flex-direction: column; @@ -123,46 +123,87 @@ function hasBookmarkPath( gap: 12px; } -.modal-header h3, -.modal-profile-heading h4 { +.modal-header h3 { margin: 0; font-weight: 600; letter-spacing: -0.03em; } +.modal-table { + display: flex; + flex-direction: column; + min-height: 0; + border: 1px solid rgba(148, 163, 184, 0.18); + border-radius: 18px; + background: var(--panel-strong); + overflow: hidden; +} + +.modal-grid { + display: grid; + grid-template-columns: 56px minmax(180px, 1fr) 132px 110px; + gap: 12px; + align-items: center; +} + +.modal-grid.bookmark { + grid-template-columns: 56px minmax(140px, 0.9fr) 120px minmax(180px, 1fr) 110px; +} + +.modal-table-header { + padding: 10px 14px; + border-bottom: 1px solid rgba(148, 163, 184, 0.14); + background: rgba(248, 250, 252, 0.82); +} + +.header-cell { + color: var(--muted); + font-size: 0.77rem; + font-weight: 700; + letter-spacing: 0.02em; +} + +.header-cell.sortable { + padding: 0; + text-align: left; + background: transparent; + cursor: pointer; +} + +.header-cell.sortable.active { + color: var(--text); +} + .modal-list { display: flex; flex-direction: column; - gap: 10px; min-height: 0; overflow: auto; - padding-right: 4px; } -.modal-toolbar { - display: flex; - justify-content: flex-end; +.modal-table-row { + padding: 12px 14px; + border-bottom: 1px solid rgba(148, 163, 184, 0.12); } -.modal-profile-card { - display: flex; - gap: 12px; - padding: 12px; - border: 1px solid rgba(148, 163, 184, 0.18); - border-radius: 16px; - background: var(--panel-strong); +.modal-table-row:last-child { + border-bottom: 0; +} + +.modal-table-row:hover { + background: rgba(248, 250, 252, 0.65); } .modal-profile-avatar { display: grid; place-items: center; flex-shrink: 0; - width: 46px; - height: 46px; - border-radius: 14px; + width: 36px; + height: 36px; + border-radius: 12px; background: linear-gradient(135deg, #dbeafe, #eff6ff); color: #1d4ed8; - font-size: 1rem; + font-size: 0.96rem; font-weight: 700; overflow: hidden; } @@ -173,29 +214,31 @@ function hasBookmarkPath( object-fit: cover; } -.modal-profile-body { - min-width: 0; - flex: 1; -} - -.modal-profile-topline { - display: flex; - align-items: flex-start; - justify-content: space-between; - gap: 12px; -} - -.modal-profile-heading { - display: flex; - align-items: center; - gap: 8px; +.row-cell { min-width: 0; } -.modal-bookmark-path { - margin: 8px 0 0; +.primary-cell strong { + display: block; + font-size: 0.93rem; + line-height: 1.3; +} + +.muted-cell { color: var(--muted); font-size: 0.86rem; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.actions-cell { + display: flex; + justify-content: flex-end; +} + +.icon-cell { + padding-left: 4px; } @media (max-width: 720px) { @@ -203,10 +246,14 @@ function hasBookmarkPath( padding: 12px; } - .modal-profile-card, - .modal-profile-topline, - .modal-profile-heading { - flex-direction: column; + .modal-grid, + .modal-grid.bookmark { + grid-template-columns: 56px minmax(0, 1fr) 96px; + } + + .modal-grid > :nth-child(4), + .modal-grid.bookmark > :nth-child(4) { + display: none; } } diff --git a/src/components/browser-data/BookmarksList.vue b/src/components/browser-data/BookmarksList.vue index 975c5c3..436edc9 100644 --- a/src/components/browser-data/BookmarksList.vue +++ b/src/components/browser-data/BookmarksList.vue @@ -1,11 +1,9 @@