Skip to content

Commit ea5138d

Browse files
Mihran Margaryanvabrahamyanadobe
Mihran Margaryan
authored andcommitted
feat: add styling enhancements for group header
1 parent 7cb8c1a commit ea5138d

File tree

3 files changed

+12
-2
lines changed

3 files changed

+12
-2
lines changed

packages/core/src/common/styles.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ export function makeCSSStyle(theme: Theme): Record<string, string> {
2323
"--gdg-bg-header": theme.bgHeader,
2424
"--gdg-bg-header-has-focus": theme.bgHeaderHasFocus,
2525
"--gdg-bg-header-hovered": theme.bgHeaderHovered,
26+
"--gdg-bg-group-header": theme.bgGroupHeader ?? theme.bgHeader,
27+
"--gdg-bg-group-header-hovered": theme.bgGroupHeaderHovered ?? theme.bgHeaderHovered,
2628
"--gdg-bg-bubble": theme.bgBubble,
2729
"--gdg-bg-bubble-selected": theme.bgBubbleSelected,
2830
"--gdg-bg-search-result": theme.bgSearchResult,
@@ -66,6 +68,8 @@ export interface Theme {
6668
bgHeader: string;
6769
bgHeaderHasFocus: string;
6870
bgHeaderHovered: string;
71+
bgGroupHeader?: string;
72+
bgGroupHeaderHovered?: string;
6973
bgBubble: string;
7074
bgBubbleSelected: string;
7175
bgSearchResult: string;
@@ -109,6 +113,8 @@ const dataEditorBaseTheme: Theme = {
109113
bgHeader: "#F7F7F8",
110114
bgHeaderHasFocus: "#E9E9EB",
111115
bgHeaderHovered: "#EFEFF1",
116+
bgGroupHeader: "#F7F7F8",
117+
bgGroupHeaderHovered: "#EFEFF1",
112118

113119
bgBubble: "#EDEDF3",
114120
bgBubbleSelected: "#FFFFFF",

packages/core/src/docs/08-theming.stories.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,8 +259,10 @@ The global theme is provided by the DataEditor by default and can be overriden b
259259
| bgCell | --gdg-bg-cell | string | The primary background color of the data grid. |
260260
| bgCellMedium | --gdg-bg-cell-medium | string | Used for disabled or otherwise off colored cells. |
261261
| bgHeader | --gdg-bg-header | string | The header background color |
262+
| bgGroupHeader | --gdg-bg-group-header | string \\| undefined | The group header background color, if none provided the \`bgHeader\` is used instead. |
262263
| bgHeaderHasFocus | --gdg-bg-header-has | string | The header background color when its column contains the selected cell |
263264
| bgHeaderHovered | --gdg-bg-header-hovered | string | The header background color when it is hovered |
265+
| bgGroupHeaderHovered | --gdg-bg-group-header-hovered | string \\| undefined | The group header background color when it is hovered, if none provided the \`bgHeaderHovered\` is used instead. |
264266
| bgBubble | --gdg-bg-bubble | string | The background color used in bubbles |
265267
| bgBubbleSelected | --gdg-bg-bubble-selected | string | The background color used in bubbles when the cell is selected |
266268
| bgSearchResult | --gdg-bg-search-result | string | The background color used for cells which match the search string |

packages/core/src/internal/data-grid/render/data-grid-render.header.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,9 @@ export function drawGroups(
186186
group?.overrideTheme === undefined ? theme : mergeAndRealizeTheme(theme, group.overrideTheme);
187187
const isHovered = hRow === -2 && hCol !== undefined && hCol >= span[0] && hCol <= span[1];
188188

189-
const fillColor = isHovered ? groupTheme.bgHeaderHovered : groupTheme.bgHeader;
189+
const fillColor = isHovered
190+
? groupTheme.bgGroupHeaderHovered ?? groupTheme.bgHeaderHovered
191+
: groupTheme.bgGroupHeader ?? groupTheme.bgHeader;
190192
if (fillColor !== theme.bgHeader) {
191193
ctx.fillStyle = fillColor;
192194
ctx.fill();
@@ -262,7 +264,7 @@ export function drawGroups(
262264
ctx.beginPath();
263265
ctx.moveTo(x + 0.5, 0);
264266
ctx.lineTo(x + 0.5, groupHeaderHeight);
265-
ctx.strokeStyle = theme.borderColor;
267+
ctx.strokeStyle = groupTheme.borderColor ?? theme.borderColor;
266268
ctx.lineWidth = 1;
267269
ctx.stroke();
268270
}

0 commit comments

Comments
 (0)