@use "config" as *; @use "colors" as *; @use "theme" as *; @use "variables" as *; // @use "maps" as *; @use "vendor/rfs" as *; @use "mixins/color-mode" as *; // mdo-do: do we need theme? @layer colors, theme, config, root, reboot, layout, content, forms, components, helpers, custom, utilities; @layer colors { :root { color-scheme: light dark; @each $color-group-name, $color-group in $all-colors { @if type-of($color-group) == "map" { @each $color-name, $color-value in $color-group { --#{$prefix}#{$color-name}: #{$color-value}; } } @else { --#{$prefix}#{$color-group-name}: #{$color-group}; } } @each $color, $value in $theme-colors { --#{$prefix}#{$color}: #{$value}; } @each $color-name, $color-map in $new-theme-colors { @each $key, $value in $color-map { --#{$prefix}#{$color-name}-#{$key}: #{$value}; } } } } :root { // Note: Custom variable values only support SassScript inside `#{}`. // Fonts // Note: Use `inspect` for lists so that quoted items keep the quotes. // See https://github.com/sass/sass/issues/2383#issuecomment-336349172 --#{$prefix}font-sans-serif: #{inspect($font-family-sans-serif)}; --#{$prefix}font-monospace: #{inspect($font-family-monospace)}; --#{$prefix}gradient: #{$gradient}; // Root and body // scss-docs-start root-body-variables @if $font-size-root != null { --#{$prefix}root-font-size: #{$font-size-root}; } --#{$prefix}body-font-family: #{inspect($font-family-base)}; @include rfs($font-size-base, --#{$prefix}body-font-size); --#{$prefix}body-font-weight: #{$font-weight-base}; --#{$prefix}body-line-height: #{$line-height-base}; @if $body-text-align != null { --#{$prefix}body-text-align: #{$body-text-align}; } @each $key, $value in $theme-bgs { $key: if($key == null, "", "-" + $key); --#{$prefix}bg#{$key}: #{$value}; } @each $key, $value in $theme-fgs { $key: if($key == null, "", "-" + $key); --#{$prefix}fg#{$key}: #{$value}; } @each $key, $value in $theme-borders { $key: if($key == null, "", "-" + $key); --#{$prefix}border#{$key}: #{$value}; } --#{$prefix}body-color: #{$body-color}; --#{$prefix}body-bg: #{$body-bg}; // scss-docs-end root-body-variables --#{$prefix}heading-color: #{$headings-color}; --#{$prefix}link-color: light-dark(var(--#{$prefix}primary-base), var(--#{$prefix}primary-text)); --#{$prefix}link-decoration: #{$link-decoration}; --#{$prefix}link-hover-color: color-mix(in oklch, var(--#{$prefix}link-color) 90%, #000); @if $link-hover-decoration != null { --#{$prefix}link-hover-decoration: #{$link-hover-decoration}; } --#{$prefix}code-color: var(--#{$prefix}fg-0); --#{$prefix}highlight-color: #{$mark-color}; --#{$prefix}highlight-bg: #{$mark-bg}; // --#{$prefix}font-size-base: 1rem; // scss-docs-start root-border-var --#{$prefix}border-width: 1px; --#{$prefix}border-style: solid; --#{$prefix}border-color: light-dark(#{$gray-300}, #{$gray-700}); --#{$prefix}border-color-translucent: light-dark(rgba($black, .175), rgba($white, .15)); --#{$prefix}border-radius: .5rem; --#{$prefix}border-radius-sm: .375rem; --#{$prefix}border-radius-lg: .625rem; --#{$prefix}border-radius-xl: 1rem; --#{$prefix}border-radius-2xl: 2rem; --#{$prefix}border-radius-pill: 50rem; // scss-docs-end root-border-var // scss-docs-start root-shadow-vars --#{$prefix}box-shadow: 0 .5rem 1rem rgb(0 0 0 / .15); --#{$prefix}box-shadow-sm: 0 .125rem .25rem rgb(0 0 0 / .075); --#{$prefix}box-shadow-lg: 0 1rem 3rem rgb(0 0 0 / .175); --#{$prefix}box-shadow-inset: inset 0 1px 2px rgb(0 0 0 / .075); // scss-docs-end root-shadow-vars // Focus styles // scss-docs-start root-focus-variables --#{$prefix}focus-ring-width: 3px; --#{$prefix}focus-ring-offset: -1px; --#{$prefix}focus-ring-color: var(--#{$prefix}primary-focus-ring); --#{$prefix}focus-ring: var(--#{$prefix}focus-ring-width) solid var(--#{$prefix}focus-ring-color); // scss-docs-end root-focus-variables // scss-docs-start root-form-validation-variables --#{$prefix}form-valid-color: #{$form-valid-color}; --#{$prefix}form-valid-border-color: #{$form-valid-border-color}; --#{$prefix}form-invalid-color: #{$form-invalid-color}; --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color}; // scss-docs-end root-form-validation-variables } @if $enable-dark-mode { @include color-mode(dark, true) { color-scheme: dark; // scss-docs-start root-dark-mode-vars // @each $color, $value in $theme-colors-text-dark { // --#{$prefix}#{$color}-text-emphasis: #{$value}; // } // @each $color, $value in $theme-colors-bg-subtle-dark { // --#{$prefix}#{$color}-bg-subtle: #{$value}; // } // @each $color, $value in $theme-colors-border-subtle-dark { // --#{$prefix}#{$color}-border-subtle: #{$value}; // } --#{$prefix}heading-color: #{$headings-color-dark}; // --#{$prefix}link-color: #{$link-color-dark}; // --#{$prefix}link-hover-color: #{$link-hover-color-dark}; // --#{$prefix}code-color: #{$code-color-dark}; // --#{$prefix}highlight-color: #{$mark-color-dark}; // --#{$prefix}highlight-bg: #{$mark-bg-dark}; // --#{$prefix}border-color: #{$border-color-dark}; // --#{$prefix}border-color-translucent: #{$border-color-translucent-dark}; // --#{$prefix}form-valid-color: #{$form-valid-color-dark}; // --#{$prefix}form-valid-border-color: #{$form-valid-border-color-dark}; // --#{$prefix}form-invalid-color: #{$form-invalid-color-dark}; // --#{$prefix}form-invalid-border-color: #{$form-invalid-border-color-dark}; // scss-docs-end root-dark-mode-vars } }