CSS CUSTOM SCROLLBAR GENERATOR
Style a scrollbar's width, radius, and colors, preview it live, and copy the CSS.
Track
Thumb
Thumb hover
.custom-scrollbar {
scrollbar-width: thin;
scrollbar-color: #ff6a35 #2a2622;
}
.custom-scrollbar::-webkit-scrollbar {
width: 10px;
height: 10px;
}
.custom-scrollbar::-webkit-scrollbar-track {
background: #2a2622;
border-radius: 8px;
}
.custom-scrollbar::-webkit-scrollbar-thumb {
background: #ff6a35;
border-radius: 8px;
}
.custom-scrollbar::-webkit-scrollbar-thumb:hover {
background: #ffb347;
}How to use the custom scrollbar
- 1
Scroll inside the preview box to see your scrollbar styling live.
- 2
Set the width, corner radius, track color, thumb color, and thumb hover color.
- 3
Toggle Thin for Firefox's scrollbar-width: thin.
- 4
Copy the CSS and apply the .custom-scrollbar class to any element with overflow: auto/scroll.
Questions
- Why does this generator output two different sets of properties?
- There's no single standard way to style scrollbars yet. scrollbar-width and scrollbar-color are the standard CSS Scrollbars Module properties (supported in Firefox and Chromium), while ::-webkit-scrollbar and its sub-elements are a long-standing non-standard pseudo-element API (supported in Chrome, Safari, and Edge) — using both covers every major browser.
- Why can't I set a border or box-shadow on scrollbar-color directly?
- scrollbar-color only accepts two color values (thumb then track) — no border, radius, or shadow. Those finer details (border-radius, border, hover state) are only controllable through the ::-webkit-scrollbar-thumb/::-webkit-scrollbar-track pseudo-elements, which is why Chromium browsers can look more customized than Firefox.
- Why does my scrollbar thumb still look like a rounded pill on macOS?
- macOS defaults to overlay scrollbars (System Settings → Appearance → Show scrollbars → "Automatically based on mouse or trackpad"), and in that mode Chrome, Edge, and Safari largely defer to the OS to draw the thumb as its native rounded capsule — your border-radius and width get partially overridden even though the background-color still comes through. Switch that macOS setting to "Always" to force classic, always-visible scrollbars, where ::-webkit-scrollbar-thumb is honored exactly as styled.
- Does this work on the whole page, or only inside a div?
- Both — apply .custom-scrollbar to html or body to restyle the page's main scrollbar, or to any element with overflow-y: auto/scroll (like the preview box above) to restyle just that element's scrollbar.
- Why doesn't my scrollbar show the new styles at all?
- The element needs actual overflow to show a scrollbar — give it a fixed height/max-height smaller than its content plus overflow-y: auto or overflow: scroll. A scrollbar also won't render in a browser that supports neither scrollbar-color nor ::-webkit-scrollbar, though that combination is now rare.
- Does this tool store or upload anything?
- No — every setting is applied and rendered locally in your browser. Nothing is sent to a server.