330 lines
6.2 KiB
CSS
330 lines
6.2 KiB
CSS
@tailwind base;
|
||
@tailwind components;
|
||
@tailwind utilities;
|
||
|
||
:root {
|
||
--color-gray-50: #fafafa;
|
||
--color-gray-100: #f4f4f5;
|
||
--color-gray-200: #e4e4e7;
|
||
--color-gray-300: #d4d4d8;
|
||
--color-gray-400: #a1a1aa;
|
||
--color-gray-500: #71717a;
|
||
--color-gray-600: #52525b;
|
||
--color-gray-700: #3f3f46;
|
||
--color-gray-800: #27272a;
|
||
--color-gray-900: #18181b;
|
||
--color-gray-950: #09090b;
|
||
|
||
--color-red-50: #fef2f2;
|
||
--color-red-100: #fee2e2;
|
||
--color-red-200: #fecaca;
|
||
--color-red-300: #fca5a5;
|
||
--color-red-400: #f87171;
|
||
--color-red-500: #ef4444;
|
||
--color-red-600: #dc2626;
|
||
--color-red-700: #b91c1c;
|
||
--color-red-800: #991b1b;
|
||
--color-red-900: #7f1d1d;
|
||
--color-red-950: #450a0a;
|
||
}
|
||
|
||
:focus-visible {
|
||
outline: 6px solid theme(colors.blue.500 / 50%);
|
||
border-radius: 3px;
|
||
}
|
||
|
||
/* Typography */
|
||
|
||
.prose :is(p, h1, h2, h3, h4, h5, h6, ul, ol, li, pre) {
|
||
@apply mb-4;
|
||
}
|
||
|
||
.prose :is(h1, h2, h3, h4, h5, h6) {
|
||
@apply mt-8;
|
||
}
|
||
|
||
.link,
|
||
.prose a {
|
||
@apply text-red-900 hover:text-red-600 dark:text-red-300 dark:hover:text-red-400 border-b-4 border-red-500/25 dark:border-red-200/25;
|
||
transition: color 200ms;
|
||
}
|
||
|
||
:is(.list, .prose ul) li {
|
||
position: relative;
|
||
margin-left: 1.5em;
|
||
}
|
||
|
||
:is(.list, .prose ul) li::before {
|
||
content: "–";
|
||
display: inline-block;
|
||
position: absolute;
|
||
width: 1.5em;
|
||
left: -1.5em;
|
||
}
|
||
|
||
.subheading,
|
||
.prose h3 {
|
||
@apply font-bold text-red-800 dark:text-red-300;
|
||
}
|
||
|
||
:is(.subheading, .prose h3)::before {
|
||
content: "★";
|
||
font-weight: 500;
|
||
margin-right: 0.75em;
|
||
}
|
||
|
||
.subsubheading,
|
||
.prose h4 {
|
||
font-weight: 500;
|
||
}
|
||
|
||
.code-block,
|
||
pre {
|
||
@apply bg-gray-100 dark:bg-gray-800;
|
||
border-radius: 0.25em;
|
||
overflow-x: auto;
|
||
padding: 1em;
|
||
position: relative;
|
||
}
|
||
|
||
.code-inline,
|
||
code {
|
||
@apply bg-gray-100 dark:bg-gray-800;
|
||
padding: 0.125em 0.25em;
|
||
border-radius: 0.25em;
|
||
font-size: 0.875em;
|
||
}
|
||
|
||
/* Background */
|
||
|
||
.clip-wedge {
|
||
--wedge-skew: 10vw;
|
||
clip-path: polygon(0 var(--wedge-skew), 100% 0, 100% calc(100% - var(--wedge-skew)), 0% 100% );
|
||
}
|
||
|
||
@media screen(md) {
|
||
.clip-wedge {
|
||
--wedge-skew: 8vw;
|
||
}
|
||
}
|
||
|
||
@media screen(lg) {
|
||
.clip-wedge {
|
||
--wedge-skew: 5vw;
|
||
}
|
||
}
|
||
|
||
/* Components */
|
||
|
||
.button {
|
||
padding-block: 0.5em;
|
||
padding-inline: 1.5em;
|
||
min-width: 6em;
|
||
text-align: center;
|
||
border-radius: 0.5rem;
|
||
transition: background-color 120ms linear;
|
||
|
||
&:not(:disabled):hover {
|
||
background-color: var(--hover-color);
|
||
}
|
||
}
|
||
|
||
.button--icon {
|
||
border-radius: 100px;
|
||
padding-inline: 0.5em;
|
||
padding-block: 0.5em;
|
||
min-width: auto;
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 0.5em;
|
||
--hover-color: theme(colors.gray.400 / 25%);
|
||
}
|
||
|
||
.button--primary {
|
||
background-color: theme(colors.red.700);
|
||
color: white;
|
||
--hover-color: theme(colors.red.800);
|
||
}
|
||
|
||
.dark .button--primary {
|
||
background-color: theme(colors.red.800);
|
||
--hover-color: theme(colors.red.700);
|
||
}
|
||
|
||
.button--secondary {
|
||
background-color: theme(colors.gray.200);
|
||
--hover-color: theme(colors.gray.300)
|
||
}
|
||
|
||
.dark .button--secondary {
|
||
background-color: theme(colors.gray.800);
|
||
--hover-color: theme(colors.gray.700);
|
||
}
|
||
|
||
.input {
|
||
padding: 0.5em 0.75em;
|
||
border-radius: 0.25rem;
|
||
background-color: theme(colors.gray.300);
|
||
transition: background-color 120ms linear;
|
||
color: theme(colors.gray.900);
|
||
flex-wrap: wrap;
|
||
|
||
&:focus {
|
||
background-color: theme(colors.gray.50);
|
||
}
|
||
}
|
||
|
||
.input-group > :first-child {
|
||
border-top-right-radius: 0;
|
||
border-bottom-right-radius: 0;
|
||
}
|
||
|
||
.input-group > * + * {
|
||
border-top-left-radius: 0;
|
||
border-bottom-left-radius: 0;
|
||
}
|
||
|
||
.card {
|
||
@apply rounded-xl dark:shadow-xl bg-gray-200 dark:bg-gray-800;
|
||
}
|
||
|
||
.card--highlighted {
|
||
@apply bg-red-200 dark:bg-red-800;
|
||
}
|
||
|
||
/* Utils */
|
||
|
||
html:not(.dark) .light\:hidden {
|
||
display: none;
|
||
}
|
||
|
||
.svg-w-8 svg {
|
||
@apply w-8;
|
||
}
|
||
|
||
.hero strong {
|
||
font-style: normal;
|
||
@apply text-red-700 dark:text-red-300;
|
||
}
|
||
|
||
/* Tippy */
|
||
|
||
.tippy-box[data-animation="fade"][data-state="hidden"] {
|
||
opacity: 0;
|
||
}
|
||
|
||
[data-tippy-root] {
|
||
max-width: calc(100vw - 10px);
|
||
}
|
||
|
||
.tippy-box {
|
||
position: relative;
|
||
background-color: #333;
|
||
color: #fff;
|
||
border-radius: 4px;
|
||
font-size: 14px;
|
||
line-height: 1.4;
|
||
white-space: normal;
|
||
outline: 0;
|
||
transition-property: transform, visibility, opacity;
|
||
}
|
||
|
||
.tippy-box[data-placement^="top"] > .tippy-arrow {
|
||
bottom: 0;
|
||
}
|
||
|
||
.tippy-box[data-placement^="top"] > .tippy-arrow:before {
|
||
bottom: -7px;
|
||
left: 0;
|
||
border-width: 8px 8px 0;
|
||
border-top-color: initial;
|
||
transform-origin: center top;
|
||
}
|
||
|
||
.tippy-box[data-placement^="bottom"] > .tippy-arrow {
|
||
top: 0;
|
||
}
|
||
|
||
.tippy-box[data-placement^="bottom"] > .tippy-arrow:before {
|
||
top: -7px;
|
||
left: 0;
|
||
border-width: 0 8px 8px;
|
||
border-bottom-color: initial;
|
||
transform-origin: center bottom;
|
||
}
|
||
|
||
.tippy-box[data-placement^="left"] > .tippy-arrow {
|
||
right: 0;
|
||
}
|
||
|
||
.tippy-box[data-placement^="left"] > .tippy-arrow:before {
|
||
border-width: 8px 0 8px 8px;
|
||
border-left-color: initial;
|
||
right: -7px;
|
||
transform-origin: center left;
|
||
}
|
||
|
||
.tippy-box[data-placement^="right"] > .tippy-arrow {
|
||
left: 0;
|
||
}
|
||
|
||
.tippy-box[data-placement^="right"] > .tippy-arrow:before {
|
||
left: -7px;
|
||
border-width: 8px 8px 8px 0;
|
||
border-right-color: initial;
|
||
transform-origin: center right;
|
||
}
|
||
|
||
.tippy-box[data-inertia][data-state="visible"] {
|
||
transition-timing-function: cubic-bezier(0.54, 1.5, 0.38, 1.11);
|
||
}
|
||
|
||
.tippy-arrow {
|
||
width: 16px;
|
||
height: 16px;
|
||
color: #333;
|
||
}
|
||
|
||
.tippy-arrow:before {
|
||
content: "";
|
||
position: absolute;
|
||
border-color: transparent;
|
||
border-style: solid;
|
||
}
|
||
|
||
.tippy-content {
|
||
position: relative;
|
||
padding: 0.75em 1em;
|
||
z-index: 1;
|
||
}
|
||
|
||
html.dark .invert-colors {
|
||
filter: invert(0.95);
|
||
}
|
||
|
||
.button-fundraiser-shadow {
|
||
box-shadow: var(--color-gray-900) 10px 10px 0px 0px;
|
||
border: 2px solid var(--color-gray-900);
|
||
}
|
||
|
||
html.dark .button-fundraiser-shadow {
|
||
box-shadow: var(--color-gray-300) 10px 10px 0px 0px;
|
||
border: 2px solid var(--color-gray-300);
|
||
}
|
||
|
||
.fundraiser-progress-bar {
|
||
width: min(20rem, 80vw);
|
||
height: 1rem;
|
||
border-radius: 0.25rem;
|
||
|
||
--filled: 3%;
|
||
--empty-color: theme(colors.gray.300);
|
||
|
||
background:
|
||
linear-gradient(90deg, transparent, transparent var(--filled), var(--empty-color) var(--filled)),
|
||
repeating-linear-gradient(-45deg, theme(colors.red.700), theme(colors.red.700) 20px, theme(colors.red.800) 20px, theme(colors.red.800) 40px);
|
||
}
|
||
|
||
html.dark .fundraiser-progress-bar {
|
||
--empty-color: theme(colors.gray.700);
|
||
}
|