igniteui-theming 1.0.2 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/package.json +1 -1
  2. package/sass/themes/charts/_category-chart-theme.scss +319 -0
  3. package/sass/themes/charts/_data-chart-theme.scss +142 -0
  4. package/sass/themes/charts/_doughnut-chart-theme.scss +81 -0
  5. package/sass/themes/charts/_financial-chart-theme.scss +325 -0
  6. package/sass/themes/charts/_funnel-chart-theme.scss +98 -0
  7. package/sass/themes/charts/_gauge-theme.scss +167 -0
  8. package/sass/themes/charts/_geo-map-theme.scss +53 -0
  9. package/sass/themes/charts/_graph-theme.scss +133 -0
  10. package/sass/themes/charts/_index.scss +12 -0
  11. package/sass/themes/charts/_pie-chart-theme.scss +108 -0
  12. package/sass/themes/charts/_shape-chart-theme.scss +271 -0
  13. package/sass/themes/charts/_sparkline-theme.scss +114 -0
  14. package/sass/themes/charts/_theme.scss +27 -0
  15. package/sass/themes/schemas/_index.scss +35 -0
  16. package/sass/themes/schemas/charts/_index.scss +2 -0
  17. package/sass/themes/schemas/charts/dark/_category-chart.scss +33 -0
  18. package/sass/themes/schemas/charts/dark/_data-chart.scss +27 -0
  19. package/sass/themes/schemas/charts/dark/_doughnut-chart.scss +28 -0
  20. package/sass/themes/schemas/charts/dark/_financial-chart.scss +28 -0
  21. package/sass/themes/schemas/charts/dark/_funnel-chart.scss +28 -0
  22. package/sass/themes/schemas/charts/dark/_gauge.scss +47 -0
  23. package/sass/themes/schemas/charts/dark/_geo-map.scss +31 -0
  24. package/sass/themes/schemas/charts/dark/_graph.scss +27 -0
  25. package/sass/themes/schemas/charts/dark/_index.scss +68 -0
  26. package/sass/themes/schemas/charts/dark/_pie-chart.scss +31 -0
  27. package/sass/themes/schemas/charts/dark/_shape-chart.scss +28 -0
  28. package/sass/themes/schemas/charts/dark/_sparkline.scss +28 -0
  29. package/sass/themes/schemas/charts/light/_category-chart.scss +178 -0
  30. package/sass/themes/schemas/charts/light/_data-chart.scss +60 -0
  31. package/sass/themes/schemas/charts/light/_doughnut-chart.scss +50 -0
  32. package/sass/themes/schemas/charts/light/_financial-chart.scss +140 -0
  33. package/sass/themes/schemas/charts/light/_funnel-chart.scss +48 -0
  34. package/sass/themes/schemas/charts/light/_gauge.scss +132 -0
  35. package/sass/themes/schemas/charts/light/_geo-map.scss +35 -0
  36. package/sass/themes/schemas/charts/light/_graph.scss +86 -0
  37. package/sass/themes/schemas/charts/light/_index.scss +68 -0
  38. package/sass/themes/schemas/charts/light/_pie-chart.scss +51 -0
  39. package/sass/themes/schemas/charts/light/_shape-chart.scss +115 -0
  40. package/sass/themes/schemas/charts/light/_sparkline.scss +71 -0
  41. package/sass/typography/_mixins.scss +26 -0
  42. package/sass/typography/charts/_index.scss +19 -0
