@mikaellundin Hey, you might boot it a second time to try out C64 OS.
WebDev who occasionally pushes the boundaries. Greatly prefer #HTML and #CSS over JS, but daily work revolves around React so that's awful. Anyway. If some layout trick is possible to do with CSS I will figure out how to do it.
#ActuallyAutistic
I like to develop #WithAstro so I have multiple Astro projects you can spy on over at my GitHub.
Yli 20 vuotta suomalaista Tolkien-nettiä! Lue lisää: https://olifant.fi/@merri
@mikaellundin Hey, you might boot it a second time to try out C64 OS.
Sadness, looks like GamesDoneQuick broke or removed their old API for schedules so my own schedule viewer is now broken.
@sarna Over time I've ended up with separation of sites, and make no effort to have the same content translated.
@koehnlein @chriskirknielsen @crinkles Drafted a bit with multiple row using nth-child, only works for two rows. Maybe someone gets interested enough to make it work regardless of rows. I need food now.
(Edit: it works now. Not so neat CSS but it works for any number of items.)
(It would be one third but now we have to write TypeScript and comply to Prettier's formatting desires.)
After roughly 10 years since the last time I'm writing a carousel component again at work.
Due to switching job in between I can't refer to my previous implementation anymore but I think thanks to advances in CSS there is now only half the code required to get the same results.
One of the worst UX ideas I've seen: input fields that "conveniently clear themselves for the user upon focus".
This means that if I go to another tab to check if I've typed something correctly and then come back, the field is now empty again and I have to start over.
The fun fact: most things in CSS are already typed, and the fact that people still create “typed” styling “CSS-in-JS” solutions, and IDEs, editors, and other tools not using the existing type information shows how neglected and undervalued CSS is in the industry.
@stairjoke @kizu Through checkcircular dependency.
Has someone collected together all these tried and failed design things that keep repeating in computing history?
Glass UI, thin fonts, flat buttons, circular action effects on clicks, that sort of stuff.
I fixed the text on the button.
Also apparently I stay up to date on CSS pretty well even via just Mastodon, so great job by you folks here.
Though this game's AI is very simplistic overall, repeating same patterns over and over, and doing moves based on what it saw during it's calculation with no account for the future.
Yes, it can be fun-ish for a player to exploit the stupidity.
Recently I've played Lords of the Realm II.
One thing for the game makers out there: make sure human player has the same rules as AI.
Example: if human player can't send more troops to a castle that is under siege, AI player shouldn't be able to either.
Lords 2 fails this: it allows AI to send troops to castle under siege. Human is not allowed to do that.
The AI cheats in other aspects as well, easy to notice in early game when AI always has more population, more weapons & castle production.
@hazz223 Yes, in React it is awfully cumbersome to make the state be originated from outside of it.
I've done HTML custom elements that are the source of state even in React, basically making React just SSR HTML origin and a compatibility layer to the rest of the React world.
It is silly that the custom elements that manage their own attributes must have suppressHydrationWarning prop on each usage as otherwise React gives an annoying warning.
It is incorrect but devs think something is wrong.
@hazz223 useEffect is probably the main issue.
As long as you have a single source of truth for the dialog open state then you should be fine.
Personally I use @preact/signals-react because it simplifies the state model a lot.
React's dependency arrays are hard to get right, and I find it easier to reason "if I use .value then the effect will run on signal changes, if I use .peek() then it won't".
Would be nice if React had native signals but they are arrogant and don't wanna.
Safari iPadOS
```
[["#007aff","#007aff"],["#000000","#000000"],["#ff0000","#ff9e9e"],["#ffffff","#ffffff"],["#c0c0c0","#c0c0c0"],["#000000","#000000"],["#ffffff","#000000"],["#000000","#ffffff"],["#ffffff","#ffffff"],["#000000","#000000"],["#808080","#808080"],["#b5d5ff","#b5d5ff"],["#000000","#000000"],["#0000ee","#9e9eff"],["#ffff00","#ffff00"],["#000000","#000000"],["#c0c0c0","#c0c0c0"],["#000000","#000000"],["#551a8b","#d0adf0"]]
```
(Oops I forgot these as public.)
Firefox iPadOS
```
[["#007aff","#007aff"],["#000000","#000000"],["#ff0000","#ff9e9e"],["#ffffff","#ffffff"],["#c0c0c0","#c0c0c0"],["#000000","#000000"],["#ffffff","#000000"],["#000000","#ffffff"],["#ffffff","#ffffff"],["#000000","#000000"],["#808080","#808080"],["#b5d5ff","#b5d5ff"],["#000000","#000000"],["#0000ee","#9e9eff"],["#ffff00","#ffff00"],["#000000","#000000"],["#c0c0c0","#c0c0c0"],["#000000","#000000"],["#551a8b","#d0adf0"]]
```