Skip to content

Commit a43d353

Browse files
Edwin Chanclaude
authored andcommitted
fix(ui): tame sidebar collapse, fill avatar button, box problem-sets table
- Drop sidebar height overflow by shrinking nav-item padding so the list fits 100vh without inner scroll - Animate the nav label width/margin so collapse no longer snaps the icon row from 44px squares to a wider pill mid-transition - Force the dashboard avatar img to fill the round button so the uploaded pfp shows edge-to-edge instead of leaving white margin - Restyle the problem-sets table so each set is one bordered card matching the dashboard set rows, instead of one box per column Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent c5412ca commit a43d353

1 file changed

Lines changed: 57 additions & 35 deletions

File tree

app/globals.css

Lines changed: 57 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ body.has-site-sidebar .site-content {
173173
top: 0;
174174
height: 100vh;
175175
overflow: hidden;
176-
padding: 28px 14px;
176+
padding: 12px 12px;
177177
background: var(--color-surface);
178178
border-right: 1px solid var(--color-border);
179179
width: var(--sidebar-collapsed-width);
@@ -194,41 +194,35 @@ body.has-site-sidebar .site-content {
194194
.sidebar:focus-within {
195195
width: var(--sidebar-width);
196196
box-shadow: 18px 0 36px -22px rgba(8, 10, 18, 0.28);
197-
overflow-y: auto;
198197
}
199198

200199
.sidebar:hover .nav-label,
201200
.sidebar:focus-within .nav-label {
202201
opacity: 1;
203202
transform: translateX(0);
203+
width: auto;
204+
margin-left: 10px;
204205
}
205206

206207
.nav-label {
207208
display: inline-block;
208209
white-space: nowrap;
209210
opacity: 0;
210-
transform: translateX(-6px);
211+
width: 0;
212+
margin-left: 0;
213+
overflow: hidden;
214+
transform: translateX(-4px);
211215
transition:
212-
opacity 200ms ease 60ms,
213-
transform 220ms cubic-bezier(0.22, 1, 0.36, 1) 60ms;
216+
opacity 180ms ease,
217+
transform 220ms cubic-bezier(0.22, 1, 0.36, 1),
218+
width 240ms cubic-bezier(0.22, 1, 0.36, 1),
219+
margin-left 240ms cubic-bezier(0.22, 1, 0.36, 1);
214220
pointer-events: none;
215221
}
216222

217-
.sidebar:not(:hover):not(:focus-within) .nav-item {
218-
width: 44px;
219-
height: 44px;
220-
min-height: 44px;
221-
padding: 0;
222-
margin: 0 auto;
223-
gap: 0;
224-
justify-content: center;
225-
border-radius: 12px;
226-
overflow: hidden;
227-
}
228-
229-
.sidebar:not(:hover):not(:focus-within) .nav-label {
230-
width: 0;
231-
margin: 0;
223+
.sidebar:hover .nav-label,
224+
.sidebar:focus-within .nav-label {
225+
pointer-events: auto;
232226
}
233227

234228
.brand {
@@ -2568,8 +2562,8 @@ html {
25682562
}
25692563

25702564
.nav-item {
2571-
min-height: 42px;
2572-
padding: 0 12px;
2565+
min-height: 40px;
2566+
padding: 0 11px;
25732567
border: 1px solid transparent;
25742568
border-radius: 12px;
25752569
color: var(--sidebar-text);
@@ -2872,8 +2866,8 @@ html {
28722866
}
28732867

28742868
.account-avatar-button .avatar {
2875-
width: 100%;
2876-
height: 100%;
2869+
width: 100% !important;
2870+
height: 100% !important;
28772871
border-radius: 50%;
28782872
object-fit: cover;
28792873
display: block;
@@ -5290,10 +5284,23 @@ html.dark .theme-choice-button.active {
52905284

52915285
.problem-hub-table-panel .table-wrap {
52925286
overflow-x: hidden;
5287+
padding: 12px 14px 14px;
52935288
}
52945289

52955290
.problem-hub-table-panel table {
52965291
table-layout: fixed;
5292+
border-collapse: separate;
5293+
border-spacing: 0 8px;
5294+
}
5295+
5296+
.problem-hub-table-panel thead th {
5297+
padding: 0 14px 6px;
5298+
color: var(--color-muted);
5299+
font-size: 0.74rem;
5300+
font-weight: 700;
5301+
text-transform: uppercase;
5302+
letter-spacing: 0.06em;
5303+
text-align: left;
52975304
}
52985305

52995306
.problem-hub-table-panel th,
@@ -5303,28 +5310,43 @@ html.dark .theme-choice-button.active {
53035310

53045311
.problem-hub-table-panel td {
53055312
padding: 0;
5313+
background: var(--color-card-bg);
5314+
border-top: 1px solid var(--color-border);
5315+
border-bottom: 1px solid var(--color-border);
5316+
vertical-align: middle;
5317+
transition:
5318+
background-color 160ms ease,
5319+
border-color 160ms ease;
5320+
}
5321+
5322+
.problem-hub-table-panel tr.problem-set-row td:first-child {
5323+
border-left: 1px solid var(--color-border);
5324+
border-top-left-radius: var(--radius-card);
5325+
border-bottom-left-radius: var(--radius-card);
5326+
}
5327+
5328+
.problem-hub-table-panel tr.problem-set-row td:last-child {
5329+
border-right: 1px solid var(--color-border);
5330+
border-top-right-radius: var(--radius-card);
5331+
border-bottom-right-radius: var(--radius-card);
5332+
}
5333+
5334+
.problem-hub-table-panel tr.problem-set-row:hover td {
5335+
background: rgba(240, 93, 155, 0.08);
5336+
border-color: rgba(240, 93, 155, 0.28);
53065337
}
53075338

53085339
.problem-set-row-link {
53095340
display: block;
5310-
padding: 14px 12px;
5341+
padding: 14px 16px;
53115342
min-height: 100%;
5312-
border: 1px solid transparent;
5313-
border-radius: 12px;
5343+
border-radius: 0;
53145344
color: inherit;
53155345
text-decoration: none;
53165346
box-sizing: border-box;
5317-
transition:
5318-
background-color 160ms ease,
5319-
border-color 160ms ease,
5320-
color 160ms ease,
5321-
box-shadow 160ms ease,
5322-
transform 160ms ease;
53235347
}
53245348

53255349
.problem-set-row:hover .problem-set-row-link {
5326-
background: rgba(240, 93, 155, 0.1);
5327-
border-color: rgba(240, 93, 155, 0.2);
53285350
color: var(--color-text-strong);
53295351
}
53305352

0 commit comments

Comments
 (0)