diff --git a/assets/css/style.css b/assets/css/style.css
index 1a91953..7df0fb6 100644
--- a/assets/css/style.css
+++ b/assets/css/style.css
@@ -10,17 +10,22 @@ body {
font-family: system-ui,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,Helvetica,Arial,"Helvetica Neue",sans-serif;
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. */
- background-color: #ffffff;
- color: #2B2B2B;
+ --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 */
- background-color: #1b1b1b;
- color: #ebebeb;
+ --bg-color: #1b1b1b;
+ --fg-color: #ebebeb;
+ --accent-color: var(--accent-color-dark);
}
}
@@ -40,12 +45,12 @@ img {
a:link, a:visited {
- color: var(--accent-color-light);
- @media (prefers-color-scheme: dark) {
- color: var(--accent-color-dark);
- }
+ color: var(--accent-color);
}
+u {
+ text-decoration-color: var(--accent-color);
+}
.title {
text-align: center;
@@ -60,3 +65,123 @@ a:link, a:visited {
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 {
+ cursor: pointer;
+ user-select: none;
+ }
+
+ &[open] > summary {
+ border-bottom: 1px solid var(--accent-color);
+ margin-left: 0;
+ margin-right: 0;
+ }
+}
+
+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;
+}
diff --git a/assets/img/rgb-guide-esp-labeled.jpeg b/assets/img/rgb-guide-esp-labeled.jpeg
new file mode 100644
index 0000000..b6dc08a
Binary files /dev/null and b/assets/img/rgb-guide-esp-labeled.jpeg differ
diff --git a/assets/img/rgb-guide-soldered-isolated-strip.jpeg b/assets/img/rgb-guide-soldered-isolated-strip.jpeg
new file mode 100644
index 0000000..dee4243
Binary files /dev/null and b/assets/img/rgb-guide-soldered-isolated-strip.jpeg differ
diff --git a/assets/img/rgb-guide-strip.webp b/assets/img/rgb-guide-strip.webp
new file mode 100644
index 0000000..5e1dd4d
Binary files /dev/null and b/assets/img/rgb-guide-strip.webp differ
diff --git a/rgb-ears2.html b/rgb-ears2.html
new file mode 100755
index 0000000..6a45051
--- /dev/null
+++ b/rgb-ears2.html
@@ -0,0 +1,584 @@
+
+
+
+
+
+
+ c3cat
+
+
+
+ RGB Catear Build Instructions
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Solder cables to LED strip
+
+ One of the most important steps is to electircally connect the microcontroller to the LED strip.
+ We will start with the LED side.
+
+
+ Basically, the LED strip has three connections. One for data, one for ground and one for voltage.
+ Each of these three functions requires a separately soldered connection.
+
+
+
+
+ TODO: Make the images appear horizontally on large screens
+
+ TODO: Actually take a picture of the cables too
+
+
+
+
+
+
+
+ Prepare the long cable for soldering by removing its insulation.
+
+
+ Strip about 1cm of insulation from one end of the long cable using your striping pliers.
+ There are three cores inside it which are individually insulated. Use something less hard (e.g. your fingernails) to carefully remove the indivudal insulation as well and expose the blank connectors.
+
+
+ Picture
+
+
+
+
+
+
+
+
+
+
+ Solder the three cable cores to their corresponding connectors on the LED strip.
+ We use these combinations:
+
+ Red +5V
+ Green Data
+ Black Ground
+
+
+
+
+
+
+
+
+
+ Put a heatshrink over the connectors. TODO: Specify which heatshrink
+
+
+ Cut a TODO cm long part off the heatshrink and pull it over the soldered connections.
+ Once it is centered, apply heat with your heatgun to hold everything in place.
+
+ Picture
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Finalize the Assembly
+
+
+
+
+
+ Place the microcontroller in the included case.
+
+
+ Picture
+
+
+
+
+
+
+
+
+
+
+ Attach the LED strip onto your favourite pair of catears.
+
+ The end of the LED strip should align with the outer corner of one of the ears.
+
+
+
+ The strip contains its own glue strip on the bottom.
+ To use it, peel off the protective cover (without also removing the glue coating) and start attaching it to your catears.
+
+
+
+ Picture
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Don't feel pressured to wear cat ears – you're perfectly fine without them.
+ And remember: Trans rights are human rights.
+
+
+ Find us in the fediverse at c3cat@chaos.social .
+
+
+
+