Skip to content

Commit fd05ba8

Browse files
committed
feat(ScrollBar): 💄 use CSS variable for scrollbar color
1 parent f1ddd82 commit fd05ba8

6 files changed

Lines changed: 17 additions & 143 deletions

File tree

jest.config.js

Lines changed: 0 additions & 4 deletions
This file was deleted.

src/ScrollBar.tsx

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ const ScrollBar = React.forwardRef<ScrollBarRef, ScrollBarProps>((props, ref) =>
4545
const [dragging, setDragging] = React.useState(false);
4646
const [pageXY, setPageXY] = React.useState<number | null>(null);
4747
const [startTop, setStartTop] = React.useState<number | null>(null);
48-
const [dark, setDark] = React.useState(false);
4948

5049
const isLTR = !rtl;
5150

@@ -188,21 +187,6 @@ const ScrollBar = React.forwardRef<ScrollBarRef, ScrollBarProps>((props, ref) =>
188187
}
189188
}, [dragging]);
190189

191-
React.useEffect(() => {
192-
const media = window.matchMedia?.('(prefers-color-scheme: dark)');
193-
setDark(media.matches);
194-
195-
const listener = (e: MediaQueryListEvent) => {
196-
setDark(e.matches);
197-
};
198-
199-
media?.addEventListener('change', listener);
200-
201-
return () => {
202-
media?.removeEventListener('change', listener);
203-
};
204-
}, []);
205-
206190
React.useEffect(() => {
207191
delayHidden();
208192
return () => {
@@ -225,11 +209,9 @@ const ScrollBar = React.forwardRef<ScrollBarRef, ScrollBarProps>((props, ref) =>
225209

226210
const thumbStyle: React.CSSProperties = {
227211
position: 'absolute',
228-
background: dark ? 'rgba(255, 255, 255, 0.5)' : 'rgba(0, 0, 0, 0.5)',
229212
borderRadius: 99,
230213
cursor: 'pointer',
231214
userSelect: 'none',
232-
...propsThumbStyle,
233215
};
234216

235217
if (horizontal) {
@@ -269,21 +251,16 @@ const ScrollBar = React.forwardRef<ScrollBarRef, ScrollBarProps>((props, ref) =>
269251
return (
270252
<div
271253
ref={scrollbarRef}
272-
className={classNames(scrollbarPrefixCls, {
273-
[`${scrollbarPrefixCls}-horizontal`]: horizontal,
274-
[`${scrollbarPrefixCls}-vertical`]: !horizontal,
275-
[`${scrollbarPrefixCls}-visible`]: visible,
276-
})}
254+
className={scrollbarPrefixCls}
277255
style={{ ...containerStyle, ...style }}
278256
onMouseDown={onContainerMouseDown}
279-
onMouseMove={delayHidden}
280257
>
281258
<div
282259
ref={thumbRef}
283260
className={classNames(`${scrollbarPrefixCls}-thumb`, {
284261
[`${scrollbarPrefixCls}-thumb-moving`]: dragging,
285262
})}
286-
style={{ ...thumbStyle }}
263+
style={{ ...thumbStyle, ...propsThumbStyle }}
287264
onMouseDown={onThumbMouseDown}
288265
/>
289266
</div>

src/index.less

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
.rc-virtual-list {
2+
--rc-virtual-list-scrollbar-bg: rgba(0, 0, 0, 0.5);
3+
--rc-virtual-list-scrollbar-bg-light: rgba(255, 255, 255, 0.5);
4+
}
5+
6+
@media (prefers-color-scheme: dark) {
7+
.rc-virtual-list {
8+
--rc-virtual-list-scrollbar-bg: var(--rc-virtual-list-scrollbar-bg-light);
9+
}
10+
}
11+
12+
.rc-virtual-list-scrollbar-thumb {
13+
background: var(--rc-virtual-list-scrollbar-bg);
14+
}

src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import './index.less';
12
import List from './List';
23

34
export type { ListRef, ListProps } from './List';

tests/dark.test.js

Lines changed: 0 additions & 101 deletions
This file was deleted.

tests/setup.js

Lines changed: 0 additions & 13 deletions
This file was deleted.

0 commit comments

Comments
 (0)