Hacker News

OuterVale
98.css – A design system for building faithful recreations of old UIs jdan.github.io

nielssp11 hours ago

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.

netbioserror10 hours ago

Whoa. Insanely cool. Outstanding quality and theming, such a simple implementation. Only thing I'd want to see is theming for data tables, maybe even an interactive table that behaves like the lists and grids.

tiffanyh10 hours ago

Love it; though the Windows 2000 theme seems a bit off (headings to heavy/bold).

Windows 2000 was the pinnacle of UI design IMO.

alspaca4 hours ago

To echo the other comments: this is beautiful work!

sphars11 hours ago

This is amazing, thanks for this! I made a simple app using 98.css because that was the most feature-filled retro CSS library I could find. Going to try and use your 3.1 schemes :)

syx9 hours ago

This project is absolutely gorgeous, you really did a great job at mapping each UI elements, really great work!

replwoacause10 hours ago

This is incredible

a-french-anon11 hours ago

Very cool, thank you!

breakfastduck8 hours ago

Absolutely incredible work

zachwill7 hours ago

Holy crap, that Mac OS 9 one is fantastic!!!

prezjordan12 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

sphars11 hours ago

Thanks for your work on this! I recently used 98.css in my fairly simple web app[0] for a recreation of something from my childhood, and it worked beautifully for my purposes.

[0]: https://www.mathsheets.net/

Jackim8 hours ago

I'd suggest using checkboxes instead of radio buttons for the operator selection. It would be useful, I think, to have a mix of just addition and subtraction, or just multiplication and division, instead of having one option or all four.

sphars4 hours ago

I hadn't thought of that use case, thanks for the feedback!

prezjordan11 hours ago

Phenomenal work

wg08 hours ago

This is the most accurate replication I have ever seen of Windows 98. Wish there's one for Windows 2000 and Windows XP.

lioeters10 hours ago

> burnout recovery

I hope you're feeling better. Interesting how retro computing, like old games and operating systems, can be comforting and even healing. I've had similar experience with emulators - playing Gameboy and Nintendo games from childhood, or running Macintosh System 9.

Reminds me of Pico-8, SerenityOS, TempleOS. There's a common thread of a retro-style computing environment that can be entirely understood and controlled by the user.

I imagine there's deeper psychological dynamics to this, like a safe "sandbox" as a therapeutic tool.

It also says something about design with empathy and focus on user experience. There are so many hostile dark patterns these days in technology and society, that it's a relief to find some space (physical or mental) that's designed for your comfort.

metadat7 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

myfonj15 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.

paulirish6 hours ago

Wow, your use of `with` is both terrifying and super fresh. I love/hate it.

akx17 hours ago

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

worble15 hours ago

Recreating old fonts in modern browsers is a hard problem

https://web.archive.org/web/20230603234837/https://vistaserv...

akx14 hours ago

Sure, but I refuse to call this a faithful recreation of the aesthetic until the fonts look correct. :D

On a related note, I did start working on some tools to work with legacy .FONs for this exact purpose earlier this year, but the project is iceboxed for now...

sbarre10 hours ago

Sounds like it was a hard problem!

vintagedave17 hours ago

They’ve also kept the pixelated nature. The XP style sheet linked in another comment [1] draws at high res for its text and shapes and so retains the feel of the UI without the constraints.

I — we? — like the 98 etc UI for its clarity and simplicity not its low resolution.

[1] https://news.ycombinator.com/item?id=42056921

exitb16 hours ago

The fonts are pixelated, but those pixels don't appear to align with the physical ones, so they're blurry in some places. Meanwhile, on a real 98 you either had crisp fonts, or neatly and consistently blurred by the CRT.

OuterValeopa day ago

pen2l12 hours ago

In both of these as well as submission link, one of the things that is clearly and strikingly different from modern UI is the lack of very abundant amount of padding space. I think it's almost the mantra that we need breathing room, e.g., between different options in a radio-group box list of items... but I find lesser space (as was characteristic of older UI's) to be more honest... more respectful to me as an end-user, more information-dense.

I don't want to discard whatever innovation has been done, but man I find myself being nostalgic of old UI quite often.

bityard7 hours ago

There's nothing preventing information-dense layouts today, except that the "flat design" crowd has decreed that no work spaces, toolbars, or controls shall have any borders or lines to delineate visual separation. Too much "clutter." So the only thing left is to separate things with vast volumes of whitespace which doesn't actually work all that well when you have to deal with different screen sizes.

culi7 hours ago

It goes back to an accessibility study that found that 1.5x line-height is the most readable.

As with a lot of things in ux accessibility research, these results were never replicated but the idea was seared into all our brains permanently. We know from research on fonts that ultimately, the most accessible font is the one the user is most used to. Sans vs. Serif vs. etc all don't seem to make a consistent difference across demographics. I suspect line spacing is something that's due for a relook

blenderob12 hours ago

With old 640 x 480 or 800 x 600 resolutions, the screen real estate came at premium. There wasn't much room to use generous padding and still make all the buttons and UI fields fit in the low resolution displays.

marginalia_nu12 hours ago

Modern smartphones aren't that far off in terms of (logical) pixel counts. The difference is in input accuracy.

marginalia_nu12 hours ago

The mouse has significantly higher precision than touch interfaces. That's a large part of why modern hybrid interfaces have such low density.

card_zero12 hours ago

Realistically, desktop interfaces will never stop trying to cater for touchscreen devices. We need a eugenics program to breed people with sharp pointy fingers.

mrighele13 hours ago

The one that looks like Windows 7 seems to be the most complete and has a bunch of stuff not found in the others, like progress bar or menus. In fact while I never liked the window decorations that 7 used, the rest wouldn't look bad on an electron app

a-french-anon14 hours ago

