@@ -92,61 +92,57 @@ const viewportDragging = css`
9292
9393export const viewportDraggingClassname = `rdg-viewport-dragging ${ viewportDragging } ` ;
9494
95- // Add shadow after the last frozen cell
95+ // Common properties shared by both start- and end-edge frozen-column shadows.
96+ // Variants below add only the direction-dependent properties (gradient + scroll-state predicate).
9697export const frozenColumnShadowClassname = css `
9798 position : sticky;
9899 width : 10px ;
100+ pointer-events : none;
101+ z-index : 1 ;
102+ opacity : 1 ;
103+ transition : opacity 0.1s ;
104+
105+ & : dir (rtl ) {
106+ transform : scaleX (-1 );
107+ }
108+ ` ;
109+
110+ const frozenColumnShadowStartOverrides = css `
99111 background-image : linear-gradient (
100112 to right,
101113 light-dark (rgb (0 0 0 / 15% ), rgb (0 0 0 / 40% )),
102114 transparent
103115 );
104- pointer-events : none;
105- z-index : 1 ;
106-
107- opacity : 1 ;
108- transition : opacity 0.1s ;
109116
110117 /* TODO: reverse 'opacity' and remove 'not' */
111118 @container rdg-root not scroll-state(scrollable: inline-start) {
112119 opacity : 0 ;
113120 }
114-
115- & : dir (rtl ) {
116- transform : scaleX (-1 );
117- }
118121` ;
119122
120- // Add shadow before the first end-frozen cell (mirror of the start shadow)
121- export const frozenColumnShadowEndClassname = css `
122- position : sticky;
123- width : 10px ;
123+ const frozenColumnShadowEndOverrides = css `
124124 background-image : linear-gradient (
125125 to left,
126126 light-dark (rgb (0 0 0 / 15% ), rgb (0 0 0 / 40% )),
127127 transparent
128128 );
129- pointer-events : none;
130- z-index : 1 ;
131-
132- opacity : 1 ;
133- transition : opacity 0.1s ;
134129
135130 /* TODO: reverse 'opacity' and remove 'not' */
136131 @container rdg-root not scroll-state(scrollable: inline-end) {
137132 opacity : 0 ;
138133 }
139-
140- & : dir (rtl ) {
141- transform : scaleX (-1 );
142- }
143134` ;
144135
136+ // Add shadow after the last start-frozen cell
137+ export const frozenColumnShadowStartClassname = `${ frozenColumnShadowClassname } ${ frozenColumnShadowStartOverrides } ` ;
138+
139+ // Add shadow before the first end-frozen cell (mirror of the start shadow)
140+ export const frozenColumnShadowEndClassname = `${ frozenColumnShadowClassname } ${ frozenColumnShadowEndOverrides } ` ;
141+
145142const topShadowClassname = css `
146143 /* render above header and summary rows */
147144 z-index : 2 ;
148145` ;
149146
150- export const frozenColumnShadowTopClassname = `${ frozenColumnShadowClassname } ${ topShadowClassname } ` ;
151-
147+ export const frozenColumnShadowTopClassname = `${ frozenColumnShadowStartClassname } ${ topShadowClassname } ` ;
152148export const frozenColumnShadowEndTopClassname = `${ frozenColumnShadowEndClassname } ${ topShadowClassname } ` ;
0 commit comments