frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

EchoJEPA: Latent Predictive Foundation Model for Echocardiography

https://github.com/bowang-lab/EchoJEPA
1•euvin•6m ago•0 comments

Disablling Go Telemetry

https://go.dev/doc/telemetry
1•1vuio0pswjnm7•7m ago•0 comments

Effective Nihilism

https://www.effectivenihilism.org/
1•abetusk•10m ago•1 comments

The UK government didn't want you to see this report on ecosystem collapse

https://www.theguardian.com/commentisfree/2026/jan/27/uk-government-report-ecosystem-collapse-foi...
2•pabs3•12m ago•0 comments

No 10 blocks report on impact of rainforest collapse on food prices

https://www.thetimes.com/uk/environment/article/no-10-blocks-report-on-impact-of-rainforest-colla...
1•pabs3•13m ago•0 comments

Seedance 2.0 Is Coming

https://seedance-2.app/
1•Jenny249•14m ago•0 comments

Show HN: Fitspire – a simple 5-minute workout app for busy people (iOS)

https://apps.apple.com/us/app/fitspire-5-minute-workout/id6758784938
1•devavinoth12•15m ago•0 comments

Dexterous robotic hands: 2009 – 2014 – 2025

https://old.reddit.com/r/robotics/comments/1qp7z15/dexterous_robotic_hands_2009_2014_2025/
1•gmays•19m ago•0 comments

Interop 2025: A Year of Convergence

https://webkit.org/blog/17808/interop-2025-review/
1•ksec•28m ago•1 comments

JobArena – Human Intuition vs. Artificial Intelligence

https://www.jobarena.ai/
1•84634E1A607A•32m ago•0 comments

Concept Artists Say Generative AI References Only Make Their Jobs Harder

https://thisweekinvideogames.com/feature/concept-artists-in-games-say-generative-ai-references-on...
1•KittenInABox•36m ago•0 comments

Show HN: PaySentry – Open-source control plane for AI agent payments

https://github.com/mkmkkkkk/paysentry
1•mkyang•38m ago•0 comments

Show HN: Moli P2P – An ephemeral, serverless image gallery (Rust and WebRTC)

https://moli-green.is/
1•ShinyaKoyano•47m ago•0 comments

The Crumbling Workflow Moat: Aggregation Theory's Final Chapter

https://twitter.com/nicbstme/status/2019149771706102022
1•SubiculumCode•52m ago•0 comments

Pax Historia – User and AI powered gaming platform

https://www.ycombinator.com/launches/PMu-pax-historia-user-ai-powered-gaming-platform
2•Osiris30•53m ago•0 comments

Show HN: I built a RAG engine to search Singaporean laws

https://github.com/adityaprasad-sudo/Explore-Singapore
1•ambitious_potat•58m ago•0 comments

Scams, Fraud, and Fake Apps: How to Protect Your Money in a Mobile-First Economy

https://blog.afrowallet.co/en_GB/tiers-app/scams-fraud-and-fake-apps-in-africa
1•jonatask•58m ago•0 comments

Porting Doom to My WebAssembly VM

https://irreducible.io/blog/porting-doom-to-wasm/
2•irreducible•59m ago•0 comments

Cognitive Style and Visual Attention in Multimodal Museum Exhibitions

https://www.mdpi.com/2075-5309/15/16/2968
1•rbanffy•1h ago•0 comments

Full-Blown Cross-Assembler in a Bash Script

https://hackaday.com/2026/02/06/full-blown-cross-assembler-in-a-bash-script/
1•grajmanu•1h ago•0 comments

Logic Puzzles: Why the Liar Is the Helpful One

https://blog.szczepan.org/blog/knights-and-knaves/
1•wasabi991011•1h ago•0 comments

Optical Combs Help Radio Telescopes Work Together

https://hackaday.com/2026/02/03/optical-combs-help-radio-telescopes-work-together/
2•toomuchtodo•1h ago•1 comments

Show HN: Myanon – fast, deterministic MySQL dump anonymizer

https://github.com/ppomes/myanon
1•pierrepomes•1h ago•0 comments

The Tao of Programming

http://www.canonical.org/~kragen/tao-of-programming.html
2•alexjplant•1h ago•0 comments

Forcing Rust: How Big Tech Lobbied the Government into a Language Mandate

https://medium.com/@ognian.milanov/forcing-rust-how-big-tech-lobbied-the-government-into-a-langua...
4•akagusu•1h ago•1 comments

PanelBench: We evaluated Cursor's Visual Editor on 89 test cases. 43 fail

https://www.tryinspector.com/blog/code-first-design-tools
2•quentinrl•1h ago•2 comments

Can You Draw Every Flag in PowerPoint? (Part 2) [video]

https://www.youtube.com/watch?v=BztF7MODsKI
1•fgclue•1h ago•0 comments

