summaryrefslogtreecommitdiffstats
path: root/src/objects/_navbar.vars.scss
diff options
context:
space:
mode:
Diffstat (limited to 'src/objects/_navbar.vars.scss')
-rw-r--r--src/objects/_navbar.vars.scss326
1 files changed, 131 insertions, 195 deletions
diff --git a/src/objects/_navbar.vars.scss b/src/objects/_navbar.vars.scss
index b7d7e16..e96b714 100644
--- a/src/objects/_navbar.vars.scss
+++ b/src/objects/_navbar.vars.scss
@@ -1,242 +1,178 @@
1@use "sass:map"; 1@use 'sass:map';
2@use "sass:string"; 2@use 'sass:string';
3@use "pkg:iro-sass/props"; 3@use 'pkg:iro-sass/src/props';
4@use "../core.vars" as core; 4@use '../core.vars' as core;
5 5
6$block-size: props.def(--o-navbar--block-size, props.get(core.$size--1000)) !default; 6$block-size: props.def(--o-navbar--block-size, props.get(core.$size--1000)) !default;
7$spacing: props.def(--o-navbar--spacing, props.get(core.$size--50)) !default; 7$spacing: props.def(--o-navbar--spacing, props.get(core.$size--50)) !default;
8 8
9$item--pad-i: props.def(--o-navbar--item--pad-i, props.get(core.$size--150)) !default; 9$item--pad-i: props.def(--o-navbar--item--pad-i, props.get(core.$size--150)) !default;
10$item--pad-i-label: props.def(--o-navbar--item--pad-i-label, props.get(core.$size--75)) !default; 10$item--pad-i-label: props.def(--o-navbar--item--pad-i-label, props.get(core.$size--75)) !default;
11$item--pad-i-icon: props.def(--o-navbar--item--pad-i-icon, props.get(core.$size--250)) !default; 11$item--pad-i-icon: props.def(--o-navbar--item--pad-i-icon, props.get(core.$size--250)) !default;
12$item--pad-b: props.def(--o-navbar--item--pad-b, props.get(core.$size--75)) !default; 12$item--pad-b: props.def(--o-navbar--item--pad-b, props.get(core.$size--75)) !default;
13$item--pad-b-icon: props.def(--o-navbar--item--pad-b-icon, props.get(core.$size--40)) !default; 13$item--pad-b-icon: props.def(--o-navbar--item--pad-b-icon, props.get(core.$size--40)) !default;
14$item--font-size: props.def(--o-navbar--item--font-size, props.get(core.$font-size--100)) !default; 14$item--font-size: props.def(--o-navbar--item--font-size, props.get(core.$font-size--100)) !default;
15$item--icon-size: props.def(--o-navbar--item--icon-size, props.get(core.$font-size--200)) !default; 15$item--icon-size: props.def(--o-navbar--item--icon-size, props.get(core.$font-size--200)) !default;
16$item--label-font-size: props.def( 16$item--label-font-size: props.def(--o-navbar--item--label-font-size, props.get(core.$font-size--50)) !default;
17 --o-navbar--item--label-font-size,
18 props.get(core.$font-size--50)
19) !default;
20 17
21$key-focus--border-width: props.def( 18$key-focus--border-width: props.def(--o-navbar--key-focus--border-width, props.get(core.$key-focus--border-width)) !default;
22 --o-navbar--key-focus--border-width, 19$key-focus--border-offset: props.def(--o-navbar--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default;
23 props.get(core.$key-focus--border-width) 20$key-focus--outline-width: props.def(--o-navbar--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default;
24) !default;
25$key-focus--border-offset: props.def(
26 --o-navbar--key-focus--border-offset,
27 props.get(core.$key-focus--border-offset)
28) !default;
29$key-focus--outline-width: props.def(
30 --o-navbar--key-focus--outline-width,
31 props.get(core.$key-focus--outline-width)
32) !default;
33 21
34$themes: props.def(--o-navbar, (), "color"); 22$themes: props.def(--o-navbar, (), 'color');
35 23
36$default-theme-override: () !default; 24$default-theme-override: () !default;
37$default-theme: map.deep-merge( 25$default-theme: map.deep-merge((
38 ( 26 --text-color: props.get(core.$theme, --text),
39 --text-color: props.get(core.$theme, --text), 27 --label-color: props.get(core.$theme, --text-mute),
40 --label-color: props.get(core.$theme, --text-mute), 28
29 --hover: (
30 --bg-color: props.get(core.$theme, --border-mute),
31 --text-color: props.get(core.$theme, --heading),
32 --label-color: props.get(core.$theme, --text),
33 ),
34
35 --active: (
36 --bg-color: props.get(core.$theme, --border),
37 --text-color: props.get(core.$theme, --heading),
38 --label-color: props.get(core.$theme, --heading),
39 ),
40
41 --disabled: (
42 --text-color: props.get(core.$theme, --border-strong),
43 --label-color: props.get(core.$theme, --text-disabled),
44 ),
45
46 --key-focus: (
47 --label: props.get(core.$theme, --focus, --text),
48 --border: props.get(core.$theme, --focus, --border),
49 --outline: props.get(core.$theme, --focus, --outline),
50 ),
51
52 --selected: (
53 --bg-color: props.get(core.$theme, --heading),
54 --text-color: props.get(core.$theme, --base, --50),
55 --label-color: props.get(core.$theme, --heading),
56
41 --hover: ( 57 --hover: (
42 --bg-color: props.get(core.$theme, --border-mute), 58 --bg-color: props.get(core.$theme, --text),
43 --text-color: props.get(core.$theme, --heading), 59 --text-color: props.get(core.$theme, --base, --50),
44 --label-color: props.get(core.$theme, --text), 60 --label-color: props.get(core.$theme, --heading),
45 ), 61 ),
46 62
47 --active: ( 63 --active: (
48 --bg-color: props.get(core.$theme, --border), 64 --bg-color: props.get(core.$theme, --text-mute),
49 --text-color: props.get(core.$theme, --heading), 65 --text-color: props.get(core.$theme, --base, --50),
50 --label-color: props.get(core.$theme, --heading), 66 --label-color: props.get(core.$theme, --heading),
51 ), 67 ),
52 68
53 --disabled: ( 69 --disabled: (
54 --text-color: props.get(core.$theme, --border-strong), 70 --bg-color: props.get(core.$theme, --border-mute),
71 --text-color: props.get(core.$theme, --border-strong),
55 --label-color: props.get(core.$theme, --text-disabled), 72 --label-color: props.get(core.$theme, --text-disabled),
56 ), 73 ),
74 ),
57 75
58 --key-focus: ( 76 --quiet: (
59 --label: props.get(core.$theme, --focus, --text),
60 --border: props.get(core.$theme, --focus, --border),
61 --outline: props.get(core.$theme, --focus, --outline),
62 ),
63
64 --selected: ( 77 --selected: (
65 --bg-color: props.get(core.$theme, --heading), 78 --bg-color: props.get(core.$theme, --border-mute),
66 --text-color: props.get(core.$theme, --base, --50), 79 --text-color: props.get(core.$theme, --heading),
67 --label-color: props.get(core.$theme, --heading), 80
68 --hover: ( 81 --hover: (
69 --bg-color: props.get(core.$theme, --text), 82 --bg-color: props.get(core.$theme, --border),
70 --text-color: props.get(core.$theme, --base, --50), 83 --text-color: props.get(core.$theme, --heading),
71 --label-color: props.get(core.$theme, --heading),
72 ), 84 ),
73 85
74 --active: ( 86 --active: (
75 --bg-color: props.get(core.$theme, --text-mute), 87 --bg-color: props.get(core.$theme, --border-strong),
76 --text-color: props.get(core.$theme, --base, --50), 88 --text-color: props.get(core.$theme, --heading),
77 --label-color: props.get(core.$theme, --heading),
78 ), 89 ),
79 90
80 --disabled: ( 91 --disabled: (
81 --bg-color: props.get(core.$theme, --border-mute), 92 --bg-color: props.get(core.$theme, --border-mute),
82 --text-color: props.get(core.$theme, --border-strong), 93 --text-color: props.get(core.$theme, --border-strong),
83 --label-color: props.get(core.$theme, --text-disabled), 94 ),
95 )
96 )
97), $default-theme-override) !default;
98$default-theme: props.def(--o-navbar, $default-theme, 'color');
99
100@each $theme in map.keys(props.get(core.$transparent-colors)) {
101 $nav-theme: --static-#{string.slice($theme, 3)};
102
103 $themes: props.merge($themes, (
104 $nav-theme: (
105 --text-color: props.get(core.$transparent-colors, $theme, --800),
106 --label-color: props.get(core.$transparent-colors, $theme, --700),
107
108 --hover: (
109 --bg-color: props.get(core.$transparent-colors, $theme, --300),
110 --text-color: props.get(core.$transparent-colors, $theme, --900),
111 --label-color: props.get(core.$transparent-colors, $theme, --800),
112 ),
113
114 --active: (
115 --bg-color: props.get(core.$transparent-colors, $theme, --400),
116 --text-color: props.get(core.$transparent-colors, $theme, --900),
117 --label-color: props.get(core.$transparent-colors, $theme, --900),
118 ),
119
120 --disabled: (
121 --text-color: props.get(core.$transparent-colors, $theme, --500),
122 --label-color: props.get(core.$transparent-colors, $theme, --500),
123 ),
124
125 --key-focus: (
126 --label: props.get(core.$transparent-colors, $theme, --800),
127 --border: props.get(core.$transparent-colors, $theme, --900),
128 --outline: props.get(core.$transparent-colors, $theme, --300),
84 ), 129 ),
85 ),
86 130
87 --quiet: (
88 --selected: ( 131 --selected: (
89 --bg-color: props.get(core.$theme, --border-mute), 132 --bg-color: props.get(core.$transparent-colors, $theme, --900),
90 --text-color: props.get(core.$theme, --heading), 133 --text-color: props.get(core.$transparent-colors, $theme, --text),
134 --label-color: props.get(core.$transparent-colors, $theme, --800),
135
91 --hover: ( 136 --hover: (
92 --bg-color: props.get(core.$theme, --border), 137 --bg-color: props.get(core.$transparent-colors, $theme, --800),
93 --text-color: props.get(core.$theme, --heading), 138 --text-color: props.get(core.$transparent-colors, $theme, --text),
139 --label-color: props.get(core.$transparent-colors, $theme, --900),
94 ), 140 ),
95 141
96 --active: ( 142 --active: (
97 --bg-color: props.get(core.$theme, --border-strong), 143 --bg-color: props.get(core.$transparent-colors, $theme, --800),
98 --text-color: props.get(core.$theme, --heading), 144 --text-color: props.get(core.$transparent-colors, $theme, --text),
145 --label-color: props.get(core.$transparent-colors, $theme, --900),
99 ), 146 ),
100 147
101 --disabled: ( 148 --disabled: (
102 --bg-color: props.get(core.$theme, --border-mute), 149 --bg-color: props.get(core.$transparent-colors, $theme, --200),
103 --text-color: props.get(core.$theme, --border-strong), 150 --text-color: props.get(core.$transparent-colors, $theme, --500),
151 --label-color: props.get(core.$transparent-colors, $theme, --100),
104 ), 152 ),
105 ), 153 ),
106 ),
107 ),
108 $default-theme-override
109) !default;
110$default-theme: props.def(--o-navbar, $default-theme, "color");
111 154
112@each $theme in map.keys(props.get(core.$transparent-colors)) { 155 --quiet: (
113 $nav-theme: --static-#{string.slice($theme, 3)}; 156 --selected: (
157 --bg-color: props.get(core.$transparent-colors, $theme, --300),
158 --text-color: props.get(core.$transparent-colors, $theme, --900),
114 159
115 $themes: props.merge(
116 $themes,
117 (
118 $nav-theme: (
119 --text-color: props.get(core.$transparent-colors, $theme, --800),
120 --label-color: props.get(core.$transparent-colors, $theme, --700),
121 --hover: ( 160 --hover: (
122 --bg-color: props.get(core.$transparent-colors, $theme, --300), 161 --bg-color: props.get(core.$transparent-colors, $theme, --400),
123 --text-color: props.get(core.$transparent-colors, $theme, --900), 162 --text-color: props.get(core.$transparent-colors, $theme, --900),
124 --label-color: props.get(core.$transparent-colors, $theme, --800), 163 ),
125 ),
126 164
127 --active: ( 165 --active: (
128 --bg-color: props.get(core.$transparent-colors, $theme, --400), 166 --bg-color: props.get(core.$transparent-colors, $theme, --500),
129 --text-color: props.get(core.$transparent-colors, $theme, --900), 167 --text-color: props.get(core.$transparent-colors, $theme, --900),
130 --label-color: props.get(core.$transparent-colors, $theme, --900), 168 ),
131 ),
132 169
133 --disabled: ( 170 --disabled: (
134 --text-color: props.get(core.$transparent-colors, $theme, --500), 171 --bg-color: props.get(core.$transparent-colors, $theme, --100),
135 --label-color: props.get(core.$transparent-colors, $theme, --500), 172 --text-color: props.get(core.$transparent-colors, $theme, --500),
136 ), 173 ),
137 174 )
138 --key-focus: ( 175 )
139 --label: props.get(core.$transparent-colors, $theme, --800),
140 --border: props.get(core.$transparent-colors, $theme, --900),
141 --outline: props.get(core.$transparent-colors, $theme, --300),
142 ),
143
144 --selected: (
145 --bg-color: props.get(core.$transparent-colors, $theme, --900),
146 --text-color: props.get(core.$transparent-colors, $theme, --text),
147 --label-color: props.get(core.$transparent-colors, $theme, --800),
148 --hover: (
149 --bg-color: props.get(core.$transparent-colors, $theme, --800),
150 --text-color: props.get(
151 core.$transparent-colors,
152 $theme,
153 --text
154 ),
155 --label-color: props.get(
156 core.$transparent-colors,
157 $theme,
158 --900
159 ),
160 ),
161
162 --active: (
163 --bg-color: props.get(core.$transparent-colors, $theme, --800),
164 --text-color: props.get(
165 core.$transparent-colors,
166 $theme,
167 --text
168 ),
169 --label-color: props.get(
170 core.$transparent-colors,
171 $theme,
172 --900
173 ),
174 ),
175
176 --disabled: (
177 --bg-color: props.get(core.$transparent-colors, $theme, --200),
178 --text-color: props.get(
179 core.$transparent-colors,
180 $theme,
181 --500
182 ),
183 --label-color: props.get(
184 core.$transparent-colors,
185 $theme,
186 --100
187 ),
188 ),
189 ),
190
191 --quiet: (
192 --selected: (
193 --bg-color: props.get(core.$transparent-colors, $theme, --300),
194 --text-color: props.get(
195 core.$transparent-colors,
196 $theme,
197 --900
198 ),
199 --hover: (
200 --bg-color: props.get(
201 core.$transparent-colors,
202 $theme,
203 --400
204 ),
205 --text-color: props.get(
206 core.$transparent-colors,
207 $theme,
208 --900
209 ),
210 ),
211
212 --active: (
213 --bg-color: props.get(
214 core.$transparent-colors,
215 $theme,
216 --500
217 ),
218 --text-color: props.get(
219 core.$transparent-colors,
220 $theme,
221 --900
222 ),
223 ),
224
225 --disabled: (
226 --bg-color: props.get(
227 core.$transparent-colors,
228 $theme,
229 --100
230 ),
231 --text-color: props.get(
232 core.$transparent-colors,
233 $theme,
234 --500
235 ),
236 ),
237 ),
238 ),
239 ),
240 ) 176 )
241 ); 177 ));
242} 178}