What if there was a real Edison bulb having a night mode?
I imagined it having a circuit to dim it during the night, like a night light. For example having a few filaments inside a bulb and switching between parallel for more light and serial for less light.
Our home was not well insulated and in a corner of our sleeping room we had condensing moisture (it was unavoidable because in the corner the temperature was way too low,the lowest I had was 9°C or 48°F). I thought about putting some nichrome wire (for example terrarium heating wires) in the corners and having a switch between parallel and serial as a means for two different power levels. The idea is a parallel switch. If you turn the switch, multiple contacts are connected and disconnected. If you connect the wires cleverly, you can switch between parallel and serial. Luckily our landlord found a permanent solution for this problem after I showed him the measurement I made, so I didn't need to build this.
So that's why I started to get a picture of an Edison bulb that has such a switch inside its base.
Really great article, and the site looks great! One small piece of feedback:
> the server-rendered HTML will always default to light mode. This creates a flicker for night owls
You might consider switching this - render the dark-mode version by default, and have the flicker be from dark-to-light. For users operating mostly in dark mode, a bright flash of white can be painful. The same is not true for users operating in light mode - they will barely notice a moment of dark.
1. My dark mode preferences change throughout the day. Caching the value in localStorage means that it will require manual updates twice a day. Add a behavior that automatically unsets the localStorage key whenever it would set it to the currently system-preferred value.
2. Apply the override using a CSS class on the body element calculated from a synchronous JavaScript block to avoid the flash.
Thanks, and yeah I was on the fence about #1 (I also like to auto-toggle at night sometimes). My hesitation is that some people might just like one theme better on my website and don't want it to keep resetting based on OS preference. Not sure which case is more common...
#2 is a great idea. I made a todo for myself to do that at some point.
The nice thing about only storing the value when it's different from the current default and unsetting it otherwise is that anyone who prefers one theme never has to change it (because their system is already in that theme) or only has to change it one time and it will stay that way forever. But users who prefer the site to just Do The Right Thing can also have that behavior.
> ...the server-rendered HTML will always default to light mode. This creates a flicker for night owls...
I played with this a bit and yes, that flicker is harsh. I appreciate the fade-in, but maybe have the initial color on load be somewhere between light and dark and then fade it to whichever is set by the client.
Regarding the local storage Vs server side defaults I don't understand why you wouldn't use a web cookie to store the on/off state? Am I missing something
A lot of people have forgotten that cookies aren't just for session id and can store anything. The browser also sends them all in the initial GET request. So yes you're right, it could have been done server-side for the 2nd visit.
Also, because of cookie banners, they got a bad reputation even though most countries allow you to store non personal data. Even just data that is necessary for the functionality of the website doesn't need permission.
That requires a dynamic backend, though. A lot of people use static site generators for their blogs these days. Otherwise you're absolutely right and this is a perfect use for a cookie.
Cute bulb and effect. I like that your dark mode isn’t so harsh, as well. I feel they’re often max contrast, which is the last thing my eyes want to see. This is more of a … solarized?
I love the landscape at the bottom of the page! It really gives a sense of the page being a place. I might have to steal that page bottom concept! I've never actually seen it before.
The bulb is a really nice detail, and the color schemes are both really nice.
Thanks for pointing this out. I updated it to allow drag/pull on mobile (prevent the pull-to-refresh with CSS `overscroll-behavior: none` on touch events).
I imagined it having a circuit to dim it during the night, like a night light. For example having a few filaments inside a bulb and switching between parallel for more light and serial for less light.
Our home was not well insulated and in a corner of our sleeping room we had condensing moisture (it was unavoidable because in the corner the temperature was way too low,the lowest I had was 9°C or 48°F). I thought about putting some nichrome wire (for example terrarium heating wires) in the corners and having a switch between parallel and serial as a means for two different power levels. The idea is a parallel switch. If you turn the switch, multiple contacts are connected and disconnected. If you connect the wires cleverly, you can switch between parallel and serial. Luckily our landlord found a permanent solution for this problem after I showed him the measurement I made, so I didn't need to build this.
So that's why I started to get a picture of an Edison bulb that has such a switch inside its base.