Skip to content

Commit 087220d

Browse files
ndemiancclaude
andcommitted
style(sessions): flatten the sidebar rows to VS Code minimalism
The boxed cards read heavy next to VS Code's flat session list. Restyle the SIDEBAR view (CSS only) to match: no card border/background/shadow — flat rows with a small status dot (muted normally; amber/red/violet when interrupted/ error/resumed, replacing the left-edge), a regular-weight title, the time (and primary file) on a muted second line, and selection as a subtle full-row tint rather than a border. Hover still expands to the rich detail. Scoped to sessionsView.html only — the /sessions modal (which you liked) keeps its cards, and the shared SESSIONS-PURE render block is untouched (still byte-identical; the drift test stays green). Full suite: 31 suites, 0 failures. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1 parent e3e58cc commit 087220d

1 file changed

Lines changed: 17 additions & 14 deletions

File tree

extensions/levelcode-ai/media/sessionsView.html

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,25 +25,28 @@
2525
.sessbucket { display: flex; justify-content: space-between; align-items: baseline; font-family: var(--vscode-editor-font-family, ui-monospace, monospace); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: var(--cc-text3); margin: 12px 4px 7px; }
2626
.sessbucket .cnt { letter-spacing: 0; }
2727
.sessempty { padding: 44px 16px; text-align: center; color: var(--cc-text3); font-size: 13px; line-height: 1.6; }
28-
.sesscard { position: relative; background: var(--cc-bg); border: 1px solid var(--cc-line); border-radius: 7px; padding: 9px 11px; margin-bottom: 7px; cursor: pointer; transition: border-color .12s, transform .12s, box-shadow .12s; }
29-
.sesscard:hover, .sesscard:focus-visible, .sesscard:focus-within { border-color: var(--cc-accent); transform: translateY(-1px); box-shadow: 0 6px 18px rgba(0,0,0,.22); outline: none; }
30-
.sesscard.warn { border-left: 2px solid var(--cc-warn); }
31-
.sesscard.err { border-left: 2px solid var(--cc-danger); }
32-
.sesscard.res { border-left: 2px solid var(--cc-accent); }
33-
.sesscard .sesstop { display: flex; align-items: center; gap: 8px; }
34-
.sesscard .sessname { font-weight: 600; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1; }
35-
.sesscard .sessstar { color: var(--cc-accent); font-size: 13px; }
36-
.sesscard .sesssub { margin-top: 3px; font-family: var(--vscode-editor-font-family, ui-monospace, monospace); font-size: 11px; color: var(--cc-text3); }
37-
.sesscard .sessrich { display: none; margin-top: 8px; }
28+
/* flat, VS Code-minimal rows: a status dot + title + time, no card box; selection is a subtle full-row tint */
29+
.sesscard { position: relative; padding: 7px 8px 8px; margin-bottom: 1px; border-radius: 6px; cursor: pointer; transition: background .1s; }
30+
.sesscard:hover { background: color-mix(in srgb, var(--cc-text3) 13%, transparent); }
31+
.sesscard:focus-visible { background: color-mix(in srgb, var(--cc-accent) 15%, transparent); outline: none; }
32+
.sesscard .sesstop { display: flex; align-items: center; gap: 10px; }
33+
.sesscard .sesstop::before { content: ''; flex: 0 0 auto; width: 6px; height: 6px; border-radius: 50%; background: var(--cc-text3); }
34+
.sesscard.warn .sesstop::before { background: var(--cc-warn); }
35+
.sesscard.err .sesstop::before { background: var(--cc-danger); }
36+
.sesscard.res .sesstop::before { background: var(--cc-accent); }
37+
.sesscard .sessname { font-weight: 400; font-size: 13.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex: 1; }
38+
.sesscard .sessstar { flex: 0 0 auto; color: var(--cc-accent); font-size: 12px; }
39+
.sesscard .sesssub { margin: 2px 0 0 16px; font-size: 12px; color: var(--cc-text3); }
40+
.sesscard .sessrich { display: none; margin: 6px 0 0 16px; }
3841
.sesscard:hover .sessrich, .sesscard:focus-within .sessrich { display: block; }
3942
.sesscard .sessfiles { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
40-
.sesscard .sesschip { font-family: var(--vscode-editor-font-family, ui-monospace, monospace); font-size: 11px; color: var(--cc-text2); background: var(--cc-surface); border: 1px solid var(--cc-line); border-radius: 4px; padding: 1px 6px; }
43+
.sesscard .sesschip { font-family: var(--vscode-editor-font-family, ui-monospace, monospace); font-size: 11px; color: var(--cc-text2); background: color-mix(in srgb, var(--cc-text3) 12%, transparent); border-radius: 4px; padding: 1px 6px; }
4144
.sesscard .sessmeta { display: flex; align-items: center; gap: 7px; margin-top: 6px; font-family: var(--vscode-editor-font-family, ui-monospace, monospace); font-size: 11px; color: var(--cc-text3); }
4245
.sesscard .sessacts { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 9px; }
43-
.sesscard .sessbtn { font: inherit; font-size: 11px; color: var(--cc-text); background: var(--cc-surface); border: 1px solid var(--cc-line); border-radius: 5px; padding: 3px 9px; cursor: pointer; }
46+
.sesscard .sessbtn { font: inherit; font-size: 11px; color: var(--cc-text2); background: transparent; border: 1px solid var(--cc-line); border-radius: 5px; padding: 2px 8px; cursor: pointer; }
4447
.sesscard .sessbtn.pri { color: #fff; background: var(--cc-accent); border-color: transparent; }
45-
.sesscard .sessbtn:hover { border-color: var(--cc-accent); }
46-
@media (prefers-reduced-motion: reduce) { .sesscard { transition: none; } .sesscard:hover, .sesscard:focus-visible, .sesscard:focus-within { transform: none; } }
48+
.sesscard .sessbtn:hover { border-color: var(--cc-accent); color: var(--cc-text); }
49+
@media (prefers-reduced-motion: reduce) { .sesscard { transition: none; } }
4750
</style>
4851
</head>
4952
<body>

0 commit comments

Comments
 (0)