Show HN: MCP-baepsae – MCP server for iOS Simulator automation

https://github.com/oozoofrog/mcp-baepsae
1•oozoofrog•1h ago•0 comments

Make Trust Irrelevant: A Gamer's Take on Agentic AI Safety

https://github.com/Deso-PK/make-trust-irrelevant
9•DesoPK•1h ago•4 comments

Show HN: Sem – Semantic diffs and patches for Git

https://ataraxy-labs.github.io/sem/
1•rs545837•1h ago•1 comments
Open in hackernews

Normalize.css

https://csstools.github.io/normalize.css/
69•Leftium•3mo ago

Comments

reconnecting•3mo ago
Actually, there are two normalizes. The first was: https://github.com/necolas/normalize.css
Leftium•3mo ago
I chose to share the one that seemed more recent/maintained.

Brief history/explanation from: https://github.com/csstools/normalize.css/#differences-from-...

> Nicolas Gallagher and I started writing normalize.css together. I named and created the normalize.css repository with the help of Paul Irish and Ben Alman. I transferred the repository to Nicolas, who turned it into a “household” CSS library.

> Later, I resumed authorship of normalize.css with Luciano Battagliero. Together, we tagged, deprecated, and removed “opinionated” styles — styles developers often prefer but which do not fix bugs or “normalize” browser differences.

> Later, Nicolas resumed authorship and the issue of whether to include or omit the opinionated styles forced us to split.

Leftium•3mo ago
And now there is a third variation, sanitize.css, which is the one I decided to use: https://github.com/csstools/sanitize.css

Used here: https://github.com/Leftium/news/blob/0d507aecd05dfe94853d278...

fouronnes3•3mo ago
Obviously we can't break backwards compatibility, but why doesn't css have opt-in "use version" strings that could tell the browser: I want this set of defaults. Something like "use-defaults: system-ui;" or "use-defaults: none".
JimDabell•3mo ago
You can always do something like:

    * {
        all: unset;
    }
But then you’d have to reimplement everything from browser defaults, which can get a bit tedious.

I agree, it would be nice to get a bit of a cleaned up set of defaults though, and you could polyfill it this way.

aetherspawn•3mo ago
At some point I stopped caring about backwards compatibility, but I can’t put my finger on it.

Perhaps connectivity became so good that now as long as it works on evergreen, it’s good to go. We used to put a lot of effort into this stuff, but it feels like it’s been years since we even thought about it.

anilgulecha•3mo ago
It's when IE 11 was deprecated, and everyone moved to well supported CSS and HTML5 browsers - modern Webkit/blink/Gecko browsers.
fred_•3mo ago
The npm install text overflows horizontally for me on iPhone 16
defanor•3mo ago
It does that in Firefox at certain window sizes, too, supporting its claim to consistency across major web browsers.
MonaroVXR•3mo ago
Same for me to, using Microsoft Edge on Android 16 using a Pixel 8
DANmode•3mo ago
No better laugh than an HN laugh.
misiek08•3mo ago
iP 15 Pro, Safari, same xD
mediumsmart•3mo ago
iP 12 runofthemill, Orion, same
maxloh•3mo ago
I found Bootstrap's reboot.css to be a better maintained version of this.

More details here: https://getbootstrap.com/docs/5.3/content/reboot/

Code: https://github.com/twbs/bootstrap/blob/v5.3.8/dist/css/boots...

johnnypangs•3mo ago
Ive always found this explanation helpful for why these are useful:

https://www.joshwcomeau.com/css/custom-css-reset/

chrismorgan•3mo ago
This link is for the less-well-known normalize.css, https://github.com/csstools/normalize.css. It was last touched five years ago.

The better-known normalize.css is https://github.com/necolas/normalize.css. It was last touched seven years ago.

There’s a reason neither has seen more recent activity: they were mostly about making old browsers behave themselves, and they’re done. The stylesheets did have a little more to them, but it wasn’t what people actually cared about… and in some cases they were better off without them. I know I disagree with quite a few of their opinionated styles.

Those old browsers are now long obsolete—half of them can’t even talk TLS 1.2, which basically excludes them from the modern web—so almost all of these stylesheets is obsolete, and you don’t need them.

For the few pieces that might still have value, you would now prefer to use @layer or :where() for this kind of stylesheet, to make them behave more like user agent styles and avoid specificity conflicts.

rhdunn•3mo ago
To add to this, HTML 5/LS have a section on rendering HTML elements [1]. That section provides default CSS rules that a conforming web browser must use. Therefore, modern browsers effectively have built-in normalize.css rules, providing a consistent web page default.

There may be some rules you want to change in a set of baseline rules such as margin/padding, image sizing, and fonts. But those would be things you would add on top of normalize.css anyway.

[1] https://html.spec.whatwg.org/multipage/rendering.html#render...

