@import "vars"; @import "helpers"; @import "fonts"; @import "../../../node_modules/normalize.css/normalize"; // --- Css variables, dark mode --- :root { // Primary --primary: #{$primary}; --primary-light: #{$primaryLight}; --on-primary: #{$onPrimary}; --primary-on-background: #{$primaryOnBackground}; --primary-light-on-background: #{$primaryLightOnBackground}; --primary-on-surface: #{$primaryOnSurface}; --primary-light-on-surface: #{$primaryLightOnSurface}; // Secondary --secondary: #{$secondary}; --on-secondary: #{$onSecondary}; // Background --background: #{$background}; --on-background: #{$onBackground}; // Surface --surface: #{$surface}; --on-surface: #{$onSurface}; // Subsurface --subsurface: #{$subsurface}; --on-subsurface: #{$onSubsurface}; // Input --input: #{$input}; --on-input: #{$onInput}; // States --info: #{$info}; --success: #{$success}; --warning: #{$warning}; --error: #{$error}; // States text --on-info: #{$onInfo}; --on-success: #{$onSuccess}; --on-warning: #{$onWarning}; --on-error: #{$onError}; // States text on background --info-on-background: #{$infoOnBackground}; --success-on-background: #{$successOnBackground}; --warning-on-background: #{$warningOnBackground}; --error-on-background: #{$errorOnBackground}; // States text on surface --info-on-surface: #{$infoOnSurface}; --success-on-surface: #{$successOnSurface}; --warning-on-surface: #{$warningOnSurface}; --error-on-surface: #{$errorOnSurface}; @include darkMode { // Primary --primary: #{$primaryDarkMode}; --primary-light: #{$primaryLightDarkMode}; --on-primary: #{$onPrimaryDarkMode}; --primary-on-background: #{$primaryOnBackgroundDarkMode}; --primary-light-on-background: #{$primaryLightOnBackgroundDarkMode}; --primary-on-surface: #{$primaryOnSurfaceDarkMode}; --primary-light-on-surface: #{$primaryLightOnSurfaceDarkMode}; // Secondary --secondary: #{$secondaryDarkMode}; --on-secondary: #{$onSecondaryDarkMode}; // Background --background: #{$backgroundDarkMode}; --on-background: #{$onBackgroundDarkMode}; // Surface --surface: #{$surfaceDarkMode}; --on-surface: #{$onSurfaceDarkMode}; // Subsurface --subsurface: #{$subsurfaceDarkMode}; --on-subsurface: #{$onSubsurfaceDarkMode}; // Input --input: #{$inputDarkMode}; --on-input: #{$onInputDarkMode}; // States --info: #{$infoDarkMode}; --success: #{$successDarkMode}; --warning: #{$warningDarkMode}; --error: #{$errorDarkMode}; // States text --on-info: #{$onInfoDarkMode}; --on-success: #{$onSuccessDarkMode}; --on-warning: #{$onWarningDarkMode}; --on-error: #{$onErrorDarkMode}; // States text on background --info-on-background: #{$infoOnBackgroundDarkMode}; --success-on-background: #{$successOnBackgroundDarkMode}; --warning-on-background: #{$warningOnBackgroundDarkMode}; --error-on-background: #{$errorOnBackgroundDarkMode}; // States text on surface --info-on-surface: #{$infoOnSurfaceDarkMode}; --success-on-surface: #{$successOnSurfaceDarkMode}; --warning-on-surface: #{$warningOnSurfaceDarkMode}; --error-on-surface: #{$errorOnSurfaceDarkMode}; } --color: var(--on-background); --background-color: var(--background); } :focus-visible, button:focus-visible, [type="button"]:focus-visible, [type="reset"]:focus-visible, [type="submit"]:focus-visible { outline: 3px solid var(--primary-light); outline-offset: 2px; } * { box-sizing: border-box; } body { font-family: sans-serif; color: var(--color); background-color: var(--background-color); a { color: var(--primary-on-background); &:hover { color: var(--primary-light-on-background); } } } h1 { text-align: center; } a { text-decoration: none; .icon.lucide-external-link { --icon-size: 16px; margin-left: 4px; margin-top: -3px; } } ul { list-style-type: '- '; } hr { margin: 0; border: 0; border-top: 1px solid var(--on-background); opacity: 0.2; } .primary, .bold { --color: var(--primary-on-background); --background-color: var(--background); &.bold { --color: var(--on-primary); --background-color: var(--primary); } } .info { --color: var(--info-on-background); --background-color: var(--background); &.bold { --color: var(--on-info); --background-color: var(--info); } } .success { --color: var(--success-on-background); --background-color: var(--background); &.bold { --color: var(--on-success); --background-color: var(--success); } } .warning { --color: var(--warning-on-background); --background-color: var(--background); &.bold { --color: var(--on-warning); --background-color: var(--warning); } } .error, .danger { --color: var(--error-on-background); --background-color: var(--background); &.bold { --color: var(--on-error); --background-color: var(--error); } } button, .button { position: relative; display: inline-flex; margin: 8px; padding: 12px 16px; border: 1px solid var(--color); color: var(--color); background-color: var(--background-color); cursor: pointer; text-transform: uppercase; font-size: 16px; line-height: 16px; font-weight: bolder; border-radius: 5px; overflow: hidden; &.bold { border: 0; } .icon { --icon-size: 16px; margin-right: 8px; } .icon.last { margin-right: 0; margin-left: 8px; } &:hover::after:not([disabled]) { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--on-background); opacity: 0.2; } &[disabled] { position: relative; cursor: not-allowed; opacity: 0.1; } }