Files
sqlight/assets/module.css/index.module.css
2025-05-17 02:41:36 +08:00

232 lines
5.1 KiB
CSS

/* Non-theme variables */
:root {
/* Fonts */
--primary-font: 'Open Sans', sans-serif;
--primary-font-size: 18px;
--secondary-font-size: calc(0.75 * var(--primary-font-size));
/* Header */
--header-transition: 0.2s ease-in-out;
--header-border-radius: 4px;
/* Border */
--border: 1px solid var(--border-color);
}
@define-mixin light-theme-vars {
--positive-luminance: white;
--negative-luminance: black;
/* Fonts */
--font-color: #444;
--font-color-high-contrast: var(--negative-luminance);
/* Links */
--link-color: #00e;
--link-color-visited: #551a8b;
/* Background */
--background-color: #e1e1db;
--background-color-high-contrast: var(--positive-luminance);
/* Code */
--code-background-color: #eee;
/* Border */
--border-color: #bbb;
/* Header */
--header-link-color: var(--negative-luminance);
--header-main-border: #dedede;
--header-tint: #428bca;
--header-accent-border: #bdbdbd;
/* The big red button */
--button-primary-color: var(--positive-luminance);
--button-primary-bg-color: #a42;
--button-primary-border-color: #80331a;
--button-primary-bg-color-light: color-mix(
in hsl,
var(--button-primary-bg-color),
var(--positive-luminance)
);
--button-primary-border-color-light: color-mix(
in hsl,
var(--button-primary-border-color),
var(--positive-luminance)
);
/* Clicked */
--button-primary-active-color: color-mix(
in hsl,
var(--positive-luminance),
var(--negative-luminance) 30%
);
/* Not the big red button */
--button-secondary-color: #444;
--button-secondary-bg-color-top: #fff;
--button-secondary-bg-color-bottom: #f9f9f9;
--button-secondary-bg-color: linear-gradient(
to bottom,
var(--button-secondary-bg-color-top),
var(--button-secondary-bg-color-bottom)
);
--button-secondary-border-color: color-mix(
in hsl,
var(--button-secondary-bg-color-bottom),
var(--negative-luminance) 20%
);
/* Disabled */
--button-secondary-bg-color-light: color-mix(
in hsl,
var(--button-secondary-bg-color-bottom),
var(--positive-luminance)
);
--button-secondary-border-color-light: color-mix(
in hsl,
var(--button-secondary-border-color),
var(--positive-luminance)
);
--button-secondary-color-light: color-mix(
in hsl,
var(--button-secondary-color),
var(--positive-luminance)
);
/* Clicked */
--button-secondary-active-color: color-mix(
in hsl,
var(--negative-luminance),
var(--positive-luminance) 30%
);
/* Output tabs */
--output-background-tab: #fcfcfc;
--output-current-tab: #f9ffff;
/* Output compiler highlighting */
--output-highlight-warning-color: #f79a06;
--output-highlight-warning-bg-color: inherit;
--output-highlight-error-color: #bf1b1b;
--output-highlight-error-bg-color: inherit;
}
@define-mixin dark-theme-vars {
--positive-luminance: black;
--negative-luminance: white;
/* Fonts */
--font-color: #dcdbd8;
--font-color-high-contrast: #dcdbd8;
/* Links */
--link-color: #b2dcff;
--link-color-visited: #eecaff;
/* Background */
--background-color: #444;
--background-color-high-contrast: #181818;
/* Code */
--code-background-color: #3c3c3c;
/* Border */
--border-color: #5e5e5e;
/* Header */
--header-main-border: #363b3d;
--header-accent-border: #bdbdbd;
/* The big red button */
--button-primary-color: #dcdbd8;
--button-primary-bg-color: #5d2310;
--button-primary-border-color: #612714;
/* Not the big red button */
--button-secondary-color: #dcdbd8;
--button-secondary-bg-color-top: #17191a;
--button-secondary-bg-color-bottom: #1a1c1d;
--button-secondary-border-color: color-mix(
in hsl,
var(--button-secondary-bg-color-bottom),
var(--negative-luminance) 40%
);
/* Output tabs */
--output-background-tab: #343434;
--output-current-tab: #191b1c;
/* Output compiler highlighting */
--output-highlight-warning-color: #ffe800;
--output-highlight-warning-bg-color: #330;
--output-highlight-error-color: #f5f5f5;
--output-highlight-error-bg-color: #820000;
}
:root,
[data-theme='light']:root {
@mixin light-theme-vars;
}
@media (prefers-color-scheme: dark) {
:root {
@mixin dark-theme-vars;
}
}
[data-theme='dark']:root {
@mixin dark-theme-vars;
}
/* Modify normalized styles */
button,
input,
optgroup,
select,
textarea {
font-family: var(--primary-font);
font-optical-sizing: auto;
}
html {
box-sizing: border-box;
}
a {
color: var(--link-color);
}
a:visited {
color: var(--link-color-visited);
}
*,
*::before,
*::after {
box-sizing: inherit;
}
body {
color: var(--font-color);
background-color: var(--background-color);
padding: 0 1em;
font-family: var(--primary-font);
font-optical-sizing: auto;
font-size: var(--primary-font-size);
}
/* stylelint-disable-next-line selector-class-pattern */
:global(.language-rust_errors) {
& :global(.warning) {
color: var(--output-highlight-warning-color);
background-color: var(--output-highlight-warning-bg-color);
}
& :global(.error) {
color: var(--output-highlight-error-color);
background-color: var(--output-highlight-error-bg-color);
}
}