2022-10-23 10:47:50 +07:00
|
|
|
@use "sass:map";
|
2023-02-04 13:33:35 +07:00
|
|
|
@use "../../colors" as *;
|
2022-10-22 13:11:51 +07:00
|
|
|
@use "../../settings" as *;
|
2022-10-23 10:47:50 +07:00
|
|
|
@use "../../utils/box-shadow";
|
2022-10-22 11:44:10 +07:00
|
|
|
@use "../../utils/functions";
|
2022-09-11 16:54:41 +07:00
|
|
|
|
2021-07-02 16:54:41 +07:00
|
|
|
// Default: Light theme
|
2022-10-22 13:11:51 +07:00
|
|
|
@mixin theme {
|
|
|
|
#{$✨}background-color: #{$white};
|
2021-07-02 16:54:41 +07:00
|
|
|
|
2022-10-23 10:47:50 +07:00
|
|
|
// Text color
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}color: #{$zinc-750};
|
2021-07-02 16:54:41 +07:00
|
|
|
|
2023-01-28 12:22:55 +07:00
|
|
|
// Text selection color
|
|
|
|
#{$✨}text-selection-color: #{rgba($azure-400, 0.25)};
|
|
|
|
|
2021-07-02 16:54:41 +07:00
|
|
|
// Muted colors
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}muted-color: #{$zinc-550};
|
|
|
|
#{$✨}muted-border-color: #{mix($slate-100, $slate-50)};
|
2021-07-02 16:54:41 +07:00
|
|
|
|
|
|
|
// Primary colors
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}primary: #{$azure-550};
|
|
|
|
#{$✨}primary-background: #{$azure-550};
|
|
|
|
#{$✨}primary-border: var(#{$✨}primary-background);
|
2023-04-02 11:04:23 +07:00
|
|
|
#{$✨}primary-underline: #{rgba($azure-550, 0.5)};
|
|
|
|
#{$✨}primary-hover: #{$azure-650};
|
|
|
|
#{$✨}primary-hover-background: #{$azure-600};
|
|
|
|
#{$✨}primary-hover-border: var(#{$✨}primary-hover-background);
|
|
|
|
#{$✨}primary-hover-underline: var(#{$✨}primary-hover);
|
2023-01-28 12:22:55 +07:00
|
|
|
#{$✨}primary-focus: #{rgba($azure-400, 0.5)};
|
2022-10-22 13:11:51 +07:00
|
|
|
#{$✨}primary-inverse: #{$white};
|
2021-07-02 16:54:41 +07:00
|
|
|
|
|
|
|
// Secondary colors
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}secondary: #{$slate-550};
|
2023-01-01 13:25:54 +07:00
|
|
|
#{$✨}secondary-background: #{$slate-600};
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}secondary-border: var(#{$✨}secondary-background);
|
2023-04-02 11:04:23 +07:00
|
|
|
#{$✨}secondary-underline: #{rgba($slate-550, 0.5)};
|
|
|
|
#{$✨}secondary-hover: #{$slate-650};
|
|
|
|
#{$✨}secondary-hover-background: #{$slate-650};
|
|
|
|
#{$✨}secondary-hover-border: var(#{$✨}secondary-hover-background);
|
|
|
|
#{$✨}secondary-hover-underline: var(#{$✨}secondary-hover);
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}secondary-focus: #{rgba($slate-550, 0.25)};
|
2022-10-22 13:11:51 +07:00
|
|
|
#{$✨}secondary-inverse: #{$white};
|
2021-07-02 16:54:41 +07:00
|
|
|
|
|
|
|
// Contrast colors
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}contrast: #{$slate-900};
|
|
|
|
#{$✨}contrast-background: #{$slate-900};
|
|
|
|
#{$✨}contrast-border: var(#{$✨}contrast-background);
|
2023-04-02 11:04:23 +07:00
|
|
|
#{$✨}contrast-underline: #{rgba($slate-900, 0.5)};
|
|
|
|
#{$✨}contrast-hover: #{$black};
|
|
|
|
#{$✨}contrast-hover-background: #{$black};
|
|
|
|
#{$✨}contrast-hover-border: var(#{$✨}contrast-hover-background);
|
|
|
|
#{$✨}contrast-hover-underline: var(#{$✨}secondary-hover);
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}contrast-focus: #{rgba($slate-550, 0.25)};
|
2022-10-22 13:11:51 +07:00
|
|
|
#{$✨}contrast-inverse: #{$white};
|
2021-07-02 16:54:41 +07:00
|
|
|
|
2022-10-23 10:47:50 +07:00
|
|
|
// Box shadow
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}box-shadow: box-shadow.shadow($slate-500);
|
2021-07-02 16:54:41 +07:00
|
|
|
|
2022-10-23 10:47:50 +07:00
|
|
|
// Typography
|
|
|
|
@if map.get($modules, "content/typography") {
|
|
|
|
// Headings colors
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}h1-color: #{$zinc-800};
|
|
|
|
#{$✨}h2-color: #{$zinc-750};
|
|
|
|
#{$✨}h3-color: #{$zinc-700};
|
|
|
|
#{$✨}h4-color: #{$zinc-650};
|
|
|
|
#{$✨}h5-color: #{$zinc-600};
|
|
|
|
#{$✨}h6-color: #{$zinc-550};
|
2021-07-02 16:54:41 +07:00
|
|
|
|
2022-10-23 10:47:50 +07:00
|
|
|
// Highlighted text (<mark>)
|
|
|
|
#{$✨}mark-background-color: #{mix($amber-100, $amber-50)};
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}mark-color: #{$zinc-950};
|
2022-10-23 10:47:50 +07:00
|
|
|
|
2023-03-15 22:16:03 +07:00
|
|
|
// Inserted (<ins>) & Deleted (<del>)
|
|
|
|
#{$✨}ins-color: #{mix($jade-450, $zinc-750)};
|
|
|
|
#{$✨}del-color: #{mix($red-500, $zinc-750)};
|
2022-10-23 10:47:50 +07:00
|
|
|
|
|
|
|
// Blockquote
|
|
|
|
#{$✨}blockquote-border-color: var(#{$✨}muted-border-color);
|
|
|
|
#{$✨}blockquote-footer-color: var(#{$✨}muted-color);
|
|
|
|
}
|
2019-11-27 15:31:49 +07:00
|
|
|
|
2021-07-02 22:18:14 +07:00
|
|
|
// Button
|
2022-10-23 10:47:50 +07:00
|
|
|
@if map.get($modules, "content/button") {
|
|
|
|
// To disable box-shadow, remove the var or set to '0 0 0 rgba(0, 0, 0, 0)'
|
|
|
|
// Don't use, 'none, 'false, 'null', '0', etc.
|
|
|
|
#{$✨}button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
|
|
#{$✨}button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Table
|
|
|
|
@if map.get($modules, "content/table") {
|
|
|
|
#{$✨}table-border-color: var(#{$✨}muted-border-color);
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}table-row-stripped-background-color: #{rgba($zinc-500, 0.0375)};
|
2022-10-23 10:47:50 +07:00
|
|
|
}
|
|
|
|
|
|
|
|
// Code
|
|
|
|
@if map.get($modules, "content/code") {
|
2022-12-29 18:10:07 +07:00
|
|
|
#{$✨}code-background-color: #{mix($slate-50, $white, 75%)};
|
2023-03-13 22:10:27 +07:00
|
|
|
#{$✨}code-color: #{$zinc-550};
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}code-kbd-background-color: var(#{$✨}color);
|
|
|
|
#{$✨}code-kbd-color: var(#{$✨}background-color);
|
2022-10-23 10:47:50 +07:00
|
|
|
}
|
2021-07-02 22:18:14 +07:00
|
|
|
|
2019-11-27 15:31:49 +07:00
|
|
|
// Form elements
|
2022-10-23 10:47:50 +07:00
|
|
|
@if map.get($modules, "forms/basics") {
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}form-element-background-color: #{mix($slate-50, $white, 25%)};
|
2023-03-08 11:47:37 +07:00
|
|
|
#{$✨}form-element-selected-background-color: #{$slate-100};
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}form-element-border-color: #{$slate-150};
|
|
|
|
#{$✨}form-element-color: #{$zinc-850};
|
2022-10-23 10:47:50 +07:00
|
|
|
#{$✨}form-element-placeholder-color: var(#{$✨}muted-color);
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}form-element-active-background-color: #{$white};
|
|
|
|
#{$✨}form-element-active-border-color: var(#{$✨}primary-border);
|
|
|
|
#{$✨}form-element-focus-color: var(#{$✨}primary-border);
|
|
|
|
#{$✨}form-element-disabled-background-color: var(#{$✨}form-element-background-color);
|
|
|
|
#{$✨}form-element-disabled-border-color: var(#{$✨}form-element-border-color);
|
2022-10-23 10:47:50 +07:00
|
|
|
#{$✨}form-element-disabled-opacity: 0.5;
|
2023-03-15 22:16:03 +07:00
|
|
|
#{$✨}form-element-invalid-border-color: #{mix($red-500, $zinc-350)};
|
|
|
|
#{$✨}form-element-invalid-active-border-color: #{mix($red-500, $zinc-350, 75%)};
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}form-element-invalid-focus-color: var(#{$✨}form-element-invalid-active-border-color);
|
2023-03-15 22:16:03 +07:00
|
|
|
#{$✨}form-element-valid-border-color: #{mix($jade-450, $zinc-350)};
|
|
|
|
#{$✨}form-element-valid-active-border-color: #{mix($jade-450, $zinc-350, 75%)};
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}form-element-valid-focus-color: var(#{$✨}form-element-valid-active-border-color);
|
|
|
|
|
|
|
|
// Focus for buttons, radio and select
|
2022-12-26 13:36:41 +07:00
|
|
|
input:is(
|
|
|
|
[type="submit"],
|
|
|
|
[type="button"],
|
|
|
|
[type="reset"],
|
|
|
|
[type="checkbox"],
|
|
|
|
[type="radio"],
|
|
|
|
[type="file"]
|
|
|
|
) {
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}form-element-focus-color: var(#{$✨}primary-focus);
|
|
|
|
}
|
2022-10-23 10:47:50 +07:00
|
|
|
}
|
2019-11-27 15:31:49 +07:00
|
|
|
|
2021-07-02 16:54:41 +07:00
|
|
|
// Switch (input[type="checkbox"][role="switch"])
|
2022-10-23 10:47:50 +07:00
|
|
|
@if map.get($modules, "forms/checkbox-radio-switch") {
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}switch-background-color: #{$slate-200};
|
2022-10-23 10:47:50 +07:00
|
|
|
#{$✨}switch-color: var(#{$✨}primary-inverse);
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}switch-checked-background-color: var(#{$✨}primary-background);
|
2022-10-23 10:47:50 +07:00
|
|
|
}
|
2021-07-02 16:54:41 +07:00
|
|
|
|
|
|
|
// Range (input[type="range"])
|
2022-10-23 10:47:50 +07:00
|
|
|
@if map.get($modules, "forms/input-range") {
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}range-border-color: #{$slate-100};
|
|
|
|
#{$✨}range-active-border-color: #{$slate-200};
|
2022-10-23 10:47:50 +07:00
|
|
|
#{$✨}range-thumb-border-color: var(#{$✨}background-color);
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}range-thumb-color: var(#{$✨}secondary-background);
|
2023-03-18 08:22:05 +07:00
|
|
|
#{$✨}range-thumb-active-color: var(#{$✨}primary-background);
|
2022-10-23 10:47:50 +07:00
|
|
|
}
|
2021-07-02 16:54:41 +07:00
|
|
|
|
|
|
|
// Accordion (<details>)
|
2022-10-23 10:47:50 +07:00
|
|
|
@if map.get($modules, "components/accordion") {
|
|
|
|
#{$✨}accordion-border-color: var(#{$✨}muted-border-color);
|
2023-01-01 13:25:54 +07:00
|
|
|
#{$✨}accordion-active-summary-color: var(#{$✨}primary-hover);
|
2022-10-23 10:47:50 +07:00
|
|
|
#{$✨}accordion-close-summary-color: var(#{$✨}color);
|
|
|
|
#{$✨}accordion-open-summary-color: var(#{$✨}muted-color);
|
|
|
|
}
|
2021-07-02 16:54:41 +07:00
|
|
|
|
|
|
|
// Card (<article>)
|
2022-10-23 10:47:50 +07:00
|
|
|
@if map.get($modules, "components/card") {
|
|
|
|
#{$✨}card-background-color: var(#{$✨}background-color);
|
|
|
|
#{$✨}card-border-color: var(#{$✨}muted-border-color);
|
|
|
|
#{$✨}card-box-shadow: var(#{$✨}box-shadow);
|
2023-03-18 13:00:50 +07:00
|
|
|
#{$✨}card-sectioning-background-color: #{mix($slate-50, $white, 25%)};
|
2022-10-23 10:47:50 +07:00
|
|
|
}
|
2021-07-02 16:54:41 +07:00
|
|
|
|
2023-04-02 22:37:00 +07:00
|
|
|
// Dropdown (details.dropdown)
|
|
|
|
@if map.get($modules, "components/dropdown") and $enable-classes {
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}dropdown-background-color: #{$white};
|
|
|
|
#{$✨}dropdown-border-color: #{$slate-50};
|
2022-10-23 10:47:50 +07:00
|
|
|
#{$✨}dropdown-box-shadow: var(#{$✨}box-shadow);
|
|
|
|
#{$✨}dropdown-color: var(#{$✨}color);
|
2022-12-29 18:10:07 +07:00
|
|
|
#{$✨}dropdown-hover-background-color: #{$slate-50};
|
2022-10-23 10:47:50 +07:00
|
|
|
}
|
|
|
|
|
|
|
|
// Loading ([aria-busy=true])
|
|
|
|
@if map.get($modules, "components/loading") {
|
|
|
|
#{$✨}loading-spinner-opacity: 0.5;
|
|
|
|
}
|
2022-01-23 17:03:03 +07:00
|
|
|
|
2021-12-19 09:50:55 +07:00
|
|
|
// Modal (<dialog>)
|
2022-10-23 10:47:50 +07:00
|
|
|
@if map.get($modules, "components/modal") {
|
2023-03-25 12:35:22 +07:00
|
|
|
#{$✨}modal-overlay-background-color: #{rgba(mix($zinc-100, $zinc-50), 0.75)};
|
2022-10-23 10:47:50 +07:00
|
|
|
}
|
2021-12-19 09:50:55 +07:00
|
|
|
|
2021-07-02 16:54:41 +07:00
|
|
|
// Progress
|
2022-10-23 10:47:50 +07:00
|
|
|
@if map.get($modules, "components/progress") {
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}progress-background-color: #{$slate-100};
|
|
|
|
#{$✨}progress-color: var(#{$✨}primary-background);
|
2022-10-23 10:47:50 +07:00
|
|
|
}
|
2021-07-17 15:19:19 +07:00
|
|
|
|
2021-07-02 16:54:41 +07:00
|
|
|
// Tooltip ([data-tooltip])
|
2022-10-23 10:47:50 +07:00
|
|
|
@if map.get($modules, "components/tooltip") {
|
2022-12-26 11:35:56 +07:00
|
|
|
#{$✨}tooltip-background-color: var(#{$✨}contrast-background);
|
2022-10-23 10:47:50 +07:00
|
|
|
#{$✨}tooltip-color: var(#{$✨}contrast-inverse);
|
|
|
|
}
|
|
|
|
|
|
|
|
// Form validation icons
|
2022-12-26 11:35:56 +07:00
|
|
|
@if map.get($modules, "forms/basics") {
|
2023-03-15 22:16:03 +07:00
|
|
|
#{$✨}icon-valid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{functions.display-rgb(mix($jade-450, $zinc-750))}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
|
|
|
|
#{$✨}icon-invalid: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{functions.display-rgb(mix($red-500, $zinc-750))}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
|
2022-10-23 10:47:50 +07:00
|
|
|
}
|
|
|
|
|
2022-06-12 12:35:03 +02:00
|
|
|
// Document
|
|
|
|
color-scheme: light;
|
2019-11-27 15:31:49 +07:00
|
|
|
}
|