extra88•3mo ago
Your link makes it very clear that those CSS rules are not required, that they are suggestions. However, all major browsers do use them.
assimpleaspossi•3mo ago
In the nearly 25 years of running a web dev company, we never used such resets because it always felt like browsers had their built in settings, then one would have a reset to shift everything around one way, then we'd have settings to throw things another way and that's how it felt--like we were slamming things back and forth far too much.

Instead, we'd just set elements to what we wanted them to be which is what we'd have to do in most cases anyway, making any reset unnecessary.

chrismorgan•3mo ago
This isn’t a reset, it’s normalising different browsers. There’s a pretty big difference between the two.
assimpleaspossi•3mo ago
My point remains the same. And I'm not sure there is a difference between a reset and a normalizer.
Defletter•3mo ago
Presumably, a reset is resetting to a browser's defaults, whereas a normaliser is about establishing a cross-browser default. I haven't done much web-dev in recent years, but I vividly remember the same page looking different in different browsers, particularly prior to HTML5.
Octoth0rpe•3mo ago
> a reset is resetting to a browser's defaults

No, a browser's defaults are, well, its defaults. One doesn't reset to them.

I think the line between a normalizer and reset stylesheet is _very_ fine, if there even is a line. A normalizer is probably _slightly_ more opinionated than a reset stylesheet. In the end, the difference isn't really important. If you need a reset stylesheet, normalizer will probably do just as well.

efilife•3mo ago
The line is not fine. Resets don't apply any styling, normalizers do. Normalizers keep the overall styling, like the margins of paragraphs and set them to an arbitrary value so all browsers will act the same. A reset is usually just: * { all: unset; }
assimpleaspossi•3mo ago
None of that matters. Just set the properties you want the element you are using to what you want it to be. No need to think about any other elements except the ones you use and, when you set a property, it will be the same across all browsers. No need to give it a name or import it into your style sheet.

No thinking involved at all outside of your normal design method. No need to investigate the latest trends or activities by some online guy. Just do what you do.

Defletter•3mo ago
> Just set the properties you want the element you are using to what you want it to be.

"Just". What I remember from that time was putting a button at relative 0,0 and it being at the top-left of the page in one browser, but was offset in another because that browser was adding padding/margin to <body>. I cannot say which was "correct" but it nonetheless pushed me to use normalisers, which prevented this kind of problem from ever coming up again.

CaptainOfCoit•3mo ago
They more or less had the same goals, different ways of achieving them.

- CSS reset - completely reset all browser styles to be blank essentially, across different browsers, so then you'll build your styling on common ground

- CSS normalize - same idea of resetting to a baseline, but keeping some of the default styling but still make it consistent across browsers, so not stripping away everything

kuekacang•3mo ago
Now ui libraries does its own reset. The no-nonsense blogger just use a few styling, and yeah, the default now is good enough.
simjnd•3mo ago
I moved away from using Tailwind CSS, but still use their "preflight.css" [1]. It doesn't really care about backwards compatibility (IE stuff), but does a great job at unstyling everything so you have a clean cross-browser base to work with (button will look like text until you add your styling).

[1]: https://github.com/tailwindlabs/tailwindcss/blob/main/packag...

BrandoElFollito•3mo ago
Could you write a few words why you moved away from TailwindCSS?

I am an amateur dev (I write open-source useful for me and possibly others) and I am prone to the "front-end diarrhea syndrome", where when I see something cooler, I jump on it and regret afterwards the time spent.

I am on TailwindCSS right now and I am afraid to learn the drawbacks, but one must be courageous in life.

alt187•3mo ago
https://colton.dev/blog/tailwind-is-the-worst-of-all-worlds/

This is a pretty good post.

In general, I don't think `class` is a good place for styling.

pacha3000•3mo ago
This is actually an awesome post, thank you for sharing
BrandoElFollito•3mo ago
Thank you, this is a nice post. On the other hand, the author is happy to have HTML and CSS generated with JS, which is weird as well (I know - React).
llbbdd•3mo ago
Why is that weird?
BrandoElFollito•3mo ago
Because his article is about bringing back CSS to its glory (more or less :)) and at the same time is happy with his HTML being generated by JS. Instead of having a pure semantic HTML section.

I am not saying that is good or bad (I use Vue for instance), just a bit contradictory.

But that's nitpicking on my side.

alt187•3mo ago
I agree, I like my CSS good and saved in a .css file.
chrisweekly•3mo ago
It has some good points (and vanilla-extract IS awesome), but it's also a bit unfair, eg ignoring tailwind affordances like `apply`.

That said, for learning the "right" way to think about and use CSS, https://every-layout.dev is hands-down the best resource I've encountered in my 20+ years working with websites.

