@tailwind base; @tailwind components; @tailwind utilities; @import url(@fontsource/radio-canada-big/600.css); @import url("$lib/assets/style/host-grotesk.css"); :root { --font-body: "Host Grotesk", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; --font-display: "Radio Canada Big", var(--font-body); --transition: linear( 0, 0.006, 0.025 2.8%, 0.101 6.1%, 0.539 18.9%, 0.721 25.3%, 0.849 31.5%, 0.937 38.1%, 0.968 41.8%, 0.991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, 1.001 ); } @mixin light { // general --accent-pink: hsl(302, 100%, 76%); --accent-pink-alt: hsl(302, 100%, 50%); --accent-pink-muted: hsl(302, 98%, 42%); --accent-red: hsl(348, 100%, 80%); --accent-red-alt: hsl(348, 100%, 50%); --accent-purple: hsl(264, 100%, 81%); --accent-purple-alt: hsl(264, 100%, 50%); --accent-blue: hsl(220, 100%, 78%); --accent-blue-alt: hsl(220, 100%, 50%); --accent-green: hsl(140, 70%, 74%); --accent-green-alt: hsl(140, 66%, 55%); --accent: var(--accent-pink); --accent-alt: var(--accent-pink-alt); --accent-pink-transparent: hsla(303, 100%, 50%, 0); --accent-red-transparent: hsla(348, 100%, 50%, 0); --accent-purple-transparent: hsla(264, 100%, 50%, 0); --accent-blue-transparent: hsla(220, 100%, 50%, 0); --accent-green-transparent: hsla(140, 70%, 30%, 0); // foregrounds --fg: hsl(0, 0%, 0%); --fg-muted: hsla(0, 0%, 0%, 0.6); --fg-on-accent: hsl(0, 0%, 0%); --fg-on-badge: hsl(0, 0%, 0%); // readable version of the accent color --fg-accent: var(--accent-pink-muted); --fg-failure: var(--accent-red-alt); // backgrounds --bg: hsl(0, 0%, 95%); --bg-gradient-from: var(--accent-pink); --bg-gradient-to: hsla(303, 100%, 50%, 0); --bg-gradient-pink-from: var(--accent-pink); --bg-gradient-pink-to: hsla(303, 100%, 50%, 0); --bg-gradient-pink-alt-from: var(--accent-pink); --bg-gradient-pink-alt-to: hsl(303, 100%, 91%); --bg-gradient-red-from: var(--accent-red); --bg-gradient-red-to: hsla(348, 100%, 50%, 0); --bg-gradient-red-alt-from: var(--accent-red); --bg-gradient-red-alt-to: hsl(348, 100%, 91%); --bg-gradient-purple-from: var(--accent-purple); --bg-gradient-purple-to: hsla(264, 100%, 50%, 0); --bg-gradient-purple-alt-from: var(--accent-purple); --bg-gradient-purple-alt-to: hsl(264, 100%, 91%); --bg-gradient-blue-from: var(--accent-blue); --bg-gradient-blue-to: hsla(220, 100%, 50%, 0); --bg-gradient-blue-alt-from: var(--accent-blue); --bg-gradient-blue-alt-to: hsl(220, 100%, 91%); --bg-gradient-green-from: var(--accent-green); --bg-gradient-green-to: hsla(140, 70%, 30%, 0); --bg-gradient-green-alt-from: var(--accent-green-alt); --bg-gradient-green-alt-to: hsl(140, 70%, 91%); --bg-gradient-image-from: hsla(0, 0%, 95%, 0.5); --bg-gradient-image-to: hsla(0, 0%, 95%, 1); --bg-gradient: linear-gradient( to bottom, var(--bg-gradient-from), var(--bg-gradient-to) 100% ); --bg-gradient-pink: linear-gradient( to bottom, var(--bg-gradient-pink-from), var(--bg-gradient-pink-to) 25% ); --bg-gradient-pink-alt: linear-gradient( to top, var(--bg-gradient-pink-alt-from), var(--bg-gradient-pink-alt-to) 100% ); --bg-gradient-red: linear-gradient( to bottom, var(--bg-gradient-red-from), var(--bg-gradient-red-to) 25% ); --bg-gradient-red-alt: linear-gradient( to top, var(--bg-gradient-red-alt-from), var(--bg-gradient-red-alt-to) 100% ); --bg-gradient-purple: linear-gradient( to bottom, var(--bg-gradient-purple-from), var(--bg-gradient-purple-to) 25% ); --bg-gradient-purple-alt: linear-gradient( to top, var(--bg-gradient-purple-alt-from), var(--bg-gradient-purple-alt-to) 100% ); --bg-gradient-blue: linear-gradient( to bottom, var(--bg-gradient-blue-from), var(--bg-gradient-blue-to) 25% ); --bg-gradient-blue-alt: linear-gradient( to top, var(--bg-gradient-blue-alt-from), var(--bg-gradient-blue-alt-to) 100% ); --bg-gradient-green: linear-gradient( to bottom, var(--bg-gradient-green-from), var(--bg-gradient-green-to) 25% ); --bg-gradient-green-alt: linear-gradient( to top, var(--bg-gradient-green-alt-from), var(--bg-gradient-green-alt-to) 100% ); --bg-gradient-image: linear-gradient( to bottom, var(--bg-gradient-image-from), var(--bg-gradient-image-to) 100% ); --bg-panel: hsl(0, 0%, 100%); --bg-panel-highlight: hsl(0, 0%, 92%); --bg-separator: hsla(0, 0%, 0%, 0.2); --bg-button: var(--bg-panel-highlight); --bg-badge: var(--accent-pink); --bg-input: #e0e0e0; --shadow-panel: 0 2px 4px 0 hsla(0, 0%, 0%, 0.15); } @mixin dark { // general --accent-pink: hsl(302, 100%, 76%); --accent-pink-alt: hsl(302, 100%, 50%); --accent-red: hsl(348, 100%, 80%); --accent-red-alt: hsl(348, 100%, 50%); --accent-purple: hsl(264, 100%, 81%); --accent-purple-alt: hsl(264, 100%, 50%); --accent-blue: hsl(220, 100%, 78%); --accent-blue-alt: hsl(220, 100%, 50%); --accent: var(--accent-pink); --accent-alt: var(--accent-pink-alt); --accent-green: hsl(140, 70%, 74%); --accent-green-alt: hsl(140, 64%, 42%); --accent-pink-transparent: hsla(303, 100%, 50%, 0); --accent-red-transparent: hsla(348, 100%, 50%, 0); --accent-purple-transparent: hsla(264, 100%, 50%, 0); --accent-blue-transparent: hsla(220, 100%, 50%, 0); --accent-green-transparent: hsla(140, 70%, 30%, 0); // foregrounds --fg: hsl(0, 0%, 100%); --fg-muted: hsla(0, 0%, 100%, 0.65); --fg-on-accent: hsl(0, 0%, 0%); --fg-on-badge: hsl(0, 0%, 0%); --fg-accent: var(--accent); --fg-failure: var(--accent-red); // backgrounds --bg: hsl(220, 5%, 15%); --bg-gradient-from: hsla(303, 100%, 50%, 0.1); --bg-gradient-to: hsla(303, 100%, 50%, 0); --bg-gradient-pink-from: hsla(303, 100%, 50%, 0.1); --bg-gradient-pink-to: hsla(303, 100%, 50%, 0); --bg-gradient-pink-alt-from: var(--accent-pink); --bg-gradient-pink-alt-to: hsl(303, 100%, 91%); --bg-gradient-red-from: hsla(348, 100%, 50%, 0.1); --bg-gradient-red-to: hsla(348, 100%, 50%, 0); --bg-gradient-red-alt-from: var(--accent-red); --bg-gradient-red-alt-to: hsl(348, 100%, 91%); --bg-gradient-purple-from: hsla(264, 100%, 50%, 0.1); --bg-gradient-purple-to: hsla(264, 100%, 50%, 0); --bg-gradient-purple-alt-from: var(--accent-purple); --bg-gradient-purple-alt-to: hsl(264, 100%, 91%); --bg-gradient-blue-from: hsla(220, 100%, 50%, 0.1); --bg-gradient-blue-to: hsla(220, 100%, 50%, 0); --bg-gradient-blue-alt-from: var(--accent-blue); --bg-gradient-blue-alt-to: hsl(220, 100%, 91%); --bg-gradient-green-from: hsla(140, 70%, 30%, 0.1); --bg-gradient-green-to: hsla(140, 70%, 30%, 0); --bg-gradient-green-alt-from: var(--accent-green-alt); --bg-gradient-green-alt-to: hsl(140, 70%, 91%); --bg-gradient-image-from: hsla(220, 5%, 12%, 0.5); --bg-gradient-image-to: hsla(220, 5%, 12%, 1); --bg-gradient: linear-gradient( to bottom, var(--bg-gradient-from), var(--bg-gradient-to) 100% ); --bg-gradient-pink: linear-gradient( to bottom, var(--bg-gradient-pink-from), var(--bg-gradient-pink-to) 25% ); --bg-gradient-pink-alt: linear-gradient( to top, var(--bg-gradient-pink-alt-from), var(--bg-gradient-pink-alt-to) 100% ); --bg-gradient-red: linear-gradient( to bottom, var(--bg-gradient-red-from), var(--bg-gradient-red-to) 25% ); --bg-gradient-red-alt: linear-gradient( to top, var(--bg-gradient-red-alt-from), var(--bg-gradient-red-alt-to) 100% ); --bg-gradient-purple: linear-gradient( to bottom, var(--bg-gradient-purple-from), var(--bg-gradient-purple-to) 25% ); --bg-gradient-purple-alt: linear-gradient( to top, var(--bg-gradient-purple-alt-from), var(--bg-gradient-purple-alt-to) 100% ); --bg-gradient-blue: linear-gradient( to bottom, var(--bg-gradient-blue-from), var(--bg-gradient-blue-to) 25% ); --bg-gradient-blue-alt: linear-gradient( to top, var(--bg-gradient-blue-alt-from), var(--bg-gradient-blue-alt-to) 100% ); --bg-gradient-green: linear-gradient( to bottom, var(--bg-gradient-green-from), var(--bg-gradient-green-to) 25% ); --bg-gradient-green-alt: linear-gradient( to top, var(--bg-gradient-green-alt-from), var(--bg-gradient-green-alt-to) 100% ); --bg-gradient-image: linear-gradient( to bottom, var(--bg-gradient-image-from), var(--bg-gradient-image-to) 100% ); --bg-panel: hsl(220, 4%, 24%); --bg-panel-highlight: hsl(220, 2%, 32%); --bg-separator: hsl(220, 4%, 28%); --bg-button: hsl(220, 6%, 34%); --bg-badge: var(--accent-pink); --shadow-panel: 0 4px 6px 0 hsla(0, 0%, 0%, 0.15); color-scheme: dark; } @media (prefers-color-scheme: dark) { :root { @include dark; } } @media (prefers-color-scheme: light) { :root { @include light; } } :root.light { @include light; } :root.dark { @include dark; } body { @apply text-foreground font-body font-semibold overflow-x-hidden; width: 100vw; background-color: var(--bg); background-size: 100vw 100vh; } ::selection, ::-moz-selection { @apply bg-accent-blue text-on-accent; } .hoverable { @apply hover:scale-105 duration-200; will-change: transform; } .hoverable-md { @apply hover:scale-110 duration-200; will-change: transform; } .hoverable-lg { @apply hover:scale-[1.15] duration-200; will-change: transform; } .selected { @apply bg-accent-purple !text-black; } @layer components { select { @apply appearance-none; } .btn { @apply bg-button flex items-center justify-center overflow-hidden relative cursor-pointer px-6 h-14 rounded-full font-medium focus:!outline-none hover:scale-105 duration-200 active:scale-95 disabled:opacity-50 disabled:pointer-events-none hoverable; transition: opacity 0.2s ease, transform 0.2s ease, background-color 0.2s ease; } .btn.highlight { @apply bg-accent text-on-accent; } h1, h2, h3, h4, h5, h6 { @apply font-display font-semibold; } code { @apply font-mono bg-gray-200 rounded-md px-1 dynadark:bg-panel-alt dynadark:text-white; } p a { @apply text-accent underline; } input[type="text"], select.dropdown { @apply w-full p-3 rounded-lg bg-panel border-2 border-button pl-3 pr-[4rem]; } input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; } input[type="number"] { -moz-appearance: textfield; appearance: textfield; } input[type="text"]::placeholder { @apply text-muted font-normal; } input[type="text"]:focus { @apply outline outline-accent outline-2; } input[type="range"] { @apply appearance-none bg-panel h-2 rounded-lg; } input[type="range"]::-webkit-slider-thumb { @apply appearance-none w-4 h-4 bg-accent rounded-full cursor-pointer; } input[type="range"]::-moz-range-thumb { @apply w-4 h-4 bg-accent rounded-full cursor-pointer; } hr { @apply border-separator; } }