Shilling mine (not as decoupled and extensive as those), since it's quite on point:

https://git.sr.ht/~q3cpma/website/tree/master/item/src/resou...

https://world-playground-deceit.net/

These make me want to go all the way.

ChrisNorstrom17 hours ago

THANK you so much for the XP one. XP's UI is my favorite of all the Windows UIs. It had just enough modernity to feel sleek but still had contrast to be easily seen and read and understood.

Windows 7 UI was a bit too flashy and employed looks over readability and Windows 98 was too old fashioned and also suffered from a lack of contrast with all the grey.

mrighele13 hours ago

I never enjoyed the XP one. Somebody called the Fisher-Price ui, and I think the remark is not too off. I would always switch to the "classic" UI, which I think was the same as Windows 2000, which in my opinion is the best of all (it is a similar but different from the one of Windows 98, especially in color choice and icon)

stavros17 hours ago

Was XP your first OS, by any chance? I really like the 98 UI, but that was my first and it evokes really nice memories.

selectnull17 hours ago

XP was my favorite as well, at least among the Windows. Not the first OS I used (that would be DOS 3). But it was the last MS OS I used.

stavros17 hours ago

Oh it was my favorite OS as well, it crashed way way less and did its job admirably, I just prefer the Windows 98 UI.

baq17 hours ago

So basically windows server 2003. Peak desktop productivity UX.

dotancohen14 hours ago

For me that was KDE 3. In fact, KDE 3 had such a fan base that even until today there is still an active port.

stavros17 hours ago

Yep, exactly.

d4rti14 hours ago

XP x64 was a lovely desktop, and was essentially 2k3 desktop. Last Windows system I enjoyed using.

ChrisNorstrom15 hours ago

Windows 98 was my first, but I loved XP UI the most, especially in the later years when Microsoft launched the ZUNE XP theme.

rauli_13 hours ago

Now all we are missing is Windows 3.x -version.

[deleted]12 hours agocollapsed

sbarre11 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".

sbarre11 hours ago

I did a bit of digging and it seems this was generalized into CSS System Colours at some point:

https://drafts.csswg.org/css-color/#css-system-colors

And all these old colours were deprecated:

https://drafts.csswg.org/css-color/#deprecated-system-colors

agluszak13 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.

mrweasel11 hours ago

Have much UX/UI research been put into operation systems UIs since Windows 95?

I suppose Apple must have done some research for MacOSX, but in the past two decades it feels like features are just be thrown in, especially on mobile, with no concept of discoverability or consistency. More than anything I think companies desire to have "consistent branding" or "unique look" is to blame for much of this.

bityard7 hours ago

Yes, Apple at one time had a phenomenal Human Interface Guide for native OS X applications which was based on actual UX testing and research. Things like, "make your application features discoverable," "clearly delineate functional areas and controls," and "use verb+noun on action buttons." It was Good Stuff and it heavily informed a lot of UX decisions for the prominent Linux desktops at the time.

It's still around but I flipped through it recently and it seems to be a mix of the absurdly general ("don't build an app for a specific screen size") to the very specific (MacOS and iOS APIs). Maybe there's some gold buried in there still, but I'm not sure where to find it.

jandrese11 hours ago

That said I'm not a fan of the black text over dark gray background.

Also, that website includes "show code" buttons disguised as ordinary text.

smusamashah12 hours ago

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

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

klaussilveira9 hours ago

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

bwg200010 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

AstroJetson7 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!

Aardwolf15 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

uniq714 hours ago

Chrome on Windows 10 here. The font rendering looks very similar (if not identical) to what I remember it in Win98 -- no antialiasing, 1px thick, very easy to spot the pixels on curved strokes, very easy to spot the pixels on bold style, etc.

The style looks incredible accurate to what I remember, although there are some differences:

- The opened dropdown menu, as my parent suggested.

- I don't remember textareas being resizable.

- I remember stepped sliders had little marks indicating where each step is. Only continuous sliders (e.g., the one in the Windows volume control) had no marks.

- The tabs don't look like as I remember from Win95/98, these ones look more like Win 3.1. Too much padding, the border is too thick, and the border radius is too big.

- In tables, the headers looked like buttons because they were actually buttons (you could press them to sort the table). However, here they are not clickable.

Aardwolf13 hours ago

Interesting, I tried zooming in now and when zooming in far enough the font does look alright!

It might be that it just happens to look bad on high resolution screens, and/or maybe some browser fractional scaling issue

As an example, one of the text fields on the page contains the word "Incredible". When zoomed in it looks fine, when zoomed at 100% the I and the n are stuck together to each other without any pixel in-between which is very ugly

prezjordan11 hours ago

> also the dropdown menu, when opened, looks very different than the original 98 style

Sadly this is the dropdown provided by the host operating system. The tell is that it can extend beyond the browser chrome! 98.css doesn't ship with any JS, and I thought about hacking it with checkboxes and :after but.... no thanks.

sigmonsays4 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?

andrewstuart16 hours ago

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

OuterValeop16 hours ago

What a lovely website. Thank you for sharing! :)

notracks13 hours ago

That's an interesting website!

uptownfunk9 hours ago

I miss this era of life and childhood

distantsounds4 hours ago

developers will do anything but actually recreate visual basic

ayaros8 hours ago

This is beautiful. The world needs more of this.

lastdong14 hours ago

Where’s Clippy?

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

petepete12 hours ago

Here he is (+ friends)

https://github.com/pi0/clippyjs

AstroJetson7 hours ago

This is pretty cool, sadly the sites that it uses to show the examples in action are long gone.

webprofusion11 hours ago

Cool but the fonts are all messed up.

croisillon10 hours ago

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

breakfastduck8 hours ago

I hate and love this at the same time

henning8 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.

hn-front (c) 2024 voximity
source