diff options
95 files changed, 3589 insertions, 5543 deletions
diff --git a/src/_config.defaults.scss b/src/_config.defaults.scss index e9e978a..699cd8e 100644 --- a/src/_config.defaults.scss +++ b/src/_config.defaults.scss | |||
| @@ -1,20 +1,21 @@ | |||
| 1 | @use "sass:list"; | 1 | @use 'sass:list'; |
| 2 | @use "sass:map"; | 2 | @use 'sass:map'; |
| 3 | @use "sass:math"; | 3 | @use 'sass:math'; |
| 4 | @use "pkg:iro-sass/easing" as easing; | 4 | @use 'pkg:iro-sass/src/easing' as easing; |
| 5 | 5 | ||
| 6 | $static-colors: ( | 6 | $static-colors: ( |
| 7 | --base: hsl(0, 0%, 98%), | 7 | --base: hsl(0, 0%, 98%), |
| 8 | |||
| 8 | --levels: ( | 9 | --levels: ( |
| 9 | --100: math.div(0, 12) * 110 - 10, | 10 | --100: math.div(0, 12) * 110 - 10, |
| 10 | --200: math.div(1, 12) * 110 - 10, | 11 | --200: math.div(1, 12) * 110 - 10, |
| 11 | --300: math.div(2, 12) * 110 - 10, | 12 | --300: math.div(2, 12) * 110 - 10, |
| 12 | --400: math.div(3, 12) * 110 - 10, | 13 | --400: math.div(3, 12) * 110 - 10, |
| 13 | --500: math.div(4, 12) * 110 - 10, | 14 | --500: math.div(4, 12) * 110 - 10, |
| 14 | --600: math.div(5, 12) * 110 - 10, | 15 | --600: math.div(5, 12) * 110 - 10, |
| 15 | --700: math.div(6, 12) * 110 - 10, | 16 | --700: math.div(6, 12) * 110 - 10, |
| 16 | --800: math.div(7, 12) * 110 - 10, | 17 | --800: math.div(7, 12) * 110 - 10, |
| 17 | --900: math.div(8, 12) * 110 - 10, | 18 | --900: math.div(8, 12) * 110 - 10, |
| 18 | --1000: math.div(9, 12) * 110 - 10, | 19 | --1000: math.div(9, 12) * 110 - 10, |
| 19 | --1100: math.div(10, 12) * 110 - 10, | 20 | --1100: math.div(10, 12) * 110 - 10, |
| 20 | --1200: math.div(11, 12) * 110 - 10, | 21 | --1200: math.div(11, 12) * 110 - 10, |
| @@ -22,405 +23,175 @@ $static-colors: ( | |||
| 22 | ), | 23 | ), |
| 23 | 24 | ||
| 24 | --palettes: ( | 25 | --palettes: ( |
| 25 | --blue: oklch(56% 0.14 275.25), | 26 | --blue: oklch(56% .14 275.25), |
| 26 | --purple: oklch(56% 0.14 305.58), | 27 | --purple: oklch(56% .14 305.58), |
| 27 | --red: oklch(56% 0.14 14.69), | 28 | --red: oklch(56% .14 14.69), |
| 28 | --green: oklch(56% 0.14 150.48), | 29 | --green: oklch(56% .14 150.48), |
| 29 | --yellow: oklch(56% 0.14 84.08), | 30 | --yellow: oklch(56% .14 84.08), |
| 30 | ), | 31 | ), |
| 31 | 32 | ||
| 32 | --transparents: ( | 33 | --transparents: ( |
| 33 | --100: 0, | 34 | --100: 0, |
| 34 | --200: 0.1, | 35 | --200: .1, |
| 35 | --300: 0.25, | 36 | --300: .25, |
| 36 | --400: 0.4, | 37 | --400: .4, |
| 37 | --500: 0.55, | 38 | --500: .55, |
| 38 | --600: 0.7, | 39 | --600: .7, |
| 39 | --700: 0.8, | 40 | --700: .8, |
| 40 | --800: 0.9, | 41 | --800: .9, |
| 41 | --900: 1, | 42 | --900: 1, |
| 42 | ), | 43 | ), |
| 43 | ); | 44 | ); |
| 44 | 45 | ||
| 45 | $semantic-colors-common: ( | 46 | $semantic-colors-common: ( |
| 46 | --accent: --blue, | 47 | --accent: --blue, |
| 47 | --accent-static: --blue-static, | 48 | --accent-static: --blue-static, |
| 48 | --positive: --green, | 49 | --positive: --green, |
| 49 | --positive-static: --green-static, | 50 | --positive-static: --green-static, |
| 50 | --negative: --red, | 51 | --negative: --red, |
| 51 | --negative-static: --red-static, | 52 | --negative-static: --red-static, |
| 52 | --warning: --yellow, | 53 | --warning: --yellow, |
| 53 | --warning-static: --yellow-static, | 54 | --warning-static: --yellow-static, |
| 55 | |||
| 56 | --focus-raw: --accent, | ||
| 57 | --focus-static: --accent-static, | ||
| 54 | 58 | ||
| 55 | --focus-raw: --accent, | 59 | --border-mute: --base --200, |
| 56 | --focus-static: --accent-static, | 60 | --border: --base --300, |
| 61 | --border-strong: --base --400, | ||
| 62 | |||
| 63 | --text-disabled: --base --500, | ||
| 64 | --text-mute-more: --base --600, | ||
| 65 | --text-mute: --base --700, | ||
| 66 | --text: --base --800, | ||
| 67 | --heading: --base --900, | ||
| 57 | 68 | ||
| 58 | --border-mute: --base --200, | ||
| 59 | --border: --base --300, | ||
| 60 | --border-strong: --base --400, | ||
| 61 | --text-disabled: --base --500, | ||
| 62 | --text-mute-more: --base --600, | ||
| 63 | --text-mute: --base --700, | ||
| 64 | --text: --base --800, | ||
| 65 | --heading: --base --900, | ||
| 66 | --focus: ( | 69 | --focus: ( |
| 67 | --outline: --focus-raw --400, | 70 | --outline: --focus-raw --400, |
| 68 | --border-mute: --focus-raw --900, | 71 | --border-mute: --focus-raw --900, |
| 69 | --border: --focus-raw --1000, | 72 | --border: --focus-raw --1000, |
| 70 | --border-text: --focus-raw --1000-text, | 73 | --border-text: --focus-raw --1000-text, |
| 71 | --border-strong: --focus-raw --1100, | 74 | --border-strong: --focus-raw --1100, |
| 72 | --text: --focus-raw --1100, | 75 | --text: --focus-raw --1100, |
| 73 | ), | 76 | ), |
| 74 | ); | 77 | ); |
| 75 | 78 | ||
| 76 | $theme-light: ( | 79 | $theme-light: ( |
| 77 | --levels: ( | 80 | --levels: ( |
| 78 | --grays: ( | 81 | --grays: ( |
| 79 | --50: ( | 82 | --50: (-8) (.2 + .8 * easing.ease(math.div(0, 12))), |
| 80 | -8, | 83 | --75: (-4) (.2 + .8 * easing.ease(math.div(1, 12))), |
| 81 | ) | 84 | --100: (0) (.2 + .8 * easing.ease(math.div(2, 12))), |
| 82 | ( | ||
| 83 | 0.2 + 0.8 * easing.ease(math.div(0, 12)), | ||
| 84 | ), | ||
| 85 | --75: ( | ||
| 86 | -4, | ||
| 87 | ) | ||
| 88 | ( | ||
| 89 | 0.2 + 0.8 * easing.ease(math.div(1, 12)), | ||
| 90 | ), | ||
| 91 | --100: (0) | ||
| 92 | ( | ||
| 93 | 0.2 + 0.8 * easing.ease(math.div(2, 12)), | ||
| 94 | ), | ||
| 95 | 85 | ||
| 96 | --200: ( | 86 | --200: (easing.cubic-bezier(.2, .1, .9, .9, math.div(1, 7)) * 98) (.2 + .8 * easing.ease(math.div(3, 12))), |
| 97 | easing.cubic-bezier(0.2, 0.1, 0.9, 0.9, math.div(1, 7)) * 98, | 87 | --300: (easing.cubic-bezier(.2, .1, .9, .9, math.div(2, 7)) * 98) (.2 + .8 * easing.ease(math.div(4, 12))), |
| 98 | ) | 88 | --400: (easing.cubic-bezier(.2, .1, .9, .9, math.div(3, 7)) * 98) (.2 + .8 * easing.ease(math.div(5, 12))), |
| 99 | ( | ||
| 100 | 0.2 + 0.8 * easing.ease(math.div(3, 12)), | ||
| 101 | ), | ||
| 102 | --300: ( | ||
| 103 | easing.cubic-bezier(0.2, 0.1, 0.9, 0.9, math.div(2, 7)) * 98, | ||
| 104 | ) | ||
| 105 | ( | ||
| 106 | 0.2 + 0.8 * easing.ease(math.div(4, 12)), | ||
| 107 | ), | ||
| 108 | --400: ( | ||
| 109 | easing.cubic-bezier(0.2, 0.1, 0.9, 0.9, math.div(3, 7)) * 98, | ||
| 110 | ) | ||
| 111 | ( | ||
| 112 | 0.2 + 0.8 * easing.ease(math.div(5, 12)), | ||
| 113 | ), | ||
| 114 | 89 | ||
| 115 | --500: ( | 90 | --500: (easing.cubic-bezier(.2, .1, .9, .9, math.div(4, 7)) * 98) (.2 + .8 * easing.ease(math.div(6, 12))), |
| 116 | easing.cubic-bezier(0.2, 0.1, 0.9, 0.9, math.div(4, 7)) * 98, | 91 | --600: (easing.cubic-bezier(.2, .1, .9, .9, math.div(5, 7)) * 98) (.2 + .8 * easing.ease(math.div(7, 12))), |
| 117 | ) | 92 | --700: (easing.cubic-bezier(.2, .1, .9, .9, math.div(6, 7)) * 98) (.2 + .8 * easing.ease(math.div(8, 12))), |
| 118 | ( | 93 | --800: (easing.cubic-bezier(.2, .1, .9, .9, math.div(7, 7)) * 98) (.2 + .8 * easing.ease(math.div(9, 12))), |
| 119 | 0.2 + 0.8 * easing.ease(math.div(6, 12)), | 94 | --900: (106) (.2 + .8 * easing.ease(math.div(10, 12))), |
| 120 | ), | ||
| 121 | --600: ( | ||
| 122 | easing.cubic-bezier(0.2, 0.1, 0.9, 0.9, math.div(5, 7)) * 98, | ||
| 123 | ) | ||
| 124 | ( | ||
| 125 | 0.2 + 0.8 * easing.ease(math.div(7, 12)), | ||
| 126 | ), | ||
| 127 | --700: ( | ||
| 128 | easing.cubic-bezier(0.2, 0.1, 0.9, 0.9, math.div(6, 7)) * 98, | ||
| 129 | ) | ||
| 130 | ( | ||
| 131 | 0.2 + 0.8 * easing.ease(math.div(8, 12)), | ||
| 132 | ), | ||
| 133 | --800: ( | ||
| 134 | easing.cubic-bezier(0.2, 0.1, 0.9, 0.9, math.div(7, 7)) * 98, | ||
| 135 | ) | ||
| 136 | ( | ||
| 137 | 0.2 + 0.8 * easing.ease(math.div(9, 12)), | ||
| 138 | ), | ||
| 139 | --900: (106) | ||
| 140 | ( | ||
| 141 | 0.2 + 0.8 * easing.ease(math.div(10, 12)), | ||
| 142 | ), | ||
| 143 | ), | 95 | ), |
| 144 | 96 | ||
| 145 | --colors: ( | 97 | --colors: ( |
| 146 | --100: ( | 98 | --100: (math.div(0, 12) * 94 + 7) (.2 + .8 * easing.ease(math.div(0, 12))), |
| 147 | math.div(0, 12) * 94 + 7, | 99 | --200: (math.div(1, 12) * 94 + 7) (.2 + .8 * easing.ease(math.div(1, 12))), |
| 148 | ) | 100 | --300: (math.div(2, 12) * 94 + 7) (.2 + .8 * easing.ease(math.div(2, 12))), |
| 149 | ( | 101 | --400: (math.div(3, 12) * 94 + 7) (.2 + .8 * easing.ease(math.div(3, 12))), |
| 150 | 0.2 + 0.8 * easing.ease(math.div(0, 12)), | 102 | --500: (math.div(4, 12) * 94 + 7) (.2 + .8 * easing.ease(math.div(4, 12))), |
| 151 | ), | 103 | --600: (math.div(5, 12) * 94 + 7) (.2 + .8 * easing.ease(math.div(5, 12))), |
| 152 | --200: ( | 104 | --700: (math.div(6, 12) * 94 + 7) (.2 + .8 * easing.ease(math.div(6, 12))), |
| 153 | math.div(1, 12) * 94 + 7, | 105 | --800: (math.div(7, 12) * 94 + 7) (.2 + .8 * easing.ease(math.div(7, 12))), |
| 154 | ) | 106 | --900: (math.div(8, 12) * 94 + 7) (.2 + .8 * easing.ease(math.div(8, 12))), |
| 155 | ( | 107 | --1000: (math.div(9, 12) * 94 + 7) (.2 + .8 * easing.ease(math.div(9, 12))), |
| 156 | 0.2 + 0.8 * easing.ease(math.div(1, 12)), | 108 | --1100: (math.div(10, 12) * 94 + 7) (.2 + .8 * easing.ease(math.div(10, 12))), |
| 157 | ), | 109 | --1200: (math.div(11, 12) * 94 + 7) (.2 + .8 * easing.ease(math.div(11, 12))), |
| 158 | --300: ( | 110 | --1300: (math.div(12, 12) * 94 + 7) (.2 + .8 * easing.ease(math.div(12, 12))), |
| 159 | math.div(2, 12) * 94 + 7, | ||
| 160 | ) | ||
| 161 | ( | ||
| 162 | 0.2 + 0.8 * easing.ease(math.div(2, 12)), | ||
| 163 | ), | ||
| 164 | --400: ( | ||
| 165 | math.div(3, 12) * 94 + 7, | ||
| 166 | ) | ||
| 167 | ( | ||
| 168 | 0.2 + 0.8 * easing.ease(math.div(3, 12)), | ||
| 169 | ), | ||
| 170 | --500: ( | ||
| 171 | math.div(4, 12) * 94 + 7, | ||
| 172 | ) | ||
| 173 | ( | ||
| 174 | 0.2 + 0.8 * easing.ease(math.div(4, 12)), | ||
| 175 | ), | ||
| 176 | --600: ( | ||
| 177 | math.div(5, 12) * 94 + 7, | ||
| 178 | ) | ||
| 179 | ( | ||
| 180 | 0.2 + 0.8 * easing.ease(math.div(5, 12)), | ||
| 181 | ), | ||
| 182 | --700: ( | ||
| 183 | math.div(6, 12) * 94 + 7, | ||
| 184 | ) | ||
| 185 | ( | ||
| 186 | 0.2 + 0.8 * easing.ease(math.div(6, 12)), | ||
| 187 | ), | ||
| 188 | --800: ( | ||
| 189 | math.div(7, 12) * 94 + 7, | ||
| 190 | ) | ||
| 191 | ( | ||
| 192 | 0.2 + 0.8 * easing.ease(math.div(7, 12)), | ||
| 193 | ), | ||
| 194 | --900: ( | ||
| 195 | math.div(8, 12) * 94 + 7, | ||
| 196 | ) | ||
| 197 | ( | ||
| 198 | 0.2 + 0.8 * easing.ease(math.div(8, 12)), | ||
| 199 | ), | ||
| 200 | --1000: ( | ||
| 201 | math.div(9, 12) * 94 + 7, | ||
| 202 | ) | ||
| 203 | ( | ||
| 204 | 0.2 + 0.8 * easing.ease(math.div(9, 12)), | ||
| 205 | ), | ||
| 206 | --1100: ( | ||
| 207 | math.div(10, 12) * 94 + 7, | ||
| 208 | ) | ||
| 209 | ( | ||
| 210 | 0.2 + 0.8 * easing.ease(math.div(10, 12)), | ||
| 211 | ), | ||
| 212 | --1200: ( | ||
| 213 | math.div(11, 12) * 94 + 7, | ||
| 214 | ) | ||
| 215 | ( | ||
| 216 | 0.2 + 0.8 * easing.ease(math.div(11, 12)), | ||
| 217 | ), | ||
| 218 | --1300: ( | ||
| 219 | math.div(12, 12) * 94 + 7, | ||
| 220 | ) | ||
| 221 | ( | ||
| 222 | 0.2 + 0.8 * easing.ease(math.div(12, 12)), | ||
| 223 | ), | ||
| 224 | ), | 111 | ), |
| 225 | ), | 112 | ), |
| 226 | 113 | ||
| 227 | --palettes: ( | 114 | --palettes: ( |
| 228 | --base: hsl(260, 70%, 98%) --grays, | 115 | --base: hsl(260, 70%, 98%) --grays, |
| 229 | --blue: oklch(56% 0.16 275.25) --colors, | 116 | --blue: oklch(56% .16 275.25) --colors, |
| 230 | --purple: oklch(56% 0.16 305.58) --colors, | 117 | --purple: oklch(56% .16 305.58) --colors, |
| 231 | --red: oklch(56% 0.16 14.69) --colors, | 118 | --red: oklch(56% .16 14.69) --colors, |
| 232 | --green: oklch(56% 0.16 150.48) --colors, | 119 | --green: oklch(56% .16 150.48) --colors, |
| 233 | --yellow: oklch(56% 0.16 84.08) --colors, | 120 | --yellow: oklch(56% .16 84.08) --colors, |
| 234 | ), | 121 | ), |
| 235 | 122 | ||
| 236 | --semantic: map.merge( | 123 | --semantic: map.merge($semantic-colors-common, ( |
| 237 | $semantic-colors-common, | 124 | --bg-l2: --base --50, |
| 238 | ( | 125 | --bg-l1: --base --100, |
| 239 | --bg-l2: --base --50, | 126 | --bg-base: --base --200, |
| 240 | --bg-l1: --base --100, | 127 | |
| 241 | --bg-base: --base --200, | 128 | --box: ( |
| 242 | --box: ( | 129 | --border: --base --200, |
| 243 | --border: --base --200, | 130 | --border-strong: --base --300, |
| 244 | --border-strong: --base --300, | ||
| 245 | ), | ||
| 246 | ) | ||
| 247 | ), | 131 | ), |
| 132 | )), | ||
| 133 | |||
| 248 | --constants: ( | 134 | --constants: ( |
| 249 | --shadow: rgba(#000, 0.1), | 135 | --shadow: rgba(#000, .1), |
| 250 | ), | 136 | ), |
| 251 | ); | 137 | ); |
| 252 | 138 | ||
| 253 | $theme-dark: ( | 139 | $theme-dark: ( |
| 254 | --levels: ( | 140 | --levels: ( |
| 255 | --grays: ( | 141 | --grays: ( |
| 256 | --50: (4.4) | 142 | --50: (4.4) (.3 + .7 * easing.ease(math.div(10, 12))), |
| 257 | ( | 143 | --75: (2.5) (.3 + .7 * easing.ease(math.div(9, 12))), |
| 258 | 0.3 + 0.7 * easing.ease(math.div(10, 12)), | 144 | --100: (0) (.3 + .7 * easing.ease(math.div(8, 12))), |
| 259 | ), | ||
| 260 | --75: (2.5) | ||
| 261 | ( | ||
| 262 | 0.3 + 0.7 * easing.ease(math.div(9, 12)), | ||
| 263 | ), | ||
| 264 | --100: (0) | ||
| 265 | ( | ||
| 266 | 0.3 + 0.7 * easing.ease(math.div(8, 12)), | ||
| 267 | ), | ||
| 268 | 145 | ||
| 269 | --200: ( | 146 | --200: (easing.cubic-bezier(.3, .1, .8, .8, math.div(1, 8)) * -108) (.3 + .7 * easing.ease(math.div(7, 12))), |
| 270 | easing.cubic-bezier(0.3, 0.1, 0.8, 0.8, math.div(1, 8)) * -108, | 147 | --300: (easing.cubic-bezier(.3, .1, .8, .8, math.div(2, 8)) * -108) (.3 + .7 * easing.ease(math.div(6, 12))), |
| 271 | ) | 148 | --400: (easing.cubic-bezier(.3, .1, .8, .8, math.div(3, 8)) * -108) (.3 + .7 * easing.ease(math.div(5, 12))), |
| 272 | ( | ||
| 273 | 0.3 + 0.7 * easing.ease(math.div(7, 12)), | ||
| 274 | ), | ||
| 275 | --300: ( | ||
| 276 | easing.cubic-bezier(0.3, 0.1, 0.8, 0.8, math.div(2, 8)) * -108, | ||
| 277 | ) | ||
| 278 | ( | ||
| 279 | 0.3 + 0.7 * easing.ease(math.div(6, 12)), | ||
| 280 | ), | ||
| 281 | --400: ( | ||
| 282 | easing.cubic-bezier(0.3, 0.1, 0.8, 0.8, math.div(3, 8)) * -108, | ||
| 283 | ) | ||
| 284 | ( | ||
| 285 | 0.3 + 0.7 * easing.ease(math.div(5, 12)), | ||
| 286 | ), | ||
| 287 | 149 | ||
| 288 | --500: ( | 150 | --500: (easing.cubic-bezier(.3, .1, .8, .8, math.div(4, 8)) * -108) (.3 + .7 * easing.ease(math.div(4, 12))), |
| 289 | easing.cubic-bezier(0.3, 0.1, 0.8, 0.8, math.div(4, 8)) * -108, | 151 | --600: (easing.cubic-bezier(.3, .1, .8, .8, math.div(5, 8)) * -108) (.3 + .7 * easing.ease(math.div(3, 12))), |
| 290 | ) | 152 | --700: (easing.cubic-bezier(.3, .1, .8, .8, math.div(6, 8)) * -108) (.3 + .7 * easing.ease(math.div(2, 12))), |
| 291 | ( | 153 | --800: (easing.cubic-bezier(.3, .1, .8, .8, math.div(7, 8)) * -108) (.3 + .7 * easing.ease(math.div(1, 12))), |
| 292 | 0.3 + 0.7 * easing.ease(math.div(4, 12)), | 154 | --900: (easing.cubic-bezier(.3, .1, .8, .8, math.div(8, 8)) * -108) (.3 + .7 * easing.ease(math.div(0, 12))), |
| 293 | ), | ||
| 294 | --600: ( | ||
| 295 | easing.cubic-bezier(0.3, 0.1, 0.8, 0.8, math.div(5, 8)) * -108, | ||
| 296 | ) | ||
| 297 | ( | ||
| 298 | 0.3 + 0.7 * easing.ease(math.div(3, 12)), | ||
| 299 | ), | ||
| 300 | --700: ( | ||
| 301 | easing.cubic-bezier(0.3, 0.1, 0.8, 0.8, math.div(6, 8)) * -108, | ||
| 302 | ) | ||
| 303 | ( | ||
| 304 | 0.3 + 0.7 * easing.ease(math.div(2, 12)), | ||
| 305 | ), | ||
| 306 | --800: ( | ||
| 307 | easing.cubic-bezier(0.3, 0.1, 0.8, 0.8, math.div(7, 8)) * -108, | ||
| 308 | ) | ||
| 309 | ( | ||
| 310 | 0.3 + 0.7 * easing.ease(math.div(1, 12)), | ||
| 311 | ), | ||
| 312 | --900: ( | ||
| 313 | easing.cubic-bezier(0.3, 0.1, 0.8, 0.8, math.div(8, 8)) * -108, | ||
| 314 | ) | ||
| 315 | ( | ||
| 316 | 0.3 + 0.7 * easing.ease(math.div(0, 12)), | ||
| 317 | ), | ||
| 318 | ), | 155 | ), |
| 319 | 156 | ||
| 320 | --colors: ( | 157 | --colors: ( |
| 321 | --100: ( | 158 | --100: (easing.cubic-bezier(.2, .1, .8, .8, math.div(0, 12)) * -109 - .5) (.3 + .7 * easing.ease(math.div(0, 12))), |
| 322 | easing.cubic-bezier(0.2, 0.1, 0.8, 0.8, math.div(0, 12)) * -109 - 0.5, | 159 | --200: (easing.cubic-bezier(.2, .1, .8, .8, math.div(1, 12)) * -109 - .5) (.3 + .7 * easing.ease(math.div(1, 12))), |
| 323 | ) | 160 | --300: (easing.cubic-bezier(.2, .1, .8, .8, math.div(2, 12)) * -109 - .5) (.3 + .7 * easing.ease(math.div(2, 12))), |
| 324 | ( | 161 | --400: (easing.cubic-bezier(.2, .1, .8, .8, math.div(3, 12)) * -109 - .5) (.3 + .7 * easing.ease(math.div(3, 12))), |
| 325 | 0.3 + 0.7 * easing.ease(math.div(0, 12)), | 162 | --500: (easing.cubic-bezier(.2, .1, .8, .8, math.div(4, 12)) * -109 - .5) (.3 + .7 * easing.ease(math.div(4, 12))), |
| 326 | ), | 163 | --600: (easing.cubic-bezier(.2, .1, .8, .8, math.div(5, 12)) * -109 - .5) (.3 + .7 * easing.ease(math.div(5, 12))), |
| 327 | --200: ( | 164 | --700: (easing.cubic-bezier(.2, .1, .8, .8, math.div(6, 12)) * -109 - .5) (.3 + .7 * easing.ease(math.div(6, 12))), |
| 328 | easing.cubic-bezier(0.2, 0.1, 0.8, 0.8, math.div(1, 12)) * -109 - 0.5, | 165 | --800: (easing.cubic-bezier(.2, .1, .8, .8, math.div(7, 12)) * -109 - .5) (.3 + .7 * easing.ease(math.div(7, 12))), |
| 329 | ) | 166 | --900: (easing.cubic-bezier(.2, .1, .8, .8, math.div(8, 12)) * -109 - .5) (.3 + .7 * easing.ease(math.div(8, 12))), |
| 330 | ( | 167 | --1000: (easing.cubic-bezier(.2, .1, .8, .8, math.div(9, 12)) * -109 - .5) (.3 + .7 * easing.ease(math.div(9, 12))), |
| 331 | 0.3 + 0.7 * easing.ease(math.div(1, 12)), | 168 | --1100: (easing.cubic-bezier(.2, .1, .8, .8, math.div(10, 12)) * -109 - .5) (.3 + .7 * easing.ease(math.div(10, 12))), |
| 332 | ), | 169 | --1200: (easing.cubic-bezier(.2, .1, .8, .8, math.div(11, 12)) * -109 - .5) (.3 + .7 * easing.ease(math.div(11, 12))), |
| 333 | --300: ( | 170 | --1300: (easing.cubic-bezier(.2, .1, .8, .8, math.div(12, 12)) * -109 - .5) (.3 + .7 * easing.ease(math.div(12, 12))), |
| 334 | easing.cubic-bezier(0.2, 0.1, 0.8, 0.8, math.div(2, 12)) * -109 - 0.5, | ||
| 335 | ) | ||
| 336 | ( | ||
| 337 | 0.3 + 0.7 * easing.ease(math.div(2, 12)), | ||
| 338 | ), | ||
| 339 | --400: ( | ||
| 340 | easing.cubic-bezier(0.2, 0.1, 0.8, 0.8, math.div(3, 12)) * -109 - 0.5, | ||
| 341 | ) | ||
| 342 | ( | ||
| 343 | 0.3 + 0.7 * easing.ease(math.div(3, 12)), | ||
| 344 | ), | ||
| 345 | --500: ( | ||
| 346 | easing.cubic-bezier(0.2, 0.1, 0.8, 0.8, math.div(4, 12)) * -109 - 0.5, | ||
| 347 | ) | ||
| 348 | ( | ||
| 349 | 0.3 + 0.7 * easing.ease(math.div(4, 12)), | ||
| 350 | ), | ||
| 351 | --600: ( | ||
| 352 | easing.cubic-bezier(0.2, 0.1, 0.8, 0.8, math.div(5, 12)) * -109 - 0.5, | ||
| 353 | ) | ||
| 354 | ( | ||
| 355 | 0.3 + 0.7 * easing.ease(math.div(5, 12)), | ||
| 356 | ), | ||
| 357 | --700: ( | ||
| 358 | easing.cubic-bezier(0.2, 0.1, 0.8, 0.8, math.div(6, 12)) * -109 - 0.5, | ||
| 359 | ) | ||
| 360 | ( | ||
| 361 | 0.3 + 0.7 * easing.ease(math.div(6, 12)), | ||
| 362 | ), | ||
| 363 | --800: ( | ||
| 364 | easing.cubic-bezier(0.2, 0.1, 0.8, 0.8, math.div(7, 12)) * -109 - 0.5, | ||
| 365 | ) | ||
| 366 | ( | ||
| 367 | 0.3 + 0.7 * easing.ease(math.div(7, 12)), | ||
| 368 | ), | ||
| 369 | --900: ( | ||
| 370 | easing.cubic-bezier(0.2, 0.1, 0.8, 0.8, math.div(8, 12)) * -109 - 0.5, | ||
| 371 | ) | ||
| 372 | ( | ||
| 373 | 0.3 + 0.7 * easing.ease(math.div(8, 12)), | ||
| 374 | ), | ||
| 375 | --1000: ( | ||
| 376 | easing.cubic-bezier(0.2, 0.1, 0.8, 0.8, math.div(9, 12)) * -109 - 0.5, | ||
| 377 | ) | ||
| 378 | ( | ||
| 379 | 0.3 + 0.7 * easing.ease(math.div(9, 12)), | ||
| 380 | ), | ||
| 381 | --1100: ( | ||
| 382 | easing.cubic-bezier(0.2, 0.1, 0.8, 0.8, math.div(10, 12)) * -109 - 0.5, | ||
| 383 | ) | ||
| 384 | ( | ||
| 385 | 0.3 + 0.7 * easing.ease(math.div(10, 12)), | ||
| 386 | ), | ||
| 387 | --1200: ( | ||
| 388 | easing.cubic-bezier(0.2, 0.1, 0.8, 0.8, math.div(11, 12)) * -109 - 0.5, | ||
| 389 | ) | ||
| 390 | ( | ||
| 391 | 0.3 + 0.7 * easing.ease(math.div(11, 12)), | ||
| 392 | ), | ||
| 393 | --1300: ( | ||
| 394 | easing.cubic-bezier(0.2, 0.1, 0.8, 0.8, math.div(12, 12)) * -109 - 0.5, | ||
| 395 | ) | ||
| 396 | ( | ||
| 397 | 0.3 + 0.7 * easing.ease(math.div(12, 12)), | ||
| 398 | ), | ||
| 399 | ), | 171 | ), |
| 400 | ), | 172 | ), |
| 401 | 173 | ||
| 402 | --palettes: ( | 174 | --palettes: ( |
| 403 | --base: hsl(257, 7%, 20%) --grays, | 175 | --base: hsl(257, 7%, 20%) --grays, |
| 404 | --blue: oklch(56% 0.16 275.25) --colors, | 176 | --blue: oklch(56% .16 275.25) --colors, |
| 405 | --purple: oklch(56% 0.16 305.58) --colors, | 177 | --purple: oklch(56% .16 305.58) --colors, |
| 406 | --red: oklch(56% 0.16 14.69) --colors, | 178 | --red: oklch(56% .16 14.69) --colors, |
| 407 | --green: oklch(56% 0.16 150.48) --colors, | 179 | --green: oklch(56% .16 150.48) --colors, |
| 408 | --yellow: oklch(56% 0.16 84.08) --colors, | 180 | --yellow: oklch(56% .16 84.08) --colors, |
| 409 | ), | 181 | ), |
| 410 | 182 | ||
| 411 | --semantic: map.merge( | 183 | --semantic: map.merge($semantic-colors-common, ( |
| 412 | $semantic-colors-common, | 184 | --bg-base: --base --50, |
| 413 | ( | 185 | --bg-l1: --base --75, |
| 414 | --bg-base: --base --50, | 186 | --bg-l2: --base --100, |
| 415 | --bg-l1: --base --75, | 187 | |
| 416 | --bg-l2: --base --100, | 188 | --box: ( |
| 417 | --box: ( | 189 | --border: --base --100, |
| 418 | --border: --base --100, | 190 | --border-strong: --base --100, |
| 419 | --border-strong: --base --100, | ||
| 420 | ), | ||
| 421 | ) | ||
| 422 | ), | 191 | ), |
| 192 | )), | ||
| 193 | |||
| 423 | --constants: ( | 194 | --constants: ( |
| 424 | --shadow: rgba(#000, 0.35), | 195 | --shadow: rgba(#000, .35), |
| 425 | ), | 196 | ), |
| 426 | ); | 197 | ); |
diff --git a/src/_config.scss b/src/_config.scss index 6ddef96..a3ea6ee 100644 --- a/src/_config.scss +++ b/src/_config.scss | |||
| @@ -1,17 +1,14 @@ | |||
| 1 | @use "sass:list"; | 1 | @use 'sass:list'; |
| 2 | @use "sass:map"; | 2 | @use 'sass:map'; |
| 3 | @use "sass:math"; | 3 | @use 'sass:math'; |
| 4 | @use "pkg:iro-sass/easing" as easing; | 4 | @use 'pkg:iro-sass/src/easing' as easing; |
| 5 | @use "config.defaults" as def; | 5 | @use 'config.defaults' as def; |
| 6 | 6 | ||
| 7 | $static-colors-override: () !default; | 7 | $static-colors-override: () !default; |
| 8 | $static-colors: map.deep-merge(def.$static-colors, $static-colors-override) !default; | 8 | $static-colors: map.deep-merge(def.$static-colors, $static-colors-override) !default; |
| 9 | 9 | ||
| 10 | $semantic-colors-common-override: () !default; | 10 | $semantic-colors-common-override: () !default; |
| 11 | $semantic-colors-common: map.deep-merge( | 11 | $semantic-colors-common: map.deep-merge(def.$semantic-colors-common, $semantic-colors-common-override) !default; |
| 12 | def.$semantic-colors-common, | ||
| 13 | $semantic-colors-common-override | ||
| 14 | ) !default; | ||
| 15 | 12 | ||
| 16 | $theme-light-override: () !default; | 13 | $theme-light-override: () !default; |
| 17 | $theme-light: map.deep-merge(def.$theme-light, $theme-light-override) !default; | 14 | $theme-light: map.deep-merge(def.$theme-light, $theme-light-override) !default; |
| @@ -20,15 +17,12 @@ $theme-dark-override: () !default; | |||
| 20 | $theme-dark: map.deep-merge(def.$theme-dark, $theme-dark-override) !default; | 17 | $theme-dark: map.deep-merge(def.$theme-dark, $theme-dark-override) !default; |
| 21 | 18 | ||
| 22 | $themes-override: () !default; | 19 | $themes-override: () !default; |
| 23 | $themes: map.deep-merge( | 20 | $themes: map.deep-merge(( |
| 24 | ( | 21 | --main: ( |
| 25 | --main: ( | 22 | light: $theme-light, |
| 26 | light: $theme-light, | 23 | dark: $theme-dark, |
| 27 | dark: $theme-dark, | ||
| 28 | ), | ||
| 29 | ), | 24 | ), |
| 30 | $themes-override | 25 | ), $themes-override) !default; |
| 31 | ) !default; | ||
| 32 | 26 | ||
| 33 | $theme-default: list.nth(map.keys($themes), 1) !default; | 27 | $theme-default: list.nth(map.keys($themes), 1) !default; |
| 34 | 28 | ||
diff --git a/src/_core.scss b/src/_core.scss index 3427579..8c761ff 100644 --- a/src/_core.scss +++ b/src/_core.scss | |||
| @@ -1,42 +1,42 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:meta"; | 2 | @use 'sass:meta'; |
| 3 | @use "sass:string"; | 3 | @use 'sass:string'; |
| 4 | @use "pkg:iro-sass/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/props'; |
| 6 | @use "config"; | 6 | @use 'config'; |
| 7 | 7 | ||
| 8 | @use "core.vars" as vars; | 8 | @use 'core.vars' as vars; |
| 9 | @forward "core.vars"; | 9 | @forward 'core.vars'; |
| 10 | 10 | ||
| 11 | @mixin styles { | 11 | @mixin styles { |
| 12 | @each $theme-name, $theme in vars.$themes { | 12 | @each $theme-name, $theme in vars.$themes { |
| 13 | @if $theme-name == config.$theme-default { | 13 | @if $theme-name == config.$theme-default { |
| 14 | :root { | 14 | :root { |
| 15 | @include props.materialize(map.values(meta.module-variables("vars"))); | 15 | @include props.materialize(map.values(meta.module-variables('vars'))); |
| 16 | 16 | ||
| 17 | @if map.has-key($theme, "dark") { | 17 | @if map.has-key($theme, 'dark') { |
| 18 | @media (prefers-color-scheme: dark) { | 18 | @media (prefers-color-scheme: dark) { |
| 19 | @include props.materialize(map.get($theme, "dark")); | 19 | @include props.materialize(map.get($theme, 'dark')); |
| 20 | } | 20 | } |
| 21 | } | 21 | } |
| 22 | } | 22 | } |
| 23 | 23 | ||
| 24 | @if map.has-key($theme, "dark") and config.$explicit-dark-theme { | 24 | @if map.has-key($theme, 'dark') and config.$explicit-dark-theme { |
| 25 | @include bem.theme("dark") { | 25 | @include bem.theme('dark') { |
| 26 | @include props.materialize(map.values(meta.module-variables("vars"))); | 26 | @include props.materialize(map.values(meta.module-variables('vars'))); |
| 27 | @include props.materialize(map.get($theme, "dark")); | 27 | @include props.materialize(map.get($theme, 'dark')); |
| 28 | } | 28 | } |
| 29 | } | 29 | } |
| 30 | } @else { | 30 | } @else { |
| 31 | @include bem.theme(string.slice($theme-name, 3)) { | 31 | @include bem.theme(string.slice($theme-name, 3)) { |
| 32 | @include props.materialize(map.get($theme, "light")); | 32 | @include props.materialize(map.get($theme, 'light')); |
| 33 | 33 | ||
| 34 | color: props.get(vars.$theme, --text); | 34 | color: props.get(vars.$theme, --text); |
| 35 | background-color: props.get(vars.$theme, --bg-base); | 35 | background-color: props.get(vars.$theme, --bg-base); |
| 36 | 36 | ||
| 37 | @if map.has-key($theme, "dark") { | 37 | @if map.has-key($theme, 'dark') { |
| 38 | @media (prefers-color-scheme: dark) { | 38 | @media (prefers-color-scheme: dark) { |
| 39 | @include props.materialize(map.get($theme, "dark")); | 39 | @include props.materialize(map.get($theme, 'dark')); |
| 40 | } | 40 | } |
| 41 | } | 41 | } |
| 42 | } | 42 | } |
diff --git a/src/_core.vars.scss b/src/_core.vars.scss index bef5f88..11acbfa 100644 --- a/src/_core.vars.scss +++ b/src/_core.vars.scss | |||
| @@ -1,45 +1,45 @@ | |||
| 1 | // stylelint-disable scss/dollar-variable-pattern | 1 | // stylelint-disable scss/dollar-variable-pattern |
| 2 | 2 | ||
| 3 | @use "sass:map"; | 3 | @use 'sass:map'; |
| 4 | @use "sass:meta"; | 4 | @use 'sass:meta'; |
| 5 | @use "sass:list"; | 5 | @use 'sass:list'; |
| 6 | @use "functions" as fn; | 6 | @use 'functions' as fn; |
| 7 | @use "config"; | 7 | @use 'config'; |
| 8 | @use "pkg:iro-sass/functions"; | 8 | @use 'pkg:iro-sass/src/functions'; |
| 9 | @use "pkg:iro-sass/props"; | 9 | @use 'pkg:iro-sass/src/props'; |
| 10 | 10 | ||
| 11 | $size--0: props.def(--size--0, 0) !default; | 11 | $size--0: props.def(--size--0, 0) !default; |
| 12 | $size--10: props.def(--size--10, functions.px-to-rem(1px)) !default; | 12 | $size--10: props.def(--size--10, functions.px-to-rem(1px)) !default; |
| 13 | $size--25: props.def(--size--25, functions.px-to-rem(2px)) !default; | 13 | $size--25: props.def(--size--25, functions.px-to-rem(2px)) !default; |
| 14 | $size--40: props.def(--size--40, functions.px-to-rem(3px)) !default; | 14 | $size--40: props.def(--size--40, functions.px-to-rem(3px)) !default; |
| 15 | $size--50: props.def(--size--50, functions.px-to-rem(4px)) !default; | 15 | $size--50: props.def(--size--50, functions.px-to-rem(4px)) !default; |
| 16 | $size--65: props.def(--size--65, functions.px-to-rem(5px)) !default; | 16 | $size--65: props.def(--size--65, functions.px-to-rem(5px)) !default; |
| 17 | $size--75: props.def(--size--75, functions.px-to-rem(6px)) !default; | 17 | $size--75: props.def(--size--75, functions.px-to-rem(6px)) !default; |
| 18 | $size--85: props.def(--size--85, functions.px-to-rem(7px)) !default; | 18 | $size--85: props.def(--size--85, functions.px-to-rem(7px)) !default; |
| 19 | $size--100: props.def(--size--100, functions.px-to-rem(8px)) !default; | 19 | $size--100: props.def(--size--100, functions.px-to-rem(8px)) !default; |
| 20 | $size--115: props.def(--size--115, functions.px-to-rem(9px)) !default; | 20 | $size--115: props.def(--size--115, functions.px-to-rem(9px)) !default; |
| 21 | $size--125: props.def(--size--125, functions.px-to-rem(10px)) !default; | 21 | $size--125: props.def(--size--125, functions.px-to-rem(10px)) !default; |
| 22 | $size--130: props.def(--size--130, functions.px-to-rem(11px)) !default; | 22 | $size--130: props.def(--size--130, functions.px-to-rem(11px)) !default; |
| 23 | $size--150: props.def(--size--150, functions.px-to-rem(12px)) !default; | 23 | $size--150: props.def(--size--150, functions.px-to-rem(12px)) !default; |
| 24 | $size--160: props.def(--size--160, functions.px-to-rem(13px)) !default; | 24 | $size--160: props.def(--size--160, functions.px-to-rem(13px)) !default; |
| 25 | $size--175: props.def(--size--175, functions.px-to-rem(14px)) !default; | 25 | $size--175: props.def(--size--175, functions.px-to-rem(14px)) !default; |
| 26 | $size--200: props.def(--size--200, functions.px-to-rem(16px)) !default; | 26 | $size--200: props.def(--size--200, functions.px-to-rem(16px)) !default; |
| 27 | $size--225: props.def(--size--225, functions.px-to-rem(18px)) !default; | 27 | $size--225: props.def(--size--225, functions.px-to-rem(18px)) !default; |
| 28 | $size--250: props.def(--size--250, functions.px-to-rem(20px)) !default; | 28 | $size--250: props.def(--size--250, functions.px-to-rem(20px)) !default; |
| 29 | $size--275: props.def(--size--275, functions.px-to-rem(22px)) !default; | 29 | $size--275: props.def(--size--275, functions.px-to-rem(22px)) !default; |
| 30 | $size--300: props.def(--size--300, functions.px-to-rem(24px)) !default; | 30 | $size--300: props.def(--size--300, functions.px-to-rem(24px)) !default; |
| 31 | $size--325: props.def(--size--325, functions.px-to-rem(26px)) !default; | 31 | $size--325: props.def(--size--325, functions.px-to-rem(26px)) !default; |
| 32 | $size--350: props.def(--size--350, functions.px-to-rem(28px)) !default; | 32 | $size--350: props.def(--size--350, functions.px-to-rem(28px)) !default; |
| 33 | $size--375: props.def(--size--375, functions.px-to-rem(30px)) !default; | 33 | $size--375: props.def(--size--375, functions.px-to-rem(30px)) !default; |
| 34 | $size--400: props.def(--size--400, functions.px-to-rem(32px)) !default; | 34 | $size--400: props.def(--size--400, functions.px-to-rem(32px)) !default; |
| 35 | $size--450: props.def(--size--450, functions.px-to-rem(36px)) !default; | 35 | $size--450: props.def(--size--450, functions.px-to-rem(36px)) !default; |
| 36 | $size--500: props.def(--size--500, functions.px-to-rem(40px)) !default; | 36 | $size--500: props.def(--size--500, functions.px-to-rem(40px)) !default; |
| 37 | $size--550: props.def(--size--550, functions.px-to-rem(44px)) !default; | 37 | $size--550: props.def(--size--550, functions.px-to-rem(44px)) !default; |
| 38 | $size--600: props.def(--size--600, functions.px-to-rem(48px)) !default; | 38 | $size--600: props.def(--size--600, functions.px-to-rem(48px)) !default; |
| 39 | $size--650: props.def(--size--650, functions.px-to-rem(52px)) !default; | 39 | $size--650: props.def(--size--650, functions.px-to-rem(52px)) !default; |
| 40 | $size--700: props.def(--size--700, functions.px-to-rem(56px)) !default; | 40 | $size--700: props.def(--size--700, functions.px-to-rem(56px)) !default; |
| 41 | $size--800: props.def(--size--800, functions.px-to-rem(64px)) !default; | 41 | $size--800: props.def(--size--800, functions.px-to-rem(64px)) !default; |
| 42 | $size--900: props.def(--size--900, functions.px-to-rem(72px)) !default; | 42 | $size--900: props.def(--size--900, functions.px-to-rem(72px)) !default; |
| 43 | $size--1000: props.def(--size--1000, functions.px-to-rem(80px)) !default; | 43 | $size--1000: props.def(--size--1000, functions.px-to-rem(80px)) !default; |
| 44 | $size--1200: props.def(--size--1200, functions.px-to-rem(96px)) !default; | 44 | $size--1200: props.def(--size--1200, functions.px-to-rem(96px)) !default; |
| 45 | $size--1600: props.def(--size--1600, functions.px-to-rem(128px)) !default; | 45 | $size--1600: props.def(--size--1600, functions.px-to-rem(128px)) !default; |
| @@ -58,105 +58,58 @@ $size--4600: props.def(--size--4600, functions.px-to-rem(368px)) !default; | |||
| 58 | $size--5000: props.def(--size--5000, functions.px-to-rem(400px)) !default; | 58 | $size--5000: props.def(--size--5000, functions.px-to-rem(400px)) !default; |
| 59 | $size--6000: props.def(--size--6000, functions.px-to-rem(480px)) !default; | 59 | $size--6000: props.def(--size--6000, functions.px-to-rem(480px)) !default; |
| 60 | 60 | ||
| 61 | $font--standard--family: props.def( | 61 | $font--standard--family: props.def(--font--standard--family, ('Inter', 'Open Sans', 'Segoe UI', 'Droid Sans', Roboto, Oxygen, 'Helvetica Neue', Helvetica, Tahoma, Arial, sans-serif)) !default; |
| 62 | --font--standard--family, | 62 | $font--standard--line-height: props.def(--font--standard--line-height, 1.5) !default; |
| 63 | ( | 63 | $font--standard--feature-settings: props.def(--font--standard--feature-settings, ('\'ss01\'')) !default; |
| 64 | "Inter", | ||
| 65 | "Open Sans", | ||
| 66 | "Segoe UI", | ||
| 67 | "Droid Sans", | ||
| 68 | Roboto, | ||
| 69 | Oxygen, | ||
| 70 | "Helvetica Neue", | ||
| 71 | Helvetica, | ||
| 72 | Tahoma, | ||
| 73 | Arial, | ||
| 74 | sans-serif | ||
| 75 | ) | ||
| 76 | ) !default; | ||
| 77 | $font--standard--line-height: props.def(--font--standard--line-height, 1.5) !default; | ||
| 78 | $font--standard--feature-settings: props.def( | ||
| 79 | --font--standard--feature-settings, | ||
| 80 | ("'ss01'") | ||
| 81 | ) !default; | ||
| 82 | 64 | ||
| 83 | $font--headline--family: props.def( | 65 | $font--headline--family: props.def(--font--headline--family, props.get($font--standard--family)) !default; |
| 84 | --font--headline--family, | 66 | $font--headline--line-height: props.def(--font--headline--line-height, 1.3) !default; |
| 85 | props.get($font--standard--family) | 67 | $font--headline--weight: props.def(--font--headline--weight, 800) !default; |
| 86 | ) !default; | 68 | $font--headline--feature-settings: props.def(--font--headline--feature-settings, ('\'opsz\'' 32, '\'ss01\'', '\'cv06\'')) !default; |
| 87 | $font--headline--line-height: props.def(--font--headline--line-height, 1.3) !default; | ||
| 88 | $font--headline--weight: props.def(--font--headline--weight, 800) !default; | ||
| 89 | $font--headline--feature-settings: props.def( | ||
| 90 | --font--headline--feature-settings, | ||
| 91 | ("'opsz'" 32, "'ss01'", "'cv06'") | ||
| 92 | ) !default; | ||
| 93 | 69 | ||
| 94 | $font--mono--family: props.def( | 70 | $font--mono--family: props.def(--font--mono--family, ('Iosevka Term SS09', 'IBM Plex Mono', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', Courier, monospace)) !default; |
| 95 | --font--mono--family, | 71 | $font--mono--line-height: props.def(--font--mono--line-height, 1.4) !default; |
| 96 | ( | 72 | $font--mono--feature-settings: props.def(--font--mono--feature-settings, ('\'calt\'' 0, '\'dlig\' 1', '\'ss09\' 1')) !default; |
| 97 | "Iosevka Term SS09", | ||
| 98 | "IBM Plex Mono", | ||
| 99 | "Menlo", | ||
| 100 | "DejaVu Sans Mono", | ||
| 101 | "Bitstream Vera Sans Mono", | ||
| 102 | Courier, | ||
| 103 | monospace | ||
| 104 | ) | ||
| 105 | ) !default; | ||
| 106 | $font--mono--line-height: props.def(--font--mono--line-height, 1.4) !default; | ||
| 107 | $font--mono--feature-settings: props.def( | ||
| 108 | --font--mono--feature-settings, | ||
| 109 | ("'calt'" 0, "'dlig' 1", "'ss09' 1") | ||
| 110 | ) !default; | ||
| 111 | 73 | ||
| 112 | $font-size--50: props.def(--font-size--50, functions.px-to-rem(12px)) !default; | 74 | $font-size--50: props.def(--font-size--50, functions.px-to-rem(12px)) !default; |
| 113 | $font-size--75: props.def(--font-size--75, functions.px-to-rem(13px)) !default; | 75 | $font-size--75: props.def(--font-size--75 , functions.px-to-rem(13px)) !default; |
| 114 | $font-size--100: props.def(--font-size--100, functions.px-to-rem(14px)) !default; | 76 | $font-size--100: props.def(--font-size--100, functions.px-to-rem(14px)) !default; |
| 115 | $font-size--150: props.def(--font-size--150, functions.px-to-rem(16px)) !default; | 77 | $font-size--150: props.def(--font-size--150, functions.px-to-rem(16px)) !default; |
| 116 | $font-size--200: props.def(--font-size--200, functions.px-to-rem(18px)) !default; | 78 | $font-size--200: props.def(--font-size--200, functions.px-to-rem(18px)) !default; |
| 117 | $font-size--300: props.def(--font-size--300, functions.px-to-rem(20px)) !default; | 79 | $font-size--300: props.def(--font-size--300, functions.px-to-rem(20px)) !default; |
| 118 | $font-size--400: props.def(--font-size--400, functions.px-to-rem(24px)) !default; | 80 | $font-size--400: props.def(--font-size--400, functions.px-to-rem(24px)) !default; |
| 119 | $font-size--500: props.def(--font-size--500, functions.px-to-rem(28px)) !default; | 81 | $font-size--500: props.def(--font-size--500, functions.px-to-rem(28px)) !default; |
| 120 | $font-size--600: props.def(--font-size--600, functions.px-to-rem(32px)) !default; | 82 | $font-size--600: props.def(--font-size--600, functions.px-to-rem(32px)) !default; |
| 121 | $font-size--700: props.def(--font-size--700, functions.px-to-rem(36px)) !default; | 83 | $font-size--700: props.def(--font-size--700, functions.px-to-rem(36px)) !default; |
| 122 | $font-size--800: props.def(--font-size--800, functions.px-to-rem(40px)) !default; | 84 | $font-size--800: props.def(--font-size--800, functions.px-to-rem(40px)) !default; |
| 123 | $font-size--900: props.def(--font-size--900, functions.px-to-rem(45px)) !default; | 85 | $font-size--900: props.def(--font-size--900, functions.px-to-rem(45px)) !default; |
| 124 | $font-size--1000: props.def(--font-size--1000, functions.px-to-rem(50px)) !default; | 86 | $font-size--1000: props.def(--font-size--1000, functions.px-to-rem(50px)) !default; |
| 125 | $font-size--1100: props.def(--font-size--1100, functions.px-to-rem(60px)) !default; | 87 | $font-size--1100: props.def(--font-size--1100, functions.px-to-rem(60px)) !default; |
| 126 | $font-size--1200: props.def(--font-size--1200, functions.px-to-rem(70px)) !default; | 88 | $font-size--1200: props.def(--font-size--1200, functions.px-to-rem(70px)) !default; |
| 127 | $font-size--1300: props.def(--font-size--1300, functions.px-to-rem(80px)) !default; | 89 | $font-size--1300: props.def(--font-size--1300, functions.px-to-rem(80px)) !default; |
| 128 | 90 | ||
| 129 | $border-width--thick: props.def(--border-width--thick, 4px) !default; | 91 | $border-width--thick: props.def(--border-width--thick, 4px) !default; |
| 130 | $border-width--medium: props.def(--border-width--medium, 2px) !default; | 92 | $border-width--medium: props.def(--border-width--medium, 2px) !default; |
| 131 | $border-width--thin: props.def(--border-width--thin, 1px) !default; | 93 | $border-width--thin: props.def(--border-width--thin, 1px) !default; |
| 132 | 94 | ||
| 133 | $shadow--l1--x: props.def(--shadow--l1--x, 0) !default; | 95 | $shadow--l1--x: props.def(--shadow--l1--x, 0) !default; |
| 134 | $shadow--l1--y: props.def(--shadow--l1--y, 2px) !default; | 96 | $shadow--l1--y: props.def(--shadow--l1--y, 2px) !default; |
| 135 | $shadow--l1--blur: props.def(--shadow--l1--blur, 3px) !default; | 97 | $shadow--l1--blur: props.def(--shadow--l1--blur, 3px) !default; |
| 136 | $shadow--l1--grow: props.def(--shadow--l1--grow, -1px) !default; | 98 | $shadow--l1--grow: props.def(--shadow--l1--grow, -1px) !default; |
| 137 | 99 | ||
| 138 | $shadow--l2--x: props.def(--shadow--l2--x, 0) !default; | 100 | $shadow--l2--x: props.def(--shadow--l2--x, 0) !default; |
| 139 | $shadow--l2--y: props.def(--shadow--l2--y, 5px) !default; | 101 | $shadow--l2--y: props.def(--shadow--l2--y, 5px) !default; |
| 140 | $shadow--l2--blur: props.def(--shadow--l2--blur, 12px) !default; | 102 | $shadow--l2--blur: props.def(--shadow--l2--blur, 12px) !default; |
| 141 | $shadow--l2--grow: props.def(--shadow--l2--grow, -4px) !default; | 103 | $shadow--l2--grow: props.def(--shadow--l2--grow, -4px) !default; |
| 142 | 104 | ||
| 143 | $rounding: props.def(--rounding, 12px) !default; | 105 | $rounding: props.def(--rounding, 12px) !default; |
| 144 | $rounding--sm: props.def(--rounding--sm, 4px) !default; | 106 | $rounding--sm: props.def(--rounding--sm, 4px) !default; |
| 145 | 107 | ||
| 146 | $key-focus--outline-width: props.def( | 108 | $key-focus--outline-width: props.def(--key-focus--outline-width, props.get($border-width--thick)) !default; |
| 147 | --key-focus--outline-width, | 109 | $key-focus--border-width: props.def(--key-focus--border-width, props.get($border-width--medium)) !default; |
| 148 | props.get($border-width--thick) | 110 | $key-focus--border-offset: props.def(--key-focus--border-offset, props.get($border-width--medium)) !default; |
| 149 | ) !default; | ||
| 150 | $key-focus--border-width: props.def( | ||
| 151 | --key-focus--border-width, | ||
| 152 | props.get($border-width--medium) | ||
| 153 | ) !default; | ||
| 154 | $key-focus--border-offset: props.def( | ||
| 155 | --key-focus--border-offset, | ||
| 156 | props.get($border-width--medium) | ||
| 157 | ) !default; | ||
| 158 | 111 | ||
| 159 | $list--indent: props.def(--list--indent, props.get($size--400)) !default; | 112 | $list--indent: props.def(--list--indent, props.get($size--400)) !default; |
| 160 | $list--compact-indent: props.def(--list--compact-indent, props.get($size--250)) !default; | 113 | $list--compact-indent: props.def(--list--compact-indent, props.get($size--250)) !default; |
| 161 | 114 | ||
| 162 | $sticky-top-offset: props.def(--sticky-top-offset, 0rem) !default; | 115 | $sticky-top-offset: props.def(--sticky-top-offset, 0rem) !default; |
| @@ -166,34 +119,20 @@ $sticky-top-offset: props.def(--sticky-top-offset, 0rem) !default; | |||
| 166 | $-static-colors: (); | 119 | $-static-colors: (); |
| 167 | 120 | ||
| 168 | @each $palette-name, $palette in map.get(config.$static-colors, --palettes) { | 121 | @each $palette-name, $palette in map.get(config.$static-colors, --palettes) { |
| 169 | $palette: fn.palette( | 122 | $palette: fn.palette($palette, map.get(config.$static-colors, --levels), map.get(config.$static-colors, --base)); |
| 170 | $palette, | 123 | $-static-colors: map.merge($-static-colors, ( $palette-name: $palette )); |
| 171 | map.get(config.$static-colors, --levels), | ||
| 172 | map.get(config.$static-colors, --base) | ||
| 173 | ); | ||
| 174 | $-static-colors: map.merge( | ||
| 175 | $-static-colors, | ||
| 176 | ( | ||
| 177 | $palette-name: $palette, | ||
| 178 | ) | ||
| 179 | ); | ||
| 180 | } | 124 | } |
| 181 | 125 | ||
| 182 | // | 126 | // |
| 183 | 127 | ||
| 184 | $transparent-colors: props.def(--transparent-colors, (), "color"); | 128 | $transparent-colors: props.def(--transparent-colors, (), 'color'); |
| 185 | 129 | ||
| 186 | @each $palette-name, $palette in (--black: #000 #fff, --white: #fff #000) { | 130 | @each $palette-name, $palette in (--black: #000 #fff, --white: #fff #000) { |
| 187 | $color: list.nth($palette, 1); | 131 | $color: list.nth($palette, 1); |
| 188 | $text: list.nth($palette, 2); | 132 | $text: list.nth($palette, 2); |
| 189 | 133 | ||
| 190 | $palette: fn.transparent-palette($color, $text, map.get(config.$static-colors, --transparents)); | 134 | $palette: fn.transparent-palette($color, $text, map.get(config.$static-colors, --transparents)); |
| 191 | $transparent-colors: props.merge( | 135 | $transparent-colors: props.merge($transparent-colors, ( $palette-name: $palette )); |
| 192 | $transparent-colors, | ||
| 193 | ( | ||
| 194 | $palette-name: $palette, | ||
| 195 | ) | ||
| 196 | ); | ||
| 197 | } | 136 | } |
| 198 | 137 | ||
| 199 | // | 138 | // |
| @@ -203,64 +142,40 @@ $themes: (); | |||
| 203 | @each $theme-name, $theme in config.$themes { | 142 | @each $theme-name, $theme in config.$themes { |
| 204 | @each $variant-name, $variant in $theme { | 143 | @each $variant-name, $variant in $theme { |
| 205 | @if $variant != null { | 144 | @if $variant != null { |
| 206 | $compiled: props.def(--colors, (), "color"); | 145 | $compiled: props.def(--colors, (), 'color'); |
| 207 | 146 | ||
| 208 | @each $palette-name, $palette in $-static-colors { | 147 | @each $palette-name, $palette in $-static-colors { |
| 209 | $compiled: props.merge($compiled, (#{$palette-name}-static: $palette)); | 148 | $compiled: props.merge($compiled, ( #{$palette-name}-static: $palette )); |
| 210 | } | 149 | } |
| 211 | 150 | ||
| 212 | @each $palette-name, $palette in map.get($variant, --palettes) { | 151 | @each $palette-name, $palette in map.get($variant, --palettes) { |
| 213 | $base-color: list.nth($palette, 1); | 152 | $base-color: list.nth($palette, 1); |
| 214 | $levels: list.nth($palette, 2); | 153 | $levels: list.nth($palette, 2); |
| 215 | 154 | ||
| 216 | $palette: fn.palette( | 155 | $palette: fn.palette($base-color, map.get($variant, --levels, $levels), list.nth(map.get($variant, --palettes, --base), 1)); |
| 217 | $base-color, | 156 | $compiled: props.merge($compiled, ( $palette-name: $palette )); |
| 218 | map.get($variant, --levels, $levels), | ||
| 219 | list.nth(map.get($variant, --palettes, --base), 1) | ||
| 220 | ); | ||
| 221 | $compiled: props.merge( | ||
| 222 | $compiled, | ||
| 223 | ( | ||
| 224 | $palette-name: $palette, | ||
| 225 | ) | ||
| 226 | ); | ||
| 227 | } | 157 | } |
| 228 | 158 | ||
| 229 | @each $color, $value in map.get($variant, --constants) { | 159 | @each $color, $value in map.get($variant, --constants) { |
| 230 | $compiled: props.merge( | 160 | $compiled: props.merge($compiled, ( $color: $value )); |
| 231 | $compiled, | ||
| 232 | ( | ||
| 233 | $color: $value, | ||
| 234 | ) | ||
| 235 | ); | ||
| 236 | } | 161 | } |
| 237 | 162 | ||
| 238 | @each $color, $ref in map.get($variant, --semantic) { | 163 | @each $color, $ref in map.get($variant, --semantic) { |
| 239 | $res: (); | 164 | $res: (); |
| 240 | 165 | ||
| 241 | @if meta.type-of($ref) == "map" { | 166 | @if meta.type-of($ref) == 'map' { |
| 242 | @each $key, $r in $ref { | 167 | @each $key, $r in $ref { |
| 243 | $re1: list.nth($r, 1); | 168 | $re1: list.nth($r, 1); |
| 244 | $re2: functions.list-slice($r, 2); | 169 | $re2: functions.list-slice($r, 2); |
| 245 | $res: map.merge( | 170 | $res: map.merge($res, ($key: props.get($compiled, $re1, $re2...))); |
| 246 | $res, | ||
| 247 | ( | ||
| 248 | $key: props.get($compiled, $re1, $re2...), | ||
| 249 | ) | ||
| 250 | ); | ||
| 251 | } | 171 | } |
| 252 | } @else { | 172 | } @else { |
| 253 | $ref1: list.nth($ref, 1); | 173 | $ref1: list.nth($ref, 1); |
| 254 | $ref2: functions.list-slice($ref, 2); | 174 | $ref2: functions.list-slice($ref, 2); |
| 255 | $res: props.get($compiled, $ref1, $ref2...); | 175 | $res: props.get($compiled, $ref1, $ref2...); |
| 256 | } | 176 | } |
| 257 | 177 | ||
| 258 | $compiled: props.merge( | 178 | $compiled: props.merge($compiled, ( $color: $res )); |
| 259 | $compiled, | ||
| 260 | ( | ||
| 261 | $color: $res, | ||
| 262 | ) | ||
| 263 | ); | ||
| 264 | } | 179 | } |
| 265 | 180 | ||
| 266 | $themes: map.set($themes, $theme-name, $variant-name, $compiled); | 181 | $themes: map.set($themes, $theme-name, $variant-name, $compiled); |
diff --git a/src/_functions.scss b/src/_functions.scss index 8fb0d98..e237ccc 100644 --- a/src/_functions.scss +++ b/src/_functions.scss | |||
| @@ -1,17 +1,17 @@ | |||
| 1 | @use "sass:color"; | 1 | @use 'sass:color'; |
| 2 | @use "sass:math"; | 2 | @use 'sass:math'; |
| 3 | @use "sass:map"; | 3 | @use 'sass:map'; |
| 4 | @use "sass:list"; | 4 | @use 'sass:list'; |
| 5 | @use "sass:meta"; | 5 | @use 'sass:meta'; |
| 6 | 6 | ||
| 7 | @use "pkg:iro-sass/easing"; | 7 | @use 'pkg:iro-sass/src/easing'; |
| 8 | @use "apca"; | 8 | @use 'apca'; |
| 9 | 9 | ||
| 10 | @function palette($base-color, $levels, $ref-color: $base-color) { | 10 | @function palette($base-color, $levels, $ref-color: $base-color) { |
| 11 | $base-lch: color.to-space($base-color, oklch); | 11 | $base-lch: color.to-space($base-color, oklch); |
| 12 | $ref-lch: color.to-space($ref-color, oklch); | 12 | $ref-lch: color.to-space($ref-color, oklch); |
| 13 | 13 | ||
| 14 | $ref-l: color.channel($ref-lch, "lightness"); | 14 | $ref-l: color.channel($ref-lch, 'lightness'); |
| 15 | $ref-y: apca.sRGB_to_Y($ref-lch); | 15 | $ref-y: apca.sRGB_to_Y($ref-lch); |
| 16 | 16 | ||
| 17 | $black-y: apca.sRGB_to_Y(#000); | 17 | $black-y: apca.sRGB_to_Y(#000); |
| @@ -32,19 +32,17 @@ | |||
| 32 | $h: list.nth($level, 3); | 32 | $h: list.nth($level, 3); |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | @if meta.type-of($color) != "color" { | 35 | @if meta.type-of($color) != 'color' { |
| 36 | $y: apca.reverse($color, $ref-y); | 36 | $y: apca.reverse($color, $ref-y); |
| 37 | $l: color.channel($base-lch, "lightness"); | 37 | $l: color.channel($base-lch, 'lightness'); |
| 38 | 38 | ||
| 39 | @if $y != false { | 39 | @if $y != false { |
| 40 | $l: color.channel(apca.Y_to_sRGB($y), "lightness", oklch); | 40 | $l: color.channel(apca.Y_to_sRGB($y), 'lightness', oklch); |
| 41 | } @else { | 41 | } @else { |
| 42 | $y: $ref-y; | 42 | $y: $ref-y; |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | $color: oklch( | 45 | $color: oklch($l ($c * color.channel($base-lch, 'chroma')) ($h + color.channel($base-lch, 'hue'))); |
| 46 | $l ($c * color.channel($base-lch, "chroma")) ($h + color.channel($base-lch, "hue")) | ||
| 47 | ); | ||
| 48 | } @else { | 46 | } @else { |
| 49 | $y: apca.sRGB_to_Y($color); | 47 | $y: apca.sRGB_to_Y($color); |
| 50 | } | 48 | } |
| @@ -53,11 +51,7 @@ | |||
| 53 | $contrast-white: apca.contrast($white-y, $y); | 51 | $contrast-white: apca.contrast($white-y, $y); |
| 54 | 52 | ||
| 55 | $palette: map.set($palette, $key, $color); | 53 | $palette: map.set($palette, $key, $color); |
| 56 | $palette: map.set( | 54 | $palette: map.set($palette, #{$key}-text, if(sass(math.abs($contrast-black) > math.abs($contrast-white)): #000; else: #fff)); |
| 57 | $palette, | ||
| 58 | #{$key}-text, | ||
| 59 | if(sass(math.abs($contrast-black) > math.abs($contrast-white)): #000; else: #fff) | ||
| 60 | ); | ||
| 61 | } | 55 | } |
| 62 | 56 | ||
| 63 | @return $palette; | 57 | @return $palette; |
diff --git a/src/_props.scss b/src/_props.scss index 2683ca9..0830375 100644 --- a/src/_props.scss +++ b/src/_props.scss | |||
| @@ -1,46 +1,46 @@ | |||
| 1 | @use "sass:list"; | 1 | @use 'sass:list'; |
| 2 | @use "sass:map"; | 2 | @use 'sass:map'; |
| 3 | @use "sass:meta"; | 3 | @use 'sass:meta'; |
| 4 | @use "sass:string"; | 4 | @use 'sass:string'; |
| 5 | @use "config"; | 5 | @use 'config'; |
| 6 | @use "pkg:include-media/dist/include-media" as media; | 6 | @use 'pkg:include-media/dist/include-media' as media; |
| 7 | @use "pkg:iro-sass/bem"; | 7 | @use 'pkg:iro-sass/src/bem'; |
| 8 | @use "pkg:iro-sass/props"; | 8 | @use 'pkg:iro-sass/src/props'; |
| 9 | 9 | ||
| 10 | @mixin materialize-at-root($ref) { | 10 | @mixin materialize-at-root($ref) { |
| 11 | @if meta.type-of($ref) == "map" { | 11 | @if meta.type-of($ref) == 'map' { |
| 12 | $ref: map.values($ref); | 12 | $ref: map.values($ref); |
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | :root { | 15 | :root { |
| 16 | @include props.materialize($ref, null); | 16 | @include props.materialize($ref, null); |
| 17 | @include props.materialize($ref, "color"); | 17 | @include props.materialize($ref, 'color'); |
| 18 | 18 | ||
| 19 | @each $breakpoint in map.keys(media.$breakpoints) { | 19 | @each $breakpoint in map.keys(media.$breakpoints) { |
| 20 | @include media.media("<=#{$breakpoint}") { | 20 | @include media.media('<=#{$breakpoint}') { |
| 21 | @include props.materialize($ref, $breakpoint); | 21 | @include props.materialize($ref, $breakpoint); |
| 22 | } | 22 | } |
| 23 | } | 23 | } |
| 24 | 24 | ||
| 25 | @media (prefers-color-scheme: dark) { | 25 | @media (prefers-color-scheme: dark) { |
| 26 | @include props.materialize($ref, "dark"); | 26 | @include props.materialize($ref, 'dark'); |
| 27 | } | 27 | } |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | @if config.$explicit-dark-theme { | 30 | @if config.$explicit-dark-theme { |
| 31 | @include bem.theme("dark") { | 31 | @include bem.theme('dark') { |
| 32 | @include props.materialize($ref, "color"); | 32 | @include props.materialize($ref, 'color'); |
| 33 | @include props.materialize($ref, "dark"); | 33 | @include props.materialize($ref, 'dark'); |
| 34 | } | 34 | } |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | @each $theme-name in map.keys(config.$themes) { | 37 | @each $theme-name in map.keys(config.$themes) { |
| 38 | @if $theme-name != config.$theme-default { | 38 | @if $theme-name != config.$theme-default { |
| 39 | @include bem.theme(string.slice($theme-name, 3)) { | 39 | @include bem.theme(string.slice($theme-name, 3)) { |
| 40 | @include props.materialize($ref, "color"); | 40 | @include props.materialize($ref, 'color'); |
| 41 | 41 | ||
| 42 | @media (prefers-color-scheme: dark) { | 42 | @media (prefers-color-scheme: dark) { |
| 43 | @include props.materialize($ref, "dark"); | 43 | @include props.materialize($ref, 'dark'); |
| 44 | } | 44 | } |
| 45 | } | 45 | } |
| 46 | } | 46 | } |
diff --git a/src/_themes.scss b/src/_themes.scss index be13e60..f06a5ca 100644 --- a/src/_themes.scss +++ b/src/_themes.scss | |||
| @@ -1,71 +1,71 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:string"; | 2 | @use 'sass:string'; |
| 3 | @use "pkg:iro-sass/bem"; | 3 | @use 'pkg:iro-sass/src/bem'; |
| 4 | @use "pkg:iro-sass/props"; | 4 | @use 'pkg:iro-sass/src/props'; |
| 5 | @use "pkg:include-media/dist/include-media" as media; | 5 | @use 'pkg:include-media/dist/include-media' as media; |
| 6 | 6 | ||
| 7 | @use "core.vars" as vars; | 7 | @use 'core.vars' as vars; |
| 8 | @forward "core.vars"; | 8 | @forward 'core.vars'; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include bem.theme("base") { | 11 | @include bem.theme('base') { |
| 12 | background-color: props.get(vars.$theme, --bg-base); | 12 | background-color: props.get(vars.$theme, --bg-base); |
| 13 | 13 | ||
| 14 | @include bem.suffix("light") { | 14 | @include bem.suffix('light') { |
| 15 | @media (prefers-color-scheme: light) { | 15 | @media (prefers-color-scheme: light) { |
| 16 | background-color: props.get(vars.$theme, --bg-base); | 16 | background-color: props.get(vars.$theme, --bg-base); |
| 17 | } | 17 | } |
| 18 | } | 18 | } |
| 19 | 19 | ||
| 20 | @include bem.suffix("dark") { | 20 | @include bem.suffix('dark') { |
| 21 | @media (prefers-color-scheme: dark) { | 21 | @media (prefers-color-scheme: dark) { |
| 22 | background-color: props.get(vars.$theme, --bg-base); | 22 | background-color: props.get(vars.$theme, --bg-base); |
| 23 | } | 23 | } |
| 24 | } | 24 | } |
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | @include bem.theme("l1") { | 27 | @include bem.theme('l1') { |
| 28 | background-color: props.get(vars.$theme, --bg-l1); | 28 | background-color: props.get(vars.$theme, --bg-l1); |
| 29 | 29 | ||
| 30 | @include bem.suffix("light") { | 30 | @include bem.suffix('light') { |
| 31 | @media (prefers-color-scheme: light) { | 31 | @media (prefers-color-scheme: light) { |
| 32 | background-color: props.get(vars.$theme, --bg-l1); | 32 | background-color: props.get(vars.$theme, --bg-l1); |
| 33 | } | 33 | } |
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | @include bem.suffix("dark") { | 36 | @include bem.suffix('dark') { |
| 37 | @media (prefers-color-scheme: dark) { | 37 | @media (prefers-color-scheme: dark) { |
| 38 | background-color: props.get(vars.$theme, --bg-l1); | 38 | background-color: props.get(vars.$theme, --bg-l1); |
| 39 | } | 39 | } |
| 40 | } | 40 | } |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | @include bem.theme("l2") { | 43 | @include bem.theme('l2') { |
| 44 | background-color: props.get(vars.$theme, --bg-l2); | 44 | background-color: props.get(vars.$theme, --bg-l2); |
| 45 | 45 | ||
| 46 | @include bem.suffix("light") { | 46 | @include bem.suffix('light') { |
| 47 | @media (prefers-color-scheme: light) { | 47 | @media (prefers-color-scheme: light) { |
| 48 | background-color: props.get(vars.$theme, --bg-l2); | 48 | background-color: props.get(vars.$theme, --bg-l2); |
| 49 | } | 49 | } |
| 50 | } | 50 | } |
| 51 | 51 | ||
| 52 | @include bem.suffix("dark") { | 52 | @include bem.suffix('dark') { |
| 53 | @media (prefers-color-scheme: dark) { | 53 | @media (prefers-color-scheme: dark) { |
| 54 | background-color: props.get(vars.$theme, --bg-l2); | 54 | background-color: props.get(vars.$theme, --bg-l2); |
| 55 | } | 55 | } |
| 56 | } | 56 | } |
| 57 | } | 57 | } |
| 58 | 58 | ||
| 59 | @include bem.theme("50") { | 59 | @include bem.theme('50') { |
| 60 | background-color: props.get(vars.$theme, --base, --50); | 60 | background-color: props.get(vars.$theme, --base, --50); |
| 61 | 61 | ||
| 62 | @include bem.suffix("light") { | 62 | @include bem.suffix('light') { |
| 63 | @media (prefers-color-scheme: light) { | 63 | @media (prefers-color-scheme: light) { |
| 64 | background-color: props.get(vars.$theme, --base, --50); | 64 | background-color: props.get(vars.$theme, --base, --50); |
| 65 | } | 65 | } |
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | @include bem.suffix("dark") { | 68 | @include bem.suffix('dark') { |
| 69 | @media (prefers-color-scheme: dark) { | 69 | @media (prefers-color-scheme: dark) { |
| 70 | background-color: props.get(vars.$theme, --base, --50); | 70 | background-color: props.get(vars.$theme, --base, --50); |
| 71 | } | 71 | } |
diff --git a/src/_utils.scss b/src/_utils.scss index be2faab..dd8e8bb 100644 --- a/src/_utils.scss +++ b/src/_utils.scss | |||
| @@ -1,27 +1,27 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:string"; | 2 | @use 'sass:string'; |
| 3 | @use "pkg:iro-sass/bem"; | 3 | @use 'pkg:iro-sass/src/bem'; |
| 4 | @use "pkg:iro-sass/props"; | 4 | @use 'pkg:iro-sass/src/props'; |
| 5 | @use "pkg:include-media/dist/include-media" as media; | 5 | @use 'pkg:include-media/dist/include-media' as media; |
| 6 | 6 | ||
| 7 | @use "core.vars" as vars; | 7 | @use 'core.vars' as vars; |
| 8 | @forward "core.vars"; | 8 | @forward 'core.vars'; |
| 9 | 9 | ||
| 10 | /* stylelint-disable-next-line scss/dollar-variable-pattern */ | 10 | /* stylelint-disable-next-line scss/dollar-variable-pattern */ |
| 11 | $-dirs: ( | 11 | $-dirs: ( |
| 12 | "": "", | 12 | '': '', |
| 13 | "b": "-block", | 13 | 'b': '-block', |
| 14 | "bs": "-block-start", | 14 | 'bs': '-block-start', |
| 15 | "be": "-block-end", | 15 | 'be': '-block-end', |
| 16 | "i": "-inline", | 16 | 'i': '-inline', |
| 17 | "is": "-inline-start", | 17 | 'is': '-inline-start', |
| 18 | "ie": "-inline-end", | 18 | 'ie': '-inline-end', |
| 19 | ) !default; | 19 | ) !default; |
| 20 | 20 | ||
| 21 | $-axes: ( | 21 | $-axes: ( |
| 22 | "": "", | 22 | '': '', |
| 23 | "r": "row-", | 23 | 'r': 'row-', |
| 24 | "c": "column-", | 24 | 'c': 'column-', |
| 25 | ) !default; | 25 | ) !default; |
| 26 | 26 | ||
| 27 | /* stylelint-disable-next-line scss/dollar-variable-pattern */ | 27 | /* stylelint-disable-next-line scss/dollar-variable-pattern */ |
| @@ -48,145 +48,145 @@ $-font-sizes: ( | |||
| 48 | ) !default; | 48 | ) !default; |
| 49 | 49 | ||
| 50 | $-aspect-ratios: ( | 50 | $-aspect-ratios: ( |
| 51 | "1\\/1": "1 / 1", | 51 | '1\\/1': '1 / 1', |
| 52 | "4\\/3": "4 / 3", | 52 | '4\\/3': '4 / 3', |
| 53 | "5\\/4": "5 / 4", | 53 | '5\\/4': '5 / 4', |
| 54 | ) !default; | 54 | ) !default; |
| 55 | 55 | ||
| 56 | @mixin styles { | 56 | @mixin styles { |
| 57 | @include bem.utility("d-block") { | 57 | @include bem.utility('d-block') { |
| 58 | display: block; | 58 | display: block; |
| 59 | } | 59 | } |
| 60 | 60 | ||
| 61 | @include bem.utility("d-inline-block") { | 61 | @include bem.utility('d-inline-block') { |
| 62 | display: inline-block; | 62 | display: inline-block; |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | @include bem.utility("d-inline") { | 65 | @include bem.utility('d-inline') { |
| 66 | display: inline; | 66 | display: inline; |
| 67 | } | 67 | } |
| 68 | 68 | ||
| 69 | @include bem.utility("d-contents") { | 69 | @include bem.utility('d-contents') { |
| 70 | display: contents; | 70 | display: contents; |
| 71 | } | 71 | } |
| 72 | 72 | ||
| 73 | @include bem.utility("d-flex") { | 73 | @include bem.utility('d-flex') { |
| 74 | display: flex; | 74 | display: flex; |
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | @include bem.utility("td-none") { | 77 | @include bem.utility('td-none') { |
| 78 | text-decoration: none; | 78 | text-decoration: none; |
| 79 | } | 79 | } |
| 80 | 80 | ||
| 81 | @include bem.utility("d-none") { | 81 | @include bem.utility('d-none') { |
| 82 | display: none; | 82 | display: none; |
| 83 | 83 | ||
| 84 | @each $breakpoint in map.keys(media.$breakpoints) { | 84 | @each $breakpoint in map.keys(media.$breakpoints) { |
| 85 | @include media.media("<=#{$breakpoint}") { | 85 | @include media.media('<=#{$breakpoint}') { |
| 86 | @include bem.suffix("#{$breakpoint}-lo") { | 86 | @include bem.suffix('#{$breakpoint}-lo') { |
| 87 | display: none; | 87 | display: none; |
| 88 | } | 88 | } |
| 89 | } | 89 | } |
| 90 | 90 | ||
| 91 | @include media.media(">#{$breakpoint}") { | 91 | @include media.media('>#{$breakpoint}') { |
| 92 | @include bem.suffix("#{$breakpoint}-hi") { | 92 | @include bem.suffix('#{$breakpoint}-hi') { |
| 93 | display: none; | 93 | display: none; |
| 94 | } | 94 | } |
| 95 | } | 95 | } |
| 96 | } | 96 | } |
| 97 | 97 | ||
| 98 | @include bem.at-theme("js") { | 98 | @include bem.at-theme('js') { |
| 99 | @include bem.suffix("js") { | 99 | @include bem.suffix('js') { |
| 100 | display: none; | 100 | display: none; |
| 101 | } | 101 | } |
| 102 | } | 102 | } |
| 103 | 103 | ||
| 104 | @include bem.at-theme("no-js") { | 104 | @include bem.at-theme('no-js') { |
| 105 | @include bem.suffix("no-js") { | 105 | @include bem.suffix('no-js') { |
| 106 | display: none; | 106 | display: none; |
| 107 | } | 107 | } |
| 108 | } | 108 | } |
| 109 | 109 | ||
| 110 | @include bem.suffix("empty") { | 110 | @include bem.suffix('empty') { |
| 111 | &:empty { | 111 | &:empty { |
| 112 | display: none; | 112 | display: none; |
| 113 | } | 113 | } |
| 114 | } | 114 | } |
| 115 | } | 115 | } |
| 116 | 116 | ||
| 117 | @include bem.utility("va-top") { | 117 | @include bem.utility('va-top') { |
| 118 | vertical-align: top; | 118 | vertical-align: top; |
| 119 | } | 119 | } |
| 120 | 120 | ||
| 121 | @include bem.utility("va-baseline") { | 121 | @include bem.utility('va-baseline') { |
| 122 | vertical-align: baseline; | 122 | vertical-align: baseline; |
| 123 | } | 123 | } |
| 124 | 124 | ||
| 125 | @include bem.utility("va-middle") { | 125 | @include bem.utility('va-middle') { |
| 126 | vertical-align: middle; | 126 | vertical-align: middle; |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | @include bem.utility("va-bottom") { | 129 | @include bem.utility('va-bottom') { |
| 130 | vertical-align: bottom; | 130 | vertical-align: bottom; |
| 131 | } | 131 | } |
| 132 | 132 | ||
| 133 | @include bem.utility("ta-start") { | 133 | @include bem.utility('ta-start') { |
| 134 | text-align: start; | 134 | text-align: start; |
| 135 | } | 135 | } |
| 136 | 136 | ||
| 137 | @include bem.utility("ta-end") { | 137 | @include bem.utility('ta-end') { |
| 138 | text-align: end; | 138 | text-align: end; |
| 139 | } | 139 | } |
| 140 | 140 | ||
| 141 | @include bem.utility("ta-center") { | 141 | @include bem.utility('ta-center') { |
| 142 | text-align: center; | 142 | text-align: center; |
| 143 | } | 143 | } |
| 144 | 144 | ||
| 145 | @include bem.utility("fw-normal") { | 145 | @include bem.utility('fw-normal') { |
| 146 | font-weight: normal; | 146 | font-weight: normal; |
| 147 | } | 147 | } |
| 148 | 148 | ||
| 149 | @include bem.utility("ai-center") { | 149 | @include bem.utility('ai-center') { |
| 150 | align-items: center; | 150 | align-items: center; |
| 151 | } | 151 | } |
| 152 | 152 | ||
| 153 | @include bem.utility("ai-start") { | 153 | @include bem.utility('ai-start') { |
| 154 | align-items: flex-start; | 154 | align-items: flex-start; |
| 155 | } | 155 | } |
| 156 | 156 | ||
| 157 | @include bem.utility("ai-end") { | 157 | @include bem.utility('ai-end') { |
| 158 | align-items: flex-end; | 158 | align-items: flex-end; |
| 159 | } | 159 | } |
| 160 | 160 | ||
| 161 | @include bem.utility("ai-stretch") { | 161 | @include bem.utility('ai-stretch') { |
| 162 | align-items: stretch; | 162 | align-items: stretch; |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | @include bem.utility("ac-center") { | 165 | @include bem.utility('ac-center') { |
| 166 | align-content: center; | 166 | align-content: center; |
| 167 | } | 167 | } |
| 168 | 168 | ||
| 169 | @include bem.utility("jc-center") { | 169 | @include bem.utility('jc-center') { |
| 170 | justify-content: center; | 170 | justify-content: center; |
| 171 | } | 171 | } |
| 172 | 172 | ||
| 173 | @include bem.utility("jc-start") { | 173 | @include bem.utility('jc-start') { |
| 174 | justify-content: flex-start; | 174 | justify-content: flex-start; |
| 175 | } | 175 | } |
| 176 | 176 | ||
| 177 | @include bem.utility("jc-end") { | 177 | @include bem.utility('jc-end') { |
| 178 | justify-content: flex-end; | 178 | justify-content: flex-end; |
| 179 | } | 179 | } |
| 180 | 180 | ||
| 181 | @include bem.utility("tt-upper") { | 181 | @include bem.utility('tt-upper') { |
| 182 | text-transform: uppercase; | 182 | text-transform: uppercase; |
| 183 | } | 183 | } |
| 184 | 184 | ||
| 185 | @include bem.utility("tt-lower") { | 185 | @include bem.utility('tt-lower') { |
| 186 | text-transform: lowercase; | 186 | text-transform: lowercase; |
| 187 | } | 187 | } |
| 188 | 188 | ||
| 189 | @include bem.utility("c-heading") { | 189 | @include bem.utility('c-heading') { |
| 190 | color: props.get(vars.$theme, --heading); | 190 | color: props.get(vars.$theme, --heading); |
| 191 | 191 | ||
| 192 | @each $theme in map.keys(props.get(vars.$transparent-colors)) { | 192 | @each $theme in map.keys(props.get(vars.$transparent-colors)) { |
| @@ -198,7 +198,7 @@ $-aspect-ratios: ( | |||
| 198 | } | 198 | } |
| 199 | } | 199 | } |
| 200 | 200 | ||
| 201 | @include bem.utility("c-text") { | 201 | @include bem.utility('c-text') { |
| 202 | color: props.get(vars.$theme, --text); | 202 | color: props.get(vars.$theme, --text); |
| 203 | 203 | ||
| 204 | @each $theme in map.keys(props.get(vars.$transparent-colors)) { | 204 | @each $theme in map.keys(props.get(vars.$transparent-colors)) { |
| @@ -210,7 +210,7 @@ $-aspect-ratios: ( | |||
| 210 | } | 210 | } |
| 211 | } | 211 | } |
| 212 | 212 | ||
| 213 | @include bem.utility("c-mute") { | 213 | @include bem.utility('c-mute') { |
| 214 | color: props.get(vars.$theme, --text-mute); | 214 | color: props.get(vars.$theme, --text-mute); |
| 215 | 215 | ||
| 216 | @each $theme in map.keys(props.get(vars.$transparent-colors)) { | 216 | @each $theme in map.keys(props.get(vars.$transparent-colors)) { |
| @@ -222,7 +222,7 @@ $-aspect-ratios: ( | |||
| 222 | } | 222 | } |
| 223 | } | 223 | } |
| 224 | 224 | ||
| 225 | @include bem.utility("c-mute-more") { | 225 | @include bem.utility('c-mute-more') { |
| 226 | color: props.get(vars.$theme, --text-mute-more); | 226 | color: props.get(vars.$theme, --text-mute-more); |
| 227 | 227 | ||
| 228 | @each $theme in map.keys(props.get(vars.$transparent-colors)) { | 228 | @each $theme in map.keys(props.get(vars.$transparent-colors)) { |
| @@ -235,195 +235,189 @@ $-aspect-ratios: ( | |||
| 235 | } | 235 | } |
| 236 | 236 | ||
| 237 | @each $mod, $size in $-font-sizes { | 237 | @each $mod, $size in $-font-sizes { |
| 238 | @include bem.utility("fs-#{$mod}") { | 238 | @include bem.utility('fs-#{$mod}') { |
| 239 | font-size: props.get($size); | 239 | font-size: props.get($size); |
| 240 | } | 240 | } |
| 241 | } | 241 | } |
| 242 | 242 | ||
| 243 | @each $dir, $prop in (is: inline-size, bs: block-size) { | 243 | @each $dir, $prop in (is: inline-size, bs: block-size) { |
| 244 | @include bem.utility("#{$dir}-100") { | 244 | @include bem.utility('#{$dir}-100') { |
| 245 | #{$prop}: 100%; | 245 | #{$prop}: 100%; |
| 246 | } | 246 | } |
| 247 | 247 | ||
| 248 | @include bem.utility("#{$dir}-75") { | 248 | @include bem.utility('#{$dir}-75') { |
| 249 | #{$prop}: 75%; | 249 | #{$prop}: 75%; |
| 250 | } | 250 | } |
| 251 | 251 | ||
| 252 | @include bem.utility("#{$dir}-50") { | 252 | @include bem.utility('#{$dir}-50') { |
| 253 | #{$prop}: 50%; | 253 | #{$prop}: 50%; |
| 254 | } | 254 | } |
| 255 | 255 | ||
| 256 | @include bem.utility("#{$dir}-25") { | 256 | @include bem.utility('#{$dir}-25') { |
| 257 | #{$prop}: 25%; | 257 | #{$prop}: 25%; |
| 258 | } | 258 | } |
| 259 | 259 | ||
| 260 | @include bem.utility("#{$dir}-1px") { | 260 | @include bem.utility('#{$dir}-1px') { |
| 261 | #{$prop}: 1px; | 261 | #{$prop}: 1px; |
| 262 | } | 262 | } |
| 263 | 263 | ||
| 264 | @include bem.utility("#{$dir}-0") { | 264 | @include bem.utility('#{$dir}-0') { |
| 265 | #{$prop}: 0; | 265 | #{$prop}: 0; |
| 266 | } | 266 | } |
| 267 | } | 267 | } |
| 268 | 268 | ||
| 269 | @include bem.utility("elp") { | 269 | @include bem.utility('elp') { |
| 270 | overflow: hidden; | 270 | overflow: hidden; |
| 271 | text-overflow: ellipsis; | 271 | text-overflow: ellipsis; |
| 272 | white-space: nowrap; | 272 | white-space: nowrap; |
| 273 | } | 273 | } |
| 274 | 274 | ||
| 275 | @include bem.utility("hyph") { | 275 | @include bem.utility('hyph') { |
| 276 | hyphens: auto; | 276 | hyphens: auto; |
| 277 | hyphenate-limit-chars: auto; | 277 | hyphenate-limit-chars: auto; |
| 278 | } | 278 | } |
| 279 | 279 | ||
| 280 | @include bem.utility("tw-balance") { | 280 | @include bem.utility('tw-balance') { |
| 281 | text-wrap-style: balance; | 281 | text-wrap-style: balance; |
| 282 | } | 282 | } |
| 283 | 283 | ||
| 284 | @include bem.utility("o-auto") { | 284 | @include bem.utility('o-auto') { |
| 285 | overflow: auto; | 285 | overflow: auto; |
| 286 | } | 286 | } |
| 287 | 287 | ||
| 288 | @include bem.utility("o-hidden") { | 288 | @include bem.utility('o-hidden') { |
| 289 | overflow: hidden; | 289 | overflow: hidden; |
| 290 | } | 290 | } |
| 291 | 291 | ||
| 292 | @include bem.utility("p-static") { | 292 | @include bem.utility('p-static') { |
| 293 | position: static; | 293 | position: static; |
| 294 | } | 294 | } |
| 295 | 295 | ||
| 296 | @include bem.utility("p-relative") { | 296 | @include bem.utility('p-relative') { |
| 297 | position: relative; | 297 | position: relative; |
| 298 | } | 298 | } |
| 299 | 299 | ||
| 300 | @include bem.utility("p-fixed") { | 300 | @include bem.utility('p-fixed') { |
| 301 | position: fixed; | 301 | position: fixed; |
| 302 | } | 302 | } |
| 303 | 303 | ||
| 304 | @include bem.utility("p-sticky-bs") { | 304 | @include bem.utility('p-sticky-bs') { |
| 305 | position: sticky; | 305 | position: sticky; |
| 306 | inset-block-start: props.get(vars.$sticky-top-offset); | 306 | inset-block-start: props.get(vars.$sticky-top-offset); |
| 307 | } | 307 | } |
| 308 | 308 | ||
| 309 | @include bem.utility("p-sticky-be") { | 309 | @include bem.utility('p-sticky-be') { |
| 310 | position: sticky; | 310 | position: sticky; |
| 311 | inset-block-end: 0; | 311 | inset-block-end: 0; |
| 312 | } | 312 | } |
| 313 | 313 | ||
| 314 | @include bem.utility("br-round") { | 314 | @include bem.utility('br-round') { |
| 315 | border-radius: props.get(vars.$rounding); | 315 | border-radius: props.get(vars.$rounding); |
| 316 | } | 316 | } |
| 317 | 317 | ||
| 318 | @include bem.utility("br-round-sm") { | 318 | @include bem.utility('br-round-sm') { |
| 319 | border-radius: props.get(vars.$rounding--sm); | 319 | border-radius: props.get(vars.$rounding--sm); |
| 320 | } | 320 | } |
| 321 | 321 | ||
| 322 | @each $dir, $prefix in $-axes { | 322 | @each $dir, $prefix in $-axes { |
| 323 | @each $mod, $size in $-sizes { | 323 | @each $mod, $size in $-sizes { |
| 324 | @include bem.utility("#{$dir}g-#{$mod}") { | 324 | @include bem.utility('#{$dir}g-#{$mod}') { |
| 325 | #{$prefix}gap: props.get($size); | 325 | #{$prefix}gap: props.get($size); |
| 326 | } | 326 | } |
| 327 | } | 327 | } |
| 328 | } | 328 | } |
| 329 | 329 | ||
| 330 | @each $dir, $suffix in $-dirs { | 330 | @each $dir, $suffix in $-dirs { |
| 331 | @include bem.utility("m#{$dir}-auto") { | 331 | @include bem.utility('m#{$dir}-auto') { |
| 332 | margin#{$suffix}: auto; | 332 | margin#{$suffix}: auto; |
| 333 | } | 333 | } |
| 334 | 334 | ||
| 335 | @include bem.utility("p#{$dir}-auto") { | 335 | @include bem.utility('p#{$dir}-auto') { |
| 336 | padding#{$suffix}: auto; | 336 | padding#{$suffix}: auto; |
| 337 | } | 337 | } |
| 338 | 338 | ||
| 339 | @each $mod, $size in $-sizes { | 339 | @each $mod, $size in $-sizes { |
| 340 | @include bem.utility("m#{$dir}-#{$mod}") { | 340 | @include bem.utility('m#{$dir}-#{$mod}') { |
| 341 | margin#{$suffix}: props.get($size); | 341 | margin#{$suffix}: props.get($size); |
| 342 | } | 342 | } |
| 343 | 343 | ||
| 344 | @include bem.utility("p#{$dir}-#{$mod}") { | 344 | @include bem.utility('p#{$dir}-#{$mod}') { |
| 345 | padding#{$suffix}: props.get($size); | 345 | padding#{$suffix}: props.get($size); |
| 346 | } | 346 | } |
| 347 | } | 347 | } |
| 348 | 348 | ||
| 349 | @include bem.utility("b#{$dir}-0") { | 349 | @include bem.utility('b#{$dir}-0') { |
| 350 | border#{$suffix}: 0; | 350 | border#{$suffix}: 0; |
| 351 | 351 | ||
| 352 | @include bem.suffix("light") { | 352 | @include bem.suffix('light') { |
| 353 | @media (prefers-color-scheme: light) { | 353 | @media (prefers-color-scheme: light) { |
| 354 | border#{$suffix}: 0; | 354 | border#{$suffix}: 0; |
| 355 | } | 355 | } |
| 356 | } | 356 | } |
| 357 | 357 | ||
| 358 | @include bem.suffix("dark") { | 358 | @include bem.suffix('dark') { |
| 359 | @media (prefers-color-scheme: dark) { | 359 | @media (prefers-color-scheme: dark) { |
| 360 | border#{$suffix}: 0; | 360 | border#{$suffix}: 0; |
| 361 | } | 361 | } |
| 362 | } | 362 | } |
| 363 | } | 363 | } |
| 364 | 364 | ||
| 365 | @include bem.utility("b#{$dir}-1") { | 365 | @include bem.utility('b#{$dir}-1') { |
| 366 | border#{$suffix}: props.get(vars.$border-width--thin) solid | 366 | border#{$suffix}: props.get(vars.$border-width--thin) solid props.get(vars.$theme, --border); |
| 367 | props.get(vars.$theme, --border); | ||
| 368 | 367 | ||
| 369 | @include bem.suffix("light") { | 368 | @include bem.suffix('light') { |
| 370 | @media (prefers-color-scheme: light) { | 369 | @media (prefers-color-scheme: light) { |
| 371 | border#{$suffix}: props.get(vars.$border-width--thin) solid | 370 | border#{$suffix}: props.get(vars.$border-width--thin) solid props.get(vars.$theme, --border); |
| 372 | props.get(vars.$theme, --border); | ||
| 373 | } | 371 | } |
| 374 | } | 372 | } |
| 375 | 373 | ||
| 376 | @include bem.suffix("dark") { | 374 | @include bem.suffix('dark') { |
| 377 | @media (prefers-color-scheme: dark) { | 375 | @media (prefers-color-scheme: dark) { |
| 378 | border#{$suffix}: props.get(vars.$border-width--thin) solid | 376 | border#{$suffix}: props.get(vars.$border-width--thin) solid props.get(vars.$theme, --border); |
| 379 | props.get(vars.$theme, --border); | ||
| 380 | } | 377 | } |
| 381 | } | 378 | } |
| 382 | } | 379 | } |
| 383 | 380 | ||
| 384 | @include bem.utility("b#{$dir}-1-mute") { | 381 | @include bem.utility('b#{$dir}-1-mute') { |
| 385 | border#{$suffix}: props.get(vars.$border-width--thin) solid | 382 | border#{$suffix}: props.get(vars.$border-width--thin) solid props.get(vars.$theme, --border-mute); |
| 386 | props.get(vars.$theme, --border-mute); | ||
| 387 | 383 | ||
| 388 | @include bem.suffix("light") { | 384 | @include bem.suffix('light') { |
| 389 | @media (prefers-color-scheme: light) { | 385 | @media (prefers-color-scheme: light) { |
| 390 | border#{$suffix}: props.get(vars.$border-width--thin) solid | 386 | border#{$suffix}: props.get(vars.$border-width--thin) solid props.get(vars.$theme, --border-mute); |
| 391 | props.get(vars.$theme, --border-mute); | ||
| 392 | } | 387 | } |
| 393 | } | 388 | } |
| 394 | 389 | ||
| 395 | @include bem.suffix("dark") { | 390 | @include bem.suffix('dark') { |
| 396 | @media (prefers-color-scheme: dark) { | 391 | @media (prefers-color-scheme: dark) { |
| 397 | border#{$suffix}: props.get(vars.$border-width--thin) solid | 392 | border#{$suffix}: props.get(vars.$border-width--thin) solid props.get(vars.$theme, --border-mute); |
| 398 | props.get(vars.$theme, --border-mute); | ||
| 399 | } | 393 | } |
| 400 | } | 394 | } |
| 401 | } | 395 | } |
| 402 | } | 396 | } |
| 403 | 397 | ||
| 404 | @include bem.utility("mbs-neutralize") { | 398 | @include bem.utility('mbs-neutralize') { |
| 405 | &::before { | 399 | &::before { |
| 406 | display: block; | 400 | display: block; |
| 407 | margin-block: -100em 100em; | 401 | margin-block: -100em 100em; |
| 408 | content: ""; | 402 | content: ''; |
| 409 | } | 403 | } |
| 410 | } | 404 | } |
| 411 | 405 | ||
| 412 | @each $mod, $value in $-aspect-ratios { | 406 | @each $mod, $value in $-aspect-ratios { |
| 413 | @include bem.utility("ar-#{$mod}") { | 407 | @include bem.utility('ar-#{$mod}') { |
| 414 | aspect-ratio: string.unquote($value); | 408 | aspect-ratio: string.unquote($value); |
| 415 | } | 409 | } |
| 416 | } | 410 | } |
| 417 | 411 | ||
| 418 | @include bem.utility("sr-only") { | 412 | @include bem.utility('sr-only') { |
| 419 | position: absolute; | 413 | position: absolute; |
| 420 | width: 1px; | 414 | width: 1px; |
| 421 | height: 1px; | 415 | height: 1px; |
| 422 | padding: 0; | 416 | padding: 0; |
| 423 | margin: -1px; | 417 | margin: -1px; |
| 424 | overflow: hidden; | 418 | overflow: hidden; |
| 425 | white-space: nowrap; | 419 | white-space: nowrap; |
| 426 | border: 0; | 420 | border: 0; |
| 427 | clip-path: inset(50%); | 421 | clip-path: inset(50%); |
| 428 | } | 422 | } |
| 429 | } | 423 | } |
diff --git a/src/layouts/_card-list.scss b/src/layouts/_card-list.scss index c05b798..f2a6ff5 100644 --- a/src/layouts/_card-list.scss +++ b/src/layouts/_card-list.scss | |||
| @@ -1,44 +1,39 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:include-media/dist/include-media" as media; | 2 | @use 'pkg:include-media/dist/include-media' as media; |
| 3 | @use "pkg:iro-sass/bem"; | 3 | @use 'pkg:iro-sass/src/bem'; |
| 4 | @use "pkg:iro-sass/props"; | 4 | @use 'pkg:iro-sass/src/props'; |
| 5 | @use "../props" as *; | 5 | @use '../props' as *; |
| 6 | 6 | ||
| 7 | @use "../objects/card.vars" as card; | 7 | @use '../objects/card.vars' as card; |
| 8 | 8 | ||
| 9 | @forward "card-list.vars"; | 9 | @forward 'card-list.vars'; |
| 10 | @use "card-list.vars" as vars; | 10 | @use 'card-list.vars' as vars; |
| 11 | 11 | ||
| 12 | @mixin styles { | 12 | @mixin styles { |
| 13 | @include materialize-at-root(meta.module-variables("vars")); | 13 | @include materialize-at-root(meta.module-variables('vars')); |
| 14 | 14 | ||
| 15 | @include bem.layout("card-list") { | 15 | @include bem.layout('card-list') { |
| 16 | display: flex; | 16 | display: flex; |
| 17 | flex-direction: column; | 17 | flex-direction: column; |
| 18 | gap: props.get(vars.$row-gap); | 18 | gap: props.get(vars.$row-gap); |
| 19 | 19 | ||
| 20 | @include bem.modifier("merge") { | 20 | @include bem.modifier('merge') { |
| 21 | position: relative; | 21 | position: relative; |
| 22 | gap: 0; | 22 | gap: 0; |
| 23 | border-radius: props.get(card.$rounding); | 23 | border-radius: props.get(card.$rounding); |
| 24 | 24 | ||
| 25 | @include bem.elem("card") { | 25 | @include bem.elem('card') { |
| 26 | border-color: props.get(card.$border-color) props.get(card.$border-color) | 26 | border-color: props.get(card.$border-color) props.get(card.$border-color) props.get(vars.$border-color); |
| 27 | props.get(vars.$border-color); | ||
| 28 | background-clip: content-box; | 27 | background-clip: content-box; |
| 29 | box-shadow: none; | 28 | box-shadow: none; |
| 30 | 29 | ||
| 31 | &:not(:last-child) { | 30 | &:not(:last-child) { |
| 32 | position: relative; | 31 | position: relative; |
| 33 | border-end-start-radius: 0; | 32 | border-end-start-radius: 0; |
| 34 | border-end-end-radius: 0; | 33 | border-end-end-radius: 0; |
| 35 | } | 34 | } |
| 36 | 35 | ||
| 37 | @include bem.multi( | 36 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { |
| 38 | "&:link, &:visited, &:enabled", | ||
| 39 | "modifier" "interactive", | ||
| 40 | "modifier" "collapsible" | ||
| 41 | ) { | ||
| 42 | &:hover, | 37 | &:hover, |
| 43 | &:active, | 38 | &:active, |
| 44 | &:focus-visible { | 39 | &:focus-visible { |
| @@ -51,28 +46,19 @@ | |||
| 51 | } | 46 | } |
| 52 | 47 | ||
| 53 | @include bem.next-twin-elem { | 48 | @include bem.next-twin-elem { |
| 54 | margin-block-start: calc(-1 * props.get(card.$border-width)); | 49 | margin-block-start: calc(-1 * props.get(card.$border-width)); |
| 55 | border-block-start-color: transparent; | 50 | border-block-start-color: transparent; |
| 56 | border-start-start-radius: 0; | 51 | border-start-start-radius: 0; |
| 57 | border-start-end-radius: 0; | 52 | border-start-end-radius: 0; |
| 58 | 53 | ||
| 59 | @include bem.multi( | 54 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { |
| 60 | "&:link, &:visited, &:enabled", | ||
| 61 | "modifier" "interactive", | ||
| 62 | "modifier" "collapsible" | ||
| 63 | ) { | ||
| 64 | &:hover, | 55 | &:hover, |
| 65 | &:active { | 56 | &:active { |
| 66 | border-block-start-color: props.get(card.$hover--border-color); | 57 | border-block-start-color: props.get(card.$hover--border-color); |
| 67 | } | 58 | } |
| 68 | 59 | ||
| 69 | &:focus-visible { | 60 | &:focus-visible { |
| 70 | margin-block-start: calc( | 61 | margin-block-start: calc(-1 * props.get(card.$border-width) - props.get(card.$key-focus--border-width)); |
| 71 | -1 * | ||
| 72 | props.get(card.$border-width) - props.get( | ||
| 73 | card.$key-focus--border-width | ||
| 74 | ) | ||
| 75 | ); | ||
| 76 | } | 62 | } |
| 77 | } | 63 | } |
| 78 | } | 64 | } |
| @@ -81,11 +67,7 @@ | |||
| 81 | border-block-end-color: props.get(card.$border-color); | 67 | border-block-end-color: props.get(card.$border-color); |
| 82 | } | 68 | } |
| 83 | 69 | ||
| 84 | @include bem.multi( | 70 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { |
| 85 | "&:link, &:visited, &:enabled", | ||
| 86 | "modifier" "interactive", | ||
| 87 | "modifier" "collapsible" | ||
| 88 | ) { | ||
| 89 | &:hover, | 71 | &:hover, |
| 90 | &:active { | 72 | &:active { |
| 91 | border-color: props.get(card.$hover--border-color); | 73 | border-color: props.get(card.$hover--border-color); |
| @@ -93,20 +75,17 @@ | |||
| 93 | 75 | ||
| 94 | &:focus-visible { | 76 | &:focus-visible { |
| 95 | border-color: props.get(card.$hover--bg-color); | 77 | border-color: props.get(card.$hover--bg-color); |
| 96 | box-shadow: 0 0 0 | 78 | box-shadow: |
| 97 | calc( | 79 | 0 0 0 |
| 98 | props.get(card.$key-focus--border-width) + | 80 | calc(props.get(card.$key-focus--border-width) + props.get(card.$key-focus--outline-width)) |
| 99 | props.get(card.$key-focus--outline-width) | ||
| 100 | ) | ||
| 101 | props.get(card.$key-focus--outline-color); | 81 | props.get(card.$key-focus--outline-color); |
| 102 | } | 82 | } |
| 103 | } | 83 | } |
| 104 | } | 84 | } |
| 105 | 85 | ||
| 106 | @include bem.modifier("borderless") { | 86 | @include bem.modifier('borderless') { |
| 107 | @include bem.elem("card") { | 87 | @include bem.elem('card') { |
| 108 | border-color: props.get(card.$bg-color) props.get(card.$bg-color) | 88 | border-color: props.get(card.$bg-color) props.get(card.$bg-color) props.get(vars.$border-color); |
| 109 | props.get(vars.$border-color); | ||
| 110 | 89 | ||
| 111 | @include bem.next-twin-elem { | 90 | @include bem.next-twin-elem { |
| 112 | border-block-start-color: transparent; | 91 | border-block-start-color: transparent; |
| @@ -116,11 +95,7 @@ | |||
| 116 | border-block-end-color: props.get(card.$bg-color); | 95 | border-block-end-color: props.get(card.$bg-color); |
| 117 | } | 96 | } |
| 118 | 97 | ||
| 119 | @include bem.multi( | 98 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { |
| 120 | "&:link, &:visited, &:enabled", | ||
| 121 | "modifier" "interactive", | ||
| 122 | "modifier" "collapsible" | ||
| 123 | ) { | ||
| 124 | &:hover, | 99 | &:hover, |
| 125 | &:active { | 100 | &:active { |
| 126 | border-color: props.get(card.$hover--border-color); | 101 | border-color: props.get(card.$hover--border-color); |
| @@ -133,87 +108,84 @@ | |||
| 133 | } | 108 | } |
| 134 | } | 109 | } |
| 135 | 110 | ||
| 136 | @include bem.modifier("shadow") { | 111 | @include bem.modifier('shadow') { |
| 137 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) | 112 | box-shadow: |
| 138 | props.get(vars.$shadow-blur) props.get(vars.$shadow-grow) | 113 | props.get(vars.$shadow-x) |
| 114 | props.get(vars.$shadow-y) | ||
| 115 | props.get(vars.$shadow-blur) | ||
| 116 | props.get(vars.$shadow-grow) | ||
| 139 | props.get(card.$shadow-color); | 117 | props.get(card.$shadow-color); |
| 140 | } | 118 | } |
| 141 | 119 | ||
| 142 | @include bem.modifier("interactive") { | 120 | @include bem.modifier('interactive') { |
| 143 | transition: | 121 | transition: transform .2s, box-shadow .2s; |
| 144 | transform 0.2s, | ||
| 145 | box-shadow 0.2s; | ||
| 146 | 122 | ||
| 147 | &:hover, | 123 | &:hover, |
| 148 | &:active, | 124 | &:active, |
| 149 | &:focus-within { | 125 | &:focus-within { |
| 150 | box-shadow: none; | 126 | box-shadow: none; |
| 151 | transform: translateY(props.get(card.$hover--offset-b)); | 127 | transform: translateY(props.get(card.$hover--offset-b)); |
| 152 | } | 128 | } |
| 153 | } | 129 | } |
| 154 | } | 130 | } |
| 155 | 131 | ||
| 156 | @include bem.modifier("quiet") { | 132 | @include bem.modifier('quiet') { |
| 157 | row-gap: props.get(vars.$quiet--row-gap); | 133 | row-gap: props.get(vars.$quiet--row-gap); |
| 158 | } | 134 | } |
| 159 | 135 | ||
| 160 | @each $mod, $row-gap, $col-gap, $col-width, $quiet--row-gap, | 136 | @each $mod, $row-gap, $col-gap, $col-width, $quiet--row-gap, $breakpoint in vars.$grid-layouts { |
| 161 | $breakpoint in vars.$grid-layouts | ||
| 162 | { | ||
| 163 | @include bem.modifier($mod) { | 137 | @include bem.modifier($mod) { |
| 164 | display: grid; | 138 | display: grid; |
| 165 | grid-template-columns: repeat(auto-fill, minmax(props.get($col-width), 1fr)); | 139 | grid-template-columns: repeat(auto-fill, minmax(props.get($col-width), 1fr)); |
| 166 | gap: props.get($row-gap) props.get($col-gap); | 140 | gap: props.get($row-gap) props.get($col-gap); |
| 167 | 141 | ||
| 168 | @include bem.modifier("quiet") { | 142 | @include bem.modifier('quiet') { |
| 169 | row-gap: props.get($quiet--row-gap); | 143 | row-gap: props.get($quiet--row-gap); |
| 170 | } | 144 | } |
| 171 | 145 | ||
| 172 | @include media.media("<=#{$breakpoint}") { | 146 | @include media.media('<=#{$breakpoint}') { |
| 173 | display: flex; | 147 | display: flex; |
| 174 | } | 148 | } |
| 175 | } | 149 | } |
| 176 | } | 150 | } |
| 177 | 151 | ||
| 178 | @each $mod, $row-gap, $col-gap, $col-width, $quiet--row-gap, | 152 | @each $mod, $row-gap, $col-gap, $col-width, $quiet--row-gap, $breakpoint in vars.$flex-layouts { |
| 179 | $breakpoint in vars.$flex-layouts | ||
| 180 | { | ||
| 181 | @include bem.modifier($mod) { | 153 | @include bem.modifier($mod) { |
| 182 | display: flex; | 154 | display: flex; |
| 183 | flex-flow: row wrap; | 155 | flex-flow: row wrap; |
| 184 | gap: props.get($row-gap) props.get($col-gap); | 156 | gap: props.get($row-gap) props.get($col-gap); |
| 185 | 157 | ||
| 186 | @include bem.modifier("quiet") { | 158 | @include bem.modifier('quiet') { |
| 187 | row-gap: props.get($quiet--row-gap); | 159 | row-gap: props.get($quiet--row-gap); |
| 188 | } | 160 | } |
| 189 | 161 | ||
| 190 | @include bem.elem("card") { | 162 | @include bem.elem('card') { |
| 191 | flex: 0.1 0 auto; | 163 | flex: 0.1 0 auto; |
| 192 | inline-size: props.get($col-width); | 164 | inline-size: props.get($col-width); |
| 193 | } | 165 | } |
| 194 | 166 | ||
| 195 | @include media.media("<=#{$breakpoint}") { | 167 | @include media.media('<=#{$breakpoint}') { |
| 196 | flex-flow: column nowrap; | 168 | flex-flow: column nowrap; |
| 197 | 169 | ||
| 198 | @include bem.elem("card") { | 170 | @include bem.elem('card') { |
| 199 | inline-size: auto; | 171 | inline-size: auto; |
| 200 | } | 172 | } |
| 201 | } | 173 | } |
| 202 | } | 174 | } |
| 203 | } | 175 | } |
| 204 | 176 | ||
| 205 | @include bem.modifier("masonry") { | 177 | @include bem.modifier('masonry') { |
| 206 | display: block; | 178 | display: block; |
| 207 | columns: auto props.get(vars.$masonry--col-width); | 179 | columns: auto props.get(vars.$masonry--col-width); |
| 208 | column-gap: props.get(vars.$masonry--col-gap); | 180 | column-gap: props.get(vars.$masonry--col-gap); |
| 209 | 181 | ||
| 210 | @include bem.elem("card") { | 182 | @include bem.elem('card') { |
| 211 | margin-block-end: props.get(vars.$masonry--row-gap); | 183 | margin-block-end: props.get(vars.$masonry--row-gap); |
| 212 | break-inside: avoid; | 184 | break-inside: avoid; |
| 213 | } | 185 | } |
| 214 | 186 | ||
| 215 | @include bem.modifier("quiet") { | 187 | @include bem.modifier('quiet') { |
| 216 | @include bem.elem("card") { | 188 | @include bem.elem('card') { |
| 217 | margin-block-end: props.get(vars.$masonry--quiet--row-gap); | 189 | margin-block-end: props.get(vars.$masonry--quiet--row-gap); |
| 218 | } | 190 | } |
| 219 | } | 191 | } |
| @@ -222,34 +194,34 @@ | |||
| 222 | @each $mod, $row-gap, $col-gap, $row-height, $quiet--row-gap in vars.$masonry-h-layouts { | 194 | @each $mod, $row-gap, $col-gap, $row-height, $quiet--row-gap in vars.$masonry-h-layouts { |
| 223 | @include bem.modifier($mod) { | 195 | @include bem.modifier($mod) { |
| 224 | flex-flow: row wrap; | 196 | flex-flow: row wrap; |
| 225 | gap: props.get($row-gap) props.get($col-gap); | 197 | gap: props.get($row-gap) props.get($col-gap); |
| 226 | 198 | ||
| 227 | @include bem.modifier("no-flush") { | 199 | @include bem.modifier('no-flush') { |
| 228 | &::after { | 200 | &::after { |
| 229 | display: block; | 201 | display: block; |
| 230 | flex: 1 0 auto; | 202 | flex: 1 0 auto; |
| 231 | inline-size: props.get($row-height); | 203 | inline-size: props.get($row-height); |
| 232 | content: ""; | 204 | content: ''; |
| 233 | } | 205 | } |
| 234 | } | 206 | } |
| 235 | 207 | ||
| 236 | @include bem.elem("card") { | 208 | @include bem.elem('card') { |
| 237 | flex: 1 0 auto; | 209 | flex: 1 0 auto; |
| 238 | max-inline-size: 100%; | 210 | max-inline-size: 100%; |
| 239 | } | 211 | } |
| 240 | 212 | ||
| 241 | @include bem.elem("card-image") { | 213 | @include bem.elem('card-image') { |
| 242 | block-size: props.get($row-height); | 214 | block-size: props.get($row-height); |
| 243 | } | 215 | } |
| 244 | 216 | ||
| 245 | @include bem.modifier("quiet") { | 217 | @include bem.modifier('quiet') { |
| 246 | row-gap: props.get($quiet--row-gap); | 218 | row-gap: props.get($quiet--row-gap); |
| 247 | } | 219 | } |
| 248 | } | 220 | } |
| 249 | } | 221 | } |
| 250 | 222 | ||
| 251 | @include bem.modifier("aspect-5\\/4") { | 223 | @include bem.modifier('aspect-5\\/4') { |
| 252 | @include bem.elem("card-image") { | 224 | @include bem.elem('card-image') { |
| 253 | aspect-ratio: 5 / 4; | 225 | aspect-ratio: 5 / 4; |
| 254 | } | 226 | } |
| 255 | } | 227 | } |
diff --git a/src/layouts/_card-list.vars.scss b/src/layouts/_card-list.vars.scss index ece68f3..fb89b52 100644 --- a/src/layouts/_card-list.vars.scss +++ b/src/layouts/_card-list.vars.scss | |||
| @@ -1,116 +1,61 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | @use "../objects/card" as card; | 3 | @use '../objects/card' as card; |
| 4 | 4 | ||
| 5 | $row-gap: props.def(--l-card-list--row-gap, props.get(core.$size--200)) !default; | 5 | $row-gap: props.def(--l-card-list--row-gap, props.get(core.$size--200)) !default; |
| 6 | $quiet--row-gap: props.def(--l-card-list--quiet--row-gap, props.get(core.$size--800)) !default; | 6 | $quiet--row-gap: props.def(--l-card-list--quiet--row-gap, props.get(core.$size--800)) !default; |
| 7 | 7 | ||
| 8 | $grid--row-gap: props.def(--l-card-list--grid--row-gap, props.get(core.$size--600)) !default; | 8 | $grid--row-gap: props.def(--l-card-list--grid--row-gap, props.get(core.$size--600)) !default; |
| 9 | $grid--col-gap: props.def(--l-card-list--grid--col-gap, props.get(core.$size--600)) !default; | 9 | $grid--col-gap: props.def(--l-card-list--grid--col-gap, props.get(core.$size--600)) !default; |
| 10 | $grid--col-width: props.def(--l-card-list--grid--col-width, props.get(core.$size--3200)) !default; | 10 | $grid--col-width: props.def(--l-card-list--grid--col-width, props.get(core.$size--3200)) !default; |
| 11 | $grid--quiet--row-gap: props.def( | 11 | $grid--quiet--row-gap: props.def(--l-card-list--grid--quiet--row-gap, props.get(core.$size--800)) !default; |
| 12 | --l-card-list--grid--quiet--row-gap, | ||
| 13 | props.get(core.$size--800) | ||
| 14 | ) !default; | ||
| 15 | 12 | ||
| 16 | $grid-sm--row-gap: props.def(--l-card-list--grid-sm--row-gap, props.get(core.$size--200)) !default; | 13 | $grid-sm--row-gap: props.def(--l-card-list--grid-sm--row-gap, props.get(core.$size--200)) !default; |
| 17 | $grid-sm--col-gap: props.def(--l-card-list--grid-sm--col-gap, props.get(core.$size--200)) !default; | 14 | $grid-sm--col-gap: props.def(--l-card-list--grid-sm--col-gap, props.get(core.$size--200)) !default; |
| 18 | $grid-sm--col-width: props.def( | 15 | $grid-sm--col-width: props.def(--l-card-list--grid-sm--col-width, props.get(core.$size--4600)) !default; |
| 19 | --l-card-list--grid-sm--col-width, | 16 | $grid-sm--quiet--row-gap: props.def(--l-card-list--grid-sm--quiet--row-gap, props.get(core.$size--800)) !default; |
| 20 | props.get(core.$size--4600) | ||
| 21 | ) !default; | ||
| 22 | $grid-sm--quiet--row-gap: props.def( | ||
| 23 | --l-card-list--grid-sm--quiet--row-gap, | ||
| 24 | props.get(core.$size--800) | ||
| 25 | ) !default; | ||
| 26 | 17 | ||
| 27 | $grid-xs--row-gap: props.def(--l-card-list--grid-xs--row-gap, props.get(core.$size--200)) !default; | 18 | $grid-xs--row-gap: props.def(--l-card-list--grid-xs--row-gap, props.get(core.$size--200)) !default; |
| 28 | $grid-xs--col-gap: props.def(--l-card-list--grid-xs--col-gap, props.get(core.$size--200)) !default; | 19 | $grid-xs--col-gap: props.def(--l-card-list--grid-xs--col-gap, props.get(core.$size--200)) !default; |
| 29 | $grid-xs--col-width: props.def( | 20 | $grid-xs--col-width: props.def(--l-card-list--grid-xs--col-width, props.get(core.$size--1600)) !default; |
| 30 | --l-card-list--grid-xs--col-width, | 21 | $grid-xs--quiet--row-gap: props.def(--l-card-list--grid-xs--quiet--row-gap, props.get(core.$size--800)) !default; |
| 31 | props.get(core.$size--1600) | ||
| 32 | ) !default; | ||
| 33 | $grid-xs--quiet--row-gap: props.def( | ||
| 34 | --l-card-list--grid-xs--quiet--row-gap, | ||
| 35 | props.get(core.$size--800) | ||
| 36 | ) !default; | ||
| 37 | 22 | ||
| 38 | $grid-layouts: ( | 23 | $grid-layouts: ( |
| 39 | "grid" $grid--row-gap $grid--col-gap $grid--col-width $grid--quiet--row-gap sm, | 24 | 'grid' $grid--row-gap $grid--col-gap $grid--col-width $grid--quiet--row-gap sm, |
| 40 | "grid-sm" $grid-sm--row-gap $grid-sm--col-gap $grid-sm--col-width $grid-sm--quiet--row-gap sm, | 25 | 'grid-sm' $grid-sm--row-gap $grid-sm--col-gap $grid-sm--col-width $grid-sm--quiet--row-gap sm, |
| 41 | "grid-xs" $grid-xs--row-gap $grid-xs--col-gap $grid-xs--col-width $grid-xs--quiet--row-gap xs | 26 | 'grid-xs' $grid-xs--row-gap $grid-xs--col-gap $grid-xs--col-width $grid-xs--quiet--row-gap xs, |
| 42 | ) !default; | 27 | ) !default; |
| 43 | 28 | ||
| 44 | $flex-layouts: ( | 29 | $flex-layouts: ( |
| 45 | "flex" $grid--row-gap $grid--col-gap $grid--col-width $grid--quiet--row-gap sm, | 30 | 'flex' $grid--row-gap $grid--col-gap $grid--col-width $grid--quiet--row-gap sm, |
| 46 | "flex-sm" $grid-sm--row-gap $grid-sm--col-gap $grid-sm--col-width $grid-sm--quiet--row-gap sm, | 31 | 'flex-sm' $grid-sm--row-gap $grid-sm--col-gap $grid-sm--col-width $grid-sm--quiet--row-gap sm, |
| 47 | "flex-xs" $grid-xs--row-gap $grid-xs--col-gap $grid-xs--col-width $grid-xs--quiet--row-gap xs | 32 | 'flex-xs' $grid-xs--row-gap $grid-xs--col-gap $grid-xs--col-width $grid-xs--quiet--row-gap xs, |
| 48 | ) !default; | 33 | ) !default; |
| 49 | 34 | ||
| 50 | $masonry-h--row-gap: props.def( | 35 | $masonry-h--row-gap: props.def(--l-card-list--masonry-h--row-gap, props.get(core.$size--400)) !default; |
| 51 | --l-card-list--masonry-h--row-gap, | 36 | $masonry-h--col-gap: props.def(--l-card-list--masonry-h--col-gap, props.get(core.$size--400)) !default; |
| 52 | props.get(core.$size--400) | 37 | $masonry-h--row-height: props.def(--l-card-list--masonry-h--row-height, props.get(core.$size--3200)) !default; |
| 53 | ) !default; | 38 | $masonry-h--quiet--row-gap: props.def(--l-card-list--masonry-h--quiet--row-gap, props.get(core.$size--800)) !default; |
| 54 | $masonry-h--col-gap: props.def( | ||
| 55 | --l-card-list--masonry-h--col-gap, | ||
| 56 | props.get(core.$size--400) | ||
| 57 | ) !default; | ||
| 58 | $masonry-h--row-height: props.def( | ||
| 59 | --l-card-list--masonry-h--row-height, | ||
| 60 | props.get(core.$size--3200) | ||
| 61 | ) !default; | ||
| 62 | $masonry-h--quiet--row-gap: props.def( | ||
| 63 | --l-card-list--masonry-h--quiet--row-gap, | ||
| 64 | props.get(core.$size--800) | ||
| 65 | ) !default; | ||
| 66 | 39 | ||
| 67 | $masonry-h-sm--row-gap: props.def( | 40 | $masonry-h-sm--row-gap: props.def(--l-card-list--masonry-h-sm--row-gap, props.get(core.$size--400)) !default; |
| 68 | --l-card-list--masonry-h-sm--row-gap, | 41 | $masonry-h-sm--col-gap: props.def(--l-card-list--masonry-h-sm--col-gap, props.get(core.$size--400)) !default; |
| 69 | props.get(core.$size--400) | 42 | $masonry-h-sm--row-height: props.def(--l-card-list--masonry-h-sm--row-height, props.get(core.$size--2600)) !default; |
| 70 | ) !default; | 43 | $masonry-h-sm--quiet--row-gap: props.def(--l-card-list--masonry-h-sm--quiet--row-gap, props.get(core.$size--800)) !default; |
| 71 | $masonry-h-sm--col-gap: props.def( | ||
| 72 | --l-card-list--masonry-h-sm--col-gap, | ||
| 73 | props.get(core.$size--400) | ||
| 74 | ) !default; | ||
| 75 | $masonry-h-sm--row-height: props.def( | ||
| 76 | --l-card-list--masonry-h-sm--row-height, | ||
| 77 | props.get(core.$size--2600) | ||
| 78 | ) !default; | ||
| 79 | $masonry-h-sm--quiet--row-gap: props.def( | ||
| 80 | --l-card-list--masonry-h-sm--quiet--row-gap, | ||
| 81 | props.get(core.$size--800) | ||
| 82 | ) !default; | ||
| 83 | 44 | ||
| 84 | $masonry-h-layouts: ( | 45 | $masonry-h-layouts: ( |
| 85 | "masonry-h" $masonry-h--row-gap $masonry-h--col-gap $masonry-h--row-height | 46 | 'masonry-h' $masonry-h--row-gap $masonry-h--col-gap $masonry-h--row-height $masonry-h--quiet--row-gap, |
| 86 | $masonry-h--quiet--row-gap, | 47 | 'masonry-h-sm' $masonry-h-sm--row-gap $masonry-h-sm--col-gap $masonry-h-sm--row-height $masonry-h-sm--quiet--row-gap, |
| 87 | "masonry-h-sm" $masonry-h-sm--row-gap $masonry-h-sm--col-gap $masonry-h-sm--row-height | ||
| 88 | $masonry-h-sm--quiet--row-gap | ||
| 89 | ) !default; | 48 | ) !default; |
| 90 | 49 | ||
| 91 | $masonry--row-gap: props.def(--l-card-list--masonry--row-gap, props.get(core.$size--400)) !default; | 50 | $masonry--row-gap: props.def(--l-card-list--masonry--row-gap, props.get(core.$size--400)) !default; |
| 92 | $masonry--col-gap: props.def(--l-card-list--masonry--col-gap, props.get(core.$size--400)) !default; | 51 | $masonry--col-gap: props.def(--l-card-list--masonry--col-gap, props.get(core.$size--400)) !default; |
| 93 | $masonry--col-width: props.def( | 52 | $masonry--col-width: props.def(--l-card-list--masonry--col-width, props.get(core.$size--3200)) !default; |
| 94 | --l-card-list--masonry--col-width, | 53 | $masonry--quiet--row-gap: props.def(--l-card-list--masonry--quiet--row-gap, props.get(core.$size--800)) !default; |
| 95 | props.get(core.$size--3200) | ||
| 96 | ) !default; | ||
| 97 | $masonry--quiet--row-gap: props.def( | ||
| 98 | --l-card-list--masonry--quiet--row-gap, | ||
| 99 | props.get(core.$size--800) | ||
| 100 | ) !default; | ||
| 101 | 54 | ||
| 102 | $shadow-x: props.def(--l-card-list--shadow-x, props.get(card.$shadow-x)) !default; | 55 | $shadow-x: props.def(--l-card-list--shadow-x, props.get(card.$shadow-x)) !default; |
| 103 | $shadow-y: props.def(--l-card-list--shadow-y, props.get(card.$shadow-y)) !default; | 56 | $shadow-y: props.def(--l-card-list--shadow-y, props.get(card.$shadow-y)) !default; |
| 104 | $shadow-blur: props.def(--l-card-list--shadow-blur, props.get(card.$shadow-blur)) !default; | 57 | $shadow-blur: props.def(--l-card-list--shadow-blur, props.get(card.$shadow-blur)) !default; |
| 105 | $shadow-grow: props.def(--l-card-list--shadow-grow, props.get(card.$shadow-grow)) !default; | 58 | $shadow-grow: props.def(--l-card-list--shadow-grow, props.get(card.$shadow-grow)) !default; |
| 106 | 59 | ||
| 107 | $border-color: props.def( | 60 | $border-color: props.def(--l-card-list--border-color, props.get(card.$border-color), 'color') !default; |
| 108 | --l-card-list--border-color, | 61 | $border-color-dark: props.def(--l-card-list--border-color, props.get(core.$theme, --border-mute), 'dark') !default; |
| 109 | props.get(card.$border-color), | ||
| 110 | "color" | ||
| 111 | ) !default; | ||
| 112 | $border-color-dark: props.def( | ||
| 113 | --l-card-list--border-color, | ||
| 114 | props.get(core.$theme, --border-mute), | ||
| 115 | "dark" | ||
| 116 | ) !default; | ||
diff --git a/src/layouts/_container.scss b/src/layouts/_container.scss index 7b3dc3f..46ded23 100644 --- a/src/layouts/_container.scss +++ b/src/layouts/_container.scss | |||
| @@ -1,37 +1,37 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "container.vars"; | 6 | @forward 'container.vars'; |
| 7 | @use "container.vars" as vars; | 7 | @use 'container.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables("vars")); | 10 | @include materialize-at-root(meta.module-variables('vars')); |
| 11 | 11 | ||
| 12 | @include bem.layout("container") { | 12 | @include bem.layout('container') { |
| 13 | @each $mod, $size in vars.$fixed-sizes { | 13 | @each $mod, $size in vars.$fixed-sizes { |
| 14 | @include bem.modifier($mod) { | 14 | @include bem.modifier($mod) { |
| 15 | max-inline-size: props.get($size); | 15 | max-inline-size: props.get($size); |
| 16 | margin-inline: auto; | 16 | margin-inline: auto; |
| 17 | } | 17 | } |
| 18 | } | 18 | } |
| 19 | 19 | ||
| 20 | @include bem.modifier("pad-i") { | 20 | @include bem.modifier('pad-i') { |
| 21 | padding-inline: props.get(vars.$pad-i); | 21 | padding-inline: props.get(vars.$pad-i); |
| 22 | } | 22 | } |
| 23 | 23 | ||
| 24 | @include bem.modifier("pad-b") { | 24 | @include bem.modifier('pad-b') { |
| 25 | padding-block: props.get(vars.$pad-b); | 25 | padding-block: props.get(vars.$pad-b); |
| 26 | } | 26 | } |
| 27 | 27 | ||
| 28 | @each $mod, $pad-i, $pad-b in vars.$sizes { | 28 | @each $mod, $pad-i, $pad-b in vars.$sizes { |
| 29 | @include bem.modifier($mod) { | 29 | @include bem.modifier($mod) { |
| 30 | @include bem.modifier("pad-i") { | 30 | @include bem.modifier('pad-i') { |
| 31 | padding-inline: props.get($pad-i); | 31 | padding-inline: props.get($pad-i); |
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | @include bem.modifier("pad-b") { | 34 | @include bem.modifier('pad-b') { |
| 35 | padding-block: props.get($pad-b); | 35 | padding-block: props.get($pad-b); |
| 36 | } | 36 | } |
| 37 | } | 37 | } |
diff --git a/src/layouts/_container.vars.scss b/src/layouts/_container.vars.scss index 09ef165..094046f 100644 --- a/src/layouts/_container.vars.scss +++ b/src/layouts/_container.vars.scss | |||
| @@ -1,36 +1,39 @@ | |||
| 1 | @use "pkg:iro-sass/functions" as fn; | 1 | @use 'pkg:iro-sass/src/functions' as fn; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../core.vars" as core; | 3 | @use '../core.vars' as core; |
| 4 | 4 | ||
| 5 | $fixed-200: props.def(--l-container--fixed-200, fn.px-to-rem(1300px)) !default; | 5 | $fixed-200: props.def(--l-container--fixed-200, fn.px-to-rem(1300px)) !default; |
| 6 | $fixed-150: props.def(--l-container--fixed-150, fn.px-to-rem(860px)) !default; | 6 | $fixed-150: props.def(--l-container--fixed-150, fn.px-to-rem(860px)) !default; |
| 7 | $fixed: props.def(--l-container--fixed, fn.px-to-rem(680px)) !default; | 7 | $fixed: props.def(--l-container--fixed, fn.px-to-rem(680px)) !default; |
| 8 | 8 | ||
| 9 | $fixed-sizes: ( | 9 | $fixed-sizes: ( |
| 10 | "fixed-200": $fixed-200, | 10 | 'fixed-200': $fixed-200, |
| 11 | "fixed-150": $fixed-150, | 11 | 'fixed-150': $fixed-150, |
| 12 | "fixed": $fixed, | 12 | 'fixed': $fixed |
| 13 | ) !default; | 13 | ) !default; |
| 14 | 14 | ||
| 15 | $pad-i: props.def(--l-container--pad-i, props.get(core.$size--600)) !default; | 15 | $pad-i: props.def(--l-container--pad-i, props.get(core.$size--600)) !default; |
| 16 | $pad-b: props.def(--l-container--pad-b, props.get(core.$size--800)) !default; | 16 | $pad-b: props.def(--l-container--pad-b, props.get(core.$size--800)) !default; |
| 17 | 17 | ||
| 18 | $pad-i--md: props.def(--l-container--pad-i, props.get(core.$size--400), "md") !default; | 18 | $pad-i--md: props.def(--l-container--pad-i, props.get(core.$size--400), 'md') !default; |
| 19 | $pad-b--md: props.def(--l-container--pad-b, props.get(core.$size--700), "md") !default; | 19 | $pad-b--md: props.def(--l-container--pad-b, props.get(core.$size--700), 'md') !default; |
| 20 | 20 | ||
| 21 | $pad-i--sm: props.def(--l-container--pad-i, props.get(core.$size--200), "sm") !default; | 21 | $pad-i--sm: props.def(--l-container--pad-i, props.get(core.$size--200), 'sm') !default; |
| 22 | $pad-b--sm: props.def(--l-container--pad-b, props.get(core.$size--600), "sm") !default; | 22 | $pad-b--sm: props.def(--l-container--pad-b, props.get(core.$size--600), 'sm') !default; |
| 23 | 23 | ||
| 24 | $pad-i--xs: props.def(--l-container--pad-i, props.get(core.$size--150), "xs") !default; | 24 | $pad-i--xs: props.def(--l-container--pad-i, props.get(core.$size--150), 'xs') !default; |
| 25 | $pad-b--xs: props.def(--l-container--pad-b, props.get(core.$size--450), "xs") !default; | 25 | $pad-b--xs: props.def(--l-container--pad-b, props.get(core.$size--450), 'xs') !default; |
| 26 | 26 | ||
| 27 | $sm--pad-i: props.def(--l-container--sm--pad-i, props.get(core.$size--300)) !default; | 27 | $sm--pad-i: props.def(--l-container--sm--pad-i, props.get(core.$size--300)) !default; |
| 28 | $sm--pad-b: props.def(--l-container--sm--pad-b, props.get(core.$size--800)) !default; | 28 | $sm--pad-b: props.def(--l-container--sm--pad-b, props.get(core.$size--800)) !default; |
| 29 | 29 | ||
| 30 | $sm--pad-i--sm: props.def(--l-container--sm--pad-i, props.get(core.$size--200), "sm") !default; | 30 | $sm--pad-i--sm: props.def(--l-container--sm--pad-i, props.get(core.$size--200), 'sm') !default; |
| 31 | $sm--pad-b--sm: props.def(--l-container--sm--pad-b, props.get(core.$size--600), "sm") !default; | 31 | $sm--pad-b--sm: props.def(--l-container--sm--pad-b, props.get(core.$size--600), 'sm') !default; |
| 32 | 32 | ||
| 33 | $sm--pad-i--xs: props.def(--l-container--sm--pad-i, props.get(core.$size--150), "xs") !default; | 33 | $sm--pad-i--xs: props.def(--l-container--sm--pad-i, props.get(core.$size--150), 'xs') !default; |
| 34 | $sm--pad-b--xs: props.def(--l-container--sm--pad-b, props.get(core.$size--450), "xs") !default; | 34 | $sm--pad-b--xs: props.def(--l-container--sm--pad-b, props.get(core.$size--450), 'xs') !default; |
| 35 | 35 | ||
| 36 | $sizes: ("sm" $sm--pad-i $sm--pad-b, "md" $sm--pad-i $sm--pad-b) !default; | 36 | $sizes: ( |
| 37 | 'sm' $sm--pad-i $sm--pad-b, | ||
| 38 | 'md' $sm--pad-i $sm--pad-b, | ||
| 39 | ) !default; | ||
diff --git a/src/layouts/_flex.scss b/src/layouts/_flex.scss index 70d29f9..ea0b268 100644 --- a/src/layouts/_flex.scss +++ b/src/layouts/_flex.scss | |||
| @@ -1,18 +1,18 @@ | |||
| 1 | @use "pkg:iro-sass/bem"; | 1 | @use 'pkg:iro-sass/src/bem'; |
| 2 | 2 | ||
| 3 | @mixin styles { | 3 | @mixin styles { |
| 4 | @include bem.layout("flex") { | 4 | @include bem.layout('flex') { |
| 5 | display: flex; | 5 | display: flex; |
| 6 | 6 | ||
| 7 | @include bem.modifier("column") { | 7 | @include bem.modifier('column') { |
| 8 | flex-direction: column; | 8 | flex-direction: column; |
| 9 | } | 9 | } |
| 10 | 10 | ||
| 11 | @include bem.modifier("wrap") { | 11 | @include bem.modifier('wrap') { |
| 12 | flex-wrap: wrap; | 12 | flex-wrap: wrap; |
| 13 | } | 13 | } |
| 14 | 14 | ||
| 15 | @include bem.modifier("wrap-reverse") { | 15 | @include bem.modifier('wrap-reverse') { |
| 16 | flex-wrap: wrap-reverse; | 16 | flex-wrap: wrap-reverse; |
| 17 | } | 17 | } |
| 18 | } | 18 | } |
diff --git a/src/layouts/_form.scss b/src/layouts/_form.scss index f71e469..f094cbc 100644 --- a/src/layouts/_form.scss +++ b/src/layouts/_form.scss | |||
| @@ -1,57 +1,57 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "form.vars"; | 6 | @forward 'form.vars'; |
| 7 | @use "form.vars" as vars; | 7 | @use 'form.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables("vars")); | 10 | @include materialize-at-root(meta.module-variables('vars')); |
| 11 | 11 | ||
| 12 | @include bem.layout("form") { | 12 | @include bem.layout('form') { |
| 13 | display: flex; | 13 | display: flex; |
| 14 | flex-direction: column; | 14 | flex-direction: column; |
| 15 | gap: props.get(vars.$item-spacing-b) props.get(vars.$label-spacing-i); | 15 | gap: props.get(vars.$item-spacing-b) props.get(vars.$label-spacing-i); |
| 16 | 16 | ||
| 17 | @include bem.elem("item") { | 17 | @include bem.elem('item') { |
| 18 | display: block; | 18 | display: block; |
| 19 | } | 19 | } |
| 20 | 20 | ||
| 21 | @include bem.elem("item-content") { | 21 | @include bem.elem('item-content') { |
| 22 | @include bem.modifier("align-start") { | 22 | @include bem.modifier('align-start') { |
| 23 | align-self: start; | 23 | align-self: start; |
| 24 | } | 24 | } |
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | @include bem.modifier("row") { | 27 | @include bem.modifier('row') { |
| 28 | flex-direction: row; | 28 | flex-direction: row; |
| 29 | align-items: flex-end; | 29 | align-items: flex-end; |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | @include bem.modifier("labels-start", "labels-end") { | 32 | @include bem.modifier('labels-start', 'labels-end') { |
| 33 | display: grid; | 33 | display: grid; |
| 34 | grid-template-rows: auto; | 34 | grid-template-rows: auto; |
| 35 | grid-template-columns: auto 1fr; | 35 | grid-template-columns: auto 1fr; |
| 36 | align-items: baseline; | 36 | align-items: baseline; |
| 37 | 37 | ||
| 38 | @include bem.elem("item") { | 38 | @include bem.elem('item') { |
| 39 | display: contents; | 39 | display: contents; |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | @include bem.elem("item-label") { | 42 | @include bem.elem('item-label') { |
| 43 | grid-column: 1; | 43 | grid-column: 1; |
| 44 | padding-inline-end: 0; | 44 | padding-inline-end: 0; |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | @include bem.elem("item-content") { | 47 | @include bem.elem('item-content') { |
| 48 | grid-column: 2; | 48 | grid-column: 2; |
| 49 | margin-block-start: 0; | 49 | margin-block-start: 0; |
| 50 | } | 50 | } |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | @include bem.modifier("labels-end") { | 53 | @include bem.modifier('labels-end') { |
| 54 | @include bem.elem("item-label") { | 54 | @include bem.elem('item-label') { |
| 55 | text-align: end; | 55 | text-align: end; |
| 56 | } | 56 | } |
| 57 | } | 57 | } |
diff --git a/src/layouts/_form.vars.scss b/src/layouts/_form.vars.scss index 68cb23a..52670cc 100644 --- a/src/layouts/_form.vars.scss +++ b/src/layouts/_form.vars.scss | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | 3 | ||
| 4 | $item-spacing-b: props.def(--l-form--item-spacing-b, props.get(core.$size--325)) !default; | 4 | $item-spacing-b: props.def(--l-form--item-spacing-b, props.get(core.$size--325)) !default; |
| 5 | $label-spacing-i: props.def(--l-form--label-spacing-i, props.get(core.$size--325)) !default; | 5 | $label-spacing-i: props.def(--l-form--label-spacing-i, props.get(core.$size--325)) !default; |
diff --git a/src/layouts/_hlist.scss b/src/layouts/_hlist.scss index 00787db..32b3097 100644 --- a/src/layouts/_hlist.scss +++ b/src/layouts/_hlist.scss | |||
| @@ -1,30 +1,30 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "hlist.vars"; | 6 | @forward 'hlist.vars'; |
| 7 | @use "hlist.vars" as vars; | 7 | @use 'hlist.vars' as vars; |
| 8 | @use "../objects/button.vars" as button; | 8 | @use '../objects/button.vars' as button; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables("vars")); | 11 | @include materialize-at-root(meta.module-variables('vars')); |
| 12 | 12 | ||
| 13 | @include bem.layout("hlist") { | 13 | @include bem.layout('hlist') { |
| 14 | display: inline-flex; | 14 | display: inline-flex; |
| 15 | flex-wrap: wrap; | 15 | flex-wrap: wrap; |
| 16 | gap: props.get(vars.$gap); | 16 | gap: props.get(vars.$gap); |
| 17 | 17 | ||
| 18 | @each $mod, $size in vars.$sizes { | 18 | @each $mod, $size in vars.$sizes { |
| 19 | @include bem.modifier($mod) { | 19 | @include bem.modifier($mod) { |
| 20 | gap: props.get($size); | 20 | gap: props.get($size); |
| 21 | 21 | ||
| 22 | @include bem.modifier("separated") { | 22 | @include bem.modifier('separated') { |
| 23 | @include bem.elem("item") { | 23 | @include bem.elem('item') { |
| 24 | @include bem.next-twin-elem { | 24 | @include bem.next-twin-elem { |
| 25 | &::before { | 25 | &::before { |
| 26 | content: "·"; | 26 | content: '·'; |
| 27 | margin-inline: calc(0.65 * props.get($size)); | 27 | margin-inline: calc(.65 * props.get($size)); |
| 28 | } | 28 | } |
| 29 | } | 29 | } |
| 30 | } | 30 | } |
| @@ -32,51 +32,40 @@ | |||
| 32 | } | 32 | } |
| 33 | } | 33 | } |
| 34 | 34 | ||
| 35 | @include bem.modifier("separated") { | 35 | @include bem.modifier('separated') { |
| 36 | gap: 0; | 36 | gap: 0; |
| 37 | 37 | ||
| 38 | @include bem.elem("item") { | 38 | @include bem.elem('item') { |
| 39 | @include bem.next-twin-elem { | 39 | @include bem.next-twin-elem { |
| 40 | &::before { | 40 | &::before { |
| 41 | content: "·"; | 41 | content: '·'; |
| 42 | margin-inline: calc(0.65 * props.get(vars.$gap)); | 42 | margin-inline: calc(.65 * props.get(vars.$gap)); |
| 43 | } | 43 | } |
| 44 | } | 44 | } |
| 45 | } | 45 | } |
| 46 | } | 46 | } |
| 47 | 47 | ||
| 48 | @include bem.modifier("buttons") { | 48 | @include bem.modifier('buttons') { |
| 49 | margin-inline: calc(-1 * props.get(button.$pad-i) - props.get(button.$border-width)); | 49 | margin-inline: calc(-1 * props.get(button.$pad-i) - props.get(button.$border-width)); |
| 50 | 50 | ||
| 51 | @include bem.modifier("pill") { | 51 | @include bem.modifier('pill') { |
| 52 | margin-inline: calc( | 52 | margin-inline: calc(-1 * props.get(button.$pad-i-pill) - props.get(button.$border-width)); |
| 53 | -1 * props.get(button.$pad-i-pill) - props.get(button.$border-width) | ||
| 54 | ); | ||
| 55 | } | 53 | } |
| 56 | 54 | ||
| 57 | @include bem.modifier("icon") { | 55 | @include bem.modifier('icon') { |
| 58 | margin-inline: calc( | 56 | margin-inline: calc(-1 * props.get(button.$pad-b) - props.get(button.$border-width) - .5em * (props.get(button.$line-height) - 1)); |
| 59 | -1 * props.get(button.$pad-b) - props.get(button.$border-width) - 0.5em * | ||
| 60 | (props.get(button.$line-height) - 1) | ||
| 61 | ); | ||
| 62 | } | 57 | } |
| 63 | 58 | ||
| 64 | @each $mod, $pad-i, $pad-i-label, $pad-i-pill, $pad-b, $font-size in button.$fixed-sizes | 59 | @each $mod, $pad-i, $pad-i-label, $pad-i-pill, $pad-b, $font-size in button.$fixed-sizes { |
| 65 | { | 60 | @include bem.modifier('buttons-#{$mod}') { |
| 66 | @include bem.modifier("buttons-#{$mod}") { | ||
| 67 | margin-inline: calc(-1 * props.get($pad-i) - props.get(button.$border-width)); | 61 | margin-inline: calc(-1 * props.get($pad-i) - props.get(button.$border-width)); |
| 68 | 62 | ||
| 69 | @include bem.modifier("pill") { | 63 | @include bem.modifier('pill') { |
| 70 | margin-inline: calc( | 64 | margin-inline: calc(-1 * props.get($pad-i-pill) - props.get(button.$border-width)); |
| 71 | -1 * props.get($pad-i-pill) - props.get(button.$border-width) | ||
| 72 | ); | ||
| 73 | } | 65 | } |
| 74 | 66 | ||
| 75 | @include bem.modifier("icon") { | 67 | @include bem.modifier('icon') { |
| 76 | margin-inline: calc( | 68 | margin-inline: calc(-1 * props.get($pad-b) - props.get(button.$border-width) - .5em * (props.get(button.$line-height) - 1)); |
| 77 | -1 * props.get($pad-b) - props.get(button.$border-width) - 0.5em * | ||
| 78 | (props.get(button.$line-height) - 1) | ||
| 79 | ); | ||
| 80 | } | 69 | } |
| 81 | } | 70 | } |
| 82 | } | 71 | } |
diff --git a/src/layouts/_hlist.vars.scss b/src/layouts/_hlist.vars.scss index 557cfae..2d99057 100644 --- a/src/layouts/_hlist.vars.scss +++ b/src/layouts/_hlist.vars.scss | |||
| @@ -1,16 +1,16 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | 3 | ||
| 4 | $gap: props.def(--l-hlist--gap, props.get(core.$size--150)) !default; | 4 | $gap: props.def(--l-hlist--gap, props.get(core.$size--150)) !default; |
| 5 | 5 | ||
| 6 | $gapless: props.def(--l-hlist--gapless, 0) !default; | 6 | $gapless: props.def(--l-hlist--gapless, 0) !default; |
| 7 | $sm: props.def(--l-hlist--sm, props.get(core.$size--100)) !default; | 7 | $sm: props.def(--l-hlist--sm, props.get(core.$size--100)) !default; |
| 8 | $lg: props.def(--l-hlist--lg, props.get(core.$size--300)) !default; | 8 | $lg: props.def(--l-hlist--lg, props.get(core.$size--300)) !default; |
| 9 | $xl: props.def(--l-hlist--xl, props.get(core.$size--450)) !default; | 9 | $xl: props.def(--l-hlist--xl, props.get(core.$size--450)) !default; |
| 10 | 10 | ||
| 11 | $sizes: ( | 11 | $sizes: ( |
| 12 | "gapless": $gapless, | 12 | 'gapless': $gapless, |
| 13 | "sm": $sm, | 13 | 'sm': $sm, |
| 14 | "lg": $lg, | 14 | 'lg': $lg, |
| 15 | "xl": $xl, | 15 | 'xl': $xl, |
| 16 | ) !default; | 16 | ) !default; |
diff --git a/src/layouts/_media.scss b/src/layouts/_media.scss index b6732bf..4492ea9 100644 --- a/src/layouts/_media.scss +++ b/src/layouts/_media.scss | |||
| @@ -1,17 +1,17 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "media.vars"; | 6 | @forward 'media.vars'; |
| 7 | @use "media.vars" as vars; | 7 | @use 'media.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables("vars")); | 10 | @include materialize-at-root(meta.module-variables('vars')); |
| 11 | 11 | ||
| 12 | @include bem.layout("media") { | 12 | @include bem.layout('media') { |
| 13 | display: flex; | 13 | display: flex; |
| 14 | gap: props.get(vars.$gap); | 14 | gap: props.get(vars.$gap); |
| 15 | align-items: center; | 15 | align-items: center; |
| 16 | line-height: 1.4; | 16 | line-height: 1.4; |
| 17 | 17 | ||
| @@ -21,19 +21,19 @@ | |||
| 21 | } | 21 | } |
| 22 | } | 22 | } |
| 23 | 23 | ||
| 24 | @include bem.modifier("wrap") { | 24 | @include bem.modifier('wrap') { |
| 25 | flex-wrap: wrap; | 25 | flex-wrap: wrap; |
| 26 | } | 26 | } |
| 27 | 27 | ||
| 28 | @include bem.elem("block") { | 28 | @include bem.elem('block') { |
| 29 | flex: 0 0 auto; | 29 | flex: 0 0 auto; |
| 30 | 30 | ||
| 31 | @include bem.modifier("shrink", "main") { | 31 | @include bem.modifier('shrink', 'main') { |
| 32 | flex-shrink: 1; | 32 | flex-shrink: 1; |
| 33 | min-inline-size: 0; | 33 | min-inline-size: 0; |
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | @include bem.modifier("main") { | 36 | @include bem.modifier('main') { |
| 37 | inline-size: 100%; | 37 | inline-size: 100%; |
| 38 | } | 38 | } |
| 39 | } | 39 | } |
diff --git a/src/layouts/_media.vars.scss b/src/layouts/_media.vars.scss index f24ea2a..78e157f 100644 --- a/src/layouts/_media.vars.scss +++ b/src/layouts/_media.vars.scss | |||
| @@ -1,16 +1,16 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | 3 | ||
| 4 | $gap: props.def(--l-media--gap, props.get(core.$size--150)) !default; | 4 | $gap: props.def(--l-media--gap, props.get(core.$size--150)) !default; |
| 5 | 5 | ||
| 6 | $gapless: props.def(--l-media--gapless, 0) !default; | 6 | $gapless: props.def(--l-media--gapless, 0) !default; |
| 7 | $sm: props.def(--l-media--sm, props.get(core.$size--100)) !default; | 7 | $sm: props.def(--l-media--sm, props.get(core.$size--100)) !default; |
| 8 | $lg: props.def(--l-media--lg, props.get(core.$size--300)) !default; | 8 | $lg: props.def(--l-media--lg, props.get(core.$size--300)) !default; |
| 9 | $xl: props.def(--l-media--xl, props.get(core.$size--450)) !default; | 9 | $xl: props.def(--l-media--xl, props.get(core.$size--450)) !default; |
| 10 | 10 | ||
| 11 | $sizes: ( | 11 | $sizes: ( |
| 12 | "gapless": $gapless, | 12 | 'gapless': $gapless, |
| 13 | "sm": $sm, | 13 | 'sm': $sm, |
| 14 | "lg": $lg, | 14 | 'lg': $lg, |
| 15 | "xl": $xl, | 15 | 'xl': $xl, |
| 16 | ) !default; | 16 | ) !default; |
diff --git a/src/layouts/_overflow.scss b/src/layouts/_overflow.scss index 57e2512..ab983b9 100644 --- a/src/layouts/_overflow.scss +++ b/src/layouts/_overflow.scss | |||
| @@ -1,10 +1,10 @@ | |||
| 1 | @use "pkg:iro-sass/bem"; | 1 | @use 'pkg:iro-sass/src/bem'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../core.vars" as core; | 3 | @use '../core.vars' as core; |
| 4 | 4 | ||
| 5 | @mixin styles { | 5 | @mixin styles { |
| 6 | @include bem.layout("overflow") { | 6 | @include bem.layout('overflow') { |
| 7 | overflow: auto; | 7 | overflow: auto; |
| 8 | scrollbar-color: props.get(core.$theme, --text-disabled) transparent; | 8 | scrollbar-color: props.get(core.$theme, --text-disabled) transparent; |
| 9 | } | 9 | } |
| 10 | } | 10 | } |
diff --git a/src/layouts/_split-view.scss b/src/layouts/_split-view.scss index 1bffddd..ea651c7 100644 --- a/src/layouts/_split-view.scss +++ b/src/layouts/_split-view.scss | |||
| @@ -1,110 +1,101 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:include-media/dist/include-media" as media; | 2 | @use 'pkg:include-media/dist/include-media' as media; |
| 3 | @use "pkg:iro-sass/bem"; | 3 | @use 'pkg:iro-sass/src/bem'; |
| 4 | @use "pkg:iro-sass/props"; | 4 | @use 'pkg:iro-sass/src/props'; |
| 5 | @use "../props" as *; | 5 | @use '../props' as *; |
| 6 | 6 | ||
| 7 | @forward "split-view.vars"; | 7 | @forward 'split-view.vars'; |
| 8 | @use "split-view.vars" as vars; | 8 | @use 'split-view.vars' as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables("vars")); | 11 | @include materialize-at-root(meta.module-variables('vars')); |
| 12 | 12 | ||
| 13 | @include bem.layout("split-view") { | 13 | @include bem.layout('split-view') { |
| 14 | display: flex; | 14 | display: flex; |
| 15 | gap: props.get(vars.$col-gap); | 15 | gap: props.get(vars.$col-gap); |
| 16 | align-items: start; | 16 | align-items: start; |
| 17 | 17 | ||
| 18 | @include bem.elem("panel") { | 18 | @include bem.elem('panel') { |
| 19 | flex: 1 1 auto; | 19 | flex: 1 1 auto; |
| 20 | inline-size: 100%; | 20 | inline-size: 100%; |
| 21 | min-inline-size: 0; | 21 | min-inline-size: 0; |
| 22 | 22 | ||
| 23 | &::before { | 23 | &::before { |
| 24 | display: block; | 24 | display: block; |
| 25 | margin-block: -100em 100em; | 25 | margin-block: -100em 100em; |
| 26 | content: ""; | 26 | content: ''; |
| 27 | } | 27 | } |
| 28 | 28 | ||
| 29 | @include bem.modifier("side-25") { | 29 | @include bem.modifier('side-25') { |
| 30 | flex: 0 0 auto; | 30 | flex: 0 0 auto; |
| 31 | inline-size: 25%; | 31 | inline-size: 25%; |
| 32 | } | 32 | } |
| 33 | 33 | ||
| 34 | @include bem.modifier("min-50") { | 34 | @include bem.modifier('min-50') { |
| 35 | min-inline-size: props.get(vars.$panel--min-50); | 35 | min-inline-size: props.get(vars.$panel--min-50); |
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | @include bem.modifier("min-100") { | 38 | @include bem.modifier('min-100') { |
| 39 | min-inline-size: props.get(vars.$panel--min-100); | 39 | min-inline-size: props.get(vars.$panel--min-100); |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | @include bem.modifier("min-200") { | 42 | @include bem.modifier('min-200') { |
| 43 | min-inline-size: props.get(vars.$panel--min-200); | 43 | min-inline-size: props.get(vars.$panel--min-200); |
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | @include bem.modifier("sticky") { | 46 | @include bem.modifier('sticky') { |
| 47 | position: sticky; | 47 | position: sticky; |
| 48 | inset-block-start: props.get(vars.$panel--sticky-offset); | 48 | inset-block-start: props.get(vars.$panel--sticky-offset); |
| 49 | } | 49 | } |
| 50 | } | 50 | } |
| 51 | 51 | ||
| 52 | @include bem.modifier("gapless") { | 52 | @include bem.modifier('gapless') { |
| 53 | gap: props.get(vars.$gapless); | 53 | gap: props.get(vars.$gapless); |
| 54 | 54 | ||
| 55 | @include bem.elem("panel") { | 55 | @include bem.elem('panel') { |
| 56 | @include bem.modifier("min-50") { | 56 | @include bem.modifier('min-50') { |
| 57 | min-inline-size: calc( | 57 | min-inline-size: calc(props.get(vars.$panel--min-50) + props.get(vars.$col-gap) - props.get(vars.$gapless)); |
| 58 | props.get(vars.$panel--min-50) + | ||
| 59 | props.get(vars.$col-gap) - props.get(vars.$gapless) | ||
| 60 | ); | ||
| 61 | } | 58 | } |
| 62 | 59 | ||
| 63 | @include bem.modifier("min-100") { | 60 | @include bem.modifier('min-100') { |
| 64 | min-inline-size: calc( | 61 | min-inline-size: calc(props.get(vars.$panel--min-100) + props.get(vars.$col-gap) - props.get(vars.$gapless)); |
| 65 | props.get(vars.$panel--min-100) + | ||
| 66 | props.get(vars.$col-gap) - props.get(vars.$gapless) | ||
| 67 | ); | ||
| 68 | } | 62 | } |
| 69 | 63 | ||
| 70 | @include bem.modifier("min-200") { | 64 | @include bem.modifier('min-200') { |
| 71 | min-inline-size: calc( | 65 | min-inline-size: calc(props.get(vars.$panel--min-200) + props.get(vars.$col-gap) - props.get(vars.$gapless)); |
| 72 | props.get(vars.$panel--min-200) + | ||
| 73 | props.get(vars.$col-gap) - props.get(vars.$gapless) | ||
| 74 | ); | ||
| 75 | } | 66 | } |
| 76 | } | 67 | } |
| 77 | } | 68 | } |
| 78 | 69 | ||
| 79 | @include bem.elem("content") { | 70 | @include bem.elem('content') { |
| 80 | inline-size: 100%; | 71 | inline-size: 100%; |
| 81 | } | 72 | } |
| 82 | 73 | ||
| 83 | @include media.media("<=md") { | 74 | @include media.media('<=md') { |
| 84 | flex-direction: column; | 75 | flex-direction: column; |
| 85 | gap: props.get(vars.$row-gap); | 76 | gap: props.get(vars.$row-gap); |
| 86 | align-items: stretch; | 77 | align-items: stretch; |
| 87 | 78 | ||
| 88 | @include bem.modifier("gapless") { | 79 | @include bem.modifier('gapless') { |
| 89 | gap: props.get(vars.$gapless); | 80 | gap: props.get(vars.$gapless); |
| 90 | } | 81 | } |
| 91 | 82 | ||
| 92 | @include bem.modifier("wrap-reverse") { | 83 | @include bem.modifier('wrap-reverse') { |
| 93 | flex-direction: column-reverse; | 84 | flex-direction: column-reverse; |
| 94 | } | 85 | } |
| 95 | 86 | ||
| 96 | @include bem.elem("panel") { | 87 | @include bem.elem('panel') { |
| 97 | inline-size: auto; | 88 | inline-size: auto; |
| 98 | 89 | ||
| 99 | @include bem.modifier("side-25") { | 90 | @include bem.modifier('side-25') { |
| 100 | inline-size: auto; | 91 | inline-size: auto; |
| 101 | } | 92 | } |
| 102 | 93 | ||
| 103 | @include bem.modifier("min-50", "min-100", "min-200") { | 94 | @include bem.modifier('min-50', 'min-100', 'min-200') { |
| 104 | min-inline-size: 0; | 95 | min-inline-size: 0; |
| 105 | } | 96 | } |
| 106 | 97 | ||
| 107 | @include bem.modifier("sticky") { | 98 | @include bem.modifier('sticky') { |
| 108 | position: static; | 99 | position: static; |
| 109 | } | 100 | } |
| 110 | } | 101 | } |
diff --git a/src/layouts/_split-view.vars.scss b/src/layouts/_split-view.vars.scss index 9b6dd21..b2944e7 100644 --- a/src/layouts/_split-view.vars.scss +++ b/src/layouts/_split-view.vars.scss | |||
| @@ -1,16 +1,13 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | 3 | ||
| 4 | $col-gap: props.def(--l-split-view--col-gap, props.get(core.$size--800)) !default; | 4 | $col-gap: props.def(--l-split-view--col-gap, props.get(core.$size--800)) !default; |
| 5 | $row-gap: props.def(--l-split-view--row-gap, props.get(core.$size--600)) !default; | 5 | $row-gap: props.def(--l-split-view--row-gap, props.get(core.$size--600)) !default; |
| 6 | 6 | ||
| 7 | $gapless: props.def(--l-split-view--gapless, 0rem) !default; | 7 | $gapless: props.def(--l-split-view--gapless, 0rem) !default; |
| 8 | 8 | ||
| 9 | $panel--min-50: props.def(--l-split-view--panel--min-50, props.get(core.$size--2400)) !default; | 9 | $panel--min-50: props.def(--l-split-view--panel--min-50, props.get(core.$size--2400)) !default; |
| 10 | $panel--min-100: props.def(--l-split-view--panel--min-100, props.get(core.$size--3200)) !default; | 10 | $panel--min-100: props.def(--l-split-view--panel--min-100, props.get(core.$size--3200)) !default; |
| 11 | $panel--min-200: props.def(--l-split-view--panel--min-200, props.get(core.$size--4200)) !default; | 11 | $panel--min-200: props.def(--l-split-view--panel--min-200, props.get(core.$size--4200)) !default; |
| 12 | 12 | ||
| 13 | $panel--sticky-offset: props.def( | 13 | $panel--sticky-offset: props.def(--l-split-view--panel--sticky-offset, props.get(core.$sticky-top-offset)) !default; |
| 14 | --l-split-view--panel--sticky-offset, | ||
| 15 | props.get(core.$sticky-top-offset) | ||
| 16 | ) !default; | ||
diff --git a/src/objects/_alert.scss b/src/objects/_alert.scss index 3aeb781..c2a1c58 100644 --- a/src/objects/_alert.scss +++ b/src/objects/_alert.scss | |||
| @@ -1,37 +1,44 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:meta"; | 2 | @use 'sass:meta'; |
| 3 | @use "pkg:iro-sass/bem"; | 3 | @use 'pkg:iro-sass/src/bem'; |
| 4 | @use "pkg:iro-sass/props"; | 4 | @use 'pkg:iro-sass/src/props'; |
| 5 | @use "../props" as *; | 5 | @use '../props' as *; |
| 6 | 6 | ||
| 7 | @forward "alert.vars"; | 7 | @forward 'alert.vars'; |
| 8 | @use "alert.vars" as vars; | 8 | @use 'alert.vars' as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables("vars")); | 11 | @include materialize-at-root(meta.module-variables('vars')); |
| 12 | 12 | ||
| 13 | @include bem.object("alert") { | 13 | @include bem.object('alert') { |
| 14 | padding-block: props.get(vars.$pad-b); | 14 | padding-block: props.get(vars.$pad-b); |
| 15 | padding-inline: props.get(vars.$pad-i); | 15 | padding-inline: props.get(vars.$pad-i); |
| 16 | background-color: props.get(vars.$bg-color); | 16 | background-color: props.get(vars.$bg-color); |
| 17 | border: props.get(vars.$border-width) solid transparent; | 17 | border: props.get(vars.$border-width) solid transparent; |
| 18 | border-color: props.get(vars.$border-color); | 18 | border-color: props.get(vars.$border-color); |
| 19 | border-radius: props.get(vars.$rounding); | 19 | border-radius: props.get(vars.$rounding); |
| 20 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) props.get(vars.$shadow-blur) | 20 | box-shadow: |
| 21 | props.get(vars.$shadow-grow) props.get(vars.$shadow-color); | 21 | props.get(vars.$shadow-x) |
| 22 | props.get(vars.$shadow-y) | ||
| 23 | props.get(vars.$shadow-blur) | ||
| 24 | props.get(vars.$shadow-grow) | ||
| 25 | props.get(vars.$shadow-color); | ||
| 22 | 26 | ||
| 23 | &::before { | 27 | &::before { |
| 24 | display: block; | 28 | display: block; |
| 25 | margin-block: -100em 100em; | 29 | margin-block: -100em 100em; |
| 26 | content: ""; | 30 | content: ''; |
| 27 | } | 31 | } |
| 28 | 32 | ||
| 29 | @each $mod, $theme in vars.$themes-config { | 33 | @each $mod, $theme in vars.$themes-config { |
| 30 | @include bem.modifier($mod) { | 34 | @include bem.modifier($mod) { |
| 31 | background-color: props.get(vars.$themes, $theme, --bg-color); | 35 | background-color: props.get(vars.$themes, $theme, --bg-color); |
| 32 | border-color: props.get(vars.$themes, $theme, --border-color); | 36 | border-color: props.get(vars.$themes, $theme, --border-color); |
| 33 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) | 37 | box-shadow: |
| 34 | props.get(vars.$shadow-blur) props.get(vars.$shadow-grow) | 38 | props.get(vars.$shadow-x) |
| 39 | props.get(vars.$shadow-y) | ||
| 40 | props.get(vars.$shadow-blur) | ||
| 41 | props.get(vars.$shadow-grow) | ||
| 35 | props.get(vars.$themes, $theme, --shadow-color); | 42 | props.get(vars.$themes, $theme, --shadow-color); |
| 36 | } | 43 | } |
| 37 | } | 44 | } |
diff --git a/src/objects/_alert.vars.scss b/src/objects/_alert.vars.scss index aedd917..bbd3dad 100644 --- a/src/objects/_alert.vars.scss +++ b/src/objects/_alert.vars.scss | |||
| @@ -1,50 +1,36 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | 3 | ||
| 4 | $border-width: props.def(--o-alert--border-width, props.get(core.$border-width--medium)) !default; | 4 | $border-width: props.def(--o-alert--border-width, props.get(core.$border-width--medium)) !default; |
| 5 | $pad-i: props.def(--o-alert--pad-i, props.get(core.$size--250)) !default; | 5 | $pad-i: props.def(--o-alert--pad-i, props.get(core.$size--250)) !default; |
| 6 | $pad-b: props.def(--o-alert--pad-b, props.get(core.$size--200)) !default; | 6 | $pad-b: props.def(--o-alert--pad-b, props.get(core.$size--200)) !default; |
| 7 | $rounding: props.def(--o-alert--rounding, props.get(core.$rounding)) !default; | 7 | $rounding: props.def(--o-alert--rounding, props.get(core.$rounding)) !default; |
| 8 | 8 | ||
| 9 | $shadow-x: props.def(--o-alert--shadow-x, props.get(core.$shadow--l2--x)) !default; | 9 | $shadow-x: props.def(--o-alert--shadow-x, props.get(core.$shadow--l2--x)) !default; |
| 10 | $shadow-y: props.def(--o-alert--shadow-y, props.get(core.$shadow--l2--y)) !default; | 10 | $shadow-y: props.def(--o-alert--shadow-y, props.get(core.$shadow--l2--y)) !default; |
| 11 | $shadow-blur: props.def(--o-alert--shadow-blur, props.get(core.$shadow--l2--blur)) !default; | 11 | $shadow-blur: props.def(--o-alert--shadow-blur, props.get(core.$shadow--l2--blur)) !default; |
| 12 | $shadow-grow: props.def(--o-alert--shadow-grow, props.get(core.$shadow--l2--grow)) !default; | 12 | $shadow-grow: props.def(--o-alert--shadow-grow, props.get(core.$shadow--l2--grow)) !default; |
| 13 | 13 | ||
| 14 | $bg-color: props.def(--o-alert--bg-color, props.get(core.$theme, --bg-l2), "color") !default; | 14 | $bg-color: props.def(--o-alert--bg-color, props.get(core.$theme, --bg-l2), 'color') !default; |
| 15 | $border-color: props.def( | 15 | $border-color: props.def(--o-alert--border-color, props.get(core.$theme, --text-mute-more) props.get(core.$theme, --text-mute-more) props.get(core.$theme, --text-mute), 'color') !default; |
| 16 | --o-alert--border-color, | ||
| 17 | props.get(core.$theme, --text-mute-more) props.get(core.$theme, --text-mute-more) | ||
| 18 | props.get(core.$theme, --text-mute), | ||
| 19 | "color" | ||
| 20 | ) !default; | ||
| 21 | 16 | ||
| 22 | $shadow-color: props.def( | 17 | $shadow-color: props.def(--o-alert--shadow-color, props.get(core.$transparent-colors, --black, --200), 'color') !default; |
| 23 | --o-alert--shadow-color, | ||
| 24 | props.get(core.$transparent-colors, --black, --200), | ||
| 25 | "color" | ||
| 26 | ) !default; | ||
| 27 | 18 | ||
| 28 | $themes-config: ( | 19 | $themes-config: ( |
| 29 | accent: --accent, | 20 | accent: --accent, |
| 30 | positive: --positive, | 21 | positive: --positive, |
| 31 | negative: --negative, | 22 | negative: --negative, |
| 32 | warning: --warning, | 23 | warning: --warning, |
| 33 | ) !default; | 24 | ) !default; |
| 34 | 25 | ||
| 35 | $themes: props.def(--o-alert, (), "color"); | 26 | $themes: props.def(--o-alert, (), 'color'); |
| 36 | 27 | ||
| 37 | @each $theme, $key in $themes-config { | 28 | @each $theme, $key in $themes-config { |
| 38 | $themes: props.merge( | 29 | $themes: props.merge($themes, ( |
| 39 | $themes, | 30 | $key: ( |
| 40 | ( | 31 | --bg-color: props.get(core.$theme, --bg-l2), |
| 41 | $key: ( | 32 | --border-color: props.get(core.$theme, $key, --700) props.get(core.$theme, $key, --700) props.get(core.$theme, $key, --800), |
| 42 | --bg-color: props.get(core.$theme, --bg-l2), | 33 | --shadow-color: props.get(core.$theme, $key, --200), |
| 43 | --border-color: props.get(core.$theme, $key, --700) | ||
| 44 | props.get(core.$theme, $key, --700) | ||
| 45 | props.get(core.$theme, $key, --800), | ||
| 46 | --shadow-color: props.get(core.$theme, $key, --200), | ||
| 47 | ), | ||
| 48 | ) | 34 | ) |
| 49 | ); | 35 | )); |
| 50 | } | 36 | } |
diff --git a/src/objects/_avatar.scss b/src/objects/_avatar.scss index f805502..272c213 100644 --- a/src/objects/_avatar.scss +++ b/src/objects/_avatar.scss | |||
| @@ -1,135 +1,118 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "avatar.vars"; | 6 | @forward 'avatar.vars'; |
| 7 | @use "avatar.vars" as vars; | 7 | @use 'avatar.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin status($indicator-size) { | 9 | @mixin status($indicator-size) { |
| 10 | @include bem.elem("status") { | 10 | @include bem.elem('status') { |
| 11 | inline-size: props.get($indicator-size); | 11 | inline-size: props.get($indicator-size); |
| 12 | block-size: props.get($indicator-size); | 12 | block-size: props.get($indicator-size); |
| 13 | 13 | ||
| 14 | @include bem.sibling-elem("content") { | 14 | @include bem.sibling-elem('content') { |
| 15 | mask-image: radial-gradient( | 15 | mask-image: radial-gradient(circle calc(.5 * props.get($indicator-size) + props.get(vars.$indicator-spacing)) at |
| 16 | circle calc(0.5 * props.get($indicator-size) + props.get(vars.$indicator-spacing)) | 16 | calc(100% - .5 * props.get($indicator-size)) |
| 17 | at calc(100% - 0.5 * props.get($indicator-size)) | 17 | calc(100% - .5 * props.get($indicator-size)), |
| 18 | calc(100% - 0.5 * props.get($indicator-size)), | 18 | transparent 95%, |
| 19 | transparent 95%, | 19 | #fff); |
| 20 | #fff | ||
| 21 | ); | ||
| 22 | } | 20 | } |
| 23 | } | 21 | } |
| 24 | } | 22 | } |
| 25 | 23 | ||
| 26 | @mixin styles { | 24 | @mixin styles { |
| 27 | @include materialize-at-root(meta.module-variables("vars")); | 25 | @include materialize-at-root(meta.module-variables('vars')); |
| 28 | 26 | ||
| 29 | @include bem.object("avatar") { | 27 | @include bem.object('avatar') { |
| 30 | position: relative; | 28 | position: relative; |
| 31 | display: inline-block; | 29 | display: inline-block; |
| 32 | font-style: normal; | 30 | font-style: normal; |
| 33 | vertical-align: 0.05em; | 31 | vertical-align: .05em; |
| 34 | border-radius: props.get(vars.$rounding); | 32 | border-radius: props.get(vars.$rounding); |
| 35 | 33 | ||
| 36 | &::after { | 34 | &::after { |
| 37 | position: absolute; | 35 | position: absolute; |
| 38 | inset: calc(-1 * props.get(vars.$key-focus--border-offset)); | 36 | inset: calc(-1 * props.get(vars.$key-focus--border-offset)); |
| 39 | z-index: 1; | 37 | z-index: 1; |
| 40 | display: none; | 38 | display: none; |
| 41 | pointer-events: none; | 39 | pointer-events: none; |
| 42 | outline: props.get(vars.$key-focus--border-color) solid | 40 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 43 | props.get(vars.$key-focus--border-width); | 41 | content: ''; |
| 44 | content: ""; | 42 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 45 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 43 | border-radius: props.get(vars.$rounding); |
| 46 | border-radius: props.get(vars.$rounding); | 44 | box-shadow: |
| 47 | box-shadow: 0 0 0 | 45 | 0 |
| 48 | calc( | 46 | 0 |
| 49 | props.get(vars.$key-focus--border-width) + | 47 | 0 |
| 50 | props.get(vars.$key-focus--outline-width) | 48 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 51 | ) | ||
| 52 | props.get(vars.$key-focus--outline-color); | 49 | props.get(vars.$key-focus--outline-color); |
| 53 | } | 50 | } |
| 54 | 51 | ||
| 55 | @include bem.elem("status") { | 52 | @include bem.elem('status') { |
| 56 | position: absolute; | 53 | position: absolute; |
| 57 | inset-block-end: 0; | 54 | inset-block-end: 0; |
| 58 | inset-inline-end: 0; | 55 | inset-inline-end: 0; |
| 59 | } | 56 | } |
| 60 | 57 | ||
| 61 | @include bem.elem("icon") { | 58 | @include bem.elem('icon') { |
| 62 | position: absolute; | 59 | position: absolute; |
| 63 | inset-block-end: 0; | 60 | inset-block-end: 0; |
| 64 | inset-inline-end: 0; | 61 | inset-inline-end: 0; |
| 65 | display: flex; | 62 | display: flex; |
| 66 | align-items: flex-end; | 63 | align-items: flex-end; |
| 67 | justify-content: flex-end; | 64 | justify-content: flex-end; |
| 68 | inline-size: props.get(vars.$icon-size); | 65 | inline-size: props.get(vars.$icon-size); |
| 69 | block-size: props.get(vars.$icon-size); | 66 | block-size: props.get(vars.$icon-size); |
| 70 | 67 | ||
| 71 | @include bem.sibling-elem("content") { | 68 | @include bem.sibling-elem('content') { |
| 72 | clip-path: props.get(vars.$icon-mask); | 69 | clip-path: props.get(vars.$icon-mask); |
| 73 | } | 70 | } |
| 74 | } | 71 | } |
| 75 | 72 | ||
| 76 | @include bem.elem("content") { | 73 | @include bem.elem('content') { |
| 77 | display: block; | 74 | display: block; |
| 78 | inline-size: props.get(vars.$size); | 75 | inline-size: props.get(vars.$size); |
| 79 | block-size: props.get(vars.$size); | 76 | block-size: props.get(vars.$size); |
| 80 | font-size: props.get(vars.$font-size); | 77 | font-size: props.get(vars.$font-size); |
| 81 | line-height: props.get(vars.$size); | 78 | line-height: props.get(vars.$size); |
| 82 | text-align: center; | 79 | text-align: center; |
| 83 | object-fit: cover; | 80 | object-fit: cover; |
| 84 | object-position: center center; | 81 | object-position: center center; |
| 85 | border-radius: props.get(vars.$rounding); | 82 | border-radius: props.get(vars.$rounding); |
| 86 | } | 83 | } |
| 87 | 84 | ||
| 88 | @include bem.modifier("circle") { | 85 | @include bem.modifier('circle') { |
| 89 | border-radius: 100%; | 86 | border-radius: 100%; |
| 90 | 87 | ||
| 91 | &::after { | 88 | &::after { |
| 92 | border-radius: 100%; | 89 | border-radius: 100%; |
| 93 | } | 90 | } |
| 94 | 91 | ||
| 95 | @include bem.elem("content") { | 92 | @include bem.elem('content') { |
| 96 | border-radius: 100%; | 93 | border-radius: 100%; |
| 97 | } | 94 | } |
| 98 | } | 95 | } |
| 99 | 96 | ||
| 100 | @include bem.modifier("placeholder") { | 97 | @include bem.modifier('placeholder') { |
| 101 | @include bem.elem("content") { | 98 | @include bem.elem('content') { |
| 102 | background-color: hsl(0, 0%, props.get(vars.$bg-color--l)); | 99 | background-color: hsl(0, 0%, props.get(vars.$bg-color--l)); |
| 103 | } | 100 | } |
| 104 | } | 101 | } |
| 105 | 102 | ||
| 106 | @include bem.modifier("colored") { | 103 | @include bem.modifier('colored') { |
| 107 | @include bem.elem("content") { | 104 | @include bem.elem('content') { |
| 108 | color: #fff; | 105 | color: #fff; |
| 109 | background-color: hsl( | 106 | background-color: hsl(props.get(vars.$bg-color--h), props.get(vars.$bg-color--s), props.get(vars.$bg-color--l)); |
| 110 | props.get(vars.$bg-color--h), | ||
| 111 | props.get(vars.$bg-color--s), | ||
| 112 | props.get(vars.$bg-color--l) | ||
| 113 | ); | ||
| 114 | } | 107 | } |
| 115 | } | 108 | } |
| 116 | 109 | ||
| 117 | @include bem.modifier("colored-gradient") { | 110 | @include bem.modifier('colored-gradient') { |
| 118 | @include bem.elem("content") { | 111 | @include bem.elem('content') { |
| 119 | color: #fff; | 112 | color: #fff; |
| 120 | background: linear-gradient( | 113 | background: linear-gradient(props.get(vars.$bg-angle), |
| 121 | props.get(vars.$bg-angle), | 114 | hsl(props.get(vars.$bg-color--h), props.get(vars.$bg-color--s), props.get(vars.$bg-color--l)), |
| 122 | hsl( | 115 | hsl(props.get(vars.$bg-color-2--h), props.get(vars.$bg-color-2--s), props.get(vars.$bg-color-2--l))); |
| 123 | props.get(vars.$bg-color--h), | ||
| 124 | props.get(vars.$bg-color--s), | ||
| 125 | props.get(vars.$bg-color--l) | ||
| 126 | ), | ||
| 127 | hsl( | ||
| 128 | props.get(vars.$bg-color-2--h), | ||
| 129 | props.get(vars.$bg-color-2--s), | ||
| 130 | props.get(vars.$bg-color-2--l) | ||
| 131 | ) | ||
| 132 | ); | ||
| 133 | } | 116 | } |
| 134 | } | 117 | } |
| 135 | 118 | ||
| @@ -139,19 +122,19 @@ | |||
| 139 | @include bem.modifier($mod) { | 122 | @include bem.modifier($mod) { |
| 140 | @include status($indicator-size); | 123 | @include status($indicator-size); |
| 141 | 124 | ||
| 142 | @include bem.elem("icon") { | 125 | @include bem.elem('icon') { |
| 143 | inline-size: props.get($icon-size); | 126 | inline-size: props.get($icon-size); |
| 144 | block-size: props.get($icon-size); | 127 | block-size: props.get($icon-size); |
| 145 | 128 | ||
| 146 | @include bem.sibling-elem("content") { | 129 | @include bem.sibling-elem('content') { |
| 147 | clip-path: props.get($icon-mask); | 130 | clip-path: props.get($icon-mask); |
| 148 | } | 131 | } |
| 149 | } | 132 | } |
| 150 | 133 | ||
| 151 | @include bem.elem("content") { | 134 | @include bem.elem('content') { |
| 152 | inline-size: props.get($size); | 135 | inline-size: props.get($size); |
| 153 | block-size: props.get($size); | 136 | block-size: props.get($size); |
| 154 | font-size: props.get($font-size); | 137 | font-size: props.get($font-size); |
| 155 | line-height: props.get($size); | 138 | line-height: props.get($size); |
| 156 | } | 139 | } |
| 157 | } | 140 | } |
diff --git a/src/objects/_avatar.vars.scss b/src/objects/_avatar.vars.scss index 7d1c342..467d7cc 100644 --- a/src/objects/_avatar.vars.scss +++ b/src/objects/_avatar.vars.scss | |||
| @@ -1,102 +1,79 @@ | |||
| 1 | @use "sass:math"; | 1 | @use 'sass:math'; |
| 2 | 2 | ||
| 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 | @function icon-mask($p) { | 6 | @function icon-mask($p) { |
| 7 | $offset: 0.15 * math.div(0.5, $p); | 7 | $offset: 0.15 * math.div(0.5, $p); |
| 8 | @return 'data:image/svg+xml;utf8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg"><defs><clipPath id="avatar_mask" clipPathUnits="objectBoundingBox"><path d="M 0,0 H 1 V #{$p} H #{$p + $offset} C #{$p + 0.055},#{$p} #{$p},#{$p + 0.055} #{$p},#{$p + $offset} V 1 H 0 Z" /></clipPath></defs></svg>#avatar_mask'; | 8 | @return 'data:image/svg+xml;utf8,<svg version="1.1" xmlns="http://www.w3.org/2000/svg"><defs><clipPath id="avatar_mask" clipPathUnits="objectBoundingBox"><path d="M 0,0 H 1 V #{$p} H #{$p + $offset} C #{$p + 0.055},#{$p} #{$p},#{$p + 0.055} #{$p},#{$p + $offset} V 1 H 0 Z" /></clipPath></defs></svg>#avatar_mask'; |
| 9 | } | 9 | } |
| 10 | 10 | ||
| 11 | $size: props.def(--o-avatar--size, props.get(core.$size--500)) !default; | 11 | $size: props.def(--o-avatar--size, props.get(core.$size--500)) !default; |
| 12 | $font-size: props.def(--o-avatar--font-size, props.get(core.$font-size--100)) !default; | 12 | $font-size: props.def(--o-avatar--font-size, props.get(core.$font-size--100)) !default; |
| 13 | $indicator-size: props.def(--o-avatar--indicator-size, props.get(core.$size--150)) !default; | 13 | $indicator-size: props.def(--o-avatar--indicator-size, props.get(core.$size--150)) !default; |
| 14 | $indicator-spacing: props.def(--o-avatar--indicator-spacing, props.get(core.$size--40)) !default; | 14 | $indicator-spacing: props.def(--o-avatar--indicator-spacing, props.get(core.$size--40)) !default; |
| 15 | $rounding: props.def(--o-avatar--rounding, 25%) !default; | 15 | $rounding: props.def(--o-avatar--rounding, 25%) !default; |
| 16 | $icon-size: props.def(--o-avatar--icon-size, 1.2em) !default; | 16 | $icon-size: props.def(--o-avatar--icon-size, 1.2em) !default; |
| 17 | $icon-mask: props.def(--o-avatar--icon-mask, url(icon-mask(0.5))) !default; | 17 | $icon-mask: props.def(--o-avatar--icon-mask, url(icon-mask(.5))) !default; |
| 18 | 18 | ||
| 19 | $size--xxxl: props.def(--o-avatar--xxxl--size, props.get(core.$size--1600)) !default; | 19 | $size--xxxl: props.def(--o-avatar--xxxl--size, props.get(core.$size--1600)) !default; |
| 20 | $font-size--xxxl: props.def(--o-avatar--xxxl--font-size, props.get(core.$font-size--800)) !default; | 20 | $font-size--xxxl: props.def(--o-avatar--xxxl--font-size, props.get(core.$font-size--800)) !default; |
| 21 | $indicator-size--xxxl: props.def( | 21 | $indicator-size--xxxl: props.def(--o-avatar--xxxl--indicator-size, props.get(core.$size--400)) !default; |
| 22 | --o-avatar--xxxl--indicator-size, | 22 | $icon-size--xxxl: props.def(--o-avatar--xxxl--icon-size, 1.9em) !default; |
| 23 | props.get(core.$size--400) | 23 | $icon-mask--xxxl: props.def(--o-avatar--xxxl--icon-mask, url(icon-mask(.75))) !default; |
| 24 | ) !default; | ||
| 25 | $icon-size--xxxl: props.def(--o-avatar--xxxl--icon-size, 1.9em) !default; | ||
| 26 | $icon-mask--xxxl: props.def(--o-avatar--xxxl--icon-mask, url(icon-mask(0.75))) !default; | ||
| 27 | 24 | ||
| 28 | $size--xxl: props.def(--o-avatar--xxl--size, props.get(core.$size--1200)) !default; | 25 | $size--xxl: props.def(--o-avatar--xxl--size, props.get(core.$size--1200)) !default; |
| 29 | $font-size--xxl: props.def(--o-avatar--xxl--font-size, props.get(core.$font-size--600)) !default; | 26 | $font-size--xxl: props.def(--o-avatar--xxl--font-size, props.get(core.$font-size--600)) !default; |
| 30 | $indicator-size--xxl: props.def( | 27 | $indicator-size--xxl: props.def(--o-avatar--xxl--indicator-size, props.get(core.$size--300)) !default; |
| 31 | --o-avatar--xxl--indicator-size, | 28 | $icon-size--xxl: props.def(--o-avatar--xxl--icon-size, 1.7em) !default; |
| 32 | props.get(core.$size--300) | 29 | $icon-mask--xxl: props.def(--o-avatar--xxl--icon-mask, url(icon-mask(.7))) !default; |
| 33 | ) !default; | ||
| 34 | $icon-size--xxl: props.def(--o-avatar--xxl--icon-size, 1.7em) !default; | ||
| 35 | $icon-mask--xxl: props.def(--o-avatar--xxl--icon-mask, url(icon-mask(0.7))) !default; | ||
| 36 | 30 | ||
| 37 | $size--xl: props.def(--o-avatar--xl--size, props.get(core.$size--800)) !default; | 31 | $size--xl: props.def(--o-avatar--xl--size, props.get(core.$size--800)) !default; |
| 38 | $font-size--xl: props.def(--o-avatar--xl--font-size, props.get(core.$font-size--300)) !default; | 32 | $font-size--xl: props.def(--o-avatar--xl--font-size, props.get(core.$font-size--300)) !default; |
| 39 | $indicator-size--xl: props.def(--o-avatar--xl--indicator-size, props.get(core.$size--225)) !default; | 33 | $indicator-size--xl: props.def(--o-avatar--xl--indicator-size, props.get(core.$size--225)) !default; |
| 40 | $icon-size--xl: props.def(--o-avatar--xl--icon-size, 1.5em) !default; | 34 | $icon-size--xl: props.def(--o-avatar--xl--icon-size, 1.5em) !default; |
| 41 | $icon-mask--xl: props.def(--o-avatar--xl--icon-mask, url(icon-mask(0.6))) !default; | 35 | $icon-mask--xl: props.def(--o-avatar--xl--icon-mask, url(icon-mask(.6))) !default; |
| 42 | 36 | ||
| 43 | $size--lg: props.def(--o-avatar--lg--size, props.get(core.$size--650)) !default; | 37 | $size--lg: props.def(--o-avatar--lg--size, props.get(core.$size--650)) !default; |
| 44 | $font-size--lg: props.def(--o-avatar--lg--font-size, props.get(core.$font-size--200)) !default; | 38 | $font-size--lg: props.def(--o-avatar--lg--font-size, props.get(core.$font-size--200)) !default; |
| 45 | $indicator-size--lg: props.def(--o-avatar--lg--indicator-size, props.get(core.$size--175)) !default; | 39 | $indicator-size--lg: props.def(--o-avatar--lg--indicator-size, props.get(core.$size--175)) !default; |
| 46 | $icon-size--lg: props.def(--o-avatar--lg--icon-size, 1.25em) !default; | 40 | $icon-size--lg: props.def(--o-avatar--lg--icon-size, 1.25em) !default; |
| 47 | $icon-mask--lg: props.def(--o-avatar--lg--icon-mask, url(icon-mask(0.55))) !default; | 41 | $icon-mask--lg: props.def(--o-avatar--lg--icon-mask, url(icon-mask(.55))) !default; |
| 48 | 42 | ||
| 49 | $size--sm: props.def(--o-avatar--sm--size, props.get(core.$size--375)) !default; | 43 | $size--sm: props.def(--o-avatar--sm--size, props.get(core.$size--375)) !default; |
| 50 | $font-size--sm: props.def(--o-avatar--sm--font-size, props.get(core.$font-size--75)) !default; | 44 | $font-size--sm: props.def(--o-avatar--sm--font-size, props.get(core.$font-size--75)) !default; |
| 51 | $indicator-size--sm: props.def(--o-avatar--sm--indicator-size, props.get(core.$size--125)) !default; | 45 | $indicator-size--sm: props.def(--o-avatar--sm--indicator-size, props.get(core.$size--125)) !default; |
| 52 | $icon-size--sm: props.def(--o-avatar--sm--icon-size, 1.2em) !default; | 46 | $icon-size--sm: props.def(--o-avatar--sm--icon-size, 1.2em) !default; |
| 53 | $icon-mask--sm: props.def(--o-avatar--sm--icon-mask, url(icon-mask(0.5))) !default; | 47 | $icon-mask--sm: props.def(--o-avatar--sm--icon-mask, url(icon-mask(.5))) !default; |
| 54 | 48 | ||
| 55 | $size--xs: props.def(--o-avatar--xs--size, props.get(core.$size--250)) !default; | 49 | $size--xs: props.def(--o-avatar--xs--size, props.get(core.$size--250)) !default; |
| 56 | $font-size--xs: props.def(--o-avatar--xs--font-size, props.get(core.$font-size--50)) !default; | 50 | $font-size--xs: props.def(--o-avatar--xs--font-size, props.get(core.$font-size--50)) !default; |
| 57 | $indicator-size--xs: props.def(--o-avatar--xs--indicator-size, props.get(core.$size--100)) !default; | 51 | $indicator-size--xs: props.def(--o-avatar--xs--indicator-size, props.get(core.$size--100)) !default; |
| 58 | $icon-size--xs: props.def(--o-avatar--xs--icon-size, 1.2em) !default; | 52 | $icon-size--xs: props.def(--o-avatar--xs--icon-size, 1.2em) !default; |
| 59 | $icon-mask--xs: props.def(--o-avatar--xs--icon-mask, url(icon-mask(0.5))) !default; | 53 | $icon-mask--xs: props.def(--o-avatar--xs--icon-mask, url(icon-mask(.5))) !default; |
| 60 | 54 | ||
| 61 | $key-focus--border-width: props.def( | 55 | $key-focus--border-width: props.def(--o-avatar--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 62 | --o-avatar--key-focus--border-width, | 56 | $key-focus--border-offset: props.def(--o-avatar--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 63 | props.get(core.$key-focus--border-width) | 57 | $key-focus--outline-width: props.def(--o-avatar--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; |
| 64 | ) !default; | ||
| 65 | $key-focus--border-offset: props.def( | ||
| 66 | --o-avatar--key-focus--border-offset, | ||
| 67 | props.get(core.$key-focus--border-offset) | ||
| 68 | ) !default; | ||
| 69 | $key-focus--outline-width: props.def( | ||
| 70 | --o-avatar--key-focus--outline-width, | ||
| 71 | props.get(core.$key-focus--outline-width) | ||
| 72 | ) !default; | ||
| 73 | 58 | ||
| 74 | $bg-color--h: props.def(--o-avatar--bg-color--h, 354, "color") !default; | 59 | $bg-color--h: props.def(--o-avatar--bg-color--h, 354, 'color') !default; |
| 75 | $bg-color--s: props.def(--o-avatar--bg-color--s, 44%, "color") !default; | 60 | $bg-color--s: props.def(--o-avatar--bg-color--s, 44%, 'color') !default; |
| 76 | $bg-color--l: props.def(--o-avatar--bg-color--l, 45%, "color") !default; | 61 | $bg-color--l: props.def(--o-avatar--bg-color--l, 45%, 'color') !default; |
| 77 | 62 | ||
| 78 | $bg-color-2--h: props.def(--o-avatar--bg-color-2--h, 354, "color") !default; | 63 | $bg-color-2--h: props.def(--o-avatar--bg-color-2--h, 354, 'color') !default; |
| 79 | $bg-color-2--s: props.def(--o-avatar--bg-color-2--s, 44%, "color") !default; | 64 | $bg-color-2--s: props.def(--o-avatar--bg-color-2--s, 44%, 'color') !default; |
| 80 | $bg-color-2--l: props.def(--o-avatar--bg-color-2--l, 45%, "color") !default; | 65 | $bg-color-2--l: props.def(--o-avatar--bg-color-2--l, 45%, 'color') !default; |
| 81 | 66 | ||
| 82 | $bg-angle: props.def(--o-avatar--bg-angle, 180deg) !default; | 67 | $bg-angle: props.def(--o-avatar--bg-angle, 180deg) !default; |
| 83 | 68 | ||
| 84 | $key-focus--border-color: props.def( | 69 | $key-focus--border-color: props.def(--o-avatar--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 85 | --o-avatar--key-focus--border-color, | 70 | $key-focus--outline-color: props.def(--o-avatar--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 86 | props.get(core.$theme, --focus, --border), | ||
| 87 | "color" | ||
| 88 | ) !default; | ||
| 89 | $key-focus--outline-color: props.def( | ||
| 90 | --o-avatar--key-focus--outline-color, | ||
| 91 | props.get(core.$theme, --focus, --outline), | ||
| 92 | "color" | ||
| 93 | ) !default; | ||
| 94 | 71 | ||
| 95 | $sizes: ( | 72 | $sizes: ( |
| 96 | "xs" $size--xs $font-size--xs $indicator-size--xs $icon-size--xs $icon-mask--xs, | 73 | 'xs' $size--xs $font-size--xs $indicator-size--xs $icon-size--xs $icon-mask--xs, |
| 97 | "sm" $size--sm $font-size--sm $indicator-size--sm $icon-size--sm $icon-mask--sm, | 74 | 'sm' $size--sm $font-size--sm $indicator-size--sm $icon-size--sm $icon-mask--sm, |
| 98 | "lg" $size--lg $font-size--lg $indicator-size--lg $icon-size--lg $icon-mask--lg, | 75 | 'lg' $size--lg $font-size--lg $indicator-size--lg $icon-size--lg $icon-mask--lg, |
| 99 | "xl" $size--xl $font-size--xl $indicator-size--xl $icon-size--xl $icon-mask--xl, | 76 | 'xl' $size--xl $font-size--xl $indicator-size--xl $icon-size--xl $icon-mask--xl, |
| 100 | "xxl" $size--xxl $font-size--xxl $indicator-size--xxl $icon-size--xxl $icon-mask--xxl, | 77 | 'xxl' $size--xxl $font-size--xxl $indicator-size--xxl $icon-size--xxl $icon-mask--xxl, |
| 101 | "xxxl" $size--xxxl $font-size--xxxl $indicator-size--xxxl $icon-size--xxxl $icon-mask--xxxl | 78 | 'xxxl' $size--xxxl $font-size--xxxl $indicator-size--xxxl $icon-size--xxxl $icon-mask--xxxl, |
| 102 | ) !default; | 79 | ) !default; |
diff --git a/src/objects/_backdrop.scss b/src/objects/_backdrop.scss index 1a7d1fa..6660abf 100644 --- a/src/objects/_backdrop.scss +++ b/src/objects/_backdrop.scss | |||
| @@ -1,23 +1,23 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "backdrop.vars"; | 6 | @forward 'backdrop.vars'; |
| 7 | @use "backdrop.vars" as vars; | 7 | @use 'backdrop.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables("vars")); | 10 | @include materialize-at-root(meta.module-variables('vars')); |
| 11 | 11 | ||
| 12 | @include bem.object("backdrop") { | 12 | @include bem.object('backdrop') { |
| 13 | position: fixed; | 13 | position: fixed; |
| 14 | inset: 0; | 14 | inset: 0; |
| 15 | z-index: props.get(vars.$z-index); | 15 | z-index: props.get(vars.$z-index); |
| 16 | box-sizing: border-box; | 16 | box-sizing: border-box; |
| 17 | display: flex; | 17 | display: flex; |
| 18 | flex-direction: column; | 18 | flex-direction: column; |
| 19 | overflow: auto; | 19 | overflow: auto; |
| 20 | background-color: props.get(vars.$bg-color); | 20 | background-color: props.get(vars.$bg-color); |
| 21 | backdrop-filter: blur(props.get(vars.$blur)); | 21 | backdrop-filter: blur(props.get(vars.$blur)); |
| 22 | } | 22 | } |
| 23 | } | 23 | } |
diff --git a/src/objects/_backdrop.vars.scss b/src/objects/_backdrop.vars.scss index 78f4742..9206117 100644 --- a/src/objects/_backdrop.vars.scss +++ b/src/objects/_backdrop.vars.scss | |||
| @@ -1,10 +1,6 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | 3 | ||
| 4 | $z-index: props.def(--o-backdrop--z-index, 10000) !default; | 4 | $z-index: props.def(--o-backdrop--z-index, 10000) !default; |
| 5 | $blur: props.def(--o-backdrop--blur, 2em) !default; | 5 | $blur: props.def(--o-backdrop--blur, 2em) !default; |
| 6 | $bg-color: props.def( | 6 | $bg-color: props.def(--o-backdrop--bg-color, props.get(core.$transparent-colors, --black, --600), 'color') !default; |
| 7 | --o-backdrop--bg-color, | ||
| 8 | props.get(core.$transparent-colors, --black, --600), | ||
| 9 | "color" | ||
| 10 | ) !default; | ||
diff --git a/src/objects/_button.scss b/src/objects/_button.scss index 8adc0f7..a3c8187 100644 --- a/src/objects/_button.scss +++ b/src/objects/_button.scss | |||
| @@ -1,119 +1,115 @@ | |||
| 1 | @use "sass:list"; | 1 | @use 'sass:list'; |
| 2 | @use "sass:map"; | 2 | @use 'sass:map'; |
| 3 | @use "sass:meta"; | 3 | @use 'sass:meta'; |
| 4 | @use "sass:string"; | 4 | @use 'sass:string'; |
| 5 | @use "pkg:iro-sass/bem"; | 5 | @use 'pkg:iro-sass/src/bem'; |
| 6 | @use "pkg:iro-sass/props"; | 6 | @use 'pkg:iro-sass/src/props'; |
| 7 | @use "../props" as *; | 7 | @use '../props' as *; |
| 8 | 8 | ||
| 9 | @forward "button.vars"; | 9 | @forward 'button.vars'; |
| 10 | @use "button.vars" as vars; | 10 | @use 'button.vars' as vars; |
| 11 | 11 | ||
| 12 | @mixin -apply-theme($theme, $key: ()) { | 12 | @mixin -apply-theme($theme, $key: ()) { |
| 13 | color: props.get($theme, list.join($key, --disabled --label-color)...); | 13 | color: props.get($theme, list.join($key, --disabled --label-color)...); |
| 14 | background-color: props.get($theme, list.join($key, --disabled --bg-color)...); | 14 | background-color: props.get($theme, list.join($key, --disabled --bg-color)...); |
| 15 | border-color: props.get($theme, list.join($key, --disabled --border-color)...); | 15 | border-color: props.get($theme, list.join($key, --disabled --border-color)...); |
| 16 | 16 | ||
| 17 | &::after { | 17 | &::after { |
| 18 | outline-color: props.get($theme, list.join($key, --key-focus --border-color)...); | 18 | outline-color: props.get($theme, list.join($key, --key-focus --border-color)...); |
| 19 | box-shadow: 0 0 0 | 19 | box-shadow: |
| 20 | calc( | 20 | 0 |
| 21 | props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width) | 21 | 0 |
| 22 | ) | 22 | 0 |
| 23 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) | ||
| 23 | props.get($theme, list.join($key, --key-focus --outline-color)...); | 24 | props.get($theme, list.join($key, --key-focus --outline-color)...); |
| 24 | } | 25 | } |
| 25 | 26 | ||
| 26 | &:link, | 27 | &:link, |
| 27 | &:visited, | 28 | &:visited, |
| 28 | &:enabled { | 29 | &:enabled { |
| 29 | color: props.get($theme, list.join($key, --label-color)...); | 30 | color: props.get($theme, list.join($key, --label-color)...); |
| 30 | background-color: props.get($theme, list.join($key, --bg-color)...); | 31 | background-color: props.get($theme, list.join($key, --bg-color)...); |
| 31 | border-color: props.get($theme, list.join($key, --border-color)...); | 32 | border-color: props.get($theme, list.join($key, --border-color)...); |
| 32 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) props.get(vars.$shadow-blur) | 33 | box-shadow: |
| 33 | props.get(vars.$shadow-grow) props.get($theme, list.join($key, --shadow-color)...); | 34 | props.get(vars.$shadow-x) |
| 35 | props.get(vars.$shadow-y) | ||
| 36 | props.get(vars.$shadow-blur) | ||
| 37 | props.get(vars.$shadow-grow) | ||
| 38 | props.get($theme, list.join($key, --shadow-color)...); | ||
| 34 | 39 | ||
| 35 | &:hover, | 40 | &:hover, |
| 36 | &:focus-visible { | 41 | &:focus-visible { |
| 37 | color: props.get($theme, list.join($key, --hover --label-color)...); | 42 | color: props.get($theme, list.join($key, --hover --label-color)...); |
| 38 | background-color: props.get($theme, list.join($key, --hover --bg-color)...); | 43 | background-color: props.get($theme, list.join($key, --hover --bg-color)...); |
| 39 | border-color: props.get($theme, list.join($key, --hover --border-color)...); | 44 | border-color: props.get($theme, list.join($key, --hover --border-color)...); |
| 40 | } | 45 | } |
| 41 | 46 | ||
| 42 | &:active { | 47 | &:active { |
| 43 | color: props.get($theme, list.join($key, --active --label-color)...); | 48 | color: props.get($theme, list.join($key, --active --label-color)...); |
| 44 | background-color: props.get($theme, list.join($key, --active --bg-color)...); | 49 | background-color: props.get($theme, list.join($key, --active --bg-color)...); |
| 45 | border-color: props.get($theme, list.join($key, --active --border-color)...); | 50 | border-color: props.get($theme, list.join($key, --active --border-color)...); |
| 46 | box-shadow: none; | 51 | box-shadow: none; |
| 47 | } | 52 | } |
| 48 | } | 53 | } |
| 49 | 54 | ||
| 50 | @include bem.modifier("badge") { | 55 | @include bem.modifier('badge') { |
| 51 | color: props.get($theme, list.join($key, --badge --label-color)...); | 56 | color: props.get($theme, list.join($key, --badge --label-color)...); |
| 52 | background-color: props.get($theme, list.join($key, --badge --bg-color)...); | 57 | background-color: props.get($theme, list.join($key, --badge --bg-color)...); |
| 53 | border-color: props.get($theme, list.join($key, --badge --border-color)...); | 58 | border-color: props.get($theme, list.join($key, --badge --border-color)...); |
| 54 | box-shadow: none; | 59 | box-shadow: none; |
| 55 | 60 | ||
| 56 | &:link, | 61 | &:link, |
| 57 | &:visited, | 62 | &:visited, |
| 58 | &:enabled { | 63 | &:enabled { |
| 59 | color: props.get($theme, list.join($key, --badge --label-color)...); | 64 | color: props.get($theme, list.join($key, --badge --label-color)...); |
| 60 | background-color: props.get($theme, list.join($key, --badge --bg-color)...); | 65 | background-color: props.get($theme, list.join($key, --badge --bg-color)...); |
| 61 | border-color: props.get($theme, list.join($key, --badge --border-color)...); | 66 | border-color: props.get($theme, list.join($key, --badge --border-color)...); |
| 62 | box-shadow: none; | 67 | box-shadow: none; |
| 63 | 68 | ||
| 64 | &:hover, | 69 | &:hover, |
| 65 | &:focus-visible { | 70 | &:focus-visible { |
| 66 | color: props.get($theme, list.join($key, --badge --hover --label-color)...); | 71 | color: props.get($theme, list.join($key, --badge --hover --label-color)...); |
| 67 | background-color: props.get($theme, list.join($key, --badge --hover --bg-color)...); | 72 | background-color: props.get($theme, list.join($key, --badge --hover --bg-color)...); |
| 68 | border-color: props.get($theme, list.join($key, --badge --hover --border-color)...); | 73 | border-color: props.get($theme, list.join($key, --badge --hover --border-color)...); |
| 69 | } | 74 | } |
| 70 | 75 | ||
| 71 | &:active { | 76 | &:active { |
| 72 | color: props.get($theme, list.join($key, --badge --active --label-color)...); | 77 | color: props.get($theme, list.join($key, --badge --active --label-color)...); |
| 73 | background-color: props.get( | 78 | background-color: props.get($theme, list.join($key, --badge --active --bg-color)...); |
| 74 | $theme, | 79 | border-color: props.get($theme, list.join($key, --badge --active --border-color)...); |
| 75 | list.join($key, --badge --active --bg-color)... | ||
| 76 | ); | ||
| 77 | border-color: props.get( | ||
| 78 | $theme, | ||
| 79 | list.join($key, --badge --active --border-color)... | ||
| 80 | ); | ||
| 81 | } | 80 | } |
| 82 | } | 81 | } |
| 83 | } | 82 | } |
| 84 | 83 | ||
| 85 | @include bem.modifier("quiet") { | 84 | @include bem.modifier('quiet') { |
| 86 | color: props.get($theme, list.join($key, --quiet --disabled --label-color)...); | 85 | color: props.get($theme, list.join($key, --quiet --disabled --label-color)...); |
| 87 | background-color: transparent; | 86 | background-color: transparent; |
| 88 | border-color: transparent; | 87 | border-color: transparent; |
| 89 | 88 | ||
| 90 | &:link, | 89 | &:link, |
| 91 | &:visited, | 90 | &:visited, |
| 92 | &:enabled { | 91 | &:enabled { |
| 93 | color: props.get($theme, list.join($key, --quiet --label-color)...); | 92 | color: props.get($theme, list.join($key, --quiet --label-color)...); |
| 94 | background-color: transparent; | 93 | background-color: transparent; |
| 95 | border-color: transparent; | 94 | border-color: transparent; |
| 96 | box-shadow: none; | 95 | box-shadow: none; |
| 97 | 96 | ||
| 98 | &:hover, | 97 | &:hover, |
| 99 | &:focus-visible { | 98 | &:focus-visible { |
| 100 | color: props.get($theme, list.join($key, --quiet --hover --label-color)...); | 99 | color: props.get($theme, list.join($key, --quiet --hover --label-color)...); |
| 101 | background-color: props.get($theme, list.join($key, --quiet --hover --bg-color)...); | 100 | background-color: props.get($theme, list.join($key, --quiet --hover --bg-color)...); |
| 102 | border-color: transparent; | 101 | border-color: transparent; |
| 103 | } | 102 | } |
| 104 | 103 | ||
| 105 | &:active { | 104 | &:active { |
| 106 | color: props.get($theme, list.join($key, --quiet --active --label-color)...); | 105 | color: props.get($theme, list.join($key, --quiet --active --label-color)...); |
| 107 | background-color: props.get( | 106 | background-color: props.get($theme, list.join($key, --quiet --active --bg-color)...); |
| 108 | $theme, | 107 | border-color: transparent; |
| 109 | list.join($key, --quiet --active --bg-color)... | ||
| 110 | ); | ||
| 111 | border-color: transparent; | ||
| 112 | } | 108 | } |
| 113 | } | 109 | } |
| 114 | } | 110 | } |
| 115 | 111 | ||
| 116 | @include bem.is("highlighted") { | 112 | @include bem.is('highlighted') { |
| 117 | &:link, | 113 | &:link, |
| 118 | &:visited, | 114 | &:visited, |
| 119 | &:enabled { | 115 | &:enabled { |
| @@ -125,27 +121,32 @@ | |||
| 125 | 121 | ||
| 126 | box-shadow: | 122 | box-shadow: |
| 127 | 0 0 0 1px props.get($theme, list.join($key, --highlighted --border-color)...), | 123 | 0 0 0 1px props.get($theme, list.join($key, --highlighted --border-color)...), |
| 128 | props.get(vars.$shadow-x) props.get(vars.$shadow-y) props.get(vars.$shadow-blur) | 124 | props.get(vars.$shadow-x) |
| 129 | props.get(vars.$shadow-grow) | 125 | props.get(vars.$shadow-y) |
| 130 | props.get($theme, list.join($key, --highlighted --shadow-color)...); | 126 | props.get(vars.$shadow-blur) |
| 127 | props.get(vars.$shadow-grow) | ||
| 128 | props.get($theme, list.join($key, --highlighted --shadow-color)...); | ||
| 131 | 129 | ||
| 132 | &:focus-visible { | 130 | &:focus-visible { |
| 133 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) | 131 | box-shadow: |
| 134 | props.get(vars.$shadow-blur) props.get(vars.$shadow-grow) | 132 | props.get(vars.$shadow-x) |
| 133 | props.get(vars.$shadow-y) | ||
| 134 | props.get(vars.$shadow-blur) | ||
| 135 | props.get(vars.$shadow-grow) | ||
| 135 | props.get($theme, list.join($key, --shadow-color)...); | 136 | props.get($theme, list.join($key, --shadow-color)...); |
| 136 | } | 137 | } |
| 137 | } | 138 | } |
| 138 | } | 139 | } |
| 139 | 140 | ||
| 140 | @include bem.is("selected") { | 141 | @include bem.is('selected') { |
| 141 | color: props.get($theme, list.join($key, --selected --disabled --label-color)...); | 142 | color: props.get($theme, list.join($key, --selected --disabled --label-color)...); |
| 142 | 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)...); |
| 143 | border-color: props.get($theme, list.join($key, --selected --disabled --border-color)...); | 144 | border-color: props.get($theme, list.join($key, --selected --disabled --border-color)...); |
| 144 | 145 | ||
| 145 | @include bem.multi("&:link, &:visited, &:enabled", "modifier" "badge") { | 146 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'badge') { |
| 146 | color: props.get($theme, list.join($key, --selected --label-color)...); | 147 | color: props.get($theme, list.join($key, --selected --label-color)...); |
| 147 | background-color: props.get($theme, list.join($key, --selected --bg-color)...); | 148 | background-color: props.get($theme, list.join($key, --selected --bg-color)...); |
| 148 | border-color: props.get($theme, list.join($key, --selected --border-color)...); | 149 | border-color: props.get($theme, list.join($key, --selected --border-color)...); |
| 149 | } | 150 | } |
| 150 | 151 | ||
| 151 | &:link, | 152 | &:link, |
| @@ -153,67 +154,47 @@ | |||
| 153 | &:enabled { | 154 | &:enabled { |
| 154 | &:hover, | 155 | &:hover, |
| 155 | &:focus-visible { | 156 | &:focus-visible { |
| 156 | color: props.get($theme, list.join($key, --selected --hover --label-color)...); | 157 | color: props.get($theme, list.join($key, --selected --hover --label-color)...); |
| 157 | background-color: props.get( | 158 | background-color: props.get($theme, list.join($key, --selected --hover --bg-color)...); |
| 158 | $theme, | 159 | border-color: props.get($theme, list.join($key, --selected --hover --border-color)...); |
| 159 | list.join($key, --selected --hover --bg-color)... | ||
| 160 | ); | ||
| 161 | border-color: props.get( | ||
| 162 | $theme, | ||
| 163 | list.join($key, --selected --hover --border-color)... | ||
| 164 | ); | ||
| 165 | } | 160 | } |
| 166 | 161 | ||
| 167 | &:active { | 162 | &:active { |
| 168 | color: props.get($theme, list.join($key, --selected --active --label-color)...); | 163 | color: props.get($theme, list.join($key, --selected --active --label-color)...); |
| 169 | background-color: props.get( | 164 | background-color: props.get($theme, list.join($key, --selected --active --bg-color)...); |
| 170 | $theme, | 165 | border-color: props.get($theme, list.join($key, --selected --active --border-color)...); |
| 171 | list.join($key, --selected --active --bg-color)... | ||
| 172 | ); | ||
| 173 | border-color: props.get( | ||
| 174 | $theme, | ||
| 175 | list.join($key, --selected --active --border-color)... | ||
| 176 | ); | ||
| 177 | } | 166 | } |
| 178 | } | 167 | } |
| 179 | } | 168 | } |
| 180 | } | 169 | } |
| 181 | 170 | ||
| 182 | @mixin styles { | 171 | @mixin styles { |
| 183 | @include materialize-at-root(meta.module-variables("vars")); | 172 | @include materialize-at-root(meta.module-variables('vars')); |
| 184 | 173 | ||
| 185 | @include bem.object("button") { | 174 | @include bem.object('button') { |
| 186 | position: relative; | 175 | position: relative; |
| 187 | display: inline-block; | 176 | display: inline-block; |
| 188 | padding-block: props.get(vars.$pad-b); | 177 | padding-block: props.get(vars.$pad-b); |
| 189 | padding-inline: props.get(vars.$pad-i); | 178 | padding-inline: props.get(vars.$pad-i); |
| 190 | text-overflow: ellipsis; | 179 | text-overflow: ellipsis; |
| 191 | font-size: props.get(vars.$font-size); | 180 | font-size: props.get(vars.$font-size); |
| 192 | line-height: props.get(vars.$line-height); | 181 | line-height: props.get(vars.$line-height); |
| 193 | text-align: center; | 182 | text-align: center; |
| 194 | white-space: nowrap; | 183 | white-space: nowrap; |
| 195 | text-decoration: none; | 184 | text-decoration: none; |
| 196 | border: props.get(vars.$border-width) solid transparent; | 185 | border: props.get(vars.$border-width) solid transparent; |
| 197 | border-radius: props.get(vars.$rounding); | 186 | border-radius: props.get(vars.$rounding); |
| 198 | transition: | 187 | transition: color .1s, background-color .1s, border-color .1s, box-shadow .1s; |
| 199 | color 0.1s, | ||
| 200 | background-color 0.1s, | ||
| 201 | border-color 0.1s, | ||
| 202 | box-shadow 0.1s; | ||
| 203 | 188 | ||
| 204 | &::after { | 189 | &::after { |
| 205 | position: absolute; | 190 | position: absolute; |
| 206 | inset: calc( | 191 | inset: calc(-1 * props.get(vars.$border-width) - props.get(vars.$key-focus--border-offset)); |
| 207 | -1 * props.get(vars.$border-width) - props.get(vars.$key-focus--border-offset) | 192 | z-index: 1; |
| 208 | ); | 193 | display: none; |
| 209 | z-index: 1; | ||
| 210 | display: none; | ||
| 211 | pointer-events: none; | 194 | pointer-events: none; |
| 212 | outline: transparent solid props.get(vars.$key-focus--border-width); | 195 | outline: transparent solid props.get(vars.$key-focus--border-width); |
| 213 | content: ""; | 196 | content: ''; |
| 214 | border-radius: calc( | 197 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset)); |
| 215 | props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset) | ||
| 216 | ); | ||
| 217 | } | 198 | } |
| 218 | 199 | ||
| 219 | &:link, | 200 | &:link, |
| @@ -228,7 +209,7 @@ | |||
| 228 | } | 209 | } |
| 229 | } | 210 | } |
| 230 | 211 | ||
| 231 | @include bem.elem("label") { | 212 | @include bem.elem('label') { |
| 232 | display: inline-block; | 213 | display: inline-block; |
| 233 | margin-inline: props.get(vars.$pad-i-label); | 214 | margin-inline: props.get(vars.$pad-i-label); |
| 234 | } | 215 | } |
| @@ -241,91 +222,79 @@ | |||
| 241 | } | 222 | } |
| 242 | } | 223 | } |
| 243 | 224 | ||
| 244 | @include bem.modifier("pill") { | 225 | @include bem.modifier('pill') { |
| 245 | padding-inline: props.get(vars.$pad-i-pill); | 226 | padding-inline: props.get(vars.$pad-i-pill); |
| 246 | border-radius: 100em; | 227 | border-radius: 100em; |
| 247 | 228 | ||
| 248 | &::after { | 229 | &::after { |
| 249 | border-radius: 100em; | 230 | border-radius: 100em; |
| 250 | } | 231 | } |
| 251 | } | 232 | } |
| 252 | 233 | ||
| 253 | @include bem.modifier("icon") { | 234 | @include bem.modifier('icon') { |
| 254 | inline-size: calc(1em * props.get(vars.$line-height) + 2 * props.get(vars.$pad-b)); | 235 | inline-size: calc(1em * props.get(vars.$line-height) + 2 * props.get(vars.$pad-b)); |
| 255 | padding-inline: 0; | 236 | padding-inline: 0; |
| 256 | } | 237 | } |
| 257 | 238 | ||
| 258 | @include bem.modifier("wide") { | 239 | @include bem.modifier('wide') { |
| 259 | @include bem.elem("label") { | 240 | @include bem.elem('label') { |
| 260 | margin-inline: props.get(vars.$pad-i-wide); | 241 | margin-inline: props.get(vars.$pad-i-wide); |
| 261 | } | 242 | } |
| 262 | } | 243 | } |
| 263 | 244 | ||
| 264 | @include bem.modifier("justify") { | 245 | @include bem.modifier('justify') { |
| 265 | text-align: justify; | 246 | text-align: justify; |
| 266 | text-align-last: justify; | 247 | text-align-last: justify; |
| 267 | } | 248 | } |
| 268 | 249 | ||
| 269 | @each $mod, $pad-i, $pad-i-label, $pad-i-wide, $pad-i-pill, $pad-b, | 250 | @each $mod, $pad-i, $pad-i-label, $pad-i-wide, $pad-i-pill, $pad-b, $font-size in vars.$fixed-sizes { |
| 270 | $font-size in vars.$fixed-sizes | ||
| 271 | { | ||
| 272 | @include bem.modifier($mod) { | 251 | @include bem.modifier($mod) { |
| 273 | padding-block: props.get($pad-b); | 252 | padding-block: props.get($pad-b); |
| 274 | padding-inline: props.get($pad-i); | 253 | padding-inline: props.get($pad-i); |
| 275 | font-size: props.get($font-size); | 254 | font-size: props.get($font-size); |
| 276 | 255 | ||
| 277 | @include bem.elem("label") { | 256 | @include bem.elem('label') { |
| 278 | margin-inline: props.get($pad-i-label); | 257 | margin-inline: props.get($pad-i-label); |
| 279 | } | 258 | } |
| 280 | 259 | ||
| 281 | @include bem.modifier("pill") { | 260 | @include bem.modifier('pill') { |
| 282 | padding-inline: props.get($pad-i-pill); | 261 | padding-inline: props.get($pad-i-pill); |
| 283 | } | 262 | } |
| 284 | 263 | ||
| 285 | @include bem.modifier("icon") { | 264 | @include bem.modifier('icon') { |
| 286 | inline-size: calc(1em * props.get(vars.$line-height) + 2 * props.get($pad-b)); | 265 | inline-size: calc(1em * props.get(vars.$line-height) + 2 * props.get($pad-b)); |
| 287 | padding-inline: 0; | 266 | padding-inline: 0; |
| 288 | } | 267 | } |
| 289 | 268 | ||
| 290 | @include bem.modifier("wide") { | 269 | @include bem.modifier('wide') { |
| 291 | @include bem.elem("label") { | 270 | @include bem.elem('label') { |
| 292 | margin-inline: props.get($pad-i-wide); | 271 | margin-inline: props.get($pad-i-wide); |
| 293 | } | 272 | } |
| 294 | } | 273 | } |
| 295 | } | 274 | } |
| 296 | } | 275 | } |
| 297 | 276 | ||
| 298 | @include bem.modifier("align-block") { | 277 | @include bem.modifier('align-block') { |
| 299 | margin-inline: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$border-width)); | 278 | margin-inline: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$border-width)); |
| 300 | 279 | ||
| 301 | @include bem.modifier("pill") { | 280 | @include bem.modifier('pill') { |
| 302 | margin-inline: calc( | 281 | margin-inline: calc(-1 * props.get(vars.$pad-i-pill) - props.get(vars.$border-width)); |
| 303 | -1 * props.get(vars.$pad-i-pill) - props.get(vars.$border-width) | ||
| 304 | ); | ||
| 305 | } | 282 | } |
| 306 | 283 | ||
| 307 | @include bem.modifier("icon") { | 284 | @include bem.modifier('icon') { |
| 308 | margin-inline: calc( | 285 | margin-inline: calc(-1 * props.get(vars.$pad-b) - props.get(vars.$border-width) - .5em * (props.get(vars.$line-height) - 1)); |
| 309 | -1 * props.get(vars.$pad-b) - props.get(vars.$border-width) - 0.5em * | ||
| 310 | (props.get(vars.$line-height) - 1) | ||
| 311 | ); | ||
| 312 | } | 286 | } |
| 313 | 287 | ||
| 314 | @each $mod, $pad-i, $pad-i-label, $pad-i-pill, $pad-b, $font-size in vars.$fixed-sizes { | 288 | @each $mod, $pad-i, $pad-i-label, $pad-i-pill, $pad-b, $font-size in vars.$fixed-sizes { |
| 315 | @include bem.modifier($mod) { | 289 | @include bem.modifier($mod) { |
| 316 | margin-inline: calc(-1 * props.get($pad-i) - props.get(vars.$border-width)); | 290 | margin-inline: calc(-1 * props.get($pad-i) - props.get(vars.$border-width)); |
| 317 | 291 | ||
| 318 | @include bem.modifier("pill") { | 292 | @include bem.modifier('pill') { |
| 319 | margin-inline: calc( | 293 | margin-inline: calc(-1 * props.get($pad-i-pill) - props.get(vars.$border-width)); |
| 320 | -1 * props.get($pad-i-pill) - props.get(vars.$border-width) | ||
| 321 | ); | ||
| 322 | } | 294 | } |
| 323 | 295 | ||
| 324 | @include bem.modifier("icon") { | 296 | @include bem.modifier('icon') { |
| 325 | margin-inline: calc( | 297 | margin-inline: calc(-1 * props.get($pad-b) - props.get(vars.$border-width) - .5em * (props.get(vars.$line-height) - 1)); |
| 326 | -1 * props.get($pad-b) - props.get(vars.$border-width) - 0.5em * | ||
| 327 | (props.get(vars.$line-height) - 1) | ||
| 328 | ); | ||
| 329 | } | 298 | } |
| 330 | } | 299 | } |
| 331 | } | 300 | } |
diff --git a/src/objects/_button.vars.scss b/src/objects/_button.vars.scss index a137d6d..3f835ae 100644 --- a/src/objects/_button.vars.scss +++ b/src/objects/_button.vars.scss | |||
| @@ -1,456 +1,386 @@ | |||
| 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 | $line-height: props.def(--o-button--line-height, 1.4) !default; | 6 | $line-height: props.def(--o-button--line-height, 1.4) !default; |
| 7 | $border-width: props.def(--o-button--border-width, props.get(core.$border-width--thin)) !default; | 7 | $border-width: props.def(--o-button--border-width, props.get(core.$border-width--thin)) !default; |
| 8 | $rounding: props.def(--o-button--rounding, props.get(core.$rounding--sm)) !default; | 8 | $rounding: props.def(--o-button--rounding, props.get(core.$rounding--sm)) !default; |
| 9 | 9 | ||
| 10 | $pad-i--xs: props.def(--o-button--xs--pad-i, props.get(core.$size--75)) !default; | 10 | $pad-i--xs: props.def(--o-button--xs--pad-i, props.get(core.$size--75)) !default; |
| 11 | $pad-i-label--xs: props.def(--o-button--xs--pad-i-label, props.get(core.$size--40)) !default; | 11 | $pad-i-label--xs: props.def(--o-button--xs--pad-i-label, props.get(core.$size--40)) !default; |
| 12 | $pad-i-wide--xs: props.def(--o-button--xs--pad-i-wide, props.get(core.$size--150)) !default; | 12 | $pad-i-wide--xs: props.def(--o-button--xs--pad-i-wide, props.get(core.$size--150)) !default; |
| 13 | $pad-i-pill--xs: props.def(--o-button--xs--pad-i-pill, props.get(core.$size--115)) !default; | 13 | $pad-i-pill--xs: props.def(--o-button--xs--pad-i-pill, props.get(core.$size--115)) !default; |
| 14 | $pad-b--xs: props.def(--o-button--xs--pad-b, props.get(core.$size--40)) !default; | 14 | $pad-b--xs: props.def(--o-button--xs--pad-b, props.get(core.$size--40)) !default; |
| 15 | $font-size--xs: props.def(--o-button--xs--font-size, props.get(core.$font-size--75)) !default; | 15 | $font-size--xs: props.def(--o-button--xs--font-size, props.get(core.$font-size--75)) !default; |
| 16 | 16 | ||
| 17 | $pad-i--sm: props.def(--o-button--sm--pad-i, props.get(core.$size--85)) !default; | 17 | $pad-i--sm: props.def(--o-button--sm--pad-i, props.get(core.$size--85)) !default; |
| 18 | $pad-i-label--sm: props.def(--o-button--sm--pad-i-label, props.get(core.$size--50)) !default; | 18 | $pad-i-label--sm: props.def(--o-button--sm--pad-i-label, props.get(core.$size--50)) !default; |
| 19 | $pad-i-wide--sm: props.def(--o-button--sm--pad-i-wide, props.get(core.$size--175)) !default; | 19 | $pad-i-wide--sm: props.def(--o-button--sm--pad-i-wide, props.get(core.$size--175)) !default; |
| 20 | $pad-i-pill--sm: props.def(--o-button--sm--pad-i-pill, props.get(core.$size--125)) !default; | 20 | $pad-i-pill--sm: props.def(--o-button--sm--pad-i-pill, props.get(core.$size--125)) !default; |
| 21 | $pad-b--sm: props.def(--o-button--sm--pad-b, props.get(core.$size--50)) !default; | 21 | $pad-b--sm: props.def(--o-button--sm--pad-b, props.get(core.$size--50)) !default; |
| 22 | $font-size--sm: props.def(--o-button--sm--font-size, props.get(core.$font-size--100)) !default; | 22 | $font-size--sm: props.def(--o-button--sm--font-size, props.get(core.$font-size--100)) !default; |
| 23 | 23 | ||
| 24 | $pad-i: props.def(--o-button--pad-i, props.get(core.$size--115)) !default; | 24 | $pad-i: props.def(--o-button--pad-i, props.get(core.$size--115)) !default; |
| 25 | $pad-i-label: props.def(--o-button--pad-i-label, props.get(core.$size--50)) !default; | 25 | $pad-i-label: props.def(--o-button--pad-i-label, props.get(core.$size--50)) !default; |
| 26 | $pad-i-wide: props.def(--o-button--pad-i-wide, props.get(core.$size--200)) !default; | 26 | $pad-i-wide: props.def(--o-button--pad-i-wide, props.get(core.$size--200)) !default; |
| 27 | $pad-i-pill: props.def(--o-button--pad-i-pill, props.get(core.$size--160)) !default; | 27 | $pad-i-pill: props.def(--o-button--pad-i-pill, props.get(core.$size--160)) !default; |
| 28 | $pad-b: props.def(--o-button--pad-b, props.get(core.$size--85)) !default; | 28 | $pad-b: props.def(--o-button--pad-b, props.get(core.$size--85)) !default; |
| 29 | $font-size: props.def(--o-button--font-size, props.get(core.$font-size--100)) !default; | 29 | $font-size: props.def(--o-button--font-size, props.get(core.$font-size--100)) !default; |
| 30 | 30 | ||
| 31 | $pad-i--lg: props.def(--o-button--lg--pad-i, props.get(core.$size--160)) !default; | 31 | $pad-i--lg: props.def(--o-button--lg--pad-i, props.get(core.$size--160)) !default; |
| 32 | $pad-i-label--lg: props.def(--o-button--lg--pad-i-label, props.get(core.$size--65)) !default; | 32 | $pad-i-label--lg: props.def(--o-button--lg--pad-i-label, props.get(core.$size--65)) !default; |
| 33 | $pad-i-wide--lg: props.def(--o-button--lg--pad-i-wide, props.get(core.$size--300)) !default; | 33 | $pad-i-wide--lg: props.def(--o-button--lg--pad-i-wide, props.get(core.$size--300)) !default; |
| 34 | $pad-i-pill--lg: props.def(--o-button--lg--pad-i-pill, props.get(core.$size--175)) !default; | 34 | $pad-i-pill--lg: props.def(--o-button--lg--pad-i-pill, props.get(core.$size--175)) !default; |
| 35 | $pad-b--lg: props.def(--o-button--lg--pad-b, props.get(core.$size--115)) !default; | 35 | $pad-b--lg: props.def(--o-button--lg--pad-b, props.get(core.$size--115)) !default; |
| 36 | $font-size--lg: props.def(--o-button--lg--font-size, props.get(core.$font-size--150)) !default; | 36 | $font-size--lg: props.def(--o-button--lg--font-size, props.get(core.$font-size--150)) !default; |
| 37 | 37 | ||
| 38 | $pad-i--xl: props.def(--o-button--xl--pad-i, props.get(core.$size--200)) !default; | 38 | $pad-i--xl: props.def(--o-button--xl--pad-i, props.get(core.$size--200)) !default; |
| 39 | $pad-i-label--xl: props.def(--o-button--xl--pad-i-label, props.get(core.$size--85)) !default; | 39 | $pad-i-label--xl: props.def(--o-button--xl--pad-i-label, props.get(core.$size--85)) !default; |
| 40 | $pad-i-wide--xl: props.def(--o-button--xl--pad-i-wide, props.get(core.$size--400)) !default; | 40 | $pad-i-wide--xl: props.def(--o-button--xl--pad-i-wide, props.get(core.$size--400)) !default; |
| 41 | $pad-i-pill--xl: props.def(--o-button--xl--pad-i-pill, props.get(core.$size--225)) !default; | 41 | $pad-i-pill--xl: props.def(--o-button--xl--pad-i-pill, props.get(core.$size--225)) !default; |
| 42 | $pad-b--xl: props.def(--o-button--xl--pad-b, props.get(core.$size--150)) !default; | 42 | $pad-b--xl: props.def(--o-button--xl--pad-b, props.get(core.$size--150)) !default; |
| 43 | $font-size--xl: props.def(--o-button--xl--font-size, props.get(core.$font-size--200)) !default; | 43 | $font-size--xl: props.def(--o-button--xl--font-size, props.get(core.$font-size--200)) !default; |
| 44 | 44 | ||
| 45 | $shadow-x: props.def(--o-button--shadow-x, props.get(core.$shadow--l1--x)) !default; | 45 | $shadow-x: props.def(--o-button--shadow-x, props.get(core.$shadow--l1--x)) !default; |
| 46 | $shadow-y: props.def(--o-button--shadow-y, props.get(core.$shadow--l1--y)) !default; | 46 | $shadow-y: props.def(--o-button--shadow-y, props.get(core.$shadow--l1--y)) !default; |
| 47 | $shadow-blur: props.def(--o-button--shadow-blur, props.get(core.$shadow--l1--blur)) !default; | 47 | $shadow-blur: props.def(--o-button--shadow-blur, props.get(core.$shadow--l1--blur)) !default; |
| 48 | $shadow-grow: props.def(--o-button--shadow-grow, props.get(core.$shadow--l1--grow)) !default; | 48 | $shadow-grow: props.def(--o-button--shadow-grow, props.get(core.$shadow--l1--grow)) !default; |
| 49 | 49 | ||
| 50 | $key-focus--border-width: props.def( | 50 | $key-focus--border-width: props.def(--o-button--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 51 | --o-button--key-focus--border-width, | 51 | $key-focus--border-offset: props.def(--o-button--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 52 | props.get(core.$key-focus--border-width) | 52 | $key-focus--outline-width: props.def(--o-button--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; |
| 53 | ) !default; | ||
| 54 | $key-focus--border-offset: props.def( | ||
| 55 | --o-button--key-focus--border-offset, | ||
| 56 | props.get(core.$key-focus--border-offset) | ||
| 57 | ) !default; | ||
| 58 | $key-focus--outline-width: props.def( | ||
| 59 | --o-button--key-focus--outline-width, | ||
| 60 | props.get(core.$key-focus--outline-width) | ||
| 61 | ) !default; | ||
| 62 | 53 | ||
| 63 | $fixed-sizes: ( | 54 | $fixed-sizes: ( |
| 64 | "xs" $pad-i--xs $pad-i-label--xs $pad-i-wide--xs $pad-i-pill--xs $pad-b--xs $font-size--xs, | 55 | 'xs' $pad-i--xs $pad-i-label--xs $pad-i-wide--xs $pad-i-pill--xs $pad-b--xs $font-size--xs, |
| 65 | "sm" $pad-i--sm $pad-i-label--sm $pad-i-wide--sm $pad-i-pill--sm $pad-b--sm $font-size--sm, | 56 | 'sm' $pad-i--sm $pad-i-label--sm $pad-i-wide--sm $pad-i-pill--sm $pad-b--sm $font-size--sm, |
| 66 | "lg" $pad-i--lg $pad-i-label--lg $pad-i-wide--lg $pad-i-pill--lg $pad-b--lg $font-size--lg, | 57 | 'lg' $pad-i--lg $pad-i-label--lg $pad-i-wide--lg $pad-i-pill--lg $pad-b--lg $font-size--lg, |
| 67 | "xl" $pad-i--xl $pad-i-label--xl $pad-i-wide--xl $pad-i-pill--xl $pad-b--xl $font-size--xl | 58 | 'xl' $pad-i--xl $pad-i-label--xl $pad-i-wide--xl $pad-i-pill--xl $pad-b--xl $font-size--xl, |
| 68 | ) !default; | 59 | ) !default; |
| 69 | 60 | ||
| 70 | $themes: props.def(--o-button, (), "color"); | 61 | $themes: props.def(--o-button, (), 'color'); |
| 71 | 62 | ||
| 72 | $default-theme-override: () !default; | 63 | $default-theme-override: () !default; |
| 73 | $default-theme: map.deep-merge( | 64 | $default-theme: map.deep-merge(( |
| 74 | ( | 65 | --bg-color: props.get(core.$theme, --bg-l2), |
| 75 | --bg-color: props.get(core.$theme, --bg-l2), | 66 | --label-color: props.get(core.$theme, --text), |
| 76 | --label-color: props.get(core.$theme, --text), | 67 | --border-color: props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border-strong), |
| 77 | --border-color: props.get(core.$theme, --box, --border) | 68 | --shadow-color: props.get(core.$theme, --shadow), |
| 78 | props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border-strong), | 69 | |
| 79 | --shadow-color: props.get(core.$theme, --shadow), | 70 | --hover: ( |
| 71 | --bg-color: props.get(core.$theme, --bg-l1), | ||
| 72 | --label-color: props.get(core.$theme, --heading), | ||
| 73 | --border-color: props.get(core.$theme, --border), | ||
| 74 | ), | ||
| 75 | |||
| 76 | --active: ( | ||
| 77 | --bg-color: props.get(core.$theme, --border-mute), | ||
| 78 | --label-color: props.get(core.$theme, --heading), | ||
| 79 | --border-color: props.get(core.$theme, --border-strong), | ||
| 80 | ), | ||
| 81 | |||
| 82 | --disabled: ( | ||
| 83 | --bg-color: transparent, | ||
| 84 | --label-color: props.get(core.$theme, --border-strong), | ||
| 85 | --border-color: props.get(core.$theme, --text-disabled), | ||
| 86 | ), | ||
| 87 | |||
| 88 | --key-focus: ( | ||
| 89 | --border-color: props.get(core.$theme, --focus, --border), | ||
| 90 | --outline-color: props.get(core.$theme, --focus, --outline), | ||
| 91 | ), | ||
| 92 | |||
| 93 | --highlighted: ( | ||
| 94 | --border-color: props.get(core.$theme, --focus, --border), | ||
| 95 | --shadow-color: props.get(core.$theme, --focus, --outline), | ||
| 96 | ), | ||
| 97 | |||
| 98 | --selected: ( | ||
| 99 | --bg-color: props.get(core.$theme, --heading), | ||
| 100 | --label-color: props.get(core.$theme, --base, --50), | ||
| 101 | --border-color: props.get(core.$theme, --heading), | ||
| 102 | |||
| 80 | --hover: ( | 103 | --hover: ( |
| 81 | --bg-color: props.get(core.$theme, --bg-l1), | 104 | --bg-color: props.get(core.$theme, --text), |
| 82 | --label-color: props.get(core.$theme, --heading), | 105 | --label-color: props.get(core.$theme, --base, --50), |
| 83 | --border-color: props.get(core.$theme, --border), | 106 | --border-color: props.get(core.$theme, --text), |
| 84 | ), | 107 | ), |
| 85 | 108 | ||
| 86 | --active: ( | 109 | --active: ( |
| 87 | --bg-color: props.get(core.$theme, --border-mute), | 110 | --bg-color: props.get(core.$theme, --text-mute), |
| 88 | --label-color: props.get(core.$theme, --heading), | 111 | --label-color: props.get(core.$theme, --base, --50), |
| 89 | --border-color: props.get(core.$theme, --border-strong), | 112 | --border-color: props.get(core.$theme, --text-mute), |
| 90 | ), | 113 | ), |
| 91 | 114 | ||
| 92 | --disabled: ( | 115 | --disabled: ( |
| 93 | --bg-color: transparent, | 116 | --bg-color: props.get(core.$theme, --border-mute), |
| 94 | --label-color: props.get(core.$theme, --border-strong), | 117 | --label-color: props.get(core.$theme, --border-strong), |
| 95 | --border-color: props.get(core.$theme, --text-disabled), | 118 | --border-color: props.get(core.$theme, --border-mute), |
| 96 | ), | 119 | ), |
| 120 | ), | ||
| 97 | 121 | ||
| 98 | --key-focus: ( | 122 | --badge: ( |
| 99 | --border-color: props.get(core.$theme, --focus, --border), | 123 | --bg-color: props.get(core.$theme, --border-mute), |
| 100 | --outline-color: props.get(core.$theme, --focus, --outline), | 124 | --label-color: props.get(core.$theme, --heading), |
| 101 | ), | 125 | --border-color: props.get(core.$theme, --border-mute), |
| 102 | 126 | ||
| 103 | --highlighted: ( | 127 | --hover: ( |
| 104 | --border-color: props.get(core.$theme, --focus, --border), | 128 | --bg-color: props.get(core.$theme, --border), |
| 105 | --shadow-color: props.get(core.$theme, --focus, --outline), | 129 | --label-color: props.get(core.$theme, --heading), |
| 130 | --border-color: props.get(core.$theme, --border), | ||
| 106 | ), | 131 | ), |
| 107 | 132 | ||
| 108 | --selected: ( | 133 | --active: ( |
| 109 | --bg-color: props.get(core.$theme, --heading), | 134 | --bg-color: props.get(core.$theme, --border-strong), |
| 110 | --label-color: props.get(core.$theme, --base, --50), | 135 | --label-color: props.get(core.$theme, --heading), |
| 111 | --border-color: props.get(core.$theme, --heading), | 136 | --border-color: props.get(core.$theme, --border-strong), |
| 112 | --hover: ( | 137 | ), |
| 113 | --bg-color: props.get(core.$theme, --text), | 138 | ), |
| 114 | --label-color: props.get(core.$theme, --base, --50), | ||
| 115 | --border-color: props.get(core.$theme, --text), | ||
| 116 | ), | ||
| 117 | 139 | ||
| 118 | --active: ( | 140 | --quiet: ( |
| 119 | --bg-color: props.get(core.$theme, --text-mute), | 141 | --label-color: props.get(core.$theme, --text), |
| 120 | --label-color: props.get(core.$theme, --base, --50), | ||
| 121 | --border-color: props.get(core.$theme, --text-mute), | ||
| 122 | ), | ||
| 123 | 142 | ||
| 124 | --disabled: ( | 143 | --hover: ( |
| 125 | --bg-color: props.get(core.$theme, --border-mute), | 144 | --bg-color: props.get(core.$theme, --border-mute), |
| 126 | --label-color: props.get(core.$theme, --border-strong), | 145 | --label-color: props.get(core.$theme, --heading), |
| 127 | --border-color: props.get(core.$theme, --border-mute), | ||
| 128 | ), | ||
| 129 | ), | 146 | ), |
| 130 | 147 | ||
| 131 | --badge: ( | 148 | --active: ( |
| 132 | --bg-color: props.get(core.$theme, --border-mute), | 149 | --bg-color: props.get(core.$theme, --border), |
| 133 | --label-color: props.get(core.$theme, --heading), | 150 | --label-color: props.get(core.$theme, --heading), |
| 134 | --border-color: props.get(core.$theme, --border-mute), | ||
| 135 | --hover: ( | ||
| 136 | --bg-color: props.get(core.$theme, --border), | ||
| 137 | --label-color: props.get(core.$theme, --heading), | ||
| 138 | --border-color: props.get(core.$theme, --border), | ||
| 139 | ), | ||
| 140 | |||
| 141 | --active: ( | ||
| 142 | --bg-color: props.get(core.$theme, --border-strong), | ||
| 143 | --label-color: props.get(core.$theme, --heading), | ||
| 144 | --border-color: props.get(core.$theme, --border-strong), | ||
| 145 | ), | ||
| 146 | ), | 151 | ), |
| 147 | 152 | ||
| 148 | --quiet: ( | 153 | --disabled: ( |
| 149 | --label-color: props.get(core.$theme, --text), | 154 | --label-color: props.get(core.$theme, --border-strong), |
| 150 | --hover: ( | ||
| 151 | --bg-color: props.get(core.$theme, --border-mute), | ||
| 152 | --label-color: props.get(core.$theme, --heading), | ||
| 153 | ), | ||
| 154 | |||
| 155 | --active: ( | ||
| 156 | --bg-color: props.get(core.$theme, --border), | ||
| 157 | --label-color: props.get(core.$theme, --heading), | ||
| 158 | ), | ||
| 159 | |||
| 160 | --disabled: ( | ||
| 161 | --label-color: props.get(core.$theme, --border-strong), | ||
| 162 | ), | ||
| 163 | ), | 155 | ), |
| 164 | ), | 156 | ), |
| 165 | $default-theme-override | 157 | ), $default-theme-override) !default; |
| 166 | ) !default; | 158 | $default-theme: props.def(--o-button, $default-theme, 'color'); |
| 167 | $default-theme: props.def(--o-button, $default-theme, "color"); | ||
| 168 | 159 | ||
| 169 | $default-theme-dark-override: () !default; | 160 | $default-theme-dark-override: () !default; |
| 170 | $default-theme-dark: map.deep-merge( | 161 | $default-theme-dark: map.deep-merge(( |
| 171 | ( | 162 | --bg-color: props.get(core.$theme, --border-mute), |
| 172 | --bg-color: props.get(core.$theme, --border-mute), | 163 | --border-color: props.get(core.$theme, --border-mute), |
| 173 | --border-color: props.get(core.$theme, --border-mute), | ||
| 174 | --hover: ( | ||
| 175 | --bg-color: props.get(core.$theme, --border), | ||
| 176 | --border-color: props.get(core.$theme, --border), | ||
| 177 | ), | ||
| 178 | 164 | ||
| 179 | --active: ( | 165 | --hover: ( |
| 180 | --bg-color: props.get(core.$theme, --border-strong), | 166 | --bg-color: props.get(core.$theme, --border), |
| 181 | --border-color: props.get(core.$theme, --border-strong), | 167 | --border-color: props.get(core.$theme, --border), |
| 182 | ), | 168 | ), |
| 183 | 169 | ||
| 184 | --selected: ( | 170 | --active: ( |
| 185 | --border-color: props.get(core.$theme, --text), | 171 | --bg-color: props.get(core.$theme, --border-strong), |
| 186 | ), | 172 | --border-color: props.get(core.$theme, --border-strong), |
| 187 | ), | 173 | ), |
| 188 | $default-theme-override | 174 | |
| 189 | ) !default; | 175 | --selected: ( |
| 190 | $default-theme-dark: props.def(--o-button, $default-theme-dark, "dark"); | 176 | --border-color: props.get(core.$theme, --text), |
| 177 | ), | ||
| 178 | ), $default-theme-override) !default; | ||
| 179 | $default-theme-dark: props.def(--o-button, $default-theme-dark, 'dark'); | ||
| 191 | 180 | ||
| 192 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 181 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 193 | $button-theme: --static-#{string.slice($theme, 3)}; | 182 | $button-theme: --static-#{string.slice($theme, 3)}; |
| 194 | 183 | ||
| 195 | $themes: props.merge( | 184 | $themes: props.merge($themes, ( |
| 196 | $themes, | 185 | $button-theme: ( |
| 197 | ( | 186 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 198 | $button-theme: ( | 187 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 199 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 188 | --border-color: props.get(core.$transparent-colors, $theme, --300) props.get(core.$transparent-colors, $theme, --300) props.get(core.$transparent-colors, $theme, --400), |
| 200 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 189 | --shadow-color: props.get(core.$transparent-colors, --black, --200), |
| 201 | --border-color: props.get(core.$transparent-colors, $theme, --300) | 190 | |
| 202 | props.get(core.$transparent-colors, $theme, --300) | 191 | --hover: ( |
| 203 | props.get(core.$transparent-colors, $theme, --400), | 192 | --bg-color: props.get(core.$transparent-colors, $theme, --300), |
| 204 | --shadow-color: props.get(core.$transparent-colors, --black, --200), | 193 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 205 | --hover: ( | 194 | --border-color: props.get(core.$transparent-colors, $theme, --400), |
| 206 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | 195 | ), |
| 207 | --label-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 208 | --border-color: props.get(core.$transparent-colors, $theme, --400), | ||
| 209 | ), | ||
| 210 | 196 | ||
| 211 | --active: ( | 197 | --active: ( |
| 212 | --bg-color: props.get(core.$transparent-colors, $theme, --400), | 198 | --bg-color: props.get(core.$transparent-colors, $theme, --400), |
| 213 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 199 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 214 | --border-color: props.get(core.$transparent-colors, $theme, --500), | 200 | --border-color: props.get(core.$transparent-colors, $theme, --500), |
| 215 | ), | 201 | ), |
| 216 | 202 | ||
| 217 | --disabled: ( | 203 | --disabled: ( |
| 218 | --bg-color: props.get(core.$transparent-colors, $theme, --100), | 204 | --bg-color: props.get(core.$transparent-colors, $theme, --100), |
| 219 | --label-color: props.get(core.$transparent-colors, $theme, --500), | 205 | --label-color: props.get(core.$transparent-colors, $theme, --500), |
| 220 | --border-color: props.get(core.$transparent-colors, $theme, --300), | 206 | --border-color: props.get(core.$transparent-colors, $theme, --300), |
| 221 | ), | 207 | ), |
| 222 | 208 | ||
| 223 | --key-focus: ( | 209 | --key-focus: ( |
| 224 | --border-color: props.get(core.$transparent-colors, $theme, --900), | 210 | --border-color: props.get(core.$transparent-colors, $theme, --900), |
| 225 | --outline-color: props.get(core.$transparent-colors, $theme, --300), | 211 | --outline-color: props.get(core.$transparent-colors, $theme, --300), |
| 226 | ), | 212 | ), |
| 227 | 213 | ||
| 228 | --highlighted: ( | 214 | --highlighted: ( |
| 229 | --border-color: props.get(core.$transparent-colors, $theme, --900), | 215 | --border-color: props.get(core.$transparent-colors, $theme, --900), |
| 230 | --shadow-color: props.get(core.$transparent-colors, --black, --200), | 216 | --shadow-color: props.get(core.$transparent-colors, --black, --200), |
| 231 | ), | 217 | ), |
| 232 | 218 | ||
| 233 | --selected: ( | 219 | --selected: ( |
| 234 | --bg-color: props.get(core.$transparent-colors, $theme, --900), | 220 | --bg-color: props.get(core.$transparent-colors, $theme, --900), |
| 235 | --label-color: props.get(core.$transparent-colors, $theme, --text), | 221 | --label-color: props.get(core.$transparent-colors, $theme, --text), |
| 236 | --border-color: props.get(core.$transparent-colors, $theme, --100) | 222 | --border-color: props.get(core.$transparent-colors, $theme, --100) props.get(core.$transparent-colors, $theme, --100) props.get(core.$transparent-colors, $theme, --200), |
| 237 | props.get(core.$transparent-colors, $theme, --100) | ||
| 238 | props.get(core.$transparent-colors, $theme, --200), | ||
| 239 | --hover: ( | ||
| 240 | --bg-color: props.get(core.$transparent-colors, $theme, --800), | ||
| 241 | --label-color: props.get( | ||
| 242 | core.$transparent-colors, | ||
| 243 | $theme, | ||
| 244 | --text | ||
| 245 | ), | ||
| 246 | --border-color: props.get( | ||
| 247 | core.$transparent-colors, | ||
| 248 | $theme, | ||
| 249 | --100 | ||
| 250 | ), | ||
| 251 | ), | ||
| 252 | 223 | ||
| 253 | --active: ( | 224 | --hover: ( |
| 254 | --bg-color: props.get(core.$transparent-colors, $theme, --800), | 225 | --bg-color: props.get(core.$transparent-colors, $theme, --800), |
| 255 | --label-color: props.get( | 226 | --label-color: props.get(core.$transparent-colors, $theme, --text), |
| 256 | core.$transparent-colors, | 227 | --border-color: props.get(core.$transparent-colors, $theme, --100), |
| 257 | $theme, | 228 | ), |
| 258 | --text | ||
| 259 | ), | ||
| 260 | --border-color: props.get( | ||
| 261 | core.$transparent-colors, | ||
| 262 | $theme, | ||
| 263 | --100 | ||
| 264 | ), | ||
| 265 | ), | ||
| 266 | 229 | ||
| 267 | --disabled: ( | 230 | --active: ( |
| 268 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 231 | --bg-color: props.get(core.$transparent-colors, $theme, --800), |
| 269 | --label-color: props.get( | 232 | --label-color: props.get(core.$transparent-colors, $theme, --text), |
| 270 | core.$transparent-colors, | 233 | --border-color: props.get(core.$transparent-colors, $theme, --100), |
| 271 | $theme, | 234 | ), |
| 272 | --500 | ||
| 273 | ), | ||
| 274 | --border-color: props.get( | ||
| 275 | core.$transparent-colors, | ||
| 276 | $theme, | ||
| 277 | --100 | ||
| 278 | ), | ||
| 279 | ), | ||
| 280 | ), | ||
| 281 | 235 | ||
| 282 | --badge: ( | 236 | --disabled: ( |
| 283 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 237 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 284 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 238 | --label-color: props.get(core.$transparent-colors, $theme, --500), |
| 285 | --border-color: transparent, | 239 | --border-color: props.get(core.$transparent-colors, $theme, --100), |
| 240 | ), | ||
| 241 | ), | ||
| 286 | 242 | ||
| 287 | --hover: ( | 243 | --badge: ( |
| 288 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | 244 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 289 | --label-color: props.get( | 245 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 290 | core.$transparent-colors, | 246 | --border-color: transparent, |
| 291 | $theme, | ||
| 292 | --900 | ||
| 293 | ), | ||
| 294 | --border-color: transparent, | ||
| 295 | ), | ||
| 296 | 247 | ||
| 297 | --active: ( | 248 | --hover: ( |
| 298 | --bg-color: props.get(core.$transparent-colors, $theme, --400), | 249 | --bg-color: props.get(core.$transparent-colors, $theme, --300), |
| 299 | --label-color: props.get( | 250 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 300 | core.$transparent-colors, | 251 | --border-color: transparent, |
| 301 | $theme, | 252 | ), |
| 302 | --900 | ||
| 303 | ), | ||
| 304 | --border-color: transparent, | ||
| 305 | ), | ||
| 306 | ), | ||
| 307 | 253 | ||
| 308 | --quiet: ( | 254 | --active: ( |
| 309 | --label-color: props.get(core.$transparent-colors, $theme, --900), | 255 | --bg-color: props.get(core.$transparent-colors, $theme, --400), |
| 310 | --hover: ( | 256 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 311 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | 257 | --border-color: transparent, |
| 312 | --label-color: props.get( | 258 | ), |
| 313 | core.$transparent-colors, | 259 | ), |
| 314 | $theme, | ||
| 315 | --900 | ||
| 316 | ), | ||
| 317 | ), | ||
| 318 | 260 | ||
| 319 | --active: ( | 261 | --quiet: ( |
| 320 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | 262 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 321 | --label-color: props.get( | ||
| 322 | core.$transparent-colors, | ||
| 323 | $theme, | ||
| 324 | --900 | ||
| 325 | ), | ||
| 326 | ), | ||
| 327 | 263 | ||
| 328 | --disabled: ( | 264 | --hover: ( |
| 329 | --label-color: props.get( | 265 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 330 | core.$transparent-colors, | 266 | --label-color: props.get(core.$transparent-colors, $theme, --900), |
| 331 | $theme, | ||
| 332 | --500 | ||
| 333 | ), | ||
| 334 | ), | ||
| 335 | ), | ||
| 336 | ), | 267 | ), |
| 268 | |||
| 269 | --active: ( | ||
| 270 | --bg-color: props.get(core.$transparent-colors, $theme, --300), | ||
| 271 | --label-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 272 | ), | ||
| 273 | |||
| 274 | --disabled: ( | ||
| 275 | --label-color: props.get(core.$transparent-colors, $theme, --500), | ||
| 276 | ), | ||
| 277 | ), | ||
| 337 | ) | 278 | ) |
| 338 | ); | 279 | )); |
| 339 | } | 280 | } |
| 340 | 281 | ||
| 341 | $themes-config: ( | 282 | $themes-config: ( |
| 342 | accent: --accent, | 283 | accent: --accent, |
| 343 | positive: --positive, | 284 | positive: --positive, |
| 344 | negative: --negative, | 285 | negative: --negative, |
| 345 | warning: --warning, | 286 | warning: --warning, |
| 346 | ) !default; | 287 | ) !default; |
| 347 | 288 | ||
| 348 | @each $theme, $key in $themes-config { | 289 | @each $theme, $key in $themes-config { |
| 349 | $themes: props.merge( | 290 | $themes: props.merge($themes, ( |
| 350 | $themes, | 291 | --#{$theme}: ( |
| 351 | ( | 292 | --bg-color: props.get(core.$theme, $key, --100), |
| 352 | --#{$theme}: ( | 293 | --label-color: props.get(core.$theme, $key, --1100), |
| 353 | --bg-color: props.get(core.$theme, $key, --100), | 294 | --border-color: props.get(core.$theme, $key, --500) props.get(core.$theme, $key, --500) props.get(core.$theme, $key, --600), |
| 354 | --label-color: props.get(core.$theme, $key, --1100), | 295 | --shadow-color: props.get(core.$theme, $key, --200), |
| 355 | --border-color: props.get(core.$theme, $key, --500) | ||
| 356 | props.get(core.$theme, $key, --500) | ||
| 357 | props.get(core.$theme, $key, --600), | ||
| 358 | --shadow-color: props.get(core.$theme, $key, --200), | ||
| 359 | --hover: ( | ||
| 360 | --bg-color: props.get(core.$theme, $key, --200), | ||
| 361 | --label-color: props.get(core.$theme, $key, --1200), | ||
| 362 | --border-color: props.get(core.$theme, $key, --600), | ||
| 363 | ), | ||
| 364 | 296 | ||
| 365 | --active: ( | 297 | --hover: ( |
| 366 | --bg-color: props.get(core.$theme, $key, --300), | 298 | --bg-color: props.get(core.$theme, $key, --200), |
| 367 | --label-color: props.get(core.$theme, $key, --1300), | 299 | --label-color: props.get(core.$theme, $key, --1200), |
| 368 | --border-color: props.get(core.$theme, $key, --800), | 300 | --border-color: props.get(core.$theme, $key, --600), |
| 369 | ), | 301 | ), |
| 370 | 302 | ||
| 371 | --disabled: ( | 303 | --active: ( |
| 372 | --bg-color: props.get(core.$theme, --bg-l1), | 304 | --bg-color: props.get(core.$theme, $key, --300), |
| 373 | --label-color: props.get(core.$theme, --border-strong), | 305 | --label-color: props.get(core.$theme, $key, --1300), |
| 374 | --border-color: props.get(core.$theme, --border), | 306 | --border-color: props.get(core.$theme, $key, --800), |
| 375 | ), | 307 | ), |
| 376 | 308 | ||
| 377 | --key-focus: ( | 309 | --disabled: ( |
| 378 | --border-color: props.get(core.$theme, --focus, --border), | 310 | --bg-color: props.get(core.$theme, --bg-l1), |
| 379 | --outline-color: props.get(core.$theme, --focus, --outline), | 311 | --label-color: props.get(core.$theme, --border-strong), |
| 380 | ), | 312 | --border-color: props.get(core.$theme, --border), |
| 313 | ), | ||
| 381 | 314 | ||
| 382 | --highlighted: ( | 315 | --key-focus: ( |
| 383 | --border-color: props.get(core.$theme, $key, --900), | 316 | --border-color: props.get(core.$theme, --focus, --border), |
| 384 | --shadow-color: props.get(core.$theme, $key, --200), | 317 | --outline-color: props.get(core.$theme, --focus, --outline), |
| 385 | ), | 318 | ), |
| 386 | 319 | ||
| 387 | --selected: ( | 320 | --highlighted: ( |
| 388 | --bg-color: props.get(core.$theme, #{$key}-static, --900), | 321 | --border-color: props.get(core.$theme, $key, --900), |
| 389 | --label-color: props.get(core.$theme, #{$key}-static, --900-text), | 322 | --shadow-color: props.get(core.$theme, $key, --200), |
| 390 | --border-color: props.get(core.$theme, #{$key}-static, --900) | 323 | ), |
| 391 | props.get(core.$theme, #{$key}-static, --900) | ||
| 392 | props.get(core.$theme, #{$key}-static, --1000), | ||
| 393 | --hover: ( | ||
| 394 | --bg-color: props.get(core.$theme, #{$key}-static, --1000), | ||
| 395 | --label-color: props.get( | ||
| 396 | core.$theme, | ||
| 397 | #{$key}-static, | ||
| 398 | --1000-text | ||
| 399 | ), | ||
| 400 | --border-color: props.get(core.$theme, #{$key}-static, --1000), | ||
| 401 | ), | ||
| 402 | 324 | ||
| 403 | --active: ( | 325 | --selected: ( |
| 404 | --bg-color: props.get(core.$theme, #{$key}-static, --1100), | 326 | --bg-color: props.get(core.$theme, #{$key}-static, --900), |
| 405 | --label-color: props.get( | 327 | --label-color: props.get(core.$theme, #{$key}-static, --900-text), |
| 406 | core.$theme, | 328 | --border-color: props.get(core.$theme, #{$key}-static, --900) props.get(core.$theme, #{$key}-static, --900) props.get(core.$theme, #{$key}-static, --1000), |
| 407 | #{$key}-static, | ||
| 408 | --1100-text | ||
| 409 | ), | ||
| 410 | --border-color: props.get(core.$theme, #{$key}-static, --1100), | ||
| 411 | ), | ||
| 412 | 329 | ||
| 413 | --disabled: ( | 330 | --hover: ( |
| 414 | --bg-color: props.get(core.$theme, --border-mute), | 331 | --bg-color: props.get(core.$theme, #{$key}-static, --1000), |
| 415 | --label-color: props.get(core.$theme, --border-strong), | 332 | --label-color: props.get(core.$theme, #{$key}-static, --1000-text), |
| 416 | --border-color: props.get(core.$theme, --border-mute), | 333 | --border-color: props.get(core.$theme, #{$key}-static, --1000), |
| 417 | ), | 334 | ), |
| 418 | ), | ||
| 419 | 335 | ||
| 420 | --badge: ( | 336 | --active: ( |
| 421 | --bg-color: props.get(core.$theme, $key, --100), | 337 | --bg-color: props.get(core.$theme, #{$key}-static, --1100), |
| 422 | --label-color: props.get(core.$theme, $key, --1100), | 338 | --label-color: props.get(core.$theme, #{$key}-static, --1100-text), |
| 423 | --border-color: props.get(core.$theme, $key, --300), | 339 | --border-color: props.get(core.$theme, #{$key}-static, --1100), |
| 424 | --hover: ( | 340 | ), |
| 425 | --bg-color: props.get(core.$theme, $key, --200), | 341 | |
| 426 | --label-color: props.get(core.$theme, $key, --1200), | 342 | --disabled: ( |
| 427 | --border-color: props.get(core.$theme, $key, --400), | 343 | --bg-color: props.get(core.$theme, --border-mute), |
| 428 | ), | 344 | --label-color: props.get(core.$theme, --border-strong), |
| 345 | --border-color: props.get(core.$theme, --border-mute), | ||
| 346 | ), | ||
| 347 | ), | ||
| 348 | |||
| 349 | --badge: ( | ||
| 350 | --bg-color: props.get(core.$theme, $key, --100), | ||
| 351 | --label-color: props.get(core.$theme, $key, --1100), | ||
| 352 | --border-color: props.get(core.$theme, $key, --300), | ||
| 353 | |||
| 354 | --hover: ( | ||
| 355 | --bg-color: props.get(core.$theme, $key, --200), | ||
| 356 | --label-color: props.get(core.$theme, $key, --1200), | ||
| 357 | --border-color: props.get(core.$theme, $key, --400), | ||
| 358 | ), | ||
| 429 | 359 | ||
| 430 | --active: ( | 360 | --active: ( |
| 431 | --bg-color: props.get(core.$theme, $key, --300), | 361 | --bg-color: props.get(core.$theme, $key, --300), |
| 432 | --label-color: props.get(core.$theme, $key, --1300), | 362 | --label-color: props.get(core.$theme, $key, --1300), |
| 433 | --border-color: props.get(core.$theme, $key, --500), | 363 | --border-color: props.get(core.$theme, $key, --500), |
| 434 | ), | 364 | ), |
| 435 | ), | 365 | ), |
| 436 | 366 | ||
| 437 | --quiet: ( | 367 | --quiet: ( |
| 438 | --label-color: props.get(core.$theme, $key, --1100), | 368 | --label-color: props.get(core.$theme, $key, --1100), |
| 439 | --hover: ( | ||
| 440 | --bg-color: props.get(core.$theme, $key, --200), | ||
| 441 | --label-color: props.get(core.$theme, $key, --1200), | ||
| 442 | ), | ||
| 443 | 369 | ||
| 444 | --active: ( | 370 | --hover: ( |
| 445 | --bg-color: props.get(core.$theme, $key, --300), | 371 | --bg-color: props.get(core.$theme, $key, --200), |
| 446 | --label-color: props.get(core.$theme, $key, --1300), | 372 | --label-color: props.get(core.$theme, $key, --1200), |
| 447 | ), | 373 | ), |
| 448 | 374 | ||
| 449 | --disabled: ( | 375 | --active: ( |
| 450 | --label-color: props.get(core.$theme, --border-strong), | 376 | --bg-color: props.get(core.$theme, $key, --300), |
| 451 | ), | 377 | --label-color: props.get(core.$theme, $key, --1300), |
| 452 | ), | 378 | ), |
| 453 | ) | 379 | |
| 380 | --disabled: ( | ||
| 381 | --label-color: props.get(core.$theme, --border-strong), | ||
| 382 | ), | ||
| 383 | ), | ||
| 454 | ) | 384 | ) |
| 455 | ); | 385 | )); |
| 456 | } | 386 | } |
diff --git a/src/objects/_card.scss b/src/objects/_card.scss index 3275bc8..b8bc727 100644 --- a/src/objects/_card.scss +++ b/src/objects/_card.scss | |||
| @@ -1,95 +1,84 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | @use "avatar.vars" as avatar; | 5 | @use 'avatar.vars' as avatar; |
| 6 | 6 | ||
| 7 | @forward "card.vars"; | 7 | @forward 'card.vars'; |
| 8 | @use "card.vars" as vars; | 8 | @use 'card.vars' as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables("vars")); | 11 | @include materialize-at-root(meta.module-variables('vars')); |
| 12 | 12 | ||
| 13 | @include bem.object("card") { | 13 | @include bem.object('card') { |
| 14 | position: relative; | 14 | position: relative; |
| 15 | display: flex; | 15 | display: flex; |
| 16 | flex-direction: column; | 16 | flex-direction: column; |
| 17 | background-color: props.get(vars.$bg-color); | 17 | background-color: props.get(vars.$bg-color); |
| 18 | border: props.get(vars.$border-width) solid transparent; | 18 | border: props.get(vars.$border-width) solid transparent; |
| 19 | border-color: props.get(vars.$border-color); | 19 | border-color: props.get(vars.$border-color); |
| 20 | border-radius: props.get(vars.$rounding); | 20 | border-radius: props.get(vars.$rounding); |
| 21 | transition: | 21 | transition: transform .2s, background-color .2s, border-color .2s, box-shadow .2s; |
| 22 | transform 0.2s, | ||
| 23 | background-color 0.2s, | ||
| 24 | border-color 0.2s, | ||
| 25 | box-shadow 0.2s; | ||
| 26 | 22 | ||
| 27 | @include bem.multi( | 23 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { |
| 28 | "&:link, &:visited, &:enabled", | ||
| 29 | "modifier" "interactive", | ||
| 30 | "modifier" "collapsible" | ||
| 31 | ) { | ||
| 32 | &:hover, | 24 | &:hover, |
| 33 | &:active, | 25 | &:active, |
| 34 | &:focus-visible { | 26 | &:focus-visible { |
| 35 | background-color: props.get(vars.$hover--bg-color); | 27 | background-color: props.get(vars.$hover--bg-color); |
| 36 | border-color: props.get(vars.$hover--border-color); | 28 | border-color: props.get(vars.$hover--border-color); |
| 37 | box-shadow: none; | 29 | box-shadow: none; |
| 38 | transform: translateY(props.get(vars.$hover--offset-b)); | 30 | transform: translateY(props.get(vars.$hover--offset-b)); |
| 39 | } | 31 | } |
| 40 | 32 | ||
| 41 | &:focus-visible { | 33 | &:focus-visible { |
| 42 | margin: calc(-1 * props.get(vars.$key-focus--border-width)); | 34 | margin: calc(-1 * props.get(vars.$key-focus--border-width)); |
| 43 | outline: props.get(vars.$key-focus--border-color) solid | 35 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 44 | props.get(vars.$key-focus--border-width); | 36 | border: calc(props.get(vars.$key-focus--border-offset) + props.get(vars.$border-width)) solid transparent; |
| 45 | border: calc( | 37 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset)); |
| 46 | props.get(vars.$key-focus--border-offset) + props.get(vars.$border-width) | 38 | box-shadow: |
| 47 | ) | 39 | 0 0 0 |
| 48 | solid transparent; | 40 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 49 | border-radius: calc( | ||
| 50 | props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset) | ||
| 51 | ); | ||
| 52 | box-shadow: 0 0 0 | ||
| 53 | calc( | ||
| 54 | props.get(vars.$key-focus--border-width) + | ||
| 55 | props.get(vars.$key-focus--outline-width) | ||
| 56 | ) | ||
| 57 | props.get(vars.$key-focus--outline-color); | 41 | props.get(vars.$key-focus--outline-color); |
| 58 | transition: transform 0.2s; | 42 | transition: transform .2s; |
| 59 | } | 43 | } |
| 60 | } | 44 | } |
| 61 | 45 | ||
| 62 | @include bem.modifier("borderless") { | 46 | @include bem.modifier('borderless') { |
| 63 | border-color: props.get(vars.$bg-color); | 47 | border-color: props.get(vars.$bg-color); |
| 64 | } | 48 | } |
| 65 | 49 | ||
| 66 | @include bem.modifier("shadow") { | 50 | @include bem.modifier('shadow') { |
| 67 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) | 51 | box-shadow: |
| 68 | props.get(vars.$shadow-blur) props.get(vars.$shadow-grow) | 52 | props.get(vars.$shadow-x) |
| 53 | props.get(vars.$shadow-y) | ||
| 54 | props.get(vars.$shadow-blur) | ||
| 55 | props.get(vars.$shadow-grow) | ||
| 69 | props.get(vars.$shadow-color); | 56 | props.get(vars.$shadow-color); |
| 70 | 57 | ||
| 71 | @include bem.modifier("quiet") { | 58 | @include bem.modifier('quiet') { |
| 72 | @include bem.elem("image") { | 59 | @include bem.elem('image') { |
| 73 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) | 60 | box-shadow: |
| 74 | props.get(vars.$shadow-blur) props.get(vars.$shadow-grow) | 61 | props.get(vars.$shadow-x) |
| 62 | props.get(vars.$shadow-y) | ||
| 63 | props.get(vars.$shadow-blur) | ||
| 64 | props.get(vars.$shadow-grow) | ||
| 75 | props.get(vars.$shadow-color); | 65 | props.get(vars.$shadow-color); |
| 76 | } | 66 | } |
| 77 | } | 67 | } |
| 78 | } | 68 | } |
| 79 | 69 | ||
| 80 | @include bem.modifier("highlight") { | 70 | @include bem.modifier('highlight') { |
| 81 | margin: calc(props.get(vars.$border-width) - props.get(vars.$highlight--border-width)); | 71 | margin: calc(props.get(vars.$border-width) - props.get(vars.$highlight--border-width)); |
| 82 | border-color: props.get(vars.$highlight--border-color); | 72 | border-color: props.get(vars.$highlight--border-color); |
| 83 | border-width: props.get(vars.$highlight--border-width); | 73 | border-width: props.get(vars.$highlight--border-width); |
| 84 | box-shadow: props.get(vars.$highlight--shadow-x) props.get(vars.$highlight--shadow-y) | 74 | box-shadow: |
| 85 | props.get(vars.$highlight--shadow-blur) props.get(vars.$highlight--shadow-grow) | 75 | props.get(vars.$highlight--shadow-x) |
| 76 | props.get(vars.$highlight--shadow-y) | ||
| 77 | props.get(vars.$highlight--shadow-blur) | ||
| 78 | props.get(vars.$highlight--shadow-grow) | ||
| 86 | props.get(vars.$highlight--shadow-color); | 79 | props.get(vars.$highlight--shadow-color); |
| 87 | 80 | ||
| 88 | @include bem.multi( | 81 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { |
| 89 | "&:link, &:visited, &:enabled", | ||
| 90 | "modifier" "interactive", | ||
| 91 | "modifier" "collapsible" | ||
| 92 | ) { | ||
| 93 | &:hover, | 82 | &:hover, |
| 94 | &:active { | 83 | &:active { |
| 95 | border-color: props.get(vars.$highlight--border-color); | 84 | border-color: props.get(vars.$highlight--border-color); |
| @@ -97,238 +86,207 @@ | |||
| 97 | } | 86 | } |
| 98 | } | 87 | } |
| 99 | 88 | ||
| 100 | @include bem.elem("avatar") { | 89 | @include bem.elem('avatar') { |
| 101 | margin-block-start: props.get(vars.$pad-b); | 90 | margin-block-start: props.get(vars.$pad-b); |
| 102 | margin-inline-start: props.get(vars.$pad-i); | 91 | margin-inline-start: props.get(vars.$pad-i); |
| 103 | } | 92 | } |
| 104 | 93 | ||
| 105 | @include bem.elem("image") { | 94 | @include bem.elem('image') { |
| 106 | position: relative; | 95 | position: relative; |
| 107 | display: block; | 96 | display: block; |
| 108 | flex: 0 0 auto; | 97 | flex: 0 0 auto; |
| 109 | inline-size: calc(100% + 2 * props.get(vars.$border-width)); | 98 | inline-size: calc(100% + 2 * props.get(vars.$border-width)); |
| 110 | margin: calc(-1 * props.get(vars.$border-width)); | 99 | margin: calc(-1 * props.get(vars.$border-width)); |
| 111 | overflow: hidden; | 100 | overflow: hidden; |
| 112 | object-fit: cover; | 101 | object-fit: cover; |
| 113 | transition: | 102 | transition: background-color .2s, transform .2s, opacity .2s; |
| 114 | background-color 0.2s, | ||
| 115 | transform 0.2s, | ||
| 116 | opacity 0.2s; | ||
| 117 | 103 | ||
| 118 | &:first-child { | 104 | &:first-child { |
| 119 | border-start-start-radius: calc( | 105 | border-start-start-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
| 120 | props.get(vars.$rounding) - props.get(vars.$border-width) | 106 | border-start-end-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
| 121 | ); | ||
| 122 | border-start-end-radius: calc( | ||
| 123 | props.get(vars.$rounding) - props.get(vars.$border-width) | ||
| 124 | ); | ||
| 125 | } | 107 | } |
| 126 | 108 | ||
| 127 | &:last-child { | 109 | &:last-child { |
| 128 | border-end-start-radius: calc( | 110 | border-end-start-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
| 129 | props.get(vars.$rounding) - props.get(vars.$border-width) | 111 | border-end-end-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
| 130 | ); | ||
| 131 | border-end-end-radius: calc( | ||
| 132 | props.get(vars.$rounding) - props.get(vars.$border-width) | ||
| 133 | ); | ||
| 134 | } | 112 | } |
| 135 | 113 | ||
| 136 | @include bem.next-elem("avatar") { | 114 | @include bem.next-elem('avatar') { |
| 137 | margin-block-start: calc(-0.7 * props.get(avatar.$size--xl)); | 115 | margin-block-start: calc(-.7 * props.get(avatar.$size--xl)); |
| 138 | } | 116 | } |
| 139 | } | 117 | } |
| 140 | 118 | ||
| 141 | @include bem.elem("image-img") { | 119 | @include bem.elem('image-img') { |
| 142 | display: block; | 120 | display: block; |
| 143 | inline-size: 100%; | 121 | inline-size: 100%; |
| 144 | block-size: 100%; | 122 | block-size: 100%; |
| 145 | object-fit: cover; | 123 | object-fit: cover; |
| 146 | } | 124 | } |
| 147 | 125 | ||
| 148 | @include bem.elem("image-overlay") { | 126 | @include bem.elem('image-overlay') { |
| 149 | position: absolute; | 127 | position: absolute; |
| 150 | inset-block-end: 0; | 128 | inset-block-end: 0; |
| 151 | inset-inline: 0; | 129 | inset-inline: 0; |
| 152 | z-index: 5; | 130 | z-index: 5; |
| 153 | padding-block: props.get(vars.$image-overlay--pad-b); | 131 | padding-block: props.get(vars.$image-overlay--pad-b); |
| 154 | padding-inline: props.get(vars.$image-overlay--pad-i); | 132 | padding-inline: props.get(vars.$image-overlay--pad-i); |
| 155 | } | 133 | } |
| 156 | 134 | ||
| 157 | @include bem.elem("body") { | 135 | @include bem.elem('body') { |
| 158 | flex: 0 0 auto; | 136 | flex: 0 0 auto; |
| 159 | padding-block: props.get(vars.$pad-b); | 137 | padding-block: props.get(vars.$pad-b); |
| 160 | padding-inline: props.get(vars.$pad-i); | 138 | padding-inline: props.get(vars.$pad-i); |
| 161 | 139 | ||
| 162 | &::before { | 140 | &::before { |
| 163 | display: block; | 141 | display: block; |
| 164 | margin-block: -100em 100em; | 142 | margin-block: -100em 100em; |
| 165 | content: ""; | 143 | content: ''; |
| 166 | } | 144 | } |
| 167 | 145 | ||
| 168 | @include bem.modifier("no-mbs-neutralize") { | 146 | @include bem.modifier('no-mbs-neutralize') { |
| 169 | &::before { | 147 | &::before { |
| 170 | display: none; | 148 | display: none; |
| 171 | } | 149 | } |
| 172 | } | 150 | } |
| 173 | 151 | ||
| 174 | @include bem.modifier("main") { | 152 | @include bem.modifier('main') { |
| 175 | flex-shrink: 1; | 153 | flex-shrink: 1; |
| 176 | block-size: 100%; | 154 | block-size: 100%; |
| 177 | min-block-size: 0; | 155 | min-block-size: 0; |
| 178 | } | 156 | } |
| 179 | } | 157 | } |
| 180 | 158 | ||
| 181 | @include bem.elem("content") { | 159 | @include bem.elem('content') { |
| 182 | margin-block-start: props.get(vars.$spacing); | 160 | margin-block-start: props.get(vars.$spacing); |
| 183 | } | 161 | } |
| 184 | 162 | ||
| 185 | @include bem.elem("footer") { | 163 | @include bem.elem('footer') { |
| 186 | flex: 0 0 auto; | 164 | flex: 0 0 auto; |
| 187 | padding-block: 0 props.get(vars.$pad-b); | 165 | padding-block: 0 props.get(vars.$pad-b); |
| 188 | padding-inline: props.get(vars.$pad-i); | 166 | padding-inline: props.get(vars.$pad-i); |
| 189 | margin-block-start: calc(-1 * props.get(vars.$pad-b)); | 167 | margin-block-start: calc(-1 * props.get(vars.$pad-b)); |
| 190 | 168 | ||
| 191 | &::before { | 169 | &::before { |
| 192 | display: block; | 170 | display: block; |
| 193 | block-size: props.get(vars.$divider-width); | 171 | block-size: props.get(vars.$divider-width); |
| 194 | margin-block: props.get(vars.$spacing); | 172 | margin-block: props.get(vars.$spacing); |
| 195 | content: ""; | 173 | content: ''; |
| 196 | background-color: props.get(vars.$divider-width); | 174 | background-color: props.get(vars.$divider-width); |
| 197 | } | 175 | } |
| 198 | } | 176 | } |
| 199 | 177 | ||
| 200 | @include bem.modifier("quiet") { | 178 | @include bem.modifier('quiet') { |
| 201 | margin-inline: 0; | 179 | margin-inline: 0; |
| 202 | background-color: transparent; | 180 | background-color: transparent; |
| 203 | border: 0; | 181 | border: 0; |
| 204 | box-shadow: none; | 182 | box-shadow: none; |
| 205 | 183 | ||
| 206 | @include bem.multi( | 184 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { |
| 207 | "&:link, &:visited, &:enabled", | ||
| 208 | "modifier" "interactive", | ||
| 209 | "modifier" "collapsible" | ||
| 210 | ) { | ||
| 211 | &:hover, | 185 | &:hover, |
| 212 | &:active, | 186 | &:active, |
| 213 | &:focus-visible { | 187 | &:focus-visible { |
| 214 | background-color: transparent; | 188 | background-color: transparent; |
| 215 | transform: none; | 189 | transform: none; |
| 216 | 190 | ||
| 217 | @include bem.elem("image") { | 191 | @include bem.elem('image') { |
| 218 | background-color: props.get(vars.$quiet--hover--image-color); | 192 | background-color: props.get(vars.$quiet--hover--image-color); |
| 219 | opacity: 0.75; | 193 | opacity: .75; |
| 220 | transform: translateY(props.get(vars.$hover--offset-b)); | 194 | transform: translateY(props.get(vars.$hover--offset-b)); |
| 221 | } | 195 | } |
| 222 | } | 196 | } |
| 223 | 197 | ||
| 224 | &:focus-visible { | 198 | &:focus-visible { |
| 225 | margin: 0; | 199 | margin: 0; |
| 226 | outline: none; | 200 | outline: none; |
| 227 | border: 0; | 201 | border: 0; |
| 228 | box-shadow: none; | 202 | box-shadow: none; |
| 229 | 203 | ||
| 230 | @include bem.elem("image") { | 204 | @include bem.elem('image') { |
| 231 | margin: calc( | 205 | margin: calc(-1 * props.get(vars.$key-focus--border-width) - props.get(vars.$border-width)); |
| 232 | -1 * | 206 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 233 | props.get(vars.$key-focus--border-width) - props.get( | ||
| 234 | vars.$border-width | ||
| 235 | ) | ||
| 236 | ); | ||
| 237 | outline: props.get(vars.$key-focus--border-color) solid | ||
| 238 | props.get(vars.$key-focus--border-width); | ||
| 239 | background-color: props.get(vars.$quiet--hover--image-color); | 207 | background-color: props.get(vars.$quiet--hover--image-color); |
| 240 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 208 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 241 | border-radius: calc( | 209 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset)); |
| 242 | props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset) | 210 | box-shadow: |
| 243 | ); | 211 | 0 |
| 244 | box-shadow: 0 0 0 | 212 | 0 |
| 245 | calc( | 213 | 0 |
| 246 | props.get(vars.$key-focus--border-width) + | 214 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 247 | props.get(vars.$key-focus--outline-width) | ||
| 248 | ) | ||
| 249 | props.get(vars.$key-focus--outline-color); | 215 | props.get(vars.$key-focus--outline-color); |
| 250 | opacity: 1; | 216 | opacity: 1; |
| 251 | } | 217 | } |
| 252 | } | 218 | } |
| 253 | } | 219 | } |
| 254 | 220 | ||
| 255 | @include bem.elem("image") { | 221 | @include bem.elem('image') { |
| 256 | position: relative; | 222 | position: relative; |
| 257 | background-color: props.get(vars.$quiet--image-color); | 223 | background-color: props.get(vars.$quiet--image-color); |
| 258 | background-clip: padding-box; | 224 | background-clip: padding-box; |
| 259 | border-radius: props.get(vars.$rounding); | 225 | border-radius: props.get(vars.$rounding); |
| 260 | } | 226 | } |
| 261 | 227 | ||
| 262 | @include bem.elem("body") { | 228 | @include bem.elem('body') { |
| 263 | padding: 0; | 229 | padding: 0; |
| 264 | padding-block-start: props.get(vars.$spacing); | 230 | padding-block-start: props.get(vars.$spacing); |
| 265 | } | 231 | } |
| 266 | 232 | ||
| 267 | @include bem.elem("footer") { | 233 | @include bem.elem('footer') { |
| 268 | padding-inline: 0; | 234 | padding-inline: 0; |
| 269 | } | 235 | } |
| 270 | } | 236 | } |
| 271 | 237 | ||
| 272 | @include bem.modifier("thumbnail") { | 238 | @include bem.modifier('thumbnail') { |
| 273 | @include bem.elem("image") { | 239 | @include bem.elem('image') { |
| 274 | border-radius: props.get(vars.$rounding); | 240 | border-radius: props.get(vars.$rounding); |
| 275 | } | 241 | } |
| 276 | 242 | ||
| 277 | @include bem.elem("body") { | 243 | @include bem.elem('body') { |
| 278 | position: absolute; | 244 | position: absolute; |
| 279 | inset-block-end: calc(-1 * props.get(vars.$border-width)); | 245 | inset-block-end: calc(-1 * props.get(vars.$border-width)); |
| 280 | inset-inline: calc(-1 * props.get(vars.$border-width)); | 246 | inset-inline: calc(-1 * props.get(vars.$border-width)); |
| 281 | z-index: 10; | 247 | z-index: 10; |
| 282 | visibility: hidden; | 248 | visibility: hidden; |
| 283 | background-color: props.get(vars.$hover--bg-color); | 249 | background-color: props.get(vars.$hover--bg-color); |
| 284 | border-color: transparent; | 250 | border-color: transparent; |
| 285 | border-style: solid; | 251 | border-style: solid; |
| 286 | border-width: 0 props.get(vars.$border-width) props.get(vars.$border-width); | 252 | border-width: 0 props.get(vars.$border-width) props.get(vars.$border-width); |
| 287 | border-end-start-radius: calc( | 253 | border-end-start-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
| 288 | props.get(vars.$rounding) - props.get(vars.$border-width) | 254 | border-end-end-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
| 289 | ); | 255 | opacity: 0; |
| 290 | border-end-end-radius: calc( | ||
| 291 | props.get(vars.$rounding) - props.get(vars.$border-width) | ||
| 292 | ); | ||
| 293 | opacity: 0; | ||
| 294 | transition: | 256 | transition: |
| 295 | border-color 0.2s ease, | 257 | border-color .2s ease, |
| 296 | opacity 0.2s ease, | 258 | opacity .2s ease, |
| 297 | visibility 0s 0.2s linear; | 259 | visibility 0s .2s linear; |
| 298 | } | 260 | } |
| 299 | 261 | ||
| 300 | @include bem.multi( | 262 | @include bem.multi('&:link, &:visited, &:enabled', 'modifier' 'interactive', 'modifier' 'collapsible') { |
| 301 | "&:link, &:visited, &:enabled", | ||
| 302 | "modifier" "interactive", | ||
| 303 | "modifier" "collapsible" | ||
| 304 | ) { | ||
| 305 | &:hover, | 263 | &:hover, |
| 306 | &:active, | 264 | &:active, |
| 307 | &:focus-visible { | 265 | &:focus-visible { |
| 308 | @include bem.elem("body") { | 266 | @include bem.elem('body') { |
| 309 | visibility: visible; | 267 | visibility: visible; |
| 310 | border-color: props.get(vars.$hover--border-color); | 268 | border-color: props.get(vars.$hover--border-color); |
| 311 | opacity: 1; | 269 | opacity: 1; |
| 312 | transition: | 270 | transition: |
| 313 | border-color 0.2s ease, | 271 | border-color .2s ease, |
| 314 | opacity 0.2s ease, | 272 | opacity .2s ease, |
| 315 | visibility 0.2s linear; | 273 | visibility .2s linear; |
| 316 | } | 274 | } |
| 317 | } | 275 | } |
| 318 | } | 276 | } |
| 319 | } | 277 | } |
| 320 | 278 | ||
| 321 | @include bem.modifier("horizontal") { | 279 | @include bem.modifier('horizontal') { |
| 322 | flex-direction: row; | 280 | flex-direction: row; |
| 323 | align-items: center; | 281 | align-items: center; |
| 324 | 282 | ||
| 325 | @include bem.elem("image") { | 283 | @include bem.elem('image') { |
| 326 | align-self: stretch; | 284 | align-self: stretch; |
| 327 | inline-size: auto; | 285 | inline-size: auto; |
| 328 | 286 | ||
| 329 | &:first-child { | 287 | &:first-child { |
| 330 | border-start-end-radius: 0; | 288 | border-start-end-radius: 0; |
| 331 | border-end-start-radius: props.get(vars.$rounding); | 289 | border-end-start-radius: props.get(vars.$rounding); |
| 332 | } | 290 | } |
| 333 | 291 | ||
| 334 | &:last-child { | 292 | &:last-child { |
| @@ -337,38 +295,37 @@ | |||
| 337 | } | 295 | } |
| 338 | } | 296 | } |
| 339 | 297 | ||
| 340 | @include bem.elem("body") { | 298 | @include bem.elem('body') { |
| 341 | @include bem.modifier("main") { | 299 | @include bem.modifier('main') { |
| 342 | block-size: auto; | 300 | block-size: auto; |
| 343 | min-block-size: none; | 301 | min-block-size: none; |
| 344 | inline-size: 100%; | 302 | inline-size: 100%; |
| 345 | min-inline-size: 0; | 303 | min-inline-size: 0; |
| 346 | } | 304 | } |
| 347 | } | 305 | } |
| 348 | } | 306 | } |
| 349 | 307 | ||
| 350 | @include bem.modifier("collapsible") { | 308 | @include bem.modifier('collapsible') { |
| 351 | display: block; | 309 | display: block; |
| 352 | interpolate-size: allow-keywords; | 310 | interpolate-size: allow-keywords; |
| 353 | 311 | ||
| 354 | @include bem.elem("header") { | 312 | @include bem.elem("header") { |
| 355 | display: flex; | 313 | display: flex; |
| 356 | align-items: center; | 314 | align-items: center; |
| 357 | gap: 1em; | 315 | gap: 1em; |
| 358 | cursor: pointer; | 316 | cursor: pointer; |
| 359 | 317 | ||
| 360 | &::before { | 318 | &::before { |
| 361 | margin: 0; | 319 | margin: 0; |
| 362 | inline-size: 1em; | 320 | inline-size: 1em; |
| 363 | font-size: 0.8em; | 321 | font-size: 0.8em; |
| 364 | content: "â–¶"; | 322 | content: "â–¶"; |
| 365 | } | 323 | } |
| 366 | 324 | ||
| 367 | &:focus-visible { | 325 | &:focus-visible { |
| 368 | outline: props.get(vars.$key-focus--border-color) solid | 326 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 369 | props.get(vars.$key-focus--border-width); | ||
| 370 | outline-offset: calc(-1 * props.get(vars.$key-focus--border-width)); | 327 | outline-offset: calc(-1 * props.get(vars.$key-focus--border-width)); |
| 371 | border-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); | 328 | border-radius: calc(props.get(vars.$rounding) - props.get(vars.$border-width)); |
| 372 | } | 329 | } |
| 373 | 330 | ||
| 374 | @include bem.next-elem("body") { | 331 | @include bem.next-elem("body") { |
| @@ -377,7 +334,7 @@ | |||
| 377 | } | 334 | } |
| 378 | 335 | ||
| 379 | &::details-content { | 336 | &::details-content { |
| 380 | opacity: 0; | 337 | opacity: 0; |
| 381 | block-size: 0; | 338 | block-size: 0; |
| 382 | overflow-y: clip; | 339 | overflow-y: clip; |
| 383 | transition: | 340 | transition: |
| @@ -394,7 +351,7 @@ | |||
| 394 | } | 351 | } |
| 395 | 352 | ||
| 396 | &::details-content { | 353 | &::details-content { |
| 397 | opacity: 1; | 354 | opacity: 1; |
| 398 | block-size: auto; | 355 | block-size: auto; |
| 399 | } | 356 | } |
| 400 | } | 357 | } |
diff --git a/src/objects/_card.vars.scss b/src/objects/_card.vars.scss index 96f3cb9..4616c80 100644 --- a/src/objects/_card.vars.scss +++ b/src/objects/_card.vars.scss | |||
| @@ -1,130 +1,51 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../core.vars" as core; | 3 | @use '../core.vars' as core; |
| 4 | 4 | ||
| 5 | $divider-width: props.def(--o-card--divider-width, props.get(core.$border-width--thin)) !default; | 5 | $divider-width: props.def(--o-card--divider-width, props.get(core.$border-width--thin)) !default; |
| 6 | $border-width: props.def(--o-card--border-width, props.get(core.$border-width--thin)) !default; | 6 | $border-width: props.def(--o-card--border-width, props.get(core.$border-width--thin)) !default; |
| 7 | $sub-border-width: props.def( | 7 | $sub-border-width: props.def(--o-card--sub-border-width, props.get(core.$border-width--thick)) !default; |
| 8 | --o-card--sub-border-width, | 8 | $pad-i: props.def(--o-card--pad-i, props.get(core.$size--300)) !default; |
| 9 | props.get(core.$border-width--thick) | 9 | $pad-b: props.def(--o-card--pad-b, props.get(core.$size--250)) !default; |
| 10 | ) !default; | 10 | $spacing: props.def(--o-card--spacing, props.get(core.$size--200)) !default; |
| 11 | $pad-i: props.def(--o-card--pad-i, props.get(core.$size--300)) !default; | 11 | $rounding: props.def(--o-card--rounding, props.get(core.$rounding)) !default; |
| 12 | $pad-b: props.def(--o-card--pad-b, props.get(core.$size--250)) !default; | ||
| 13 | $spacing: props.def(--o-card--spacing, props.get(core.$size--200)) !default; | ||
| 14 | $rounding: props.def(--o-card--rounding, props.get(core.$rounding)) !default; | ||
| 15 | $image-overlay--pad-i: props.def(--o-card--image-overlay--pad-i, props.get($pad-i)) !default; | 12 | $image-overlay--pad-i: props.def(--o-card--image-overlay--pad-i, props.get($pad-i)) !default; |
| 16 | $image-overlay--pad-b: props.def(--o-card--image-overlay--pad-b, props.get($pad-b)) !default; | 13 | $image-overlay--pad-b: props.def(--o-card--image-overlay--pad-b, props.get($pad-b)) !default; |
| 17 | 14 | ||
| 18 | $hover--offset-b: props.def( | 15 | $hover--offset-b: props.def(--o-card--hover--offset-b, calc(-1 * props.get(core.$size--65))) !default; |
| 19 | --o-card--hover--offset-b, | ||
| 20 | calc(-1 * props.get(core.$size--65)) | ||
| 21 | ) !default; | ||
| 22 | 16 | ||
| 23 | $shadow-x: props.def(--o-card--shadow-x, props.get(core.$shadow--l1--x)) !default; | 17 | $shadow-x: props.def(--o-card--shadow-x, props.get(core.$shadow--l1--x)) !default; |
| 24 | $shadow-y: props.def(--o-card--shadow-y, props.get(core.$shadow--l1--y)) !default; | 18 | $shadow-y: props.def(--o-card--shadow-y, props.get(core.$shadow--l1--y)) !default; |
| 25 | $shadow-blur: props.def(--o-card--shadow-blur, props.get(core.$shadow--l1--blur)) !default; | 19 | $shadow-blur: props.def(--o-card--shadow-blur, props.get(core.$shadow--l1--blur)) !default; |
| 26 | $shadow-grow: props.def(--o-card--shadow-grow, props.get(core.$shadow--l1--grow)) !default; | 20 | $shadow-grow: props.def(--o-card--shadow-grow, props.get(core.$shadow--l1--grow)) !default; |
| 27 | 21 | ||
| 28 | $key-focus--border-width: props.def( | 22 | $key-focus--border-width: props.def(--o-card--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 29 | --o-card--key-focus--border-width, | 23 | $key-focus--border-offset: props.def(--o-card--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 30 | props.get(core.$key-focus--border-width) | 24 | $key-focus--outline-width: props.def(--o-card--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; |
| 31 | ) !default; | ||
| 32 | $key-focus--border-offset: props.def( | ||
| 33 | --o-card--key-focus--border-offset, | ||
| 34 | props.get(core.$key-focus--border-offset) | ||
| 35 | ) !default; | ||
| 36 | $key-focus--outline-width: props.def( | ||
| 37 | --o-card--key-focus--outline-width, | ||
| 38 | props.get(core.$key-focus--outline-width) | ||
| 39 | ) !default; | ||
| 40 | 25 | ||
| 41 | $shadow-color: props.def( | 26 | $shadow-color: props.def(--o-card--shadow-color, props.get(core.$theme, --shadow), 'color') !default; |
| 42 | --o-card--shadow-color, | 27 | $bg-color: props.def(--o-card--bg-color, props.get(core.$theme, --bg-l2), 'color') !default; |
| 43 | props.get(core.$theme, --shadow), | 28 | $border-color: props.def(--o-card--border-color, props.get(core.$theme, --box, --border), 'color') !default; |
| 44 | "color" | 29 | $divider-color: props.def(--o-card--divider-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 45 | ) !default; | ||
| 46 | $bg-color: props.def(--o-card--bg-color, props.get(core.$theme, --bg-l2), "color") !default; | ||
| 47 | $border-color: props.def( | ||
| 48 | --o-card--border-color, | ||
| 49 | props.get(core.$theme, --box, --border), | ||
| 50 | "color" | ||
| 51 | ) !default; | ||
| 52 | $divider-color: props.def( | ||
| 53 | --o-card--divider-color, | ||
| 54 | props.get(core.$theme, --border-mute), | ||
| 55 | "color" | ||
| 56 | ) !default; | ||
| 57 | 30 | ||
| 58 | $highlight--shadow-x: props.def( | 31 | $highlight--shadow-x: props.def(--o-card--highlight--shadow-x, props.get(core.$shadow--l2--x)) !default; |
| 59 | --o-card--highlight--shadow-x, | 32 | $highlight--shadow-y: props.def(--o-card--highlight--shadow-y, props.get(core.$shadow--l2--y)) !default; |
| 60 | props.get(core.$shadow--l2--x) | 33 | $highlight--shadow-blur: props.def(--o-card--highlight--shadow-blur, props.get(core.$shadow--l2--blur)) !default; |
| 61 | ) !default; | 34 | $highlight--shadow-grow: props.def(--o-card--highlight--shadow-grow, props.get(core.$shadow--l2--grow)) !default; |
| 62 | $highlight--shadow-y: props.def( | ||
| 63 | --o-card--highlight--shadow-y, | ||
| 64 | props.get(core.$shadow--l2--y) | ||
| 65 | ) !default; | ||
| 66 | $highlight--shadow-blur: props.def( | ||
| 67 | --o-card--highlight--shadow-blur, | ||
| 68 | props.get(core.$shadow--l2--blur) | ||
| 69 | ) !default; | ||
| 70 | $highlight--shadow-grow: props.def( | ||
| 71 | --o-card--highlight--shadow-grow, | ||
| 72 | props.get(core.$shadow--l2--grow) | ||
| 73 | ) !default; | ||
| 74 | 35 | ||
| 75 | $highlight--border-width: props.def( | 36 | $highlight--border-width: props.def(--o-card--highlight--border-width, props.get(core.$border-width--medium)) !default; |
| 76 | --o-card--highlight--border-width, | 37 | $highlight--border-color: props.def(--o-card--highlight--border-color, props.get(core.$theme, --accent, --700) props.get(core.$theme, --accent, --700) props.get(core.$theme, --accent, --800), 'color') !default; |
| 77 | props.get(core.$border-width--medium) | 38 | $highlight--shadow-color: props.def(--o-card--highlight--shadow-color, props.get(core.$theme, --accent, --200), 'color') !default; |
| 78 | ) !default; | ||
| 79 | $highlight--border-color: props.def( | ||
| 80 | --o-card--highlight--border-color, | ||
| 81 | props.get(core.$theme, --accent, --700) props.get(core.$theme, --accent, --700) | ||
| 82 | props.get(core.$theme, --accent, --800), | ||
| 83 | "color" | ||
| 84 | ) !default; | ||
| 85 | $highlight--shadow-color: props.def( | ||
| 86 | --o-card--highlight--shadow-color, | ||
| 87 | props.get(core.$theme, --accent, --200), | ||
| 88 | "color" | ||
| 89 | ) !default; | ||
| 90 | 39 | ||
| 91 | $hover--bg-color: props.def( | 40 | $hover--bg-color: props.def(--o-card--hover--bg-color, color-mix(in lch, props.get($bg-color), props.get(core.$theme, --border-mute)), 'color') !default; |
| 92 | --o-card--hover--bg-color, | 41 | $hover--border-color: props.def(--o-card--hover--border-color, props.get(core.$theme, --border), 'color') !default; |
| 93 | color-mix(in lch, props.get($bg-color), props.get(core.$theme, --border-mute)), | ||
| 94 | "color" | ||
| 95 | ) !default; | ||
| 96 | $hover--border-color: props.def( | ||
| 97 | --o-card--hover--border-color, | ||
| 98 | props.get(core.$theme, --border), | ||
| 99 | "color" | ||
| 100 | ) !default; | ||
| 101 | 42 | ||
| 102 | $key-focus--label-color: props.def( | 43 | $key-focus--label-color: props.def(--o-card--key-focus--label-color, props.get(core.$theme, --focus, --text), 'color') !default; |
| 103 | --o-card--key-focus--label-color, | 44 | $key-focus--border-color: props.def(--o-card--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 104 | props.get(core.$theme, --focus, --text), | 45 | $key-focus--outline-color: props.def(--o-card--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 105 | "color" | ||
| 106 | ) !default; | ||
| 107 | $key-focus--border-color: props.def( | ||
| 108 | --o-card--key-focus--border-color, | ||
| 109 | props.get(core.$theme, --focus, --border), | ||
| 110 | "color" | ||
| 111 | ) !default; | ||
| 112 | $key-focus--outline-color: props.def( | ||
| 113 | --o-card--key-focus--outline-color, | ||
| 114 | props.get(core.$theme, --focus, --outline), | ||
| 115 | "color" | ||
| 116 | ) !default; | ||
| 117 | 46 | ||
| 118 | $quiet--image-color: props.def( | 47 | $quiet--image-color: props.def(--o-card--quiet--image-color, props.get(core.$theme, --bg-base), 'color') !default; |
| 119 | --o-card--quiet--image-color, | 48 | $quiet--hover--image-color: props.def(--o-card--quiet--hover--image-color, props.get(core.$theme, --border), 'color') !default; |
| 120 | props.get(core.$theme, --bg-base), | ||
| 121 | "color" | ||
| 122 | ) !default; | ||
| 123 | $quiet--hover--image-color: props.def( | ||
| 124 | --o-card--quiet--hover--image-color, | ||
| 125 | props.get(core.$theme, --border), | ||
| 126 | "color" | ||
| 127 | ) !default; | ||
| 128 | 49 | ||
| 129 | $pad-i--sm: props.def(--o-card--pad-i, props.get(core.$size--200), "sm") !default; | 50 | $pad-i--sm: props.def(--o-card--pad-i, props.get(core.$size--200), 'sm') !default; |
| 130 | $pad-b--sm: props.def(--o-card--pad-b, props.get(core.$size--175), "sm") !default; | 51 | $pad-b--sm: props.def(--o-card--pad-b, props.get(core.$size--175), 'sm') !default; |
diff --git a/src/objects/_checkbox.scss b/src/objects/_checkbox.scss index 60cee65..f3fb793 100644 --- a/src/objects/_checkbox.scss +++ b/src/objects/_checkbox.scss | |||
| @@ -1,140 +1,130 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/functions" as fn; | 3 | @use 'pkg:iro-sass/src/functions' as fn; |
| 4 | @use "pkg:iro-sass/props"; | 4 | @use 'pkg:iro-sass/src/props'; |
| 5 | @use "../props" as *; | 5 | @use '../props' as *; |
| 6 | @use "../core.vars" as core; | 6 | @use '../core.vars' as core; |
| 7 | 7 | ||
| 8 | @forward "checkbox.vars"; | 8 | @forward 'checkbox.vars'; |
| 9 | @use "checkbox.vars" as vars; | 9 | @use 'checkbox.vars' as vars; |
| 10 | 10 | ||
| 11 | @mixin styles { | 11 | @mixin styles { |
| 12 | @include materialize-at-root(meta.module-variables("vars")); | 12 | @include materialize-at-root(meta.module-variables('vars')); |
| 13 | 13 | ||
| 14 | @include bem.object("checkbox") { | 14 | @include bem.object('checkbox') { |
| 15 | position: relative; | 15 | position: relative; |
| 16 | display: inline-block; | 16 | display: inline-block; |
| 17 | padding-block: props.get(vars.$pad-b); | 17 | padding-block: props.get(vars.$pad-b); |
| 18 | padding-inline: props.get(vars.$pad-i); | 18 | padding-inline: props.get(vars.$pad-i); |
| 19 | margin-inline: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) | 19 | margin-inline: |
| 20 | calc( | 20 | calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) |
| 21 | props.get(vars.$spacing-sibling) - props.get(vars.$pad-b) - props.get( | 21 | calc(props.get(vars.$spacing-sibling) - props.get(vars.$pad-b) - props.get(vars.$key-focus--border-offset)); |
| 22 | vars.$key-focus--border-offset | ||
| 23 | ) | ||
| 24 | ); | ||
| 25 | 22 | ||
| 26 | @include bem.elem("box") { | 23 | @include bem.elem('box') { |
| 27 | position: relative; | 24 | position: relative; |
| 28 | display: inline-block; | 25 | display: inline-block; |
| 29 | flex: 0 0 auto; | 26 | flex: 0 0 auto; |
| 30 | inline-size: props.get(vars.$size); | 27 | inline-size: props.get(vars.$size); |
| 31 | block-size: props.get(vars.$size); | 28 | block-size: props.get(vars.$size); |
| 32 | margin-block-start: calc( | 29 | margin-block-start: calc(.5em * props.get(core.$font--standard--line-height) - .5 * props.get(vars.$size) - props.get(vars.$key-focus--border-offset)); |
| 33 | 0.5em * props.get(core.$font--standard--line-height) - 0.5 * | 30 | vertical-align: top; |
| 34 | props.get(vars.$size) - props.get(vars.$key-focus--border-offset) | 31 | background-color: props.get(vars.$box-border-color); |
| 35 | ); | 32 | background-clip: padding-box; |
| 36 | vertical-align: top; | 33 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 37 | background-color: props.get(vars.$box-border-color); | 34 | border-radius: calc(props.get(vars.$border-width) + props.get(vars.$key-focus--border-offset)); |
| 38 | background-clip: padding-box; | ||
| 39 | border: props.get(vars.$key-focus--border-offset) solid transparent; | ||
| 40 | border-radius: calc( | ||
| 41 | props.get(vars.$border-width) + props.get(vars.$key-focus--border-offset) | ||
| 42 | ); | ||
| 43 | 35 | ||
| 44 | &::before, | 36 | &::before, |
| 45 | &::after { | 37 | &::after { |
| 46 | position: absolute; | 38 | position: absolute; |
| 47 | display: block; | 39 | display: block; |
| 48 | content: ""; | 40 | content: ''; |
| 49 | } | 41 | } |
| 50 | 42 | ||
| 51 | &::before { | 43 | &::before { |
| 52 | inset-block-start: props.get(vars.$border-width); | 44 | inset-block-start: props.get(vars.$border-width); |
| 53 | inset-inline-start: props.get(vars.$border-width); | 45 | inset-inline-start: props.get(vars.$border-width); |
| 54 | z-index: 2; | 46 | z-index: 2; |
| 55 | inline-size: calc(props.get(vars.$size) - 2 * props.get(vars.$border-width)); | 47 | inline-size: calc(props.get(vars.$size) - 2 * props.get(vars.$border-width)); |
| 56 | block-size: calc(props.get(vars.$size) - 2 * props.get(vars.$border-width)); | 48 | block-size: calc(props.get(vars.$size) - 2 * props.get(vars.$border-width)); |
| 57 | background-color: props.get(vars.$box-bg-color); | 49 | background-color: props.get(vars.$box-bg-color); |
| 58 | transition: transform 0.2s ease; | 50 | transition: transform .2s ease; |
| 59 | } | 51 | } |
| 60 | 52 | ||
| 61 | &::after { | 53 | &::after { |
| 62 | inset-block-start: calc(0.5 * props.get(vars.$size) - 1px); | 54 | inset-block-start: calc(.5 * props.get(vars.$size) - 1px); |
| 63 | inset-inline-start: calc(1.5 * props.get(vars.$border-width)); | 55 | inset-inline-start: calc(1.5 * props.get(vars.$border-width)); |
| 64 | z-index: 3; | 56 | z-index: 3; |
| 65 | box-sizing: border-box; | 57 | box-sizing: border-box; |
| 66 | inline-size: calc(props.get(vars.$size) - 3 * props.get(vars.$border-width)); | 58 | inline-size: calc(props.get(vars.$size) - 3 * props.get(vars.$border-width)); |
| 67 | block-size: 0; | 59 | block-size: 0; |
| 68 | border-color: props.get(vars.$box-bg-color); | 60 | border-color: props.get(vars.$box-bg-color); |
| 69 | border-style: solid; | 61 | border-style: solid; |
| 70 | border-radius: 2px; | 62 | border-radius: 2px; |
| 71 | transform: scale(0); | 63 | transform: scale(0); |
| 72 | transition: transform 0.2s ease; | 64 | transition: transform .2s ease; |
| 73 | border-block-width: 0 2px; | 65 | border-block-width: 0 2px; |
| 74 | border-inline-width: 0 2px; | 66 | border-inline-width: 0 2px; |
| 75 | } | 67 | } |
| 76 | } | 68 | } |
| 77 | 69 | ||
| 78 | @include bem.elem("check-icon") { | 70 | @include bem.elem('check-icon') { |
| 79 | position: absolute; | 71 | position: absolute; |
| 80 | inset-block-start: calc(1 * props.get(vars.$border-width)); | 72 | inset-block-start: calc(1 * props.get(vars.$border-width)); |
| 81 | inset-inline-start: calc(1 * props.get(vars.$border-width)); | 73 | inset-inline-start: calc(1 * props.get(vars.$border-width)); |
| 82 | z-index: 2; | 74 | z-index: 2; |
| 83 | display: block; | 75 | display: block; |
| 84 | inline-size: calc(100% - 2 * props.get(vars.$border-width)); | 76 | inline-size: calc(100% - 2 * props.get(vars.$border-width)); |
| 85 | block-size: calc(100% - 2 * props.get(vars.$border-width)); | 77 | block-size: calc(100% - 2 * props.get(vars.$border-width)); |
| 86 | margin: 0; | 78 | margin: 0; |
| 87 | color: props.get(vars.$box-bg-color); | 79 | color: props.get(vars.$box-bg-color); |
| 88 | stroke-width: fn.px-to-rem(3px); | 80 | stroke-width: fn.px-to-rem(3px); |
| 89 | transform: scale(0); | 81 | transform: scale(0); |
| 90 | transform-origin: 40% 90%; | 82 | transform-origin: 40% 90%; |
| 91 | transition: transform 0.2s ease; | 83 | transition: transform .2s ease; |
| 92 | } | 84 | } |
| 93 | 85 | ||
| 94 | @include bem.elem("label") { | 86 | @include bem.elem('label') { |
| 95 | margin-inline-start: calc( | 87 | margin-inline-start: calc(props.get(vars.$label-gap) - props.get(vars.$key-focus--border-offset)); |
| 96 | props.get(vars.$label-gap) - props.get(vars.$key-focus--border-offset) | ||
| 97 | ); | ||
| 98 | } | 88 | } |
| 99 | 89 | ||
| 100 | @include bem.elem("native") { | 90 | @include bem.elem('native') { |
| 101 | position: absolute; | 91 | position: absolute; |
| 102 | inset-block-start: 0; | 92 | inset-block-start: 0; |
| 103 | inset-inline-start: 0; | 93 | inset-inline-start: 0; |
| 104 | z-index: -1; | 94 | z-index: -1; |
| 105 | inline-size: 100%; | 95 | inline-size: 100%; |
| 106 | block-size: 100%; | 96 | block-size: 100%; |
| 107 | padding: 0; | 97 | padding: 0; |
| 108 | margin: 0; | 98 | margin: 0; |
| 109 | overflow: hidden; | 99 | overflow: hidden; |
| 110 | appearance: none; | 100 | appearance: none; |
| 111 | border-radius: props.get(vars.$rounding); | 101 | border-radius: props.get(vars.$rounding); |
| 112 | 102 | ||
| 113 | &:hover, | 103 | &:hover, |
| 114 | &:focus-visible { | 104 | &:focus-visible { |
| 115 | @include bem.sibling-elem("label") { | 105 | @include bem.sibling-elem('label') { |
| 116 | color: props.get(vars.$hover--label-color); | 106 | color: props.get(vars.$hover--label-color); |
| 117 | } | 107 | } |
| 118 | 108 | ||
| 119 | @include bem.sibling-elem("box") { | 109 | @include bem.sibling-elem('box') { |
| 120 | background-color: props.get(vars.$hover--box-border-color); | 110 | background-color: props.get(vars.$hover--box-border-color); |
| 121 | } | 111 | } |
| 122 | } | 112 | } |
| 123 | 113 | ||
| 124 | &:checked { | 114 | &:checked { |
| 125 | @include bem.sibling-elem("box") { | 115 | @include bem.sibling-elem('box') { |
| 126 | &::before { | 116 | &::before { |
| 127 | transform: scale(0); | 117 | transform: scale(0); |
| 128 | } | 118 | } |
| 129 | 119 | ||
| 130 | @include bem.elem("check-icon") { | 120 | @include bem.elem('check-icon') { |
| 131 | transform: scale(1); | 121 | transform: scale(1); |
| 132 | } | 122 | } |
| 133 | } | 123 | } |
| 134 | } | 124 | } |
| 135 | 125 | ||
| 136 | &:indeterminate { | 126 | &:indeterminate { |
| 137 | @include bem.sibling-elem("box") { | 127 | @include bem.sibling-elem('box') { |
| 138 | &::before { | 128 | &::before { |
| 139 | transform: scale(0); | 129 | transform: scale(0); |
| 140 | } | 130 | } |
| @@ -143,18 +133,18 @@ | |||
| 143 | transform: scale(1); | 133 | transform: scale(1); |
| 144 | } | 134 | } |
| 145 | 135 | ||
| 146 | @include bem.elem("check-icon") { | 136 | @include bem.elem('check-icon') { |
| 147 | transform: scale(0); | 137 | transform: scale(0); |
| 148 | } | 138 | } |
| 149 | } | 139 | } |
| 150 | } | 140 | } |
| 151 | 141 | ||
| 152 | &:disabled { | 142 | &:disabled { |
| 153 | @include bem.sibling-elem("label") { | 143 | @include bem.sibling-elem('label') { |
| 154 | color: props.get(vars.$disabled--label-color); | 144 | color: props.get(vars.$disabled--label-color); |
| 155 | } | 145 | } |
| 156 | 146 | ||
| 157 | @include bem.sibling-elem("box") { | 147 | @include bem.sibling-elem('box') { |
| 158 | background-color: props.get(vars.$disabled--box-border-color); | 148 | background-color: props.get(vars.$disabled--box-border-color); |
| 159 | 149 | ||
| 160 | &::before { | 150 | &::before { |
| @@ -164,59 +154,58 @@ | |||
| 164 | } | 154 | } |
| 165 | 155 | ||
| 166 | &:focus-visible { | 156 | &:focus-visible { |
| 167 | @include bem.sibling-elem("label") { | 157 | @include bem.sibling-elem('label') { |
| 168 | color: props.get(vars.$key-focus--label-color); | 158 | color: props.get(vars.$key-focus--label-color); |
| 169 | } | 159 | } |
| 170 | 160 | ||
| 171 | @include bem.sibling-elem("box") { | 161 | @include bem.sibling-elem('box') { |
| 172 | outline: props.get(vars.$key-focus--border-color) solid | 162 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 173 | props.get(vars.$key-focus--border-width); | 163 | box-shadow: |
| 174 | box-shadow: 0 0 0 | 164 | 0 |
| 175 | calc( | 165 | 0 |
| 176 | props.get(vars.$key-focus--border-width) + | 166 | 0 |
| 177 | props.get(vars.$key-focus--outline-width) | 167 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 178 | ) | ||
| 179 | props.get(vars.$key-focus--outline-color); | 168 | props.get(vars.$key-focus--outline-color); |
| 180 | } | 169 | } |
| 181 | } | 170 | } |
| 182 | } | 171 | } |
| 183 | 172 | ||
| 184 | @include bem.modifier("standalone") { | 173 | @include bem.modifier('standalone') { |
| 185 | @include bem.elem("box") { | 174 | @include bem.elem('box') { |
| 186 | margin-block-start: 0; | 175 | margin-block-start: 0; |
| 187 | } | 176 | } |
| 188 | } | 177 | } |
| 189 | 178 | ||
| 190 | @include bem.modifier("accent") { | 179 | @include bem.modifier('accent') { |
| 191 | @include bem.elem("native") { | 180 | @include bem.elem('native') { |
| 192 | &:checked { | 181 | &:checked { |
| 193 | @include bem.sibling-elem("box") { | 182 | @include bem.sibling-elem('box') { |
| 194 | background-color: props.get(vars.$accent--box-border-color); | 183 | background-color: props.get(vars.$accent--box-border-color); |
| 195 | } | 184 | } |
| 196 | 185 | ||
| 197 | &:hover, | 186 | &:hover, |
| 198 | &:focus-visible { | 187 | &:focus-visible { |
| 199 | @include bem.sibling-elem("box") { | 188 | @include bem.sibling-elem('box') { |
| 200 | background-color: props.get(vars.$accent--hover--box-border-color); | 189 | background-color: props.get(vars.$accent--hover--box-border-color); |
| 201 | } | 190 | } |
| 202 | } | 191 | } |
| 203 | } | 192 | } |
| 204 | 193 | ||
| 205 | &:indeterminate { | 194 | &:indeterminate { |
| 206 | @include bem.sibling-elem("box") { | 195 | @include bem.sibling-elem('box') { |
| 207 | background-color: props.get(vars.$accent--box-border-color); | 196 | background-color: props.get(vars.$accent--box-border-color); |
| 208 | } | 197 | } |
| 209 | 198 | ||
| 210 | &:hover, | 199 | &:hover, |
| 211 | &:focus-visible { | 200 | &:focus-visible { |
| 212 | @include bem.sibling-elem("box") { | 201 | @include bem.sibling-elem('box') { |
| 213 | background-color: props.get(vars.$accent--hover--box-border-color); | 202 | background-color: props.get(vars.$accent--hover--box-border-color); |
| 214 | } | 203 | } |
| 215 | } | 204 | } |
| 216 | } | 205 | } |
| 217 | 206 | ||
| 218 | &:disabled { | 207 | &:disabled { |
| 219 | @include bem.sibling-elem("box") { | 208 | @include bem.sibling-elem('box') { |
| 220 | background-color: props.get(vars.$disabled--box-border-color); | 209 | background-color: props.get(vars.$disabled--box-border-color); |
| 221 | 210 | ||
| 222 | &::before { | 211 | &::before { |
| @@ -225,13 +214,13 @@ | |||
| 225 | } | 214 | } |
| 226 | 215 | ||
| 227 | &:checked { | 216 | &:checked { |
| 228 | @include bem.sibling-elem("box") { | 217 | @include bem.sibling-elem('box') { |
| 229 | background-color: props.get(vars.$disabled--box-border-color); | 218 | background-color: props.get(vars.$disabled--box-border-color); |
| 230 | } | 219 | } |
| 231 | } | 220 | } |
| 232 | 221 | ||
| 233 | &:indeterminate { | 222 | &:indeterminate { |
| 234 | @include bem.sibling-elem("box") { | 223 | @include bem.sibling-elem('box') { |
| 235 | background-color: props.get(vars.$disabled--box-border-color); | 224 | background-color: props.get(vars.$disabled--box-border-color); |
| 236 | } | 225 | } |
| 237 | } | 226 | } |
diff --git a/src/objects/_checkbox.vars.scss b/src/objects/_checkbox.vars.scss index 8362aa7..278aac8 100644 --- a/src/objects/_checkbox.vars.scss +++ b/src/objects/_checkbox.vars.scss | |||
| @@ -1,92 +1,32 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../core.vars" as core; | 3 | @use '../core.vars' as core; |
| 4 | 4 | ||
| 5 | $size: props.def(--o-checkbox--size, props.get(core.$size--175)) !default; | 5 | $size: props.def(--o-checkbox--size, props.get(core.$size--175)) !default; |
| 6 | $label-gap: props.def(--o-checkbox--label-gap, props.get(core.$size--125)) !default; | 6 | $label-gap: props.def(--o-checkbox--label-gap, props.get(core.$size--125)) !default; |
| 7 | $border-width: props.def( | 7 | $border-width: props.def(--o-checkbox--border-width, props.get(core.$border-width--medium)) !default; |
| 8 | --o-checkbox--border-width, | 8 | $pad-i: props.def(--o-checkbox--pad-i, props.get(core.$size--65)) !default; |
| 9 | props.get(core.$border-width--medium) | 9 | $pad-b: props.def(--o-checkbox--pad-b, props.get(core.$size--65)) !default; |
| 10 | ) !default; | 10 | $rounding: props.def(--o-checkbox--rounding, props.get(core.$rounding--sm)) !default; |
| 11 | $pad-i: props.def(--o-checkbox--pad-i, props.get(core.$size--65)) !default; | ||
| 12 | $pad-b: props.def(--o-checkbox--pad-b, props.get(core.$size--65)) !default; | ||
| 13 | $rounding: props.def(--o-checkbox--rounding, props.get(core.$rounding--sm)) !default; | ||
| 14 | $spacing-sibling: props.def(--o-checkbox--spacing-sibling, props.get(core.$size--300)) !default; | 11 | $spacing-sibling: props.def(--o-checkbox--spacing-sibling, props.get(core.$size--300)) !default; |
| 15 | 12 | ||
| 16 | $key-focus--border-width: props.def( | 13 | $key-focus--border-width: props.def(--o-checkbox--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 17 | --o-checkbox--key-focus--border-width, | 14 | $key-focus--border-offset: props.def(--o-checkbox--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 18 | props.get(core.$key-focus--border-width) | 15 | $key-focus--outline-width: props.def(--o-checkbox--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; |
| 19 | ) !default; | ||
| 20 | $key-focus--border-offset: props.def( | ||
| 21 | --o-checkbox--key-focus--border-offset, | ||
| 22 | props.get(core.$key-focus--border-offset) | ||
| 23 | ) !default; | ||
| 24 | $key-focus--outline-width: props.def( | ||
| 25 | --o-checkbox--key-focus--outline-width, | ||
| 26 | props.get(core.$key-focus--outline-width) | ||
| 27 | ) !default; | ||
| 28 | 16 | ||
| 29 | $box-border-color: props.def( | 17 | $box-border-color: props.def(--o-checkbox--box-border-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 30 | --o-checkbox--box-border-color, | 18 | $box-bg-color: props.def(--o-checkbox--box-bg-color, props.get(core.$theme, --base, --75), 'color') !default; |
| 31 | props.get(core.$theme, --text-mute-more), | ||
| 32 | "color" | ||
| 33 | ) !default; | ||
| 34 | $box-bg-color: props.def( | ||
| 35 | --o-checkbox--box-bg-color, | ||
| 36 | props.get(core.$theme, --base, --75), | ||
| 37 | "color" | ||
| 38 | ) !default; | ||
| 39 | 19 | ||
| 40 | $hover--label-color: props.def( | 20 | $hover--label-color: props.def(--o-checkbox--hover--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 41 | --o-checkbox--hover--label-color, | 21 | $hover--box-border-color: props.def(--o-checkbox--hover--box-border-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 42 | props.get(core.$theme, --heading), | ||
| 43 | "color" | ||
| 44 | ) !default; | ||
| 45 | $hover--box-border-color: props.def( | ||
| 46 | --o-checkbox--hover--box-border-color, | ||
| 47 | props.get(core.$theme, --text-mute), | ||
| 48 | "color" | ||
| 49 | ) !default; | ||
| 50 | 22 | ||
| 51 | $accent--box-border-color: props.def( | 23 | $accent--box-border-color: props.def(--o-checkbox--accent--box-border-color, props.get(core.$theme, --accent, --900), 'color') !default; |
| 52 | --o-checkbox--accent--box-border-color, | 24 | $accent--hover--box-border-color: props.def(--o-checkbox--accent--hover--box-border-color, props.get(core.$theme, --accent, --1000), 'color') !default; |
| 53 | props.get(core.$theme, --accent, --900), | ||
| 54 | "color" | ||
| 55 | ) !default; | ||
| 56 | $accent--hover--box-border-color: props.def( | ||
| 57 | --o-checkbox--accent--hover--box-border-color, | ||
| 58 | props.get(core.$theme, --accent, --1000), | ||
| 59 | "color" | ||
| 60 | ) !default; | ||
| 61 | 25 | ||
| 62 | $disabled--label-color: props.def( | 26 | $disabled--label-color: props.def(--o-checkbox--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 63 | --o-checkbox--disabled--label-color, | 27 | $disabled--box-border-color: props.def(--o-checkbox--disabled--box-border-color, props.get(core.$theme, --border-strong), 'color') !default; |
| 64 | props.get(core.$theme, --text-disabled), | 28 | $disabled--box-bg-color: props.def(--o-checkbox--disabled--box-bg-color, props.get(core.$theme, --base, --75), 'color') !default; |
| 65 | "color" | ||
| 66 | ) !default; | ||
| 67 | $disabled--box-border-color: props.def( | ||
| 68 | --o-checkbox--disabled--box-border-color, | ||
| 69 | props.get(core.$theme, --border-strong), | ||
| 70 | "color" | ||
| 71 | ) !default; | ||
| 72 | $disabled--box-bg-color: props.def( | ||
| 73 | --o-checkbox--disabled--box-bg-color, | ||
| 74 | props.get(core.$theme, --base, --75), | ||
| 75 | "color" | ||
| 76 | ) !default; | ||
| 77 | 29 | ||
| 78 | $key-focus--label-color: props.def( | 30 | $key-focus--label-color: props.def(--o-checkbox--key-focus--label-color, props.get(core.$theme, --focus, --text), 'color') !default; |
| 79 | --o-checkbox--key-focus--label-color, | 31 | $key-focus--border-color: props.def(--o-checkbox--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 80 | props.get(core.$theme, --focus, --text), | 32 | $key-focus--outline-color: props.def(--o-checkbox--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 81 | "color" | ||
| 82 | ) !default; | ||
| 83 | $key-focus--border-color: props.def( | ||
| 84 | --o-checkbox--key-focus--border-color, | ||
| 85 | props.get(core.$theme, --focus, --border), | ||
| 86 | "color" | ||
| 87 | ) !default; | ||
| 88 | $key-focus--outline-color: props.def( | ||
| 89 | --o-checkbox--key-focus--outline-color, | ||
| 90 | props.get(core.$theme, --focus, --outline), | ||
| 91 | "color" | ||
| 92 | ) !default; | ||
diff --git a/src/objects/_dialog.scss b/src/objects/_dialog.scss index f5584e6..d2ee8c3 100644 --- a/src/objects/_dialog.scss +++ b/src/objects/_dialog.scss | |||
| @@ -1,29 +1,29 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "dialog.vars"; | 6 | @forward 'dialog.vars'; |
| 7 | @use "dialog.vars" as vars; | 7 | @use 'dialog.vars' as vars; |
| 8 | 8 | ||
| 9 | @use "backdrop.vars" as backdrop; | 9 | @use 'backdrop.vars' as backdrop; |
| 10 | @use "divider.vars" as divider; | 10 | @use 'divider.vars' as divider; |
| 11 | 11 | ||
| 12 | @mixin styles { | 12 | @mixin styles { |
| 13 | @include materialize-at-root(meta.module-variables("vars")); | 13 | @include materialize-at-root(meta.module-variables('vars')); |
| 14 | 14 | ||
| 15 | @include bem.object("dialog") { | 15 | @include bem.object('dialog') { |
| 16 | display: none; | 16 | display: none; |
| 17 | box-sizing: border-box; | 17 | box-sizing: border-box; |
| 18 | inline-size: 100%; | 18 | inline-size: 100%; |
| 19 | max-inline-size: none; | 19 | max-inline-size: none; |
| 20 | block-size: 100%; | 20 | block-size: 100%; |
| 21 | min-block-size: 0; | 21 | min-block-size: 0; |
| 22 | max-block-size: none; | 22 | max-block-size: none; |
| 23 | padding: props.get(vars.$pad-b) props.get(vars.$pad-i); | 23 | padding: props.get(vars.$pad-b) props.get(vars.$pad-i); |
| 24 | margin: 0; | 24 | margin: 0; |
| 25 | background-color: transparent; | 25 | background-color: transparent; |
| 26 | border: 0; | 26 | border: 0; |
| 27 | 27 | ||
| 28 | &::backdrop { | 28 | &::backdrop { |
| 29 | background-color: props.get(backdrop.$bg-color); | 29 | background-color: props.get(backdrop.$bg-color); |
| @@ -31,40 +31,38 @@ | |||
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | &[open], | 33 | &[open], |
| 34 | &:popover-open { | 34 | &:popover-open { |
| 35 | display: flex; | 35 | display: flex; |
| 36 | flex-direction: column; | 36 | flex-direction: column; |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | @include bem.elem("content") { | 39 | @include bem.elem('content') { |
| 40 | pointer-events: auto; | 40 | pointer-events: auto; |
| 41 | border-radius: props.get(vars.$rounding); | 41 | border-radius: props.get(vars.$rounding); |
| 42 | background-color: props.get(vars.$bg-color); | 42 | background-color: props.get(vars.$bg-color); |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | @include bem.elem("header") { | 45 | @include bem.elem('header') { |
| 46 | display: flex; | 46 | display: flex; |
| 47 | align-items: center; | 47 | align-items: center; |
| 48 | padding: props.get(vars.$body--pad-i) props.get(vars.$body--pad-i) 0; | 48 | padding: props.get(vars.$body--pad-i) props.get(vars.$body--pad-i) 0; |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | @include bem.elem("divider") { | 51 | @include bem.elem('divider') { |
| 52 | margin-inline: props.get(vars.$body--pad-i); | 52 | margin-inline: props.get(vars.$body--pad-i); |
| 53 | 53 | ||
| 54 | @include bem.next-elem("body") { | 54 | @include bem.next-elem('body') { |
| 55 | padding-block-start: calc( | 55 | padding-block-start: calc(.5 * props.get(vars.$body--pad-b) - props.get(divider.$margin-b)); |
| 56 | 0.5 * props.get(vars.$body--pad-b) - props.get(divider.$margin-b) | ||
| 57 | ); | ||
| 58 | } | 56 | } |
| 59 | } | 57 | } |
| 60 | 58 | ||
| 61 | @include bem.elem("body") { | 59 | @include bem.elem('body') { |
| 62 | padding: props.get(vars.$body--pad-b) props.get(vars.$body--pad-i); | 60 | padding: props.get(vars.$body--pad-b) props.get(vars.$body--pad-i); |
| 63 | 61 | ||
| 64 | &::before { | 62 | &::before { |
| 65 | display: block; | 63 | display: block; |
| 66 | margin-block: -100em 100em; | 64 | margin-block: -100em 100em; |
| 67 | content: ""; | 65 | content: ''; |
| 68 | } | 66 | } |
| 69 | } | 67 | } |
| 70 | } | 68 | } |
diff --git a/src/objects/_dialog.vars.scss b/src/objects/_dialog.vars.scss index 8650e51..39c47ba 100644 --- a/src/objects/_dialog.vars.scss +++ b/src/objects/_dialog.vars.scss | |||
| @@ -1,10 +1,10 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../core.vars" as core; | 3 | @use '../core.vars' as core; |
| 4 | @use "../layouts/container.vars" as container; | 4 | @use '../layouts/container.vars' as container; |
| 5 | 5 | ||
| 6 | $pad-b: props.def(--o-dialog--pad-b, props.get(container.$pad-i)) !default; | 6 | $pad-b: props.def(--o-dialog--pad-b, props.get(container.$pad-i)) !default; |
| 7 | $pad-i: props.def(--o-dialog--pad-b, props.get(container.$pad-i)) !default; | 7 | $pad-i: props.def(--o-dialog--pad-b, props.get(container.$pad-i)) !default; |
| 8 | $rounding: props.def(--o-dialog--rounding, props.get(core.$rounding)) !default; | 8 | $rounding: props.def(--o-dialog--rounding, props.get(core.$rounding)) !default; |
| 9 | 9 | ||
| 10 | $border-width: props.def(--o-dialog--border-width, props.get(core.$border-width--thin)) !default; | 10 | $border-width: props.def(--o-dialog--border-width, props.get(core.$border-width--thin)) !default; |
| @@ -12,9 +12,5 @@ $border-width: props.def(--o-dialog--border-width, props.get(core.$border-width- | |||
| 12 | $body--pad-b: props.def(--o-dialog--body--pad-b, props.get(container.$pad-i)) !default; | 12 | $body--pad-b: props.def(--o-dialog--body--pad-b, props.get(container.$pad-i)) !default; |
| 13 | $body--pad-i: props.def(--o-dialog--body--pad-i, props.get(container.$pad-i)) !default; | 13 | $body--pad-i: props.def(--o-dialog--body--pad-i, props.get(container.$pad-i)) !default; |
| 14 | 14 | ||
| 15 | $bg-color: props.def(--o-dialog--bg-color, props.get(core.$theme, --bg-l1), "color") !default; | 15 | $bg-color: props.def(--o-dialog--bg-color, props.get(core.$theme, --bg-l1), 'color') !default; |
| 16 | $border-color: props.def( | 16 | $border-color: props.def(--o-dialog--border-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 17 | --o-dialog--border-color, | ||
| 18 | props.get(core.$theme, --border-mute), | ||
| 19 | "color" | ||
| 20 | ) !default; | ||
diff --git a/src/objects/_divider.scss b/src/objects/_divider.scss index f082d12..d81284b 100644 --- a/src/objects/_divider.scss +++ b/src/objects/_divider.scss | |||
| @@ -1,38 +1,38 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:meta"; | 2 | @use 'sass:meta'; |
| 3 | @use "sass:string"; | 3 | @use 'sass:string'; |
| 4 | @use "pkg:iro-sass/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/props'; |
| 6 | @use "../props" as *; | 6 | @use '../props' as *; |
| 7 | @use "../core.vars" as core; | 7 | @use '../core.vars' as core; |
| 8 | 8 | ||
| 9 | @forward "divider.vars"; | 9 | @forward 'divider.vars'; |
| 10 | @use "divider.vars" as vars; | 10 | @use 'divider.vars' as vars; |
| 11 | 11 | ||
| 12 | @mixin styles { | 12 | @mixin styles { |
| 13 | @include materialize-at-root(meta.module-variables("vars")); | 13 | @include materialize-at-root(meta.module-variables('vars')); |
| 14 | 14 | ||
| 15 | @include bem.object("divider") { | 15 | @include bem.object('divider') { |
| 16 | display: flex; | 16 | display: flex; |
| 17 | flex: 0 0 auto; | 17 | flex: 0 0 auto; |
| 18 | flex-direction: row; | 18 | flex-direction: row; |
| 19 | align-items: center; | 19 | align-items: center; |
| 20 | block-size: 1em; | 20 | block-size: 1em; |
| 21 | margin-block: props.get(vars.$margin-b); | 21 | margin-block: props.get(vars.$margin-b); |
| 22 | font-size: props.get(vars.$strong--label-font-size); | 22 | font-size: props.get(vars.$strong--label-font-size); |
| 23 | font-weight: 700; | 23 | font-weight: 700; |
| 24 | line-height: 1; | 24 | line-height: 1; |
| 25 | color: props.get(vars.$strong--label-color); | 25 | color: props.get(vars.$strong--label-color); |
| 26 | text-transform: uppercase; | 26 | text-transform: uppercase; |
| 27 | letter-spacing: props.get(vars.$letter-spacing); | 27 | letter-spacing: props.get(vars.$letter-spacing); |
| 28 | background-color: transparent; | 28 | background-color: transparent; |
| 29 | 29 | ||
| 30 | &::before, | 30 | &::before, |
| 31 | &::after { | 31 | &::after { |
| 32 | flex: 1 1 auto; | 32 | flex: 1 1 auto; |
| 33 | inline-size: 100%; | 33 | inline-size: 100%; |
| 34 | block-size: props.get(vars.$strong--border-width); | 34 | block-size: props.get(vars.$strong--border-width); |
| 35 | content: ""; | 35 | content: ''; |
| 36 | background-color: props.get(vars.$strong--bg-color); | 36 | background-color: props.get(vars.$strong--bg-color); |
| 37 | } | 37 | } |
| 38 | 38 | ||
| @@ -40,15 +40,15 @@ | |||
| 40 | display: block; | 40 | display: block; |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | @include bem.elem("label") { | 43 | @include bem.elem('label') { |
| 44 | flex: 0 0 auto; | 44 | flex: 0 0 auto; |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | @include bem.modifier("vertical") { | 47 | @include bem.modifier('vertical') { |
| 48 | align-self: stretch; | 48 | align-self: stretch; |
| 49 | inline-size: props.get(vars.$vertical--border-width); | 49 | inline-size: props.get(vars.$vertical--border-width); |
| 50 | block-size: auto; | 50 | block-size: auto; |
| 51 | margin-block: 0; | 51 | margin-block: 0; |
| 52 | background-color: props.get(vars.$strong--bg-color); | 52 | background-color: props.get(vars.$strong--bg-color); |
| 53 | 53 | ||
| 54 | &::before, | 54 | &::before, |
| @@ -57,13 +57,13 @@ | |||
| 57 | } | 57 | } |
| 58 | } | 58 | } |
| 59 | 59 | ||
| 60 | @include bem.modifier("dot") { | 60 | @include bem.modifier('dot') { |
| 61 | align-self: center; | 61 | align-self: center; |
| 62 | inline-size: props.get(vars.$dot--size); | 62 | inline-size: props.get(vars.$dot--size); |
| 63 | block-size: props.get(vars.$dot--size); | 63 | block-size: props.get(vars.$dot--size); |
| 64 | margin-block: 0; | 64 | margin-block: 0; |
| 65 | background-color: props.get(vars.$strong--bg-color); | 65 | background-color: props.get(vars.$strong--bg-color); |
| 66 | border-radius: props.get(vars.$dot--size); | 66 | border-radius: props.get(vars.$dot--size); |
| 67 | 67 | ||
| 68 | &::before, | 68 | &::before, |
| 69 | &::after { | 69 | &::after { |
| @@ -71,73 +71,73 @@ | |||
| 71 | } | 71 | } |
| 72 | } | 72 | } |
| 73 | 73 | ||
| 74 | @include bem.modifier("medium") { | 74 | @include bem.modifier('medium') { |
| 75 | font-size: props.get(vars.$medium--label-font-size); | 75 | font-size: props.get(vars.$medium--label-font-size); |
| 76 | font-weight: 500; | 76 | font-weight: 500; |
| 77 | color: props.get(vars.$medium--label-color); | 77 | color: props.get(vars.$medium--label-color); |
| 78 | 78 | ||
| 79 | &::before, | 79 | &::before, |
| 80 | &::after { | 80 | &::after { |
| 81 | block-size: props.get(vars.$medium--border-width); | 81 | block-size: props.get(vars.$medium--border-width); |
| 82 | background-color: props.get(vars.$medium--bg-color); | 82 | background-color: props.get(vars.$medium--bg-color); |
| 83 | } | 83 | } |
| 84 | 84 | ||
| 85 | @include bem.modifier("vertical") { | 85 | @include bem.modifier('vertical') { |
| 86 | background-color: props.get(vars.$medium--bg-color); | 86 | background-color: props.get(vars.$medium--bg-color); |
| 87 | } | 87 | } |
| 88 | 88 | ||
| 89 | @include bem.modifier("dot") { | 89 | @include bem.modifier('dot') { |
| 90 | background-color: props.get(vars.$medium--bg-color); | 90 | background-color: props.get(vars.$medium--bg-color); |
| 91 | } | 91 | } |
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | @include bem.modifier("quiet") { | 94 | @include bem.modifier('quiet') { |
| 95 | font-size: props.get(vars.$quiet--label-font-size); | 95 | font-size: props.get(vars.$quiet--label-font-size); |
| 96 | font-weight: 500; | 96 | font-weight: 500; |
| 97 | color: props.get(vars.$quiet--label-color); | 97 | color: props.get(vars.$quiet--label-color); |
| 98 | 98 | ||
| 99 | &::before, | 99 | &::before, |
| 100 | &::after { | 100 | &::after { |
| 101 | block-size: props.get(vars.$quiet--border-width); | 101 | block-size: props.get(vars.$quiet--border-width); |
| 102 | background-color: props.get(vars.$quiet--bg-color); | 102 | background-color: props.get(vars.$quiet--bg-color); |
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | @include bem.modifier("vertical") { | 105 | @include bem.modifier('vertical') { |
| 106 | background-color: props.get(vars.$vertical--quiet--bg-color); | 106 | background-color: props.get(vars.$vertical--quiet--bg-color); |
| 107 | } | 107 | } |
| 108 | 108 | ||
| 109 | @include bem.modifier("dot") { | 109 | @include bem.modifier('dot') { |
| 110 | background-color: props.get(vars.$dot--quiet--bg-color); | 110 | background-color: props.get(vars.$dot--quiet--bg-color); |
| 111 | } | 111 | } |
| 112 | } | 112 | } |
| 113 | 113 | ||
| 114 | @include bem.modifier("faint") { | 114 | @include bem.modifier('faint') { |
| 115 | font-size: props.get(vars.$faint--label-font-size); | 115 | font-size: props.get(vars.$faint--label-font-size); |
| 116 | font-weight: 500; | 116 | font-weight: 500; |
| 117 | color: props.get(vars.$faint--label-color); | 117 | color: props.get(vars.$faint--label-color); |
| 118 | 118 | ||
| 119 | &::before, | 119 | &::before, |
| 120 | &::after { | 120 | &::after { |
| 121 | block-size: props.get(vars.$faint--border-width); | 121 | block-size: props.get(vars.$faint--border-width); |
| 122 | background-color: props.get(vars.$faint--bg-color); | 122 | background-color: props.get(vars.$faint--bg-color); |
| 123 | } | 123 | } |
| 124 | 124 | ||
| 125 | @include bem.modifier("vertical") { | 125 | @include bem.modifier('vertical') { |
| 126 | background-color: props.get(vars.$vertical--quiet--bg-color); | 126 | background-color: props.get(vars.$vertical--quiet--bg-color); |
| 127 | } | 127 | } |
| 128 | 128 | ||
| 129 | @include bem.modifier("dot") { | 129 | @include bem.modifier('dot') { |
| 130 | background-color: props.get(vars.$dot--quiet--bg-color); | 130 | background-color: props.get(vars.$dot--quiet--bg-color); |
| 131 | } | 131 | } |
| 132 | } | 132 | } |
| 133 | 133 | ||
| 134 | @include bem.modifier("labelled") { | 134 | @include bem.modifier('labelled') { |
| 135 | &::before { | 135 | &::before { |
| 136 | margin-inline-end: 1em; | 136 | margin-inline-end: 1em; |
| 137 | } | 137 | } |
| 138 | 138 | ||
| 139 | &::after { | 139 | &::after { |
| 140 | display: block; | 140 | display: block; |
| 141 | margin-inline-start: 1em; | 141 | margin-inline-start: 1em; |
| 142 | } | 142 | } |
| 143 | } | 143 | } |
| @@ -149,7 +149,7 @@ | |||
| 149 | background-color: props.get(vars.$themes, $theme, --bg); | 149 | background-color: props.get(vars.$themes, $theme, --bg); |
| 150 | } | 150 | } |
| 151 | 151 | ||
| 152 | @include bem.elem("label") { | 152 | @include bem.elem('label') { |
| 153 | color: props.get(vars.$themes, $theme, --label); | 153 | color: props.get(vars.$themes, $theme, --label); |
| 154 | } | 154 | } |
| 155 | } | 155 | } |
| @@ -162,39 +162,39 @@ | |||
| 162 | background-color: props.get(vars.$static-themes, $theme, --strong, --bg); | 162 | background-color: props.get(vars.$static-themes, $theme, --strong, --bg); |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | @include bem.elem("label") { | 165 | @include bem.elem('label') { |
| 166 | color: props.get(vars.$static-themes, $theme, --strong, --label); | 166 | color: props.get(vars.$static-themes, $theme, --strong, --label); |
| 167 | } | 167 | } |
| 168 | 168 | ||
| 169 | @include bem.modifier("medium") { | 169 | @include bem.modifier('medium') { |
| 170 | &::before, | 170 | &::before, |
| 171 | &::after { | 171 | &::after { |
| 172 | background-color: props.get(vars.$static-themes, $theme, --medium, --bg); | 172 | background-color: props.get(vars.$static-themes, $theme, --medium, --bg); |
| 173 | } | 173 | } |
| 174 | 174 | ||
| 175 | @include bem.elem("label") { | 175 | @include bem.elem('label') { |
| 176 | color: props.get(vars.$static-themes, $theme, --medium, --label); | 176 | color: props.get(vars.$static-themes, $theme, --medium, --label); |
| 177 | } | 177 | } |
| 178 | } | 178 | } |
| 179 | 179 | ||
| 180 | @include bem.modifier("quiet") { | 180 | @include bem.modifier('quiet') { |
| 181 | &::before, | 181 | &::before, |
| 182 | &::after { | 182 | &::after { |
| 183 | background-color: props.get(vars.$static-themes, $theme, --quiet, --bg); | 183 | background-color: props.get(vars.$static-themes, $theme, --quiet, --bg); |
| 184 | } | 184 | } |
| 185 | 185 | ||
| 186 | @include bem.elem("label") { | 186 | @include bem.elem('label') { |
| 187 | color: props.get(vars.$static-themes, $theme, --quiet, --label); | 187 | color: props.get(vars.$static-themes, $theme, --quiet, --label); |
| 188 | } | 188 | } |
| 189 | } | 189 | } |
| 190 | 190 | ||
| 191 | @include bem.modifier("faint") { | 191 | @include bem.modifier('faint') { |
| 192 | &::before, | 192 | &::before, |
| 193 | &::after { | 193 | &::after { |
| 194 | background-color: props.get(vars.$static-themes, $theme, --faint, --bg); | 194 | background-color: props.get(vars.$static-themes, $theme, --faint, --bg); |
| 195 | } | 195 | } |
| 196 | 196 | ||
| 197 | @include bem.elem("label") { | 197 | @include bem.elem('label') { |
| 198 | color: props.get(vars.$static-themes, $theme, --faint, --label); | 198 | color: props.get(vars.$static-themes, $theme, --faint, --label); |
| 199 | } | 199 | } |
| 200 | } | 200 | } |
diff --git a/src/objects/_divider.vars.scss b/src/objects/_divider.vars.scss index 38224d4..a8b0f9f 100644 --- a/src/objects/_divider.vars.scss +++ b/src/objects/_divider.vars.scss | |||
| @@ -1,153 +1,80 @@ | |||
| 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 | $margin-b: props.def(--o-divider--size, props.get(core.$size--85)) !default; | 6 | $margin-b: props.def(--o-divider--size, props.get(core.$size--85)) !default; |
| 7 | $vertical--border-width: props.def( | 7 | $vertical--border-width: props.def(--o-divider--vertical--width, props.get(core.$border-width--thin)) !default; |
| 8 | --o-divider--vertical--width, | 8 | $dot--size: props.def(--o-divider--dot--size, props.get(core.$size--50)) !default; |
| 9 | props.get(core.$border-width--thin) | 9 | $letter-spacing: props.def(--o-divider--letter-spacing, 1px) !default; |
| 10 | ) !default; | ||
| 11 | $dot--size: props.def(--o-divider--dot--size, props.get(core.$size--50)) !default; | ||
| 12 | $letter-spacing: props.def(--o-divider--letter-spacing, 1px) !default; | ||
| 13 | 10 | ||
| 14 | $strong--border-width: props.def( | 11 | $strong--border-width: props.def(--o-divider--strong--border-width, props.get(core.$border-width--thick)) !default; |
| 15 | --o-divider--strong--border-width, | 12 | $strong--label-font-size: props.def(--o-divider--strong--label-font-size, props.get(core.$font-size--100)) !default; |
| 16 | props.get(core.$border-width--thick) | ||
| 17 | ) !default; | ||
| 18 | $strong--label-font-size: props.def( | ||
| 19 | --o-divider--strong--label-font-size, | ||
| 20 | props.get(core.$font-size--100) | ||
| 21 | ) !default; | ||
| 22 | 13 | ||
| 23 | $medium--border-width: props.def( | 14 | $medium--border-width: props.def(--o-divider--medium--border-width, props.get(core.$border-width--medium)) !default; |
| 24 | --o-divider--medium--border-width, | 15 | $medium--label-font-size: props.def(--o-divider--medium--label-font-size, props.get(core.$font-size--75)) !default; |
| 25 | props.get(core.$border-width--medium) | ||
| 26 | ) !default; | ||
| 27 | $medium--label-font-size: props.def( | ||
| 28 | --o-divider--medium--label-font-size, | ||
| 29 | props.get(core.$font-size--75) | ||
| 30 | ) !default; | ||
| 31 | 16 | ||
| 32 | $quiet--border-width: props.def( | 17 | $quiet--border-width: props.def(--o-divider--quiet--border-width, props.get(core.$border-width--thin)) !default; |
| 33 | --o-divider--quiet--border-width, | 18 | $quiet--label-font-size: props.def(--o-divider--quiet--label-font-size, props.get(core.$font-size--50)) !default; |
| 34 | props.get(core.$border-width--thin) | ||
| 35 | ) !default; | ||
| 36 | $quiet--label-font-size: props.def( | ||
| 37 | --o-divider--quiet--label-font-size, | ||
| 38 | props.get(core.$font-size--50) | ||
| 39 | ) !default; | ||
| 40 | 19 | ||
| 41 | $faint--border-width: props.def( | 20 | $faint--border-width: props.def(--o-divider--faint--border-width, props.get(core.$border-width--thin)) !default; |
| 42 | --o-divider--faint--border-width, | 21 | $faint--label-font-size: props.def(--o-divider--faint--label-font-size, props.get(core.$font-size--50)) !default; |
| 43 | props.get(core.$border-width--thin) | ||
| 44 | ) !default; | ||
| 45 | $faint--label-font-size: props.def( | ||
| 46 | --o-divider--faint--label-font-size, | ||
| 47 | props.get(core.$font-size--50) | ||
| 48 | ) !default; | ||
| 49 | 22 | ||
| 50 | $strong--bg-color: props.def( | 23 | $strong--bg-color: props.def(--o-divider--strong--bg-color, props.get(core.$theme, --text), 'color') !default; |
| 51 | --o-divider--strong--bg-color, | 24 | $strong--label-color: props.def(--o-divider--strong--label-color, props.get(core.$theme, --text), 'color') !default; |
| 52 | props.get(core.$theme, --text), | ||
| 53 | "color" | ||
| 54 | ) !default; | ||
| 55 | $strong--label-color: props.def( | ||
| 56 | --o-divider--strong--label-color, | ||
| 57 | props.get(core.$theme, --text), | ||
| 58 | "color" | ||
| 59 | ) !default; | ||
| 60 | 25 | ||
| 61 | $medium--bg-color: props.def( | 26 | $medium--bg-color: props.def(--o-divider--medium--bg-color, props.get(core.$theme, --border), 'color') !default; |
| 62 | --o-divider--medium--bg-color, | 27 | $medium--label-color: props.def(--o-divider--medium--label-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 63 | props.get(core.$theme, --border), | ||
| 64 | "color" | ||
| 65 | ) !default; | ||
| 66 | $medium--label-color: props.def( | ||
| 67 | --o-divider--medium--label-color, | ||
| 68 | props.get(core.$theme, --text-mute), | ||
| 69 | "color" | ||
| 70 | ) !default; | ||
| 71 | 28 | ||
| 72 | $quiet--bg-color: props.def( | 29 | $quiet--bg-color: props.def(--o-divider--quiet--bg-color, props.get(core.$theme, --border), 'color') !default; |
| 73 | --o-divider--quiet--bg-color, | 30 | $quiet--label-color: props.def(--o-divider--quiet--label-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 74 | props.get(core.$theme, --border), | ||
| 75 | "color" | ||
| 76 | ) !default; | ||
| 77 | $quiet--label-color: props.def( | ||
| 78 | --o-divider--quiet--label-color, | ||
| 79 | props.get(core.$theme, --text-mute-more), | ||
| 80 | "color" | ||
| 81 | ) !default; | ||
| 82 | 31 | ||
| 83 | $faint--bg-color: props.def( | 32 | $faint--bg-color: props.def(--o-divider--faint--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 84 | --o-divider--faint--bg-color, | 33 | $faint--label-color: props.def(--o-divider--faint--label-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 85 | props.get(core.$theme, --border-mute), | ||
| 86 | "color" | ||
| 87 | ) !default; | ||
| 88 | $faint--label-color: props.def( | ||
| 89 | --o-divider--faint--label-color, | ||
| 90 | props.get(core.$theme, --text-disabled), | ||
| 91 | "color" | ||
| 92 | ) !default; | ||
| 93 | 34 | ||
| 94 | $vertical--quiet--bg-color: props.def( | 35 | $vertical--quiet--bg-color: props.def(--o-divider--vertical--quiet--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 95 | --o-divider--vertical--quiet--bg-color, | ||
| 96 | props.get(core.$theme, --border-mute), | ||
| 97 | "color" | ||
| 98 | ) !default; | ||
| 99 | 36 | ||
| 100 | $dot--quiet--bg-color: props.def( | 37 | $dot--quiet--bg-color: props.def(--o-divider--dot--quiet--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 101 | --o-divider--dot--quiet--bg-color, | ||
| 102 | props.get(core.$theme, --border-mute), | ||
| 103 | "color" | ||
| 104 | ) !default; | ||
| 105 | 38 | ||
| 106 | $static-themes: props.def(--o-divider, (), "color"); | 39 | $static-themes: props.def(--o-divider, (), 'color'); |
| 107 | 40 | ||
| 108 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 41 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 109 | $button-theme: --static-#{string.slice($theme, 3)}; | 42 | $button-theme: --static-#{string.slice($theme, 3)}; |
| 110 | 43 | ||
| 111 | $static-themes: props.merge( | 44 | $static-themes: props.merge($static-themes, ( |
| 112 | $static-themes, | 45 | $button-theme: ( |
| 113 | ( | 46 | --strong: ( |
| 114 | $button-theme: ( | 47 | --bg: props.get(core.$transparent-colors, $theme, --800), |
| 115 | --strong: ( | 48 | --label: props.get(core.$transparent-colors, $theme, --900), |
| 116 | --bg: props.get(core.$transparent-colors, $theme, --800), | 49 | ), |
| 117 | --label: props.get(core.$transparent-colors, $theme, --900), | 50 | --medium: ( |
| 118 | ), | 51 | --bg: props.get(core.$transparent-colors, $theme, --300), |
| 119 | --medium: ( | 52 | --label: props.get(core.$transparent-colors, $theme, --500), |
| 120 | --bg: props.get(core.$transparent-colors, $theme, --300), | 53 | ), |
| 121 | --label: props.get(core.$transparent-colors, $theme, --500), | 54 | --quiet: ( |
| 122 | ), | 55 | --bg: props.get(core.$transparent-colors, $theme, --300), |
| 123 | --quiet: ( | 56 | --label: props.get(core.$transparent-colors, $theme, --500), |
| 124 | --bg: props.get(core.$transparent-colors, $theme, --300), | 57 | ), |
| 125 | --label: props.get(core.$transparent-colors, $theme, --500), | 58 | --faint: ( |
| 126 | ), | 59 | --bg: props.get(core.$transparent-colors, $theme, --200), |
| 127 | --faint: ( | 60 | --label: props.get(core.$transparent-colors, $theme, --400), |
| 128 | --bg: props.get(core.$transparent-colors, $theme, --200), | 61 | ), |
| 129 | --label: props.get(core.$transparent-colors, $theme, --400), | ||
| 130 | ), | ||
| 131 | ), | ||
| 132 | ) | 62 | ) |
| 133 | ); | 63 | )); |
| 134 | } | 64 | } |
| 135 | 65 | ||
| 136 | $themes-config: ( | 66 | $themes-config: ( |
| 137 | accent: --accent, | 67 | accent: --accent, |
| 138 | negative: --negative, | 68 | negative: --negative, |
| 139 | ) !default; | 69 | ) !default; |
| 140 | 70 | ||
| 141 | $themes: props.def(--o-divider, (), "color"); | 71 | $themes: props.def(--o-divider, (), 'color'); |
| 142 | 72 | ||
| 143 | @each $theme, $key in $themes-config { | 73 | @each $theme, $key in $themes-config { |
| 144 | $themes: props.merge( | 74 | $themes: props.merge($themes, ( |
| 145 | $themes, | 75 | --#{$theme}: ( |
| 146 | ( | 76 | --bg: props.get(core.$theme, $key, --800), |
| 147 | --#{$theme}: ( | 77 | --label: props.get(core.$theme, $key, --1000), |
| 148 | --bg: props.get(core.$theme, $key, --800), | ||
| 149 | --label: props.get(core.$theme, $key, --1000), | ||
| 150 | ) | ||
| 151 | ) | 78 | ) |
| 152 | ); | 79 | )); |
| 153 | } | 80 | } |
diff --git a/src/objects/_emoji.scss b/src/objects/_emoji.scss index 0257b32..655e662 100644 --- a/src/objects/_emoji.scss +++ b/src/objects/_emoji.scss | |||
| @@ -1,55 +1,49 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | @use "icon.vars" as icon; | 5 | @use 'icon.vars' as icon; |
| 6 | 6 | ||
| 7 | @forward "emoji.vars"; | 7 | @forward 'emoji.vars'; |
| 8 | @use "emoji.vars" as vars; | 8 | @use 'emoji.vars' as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables("vars")); | 11 | @include materialize-at-root(meta.module-variables('vars')); |
| 12 | 12 | ||
| 13 | @include bem.object("emoji") { | 13 | @include bem.object('emoji') { |
| 14 | position: relative; | 14 | position: relative; |
| 15 | display: inline-block; | 15 | display: inline-block; |
| 16 | inline-size: calc(props.get(vars.$size)); | 16 | inline-size: calc(props.get(vars.$size)); |
| 17 | block-size: calc(props.get(vars.$size)); | 17 | block-size: calc(props.get(vars.$size)); |
| 18 | padding: calc(props.get(vars.$pad)); | 18 | padding: calc(props.get(vars.$pad)); |
| 19 | margin: calc(-1 * props.get(vars.$pad)); | 19 | margin: calc(-1 * props.get(vars.$pad)); |
| 20 | vertical-align: props.get(vars.$valign); | 20 | vertical-align: props.get(vars.$valign); |
| 21 | object-fit: contain; | 21 | object-fit: contain; |
| 22 | 22 | ||
| 23 | @include bem.modifier("icon") { | 23 | @include bem.modifier('icon') { |
| 24 | margin: calc( | 24 | margin: calc(-1 * props.get(vars.$pad) - .5 * (props.get(vars.$size) - props.get(icon.$size))); |
| 25 | -1 * props.get(vars.$pad) - 0.5 * (props.get(vars.$size) - props.get(icon.$size)) | ||
| 26 | ); | ||
| 27 | vertical-align: props.get(icon.$valign); | 25 | vertical-align: props.get(icon.$valign); |
| 28 | } | 26 | } |
| 29 | 27 | ||
| 30 | @each $mod, $size, $valign in vars.$sizes { | 28 | @each $mod, $size, $valign in vars.$sizes { |
| 31 | @include bem.modifier($mod) { | 29 | @include bem.modifier($mod) { |
| 32 | inline-size: props.get($size); | 30 | inline-size: props.get($size); |
| 33 | block-size: props.get($size); | 31 | block-size: props.get($size); |
| 34 | vertical-align: props.get($valign); | 32 | vertical-align: props.get($valign); |
| 35 | 33 | ||
| 36 | @include bem.modifier("icon") { | 34 | @include bem.modifier('icon') { |
| 37 | margin: calc( | 35 | margin: calc(-1 * props.get(vars.$pad) - .5 * (props.get($size) - props.get(icon.$size))); |
| 38 | -1 * props.get(vars.$pad) - 0.5 * (props.get($size) - props.get(icon.$size)) | ||
| 39 | ); | ||
| 40 | } | 36 | } |
| 41 | } | 37 | } |
| 42 | } | 38 | } |
| 43 | 39 | ||
| 44 | @include bem.modifier("zoomable") { | 40 | @include bem.modifier('zoomable') { |
| 45 | border-radius: calc(props.get(vars.$rounding) / props.get(vars.$zoom)); | 41 | border-radius: calc(props.get(vars.$rounding) / props.get(vars.$zoom)); |
| 46 | transition: | 42 | transition: transform .2s ease, background-color .2s ease; |
| 47 | transform 0.2s ease, | ||
| 48 | background-color 0.2s ease; | ||
| 49 | 43 | ||
| 50 | &:hover { | 44 | &:hover { |
| 51 | background-color: props.get(vars.$bg-color); | 45 | background-color: props.get(vars.$bg-color); |
| 52 | transform: scale(props.get(vars.$zoom)); | 46 | transform: scale(props.get(vars.$zoom)); |
| 53 | } | 47 | } |
| 54 | } | 48 | } |
| 55 | } | 49 | } |
diff --git a/src/objects/_emoji.vars.scss b/src/objects/_emoji.vars.scss index 1c2a0e2..cf940cf 100644 --- a/src/objects/_emoji.vars.scss +++ b/src/objects/_emoji.vars.scss | |||
| @@ -1,26 +1,26 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../core.vars" as core; | 3 | @use '../core.vars' as core; |
| 4 | 4 | ||
| 5 | $size: props.def(--o-emoji--size, calc(1 / 14 * 18em)) !default; | 5 | $size: props.def(--o-emoji--size, calc(1 / 14 * 18em)) !default; |
| 6 | $pad: props.def(--o-emoji--pad, 0.3em) !default; | 6 | $pad: props.def(--o-emoji--pad, .3em) !default; |
| 7 | $rounding: props.def(--o-emoji--rounding, props.get(core.$rounding--sm)) !default; | 7 | $rounding: props.def(--o-emoji--rounding, props.get(core.$rounding--sm)) !default; |
| 8 | $zoom: props.def(--o-emoji--zoom, 3) !default; | 8 | $zoom: props.def(--o-emoji--zoom, 3) !default; |
| 9 | $valign: props.def(--o-emoji--valign, -0.25em) !default; | 9 | $valign: props.def(--o-emoji--valign, -.25em) !default; |
| 10 | 10 | ||
| 11 | $size--125: props.def(--o-emoji--125--size, calc(1 / 14 * 23em)) !default; | 11 | $size--125: props.def(--o-emoji--125--size, calc(1 / 14 * 23em)) !default; |
| 12 | $valign--125: props.def(--o-emoji--125--valign, -0.45em) !default; | 12 | $valign--125: props.def(--o-emoji--125--valign, -.45em) !default; |
| 13 | 13 | ||
| 14 | $size--150: props.def(--o-emoji--150--size, calc(1 / 14 * 28em)) !default; | 14 | $size--150: props.def(--o-emoji--150--size, calc(1 / 14 * 28em)) !default; |
| 15 | $valign--150: props.def(--o-emoji--150--valign, -0.65em) !default; | 15 | $valign--150: props.def(--o-emoji--150--valign, -.65em) !default; |
| 16 | 16 | ||
| 17 | $size--200: props.def(--o-emoji--200--size, calc(1 / 14 * 38em)) !default; | 17 | $size--200: props.def(--o-emoji--200--size, calc(1 / 14 * 38em)) !default; |
| 18 | $valign--200: props.def(--o-emoji--200--valign, -1em) !default; | 18 | $valign--200: props.def(--o-emoji--200--valign, -1em) !default; |
| 19 | 19 | ||
| 20 | $sizes: ( | 20 | $sizes: ( |
| 21 | "125" $size--125 $valign--125, | 21 | '125' $size--125 $valign--125, |
| 22 | "150" $size--150 $valign--150, | 22 | '150' $size--150 $valign--150, |
| 23 | "200" $size--200 $valign--200 | 23 | '200' $size--200 $valign--200, |
| 24 | ) !default; | 24 | ) !default; |
| 25 | 25 | ||
| 26 | $bg-color: props.def(--o-emoji--bg-color, props.get(core.$theme, --border-mute), "color") !default; | 26 | $bg-color: props.def(--o-emoji--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
diff --git a/src/objects/_field-label.scss b/src/objects/_field-label.scss index fb664b4..23875f5 100644 --- a/src/objects/_field-label.scss +++ b/src/objects/_field-label.scss | |||
| @@ -1,74 +1,74 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "field-label.vars"; | 6 | @forward 'field-label.vars'; |
| 7 | @use "field-label.vars" as vars; | 7 | @use 'field-label.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables("vars")); | 10 | @include materialize-at-root(meta.module-variables('vars')); |
| 11 | 11 | ||
| 12 | @include bem.object("field-label") { | 12 | @include bem.object('field-label') { |
| 13 | @include bem.elem("label") { | 13 | @include bem.elem('label') { |
| 14 | display: block; | 14 | display: block; |
| 15 | flex: 0 0 auto; | 15 | flex: 0 0 auto; |
| 16 | padding-inline-end: props.get(vars.$spacing-i); | 16 | padding-inline-end: props.get(vars.$spacing-i); |
| 17 | font-size: props.get(vars.$label-font-size); | 17 | font-size: props.get(vars.$label-font-size); |
| 18 | font-weight: 400; | 18 | font-weight: 400; |
| 19 | line-height: 1.3; | 19 | line-height: 1.3; |
| 20 | color: props.get(vars.$label-color); | 20 | color: props.get(vars.$label-color); |
| 21 | 21 | ||
| 22 | @include bem.next-elem("content") { | 22 | @include bem.next-elem('content') { |
| 23 | margin-block-start: props.get(vars.$spacing-b); | 23 | margin-block-start: props.get(vars.$spacing-b); |
| 24 | } | 24 | } |
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | @include bem.elem("content") { | 27 | @include bem.elem('content') { |
| 28 | display: block; | 28 | display: block; |
| 29 | flex: 1 1 auto; | 29 | flex: 1 1 auto; |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | @include bem.elem("hint") { | 32 | @include bem.elem('hint') { |
| 33 | display: block; | 33 | display: block; |
| 34 | margin-block-start: props.get(vars.$spacing-b); | 34 | margin-block-start: props.get(vars.$spacing-b); |
| 35 | font-size: props.get(vars.$hint-font-size); | 35 | font-size: props.get(vars.$hint-font-size); |
| 36 | color: props.get(vars.$hint-color); | 36 | color: props.get(vars.$hint-color); |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | @include bem.is("invalid") { | 39 | @include bem.is('invalid') { |
| 40 | @include bem.elem("hint") { | 40 | @include bem.elem('hint') { |
| 41 | color: props.get(vars.$error-hint-color); | 41 | color: props.get(vars.$error-hint-color); |
| 42 | } | 42 | } |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | @include bem.is("disabled") { | 45 | @include bem.is('disabled') { |
| 46 | @include bem.elem("label", "hint") { | 46 | @include bem.elem('label', 'hint') { |
| 47 | color: props.get(vars.$disabled-color); | 47 | color: props.get(vars.$disabled-color); |
| 48 | } | 48 | } |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | @include bem.modifier("align-start", "align-end") { | 51 | @include bem.modifier('align-start', 'align-end') { |
| 52 | display: flex; | 52 | display: flex; |
| 53 | align-items: baseline; | 53 | align-items: baseline; |
| 54 | 54 | ||
| 55 | @include bem.elem("label") { | 55 | @include bem.elem('label') { |
| 56 | display: inline-block; | 56 | display: inline-block; |
| 57 | 57 | ||
| 58 | @include bem.next-elem("content") { | 58 | @include bem.next-elem('content') { |
| 59 | margin-block-start: 0; | 59 | margin-block-start: 0; |
| 60 | } | 60 | } |
| 61 | } | 61 | } |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | @include bem.modifier("align-start") { | 64 | @include bem.modifier('align-start') { |
| 65 | @include bem.elem("label") { | 65 | @include bem.elem('label') { |
| 66 | text-align: start; | 66 | text-align: start; |
| 67 | } | 67 | } |
| 68 | } | 68 | } |
| 69 | 69 | ||
| 70 | @include bem.modifier("align-end") { | 70 | @include bem.modifier('align-end') { |
| 71 | @include bem.elem("label") { | 71 | @include bem.elem('label') { |
| 72 | text-align: end; | 72 | text-align: end; |
| 73 | } | 73 | } |
| 74 | } | 74 | } |
diff --git a/src/objects/_field-label.vars.scss b/src/objects/_field-label.vars.scss index 4588e70..5bd4547 100644 --- a/src/objects/_field-label.vars.scss +++ b/src/objects/_field-label.vars.scss | |||
| @@ -1,34 +1,12 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | 3 | ||
| 4 | $spacing-i: props.def(--o-field-label--spacing-i, props.get(core.$size--150)) !default; | 4 | $spacing-i: props.def(--o-field-label--spacing-i, props.get(core.$size--150)) !default; |
| 5 | $spacing-b: props.def(--o-field-label--spacing-b, props.get(core.$size--85)) !default; | 5 | $spacing-b: props.def(--o-field-label--spacing-b, props.get(core.$size--85)) !default; |
| 6 | $label-font-size: props.def( | 6 | $label-font-size: props.def(--o-field-label--label-font-size, props.get(core.$font-size--75)) !default; |
| 7 | --o-field-label--label-font-size, | 7 | $hint-font-size: props.def(--o-field-label--hint-font-size, props.get(core.$font-size--75)) !default; |
| 8 | props.get(core.$font-size--75) | ||
| 9 | ) !default; | ||
| 10 | $hint-font-size: props.def( | ||
| 11 | --o-field-label--hint-font-size, | ||
| 12 | props.get(core.$font-size--75) | ||
| 13 | ) !default; | ||
| 14 | 8 | ||
| 15 | $label-color: props.def( | 9 | $label-color: props.def(--o-field-label--label-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 16 | --o-field-label--label-color, | 10 | $hint-color: props.def(--o-field-label--hint-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 17 | props.get(core.$theme, --text-mute), | 11 | $error-hint-color: props.def(--o-field-label--error-hint-color, props.get(core.$theme, --negative, --900), 'color') !default; |
| 18 | "color" | 12 | $disabled-color: props.def(--o-field-label--disabled-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 19 | ) !default; | ||
| 20 | $hint-color: props.def( | ||
| 21 | --o-field-label--hint-color, | ||
| 22 | props.get(core.$theme, --text-mute), | ||
| 23 | "color" | ||
| 24 | ) !default; | ||
| 25 | $error-hint-color: props.def( | ||
| 26 | --o-field-label--error-hint-color, | ||
| 27 | props.get(core.$theme, --negative, --900), | ||
| 28 | "color" | ||
| 29 | ) !default; | ||
| 30 | $disabled-color: props.def( | ||
| 31 | --o-field-label--disabled-color, | ||
| 32 | props.get(core.$theme, --text-disabled), | ||
| 33 | "color" | ||
| 34 | ) !default; | ||
diff --git a/src/objects/_figure.scss b/src/objects/_figure.scss index d3e37b3..04b9bdf 100644 --- a/src/objects/_figure.scss +++ b/src/objects/_figure.scss | |||
| @@ -1,25 +1,25 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "figure.vars"; | 6 | @forward 'figure.vars'; |
| 7 | @use "figure.vars" as vars; | 7 | @use 'figure.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables("vars")); | 10 | @include materialize-at-root(meta.module-variables('vars')); |
| 11 | 11 | ||
| 12 | @include bem.object("figure") { | 12 | @include bem.object('figure') { |
| 13 | @include bem.elem("caption") { | 13 | @include bem.elem('caption') { |
| 14 | padding-block: props.get(vars.$pad-b); | 14 | padding-block: props.get(vars.$pad-b); |
| 15 | font-size: props.get(vars.$font-size); | 15 | font-size: props.get(vars.$font-size); |
| 16 | color: props.get(vars.$text-color); | 16 | color: props.get(vars.$text-color); |
| 17 | border-block-end: props.get(vars.$border-width) solid props.get(vars.$border-color); | 17 | border-block-end: props.get(vars.$border-width) solid props.get(vars.$border-color); |
| 18 | 18 | ||
| 19 | &::before { | 19 | &::before { |
| 20 | display: block; | 20 | display: block; |
| 21 | margin-block: -100em 100em; | 21 | margin-block: -100em 100em; |
| 22 | content: ""; | 22 | content: ''; |
| 23 | } | 23 | } |
| 24 | } | 24 | } |
| 25 | } | 25 | } |
diff --git a/src/objects/_figure.vars.scss b/src/objects/_figure.vars.scss index 936932d..3de3406 100644 --- a/src/objects/_figure.vars.scss +++ b/src/objects/_figure.vars.scss | |||
| @@ -1,17 +1,9 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | 3 | ||
| 4 | $pad-b: props.def(--o-figure--pad-b, props.get(core.$size--100)) !default; | 4 | $pad-b: props.def(--o-figure--pad-b, props.get(core.$size--100)) !default; |
| 5 | $border-width: props.def(--o-figure--border-width, props.get(core.$border-width--thin)) !default; | 5 | $border-width: props.def(--o-figure--border-width, props.get(core.$border-width--thin)) !default; |
| 6 | $font-size: props.def(--o-figure--font-size, props.get(core.$font-size--100)) !default; | 6 | $font-size: props.def(--o-figure--font-size, props.get(core.$font-size--100)) !default; |
| 7 | 7 | ||
| 8 | $text-color: props.def( | 8 | $text-color: props.def(--o-figure--text-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 9 | --o-figure--text-color, | 9 | $border-color: props.def(--o-figure--border-color, props.get(core.$theme, --border), 'color') !default; |
| 10 | props.get(core.$theme, --text-mute-more), | ||
| 11 | "color" | ||
| 12 | ) !default; | ||
| 13 | $border-color: props.def( | ||
| 14 | --o-figure--border-color, | ||
| 15 | props.get(core.$theme, --border), | ||
| 16 | "color" | ||
| 17 | ) !default; | ||
diff --git a/src/objects/_heading.scss b/src/objects/_heading.scss index 87a6269..0e8392e 100644 --- a/src/objects/_heading.scss +++ b/src/objects/_heading.scss | |||
| @@ -1,70 +1,64 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:meta"; | 2 | @use 'sass:meta'; |
| 3 | @use "sass:string"; | 3 | @use 'sass:string'; |
| 4 | @use "pkg:iro-sass/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/props'; |
| 6 | @use "../props" as *; | 6 | @use '../props' as *; |
| 7 | 7 | ||
| 8 | @forward "heading.vars"; | 8 | @forward 'heading.vars'; |
| 9 | @use "heading.vars" as vars; | 9 | @use 'heading.vars' as vars; |
| 10 | 10 | ||
| 11 | @mixin styles { | 11 | @mixin styles { |
| 12 | @include materialize-at-root(meta.module-variables("vars")); | 12 | @include materialize-at-root(meta.module-variables('vars')); |
| 13 | 13 | ||
| 14 | @include bem.object("heading") { | 14 | @include bem.object('heading') { |
| 15 | display: block; | 15 | display: block; |
| 16 | margin-block-start: props.get(vars.$margin-bs); | 16 | margin-block-start: props.get(vars.$margin-bs); |
| 17 | font-family: props.get(vars.$font-family); | 17 | font-family: props.get(vars.$font-family); |
| 18 | font-weight: props.get(vars.$font-weight); | 18 | font-weight: props.get(vars.$font-weight); |
| 19 | font-feature-settings: props.get(vars.$feature-settings); | 19 | font-feature-settings: props.get(vars.$feature-settings); |
| 20 | line-height: props.get(vars.$line-height); | 20 | line-height: props.get(vars.$line-height); |
| 21 | color: props.get(vars.$text-color); | 21 | color: props.get(vars.$text-color); |
| 22 | text-transform: props.get(vars.$text-transform); | 22 | text-transform: props.get(vars.$text-transform); |
| 23 | letter-spacing: normal; | 23 | letter-spacing: normal; |
| 24 | 24 | ||
| 25 | & + & { | 25 | & + & { |
| 26 | margin-block-start: props.get(vars.$margin-bs-sibling); | 26 | margin-block-start: props.get(vars.$margin-bs-sibling); |
| 27 | } | 27 | } |
| 28 | 28 | ||
| 29 | @include bem.elem("highlight") { | 29 | @include bem.elem('highlight') { |
| 30 | background-image: linear-gradient( | 30 | background-image: linear-gradient(to top, |
| 31 | to top, | 31 | transparent props.get(vars.$bg-start), |
| 32 | transparent props.get(vars.$bg-start), | 32 | props.get(vars.$bg-color) props.get(vars.$bg-start), |
| 33 | props.get(vars.$bg-color) props.get(vars.$bg-start), | 33 | props.get(vars.$bg-color) props.get(vars.$bg-end), |
| 34 | props.get(vars.$bg-color) props.get(vars.$bg-end), | 34 | transparent props.get(vars.$bg-end)); |
| 35 | transparent props.get(vars.$bg-end) | ||
| 36 | ); | ||
| 37 | } | 35 | } |
| 38 | 36 | ||
| 39 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, | 37 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, $feature-settings, $text-transform, $text-color in vars.$sizes { |
| 40 | $feature-settings, $text-transform, $text-color in vars.$sizes | ||
| 41 | { | ||
| 42 | @include bem.modifier($mod) { | 38 | @include bem.modifier($mod) { |
| 43 | font-family: props.get($font-family); | 39 | font-family: props.get($font-family); |
| 44 | font-size: props.get($font-size); | 40 | font-size: props.get($font-size); |
| 45 | font-weight: props.get($font-weight); | 41 | font-weight: props.get($font-weight); |
| 46 | font-feature-settings: props.get($feature-settings); | 42 | font-feature-settings: props.get($feature-settings); |
| 47 | line-height: props.get($line-height); | 43 | line-height: props.get($line-height); |
| 48 | color: props.get($text-color); | 44 | color: props.get($text-color); |
| 49 | text-transform: props.get($text-transform); | 45 | text-transform: props.get($text-transform); |
| 50 | letter-spacing: props.get($letter-spacing); | 46 | letter-spacing: props.get($letter-spacing); |
| 51 | } | 47 | } |
| 52 | } | 48 | } |
| 53 | 49 | ||
| 54 | @include bem.modifier("display") { | 50 | @include bem.modifier('display') { |
| 55 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, | 51 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, $feature-settings, $text-transform, $text-color in vars.$display--sizes { |
| 56 | $feature-settings, $text-transform, $text-color in vars.$display--sizes | ||
| 57 | { | ||
| 58 | @include bem.modifier($mod) { | 52 | @include bem.modifier($mod) { |
| 59 | font-family: props.get($font-family); | 53 | font-family: props.get($font-family); |
| 60 | font-size: props.get($font-size); | 54 | font-size: props.get($font-size); |
| 61 | font-weight: props.get($font-weight); | 55 | font-weight: props.get($font-weight); |
| 62 | font-feature-settings: props.get($feature-settings); | 56 | font-feature-settings: props.get($feature-settings); |
| 63 | line-height: props.get($line-height); | 57 | line-height: props.get($line-height); |
| 64 | color: props.get($text-color); | 58 | color: props.get($text-color); |
| 65 | text-transform: props.get($text-transform); | 59 | text-transform: props.get($text-transform); |
| 66 | letter-spacing: props.get($letter-spacing); | 60 | letter-spacing: props.get($letter-spacing); |
| 67 | transform: translateX(props.get(vars.$offset)); | 61 | transform: translateX(props.get(vars.$offset)); |
| 68 | } | 62 | } |
| 69 | } | 63 | } |
| 70 | } | 64 | } |
| @@ -79,26 +73,18 @@ | |||
| 79 | } | 73 | } |
| 80 | } | 74 | } |
| 81 | 75 | ||
| 82 | @include bem.elem("highlight") { | 76 | @include bem.elem('highlight') { |
| 83 | background-image: linear-gradient( | 77 | background-image: linear-gradient(to top, |
| 84 | to top, | 78 | transparent props.get(vars.$bg-start), |
| 85 | transparent props.get(vars.$bg-start), | 79 | props.get(vars.$static-themes, $theme, --bg-color) props.get(vars.$bg-start), |
| 86 | props.get(vars.$static-themes, $theme, --bg-color) props.get(vars.$bg-start), | 80 | props.get(vars.$static-themes, $theme, --bg-color) props.get(vars.$bg-end), |
| 87 | props.get(vars.$static-themes, $theme, --bg-color) props.get(vars.$bg-end), | 81 | transparent props.get(vars.$bg-end)); |
| 88 | transparent props.get(vars.$bg-end) | ||
| 89 | ); | ||
| 90 | } | 82 | } |
| 91 | 83 | ||
| 92 | @include bem.modifier("display") { | 84 | @include bem.modifier('display') { |
| 93 | @each $mod, $value in vars.$sizes { | 85 | @each $mod, $value in vars.$sizes { |
| 94 | @include bem.modifier($mod) { | 86 | @include bem.modifier($mod) { |
| 95 | color: props.get( | 87 | color: props.get(vars.$static-themes, $theme, --display, --#{$mod}, --text-color); |
| 96 | vars.$static-themes, | ||
| 97 | $theme, | ||
| 98 | --display, | ||
| 99 | --#{$mod}, | ||
| 100 | --text-color | ||
| 101 | ); | ||
| 102 | } | 88 | } |
| 103 | } | 89 | } |
| 104 | } | 90 | } |
diff --git a/src/objects/_heading.vars.scss b/src/objects/_heading.vars.scss index 8943622..4267b8c 100644 --- a/src/objects/_heading.vars.scss +++ b/src/objects/_heading.vars.scss | |||
| @@ -1,472 +1,208 @@ | |||
| 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 | $offset: props.def(--o-heading--offset, -0.02em) !default; | 6 | $offset: props.def(--o-heading--offset, -.02em) !default; |
| 7 | $margin-bs: props.def(--o-heading--margin-bs, props.get(core.$size--700)) !default; | 7 | $margin-bs: props.def(--o-heading--margin-bs, props.get(core.$size--700)) !default; |
| 8 | $margin-bs-sibling: props.def(--o-heading--margin-bs-sibling, props.get(core.$size--325)) !default; | 8 | $margin-bs-sibling: props.def(--o-heading--margin-bs-sibling, props.get(core.$size--325)) !default; |
| 9 | 9 | ||
| 10 | $text-color: props.def( | 10 | $text-color: props.def(--o-heading--text-color, props.get(core.$theme, --heading), 'color') !default; |
| 11 | --o-heading--text-color, | 11 | $bg-color: props.def(--o-heading--bg-color, props.get(core.$theme, --base, --50), 'color') !default; |
| 12 | props.get(core.$theme, --heading), | ||
| 13 | "color" | ||
| 14 | ) !default; | ||
| 15 | $bg-color: props.def(--o-heading--bg-color, props.get(core.$theme, --base, --50), "color") !default; | ||
| 16 | 12 | ||
| 17 | $text-color--xxl: props.def( | 13 | $text-color--xxl: props.def(--o-heading--xxl--text-color, props.get(core.$theme, --heading), 'color') !default; |
| 18 | --o-heading--xxl--text-color, | 14 | $text-color--xl: props.def(--o-heading--xl--text-color, props.get($text-color--xxl), 'color') !default; |
| 19 | props.get(core.$theme, --heading), | 15 | $text-color--lg: props.def(--o-heading--lg--text-color, props.get($text-color--xxl), 'color') !default; |
| 20 | "color" | 16 | $text-color--md: props.def(--o-heading--md--text-color, props.get($text-color--xxl), 'color') !default; |
| 21 | ) !default; | 17 | $text-color--sm: props.def(--o-heading--sm--text-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 22 | $text-color--xl: props.def( | 18 | $text-color--xs: props.def(--o-heading--xs--text-color, props.get($text-color--sm), 'color') !default; |
| 23 | --o-heading--xl--text-color, | ||
| 24 | props.get($text-color--xxl), | ||
| 25 | "color" | ||
| 26 | ) !default; | ||
| 27 | $text-color--lg: props.def( | ||
| 28 | --o-heading--lg--text-color, | ||
| 29 | props.get($text-color--xxl), | ||
| 30 | "color" | ||
| 31 | ) !default; | ||
| 32 | $text-color--md: props.def( | ||
| 33 | --o-heading--md--text-color, | ||
| 34 | props.get($text-color--xxl), | ||
| 35 | "color" | ||
| 36 | ) !default; | ||
| 37 | $text-color--sm: props.def( | ||
| 38 | --o-heading--sm--text-color, | ||
| 39 | props.get(core.$theme, --text-mute-more), | ||
| 40 | "color" | ||
| 41 | ) !default; | ||
| 42 | $text-color--xs: props.def( | ||
| 43 | --o-heading--xs--text-color, | ||
| 44 | props.get($text-color--sm), | ||
| 45 | "color" | ||
| 46 | ) !default; | ||
| 47 | 19 | ||
| 48 | $display--text-color--xxl: props.def( | 20 | $display--text-color--xxl: props.def(--o-heading--display--xxl--text-color, props.get(core.$theme, --heading), 'color') !default; |
| 49 | --o-heading--display--xxl--text-color, | 21 | $display--text-color--xl: props.def(--o-heading--display--xl--text-color, props.get($display--text-color--xxl), 'color') !default; |
| 50 | props.get(core.$theme, --heading), | 22 | $display--text-color--lg: props.def(--o-heading--display--lg--text-color, props.get($display--text-color--xxl), 'color') !default; |
| 51 | "color" | 23 | $display--text-color--md: props.def(--o-heading--display--md--text-color, props.get($display--text-color--xxl), 'color') !default; |
| 52 | ) !default; | 24 | $display--text-color--sm: props.def(--o-heading--display--sm--text-color, props.get($display--text-color--xxl), 'color') !default; |
| 53 | $display--text-color--xl: props.def( | 25 | $display--text-color--xs: props.def(--o-heading--display--xs--text-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 54 | --o-heading--display--xl--text-color, | ||
| 55 | props.get($display--text-color--xxl), | ||
| 56 | "color" | ||
| 57 | ) !default; | ||
| 58 | $display--text-color--lg: props.def( | ||
| 59 | --o-heading--display--lg--text-color, | ||
| 60 | props.get($display--text-color--xxl), | ||
| 61 | "color" | ||
| 62 | ) !default; | ||
| 63 | $display--text-color--md: props.def( | ||
| 64 | --o-heading--display--md--text-color, | ||
| 65 | props.get($display--text-color--xxl), | ||
| 66 | "color" | ||
| 67 | ) !default; | ||
| 68 | $display--text-color--sm: props.def( | ||
| 69 | --o-heading--display--sm--text-color, | ||
| 70 | props.get($display--text-color--xxl), | ||
| 71 | "color" | ||
| 72 | ) !default; | ||
| 73 | $display--text-color--xs: props.def( | ||
| 74 | --o-heading--display--xs--text-color, | ||
| 75 | props.get(core.$theme, --text-mute-more), | ||
| 76 | "color" | ||
| 77 | ) !default; | ||
| 78 | 26 | ||
| 79 | $bg-start: props.def(--o-heading--bg-start, 0.05em) !default; | 27 | $bg-start: props.def(--o-heading--bg-start, .05em) !default; |
| 80 | $bg-end: props.def(--o-heading--bg-end, 0.5em) !default; | 28 | $bg-end: props.def(--o-heading--bg-end, .5em) !default; |
| 81 | 29 | ||
| 82 | $font-family: props.def(--o-heading--font-family, props.get(core.$font--standard--family)) !default; | 30 | $font-family: props.def(--o-heading--font-family, props.get(core.$font--standard--family)) !default; |
| 83 | $line-height: props.def( | 31 | $line-height: props.def(--o-heading--line-height, props.get(core.$font--standard--line-height)) !default; |
| 84 | --o-heading--line-height, | 32 | $font-weight: props.def(--o-heading--font-weight, bold) !default; |
| 85 | props.get(core.$font--standard--line-height) | 33 | $feature-settings: props.def(--o-heading--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 86 | ) !default; | 34 | $text-transform: props.def(--o-heading--text-transform, none) !default; |
| 87 | $font-weight: props.def(--o-heading--font-weight, bold) !default; | ||
| 88 | $feature-settings: props.def( | ||
| 89 | --o-heading--feature-settings, | ||
| 90 | props.get(core.$font--standard--feature-settings) | ||
| 91 | ) !default; | ||
| 92 | $text-transform: props.def(--o-heading--text-transform, none) !default; | ||
| 93 | 35 | ||
| 94 | $font-family--xxl: props.def( | 36 | $font-family--xxl: props.def(--o-heading--xxl--font-family, props.get(core.$font--standard--family)) !default; |
| 95 | --o-heading--xxl--font-family, | 37 | $line-height--xxl: props.def(--o-heading--xxl--line-height, props.get(core.$font--standard--line-height)) !default; |
| 96 | props.get(core.$font--standard--family) | 38 | $font-size--xxl: props.def(--o-heading--xxl--font-size, props.get(core.$font-size--300)) !default; |
| 97 | ) !default; | 39 | $font-weight--xxl: props.def(--o-heading--xxl--font-weight, bold) !default; |
| 98 | $line-height--xxl: props.def( | 40 | $letter-spacing--xxl: props.def(--o-heading--xxl--letter-spacing, 0) !default; |
| 99 | --o-heading--xxl--line-height, | 41 | $feature-settings--xxl: props.def(--o-heading--xxl--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 100 | props.get(core.$font--standard--line-height) | 42 | $text-transform--xxl: props.def(--o-heading--xxl--text-transform, none) !default; |
| 101 | ) !default; | ||
| 102 | $font-size--xxl: props.def(--o-heading--xxl--font-size, props.get(core.$font-size--300)) !default; | ||
| 103 | $font-weight--xxl: props.def(--o-heading--xxl--font-weight, bold) !default; | ||
| 104 | $letter-spacing--xxl: props.def(--o-heading--xxl--letter-spacing, 0) !default; | ||
| 105 | $feature-settings--xxl: props.def( | ||
| 106 | --o-heading--xxl--feature-settings, | ||
| 107 | props.get(core.$font--standard--feature-settings) | ||
| 108 | ) !default; | ||
| 109 | $text-transform--xxl: props.def(--o-heading--xxl--text-transform, none) !default; | ||
| 110 | 43 | ||
| 111 | $font-family--xl: props.def( | 44 | $font-family--xl: props.def(--o-heading--xl--font-family, props.get(core.$font--standard--family)) !default; |
| 112 | --o-heading--xl--font-family, | 45 | $line-height--xl: props.def(--o-heading--xl--line-height, props.get(core.$font--standard--line-height)) !default; |
| 113 | props.get(core.$font--standard--family) | 46 | $font-size--xl: props.def(--o-heading--xl--font-size, props.get(core.$font-size--200)) !default; |
| 114 | ) !default; | 47 | $font-weight--xl: props.def(--o-heading--xl--font-weight, bold) !default; |
| 115 | $line-height--xl: props.def( | 48 | $letter-spacing--xl: props.def(--o-heading--xl--letter-spacing, 0) !default; |
| 116 | --o-heading--xl--line-height, | 49 | $feature-settings--xl: props.def(--o-heading--xl--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 117 | props.get(core.$font--standard--line-height) | 50 | $text-transform--xl: props.def(--o-heading--xl--text-transform, none) !default; |
| 118 | ) !default; | ||
| 119 | $font-size--xl: props.def(--o-heading--xl--font-size, props.get(core.$font-size--200)) !default; | ||
| 120 | $font-weight--xl: props.def(--o-heading--xl--font-weight, bold) !default; | ||
| 121 | $letter-spacing--xl: props.def(--o-heading--xl--letter-spacing, 0) !default; | ||
| 122 | $feature-settings--xl: props.def( | ||
| 123 | --o-heading--xl--feature-settings, | ||
| 124 | props.get(core.$font--standard--feature-settings) | ||
| 125 | ) !default; | ||
| 126 | $text-transform--xl: props.def(--o-heading--xl--text-transform, none) !default; | ||
| 127 | 51 | ||
| 128 | $font-family--lg: props.def( | 52 | $font-family--lg: props.def(--o-heading--lg--font-family, props.get(core.$font--standard--family)) !default; |
| 129 | --o-heading--lg--font-family, | 53 | $line-height--lg: props.def(--o-heading--lg--line-height, props.get(core.$font--standard--line-height)) !default; |
| 130 | props.get(core.$font--standard--family) | 54 | $font-size--lg: props.def(--o-heading--lg--font-size, props.get(core.$font-size--150)) !default; |
| 131 | ) !default; | 55 | $font-weight--lg: props.def(--o-heading--lg--font-weight, bold) !default; |
| 132 | $line-height--lg: props.def( | 56 | $letter-spacing--lg: props.def(--o-heading--lg--letter-spacing, 0) !default; |
| 133 | --o-heading--lg--line-height, | 57 | $feature-settings--lg: props.def(--o-heading--lg--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 134 | props.get(core.$font--standard--line-height) | 58 | $text-transform--lg: props.def(--o-heading--lg--text-transform, none) !default; |
| 135 | ) !default; | ||
| 136 | $font-size--lg: props.def(--o-heading--lg--font-size, props.get(core.$font-size--150)) !default; | ||
| 137 | $font-weight--lg: props.def(--o-heading--lg--font-weight, bold) !default; | ||
| 138 | $letter-spacing--lg: props.def(--o-heading--lg--letter-spacing, 0) !default; | ||
| 139 | $feature-settings--lg: props.def( | ||
| 140 | --o-heading--lg--feature-settings, | ||
| 141 | props.get(core.$font--standard--feature-settings) | ||
| 142 | ) !default; | ||
| 143 | $text-transform--lg: props.def(--o-heading--lg--text-transform, none) !default; | ||
| 144 | 59 | ||
| 145 | $font-family--md: props.def( | 60 | $font-family--md: props.def(--o-heading--md--font-family, props.get(core.$font--standard--family)) !default; |
| 146 | --o-heading--md--font-family, | 61 | $line-height--md: props.def(--o-heading--md--line-height, props.get(core.$font--standard--line-height)) !default; |
| 147 | props.get(core.$font--standard--family) | 62 | $font-size--md: props.def(--o-heading--md--font-size, props.get(core.$font-size--100)) !default; |
| 148 | ) !default; | 63 | $font-weight--md: props.def(--o-heading--md--font-weight, bold) !default; |
| 149 | $line-height--md: props.def( | 64 | $letter-spacing--md: props.def(--o-heading--md--letter-spacing, 0) !default; |
| 150 | --o-heading--md--line-height, | 65 | $feature-settings--md: props.def(--o-heading--md--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 151 | props.get(core.$font--standard--line-height) | 66 | $text-transform--md: props.def(--o-heading--md--text-transform, none) !default; |
| 152 | ) !default; | ||
| 153 | $font-size--md: props.def(--o-heading--md--font-size, props.get(core.$font-size--100)) !default; | ||
| 154 | $font-weight--md: props.def(--o-heading--md--font-weight, bold) !default; | ||
| 155 | $letter-spacing--md: props.def(--o-heading--md--letter-spacing, 0) !default; | ||
| 156 | $feature-settings--md: props.def( | ||
| 157 | --o-heading--md--feature-settings, | ||
| 158 | props.get(core.$font--standard--feature-settings) | ||
| 159 | ) !default; | ||
| 160 | $text-transform--md: props.def(--o-heading--md--text-transform, none) !default; | ||
| 161 | 67 | ||
| 162 | $font-family--sm: props.def( | 68 | $font-family--sm: props.def(--o-heading--sm--font-family, props.get(core.$font--standard--family)) !default; |
| 163 | --o-heading--sm--font-family, | 69 | $line-height--sm: props.def(--o-heading--sm--line-height, props.get(core.$font--standard--line-height)) !default; |
| 164 | props.get(core.$font--standard--family) | 70 | $font-size--sm: props.def(--o-heading--sm--font-size, props.get(core.$font-size--100)) !default; |
| 165 | ) !default; | 71 | $font-weight--sm: props.def(--o-heading--sm--font-weight, normal) !default; |
| 166 | $line-height--sm: props.def( | 72 | $letter-spacing--sm: props.def(--o-heading--sm--letter-spacing, 0) !default; |
| 167 | --o-heading--sm--line-height, | 73 | $feature-settings--sm: props.def(--o-heading--sm--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 168 | props.get(core.$font--standard--line-height) | 74 | $text-transform--sm: props.def(--o-heading--sm--text-transform, none) !default; |
| 169 | ) !default; | ||
| 170 | $font-size--sm: props.def(--o-heading--sm--font-size, props.get(core.$font-size--100)) !default; | ||
| 171 | $font-weight--sm: props.def(--o-heading--sm--font-weight, normal) !default; | ||
| 172 | $letter-spacing--sm: props.def(--o-heading--sm--letter-spacing, 0) !default; | ||
| 173 | $feature-settings--sm: props.def( | ||
| 174 | --o-heading--sm--feature-settings, | ||
| 175 | props.get(core.$font--standard--feature-settings) | ||
| 176 | ) !default; | ||
| 177 | $text-transform--sm: props.def(--o-heading--sm--text-transform, none) !default; | ||
| 178 | 75 | ||
| 179 | $font-family--xs: props.def( | 76 | $font-family--xs: props.def(--o-heading--xs--font-family, props.get(core.$font--standard--family)) !default; |
| 180 | --o-heading--xs--font-family, | 77 | $line-height--xs: props.def(--o-heading--xs--line-height, props.get(core.$font--standard--line-height)) !default; |
| 181 | props.get(core.$font--standard--family) | 78 | $font-size--xs: props.def(--o-heading--xs--font-size, props.get(core.$font-size--50)) !default; |
| 182 | ) !default; | 79 | $font-weight--xs: props.def(--o-heading--xs--font-weight, normal) !default; |
| 183 | $line-height--xs: props.def( | 80 | $letter-spacing--xs: props.def(--o-heading--xs--letter-spacing, 1px) !default; |
| 184 | --o-heading--xs--line-height, | 81 | $feature-settings--xs: props.def(--o-heading--xs--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 185 | props.get(core.$font--standard--line-height) | 82 | $text-transform--xs: props.def(--o-heading--xs--text-transform, none) !default; |
| 186 | ) !default; | ||
| 187 | $font-size--xs: props.def(--o-heading--xs--font-size, props.get(core.$font-size--50)) !default; | ||
| 188 | $font-weight--xs: props.def(--o-heading--xs--font-weight, normal) !default; | ||
| 189 | $letter-spacing--xs: props.def(--o-heading--xs--letter-spacing, 1px) !default; | ||
| 190 | $feature-settings--xs: props.def( | ||
| 191 | --o-heading--xs--feature-settings, | ||
| 192 | props.get(core.$font--standard--feature-settings) | ||
| 193 | ) !default; | ||
| 194 | $text-transform--xs: props.def(--o-heading--xs--text-transform, none) !default; | ||
| 195 | 83 | ||
| 196 | $sizes: ( | 84 | $sizes: ( |
| 197 | "xs" $font-family--xs $line-height--xs $font-size--xs $font-weight--xs $letter-spacing--xs | 85 | 'xs' $font-family--xs $line-height--xs $font-size--xs $font-weight--xs $letter-spacing--xs $feature-settings--xs $text-transform--xs $text-color--xs, |
| 198 | $feature-settings--xs $text-transform--xs $text-color--xs, | 86 | 'sm' $font-family--sm $line-height--sm $font-size--sm $font-weight--sm $letter-spacing--sm $feature-settings--sm $text-transform--sm $text-color--sm, |
| 199 | "sm" $font-family--sm $line-height--sm $font-size--sm $font-weight--sm $letter-spacing--sm | 87 | 'md' $font-family--md $line-height--md $font-size--md $font-weight--md $letter-spacing--md $feature-settings--md $text-transform--md $text-color--md, |
| 200 | $feature-settings--sm $text-transform--sm $text-color--sm, | 88 | 'lg' $font-family--lg $line-height--lg $font-size--lg $font-weight--lg $letter-spacing--lg $feature-settings--lg $text-transform--lg $text-color--lg, |
| 201 | "md" $font-family--md $line-height--md $font-size--md $font-weight--md $letter-spacing--md | 89 | 'xl' $font-family--xl $line-height--xl $font-size--xl $font-weight--xl $letter-spacing--xl $feature-settings--xl $text-transform--xl $text-color--xl, |
| 202 | $feature-settings--md $text-transform--md $text-color--md, | 90 | 'xxl' $font-family--xxl $line-height--xxl $font-size--xxl $font-weight--xxl $letter-spacing--xxl $feature-settings--xxl $text-transform--xxl $text-color--xxl, |
| 203 | "lg" $font-family--lg $line-height--lg $font-size--lg $font-weight--lg $letter-spacing--lg | ||
| 204 | $feature-settings--lg $text-transform--lg $text-color--lg, | ||
| 205 | "xl" $font-family--xl $line-height--xl $font-size--xl $font-weight--xl $letter-spacing--xl | ||
| 206 | $feature-settings--xl $text-transform--xl $text-color--xl, | ||
| 207 | "xxl" $font-family--xxl $line-height--xxl $font-size--xxl $font-weight--xxl $letter-spacing--xxl | ||
| 208 | $feature-settings--xxl $text-transform--xxl $text-color--xxl | ||
| 209 | ) !default; | 91 | ) !default; |
| 210 | 92 | ||
| 211 | $display--font-family--xxl: props.def( | 93 | $display--font-family--xxl: props.def(--o-heading--display--xxl--font-family, props.get(core.$font--headline--family)) !default; |
| 212 | --o-heading--display--xxl--font-family, | 94 | $display--line-height--xxl: props.def(--o-heading--display--xxl--line-height, props.get(core.$font--headline--line-height)) !default; |
| 213 | props.get(core.$font--headline--family) | 95 | $display--font-size--xxl: props.def(--o-heading--display--xxl--font-size, props.get(core.$font-size--1100)) !default; |
| 214 | ) !default; | 96 | $display--font-weight--xxl: props.def(--o-heading--display--xxl--font-weight, props.get(core.$font--headline--weight)) !default; |
| 215 | $display--line-height--xxl: props.def( | 97 | $display--letter-spacing--xxl: props.def(--o-heading--display--xxl--letter-spacing, 0) !default; |
| 216 | --o-heading--display--xxl--line-height, | 98 | $display--feature-settings--xxl: props.def(--o-heading--display--xxl--feature-settings, props.get(core.$font--headline--feature-settings)) !default; |
| 217 | props.get(core.$font--headline--line-height) | 99 | $display--text-transform--xxl: props.def(--o-heading--display--xxl--text-transform, none) !default; |
| 218 | ) !default; | ||
| 219 | $display--font-size--xxl: props.def( | ||
| 220 | --o-heading--display--xxl--font-size, | ||
| 221 | props.get(core.$font-size--1100) | ||
| 222 | ) !default; | ||
| 223 | $display--font-weight--xxl: props.def( | ||
| 224 | --o-heading--display--xxl--font-weight, | ||
| 225 | props.get(core.$font--headline--weight) | ||
| 226 | ) !default; | ||
| 227 | $display--letter-spacing--xxl: props.def(--o-heading--display--xxl--letter-spacing, 0) !default; | ||
| 228 | $display--feature-settings--xxl: props.def( | ||
| 229 | --o-heading--display--xxl--feature-settings, | ||
| 230 | props.get(core.$font--headline--feature-settings) | ||
| 231 | ) !default; | ||
| 232 | $display--text-transform--xxl: props.def(--o-heading--display--xxl--text-transform, none) !default; | ||
| 233 | 100 | ||
| 234 | $display--font-family--xl: props.def( | 101 | $display--font-family--xl: props.def(--o-heading--display--xl--font-family, props.get(core.$font--headline--family)) !default; |
| 235 | --o-heading--display--xl--font-family, | 102 | $display--line-height--xl: props.def(--o-heading--display--xl--line-height, props.get(core.$font--headline--line-height)) !default; |
| 236 | props.get(core.$font--headline--family) | 103 | $display--font-size--xl: props.def(--o-heading--display--xl--font-size, props.get(core.$font-size--700)) !default; |
| 237 | ) !default; | 104 | $display--font-weight--xl: props.def(--o-heading--display--xl--font-weight, props.get(core.$font--headline--weight)) !default; |
| 238 | $display--line-height--xl: props.def( | 105 | $display--letter-spacing--xl: props.def(--o-heading--display--xl--letter-spacing, 0) !default; |
| 239 | --o-heading--display--xl--line-height, | 106 | $display--feature-settings--xl: props.def(--o-heading--display--xl--feature-settings, props.get(core.$font--headline--feature-settings)) !default; |
| 240 | props.get(core.$font--headline--line-height) | 107 | $display--text-transform--xl: props.def(--o-heading--display--xl--text-transform, none) !default; |
| 241 | ) !default; | ||
| 242 | $display--font-size--xl: props.def( | ||
| 243 | --o-heading--display--xl--font-size, | ||
| 244 | props.get(core.$font-size--700) | ||
| 245 | ) !default; | ||
| 246 | $display--font-weight--xl: props.def( | ||
| 247 | --o-heading--display--xl--font-weight, | ||
| 248 | props.get(core.$font--headline--weight) | ||
| 249 | ) !default; | ||
| 250 | $display--letter-spacing--xl: props.def(--o-heading--display--xl--letter-spacing, 0) !default; | ||
| 251 | $display--feature-settings--xl: props.def( | ||
| 252 | --o-heading--display--xl--feature-settings, | ||
| 253 | props.get(core.$font--headline--feature-settings) | ||
| 254 | ) !default; | ||
| 255 | $display--text-transform--xl: props.def(--o-heading--display--xl--text-transform, none) !default; | ||
| 256 | 108 | ||
| 257 | $display--font-family--lg: props.def( | 109 | $display--font-family--lg: props.def(--o-heading--display--lg--font-family, props.get(core.$font--headline--family)) !default; |
| 258 | --o-heading--display--lg--font-family, | 110 | $display--line-height--lg: props.def(--o-heading--display--lg--line-height, props.get(core.$font--headline--line-height)) !default; |
| 259 | props.get(core.$font--headline--family) | 111 | $display--font-size--lg: props.def(--o-heading--display--lg--font-size, props.get(core.$font-size--300)) !default; |
| 260 | ) !default; | 112 | $display--font-weight--lg: props.def(--o-heading--display--lg--font-weight, props.get(core.$font--headline--weight)) !default; |
| 261 | $display--line-height--lg: props.def( | 113 | $display--letter-spacing--lg: props.def(--o-heading--display--lg--letter-spacing, 1px) !default; |
| 262 | --o-heading--display--lg--line-height, | 114 | $display--feature-settings--lg: props.def(--o-heading--display--lg--feature-settings, props.get(core.$font--headline--feature-settings)) !default; |
| 263 | props.get(core.$font--headline--line-height) | 115 | $display--text-transform--lg: props.def(--o-heading--display--lg--text-transform, uppercase) !default; |
| 264 | ) !default; | ||
| 265 | $display--font-size--lg: props.def( | ||
| 266 | --o-heading--display--lg--font-size, | ||
| 267 | props.get(core.$font-size--300) | ||
| 268 | ) !default; | ||
| 269 | $display--font-weight--lg: props.def( | ||
| 270 | --o-heading--display--lg--font-weight, | ||
| 271 | props.get(core.$font--headline--weight) | ||
| 272 | ) !default; | ||
| 273 | $display--letter-spacing--lg: props.def(--o-heading--display--lg--letter-spacing, 1px) !default; | ||
| 274 | $display--feature-settings--lg: props.def( | ||
| 275 | --o-heading--display--lg--feature-settings, | ||
| 276 | props.get(core.$font--headline--feature-settings) | ||
| 277 | ) !default; | ||
| 278 | $display--text-transform--lg: props.def( | ||
| 279 | --o-heading--display--lg--text-transform, | ||
| 280 | uppercase | ||
| 281 | ) !default; | ||
| 282 | 116 | ||
| 283 | $display--font-family--md: props.def( | 117 | $display--font-family--md: props.def(--o-heading--display--md--font-family, props.get(core.$font--standard--family)) !default; |
| 284 | --o-heading--display--md--font-family, | 118 | $display--line-height--md: props.def(--o-heading--display--md--line-height, props.get(core.$font--standard--line-height)) !default; |
| 285 | props.get(core.$font--standard--family) | 119 | $display--font-size--md: props.def(--o-heading--display--md--font-size, props.get(core.$font-size--150)) !default; |
| 286 | ) !default; | 120 | $display--font-weight--md: props.def(--o-heading--display--md--font-weight, bold) !default; |
| 287 | $display--line-height--md: props.def( | 121 | $display--letter-spacing--md: props.def(--o-heading--display--md--letter-spacing, 0) !default; |
| 288 | --o-heading--display--md--line-height, | 122 | $display--feature-settings--md: props.def(--o-heading--display--md--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 289 | props.get(core.$font--standard--line-height) | 123 | $display--text-transform--md: props.def(--o-heading--display--md--text-transform, none) !default; |
| 290 | ) !default; | ||
| 291 | $display--font-size--md: props.def( | ||
| 292 | --o-heading--display--md--font-size, | ||
| 293 | props.get(core.$font-size--150) | ||
| 294 | ) !default; | ||
| 295 | $display--font-weight--md: props.def(--o-heading--display--md--font-weight, bold) !default; | ||
| 296 | $display--letter-spacing--md: props.def(--o-heading--display--md--letter-spacing, 0) !default; | ||
| 297 | $display--feature-settings--md: props.def( | ||
| 298 | --o-heading--display--md--feature-settings, | ||
| 299 | props.get(core.$font--standard--feature-settings) | ||
| 300 | ) !default; | ||
| 301 | $display--text-transform--md: props.def(--o-heading--display--md--text-transform, none) !default; | ||
| 302 | 124 | ||
| 303 | $display--font-family--sm: props.def( | 125 | $display--font-family--sm: props.def(--o-heading--display--sm--font-family, props.get(core.$font--standard--family)) !default; |
| 304 | --o-heading--display--sm--font-family, | 126 | $display--line-height--sm: props.def(--o-heading--display--sm--line-height, props.get(core.$font--standard--line-height)) !default; |
| 305 | props.get(core.$font--standard--family) | 127 | $display--font-size--sm: props.def(--o-heading--display--sm--font-size, props.get(core.$font-size--100)) !default; |
| 306 | ) !default; | 128 | $display--font-weight--sm: props.def(--o-heading--display--sm--font-weight, bold) !default; |
| 307 | $display--line-height--sm: props.def( | 129 | $display--letter-spacing--sm: props.def(--o-heading--display--sm--letter-spacing, 0) !default; |
| 308 | --o-heading--display--sm--line-height, | 130 | $display--feature-settings--sm: props.def(--o-heading--display--sm--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 309 | props.get(core.$font--standard--line-height) | 131 | $display--text-transform--sm: props.def(--o-heading--display--sm--text-transform, none) !default; |
| 310 | ) !default; | ||
| 311 | $display--font-size--sm: props.def( | ||
| 312 | --o-heading--display--sm--font-size, | ||
| 313 | props.get(core.$font-size--100) | ||
| 314 | ) !default; | ||
| 315 | $display--font-weight--sm: props.def(--o-heading--display--sm--font-weight, bold) !default; | ||
| 316 | $display--letter-spacing--sm: props.def(--o-heading--display--sm--letter-spacing, 0) !default; | ||
| 317 | $display--feature-settings--sm: props.def( | ||
| 318 | --o-heading--display--sm--feature-settings, | ||
| 319 | props.get(core.$font--standard--feature-settings) | ||
| 320 | ) !default; | ||
| 321 | $display--text-transform--sm: props.def(--o-heading--display--sm--text-transform, none) !default; | ||
| 322 | 132 | ||
| 323 | $display--font-family--xs: props.def( | 133 | $display--font-family--xs: props.def(--o-heading--display--xs--font-family, props.get(core.$font--standard--family)) !default; |
| 324 | --o-heading--display--xs--font-family, | 134 | $display--line-height--xs: props.def(--o-heading--display--xs--line-height, props.get(core.$font--standard--line-height)) !default; |
| 325 | props.get(core.$font--standard--family) | 135 | $display--font-size--xs: props.def(--o-heading--display--xs--font-size, props.get(core.$font-size--50)) !default; |
| 326 | ) !default; | 136 | $display--font-weight--xs: props.def(--o-heading--display--xs--font-weight, normal) !default; |
| 327 | $display--line-height--xs: props.def( | 137 | $display--letter-spacing--xs: props.def(--o-heading--display--xs--letter-spacing, 1px) !default; |
| 328 | --o-heading--display--xs--line-height, | 138 | $display--feature-settings--xs: props.def(--o-heading--display--xs--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 329 | props.get(core.$font--standard--line-height) | 139 | $display--text-transform--xs: props.def(--o-heading--display--xs--text-transform, none) !default; |
| 330 | ) !default; | ||
| 331 | $display--font-size--xs: props.def( | ||
| 332 | --o-heading--display--xs--font-size, | ||
| 333 | props.get(core.$font-size--50) | ||
| 334 | ) !default; | ||
| 335 | $display--font-weight--xs: props.def(--o-heading--display--xs--font-weight, normal) !default; | ||
| 336 | $display--letter-spacing--xs: props.def(--o-heading--display--xs--letter-spacing, 1px) !default; | ||
| 337 | $display--feature-settings--xs: props.def( | ||
| 338 | --o-heading--display--xs--feature-settings, | ||
| 339 | props.get(core.$font--standard--feature-settings) | ||
| 340 | ) !default; | ||
| 341 | $display--text-transform--xs: props.def(--o-heading--display--xs--text-transform, none) !default; | ||
| 342 | 140 | ||
| 343 | $display--font-size--xxl--md: props.def( | 141 | $display--font-size--xxl--md: props.def(--o-heading--display--xxl--font-size, props.get(core.$font-size--900), 'md') !default; |
| 344 | --o-heading--display--xxl--font-size, | 142 | $display--font-size--xl--md: props.def(--o-heading--display--xl--font-size, props.get(core.$font-size--600), 'md') !default; |
| 345 | props.get(core.$font-size--900), | 143 | $display--font-size--lg--md: props.def(--o-heading--display--lg--font-size, props.get(core.$font-size--200), 'md') !default; |
| 346 | "md" | 144 | $display--font-size--md--md: props.def(--o-heading--display--md--font-size, props.get(core.$font-size--100), 'md') !default; |
| 347 | ) !default; | 145 | $display--font-size--sm--md: props.def(--o-heading--display--sm--font-size, props.get(core.$font-size--75), 'md') !default; |
| 348 | $display--font-size--xl--md: props.def( | 146 | $display--font-size--xs--md: props.def(--o-heading--display--xs--font-size, props.get(core.$font-size--50), 'md') !default; |
| 349 | --o-heading--display--xl--font-size, | ||
| 350 | props.get(core.$font-size--600), | ||
| 351 | "md" | ||
| 352 | ) !default; | ||
| 353 | $display--font-size--lg--md: props.def( | ||
| 354 | --o-heading--display--lg--font-size, | ||
| 355 | props.get(core.$font-size--200), | ||
| 356 | "md" | ||
| 357 | ) !default; | ||
| 358 | $display--font-size--md--md: props.def( | ||
| 359 | --o-heading--display--md--font-size, | ||
| 360 | props.get(core.$font-size--100), | ||
| 361 | "md" | ||
| 362 | ) !default; | ||
| 363 | $display--font-size--sm--md: props.def( | ||
| 364 | --o-heading--display--sm--font-size, | ||
| 365 | props.get(core.$font-size--75), | ||
| 366 | "md" | ||
| 367 | ) !default; | ||
| 368 | $display--font-size--xs--md: props.def( | ||
| 369 | --o-heading--display--xs--font-size, | ||
| 370 | props.get(core.$font-size--50), | ||
| 371 | "md" | ||
| 372 | ) !default; | ||
| 373 | 147 | ||
| 374 | $display--sizes: ( | 148 | $display--sizes: ( |
| 375 | "xs" $display--font-family--xs $display--line-height--xs $display--font-size--xs | 149 | 'xs' $display--font-family--xs $display--line-height--xs $display--font-size--xs $display--font-weight--xs $display--letter-spacing--xs $display--feature-settings--xs $display--text-transform--xs $display--text-color--xs, |
| 376 | $display--font-weight--xs $display--letter-spacing--xs $display--feature-settings--xs | 150 | 'sm' $display--font-family--sm $display--line-height--sm $display--font-size--sm $display--font-weight--sm $display--letter-spacing--sm $display--feature-settings--sm $display--text-transform--sm $display--text-color--sm, |
| 377 | $display--text-transform--xs $display--text-color--xs, | 151 | 'md' $display--font-family--md $display--line-height--md $display--font-size--md $display--font-weight--md $display--letter-spacing--md $display--feature-settings--md $display--text-transform--md $display--text-color--md, |
| 378 | "sm" $display--font-family--sm $display--line-height--sm $display--font-size--sm | 152 | 'lg' $display--font-family--lg $display--line-height--lg $display--font-size--lg $display--font-weight--lg $display--letter-spacing--lg $display--feature-settings--lg $display--text-transform--lg $display--text-color--lg, |
| 379 | $display--font-weight--sm $display--letter-spacing--sm $display--feature-settings--sm | 153 | 'xl' $display--font-family--xl $display--line-height--xl $display--font-size--xl $display--font-weight--xl $display--letter-spacing--xl $display--feature-settings--xl $display--text-transform--xl $display--text-color--xl, |
| 380 | $display--text-transform--sm $display--text-color--sm, | 154 | 'xxl' $display--font-family--xxl $display--line-height--xxl $display--font-size--xxl $display--font-weight--xxl $display--letter-spacing--xxl $display--feature-settings--xxl $display--text-transform--xxl $display--text-color--xxl, |
| 381 | "md" $display--font-family--md $display--line-height--md $display--font-size--md | ||
| 382 | $display--font-weight--md $display--letter-spacing--md $display--feature-settings--md | ||
| 383 | $display--text-transform--md $display--text-color--md, | ||
| 384 | "lg" $display--font-family--lg $display--line-height--lg $display--font-size--lg | ||
| 385 | $display--font-weight--lg $display--letter-spacing--lg $display--feature-settings--lg | ||
| 386 | $display--text-transform--lg $display--text-color--lg, | ||
| 387 | "xl" $display--font-family--xl $display--line-height--xl $display--font-size--xl | ||
| 388 | $display--font-weight--xl $display--letter-spacing--xl $display--feature-settings--xl | ||
| 389 | $display--text-transform--xl $display--text-color--xl, | ||
| 390 | "xxl" $display--font-family--xxl $display--line-height--xxl $display--font-size--xxl | ||
| 391 | $display--font-weight--xxl $display--letter-spacing--xxl $display--feature-settings--xxl | ||
| 392 | $display--text-transform--xxl $display--text-color--xxl | ||
| 393 | ) !default; | 155 | ) !default; |
| 394 | 156 | ||
| 395 | $static-themes: props.def(--o-heading, (), "color"); | 157 | $static-themes: props.def(--o-heading, (), 'color'); |
| 396 | 158 | ||
| 397 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 159 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 398 | $heading-theme: --static-#{string.slice($theme, 3)}; | 160 | $heading-theme: --static-#{string.slice($theme, 3)}; |
| 399 | 161 | ||
| 400 | $static-themes: props.merge( | 162 | $static-themes: props.merge($static-themes, ( |
| 401 | $static-themes, | 163 | $heading-theme: ( |
| 402 | ( | 164 | --bg-color: props.get(core.$transparent-colors, $theme, --200), |
| 403 | $heading-theme: ( | 165 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 404 | --bg-color: props.get(core.$transparent-colors, $theme, --200), | ||
| 405 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 406 | --xxl: ( | ||
| 407 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 408 | ), | ||
| 409 | --xl: ( | ||
| 410 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 411 | ), | ||
| 412 | --lg: ( | ||
| 413 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 414 | ), | ||
| 415 | --md: ( | ||
| 416 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 417 | ), | ||
| 418 | --sm: ( | ||
| 419 | --text-color: props.get(core.$transparent-colors, $theme, --500), | ||
| 420 | ), | ||
| 421 | --xs: ( | ||
| 422 | --text-color: props.get(core.$transparent-colors, $theme, --500), | ||
| 423 | ), | ||
| 424 | 166 | ||
| 425 | --display: ( | 167 | --xxl: ( |
| 426 | --xxl: ( | 168 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 427 | --text-color: props.get( | 169 | ), |
| 428 | core.$transparent-colors, | 170 | --xl: ( |
| 429 | $theme, | 171 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 430 | --900 | 172 | ), |
| 431 | ), | 173 | --lg: ( |
| 432 | ), | 174 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 433 | --xl: ( | 175 | ), |
| 434 | --text-color: props.get( | 176 | --md: ( |
| 435 | core.$transparent-colors, | 177 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 436 | $theme, | 178 | ), |
| 437 | --900 | 179 | --sm: ( |
| 438 | ), | 180 | --text-color: props.get(core.$transparent-colors, $theme, --500), |
| 439 | ), | 181 | ), |
| 440 | --lg: ( | 182 | --xs: ( |
| 441 | --text-color: props.get( | 183 | --text-color: props.get(core.$transparent-colors, $theme, --500), |
| 442 | core.$transparent-colors, | 184 | ), |
| 443 | $theme, | 185 | |
| 444 | --900 | 186 | --display: ( |
| 445 | ), | 187 | --xxl: ( |
| 446 | ), | 188 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 447 | --md: ( | 189 | ), |
| 448 | --text-color: props.get( | 190 | --xl: ( |
| 449 | core.$transparent-colors, | 191 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 450 | $theme, | 192 | ), |
| 451 | --900 | 193 | --lg: ( |
| 452 | ), | 194 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 453 | ), | 195 | ), |
| 454 | --sm: ( | 196 | --md: ( |
| 455 | --text-color: props.get( | 197 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 456 | core.$transparent-colors, | 198 | ), |
| 457 | $theme, | 199 | --sm: ( |
| 458 | --900 | 200 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 459 | ), | 201 | ), |
| 460 | ), | 202 | --xs: ( |
| 461 | --xs: ( | 203 | --text-color: props.get(core.$transparent-colors, $theme, --500), |
| 462 | --text-color: props.get( | ||
| 463 | core.$transparent-colors, | ||
| 464 | $theme, | ||
| 465 | --500 | ||
| 466 | ), | ||
| 467 | ), | ||
| 468 | ), | ||
| 469 | ), | 204 | ), |
| 205 | ), | ||
| 470 | ) | 206 | ) |
| 471 | ); | 207 | )); |
| 472 | } | 208 | } |
diff --git a/src/objects/_icon.scss b/src/objects/_icon.scss index 7baa3f8..1d046e0 100644 --- a/src/objects/_icon.scss +++ b/src/objects/_icon.scss | |||
| @@ -1,24 +1,24 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "icon.vars"; | 6 | @forward 'icon.vars'; |
| 7 | @use "icon.vars" as vars; | 7 | @use 'icon.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables("vars")); | 10 | @include materialize-at-root(meta.module-variables('vars')); |
| 11 | 11 | ||
| 12 | @include bem.object("icon") { | 12 | @include bem.object('icon') { |
| 13 | display: inline; | 13 | display: inline; |
| 14 | inline-size: props.get(vars.$size); | 14 | inline-size: props.get(vars.$size); |
| 15 | block-size: props.get(vars.$size); | 15 | block-size: props.get(vars.$size); |
| 16 | vertical-align: props.get(vars.$valign); | 16 | vertical-align: props.get(vars.$valign); |
| 17 | stroke-width: props.get(vars.$stroke-width); | 17 | stroke-width: props.get(vars.$stroke-width); |
| 18 | stroke-linecap: round; | 18 | stroke-linecap: round; |
| 19 | stroke-linejoin: round; | 19 | stroke-linejoin: round; |
| 20 | 20 | ||
| 21 | @include bem.modifier("block") { | 21 | @include bem.modifier('block') { |
| 22 | display: block; | 22 | display: block; |
| 23 | } | 23 | } |
| 24 | } | 24 | } |
diff --git a/src/objects/_icon.vars.scss b/src/objects/_icon.vars.scss index 4fdbfae..2a37212 100644 --- a/src/objects/_icon.vars.scss +++ b/src/objects/_icon.vars.scss | |||
| @@ -1,5 +1,5 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | 2 | ||
| 3 | $stroke-width: props.def(--o-icon--stroke-width, 1.5px) !default; | 3 | $stroke-width: props.def(--o-icon--stroke-width, 1.5px) !default; |
| 4 | $size: props.def(--o-icon--size, calc(1 / 14 * 16em)) !default; | 4 | $size: props.def(--o-icon--size, calc(1 / 14 * 16em)) !default; |
| 5 | $valign: props.def(--o-icon--valign, -0.18em) !default; | 5 | $valign: props.def(--o-icon--valign, -.18em) !default; |
diff --git a/src/objects/_lightbox.scss b/src/objects/_lightbox.scss index 2b4abad..a173d57 100644 --- a/src/objects/_lightbox.scss +++ b/src/objects/_lightbox.scss | |||
| @@ -1,40 +1,40 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:meta"; | 2 | @use 'sass:meta'; |
| 3 | @use "sass:string"; | 3 | @use 'sass:string'; |
| 4 | @use "pkg:iro-sass/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/props'; |
| 6 | @use "../props" as *; | 6 | @use '../props' as *; |
| 7 | 7 | ||
| 8 | @forward "lightbox.vars"; | 8 | @forward 'lightbox.vars'; |
| 9 | @use "lightbox.vars" as vars; | 9 | @use 'lightbox.vars' as vars; |
| 10 | 10 | ||
| 11 | @use "button.vars" as button; | 11 | @use 'button.vars' as button; |
| 12 | @use "backdrop.vars" as backdrop; | 12 | @use 'backdrop.vars' as backdrop; |
| 13 | @use "thumbnail.vars" as thumbnail; | 13 | @use 'thumbnail.vars' as thumbnail; |
| 14 | 14 | ||
| 15 | @mixin styles { | 15 | @mixin styles { |
| 16 | @include materialize-at-root(meta.module-variables("vars")); | 16 | @include materialize-at-root(meta.module-variables('vars')); |
| 17 | 17 | ||
| 18 | @include bem.object("lightbox") { | 18 | @include bem.object('lightbox') { |
| 19 | box-sizing: border-box; | 19 | box-sizing: border-box; |
| 20 | display: none; | 20 | display: none; |
| 21 | flex: 1 1 auto; | 21 | flex: 1 1 auto; |
| 22 | grid-template-areas: "image" "thumbnails"; | 22 | grid-template-areas: 'image' 'thumbnails'; |
| 23 | grid-template-rows: 1fr auto; | 23 | grid-template-rows: 1fr auto; |
| 24 | grid-template-columns: 1fr; | 24 | grid-template-columns: 1fr; |
| 25 | align-items: center; | 25 | align-items: center; |
| 26 | justify-items: center; | 26 | justify-items: center; |
| 27 | inline-size: 100%; | 27 | inline-size: 100%; |
| 28 | max-inline-size: none; | 28 | max-inline-size: none; |
| 29 | block-size: 100%; | 29 | block-size: 100%; |
| 30 | min-block-size: 0; | 30 | min-block-size: 0; |
| 31 | max-block-size: none; | 31 | max-block-size: none; |
| 32 | padding: 0; | 32 | padding: 0; |
| 33 | margin: 0; | 33 | margin: 0; |
| 34 | overflow: hidden; | 34 | overflow: hidden; |
| 35 | background-color: transparent; | 35 | background-color: transparent; |
| 36 | border: 0; | 36 | border: 0; |
| 37 | pointer-events: none; | 37 | pointer-events: none; |
| 38 | 38 | ||
| 39 | &::backdrop { | 39 | &::backdrop { |
| 40 | background-color: props.get(backdrop.$bg-color); | 40 | background-color: props.get(backdrop.$bg-color); |
| @@ -42,7 +42,7 @@ | |||
| 42 | } | 42 | } |
| 43 | 43 | ||
| 44 | &[open], | 44 | &[open], |
| 45 | &:popover-open { | 45 | &:popover-open { |
| 46 | display: grid; | 46 | display: grid; |
| 47 | } | 47 | } |
| 48 | 48 | ||
| @@ -50,79 +50,80 @@ | |||
| 50 | pointer-events: auto; | 50 | pointer-events: auto; |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | @include bem.elem("info", "controls") { | 53 | @include bem.elem('info', 'controls') { |
| 54 | position: absolute; | 54 | position: absolute; |
| 55 | inset-block-start: props.get(vars.$pad); | 55 | inset-block-start: props.get(vars.$pad); |
| 56 | z-index: 20; | 56 | z-index: 20; |
| 57 | display: flex; | 57 | display: flex; |
| 58 | align-items: center; | 58 | align-items: center; |
| 59 | block-size: props.get(vars.$controls--block-size); | 59 | block-size: props.get(vars.$controls--block-size); |
| 60 | padding-inline: props.get(vars.$controls--pad-i); | 60 | padding-inline: props.get(vars.$controls--pad-i); |
| 61 | background-color: props.get(vars.$controls--bg); | 61 | background-color: props.get(vars.$controls--bg); |
| 62 | border-radius: 10em; | 62 | border-radius: 10em; |
| 63 | box-shadow: props.get(vars.$controls--shadow-x) props.get(vars.$controls--shadow-y) | 63 | box-shadow: |
| 64 | props.get(vars.$controls--shadow-blur) props.get(vars.$controls--shadow-grow) | 64 | props.get(vars.$controls--shadow-x) |
| 65 | props.get(vars.$controls--shadow-y) | ||
| 66 | props.get(vars.$controls--shadow-blur) | ||
| 67 | props.get(vars.$controls--shadow-grow) | ||
| 65 | props.get(vars.$controls--shadow-color); | 68 | props.get(vars.$controls--shadow-color); |
| 66 | } | 69 | } |
| 67 | 70 | ||
| 68 | @include bem.elem("info") { | 71 | @include bem.elem('info') { |
| 69 | inset-inline-start: props.get(vars.$pad); | 72 | inset-inline-start: props.get(vars.$pad); |
| 70 | font-variant-numeric: tabular-nums; | 73 | font-variant-numeric: tabular-nums; |
| 71 | } | 74 | } |
| 72 | 75 | ||
| 73 | @include bem.elem("controls") { | 76 | @include bem.elem('controls') { |
| 74 | inset-inline-end: props.get(vars.$pad); | 77 | inset-inline-end: props.get(vars.$pad); |
| 75 | } | 78 | } |
| 76 | 79 | ||
| 77 | @include bem.elem("img") { | 80 | @include bem.elem('img') { |
| 78 | position: relative; | 81 | position: relative; |
| 79 | z-index: 10; | 82 | z-index: 10; |
| 80 | display: block; | 83 | display: block; |
| 81 | grid-area: image; | 84 | grid-area: image; |
| 82 | inline-size: auto; | 85 | inline-size: auto; |
| 83 | min-inline-size: 0; | 86 | min-inline-size: 0; |
| 84 | max-inline-size: 100%; | 87 | max-inline-size: 100%; |
| 85 | block-size: auto; | 88 | block-size: auto; |
| 86 | min-block-size: 0; | 89 | min-block-size: 0; |
| 87 | max-block-size: 100%; | 90 | max-block-size: 100%; |
| 88 | user-select: none; | 91 | user-select: none; |
| 89 | object-fit: contain; | 92 | object-fit: contain; |
| 90 | 93 | ||
| 91 | @include bem.is("hidden") { | 94 | @include bem.is('hidden') { |
| 92 | display: none; | 95 | display: none; |
| 93 | 96 | ||
| 94 | @include bem.next-elem("placeholder") { | 97 | @include bem.next-elem('placeholder') { |
| 95 | display: block; | 98 | display: block; |
| 96 | } | 99 | } |
| 97 | } | 100 | } |
| 98 | } | 101 | } |
| 99 | 102 | ||
| 100 | @include bem.elem("placeholder") { | 103 | @include bem.elem('placeholder') { |
| 101 | position: absolute; | 104 | position: absolute; |
| 102 | inset-block-start: 50%; | 105 | inset-block-start: 50%; |
| 103 | inset-inline-start: 50%; | 106 | inset-inline-start: 50%; |
| 104 | z-index: 5; | 107 | z-index: 5; |
| 105 | display: none; | 108 | display: none; |
| 106 | transform: translate(-50, -50); | 109 | transform: translate(-50, -50); |
| 107 | } | 110 | } |
| 108 | 111 | ||
| 109 | @include bem.elem("thumbnails") { | 112 | @include bem.elem('thumbnails') { |
| 110 | display: flex; | 113 | display: flex; |
| 111 | grid-area: thumbnails; | 114 | grid-area: thumbnails; |
| 112 | gap: props.get(vars.$thumbnail--spacing); | 115 | gap: props.get(vars.$thumbnail--spacing); |
| 113 | justify-content: center; | 116 | justify-content: center; |
| 114 | padding: props.get(vars.$pad); | 117 | padding: props.get(vars.$pad); |
| 115 | overflow: auto; | 118 | overflow: auto; |
| 116 | } | 119 | } |
| 117 | 120 | ||
| 118 | @include bem.elem("thumbnail") { | 121 | @include bem.elem('thumbnail') { |
| 119 | inline-size: props.get(vars.$thumbnail--width); | 122 | inline-size: props.get(vars.$thumbnail--width); |
| 120 | transition: | 123 | transition: inline-size .2s ease, margin-inline .2s ease; |
| 121 | inline-size 0.2s ease, | ||
| 122 | margin-inline 0.2s ease; | ||
| 123 | 124 | ||
| 124 | @include bem.is("selected") { | 125 | @include bem.is('selected') { |
| 125 | inline-size: props.get(vars.$thumbnail--active--width); | 126 | inline-size: props.get(vars.$thumbnail--active--width); |
| 126 | margin-inline: props.get(vars.$thumbnail--active--spacing); | 127 | margin-inline: props.get(vars.$thumbnail--active--spacing); |
| 127 | } | 128 | } |
| 128 | } | 129 | } |
diff --git a/src/objects/_lightbox.vars.scss b/src/objects/_lightbox.vars.scss index dc9a2a1..6fb84f7 100644 --- a/src/objects/_lightbox.vars.scss +++ b/src/objects/_lightbox.vars.scss | |||
| @@ -1,80 +1,37 @@ | |||
| 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 | $pad: props.def(--o-lightbox--pad, props.get(core.$size--150)) !default; | 6 | $pad: props.def(--o-lightbox--pad, props.get(core.$size--150)) !default; |
| 7 | 7 | ||
| 8 | $controls--pad-i: props.def(--o-lightbox--controls--pad-i, props.get(core.$size--150)) !default; | 8 | $controls--pad-i: props.def(--o-lightbox--controls--pad-i, props.get(core.$size--150)) !default; |
| 9 | $controls--block-size: props.def( | 9 | $controls--block-size: props.def(--o-lightbox--controls--block-size, props.get(core.$size--550)) !default; |
| 10 | --o-lightbox--controls--block-size, | ||
| 11 | props.get(core.$size--550) | ||
| 12 | ) !default; | ||
| 13 | 10 | ||
| 14 | $controls--shadow-x: props.def( | 11 | $controls--shadow-x: props.def(--o-lightbox--controls--shadow-x, props.get(core.$shadow--l2--x)) !default; |
| 15 | --o-lightbox--controls--shadow-x, | 12 | $controls--shadow-y: props.def(--o-lightbox--controls--shadow-y, props.get(core.$shadow--l2--y)) !default; |
| 16 | props.get(core.$shadow--l2--x) | 13 | $controls--shadow-blur: props.def(--o-lightbox--controls--shadow-blur, props.get(core.$shadow--l2--blur)) !default; |
| 17 | ) !default; | 14 | $controls--shadow-grow: props.def(--o-lightbox--controls--shadow-grow, props.get(core.$shadow--l2--grow)) !default; |
| 18 | $controls--shadow-y: props.def( | ||
| 19 | --o-lightbox--controls--shadow-y, | ||
| 20 | props.get(core.$shadow--l2--y) | ||
| 21 | ) !default; | ||
| 22 | $controls--shadow-blur: props.def( | ||
| 23 | --o-lightbox--controls--shadow-blur, | ||
| 24 | props.get(core.$shadow--l2--blur) | ||
| 25 | ) !default; | ||
| 26 | $controls--shadow-grow: props.def( | ||
| 27 | --o-lightbox--controls--shadow-grow, | ||
| 28 | props.get(core.$shadow--l2--grow) | ||
| 29 | ) !default; | ||
| 30 | 15 | ||
| 31 | $thumbnail--width: props.def(--o-lightbox--thumbnail--width, props.get(core.$size--600)) !default; | 16 | $thumbnail--width: props.def(--o-lightbox--thumbnail--width, props.get(core.$size--600)) !default; |
| 32 | $thumbnail--spacing: props.def( | 17 | $thumbnail--spacing: props.def(--o-lightbox--thumbnail--spacing, props.get(core.$size--100)) !default; |
| 33 | --o-lightbox--thumbnail--spacing, | 18 | $thumbnail--active--width: props.def(--o-lightbox--thumbnail--active--width, props.get(core.$size--1000)) !default; |
| 34 | props.get(core.$size--100) | 19 | $thumbnail--active--spacing: props.def(--o-lightbox--thumbnail--active--spacing, props.get(core.$size--250)) !default; |
| 35 | ) !default; | ||
| 36 | $thumbnail--active--width: props.def( | ||
| 37 | --o-lightbox--thumbnail--active--width, | ||
| 38 | props.get(core.$size--1000) | ||
| 39 | ) !default; | ||
| 40 | $thumbnail--active--spacing: props.def( | ||
| 41 | --o-lightbox--thumbnail--active--spacing, | ||
| 42 | props.get(core.$size--250) | ||
| 43 | ) !default; | ||
| 44 | 20 | ||
| 45 | $thumbnail--width--md: props.def( | 21 | $thumbnail--width--md: props.def(--o-lightbox--thumbnail--width, props.get(core.$size--400), 'md') !default; |
| 46 | --o-lightbox--thumbnail--width, | 22 | $thumbnail--active--width--md: props.def(--o-lightbox--thumbnail--active--width, props.get(core.$size--600), 'md') !default; |
| 47 | props.get(core.$size--400), | ||
| 48 | "md" | ||
| 49 | ) !default; | ||
| 50 | $thumbnail--active--width--md: props.def( | ||
| 51 | --o-lightbox--thumbnail--active--width, | ||
| 52 | props.get(core.$size--600), | ||
| 53 | "md" | ||
| 54 | ) !default; | ||
| 55 | 23 | ||
| 56 | $controls--bg: props.def( | 24 | $controls--bg: props.def(--o-lightbox--controls--bg, props.get(core.$transparent-colors, --black, --700), 'color') !default; |
| 57 | --o-lightbox--controls--bg, | 25 | $controls--shadow-color: props.def(--o-lightbox--controls--shadow-color, props.get(core.$transparent-colors, --black, --300), 'color') !default; |
| 58 | props.get(core.$transparent-colors, --black, --700), | ||
| 59 | "color" | ||
| 60 | ) !default; | ||
| 61 | $controls--shadow-color: props.def( | ||
| 62 | --o-lightbox--controls--shadow-color, | ||
| 63 | props.get(core.$transparent-colors, --black, --300), | ||
| 64 | "color" | ||
| 65 | ) !default; | ||
| 66 | 26 | ||
| 67 | $static-themes: props.def(--o-lightbox, (), "color"); | 27 | $static-themes: props.def(--o-lightbox, (), 'color'); |
| 68 | 28 | ||
| 69 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 29 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 70 | $lightbox-theme: --static-#{string.slice($theme, 3)}; | 30 | $lightbox-theme: --static-#{string.slice($theme, 3)}; |
| 71 | 31 | ||
| 72 | $static-themes: props.merge( | 32 | $static-themes: props.merge($static-themes, ( |
| 73 | $static-themes, | 33 | $lightbox-theme: ( |
| 74 | ( | 34 | --text: props.get(core.$transparent-colors, $theme, --text), |
| 75 | $lightbox-theme: ( | ||
| 76 | --text: props.get(core.$transparent-colors, $theme, --text), | ||
| 77 | ), | ||
| 78 | ) | 35 | ) |
| 79 | ); | 36 | )); |
| 80 | } | 37 | } |
diff --git a/src/objects/_menu.scss b/src/objects/_menu.scss index c7fbc0e..dce14a8 100644 --- a/src/objects/_menu.scss +++ b/src/objects/_menu.scss | |||
| @@ -1,82 +1,75 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | @use "icon.vars" as icon; | 5 | @use 'icon.vars' as icon; |
| 6 | 6 | ||
| 7 | @forward "menu.vars"; | 7 | @forward 'menu.vars'; |
| 8 | @use "menu.vars" as vars; | 8 | @use 'menu.vars' as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables("vars")); | 11 | @include materialize-at-root(meta.module-variables('vars')); |
| 12 | 12 | ||
| 13 | @include bem.object("menu") { | 13 | @include bem.object('menu') { |
| 14 | display: flex; | 14 | display: flex; |
| 15 | flex-direction: column; | 15 | flex-direction: column; |
| 16 | gap: props.get(vars.$spacing); | 16 | gap: props.get(vars.$spacing); |
| 17 | 17 | ||
| 18 | @include bem.elem("header") { | 18 | @include bem.elem('header') { |
| 19 | padding-block: props.get(vars.$item--pad-b); | 19 | padding-block: props.get(vars.$item--pad-b); |
| 20 | padding-inline: props.get(vars.$item--pad-i); | 20 | padding-inline: props.get(vars.$item--pad-i); |
| 21 | font-size: props.get(vars.$header--font-size); | 21 | font-size: props.get(vars.$header--font-size); |
| 22 | font-weight: 500; | 22 | font-weight: 500; |
| 23 | color: props.get(vars.$header--label-color); | 23 | color: props.get(vars.$header--label-color); |
| 24 | text-transform: uppercase; | 24 | text-transform: uppercase; |
| 25 | letter-spacing: 0.5px; | 25 | letter-spacing: .5px; |
| 26 | 26 | ||
| 27 | @include bem.next-twin-elem { | 27 | @include bem.next-twin-elem { |
| 28 | margin-block-start: calc( | 28 | margin-block-start: calc(props.get(vars.$separator-width) + props.get(vars.$spacing)); |
| 29 | props.get(vars.$separator-width) + props.get(vars.$spacing) | ||
| 30 | ); | ||
| 31 | } | 29 | } |
| 32 | } | 30 | } |
| 33 | 31 | ||
| 34 | @include bem.elem("item") { | 32 | @include bem.elem('item') { |
| 35 | padding-block: props.get(vars.$item--pad-b); | 33 | padding-block: props.get(vars.$item--pad-b); |
| 36 | padding-inline: props.get(vars.$item--pad-i); | 34 | padding-inline: props.get(vars.$item--pad-i); |
| 37 | margin: calc(-1 * props.get(vars.$item--key-focus--outline-width)); | 35 | margin: calc(-1 * props.get(vars.$item--key-focus--outline-width)); |
| 38 | color: props.get(vars.$item--disabled--label-color); | 36 | color: props.get(vars.$item--disabled--label-color); |
| 39 | background-clip: padding-box; | 37 | background-clip: padding-box; |
| 40 | border: props.get(vars.$item--key-focus--outline-width) solid transparent; | 38 | border: props.get(vars.$item--key-focus--outline-width) solid transparent; |
| 41 | border-radius: calc( | 39 | border-radius: calc(props.get(vars.$item--rounding) + props.get(vars.$item--key-focus--outline-width)); |
| 42 | props.get(vars.$item--rounding) + props.get(vars.$item--key-focus--outline-width) | ||
| 43 | ); | ||
| 44 | 40 | ||
| 45 | &:link, | 41 | &:link, |
| 46 | &:visited, | 42 | &:visited, |
| 47 | &:enabled { | 43 | &:enabled { |
| 48 | color: currentColor; | 44 | color: currentColor; |
| 49 | 45 | ||
| 50 | @include bem.multi("&:hover, &:focus-visible", "is" "selected") { | 46 | @include bem.multi('&:hover, &:focus-visible', 'is' 'selected') { |
| 51 | color: props.get(vars.$item--hover--label-color); | 47 | color: props.get(vars.$item--hover--label-color); |
| 52 | background-color: props.get(vars.$item--hover--bg-color); | 48 | background-color: props.get(vars.$item--hover--bg-color); |
| 53 | } | 49 | } |
| 54 | 50 | ||
| 55 | &:active { | 51 | &:active { |
| 56 | color: props.get(vars.$item--active--label-color); | 52 | color: props.get(vars.$item--active--label-color); |
| 57 | background-color: props.get(vars.$item--active--bg-color); | 53 | background-color: props.get(vars.$item--active--bg-color); |
| 58 | } | 54 | } |
| 59 | 55 | ||
| 60 | &:focus-visible { | 56 | &:focus-visible { |
| 61 | outline: props.get(vars.$item--key-focus--border-color) solid | 57 | outline: props.get(vars.$item--key-focus--border-color) solid props.get(vars.$item--key-focus--border-width); |
| 62 | props.get(vars.$item--key-focus--border-width); | 58 | box-shadow: |
| 63 | box-shadow: 0 0 0 | 59 | 0 |
| 64 | calc( | 60 | 0 |
| 65 | props.get(vars.$item--key-focus--border-width) + | 61 | 0 |
| 66 | props.get(vars.$item--key-focus--outline-width) | 62 | calc(props.get(vars.$item--key-focus--border-width) + props.get(vars.$item--key-focus--outline-width)) |
| 67 | ) | ||
| 68 | props.get(vars.$item--key-focus--outline-color); | 63 | props.get(vars.$item--key-focus--outline-color); |
| 69 | } | 64 | } |
| 70 | } | 65 | } |
| 71 | 66 | ||
| 72 | @include bem.next-elem("header") { | 67 | @include bem.next-elem('header') { |
| 73 | margin-block-start: calc( | 68 | margin-block-start: calc(props.get(vars.$separator-width) + props.get(vars.$spacing)); |
| 74 | props.get(vars.$separator-width) + props.get(vars.$spacing) | ||
| 75 | ); | ||
| 76 | } | 69 | } |
| 77 | } | 70 | } |
| 78 | 71 | ||
| 79 | @include bem.elem("header") { | 72 | @include bem.elem('header') { |
| 80 | &:link, | 73 | &:link, |
| 81 | &:visited, | 74 | &:visited, |
| 82 | &:enabled { | 75 | &:enabled { |
| @@ -84,25 +77,25 @@ | |||
| 84 | } | 77 | } |
| 85 | } | 78 | } |
| 86 | 79 | ||
| 87 | @include bem.elem("separator") { | 80 | @include bem.elem('separator') { |
| 88 | block-size: 1px; | 81 | block-size: 1px; |
| 89 | margin-block: props.get(vars.$separator-width); | 82 | margin-block: props.get(vars.$separator-width); |
| 90 | margin-inline: props.get(vars.$item--pad-i); | 83 | margin-inline: props.get(vars.$item--pad-i); |
| 91 | background-color: props.get(vars.$separator-color); | 84 | background-color: props.get(vars.$separator-color); |
| 92 | } | 85 | } |
| 93 | 86 | ||
| 94 | @include bem.elem("slot") { | 87 | @include bem.elem('slot') { |
| 95 | padding-block: props.get(vars.$item--pad-b); | 88 | padding-block: props.get(vars.$item--pad-b); |
| 96 | padding-inline: props.get(vars.$item--pad-i); | 89 | padding-inline: props.get(vars.$item--pad-i); |
| 97 | } | 90 | } |
| 98 | 91 | ||
| 99 | @include bem.elem("icon-slot") { | 92 | @include bem.elem('icon-slot') { |
| 100 | display: flex; | 93 | display: flex; |
| 101 | justify-content: center; | 94 | justify-content: center; |
| 102 | inline-size: props.get(icon.$size); | 95 | inline-size: props.get(icon.$size); |
| 103 | } | 96 | } |
| 104 | 97 | ||
| 105 | @include bem.modifier("pull") { | 98 | @include bem.modifier('pull') { |
| 106 | margin: calc(-1 * props.get(vars.$item--pad-i)); | 99 | margin: calc(-1 * props.get(vars.$item--pad-i)); |
| 107 | } | 100 | } |
| 108 | } | 101 | } |
diff --git a/src/objects/_menu.vars.scss b/src/objects/_menu.vars.scss index c168c30..9396117 100644 --- a/src/objects/_menu.vars.scss +++ b/src/objects/_menu.vars.scss | |||
| @@ -1,74 +1,29 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../core.vars" as core; | 3 | @use '../core.vars' as core; |
| 4 | 4 | ||
| 5 | $spacing: props.def(--o-menu--spacing, 0em) !default; | 5 | $spacing: props.def(--o-menu--spacing, 0em) !default; |
| 6 | $header--font-size: props.def(--o-menu--header--font-size, props.get(core.$font-size--50)) !default; | 6 | $header--font-size: props.def(--o-menu--header--font-size, props.get(core.$font-size--50)) !default; |
| 7 | $separator-width: props.def(--o-menu--separator-width, props.get(core.$size--100)) !default; | 7 | $separator-width: props.def(--o-menu--separator-width, props.get(core.$size--100)) !default; |
| 8 | 8 | ||
| 9 | $item--pad-i: props.def(--o-menu--item--pad-i, props.get(core.$size--150)) !default; | 9 | $item--pad-i: props.def(--o-menu--item--pad-i, props.get(core.$size--150)) !default; |
| 10 | $item--pad-b: props.def(--o-menu--item--pad-b, props.get(core.$size--100)) !default; | 10 | $item--pad-b: props.def(--o-menu--item--pad-b, props.get(core.$size--100)) !default; |
| 11 | $item--rounding: props.def(--o-menu--item--rounding, 0em) !default; | 11 | $item--rounding: props.def(--o-menu--item--rounding, 0em) !default; |
| 12 | 12 | ||
| 13 | $item--key-focus--border-width: props.def( | 13 | $item--key-focus--border-width: props.def(--o-menu--item--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 14 | --o-menu--item--key-focus--border-width, | 14 | $item--key-focus--border-offset: props.def(--o-menu--item--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 15 | props.get(core.$key-focus--border-width) | 15 | $item--key-focus--outline-width: props.def(--o-menu--item--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; |
| 16 | ) !default; | ||
| 17 | $item--key-focus--border-offset: props.def( | ||
| 18 | --o-menu--item--key-focus--border-offset, | ||
| 19 | props.get(core.$key-focus--border-offset) | ||
| 20 | ) !default; | ||
| 21 | $item--key-focus--outline-width: props.def( | ||
| 22 | --o-menu--item--key-focus--outline-width, | ||
| 23 | props.get(core.$key-focus--outline-width) | ||
| 24 | ) !default; | ||
| 25 | 16 | ||
| 26 | $separator-color: props.def( | 17 | $separator-color: props.def(--o-menu--separator-color, props.get(core.$theme, --border), 'color') !default; |
| 27 | --o-menu--separator-color, | 18 | $header--label-color: props.def(--o-menu--header--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 28 | props.get(core.$theme, --border), | ||
| 29 | "color" | ||
| 30 | ) !default; | ||
| 31 | $header--label-color: props.def( | ||
| 32 | --o-menu--header--label-color, | ||
| 33 | props.get(core.$theme, --heading), | ||
| 34 | "color" | ||
| 35 | ) !default; | ||
| 36 | 19 | ||
| 37 | $item--hover--bg-color: props.def( | 20 | $item--hover--bg-color: props.def(--o-menu--item--hover--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 38 | --o-menu--item--hover--bg-color, | 21 | $item--hover--label-color: props.def(--o-menu--item--hover--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 39 | props.get(core.$theme, --border-mute), | ||
| 40 | "color" | ||
| 41 | ) !default; | ||
| 42 | $item--hover--label-color: props.def( | ||
| 43 | --o-menu--item--hover--label-color, | ||
| 44 | props.get(core.$theme, --heading), | ||
| 45 | "color" | ||
| 46 | ) !default; | ||
| 47 | 22 | ||
| 48 | $item--active--bg-color: props.def( | 23 | $item--active--bg-color: props.def(--o-menu--item--active--bg-color, props.get(core.$theme, --border), 'color') !default; |
| 49 | --o-menu--item--active--bg-color, | 24 | $item--active--label-color: props.def(--o-menu--item--active--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 50 | props.get(core.$theme, --border), | ||
| 51 | "color" | ||
| 52 | ) !default; | ||
| 53 | $item--active--label-color: props.def( | ||
| 54 | --o-menu--item--active--label-color, | ||
| 55 | props.get(core.$theme, --heading), | ||
| 56 | "color" | ||
| 57 | ) !default; | ||
| 58 | 25 | ||
| 59 | $item--disabled--label-color: props.def( | 26 | $item--disabled--label-color: props.def(--o-menu--item--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 60 | --o-menu--item--disabled--label-color, | ||
| 61 | props.get(core.$theme, --text-disabled), | ||
| 62 | "color" | ||
| 63 | ) !default; | ||
| 64 | 27 | ||
| 65 | $item--key-focus--border-color: props.def( | 28 | $item--key-focus--border-color: props.def(--o-menu--item--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 66 | --o-menu--item--key-focus--border-color, | 29 | $item--key-focus--outline-color: props.def(--o-menu--item--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 67 | props.get(core.$theme, --focus, --border), | ||
| 68 | "color" | ||
| 69 | ) !default; | ||
| 70 | $item--key-focus--outline-color: props.def( | ||
| 71 | --o-menu--item--key-focus--outline-color, | ||
| 72 | props.get(core.$theme, --focus, --outline), | ||
| 73 | "color" | ||
| 74 | ) !default; | ||
diff --git a/src/objects/_navbar.scss b/src/objects/_navbar.scss index 4b678e0..cc1eaaa 100644 --- a/src/objects/_navbar.scss +++ b/src/objects/_navbar.scss | |||
| @@ -1,197 +1,151 @@ | |||
| 1 | @use "sass:list"; | 1 | @use 'sass:list'; |
| 2 | @use "sass:map"; | 2 | @use 'sass:map'; |
| 3 | @use "sass:meta"; | 3 | @use 'sass:meta'; |
| 4 | @use "sass:string"; | 4 | @use 'sass:string'; |
| 5 | @use "pkg:iro-sass/bem"; | 5 | @use 'pkg:iro-sass/src/bem'; |
| 6 | @use "pkg:iro-sass/props"; | 6 | @use 'pkg:iro-sass/src/props'; |
| 7 | @use "../props" as *; | 7 | @use '../props' as *; |
| 8 | 8 | ||
| 9 | @forward "navbar.vars"; | 9 | @forward 'navbar.vars'; |
| 10 | @use "navbar.vars" as vars; | 10 | @use 'navbar.vars' as vars; |
| 11 | 11 | ||
| 12 | @mixin -apply-theme($theme, $key: ()) { | 12 | @mixin -apply-theme($theme, $key: ()) { |
| 13 | @include bem.elem("item-label") { | 13 | @include bem.elem('item-label') { |
| 14 | color: props.get($theme, list.join($key, --disabled --label-color)...); | 14 | color: props.get($theme, list.join($key, --disabled --label-color)...); |
| 15 | } | 15 | } |
| 16 | 16 | ||
| 17 | @include bem.elem("item-content") { | 17 | @include bem.elem('item-content') { |
| 18 | color: props.get($theme, list.join($key, --disabled --text-color)...); | 18 | color: props.get($theme, list.join($key, --disabled --text-color)...); |
| 19 | 19 | ||
| 20 | &::after { | 20 | &::after { |
| 21 | outline: props.get($theme, list.join($key, --key-focus --border)...) solid | 21 | outline: props.get($theme, list.join($key, --key-focus --border)...) solid props.get(vars.$key-focus--border-width); |
| 22 | props.get(vars.$key-focus--border-width); | 22 | box-shadow: |
| 23 | box-shadow: 0 0 0 | 23 | 0 |
| 24 | calc( | 24 | 0 |
| 25 | props.get(vars.$key-focus--border-width) + | 25 | 0 |
| 26 | props.get(vars.$key-focus--outline-width) | 26 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 27 | ) | ||
| 28 | props.get($theme, list.join($key, --key-focus --outline)...); | 27 | props.get($theme, list.join($key, --key-focus --outline)...); |
| 29 | } | 28 | } |
| 30 | } | 29 | } |
| 31 | 30 | ||
| 32 | @include bem.elem("item") { | 31 | @include bem.elem('item') { |
| 33 | &:link, | 32 | &:link, |
| 34 | &:visited, | 33 | &:visited, |
| 35 | &:enabled { | 34 | &:enabled { |
| 36 | @include bem.elem("item-label") { | 35 | @include bem.elem('item-label') { |
| 37 | color: props.get($theme, list.join($key, --label-color)...); | 36 | color: props.get($theme, list.join($key, --label-color)...); |
| 38 | } | 37 | } |
| 39 | 38 | ||
| 40 | @include bem.elem("item-content") { | 39 | @include bem.elem('item-content') { |
| 41 | color: props.get($theme, list.join($key, --text-color)...); | 40 | color: props.get($theme, list.join($key, --text-color)...); |
| 42 | } | 41 | } |
| 43 | 42 | ||
| 44 | &:hover, | 43 | &:hover, |
| 45 | &:focus-visible { | 44 | &:focus-visible { |
| 46 | @include bem.elem("item-label") { | 45 | @include bem.elem('item-label') { |
| 47 | color: props.get($theme, list.join($key, --hover --label-color)...); | 46 | color: props.get($theme, list.join($key, --hover --label-color)...); |
| 48 | } | 47 | } |
| 49 | 48 | ||
| 50 | @include bem.elem("item-content") { | 49 | @include bem.elem('item-content') { |
| 51 | color: props.get($theme, list.join($key, --hover --text-color)...); | 50 | color: props.get($theme, list.join($key, --hover --text-color)...); |
| 52 | background-color: props.get($theme, list.join($key, --hover --bg-color)...); | 51 | background-color: props.get($theme, list.join($key, --hover --bg-color)...); |
| 53 | } | 52 | } |
| 54 | } | 53 | } |
| 55 | 54 | ||
| 56 | &:focus-visible { | 55 | &:focus-visible { |
| 57 | @include bem.elem("item-label") { | 56 | @include bem.elem('item-label') { |
| 58 | color: props.get($theme, list.join($key, --key-focus --label)...); | 57 | color: props.get($theme, list.join($key, --key-focus --label)...); |
| 59 | } | 58 | } |
| 60 | } | 59 | } |
| 61 | 60 | ||
| 62 | &:active { | 61 | &:active { |
| 63 | @include bem.elem("item-label") { | 62 | @include bem.elem('item-label') { |
| 64 | color: props.get($theme, list.join($key, --active --label-color)...); | 63 | color: props.get($theme, list.join($key, --active --label-color)...); |
| 65 | } | 64 | } |
| 66 | 65 | ||
| 67 | @include bem.elem("item-content") { | 66 | @include bem.elem('item-content') { |
| 68 | color: props.get($theme, list.join($key, --active --text-color)...); | 67 | color: props.get($theme, list.join($key, --active --text-color)...); |
| 69 | background-color: props.get($theme, list.join($key, --active --bg-color)...); | 68 | background-color: props.get($theme, list.join($key, --active --bg-color)...); |
| 70 | } | 69 | } |
| 71 | } | 70 | } |
| 72 | } | 71 | } |
| 73 | 72 | ||
| 74 | @include bem.is("selected") { | 73 | @include bem.is('selected') { |
| 75 | @include bem.elem("item-label") { | 74 | @include bem.elem('item-label') { |
| 76 | color: props.get($theme, list.join($key, --selected --disabled --label-color)...); | 75 | color: props.get($theme, list.join($key, --selected --disabled --label-color)...); |
| 77 | } | 76 | } |
| 78 | 77 | ||
| 79 | @include bem.elem("item-content") { | 78 | @include bem.elem('item-content') { |
| 80 | color: props.get($theme, list.join($key, --selected --disabled --text-color)...); | 79 | color: props.get($theme, list.join($key, --selected --disabled --text-color)...); |
| 81 | background-color: props.get( | 80 | background-color: props.get($theme, list.join($key, --selected --disabled --bg-color)...); |
| 82 | $theme, | ||
| 83 | list.join($key, --selected --disabled --bg-color)... | ||
| 84 | ); | ||
| 85 | } | 81 | } |
| 86 | 82 | ||
| 87 | &:link, | 83 | &:link, |
| 88 | &:visited, | 84 | &:visited, |
| 89 | &:enabled { | 85 | &:enabled { |
| 90 | @include bem.elem("item-label") { | 86 | @include bem.elem('item-label') { |
| 91 | color: props.get($theme, list.join($key, --selected --label-color)...); | 87 | color: props.get($theme, list.join($key, --selected --label-color)...); |
| 92 | } | 88 | } |
| 93 | 89 | ||
| 94 | @include bem.elem("item-content") { | 90 | @include bem.elem('item-content') { |
| 95 | color: props.get($theme, list.join($key, --selected --text-color)...); | 91 | color: props.get($theme, list.join($key, --selected --text-color)...); |
| 96 | background-color: props.get($theme, list.join($key, --selected --bg-color)...); | 92 | background-color: props.get($theme, list.join($key, --selected --bg-color)...); |
| 97 | } | 93 | } |
| 98 | 94 | ||
| 99 | &:hover, | 95 | &:hover, |
| 100 | &:focus-visible { | 96 | &:focus-visible { |
| 101 | @include bem.elem("item-label") { | 97 | @include bem.elem('item-label') { |
| 102 | color: props.get( | 98 | color: props.get($theme, list.join($key, --selected --hover --label-color)...); |
| 103 | $theme, | ||
| 104 | list.join($key, --selected --hover --label-color)... | ||
| 105 | ); | ||
| 106 | } | 99 | } |
| 107 | 100 | ||
| 108 | @include bem.elem("item-content") { | 101 | @include bem.elem('item-content') { |
| 109 | color: props.get( | 102 | color: props.get($theme, list.join($key, --selected --hover --text-color)...); |
| 110 | $theme, | 103 | background-color: props.get($theme, list.join($key, --selected --hover --bg-color)...); |
| 111 | list.join($key, --selected --hover --text-color)... | ||
| 112 | ); | ||
| 113 | background-color: props.get( | ||
| 114 | $theme, | ||
| 115 | list.join($key, --selected --hover --bg-color)... | ||
| 116 | ); | ||
| 117 | } | 104 | } |
| 118 | } | 105 | } |
| 119 | 106 | ||
| 120 | &:active { | 107 | &:active { |
| 121 | @include bem.elem("item-label") { | 108 | @include bem.elem('item-label') { |
| 122 | color: props.get( | 109 | color: props.get($theme, list.join($key, --selected --active --label-color)...); |
| 123 | $theme, | ||
| 124 | list.join($key, --selected --active --label-color)... | ||
| 125 | ); | ||
| 126 | } | 110 | } |
| 127 | 111 | ||
| 128 | @include bem.elem("item-content") { | 112 | @include bem.elem('item-content') { |
| 129 | color: props.get( | 113 | color: props.get($theme, list.join($key, --selected --active --text-color)...); |
| 130 | $theme, | 114 | background-color: props.get($theme, list.join($key, --selected --active --bg-color)...); |
| 131 | list.join($key, --selected --active --text-color)... | ||
| 132 | ); | ||
| 133 | background-color: props.get( | ||
| 134 | $theme, | ||
| 135 | list.join($key, --selected --active --bg-color)... | ||
| 136 | ); | ||
| 137 | } | 115 | } |
| 138 | } | 116 | } |
| 139 | } | 117 | } |
| 140 | } | 118 | } |
| 141 | } | 119 | } |
| 142 | 120 | ||
| 143 | @include bem.modifier("quiet") { | 121 | @include bem.modifier('quiet') { |
| 144 | @include bem.elem("item") { | 122 | @include bem.elem('item') { |
| 145 | @include bem.is("selected") { | 123 | @include bem.is('selected') { |
| 146 | @include bem.elem("item-content") { | 124 | @include bem.elem('item-content') { |
| 147 | color: props.get( | 125 | color: props.get($theme, list.join($key, --quiet --selected --disabled --text-color)...); |
| 148 | $theme, | 126 | background-color: props.get($theme, list.join($key, --quiet --selected --disabled --bg-color)...); |
| 149 | list.join($key, --quiet --selected --disabled --text-color)... | ||
| 150 | ); | ||
| 151 | background-color: props.get( | ||
| 152 | $theme, | ||
| 153 | list.join($key, --quiet --selected --disabled --bg-color)... | ||
| 154 | ); | ||
| 155 | } | 127 | } |
| 156 | 128 | ||
| 157 | &:link, | 129 | &:link, |
| 158 | &:visited, | 130 | &:visited, |
| 159 | &:enabled { | 131 | &:enabled { |
| 160 | @include bem.elem("item-content") { | 132 | @include bem.elem('item-content') { |
| 161 | color: props.get( | 133 | color: props.get($theme, list.join($key, --quiet --selected --text-color)...); |
| 162 | $theme, | 134 | background-color: props.get($theme, list.join($key, --quiet --selected --bg-color)...); |
| 163 | list.join($key, --quiet --selected --text-color)... | ||
| 164 | ); | ||
| 165 | background-color: props.get( | ||
| 166 | $theme, | ||
| 167 | list.join($key, --quiet --selected --bg-color)... | ||
| 168 | ); | ||
| 169 | } | 135 | } |
| 170 | 136 | ||
| 171 | &:hover, | 137 | &:hover, |
| 172 | &:focus-visible { | 138 | &:focus-visible { |
| 173 | @include bem.elem("item-content") { | 139 | @include bem.elem('item-content') { |
| 174 | color: props.get( | 140 | color: props.get($theme, list.join($key, --quiet --selected --hover --text-color)...); |
| 175 | $theme, | 141 | background-color: props.get($theme, list.join($key, --quiet --selected --hover --bg-color)...); |
| 176 | list.join($key, --quiet --selected --hover --text-color)... | ||
| 177 | ); | ||
| 178 | background-color: props.get( | ||
| 179 | $theme, | ||
| 180 | list.join($key, --quiet --selected --hover --bg-color)... | ||
| 181 | ); | ||
| 182 | } | 142 | } |
| 183 | } | 143 | } |
| 184 | 144 | ||
| 185 | &:active { | 145 | &:active { |
| 186 | @include bem.elem("item-content") { | 146 | @include bem.elem('item-content') { |
| 187 | color: props.get( | 147 | color: props.get($theme, list.join($key, --quiet --selected --active --text-color)...); |
| 188 | $theme, | 148 | background-color: props.get($theme, list.join($key, --quiet --selected --active --bg-color)...); |
| 189 | list.join($key, --quiet --selected --active --text-color)... | ||
| 190 | ); | ||
| 191 | background-color: props.get( | ||
| 192 | $theme, | ||
| 193 | list.join($key, --quiet --selected --active --bg-color)... | ||
| 194 | ); | ||
| 195 | } | 149 | } |
| 196 | } | 150 | } |
| 197 | } | 151 | } |
| @@ -201,64 +155,64 @@ | |||
| 201 | } | 155 | } |
| 202 | 156 | ||
| 203 | @mixin styles { | 157 | @mixin styles { |
| 204 | @include materialize-at-root(meta.module-variables("vars")); | 158 | @include materialize-at-root(meta.module-variables('vars')); |
| 205 | 159 | ||
| 206 | @include bem.object("navbar") { | 160 | @include bem.object('navbar') { |
| 207 | display: flex; | 161 | display: flex; |
| 208 | block-size: props.get(vars.$block-size); | 162 | block-size: props.get(vars.$block-size); |
| 209 | 163 | ||
| 210 | @include bem.elem("item-label") { | 164 | @include bem.elem('item-label') { |
| 211 | order: 2; | 165 | order: 2; |
| 212 | margin-block-start: props.get(vars.$item--pad-b-icon); | 166 | margin-block-start: props.get(vars.$item--pad-b-icon); |
| 213 | font-size: props.get(vars.$item--label-font-size); | 167 | font-size: props.get(vars.$item--label-font-size); |
| 214 | font-weight: bold; | 168 | font-weight: bold; |
| 215 | 169 | ||
| 216 | @include bem.next-elem("item-content") { | 170 | @include bem.next-elem('item-content') { |
| 217 | padding-block: props.get(vars.$item--pad-b-icon); | 171 | padding-block: props.get(vars.$item--pad-b-icon); |
| 218 | padding-inline: props.get(vars.$item--pad-i-icon); | 172 | padding-inline: props.get(vars.$item--pad-i-icon); |
| 219 | font-size: props.get(vars.$item--icon-size); | 173 | font-size: props.get(vars.$item--icon-size); |
| 220 | } | 174 | } |
| 221 | } | 175 | } |
| 222 | 176 | ||
| 223 | @include bem.elem("item-content-text") { | 177 | @include bem.elem('item-content-text') { |
| 224 | margin-inline: props.get(vars.$item--pad-i-label); | 178 | margin-inline: props.get(vars.$item--pad-i-label); |
| 225 | } | 179 | } |
| 226 | 180 | ||
| 227 | @include bem.elem("item-content") { | 181 | @include bem.elem('item-content') { |
| 228 | position: relative; | 182 | position: relative; |
| 229 | order: 1; | 183 | order: 1; |
| 230 | padding-block: props.get(vars.$item--pad-b); | 184 | padding-block: props.get(vars.$item--pad-b); |
| 231 | padding-inline: props.get(vars.$item--pad-i); | 185 | padding-inline: props.get(vars.$item--pad-i); |
| 232 | font-size: props.get(vars.$item--font-size); | 186 | font-size: props.get(vars.$item--font-size); |
| 233 | white-space: nowrap; | 187 | white-space: nowrap; |
| 234 | border-radius: 100em; | 188 | border-radius: 100em; |
| 235 | 189 | ||
| 236 | &::after { | 190 | &::after { |
| 237 | position: absolute; | 191 | position: absolute; |
| 238 | inset: calc(-1 * props.get(vars.$key-focus--border-offset)); | 192 | inset: calc(-1 * props.get(vars.$key-focus--border-offset)); |
| 239 | z-index: -10; | 193 | z-index: -10; |
| 240 | display: block; | 194 | display: block; |
| 241 | visibility: hidden; | 195 | visibility: hidden; |
| 242 | pointer-events: none; | 196 | pointer-events: none; |
| 243 | content: ""; | 197 | content: ''; |
| 244 | border-radius: 100em; | 198 | border-radius: 100em; |
| 245 | } | 199 | } |
| 246 | } | 200 | } |
| 247 | 201 | ||
| 248 | @include bem.elem("item") { | 202 | @include bem.elem('item') { |
| 249 | display: flex; | 203 | display: flex; |
| 250 | flex-direction: column; | 204 | flex-direction: column; |
| 251 | align-items: center; | 205 | align-items: center; |
| 252 | justify-content: center; | 206 | justify-content: center; |
| 253 | inline-size: 100%; | 207 | inline-size: 100%; |
| 254 | padding-inline: calc(0.5 * props.get(vars.$spacing)); | 208 | padding-inline: calc(.5 * props.get(vars.$spacing)); |
| 255 | font-weight: 500; | 209 | font-weight: 500; |
| 256 | 210 | ||
| 257 | &:link, | 211 | &:link, |
| 258 | &:visited, | 212 | &:visited, |
| 259 | &:enabled { | 213 | &:enabled { |
| 260 | &:focus-visible { | 214 | &:focus-visible { |
| 261 | @include bem.elem("item-content") { | 215 | @include bem.elem('item-content') { |
| 262 | &::after { | 216 | &::after { |
| 263 | visibility: visible; | 217 | visibility: visible; |
| 264 | } | 218 | } |
| @@ -266,7 +220,7 @@ | |||
| 266 | } | 220 | } |
| 267 | } | 221 | } |
| 268 | 222 | ||
| 269 | @include bem.is("selected") { | 223 | @include bem.is('selected') { |
| 270 | font-weight: bold; | 224 | font-weight: bold; |
| 271 | } | 225 | } |
| 272 | } | 226 | } |
| @@ -279,21 +233,22 @@ | |||
| 279 | } | 233 | } |
| 280 | } | 234 | } |
| 281 | 235 | ||
| 282 | @include bem.modifier("hide-unselected") { | 236 | @include bem.modifier('hide-unselected') { |
| 283 | @include bem.elem("item") { | 237 | @include bem.elem('item') { |
| 284 | display: none; | 238 | display: none; |
| 285 | 239 | ||
| 286 | @include bem.is("selected") { | 240 | @include bem.is('selected') { |
| 287 | display: flex; | 241 | display: flex; |
| 288 | } | 242 | } |
| 289 | } | 243 | } |
| 290 | } | 244 | } |
| 291 | 245 | ||
| 292 | @include bem.modifier("adapt") { | 246 | @include bem.modifier('adapt') { |
| 293 | block-size: 100%; | 247 | block-size: 100%; |
| 294 | } | 248 | } |
| 295 | 249 | ||
| 296 | @include bem.modifier("align-block") { | 250 | |
| 251 | @include bem.modifier('align-block') { | ||
| 297 | margin-inline: calc(-1 * props.get(vars.$item--pad-i)); | 252 | margin-inline: calc(-1 * props.get(vars.$item--pad-i)); |
| 298 | } | 253 | } |
| 299 | } | 254 | } |
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 | } |
diff --git a/src/objects/_palette.scss b/src/objects/_palette.scss index 88448e0..f503812 100644 --- a/src/objects/_palette.scss +++ b/src/objects/_palette.scss | |||
| @@ -1,27 +1,21 @@ | |||
| 1 | @use "sass:list"; | 1 | @use 'sass:list'; |
| 2 | @use "sass:map"; | 2 | @use 'sass:map'; |
| 3 | @use "sass:string"; | 3 | @use 'sass:string'; |
| 4 | @use "pkg:iro-sass/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "../config"; | 5 | @use '../config'; |
| 6 | @use "pkg:iro-sass/props"; | 6 | @use 'pkg:iro-sass/src/props'; |
| 7 | @use "../core.vars" as core; | 7 | @use '../core.vars' as core; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include bem.object("palette") { | 10 | @include bem.object('palette') { |
| 11 | display: flex; | 11 | display: flex; |
| 12 | block-size: 3em; | 12 | block-size: 3em; |
| 13 | 13 | ||
| 14 | @include bem.elem("item") { | 14 | @include bem.elem('item') { |
| 15 | flex: 1 1 auto; | 15 | flex: 1 1 auto; |
| 16 | 16 | ||
| 17 | $palette: map.get(config.$themes, config.$theme-default, light, --palettes, --base); | 17 | $palette: map.get(config.$themes, config.$theme-default, light, --palettes, --base); |
| 18 | $levels: map.get( | 18 | $levels: map.get(config.$themes, config.$theme-default, light, --levels, list.nth($palette, 2)); |
| 19 | config.$themes, | ||
| 20 | config.$theme-default, | ||
| 21 | light, | ||
| 22 | --levels, | ||
| 23 | list.nth($palette, 2) | ||
| 24 | ); | ||
| 25 | 19 | ||
| 26 | @for $i from 1 through list.length($levels) { | 20 | @for $i from 1 through list.length($levels) { |
| 27 | $key: list.nth(map.keys($levels), $i); | 21 | $key: list.nth(map.keys($levels), $i); |
| @@ -32,19 +26,11 @@ | |||
| 32 | } | 26 | } |
| 33 | } | 27 | } |
| 34 | 28 | ||
| 35 | @each $palette-name, | 29 | @each $palette-name, $palette in map.get(config.$themes, config.$theme-default, light, --palettes) { |
| 36 | $palette in map.get(config.$themes, config.$theme-default, light, --palettes) | 30 | $levels: map.get(config.$themes, config.$theme-default, light, --levels, list.nth($palette, 2)); |
| 37 | { | ||
| 38 | $levels: map.get( | ||
| 39 | config.$themes, | ||
| 40 | config.$theme-default, | ||
| 41 | light, | ||
| 42 | --levels, | ||
| 43 | list.nth($palette, 2) | ||
| 44 | ); | ||
| 45 | 31 | ||
| 46 | @include bem.modifier(string.slice($palette-name, 3)) { | 32 | @include bem.modifier(string.slice($palette-name, 3)) { |
| 47 | @include bem.elem("item") { | 33 | @include bem.elem('item') { |
| 48 | @for $i from 1 through list.length($levels) { | 34 | @for $i from 1 through list.length($levels) { |
| 49 | $key: list.nth(map.keys($levels), $i); | 35 | $key: list.nth(map.keys($levels), $i); |
| 50 | 36 | ||
| @@ -56,21 +42,17 @@ | |||
| 56 | } | 42 | } |
| 57 | } | 43 | } |
| 58 | 44 | ||
| 59 | @include bem.modifier("static") { | 45 | @include bem.modifier('static') { |
| 60 | @each $palette-name, $palette in map.get(config.$static-colors, --palettes) { | 46 | @each $palette-name, $palette in map.get(config.$static-colors, --palettes) { |
| 61 | $levels: map.get(config.$static-colors, --levels); | 47 | $levels: map.get(config.$static-colors, --levels); |
| 62 | 48 | ||
| 63 | @include bem.modifier(string.slice($palette-name, 3)) { | 49 | @include bem.modifier(string.slice($palette-name, 3)) { |
| 64 | @include bem.elem("item") { | 50 | @include bem.elem('item') { |
| 65 | @for $i from 1 through list.length($levels) { | 51 | @for $i from 1 through list.length($levels) { |
| 66 | $key: list.nth(map.keys($levels), $i); | 52 | $key: list.nth(map.keys($levels), $i); |
| 67 | 53 | ||
| 68 | &:nth-child(#{$i}) { | 54 | &:nth-child(#{$i}) { |
| 69 | background-color: props.get( | 55 | background-color: props.get(core.$theme, #{$palette-name}-static, $key); |
| 70 | core.$theme, | ||
| 71 | #{$palette-name}-static, | ||
| 72 | $key | ||
| 73 | ); | ||
| 74 | } | 56 | } |
| 75 | } | 57 | } |
| 76 | } | 58 | } |
diff --git a/src/objects/_placeholders.scss b/src/objects/_placeholders.scss index d0af033..683f57e 100644 --- a/src/objects/_placeholders.scss +++ b/src/objects/_placeholders.scss | |||
| @@ -1,22 +1,22 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "placeholders.vars"; | 6 | @forward 'placeholders.vars'; |
| 7 | @use "placeholders.vars" as vars; | 7 | @use 'placeholders.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables("vars")); | 10 | @include materialize-at-root(meta.module-variables('vars')); |
| 11 | 11 | ||
| 12 | @include bem.object("placeholders") { | 12 | @include bem.object('placeholders') { |
| 13 | @include bem.elem("placeholder") { | 13 | @include bem.elem('placeholder') { |
| 14 | display: inline-block; | 14 | display: inline-block; |
| 15 | min-block-size: props.get(vars.$min-block-size); | 15 | min-block-size: props.get(vars.$min-block-size); |
| 16 | vertical-align: middle; | 16 | vertical-align: middle; |
| 17 | background-color: currentColor; | 17 | background-color: currentColor; |
| 18 | border-radius: props.get(vars.$rounding); | 18 | border-radius: props.get(vars.$rounding); |
| 19 | opacity: props.get(vars.$opacity); | 19 | opacity: props.get(vars.$opacity); |
| 20 | } | 20 | } |
| 21 | } | 21 | } |
| 22 | } | 22 | } |
diff --git a/src/objects/_placeholders.vars.scss b/src/objects/_placeholders.vars.scss index 87e1657..1ac4ef7 100644 --- a/src/objects/_placeholders.vars.scss +++ b/src/objects/_placeholders.vars.scss | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | 3 | ||
| 4 | $min-block-size: props.def(--o-placeholder--min-block-size, 1em) !default; | 4 | $min-block-size: props.def(--o-placeholder--min-block-size, 1em) !default; |
| 5 | $rounding: props.def(--o-placeholder--rounding, props.get(core.$rounding)) !default; | 5 | $rounding: props.def(--o-placeholder--rounding, props.get(core.$rounding)) !default; |
| 6 | $opacity: props.def(--o-placeholder--opacity, 0.5) !default; | 6 | $opacity: props.def(--o-placeholder--opacity, .5) !default; |
diff --git a/src/objects/_popover.scss b/src/objects/_popover.scss index 90187c1..1cb5660 100644 --- a/src/objects/_popover.scss +++ b/src/objects/_popover.scss | |||
| @@ -1,40 +1,44 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "popover.vars"; | 6 | @forward 'popover.vars'; |
| 7 | @use "popover.vars" as vars; | 7 | @use 'popover.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables("vars")); | 10 | @include materialize-at-root(meta.module-variables('vars')); |
| 11 | 11 | ||
| 12 | @include bem.object("popover") { | 12 | @include bem.object('popover') { |
| 13 | position: fixed; | 13 | position: fixed; |
| 14 | inset-block-start: 0; | 14 | inset-block-start: 0; |
| 15 | inset-inline-start: 0; | 15 | inset-inline-start: 0; |
| 16 | z-index: props.get(vars.$z-index); | 16 | z-index: props.get(vars.$z-index); |
| 17 | padding-block: props.get(vars.$pad-b); | 17 | padding-block: props.get(vars.$pad-b); |
| 18 | padding-inline: props.get(vars.$pad-i); | 18 | padding-inline: props.get(vars.$pad-i); |
| 19 | margin: 0; | 19 | margin: 0; |
| 20 | color: currentColor; | 20 | color: currentColor; |
| 21 | background-color: props.get(vars.$bg-color); | 21 | background-color: props.get(vars.$bg-color); |
| 22 | border: props.get(vars.$border-width) solid transparent; | 22 | border: props.get(vars.$border-width) solid transparent; |
| 23 | border-color: props.get(vars.$border-color); | 23 | border-color: props.get(vars.$border-color); |
| 24 | border-radius: props.get(vars.$rounding); | 24 | border-radius: props.get(vars.$rounding); |
| 25 | box-shadow: props.get(vars.$shadow-x) props.get(vars.$shadow-y) props.get(vars.$shadow-blur) | 25 | box-shadow: |
| 26 | props.get(vars.$shadow-grow) props.get(vars.$shadow-color); | 26 | props.get(vars.$shadow-x) |
| 27 | transform: translate(var(--x), var(--y)); | 27 | props.get(vars.$shadow-y) |
| 28 | props.get(vars.$shadow-blur) | ||
| 29 | props.get(vars.$shadow-grow) | ||
| 30 | props.get(vars.$shadow-color); | ||
| 31 | transform: translate(var(--x), var(--y)); | ||
| 28 | 32 | ||
| 29 | @include bem.modifier("up-left") { | 33 | @include bem.modifier('up-left') { |
| 30 | transform: translate(var(--x), calc(var(--y) - 100%)); | 34 | transform: translate(var(--x), calc(var(--y) - 100%)); |
| 31 | } | 35 | } |
| 32 | 36 | ||
| 33 | @include bem.modifier("up-right") { | 37 | @include bem.modifier('up-right') { |
| 34 | transform: translate(calc(var(--x) - 100%), calc(var(--y) - 100%)); | 38 | transform: translate(calc(var(--x) - 100%), calc(var(--y) - 100%)); |
| 35 | } | 39 | } |
| 36 | 40 | ||
| 37 | @include bem.modifier("down-right") { | 41 | @include bem.modifier('down-right') { |
| 38 | transform: translate(calc(var(--x) - 100%), var(--y)); | 42 | transform: translate(calc(var(--x) - 100%), var(--y)); |
| 39 | } | 43 | } |
| 40 | } | 44 | } |
diff --git a/src/objects/_popover.vars.scss b/src/objects/_popover.vars.scss index df1072e..202d71a 100644 --- a/src/objects/_popover.vars.scss +++ b/src/objects/_popover.vars.scss | |||
| @@ -1,28 +1,19 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../core.vars" as core; | 3 | @use '../core.vars' as core; |
| 4 | 4 | ||
| 5 | $z-index: props.def(--o-popover--z-index, 11000) !default; | 5 | $z-index: props.def(--o-popover--z-index, 11000) !default; |
| 6 | $pad-i: props.def(--o-popover--pad-i, 0) !default; | 6 | $pad-i: props.def(--o-popover--pad-i, 0) !default; |
| 7 | $pad-b: props.def(--o-popover--pad-b, props.get(core.$size--85)) !default; | 7 | $pad-b: props.def(--o-popover--pad-b, props.get(core.$size--85)) !default; |
| 8 | $separator-width: props.def(--o-popover--separator-width, props.get(core.$size--85)) !default; | 8 | $separator-width: props.def(--o-popover--separator-width, props.get(core.$size--85)) !default; |
| 9 | $rounding: props.def(--o-popover--rounding, props.get(core.$rounding)) !default; | 9 | $rounding: props.def(--o-popover--rounding, props.get(core.$rounding)) !default; |
| 10 | $border-width: props.def(--o-popover--border-width, props.get(core.$border-width--thin)) !default; | 10 | $border-width: props.def(--o-popover--border-width, props.get(core.$border-width--thin)) !default; |
| 11 | 11 | ||
| 12 | $shadow-x: props.def(--o-popover--shadow-x, props.get(core.$shadow--l2--x)) !default; | 12 | $shadow-x: props.def(--o-popover--shadow-x, props.get(core.$shadow--l2--x)) !default; |
| 13 | $shadow-y: props.def(--o-popover--shadow-y, props.get(core.$shadow--l2--y)) !default; | 13 | $shadow-y: props.def(--o-popover--shadow-y, props.get(core.$shadow--l2--y)) !default; |
| 14 | $shadow-blur: props.def(--o-popover--shadow-blur, props.get(core.$shadow--l2--blur)) !default; | 14 | $shadow-blur: props.def(--o-popover--shadow-blur, props.get(core.$shadow--l2--blur)) !default; |
| 15 | $shadow-grow: props.def(--o-popover--shadow-grow, props.get(core.$shadow--l2--grow)) !default; | 15 | $shadow-grow: props.def(--o-popover--shadow-grow, props.get(core.$shadow--l2--grow)) !default; |
| 16 | 16 | ||
| 17 | $bg-color: props.def(--o-popover--bg-color, props.get(core.$theme, --bg-l2), "color") !default; | 17 | $bg-color: props.def(--o-popover--bg-color, props.get(core.$theme, --bg-l2), 'color') !default; |
| 18 | $border-color: props.def( | 18 | $border-color: props.def(--o-popover--border-color, props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border-strong), 'color') !default; |
| 19 | --o-popover--border-color, | 19 | $shadow-color: props.def(--o-popover--shadow-color, props.get(core.$theme, --shadow), 'color') !default; |
| 20 | props.get(core.$theme, --box, --border) props.get(core.$theme, --box, --border) | ||
| 21 | props.get(core.$theme, --box, --border-strong), | ||
| 22 | "color" | ||
| 23 | ) !default; | ||
| 24 | $shadow-color: props.def( | ||
| 25 | --o-popover--shadow-color, | ||
| 26 | props.get(core.$theme, --shadow), | ||
| 27 | "color" | ||
| 28 | ) !default; | ||
diff --git a/src/objects/_radio.scss b/src/objects/_radio.scss index c964657..ae4a85a 100644 --- a/src/objects/_radio.scss +++ b/src/objects/_radio.scss | |||
| @@ -1,100 +1,92 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | @use "../core.vars" as core; | 5 | @use '../core.vars' as core; |
| 6 | 6 | ||
| 7 | @forward "radio.vars"; | 7 | @forward 'radio.vars'; |
| 8 | @use "radio.vars" as vars; | 8 | @use 'radio.vars' as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables("vars")); | 11 | @include materialize-at-root(meta.module-variables('vars')); |
| 12 | 12 | ||
| 13 | @include bem.object("radio") { | 13 | @include bem.object('radio') { |
| 14 | position: relative; | 14 | position: relative; |
| 15 | display: inline-block; | 15 | display: inline-block; |
| 16 | padding-block: props.get(vars.$pad-b); | 16 | padding-block: props.get(vars.$pad-b); |
| 17 | padding-inline: props.get(vars.$pad-i); | 17 | padding-inline: props.get(vars.$pad-i); |
| 18 | margin-inline: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) | 18 | margin-inline: |
| 19 | calc( | 19 | calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) |
| 20 | props.get(vars.$spacing-sibling) - props.get(vars.$pad-i) - props.get( | 20 | calc(props.get(vars.$spacing-sibling) - props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)); |
| 21 | vars.$key-focus--border-offset | ||
| 22 | ) | ||
| 23 | ); | ||
| 24 | 21 | ||
| 25 | @include bem.elem("circle") { | 22 | @include bem.elem('circle') { |
| 26 | display: inline-block; | 23 | display: inline-block; |
| 27 | flex: 0 0 auto; | 24 | flex: 0 0 auto; |
| 28 | inline-size: props.get(vars.$diameter); | 25 | inline-size: props.get(vars.$diameter); |
| 29 | block-size: props.get(vars.$diameter); | 26 | block-size: props.get(vars.$diameter); |
| 30 | margin-block-start: calc( | 27 | margin-block-start: calc(.5em * props.get(core.$font--standard--line-height) - .5 * props.get(vars.$diameter) - props.get(vars.$key-focus--border-offset)); |
| 31 | 0.5em * props.get(core.$font--standard--line-height) - 0.5 * | 28 | vertical-align: top; |
| 32 | props.get(vars.$diameter) - props.get(vars.$key-focus--border-offset) | 29 | background-color: props.get(vars.$circle-border-color); |
| 33 | ); | 30 | background-clip: padding-box; |
| 34 | vertical-align: top; | 31 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 35 | background-color: props.get(vars.$circle-border-color); | 32 | border-radius: 2em; |
| 36 | background-clip: padding-box; | ||
| 37 | border: props.get(vars.$key-focus--border-offset) solid transparent; | ||
| 38 | border-radius: 2em; | ||
| 39 | 33 | ||
| 40 | &::after { | 34 | &::after { |
| 41 | position: relative; | 35 | position: relative; |
| 42 | inset-block-start: props.get(vars.$border-width); | 36 | inset-block-start: props.get(vars.$border-width); |
| 43 | inset-inline-start: props.get(vars.$border-width); | 37 | inset-inline-start: props.get(vars.$border-width); |
| 44 | display: block; | 38 | display: block; |
| 45 | inline-size: calc(props.get(vars.$diameter) - 2 * props.get(vars.$border-width)); | 39 | inline-size: calc(props.get(vars.$diameter) - 2 * props.get(vars.$border-width)); |
| 46 | block-size: calc(props.get(vars.$diameter) - 2 * props.get(vars.$border-width)); | 40 | block-size: calc(props.get(vars.$diameter) - 2 * props.get(vars.$border-width)); |
| 47 | content: ""; | 41 | content: ''; |
| 48 | background-color: props.get(vars.$circle-bg-color); | 42 | background-color: props.get(vars.$circle-bg-color); |
| 49 | border-radius: props.get(vars.$diameter); | 43 | border-radius: props.get(vars.$diameter); |
| 50 | transition: transform 0.2s ease; | 44 | transition: transform .2s ease; |
| 51 | } | 45 | } |
| 52 | } | 46 | } |
| 53 | 47 | ||
| 54 | @include bem.elem("label") { | 48 | @include bem.elem('label') { |
| 55 | margin-inline-start: calc( | 49 | margin-inline-start: calc(props.get(vars.$label-gap) - props.get(vars.$key-focus--border-offset)); |
| 56 | props.get(vars.$label-gap) - props.get(vars.$key-focus--border-offset) | ||
| 57 | ); | ||
| 58 | } | 50 | } |
| 59 | 51 | ||
| 60 | @include bem.elem("native") { | 52 | @include bem.elem('native') { |
| 61 | position: absolute; | 53 | position: absolute; |
| 62 | inset-block-start: 0; | 54 | inset-block-start: 0; |
| 63 | inset-inline-start: 0; | 55 | inset-inline-start: 0; |
| 64 | z-index: -1; | 56 | z-index: -1; |
| 65 | inline-size: 100%; | 57 | inline-size: 100%; |
| 66 | block-size: 100%; | 58 | block-size: 100%; |
| 67 | padding: 0; | 59 | padding: 0; |
| 68 | margin: 0; | 60 | margin: 0; |
| 69 | overflow: hidden; | 61 | overflow: hidden; |
| 70 | appearance: none; | 62 | appearance: none; |
| 71 | border-radius: props.get(vars.$rounding); | 63 | border-radius: props.get(vars.$rounding); |
| 72 | 64 | ||
| 73 | &:hover, | 65 | &:hover, |
| 74 | &:focus-visible { | 66 | &:focus-visible { |
| 75 | @include bem.sibling-elem("label") { | 67 | @include bem.sibling-elem('label') { |
| 76 | color: props.get(vars.$hover--label-color); | 68 | color: props.get(vars.$hover--label-color); |
| 77 | } | 69 | } |
| 78 | 70 | ||
| 79 | @include bem.sibling-elem("circle") { | 71 | @include bem.sibling-elem('circle') { |
| 80 | background-color: props.get(vars.$hover--circle-border-color); | 72 | background-color: props.get(vars.$hover--circle-border-color); |
| 81 | } | 73 | } |
| 82 | } | 74 | } |
| 83 | 75 | ||
| 84 | &:checked { | 76 | &:checked { |
| 85 | @include bem.sibling-elem("circle") { | 77 | @include bem.sibling-elem('circle') { |
| 86 | &::after { | 78 | &::after { |
| 87 | transform: scale(0.44); | 79 | transform: scale(.44); |
| 88 | } | 80 | } |
| 89 | } | 81 | } |
| 90 | } | 82 | } |
| 91 | 83 | ||
| 92 | &:disabled { | 84 | &:disabled { |
| 93 | @include bem.sibling-elem("label") { | 85 | @include bem.sibling-elem('label') { |
| 94 | color: props.get(vars.$disabled--label-color); | 86 | color: props.get(vars.$disabled--label-color); |
| 95 | } | 87 | } |
| 96 | 88 | ||
| 97 | @include bem.sibling-elem("circle") { | 89 | @include bem.sibling-elem('circle') { |
| 98 | background-color: props.get(vars.$disabled--circle-border-color); | 90 | background-color: props.get(vars.$disabled--circle-border-color); |
| 99 | 91 | ||
| 100 | &::after { | 92 | &::after { |
| @@ -104,46 +96,45 @@ | |||
| 104 | } | 96 | } |
| 105 | 97 | ||
| 106 | &:focus-visible { | 98 | &:focus-visible { |
| 107 | @include bem.sibling-elem("label") { | 99 | @include bem.sibling-elem('label') { |
| 108 | color: props.get(vars.$key-focus--label-color); | 100 | color: props.get(vars.$key-focus--label-color); |
| 109 | } | 101 | } |
| 110 | 102 | ||
| 111 | @include bem.sibling-elem("circle") { | 103 | @include bem.sibling-elem('circle') { |
| 112 | outline: props.get(vars.$key-focus--border-color) solid | 104 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 113 | props.get(vars.$key-focus--border-width); | 105 | box-shadow: |
| 114 | box-shadow: 0 0 0 | 106 | 0 |
| 115 | calc( | 107 | 0 |
| 116 | props.get(vars.$key-focus--border-width) + | 108 | 0 |
| 117 | props.get(vars.$key-focus--outline-width) | 109 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 118 | ) | ||
| 119 | props.get(vars.$key-focus--outline-color); | 110 | props.get(vars.$key-focus--outline-color); |
| 120 | } | 111 | } |
| 121 | } | 112 | } |
| 122 | } | 113 | } |
| 123 | 114 | ||
| 124 | @include bem.modifier("standalone") { | 115 | @include bem.modifier('standalone') { |
| 125 | @include bem.elem("circle") { | 116 | @include bem.elem('circle') { |
| 126 | margin-block-start: 0; | 117 | margin-block-start: 0; |
| 127 | } | 118 | } |
| 128 | } | 119 | } |
| 129 | 120 | ||
| 130 | @include bem.modifier("accent") { | 121 | @include bem.modifier('accent') { |
| 131 | @include bem.elem("native") { | 122 | @include bem.elem('native') { |
| 132 | &:checked { | 123 | &:checked { |
| 133 | @include bem.sibling-elem("circle") { | 124 | @include bem.sibling-elem('circle') { |
| 134 | background-color: props.get(vars.$accent--circle-border-color); | 125 | background-color: props.get(vars.$accent--circle-border-color); |
| 135 | } | 126 | } |
| 136 | 127 | ||
| 137 | &:hover, | 128 | &:hover, |
| 138 | &:focus-visible { | 129 | &:focus-visible { |
| 139 | @include bem.sibling-elem("circle") { | 130 | @include bem.sibling-elem('circle') { |
| 140 | background-color: props.get(vars.$accent--hover--circle-border-color); | 131 | background-color: props.get(vars.$accent--hover--circle-border-color); |
| 141 | } | 132 | } |
| 142 | } | 133 | } |
| 143 | } | 134 | } |
| 144 | 135 | ||
| 145 | &:disabled { | 136 | &:disabled { |
| 146 | @include bem.sibling-elem("circle") { | 137 | @include bem.sibling-elem('circle') { |
| 147 | background-color: props.get(vars.$disabled--circle-border-color); | 138 | background-color: props.get(vars.$disabled--circle-border-color); |
| 148 | 139 | ||
| 149 | &::after { | 140 | &::after { |
| @@ -152,7 +143,7 @@ | |||
| 152 | } | 143 | } |
| 153 | 144 | ||
| 154 | &:checked { | 145 | &:checked { |
| 155 | @include bem.sibling-elem("circle") { | 146 | @include bem.sibling-elem('circle') { |
| 156 | background-color: props.get(vars.$disabled--circle-border-color); | 147 | background-color: props.get(vars.$disabled--circle-border-color); |
| 157 | } | 148 | } |
| 158 | } | 149 | } |
diff --git a/src/objects/_radio.vars.scss b/src/objects/_radio.vars.scss index e7a41a4..a5f249d 100644 --- a/src/objects/_radio.vars.scss +++ b/src/objects/_radio.vars.scss | |||
| @@ -1,90 +1,33 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../core.vars" as core; | 3 | @use '../core.vars' as core; |
| 4 | 4 | ||
| 5 | $diameter: props.def(--o-radio--diameter, props.get(core.$size--200)) !default; | 5 | $diameter: props.def(--o-radio--diameter, props.get(core.$size--200)) !default; |
| 6 | $label-gap: props.def(--o-radio--label-gap, props.get(core.$size--125)) !default; | 6 | $label-gap: props.def(--o-radio--label-gap, props.get(core.$size--125)) !default; |
| 7 | $border-width: props.def(--o-radio--border-width, props.get(core.$border-width--medium)) !default; | 7 | $border-width: props.def(--o-radio--border-width, props.get(core.$border-width--medium)) !default; |
| 8 | $pad-i: props.def(--o-radio--pad-i, props.get(core.$size--65)) !default; | 8 | $pad-i: props.def(--o-radio--pad-i, props.get(core.$size--65)) !default; |
| 9 | $pad-b: props.def(--o-radio--pad-b, props.get(core.$size--65)) !default; | 9 | $pad-b: props.def(--o-radio--pad-b, props.get(core.$size--65)) !default; |
| 10 | $rounding: props.def(--o-radio--rounding, props.get(core.$rounding--sm)) !default; | 10 | $rounding: props.def(--o-radio--rounding, props.get(core.$rounding--sm)) !default; |
| 11 | $spacing-sibling: props.def(--o-radio--spacing-sibling, props.get(core.$size--300)) !default; | 11 | $spacing-sibling: props.def(--o-radio--spacing-sibling, props.get(core.$size--300)) !default; |
| 12 | 12 | ||
| 13 | $key-focus--border-width: props.def( | 13 | $key-focus--border-width: props.def(--o-radio--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 14 | --o-radio--key-focus--border-width, | 14 | $key-focus--border-offset: props.def(--o-radio--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 15 | props.get(core.$key-focus--border-width) | 15 | $key-focus--outline-width: props.def(--o-radio--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; |
| 16 | ) !default; | ||
| 17 | $key-focus--border-offset: props.def( | ||
| 18 | --o-radio--key-focus--border-offset, | ||
| 19 | props.get(core.$key-focus--border-offset) | ||
| 20 | ) !default; | ||
| 21 | $key-focus--outline-width: props.def( | ||
| 22 | --o-radio--key-focus--outline-width, | ||
| 23 | props.get(core.$key-focus--outline-width) | ||
| 24 | ) !default; | ||
| 25 | 16 | ||
| 26 | $circle-border-color: props.def( | 17 | $circle-border-color: props.def(--o-radio--circle-border-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 27 | --o-radio--circle-border-color, | 18 | $circle-bg-color: props.def(--o-radio--circle-bg-color, props.get(core.$theme, --base, --75), 'color') !default; |
| 28 | props.get(core.$theme, --text-mute-more), | ||
| 29 | "color" | ||
| 30 | ) !default; | ||
| 31 | $circle-bg-color: props.def( | ||
| 32 | --o-radio--circle-bg-color, | ||
| 33 | props.get(core.$theme, --base, --75), | ||
| 34 | "color" | ||
| 35 | ) !default; | ||
| 36 | 19 | ||
| 37 | $hover--label-color: props.def( | 20 | $hover--label-color: props.def(--o-radio--hover--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 38 | --o-radio--hover--label-color, | 21 | $hover--circle-border-color: props.def(--o-radio--hover--circle-border-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 39 | props.get(core.$theme, --heading), | ||
| 40 | "color" | ||
| 41 | ) !default; | ||
| 42 | $hover--circle-border-color: props.def( | ||
| 43 | --o-radio--hover--circle-border-color, | ||
| 44 | props.get(core.$theme, --text-mute), | ||
| 45 | "color" | ||
| 46 | ) !default; | ||
| 47 | 22 | ||
| 48 | $accent--circle-border-color: props.def( | 23 | $accent--circle-border-color: props.def(--o-radio--accent--circle-border-color, props.get(core.$theme, --accent, --900), 'color') !default; |
| 49 | --o-radio--accent--circle-border-color, | ||
| 50 | props.get(core.$theme, --accent, --900), | ||
| 51 | "color" | ||
| 52 | ) !default; | ||
| 53 | 24 | ||
| 54 | $accent--hover--circle-border-color: props.def( | 25 | $accent--hover--circle-border-color: props.def(--o-radio--accent--hover--circle-border-color, props.get(core.$theme, --accent, --1000), 'color') !default; |
| 55 | --o-radio--accent--hover--circle-border-color, | ||
| 56 | props.get(core.$theme, --accent, --1000), | ||
| 57 | "color" | ||
| 58 | ) !default; | ||
| 59 | 26 | ||
| 60 | $disabled--label-color: props.def( | 27 | $disabled--label-color: props.def(--o-radio--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 61 | --o-radio--disabled--label-color, | 28 | $disabled--circle-border-color: props.def(--o-radio--disabled--circle-border-color, props.get(core.$theme, --border-strong), 'color') !default; |
| 62 | props.get(core.$theme, --text-disabled), | 29 | $disabled--circle-bg-color: props.def(--o-radio--disabled--circle-bg-color, props.get(core.$theme, --base, --75), 'color') !default; |
| 63 | "color" | ||
| 64 | ) !default; | ||
| 65 | $disabled--circle-border-color: props.def( | ||
| 66 | --o-radio--disabled--circle-border-color, | ||
| 67 | props.get(core.$theme, --border-strong), | ||
| 68 | "color" | ||
| 69 | ) !default; | ||
| 70 | $disabled--circle-bg-color: props.def( | ||
| 71 | --o-radio--disabled--circle-bg-color, | ||
| 72 | props.get(core.$theme, --base, --75), | ||
| 73 | "color" | ||
| 74 | ) !default; | ||
| 75 | 30 | ||
| 76 | $key-focus--label-color: props.def( | 31 | $key-focus--label-color: props.def(--o-radio--key-focus--label-color, props.get(core.$theme, --focus, --text), 'color') !default; |
| 77 | --o-radio--key-focus--label-color, | 32 | $key-focus--border-color: props.def(--o-radio--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 78 | props.get(core.$theme, --focus, --text), | 33 | $key-focus--outline-color: props.def(--o-radio--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 79 | "color" | ||
| 80 | ) !default; | ||
| 81 | $key-focus--border-color: props.def( | ||
| 82 | --o-radio--key-focus--border-color, | ||
| 83 | props.get(core.$theme, --focus, --border), | ||
| 84 | "color" | ||
| 85 | ) !default; | ||
| 86 | $key-focus--outline-color: props.def( | ||
| 87 | --o-radio--key-focus--outline-color, | ||
| 88 | props.get(core.$theme, --focus, --outline), | ||
| 89 | "color" | ||
| 90 | ) !default; | ||
diff --git a/src/objects/_side-nav.scss b/src/objects/_side-nav.scss index ed0f3dc..272d38c 100644 --- a/src/objects/_side-nav.scss +++ b/src/objects/_side-nav.scss | |||
| @@ -1,79 +1,76 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | @use "icon.vars" as icon; | 5 | @use 'icon.vars' as icon; |
| 6 | 6 | ||
| 7 | @forward "side-nav.vars"; | 7 | @forward 'side-nav.vars'; |
| 8 | @use "side-nav.vars" as vars; | 8 | @use 'side-nav.vars' as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables("vars")); | 11 | @include materialize-at-root(meta.module-variables('vars')); |
| 12 | 12 | ||
| 13 | @include bem.object("side-nav") { | 13 | @include bem.object('side-nav') { |
| 14 | display: flex; | 14 | display: flex; |
| 15 | flex-direction: column; | 15 | flex-direction: column; |
| 16 | gap: props.get(vars.$spacing); | 16 | gap: props.get(vars.$spacing); |
| 17 | 17 | ||
| 18 | @include bem.elem("header") { | 18 | @include bem.elem('header') { |
| 19 | padding-block: props.get(vars.$item--pad-b); | 19 | padding-block: props.get(vars.$item--pad-b); |
| 20 | padding-inline: props.get(vars.$item--pad-i); | 20 | padding-inline: props.get(vars.$item--pad-i); |
| 21 | font-size: props.get(vars.$header--font-size); | 21 | font-size: props.get(vars.$header--font-size); |
| 22 | font-weight: 500; | 22 | font-weight: 500; |
| 23 | color: props.get(vars.$header--label-color); | 23 | color: props.get(vars.$header--label-color); |
| 24 | text-transform: uppercase; | 24 | text-transform: uppercase; |
| 25 | letter-spacing: 0.5px; | 25 | letter-spacing: .5px; |
| 26 | 26 | ||
| 27 | @include bem.next-twin-elem { | 27 | @include bem.next-twin-elem { |
| 28 | margin-block-start: calc(props.get(vars.$separator) + props.get(vars.$spacing)); | 28 | margin-block-start: calc(props.get(vars.$separator) + props.get(vars.$spacing)); |
| 29 | } | 29 | } |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | @include bem.elem("item") { | 32 | @include bem.elem('item') { |
| 33 | display: block; | 33 | display: block; |
| 34 | padding-block: props.get(vars.$item--pad-b); | 34 | padding-block: props.get(vars.$item--pad-b); |
| 35 | padding-inline: props.get(vars.$item--pad-i); | 35 | padding-inline: props.get(vars.$item--pad-i); |
| 36 | margin: calc(-1 * props.get(vars.$item--key-focus--border-offset)); | 36 | margin: calc(-1 * props.get(vars.$item--key-focus--border-offset)); |
| 37 | color: props.get(vars.$item--disabled--label-color); | 37 | color: props.get(vars.$item--disabled--label-color); |
| 38 | background-clip: padding-box; | 38 | background-clip: padding-box; |
| 39 | border: props.get(vars.$item--key-focus--border-offset) solid transparent; | 39 | border: props.get(vars.$item--key-focus--border-offset) solid transparent; |
| 40 | border-radius: calc( | 40 | border-radius: calc(props.get(vars.$item--rounding) + props.get(vars.$item--key-focus--border-offset)); |
| 41 | props.get(vars.$item--rounding) + props.get(vars.$item--key-focus--border-offset) | ||
| 42 | ); | ||
| 43 | 41 | ||
| 44 | &:link, | 42 | &:link, |
| 45 | &:visited, | 43 | &:visited, |
| 46 | &:enabled { | 44 | &:enabled { |
| 47 | color: currentColor; | 45 | color: currentColor; |
| 48 | 46 | ||
| 49 | @include bem.multi("&:hover, &:focus-visible", "is" "selected") { | 47 | @include bem.multi('&:hover, &:focus-visible', 'is' 'selected') { |
| 50 | color: props.get(vars.$item--hover--label-color); | 48 | color: props.get(vars.$item--hover--label-color); |
| 51 | background-color: props.get(vars.$item--hover--bg-color); | 49 | background-color: props.get(vars.$item--hover--bg-color); |
| 52 | } | 50 | } |
| 53 | 51 | ||
| 54 | &:active { | 52 | &:active { |
| 55 | color: props.get(vars.$item--active--label-color); | 53 | color: props.get(vars.$item--active--label-color); |
| 56 | background-color: props.get(vars.$item--active--bg-color); | 54 | background-color: props.get(vars.$item--active--bg-color); |
| 57 | } | 55 | } |
| 58 | 56 | ||
| 59 | &:focus-visible { | 57 | &:focus-visible { |
| 60 | outline: props.get(vars.$item--key-focus--border-color) solid | 58 | outline: props.get(vars.$item--key-focus--border-color) solid props.get(vars.$item--key-focus--border-width); |
| 61 | props.get(vars.$item--key-focus--border-width); | 59 | box-shadow: |
| 62 | box-shadow: 0 0 0 | 60 | 0 |
| 63 | calc( | 61 | 0 |
| 64 | props.get(vars.$item--key-focus--border-width) + | 62 | 0 |
| 65 | props.get(vars.$item--key-focus--outline-width) | 63 | calc(props.get(vars.$item--key-focus--border-width) + props.get(vars.$item--key-focus--outline-width)) |
| 66 | ) | ||
| 67 | props.get(vars.$item--key-focus--outline-color); | 64 | props.get(vars.$item--key-focus--outline-color); |
| 68 | } | 65 | } |
| 69 | } | 66 | } |
| 70 | 67 | ||
| 71 | @include bem.next-elem("header") { | 68 | @include bem.next-elem('header') { |
| 72 | margin-block-start: calc(props.get(vars.$separator) + props.get(vars.$spacing)); | 69 | margin-block-start: calc(props.get(vars.$separator) + props.get(vars.$spacing)); |
| 73 | } | 70 | } |
| 74 | } | 71 | } |
| 75 | 72 | ||
| 76 | @include bem.elem("header") { | 73 | @include bem.elem('header') { |
| 77 | &:link, | 74 | &:link, |
| 78 | &:visited, | 75 | &:visited, |
| 79 | &:enabled { | 76 | &:enabled { |
| @@ -81,14 +78,14 @@ | |||
| 81 | } | 78 | } |
| 82 | } | 79 | } |
| 83 | 80 | ||
| 84 | @include bem.elem("separator") { | 81 | @include bem.elem('separator') { |
| 85 | block-size: props.get(vars.$separator); | 82 | block-size: props.get(vars.$separator); |
| 86 | } | 83 | } |
| 87 | 84 | ||
| 88 | @include bem.elem("icon-slot") { | 85 | @include bem.elem('icon-slot') { |
| 89 | display: flex; | 86 | display: flex; |
| 90 | justify-content: center; | 87 | justify-content: center; |
| 91 | inline-size: props.get(icon.$size); | 88 | inline-size: props.get(icon.$size); |
| 92 | } | 89 | } |
| 93 | } | 90 | } |
| 94 | } | 91 | } |
diff --git a/src/objects/_side-nav.vars.scss b/src/objects/_side-nav.vars.scss index 8abb0df..d6a7de1 100644 --- a/src/objects/_side-nav.vars.scss +++ b/src/objects/_side-nav.vars.scss | |||
| @@ -1,72 +1,28 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../core.vars" as core; | 3 | @use '../core.vars' as core; |
| 4 | 4 | ||
| 5 | $spacing: props.def(--o-side-nav--spacing, props.get(core.$size--50)) !default; | 5 | $spacing: props.def(--o-side-nav--spacing, props.get(core.$size--50)) !default; |
| 6 | $header--font-size: props.def( | 6 | $header--font-size: props.def(--o-side-nav--header--font-size, props.get(core.$font-size--50)) !default; |
| 7 | --o-side-nav--header--font-size, | 7 | $separator: props.def(--o-side-nav--separator, props.get(core.$size--200)) !default; |
| 8 | props.get(core.$font-size--50) | ||
| 9 | ) !default; | ||
| 10 | $separator: props.def(--o-side-nav--separator, props.get(core.$size--200)) !default; | ||
| 11 | 8 | ||
| 12 | $item--pad-i: props.def(--o-side-nav--item--pad-i, props.get(core.$size--150)) !default; | 9 | $item--pad-i: props.def(--o-side-nav--item--pad-i, props.get(core.$size--150)) !default; |
| 13 | $item--pad-b: props.def(--o-side-nav--item--pad-b, props.get(core.$size--75)) !default; | 10 | $item--pad-b: props.def(--o-side-nav--item--pad-b, props.get(core.$size--75)) !default; |
| 14 | $item--rounding: props.def(--o-side-nav--item--rounding, props.get(core.$rounding--sm)) !default; | 11 | $item--rounding: props.def(--o-side-nav--item--rounding, props.get(core.$rounding--sm)) !default; |
| 15 | 12 | ||
| 16 | $item--key-focus--border-width: props.def( | 13 | $item--key-focus--border-width: props.def(--o-side-nav--item--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 17 | --o-side-nav--item--key-focus--border-width, | 14 | $item--key-focus--border-offset: props.def(--o-side-nav--item--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 18 | props.get(core.$key-focus--border-width) | 15 | $item--key-focus--outline-width: props.def(--o-side-nav--item--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; |
| 19 | ) !default; | ||
| 20 | $item--key-focus--border-offset: props.def( | ||
| 21 | --o-side-nav--item--key-focus--border-offset, | ||
| 22 | props.get(core.$key-focus--border-offset) | ||
| 23 | ) !default; | ||
| 24 | $item--key-focus--outline-width: props.def( | ||
| 25 | --o-side-nav--item--key-focus--outline-width, | ||
| 26 | props.get(core.$key-focus--outline-width) | ||
| 27 | ) !default; | ||
| 28 | 16 | ||
| 29 | $header--label-color: props.def( | 17 | $header--label-color: props.def(--o-side-nav--header--label-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 30 | --o-side-nav--header--label-color, | ||
| 31 | props.get(core.$theme, --text-mute-more), | ||
| 32 | "color" | ||
| 33 | ) !default; | ||
| 34 | 18 | ||
| 35 | $item--hover--bg-color: props.def( | 19 | $item--hover--bg-color: props.def(--o-side-nav--item--hover--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 36 | --o-side-nav--item--hover--bg-color, | 20 | $item--hover--label-color: props.def(--o-side-nav--item--hover--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 37 | props.get(core.$theme, --border-mute), | ||
| 38 | "color" | ||
| 39 | ) !default; | ||
| 40 | $item--hover--label-color: props.def( | ||
| 41 | --o-side-nav--item--hover--label-color, | ||
| 42 | props.get(core.$theme, --heading), | ||
| 43 | "color" | ||
| 44 | ) !default; | ||
| 45 | 21 | ||
| 46 | $item--active--bg-color: props.def( | 22 | $item--active--bg-color: props.def(--o-side-nav--item--active--bg-color, props.get(core.$theme, --border), 'color') !default; |
| 47 | --o-side-nav--item--active--bg-color, | 23 | $item--active--label-color: props.def(--o-side-nav--item--active--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 48 | props.get(core.$theme, --border), | ||
| 49 | "color" | ||
| 50 | ) !default; | ||
| 51 | $item--active--label-color: props.def( | ||
| 52 | --o-side-nav--item--active--label-color, | ||
| 53 | props.get(core.$theme, --heading), | ||
| 54 | "color" | ||
| 55 | ) !default; | ||
| 56 | 24 | ||
| 57 | $item--disabled--label-color: props.def( | 25 | $item--disabled--label-color: props.def(--o-side-nav--item--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 58 | --o-side-nav--item--disabled--label-color, | ||
| 59 | props.get(core.$theme, --text-disabled), | ||
| 60 | "color" | ||
| 61 | ) !default; | ||
| 62 | 26 | ||
| 63 | $item--key-focus--border-color: props.def( | 27 | $item--key-focus--border-color: props.def(--o-side-nav--item--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 64 | --o-side-nav--item--key-focus--border-color, | 28 | $item--key-focus--outline-color: props.def(--o-side-nav--item--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 65 | props.get(core.$theme, --focus, --border), | ||
| 66 | "color" | ||
| 67 | ) !default; | ||
| 68 | $item--key-focus--outline-color: props.def( | ||
| 69 | --o-side-nav--item--key-focus--outline-color, | ||
| 70 | props.get(core.$theme, --focus, --outline), | ||
| 71 | "color" | ||
| 72 | ) !default; | ||
diff --git a/src/objects/_status-indicator.scss b/src/objects/_status-indicator.scss index 8885929..fe8fe26 100644 --- a/src/objects/_status-indicator.scss +++ b/src/objects/_status-indicator.scss | |||
| @@ -1,22 +1,22 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:meta"; | 2 | @use 'sass:meta'; |
| 3 | @use "sass:string"; | 3 | @use 'sass:string'; |
| 4 | @use "pkg:iro-sass/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/props'; |
| 6 | @use "../props" as *; | 6 | @use '../props' as *; |
| 7 | 7 | ||
| 8 | @forward "status-indicator.vars"; | 8 | @forward 'status-indicator.vars'; |
| 9 | @use "status-indicator.vars" as vars; | 9 | @use 'status-indicator.vars' as vars; |
| 10 | 10 | ||
| 11 | @mixin styles { | 11 | @mixin styles { |
| 12 | @include materialize-at-root(meta.module-variables("vars")); | 12 | @include materialize-at-root(meta.module-variables('vars')); |
| 13 | 13 | ||
| 14 | @include bem.object("status-indicator") { | 14 | @include bem.object('status-indicator') { |
| 15 | display: inline-block; | 15 | display: inline-block; |
| 16 | inline-size: props.get(vars.$size); | 16 | inline-size: props.get(vars.$size); |
| 17 | block-size: props.get(vars.$size); | 17 | block-size: props.get(vars.$size); |
| 18 | background-color: props.get(vars.$default); | 18 | background-color: props.get(vars.$default); |
| 19 | border-radius: 10em; | 19 | border-radius: 10em; |
| 20 | 20 | ||
| 21 | @each $theme in map.keys(props.get(vars.$themes)) { | 21 | @each $theme in map.keys(props.get(vars.$themes)) { |
| 22 | @include bem.is(string.slice($theme, 3)) { | 22 | @include bem.is(string.slice($theme, 3)) { |
diff --git a/src/objects/_status-indicator.vars.scss b/src/objects/_status-indicator.vars.scss index 66a11e8..dfe628f 100644 --- a/src/objects/_status-indicator.vars.scss +++ b/src/objects/_status-indicator.vars.scss | |||
| @@ -1,32 +1,26 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../config"; | 3 | @use '../config'; |
| 4 | @use "../core.vars" as core; | 4 | @use '../core.vars' as core; |
| 5 | 5 | ||
| 6 | $size: props.def(--o-status-indicator--size, props.get(core.$size--125)) !default; | 6 | $size: props.def(--o-status-indicator--size, props.get(core.$size--125)) !default; |
| 7 | 7 | ||
| 8 | $default: props.def( | 8 | $default: props.def(--o-status-indicator--default, props.get(core.$theme, --border-strong), 'color') !default; |
| 9 | --o-status-indicator--default, | 9 | $primary: props.def(--o-status-indicator--primary, props.get(core.$theme, --text), 'color') !default; |
| 10 | props.get(core.$theme, --border-strong), | ||
| 11 | "color" | ||
| 12 | ) !default; | ||
| 13 | $primary: props.def( | ||
| 14 | --o-status-indicator--primary, | ||
| 15 | props.get(core.$theme, --text), | ||
| 16 | "color" | ||
| 17 | ) !default; | ||
| 18 | 10 | ||
| 19 | $themes-config: ( | 11 | $themes-config: ( |
| 20 | accent: --accent, | 12 | accent: --accent, |
| 21 | positive: --positive, | 13 | positive: --positive, |
| 22 | negative: --negative, | 14 | negative: --negative, |
| 23 | warning: --warning, | 15 | warning: --warning, |
| 24 | ) !default; | 16 | ) !default; |
| 25 | 17 | ||
| 26 | $themes: props.def(--o-status-indicator, (), "color"); | 18 | $themes: props.def(--o-status-indicator, (), 'color'); |
| 27 | 19 | ||
| 28 | @each $theme, $key in $themes-config { | 20 | @each $theme, $key in $themes-config { |
| 29 | @if $theme != --base { | 21 | @if $theme != --base { |
| 30 | $themes: props.merge($themes, (--#{$theme}: props.get(core.$theme, $key, --700))); | 22 | $themes: props.merge($themes, ( |
| 23 | --#{$theme}: props.get(core.$theme, $key, --700), | ||
| 24 | )); | ||
| 31 | } | 25 | } |
| 32 | } | 26 | } |
diff --git a/src/objects/_switch.scss b/src/objects/_switch.scss index c1f7411..0ef95e6 100644 --- a/src/objects/_switch.scss +++ b/src/objects/_switch.scss | |||
| @@ -1,79 +1,73 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | @use "../core.vars" as core; | 5 | @use '../core.vars' as core; |
| 6 | 6 | ||
| 7 | @forward "switch.vars"; | 7 | @forward 'switch.vars'; |
| 8 | @use "switch.vars" as vars; | 8 | @use 'switch.vars' as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables("vars")); | 11 | @include materialize-at-root(meta.module-variables('vars')); |
| 12 | 12 | ||
| 13 | @include bem.object("switch") { | 13 | @include bem.object('switch') { |
| 14 | position: relative; | 14 | position: relative; |
| 15 | display: inline-block; | 15 | display: inline-block; |
| 16 | padding-block: props.get(vars.$pad-b); | 16 | padding-block: props.get(vars.$pad-b); |
| 17 | padding-inline: props.get(vars.$pad-i); | 17 | padding-inline: props.get(vars.$pad-i); |
| 18 | margin-inline: calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) | 18 | margin-inline: |
| 19 | calc( | 19 | calc(-1 * props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)) |
| 20 | props.get(vars.$spacing-sibling) - props.get(vars.$pad-i) - props.get( | 20 | calc(props.get(vars.$spacing-sibling) - props.get(vars.$pad-i) - props.get(vars.$key-focus--border-offset)); |
| 21 | vars.$key-focus--border-offset | ||
| 22 | ) | ||
| 23 | ); | ||
| 24 | 21 | ||
| 25 | @include bem.elem("indicator") { | 22 | @include bem.elem('indicator') { |
| 26 | display: inline-block; | 23 | display: inline-block; |
| 27 | flex: 0 0 auto; | 24 | flex: 0 0 auto; |
| 28 | inline-size: props.get(vars.$inline-size); | 25 | inline-size: props.get(vars.$inline-size); |
| 29 | block-size: props.get(vars.$block-size); | 26 | block-size: props.get(vars.$block-size); |
| 30 | margin-block-start: calc( | 27 | margin-block-start: calc(.5em * props.get(core.$font--standard--line-height) - .5 * props.get(vars.$block-size) - props.get(vars.$key-focus--border-offset)); |
| 31 | 0.5em * props.get(core.$font--standard--line-height) - 0.5 * | 28 | vertical-align: top; |
| 32 | props.get(vars.$block-size) - props.get(vars.$key-focus--border-offset) | 29 | background-color: props.get(vars.$track-bg-color); |
| 33 | ); | 30 | background-clip: padding-box; |
| 34 | vertical-align: top; | 31 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 35 | background-color: props.get(vars.$track-bg-color); | 32 | border-radius: 2em; |
| 36 | background-clip: padding-box; | 33 | transition: background-color .2s ease; |
| 37 | border: props.get(vars.$key-focus--border-offset) solid transparent; | ||
| 38 | border-radius: 2em; | ||
| 39 | transition: background-color 0.2s ease; | ||
| 40 | 34 | ||
| 41 | &::after { | 35 | &::after { |
| 42 | display: block; | 36 | display: block; |
| 43 | inline-size: calc(props.get(vars.$block-size) - 2 * props.get(vars.$border-width)); | 37 | inline-size: calc(props.get(vars.$block-size) - 2 * props.get(vars.$border-width)); |
| 44 | block-size: calc(props.get(vars.$block-size) - 2 * props.get(vars.$border-width)); | 38 | block-size: calc(props.get(vars.$block-size) - 2 * props.get(vars.$border-width)); |
| 45 | content: ""; | 39 | content: ''; |
| 46 | background-color: props.get(vars.$handle-bg-color); | 40 | background-color: props.get(vars.$handle-bg-color); |
| 47 | border: props.get(vars.$border-width) solid props.get(vars.$handle-border-color); | 41 | border: props.get(vars.$border-width) solid props.get(vars.$handle-border-color); |
| 48 | border-radius: props.get(vars.$inline-size); | 42 | border-radius: props.get(vars.$inline-size); |
| 49 | transition: transform 0.2s ease; | 43 | transition: transform .2s ease; |
| 50 | } | 44 | } |
| 51 | } | 45 | } |
| 52 | 46 | ||
| 53 | @include bem.elem("label") { | 47 | @include bem.elem('label') { |
| 54 | margin-inline-start: props.get(vars.$label-gap); | 48 | margin-inline-start: props.get(vars.$label-gap); |
| 55 | } | 49 | } |
| 56 | 50 | ||
| 57 | @include bem.elem("native") { | 51 | @include bem.elem('native') { |
| 58 | position: absolute; | 52 | position: absolute; |
| 59 | inset-block-start: 0; | 53 | inset-block-start: 0; |
| 60 | inset-inline-start: 0; | 54 | inset-inline-start: 0; |
| 61 | z-index: -1; | 55 | z-index: -1; |
| 62 | inline-size: 100%; | 56 | inline-size: 100%; |
| 63 | block-size: 100%; | 57 | block-size: 100%; |
| 64 | padding: 0; | 58 | padding: 0; |
| 65 | margin: 0; | 59 | margin: 0; |
| 66 | overflow: hidden; | 60 | overflow: hidden; |
| 67 | appearance: none; | 61 | appearance: none; |
| 68 | border-radius: props.get(vars.$rounding); | 62 | border-radius: props.get(vars.$rounding); |
| 69 | 63 | ||
| 70 | &:hover, | 64 | &:hover, |
| 71 | &:focus-visible { | 65 | &:focus-visible { |
| 72 | @include bem.sibling-elem("label") { | 66 | @include bem.sibling-elem('label') { |
| 73 | color: props.get(vars.$hover--label-color); | 67 | color: props.get(vars.$hover--label-color); |
| 74 | } | 68 | } |
| 75 | 69 | ||
| 76 | @include bem.sibling-elem("indicator") { | 70 | @include bem.sibling-elem('indicator') { |
| 77 | &::after { | 71 | &::after { |
| 78 | border-color: props.get(vars.$hover--handle-border-color); | 72 | border-color: props.get(vars.$hover--handle-border-color); |
| 79 | } | 73 | } |
| @@ -81,23 +75,18 @@ | |||
| 81 | } | 75 | } |
| 82 | 76 | ||
| 83 | &:checked { | 77 | &:checked { |
| 84 | @include bem.sibling-elem("indicator") { | 78 | @include bem.sibling-elem('indicator') { |
| 85 | background-color: props.get(vars.$handle-border-color); | 79 | background-color: props.get(vars.$handle-border-color); |
| 86 | 80 | ||
| 87 | &::after { | 81 | &::after { |
| 88 | border-color: props.get(vars.$handle-border-color); | 82 | border-color: props.get(vars.$handle-border-color); |
| 89 | transform: translate( | 83 | transform: translate(calc(props.get(vars.$inline-size) - props.get(vars.$block-size) + .5px), 0); |
| 90 | calc( | ||
| 91 | props.get(vars.$inline-size) - props.get(vars.$block-size) + 0.5px | ||
| 92 | ), | ||
| 93 | 0 | ||
| 94 | ); | ||
| 95 | } | 84 | } |
| 96 | } | 85 | } |
| 97 | 86 | ||
| 98 | &:hover, | 87 | &:hover, |
| 99 | &:focus-visible { | 88 | &:focus-visible { |
| 100 | @include bem.sibling-elem("indicator") { | 89 | @include bem.sibling-elem('indicator') { |
| 101 | background-color: props.get(vars.$hover--handle-border-color); | 90 | background-color: props.get(vars.$hover--handle-border-color); |
| 102 | 91 | ||
| 103 | &::after { | 92 | &::after { |
| @@ -108,21 +97,21 @@ | |||
| 108 | } | 97 | } |
| 109 | 98 | ||
| 110 | &:disabled { | 99 | &:disabled { |
| 111 | @include bem.sibling-elem("label") { | 100 | @include bem.sibling-elem('label') { |
| 112 | color: props.get(vars.$disabled--label-color); | 101 | color: props.get(vars.$disabled--label-color); |
| 113 | } | 102 | } |
| 114 | 103 | ||
| 115 | @include bem.sibling-elem("indicator") { | 104 | @include bem.sibling-elem('indicator') { |
| 116 | background-color: props.get(vars.$disabled--track-bg-color); | 105 | background-color: props.get(vars.$disabled--track-bg-color); |
| 117 | 106 | ||
| 118 | &::after { | 107 | &::after { |
| 119 | background-color: props.get(vars.$disabled--handle-bg-color); | 108 | background-color: props.get(vars.$disabled--handle-bg-color); |
| 120 | border-color: props.get(vars.$disabled--handle-border-color); | 109 | border-color: props.get(vars.$disabled--handle-border-color); |
| 121 | } | 110 | } |
| 122 | } | 111 | } |
| 123 | 112 | ||
| 124 | &:checked { | 113 | &:checked { |
| 125 | @include bem.sibling-elem("indicator") { | 114 | @include bem.sibling-elem('indicator') { |
| 126 | background-color: props.get(vars.$disabled--handle-border-color); | 115 | background-color: props.get(vars.$disabled--handle-border-color); |
| 127 | 116 | ||
| 128 | &::after { | 117 | &::after { |
| @@ -133,33 +122,32 @@ | |||
| 133 | } | 122 | } |
| 134 | 123 | ||
| 135 | &:focus-visible { | 124 | &:focus-visible { |
| 136 | @include bem.sibling-elem("label") { | 125 | @include bem.sibling-elem('label') { |
| 137 | color: props.get(vars.$key-focus--label-color); | 126 | color: props.get(vars.$key-focus--label-color); |
| 138 | } | 127 | } |
| 139 | 128 | ||
| 140 | @include bem.sibling-elem("indicator") { | 129 | @include bem.sibling-elem('indicator') { |
| 141 | outline: props.get(vars.$key-focus--border-color) solid | 130 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 142 | props.get(vars.$key-focus--border-width); | 131 | box-shadow: |
| 143 | box-shadow: 0 0 0 | 132 | 0 |
| 144 | calc( | 133 | 0 |
| 145 | props.get(vars.$key-focus--border-width) + | 134 | 0 |
| 146 | props.get(vars.$key-focus--outline-width) | 135 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 147 | ) | ||
| 148 | props.get(vars.$key-focus--outline-color); | 136 | props.get(vars.$key-focus--outline-color); |
| 149 | } | 137 | } |
| 150 | } | 138 | } |
| 151 | } | 139 | } |
| 152 | 140 | ||
| 153 | @include bem.modifier("standalone") { | 141 | @include bem.modifier('standalone') { |
| 154 | @include bem.elem("indicator") { | 142 | @include bem.elem('indicator') { |
| 155 | margin-block-start: 0; | 143 | margin-block-start: 0; |
| 156 | } | 144 | } |
| 157 | } | 145 | } |
| 158 | 146 | ||
| 159 | @include bem.modifier("accent") { | 147 | @include bem.modifier('accent') { |
| 160 | @include bem.elem("native") { | 148 | @include bem.elem('native') { |
| 161 | &:checked { | 149 | &:checked { |
| 162 | @include bem.sibling-elem("indicator") { | 150 | @include bem.sibling-elem('indicator') { |
| 163 | background-color: props.get(vars.$accent--handle-border-color); | 151 | background-color: props.get(vars.$accent--handle-border-color); |
| 164 | 152 | ||
| 165 | &::after { | 153 | &::after { |
| @@ -169,7 +157,7 @@ | |||
| 169 | 157 | ||
| 170 | &:hover, | 158 | &:hover, |
| 171 | &:focus-visible { | 159 | &:focus-visible { |
| 172 | @include bem.sibling-elem("indicator") { | 160 | @include bem.sibling-elem('indicator') { |
| 173 | background-color: props.get(vars.$accent--hover--handle-border-color); | 161 | background-color: props.get(vars.$accent--hover--handle-border-color); |
| 174 | 162 | ||
| 175 | &::after { | 163 | &::after { |
| @@ -180,12 +168,12 @@ | |||
| 180 | } | 168 | } |
| 181 | 169 | ||
| 182 | &:disabled { | 170 | &:disabled { |
| 183 | @include bem.sibling-elem("label") { | 171 | @include bem.sibling-elem('label') { |
| 184 | color: props.get(vars.$disabled--label-color); | 172 | color: props.get(vars.$disabled--label-color); |
| 185 | } | 173 | } |
| 186 | 174 | ||
| 187 | &:checked { | 175 | &:checked { |
| 188 | @include bem.sibling-elem("indicator") { | 176 | @include bem.sibling-elem('indicator') { |
| 189 | background-color: props.get(vars.$disabled--handle-border-color); | 177 | background-color: props.get(vars.$disabled--handle-border-color); |
| 190 | 178 | ||
| 191 | &::after { | 179 | &::after { |
diff --git a/src/objects/_switch.vars.scss b/src/objects/_switch.vars.scss index 6f56ec7..761cacd 100644 --- a/src/objects/_switch.vars.scss +++ b/src/objects/_switch.vars.scss | |||
| @@ -1,101 +1,36 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../core.vars" as core; | 3 | @use '../core.vars' as core; |
| 4 | 4 | ||
| 5 | $inline-size: props.def(--o-switch--inline-size, props.get(core.$size--350)) !default; | 5 | $inline-size: props.def(--o-switch--inline-size, props.get(core.$size--350)) !default; |
| 6 | $block-size: props.def(--o-switch--block-size, props.get(core.$size--200)) !default; | 6 | $block-size: props.def(--o-switch--block-size, props.get(core.$size--200)) !default; |
| 7 | $label-gap: props.def(--o-switch--label-gap, props.get(core.$size--125)) !default; | 7 | $label-gap: props.def(--o-switch--label-gap, props.get(core.$size--125)) !default; |
| 8 | $border-width: props.def(--o-switch--border-width, props.get(core.$border-width--medium)) !default; | 8 | $border-width: props.def(--o-switch--border-width, props.get(core.$border-width--medium)) !default; |
| 9 | $pad-i: props.def(--o-switch--pad-i, props.get(core.$size--65)) !default; | 9 | $pad-i: props.def(--o-switch--pad-i, props.get(core.$size--65)) !default; |
| 10 | $pad-b: props.def(--o-switch--pad-b, props.get(core.$size--65)) !default; | 10 | $pad-b: props.def(--o-switch--pad-b, props.get(core.$size--65)) !default; |
| 11 | $rounding: props.def(--o-switch--rounding, props.get(core.$rounding--sm)) !default; | 11 | $rounding: props.def(--o-switch--rounding, props.get(core.$rounding--sm)) !default; |
| 12 | $spacing-sibling: props.def(--o-switch--spacing-sibling, props.get(core.$size--300)) !default; | 12 | $spacing-sibling: props.def(--o-switch--spacing-sibling, props.get(core.$size--300)) !default; |
| 13 | 13 | ||
| 14 | $key-focus--border-width: props.def( | 14 | $key-focus--border-width: props.def(--o-switch--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 15 | --o-switch--key-focus--border-width, | 15 | $key-focus--border-offset: props.def(--o-switch--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 16 | props.get(core.$key-focus--border-width) | 16 | $key-focus--outline-width: props.def(--o-switch--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; |
| 17 | ) !default; | ||
| 18 | $key-focus--border-offset: props.def( | ||
| 19 | --o-switch--key-focus--border-offset, | ||
| 20 | props.get(core.$key-focus--border-offset) | ||
| 21 | ) !default; | ||
| 22 | $key-focus--outline-width: props.def( | ||
| 23 | --o-switch--key-focus--outline-width, | ||
| 24 | props.get(core.$key-focus--outline-width) | ||
| 25 | ) !default; | ||
| 26 | 17 | ||
| 27 | $track-bg-color: props.def( | 18 | $track-bg-color: props.def(--o-switch--track-bg-color, props.get(core.$theme, --border), 'color') !default; |
| 28 | --o-switch--track-bg-color, | 19 | $handle-border-color: props.def(--o-switch--handle-border-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 29 | props.get(core.$theme, --border), | 20 | $handle-bg-color: props.def(--o-switch--handle-bg-color, props.get(core.$theme, --base, --50), 'color') !default; |
| 30 | "color" | ||
| 31 | ) !default; | ||
| 32 | $handle-border-color: props.def( | ||
| 33 | --o-switch--handle-border-color, | ||
| 34 | props.get(core.$theme, --text-mute-more), | ||
| 35 | "color" | ||
| 36 | ) !default; | ||
| 37 | $handle-bg-color: props.def( | ||
| 38 | --o-switch--handle-bg-color, | ||
| 39 | props.get(core.$theme, --base, --50), | ||
| 40 | "color" | ||
| 41 | ) !default; | ||
| 42 | 21 | ||
| 43 | $hover--label-color: props.def( | 22 | $hover--label-color: props.def(--o-switch--hover--label-color, props.get(core.$theme, --heading), 'color') !default; |
| 44 | --o-switch--hover--label-color, | 23 | $hover--handle-border-color: props.def(--o-switch--hover--handle-border-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 45 | props.get(core.$theme, --heading), | ||
| 46 | "color" | ||
| 47 | ) !default; | ||
| 48 | $hover--handle-border-color: props.def( | ||
| 49 | --o-switch--hover--handle-border-color, | ||
| 50 | props.get(core.$theme, --text-mute), | ||
| 51 | "color" | ||
| 52 | ) !default; | ||
| 53 | 24 | ||
| 54 | $accent--handle-border-color: props.def( | 25 | $accent--handle-border-color: props.def(--o-switch--accent--handle-border-color, props.get(core.$theme, --accent, --900), 'color') !default; |
| 55 | --o-switch--accent--handle-border-color, | ||
| 56 | props.get(core.$theme, --accent, --900), | ||
| 57 | "color" | ||
| 58 | ) !default; | ||
| 59 | 26 | ||
| 60 | $accent--hover--handle-border-color: props.def( | 27 | $accent--hover--handle-border-color: props.def(--o-switch--accent--hover--handle-border-color, props.get(core.$theme, --accent, --1000), 'color') !default; |
| 61 | --o-switch--accent--hover--handle-border-color, | ||
| 62 | props.get(core.$theme, --accent, --1000), | ||
| 63 | "color" | ||
| 64 | ) !default; | ||
| 65 | 28 | ||
| 66 | $disabled--label-color: props.def( | 29 | $disabled--label-color: props.def(--o-switch--disabled--label-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 67 | --o-switch--disabled--label-color, | 30 | $disabled--track-bg-color: props.def(--o-switch--disabled--track-bg-color, props.get(core.$theme, --border), 'color') !default; |
| 68 | props.get(core.$theme, --text-disabled), | 31 | $disabled--handle-border-color: props.def(--o-switch--disabled--handle-border-color, props.get(core.$theme, --border-strong), 'color') !default; |
| 69 | "color" | 32 | $disabled--handle-bg-color: props.def(--o-switch--disabled--handle-bg-color, props.get(core.$theme, --base, --50), 'color') !default; |
| 70 | ) !default; | ||
| 71 | $disabled--track-bg-color: props.def( | ||
| 72 | --o-switch--disabled--track-bg-color, | ||
| 73 | props.get(core.$theme, --border), | ||
| 74 | "color" | ||
| 75 | ) !default; | ||
| 76 | $disabled--handle-border-color: props.def( | ||
| 77 | --o-switch--disabled--handle-border-color, | ||
| 78 | props.get(core.$theme, --border-strong), | ||
| 79 | "color" | ||
| 80 | ) !default; | ||
| 81 | $disabled--handle-bg-color: props.def( | ||
| 82 | --o-switch--disabled--handle-bg-color, | ||
| 83 | props.get(core.$theme, --base, --50), | ||
| 84 | "color" | ||
| 85 | ) !default; | ||
| 86 | 33 | ||
| 87 | $key-focus--label-color: props.def( | 34 | $key-focus--label-color: props.def(--o-switch--key-focus--label-color, props.get(core.$theme, --focus, --text), 'color') !default; |
| 88 | --o-switch--key-focus--label-color, | 35 | $key-focus--border-color: props.def(--o-switch--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 89 | props.get(core.$theme, --focus, --text), | 36 | $key-focus--outline-color: props.def(--o-switch--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 90 | "color" | ||
| 91 | ) !default; | ||
| 92 | $key-focus--border-color: props.def( | ||
| 93 | --o-switch--key-focus--border-color, | ||
| 94 | props.get(core.$theme, --focus, --border), | ||
| 95 | "color" | ||
| 96 | ) !default; | ||
| 97 | $key-focus--outline-color: props.def( | ||
| 98 | --o-switch--key-focus--outline-color, | ||
| 99 | props.get(core.$theme, --focus, --outline), | ||
| 100 | "color" | ||
| 101 | ) !default; | ||
diff --git a/src/objects/_tabbar.scss b/src/objects/_tabbar.scss index 02519f9..d43208f 100644 --- a/src/objects/_tabbar.scss +++ b/src/objects/_tabbar.scss | |||
| @@ -1,77 +1,75 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:meta"; | 2 | @use 'sass:meta'; |
| 3 | @use "sass:string"; | 3 | @use 'sass:string'; |
| 4 | @use "pkg:iro-sass/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/props'; |
| 6 | @use "../props" as *; | 6 | @use '../props' as *; |
| 7 | 7 | ||
| 8 | @forward "tabbar.vars"; | 8 | @forward 'tabbar.vars'; |
| 9 | @use "tabbar.vars" as vars; | 9 | @use 'tabbar.vars' as vars; |
| 10 | 10 | ||
| 11 | @mixin styles { | 11 | @mixin styles { |
| 12 | @include materialize-at-root(meta.module-variables("vars")); | 12 | @include materialize-at-root(meta.module-variables('vars')); |
| 13 | 13 | ||
| 14 | @include bem.object("tabbar") { | 14 | @include bem.object('tabbar') { |
| 15 | min-inline-size: 0; | 15 | min-inline-size: 0; |
| 16 | block-size: props.get(vars.$block-size); | 16 | block-size: props.get(vars.$block-size); |
| 17 | overflow: hidden; | 17 | overflow: hidden; |
| 18 | 18 | ||
| 19 | &::after { | 19 | &::after { |
| 20 | display: block; | 20 | display: block; |
| 21 | block-size: props.get(vars.$border--width); | 21 | block-size: props.get(vars.$border--width); |
| 22 | margin-block-start: calc(-1 * props.get(vars.$border--width)); | 22 | margin-block-start: calc(-1 * props.get(vars.$border--width)); |
| 23 | content: ""; | 23 | content: ''; |
| 24 | background-color: props.get(vars.$railing--bg-color); | 24 | background-color: props.get(vars.$railing--bg-color); |
| 25 | } | 25 | } |
| 26 | 26 | ||
| 27 | @include bem.elem("tabs") { | 27 | @include bem.elem('tabs') { |
| 28 | display: flex; | 28 | display: flex; |
| 29 | block-size: 100%; | 29 | block-size: 100%; |
| 30 | overflow-inline: auto; | 30 | overflow-inline: auto; |
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | @include bem.modifier("quiet") { | 33 | @include bem.modifier('quiet') { |
| 34 | box-shadow: none; | 34 | box-shadow: none; |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | @include bem.modifier("adapt") { | 37 | @include bem.modifier('adapt') { |
| 38 | block-size: 100%; | 38 | block-size: 100%; |
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | @include bem.modifier("snap") { | 41 | @include bem.modifier('snap') { |
| 42 | scroll-snap-align: start; | 42 | scroll-snap-align: start; |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | @include bem.elem("tab") { | 45 | @include bem.elem('tab') { |
| 46 | position: relative; | 46 | position: relative; |
| 47 | display: flex; | 47 | display: flex; |
| 48 | align-items: center; | 48 | align-items: center; |
| 49 | padding-inline: calc(0.5 * props.get(vars.$spacing)); | 49 | padding-inline: calc(.5 * props.get(vars.$spacing)); |
| 50 | margin-inline: calc(-0.5 * props.get(vars.$spacing)); | 50 | margin-inline: calc(-.5 * props.get(vars.$spacing)); |
| 51 | color: props.get(vars.$tab--text-color); | 51 | color: props.get(vars.$tab--text-color); |
| 52 | white-space: nowrap; | 52 | white-space: nowrap; |
| 53 | 53 | ||
| 54 | &::before { | 54 | &::before { |
| 55 | position: absolute; | 55 | position: absolute; |
| 56 | inset-block-start: 50%; | 56 | inset-block-start: 50%; |
| 57 | inset-inline: calc( | 57 | inset-inline: calc(-1 * props.get(vars.$tab--pad-i) + .5 * props.get(vars.$spacing)); |
| 58 | -1 * props.get(vars.$tab--pad-i) + 0.5 * props.get(vars.$spacing) | 58 | z-index: -10; |
| 59 | ); | 59 | block-size: 1.5em; |
| 60 | z-index: -10; | 60 | content: ''; |
| 61 | block-size: 1.5em; | 61 | border-radius: props.get(vars.$rounding); |
| 62 | content: ""; | 62 | transform: translateY(-50%); |
| 63 | border-radius: props.get(vars.$rounding); | ||
| 64 | transform: translateY(-50%); | ||
| 65 | } | 63 | } |
| 66 | 64 | ||
| 67 | &::after { | 65 | &::after { |
| 68 | position: absolute; | 66 | position: absolute; |
| 69 | inset-block-end: 0; | 67 | inset-block-end: 0; |
| 70 | inset-inline: calc(0.5 * props.get(vars.$spacing)); | 68 | inset-inline: calc(.5 * props.get(vars.$spacing)); |
| 71 | z-index: 10; | 69 | z-index: 10; |
| 72 | display: none; | 70 | display: none; |
| 73 | block-size: props.get(vars.$indicator--width); | 71 | block-size: props.get(vars.$indicator--width); |
| 74 | content: ""; | 72 | content: ''; |
| 75 | background-color: props.get(vars.$tab--selected--text-color); | 73 | background-color: props.get(vars.$tab--selected--text-color); |
| 76 | } | 74 | } |
| 77 | 75 | ||
| @@ -85,25 +83,21 @@ | |||
| 85 | 83 | ||
| 86 | &:focus-visible { | 84 | &:focus-visible { |
| 87 | &::before { | 85 | &::before { |
| 88 | color: props.get(vars.$key-focus--text-color); | 86 | color: props.get(vars.$key-focus--text-color); |
| 89 | text-decoration: none; | 87 | text-decoration: none; |
| 90 | outline: props.get(vars.$key-focus--border-color) solid | 88 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 91 | props.get(vars.$key-focus--border-width); | ||
| 92 | box-shadow: 0 0 0 | 89 | box-shadow: 0 0 0 |
| 93 | calc( | 90 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 94 | props.get(vars.$key-focus--border-width) + | ||
| 95 | props.get(vars.$key-focus--outline-width) | ||
| 96 | ) | ||
| 97 | props.get(vars.$key-focus--outline-color); | 91 | props.get(vars.$key-focus--outline-color); |
| 98 | } | 92 | } |
| 99 | } | 93 | } |
| 100 | } | 94 | } |
| 101 | 95 | ||
| 102 | @include bem.next-twin-elem { | 96 | @include bem.next-twin-elem { |
| 103 | margin-inline-start: calc(0.5 * props.get(vars.$spacing)); | 97 | margin-inline-start: calc(.5 * props.get(vars.$spacing)); |
| 104 | } | 98 | } |
| 105 | 99 | ||
| 106 | @include bem.is("selected") { | 100 | @include bem.is('selected') { |
| 107 | color: props.get(vars.$tab--selected--text-color); | 101 | color: props.get(vars.$tab--selected--text-color); |
| 108 | 102 | ||
| 109 | &::after { | 103 | &::after { |
| @@ -112,13 +106,13 @@ | |||
| 112 | } | 106 | } |
| 113 | } | 107 | } |
| 114 | 108 | ||
| 115 | @include bem.modifier("accent") { | 109 | @include bem.modifier('accent') { |
| 116 | @include bem.elem("tab") { | 110 | @include bem.elem('tab') { |
| 117 | &::after { | 111 | &::after { |
| 118 | background-color: props.get(vars.$tab--accent--text-color); | 112 | background-color: props.get(vars.$tab--accent--text-color); |
| 119 | } | 113 | } |
| 120 | 114 | ||
| 121 | @include bem.is("selected") { | 115 | @include bem.is('selected') { |
| 122 | color: props.get(vars.$tab--accent--text-color); | 116 | color: props.get(vars.$tab--accent--text-color); |
| 123 | } | 117 | } |
| 124 | } | 118 | } |
diff --git a/src/objects/_tabbar.vars.scss b/src/objects/_tabbar.vars.scss index d26f302..d9cc53e 100644 --- a/src/objects/_tabbar.vars.scss +++ b/src/objects/_tabbar.vars.scss | |||
| @@ -1,66 +1,26 @@ | |||
| 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-tabbar--block-size, props.get(core.$size--700)) !default; | 6 | $block-size: props.def(--o-tabbar--block-size, props.get(core.$size--700)) !default; |
| 7 | $rounding: props.def(--o-tabbar--rounding, props.get(core.$rounding--sm)) !default; | 7 | $rounding: props.def(--o-tabbar--rounding, props.get(core.$rounding--sm)) !default; |
| 8 | $spacing: props.def(--o-tabbar--spacing, props.get(core.$size--400)) !default; | 8 | $spacing: props.def(--o-tabbar--spacing, props.get(core.$size--400)) !default; |
| 9 | $tab--pad-i: props.def(--o-tabbar--tab--pad-i, props.get(core.$size--50)) !default; | 9 | $tab--pad-i: props.def(--o-tabbar--tab--pad-i, props.get(core.$size--50)) !default; |
| 10 | 10 | ||
| 11 | $border--width: props.def(--o-tabbar--border--width, props.get(core.$border-width--thin)) !default; | 11 | $border--width: props.def(--o-tabbar--border--width, props.get(core.$border-width--thin)) !default; |
| 12 | $indicator--width: props.def( | 12 | $indicator--width: props.def(--o-tabbar--indicator--width, props.get(core.$border-width--medium)) !default; |
| 13 | --o-tabbar--indicator--width, | ||
| 14 | props.get(core.$border-width--medium) | ||
| 15 | ) !default; | ||
| 16 | 13 | ||
| 17 | $key-focus--border-width: props.def( | 14 | $key-focus--border-width: props.def(--o-tabbar--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 18 | --o-tabbar--key-focus--border-width, | 15 | $key-focus--border-offset: props.def(--o-tabbar--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 19 | props.get(core.$key-focus--border-width) | 16 | $key-focus--outline-width: props.def(--o-tabbar--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; |
| 20 | ) !default; | ||
| 21 | $key-focus--border-offset: props.def( | ||
| 22 | --o-tabbar--key-focus--border-offset, | ||
| 23 | props.get(core.$key-focus--border-offset) | ||
| 24 | ) !default; | ||
| 25 | $key-focus--outline-width: props.def( | ||
| 26 | --o-tabbar--key-focus--outline-width, | ||
| 27 | props.get(core.$key-focus--outline-width) | ||
| 28 | ) !default; | ||
| 29 | 17 | ||
| 30 | $tab--text-color: props.def( | 18 | $tab--text-color: props.def(--o-tabbar--tab--text-color, props.get(core.$theme, --text-mute), 'color') !default; |
| 31 | --o-tabbar--tab--text-color, | 19 | $tab--selected--text-color: props.def(--o-tabbar--tab--selected--text-color, props.get(core.$theme, --heading), 'color') !default; |
| 32 | props.get(core.$theme, --text-mute), | 20 | $tab--accent--text-color: props.def(--o-tabbar--tab--accent--text-color, props.get(core.$theme, --accent, --1100), 'color') !default; |
| 33 | "color" | ||
| 34 | ) !default; | ||
| 35 | $tab--selected--text-color: props.def( | ||
| 36 | --o-tabbar--tab--selected--text-color, | ||
| 37 | props.get(core.$theme, --heading), | ||
| 38 | "color" | ||
| 39 | ) !default; | ||
| 40 | $tab--accent--text-color: props.def( | ||
| 41 | --o-tabbar--tab--accent--text-color, | ||
| 42 | props.get(core.$theme, --accent, --1100), | ||
| 43 | "color" | ||
| 44 | ) !default; | ||
| 45 | 21 | ||
| 46 | $railing--bg-color: props.def( | 22 | $railing--bg-color: props.def(--o-tabbar--railing--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 47 | --o-tabbar--railing--bg-color, | ||
| 48 | props.get(core.$theme, --border-mute), | ||
| 49 | "color" | ||
| 50 | ) !default; | ||
| 51 | 23 | ||
| 52 | $key-focus--text-color: props.def( | 24 | $key-focus--text-color: props.def(--o-tabbar--key-focus--text-color, props.get(core.$theme, --focus, --text), 'color') !default; |
| 53 | --o-tabbar--key-focus--text-color, | 25 | $key-focus--border-color: props.def(--o-tabbar--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 54 | props.get(core.$theme, --focus, --text), | 26 | $key-focus--outline-color: props.def(--o-tabbar--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 55 | "color" | ||
| 56 | ) !default; | ||
| 57 | $key-focus--border-color: props.def( | ||
| 58 | --o-tabbar--key-focus--border-color, | ||
| 59 | props.get(core.$theme, --focus, --border), | ||
| 60 | "color" | ||
| 61 | ) !default; | ||
| 62 | $key-focus--outline-color: props.def( | ||
| 63 | --o-tabbar--key-focus--outline-color, | ||
| 64 | props.get(core.$theme, --focus, --outline), | ||
| 65 | "color" | ||
| 66 | ) !default; | ||
diff --git a/src/objects/_table.scss b/src/objects/_table.scss index a985f78..effa61f 100644 --- a/src/objects/_table.scss +++ b/src/objects/_table.scss | |||
| @@ -1,57 +1,57 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "table.vars"; | 6 | @forward 'table.vars'; |
| 7 | @use "table.vars" as vars; | 7 | @use 'table.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables("vars")); | 10 | @include materialize-at-root(meta.module-variables('vars')); |
| 11 | 11 | ||
| 12 | @include bem.object("table") { | 12 | @include bem.object('table') { |
| 13 | border-spacing: 0; | 13 | border-spacing: 0; |
| 14 | border-collapse: separate; | 14 | border-collapse: separate; |
| 15 | 15 | ||
| 16 | @include bem.modifier("fixed") { | 16 | @include bem.modifier('fixed') { |
| 17 | table-layout: fixed; | 17 | table-layout: fixed; |
| 18 | } | 18 | } |
| 19 | 19 | ||
| 20 | @include bem.elem("head-cell") { | 20 | @include bem.elem('head-cell') { |
| 21 | padding-block: props.get(vars.$pad-b); | 21 | padding-block: props.get(vars.$pad-b); |
| 22 | padding-inline: props.get(vars.$pad-i); | 22 | padding-inline: props.get(vars.$pad-i); |
| 23 | font-family: props.get(vars.$heading--font-family); | 23 | font-family: props.get(vars.$heading--font-family); |
| 24 | font-size: props.get(vars.$heading--font-size); | 24 | font-size: props.get(vars.$heading--font-size); |
| 25 | font-weight: props.get(vars.$heading--font-weight); | 25 | font-weight: props.get(vars.$heading--font-weight); |
| 26 | color: props.get(vars.$heading-color); | 26 | color: props.get(vars.$heading-color); |
| 27 | text-align: start; | 27 | text-align: start; |
| 28 | text-transform: props.get(vars.$heading--text-transform); | 28 | text-transform: props.get(vars.$heading--text-transform); |
| 29 | letter-spacing: props.get(vars.$heading--letter-spacing); | 29 | letter-spacing: props.get(vars.$heading--letter-spacing); |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | @include bem.elem("cell") { | 32 | @include bem.elem('cell') { |
| 33 | padding-block: props.get(vars.$pad-b); | 33 | padding-block: props.get(vars.$pad-b); |
| 34 | padding-inline: props.get(vars.$pad-i); | 34 | padding-inline: props.get(vars.$pad-i); |
| 35 | border-color: props.get(vars.$border-color); | 35 | border-color: props.get(vars.$border-color); |
| 36 | border-style: solid; | 36 | border-style: solid; |
| 37 | border-width: 0; | 37 | border-width: 0; |
| 38 | border-block-start-width: props.get(vars.$border-width); | 38 | border-block-start-width: props.get(vars.$border-width); |
| 39 | 39 | ||
| 40 | @include bem.modifier("divider") { | 40 | @include bem.modifier('divider') { |
| 41 | border-inline-end-width: props.get(vars.$border-width); | 41 | border-inline-end-width: props.get(vars.$border-width); |
| 42 | } | 42 | } |
| 43 | } | 43 | } |
| 44 | 44 | ||
| 45 | @include bem.elem("row") { | 45 | @include bem.elem('row') { |
| 46 | &:last-child { | 46 | &:last-child { |
| 47 | @include bem.elem("cell") { | 47 | @include bem.elem('cell') { |
| 48 | border-block-end-width: props.get(vars.$border-width); | 48 | border-block-end-width: props.get(vars.$border-width); |
| 49 | } | 49 | } |
| 50 | } | 50 | } |
| 51 | } | 51 | } |
| 52 | 52 | ||
| 53 | @include bem.modifier("flush") { | 53 | @include bem.modifier('flush') { |
| 54 | @include bem.elem("head-cell", "cell") { | 54 | @include bem.elem('head-cell', 'cell') { |
| 55 | &:first-child { | 55 | &:first-child { |
| 56 | padding-inline-start: 0; | 56 | padding-inline-start: 0; |
| 57 | } | 57 | } |
| @@ -62,8 +62,8 @@ | |||
| 62 | } | 62 | } |
| 63 | } | 63 | } |
| 64 | 64 | ||
| 65 | @include bem.modifier("box") { | 65 | @include bem.modifier('box') { |
| 66 | @include bem.elem("cell") { | 66 | @include bem.elem('cell') { |
| 67 | background-color: props.get(vars.$box--bg-color); | 67 | background-color: props.get(vars.$box--bg-color); |
| 68 | 68 | ||
| 69 | &:first-child { | 69 | &:first-child { |
| @@ -75,9 +75,9 @@ | |||
| 75 | } | 75 | } |
| 76 | } | 76 | } |
| 77 | 77 | ||
| 78 | @include bem.elem("row") { | 78 | @include bem.elem('row') { |
| 79 | &:first-child { | 79 | &:first-child { |
| 80 | @include bem.elem("cell") { | 80 | @include bem.elem('cell') { |
| 81 | &:first-child { | 81 | &:first-child { |
| 82 | border-start-start-radius: props.get(vars.$rounding); | 82 | border-start-start-radius: props.get(vars.$rounding); |
| 83 | } | 83 | } |
| @@ -89,7 +89,7 @@ | |||
| 89 | } | 89 | } |
| 90 | 90 | ||
| 91 | &:last-child { | 91 | &:last-child { |
| 92 | @include bem.elem("cell") { | 92 | @include bem.elem('cell') { |
| 93 | &:first-child { | 93 | &:first-child { |
| 94 | border-end-start-radius: props.get(vars.$rounding); | 94 | border-end-start-radius: props.get(vars.$rounding); |
| 95 | } | 95 | } |
| @@ -102,35 +102,35 @@ | |||
| 102 | } | 102 | } |
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | @include bem.modifier("interactive") { | 105 | @include bem.modifier('interactive') { |
| 106 | @include bem.elem("row") { | 106 | @include bem.elem('row') { |
| 107 | @include bem.elem("cell") { | 107 | @include bem.elem('cell') { |
| 108 | cursor: pointer; | 108 | cursor: pointer; |
| 109 | } | 109 | } |
| 110 | 110 | ||
| 111 | &:hover { | 111 | &:hover { |
| 112 | @include bem.elem("cell") { | 112 | @include bem.elem('cell') { |
| 113 | background-color: props.get(vars.$hover--bg-color); | 113 | background-color: props.get(vars.$hover--bg-color); |
| 114 | } | 114 | } |
| 115 | } | 115 | } |
| 116 | 116 | ||
| 117 | &:active { | 117 | &:active { |
| 118 | @include bem.elem("cell") { | 118 | @include bem.elem('cell') { |
| 119 | background-color: props.get(vars.$active--bg-color); | 119 | background-color: props.get(vars.$active--bg-color); |
| 120 | } | 120 | } |
| 121 | } | 121 | } |
| 122 | } | 122 | } |
| 123 | 123 | ||
| 124 | @include bem.modifier("box") { | 124 | @include bem.modifier('box') { |
| 125 | @include bem.elem("row") { | 125 | @include bem.elem('row') { |
| 126 | &:hover { | 126 | &:hover { |
| 127 | @include bem.elem("cell") { | 127 | @include bem.elem('cell') { |
| 128 | background-color: props.get(vars.$box--hover--bg-color); | 128 | background-color: props.get(vars.$box--hover--bg-color); |
| 129 | } | 129 | } |
| 130 | } | 130 | } |
| 131 | 131 | ||
| 132 | &:active { | 132 | &:active { |
| 133 | @include bem.elem("cell") { | 133 | @include bem.elem('cell') { |
| 134 | background-color: props.get(vars.$box--active--bg-color); | 134 | background-color: props.get(vars.$box--active--bg-color); |
| 135 | } | 135 | } |
| 136 | } | 136 | } |
| @@ -138,8 +138,8 @@ | |||
| 138 | } | 138 | } |
| 139 | } | 139 | } |
| 140 | 140 | ||
| 141 | @include bem.modifier("sm") { | 141 | @include bem.modifier('sm') { |
| 142 | @include bem.elem("head-cell", "cell") { | 142 | @include bem.elem('head-cell', 'cell') { |
| 143 | padding-block: props.get(vars.$pad-b--sm); | 143 | padding-block: props.get(vars.$pad-b--sm); |
| 144 | } | 144 | } |
| 145 | } | 145 | } |
diff --git a/src/objects/_table.vars.scss b/src/objects/_table.vars.scss index e00010f..7c5683c 100644 --- a/src/objects/_table.vars.scss +++ b/src/objects/_table.vars.scss | |||
| @@ -1,59 +1,25 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../core.vars" as core; | 3 | @use '../core.vars' as core; |
| 4 | 4 | ||
| 5 | $pad-i: props.def(--o-table--pad-i, props.get(core.$size--175)) !default; | 5 | $pad-i: props.def(--o-table--pad-i, props.get(core.$size--175)) !default; |
| 6 | $pad-b: props.def(--o-table--pad-b, props.get(core.$size--125)) !default; | 6 | $pad-b: props.def(--o-table--pad-b, props.get(core.$size--125)) !default; |
| 7 | $rounding: props.def(--o-table--rounding, props.get(core.$rounding--sm)) !default; | 7 | $rounding: props.def(--o-table--rounding, props.get(core.$rounding--sm)) !default; |
| 8 | $border-width: props.def(--o-table--border-width, props.get(core.$border-width--thin)) !default; | 8 | $border-width: props.def(--o-table--border-width, props.get(core.$border-width--thin)) !default; |
| 9 | 9 | ||
| 10 | $heading--font-family: props.def( | 10 | $heading--font-family: props.def(--o-table--heading--font-family, props.get(core.$font--standard--family)) !default; |
| 11 | --o-table--heading--font-family, | 11 | $heading--font-size: props.def(--o-table--heading--font-size, props.get(core.$font-size--50)) !default; |
| 12 | props.get(core.$font--standard--family) | 12 | $heading--font-weight: props.def(--o-table--heading--font-weight, bold) !default; |
| 13 | ) !default; | ||
| 14 | $heading--font-size: props.def( | ||
| 15 | --o-table--heading--font-size, | ||
| 16 | props.get(core.$font-size--50) | ||
| 17 | ) !default; | ||
| 18 | $heading--font-weight: props.def(--o-table--heading--font-weight, bold) !default; | ||
| 19 | $heading--text-transform: props.def(--o-table--heading--text-transform, uppercase) !default; | 13 | $heading--text-transform: props.def(--o-table--heading--text-transform, uppercase) !default; |
| 20 | $heading--letter-spacing: props.def(--o-table--heading--letter-spacing, 0.5px) !default; | 14 | $heading--letter-spacing: props.def(--o-table--heading--letter-spacing, .5px) !default; |
| 21 | 15 | ||
| 22 | $pad-b--sm: props.def(--o-table--sm--pad-b, props.get(core.$size--75)) !default; | 16 | $pad-b--sm: props.def(--o-table--sm--pad-b, props.get(core.$size--75)) !default; |
| 23 | 17 | ||
| 24 | $border-color: props.def( | 18 | $border-color: props.def(--o-table--border-color, props.get(core.$theme, --border), 'color') !default; |
| 25 | --o-table--border-color, | 19 | $heading-color: props.def(--o-table--heading-color, props.get(core.$theme, --heading), 'color') !default; |
| 26 | props.get(core.$theme, --border), | 20 | $hover--bg-color: props.def(--o-table--hover--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 27 | "color" | 21 | $active--bg-color: props.def(--o-table--active--bg-color, props.get(core.$theme, --border), 'color') !default; |
| 28 | ) !default; | ||
| 29 | $heading-color: props.def( | ||
| 30 | --o-table--heading-color, | ||
| 31 | props.get(core.$theme, --heading), | ||
| 32 | "color" | ||
| 33 | ) !default; | ||
| 34 | $hover--bg-color: props.def( | ||
| 35 | --o-table--hover--bg-color, | ||
| 36 | props.get(core.$theme, --border-mute), | ||
| 37 | "color" | ||
| 38 | ) !default; | ||
| 39 | $active--bg-color: props.def( | ||
| 40 | --o-table--active--bg-color, | ||
| 41 | props.get(core.$theme, --border), | ||
| 42 | "color" | ||
| 43 | ) !default; | ||
| 44 | 22 | ||
| 45 | $box--bg-color: props.def( | 23 | $box--bg-color: props.def(--o-table--box--bg-color, props.get(core.$theme, --base, --50), 'color') !default; |
| 46 | --o-table--box--bg-color, | 24 | $box--hover--bg-color: props.def(--o-table--box--hover--bg-color, props.get(core.$theme, --bg-base), 'color') !default; |
| 47 | props.get(core.$theme, --base, --50), | 25 | $box--active--bg-color: props.def(--o-table--box--active--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 48 | "color" | ||
| 49 | ) !default; | ||
| 50 | $box--hover--bg-color: props.def( | ||
| 51 | --o-table--box--hover--bg-color, | ||
| 52 | props.get(core.$theme, --bg-base), | ||
| 53 | "color" | ||
| 54 | ) !default; | ||
| 55 | $box--active--bg-color: props.def( | ||
| 56 | --o-table--box--active--bg-color, | ||
| 57 | props.get(core.$theme, --border-mute), | ||
| 58 | "color" | ||
| 59 | ) !default; | ||
diff --git a/src/objects/_text-field.scss b/src/objects/_text-field.scss index a8d3ec8..5a48df3 100644 --- a/src/objects/_text-field.scss +++ b/src/objects/_text-field.scss | |||
| @@ -1,91 +1,84 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "text-field.vars"; | 6 | @forward 'text-field.vars'; |
| 7 | @use "text-field.vars" as vars; | 7 | @use 'text-field.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin -invalid { | 9 | @mixin -invalid { |
| 10 | $focus-border-offset: calc( | 10 | $focus-border-offset: calc(props.get(vars.$border-width) - props.get(vars.$focus--border-width)); |
| 11 | props.get(vars.$border-width) - props.get(vars.$focus--border-width) | ||
| 12 | ); | ||
| 13 | 11 | ||
| 14 | @include bem.sibling-elem("bg") { | 12 | @include bem.sibling-elem('bg') { |
| 15 | inset-block: $focus-border-offset; | 13 | inset-block: $focus-border-offset; |
| 16 | inset-inline: $focus-border-offset; | 14 | inset-inline: $focus-border-offset; |
| 17 | border: props.get(vars.$focus--border-width) solid props.get(vars.$error--border-color); | 15 | border: props.get(vars.$focus--border-width) solid props.get(vars.$error--border-color); |
| 18 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); | 16 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); |
| 19 | } | 17 | } |
| 20 | 18 | ||
| 21 | &:hover { | 19 | &:hover { |
| 22 | @include bem.sibling-elem("bg") { | 20 | @include bem.sibling-elem('bg') { |
| 23 | border-color: props.get(vars.$error--hover--border-color); | 21 | border-color: props.get(vars.$error--hover--border-color); |
| 24 | } | 22 | } |
| 25 | } | 23 | } |
| 26 | 24 | ||
| 27 | &:focus { | 25 | &:focus { |
| 28 | @include bem.sibling-elem("bg") { | 26 | @include bem.sibling-elem('bg') { |
| 29 | border-color: props.get(vars.$error--focus--border-color); | 27 | border-color: props.get(vars.$error--focus--border-color); |
| 30 | } | 28 | } |
| 31 | } | 29 | } |
| 32 | } | 30 | } |
| 33 | 31 | ||
| 34 | @mixin -keyboard-focus { | 32 | @mixin -keyboard-focus { |
| 35 | @include bem.sibling-elem("bg") { | 33 | @include bem.sibling-elem('bg') { |
| 36 | outline: props.get(vars.$key-focus--outline-color) solid | 34 | outline: props.get(vars.$key-focus--outline-color) solid props.get(vars.$key-focus--border-width); |
| 37 | props.get(vars.$key-focus--border-width); | 35 | border-color: props.get(vars.$key-focus--border-color); |
| 38 | border-color: props.get(vars.$key-focus--border-color); | ||
| 39 | //outline-offset: props.get(vars.$focus --border); | 36 | //outline-offset: props.get(vars.$focus --border); |
| 40 | } | 37 | } |
| 41 | } | 38 | } |
| 42 | 39 | ||
| 43 | @mixin styles { | 40 | @mixin styles { |
| 44 | @include materialize-at-root(meta.module-variables("vars")); | 41 | @include materialize-at-root(meta.module-variables('vars')); |
| 45 | 42 | ||
| 46 | @include bem.object("text-field") { | 43 | @include bem.object('text-field') { |
| 47 | $focus-border-offset: calc( | 44 | $focus-border-offset: calc(props.get(vars.$border-width) - props.get(vars.$focus--border-width)); |
| 48 | props.get(vars.$border-width) - props.get(vars.$focus--border-width) | ||
| 49 | ); | ||
| 50 | 45 | ||
| 51 | position: relative; | 46 | position: relative; |
| 52 | min-inline-size: 0; | 47 | min-inline-size: 0; |
| 53 | background-color: props.get(vars.$bg-color); | 48 | background-color: props.get(vars.$bg-color); |
| 54 | border-radius: props.get(vars.$rounding); | 49 | border-radius: props.get(vars.$rounding); |
| 55 | 50 | ||
| 56 | @include bem.elem("bg") { | 51 | @include bem.elem('bg') { |
| 57 | position: absolute; | 52 | position: absolute; |
| 58 | inset-block: 0; | 53 | inset-block: 0; |
| 59 | inset-inline: 0; | 54 | inset-inline: 0; |
| 60 | display: block; | 55 | display: block; |
| 61 | pointer-events: none; | 56 | pointer-events: none; |
| 62 | border: props.get(vars.$border-width) solid props.get(vars.$border-color); | 57 | border: props.get(vars.$border-width) solid props.get(vars.$border-color); |
| 63 | border-radius: props.get(vars.$rounding); | 58 | border-radius: props.get(vars.$rounding); |
| 64 | } | 59 | } |
| 65 | 60 | ||
| 66 | @include bem.elem("native") { | 61 | @include bem.elem('native') { |
| 67 | box-sizing: border-box; | 62 | box-sizing: border-box; |
| 68 | inline-size: 100%; | 63 | inline-size: 100%; |
| 69 | padding-block: calc( | 64 | padding-block: calc(props.get(vars.$pad-b) - .5em * (props.get(vars.$line-height) - 1)); |
| 70 | props.get(vars.$pad-b) - 0.5em * (props.get(vars.$line-height) - 1) | 65 | padding-inline: props.get(vars.$pad-i); |
| 71 | ); | 66 | font: inherit; |
| 72 | padding-inline: props.get(vars.$pad-i); | 67 | line-height: props.get(vars.$line-height); |
| 73 | font: inherit; | 68 | color: props.get(vars.$text-color); |
| 74 | line-height: props.get(vars.$line-height); | 69 | appearance: none; |
| 75 | color: props.get(vars.$text-color); | 70 | resize: none; |
| 76 | appearance: none; | ||
| 77 | resize: none; | ||
| 78 | background-color: transparent; | 71 | background-color: transparent; |
| 79 | border: 1px solid transparent; | 72 | border: 1px solid transparent; |
| 80 | 73 | ||
| 81 | &::placeholder { | 74 | &::placeholder { |
| 82 | font-style: italic; | 75 | font-style: italic; |
| 83 | color: props.get(vars.$placeholder-color); | 76 | color: props.get(vars.$placeholder-color); |
| 84 | opacity: 1; | 77 | opacity: 1; |
| 85 | } | 78 | } |
| 86 | 79 | ||
| 87 | &:hover { | 80 | &:hover { |
| 88 | @include bem.sibling-elem("bg") { | 81 | @include bem.sibling-elem('bg') { |
| 89 | border-color: props.get(vars.$hover--border-color); | 82 | border-color: props.get(vars.$hover--border-color); |
| 90 | } | 83 | } |
| 91 | } | 84 | } |
| @@ -93,11 +86,10 @@ | |||
| 93 | &:focus { | 86 | &:focus { |
| 94 | outline: 0; | 87 | outline: 0; |
| 95 | 88 | ||
| 96 | @include bem.sibling-elem("bg") { | 89 | @include bem.sibling-elem('bg') { |
| 97 | inset-block: $focus-border-offset; | 90 | inset-block: $focus-border-offset; |
| 98 | inset-inline: $focus-border-offset; | 91 | inset-inline: $focus-border-offset; |
| 99 | border: props.get(vars.$focus--border-width) solid | 92 | border: props.get(vars.$focus--border-width) solid props.get(vars.$focus--border-color); |
| 100 | props.get(vars.$focus--border-color); | ||
| 101 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); | 93 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); |
| 102 | } | 94 | } |
| 103 | } | 95 | } |
| @@ -112,49 +104,46 @@ | |||
| 112 | } | 104 | } |
| 113 | } | 105 | } |
| 114 | 106 | ||
| 115 | @include bem.modifier("extended") { | 107 | @include bem.modifier('extended') { |
| 116 | padding: props.get(vars.$extended--pad); | 108 | padding: props.get(vars.$extended--pad); |
| 117 | 109 | ||
| 118 | @include bem.multi("&", "elem" "bg") { | 110 | @include bem.multi('&', 'elem' 'bg') { |
| 119 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$extended--pad)); | 111 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$extended--pad)); |
| 120 | } | 112 | } |
| 121 | 113 | ||
| 122 | @include bem.elem("native") { | 114 | @include bem.elem('native') { |
| 123 | &:focus { | 115 | &:focus { |
| 124 | @include bem.sibling-elem("bg") { | 116 | @include bem.sibling-elem('bg') { |
| 125 | border-radius: calc( | 117 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$extended--pad) - $focus-border-offset); |
| 126 | props.get(vars.$rounding) + props.get(vars.$extended--pad) - | ||
| 127 | $focus-border-offset | ||
| 128 | ); | ||
| 129 | } | 118 | } |
| 130 | } | 119 | } |
| 131 | } | 120 | } |
| 132 | } | 121 | } |
| 133 | 122 | ||
| 134 | @include bem.modifier("pill") { | 123 | @include bem.modifier('pill') { |
| 135 | @include bem.multi("&", "elem" "bg") { | 124 | @include bem.multi('&', 'elem' 'bg') { |
| 136 | border-radius: 100em; | 125 | border-radius: 100em; |
| 137 | } | 126 | } |
| 138 | 127 | ||
| 139 | @include bem.elem("native") { | 128 | @include bem.elem('native') { |
| 140 | padding-inline: props.get(vars.$pad-i-pill); | 129 | padding-inline: props.get(vars.$pad-i-pill); |
| 141 | 130 | ||
| 142 | &:focus { | 131 | &:focus { |
| 143 | @include bem.sibling-elem("bg") { | 132 | @include bem.sibling-elem('bg') { |
| 144 | border-radius: 100em; | 133 | border-radius: 100em; |
| 145 | } | 134 | } |
| 146 | } | 135 | } |
| 147 | } | 136 | } |
| 148 | 137 | ||
| 149 | @include bem.modifier("extended") { | 138 | @include bem.modifier('extended') { |
| 150 | @include bem.elem("native") { | 139 | @include bem.elem('native') { |
| 151 | padding-inline: props.get(vars.$pad-i); | 140 | padding-inline: props.get(vars.$pad-i); |
| 152 | } | 141 | } |
| 153 | } | 142 | } |
| 154 | } | 143 | } |
| 155 | 144 | ||
| 156 | @include bem.is("invalid") { | 145 | @include bem.is('invalid') { |
| 157 | @include bem.elem("native") { | 146 | @include bem.elem('native') { |
| 158 | @include -invalid; | 147 | @include -invalid; |
| 159 | 148 | ||
| 160 | &:focus-visible { | 149 | &:focus-visible { |
| @@ -163,10 +152,10 @@ | |||
| 163 | } | 152 | } |
| 164 | } | 153 | } |
| 165 | 154 | ||
| 166 | @include bem.is("disabled") { | 155 | @include bem.is('disabled') { |
| 167 | background-color: props.get(vars.$disabled--bg-color); | 156 | background-color: props.get(vars.$disabled--bg-color); |
| 168 | 157 | ||
| 169 | @include bem.elem("native") { | 158 | @include bem.elem('native') { |
| 170 | color: props.get(vars.$disabled--text-color); | 159 | color: props.get(vars.$disabled--text-color); |
| 171 | 160 | ||
| 172 | &::placeholder { | 161 | &::placeholder { |
| @@ -174,21 +163,21 @@ | |||
| 174 | } | 163 | } |
| 175 | } | 164 | } |
| 176 | 165 | ||
| 177 | @include bem.elem("bg") { | 166 | @include bem.elem('bg') { |
| 178 | border-color: props.get(vars.$disabled--border-color); | 167 | border-color: props.get(vars.$disabled--border-color); |
| 179 | } | 168 | } |
| 180 | 169 | ||
| 181 | @include bem.is("invalid") { | 170 | @include bem.is('invalid') { |
| 182 | @include bem.elem("native") { | 171 | @include bem.elem('native') { |
| 183 | @include bem.sibling-elem("bg") { | 172 | @include bem.sibling-elem('bg') { |
| 184 | border-color: props.get(vars.$disabled--border-color); | 173 | border-color: props.get(vars.$disabled--border-color); |
| 185 | } | 174 | } |
| 186 | } | 175 | } |
| 187 | } | 176 | } |
| 188 | 177 | ||
| 189 | @include bem.elem("native") { | 178 | @include bem.elem('native') { |
| 190 | &:invalid { | 179 | &:invalid { |
| 191 | @include bem.sibling-elem("bg") { | 180 | @include bem.sibling-elem('bg') { |
| 192 | border-color: props.get(vars.$disabled--border-color); | 181 | border-color: props.get(vars.$disabled--border-color); |
| 193 | } | 182 | } |
| 194 | } | 183 | } |
diff --git a/src/objects/_text-field.vars.scss b/src/objects/_text-field.vars.scss index 9a2a16a..ef06822 100644 --- a/src/objects/_text-field.vars.scss +++ b/src/objects/_text-field.vars.scss | |||
| @@ -1,108 +1,39 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../core.vars" as core; | 3 | @use '../core.vars' as core; |
| 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-i-pill: props.def(--o-text-field--pad-i-pill, props.get(core.$size--175)) !default; |
| 8 | $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; |
| 9 | $border-width: props.def( | 9 | $border-width: props.def(--o-text-field--border-width, props.get(core.$border-width--thin)) !default; |
| 10 | --o-text-field--border-width, | 10 | $rounding: props.def(--o-text-field--rounding, props.get(core.$rounding--sm)) !default; |
| 11 | props.get(core.$border-width--thin) | ||
| 12 | ) !default; | ||
| 13 | $rounding: props.def(--o-text-field--rounding, props.get(core.$rounding--sm)) !default; | ||
| 14 | 11 | ||
| 15 | $extended--pad: props.def(--o-text-field--extended--pad, props.get(core.$size--50)) !default; | 12 | $extended--pad: props.def(--o-text-field--extended--pad, props.get(core.$size--50)) !default; |
| 16 | 13 | ||
| 17 | $focus--border-width: props.def( | 14 | $focus--border-width: props.def(--o-text-field--focus--border-width, props.get(core.$border-width--medium)) !default; |
| 18 | --o-text-field--focus--border-width, | ||
| 19 | props.get(core.$border-width--medium) | ||
| 20 | ) !default; | ||
| 21 | 15 | ||
| 22 | $key-focus--border-width: props.def( | 16 | $key-focus--border-width: props.def(--o-text-field--key-focus--border-width, props.get(core.$key-focus--outline-width)) !default; |
| 23 | --o-text-field--key-focus--border-width, | ||
| 24 | props.get(core.$key-focus--outline-width) | ||
| 25 | ) !default; | ||
| 26 | 17 | ||
| 27 | $bg-color: props.def( | 18 | $bg-color: props.def(--o-text-field--bg-color, props.get(core.$theme, --base, --50), 'color') !default; |
| 28 | --o-text-field--bg-color, | 19 | $placeholder-color: props.def(--o-text-field--placeholder-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 29 | props.get(core.$theme, --base, --50), | 20 | $text-color: props.def(--o-text-field--text-color, props.get(core.$theme, --text), 'color') !default; |
| 30 | "color" | 21 | $border-color: props.def(--o-text-field--border-color, props.get(core.$theme, --border-strong), 'color') !default; |
| 31 | ) !default; | ||
| 32 | $placeholder-color: props.def( | ||
| 33 | --o-text-field--placeholder-color, | ||
| 34 | props.get(core.$theme, --text-mute-more), | ||
| 35 | "color" | ||
| 36 | ) !default; | ||
| 37 | $text-color: props.def( | ||
| 38 | --o-text-field--text-color, | ||
| 39 | props.get(core.$theme, --text), | ||
| 40 | "color" | ||
| 41 | ) !default; | ||
| 42 | $border-color: props.def( | ||
| 43 | --o-text-field--border-color, | ||
| 44 | props.get(core.$theme, --border-strong), | ||
| 45 | "color" | ||
| 46 | ) !default; | ||
| 47 | 22 | ||
| 48 | $hover--border-color: props.def( | 23 | $hover--border-color: props.def(--o-text-field--hover--border-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 49 | --o-text-field--hover--border-color, | ||
| 50 | props.get(core.$theme, --text-mute-more), | ||
| 51 | "color" | ||
| 52 | ) !default; | ||
| 53 | 24 | ||
| 54 | $focus--border-color: props.def( | 25 | $focus--border-color: props.def(--o-text-field--focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 55 | --o-text-field--focus--border-color, | ||
| 56 | props.get(core.$theme, --focus, --border), | ||
| 57 | "color" | ||
| 58 | ) !default; | ||
| 59 | 26 | ||
| 60 | $key-focus--border-color: props.def( | 27 | $key-focus--border-color: props.def(--o-text-field--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 61 | --o-text-field--key-focus--border-color, | 28 | $key-focus--outline-color: props.def(--o-text-field--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 62 | props.get(core.$theme, --focus, --border), | ||
| 63 | "color" | ||
| 64 | ) !default; | ||
| 65 | $key-focus--outline-color: props.def( | ||
| 66 | --o-text-field--key-focus--outline-color, | ||
| 67 | props.get(core.$theme, --focus, --outline), | ||
| 68 | "color" | ||
| 69 | ) !default; | ||
| 70 | 29 | ||
| 71 | $error--border-color: props.def( | 30 | $error--border-color: props.def(--o-text-field--error--border-color, props.get(core.$theme, --negative, --700), 'color') !default; |
| 72 | --o-text-field--error--border-color, | ||
| 73 | props.get(core.$theme, --negative, --700), | ||
| 74 | "color" | ||
| 75 | ) !default; | ||
| 76 | 31 | ||
| 77 | $error--hover--border-color: props.def( | 32 | $error--hover--border-color: props.def(--o-text-field--error--hover--border-color, props.get(core.$theme, --negative, --900), 'color') !default; |
| 78 | --o-text-field--error--hover--border-color, | ||
| 79 | props.get(core.$theme, --negative, --900), | ||
| 80 | "color" | ||
| 81 | ) !default; | ||
| 82 | 33 | ||
| 83 | $error--focus--border-color: props.def( | 34 | $error--focus--border-color: props.def(--o-text-field--error--focus--border-color, props.get(core.$theme, --negative, --900), 'color') !default; |
| 84 | --o-text-field--error--focus--border-color, | ||
| 85 | props.get(core.$theme, --negative, --900), | ||
| 86 | "color" | ||
| 87 | ) !default; | ||
| 88 | 35 | ||
| 89 | $disabled--bg-color: props.def( | 36 | $disabled--bg-color: props.def(--o-text-field--disabled--bg-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 90 | --o-text-field--disabled--bg-color, | 37 | $disabled--placeholder-color: props.def(--o-text-field--disabled--placeholder-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 91 | props.get(core.$theme, --border-mute), | 38 | $disabled--text-color: props.def(--o-text-field--disabled--text-color, props.get(core.$theme, --text-disabled), 'color') !default; |
| 92 | "color" | 39 | $disabled--border-color: props.def(--o-text-field--disabled--border-color, props.get(core.$theme, --border-mute), 'color') !default; |
| 93 | ) !default; | ||
| 94 | $disabled--placeholder-color: props.def( | ||
| 95 | --o-text-field--disabled--placeholder-color, | ||
| 96 | props.get(core.$theme, --text-disabled), | ||
| 97 | "color" | ||
| 98 | ) !default; | ||
| 99 | $disabled--text-color: props.def( | ||
| 100 | --o-text-field--disabled--text-color, | ||
| 101 | props.get(core.$theme, --text-disabled), | ||
| 102 | "color" | ||
| 103 | ) !default; | ||
| 104 | $disabled--border-color: props.def( | ||
| 105 | --o-text-field--disabled--border-color, | ||
| 106 | props.get(core.$theme, --border-mute), | ||
| 107 | "color" | ||
| 108 | ) !default; | ||
diff --git a/src/objects/_thumbnail.scss b/src/objects/_thumbnail.scss index c7a9791..9925dd0 100644 --- a/src/objects/_thumbnail.scss +++ b/src/objects/_thumbnail.scss | |||
| @@ -1,66 +1,65 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:meta"; | 2 | @use 'sass:meta'; |
| 3 | @use "sass:string"; | 3 | @use 'sass:string'; |
| 4 | @use "pkg:iro-sass/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/props'; |
| 6 | @use "../props" as *; | 6 | @use '../props' as *; |
| 7 | 7 | ||
| 8 | @forward "thumbnail.vars"; | 8 | @forward 'thumbnail.vars'; |
| 9 | @use "thumbnail.vars" as vars; | 9 | @use 'thumbnail.vars' as vars; |
| 10 | 10 | ||
| 11 | @mixin styles { | 11 | @mixin styles { |
| 12 | @include materialize-at-root(meta.module-variables("vars")); | 12 | @include materialize-at-root(meta.module-variables('vars')); |
| 13 | 13 | ||
| 14 | @include bem.object("thumbnail") { | 14 | @include bem.object('thumbnail') { |
| 15 | position: relative; | 15 | position: relative; |
| 16 | display: block; | 16 | display: block; |
| 17 | flex: 0 0 auto; | 17 | flex: 0 0 auto; |
| 18 | inline-size: props.get(vars.$size); | 18 | inline-size: props.get(vars.$size); |
| 19 | block-size: props.get(vars.$size); | 19 | block-size: props.get(vars.$size); |
| 20 | overflow: hidden; | 20 | overflow: hidden; |
| 21 | outline: props.get(vars.$border-color) solid props.get(vars.$border-width); | 21 | outline: props.get(vars.$border-color) solid props.get(vars.$border-width); |
| 22 | outline-offset: calc(-1 * props.get(vars.$border-width)); | 22 | outline-offset: calc(-1 * props.get(vars.$border-width)); |
| 23 | border-radius: props.get(vars.$rounding); | 23 | border-radius: props.get(vars.$rounding); |
| 24 | 24 | ||
| 25 | &:hover, | 25 | &:hover, |
| 26 | &:active, | 26 | &:active, |
| 27 | &:focus-visible { | 27 | &:focus-visible { |
| 28 | outline-color: props.get(vars.$hover--border-color); | 28 | outline-color: props.get(vars.$hover--border-color); |
| 29 | opacity: 1; | 29 | opacity: 1; |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | @include bem.elem("image") { | 32 | @include bem.elem('image') { |
| 33 | position: absolute; | 33 | position: absolute; |
| 34 | inset-block-start: 0; | 34 | inset-block-start: 0; |
| 35 | inset-inline-start: 0; | 35 | inset-inline-start: 0; |
| 36 | display: block; | 36 | display: block; |
| 37 | inline-size: 100%; | 37 | inline-size: 100%; |
| 38 | block-size: 100%; | 38 | block-size: 100%; |
| 39 | object-fit: cover; | 39 | object-fit: cover; |
| 40 | object-position: center center; | 40 | object-position: center center; |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | @include bem.elem("icon") { | 43 | @include bem.elem('icon') { |
| 44 | position: absolute; | 44 | position: absolute; |
| 45 | inset-block-start: 50%; | 45 | inset-block-start: 50%; |
| 46 | inset-inline-start: 50%; | 46 | inset-inline-start: 50%; |
| 47 | transform: translate(-50%, -50%); | 47 | transform: translate(-50%, -50%); |
| 48 | } | 48 | } |
| 49 | 49 | ||
| 50 | &:focus-visible { | 50 | &:focus-visible { |
| 51 | $focus-border-offset: calc(-1 * props.get(vars.$key-focus--border-offset)); | 51 | $focus-border-offset: calc(-1 * props.get(vars.$key-focus--border-offset)); |
| 52 | 52 | ||
| 53 | margin: $focus-border-offset; | 53 | margin: $focus-border-offset; |
| 54 | outline: props.get(vars.$key-focus--border-color) solid | 54 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 55 | props.get(vars.$key-focus--border-width); | ||
| 56 | outline-offset: 0; | 55 | outline-offset: 0; |
| 57 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 56 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 58 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); | 57 | border-radius: calc(props.get(vars.$rounding) - $focus-border-offset); |
| 59 | box-shadow: 0 0 0 | 58 | box-shadow: |
| 60 | calc( | 59 | 0 |
| 61 | props.get(vars.$key-focus--outline-width) + | 60 | 0 |
| 62 | props.get(vars.$key-focus--border-width) | 61 | 0 |
| 63 | ) | 62 | calc(props.get(vars.$key-focus--outline-width) + props.get(vars.$key-focus--border-width)) |
| 64 | props.get(vars.$key-focus--outline-color); | 63 | props.get(vars.$key-focus--outline-color); |
| 65 | } | 64 | } |
| 66 | 65 | ||
| @@ -74,18 +73,18 @@ | |||
| 74 | outline-color: props.get(vars.$static-themes, $theme, --hover, --border); | 73 | outline-color: props.get(vars.$static-themes, $theme, --hover, --border); |
| 75 | } | 74 | } |
| 76 | 75 | ||
| 77 | @include bem.is("selected") { | 76 | @include bem.is('selected') { |
| 78 | border-color: props.get(vars.$static-themes, $theme, --selected, --border); | 77 | border-color: props.get(vars.$static-themes, $theme, --selected, --border); |
| 79 | } | 78 | } |
| 80 | 79 | ||
| 81 | &:focus-visible { | 80 | &:focus-visible { |
| 82 | outline-color: props.get(vars.$static-themes, $theme, --key-focus, --border); | 81 | outline-color: props.get(vars.$static-themes, $theme, --key-focus, --border); |
| 83 | border-color: transparent; | 82 | border-color: transparent; |
| 84 | box-shadow: 0 0 0 | 83 | box-shadow: |
| 85 | calc( | 84 | 0 |
| 86 | props.get(vars.$key-focus--outline-width) + | 85 | 0 |
| 87 | props.get(vars.$key-focus--border-width) | 86 | 0 |
| 88 | ) | 87 | calc(props.get(vars.$key-focus--outline-width) + props.get(vars.$key-focus--border-width)) |
| 89 | props.get(vars.$static-themes, $theme, --key-focus, --outline); | 88 | props.get(vars.$static-themes, $theme, --key-focus, --outline); |
| 90 | } | 89 | } |
| 91 | } | 90 | } |
diff --git a/src/objects/_thumbnail.vars.scss b/src/objects/_thumbnail.vars.scss index 737a626..a5625fc 100644 --- a/src/objects/_thumbnail.vars.scss +++ b/src/objects/_thumbnail.vars.scss | |||
| @@ -1,85 +1,51 @@ | |||
| 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 | $size: props.def(--o-thumbnail--size, props.get(core.$size--900)) !default; | 6 | $size: props.def(--o-thumbnail--size, props.get(core.$size--900)) !default; |
| 7 | $rounding: props.def(--o-thumbnail--rounding, props.get(core.$rounding--sm)) !default; | 7 | $rounding: props.def(--o-thumbnail--rounding, props.get(core.$rounding--sm)) !default; |
| 8 | $spacing: props.def(--o-thumbnail--spacing, props.get(core.$size--100)) !default; | 8 | $spacing: props.def(--o-thumbnail--spacing, props.get(core.$size--100)) !default; |
| 9 | $border-width: props.def(--o-thumbnail--border-width, props.get(core.$border-width--thin)) !default; | 9 | $border-width: props.def(--o-thumbnail--border-width, props.get(core.$border-width--thin)) !default; |
| 10 | 10 | ||
| 11 | $selected--border-width: props.def( | 11 | $selected--border-width: props.def(--o-thumbnail--selected--border-width, props.get(core.$border-width--medium)) !default; |
| 12 | --o-thumbnail--selected--border-width, | ||
| 13 | props.get(core.$border-width--medium) | ||
| 14 | ) !default; | ||
| 15 | 12 | ||
| 16 | $key-focus--border-width: props.def( | 13 | $key-focus--border-width: props.def(--o-thumbnail--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 17 | --o-thumbnail--key-focus--border-width, | 14 | $key-focus--border-offset: props.def(--o-thumbnail--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 18 | props.get(core.$key-focus--border-width) | 15 | $key-focus--outline-width: props.def(--o-thumbnail--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; |
| 19 | ) !default; | ||
| 20 | $key-focus--border-offset: props.def( | ||
| 21 | --o-thumbnail--key-focus--border-offset, | ||
| 22 | props.get(core.$key-focus--border-offset) | ||
| 23 | ) !default; | ||
| 24 | $key-focus--outline-width: props.def( | ||
| 25 | --o-thumbnail--key-focus--outline-width, | ||
| 26 | props.get(core.$key-focus--outline-width) | ||
| 27 | ) !default; | ||
| 28 | 16 | ||
| 29 | $border-color: props.def( | 17 | $border-color: props.def(--o-thumbnail--border-color, props.get(core.$theme, --border-strong), 'color') !default; |
| 30 | --o-thumbnail--border-color, | ||
| 31 | props.get(core.$theme, --border-strong), | ||
| 32 | "color" | ||
| 33 | ) !default; | ||
| 34 | 18 | ||
| 35 | $hover--border-color: props.def( | 19 | $hover--border-color: props.def(--o-thumbnail--hover--border-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 36 | --o-thumbnail--hover--border-color, | ||
| 37 | props.get(core.$theme, --text-mute-more), | ||
| 38 | "color" | ||
| 39 | ) !default; | ||
| 40 | 20 | ||
| 41 | $selected--border-color: props.def( | 21 | $selected--border-color: props.def(--o-thumbnail--selected--border-color, props.get(core.$theme, --heading), 'color') !default; |
| 42 | --o-thumbnail--selected--border-color, | ||
| 43 | props.get(core.$theme, --heading), | ||
| 44 | "color" | ||
| 45 | ) !default; | ||
| 46 | 22 | ||
| 47 | $key-focus--border-color: props.def( | 23 | $key-focus--border-color: props.def(--o-thumbnail--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 48 | --o-thumbnail--key-focus--border-color, | 24 | $key-focus--outline-color: props.def(--o-thumbnail--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 49 | props.get(core.$theme, --focus, --border), | ||
| 50 | "color" | ||
| 51 | ) !default; | ||
| 52 | $key-focus--outline-color: props.def( | ||
| 53 | --o-thumbnail--key-focus--outline-color, | ||
| 54 | props.get(core.$theme, --focus, --outline), | ||
| 55 | "color" | ||
| 56 | ) !default; | ||
| 57 | 25 | ||
| 58 | $size--md: props.def(--o-thumbnail--size, props.get(core.$size--600), "md") !default; | 26 | $size--md: props.def(--o-thumbnail--size, props.get(core.$size--600), 'md') !default; |
| 59 | 27 | ||
| 60 | $static-themes: props.def(--o-thumbnail, (), "color"); | 28 | $static-themes: props.def(--o-thumbnail, (), 'color'); |
| 61 | 29 | ||
| 62 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 30 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 63 | $thumbnail-theme: --static-#{string.slice($theme, 3)}; | 31 | $thumbnail-theme: --static-#{string.slice($theme, 3)}; |
| 64 | 32 | ||
| 65 | $static-themes: props.merge( | 33 | $static-themes: props.merge($static-themes, ( |
| 66 | $static-themes, | 34 | $thumbnail-theme: ( |
| 67 | ( | 35 | --border: props.get(core.$transparent-colors, $theme, --400), |
| 68 | $thumbnail-theme: ( | ||
| 69 | --border: props.get(core.$transparent-colors, $theme, --400), | ||
| 70 | --hover: ( | ||
| 71 | --border: props.get(core.$transparent-colors, $theme, --500), | ||
| 72 | ), | ||
| 73 | 36 | ||
| 74 | --selected: ( | 37 | --hover: ( |
| 75 | --border: props.get(core.$transparent-colors, $theme, --900), | 38 | --border: props.get(core.$transparent-colors, $theme, --500), |
| 76 | ), | 39 | ), |
| 77 | 40 | ||
| 78 | --key-focus: ( | 41 | --selected: ( |
| 79 | --border: props.get(core.$transparent-colors, $theme, --900), | 42 | --border: props.get(core.$transparent-colors, $theme, --900), |
| 80 | --outline: props.get(core.$transparent-colors, $theme, --300), | 43 | ), |
| 81 | ), | 44 | |
| 82 | ), | 45 | --key-focus: ( |
| 46 | --border: props.get(core.$transparent-colors, $theme, --900), | ||
| 47 | --outline: props.get(core.$transparent-colors, $theme, --300), | ||
| 48 | ), | ||
| 83 | ) | 49 | ) |
| 84 | ); | 50 | )); |
| 85 | } | 51 | } |
diff --git a/src/scopes/_blockquotes.scss b/src/scopes/_blockquotes.scss index bc4fd39..10e6d81 100644 --- a/src/scopes/_blockquotes.scss +++ b/src/scopes/_blockquotes.scss | |||
| @@ -1,27 +1,25 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "blockquotes.vars"; | 6 | @forward 'blockquotes.vars'; |
| 7 | @use "blockquotes.vars" as vars; | 7 | @use 'blockquotes.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables("vars")); | 10 | @include materialize-at-root(meta.module-variables('vars')); |
| 11 | 11 | ||
| 12 | @include bem.scope("blockquotes") { | 12 | @include bem.scope('blockquotes') { |
| 13 | blockquote { | 13 | blockquote { |
| 14 | padding-inline-start: calc(props.get(vars.$indent) - props.get(vars.$border-width)); | 14 | padding-inline-start: calc(props.get(vars.$indent) - props.get(vars.$border-width)); |
| 15 | margin-block: props.get(vars.$margin-bs) 0; | 15 | margin-block: props.get(vars.$margin-bs) 0; |
| 16 | margin-inline: 1px 0; | 16 | margin-inline: 1px 0; |
| 17 | border-inline-start: props.get(vars.$border-width) solid props.get(vars.$border-color); | 17 | border-inline-start: props.get(vars.$border-width) solid props.get(vars.$border-color); |
| 18 | } | 18 | } |
| 19 | 19 | ||
| 20 | @include bem.modifier("compact") { | 20 | @include bem.modifier('compact') { |
| 21 | blockquote { | 21 | blockquote { |
| 22 | padding-inline-start: calc( | 22 | padding-inline-start: calc(props.get(vars.$compact--indent) - props.get(vars.$border-width)); |
| 23 | props.get(vars.$compact--indent) - props.get(vars.$border-width) | ||
| 24 | ); | ||
| 25 | } | 23 | } |
| 26 | } | 24 | } |
| 27 | } | 25 | } |
diff --git a/src/scopes/_blockquotes.vars.scss b/src/scopes/_blockquotes.vars.scss index 117b4a6..63c40b0 100644 --- a/src/scopes/_blockquotes.vars.scss +++ b/src/scopes/_blockquotes.vars.scss | |||
| @@ -1,24 +1,11 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | @use "./implicit.vars" as implicit; | 3 | @use './implicit.vars' as implicit; |
| 4 | 4 | ||
| 5 | $indent: props.def(--s-blockquotes--indent, props.get(core.$list--indent)) !default; | 5 | $indent: props.def(--s-blockquotes--indent, props.get(core.$list--indent)) !default; |
| 6 | $margin-bs: props.def( | 6 | $margin-bs: props.def(--s-blockquotes--margin-bs, props.get(implicit.$paragraph--margin-bs)) !default; |
| 7 | --s-blockquotes--margin-bs, | 7 | $border-width: props.def(--s-blockquotes--border-width, props.get(core.$border-width--thick)) !default; |
| 8 | props.get(implicit.$paragraph--margin-bs) | ||
| 9 | ) !default; | ||
| 10 | $border-width: props.def( | ||
| 11 | --s-blockquotes--border-width, | ||
| 12 | props.get(core.$border-width--thick) | ||
| 13 | ) !default; | ||
| 14 | 8 | ||
| 15 | $compact--indent: props.def( | 9 | $compact--indent: props.def(--s-blockquotes--compact--indent, props.get(core.$list--compact-indent)) !default; |
| 16 | --s-blockquotes--compact--indent, | ||
| 17 | props.get(core.$list--compact-indent) | ||
| 18 | ) !default; | ||
| 19 | 10 | ||
| 20 | $border-color: props.def( | 11 | $border-color: props.def(--s-blockquotes--border-color, props.get(core.$theme, --border), 'color') !default; |
| 21 | --s-blockquotes--border-color, | ||
| 22 | props.get(core.$theme, --border), | ||
| 23 | "color" | ||
| 24 | ) !default; | ||
diff --git a/src/scopes/_body.scss b/src/scopes/_body.scss index 6c5ba63..77a3eb1 100644 --- a/src/scopes/_body.scss +++ b/src/scopes/_body.scss | |||
| @@ -1,15 +1,15 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "body.vars"; | 6 | @forward 'body.vars'; |
| 7 | @use "body.vars" as vars; | 7 | @use 'body.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables("vars")); | 10 | @include materialize-at-root(meta.module-variables('vars')); |
| 11 | 11 | ||
| 12 | @include bem.scope("body") { | 12 | @include bem.scope('body') { |
| 13 | font-size: props.get(vars.$font-size); | 13 | font-size: props.get(vars.$font-size); |
| 14 | line-height: props.get(vars.$line-height); | 14 | line-height: props.get(vars.$line-height); |
| 15 | 15 | ||
| @@ -30,11 +30,11 @@ | |||
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | img { | 32 | img { |
| 33 | display: block; | 33 | display: block; |
| 34 | inline-size: auto; | 34 | inline-size: auto; |
| 35 | max-inline-size: 100%; | 35 | max-inline-size: 100%; |
| 36 | block-size: auto; | 36 | block-size: auto; |
| 37 | max-block-size: props.get(vars.$img--max-block-size); | 37 | max-block-size: props.get(vars.$img--max-block-size); |
| 38 | margin-block-start: props.get(vars.$paragraph--margin-bs); | 38 | margin-block-start: props.get(vars.$paragraph--margin-bs); |
| 39 | } | 39 | } |
| 40 | 40 | ||
diff --git a/src/scopes/_body.vars.scss b/src/scopes/_body.vars.scss index 414e0c1..981ef32 100644 --- a/src/scopes/_body.vars.scss +++ b/src/scopes/_body.vars.scss | |||
| @@ -1,25 +1,12 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | 3 | ||
| 4 | @use "../layouts/container.vars" as container; | 4 | @use '../layouts/container.vars' as container; |
| 5 | 5 | ||
| 6 | $font-size: props.def(--s-body--font-size, props.get(core.$font-size--150)) !default; | 6 | $font-size: props.def(--s-body--font-size, props.get(core.$font-size--150)) !default; |
| 7 | $line-height: props.def( | 7 | $line-height: props.def(--s-body--line-height, calc(props.get(core.$font--standard--line-height) + .1)) !default; |
| 8 | --s-body--line-height, | 8 | $paragraph--margin-bs: props.def(--s-body--paragraph--margin-bs, props.get(core.$size--300)) !default; |
| 9 | calc(props.get(core.$font--standard--line-height) + 0.1) | 9 | $paragraph--max-inline-size: props.def(--s-body--paragraph--max-inline-size, props.get(container.$fixed)) !default; |
| 10 | ) !default; | 10 | $img--max-block-size: props.def(--s-body--img--max-block-size, none) !default; |
| 11 | $paragraph--margin-bs: props.def( | ||
| 12 | --s-body--paragraph--margin-bs, | ||
| 13 | props.get(core.$size--300) | ||
| 14 | ) !default; | ||
| 15 | $paragraph--max-inline-size: props.def( | ||
| 16 | --s-body--paragraph--max-inline-size, | ||
| 17 | props.get(container.$fixed) | ||
| 18 | ) !default; | ||
| 19 | $img--max-block-size: props.def(--s-body--img--max-block-size, none) !default; | ||
| 20 | 11 | ||
| 21 | $strong--text-color: props.def( | 12 | $strong--text-color: props.def(--s-body--strong--text-color, props.get(core.$theme, --heading), 'color') !default; |
| 22 | --s-body--strong--text-color, | ||
| 23 | props.get(core.$theme, --heading), | ||
| 24 | "color" | ||
| 25 | ) !default; | ||
diff --git a/src/scopes/_code.scss b/src/scopes/_code.scss index d931c22..db43de0 100644 --- a/src/scopes/_code.scss +++ b/src/scopes/_code.scss | |||
| @@ -1,39 +1,39 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | 5 | ||
| 6 | @forward "code.vars"; | 6 | @forward 'code.vars'; |
| 7 | @use "code.vars" as vars; | 7 | @use 'code.vars' as vars; |
| 8 | 8 | ||
| 9 | @mixin styles { | 9 | @mixin styles { |
| 10 | @include materialize-at-root(meta.module-variables("vars")); | 10 | @include materialize-at-root(meta.module-variables('vars')); |
| 11 | 11 | ||
| 12 | @include bem.scope("code") { | 12 | @include bem.scope('code') { |
| 13 | code { | 13 | code { |
| 14 | padding-block: props.get(vars.$inline--pad-b); | 14 | padding-block: props.get(vars.$inline--pad-b); |
| 15 | padding-inline: props.get(vars.$inline--pad-i); | 15 | padding-inline: props.get(vars.$inline--pad-i); |
| 16 | color: props.get(vars.$inline--fg); | 16 | color: props.get(vars.$inline--fg); |
| 17 | background-color: props.get(vars.$inline--bg); | 17 | background-color: props.get(vars.$inline--bg); |
| 18 | border-radius: props.get(vars.$inline--rounding); | 18 | border-radius: props.get(vars.$inline--rounding); |
| 19 | } | 19 | } |
| 20 | 20 | ||
| 21 | pre { | 21 | pre { |
| 22 | padding-block: props.get(vars.$block--pad-b); | 22 | padding-block: props.get(vars.$block--pad-b); |
| 23 | padding-inline: props.get(vars.$block--pad-i); | 23 | padding-inline: props.get(vars.$block--pad-i); |
| 24 | margin-block: props.get(vars.$block--margin-bs) 0; | 24 | margin-block: props.get(vars.$block--margin-bs) 0; |
| 25 | margin-inline: 0; | 25 | margin-inline: 0; |
| 26 | color: props.get(vars.$block--fg); | 26 | color: props.get(vars.$block--fg); |
| 27 | background-color: props.get(vars.$block--bg); | 27 | background-color: props.get(vars.$block--bg); |
| 28 | border-radius: props.get(vars.$block--rounding); | 28 | border-radius: props.get(vars.$block--rounding); |
| 29 | 29 | ||
| 30 | code { | 30 | code { |
| 31 | display: inline-block; | 31 | display: inline-block; |
| 32 | padding: 0; | 32 | padding: 0; |
| 33 | margin-inline-end: props.get(vars.$block--pad-i); | 33 | margin-inline-end: props.get(vars.$block--pad-i); |
| 34 | color: currentColor; | 34 | color: currentColor; |
| 35 | background-color: transparent; | 35 | background-color: transparent; |
| 36 | border-radius: 0; | 36 | border-radius: 0; |
| 37 | } | 37 | } |
| 38 | } | 38 | } |
| 39 | } | 39 | } |
diff --git a/src/scopes/_code.vars.scss b/src/scopes/_code.vars.scss index e22421c..329d372 100644 --- a/src/scopes/_code.vars.scss +++ b/src/scopes/_code.vars.scss | |||
| @@ -1,25 +1,18 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | @use "./implicit.vars" as implicit; | 3 | @use './implicit.vars' as implicit; |
| 4 | 4 | ||
| 5 | $inline--pad-i: props.def(--s-code--inline--pad-i, props.get(core.$size--50)) !default; | 5 | $inline--pad-i: props.def(--s-code--inline--pad-i, props.get(core.$size--50)) !default; |
| 6 | $inline--pad-b: props.def(--s-code--inline--pad-b, props.get(core.$size--10)) !default; | 6 | $inline--pad-b: props.def(--s-code--inline--pad-b, props.get(core.$size--10)) !default; |
| 7 | $inline--rounding: props.def(--s-code--inline--rounding, props.get(core.$rounding--sm)) !default; | 7 | $inline--rounding: props.def(--s-code--inline--rounding, props.get(core.$rounding--sm)) !default; |
| 8 | 8 | ||
| 9 | $block--pad-i: props.def(--s-code--block--pad-i, props.get(core.$size--150)) !default; | 9 | $block--pad-i: props.def(--s-code--block--pad-i, props.get(core.$size--150)) !default; |
| 10 | $block--pad-b: props.def(--s-code--block--pad-b, props.get(core.$size--85)) !default; | 10 | $block--pad-b: props.def(--s-code--block--pad-b, props.get(core.$size--85)) !default; |
| 11 | $block--margin-bs: props.def( | 11 | $block--margin-bs: props.def(--s-code--block--margin-bs, props.get(implicit.$paragraph--margin-bs)) !default; |
| 12 | --s-code--block--margin-bs, | 12 | $block--rounding: props.def(--s-code--block--rounding, props.get(core.$rounding--sm)) !default; |
| 13 | props.get(implicit.$paragraph--margin-bs) | ||
| 14 | ) !default; | ||
| 15 | $block--rounding: props.def(--s-code--block--rounding, props.get(core.$rounding--sm)) !default; | ||
| 16 | 13 | ||
| 17 | $inline--fg: props.def(--s-code--inline--fg, props.get(core.$theme, --heading), "color") !default; | 14 | $inline--fg: props.def(--s-code--inline--fg, props.get(core.$theme, --heading), 'color') !default; |
| 18 | $inline--bg: props.def( | 15 | $inline--bg: props.def(--s-code--inline--bg, props.get(core.$theme, --base, --200), 'color') !default; |
| 19 | --s-code--inline--bg, | ||
| 20 | props.get(core.$theme, --base, --200), | ||
| 21 | "color" | ||
| 22 | ) !default; | ||
| 23 | 16 | ||
| 24 | $block--fg: props.def(--s-code--block--fg, props.get(core.$theme, --text), "color") !default; | 17 | $block--fg: props.def(--s-code--block--fg, props.get(core.$theme, --text), 'color') !default; |
| 25 | $block--bg: props.def(--s-code--block--bg, props.get(core.$theme, --base, --50), "color") !default; | 18 | $block--bg: props.def(--s-code--block--bg, props.get(core.$theme, --base, --50), 'color') !default; |
diff --git a/src/scopes/_figures.scss b/src/scopes/_figures.scss index 852ab5a..c993f5a 100644 --- a/src/scopes/_figures.scss +++ b/src/scopes/_figures.scss | |||
| @@ -1,20 +1,20 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../objects/figure.vars" as figure; | 4 | @use '../objects/figure.vars' as figure; |
| 5 | 5 | ||
| 6 | @mixin styles { | 6 | @mixin styles { |
| 7 | @include bem.scope("figures") { | 7 | @include bem.scope('figures') { |
| 8 | figcaption { | 8 | figcaption { |
| 9 | padding-block: props.get(figure.$pad-b); | 9 | padding-block: props.get(figure.$pad-b); |
| 10 | font-size: props.get(figure.$font-size); | 10 | font-size: props.get(figure.$font-size); |
| 11 | color: props.get(figure.$text-color); | 11 | color: props.get(figure.$text-color); |
| 12 | border-block-end: props.get(figure.$border-width) solid props.get(figure.$border-color); | 12 | border-block-end: props.get(figure.$border-width) solid props.get(figure.$border-color); |
| 13 | 13 | ||
| 14 | &::before { | 14 | &::before { |
| 15 | display: block; | 15 | display: block; |
| 16 | margin-block: -100em 100em; | 16 | margin-block: -100em 100em; |
| 17 | content: ""; | 17 | content: ''; |
| 18 | } | 18 | } |
| 19 | } | 19 | } |
| 20 | } | 20 | } |
diff --git a/src/scopes/_headings.scss b/src/scopes/_headings.scss index a6a7bbb..23623fd 100644 --- a/src/scopes/_headings.scss +++ b/src/scopes/_headings.scss | |||
| @@ -1,8 +1,8 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:string"; | 2 | @use 'sass:string'; |
| 3 | @use "pkg:iro-sass/bem"; | 3 | @use 'pkg:iro-sass/src/bem'; |
| 4 | @use "pkg:iro-sass/props"; | 4 | @use 'pkg:iro-sass/src/props'; |
| 5 | @use "../objects/heading.vars" as heading; | 5 | @use '../objects/heading.vars' as heading; |
| 6 | 6 | ||
| 7 | @mixin styles { | 7 | @mixin styles { |
| 8 | /* stylelint-disable-next-line scss/dollar-variable-pattern */ | 8 | /* stylelint-disable-next-line scss/dollar-variable-pattern */ |
| @@ -15,62 +15,56 @@ | |||
| 15 | xxl: h1, | 15 | xxl: h1, |
| 16 | ); | 16 | ); |
| 17 | 17 | ||
| 18 | @include bem.scope("headings") { | 18 | @include bem.scope('headings') { |
| 19 | h1, | 19 | h1, |
| 20 | h2, | 20 | h2, |
| 21 | h3, | 21 | h3, |
| 22 | h4, | 22 | h4, |
| 23 | h5, | 23 | h5, |
| 24 | h6 { | 24 | h6 { |
| 25 | display: block; | 25 | display: block; |
| 26 | margin-block-start: props.get(heading.$margin-bs); | 26 | margin-block-start: props.get(heading.$margin-bs); |
| 27 | font-family: props.get(heading.$font-family); | 27 | font-family: props.get(heading.$font-family); |
| 28 | font-weight: props.get(heading.$font-weight); | 28 | font-weight: props.get(heading.$font-weight); |
| 29 | font-feature-settings: props.get(heading.$feature-settings); | 29 | font-feature-settings: props.get(heading.$feature-settings); |
| 30 | line-height: props.get(heading.$line-height); | 30 | line-height: props.get(heading.$line-height); |
| 31 | text-transform: props.get(heading.$text-transform); | 31 | text-transform: props.get(heading.$text-transform); |
| 32 | letter-spacing: normal; | 32 | letter-spacing: normal; |
| 33 | transform: translateX(props.get(heading.$offset)); | 33 | transform: translateX(props.get(heading.$offset)); |
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | @include bem.elem("highlight") { | 36 | @include bem.elem('highlight') { |
| 37 | background-image: linear-gradient( | 37 | background-image: linear-gradient(to top, |
| 38 | to top, | 38 | transparent .15em, |
| 39 | transparent 0.15em, | 39 | props.get(heading.$bg-color) .15em, |
| 40 | props.get(heading.$bg-color) 0.15em, | 40 | props.get(heading.$bg-color) .6em, |
| 41 | props.get(heading.$bg-color) 0.6em, | 41 | transparent .6em); |
| 42 | transparent 0.6em | ||
| 43 | ); | ||
| 44 | } | 42 | } |
| 45 | 43 | ||
| 46 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, | 44 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, $feature-settings, $text-transform, $text-color in heading.$sizes { |
| 47 | $feature-settings, $text-transform, $text-color in heading.$sizes | ||
| 48 | { | ||
| 49 | #{map.get($-size-map, $mod)} { | 45 | #{map.get($-size-map, $mod)} { |
| 50 | font-family: props.get($font-family); | 46 | font-family: props.get($font-family); |
| 51 | font-size: props.get($font-size); | 47 | font-size: props.get($font-size); |
| 52 | font-weight: props.get($font-weight); | 48 | font-weight: props.get($font-weight); |
| 53 | font-feature-settings: props.get($feature-settings); | 49 | font-feature-settings: props.get($feature-settings); |
| 54 | line-height: props.get($line-height); | 50 | line-height: props.get($line-height); |
| 55 | color: props.get($text-color); | 51 | color: props.get($text-color); |
| 56 | text-transform: props.get($text-transform); | 52 | text-transform: props.get($text-transform); |
| 57 | letter-spacing: props.get($letter-spacing); | 53 | letter-spacing: props.get($letter-spacing); |
| 58 | } | 54 | } |
| 59 | } | 55 | } |
| 60 | 56 | ||
| 61 | @include bem.modifier("display") { | 57 | @include bem.modifier('display') { |
| 62 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, | 58 | @each $mod, $font-family, $line-height, $font-size, $font-weight, $letter-spacing, $feature-settings, $text-transform, $text-color in heading.$display--sizes { |
| 63 | $feature-settings, $text-transform, $text-color in heading.$display--sizes | ||
| 64 | { | ||
| 65 | #{map.get($-size-map, $mod)} { | 59 | #{map.get($-size-map, $mod)} { |
| 66 | font-family: props.get($font-family); | 60 | font-family: props.get($font-family); |
| 67 | font-size: props.get($font-size); | 61 | font-size: props.get($font-size); |
| 68 | font-weight: props.get($font-weight); | 62 | font-weight: props.get($font-weight); |
| 69 | font-feature-settings: props.get($feature-settings); | 63 | font-feature-settings: props.get($feature-settings); |
| 70 | line-height: props.get($line-height); | 64 | line-height: props.get($line-height); |
| 71 | color: props.get($text-color); | 65 | color: props.get($text-color); |
| 72 | text-transform: props.get($text-transform); | 66 | text-transform: props.get($text-transform); |
| 73 | letter-spacing: props.get($letter-spacing); | 67 | letter-spacing: props.get($letter-spacing); |
| 74 | } | 68 | } |
| 75 | } | 69 | } |
| 76 | } | 70 | } |
| @@ -85,16 +79,10 @@ | |||
| 85 | } | 79 | } |
| 86 | } | 80 | } |
| 87 | 81 | ||
| 88 | @include bem.modifier("display") { | 82 | @include bem.modifier('display') { |
| 89 | @each $mod, $value in heading.$sizes { | 83 | @each $mod, $value in heading.$sizes { |
| 90 | #{map.get($-size-map, $mod)} { | 84 | #{map.get($-size-map, $mod)} { |
| 91 | color: props.get( | 85 | color: props.get(heading.$static-themes, $theme, --display, --#{$mod}, --text-color); |
| 92 | heading.$static-themes, | ||
| 93 | $theme, | ||
| 94 | --display, | ||
| 95 | --#{$mod}, | ||
| 96 | --text-color | ||
| 97 | ); | ||
| 98 | } | 86 | } |
| 99 | } | 87 | } |
| 100 | } | 88 | } |
diff --git a/src/scopes/_implicit.scss b/src/scopes/_implicit.scss index f8c575d..728fd22 100644 --- a/src/scopes/_implicit.scss +++ b/src/scopes/_implicit.scss | |||
| @@ -1,21 +1,21 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:math"; | 2 | @use 'sass:math'; |
| 3 | @use "sass:meta"; | 3 | @use 'sass:meta'; |
| 4 | @use "sass:string"; | 4 | @use 'sass:string'; |
| 5 | @use "pkg:iro-sass/bem"; | 5 | @use 'pkg:iro-sass/src/bem'; |
| 6 | @use "pkg:iro-sass/props"; | 6 | @use 'pkg:iro-sass/src/props'; |
| 7 | @use "../props" as *; | 7 | @use '../props' as *; |
| 8 | @use "../core.vars" as core; | 8 | @use '../core.vars' as core; |
| 9 | 9 | ||
| 10 | @forward "implicit.vars"; | 10 | @forward 'implicit.vars'; |
| 11 | @use "implicit.vars" as vars; | 11 | @use 'implicit.vars' as vars; |
| 12 | 12 | ||
| 13 | @mixin styles { | 13 | @mixin styles { |
| 14 | @include materialize-at-root(meta.module-variables("vars")); | 14 | @include materialize-at-root(meta.module-variables('vars')); |
| 15 | 15 | ||
| 16 | @layer scope { | 16 | @layer scope { |
| 17 | html { | 17 | html { |
| 18 | accent-color: props.get(core.$theme, --accent, --600); | 18 | accent-color: props.get(core.$theme, --accent, --600); |
| 19 | scrollbar-color: props.get(core.$theme, --text-disabled) transparent; | 19 | scrollbar-color: props.get(core.$theme, --text-disabled) transparent; |
| 20 | 20 | ||
| 21 | &:has(dialog[open]), | 21 | &:has(dialog[open]), |
| @@ -26,31 +26,31 @@ | |||
| 26 | } | 26 | } |
| 27 | 27 | ||
| 28 | body { | 28 | body { |
| 29 | padding: 0; | 29 | padding: 0; |
| 30 | margin: 0; | 30 | margin: 0; |
| 31 | font-family: props.get(vars.$body--font-family); | 31 | font-family: props.get(vars.$body--font-family); |
| 32 | font-size: props.get(vars.$body--font-size); | 32 | font-size: props.get(vars.$body--font-size); |
| 33 | font-feature-settings: props.get(vars.$body--feature-settings); | 33 | font-feature-settings: props.get(vars.$body--feature-settings); |
| 34 | line-height: props.get(vars.$body--line-height); | 34 | line-height: props.get(vars.$body--line-height); |
| 35 | color: props.get(core.$theme, --text); | 35 | color: props.get(core.$theme, --text); |
| 36 | background-color: props.get(core.$theme, --bg-base); | 36 | background-color: props.get(core.$theme, --bg-base); |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | pre, | 39 | pre, |
| 40 | code { | 40 | code { |
| 41 | font-family: props.get(vars.$code--font-family); | 41 | font-family: props.get(vars.$code--font-family); |
| 42 | font-size: props.get(vars.$code--font-size); | 42 | font-size: props.get(vars.$code--font-size); |
| 43 | font-feature-settings: props.get(vars.$code--feature-settings); | 43 | font-feature-settings: props.get(vars.$code--feature-settings); |
| 44 | line-height: props.get(vars.$code--line-height); | 44 | line-height: props.get(vars.$code--line-height); |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | pre { | 47 | pre { |
| 48 | margin: 0; | 48 | margin: 0; |
| 49 | overflow-x: auto; | 49 | overflow-x: auto; |
| 50 | 50 | ||
| 51 | code { | 51 | code { |
| 52 | font-size: 1em; | 52 | font-size: 1em; |
| 53 | color: currentColor; | 53 | color: currentColor; |
| 54 | } | 54 | } |
| 55 | } | 55 | } |
| 56 | 56 | ||
| @@ -60,13 +60,13 @@ | |||
| 60 | h4, | 60 | h4, |
| 61 | h5, | 61 | h5, |
| 62 | h6 { | 62 | h6 { |
| 63 | margin-block: props.get(vars.$heading--margin-bs) 0; | 63 | margin-block: props.get(vars.$heading--margin-bs) 0; |
| 64 | font-family: props.get(vars.$heading--font-family); | 64 | font-family: props.get(vars.$heading--font-family); |
| 65 | font-size: props.get(vars.$heading--font-size); | 65 | font-size: props.get(vars.$heading--font-size); |
| 66 | font-weight: props.get(vars.$heading--font-weight); | 66 | font-weight: props.get(vars.$heading--font-weight); |
| 67 | font-feature-settings: props.get(vars.$heading--feature-settings); | 67 | font-feature-settings: props.get(vars.$heading--feature-settings); |
| 68 | line-height: props.get(vars.$heading--line-height); | 68 | line-height: props.get(vars.$heading--line-height); |
| 69 | color: props.get(vars.$heading--color); | 69 | color: props.get(vars.$heading--color); |
| 70 | 70 | ||
| 71 | & + & { | 71 | & + & { |
| 72 | margin-block-start: props.get(vars.$heading--margin-bs-sibling); | 72 | margin-block-start: props.get(vars.$heading--margin-bs-sibling); |
| @@ -91,14 +91,14 @@ | |||
| 91 | 91 | ||
| 92 | ul, | 92 | ul, |
| 93 | ol { | 93 | ol { |
| 94 | padding: 0; | 94 | padding: 0; |
| 95 | margin: 0; | 95 | margin: 0; |
| 96 | list-style: none; | 96 | list-style: none; |
| 97 | } | 97 | } |
| 98 | 98 | ||
| 99 | li { | 99 | li { |
| 100 | padding: 0; | 100 | padding: 0; |
| 101 | margin: 0; | 101 | margin: 0; |
| 102 | } | 102 | } |
| 103 | 103 | ||
| 104 | :focus, | 104 | :focus, |
| @@ -108,27 +108,28 @@ | |||
| 108 | 108 | ||
| 109 | :link, | 109 | :link, |
| 110 | :visited { | 110 | :visited { |
| 111 | color: currentColor; | 111 | color: currentColor; |
| 112 | text-decoration: none; | 112 | text-decoration: none; |
| 113 | } | 113 | } |
| 114 | 114 | ||
| 115 | |||
| 115 | button, | 116 | button, |
| 116 | input, | 117 | input, |
| 117 | textarea { | 118 | textarea { |
| 118 | box-sizing: content-box; | 119 | box-sizing: content-box; |
| 119 | padding: 0; | 120 | padding: 0; |
| 120 | margin: 0; | 121 | margin: 0; |
| 121 | font-family: inherit; | 122 | font-family: inherit; |
| 122 | font-size: 1em; | 123 | font-size: 1em; |
| 123 | font-style: inherit; | 124 | font-style: inherit; |
| 124 | font-weight: inherit; | 125 | font-weight: inherit; |
| 125 | line-height: inherit; | 126 | line-height: inherit; |
| 126 | color: currentColor; | 127 | color: currentColor; |
| 127 | text-align: inherit; | 128 | text-align: inherit; |
| 128 | text-transform: inherit; | 129 | text-transform: inherit; |
| 129 | appearance: none; | 130 | appearance: none; |
| 130 | background: none; | 131 | background: none; |
| 131 | border: 0; | 132 | border: 0; |
| 132 | 133 | ||
| 133 | &::-moz-focus-inner { | 134 | &::-moz-focus-inner { |
| 134 | border: 0; | 135 | border: 0; |
| @@ -138,7 +139,7 @@ | |||
| 138 | input, | 139 | input, |
| 139 | textarea { | 140 | textarea { |
| 140 | &::placeholder { | 141 | &::placeholder { |
| 141 | color: props.get(core.$theme, --text-mute); | 142 | color: props.get(core.$theme, --text-mute); |
| 142 | opacity: 1; | 143 | opacity: 1; |
| 143 | } | 144 | } |
| 144 | 145 | ||
| @@ -152,15 +153,15 @@ | |||
| 152 | } | 153 | } |
| 153 | 154 | ||
| 154 | hr { | 155 | hr { |
| 155 | block-size: props.get(core.$border-width--thin); | 156 | block-size: props.get(core.$border-width--thin); |
| 156 | margin: 0; | 157 | margin: 0; |
| 157 | background-color: props.get(core.$theme, --border); | 158 | background-color: props.get(core.$theme, --border); |
| 158 | border: 0; | 159 | border: 0; |
| 159 | } | 160 | } |
| 160 | 161 | ||
| 161 | figure { | 162 | figure { |
| 162 | padding: 0; | 163 | padding: 0; |
| 163 | margin: 0; | 164 | margin: 0; |
| 164 | } | 165 | } |
| 165 | 166 | ||
| 166 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 167 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
diff --git a/src/scopes/_implicit.vars.scss b/src/scopes/_implicit.vars.scss index f0256b0..64d4a8f 100644 --- a/src/scopes/_implicit.vars.scss +++ b/src/scopes/_implicit.vars.scss | |||
| @@ -1,69 +1,26 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | 3 | ||
| 4 | $paragraph--margin-bs: props.def( | 4 | $paragraph--margin-bs: props.def(--s-implicit--paragraph--margin-bs, props.get(core.$size--200)) !default; |
| 5 | --s-implicit--paragraph--margin-bs, | ||
| 6 | props.get(core.$size--200) | ||
| 7 | ) !default; | ||
| 8 | 5 | ||
| 9 | $small--font-size: props.def( | 6 | $small--font-size: props.def(--s-implicit--small--font-size, props.get(core.$font-size--75)) !default; |
| 10 | --s-implicit--small--font-size, | ||
| 11 | props.get(core.$font-size--75) | ||
| 12 | ) !default; | ||
| 13 | 7 | ||
| 14 | $body--font-family: props.def( | 8 | $body--font-family: props.def(--s-implicit--body--font-family, props.get(core.$font--standard--family)) !default; |
| 15 | --s-implicit--body--font-family, | 9 | $body--line-height: props.def(--s-implicit--body--line-height, props.get(core.$font--standard--line-height)) !default; |
| 16 | props.get(core.$font--standard--family) | 10 | $body--font-size: props.def(--s-implicit--body--font-size, props.get(core.$font-size--100)); |
| 17 | ) !default; | 11 | $body--feature-settings: props.def(--s-implicit--body--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 18 | $body--line-height: props.def( | ||
| 19 | --s-implicit--body--line-height, | ||
| 20 | props.get(core.$font--standard--line-height) | ||
| 21 | ) !default; | ||
| 22 | $body--font-size: props.def(--s-implicit--body--font-size, props.get(core.$font-size--100)); | ||
| 23 | $body--feature-settings: props.def( | ||
| 24 | --s-implicit--body--feature-settings, | ||
| 25 | props.get(core.$font--standard--feature-settings) | ||
| 26 | ) !default; | ||
| 27 | 12 | ||
| 28 | $code--font-family: props.def( | 13 | $code--font-family: props.def(--s-implicit--code--font-family, props.get(core.$font--mono--family)) !default; |
| 29 | --s-implicit--code--font-family, | 14 | $code--line-height: props.def(--s-implicit--code--line-height, props.get(core.$font--mono--line-height)) !default; |
| 30 | props.get(core.$font--mono--family) | 15 | $code--font-size: props.def(--s-implicit--code--font-size, .93em); |
| 31 | ) !default; | 16 | $code--feature-settings: props.def(--s-implicit--code--feature-settings, props.get(core.$font--mono--feature-settings)) !default; |
| 32 | $code--line-height: props.def( | ||
| 33 | --s-implicit--code--line-height, | ||
| 34 | props.get(core.$font--mono--line-height) | ||
| 35 | ) !default; | ||
| 36 | $code--font-size: props.def(--s-implicit--code--font-size, 0.93em); | ||
| 37 | $code--feature-settings: props.def( | ||
| 38 | --s-implicit--code--feature-settings, | ||
| 39 | props.get(core.$font--mono--feature-settings) | ||
| 40 | ) !default; | ||
| 41 | 17 | ||
| 42 | $heading--margin-bs: props.def( | 18 | $heading--margin-bs: props.def(--s-implicit--heading--margin-bs, props.get(core.$size--700)) !default; |
| 43 | --s-implicit--heading--margin-bs, | 19 | $heading--margin-bs-sibling: props.def(--s-implicit--heading--margin-bs-sibling, props.get(core.$size--325)) !default; |
| 44 | props.get(core.$size--700) | 20 | $heading--font-family: props.def(--s-implicit--heading--font-family, props.get(core.$font--standard--family)) !default; |
| 45 | ) !default; | 21 | $heading--line-height: props.def(--s-implicit--heading--line-height, props.get(core.$font--standard--line-height)) !default; |
| 46 | $heading--margin-bs-sibling: props.def( | 22 | $heading--font-weight: props.def(--s-implicit--heading--font-weight, bold) !default; |
| 47 | --s-implicit--heading--margin-bs-sibling, | 23 | $heading--font-size: props.def(--s-implicit--heading--font-size, props.get(core.$font-size--100)); |
| 48 | props.get(core.$size--325) | 24 | $heading--feature-settings: props.def(--s-implicit--heading--feature-settings, props.get(core.$font--standard--feature-settings)) !default; |
| 49 | ) !default; | ||
| 50 | $heading--font-family: props.def( | ||
| 51 | --s-implicit--heading--font-family, | ||
| 52 | props.get(core.$font--standard--family) | ||
| 53 | ) !default; | ||
| 54 | $heading--line-height: props.def( | ||
| 55 | --s-implicit--heading--line-height, | ||
| 56 | props.get(core.$font--standard--line-height) | ||
| 57 | ) !default; | ||
| 58 | $heading--font-weight: props.def(--s-implicit--heading--font-weight, bold) !default; | ||
| 59 | $heading--font-size: props.def(--s-implicit--heading--font-size, props.get(core.$font-size--100)); | ||
| 60 | $heading--feature-settings: props.def( | ||
| 61 | --s-implicit--heading--feature-settings, | ||
| 62 | props.get(core.$font--standard--feature-settings) | ||
| 63 | ) !default; | ||
| 64 | 25 | ||
| 65 | $heading--color: props.def( | 26 | $heading--color: props.def(--s-implicit--heading--color, props.get(core.$theme, --heading), 'color') !default; |
| 66 | --s-implicit--heading--color, | ||
| 67 | props.get(core.$theme, --heading), | ||
| 68 | "color" | ||
| 69 | ) !default; | ||
diff --git a/src/scopes/_links.scss b/src/scopes/_links.scss index fea78f1..8498487 100644 --- a/src/scopes/_links.scss +++ b/src/scopes/_links.scss | |||
| @@ -1,79 +1,78 @@ | |||
| 1 | @use "sass:map"; | 1 | @use 'sass:map'; |
| 2 | @use "sass:meta"; | 2 | @use 'sass:meta'; |
| 3 | @use "sass:string"; | 3 | @use 'sass:string'; |
| 4 | @use "pkg:iro-sass/bem"; | 4 | @use 'pkg:iro-sass/src/bem'; |
| 5 | @use "pkg:iro-sass/props"; | 5 | @use 'pkg:iro-sass/src/props'; |
| 6 | @use "../props" as *; | 6 | @use '../props' as *; |
| 7 | 7 | ||
| 8 | @forward "links.vars"; | 8 | @forward 'links.vars'; |
| 9 | @use "links.vars" as vars; | 9 | @use 'links.vars' as vars; |
| 10 | 10 | ||
| 11 | @mixin styles { | 11 | @mixin styles { |
| 12 | @include materialize-at-root(meta.module-variables("vars")); | 12 | @include materialize-at-root(meta.module-variables('vars')); |
| 13 | 13 | ||
| 14 | @include bem.scope("links") { | 14 | @include bem.scope('links') { |
| 15 | :link, | 15 | :link, |
| 16 | :visited { | 16 | :visited { |
| 17 | color: currentColor; | 17 | color: currentColor; |
| 18 | text-decoration: underline; | 18 | text-decoration: underline; |
| 19 | text-decoration-thickness: props.get(vars.$underline-width); | 19 | text-decoration-thickness: props.get(vars.$underline-width); |
| 20 | text-decoration-color: props.get(vars.$underline-color); | 20 | text-decoration-color: props.get(vars.$underline-color); |
| 21 | border-radius: props.get(vars.$rounding-sm); | 21 | border-radius: props.get(vars.$rounding-sm); |
| 22 | box-decoration-break: clone; | 22 | box-decoration-break: clone; |
| 23 | 23 | ||
| 24 | &:hover { | 24 | &:hover { |
| 25 | text-decoration: underline; | 25 | text-decoration: underline; |
| 26 | text-decoration-thickness: props.get(vars.$hover--underline-width); | 26 | text-decoration-thickness: props.get(vars.$hover--underline-width); |
| 27 | text-decoration-skip-ink: none; | 27 | text-decoration-skip-ink: none; |
| 28 | } | 28 | } |
| 29 | 29 | ||
| 30 | &:focus-visible { | 30 | &:focus-visible { |
| 31 | color: props.get(vars.$key-focus--text-color); | 31 | color: props.get(vars.$key-focus--text-color); |
| 32 | text-decoration: none; | 32 | text-decoration: none; |
| 33 | outline: props.get(vars.$key-focus--border-color) solid | 33 | outline: props.get(vars.$key-focus--border-color) solid props.get(vars.$key-focus--border-width); |
| 34 | props.get(vars.$key-focus--border-width); | 34 | box-shadow: |
| 35 | box-shadow: 0 0 0 | 35 | 0 |
| 36 | calc( | 36 | 0 |
| 37 | props.get(vars.$key-focus--border-width) + | 37 | 0 |
| 38 | props.get(vars.$key-focus--outline-width) | 38 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 39 | ) | ||
| 40 | props.get(vars.$key-focus--outline-color); | 39 | props.get(vars.$key-focus--outline-color); |
| 41 | } | 40 | } |
| 42 | } | 41 | } |
| 43 | 42 | ||
| 44 | @include bem.modifier("invisible") { | 43 | @include bem.modifier('invisible') { |
| 45 | :link, | 44 | :link, |
| 46 | :visited { | 45 | :visited { |
| 47 | text-decoration: none; | 46 | text-decoration: none; |
| 48 | } | 47 | } |
| 49 | } | 48 | } |
| 50 | 49 | ||
| 51 | @include bem.modifier("colored") { | 50 | @include bem.modifier('colored') { |
| 52 | :link { | 51 | :link { |
| 53 | color: props.get(vars.$colored--text-color); | 52 | color: props.get(vars.$colored--text-color); |
| 54 | text-decoration-color: props.get(vars.$colored--underline-color); | 53 | text-decoration-color: props.get(vars.$colored--underline-color); |
| 55 | 54 | ||
| 56 | &:hover { | 55 | &:hover { |
| 57 | color: props.get(vars.$colored--hover--text-color); | 56 | color: props.get(vars.$colored--hover--text-color); |
| 58 | } | 57 | } |
| 59 | } | 58 | } |
| 60 | 59 | ||
| 61 | :visited { | 60 | :visited { |
| 62 | color: props.get(vars.$colored--visited--text-color); | 61 | color: props.get(vars.$colored--visited--text-color); |
| 63 | text-decoration-color: props.get(vars.$colored--visited--underline-color); | 62 | text-decoration-color: props.get(vars.$colored--visited--underline-color); |
| 64 | 63 | ||
| 65 | &:hover { | 64 | &:hover { |
| 66 | color: props.get(vars.$colored--visited--hover--text-color); | 65 | color: props.get(vars.$colored--visited--hover--text-color); |
| 67 | } | 66 | } |
| 68 | } | 67 | } |
| 69 | } | 68 | } |
| 70 | 69 | ||
| 71 | @include bem.modifier("mark-external") { | 70 | @include bem.modifier('mark-external') { |
| 72 | :link, | 71 | :link, |
| 73 | :visited { | 72 | :visited { |
| 74 | &[href^="http"] { | 73 | &[href^='http'] { |
| 75 | &::after { | 74 | &::after { |
| 76 | content: " ↗"; | 75 | content: ' ↗'; |
| 77 | } | 76 | } |
| 78 | } | 77 | } |
| 79 | } | 78 | } |
| @@ -83,30 +82,21 @@ | |||
| 83 | @include bem.modifier(string.slice($theme, 3)) { | 82 | @include bem.modifier(string.slice($theme, 3)) { |
| 84 | :link, | 83 | :link, |
| 85 | :visited { | 84 | :visited { |
| 86 | color: props.get(vars.$static-themes, $theme, --text-color); | 85 | color: props.get(vars.$static-themes, $theme, --text-color); |
| 87 | text-decoration-color: props.get( | 86 | text-decoration-color: props.get(vars.$static-themes, $theme, --underline-color); |
| 88 | vars.$static-themes, | ||
| 89 | $theme, | ||
| 90 | --underline-color | ||
| 91 | ); | ||
| 92 | 87 | ||
| 93 | &:hover { | 88 | &:hover { |
| 94 | color: props.get(vars.$static-themes, $theme, --hover, --text-color); | 89 | color: props.get(vars.$static-themes, $theme, --hover, --text-color); |
| 95 | } | 90 | } |
| 96 | 91 | ||
| 97 | &:focus-visible { | 92 | &:focus-visible { |
| 98 | color: props.get(vars.$static-themes, $theme, --key-focus, --text-color); | 93 | color: props.get(vars.$static-themes, $theme, --key-focus, --text-color); |
| 99 | outline-color: props.get( | 94 | outline-color: props.get(vars.$static-themes, $theme, --key-focus, --border-color); |
| 100 | vars.$static-themes, | 95 | box-shadow: |
| 101 | $theme, | 96 | 0 |
| 102 | --key-focus, | 97 | 0 |
| 103 | --border-color | 98 | 0 |
| 104 | ); | 99 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 105 | box-shadow: 0 0 0 | ||
| 106 | calc( | ||
| 107 | props.get(vars.$key-focus--border-width) + | ||
| 108 | props.get(vars.$key-focus--outline-width) | ||
| 109 | ) | ||
| 110 | props.get(vars.$static-themes, $theme, --key-focus, --outline-color); | 100 | props.get(vars.$static-themes, $theme, --key-focus, --outline-color); |
| 111 | } | 101 | } |
| 112 | } | 102 | } |
| @@ -116,26 +106,21 @@ | |||
| 116 | :has(img) { | 106 | :has(img) { |
| 117 | img { | 107 | img { |
| 118 | margin-inline: calc(-1 * props.get(vars.$key-focus--border-offset)); | 108 | margin-inline: calc(-1 * props.get(vars.$key-focus--border-offset)); |
| 119 | border: props.get(vars.$key-focus--border-offset) solid transparent; | 109 | border: props.get(vars.$key-focus--border-offset) solid transparent; |
| 120 | border-radius: calc( | 110 | border-radius: calc(props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset)); |
| 121 | props.get(vars.$rounding) + props.get(vars.$key-focus--border-offset) | ||
| 122 | ); | ||
| 123 | } | 111 | } |
| 124 | 112 | ||
| 125 | &:link, | 113 | &:link, |
| 126 | &:visited { | 114 | &:visited { |
| 127 | &:focus-visible { | 115 | &:focus-visible { |
| 128 | outline: none; | 116 | outline: none; |
| 129 | box-shadow: none; | 117 | box-shadow: none; |
| 130 | 118 | ||
| 131 | img { | 119 | img { |
| 132 | outline: props.get(vars.$key-focus--border-color) solid | 120 | outline: props.get(vars.$key-focus--border-color) solid |
| 133 | props.get(vars.$key-focus--border-width); | 121 | props.get(vars.$key-focus--border-width); |
| 134 | box-shadow: 0 0 0 | 122 | box-shadow: 0 0 0 |
| 135 | calc( | 123 | calc(props.get(vars.$key-focus--border-width) + props.get(vars.$key-focus--outline-width)) |
| 136 | props.get(vars.$key-focus--border-width) + | ||
| 137 | props.get(vars.$key-focus--outline-width) | ||
| 138 | ) | ||
| 139 | props.get(vars.$key-focus--outline-color); | 124 | props.get(vars.$key-focus--outline-color); |
| 140 | } | 125 | } |
| 141 | } | 126 | } |
diff --git a/src/scopes/_links.vars.scss b/src/scopes/_links.vars.scss index c06789b..cd80e4c 100644 --- a/src/scopes/_links.vars.scss +++ b/src/scopes/_links.vars.scss | |||
| @@ -1,106 +1,49 @@ | |||
| 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 | $rounding: props.def(--s-links--rounding, props.get(core.$rounding)) !default; | 6 | $rounding: props.def(--s-links--rounding, props.get(core.$rounding)) !default; |
| 7 | $rounding-sm: props.def(--s-links--rounding-sm, props.get(core.$rounding--sm)) !default; | 7 | $rounding-sm: props.def(--s-links--rounding-sm, props.get(core.$rounding--sm)) !default; |
| 8 | $underline-width: props.def( | 8 | $underline-width: props.def(--s-links--underline-width, props.get(core.$border-width--thin)) !default; |
| 9 | --s-links--underline-width, | 9 | $hover--underline-width: props.def(--s-links--hover--underline-width, props.get(core.$border-width--medium)) !default; |
| 10 | props.get(core.$border-width--thin) | ||
| 11 | ) !default; | ||
| 12 | $hover--underline-width: props.def( | ||
| 13 | --s-links--hover--underline-width, | ||
| 14 | props.get(core.$border-width--medium) | ||
| 15 | ) !default; | ||
| 16 | 10 | ||
| 17 | $key-focus--border-width: props.def( | 11 | $key-focus--border-width: props.def(--s-links--key-focus--border-width, props.get(core.$key-focus--border-width)) !default; |
| 18 | --s-links--key-focus--border-width, | 12 | $key-focus--border-offset: props.def(--s-links--key-focus--border-offset, props.get(core.$key-focus--border-offset)) !default; |
| 19 | props.get(core.$key-focus--border-width) | 13 | $key-focus--outline-width: props.def(--s-links--key-focus--outline-width, props.get(core.$key-focus--outline-width)) !default; |
| 20 | ) !default; | ||
| 21 | $key-focus--border-offset: props.def( | ||
| 22 | --s-links--key-focus--border-offset, | ||
| 23 | props.get(core.$key-focus--border-offset) | ||
| 24 | ) !default; | ||
| 25 | $key-focus--outline-width: props.def( | ||
| 26 | --s-links--key-focus--outline-width, | ||
| 27 | props.get(core.$key-focus--outline-width) | ||
| 28 | ) !default; | ||
| 29 | 14 | ||
| 30 | $underline-color: props.def( | 15 | $underline-color: props.def(--s-links--underline-color, props.get(core.$theme, --text-mute-more), 'color') !default; |
| 31 | --s-links--underline-color, | ||
| 32 | props.get(core.$theme, --text-mute-more), | ||
| 33 | "color" | ||
| 34 | ) !default; | ||
| 35 | 16 | ||
| 36 | $colored--text-color: props.def( | 17 | $colored--text-color: props.def(--s-links--colored--text-color, props.get(core.$theme, --accent, --1100), 'color') !default; |
| 37 | --s-links--colored--text-color, | 18 | $colored--underline-color: props.def(--s-links--colored--underline-color, props.get(core.$theme, --accent, --600), 'color') !default; |
| 38 | props.get(core.$theme, --accent, --1100), | 19 | $colored--hover--text-color: props.def(--s-links--colored--hover--text-color, props.get(core.$theme, --accent, --1300), 'color') !default; |
| 39 | "color" | ||
| 40 | ) !default; | ||
| 41 | $colored--underline-color: props.def( | ||
| 42 | --s-links--colored--underline-color, | ||
| 43 | props.get(core.$theme, --accent, --600), | ||
| 44 | "color" | ||
| 45 | ) !default; | ||
| 46 | $colored--hover--text-color: props.def( | ||
| 47 | --s-links--colored--hover--text-color, | ||
| 48 | props.get(core.$theme, --accent, --1300), | ||
| 49 | "color" | ||
| 50 | ) !default; | ||
| 51 | 20 | ||
| 52 | $colored--visited--text-color: props.def( | 21 | $colored--visited--text-color: props.def(--s-links--colored--visited--text-color, props.get(core.$theme, --purple, --1100), 'color') !default; |
| 53 | --s-links--colored--visited--text-color, | 22 | $colored--visited--underline-color: props.def(--s-links--colored--visited--underline-color, props.get(core.$theme, --purple, --600), 'color') !default; |
| 54 | props.get(core.$theme, --purple, --1100), | 23 | $colored--visited--hover--text-color: props.def(--s-links--colored--visited--hover--text-color, props.get(core.$theme, --purple, --1300), 'color') !default; |
| 55 | "color" | ||
| 56 | ) !default; | ||
| 57 | $colored--visited--underline-color: props.def( | ||
| 58 | --s-links--colored--visited--underline-color, | ||
| 59 | props.get(core.$theme, --purple, --600), | ||
| 60 | "color" | ||
| 61 | ) !default; | ||
| 62 | $colored--visited--hover--text-color: props.def( | ||
| 63 | --s-links--colored--visited--hover--text-color, | ||
| 64 | props.get(core.$theme, --purple, --1300), | ||
| 65 | "color" | ||
| 66 | ) !default; | ||
| 67 | 24 | ||
| 68 | $key-focus--text-color: props.def( | 25 | $key-focus--text-color: props.def(--s-links--key-focus--text-color, props.get(core.$theme, --focus, --text), 'color') !default; |
| 69 | --s-links--key-focus--text-color, | 26 | $key-focus--border-color: props.def(--s-links--key-focus--border-color, props.get(core.$theme, --focus, --border), 'color') !default; |
| 70 | props.get(core.$theme, --focus, --text), | 27 | $key-focus--outline-color: props.def(--s-links--key-focus--outline-color, props.get(core.$theme, --focus, --outline), 'color') !default; |
| 71 | "color" | ||
| 72 | ) !default; | ||
| 73 | $key-focus--border-color: props.def( | ||
| 74 | --s-links--key-focus--border-color, | ||
| 75 | props.get(core.$theme, --focus, --border), | ||
| 76 | "color" | ||
| 77 | ) !default; | ||
| 78 | $key-focus--outline-color: props.def( | ||
| 79 | --s-links--key-focus--outline-color, | ||
| 80 | props.get(core.$theme, --focus, --outline), | ||
| 81 | "color" | ||
| 82 | ) !default; | ||
| 83 | 28 | ||
| 84 | $static-themes: props.def(--s-links, (), "color"); | 29 | $static-themes: props.def(--s-links, (), 'color'); |
| 85 | @each $theme in map.keys(props.get(core.$transparent-colors)) { | 30 | @each $theme in map.keys(props.get(core.$transparent-colors)) { |
| 86 | $link-theme: --static-#{string.slice($theme, 3)}; | 31 | $link-theme: --static-#{string.slice($theme, 3)}; |
| 87 | 32 | ||
| 88 | $static-themes: props.merge( | 33 | $static-themes: props.merge($static-themes, ( |
| 89 | $static-themes, | 34 | $link-theme: ( |
| 90 | ( | 35 | --text-color: currentColor, |
| 91 | $link-theme: ( | 36 | --underline-color: props.get(core.$transparent-colors, $theme, --500), |
| 92 | --text-color: currentColor, | ||
| 93 | --underline-color: props.get(core.$transparent-colors, $theme, --500), | ||
| 94 | --hover: ( | ||
| 95 | --text-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 96 | ), | ||
| 97 | 37 | ||
| 98 | --key-focus: ( | 38 | --hover: ( |
| 99 | --text-color: props.get(core.$transparent-colors, $theme, --900), | 39 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 100 | --border-color: props.get(core.$transparent-colors, $theme, --900), | 40 | ), |
| 101 | --outline-color: props.get(core.$transparent-colors, $theme, --300), | 41 | |
| 102 | ), | 42 | --key-focus: ( |
| 103 | ), | 43 | --text-color: props.get(core.$transparent-colors, $theme, --900), |
| 44 | --border-color: props.get(core.$transparent-colors, $theme, --900), | ||
| 45 | --outline-color: props.get(core.$transparent-colors, $theme, --300), | ||
| 46 | ), | ||
| 104 | ) | 47 | ) |
| 105 | ); | 48 | )); |
| 106 | } | 49 | } |
diff --git a/src/scopes/_lists.scss b/src/scopes/_lists.scss index 7b9ddbc..0285bb0 100644 --- a/src/scopes/_lists.scss +++ b/src/scopes/_lists.scss | |||
| @@ -1,20 +1,20 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | @use "../core.vars" as core; | 5 | @use '../core.vars' as core; |
| 6 | 6 | ||
| 7 | @forward "lists.vars"; | 7 | @forward 'lists.vars'; |
| 8 | @use "lists.vars" as vars; | 8 | @use 'lists.vars' as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables("vars")); | 11 | @include materialize-at-root(meta.module-variables('vars')); |
| 12 | 12 | ||
| 13 | @include bem.scope("lists") { | 13 | @include bem.scope('lists') { |
| 14 | ul, | 14 | ul, |
| 15 | ol { | 15 | ol { |
| 16 | padding-inline-start: props.get(vars.$indent); | 16 | padding-inline-start: props.get(vars.$indent); |
| 17 | margin-block-start: props.get(vars.$margin-bs); | 17 | margin-block-start: props.get(vars.$margin-bs); |
| 18 | 18 | ||
| 19 | ul, | 19 | ul, |
| 20 | ol { | 20 | ol { |
| @@ -31,22 +31,22 @@ | |||
| 31 | } | 31 | } |
| 32 | 32 | ||
| 33 | dl { | 33 | dl { |
| 34 | padding: 0; | 34 | padding: 0; |
| 35 | margin-block: props.get(vars.$margin-bs) 0; | 35 | margin-block: props.get(vars.$margin-bs) 0; |
| 36 | margin-inline: 0; | 36 | margin-inline: 0; |
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | dt { | 39 | dt { |
| 40 | font-weight: bold; | 40 | font-weight: bold; |
| 41 | color: props.get(core.$theme, --heading); | 41 | color: props.get(core.$theme, --heading); |
| 42 | } | 42 | } |
| 43 | 43 | ||
| 44 | dd { | 44 | dd { |
| 45 | margin-block: 0; | 45 | margin-block: 0; |
| 46 | margin-inline: props.get(vars.$indent) 0; | 46 | margin-inline: props.get(vars.$indent) 0; |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | @include bem.modifier("compact") { | 49 | @include bem.modifier('compact') { |
| 50 | ul, | 50 | ul, |
| 51 | ol { | 51 | ol { |
| 52 | padding-inline-start: calc(props.get(vars.$compact--indent) - 3px); | 52 | padding-inline-start: calc(props.get(vars.$compact--indent) - 3px); |
diff --git a/src/scopes/_lists.vars.scss b/src/scopes/_lists.vars.scss index 57fcc54..e40f194 100644 --- a/src/scopes/_lists.vars.scss +++ b/src/scopes/_lists.vars.scss | |||
| @@ -1,11 +1,8 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "../core.vars" as core; | 2 | @use '../core.vars' as core; |
| 3 | @use "./implicit.vars" as implicit; | 3 | @use './implicit.vars' as implicit; |
| 4 | 4 | ||
| 5 | $indent: props.def(--s-lists--indent, calc(props.get(core.$list--indent) + 1em)) !default; | 5 | $indent: props.def(--s-lists--indent, calc(props.get(core.$list--indent) + 1em)) !default; |
| 6 | $margin-bs: props.def(--s-lists--margin-bs, props.get(implicit.$paragraph--margin-bs)) !default; | 6 | $margin-bs: props.def(--s-lists--margin-bs, props.get(implicit.$paragraph--margin-bs)) !default; |
| 7 | 7 | ||
| 8 | $compact--indent: props.def( | 8 | $compact--indent: props.def(--s-lists--compact--indent, props.get(core.$list--compact-indent)) !default; |
| 9 | --s-lists--compact--indent, | ||
| 10 | props.get(core.$list--compact-indent) | ||
| 11 | ) !default; | ||
diff --git a/src/scopes/_tables.scss b/src/scopes/_tables.scss index 7442874..cb3a10c 100644 --- a/src/scopes/_tables.scss +++ b/src/scopes/_tables.scss | |||
| @@ -1,40 +1,40 @@ | |||
| 1 | @use "sass:meta"; | 1 | @use 'sass:meta'; |
| 2 | @use "pkg:iro-sass/bem"; | 2 | @use 'pkg:iro-sass/src/bem'; |
| 3 | @use "pkg:iro-sass/props"; | 3 | @use 'pkg:iro-sass/src/props'; |
| 4 | @use "../props" as *; | 4 | @use '../props' as *; |
| 5 | @use "../objects/table.vars" as table; | 5 | @use '../objects/table.vars' as table; |
| 6 | 6 | ||
| 7 | @forward "tables.vars"; | 7 | @forward 'tables.vars'; |
| 8 | @use "tables.vars" as vars; | 8 | @use 'tables.vars' as vars; |
| 9 | 9 | ||
| 10 | @mixin styles { | 10 | @mixin styles { |
| 11 | @include materialize-at-root(meta.module-variables("vars")); | 11 | @include materialize-at-root(meta.module-variables('vars')); |
| 12 | 12 | ||
| 13 | @include bem.scope("tables") { | 13 | @include bem.scope('tables') { |
| 14 | table { | 14 | table { |
| 15 | margin-block-start: props.get(vars.$margin-bs); | 15 | margin-block-start: props.get(vars.$margin-bs); |
| 16 | border-spacing: 0; | 16 | border-spacing: 0; |
| 17 | border-collapse: separate; | 17 | border-collapse: separate; |
| 18 | } | 18 | } |
| 19 | 19 | ||
| 20 | th { | 20 | th { |
| 21 | padding-block: props.get(table.$pad-b); | 21 | padding-block: props.get(table.$pad-b); |
| 22 | padding-inline: props.get(table.$pad-i); | 22 | padding-inline: props.get(table.$pad-i); |
| 23 | font-family: props.get(table.$heading--font-family); | 23 | font-family: props.get(table.$heading--font-family); |
| 24 | font-size: props.get(table.$heading--font-size); | 24 | font-size: props.get(table.$heading--font-size); |
| 25 | font-weight: props.get(table.$heading--font-weight); | 25 | font-weight: props.get(table.$heading--font-weight); |
| 26 | color: props.get(table.$heading-color); | 26 | color: props.get(table.$heading-color); |
| 27 | text-align: start; | 27 | text-align: start; |
| 28 | text-transform: props.get(table.$heading--text-transform); | 28 | text-transform: props.get(table.$heading--text-transform); |
| 29 | letter-spacing: props.get(table.$heading--letter-spacing); | 29 | letter-spacing: props.get(table.$heading--letter-spacing); |
| 30 | } | 30 | } |
| 31 | 31 | ||
| 32 | td { | 32 | td { |
| 33 | padding-block: props.get(table.$pad-b); | 33 | padding-block: props.get(table.$pad-b); |
| 34 | padding-inline: props.get(table.$pad-i); | 34 | padding-inline: props.get(table.$pad-i); |
| 35 | border-color: props.get(table.$border-color); | 35 | border-color: props.get(table.$border-color); |
| 36 | border-style: solid; | 36 | border-style: solid; |
| 37 | border-width: 0; | 37 | border-width: 0; |
| 38 | border-block-start-width: props.get(table.$border-width); | 38 | border-block-start-width: props.get(table.$border-width); |
| 39 | } | 39 | } |
| 40 | 40 | ||
| @@ -46,7 +46,7 @@ | |||
| 46 | } | 46 | } |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | @include bem.modifier("flush") { | 49 | @include bem.modifier('flush') { |
| 50 | th, | 50 | th, |
| 51 | td { | 51 | td { |
| 52 | &:first-child { | 52 | &:first-child { |
| @@ -59,7 +59,7 @@ | |||
| 59 | } | 59 | } |
| 60 | } | 60 | } |
| 61 | 61 | ||
| 62 | @include bem.modifier("box") { | 62 | @include bem.modifier('box') { |
| 63 | td { | 63 | td { |
| 64 | background-color: props.get(table.$box--bg-color); | 64 | background-color: props.get(table.$box--bg-color); |
| 65 | 65 | ||
diff --git a/src/scopes/_tables.vars.scss b/src/scopes/_tables.vars.scss index 12d0a0c..dfb4c76 100644 --- a/src/scopes/_tables.vars.scss +++ b/src/scopes/_tables.vars.scss | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | @use "pkg:iro-sass/props"; | 1 | @use 'pkg:iro-sass/src/props'; |
| 2 | @use "implicit.vars" as implicit; | 2 | @use 'implicit.vars' as implicit; |
| 3 | 3 | ||
| 4 | $margin-bs: props.def(--s-tables--margin-bs, props.get(implicit.$paragraph--margin-bs)) !default; | 4 | $margin-bs: props.def(--s-tables--margin-bs, props.get(implicit.$paragraph--margin-bs)) !default; |
diff --git a/src_demo/components/_box.scss b/src_demo/components/_box.scss index 2a88480..20e3bcd 100644 --- a/src_demo/components/_box.scss +++ b/src_demo/components/_box.scss | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | @use "pkg:iro-sass/bem"; | 1 | @use 'pkg:iro-sass/src/bem'; |
| 2 | @use "pkg:iro-sass/props"; | 2 | @use 'pkg:iro-sass/src/props'; |
| 3 | @use "../../src/core.vars"; | 3 | @use '../../src/core.vars'; |
| 4 | 4 | ||
| 5 | @include bem.component("box") { | 5 | @include bem.component('box') { |
| 6 | padding: 2em; | 6 | padding: 2em; |
| 7 | margin-block: 2em; | 7 | margin-block: 2em; |
| 8 | border: 1px solid props.get(core.$theme, --border); | 8 | border: 1px solid props.get(core.$theme, --border); |
| 9 | } | 9 | } |
diff --git a/src_demo/components/_content.scss b/src_demo/components/_content.scss index acd32a5..acfccbe 100644 --- a/src_demo/components/_content.scss +++ b/src_demo/components/_content.scss | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | @use "pkg:iro-sass/bem"; | 1 | @use 'pkg:iro-sass/src/bem'; |
| 2 | 2 | ||
| 3 | @include bem.component("content") { | 3 | @include bem.component('content') { |
| 4 | grid-area: content; | 4 | grid-area: content; |
| 5 | overflow: auto; | 5 | overflow: auto; |
| 6 | } | 6 | } |
diff --git a/src_demo/components/_sidebar.scss b/src_demo/components/_sidebar.scss index 4542847..7643d07 100644 --- a/src_demo/components/_sidebar.scss +++ b/src_demo/components/_sidebar.scss | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | @use "pkg:iro-sass/bem"; | 1 | @use 'pkg:iro-sass/src/bem'; |
| 2 | 2 | ||
| 3 | @include bem.component("sidebar") { | 3 | @include bem.component('sidebar') { |
| 4 | grid-area: sidebar; | 4 | grid-area: sidebar; |
| 5 | min-inline-size: 15em; | 5 | min-inline-size: 15em; |
| 6 | min-block-size: 0; | 6 | min-block-size: 0; |
| 7 | } | 7 | } |
diff --git a/src_demo/components/_view.scss b/src_demo/components/_view.scss index 7471cdb..8d80995 100644 --- a/src_demo/components/_view.scss +++ b/src_demo/components/_view.scss | |||
| @@ -1,9 +1,9 @@ | |||
| 1 | @use "pkg:iro-sass/bem"; | 1 | @use 'pkg:iro-sass/src/bem'; |
| 2 | 2 | ||
| 3 | @include bem.component("view") { | 3 | @include bem.component('view') { |
| 4 | display: none; | 4 | display: none; |
| 5 | 5 | ||
| 6 | &:target { | 6 | &:target { |
| 7 | display: block; | 7 | display: block; |
| 8 | } | 8 | } |
| 9 | } | 9 | } |
