Sebastian Kranz
sebastiankranz.de
Sebastian Kranz
@sebastiankranz.de
It's funny how we can't rely on our intuition anymore, when the code we're reviewing is stochastically engineered to look maximally correct.
November 4, 2025 at 11:31 AM
Am I the only one who dislikes hiding based on scroll direction?

You scroll slightly to far, go back up and immediately have a title bar in your face.
October 22, 2025 at 6:12 PM
There's getOwnPropertySymbols, but now I feel like we're just bending the system to stop others from bending the system.

My issue isn't with performance, but readability. One of the documented use-cases for Symbols is weak information hiding, so it feels more obvious to me.
October 15, 2025 at 3:50 PM
If we're trying to keep the member inaccessible outside the module, isn't this what symbols are for?

const value = Symbol()

class A {
[value]: ... // can't be accessed without the symbol
}

developer.mozilla.org/en-US/docs/W...
Symbol - JavaScript | MDN
Symbol is a built-in object whose constructor returns a symbol primitive — also called a Symbol value or just a Symbol — that's guaranteed to be unique. Symbols are often used to add unique property k...
developer.mozilla.org
October 14, 2025 at 6:18 PM
I hope we get to see it on YouTube eventually. Your discussions in the last 2 weeks were really helpful for finally understanding the intentions behind transitions.
October 8, 2025 at 9:39 AM
What is the advantage of tying actions directly to elements, rather than having a composable hook?
September 17, 2025 at 11:34 PM
I personally liked passing the pending state explicitly, since its more flexible, eg when the action is triggered from inside a menu:

<ComboBox>
<TriggerButton loading={...} />
<Content>
<Item onClick={...} />
</Content>
<ComboBox>
September 17, 2025 at 11:34 PM
The docs have this example, which also uses state for portal targets: react.dev/reference/re...
createPortal – React
The library for web and native user interfaces
react.dev
August 25, 2025 at 8:30 AM
…right, I forgot that useRef wouldn’t trigger a rerender anyways. Maybe like this?:

```
const [el, setEl] = useState()

return <>
<div ref={setEl} />
{el && createPortal(..., el)}
</>
```

I'd probably accept the rerender, since the only duplicate work is that one portal target.
August 25, 2025 at 8:28 AM
Why is useRef a problem?
August 24, 2025 at 7:33 PM
The materials are all significantly less transparent. This may ofc be due to the screenshots only showing very controlled scenarios, but I take it as a sign that the current state of the beta isn't what they intended.

Also, the reduce-motion setting supposedly turns off some of the refractions.
June 14, 2025 at 12:55 PM
Things that I personally like:

- Scroll edge effects solve the issue of scrollable content just disappearing into a divider, like here on Bsky. Not knowing whether a view is scrollable has been a recurring complaint in the past.

- The toolbar design finally gives all buttons clear shapes again.
June 14, 2025 at 9:35 AM
They have a WWDC video explaining their rationale. IMO they're trying to address real problems.

Interestingly, the examples here have far fewer a11y-issues than the version shown at the keynote.

developer.apple.com/videos/play/...
Get to know the new design system - WWDC25 - Videos - Apple Developer
Dive deeper into the new design system to explore key changes to visual design, information architecture, and core system components...
developer.apple.com
June 14, 2025 at 9:35 AM
Many packages in the React-ecosystem seem to have spiked in 2025. Other frameworks declined. I wonder what's going on...

npmtrends.com/@tanstack/re...
@tanstack/react-query vs react vs react-router vs svelte vs vue | npm trends
Comparing trends for @tanstack/react-query 5.76.1 which has 9,105,902 weekly downloads and 45,148 GitHub stars vs. react 19.1.0 which has 38,049,869 weekly downloads and 235,485 GitHub stars vs. react...
npmtrends.com
May 18, 2025 at 5:23 PM