@@ -12,11 +12,63 @@ import {
12
12
PaddingTypes ,
13
13
PointerTypes ,
14
14
PositionTypes ,
15
+ ScrollTypes ,
15
16
TypographyTypes ,
16
17
WordWrapTypes ,
17
18
} from '@/types/styles' ;
18
19
import { AnimationType } from '@/types/styles/animation' ;
19
20
21
+ /**
22
+ * Get scroll styles.
23
+ * @param {ScrollTypes } prop - scroll styles
24
+ */
25
+ export const getScrollStyles = ( prop ?: ScrollTypes ) : CSSProp => {
26
+ if ( ! prop ) {
27
+ return css `` ;
28
+ }
29
+ const {
30
+ scrollbar_width,
31
+ scrollbar_color,
32
+ overflow_block,
33
+ overflow_inline,
34
+ overflow_x,
35
+ overflow_y,
36
+ overflow,
37
+ overflow_clip_margin,
38
+ scrollbar_gutter,
39
+ scroll_behavior,
40
+ scroll_margin,
41
+ scroll_padding,
42
+ scroll_snap_align,
43
+ scroll_snap_stop,
44
+ scroll_snap_type,
45
+ webkit_scrollbar,
46
+ scroll_container,
47
+ scrollbar_aria_role,
48
+ } = prop ;
49
+
50
+ return css `
51
+ ${ scrollbar_width && `scrollbar-width: ${ scrollbar_width } ;` }
52
+ ${ scrollbar_color && `scrollbar-color: ${ scrollbar_color } ;` }
53
+ ${ overflow_block && `overflow-block: ${ overflow_block } ;` }
54
+ ${ overflow_inline && `overflow-inline: ${ overflow_inline } ;` }
55
+ ${ overflow_x && `overflow-x: ${ overflow_x } ;` }
56
+ ${ overflow_y && `overflow-y: ${ overflow_y } ;` }
57
+ ${ overflow && `overflow: ${ overflow } ;` }
58
+ ${ overflow_clip_margin && `overflow-clip-margin: ${ overflow_clip_margin } ;` }
59
+ ${ scrollbar_gutter && `scrollbar-gutter: ${ scrollbar_gutter } ;` }
60
+ ${ scroll_behavior && `scroll-behavior: ${ scroll_behavior } ;` }
61
+ ${ scroll_margin && `scroll-margin: ${ scroll_margin } ;` }
62
+ ${ scroll_padding && `scroll-padding: ${ scroll_padding } ;` }
63
+ ${ scroll_snap_align && `scroll-snap-align: ${ scroll_snap_align } ;` }
64
+ ${ scroll_snap_stop && `scroll-snap-stop: ${ scroll_snap_stop } ;` }
65
+ ${ scroll_snap_type && `scroll-snap-type: ${ scroll_snap_type } ;` }
66
+ ${ webkit_scrollbar && `::-webkit-scrollbar: ${ webkit_scrollbar } ;` }
67
+ ${ scroll_container && `scroll-container: ${ scroll_container } ;` }
68
+ ${ scrollbar_aria_role && `scrollbar-aria-role: ${ scrollbar_aria_role } ;` }
69
+ ` ;
70
+ } ;
71
+
20
72
/**
21
73
* Returns the background styles.
22
74
* @param {BackgroundTypes } prop - The background properties.
@@ -520,6 +572,7 @@ const getGenericStyles = (styles?: CommonStyleType): CSSProp => {
520
572
${ getPointerStyles ( styles ) }
521
573
${ getWordWrapStyles ( styles ) }
522
574
${ getAnimationStyles ( styles ) }
575
+ ${ getScrollStyles ( styles ) }
523
576
` ;
524
577
} ;
525
578
0 commit comments