Bram.us

bram.us · Personal blog · on HN since 2014

Bram Van Damme, a web developer, writes about new CSS and JavaScript features, browser changes, and YAML quirks.

What HN saysHN links it for the YAML 'Norway problem' explainer and CSS feature previews; the author himself joins a thread to answer criticism of a CSS proposal.
47HN people shared it
12linked it in comments
38stories submitted
406story points
3 months agolast shared
2014people per year2026

Most-shared posts

  1. 1
    YAML: The Norway Problem (2022)
    5 people · 222 points · first shared 2023 · 164 comments on HN
  2. 2
    Container Queries are coming to Chromium
    3 people · 4 points · first shared 2020 · discussion on HN
  3. 3
    The Future of CSS: Cascade Layers (CSS Layer)
    3 people · 4 points · first shared 2021 · discussion on HN
  4. 4
  5. 5
    A quick introduction to CSS scope
    2 people · 2 points · first shared 2023 · discussion on HN
  6. 6
    JavaScript: What’s New in ECMAScript 2018 (ES2018)?
    2 people · 2 points · first shared 2018 · discussion on HN
  7. 7
    CSS Custom Functions are coming
    1 people · 96 points · first shared 2025 · 83 comments on HN
  8. 8
    Dark Mode Toggles Should Be a Browser Feature
    1 people · 17 points · first shared 2022 · 10 comments on HN
  9. 9
    The Future of CSS: CSS Toggles
    1 people · 11 points · first shared 2022 · 4 comments on HN
  10. 10
  11. 11
    Animating a CSS Gradient Border
    1 people · 2 points · first shared 2021 · discussion on HN
  12. 12
    Chrome 145 Adds Experimental Support for Vertical Tabs
    1 people · 2 points · first shared 2026 · discussion on HN
  13. 13
    Bramus/caniuse-CLI, a CLI tool for "Can I Use "
    1 people · 2 points · first shared 2024 · discussion on HN
  14. 14
    The Large, Small, and Dynamic Viewports
    1 people · 2 points · first shared 2021 · discussion on HN
  15. 15

What HN people wrote when they linked it

blotter_paper · 2019-05-08
Following the link in your readme to davywtf's twitter post, I saw this comment by dade: >I remember last year, and probably the year before that, and probably the year before that still, people continually rediscover CSS keylogging. Glad to see something more interesting this time. Good work. Following up on this, I found an article[0] claiming that it isn't really an issue since a pure CSS keylogger can only catch one character. It seems to me like your method of pseudo-refreshing the page by making old elements hidden and delivering new elements to replace them might be able to overcome this impediment, which would make your on-screen keyboard unnecessary; if I understand correctly, you could just keep capturing whatever the user types in a field, and deliver a new field that already has whatever they've typed already as the default value with autofocus on. Do I understand correctly? Is there something I'm missing, like autofocus not playing well with continuous chunks of data being delivered? I'm not saying you should put in the additional effort to do this for your beautiful-horrible-clusterfuck of a project, I'm just curious about the feasibility and thought you might already know the answer. [0]: https://www.bram.us/2018/02/21/css-keylogger-and-why-you-shouldnt-worr…
jakelazaroff · 2026-06-22
This point of view always confuses me, because web developers already need to deal with platform differences. Especially if your app app also runs in a browser, like Slack and Discord — at that point, what issues do the differing system webviews cause that you don't need to deal with anyway just targeting browsers? It's also funny to me as someone who's been building websites for 20+ years at this point, because the platform differences used to be much, much worse. Coincidentally, I just saw this article, which makes the case nicely: https://www.bram.us/2026/06/21/do-websites-need-to-function-exactly-th…
merelysounds · 2026-01-02
This is a reference to YAML parsing the two letter ISO country code for Norway: country: no As equivalent to a boolean falsy value: country: false It is a relatively common source of problems. One solution is to escape the value: country: “no” More context: https://www.bram.us/2022/01/11/yaml-the-norway-problem/
ikonst · 2025-08-16
yaml: https://www.bram.us/2022/01/11/yaml-the-norway-problem/ bash: errexit depends on caller's context, will utterly fail you one day: https://lists.gnu.org/archive/html/bug-bash/2012-12/msg00093.html
bramus · 2023-10-10
(Hi, author of the post/article here) > This solves one tiny aspect of the larger problem in a non-scalable way that will inevitably lead to bloat and inflexibility. It's a really a naive approach that hasn't taken into account design at scale, nor the future of where design is heading. Note that `light-dark()` isn’t the end goal here. As discussed within the CSS WG, the end goal is to have a generic function `schemed-value()` to give you what you want. I realize this wasn’t included in the post, so I’ve added a new section to the post with this information: https://www.bram.us/2023/10/09/the-future-of-css-easy-light-dark-mode-… I hope this addresses your concern. If not, feel free to let me (or the CSS WG for that matter) know.
yboris · 2023-09-21
"The Norway Problem" - had to look it up: https://www.bram.us/2022/01/11/yaml-the-norway-problem/ Norway abbreviates to "NO" which YAML parses as "false"
perardi · 2022-11-07
There is a lot of CSS now…but so many of the recent additions have been useful. Really useful. Like, solves real-world problems, easy to understand, on their way to being very well-supported. For example… …Container Queries. (https://www.smashingmagazine.com/2021/05/complete-guide-css-container-… …Cascade Layers. (https://css-tricks.com/css-cascade-layers/#browser-support-and-fallbac… …the :has() selector. (https://www.bram.us/2021/12/21/the-css-has-selector-is-way-more-than-a…
eyelidlessness · 2021-11-10
I’m not at my desk to try it right now, but I wonder if this can be worked around by forcing a repaint. Animating a custom property, for instance, can fix “stuck” styles for eg scroll shadows (see https://www.bram.us/2019/10/24/pure-css-scroll-shadows-vertical-horizo…
brigandish · 2021-01-09
As I read I wondered about the possibility of its abuse as a payload system, then I reached this linked post[1]: > What happens when you combine the fact that part after the : for CSS Custom Properties doesn’t need to be valid CSS with window.getComputedStyle()? You get a way of passing data – including Arrays, Objects, and even JSON – from CSS to JavaScript. The first article proposes the possibility of sending updated variables via a CDN, and the linked one shows a CSS variable being parsed as JSON and then executed by the Javascript engine. There's probably some fun and high jinks to be had there… [1] https://www.bram.us/2020/03/30/pass-data-from-css-to-javascript-with-c…
The_rationalist · 2020-12-01
Wow container queries eliminate a whole class of dynamic CSS through js/native DOM! https://www.bram.us/2020/11/05/container-queries-are-coming-to-chromiu… That being said, if only they added a :on-click pseudoselector the biggest class of JS for CSS would disappear and both performance and clarity would be improved. But it doesn't seems that's ever going to happen
moderation · 2020-06-29
Safari will likely be the last browser to support HTTP/3 as it will only be available in the unreleased MacOS 10.16. HTTP/3 is already in the other browsers with instructions on how to enable [0]. Firefox Nightly and Chrome Dev already support Draft 29 (which is Working Group Last Call [1]. 0. https://www.bram.us/2020/04/08/how-to-enable-http3-in-chrome-firefox-s… 1. https://mailarchive.ietf.org/arch/msg/quic/F7wvKGnA1FJasmaE35XIxsc2Tno…

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close