fix(ui): remove side-stripe borders in favour of subtle bg tints
Side-stripe borders (border-left: 2px or 3px in an accent colour, with the rest of the element having no border) are the textbook AI-coded-IDE "selected-state" pattern. The brand vocabulary is colour-tint and chevron, not stripe-and-fill. Replaced eight sites: - VirtualSegmentList active/match/default segment rows: bg-accent/10, bg-warning/10, hover:bg-hover (drop the stripes; bg-warning bumped /5 → /10 so it's visible without the stripe doing the work). - viewer/+page.svelte: same pattern as VirtualSegmentList. - TasksPage profile-list tabs: bg-accent/10 + font-medium for active, hover:bg-hover for inactive. rounded-md added so the tint follows the row outline. - ToastViewport: replaced border-left + variant colour with full 1px border + bg tint + border-color tint (color-mix() with the matching semantic token at 35% / 10%). Also removed the orphan --moss / --signal / --ember tokens — they were not defined in app.css and fell back to hex literals. - preview/+page.svelte: dropped the phase-coloured left stripe and the borderColorClass derivation; the header already has a pulsing dot / animated bars / spinner for each phase, so the stripe was redundant.
This commit is contained in:
@@ -66,9 +66,9 @@
|
||||
gap: 0.75rem;
|
||||
padding: 0.875rem 1rem;
|
||||
border-radius: 0.5rem;
|
||||
background: var(--surface, #1a1a1a);
|
||||
color: var(--text, #fff);
|
||||
border-left: 3px solid var(--moss, #4a7a4a);
|
||||
background: var(--color-bg-card);
|
||||
color: var(--color-text);
|
||||
border: 1px solid var(--color-border);
|
||||
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
|
||||
/* Slide in from right; honours reduce-motion via the existing class
|
||||
that preferences.svelte.js applies to <html>. */
|
||||
@@ -81,10 +81,23 @@
|
||||
to { transform: translateX(0); opacity: 1; }
|
||||
}
|
||||
|
||||
.toast-info { border-left-color: var(--moss, #4a7a4a); }
|
||||
.toast-success { border-left-color: var(--moss, #4a7a4a); }
|
||||
.toast-warn { border-left-color: var(--signal, #d4a017); }
|
||||
.toast-error { border-left-color: var(--ember, #c87144); }
|
||||
/* Severity styling tints the whole surface and border in the matching
|
||||
semantic colour. Brand-aligned: no side stripes, no decorative
|
||||
accents. The body text and dismiss button still read against the
|
||||
tinted background because the tints are at low alpha. */
|
||||
.toast-info,
|
||||
.toast-success {
|
||||
background: color-mix(in oklch, var(--color-success) 10%, var(--color-bg-card));
|
||||
border-color: color-mix(in oklch, var(--color-success) 35%, var(--color-border));
|
||||
}
|
||||
.toast-warn {
|
||||
background: color-mix(in oklch, var(--color-warning) 10%, var(--color-bg-card));
|
||||
border-color: color-mix(in oklch, var(--color-warning) 35%, var(--color-border));
|
||||
}
|
||||
.toast-error {
|
||||
background: color-mix(in oklch, var(--color-danger) 10%, var(--color-bg-card));
|
||||
border-color: color-mix(in oklch, var(--color-danger) 35%, var(--color-border));
|
||||
}
|
||||
|
||||
.toast-body {
|
||||
flex: 1;
|
||||
|
||||
@@ -159,10 +159,10 @@
|
||||
<div
|
||||
class="absolute left-0 right-0 group flex gap-3 px-3 py-2 rounded-lg cursor-pointer transition-colors
|
||||
{activeSegmentIdx === idx
|
||||
? 'bg-accent/10 border-l-2 border-accent'
|
||||
? 'bg-accent/10'
|
||||
: matchingSegments.has(idx)
|
||||
? 'bg-warning/5 border-l-2 border-warning/40'
|
||||
: 'border-l-2 border-transparent hover:bg-hover'}"
|
||||
? 'bg-warning/10'
|
||||
: 'hover:bg-hover'}"
|
||||
style="top: {top}px"
|
||||
onclick={() => onSeekToTime(seg.start)}
|
||||
ondblclick={() => onStartEditing(idx)}
|
||||
|
||||
@@ -504,10 +504,10 @@
|
||||
{:else}
|
||||
<div class="relative">
|
||||
<button
|
||||
class="w-full flex items-center gap-1.5 px-2 py-1.5 text-left text-[11px]
|
||||
class="w-full flex items-center gap-1.5 px-2 py-1.5 rounded-md text-left text-[11px]
|
||||
{activeListId === list.id
|
||||
? 'border-l-2 border-accent text-text font-medium bg-accent/5'
|
||||
: 'border-l-2 border-transparent text-text-secondary hover:bg-hover hover:text-text'}"
|
||||
? 'text-text font-medium bg-accent/10'
|
||||
: 'text-text-secondary hover:bg-hover hover:text-text'}"
|
||||
onclick={() => { activeListId = list.id; contextMenuListId = null; }}
|
||||
ondblclick={() => { if (!list.builtIn && !sidebarCollapsed) startRenaming(list); }}
|
||||
oncontextmenu={(e) => { if (!list.builtIn) toggleContextMenu(e, list.id); }}
|
||||
|
||||
@@ -183,16 +183,10 @@
|
||||
: phase === "cleanup" ? "Cleaning up"
|
||||
: "Final",
|
||||
);
|
||||
let borderColorClass = $derived(
|
||||
phase === "final" ? "border-success"
|
||||
: phase === "cleanup" ? "border-accent"
|
||||
: "border-border",
|
||||
);
|
||||
</script>
|
||||
|
||||
<div
|
||||
class="h-full w-full flex flex-col bg-bg text-text p-3 gap-2 border-l-2 {borderColorClass}"
|
||||
style="transition: border-color var(--duration-ui) ease-out"
|
||||
class="h-full w-full flex flex-col bg-bg text-text p-3 gap-2"
|
||||
data-tauri-drag-region
|
||||
>
|
||||
<header class="flex items-center justify-between gap-2 text-[11px] text-text-secondary" data-tauri-drag-region>
|
||||
|
||||
@@ -522,10 +522,10 @@
|
||||
bind:this={segmentRefs[seg._idx]}
|
||||
class="group flex gap-3 px-3 py-2 rounded-lg cursor-pointer transition-colors
|
||||
{activeSegmentIdx === seg._idx
|
||||
? 'bg-accent/10 border-l-2 border-accent'
|
||||
? 'bg-accent/10'
|
||||
: matchingSegments.has(seg._idx)
|
||||
? 'bg-warning/5 border-l-2 border-warning/40'
|
||||
: 'border-l-2 border-transparent hover:bg-hover'}"
|
||||
? 'bg-warning/10'
|
||||
: 'hover:bg-hover'}"
|
||||
onclick={() => seekToTime(seg.start)}
|
||||
ondblclick={() => startEditing(seg._idx)}
|
||||
role="button"
|
||||
|
||||
Reference in New Issue
Block a user