hungryhobbit•3mo ago
What a terrible article! The author is so very ignorant, but presents themselves as an expert :(

I barely got into the "dunking" on Tailwind when I saw this.

> If you misspell one of these plain strings your editor is not going to tell you.

Ummm ... sure, if you're one of the 1% of devs who refuse to use a linter. Either the author is part of that 1%, or maybe they just weren't aware of Tailwind's linting capabilities (https://tailwindcss.com/blog/introducing-linting-for-tailwin...).

Now, to be fair, they wrote the article in 2025, and Tailwind linting was only released five years prior (in 2020) ... five years is hardly long enough to learn relevant tech for your industry /s

The rest of the article seemed similarly ill-informed, with the author fixating on meaningless byte-size differences in contrived examples. However, he ignores the fact that Tailwind is used on some of the most performant sites on the Internet. He also ignores the fact that (for 99% of sites at least) sacrificing a k or two of bandwidth is well worth it for a major increase in developability.

With Tailwind you completely get rid of stylesheets: that alone is huge! There's a reason why so many devs use Tailwind: they don't worry about minimal file size differences, but they do care about massive savings in development time and complexity reduction.

spoiler•3mo ago
You described a lot of orthogonal points and highlighted your opinions, more than pointed out flaws in the article.

I use Tailwind at work at a large company, and it's... Okay. Its biggest strength is the documentation, since most companies have poorly documented style guide/component library.

I'd never use it for a personal project though. It's fine to disagree

simjnd•3mo ago
I find it just inevitably leads to massive classes that pollute markup. Makes it a lot harder to parse HTML and figure out the structure. There are ways to make it a bit better but it's still not great (for me).

It's even worse with conditional styling since you're not toggling a single class on an off but dozens.

You can't use string interpolation for classes, e.g. `<div class={`bg-${color}-400`}>` (Tailwind won't include the classes in your CSS because it doesn't recognize you want all or a subset of bg-<color>-400 classes. They recommend using maps but this becomes very verbose once there are more than a few options.

``` const colorMap = { 'red' : 'bg-red-400', 'blue': 'bg-blue-400' } <div class={colorMap[color]}></div> ```

I'm using Svelte which has a great built-in styling solution with component-scoped styles by default, and modern CSS with nesting is a lot more compact than it used to be.

JimDabell•3mo ago
I took a look thinking that this might actually be useful and somehow came away with an even lower opinion of Tailwind. It’s all like this:

    /*
      1. Add the correct height in Firefox.
      2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
      3. Reset the default border style to a 1px solid border.
    */
    
    hr {
      height: 0; /* 1 */
      color: inherit; /* 2 */
      border-top-width: 1px; /* 3 */
    }
Why can’t they do anything reasonably? It would be easy to put code comments against the actual code it is commenting, but instead they do this weird comment index up front.
zinekeller•3mo ago
Because this is how Normalize.css was written (and I suspect this is Normalize.css-derived).
brazukadev•3mo ago
that is how open source code used to be written before AI and it was appreciated, actually.
JimDabell•3mo ago
Pretty much everybody here has been coding long enough to know that is a blatant untruth.
croemer•3mo ago
Looks unmaintained, last release 2 years ago. The website points at v11 when the most recent release is v12. Has nothing changed in browsers to necessitate code changes?
ugur2nd•3mo ago
Why is Normalize.css back in the spotlight after all this time?

My take on Normalize.css is how something so simple can have such a huge impact. It's astonishing.

jgalt212•3mo ago
CSS is a monster, and it just keeps growing. If one wants to do something truly visually crazy / innovative / impressive, just use canvas. Didn't Google Docs abandon CSS and go straight with canvas? The feature creep in CSS is distasteful. The counter argument is if we keep adding features that will keep the LLMs at bay as they are not good at extrapolation and / or stuff they have not seen before. rant over.
robin_reala•3mo ago
Seems way too much work to completely recreate an accessibility tree as well as the rendering framework.
microflash•3mo ago
At this point, writing a reset is kind of rite of passage for a web developer.

Here’s mine[1] which I wrote while working on multilingual projects involving both Latin and non-Latin languages.

[1] https://github.com/Microflash/preset/blob/main/src/preset.cs...

robin_reala•3mo ago
Personally I prefer Sindre Sorhus’s modern-normalise, which is gradually deleting itself as browser compatibility issues are resolved: https://github.com/sindresorhus/modern-normalize
jszymborski•3mo ago
Kind of a bummer it only targets the latest version of browsers. I get trying to remove cruft by not trying to support older versions, but if you only support the latest you're targetting a smaller % of browsers.
socalgal2•3mo ago
What’s the percentage?
jszymborski•3mo ago
Depends what "latest" means, but eyeballing this table quickly, often much less than 10%

https://caniuse.com/usage-table

sholladay•3mo ago
I always preferred to use sanitize.css, which is the same thing except it also makes sure everything looks pretty good.

https://csstools.github.io/sanitize.css/