@use "mixins"; :root { --color-grey-100: #F9FAFB; --color-grey-200: #F3F4F6; --color-grey-300: #E5E7EB; --color-grey-400: #D1D5DB; --color-grey-500: #9CA3AF; --color-grey-800: #4B5563; --color-grey-900: #3A3A3A; --color-grey-950: #1f1f1f; --color-white: #ffffff; --shadow-md: 0 1px 3px 0 rgba(0,0,0,0.1),0 1px 2px 0 rgba(0,0,0,0.06); --shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05); --shadow-xl: 0 25px 50px -12px rgba(0,0,0,0.25); --icon-sun: url('data:image/svg+xml,\ \ \ '); --icon-sun-filter: invert(0.61) sepia(0.8) saturate(5) hue-rotate(0deg) brightness(0.92); --icon-moon: url('data:image/svg+xml,\ \ \ '); --icon-moon-filter: invert(0.75); --color-mode: 'light'; --color-dark: #141414; --color-dark-alpha: rgba(0, 0, 0, 0.1); --color-light: #efefef; --color-light-alpha: rgba(255, 255, 255, 0.9); --icon-sun: url('data:image/svg+xml,\ \ \ '); --icon-sun-filter: invert(0.61) sepia(0.8) saturate(5) hue-rotate(0deg) brightness(0.92); --icon-moon: url('data:image/svg+xml,\ \ \ '); --icon-moon-filter: invert(0.75); --background: #efefef; --text-color: #141414; --button-icon: var(--icon-moon); --button-icon-filter: var(--icon-moon-filter); --button-background: var(--color-dark); --button-color: var(--color-light); --border-color: var(--color-dark-alpha); } @media (prefers-color-scheme: dark) { :root { --color-mode: 'dark'; } :root:not([data-user-color-scheme]) { --background: var(--color-dark); --text-color: var(--color-light); --button-icon: var(--icon-sun); --button-icon-filter: var(--icon-sun-filter); --button-background: var(--color-light-alpha); --button-color: var(--color-dark); --border-color: var(--color-light-alpha); --color-primary: hsl(from var(--primary-color) h s calc(l - 50)); --color-secondary: hsl(from var(--secondary-color) h s calc(l + 10)); --logo-primary-color: hsl(from var(--primary-color) h s calc(l - 25)); --card-color: var(--color-white); --card-bg: #181A1B; --card-tag-bg: var(--color-white); --card-tag-color: var(--color-grey-900); --card-placeholder: var(--color-grey-400); --nav-color: var(--color-white); --nav-active-bg: #2C2F31; // --nav-active-color: var(--color-grey-900); // --nav-hover-color: var(--color-grey-900); --nav-hover-bg: #2C2F31; --tags-color: #c3beb6; --tags-hover-color: #e8e6e3; --tags-hover-bg: #3e4345; --tags-active-color: #e8e6e3; --tags-active-bg: #3e4345; --recipe-placeholder: var(--color-grey-400); --recipe-color: var(--color-white); --recipe-serving-color: #e8e6e3; --recipe-serving-bg: #2c2f31; --recipe-serving-hover-bg: #3c444f; --search-bg: var(--color-grey-950); --search-border-color: var(--color-grey-500); --search-input-border-color: var(--color-white); --search-results-bg: var(--color-grey-950); --search-results-border-color: var(--color-grey-500); --home-gradient-1: #1B1D1E; --home-gradient-bg: transparent; --bgc-grey-100: #1B1D1E; --site-bg: #181A1B; --site-color: var(--color-white); color-scheme: dark; } } [data-user-color-scheme='dark'] { --background: var(--color-dark); --text-color: var(--color-light); --button-icon: var(--icon-sun); --button-icon-filter: var(--icon-sun-filter); --button-background: var(--color-light-alpha); --button-color: var(--color-dark); --border-color: var(--color-light-alpha); --color-primary: hsl(from var(--primary-color) h s calc(l - 50)); --color-secondary: hsl(from var(--secondary-color) h s calc(l + 10)); --logo-primary-color: hsl(from var(--primary-color) h s calc(l - 25)); --card-color: var(--color-white); --card-bg: #181A1B; --card-tag-bg: var(--color-white); --card-tag-color: var(--color-grey-900); --card-placeholder: var(--color-grey-400); --nav-color: var(--color-white); --nav-active-bg: #2C2F31; // --nav-active-color: var(--color-grey-900); // --nav-hover-color: var(--color-grey-900); --nav-hover-bg: #2C2F31; --tags-color: #c3beb6; --tags-hover-color: #e8e6e3; --tags-hover-bg: #3e4345; --tags-active-color: #e8e6e3; --tags-active-bg: #3e4345; --recipe-placeholder: var(--color-grey-400); --recipe-color: var(--color-white); --recipe-serving-color: #e8e6e3; --recipe-serving-bg: #2c2f31; --recipe-serving-hover-bg: #3c444f; --search-bg: var(--color-grey-950); --search-border-color: var(--color-grey-500); --search-input-border-color: var(--color-white); --search-results-bg: var(--color-grey-950); --search-results-border-color: var(--color-grey-500); --home-gradient-1: #1B1D1E; --home-gradient-bg: transparent; --bgc-grey-100: #1B1D1E; --site-bg: #181A1B; --site-color: var(--color-white); color-scheme: dark; } .no-js .user-toggle { display: none; } // .user-toggle { // margin: 2rem auto 0 auto; // padding-top: 2.5rem; // max-width: 20rem; // border-top: 1px solid var(--border-color); // text-align: center; // } .toggle-button { display: inline-flex; background: var(--button-background); color: var(--button-color); border: none; font: inherit; // font-size: 1.5rem; gap: .5em; padding: .4rem .6rem; align-items: center; transition: background 500ms ease-in-out, color 200ms ease; } .toggle-button__icon { background: var(--button-icon); width: 1.2em; height: 1.2em; filter: var(--button-icon-filter); transform: translateY(1px); /* Optical adjustment */ transition: filter 500ms ease-in-out; } .toggle-button:focus:focus-visible { outline: 1px solid var(--button-background); outline-offset: 0.5rem; } body { display: flex; flex-direction: column; background: var(--site-bg, vra(--color-white)); color: var(--site-color, vra(--color-grey-900)); transition: background 500ms ease-in-out, color 200ms ease; } main { display: flex; flex-direction: column; margin-bottom: 30px; } // The x-cloak attribute is automatically removed from elements when Alpine initializes. They should not be visible before then to avoid flickering content [x-cloak] { display: none !important; } section { padding: 30px 0; @include mixins.mq(medium) { padding: 60px 0; } } a { color: var(--color-secondary); text-decoration: underline 2px; text-underline-offset: 2px; &:hover, &:focus { outline: none; text-decoration: none; } &:focus-visible { outline: 2px solid var(--color-secondary); } } button { cursor: pointer; } input { &:focus { outline: none; box-shadow: 0 0 0 2px var(--color-secondary); } }