Skip to content

Commit fc9663f

Browse files
committed
feat: enhance scrolling behavior and scrollbar styling for improved user experience
1 parent 07106b7 commit fc9663f

File tree

1 file changed

+64
-7
lines changed

1 file changed

+64
-7
lines changed

src/globals.css

Lines changed: 64 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,11 +108,15 @@
108108

109109
html {
110110
scroll-behavior: smooth;
111+
scroll-padding-top: 5rem;
112+
/* Account for fixed navbar */
111113
}
112114

113115
body {
114116
font-family: var(--font-family-body);
115117
overflow-x: hidden;
118+
scrollbar-gutter: stable;
119+
/* Prevent layout shift when scrollbar appears */
116120
}
117121

118122
/* Heading font */
@@ -207,6 +211,32 @@
207211
gap: clamp(1rem, 3vw, 1.5rem);
208212
}
209213

214+
/* Scroll utilities */
215+
.scroll-smooth {
216+
scroll-behavior: smooth;
217+
}
218+
219+
.scroll-auto {
220+
scroll-behavior: auto;
221+
}
222+
223+
.scrollbar-hide {
224+
-ms-overflow-style: none;
225+
scrollbar-width: none;
226+
}
227+
228+
.scrollbar-hide::-webkit-scrollbar {
229+
display: none;
230+
}
231+
232+
.scrollbar-thin {
233+
scrollbar-width: thin;
234+
}
235+
236+
.scrollbar-none {
237+
scrollbar-width: none;
238+
}
239+
210240
/* Scroll animations */
211241
[data-animate] {
212242
opacity: 0;
@@ -331,26 +361,53 @@
331361

332362
/* Custom scrollbar */
333363
::-webkit-scrollbar {
334-
width: 8px;
364+
width: 10px;
365+
height: 10px;
335366
}
336367

337368
::-webkit-scrollbar-track {
338-
background: var(--color-l-bg-2);
369+
background: transparent;
370+
border-radius: 8px;
339371
}
340372

341373
.dark ::-webkit-scrollbar-track {
342-
background: var(--color-d-bg-2);
374+
background: transparent;
343375
}
344376

345377
::-webkit-scrollbar-thumb {
346-
background: var(--color-l-text-3);
347-
border-radius: 4px;
378+
background: linear-gradient(135deg, var(--color-l-text-3), var(--color-l-text-2));
379+
border-radius: 8px;
380+
transition: all 0.3s ease;
348381
}
349382

350383
.dark ::-webkit-scrollbar-thumb {
351-
background: var(--color-d-text-3);
384+
background: linear-gradient(135deg, var(--color-d-text-3), var(--color-d-text-2));
352385
}
353386

354387
::-webkit-scrollbar-thumb:hover {
355-
background: var(--color-primary);
388+
background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
389+
transform: scale(1.05);
390+
}
391+
392+
::-webkit-scrollbar-thumb:active {
393+
background: linear-gradient(135deg, var(--color-primary-dark), var(--color-primary));
394+
}
395+
396+
/* Scrollbar corner */
397+
::-webkit-scrollbar-corner {
398+
background: transparent;
399+
}
400+
401+
.dark ::-webkit-scrollbar-corner {
402+
background: transparent;
403+
}
404+
405+
/* Firefox scrollbar */
406+
html {
407+
scrollbar-width: thin;
408+
scrollbar-color: var(--color-l-text-3) transparent;
409+
}
410+
411+
.dark html {
412+
scrollbar-color: var(--color-d-text-3) transparent;
356413
}

0 commit comments

Comments
 (0)