Skip to content
3 changes: 3 additions & 0 deletions projects/igniteui-angular-elements/src/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
}
igc-grid, igc-tree-grid {
max-height: 550px;
--ig-grid-grouparea-background: #ff000012;
--ig-grid-drop-area-background: #ff004c12;
--ig-paginator-border-color:#d0ab23;
}
.range-wrapper {
width: 100%;
Expand Down
101 changes: 101 additions & 0 deletions projects/igniteui-angular-elements/src/themes/_util.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
@use 'sass:map';
@use 'sass:meta';
@use 'sass:string';
@use 'sass:list';
@use '../../../igniteui-angular/src/lib/core/styles/themes' as igx;
@use './variables' as vars;

/// Prefix used for 'global' component CSS vars
$elements-var-prefix: 'ig';

/// Prefix used in place of `igx-` in component selectors
$elements-selector-prefix: 'igc';

/// Filter out included items to get exclude list
/// @access private
/// @param {Map} $items - The items to include
/// @param {Map} $register - The full components list `igx.$components`
/// @return {Map} - The resulting difference of items for excluding
@function include($items, $register) {
// @debug map.keys(igx.$components);
@return map.keys(map.remove($register, $items...));
}

/// Callback to update component's name (for var prefix) and selectors for Elements
/// @access private
/// @param {Map} $theme_schema - The component's theme schema
/// @return {Map} - Updated component theme schema
@function updateElementName($theme_schema) {
$prefix: 'ig';
$result: $theme_schema;

@if map.has-key($theme_schema, "name") {
$name: map.get($theme_schema, "name");
$selector: map.get($theme_schema, "selector") or $name;

// @debug "name: #{$name}";

@if string.index($name, 'igx-') {
$name: list.nth(string.split($name, 'igx-'), -1);
$name: '#{$elements-var-prefix}-#{$name}';
// @debug "name after: #{$name}";
}

// For exposed components also modify selector with updated element prefix:
@if list.index(vars.$allowed, map.get($theme_schema, "name")) {
// @debug "selector before: #{$selector}";
$selector: updateSelectors($selector);
// @debug "selector after: #{$selector}";;
}

$result: map.merge($result, (name: $name, selector: $selector));
}
@return $result;
}

/// Break down the selector and update `igx-` element selectors with matching `igc-` for exposed Elements
/// @access private
/// @param {String} $selector - The selector(s) to update
/// @return {String} - Updated selector(s) with `igc-` prefixed equivalents
@function updateSelectors($selector) {
$result: ();
$selectors: string.split($selector, ", ");

@each $sel in $selectors {
$result: list.append($result, $sel, comma);

@if string.index($sel, 'igx-') == 1 {
$igc-sel: list.nth(string.split($sel, 'igx-'), -1);
$igc-sel: '#{$elements-selector-prefix}-#{$igc-sel}';
$result: list.append($result, $igc-sel, comma);
}
}

@return "#{$result}";
}

/// Generates an Ignite UI for Angular Elements global theme.
/// @param {Map} $palette - An palette to be used by the global theme.
/// @param {Map} $schema [$light-schema] - The schema used as basis for styling the components.
/// @param {List} $exclude [( )] - A list of igx components to be excluded from the global theme styles.
/// @param {Number} $roundness [null] - Sets the global roundness factor (the value can be any decimal fraction between 0 and 1) for all components.
/// @param {Boolean} $elevation [true] - Turns on/off elevations for all components in the theme.
/// @param {Map} $elevations [$elevations] - The elevation map to be used by all component themes.
/// @requires $light-material-schema
/// @requires {function} is-component
/// @requires {function} is-used
@mixin elements-theme(
$palette,
$schema,
$exclude,
// $roundness,
// $elevation,
// $elevations,
) {
@include igx.theme-internal(
$palette: $palette,
$exclude: $exclude,
$schema: $schema,
$theme-handler: meta.get-function("updateElementName")
);
}
8 changes: 8 additions & 0 deletions projects/igniteui-angular-elements/src/themes/_variables.scss
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,11 @@ $unused-themes: (
igx-tabs,
igx-toast
);

$allowed: (
igx-grid,
igx-paginator,
igx-action-strip,
igx-grid-toolbar,
igx-pivot-data-selector
);
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
/* You can add global styles to this file, and also import other style files */
@use '../../../../igniteui-angular/src/lib/core/styles/themes' as igx;
@use '../variables' as vars;
@use '../util' as util;
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');

$palette: igx.$dark-bootstrap-palette;

@include igx.core();
@include igx.typography($font-family: igx.$bootstrap-typeface, $type-scale: igx.$bootstrap-type-scale);
@include igx.bootstrap-dark-theme($palette: $palette, $exclude: vars.$unused-themes);

@include util.elements-theme(
$palette: $palette,
// TODO: adjust dependencies
// $exclude: util.include(vars.$allowed, igx.$components),
$exclude: vars.$unused-themes,
$schema: igx.$dark-bootstrap-schema,
);

11 changes: 10 additions & 1 deletion projects/igniteui-angular-elements/src/themes/dark/fluent.scss
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
/* You can add global styles to this file, and also import other style files */
@use '../../../../igniteui-angular/src/lib/core/styles/themes' as igx;
@use '../variables' as vars;
@use '../util' as util;
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');

$palette: igx.$dark-fluent-palette;

@include igx.core();
@include igx.typography($font-family: igx.$fluent-typeface, $type-scale: igx.$fluent-type-scale);
@include igx.fluent-dark-theme($palette: $palette, $exclude: vars.$unused-themes);

@include util.elements-theme(
$palette: $palette,
// TODO: adjust dependencies
// $exclude: util.include(vars.$allowed, igx.$components),
$exclude: vars.$unused-themes,
$schema: igx.$dark-fluent-schema,
);

10 changes: 9 additions & 1 deletion projects/igniteui-angular-elements/src/themes/dark/indigo.scss
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
/* You can add global styles to this file, and also import other style files */
@use '../../../../igniteui-angular/src/lib/core/styles/themes' as igx;
@use '../variables' as vars;
@use '../util' as util;
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');

$palette: igx.$dark-indigo-palette;

@include igx.core();
@include igx.typography($font-family: igx.$indigo-typeface, $type-scale: igx.$indigo-type-scale);
@include igx.indigo-dark-theme($palette: $palette, $exclude: vars.$unused-themes);

@include util.elements-theme(
$palette: $palette,
// TODO: adjust dependencies
// $exclude: util.include(vars.$allowed, igx.$components),
$exclude: vars.$unused-themes,
$schema: igx.$dark-indigo-schema,
);
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
/* You can add global styles to this file, and also import other style files */
@use '../../../../igniteui-angular/src/lib/core/styles/themes' as igx;
@use '../variables' as vars;
@use '../util' as util;
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');

$palette: igx.$dark-material-palette;

@include igx.core();
@include igx.typography($font-family: igx.$material-typeface, $type-scale: igx.$material-type-scale);
@include igx.dark-theme($palette: $palette, $exclude: vars.$unused-themes);

@include util.elements-theme(
$palette: $palette,
// TODO: adjust dependencies
// $exclude: util.include(vars.$allowed, igx.$components),
$exclude: vars.$unused-themes,
$schema: igx.$dark-material-schema,
);
Original file line number Diff line number Diff line change
@@ -1,10 +1,17 @@
/* You can add global styles to this file, and also import other style files */
@use '../../../../igniteui-angular/src/lib/core/styles/themes' as igx;
@use '../variables' as vars;
@use '../util' as util;
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');

$palette: igx.$light-bootstrap-palette;

@include igx.core();
@include igx.typography($font-family: igx.$bootstrap-typeface, $type-scale: igx.$bootstrap-type-scale);
@include igx.bootstrap-light-theme($palette: $palette, $exclude: vars.$unused-themes);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only concern from moving away from using bootstrap-light-theme and so on - that mixin seems to do something extra, rather than using the light-bootstrap-palette directly for some reason:

$surface: if($surface != #f8f9fa, $surface, #f8f9fa),
$gray: #212529,

Kinda odd


@include util.elements-theme(
$palette: $palette,
// TODO: adjust dependencies
// $exclude: util.include(vars.$allowed, igx.$components),
$exclude: vars.$unused-themes,
$schema: igx.$light-bootstrap-schema,
);
10 changes: 9 additions & 1 deletion projects/igniteui-angular-elements/src/themes/light/fluent.scss
Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
/* You can add global styles to this file, and also import other style files */
@use '../../../../igniteui-angular/src/lib/core/styles/themes' as igx;
@use '../variables' as vars;
@use '../util' as util;
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');

$palette: igx.$light-fluent-palette;

@include igx.core();
@include igx.typography($font-family: igx.$fluent-typeface, $type-scale: igx.$fluent-type-scale);
@include igx.fluent-light-theme($palette: $palette, $exclude: vars.$unused-themes);

@include util.elements-theme(
$palette: $palette,
// TODO: adjust dependencies
// $exclude: util.include(vars.$allowed, igx.$components),
$exclude: vars.$unused-themes,
$schema: igx.$light-fluent-schema,
);
11 changes: 10 additions & 1 deletion projects/igniteui-angular-elements/src/themes/light/indigo.scss
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
/* You can add global styles to this file, and also import other style files */
@use '../../../../igniteui-angular/src/lib/core/styles/themes' as igx;
@use '../variables' as vars;
@use '../util' as util;
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');

$palette: igx.$light-indigo-palette;

@include igx.core();
@include igx.typography($font-family: igx.$indigo-typeface, $type-scale: igx.$indigo-type-scale);
@include igx.indigo-light-theme($palette: $palette, $exclude: vars.$unused-themes);

@include util.elements-theme(
$palette: $palette,
// TODO: adjust dependencies
// $exclude: util.include(vars.$allowed, igx.$components),
$exclude: vars.$unused-themes,
$schema: igx.$light-indigo-schema,
);

Original file line number Diff line number Diff line change
@@ -1,10 +1,18 @@
/* You can add global styles to this file, and also import other style files */
@use '../../../../igniteui-angular/src/lib/core/styles/themes' as igx;
@use '../variables' as vars;
@use '../util' as util;
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');

$palette: igx.$light-material-palette;

@include igx.core();
@include igx.typography($font-family: igx.$material-typeface, $type-scale: igx.$material-type-scale);
@include igx.light-theme($palette: $palette, $exclude: vars.$unused-themes);

@include util.elements-theme(
$palette: $palette,
// TODO: adjust dependencies
// $exclude: util.include(vars.$allowed, igx.$components),
$exclude: vars.$unused-themes,
$schema: igx.$light-material-schema,
);
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@
$actions-border-radius: null,
) {
$name: 'igx-action-strip';
$selector: 'igx-action-strip, igc-action-strip';
$action-strip-schema: ();

@if map.has-key($schema, 'action-strip') {
Expand All @@ -54,7 +53,6 @@

@return extend($theme, (
name: $name,
selector: $selector,
background: $background,
actions-background: $actions-background,
icon-color: $icon-color,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
$item-focus-text-color: null
) {
$name: 'igx-grid-toolbar';
$selector: 'igx-grid-toolbar, igc-grid-toolbar, .igx-grid-toolbar__dd-list';
$selector: 'igx-grid-toolbar, .igx-grid-toolbar__dd-list';
$grid-toolbar-schema: ();

@if map.has-key($schema, 'grid-toolbar') {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@
$cell-selected-within-text-color: null,
) {
$name: 'igx-grid';
$selector: 'igx-grid, igc-grid, igx-hierarchical-grid, igc-hierarchical-grid, igx-pivot-grid, igc-pivot-grid, igx-tree-grid, igc-tree-grid, igx-advanced-filtering-dialog, igc-advanced-filtering-dialog, igx-grid-excel-style-filtering, igc-grid-excel-style-filtering, .igx-excel-filter__secondary';
$selector: 'igx-grid, igx-hierarchical-grid, igx-pivot-grid, igx-tree-grid, igx-advanced-filtering-dialog, igx-grid-excel-style-filtering, .igx-excel-filter__secondary';
$grid-schema: ();

@if map.has-key($schema, 'grid') {
Expand Down