Skip to content

Commit ca6fc20

Browse files
authored
fix(file-input): make all elements styleable with CSS variables + fix Bootstrap invalid box-shadow (#1747)
1 parent 48e3406 commit ca6fc20

20 files changed

+190
-31
lines changed

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
"globby": "^14.1.0",
8080
"husky": "^9.1.7",
8181
"ig-typedoc-theme": "^6.2.2",
82-
"igniteui-theming": "^19.0.0",
82+
"igniteui-theming": "^19.1.1",
8383
"keep-a-changelog": "^2.6.2",
8484
"lint-staged": "^16.1.2",
8585
"lit-analyzer": "^2.0.3",
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@use 'sass:map';
2+
@use 'styles/utilities' as *;
3+
@use 'igniteui-theming/sass/themes/schemas/components/dark/file-input' as *;
4+
5+
$material: digest-schema($dark-material-file-input);
6+
$bootstrap: digest-schema($dark-bootstrap-file-input);
7+
$fluent: digest-schema($dark-fluent-file-input);
8+
$indigo: digest-schema($dark-indigo-file-input);
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@use 'styles/utilities' as *;
2+
@use 'themes' as *;
3+
@use '../light/themes' as light;
4+
5+
$theme: $bootstrap;
6+
7+
:host {
8+
@include css-vars-from-theme(diff(light.$base, $theme), 'ig');
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@use 'styles/utilities' as *;
2+
@use 'themes' as *;
3+
@use '../light/themes' as light;
4+
5+
$theme: $fluent;
6+
7+
:host {
8+
@include css-vars-from-theme(diff(light.$base, $theme), 'ig');
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@use 'styles/utilities' as *;
2+
@use 'themes' as *;
3+
@use '../light/themes' as light;
4+
5+
$theme: $indigo;
6+
7+
:host {
8+
@include css-vars-from-theme(diff(light.$base, $theme), 'ig');
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@use 'styles/utilities' as *;
2+
@use 'themes' as *;
3+
@use '../light/themes' as light;
4+
5+
$theme: $material;
6+
7+
:host {
8+
@include css-vars-from-theme(diff(light.$base, $theme), 'ig');
9+
}

src/components/file-input/themes/file-input.base.scss

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
@use 'styles/utilities' as *;
22
@use '../../input/themes/light/themes' as *;
3+
@use 'light/themes' as file-input;
34

45
$theme: $base;
6+
$theme-file-input: file-input.$base;
57

68
:host(:is(igc-file-input)) {
79
[part~='file-parts'] {
@@ -23,7 +25,9 @@ $theme: $base;
2325
max-height: var-get($theme, 'size');
2426
height: 100%;
2527
grid-area: 1 / 3;
26-
28+
color: var-get($theme-file-input, 'file-names-foreground');
29+
background: var-get($theme-file-input, 'file-names-background');
30+
2731
> span {
2832
@include ellipsis();
2933
}
@@ -57,6 +61,42 @@ $theme: $base;
5761
[part~='suffix'] {
5862
grid-area: 1 / 4;
5963
}
64+
65+
[part~='filled']
66+
[part~='file-names'] {
67+
color: var-get($theme-file-input, 'file-names-foreground--filled');
68+
background: var-get($theme-file-input, 'file-names-background--filled')
69+
}
70+
71+
[part~='container']:focus-within {
72+
[part~='file-names'] {
73+
color: var-get($theme-file-input, 'file-names-foreground--focused');
74+
background: var-get($theme-file-input, 'file-names-background--focused')
75+
}
76+
}
77+
78+
[part~='file-selector-button'] igc-button {
79+
--foreground: #{var-get($theme-file-input, 'file-selector-button-foreground')};
80+
--disabled-foreground: #{var-get($theme-file-input, 'file-selector-button-foreground--disabled')};
81+
--background: #{var-get($theme-file-input, 'file-selector-button-background')};
82+
--disabled-background: #{var-get($theme-file-input, 'file-selector-button-background--disabled')};
83+
--hover-foreground: var(--foreground);
84+
--active-foreground: var(--foreground);
85+
--hover-background: var(--background);
86+
--active-background: var(--background);
87+
}
88+
89+
[part~='filled']
90+
[part~='file-selector-button'] igc-button {
91+
--foreground: #{var-get($theme-file-input, 'file-selector-button-foreground--filled')};
92+
--background: #{var-get($theme-file-input, 'file-selector-button-background--filled')};
93+
}
94+
95+
[part~='container']:focus-within
96+
[part~='file-selector-button'] igc-button {
97+
--foreground: #{var-get($theme-file-input, 'file-selector-button-foreground--focused')};
98+
--background: #{var-get($theme-file-input, 'file-selector-button-background--focused')};
99+
}
60100
}
61101

62102
:host(:not(:disabled)) {
@@ -69,6 +109,7 @@ $theme: $base;
69109
:host(:is(igc-file-input):disabled),
70110
:host(:is(igc-file-input)[disabled]) {
71111
[part~='file-names'] {
72-
color: var-get($theme, 'disabled-text-color');
112+
color: var-get($theme-file-input, 'file-names-foreground--disabled');
113+
background: var-get($theme-file-input, 'file-names-background--disabled')
73114
}
74115
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@use 'sass:map';
2+
@use 'styles/utilities' as *;
3+
@use 'igniteui-theming/sass/themes/schemas/components/light/file-input' as *;
4+
5+
$base: digest-schema($light-file-input);
6+
$material: digest-schema($material-file-input);
7+
$bootstrap: digest-schema($bootstrap-file-input);
8+
$fluent: digest-schema($fluent-file-input);
9+
$indigo: digest-schema($indigo-file-input);
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@use 'styles/utilities' as *;
2+
@use 'themes' as *;
3+
4+
$theme: $bootstrap;
5+
6+
:host {
7+
@include css-vars-from-theme(diff($base, $theme), 'ig');
8+
}

0 commit comments

Comments
 (0)