summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/_config.scss2
-rw-r--r--src/_core.scss7
-rw-r--r--src/_props.scss7
-rw-r--r--src/objects/_button.scss29
-rw-r--r--src/objects/_button.vars.scss15
-rw-r--r--src/objects/_text-field.scss22
-rw-r--r--src/objects/_text-field.vars.scss1
7 files changed, 83 insertions, 0 deletions
diff --git a/src/_config.scss b/src/_config.scss
index 284d6e7..25c0adb 100644
--- a/src/_config.scss
+++ b/src/_config.scss
@@ -25,3 +25,5 @@ $themes: map.deep-merge((
25), $themes-override) !default; 25), $themes-override) !default;
26 26
27$theme-default: list.nth(map.keys($themes), 1) !default; 27$theme-default: list.nth(map.keys($themes), 1) !default;
28
29$explicit-dark-theme: false !default;
diff --git a/src/_core.scss b/src/_core.scss
index 7b7a384..2eb04fc 100644
--- a/src/_core.scss
+++ b/src/_core.scss
@@ -20,6 +20,13 @@
20 } 20 }
21 } 21 }
22 } 22 }
23
24 @if map.has-key($theme, 'dark') and config.$explicit-dark-theme {
25 @include bem.theme('dark') {
26 @include props.materialize(map.values(meta.module-variables('vars')));
27 @include props.materialize(map.get($theme, 'dark'));
28 }
29 }
23 } @else { 30 } @else {
24 @include bem.theme(string.slice($theme-name, 3)) { 31 @include bem.theme(string.slice($theme-name, 3)) {
25 @include props.materialize(map.get($theme, 'light')); 32 @include props.materialize(map.get($theme, 'light'));
diff --git a/src/_props.scss b/src/_props.scss
index ffba054..5590aed 100644
--- a/src/_props.scss
+++ b/src/_props.scss
@@ -27,6 +27,13 @@
27 } 27 }
28 } 28 }
29 29
30 @if config.$explicit-dark-theme {
31 @include bem.theme('dark') {
32 @include props.materialize($ref, 'color');
33 @include props.materialize($ref, 'dark');
34 }
35 }
36
30 @each $theme-name in map.keys(config.$themes) { 37 @each $theme-name in map.keys(config.$themes) {
31 @if $theme-name != config.$theme-default { 38 @if $theme-name != config.$theme-default {
32 @include bem.theme(string.slice($theme-name, 3)) { 39 @include bem.theme(string.slice($theme-name, 3)) {
diff --git a/src/objects/_button.scss b/src/objects/_button.scss
index 8fbec78..c4ecd87 100644
--- a/src/objects/_button.scss
+++ b/src/objects/_button.scss
@@ -109,6 +109,35 @@
109 } 109 }
110 } 110 }
111 111
112 @include bem.is('highlighted') {
113 &:link,
114 &:visited,
115 &:enabled {
116 &,
117 &:hover,
118 &:focus-visible {
119 border-color: props.get($theme, list.join($key, --highlighted --border-color)...);
120 }
121
122 box-shadow:
123 0 0 0 1px props.get($theme, list.join($key, --highlighted --border-color)...),
124 props.get(vars.$shadow-x)
125 props.get(vars.$shadow-y)
126 props.get(vars.$shadow-blur)
127 props.get(vars.$shadow-grow)
128 props.get($theme, list.join($key, --highlighted --shadow-color)...);
129
130 &:focus-visible {
131 box-shadow:
132 props.get(vars.$shadow-x)
133 props.get(vars.$shadow-y)
134 props.get(vars.$shadow-blur)
135 props.get(vars.$shadow-grow)
136 props.get($theme, list.join($key, --shadow-color)...);
137 }
138 }
139 }
140
112 @include bem.is('selected') { 141 @include bem.is('selected') {
113 color: props.get($theme, list.join($key, --selected --disabled --label-color)...); 142 color: props.get($theme, list.join($key, --selected --disabled --label-color)...);
114 background-color: props.get($theme, list.join($key, --selected --disabled --bg-color)...); 143 background-color: props.get($theme, list.join($key, --selected --disabled --bg-color)...);
diff --git a/src/objects/_button.vars.scss b/src/objects/_button.vars.scss
index 7b4670f..cc7b7d5 100644
--- a/src/objects/_button.vars.scss
+++ b/src/objects/_button.vars.scss
@@ -78,6 +78,11 @@ $default-theme: map.deep-merge((
78 --outline-color: props.get(core.$theme, --focus, --outline), 78 --outline-color: props.get(core.$theme, --focus, --outline),
79 ), 79 ),
80 80
81 --highlighted: (
82 --border-color: props.get(core.$theme, --focus, --border),
83 --shadow-color: props.get(core.$theme, --focus, --outline),
84 ),
85
81 --selected: ( 86 --selected: (
82 --bg-color: props.get(core.$theme, --text), 87 --bg-color: props.get(core.$theme, --text),
83 --label-color: props.get(core.$theme, --base, --50), 88 --label-color: props.get(core.$theme, --base, --50),
@@ -194,6 +199,11 @@ $default-theme-dark: props.def(--o-button, $default-theme-dark, 'dark');
194 --outline-color: props.get(core.$transparent-colors, $theme, --300), 199 --outline-color: props.get(core.$transparent-colors, $theme, --300),
195 ), 200 ),
196 201
202 --highlighted: (
203 --border-color: props.get(core.$transparent-colors, $theme, --900),
204 --shadow-color: props.get(core.$transparent-colors, --black, --200),
205 ),
206
197 --selected: ( 207 --selected: (
198 --bg-color: props.get(core.$transparent-colors, $theme, --800), 208 --bg-color: props.get(core.$transparent-colors, $theme, --800),
199 --label-color: props.get(core.$transparent-colors, $theme, --text), 209 --label-color: props.get(core.$transparent-colors, $theme, --text),
@@ -295,6 +305,11 @@ $themes-config: (
295 --outline-color: props.get(core.$theme, --focus, --outline), 305 --outline-color: props.get(core.$theme, --focus, --outline),
296 ), 306 ),
297 307
308 --highlighted: (
309 --border-color: props.get(core.$theme, $key, --900),
310 --shadow-color: props.get(core.$theme, $key, --200),
311 ),
312
298 --selected: ( 313 --selected: (
299 --bg-color: props.get(core.$theme, #{$key}-static, --900), 314 --bg-color: props.get(core.$theme, #{$key}-static, --900),
300 --label-color: props.get(core.$theme, #{$key}-static, --900-text), 315 --label-color: props.get(core.$theme, #{$key}-static, --900-text),
diff --git a/src/objects/_text-field.scss b/src/objects/_text-field.scss
index 6c0e7d2..a52050c 100644
--- a/src/objects/_text-field.scss
+++ b/src/objects/_text-field.scss
@@ -120,6 +120,28 @@
120 } 120 }
121 } 121 }
122 122
123 @include bem.modifier('pill') {
124 @include bem.multi('&', 'elem' 'bg') {
125 border-radius: 100em;
126 }
127
128 @include bem.elem('native') {
129 padding-inline: props.get(vars.$pad-i-pill);
130
131 &:focus {
132 @include bem.sibling-elem('bg') {
133 border-radius: 100em;
134 }
135 }
136 }
137
138 @include bem.modifier('extended') {
139 @include bem.elem('native') {
140 padding-inline: props.get(vars.$pad-i);
141 }
142 }
143 }
144
123 @include bem.is('invalid') { 145 @include bem.is('invalid') {
124 @include bem.elem('native') { 146 @include bem.elem('native') {
125 @include -invalid; 147 @include -invalid;
diff --git a/src/objects/_text-field.vars.scss b/src/objects/_text-field.vars.scss
index f64c42b..51099d8 100644
--- a/src/objects/_text-field.vars.scss
+++ b/src/objects/_text-field.vars.scss
@@ -4,6 +4,7 @@
4 4
5$line-height: props.def(--o-text-field--line-height, 1.4) !default; 5$line-height: props.def(--o-text-field--line-height, 1.4) !default;
6$pad-i: props.def(--o-text-field--pad-i, props.get(core.$size--125)) !default; 6$pad-i: props.def(--o-text-field--pad-i, props.get(core.$size--125)) !default;
7$pad-i-pill: props.def(--o-text-field--pad-i-pill, props.get(core.$size--175)) !default;
7$pad-b: props.def(--o-text-field--pad-b, props.get(core.$size--125)) !default; 8$pad-b: props.def(--o-text-field--pad-b, props.get(core.$size--125)) !default;
8$border-width: props.def(--o-text-field--border-width, props.get(core.$border-width--thin)) !default; 9$border-width: props.def(--o-text-field--border-width, props.get(core.$border-width--thin)) !default;
9$rounding: props.def(--o-text-field--rounding, props.get(core.$rounding--sm)) !default; 10$rounding: props.def(--o-text-field--rounding, props.get(core.$rounding--sm)) !default;