98.css – A design system for building faithful recreations of old UIs

OuterVale | 380 points

I made something similar as well (that includes both 3.11, 95, 2000, XP, CDE and Mac OS 9, and also all the default color schemes of those): https://nielssp.github.io/classic-stylesheets/?theme=win9x&s...

My focus was not so much on pixel perfect, but instead on creating something that would also work and look aesthetically pleasing on modern systems, like with higher DPI monitors and such. So one of the the things I did was to recreate all the icons and symbols in SVG.

I tried posting it as a Show HN when I added XP and Mac OS 9, but it didn't get much attention. Maybe the title of the project isn't as catchy.

nielssp | 11 hours ago

Author here – happy to see this posted again!

This was my burnout recovery project and I wrote some thoughts on it recently https://notes.jordanscales.com/98-css-reflections

prezjordan | 12 hours ago

98.css is an HN Classic, for all the best reasons.

Previous discussions:

https://news.ycombinator.com/item?id=33310554 - October 2022 (179 comments)

https://news.ycombinator.com/item?id=22940564 - April 2020 (211 comments)

See also:

HyperCard Simulator and Decker.

https://hn.algolia.com/?q=hypercard

metadat | 7 hours ago

NB, that style does not play well with non-native DPI (e.g. when you have monitor set to 150% scale); to see it mapped to physical pixels, try running this in the browser's console:

    with(document.documentElement.style){
      transform = `scale(${ 1 / devicePixelRatio })`;
      transformOrigin = 'top left';
    }
(multiply the scale by whole number to get it "crisply zoomed").

Still not 100% perfect, but much closer to intended rendering, I guess.

myfonj | 15 hours ago

By eye alone, I'm pretty sure that is not MS Sans Serif as rendered in Windows 95 and Windows 98.

akx | 17 hours ago

I don't know if anyone else remembers this but in the late 90s, Microsoft had built-in CSS named colours that matched the Windows desktop theme/colours.

I have no idea if these still work (my IDE seems to say they do not, because everything is red).

    body {
      font-size : 11px ;
      color : windowtext ;
      background-color : appworkspace ;
    }
    a {
      color: menutext;
    }
    .headerBar {
      border-top    : 1px solid threedlightshadow ;
      border-left   : 1px solid threedlightshadow ;
      border-bottom : 1px solid threedshadow ;
      border-right  : 1px solid threedshadow ;
      background-color : threedface ;
    }

So you could build web UIs that matched the user's Desktop look and feel. We did this for our browser-based Intranet applications in 1998, which made them look a bit more "native".
sbarre | 11 hours ago

I'd claim that this is way better than what we've got after years of UX/UI "research" and "improvements".

And it's not that I'm some old boomer. In '98 I was one year old. I just hate buttons which don't look like buttons, tabs which don't look like tabs, text fields that you have to click to discover they're editable etc.

agluszak | 13 hours ago

I made this Obsidian theme (now defunct) using lots of source from 98.css

https://github.com/SMUsamaShah/Obsidian-Win98-Edition

smusamashah | 12 hours ago

It sucks that the fonts will never look amazing as they once were in CRT monitors in 800x600.

klaussilveira | 9 hours ago

Very cool, will need to find a use for this. I briefly had a go at building similar trying to replicate the Club Penguin UI - need to get back to it!

https://github.com/bwgraves/PenguinCSS

bwg2000 | 10 hours ago

This is weirdly compelling. I have some retro info that I've wanted to put in a small website, this may be the thing that pushes it into the active list.

Thanks!

AstroJetson | 7 hours ago

This is really cool, the only thing I see is the font rendering looks choppy. An antialiasing issue I think, but it looks worse than some non-antialiazed fonts (like the EGA 8x14 pixels font) too

To be very pedantic: also the dropdown menu, when opened, looks very different than the original 98 style

Aardwolf | 15 hours ago

broken on firefox for me after clicking through a few times...

the left side gets shift over and hidden behind the white navigation box.

Does this happen to anyone else?

sigmonsays | 4 hours ago

I used a little bit of this I think in crowdwave https://www.crowdwave.com

andrewstuart | 16 hours ago

I miss this era of life and childhood

uptownfunk | 9 hours ago

developers will do anything but actually recreate visual basic

distantsounds | 4 hours ago

This is beautiful. The world needs more of this.

ayaros | 8 hours ago

Where’s Clippy?

Great job! I think adding Clippy notifications would be a fun touch

lastdong | 14 hours ago

Cool but the fonts are all messed up.

webprofusion | 11 hours ago

i dream of a 16 cga colors css framework with bulky arrows

croisillon | 10 hours ago

I hate and love this at the same time

breakfastduck | 8 hours ago

This would be an improvement over modern UI design. It's much more clear what is clickable. That is why old Windows versions were designed like that.

henning | 8 hours ago