diff --git a/projects/igniteui-angular/button-group/src/button-group/themes/_base.scss b/projects/igniteui-angular/button-group/src/button-group/themes/_base.scss index bb240a9f0c6..c217e155135 100644 --- a/projects/igniteui-angular/button-group/src/button-group/themes/_base.scss +++ b/projects/igniteui-angular/button-group/src/button-group/themes/_base.scss @@ -12,7 +12,7 @@ $_theme: digest-schema($material-button-group); --item-min-width: #{rem(42px)}; --ig-icon-size: #{rem(18px)}; --z-item-elevated: 2; - + @include e(buttons-container) { display: flex; border-radius: var-get($_theme, 'border-radius'); @@ -49,7 +49,7 @@ $_theme: digest-schema($material-button-group); color: var-get($_theme, 'item-icon-color'); } - &:hover { + &[igxButton]:hover { z-index: 1; color: var-get($_theme, 'item-hover-text-color'); background: var-get($_theme, 'item-hover-background'); @@ -60,7 +60,7 @@ $_theme: digest-schema($material-button-group); } } - &:active { + &[igxButton]:active { z-index: var(--z-item-elevated); color: var-get($_theme, 'item-hover-text-color'); background: var-get($_theme, 'item-active-background'); @@ -73,6 +73,12 @@ $_theme: digest-schema($material-button-group); &[igxButton] { border-radius: 0; + background: var-get($_theme, 'item-background'); + color: var-get($_theme, 'item-text-color'); + + igx-icon { + color: var-get($_theme, 'item-icon-color'); + } } &[igxButton][disabled='true'] { @@ -139,14 +145,20 @@ $_theme: digest-schema($material-button-group); z-index: calc(var(--z-item-elevated) + 1); &[igxButton] { + background: var-get($_theme, 'item-selected-background'); border-color: var-get($_theme, 'item-selected-border-color'); + color: var-get($_theme, 'item-selected-text-color'); + + igx-icon { + color: var-get($_theme, 'item-selected-icon-color'); + } } igx-icon { color: var-get($_theme, 'item-selected-icon-color'); } - &:hover { + &[igxButton]:hover { border-color: var-get($_theme, 'item-selected-hover-border-color'); color: var-get($_theme, 'item-selected-hover-text-color'); background: var-get($_theme, 'item-selected-hover-background'); @@ -156,7 +168,7 @@ $_theme: digest-schema($material-button-group); } } - &:active { + &[igxButton]:active { border-color: var-get($_theme, 'item-selected-active-border-color'); color: var-get($_theme, 'item-selected-hover-text-color'); background: var-get($_theme, 'item-selected-active-background'); diff --git a/projects/igniteui-angular/grids/core/src/filtering/excel-style/themes/_base.scss b/projects/igniteui-angular/grids/core/src/filtering/excel-style/themes/_base.scss index f5268560f96..bb20c5cd021 100644 --- a/projects/igniteui-angular/grids/core/src/filtering/excel-style/themes/_base.scss +++ b/projects/igniteui-angular/grids/core/src/filtering/excel-style/themes/_base.scss @@ -450,6 +450,10 @@ $checkbox-indent: ( flex-grow: 1; } + @include e(empty) { + color: hsl(from #{adaptive-contrast(var-get($theme, 'background'))} h s 60%); + } + @include e(secondary) { --component-size: var(--ig-size, var(--ig-size-large)); @@ -463,6 +467,8 @@ $checkbox-indent: ( } @include e(secondary-main) { + padding-inline: pad-inline(rem(4px), rem(8px), rem(16px)); + padding-block: rem(16px); height: rem(232px); overflow: auto; } @@ -492,17 +498,12 @@ $checkbox-indent: ( } @include e(condition) { - display: flex; - flex-wrap: wrap; + // Grid keeps the sroup spans a second row. + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: center; - padding-inline: pad-inline(rem(4px), rem(8px), rem(16px)); - padding-block: 0; igx-select { - flex-grow: 1; - flex-basis: 40%; - margin-block: rem(16px); - ~ igx-input-group, ~ igx-date-picker, ~ igx-time-picker { @@ -511,20 +512,24 @@ $checkbox-indent: ( } igx-buttongroup { + grid-column: 1 / -1; + justify-self: start; min-width: 30%; + margin-block: pad-block(rem(8px), rem(12px), rem(16px)); } [igxIconButton] { --component-size: var(--ig-size, var(--ig-size-large)); - margin-inline-start: rem(16px); + margin-inline-start: pad-inline(rem(4px), rem(8px), rem(16px)); } } @include e(add-filter) { --ig-icon-size: #{rem(18px)}; - margin-inline: pad-inline(rem(4px), rem(4px), rem(16px)); - margin-block-start: 0; + &:is(.igx-button) { + margin-block-start: pad-block(rem(8px), rem(12px), rem(16px)); + } } } } diff --git a/projects/igniteui-angular/grids/core/src/filtering/excel-style/themes/_derived.scss b/projects/igniteui-angular/grids/core/src/filtering/excel-style/themes/_derived.scss index d393144b56d..3d2f5a97804 100644 --- a/projects/igniteui-angular/grids/core/src/filtering/excel-style/themes/_derived.scss +++ b/projects/igniteui-angular/grids/core/src/filtering/excel-style/themes/_derived.scss @@ -39,7 +39,6 @@ var(--ig-btn-group-selected-bg, #{color($color: 'gray', $variant: 100)}), ), $item-hover-background: var(--item-selected-background), - $item-hover-text-color: var(--_excel-filtering-foreground, #{color($color: 'gray', $variant: 700)}), $item-active-border-color: transparent, $item-selected-text-color: var(--_excel-filtering-accent-color, #{if( $theme == 'indigo', @@ -110,10 +109,12 @@ ); @if $theme == 'material' { + --_excel-filtering-secondary-background: #{dynamic-shade(var(--secondary-background, var(--ig-excel-filtering-secondary-background)), $lightness: 95, $offset: 3)}; + @include tokens( input-group-theme( $schema: $schema, - $box-background: var(--_excel-filtering-background), + $box-background: dynamic-shade(var(--_excel-filtering-background), $lightness: 95, $offset: 3), $idle-bottom-line-color: var(--_excel-filtering-accent-color), $idle-text-color: var(--_excel-filtering-foreground), $placeholder-color: color-mix(in srgb, var(--_excel-filtering-foreground) 80%, var(--_excel-filtering-background)), diff --git a/projects/igniteui-angular/grids/themes/_base.scss b/projects/igniteui-angular/grids/themes/_base.scss index c21372e1243..4ba7666d717 100644 --- a/projects/igniteui-angular/grids/themes/_base.scss +++ b/projects/igniteui-angular/grids/themes/_base.scss @@ -512,6 +512,13 @@ $z-grid-loading: 10003; border-inline-end-color: var-get($theme, 'body-column-selected-border-color'); } + .igx-grid__tree-grouping-indicator { + color: var-get($theme, 'row-selected-text-color'); + + &:hover { + color: var-get($theme, 'row-selected-text-color'); + } + } &:hover { color: var-get($theme, 'row-selected-hover-text-color'); @@ -1510,6 +1517,7 @@ $z-grid-loading: 10003; padding-block: 0; flex: 0 0 auto; background: inherit; + background-clip: border-box; z-index: $z-grid-selection; cursor: move; border-inline-end: rem(1px) solid transparent; @@ -2596,12 +2604,6 @@ $z-grid-loading: 10003; :where(.igx-grid-thead__title) { flex: 0 0 auto; } - - //&:last-child { - // igx-pivot-row-dimension-header { - // border-inline-end: 0; - // } - //} } // Scrollbar thumb for header diff --git a/src/app/grid-theme-builder/grid-theme-builder.sample.html b/src/app/grid-theme-builder/grid-theme-builder.sample.html index c614dcb2f7a..666c4fc6a22 100644 --- a/src/app/grid-theme-builder/grid-theme-builder.sample.html +++ b/src/app/grid-theme-builder/grid-theme-builder.sample.html @@ -26,8 +26,10 @@ [style.--ig-grid-row-border-color]="gridRowBorderColor() || null" [style.--ig-grid-header-text-color]="gridHeaderTextColor() || null"> - + + @@ -159,6 +161,33 @@ } + @else if (activePreview() === 'tree') { + + + + + + + + + + + + + + } @else { ('sampleEl'); private readonly customControlsTemplate = viewChild.required>('customControls'); - // Only one grid preview is mounted at a time: both a flat grid and a - // 4-level-deep hierarchical grid are expensive to initialize, and neither - // is needed while the other is what's actually being themed. - protected readonly activePreview = signal<'grid' | 'hierarchical'>('grid'); + // Only one grid preview is mounted at a time. The hierarchical preview is + // expensive to initialize, and hidden grids aren't needed while another + // grid type is being themed. + protected readonly activePreview = signal<'grid' | 'tree' | 'hierarchical'>('grid'); protected readonly showExport = signal(false); protected readonly copiedExport = signal<'css' | 'scss' | null>(null); @@ -262,6 +263,7 @@ export class GridThemeBuilderSampleComponent implements OnInit, AfterViewInit { private readonly propertyChangeService = inject(PropertyChangeService); public data: Array; + public readonly treeData = HIERARCHICAL_SAMPLE_DATA; public readonly hierarchicalData = this.generateHierarchicalData(10, 3); public readonly employeesSummary = EmployeesSummary;