picocss/scss/themes/default/_dark.scss

249 lines
11 KiB
SCSS
Raw Normal View History

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 *;
2024-01-29 23:31:37 +07:00
@use "../../helpers/functions";
2024-01-06 21:09:13 +07:00
@use "theme-colors";
2022-09-11 16:54:41 +07:00
2021-07-02 16:54:41 +07:00
// Default: Dark theme
2022-10-22 13:11:51 +07:00
@mixin theme {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}background-color: #{mix($slate-950, $slate-900)};
2021-07-02 16:54:41 +07:00
2022-10-23 10:47:50 +07:00
// Text color
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}color: #{$zinc-200};
2021-07-02 16:54:41 +07:00
2023-01-28 12:22:55 +07:00
// Text selection color
2024-01-06 21:09:13 +07:00
#{$css-var-prefix}text-selection-color: theme-colors.get("text-selection-color", "dark");
2023-01-28 12:22:55 +07:00
2021-07-02 16:54:41 +07:00
// Muted colors
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}muted-color: #{$zinc-450};
#{$css-var-prefix}muted-border-color: #{$slate-850};
2021-07-02 16:54:41 +07:00
// Primary colors
2024-01-06 21:09:13 +07:00
#{$css-var-prefix}primary: theme-colors.get("primary", "dark");
#{$css-var-prefix}primary-background: theme-colors.get("primary-background", "dark");
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}primary-border: var(#{$css-var-prefix}primary-background);
2024-01-06 21:09:13 +07:00
#{$css-var-prefix}primary-underline: theme-colors.get("primary-underline", "dark");
#{$css-var-prefix}primary-hover: theme-colors.get("primary-hover", "dark");
#{$css-var-prefix}primary-hover-background: theme-colors.get("primary-hover-background", "dark");
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}primary-hover-border: var(#{$css-var-prefix}primary-hover-background);
#{$css-var-prefix}primary-hover-underline: var(#{$css-var-prefix}primary-hover);
2024-01-06 21:09:13 +07:00
#{$css-var-prefix}primary-focus: theme-colors.get("primary-focus", "dark");
#{$css-var-prefix}primary-inverse: theme-colors.get("primary-inverse", "dark");
2021-07-02 16:54:41 +07:00
// Secondary colors
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}secondary: #{$zinc-350};
#{$css-var-prefix}secondary-background: #{$slate-600};
#{$css-var-prefix}secondary-border: var(#{$css-var-prefix}secondary-background);
#{$css-var-prefix}secondary-underline: #{rgba($zinc-350, 0.5)};
#{$css-var-prefix}secondary-hover: #{$zinc-250};
#{$css-var-prefix}secondary-hover-background: #{$slate-550};
#{$css-var-prefix}secondary-hover-border: var(#{$css-var-prefix}secondary-hover-background);
#{$css-var-prefix}secondary-hover-underline: var(#{$css-var-prefix}secondary-hover);
#{$css-var-prefix}secondary-focus: #{rgba($slate-350, 0.25)};
#{$css-var-prefix}secondary-inverse: #{$white};
2021-07-02 16:54:41 +07:00
// Contrast colors
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}contrast: #{$slate-100};
#{$css-var-prefix}contrast-background: #{$slate-50};
#{$css-var-prefix}contrast-border: var(#{$css-var-prefix}contrast-background);
#{$css-var-prefix}contrast-underline: #{rgba($slate-100, 0.5)};
#{$css-var-prefix}contrast-hover: #{$white};
#{$css-var-prefix}contrast-hover-background: #{$white};
#{$css-var-prefix}contrast-hover-border: var(#{$css-var-prefix}contrast-hover-background);
#{$css-var-prefix}contrast-hover-underline: var(#{$css-var-prefix}contrast-hover);
#{$css-var-prefix}contrast-focus: #{rgba($slate-150, 0.25)};
#{$css-var-prefix}contrast-inverse: #{$black};
2021-07-02 16:54:41 +07:00
2022-10-23 10:47:50 +07:00
// Box shadow
2024-01-29 23:31:37 +07:00
#{$css-var-prefix}box-shadow: functions.shadow(mix($black, $slate-950));
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
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}h1-color: #{$zinc-50};
#{$css-var-prefix}h2-color: #{$zinc-100};
#{$css-var-prefix}h3-color: #{$zinc-200};
#{$css-var-prefix}h4-color: #{$zinc-250};
#{$css-var-prefix}h5-color: #{$zinc-300};
#{$css-var-prefix}h6-color: #{$zinc-400};
2021-07-02 16:54:41 +07:00
2022-10-23 10:47:50 +07:00
// Highlighted text (<mark>)
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}mark-background-color: #{$azure-750};
#{$css-var-prefix}mark-color: #{$white};
2022-10-23 10:47:50 +07:00
2023-03-15 22:16:03 +07:00
// Inserted (<ins>) & Deleted (<del>)
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}ins-color: #{mix($jade-450, $zinc-200)};
#{$css-var-prefix}del-color: #{mix($red-500, $zinc-200)};
2022-10-23 10:47:50 +07:00
// Blockquote
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}blockquote-border-color: var(#{$css-var-prefix}muted-border-color);
#{$css-var-prefix}blockquote-footer-color: var(#{$css-var-prefix}muted-color);
2022-10-23 10:47:50 +07:00
}
2019-11-27 15:31:49 +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.
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}button-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
#{$css-var-prefix}button-hover-box-shadow: 0 0 0 rgba(0, 0, 0, 0);
2022-10-23 10:47:50 +07:00
}
// Table
@if map.get($modules, "content/table") {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}table-border-color: var(#{$css-var-prefix}muted-border-color);
#{$css-var-prefix}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") {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}code-background-color: #{mix($slate-900, $slate-850, 75%)};
#{$css-var-prefix}code-color: #{$zinc-400};
#{$css-var-prefix}code-kbd-background-color: var(#{$css-var-prefix}color);
#{$css-var-prefix}code-kbd-color: var(#{$css-var-prefix}background-color);
2022-10-23 10:47:50 +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") {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}form-element-background-color: #{mix($slate-900, $slate-850)};
#{$css-var-prefix}form-element-selected-background-color: #{$slate-800};
#{$css-var-prefix}form-element-border-color: #{$slate-800};
#{$css-var-prefix}form-element-color: #{$zinc-100};
#{$css-var-prefix}form-element-placeholder-color: #{$zinc-400};
#{$css-var-prefix}form-element-active-background-color: #{mix($slate-900, $slate-850, 75%)};
#{$css-var-prefix}form-element-active-border-color: var(#{$css-var-prefix}primary-border);
#{$css-var-prefix}form-element-focus-color: var(#{$css-var-prefix}primary-border);
#{$css-var-prefix}form-element-disabled-opacity: 0.5;
#{$css-var-prefix}form-element-invalid-border-color: #{mix($red-500, $slate-600)};
#{$css-var-prefix}form-element-invalid-active-border-color: #{mix($red-500, $slate-600, 75%)};
#{$css-var-prefix}form-element-invalid-focus-color: var(
#{$css-var-prefix}form-element-invalid-active-border-color
);
#{$css-var-prefix}form-element-valid-border-color: #{mix($jade-450, $slate-600)};
#{$css-var-prefix}form-element-valid-active-border-color: #{mix($jade-450, $slate-600, 75%)};
#{$css-var-prefix}form-element-valid-focus-color: var(
#{$css-var-prefix}form-element-valid-active-border-color
);
2022-12-26 11:35:56 +07:00
// 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"]
) {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}form-element-focus-color: var(#{$css-var-prefix}primary-focus);
2022-12-26 11:35:56 +07:00
}
2022-10-23 10:47:50 +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") {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}switch-background-color: #{$slate-750};
#{$css-var-prefix}switch-checked-background-color: var(#{$css-var-prefix}primary-background);
2024-01-28 11:11:34 +07:00
#{$css-var-prefix}switch-color: #{$white};
#{$css-var-prefix}switch-thumb-box-shadow: theme-colors.get("switch-thumb-box-shadow", "dark");
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") {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}range-border-color: #{$slate-850};
#{$css-var-prefix}range-active-border-color: #{$slate-800};
#{$css-var-prefix}range-thumb-border-color: var(#{$css-var-prefix}background-color);
#{$css-var-prefix}range-thumb-color: var(#{$css-var-prefix}secondary-background);
#{$css-var-prefix}range-thumb-active-color: var(#{$css-var-prefix}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") {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}accordion-border-color: var(#{$css-var-prefix}muted-border-color);
#{$css-var-prefix}accordion-active-summary-color: var(#{$css-var-prefix}primary-hover);
#{$css-var-prefix}accordion-close-summary-color: var(#{$css-var-prefix}color);
#{$css-var-prefix}accordion-open-summary-color: var(#{$css-var-prefix}muted-color);
2022-10-23 10:47:50 +07:00
}
2021-07-02 16:54:41 +07:00
// Card (<article>)
2022-10-23 10:47:50 +07:00
@if map.get($modules, "components/card") {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}card-background-color: #{$slate-900};
#{$css-var-prefix}card-border-color: var(#{$css-var-prefix}card-background-color);
#{$css-var-prefix}card-box-shadow: var(#{$css-var-prefix}box-shadow);
#{$css-var-prefix}card-sectioning-background-color: #{mix($slate-900, $slate-850, 75%)};
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 {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}dropdown-background-color: #{$slate-900};
#{$css-var-prefix}dropdown-border-color: #{$slate-850};
#{$css-var-prefix}dropdown-box-shadow: var(#{$css-var-prefix}box-shadow);
#{$css-var-prefix}dropdown-color: var(#{$css-var-prefix}color);
#{$css-var-prefix}dropdown-hover-background-color: #{$slate-850};
2022-10-23 10:47:50 +07:00
}
// Loading ([aria-busy=true])
@if map.get($modules, "components/loading") {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}loading-spinner-opacity: 0.5;
2022-10-23 10:47:50 +07:00
}
2022-01-23 17:03:03 +07:00
// Modal (<dialog>)
2022-10-23 10:47:50 +07:00
@if map.get($modules, "components/modal") {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}modal-overlay-background-color: #{rgba(mix($black, $zinc-950), 0.75)};
2022-10-23 10:47:50 +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") {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}progress-background-color: #{$slate-850};
#{$css-var-prefix}progress-color: var(#{$css-var-prefix}primary-background);
2022-10-23 10:47:50 +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") {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}tooltip-background-color: var(#{$css-var-prefix}contrast-background);
#{$css-var-prefix}tooltip-color: var(#{$css-var-prefix}contrast-inverse);
2022-10-23 10:47:50 +07:00
}
// Chevron icons
2023-03-28 20:34:28 +07:00
@if map.get($modules, "components/accordion") or map.get($modules, "components/dropdown") {
// Change the icon color to black for accordion and dropdown .contrast buttons
@if $enable-classes {
2024-01-25 01:42:54 +07:00
#{$parent-selector} details {
2023-03-28 20:34:28 +07:00
summary {
&[role="button"].contrast:not(.outline) {
&::after {
filter: brightness(0);
}
}
}
}
}
2022-10-23 10:47:50 +07:00
}
// Form validation icons
2022-12-26 11:35:56 +07:00
@if map.get($modules, "forms/basics") {
2023-12-28 13:21:52 +07:00
#{$css-var-prefix}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, $slate-600))}' 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");
#{$css-var-prefix}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, $slate-600))}' 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
}
2023-03-27 10:28:30 +07:00
// Loading icon (animated)
@if map.get($modules, "components/loading") {
2023-03-28 20:34:28 +07:00
// Change the icon color to black for .contrast buttons
@if $enable-classes {
2024-01-25 01:42:54 +07:00
#{$parent-selector} [aria-busy="true"]:not(input, select, textarea) {
2023-03-28 20:34:28 +07:00
&.contrast:is(
button,
[type="submit"],
[type="button"],
[type="reset"],
[role="button"]
):not(.outline) {
&::before {
filter: brightness(0);
}
}
}
}
2022-10-23 10:47:50 +07:00
}
2022-10-15 23:22:12 +07:00
2022-06-12 12:35:03 +02:00
// Document
color-scheme: dark;
2019-11-27 15:31:49 +07:00
}