wonderfulfrog.com/src/includes/css/global/global-styles.css
Devin Haska 1a1af8b9a9
All checks were successful
Build and Deploy / build_and_deploy (push) Successful in 1m33s
2025 Design Refresh (#5)
Reviewed-on: #5
Co-authored-by: Devin Haska <wonderfulfrog@noreply.git.cloud.haska.me>
Co-committed-by: Devin Haska <wonderfulfrog@noreply.git.cloud.haska.me>
2025-05-30 13:40:42 -07:00

274 lines
4.7 KiB
CSS

/*
Global styles
Low-specificity, global styles that apply to the whole
project: https://cube.fyi/css.html
*/
@view-transition {
navigation: auto;
}
html {
scrollbar-color: var(--color-primary) var(--color-surface);
scrollbar-gutter: stable;
scrollbar-width: thin;
}
body {
accent-color: var(--color-primary);
background-color: var(--color-background);
color: var(--color-text);
font-family: var(--font-family-body);
font-size: 1.25rem;
font-weight: var(--font-weight-normal);
letter-spacing: -0.03rem;
line-height: 2rem;
margin: 0;
}
h1 {
font-size: 3rem;
font-family: var(--font-family-display);
font-weight: var(--font-weight-black);
letter-spacing: -0.1rem;
line-height: 3rem;
}
h2 {
font-size: 2rem;
font-weight: var(--font-weight-bold);
letter-spacing: -0.05rem;
line-height: 2rem;
}
h3 {
font-size: 1.5rem;
font-weight: var(--font-weight-normal);
letter-spacing: -0.05rem;
line-height: 1.5rem;
}
h4 {
font-size: 1.125rem;
font-weight: var(--font-weight-normal);
letter-spacing: -0.05rem;
line-height: 1.125rem;
text-transform: uppercase;
}
h1 a,
h2 a,
h3 a,
h4 a {
font-weight: inherit;
}
a {
color: currentColor;
font-weight: 350;
text-decoration-color: var(--color-primary);
text-decoration-thickness: 2px;
transition:
color var(--transition-duration),
text-decoration-color var(--transition-duration);
}
a:visited {
text-decoration-color: var(--color-shadow);
}
a:hover,
a:active,
a:focus-visible {
color: var(--color-primary);
text-decoration-color: var(--color-primary);
}
ul li::marker {
color: var(--color-primary);
}
ol li::marker {
color: var(--color-fadeText);
}
blockquote {
border-inline-start: 2px solid var(--color-primary);
margin-inline-start: 0;
margin-inline-end: 0;
padding: var(--spacing-4);
background-color: var(--color-surface);
border-radius: var(--spacing-2);
}
blockquote > * + * {
margin-top: 1em;
}
:focus-visible {
outline: 3px solid;
outline-color: var(--color-text);
outline-offset: 0.3ch;
}
strong {
font-weight: 650;
}
abbr {
text-decoration-color: var(--color-primary);
}
hr {
border-style: solid;
color: var(--color-surface);
}
code {
font-family: var(--font-family-monospace);
font-weight: 350;
}
:not(pre) > code {
background-color: var(--color-surface);
border-radius: var(--spacing-1);
padding-block: 0.15em;
padding-inline: 0.25em;
}
pre {
overflow-x: auto;
}
figure,
picture {
display: flex;
flex-direction: column;
align-items: center;
margin-inline: 0;
border-radius: var(--spacing-2);
overflow: hidden;
}
figure figcaption {
color: var(--color-fadeText);
font-size: 0.8rem;
line-height: 1.125rem;
text-align: center;
margin-block-start: var(--flow-space, 1em);
}
picture source,
picture img {
height: auto;
}
aside {
background-color: var(--color-surface);
padding: var(--spacing-4);
border-radius: var(--spacing-2);
margin-inline: calc(-1 * var(--spacing-4));
}
mark {
background-color: var(--color-border);
color: var(--color-text);
padding-block: var(--spacing-1);
}
[href="#main"] {
background-color: var(--color-background);
margin-inline: var(--spacing-4);
}
[href="#main"]:not(:focus) {
border: 0;
clip: rect(0 0 0 0);
height: 0;
margin: 0;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
white-space: nowrap;
}
table {
border: 1px solid var(--color-border);
border-radius: var(--spacing-2);
border-spacing: 0;
overflow: hidden;
width: 100%;
}
table thead {
background-color: var(--color-surface);
}
table thead th {
text-align: left;
}
table th,
table td {
padding-block: var(--spacing-2);
padding-inline: var(--spacing-4);
}
table tbody tr:first-child td {
border-top: 1px solid var(--color-border);
}
table tbody tr:not(:last-child) td {
border-bottom: 1px solid var(--color-border);
}
dd {
margin-inline-start: 0;
}
/*
* Snippet from:
* https://nerdy.dev/6-css-snippets-every-front-end-developer-should-know-in-2025#transition-animation-for-%3Cdetails%3E
*/
details {
@media (prefers-reduced-motion: no-preference) {
interpolate-size: allow-keywords;
}
&::details-content {
opacity: 0;
block-size: 0;
overflow-y: clip;
transition:
content-visibility 0.3s allow-discrete,
opacity 0.3s,
block-size 0.3s;
}
&[open]::details-content {
opacity: 1;
block-size: auto;
}
ul,
ol {
margin-block: 0;
}
}
@media (prefers-reduced-motion: reduce) {
html:focus-within {
scroll-behavior: auto;
}
*,
::after,
::before {
animation-duration: 0.01ms !important;
animation-iteration-count: 1 !important;
scroll-behavior: auto !important;
transition-duration: 0.01ms !important;
}
}