Compare commits

..

1 commit

Author SHA1 Message Date
50ef30e54d
[wip] new rgb guide
All checks were successful
/ build (pull_request) Successful in 26s
2025-12-15 16:23:05 +01:00
3 changed files with 195 additions and 204 deletions

View file

@ -1,95 +1,187 @@
@layer base, per-site; :root {
/* Use a shade of the c3cat logos pink, which works nicely as a link color. */
--accent-color-light: #DC049B;
/* A modified version of accent-color-light, which works nicely as a link color
* and with the dark theme */
--accent-color-dark: #dc49b0;
}
@layer base { body {
:root { font-family: system-ui,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,Helvetica,Arial,"Helvetica Neue",sans-serif;
/* Use a shade of the c3cat logos pink, which works nicely as a link color. */
--accent-color-light: #DC049B; text-align: left;
/* A modified version of accent-color-light, which works nicely as a link color line-height: 1.4;
* and with the dark theme */
--accent-color-dark: #dc49b0; /* Use dark grey instead of black to be lighter on the eyes. But also a grey
* which still works with the link color nicely. */
--bg-color: #ffffff;
--fg-color: #2b2b2b;
--accent-color: var(--accent-color-light);
background-color: var(--bg-color);
color: var(--fg-color);
@media (prefers-color-scheme: dark) {
/* Colors for dark theme, which have enough contrast, but also aren't too harsh on the eyes. */
/* See: https://seirdy.one/posts/2020/11/23/website-best-practices/#dark-themes */
--bg-color: #1b1b1b;
--fg-color: #ebebeb;
--accent-color: var(--accent-color-dark);
}
}
.container {
max-width: 600px;
margin: 0 auto;
padding: 0 5px;
}
footer {
margin-top: 4rem;
}
img {
width: 100%;
}
a:link, a:visited {
color: var(--accent-color);
}
u {
text-decoration-color: var(--accent-color);
}
.title {
text-align: center;
}
.hero-img {
max-width: 500px;
display: block;
margin: 0 auto;
}
p.bigger {
font-size: 1.2rem;
}
section {
margin-top: 3rem;
}
details {
border: 1px solid var(--accent-color);
border-radius: 8px;
background-color: color-mix(in hsl, var(--accent-color) 20%, var(--bg-color) 80%);
& > * {
padding: 0.5rem 1ch;
} }
body { & > summary {
font-family: system-ui,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,Helvetica,Arial,"Helvetica Neue",sans-serif; cursor: pointer;
user-select: none;
text-align: left;
line-height: 1.4;
/* Use dark grey instead of black to be lighter on the eyes. But also a grey
* which still works with the link color nicely. */
--bg-color: #ffffff;
--fg-color: #2b2b2b;
--accent-color: var(--accent-color-light);
background-color: var(--bg-color);
color: var(--fg-color);
@media (prefers-color-scheme: dark) {
/* Colors for dark theme, which have enough contrast, but also aren't too harsh on the eyes. */
/* See: https://seirdy.one/posts/2020/11/23/website-best-practices/#dark-themes */
--bg-color: #1b1b1b;
--fg-color: #ebebeb;
--accent-color: var(--accent-color-dark);
}
} }
.container { &[open] > summary {
max-width: 600px; border-bottom: 1px solid var(--accent-color);
margin: 0 auto; margin-left: 0;
padding: 0 5px; margin-right: 0;
} }
}
footer { ol.step-by-step-instructions {
margin-top: 4rem; margin-top: 1rem;
}
img { li {
width: 100%; margin-top: 0.5rem;
} margin-bottom: 1rem;
a:link, a:visited { &::marker {
color: var(--accent-color); color: color-mix(in hsl, var(--accent-color) 50%, var(--fg-color) 50%);
} font-size: larger;
u {
text-decoration-color: var(--accent-color);
}
.title {
text-align: center;
}
.hero-img {
max-width: 500px;
display: block;
margin: 0 auto;
}
p.bigger {
font-size: 1.2rem;
}
section {
margin-top: 3rem;
}
details {
border: 1px solid var(--accent-color);
border-radius: 8px;
background-color: color-mix(in hsl, var(--accent-color) 20%, var(--bg-color) 80%);
& > * {
padding: 0.5rem 1ch;
} }
& > summary { &>div {
cursor: pointer; display: flex;
user-select: none; flex-direction: row;
gap: 1ch;
justify-content: space-between;
} }
&[open] > summary { input[type="checkbox"] {
border-bottom: 1px solid var(--accent-color); margin: 4px;
margin-left: 0; width: 2rem;
margin-right: 0; height: 2rem;
flex-shrink: 0;
flex-grow: 0;
} }
} }
} }
dl.key-value {
display: grid;
grid-template-columns: 2ch [keys] fit-content(30ch) [values] auto;
column-gap: 2ch;
row-gap: 0.2rem;
&>dt {
text-decoration-line: underline;
text-decoration-color: var(--accent-color);
grid-column-start: keys;
text-align: end;
}
&>dd {
margin-left: 0;
grid-column-start: values;
&::before {
content: "➡";
margin-right: 2ch;
color: color-mix(in hsl, var(--bg-color) 30%, var(--fg-color) 70%);
}
}
}
fieldset#detail-grade-picker {
border-color: color-mix(in hsl, var(--accent-color) 50%, var(--fg-color) 50%);
display: flex;
align-items: baseline;
label {
flex-grow: 1;
margin-left: 0.5ch;
}
input,label {
cursor: pointer;
}
/* input[type="radio"]:checked+label {
text-decoration-line: underline;
text-decoration-color: var(--accent-color);
} */
}
/* hide items with .detail-default-hide if the corresponding .detail-show-(all|simplified|short) is not currently active */
body:not(:has(#detail-grade-picker input[type="radio"][name="detail-grade-picker"][value="all"]:checked)) .detail-default-hide.detail-show-all {
display: none;
}
body:not(:has(#detail-grade-picker input[type="radio"][name="detail-grade-picker"][value="simplified"]:checked)) .detail-default-hide.detail-show-simplified {
display: none;
}
body:not(:has(#detail-grade-picker input[type="radio"][name="detail-grade-picker"][value="short"]:checked)) .detail-default-hide.detail-show-short {
display: none;
}
/* hide items with .detail-hide-(all|simplified|short) if the corresponding radio button is active */
body:has(#detail-grade-picker input[type="radio"][name="detail-grade-picker"][value="all"]:checked) .detail-hide-all {
display: none;
}
body:has(#detail-grade-picker input[type="radio"][name="detail-grade-picker"][value="simplified"]:checked) .detail-hide-simplified {
display: none;
}
body:has(#detail-grade-picker input[type="radio"][name="detail-grade-picker"][value="short"]:checked) .detail-hide-short {
display: none;
}

View file

@ -10,33 +10,31 @@
<style> <style>
/* site-specific styles */ /* site-specific styles */
@layer per-site { .resources-container {
.resources-container { display: flex;
display: flex; flex-wrap: wrap;
flex-wrap: wrap; column-gap: 1ch;
column-gap: 1ch; row-gap: 1rem;
row-gap: 1rem; justify-content: space-around;
justify-content: space-around; align-items: stretch;
align-items: stretch; padding-left: 0;
padding-left: 0;
&>a { &>a {
display: block; display: block;
width: fit-content; width: fit-content;
flex-basis: 45%; flex-basis: 45%;
border: 1px solid var(--accent-color); border: 1px solid var(--accent-color);
padding: 8px; padding: 8px;
text-decoration: unset; text-decoration: unset;
color: var(--fg-color); color: var(--fg-color);
background-color: color-mix(in hsl, var(--bg-color) 90%, var(--fg-color) 10%); background-color: color-mix(in hsl, var(--bg-color) 90%, var(--fg-color) 10%);
min-height: 2rem; min-height: 2rem;
text-align: center; text-align: center;
font-size: larger; font-size: larger;
&:hover { &:hover {
background-color: color-mix(in hsl, var(--bg-color) 80%, var(--fg-color) 20%); background-color: color-mix(in hsl, var(--bg-color) 80%, var(--fg-color) 20%);
box-shadow: 4px 4px 6px var(--accent-color); box-shadow: 4px 4px 6px var(--accent-color);
}
} }
} }
} }

View file

@ -5,105 +5,6 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="assets/css/style.css" /> <link rel="stylesheet" href="assets/css/style.css" />
<title>c3cat</title> <title>c3cat</title>
<style>
@layer per-site {
ol.step-by-step-instructions {
margin-top: 1rem;
li {
margin-top: 0.5rem;
margin-bottom: 1rem;
&::marker {
color: color-mix(in hsl, var(--accent-color) 50%, var(--fg-color) 50%);
font-size: larger;
}
&>div {
display: flex;
flex-direction: row;
gap: 1ch;
justify-content: space-between;
}
input[type="checkbox"] {
margin: 4px;
width: 2rem;
height: 2rem;
flex-shrink: 0;
flex-grow: 0;
}
}
}
dl.key-value {
display: grid;
grid-template-columns: 2ch [keys] fit-content(30ch) [values] auto;
column-gap: 2ch;
row-gap: 0.2rem;
&>dt {
text-decoration-line: underline;
text-decoration-color: var(--accent-color);
grid-column-start: keys;
text-align: end;
}
&>dd {
margin-left: 0;
grid-column-start: values;
&::before {
content: "➡";
margin-right: 2ch;
color: color-mix(in hsl, var(--bg-color) 30%, var(--fg-color) 70%);
}
}
}
fieldset#detail-grade-picker {
border-color: color-mix(in hsl, var(--accent-color) 50%, var(--fg-color) 50%);
display: flex;
align-items: baseline;
label {
flex-grow: 1;
margin-left: 0.5ch;
}
input,label {
cursor: pointer;
}
/* input[type="radio"]:checked+label {
text-decoration-line: underline;
text-decoration-color: var(--accent-color);
} */
}
/* hide items with .detail-default-hide if the corresponding .detail-show-(all|simplified|short) is not currently active */
body:not(:has(#detail-grade-picker input[type="radio"][name="detail-grade-picker"][value="all"]:checked)) .detail-default-hide.detail-show-all {
display: none;
}
body:not(:has(#detail-grade-picker input[type="radio"][name="detail-grade-picker"][value="simplified"]:checked)) .detail-default-hide.detail-show-simplified {
display: none;
}
body:not(:has(#detail-grade-picker input[type="radio"][name="detail-grade-picker"][value="short"]:checked)) .detail-default-hide.detail-show-short {
display: none;
}
/* hide items with .detail-hide-(all|simplified|short) if the corresponding radio button is active */
body:has(#detail-grade-picker input[type="radio"][name="detail-grade-picker"][value="all"]:checked) .detail-hide-all {
display: none;
}
body:has(#detail-grade-picker input[type="radio"][name="detail-grade-picker"][value="simplified"]:checked) .detail-hide-simplified {
display: none;
}
body:has(#detail-grade-picker input[type="radio"][name="detail-grade-picker"][value="short"]:checked) .detail-hide-short {
display: none;
}
}
</style>
</head> </head>
<body class="container"> <body class="container">
<main> <main>
@ -117,7 +18,7 @@
<section id="introduction"> <section id="introduction">
<fieldset id="detail-grade-picker"> <fieldset id="detail-grade-picker">
<legend>Choose the grade of details you want this guide to appear in</legend> <legend>Choose the grade of details you want this guide to appear in</legend>
<input type="radio" id="detail-picker-all" name="detail-grade-picker" value="all" checked> <input type="radio" id="detail-picker-all" name="detail-grade-picker" value="all">
<label for="detail-picker-all">Show everything</label> <label for="detail-picker-all">Show everything</label>
<input type="radio" id="detail-picker-simplified" name="detail-grade-picker" value="simplified"> <input type="radio" id="detail-picker-simplified" name="detail-grade-picker" value="simplified">