diff --git a/assets/sass/root.scss b/assets/sass/root.scss index 8105c26d..1c4c556b 100644 --- a/assets/sass/root.scss +++ b/assets/sass/root.scss @@ -48,3 +48,9 @@ strong { font-weight: 400; font-size: 14px; } + +.footnotes { + p { + margin: 0; + } +} diff --git a/content/post/2025/and-now-i-start-tinkering-with-hardware/cover.png b/content/post/2025/and-now-i-start-tinkering-with-hardware/cover.png deleted file mode 100644 index 0385d0f0..00000000 Binary files a/content/post/2025/and-now-i-start-tinkering-with-hardware/cover.png and /dev/null differ diff --git a/content/post/2025/and-now-i-start-tinkering-with-hardware/index.md b/content/post/2025/and-now-i-start-tinkering-with-hardware/index.md deleted file mode 100644 index e260c044..00000000 --- a/content/post/2025/and-now-i-start-tinkering-with-hardware/index.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: "And Now I Start Tinkering With Hardware" -date: 2025-06-02T00:21:52+02:00 -draft: true -feature_link: "https://www.midjourney.com/home/" -feature_text: "by IA Midjourney" -description: Some idea to start some software-hardware software -isStarred: false -tags: -- hacking -- coding -- micropython -categories: -- tinkering -images: -keywords: -series: -reply: -repost: -like: -rsvp: -bookmark: - -comments: - host: mastodon.social - username: fundor333 - id: ---- - -[Programming hardware displays the easy way - using MicroPython and LVGL](https://2025.pycon.it/en/event/programming-hardware-displays-the-easy-way-using-micropython-and-lvgl) - -[Buying a Seven Year Old Refurbished Kobo eReader](https://eclecticpassions.net/blog/refurbished-ereader-kobo-aura-one/) - -[SSH into KOreader (Kobo eReader) from macOS](https://www.burgeonlab.com/2024/ssh-into-koreader-kobo-ereader-from-macos/) - -[Booting DietPi from SSD on a Raspberry Pi 4B 8GB](https://www.burgeonlab.com/2023/booting-dietpi-from-ssd-on-a-raspberry-pi-4b-8gb/) -nh diff --git a/content/post/2026/starting-my-home-automation-experiment/ABnormal_GIF.gif b/content/post/2026/starting-my-home-automation-experiment/ABnormal_GIF.gif new file mode 100644 index 00000000..ff6df7bf Binary files /dev/null and b/content/post/2026/starting-my-home-automation-experiment/ABnormal_GIF.gif differ diff --git a/content/post/2026/starting-my-home-automation-experiment/antenna.jpg b/content/post/2026/starting-my-home-automation-experiment/antenna.jpg new file mode 100644 index 00000000..c9efa4ee Binary files /dev/null and b/content/post/2026/starting-my-home-automation-experiment/antenna.jpg differ diff --git a/content/post/2026/starting-my-home-automation-experiment/ikea.jpg b/content/post/2026/starting-my-home-automation-experiment/ikea.jpg new file mode 100644 index 00000000..13b6ed9e Binary files /dev/null and b/content/post/2026/starting-my-home-automation-experiment/ikea.jpg differ diff --git a/content/post/2026/starting-my-home-automation-experiment/index.md b/content/post/2026/starting-my-home-automation-experiment/index.md index 4ecfdcd0..b74ce037 100644 --- a/content/post/2026/starting-my-home-automation-experiment/index.md +++ b/content/post/2026/starting-my-home-automation-experiment/index.md @@ -17,9 +17,130 @@ series: And some time ago I installed the Fiber[^1] in my home and I want to use in the best way, so I start to rework all my local network and I think about adding some home automation. -[^1]: I pay a company to install it and clean after. +[^1]: I pay a company to install it and I clean after. -{{< xkcd 1966 >}} +{{< xkcd 1931 >}} ## What do I need? +First I search for understand what I need to have for build my personal home automation. So serching on the web I found I need: + +- A brain/core/server for coordinate all the stuffs +- A software for the brain, for the automation and other stuff +- A router for adding the brain to the network for update and other stuff +- Dongle/sensor/tech for connectivity with the sensors and smart stuff (one for protocol) +- The smart stuff (light bulb, sensor, timer, endpoint api...) + +So I need to choose which protocol I want in my home... And I don't know... + +So I change the point of view: + +- I want to use good smart stuff but I don't want to pay too much +- I want something Open Source so I am not bind to a company +- I want something offline or/and on MY HOME SERVER + +### The protocols + +Searching for the protocols I choose Thread[^thread-standard] and Zigbee[^zigbee]. +One reason is because they are the most used protocol for communication and more easy to find online (Amazon) and offline (Ikea and othe local shop). + +For starting I will implement only Thread because the more easy tech for me are all Matter over Thread so I start with Thread. + +From the infographic I found, I need to implement Matter[^matter-standard] also because Matter is the top stuff for an Home Assistant. +![Matter Thread Infographic ](matter_thread_infographic.png) + +[^matter-standard]: [Matter Standard](https://csa-iot.org/all-solutions/matter/) +[^thread-standard]: [Thread Standard](https://threadgroup.org/) +[^zigbee]: [Zigbee Standard](https://csa-iot.org/all-solutions/zigbee/) + +### The software + +Now I want a software, Open Source, which I can support Thread and Matter (and also Zigbee) and I found a software (Open Source) wich support all I need: Home Assistant[^home-assistant]. + +It support Matter[^matter-home-assistant], Thread[^thread-home-assistant] and Zigbee[^zigbee-home-automation] and I can put it in a RaspberryPi or other server. + +[^home-assistant]: [Home Assistant](https://www.home-assistant.io/) +[^matter-home-assistant]: [Home Assistant Matter](https://www.home-assistant.io/integrations/matter/) +[^thread-home-assistant]: [Home Assistant Thread](https://www.home-assistant.io/integrations/thread/) +[^zigbee-home-automation]: [Zigbee Home Automation](https://www.home-assistant.io/integrations/zha/) + +## Hardware + +So I start to make a list of what I have and what I need. +Some things I buy online, some things come from some tech market and some come form the shoes box of my old stuff... + +I only write about the real things but if I use cable or other "standard stuff" I don't write about it. +So yes I bought some usb extention and some network cable but they aren't important for this post. + +### Core/Brain Stuff + +First I need the Brain for the project + +![Brain](ABnormal_GIF.gif) + +From what I read in the Home Assistant[^home-assistant] documentation I need some type of server with some gadget connected to them. + +So I search and got a RaspberryPi 4B[^raspberry]. +![Raspberry](raspberry.jpg) + +[^raspberry]: [RaspberryPi 4B](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/) + +I also bought a microSD with 64GB of memory (I am on a budget for this project) as an Hard Disk for the "server". + +Searching in my closet and in some shoes boxes I found a case[^case] for RaspberryPi with active cooling system (and LGB light) + +[^case]: [Raspberry Pi 4B Case from Owootecc](https://www.amazon.it/dp/B07YJGWPQL) + +So I flash the microSD with the Home Assistant software. Thanks to the Raspberry Pi Software[^iso] choosing the right iso and flash it in the SD was a walk in the park. + +[^iso]: [Raspberry Pi software](https://www.raspberrypi.com/software/) + +After the flashing I set it up and add to my local network and check for update. + +So the brain is ready! + +### Sensor form Ikea + +I went to Ikea for some stuff and some Swedish meatballs and I came back with an Ikea Alpstuga[^ikea]. + +![Ikea Alpstuga](ikea.jpg) + +It is a timer, air sensor with CO2 and PM2.5 sensor and output all of them and an Air Quality value. + +[^ikea]: [Ikea Alpstuga](https://www.ikea.com/it/it/p/alpstuga-sensore-della-qualita-dellaria-smart-50604187/) + +The only bad thing about it is the color but for the price I don't complain. + +So after coming home I found it didn't work. + +![Nope](nope.gif) + +As is the RaspberryPi 4B do not support Thread or Zigbee without some type of specialized antenna... +I was understanding that the software use the wifi module of the RaspberryPi as a Zigbee/Thread emitter/reciver but no so I search on Amazon for the dongle for Thread. + +### Antenna + +I bought a Usb dongle[^antenna] for connecting the RaspberryPi and the other gadget in the house (for now only the Ikea one) + +[^antenna]: [SONOFF Zigbee 3.0 USB Dongle Plus MG24](https://www.amazon.it/dp/B0FMJD288B) + +![Antenna](antenna.jpg)[^antenna] + +This antenna is a little special: you can flash it for changing it form Zigbee to Thread and vice versa so I start to config it. + +#### Setup the Antenna + + +![Its alive](its-alive.gif) + + + + + + + +[^flash_firmware]: [Sonoff dongle flasher/](https://dongle.sonoff.tech/sonoff-dongle-flasher/) + +[^hacs]: [Home Assistant Hacs](https://www.hacs.xyz/) +[^matter-time-synk]: [Matter time synk](https://github.com/Loweack/Matter-Time-Sync/) +[^psnetwork]: [PlayStation Network Home Assistant](https://www.home-assistant.io/integrations/playstation_network/) diff --git a/content/post/2026/starting-my-home-automation-experiment/its-alive.gif b/content/post/2026/starting-my-home-automation-experiment/its-alive.gif new file mode 100644 index 00000000..dcf896d6 Binary files /dev/null and b/content/post/2026/starting-my-home-automation-experiment/its-alive.gif differ diff --git a/content/post/2026/starting-my-home-automation-experiment/matter_thread_infographic.png b/content/post/2026/starting-my-home-automation-experiment/matter_thread_infographic.png new file mode 100644 index 00000000..86316186 Binary files /dev/null and b/content/post/2026/starting-my-home-automation-experiment/matter_thread_infographic.png differ diff --git a/content/post/2026/starting-my-home-automation-experiment/nope.gif b/content/post/2026/starting-my-home-automation-experiment/nope.gif new file mode 100644 index 00000000..bd7648a5 Binary files /dev/null and b/content/post/2026/starting-my-home-automation-experiment/nope.gif differ diff --git a/content/post/2026/starting-my-home-automation-experiment/raspberry.jpg b/content/post/2026/starting-my-home-automation-experiment/raspberry.jpg new file mode 100644 index 00000000..e96ce856 Binary files /dev/null and b/content/post/2026/starting-my-home-automation-experiment/raspberry.jpg differ diff --git a/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.content b/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.content index e06a1859..dbd95b10 100644 --- a/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.content +++ b/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.content @@ -1 +1 @@ -@charset "UTF-8";@import "https://fonts.googleapis.com/css2?family=Audiowide&family=Rajdhani:wght@300;400;500;600;700&display=swap";:root{--blockquote-border-size:4px;--blockquote-background-color:rgb(248 248 248);--heading-border-size:4px;--link-background-color:189, 195, 199;--link-background-opacity:0.5;--link-background-opacity-hover:0.7;--pre-background-color:#272822;--pre-text-color:#f8f8f2;--code-background-color:rgba(0, 0, 0, 0.12);--code-text-color:#808080;--table-border-color:#dadada;--tr-even-background-color:#efefee}@media(prefers-color-scheme:dark){:root{--code-background-color:#272822;--code-text-color:rgba(255, 255, 255, 0.9);--table-border-color:#717171;--tr-even-background-color:#545454;--blockquote-background-color:rgb(75 75 75)}}body{font-family:rajdhani,sans-serif;font-weight:400;font-style:normal}h1,h2,h3,h4,h5,h6{font-family:audiowide,sans-serif}strong{font-family:audiowide,sans-serif;font-weight:400;font-size:14px}@keyframes enterIn{0%{opacity:0}100%{opacity:100}}@media only screen and (min-width:768px){#pridecodes-code-corner-svg{width:150px}}@media only screen and (max-width:767px){#pridecodes-code-corner-svg{width:75px}}#pridecodes-code-corner-svg{animation:enterIn 2s;transition:all .2s ease-in-out}#pridecodes-code-corner-svg:hover{transform:scale(1.1);transform-origin:left top}small,section#comments .comment footer,section#comments .comment time,aside p{font-size:smaller;opacity:.9}section#comments #comments-wrapper{margin:1.5em 0;padding:0 var(--card-padding)}section#comments .comment{display:grid;column-gap:1rem;grid-template-areas:"avatar name" "avatar time" "avatar post" "...... interactions";grid-template-columns:min-content;justify-items:start;margin:0 auto 0 -1em;padding:.5em}section#comments .comment.comment-reply{margin:0 auto 0 1em}section#comments .comment .avatar-link{grid-area:avatar;height:4rem;position:relative;width:4rem}section#comments .comment .avatar-link .avatar{height:100%;width:100%;border-radius:20%}section#comments .comment .avatar-link.op::after{background-color:var(--accent-color);border-radius:50%;bottom:-.25rem;color:var(--accent-color-text);content:"✓";display:block;font-size:1.25rem;font-weight:700;height:1.5rem;line-height:1.5rem;position:absolute;right:-.25rem;text-align:center;width:1.5rem}section#comments .comment .author{align-items:center;display:flex;font-weight:700;gap:.5em;grid-area:name}section#comments .comment .author .instance{background-color:var(--code-background-color);border-radius:9999px;color:var(--neutral);font-size:smaller;font-weight:400;padding:.25em .75em}section#comments .comment .author .instance:hover{opacity:.8;text-decoration:none}section#comments .comment .author .instance.op{background-color:var(--code-background-color);color:var(--accent-color-text)}section#comments .comment .author .instance.op::before{content:"✓";font-weight:700;margin-inline-end:.25em}section#comments .comment time{grid-area:time;line-height:1.5rem}section#comments .comment main{grid-area:post}section#comments .comment main p:first-child{margin-top:.25em}section#comments .comment main p:last-child{margin-bottom:0}section#comments .comment footer{grid-area:interactions}section#comments .comment footer .faves{color:inherit}section#comments .comment footer .faves:hover{opacity:.8;text-decoration:none}section#comments .comment footer .faves::before{color:red;content:"♥";font-size:2rem;margin-inline-end:.25em}section#comments .comment .emoji{display:inline;height:1.25em;vertical-align:middle;width:1.25em}section#comments .comment .invisible{display:none}section#comments .comment .ellipsis::after{content:"…"}#webmentions{margin:0;position:relative;z-index:100;line-height:1.2em}#webmentions .comments{overflow-x:hidden;overflow-y:scroll}#webmentions h2{font-size:medium;margin:0;padding:2px}#webmentions .reacts img{margin:3px -1ex 8px 0}#webmentions img.missing{border:dashed #000 1px}#webmentions ul{list-style-type:none;margin:0;padding:4px}#webmentions li{text-indent:-1em;padding-left:1em}#webmentions a.reaction{position:relative;text-decoration:none;margin-right:0;letter-spacing:-1ex;margin-right:3ex}#webmentions a.reaction img{max-height:3em;width:auto;margin-right:-1ex;border-radius:25%}#webmentions a.reaction sub{font-size:50%}#webmentions .comments li{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#webmentions .comments li .text{font-style:italic;text-decoration:none}.author{margin:0}.menu .trigger{float:left;display:flex;align-items:center}@media screen and (max-width:768px){.menu .menu-icon{position:relative}}.menu-link{font-family:audiowide,sans-serif;font-weight:400;font-style:normal}.center-img{display:flex;justify-content:center;width:80%}.toot{--toot-bg:var(--entry);--toot-border:rgba(0, 0, 0, 0.1);--toot-radius:12px;--toot-shadow:0 1px 3px rgba(0, 0, 0, 0.1);background:var(--toot-bg);border:1px solid var(--toot-border);border-radius:var(--toot-radius);box-shadow:var(--toot-shadow);padding:16px;margin:1.5rem auto;max-width:600px;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif}.dark .toot{--toot-border:rgba(255, 255, 255, 0.1);--toot-shadow:0 1px 3px rgba(0, 0, 0, 0.2)}.toot-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.toot-profile img{width:48px;height:48px;border-radius:4px;display:block}.toot-author{display:flex;flex-direction:column;gap:2px}.toot-author-name{color:var(--primary);font-weight:700;text-decoration:none;font-size:15px;line-height:20px}.toot-author-handle{color:var(--secondary);text-decoration:none;font-size:14px;line-height:18px}.toot-content{color:var(--content);font-size:15px;line-height:1.5;margin:12px 0}.toot-content p{margin:0 0 12px}.toot-content p:last-child{margin-bottom:0}.toot-content a{color:#2b90d9;text-decoration:none}.toot-content a:hover{text-decoration:underline}.toot-media-grid{display:grid;grid-gap:8px;margin:12px 0;border-radius:12px;overflow:hidden}.toot-media-grid[data-count="1"]{grid-template-columns:1fr}.toot-media-grid[data-count="2"]{grid-template-columns:repeat(2,1fr)}.toot-media-grid[data-count="3"]{grid-template-columns:repeat(2,1fr)}.toot-media-grid[data-count="3"]>:first-child{grid-column:1/-1}.toot-media-grid[data-count="4"]{grid-template-columns:repeat(2,1fr)}.toot-media-item img{width:100%;height:auto;display:block;border-radius:4px}.toot-footer{margin-top:12px;padding-top:12px;border-top:1px solid var(--toot-border);color:var(--secondary);font-size:14px}.toot-date{color:inherit;text-decoration:none}.toot-date:hover{text-decoration:underline}.page-content a[target=_blank]::after{content:none}.weeknote img{width:140px}share-button{position:fixed;width:60px;height:60px;bottom:40px;left:40px;color:#fff;background-color:#0c9;border-radius:50px;text-align:center}share-button button{background-color:initial;border:none;margin:0;padding:0;text-align:inherit;font:inherit;border-radius:0;appearance:none}share-button:not(:defined){display:none}share-button:not(:defined) button{display:none}share-button:defined{display:none}share-button:defined a{display:none}.my-float{margin-top:22px}@font-face{font-family:typewriter;src:url("/fonts/American Typewriter Regular.ttf")}.typewriter{font-family:typewriter,monospace}input[type=text]{width:100%;font-size:1rem;border-radius:.5em;padding:.5em}.xkcd-image{display:flex;justify-content:center;width:100%}.xkcd-title{font-family:audiowide,sans-serif;font-weight:400;font-style:normal;font-size:1.5em}.xkcd-subtitle{font-size:.8rem;color:#666;margin-top:.5rem} \ No newline at end of file +@charset "UTF-8";@import "https://fonts.googleapis.com/css2?family=Audiowide&family=Rajdhani:wght@300;400;500;600;700&display=swap";:root{--blockquote-border-size:4px;--blockquote-background-color:rgb(248 248 248);--heading-border-size:4px;--link-background-color:189, 195, 199;--link-background-opacity:0.5;--link-background-opacity-hover:0.7;--pre-background-color:#272822;--pre-text-color:#f8f8f2;--code-background-color:rgba(0, 0, 0, 0.12);--code-text-color:#808080;--table-border-color:#dadada;--tr-even-background-color:#efefee}@media(prefers-color-scheme:dark){:root{--code-background-color:#272822;--code-text-color:rgba(255, 255, 255, 0.9);--table-border-color:#717171;--tr-even-background-color:#545454;--blockquote-background-color:rgb(75 75 75)}}body{font-family:rajdhani,sans-serif;font-weight:400;font-style:normal}h1,h2,h3,h4,h5,h6{font-family:audiowide,sans-serif}strong{font-family:audiowide,sans-serif;font-weight:400;font-size:14px}.footnotes p{margin:0}@keyframes enterIn{0%{opacity:0}100%{opacity:100}}@media only screen and (min-width:768px){#pridecodes-code-corner-svg{width:150px}}@media only screen and (max-width:767px){#pridecodes-code-corner-svg{width:75px}}#pridecodes-code-corner-svg{animation:enterIn 2s;transition:all .2s ease-in-out}#pridecodes-code-corner-svg:hover{transform:scale(1.1);transform-origin:left top}small,section#comments .comment footer,section#comments .comment time,aside p{font-size:smaller;opacity:.9}section#comments #comments-wrapper{margin:1.5em 0;padding:0 var(--card-padding)}section#comments .comment{display:grid;column-gap:1rem;grid-template-areas:"avatar name" "avatar time" "avatar post" "...... interactions";grid-template-columns:min-content;justify-items:start;margin:0 auto 0 -1em;padding:.5em}section#comments .comment.comment-reply{margin:0 auto 0 1em}section#comments .comment .avatar-link{grid-area:avatar;height:4rem;position:relative;width:4rem}section#comments .comment .avatar-link .avatar{height:100%;width:100%;border-radius:20%}section#comments .comment .avatar-link.op::after{background-color:var(--accent-color);border-radius:50%;bottom:-.25rem;color:var(--accent-color-text);content:"✓";display:block;font-size:1.25rem;font-weight:700;height:1.5rem;line-height:1.5rem;position:absolute;right:-.25rem;text-align:center;width:1.5rem}section#comments .comment .author{align-items:center;display:flex;font-weight:700;gap:.5em;grid-area:name}section#comments .comment .author .instance{background-color:var(--code-background-color);border-radius:9999px;color:var(--neutral);font-size:smaller;font-weight:400;padding:.25em .75em}section#comments .comment .author .instance:hover{opacity:.8;text-decoration:none}section#comments .comment .author .instance.op{background-color:var(--code-background-color);color:var(--accent-color-text)}section#comments .comment .author .instance.op::before{content:"✓";font-weight:700;margin-inline-end:.25em}section#comments .comment time{grid-area:time;line-height:1.5rem}section#comments .comment main{grid-area:post}section#comments .comment main p:first-child{margin-top:.25em}section#comments .comment main p:last-child{margin-bottom:0}section#comments .comment footer{grid-area:interactions}section#comments .comment footer .faves{color:inherit}section#comments .comment footer .faves:hover{opacity:.8;text-decoration:none}section#comments .comment footer .faves::before{color:red;content:"♥";font-size:2rem;margin-inline-end:.25em}section#comments .comment .emoji{display:inline;height:1.25em;vertical-align:middle;width:1.25em}section#comments .comment .invisible{display:none}section#comments .comment .ellipsis::after{content:"…"}#webmentions{margin:0;position:relative;z-index:100;line-height:1.2em}#webmentions .comments{overflow-x:hidden;overflow-y:scroll}#webmentions h2{font-size:medium;margin:0;padding:2px}#webmentions .reacts img{margin:3px -1ex 8px 0}#webmentions img.missing{border:dashed #000 1px}#webmentions ul{list-style-type:none;margin:0;padding:4px}#webmentions li{text-indent:-1em;padding-left:1em}#webmentions a.reaction{position:relative;text-decoration:none;margin-right:0;letter-spacing:-1ex;margin-right:3ex}#webmentions a.reaction img{max-height:3em;width:auto;margin-right:-1ex;border-radius:25%}#webmentions a.reaction sub{font-size:50%}#webmentions .comments li{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#webmentions .comments li .text{font-style:italic;text-decoration:none}.author{margin:0}.menu .trigger{float:left;display:flex;align-items:center}@media screen and (max-width:768px){.menu .menu-icon{position:relative}}.menu-link{font-family:audiowide,sans-serif;font-weight:400;font-style:normal}.center-img{display:flex;justify-content:center;width:80%}.toot{--toot-bg:var(--entry);--toot-border:rgba(0, 0, 0, 0.1);--toot-radius:12px;--toot-shadow:0 1px 3px rgba(0, 0, 0, 0.1);background:var(--toot-bg);border:1px solid var(--toot-border);border-radius:var(--toot-radius);box-shadow:var(--toot-shadow);padding:16px;margin:1.5rem auto;max-width:600px;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif}.dark .toot{--toot-border:rgba(255, 255, 255, 0.1);--toot-shadow:0 1px 3px rgba(0, 0, 0, 0.2)}.toot-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px}.toot-profile img{width:48px;height:48px;border-radius:4px;display:block}.toot-author{display:flex;flex-direction:column;gap:2px}.toot-author-name{color:var(--primary);font-weight:700;text-decoration:none;font-size:15px;line-height:20px}.toot-author-handle{color:var(--secondary);text-decoration:none;font-size:14px;line-height:18px}.toot-content{color:var(--content);font-size:15px;line-height:1.5;margin:12px 0}.toot-content p{margin:0 0 12px}.toot-content p:last-child{margin-bottom:0}.toot-content a{color:#2b90d9;text-decoration:none}.toot-content a:hover{text-decoration:underline}.toot-media-grid{display:grid;grid-gap:8px;margin:12px 0;border-radius:12px;overflow:hidden}.toot-media-grid[data-count="1"]{grid-template-columns:1fr}.toot-media-grid[data-count="2"]{grid-template-columns:repeat(2,1fr)}.toot-media-grid[data-count="3"]{grid-template-columns:repeat(2,1fr)}.toot-media-grid[data-count="3"]>:first-child{grid-column:1/-1}.toot-media-grid[data-count="4"]{grid-template-columns:repeat(2,1fr)}.toot-media-item img{width:100%;height:auto;display:block;border-radius:4px}.toot-footer{margin-top:12px;padding-top:12px;border-top:1px solid var(--toot-border);color:var(--secondary);font-size:14px}.toot-date{color:inherit;text-decoration:none}.toot-date:hover{text-decoration:underline}.page-content a[target=_blank]::after{content:none}.weeknote img{width:140px}share-button{position:fixed;width:60px;height:60px;bottom:40px;left:40px;color:#fff;background-color:#0c9;border-radius:50px;text-align:center}share-button button{background-color:initial;border:none;margin:0;padding:0;text-align:inherit;font:inherit;border-radius:0;appearance:none}share-button:not(:defined){display:none}share-button:not(:defined) button{display:none}share-button:defined{display:none}share-button:defined a{display:none}.my-float{margin-top:22px}@font-face{font-family:typewriter;src:url("/fonts/American Typewriter Regular.ttf")}.typewriter{font-family:typewriter,monospace}input[type=text]{width:100%;font-size:1rem;border-radius:.5em;padding:.5em}.xkcd-image{display:flex;justify-content:center;width:100%}.xkcd-title{font-family:audiowide,sans-serif;font-weight:400;font-style:normal;font-size:1.5em}.xkcd-subtitle{font-size:.8rem;color:#666;margin-top:.5rem} \ No newline at end of file diff --git a/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.json b/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.json index 1db43802..3b65f4aa 100644 --- a/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.json +++ b/resources/_gen/assets/sass/add.scss_b1f9a4817d6232e434ba2b7151a57cb2.json @@ -1 +1 @@ -{"Target":"add.min.855eeee13cf87b04c5f2dc5d26fbb0ee43b90357d4d210186eebe753d1055101.css","MediaType":"text/css","Data":{"Integrity":"sha256-hV7u4Tz4ewTF8txdJvuw7kO5A1fU0hAYbuvnU9EFUQE="}} \ No newline at end of file +{"Target":"add.min.ccd2b4b9ceb675fabadad53f60dfdfc15f8c9ac2e9f43bdadc77c75132bd005f.css","MediaType":"text/css","Data":{"Integrity":"sha256-zNK0uc62dfq62tU/YN/fwV+MmsLp9Dva3HfHUTK9AF8="}} \ No newline at end of file