Spent the entire day writing. It'll take some more time, but eventually I'll have a nice two-parter to publish.
ppk 🇪🇺
@quirksmode.org
technical writer - #browser expert - aspiring #css nerd - #cssday and #perfnow conference organiser - #history geek - former Later Roman Empire specialist - native of #Amsterdam - https://quirksmode.org
So my Firefox 155 on one of my computers suddenly refuses to load all kinds of files, among which all style sheets, citing CORS errors and whatnot. On my other computer it works fine.
I have been writing this post about the economics of open source, on and off, for 13 years. I wasn't expecting to end up at "Microsoft should send corporations a huge bill" but nothing else we've tried has worked. https://seldo.com/posts/nobody-pays-for-open-source-we-can-force-them-to/
Nobody pays for open source. We can force them to. | Seldo.com
Thirty years of voluntary funding schemes haven't paid open source maintainers because asking doesn't scale. The real money already flows — to JFrog, Docker, Sonatype — at the registry layer. The fix: registries charge companies for supply (they already do), then route a slice automatically to the maintainers who make that supply worth having.
seldo.com
The French made a short film about what could happen after all immigrants would follow the ‘white, angry old man’s’ advice to go back where they came from.
As a web designer or developer, what questions do you have about iPhone Duo?
Style queries for nested breakpoints I plan to use style containers for centralised breakpoint definitions and went down a rabbit hole. Do you know what a container is? And that size containers are the exception rather than the rule in container land? quirksmode.org/quirksblog/2...
Style queries for nested breakpoints
I plan to use style containers for centralised breakpoint definitions, combining style queries with CSS nesting. Also, I went down a rabbit hole. Do you know what a container is? And that size contain...
quirksmode.org
New glasses! After at least seven years. I thought varifocal ones were only for old people, but turns out that's not true.
I plan to use style containers for centralised breakpoint definitions. This can be a useful technique for a while. Also, it led me to container research. Did you know that size containers, the ones with the cqw goodness, are the exception in container land? quirksmode.org/quirksblog/2...
Using style queries
I plan to use style containers for centralised breakpoint definitions. This can be a useful technique for a while. Also, it led me down a rabbit hole of container research. Do you know what a containe...
quirksmode.org
Fascinating as they are, I will leave the results of this bit of code aside for now so that I can maybe finish the article today. p.loop { /* In parent --screenSize is 5 */ @container style(2 <= --screenSize <= 5) { *:has(> &) { --screenSize: 1; } } }
Is it possible to say height: 40vh-but-round-it-to-the-nearest-whole-lh; ?
This afternoon I wrote the first draft of the style query article. Progress was made. Tonight I removed about 20%. Great progress is being made! I just hope I have enough time tomorrow to finish it.
Making the BODY a container does away with the reverse-inheriting of its background color to HTML. Interesting.
Ah right, if you specify inherits: false on a custom property it also doesn't inherit to the ::before ...
My question for today is about STYLE QUERIES. How are they being used these days? Any good articles? (I don't care how they work, but how we use them. Also, no container queries, just style queries.)
Wait. A flexbox is automatically a container? (But a grid box isn't?) Or did I make a mistake in my tests?
Why doesn't this work? @supports (order: sibling-count()) ){ --sibling: 'sibling-count' } @supports not (order: sibling-count()) ){ --sibling: 'NOT sibling-count' } /* later */ content: 'Browser supports: ' var(--sibling,' no sibling data '); I get 'no sibling data'.
My question for today is about STYLE QUERIES. How are they being used these days? Any good articles? (I don't care how they work, but how we use them. Also, no container queries, just style queries.)
Gotta hand it to whichever AI runs in the Google Search: you're on the spot. "Combining container-type: inline-size with a grid using grid-template-columns: repeat(auto-fit, minmax(...)) triggers a WebKit bug where the column widths collapse to 0" It does indeed.
Fifteen years ago I helped popularise the meta viewport width=device-width,initial-scale=1. Today I found out the second bit is no longer necessary. A retrospective. quirksmode.org/quirksblog/2...
initial-scale no longer needed
Fifteen years ago I helped popularise the meta viewport width=device-width,initial-scale=1. Today I found out the second bit is no longer necessary. A retrospective.
quirksmode.org
Respected friends and acquaintances, initial-scale is dead! We are freed of its tyranny. You no longer need to include it in your HTML head. It is an obsolete part of your head's meta viewport declaration. The details: vale.rocks/micros/20260... #WebDev #HTML
You Don't Need Initial-Scale In Your HTML - 2 Sept 2026 13:50 UTC
vale.rocks
Fifteen years ago I helped popularise the meta viewport width=device-width,initial-scale=1. Today I found out the second bit is no longer necessary. A retrospective. quirksmode.org/quirksblog/2...
initial-scale no longer needed
Fifteen years ago I helped popularise the meta viewport width=device-width,initial-scale=1. Today I found out the second bit is no longer necessary. A retrospective.
quirksmode.org
FIREFOX ANDROID test requested. 1) Go to www.quirksmode.org/m/tests/meta... 2) Change orientation from portrait to landscape or vice versa. 3) Do the line lengths change? I.e., does Firefox Android adjust the layout viewport when the orientation changes? Thx.
Meta viewport test
quirksmode.org
Turns out initial-scale=1 is no longer needed in your meta viewport. front-end.social/@ppk/1172011...
ppk 🇪🇺 (@ppk@front-end.social)
@vale@fedi.vale.rocks You are correct, initial-scale=1 is no longer needed for Safari/iPhone. (Did not test iPad.) In fact, secretly, in the past *only* initial-scale=1 was required; width=device-wid...
front-end.social
Three new speakers were announced for perfnow.nl ! Aleth Gueguen about native web and PWAs. @adactio.com about long-term performance: not milliseconds but decades Risko Ruus about regression testing and other QA Tickets: perfnow.nl/tickets.html See you in November in Amsterdam!
performance.now(); 19th and 20th of November 2026, Amsterdam
On 19th and 20th of November 2026, the seventh edition of performance.now() will take place in Amsterdam—a single track conference, covering today’s most important web performance insights.
perfnow.nl
So I've been deepfaked, which feels pretty dystopian... The video is pretty good, but the voice is terrible. I've reported the videos and channel already, and, if you have a free moment, I'd appreciate if you reported the channel too, it's full of this crap. www.tiktok.com/@jeffcryptot...
Back in the nineties it was decided that all websites should be free. Part of that was the absence of easy payment methods, part was FOSS influence. Are there any other important causes? Also, is there a good overview article somewhere?
An example of a website being irrelevant bullshit that happened to trigger me. Why didn't a UX designer pull the emergency break? quirksmode.org/quirksblog/2...
The website as irrelevant bullshit
An example of a website being irrelevant bullshit that happened to trigger me. Why didn't a UX designer pull the emergency break?
quirksmode.org
My permission was on "No one", so I'm glad I checked it.
there was a recent bug in the Bluesky app that caused some people's chat permission settings to switch to "No one" we already fixed the bug, but folks may want to double-check their settings to make sure they are set the way they want. go here: bsky.app/messages/set... look for these settings: