tdpeuter/style.css

617 lines
No EOL
11 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

:root {
--soft-color-rgba: rgba(var(--on-surface-color), 0.5);
--font-family: "Letter Extended", Roboto Mono, monospace;
/*--font-family: Soehne,Helvetica,Segoe UI,sans-serif;*/
--gap: 3rem;
--underline-offset: 0.3rem;
--small-icon-size: 1rem;
--medium-icon-size: 3rem;
--line-thickness: 1px;
--line-style: dashed;
--action-line-style: solid;
--animation-duration: 0.3s;
}
/* Color scheme */
:root {
--primary-color: #009f9f; /* Kyanite */
/*--primary-variant-color: */
/*--secondary-color: */
/*--secondary-variant-color: */
--primary-color-rgb: rgb(3, 252, 186);
--primary-gradient: linear-gradient(143deg, var(--primary-color), transparent 70%),
linear-gradient(233deg, black, transparent 70.71%),
linear-gradient(24deg, white, transparent 50%),
black;
--background-gradient: linear-gradient(217deg, var(--primary-color), transparent 70%),
linear-gradient(127deg, black, transparent 70.71%),
linear-gradient(336deg, white, transparent 50%),
black;
--background-color: rgb(245, 245, 245); /* White smoke #F5F5F5 */
--on-background-color: rgb(16, 12, 8); /* Smoky black #100C08 */
--surface-color: rgb(255, 255, 255); /* White #FFFFFF */
--on-surface-color: var(--on-background-color);
--error-color: red;
--on-primary-color: white;
--on-secondary-color: black;
--on-error-color: white;
}
@media (prefers-color-scheme: dark) {
:root {
/*--primary-variant-color: */
/*--secondary-color: */
/*--secondary-variant-color: */
--background-color: #181a1b;
--surface-color: black;
--error-color: red;
--on-secondary-color: black;
--on-background-color: white;
--on-surface-color: rgb(255, 255, 255); /* white #FFFFFF */
--on-error-color: black;
}
}
@media (prefers-color-scheme: dark) {
.icon {
filter: invert(100%);
}
}
/* Main styling */
html, body {
height: 100%;
margin: 0;
}
body {
font-family: var(--font-family), monospace;
line-height: 1.4rem;
padding: 0;
display: flex;
flex-direction: column;
/* To show elements below each other */
align-items: center;
background-color: var(--background-color);
}
body.scroll-lock {
/* To disable scrolling when a modal is open */
overflow: hidden;
}
h1 {
text-transform: uppercase;
/*!* When wrapping to multiple lines, some padding between the lines *!*/
line-height: 1;
}
h2 {
text-transform: uppercase;
border-bottom: var(--line-thickness) var(--line-style, solid);
padding-bottom: 0.2em;
margin-bottom: inherit;
/* When wrapping to multiple lines, some padding between the lines */
line-height: 1;
}
h3 {
text-transform: uppercase;
font-size: unset;
/*padding: 0;*/
/*margin: 0;*/
/*font-weight: normal;*/
display: inline;
}
h1 a,
h2 a,
h3 a {
text-decoration: none;
}
a {
text-underline-offset: var(--underline-offset);
text-decoration-thickness: var(--line-thickness);
text-decoration-color: var(--soft-color-rgba);
text-decoration-line: underline;
}
a:link,
a:visited {
color: unset;
}
button {
font-family: var(--font-family), monospace;
font-size: 1rem;
display: block;
width: 100%;
padding: 0.5em 1em;
background-color: var(--background-color);
border: var(--line-thickness) var(--action-line-style);
border-color: var(--primary-color);
cursor: pointer;
vertical-align: center;
}
button:hover {
background-color: var(--primary-color);
color: var(--on-primary-color);
}
button:hover .icon {
filter: invert(100%);
}
footer {
width: 100%;
bottom: 2vh;
padding: var(--gap) 0;
font-size: small;
text-align: center;
background-color: var(--surface-color);
}
footer p {
opacity: 0.6;
}
footer a {
text-decoration: none;
}
header p {
text-align: justify;
margin-top: var(--underline-offset);
}
hr {
border: none;
border-bottom: var(--line-thickness) var(--line-style) var(--on-background-color);
}
main {
max-width: 320mm;
padding: 2rem;
counter-reset: link;
}
html {
hyphens: manual;
overflow-wrap: break-word;
}
strong {
color: var(--primary-color);
}
.badge {
max-height: var(--small-icon-size);
vertical-align: middle;
margin-left: 0.3em;
}
.hidden {
display: none;
}
.wrapper {
/* Wrapper to center the content */
flex: 1;
display: flex;
flex-direction: column;
/* To show elements below each other */
align-items: center;
justify-content: center;
}
.ipa {
font-family: "Charis SIL", "Doulos SIL", serif;
font-weight: lighter;
}
.landing {
text-align: center;
}
.heart {
color: #CD001A; /* Cherry red */
}
.inline-icon {
height: 1rem;
vertical-align: middle;
}
.quote {
border-left: var(--line-thickness) solid var(--primary-color);
padding-left: 10px;
margin: 20px;
text-align: left;
}
/* Custom details element */
details {
padding-left: 2.1em;
}
summary {
list-style: none;
}
details summary {
display: flex;
}
details > summary::before {
content: '[+]';
cursor: pointer;
margin-left: -2.1em;
margin-right: 0.3em;
}
details[open] summary::before {
content: '[] ';
}
details[open] {
/* When open, add some spacing below */
margin-bottom: 1em;
}
details[open] table td {
min-width: 1.5rem;
}
@media print {
body {
font-size: 10pt;
line-height: 1.1em;
color: black;
background: none;
}
main {
padding: 0;
}
h1 {
margin-top: 0;
}
a {
text-decoration: none; /* Remove link styling */
color: black; /* Ensure links are printed in black */
}
abbr {
text-decoration: none;
}
details,
details summary::before {
margin: initial;
padding: initial;
}
/* Hide the [+] in print */
details summary::before,
details[open] summary::before {
content: '';
}
footer,
nav-bar {
padding: 0;
display: none;
}
section {
page-break-inside: avoid;
}
}
/* Show icons with links next to each other */
ul.links {
list-style: none;
padding: 0;
margin: 0;
display: flex;
flex-wrap: wrap;
justify-content: center;
}
ul.links li {
padding: 0 10px;
}
ul.links img {
width: 40px;
height: 40px;
}
@media (prefers-reduced-motion: no-preference) {
a .icon:hover {
-webkit-filter: opacity(50%);
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
transition: all 0.5s ease;
}
}
/* Dictionary */
.dictionary-entry {
display: flex;
flex-wrap: wrap;
align-items: baseline;
gap: 0 var(--gap);
}
/* Hero */
.hero {
min-height: 100%;
min-width: 100%;
margin: 0;
padding: 0;
display: grid;
place-items: center;
background: var(--background-gradient);
color: var(--on-primary-color);
}
.hero strong {
color: var(--on-primary-color);
}
.hero-content {
padding: 0 clamp(5%, 5vw, 100px);
max-width: 320mm;
}
.hero .badges .icon {
filter: invert(100%);
}
/* Cards */
.cards {
width: 100%;
margin: 1rem auto;
display: inline-grid;
grid-template-columns: repeat(auto-fit, minmax(15em, 1fr));
grid-auto-rows: auto;
gap: 1em var(--gap);
/*display: flex;*/
/*flex-wrap: wrap;*/
/*justify-content: center;*/
}
.card {
display: flex;
flex-direction: column;
padding: 1.5rem;
/*background-color: var(--surface-color);*/
/*color: var(--on-surface-color);*/
border: var(--line-thickness) var(--action-line-style);
/*border-color: var(--on-background-color);*/
/*border-color: var(--soft-color-rgba);*/
/*border-color: var(--surface-color);*/
/*border-color: black;*/
border-color: var(--primary-color);
/*box-shadow: 1px 1px 0 var(--primary-color);*/
}
.card .body {
flex: 1 1 auto; /* To push the content to the top and the footer to the bottom */
}
.card ul {
padding-left: 1em;
}
.card .icon {
opacity: 85%;
}
.card img {
max-width: clamp(5rem, 25%, 15rem);
height: auto;
}
@media print {
.card img {
max-width: 2cm;
}
}
.card h1,
.card h2,
.card h3,
.card header {
display: block;
text-align: center;
}
.card header p {
text-align: center;
}
/* Actions */
.badges {
/* Align badges to the right */
display: flex;
justify-content: flex-end;
gap: 1em;
}
.badges img {
width: 1.5em;
height: 1.5em;
vertical-align: middle;
}
/* Podium */
.cards.podium {
margin-bottom: 6vh;
}
@media (prefers-reduced-motion: no-preference) {
.cards.podium .card {
transition: transform 200ms ease;
}
}
.cards.podium .card:nth-of-type(1) {
transform: translateY(0);
/* Swap first and second card for podium */
order: 2;
}
.cards.podium .card:nth-of-type(2) {
transform: translateY(3vh);
order: 1;
}
.cards.podium .card:nth-of-type(3) {
transform: translateY(6vh);
order: 3;
}
/* Blurry box with overlay button */
.blurred {
position: relative;
display: flex;
align-items: center;
min-height: 10em;
}
.blur-box {
padding: 2em;
margin: -2em;
pointer-events: none;
}
.blur-content {
width: 100%;
filter: blur(10px);
}
@media (prefers-reduced-motion: no-preference) {
.blurred-content {
transition: filter var(--animation-duration);
}
}
.blurred.revealed .blur-content {
filter: none;
pointer-events: auto;
}
.reveal-btn {
position: absolute;
display: flex;
align-items: center;
flex-direction: column;
}
/* https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion */
@media (prefers-reduced-motion: no-preference) {
/* URL animation on hover
Draw a line from left to right when hovering over the link */
a {
/* Reset to default text color */
color: inherit;
position: relative;
}
a::before {
content: '';
position: absolute;
/* Height of the line */
bottom: -1px;
height: var(--line-thickness);
left: 0;
width: 0;
background-color: var(--primary-color);
transition: width var(--animation-duration) ease;
}
a:has(.icon)::before {
display: none;
}
a:hover::before {
width: 100%;
}
button:hover {
transition: background-color var(--animation-duration) ease, color var(--animation-duration) ease;
}
button:hover .icon {
transition: filter var(--animation-duration) ease;
}
}
@media (max-width: 600px) {
footer {
max-width: 100%;
}
}
@media (min-height: 100vh) {
.footer {
position: static;
}
}