@@ -0,0 +1,325 @@
1
+ /* stylelint-disable max-line-length */
2
+ @use 'sass:map';
3
+ @use '../index' as *;
4
+ @use '../schemas/charts' as *;
5
+ @use '../../utils' as *;
6
+ @use '../../typography' as *;
7
+
8
+ ////
9
+ /// @group themes
10
+ /// @access private
11
+ /// @author <a href="https://github.com/didimmova" target="_blank">Dilyana Dimova</a>
12
+ ////
13
+
14
+ /// @param {Map} $schema [$light-material-schema] - The schema used as basis for styling the component.
15
+ /// @param {Map} $target ['angular'] - The target platform to be used when scoping the theme variables.
16
+ /// @param {List} $margin [null] - Sets the margin (top, right, bottom, left) of the chart content.
17
+ /// @param {String} $title-alignment [null] - The horizontal alignment to use for the title.
18
+ /// @param {Color} $title-text-color [null] - Sets the color of the chart title.
19
+ /// @param {List} $title-margin [null] - Sets the margin (top, right, bottom, left) of the chart title.
20
+ /// @param {Color} $subtitle-text-color [null] - Sets the color of the chart subtitle.
21
+ /// @param {List} $subtitle-margin [null] - Sets the margins (top, right, bottom, left) of the chart subtitle.
22
+ /// @param {String} $subtitle-alignment [null] - Gets or sets horizontal alignment which determines the subtitle position, relative to the left and right edges of the control.
23
+ /// @param {List} $brushes [null] - Defines the palette from which automatically assigned series brushes colors are selected.
24
+ /// @param {List} $marker-brushes [null]- Defines the palette from which automatically assigned series marker brushes colors are selected.
25
+ /// @param {List} $negative-brushes [null] - Defines the palette used for coloring negative items in a chart type with contextual coloring, such as Waterfall.
26
+ /// @param {List} $outlines [null] - Defines the palette from which automatically assigned series outline colors are selected.
27
+ /// @param {List} $marker-outlines [null] - Defines the palette from which automatically assigned series marker outline colors are selected.
28
+ /// @param {List} $negative-outlines [null] - Defines the brushes used for drawing negative elements in a chart type with contextual coloring, such as Waterfall.
29
+ /// @param {List} $indicator-brushes [null] - Defines the brushes used for financial indicators.
30
+ /// @param {List} $indicator-negative-brushes [null] - Defines the brushes used for negative elements in financial indicators.
31
+ /// @param {Number} $indicator-thickness [null]- Defines the palette from which automatically assigned series marker brushes colors are selected.
32
+ /// @param {Color} $plot-area-background [null]- Gets or sets the brush used as the background for the current Chart object's plot area.
33
+ /// @param {Number} $thickness [null] - Sets the thickness for all series in a chart.
34
+ /// @param {Number} $toolbar-height [null] - Sets the height of the tooolbar.
35
+ /// @param {List} $trend-line-brushes [null] - Defines the palette of brushes used for coloring trend lines in a chart.
36
+ /// @param {Number} $trend-line-thickness [null] - Sets the thickness of the trend lines in a chart of type point, line, spline or bubble.
37
+ /// @param {List} $volume-brushes [null]- Defines the brushes to use for filling volume series in the volume pane.
38
+ /// @param {List} $volume-outlines [null] - Defines the brushes to use for outlining volume series in the volume pane.
39
+ /// @param {Number} $volume-thickness [null]- Defines the outline thickness of volume series in the volume pane.
40
+ /// @param {List} $x-axis-label-margin [null] - Sets the margin (top, right, bottom, left) of labels on the X-axis.
41
+ /// @param {Color} $x-axis-label-text-color [null] - Sets the color of labels on the X-axis.
42
+ /// @param {String} $x-axis-label-vertical-alignment [null] - Sets the vertical alignment of X-axis labels.
43
+ /// @param {Color} $x-axis-major-stroke [null] - Sets the color to apply to major gridlines along the X-axis.
44
+ /// @param {Number} $x-axis-major-stroke-thickness [null] - Sets the thickness to apply to major gridlines along the X-axis.
45
+ /// @param {Color} $x-axis-minor-stroke [null] - Sets the color to apply to minor gridlines along the X-axis.
46
+ /// @param {Number} $x-axis-minor-stroke-thickness [null] - Sets the thickness to apply to minor gridlines along the X-axis.
47
+ /// @param {Color} $x-axis-strip [null] - Sets the color to apply to stripes along the X-axis.
48
+ /// @param {Color} $x-axis-stroke [null] - Sets the color to apply to the X-axis line.
49
+ /// @param {Number} $x-axis-stroke-thickness [null] - Sets the thickness to apply to the X-axis line.
50
+ /// @param {Number} $x-axis-tick-length [null] - Sets the length of tickmarks along the X-axis.
51
+ /// @param {Color} $x-axis-tick-stroke [null] - Sets the color to apply to tickmarks along the X-axis.
52
+ /// @param {Number} $x-axis-tick-stroke-thickness [null] - Sets the thickness to apply to tickmarks along the X-axis.
53
+ /// @param {String} $x-axis-title-alignment [null] - Sets the horizontal alignment of the X-axis title.
54
+ /// @param {List} $x-axis-title-margin [null] - Sets the margin (top, right, bottom, left) of a title on the X-axis.
55
+ /// @param {Color} $x-axis-title-text-color [null] - Sets the color of the title on the X-axis.
56
+ /// @param {List} $y-axis-label-margin [null] - Sets the margin (top, right, bottom, left) of labels on the Y-axis.
57
+ /// @param {Color} $y-axis-label-text-color [null] - Sets the color of labels on the Y-axis.
58
+ /// @param {String} $y-axis-label-vertical-alignment [null] - Sets the vertical alignment of Y-axis labels.
59
+ /// @param {Color} $y-axis-major-stroke [null] - Sets the color to apply to major gridlines along the y-axis.
60
+ /// @param {Number} $y-axis-major-stroke-thickness [null] - Sets the thickness to apply to major gridlines along the Y-axis.
61
+ /// @param {Color} $y-axis-minor-stroke [null] - Sets the color to apply to minor gridlines along the Y-axis.
62
+ /// @param {Number} $y-axis-minor-stroke-thickness [null] - Sets the thickness to apply to minor gridlines along the Y-axis.
63
+ /// @param {Color} $y-axis-strip [null] - Sets the color to apply to stripes along the Y-axis.
64
+ /// @param {Color} $y-axis-stroke [null] - Sets the color to apply to the Y-axis line.
65
+ /// @param {Number} $y-axis-stroke-thickness [null] - Sets the thickness to apply to the Y-axis line.
66
+ /// @param {String} $y-axis-title-alignment [null] - Sets the horizontal alignment of the Y-axis title.
67
+ /// @param {List} $y-axis-title-margin [null] - Sets the margin (top, right, bottom, left) of a title on the Y-axis.
68
+ /// @param {Color} $y-axis-title-text-color [null] - Sets the color of a title on the Y-axis.
69
+ /// @param {Number} $y-axis-tick-length [null] - Sets the length of tickmarks along the Y-axis.
70
+ /// @param {Color} $y-axis-tick-stroke [null] - Sets the color to apply to tickmarks along the Y-axis.
71
+ /// @param {Number} $y-axis-tick-stroke-thickness [null] - Sets the thickness to apply to tickmarks along the Y-axis.
72
+ /// @param {String} $zoom-slider-x-axis-major-stroke [null] - Gets or sets stroke brush of major gridlines on x-axis of the zoom slider pane.
73
+ /// @param {Number} $zoom-slider-x-axis-major-stroke-thickness [null] - Gets or sets thickness of major gridlines on x-axis of the zoom slider pane.
74
+ /// @requires $light-schema
75
+ /// @requires extend
76
+ ///
77
+ /// @example scss
78
+ /// $my-chart-theme: financial-chart-theme($title-alignment: left, $brushes: red, blue, yellow, pink);
79
+ /// // Pass the theme to the css-vars mixin
80
+ /// @include css-vars($my-chart-theme);
81
+ @function financial-chart-theme(
82
+ $schema: $light-material-schema,
83
+ $target: 'angular',
84
+
85
+ $margin: null,
86
+ $title-alignment: null,
87
+ $title-text-color: null,
88
+ $title-margin: null,
89
+ $subtitle-text-color: null,
90
+ $subtitle-margin: null,
91
+ $subtitle-alignment: null,
92
+ $brushes: null,
93
+ $outlines: null,
94
+ $marker-brushes: null,
95
+ $marker-outlines: null,
96
+ $plot-area-background: null,
97
+ $indicator-brushes: null,
98
+ $indicator-negative-brushes: null,
99
+ $indicator-thickness: null,
100
+ $negative-brushes: null,
101
+ $negative-outlines: null,
102
+ $overlay-brushes: null,
103
+ $overlay-outlines: null,
104
+ $overlay-thickness: null,
105
+ $thickness: null,
106
+ $toolbar-height: null,
107
+ $trend-line-brushes: null,
108
+ $trend-line-thickness: null,
109
+ $volume-brushes: null,
110
+ $volume-outlines: null,
111
+ $volume-thickness: null,
112
+ $x-axis-label-margin: null,
113
+ $x-axis-label-text-color: null,
114
+ $x-axis-label-vertical-alignment: null,
115
+ $x-axis-major-stroke: null,
116
+ $x-axis-major-stroke-thickness: null,
117
+ $x-axis-minor-stroke: null,
118
+ $x-axis-minor-stroke-thickness: null,
119
+ $x-axis-strip: null,
120
+ $x-axis-stroke: null,
121
+ $x-axis-stroke-thickness: null,
122
+ $x-axis-title-alignment: null,
123
+ $x-axis-title-margin: null,
124
+ $x-axis-title-text-color: null,
125
+ $y-axis-label-margin: null,
126
+ $y-axis-label-text-color: null,
127
+ $y-axis-label-vertical-alignment: null,
128
+ $y-axis-major-stroke: null,
129
+ $y-axis-major-stroke-thickness: null,
130
+ $y-axis-minor-stroke: null,
131
+ $y-axis-minor-stroke-thickness: null,
132
+ $y-axis-strip: null,
133
+ $y-axis-stroke: null,
134
+ $y-axis-stroke-thickness: null,
135
+ $y-axis-title-alignment: null,
136
+ $y-axis-title-margin: null,
137
+ $y-axis-title-text-color: null,
138
+ $zoom-slider-x-axis-major-stroke: null,
139
+ $zoom-slider-x-axis-major-stroke-thickness: null
140
+ ) {
141
+ $name: 'financial-chart';
142
+ $selector: map.get(
143
+ (
144
+ 'angular': 'igx-financial-chart',
145
+ 'webc': 'igc-financial-chart',
146
+ 'blazor': 'igb-financial-chart'
147
+ ),
148
+ $target
149
+ );
150
+ $chart-schema: ();
151
+
152
+ @if map.has-key($schema, $name) {
153
+ $chart-schema: map.get($schema, $name);
154
+ } @else {
155
+ $chart-schema: $schema;
156
+ }
157
+
158
+ $theme: digest-schema($chart-schema);
159
+ $title-margin-default: map.get($theme, 'title-margin');
160
+ $subtitle-margin-default: map.get($theme, 'subtitle-margin');
161
+ $x-axis-label-margin-default: map.get($theme, 'x-axis-label-margin');
162
+ $x-axis-title-margin-default: map.get($theme, 'x-axis-title-margin');
163
+ $y-axis-label-margin-default: map.get($theme, 'y-axis-label-margin');
164
+ $y-axis-title-margin-default: map.get($theme, 'x-axis-title-margin');
165
+
166
+ @if not($title-margin) {
167
+ $title-margin: $title-margin-default;
168
+ } @else {
169
+ $title-margin: map-keys-prefix(expand-shorthand(($title-margin)), 'title');
170
+ }
171
+
172
+ @if not($subtitle-margin) {
173
+ $subtitle-margin: $subtitle-margin-default;
174
+ } @else {
175
+ $subtitle-margin: map-keys-prefix(expand-shorthand(($subtitle-margin)), 'subtitle');
176
+ }
177
+
178
+ @if not($x-axis-label-margin) {
179
+ $x-axis-label-margin: $x-axis-label-margin-default;
180
+ } @else {
181
+ $x-axis-label-margin: map-keys-prefix(expand-shorthand(($x-axis-label-margin)), 'x-axis-label');
182
+ }
183
+
184
+ @if not($x-axis-title-margin) {
185
+ $x-axis-title-margin: $x-axis-title-margin-default;
186
+ } @else {
187
+ $x-axis-title-margin: map-keys-prefix(expand-shorthand(($x-axis-title-margin)), 'x-axis-title');
188
+ }
189
+
190
+ @if not($y-axis-label-margin) {
191
+ $y-axis-label-margin: $y-axis-label-margin-default;
192
+ } @else {
193
+ $y-axis-label-margin: map-keys-prefix(expand-shorthand(($y-axis-label-margin)), 'y-axis-label');
194
+ }
195
+
196
+ @if not($y-axis-title-margin) {
197
+ $y-axis-title-margin: $y-axis-title-margin-default;
198
+ } @else {
199
+ $y-axis-title-margin: map-keys-prefix(expand-shorthand(($y-axis-title-margin)), 'y-axis-title');
200
+ }
201
+
202
+ @return extend(
203
+ $theme,
204
+ $margin,
205
+ $title-margin,
206
+ $subtitle-margin,
207
+ $x-axis-label-margin,
208
+ $x-axis-title-margin,
209
+ $y-axis-label-margin,
210
+ $y-axis-title-margin,
211
+ (
212
+ name: $name,
213
+ selector: $selector,
214
+ margin: $margin,
215
+ title-alignment: $title-alignment,
216
+ title-text-color: $title-text-color,
217
+ title-margin: $title-margin,
218
+ subtitle-text-color: $subtitle-text-color,
219
+ subtitle-margin: $subtitle-margin,
220
+ subtitle-alignment: $subtitle-alignment,
221
+ brushes: $brushes,
222
+ outlines: $outlines,
223
+ marker-brushes: $marker-brushes,
224
+ marker-outlines: $marker-outlines,
225
+ plot-area-background: $plot-area-background,
226
+ indicator-brushes: $indicator-brushes,
227
+ indicator-negative-brushes: $indicator-negative-brushes,
228
+ indicator-thickness: $indicator-thickness,
229
+ negative-brushes: $negative-brushes,
230
+ negative-outlines: $negative-outlines,
231
+ overlay-brushes: $overlay-brushes,
232
+ overlay-outlines: $overlay-outlines,
233
+ overlay-thickness: $overlay-thickness,
234
+ thickness: $thickness,
235
+ toolbar-height: $toolbar-height,
236
+ trend-line-brushes: $trend-line-brushes,
237
+ trend-line-thickness: $trend-line-thickness,
238
+ volume-brushes: $volume-brushes,
239
+ volume-outlines: $volume-outlines,
240
+ volume-thickness: $volume-thickness,
241
+ x-axis-label-margin: $x-axis-label-margin,
242
+ x-axis-label-text-color: $x-axis-label-text-color,
243
+ x-axis-label-vertical-alignment: $x-axis-label-vertical-alignment,
244
+ x-axis-major-stroke: $x-axis-major-stroke,
245
+ x-axis-major-stroke-thickness: $x-axis-major-stroke-thickness,
246
+ x-axis-minor-stroke: $x-axis-minor-stroke,
247
+ x-axis-minor-stroke-thickness: $x-axis-minor-stroke-thickness,
248
+ x-axis-strip: $x-axis-strip,
249
+ x-axis-stroke: $x-axis-stroke,
250
+ x-axis-stroke-thickness: $x-axis-stroke-thickness,
251
+ x-axis-title-alignment: $x-axis-title-alignment,
252
+ x-axis-title-margin: $x-axis-title-margin,
253
+ x-axis-title-text-color: $x-axis-title-text-color,
254
+ y-axis-label-margin: $y-axis-label-margin,
255
+ y-axis-label-text-color: $y-axis-label-text-color,
256
+ y-axis-label-vertical-alignment: $y-axis-label-vertical-alignment,
257
+ y-axis-major-stroke: $y-axis-major-stroke,
258
+ y-axis-major-stroke-thickness: $y-axis-major-stroke-thickness,
259
+ y-axis-minor-stroke: $y-axis-minor-stroke,
260
+ y-axis-minor-stroke-thickness: $y-axis-minor-stroke-thickness,
261
+ y-axis-strip: $y-axis-strip,
262
+ y-axis-stroke: $y-axis-stroke,
263
+ y-axis-stroke-thickness: $y-axis-stroke-thickness,
264
+ y-axis-title-alignment: $y-axis-title-alignment,
265
+ y-axis-title-margin: $y-axis-title-margin,
266
+ y-axis-title-text-color: $y-axis-title-text-color,
267
+ zoom-slider-x-axis-major-stroke: $zoom-slider-x-axis-major-stroke,
268
+ zoom-slider-x-axis-major-stroke-thicknes: $zoom-slider-x-axis-major-stroke-thickness
269
+ )
270
+ );
271
+ }
272
+
273
+ /// Adds typography styles for the financial-chart component.
274
+ /// Uses the 'h6', 'subtitle-1' and 'body-2'
275
+ /// category from the typographic scale.
276
+ /// @group typography
277
+ /// @param {Map} $type-scale - A typographic scale as produced by type-scale.
278
+ /// @param {Map} $categories [(
279
+ /// 'title': 'h6',
280
+ /// 'subtitle': 'subtitle-1,
281
+ /// 'x-axis-label-text-style': 'body-2',
282
+ /// 'y-axis-label-text-style': 'body-2',
283
+ /// 'x-axis-title-text-style': 'body-2',
284
+ /// 'y-axis-title-text-style': 'body-2',
285
+ /// )] - The categories from the typographic scale used for type styles.
286
+ /// @requires {mixin} type-style
287
+ @mixin financial-chart-typography($type-scale, $categories: (
288
+ 'title': 'h6',
289
+ 'subtitle': 'subtitle-1',
290
+ 'x-axis-label-text-style': 'body-2',
291
+ 'x-axis-title-text-style': 'body-2',
292
+ 'y-axis-label-text-style': 'body-2',
293
+ 'y-axis-title-text-style': 'body-2',
294
+ ), $target: 'angular') {
295
+ $name: 'financial-chart';
296
+ $selector: map.get(
297
+ (
298
+ 'angular': 'igx-financial-chart',
299
+ 'webc': 'igc-financial-chart',
300
+ 'blazor': 'igb-financial-chart'
301
+ ),
302
+ $target
303
+ );
304
+ $title: map.get($categories, 'title');
305
+ $subtitle: map.get($categories, 'subtitle');
306
+ $x-axis-label-text-style: map.get($categories, 'x-axis-label-text-style');
307
+ $x-axis-title-text-style: map.get($categories, 'x-axis-title-text-style');
308
+ $y-axis-label-text-style: map.get($categories, 'y-axis-label-text-style');
309
+ $y-axis-title-text-style: map.get($categories, 'y-axis-title-text-style');
310
+ $title-styles: type-scale-category($type-scale, $title);
311
+ $subtitle-styles: type-scale-category($type-scale, $subtitle);
312
+ $x-axis-label-styles: type-scale-category($type-scale, $x-axis-label-text-style);
313
+ $x-axis-title-styles: type-scale-category($type-scale, $x-axis-title-text-style);
314
+ $y-axis-label-styles: type-scale-category($type-scale, $y-axis-label-text-style);
315
+ $y-axis-title-styles: type-scale-category($type-scale, $y-axis-title-text-style);
316
+
317
+ #{$selector} {
318
+ @include font-var('title-text-style', $title-styles, $name);
319
+ @include font-var('subtitle-text-style', $subtitle-styles, $name);
320
+ @include font-var('x-axis-label-text-style', $x-axis-label-styles, $name);
321
+ @include font-var('x-axis-title-text-style', $x-axis-title-styles, $name);
322
+ @include font-var('y-axis-label-text-style', $y-axis-label-styles, $name);
323
+ @include font-var('y-axis-title-text-style', $y-axis-title-styles, $name);
324
+ }
325
+ }
@@ -0,0 +1,98 @@
1
+ /* stylelint-disable max-line-length */
2
+ @use 'sass:map';
3
+ @use '../index' as *;
4
+ @use '../schemas/charts' as *;
5
+ @use '../../utils' as *;
6
+ @use '../../typography' as *;
7
+
8
+ ////
9
+ /// @group themes
10
+ /// @access private
11
+ /// @author <a href="https://github.com/desig9stein" target="_blank">Marin Popov</a>
12
+ ////
13
+
14
+ /// @param {Map} $schema [$light-material-schema] - The schema used as basis for styling the component.
15
+ /// @param {Map} $target ['angular'] - The target platform to be used when scoping the theme variables.
16
+ ///
17
+ /// @param {List} $brushes [null] - Defines the palette from which automatically assigned series colors are nelected.
18
+ /// @param {List} $outlines [null] - Defines the palette from which automatically assigned series outline colors are selected.
19
+ /// @param {String} $outer-label-alignment [null] - Sets which side of the chart the outer labels should appear.
20
+ /// @param {Color} $outer-label-text-color [null] - Sets the Color used for the outer labels.
21
+ /// @param {Color} $outer-label-visibility [null] - Sets whether the outer labels are visible.
22
+ /// @param {Number} $outline-thickness [null] - Sets the thickness of outline around slices.
23
+ /// @param {Color} $text-color - [null] Sets the Color used for the inner labels.
24
+ ///
25
+ /// @requires $light-schema
26
+ /// @requires extend
27
+ ///
28
+ /// @example scss
29
+ /// $my-chart-theme: funnel-chart-theme($brushes: (orange, blue, pink));
30
+ /// // Pass the theme to the css-vars mixin
31
+ /// @include css-vars($my-chart-theme);
32
+ @function funnel-chart-theme(
33
+ $schema: $light-material-schema,
34
+ $target: 'angular',
35
+
36
+ $brushes: null,
37
+ $outlines: null,
38
+ $outer-label-alignment: null,
39
+ $outer-label-text-color: null,
40
+ $outer-label-visibility: null,
41
+ $outline-thickness: null,
42
+ $text-color: null,
43
+ ) {
44
+ $name: 'funnel-chart';
45
+ $selector: map.get(
46
+ (
47
+ 'angular': 'igx-funnel-chart',
48
+ 'webc': 'igc-funnel-chart',
49
+ 'blazor': 'igb-funnel-chart'
50
+ ),
51
+ $target
52
+ );
53
+ $chart-schema: ();
54
+
55
+ @if map.has-key($schema, $name) {
56
+ $chart-schema: map.get($schema, $name);
57
+ } @else {
58
+ $chart-schema: $schema;
59
+ }
60
+
61
+ $theme: digest-schema($chart-schema);
62
+
63
+ @return extend($theme, (
64
+ name: $name,
65
+ selector: $selector,
66
+ brushes: $brushes,
67
+ outlines: $outlines,
68
+ outer-label-alignment: $outer-label-alignment,
69
+ outer-label-text-color: $outer-label-text-color,
70
+ outer-label-visibility: $outer-label-visibility,
71
+ outline-thickness: $outline-thickness,
72
+ text-color: $text-color,
73
+ ));
74
+ }
75
+
76
+ @mixin funnel-chart-typography($type-scale, $categories: (
77
+ outer-label-text-style: 'h1',
78
+ text-style: 'subtitle-1',
79
+ ), $target: 'angular') {
80
+ $name: 'funnel-chart';
81
+ $selector: map.get(
82
+ (
83
+ 'angular': 'igx-funnel-chart',
84
+ 'webc': 'igc-funnel-chart',
85
+ 'blazor': 'igb-funnel-chart'
86
+ ),
87
+ $target
88
+ );
89
+ $outer-label-text-style: map.get($categories, 'outer-label-text-style');
90
+ $text-style: map.get($categories, 'text-style');
91
+ $outer-label: type-scale-category($type-scale, $outer-label-text-style);
92
+ $text: type-scale-category($type-scale, $text-style);
93
+
94
+ #{$selector} {
95
+ @include font-var('outer-label-text-style', $outer-label, $name);
96
+ @include font-var('text-style', $text, $name);
97
+ }
98
+ }
@@ -0,0 +1,167 @@
1
+ /* stylelint-disable max-line-length */
2
+ @use 'sass:map';
3
+ @use '../index' as *;
4
+ @use '../schemas/charts' as *;
5
+ @use '../../utils' as *;
6
+ @use '../../typography' as *;
7
+
8
+ ////
9
+ /// @group themes
10
+ /// @access public
11
+ /// @author <a href="https://github.com/SisIvanova" target="_blank">Silvia Ivanova</a>
12
+ ////
13
+
14
+ /// @param {Map} $schema [$light-material-schema] - The schema used as basis for styling the component.
15
+ /// @param {Map} $target ['angular'] - The target platform to be used when scoping the theme variables.
16
+ ///
17
+ /// @param {Color} $backing-brush [null] - Sets the color to use to fill the backing of the linear gauge.
18
+ /// @param {Color} $backing-outline [null] - Sets the color to use for the outline of the backing.
19
+ /// @param {Number} $backing-stroke-thickness [null] - Sets the stroke thickness of the backing outline.
20
+ /// @param {Color} $font-brush [null] - Sets the color to use for the label font.
21
+ /// @param {Number} $minor-tick-stroke-thickness [null] - Sets the stroke thickness to use when rendering minor ticks.
22
+ /// @param {Number} $needle-breadth [null] - Sets the needle breadth.
23
+ /// @param {Color} $needle-brush [null] - Sets the color to use for the needle element.
24
+ /// @param {Number} $needle-inner-base-width [null] - Sets the width of the needle's inner base.
25
+ /// @param {Number} $needle-inner-point-width [null] - Sets the width of the needle's inner point.
26
+ /// @param {Number} $needle-outer-base-width [null] - Sets the width of the needle's outer base.
27
+ /// @param {Number} $needle-outer-point-width [null] - Sets the width of the needle's outer point.
28
+ /// @param {Color} $needle-outline [null] - Sets the color to use for the outline of needle element.
29
+ /// @param {Number} $needle-stroke-thickness [null] - Sets the stroke thickness to use when rendering single actual value element.
30
+ /// @param {List} $range-brushes [null] - Sets a collection of colors to be used as the palette for linear gauge ranges.
31
+ /// @param {List} $range-outlines [null] - Sets a collection of colors to be used as the palette for linear gauge outlines.
32
+ /// @param {Color} $scale-brush [null] - Sets the color to use to fill the scale of the linear gauge.
33
+ /// @param {Color} $scale-outline [null] - Sets the color to use for the outline of the scale.
34
+ /// @param {Number} $scale-stroke-thickness [null] - Sets the stroke thickness of the scale outline.
35
+ /// @param {Color} $tick-brush [null] - Sets the color to use for the major tickmarks.
36
+ /// @param {Number} $tick-stroke-thickness [null] - Sets the stroke thickness to use when rendering ticks.
37
+ /// @requires $light-schema
38
+ /// @requires extend
39
+ ///
40
+ /// @example scss
41
+ /// $custom-gauge-theme: linear-gauge-theme($brushes: (red, green, blue));
42
+ /// // Pass the theme to the css-vars mixin
43
+ /// @include css-vars($custom-gauge-theme);
44
+ @function linear-gauge-theme(
45
+ $schema: $light-schema,
46
+ $target: 'angular',
47
+ $rest...
48
+ ) {
49
+ $name: 'linear-gauge';
50
+ $selector: map.get(
51
+ (
52
+ 'angular': 'igx-linear-gauge',
53
+ 'webc': 'igc-linear-gauge',
54
+ 'blazor': 'igb-linear-gauge'
55
+ ),
56
+ $target
57
+ );
58
+ $chart-schema: ();
59
+
60
+ @if map.has-key($schema, $name) {
61
+ $chart-schema: map.get($schema, $name);
62
+ } @else {
63
+ $chart-schema: $schema;
64
+ }
65
+
66
+ $theme: digest-schema($chart-schema);
67
+
68
+ @return extend(
69
+ $theme,
70
+ keywords($rest),
71
+ (
72
+ name: $name,
73
+ selector: $selector,
74
+ ),
75
+ );
76
+ }
77
+
78
+ /// @param {Map} $schema [$light-schema] - The schema used as basis for styling the component.
79
+ /// @param {Map} $target ['angular'] - The target platform to be used when scoping the theme variables.
80
+ /// @param {Map} $width [null] - The width of the gauge in pixels, string (px) or percentage (%).
81
+ /// @param {Map} $height [null] - The height of the gauge in pixels, string (px) or percentage (%).
82
+ /// @param {Color} $backing-brush [null] - Sets the color to use to fill the backing of the linear gauge.
83
+ /// @param {Color} $backing-outline [null] - Sets the color to use for the outline of the backing.
84
+ /// @param {Number} $backing-stroke-thickness [null] - Sets the stroke thickness of the backing outline.
85
+ /// @param {Color} $font-brush [null] - Sets the color to use for the label font.
86
+ /// @param {Number} $minor-tick-stroke-thickness [null] - Sets the stroke thickness to use when rendering minor ticks.
87
+ /// @param {Color} $needle-brush [null] - Sets the color to use for the needle element.
88
+ /// @param {Color} $needle-outline [null] - Sets the color to use for the outline of needle element.
89
+ /// @param {Number} $needle-stroke-thickness [null] - Sets the stroke thickness to use when rendering single actual value element.
90
+ /// @param {List} $range-brushes [null] - Sets a collection of colors to be used as the palette for linear gauge ranges.
91
+ /// @param {List} $range-outlines [null] - Sets a collection of colors to be used as the palette for linear gauge outlines.
92
+ /// @param {Color} $scale-brush [null] - Sets the color to use to fill the scale of the linear gauge.
93
+ /// @param {Color} $tick-brush [null] - Sets the color to use for the major tickmarks.
94
+ /// @param {Number} $tick-stroke-thickness [null] - Sets the stroke thickness to use when rendering ticks.
95
+ /// @param {Color} $needle-pivot-brush [null] - Sets the color of the needle pivot point.
96
+ /// @param {Color} $needle-pivot-outline [null] - Sets the outline color of the needle pivot point.
97
+ /// @requires $light-schema
98
+ /// @requires extend
99
+ ///
100
+ /// @example scss
101
+ /// $custom-gauge-theme: radial-gauge-theme($brushes: (red, green, blue));
102
+ /// // Pass the theme to the css-vars mixin
103
+ /// @include css-vars($custom-gauge-theme);
104
+ @function radial-gauge-theme(
105
+ $schema: $light-schema,
106
+ $target: 'angular',
107
+ $rest...
108
+ ) {
109
+ $name: 'radial-gauge';
110
+ $selector: map.get(
111
+ (
112
+ 'angular': 'igx-radial-gauge',
113
+ 'webc': 'igc-radial-gauge',
114
+ 'blazor': 'igb-radial-gauge'
115
+ ),
116
+ $target
117
+ );
118
+ $chart-schema: ();
119
+
120
+ @if map.has-key($schema, $name) {
121
+ $chart-schema: map.get($schema, $name);
122
+ } @else {
123
+ $chart-schema: $schema;
124
+ }
125
+
126
+ $theme: digest-schema($chart-schema);
127
+
128
+ @return extend(
129
+ $theme,
130
+ keywords($rest),
131
+ (
132
+ name: $name,
133
+ selector: $selector,
134
+ ),
135
+ );
136
+ }
137
+
138
+ /// Adds typography styles for the linear-gauge component.
139
+ /// @access private
140
+ /// @group typography
141
+ /// @requires {mixin} type-style
142
+ @mixin gauge-typography($target: 'angular') {
143
+ $linear-selector: map.get(
144
+ (
145
+ 'angular': 'igx-linear-gauge',
146
+ 'webc': 'igc-linear-gauge',
147
+ 'blazor': 'igb-linear-gauge'
148
+ ),
149
+ $target
150
+ );
151
+ $radial-selector: map.get(
152
+ (
153
+ 'angular': 'igx-radial-gauge',
154
+ 'webc': 'igc-radial-gauge',
155
+ 'blazor': 'igb-radial-gauge'
156
+ ),
157
+ $target
158
+ );
159
+
160
+ #{$linear-selector} {
161
+ --linear-gauge-font: var(--ig-font-family, inherit);
162
+ }
163
+
164
+ #{$radial-selector} {
165
+ --radial-gauge-font: var(--ig-font-family, inherit);
166
+ }
167
+ }
@@ -0,0 +1,53 @@
1
+ /* stylelint-disable max-line-length */
2
+ @use 'sass:map';
3
+ @use '../index' as *;
4
+ @use '../schemas/charts' as *;
5
+ @use '../../utils' as *;
6
+ @use '../../typography' as *;
7
+
8
+ ////
9
+ /// @group themes
10
+ /// @access private
11
+ /// @author <a href="https://github.com/didimmova" target="_blank">Dilyana Dimova</a>
12
+ ////
13
+
14
+ /// @param {Map} $schema [$light-schema] - The schema used as basis for styling the component.
15
+ /// @param {Map} $target ['angular'] - The target platform to be used when scoping the theme variables.
16
+ /// @param {String} $plot-area-background [null]- Gets or sets the brush used as the background for the current Map object's plot area.
17
+ /// @requires $light-schema
18
+ /// @requires extend
19
+ ///
20
+ /// @example scss
21
+ /// $my-map-theme: geo-map-theme($width: 550px);
22
+ /// // Pass the theme to the css-vars mixin
23
+ /// @include css-vars($my-map-theme);
24
+ @function geo-map-theme(
25
+ $schema: $light-schema,
26
+ $target: 'angular',
27
+ $plot-area-background: null
28
+ ) {
29
+ $name: 'geo-map';
30
+ $selector: map.get(
31
+ (
32
+ 'angular': 'igx-geographic-map',
33
+ 'webc': 'igc-geographic-map',
34
+ 'blazor': 'igb-geographic-map'
35
+ ),
36
+ $target
37
+ );
38
+ $chart-schema: ();
39
+
40
+ @if map.has-key($schema, $name) {
41
+ $chart-schema: map.get($schema, $name);
42
+ } @else {
43
+ $chart-schema: $schema;
44
+ }
45
+
46
+ $theme: digest-schema($chart-schema);
47
+
48
+ @return extend( $theme, (
49
+ name: $name,
50
+ selector: $selector,
51
+ plot-area-background: $plot-area-background,
52
+ ));
53
+ }