diff options
| author | Adam <[email protected]> | 2026-02-20 10:43:18 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-02-20 10:54:17 -0600 |
| commit | fe89bedfcc6d97fdd4b8066c2c3d8eac92b531ea (patch) | |
| tree | 99eccf57e17ceb90e9f8b28829a8a5f9ab2ecbcc /packages/ui/src/components/scroll-view.css | |
| parent | 1e48d7fe8228d94ded379e36975b2cce12f4a510 (diff) | |
| download | opencode-fe89bedfcc6d97fdd4b8066c2c3d8eac92b531ea.tar.gz opencode-fe89bedfcc6d97fdd4b8066c2c3d8eac92b531ea.zip | |
wip(app): custom scroll view
Diffstat (limited to 'packages/ui/src/components/scroll-view.css')
| -rw-r--r-- | packages/ui/src/components/scroll-view.css | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/packages/ui/src/components/scroll-view.css b/packages/ui/src/components/scroll-view.css new file mode 100644 index 000000000..f81ae2976 --- /dev/null +++ b/packages/ui/src/components/scroll-view.css @@ -0,0 +1,61 @@ +.scroll-view { + position: relative; + overflow: hidden; +} + +.scroll-view__viewport { + height: 100%; + width: 100%; + overflow-y: auto; + scrollbar-width: none; + outline: none; +} + +.scroll-view__viewport::-webkit-scrollbar { + display: none; +} + +.scroll-view__thumb { + position: absolute; + right: 0; + top: 0; + width: 16px; + transition: opacity 200ms ease; + cursor: default; + user-select: none; + opacity: 0; +} + +.scroll-view__thumb::after { + content: ""; + position: absolute; + right: 4px; + top: 0; + bottom: 0; + width: 6px; + border-radius: 9999px; + background-color: var(--border-weak-base); + backdrop-filter: blur(4px); + transition: background-color 150ms ease; +} + +.scroll-view__thumb:hover::after, +.scroll-view__thumb[data-dragging="true"]::after { + background-color: var(--border-strong-base); +} + +.dark .scroll-view__thumb::after, +[data-theme="dark"] .scroll-view__thumb::after { + background-color: var(--border-weak-base); +} + +.dark .scroll-view__thumb:hover::after, +[data-theme="dark"] .scroll-view__thumb:hover::after, +.dark .scroll-view__thumb[data-dragging="true"]::after, +[data-theme="dark"] .scroll-view__thumb[data-dragging="true"]::after { + background-color: var(--border-strong-base); +} + +.scroll-view__thumb[data-visible="true"] { + opacity: 1; +} |
