diff options
Diffstat (limited to 'src/_declare-vars.scss')
| -rw-r--r-- | src/_declare-vars.scss | 225 |
1 files changed, 52 insertions, 173 deletions
diff --git a/src/_declare-vars.scss b/src/_declare-vars.scss index bf7e955..37d9cae 100644 --- a/src/_declare-vars.scss +++ b/src/_declare-vars.scss | |||
| @@ -1,7 +1,9 @@ | |||
| 1 | @use 'sass:map'; | ||
| 1 | @use 'iro-sass/src/index' as iro; | 2 | @use 'iro-sass/src/index' as iro; |
| 2 | @use 'include-media/dist/include-media' as media; | 3 | @use 'include-media/dist/include-media' as media; |
| 3 | @use '@oddbird/blend'; | 4 | @use '@oddbird/blend'; |
| 4 | @use 'functions' as fn; | 5 | @use 'functions' as fn; |
| 6 | @use 'config'; | ||
| 5 | 7 | ||
| 6 | @include iro.props-store(( | 8 | @include iro.props-store(( |
| 7 | --dims: ( | 9 | --dims: ( |
| @@ -102,12 +104,12 @@ | |||
| 102 | ), | 104 | ), |
| 103 | 105 | ||
| 104 | --paragraph: ( | 106 | --paragraph: ( |
| 105 | --margin-top: fn.dim(--size --300, null), | 107 | --margin-bs: fn.dim(--size --300, null), |
| 106 | ), | 108 | ), |
| 107 | 109 | ||
| 108 | --heading: ( | 110 | --heading: ( |
| 109 | --margin-top: fn.dim(--size --700, null), | 111 | --margin-bs: fn.dim(--size --700, null), |
| 110 | --margin-top-sibling: fn.dim(--size --325, null), | 112 | --margin-bs-sibling: fn.dim(--size --325, null), |
| 111 | 113 | ||
| 112 | --lg: fn.dim(--font-size --400, null), | 114 | --lg: fn.dim(--font-size --400, null), |
| 113 | --md: fn.dim(--font-size --75, null), | 115 | --md: fn.dim(--font-size --75, null), |
| @@ -137,12 +139,18 @@ | |||
| 137 | --compact-indent: fn.dim(--size --250, null), | 139 | --compact-indent: fn.dim(--size --250, null), |
| 138 | ), | 140 | ), |
| 139 | ), | 141 | ), |
| 140 | ), 'dims'); | 142 | )); |
| 143 | |||
| 144 | @each $breakpoint in map.keys(media.$breakpoints) { | ||
| 145 | @include media.media('<=#{$breakpoint}') { | ||
| 146 | @include iro.props-store((), $breakpoint); | ||
| 147 | } | ||
| 148 | } | ||
| 141 | 149 | ||
| 142 | @include iro.props-store(( | 150 | @include iro.props-store(( |
| 143 | --dims: ( | 151 | --dims: ( |
| 144 | --heading: ( | 152 | --heading: ( |
| 145 | --margin-top: fn.dim(--size --600, null), | 153 | --margin-bs: fn.dim(--size --600, null), |
| 146 | ), | 154 | ), |
| 147 | 155 | ||
| 148 | --list: ( | 156 | --list: ( |
| @@ -154,7 +162,7 @@ | |||
| 154 | @include iro.props-store(( | 162 | @include iro.props-store(( |
| 155 | --dims: ( | 163 | --dims: ( |
| 156 | --heading: ( | 164 | --heading: ( |
| 157 | --margin-top: fn.dim(--size --500, null), | 165 | --margin-bs: fn.dim(--size --500, null), |
| 158 | ), | 166 | ), |
| 159 | 167 | ||
| 160 | --list: ( | 168 | --list: ( |
| @@ -167,185 +175,56 @@ | |||
| 167 | 175 | ||
| 168 | @include iro.props-store(( | 176 | @include iro.props-store(( |
| 169 | --colors: ( | 177 | --colors: ( |
| 170 | --gray: fn.gray-palette(100%), | 178 | --base: fn.palette( |
| 171 | ), | 179 | map.get(config.$theme-light, --base), |
| 172 | ), 'palette-light-hi'); | 180 | map.get(config.$theme-light, --grays), |
| 173 | |||
| 174 | @include iro.props-store(( | ||
| 175 | --colors: ( | ||
| 176 | --gray: fn.gray-palette(97%), | ||
| 177 | ), | ||
| 178 | ), 'palette-light'); | ||
| 179 | |||
| 180 | @include iro.props-store(( | ||
| 181 | --colors: ( | ||
| 182 | --gray: fn.gray-palette(93%), | ||
| 183 | ), | ||
| 184 | ), 'palette-light-lo'); | ||
| 185 | |||
| 186 | // @include iro.props-store(( | ||
| 187 | // --colors: ( | ||
| 188 | // --gray: fn.gray-palette(88%), | ||
| 189 | // ), | ||
| 190 | // ), 'palette-light-lo2'); | ||
| 191 | |||
| 192 | @include iro.props-store(( | ||
| 193 | --colors: ( | ||
| 194 | --bg-hi2: fn.color(--gray --1, null), // Lightest background | ||
| 195 | --bg-hi: fn.color(--gray --2, null), // Lighter background | ||
| 196 | --bg: fn.color(--gray --3, null), // Background | ||
| 197 | |||
| 198 | --obj-hi: fn.color(--gray --4, null), | ||
| 199 | --obj: fn.color(--gray --5, null), | ||
| 200 | --obj-lo: fn.color(--gray --6, null), | ||
| 201 | |||
| 202 | --fg-hi3: fn.color(--gray --7, null), // Disabled text | ||
| 203 | --fg-hi2: fn.color(--gray --8, null), // Placeholder text | ||
| 204 | --fg-hi: fn.color(--gray --9, null), // Faint text | ||
| 205 | --fg: fn.color(--gray --10, null), // Text | ||
| 206 | --fg-lo: fn.color(--gray --11, null), // Strong text | ||
| 207 | |||
| 208 | --border: ( | ||
| 209 | --regular: fn.color(--obj, null), | ||
| 210 | --stable: iro.props-get-static(--colors --gray --5, 'palette-light'), | ||
| 211 | --stable-lo: iro.props-get-static(--colors --gray --6, 'palette-light'), | ||
| 212 | ), | ||
| 213 | |||
| 214 | --blue: fn.color-palette(blend.lch(48% 50 279)), | ||
| 215 | --purple: fn.color-palette(blend.lch(48% 50 308)), | ||
| 216 | --red: fn.color-palette(blend.lch(48% 50 23)), | ||
| 217 | --green: fn.color-palette(blend.lch(63% 50 147)), | ||
| 218 | --yellow: fn.color-palette(blend.lch(68% 50 70)), | ||
| 219 | |||
| 220 | --accent: ( | ||
| 221 | --primary: iro.props-ref('colors', --colors --blue), | ||
| 222 | --error: iro.props-ref('colors', --colors --red), | ||
| 223 | --success: iro.props-ref('colors', --colors --green), | ||
| 224 | --warning: iro.props-ref('colors', --colors --yellow), | ||
| 225 | --link-idle: iro.props-ref('colors', --colors --blue), | ||
| 226 | --link-visited: iro.props-ref('colors', --colors --purple), | ||
| 227 | ), | ||
| 228 | |||
| 229 | --selection: ( | ||
| 230 | --bg: fn.color(--accent --primary --selection, null), | ||
| 231 | --bg-img: fn.color(--accent --primary --quiet --obj-lo, null), | ||
| 232 | --fg: fn.color(--accent --primary --solid --fg, null), | ||
| 233 | ), | 181 | ), |
| 234 | |||
| 235 | --focus: ( | ||
| 236 | --shadow: 0 0 0 fn.dim(--focus --outline-width, null) fn.color(--accent --primary --quiet --obj-lo, null), | ||
| 237 | --fill: fn.color(--accent --primary --solid --bg, null), | ||
| 238 | --text: fn.color(--accent --primary --solid --obj, null), | ||
| 239 | --fill-text: fn.color(--accent --primary --solid --fg, null), | ||
| 240 | ), | ||
| 241 | ), | ||
| 242 | ), 'colors'); | ||
| 243 | |||
| 244 | // | ||
| 245 | |||
| 246 | // @include iro.props-store(( | ||
| 247 | // --colors: ( | ||
| 248 | // --gray: fn.gray-palette(1%), | ||
| 249 | // ), | ||
| 250 | // ), 'palette-dark-hi2'); | ||
| 251 | |||
| 252 | @include iro.props-store(( | ||
| 253 | --colors: ( | ||
| 254 | --gray: fn.gray-palette(7%), | ||
| 255 | ), | ||
| 256 | ), 'palette-dark-hi'); | ||
| 257 | |||
| 258 | @include iro.props-store(( | ||
| 259 | --colors: ( | ||
| 260 | --gray: fn.gray-palette(12%), | ||
| 261 | ), | 182 | ), |
| 262 | ), 'palette-dark'); | 183 | )); |
| 263 | 184 | ||
| 264 | @include iro.props-store(( | 185 | @include iro.props-store(( |
| 265 | --colors: ( | 186 | --colors: ( |
| 266 | --gray: fn.gray-palette(17%), | 187 | --base: fn.palette( |
| 267 | ), | 188 | map.get(config.$theme-dark, --base), |
| 268 | ), 'palette-dark-lo'); | 189 | map.get(config.$theme-dark, --grays), |
| 269 | |||
| 270 | @include iro.props-store(( | ||
| 271 | --colors: ( | ||
| 272 | --border: ( | ||
| 273 | --stable: iro.props-get-static(--colors --gray --5, 'palette-dark-lo'), | ||
| 274 | --stable-lo: iro.props-get-static(--colors --gray --6, 'palette-dark-lo'), | ||
| 275 | ), | 190 | ), |
| 276 | |||
| 277 | --blue: fn.color-palette(blend.lch(63% 50 279), -1), | ||
| 278 | --purple: fn.color-palette(blend.lch(63% 50 308), -1), | ||
| 279 | --red: fn.color-palette(blend.lch(63% 50 23), -1), | ||
| 280 | --green: fn.color-palette(blend.lch(78% 50 147), -1), | ||
| 281 | --yellow: fn.color-palette(blend.lch(88% 50 70), -1), | ||
| 282 | |||
| 283 | --accent: ( | ||
| 284 | --primary: iro.props-ref('colors-dark', --colors --blue), | ||
| 285 | --error: iro.props-ref('colors-dark', --colors --red), | ||
| 286 | --success: iro.props-ref('colors-dark', --colors --green), | ||
| 287 | --warning: iro.props-ref('colors-dark', --colors --yellow), | ||
| 288 | --link-idle: iro.props-ref('colors-dark', --colors --blue), | ||
| 289 | --link-visited: iro.props-ref('colors-dark', --colors --purple), | ||
| 290 | ), | ||
| 291 | ) | ||
| 292 | ), 'colors-dark'); | ||
| 293 | |||
| 294 | // | ||
| 295 | |||
| 296 | @include iro.props-store(( | ||
| 297 | --colors: ( | ||
| 298 | --gray: fn.gray-palette(97%, true), | ||
| 299 | ), | 191 | ), |
| 300 | ), 'palette-media-light'); | 192 | ), 'dark'); |
| 301 | |||
| 302 | @include iro.props-store(( | ||
| 303 | --colors: ( | ||
| 304 | --border: ( | ||
| 305 | --stable: iro.props-get-static(--colors --gray --5, 'palette-media-light'), | ||
| 306 | --stable-lo: iro.props-get-static(--colors --gray --6, 'palette-media-light'), | ||
| 307 | ), | ||
| 308 | ) | ||
| 309 | ), 'colors-media-light'); | ||
| 310 | 193 | ||
| 311 | // | 194 | @each $name, $theme in config.$themes { |
| 195 | $props-name: if($name == config.$theme-default, iro.$props-default-tree, $name); | ||
| 312 | 196 | ||
| 313 | @include iro.props-store(( | 197 | @each $color in 'blue' 'purple' 'red' 'green' 'yellow' { |
| 314 | --colors: ( | 198 | @include iro.props-store(( |
| 315 | --gray: fn.gray-palette(12%, true), | 199 | --colors: ( |
| 316 | ), | 200 | --#{$color}: fn.palette( |
| 317 | ), 'palette-media-dark'); | 201 | map.get($theme, --#{$color}), |
| 202 | map.get($theme, --colors), | ||
| 203 | map.get($theme, --base), | ||
| 204 | ), | ||
| 205 | ), | ||
| 206 | ), $props-name); | ||
| 207 | } | ||
| 318 | 208 | ||
| 319 | @include iro.props-store(( | 209 | @include iro.props-store(( |
| 320 | --colors: ( | 210 | --colors: ( |
| 321 | --border: ( | 211 | --accent: iro.props-get-static(--colors map.get($theme, --accent), $props-name), |
| 322 | --stable: iro.props-get-static(--colors --gray --5, 'palette-media-dark'), | ||
| 323 | --stable-lo: iro.props-get-static(--colors --gray --6, 'palette-media-dark'), | ||
| 324 | ), | 212 | ), |
| 213 | ), $props-name); | ||
| 325 | 214 | ||
| 326 | --blue: iro.props-get-static(--colors --blue, 'colors-dark'), | 215 | @each $color in 'bg-l2' 'bg-l1' 'bg-base' 'border-mute' 'border' 'border-strong' 'text-disabled' 'text-mute-more' 'text-mute' 'text' 'heading' { |
| 327 | --purple: iro.props-get-static(--colors --purple, 'colors-dark'), | 216 | @include iro.props-store(( |
| 328 | --red: iro.props-get-static(--colors --red, 'colors-dark'), | 217 | --colors: ( |
| 329 | --green: iro.props-get-static(--colors --green, 'colors-dark'), | 218 | --#{$color}: fn.color(--base map.get($theme, --#{$color})), |
| 330 | --yellow: iro.props-get-static(--colors --yellow, 'colors-dark'), | 219 | ), |
| 220 | ), $props-name); | ||
| 221 | } | ||
| 222 | } | ||
| 331 | 223 | ||
| 332 | --accent: ( | 224 | @each $color in 'blue' 'purple' 'red' 'green' 'yellow' { |
| 333 | --primary: iro.props-ref('colors-media', --colors --blue), | 225 | @include iro.props-store(( |
| 334 | --error: iro.props-ref('colors-media', --colors --red), | 226 | --colors: ( |
| 335 | --success: iro.props-ref('colors-media', --colors --green), | 227 | --#{$color}-static: iro.props-get-static(--colors --#{$color}), |
| 336 | --warning: iro.props-ref('colors-media', --colors --yellow), | ||
| 337 | --link-idle: iro.props-ref('colors-media', --colors --blue), | ||
| 338 | --link-visited: iro.props-ref('colors-media', --colors --purple), | ||
| 339 | ), | 228 | ), |
| 340 | ) | 229 | )); |
| 341 | ), 'colors-media'); | ||
| 342 | |||
| 343 | // | ||
| 344 | |||
| 345 | @each $breakpoint in map-keys(media.$breakpoints) { | ||
| 346 | @include media.media('<=#{$breakpoint}') { | ||
| 347 | @include iro.props-store(( | ||
| 348 | --colors: () | ||
| 349 | ), $breakpoint); | ||
| 350 | } | ||
| 351 | } | 230 | } |
