Show HN: Cs16.css – CSS library based on Counter Strike 1.6 UI
87 comments
·January 24, 2025culi
the_sleaze_
I can smell that windows 98 theme, the gray plastic and the rubber mouse ball that used to get schmootz in it.
MortyWaves
That 95 theme is terrible. May as well use the 98 theme.
com2kid
You forgot snes! https://snes-css.sadlative.com/
culi
Thanks! I'll add this next time I post this list :)
fusedshadow
Belongs here: https://code.divshot.com/geo-bootstrap/
culi
I like it! But how would you describe this one? This collection is meant more for tight/inspired themes. But I also included https://bootstra386.com/ which is on the edge too so I'm not against including this
fusedshadow
Geocities is infamous.
duxup
I was watching my son play Half Life 2 recently and it occurred to me how much more real or immersive it seemed when the menus and such had this style and they look like actual computer system UI. Dated maybe, but they feel industrial and real.... and easy to use all in one.
Meanwhile many games have hyper stylized menus with flowery wingdings all over them and makes it unrealistic / a horrible experience / chore.
brap
Don’t even get me started on modern games’ menu UIs.
I got the latest CoD for PS5 like a year ago and I couldn’t figure out what the fuck was going on in the menu. Incoherent mess impossible to navigate. I felt like I was going insane.
I guess I’m just getting old.
Sohcahtoa82
> Dated maybe
When current UI trends are designed to be flat and hide functionality, destroying discoverability, a key component of UX, I'd argue that "dated" is a feature, not a bug.
duxup
I mentioned in another comment that I used some very old (2.0) bootstrap for fun recently and yeah I like it better than the flat / colorless stuff.
lelanthran
I liked the menu system in Crysis 2 (or 3 - not too sure).
Really made you feel like you were inside the cryosuit.
bakugo
> many games have hyper stylized menus with flowery wingdings all over them
It can work depending on the style/tone of the game.
The real problem, in my opinion, is all the games nowadays with perfectly flat, generic, colorless UIs with absolutely no style or identity. Nintendo has been doing this a lot, for example.
duxup
I'll be honest, I went back to some OLD bootstrap styling for some things and I liked it a lot. The candy looking buttons are nice ...
I'm done with flat and muted all the time.
Also (more to my example) it looks like a realistic UI. A lot of game stylized UI are UI nobody would ever make intentionally for a thing you're supposed to use often.
So yeah like you say just some depth and realistic UI feel goes a long way.
nolan_wyss
Very nice! I installed CS 1.6 last year again, after almost 15 years of not playing, and now I almost play every day 10 - 15 mins against bots to clear my mind. To make it more fun I even created my own bot team and a whole tournament where I play against all the pro teams of the ±2008ties. I also rediscovered a map I created back then on a super old hard disk - never thought that with almost 40 I would still play it - so thank you past-me.
albertgoeswoof
CS has always been a great mind clearer. A ranked 5v5 game is high pressure and intense, lasts about 30-45 mins, and has enough human contact to satisfy me. I haven’t found anything to replace it since I quit a few years ago.
Cyph0n
TF2 (another Valve game) is an excellent option if you want something more casual/low stress and also flexible when it comes to time (no penalties on leaving since it’s a casual game).
nxobject
Watch out for 1/2-hour ish capture-point campaign style maps, though... I wasted so many Fridays in my early 2010s doing that.
thot_experiment
DotA is the same thing for me, though I assume you quit for a reason that would probably hold true for DotA as well. I hate how harshly CS punishes acting rashly, it really encourages you to hold angles and play methodically/strategically and I feel like in DotA I'm afforded more leeway to gamble with flashy plays. That all being said they are both brilliant games. There's something particularly appealing about the round model in CS, buy vs save rounds and the way the game gives you an opportunity for a series of rematches where you can learn from the way your opponents played the last round to try and get a better outcome is just a really compelling gameplay loop, even if I don't love it personally. (rather be playing q3dm17)
digestives
Ah, memories flood back of LAN or dial-up sessions with friends on custom maps like de_747 [1]
1: https://gamebanana.com/mods/82979 I still contend it is one of the most atmospheric custom maps ever made - how else do you get to role play as Gary Oldman or Harrison Ford!
pea
I have great memories playing kz_ maps for hours in 2005. The amount of skill of some people was mind blowing. Something nostalgic about the feeling of being alone in a kz map at 3am and then hearing someone else hopping around.
sintezcs
I also haven’t touched CS 1.6 for 15-16 years, it will be cool to try it. Is it possible to run it on Mac M1 or I need a VM? Also, can you recommend any resources where I can read how to setup and configure bots? TY!
dewey
Back in the days on lan parties there was what we called "the russian version" that only had question marks in the installation dialog (Because of unsupported fonts most likely) which had Z-Bot included.
That's probably this one: https://archive.org/details/cs-1_6_z-bot
selectodude
Isn’t ported to ARM64. Runs really well in Whisky though.
Lammy
I've been using this to play TF2 Classic on my M3 MBP and it works perfectly. I had some freezing-while-sound-skips-endlessly issues when using the voice chat hotkey, but that was resolved using WineTricks (built in to Whisky UI) to install `dsound`.
Now's a great time to start playing — The TF2C 2.2 “Double Down Update” comes out today!! https://tf2classic.com/double_down/
e: And I also had to disable macOS's default keyboard layout switching shortcuts (which I never use anyway) since I kept triggering it while crouch-jumping lol
Edd314159
Isn’t this technically the original _Steam_ UI, not just Counter Strike?
rtehfm
True, but the original Steam was created for managing updates to Counter Strike and their anti-cheap system (VAC if memory serves me right). Also back when having a low WON ID (now SteamID) was a badge of honor (like having a low Slashdot account ID).
WorldMaker
Yeah, still feels like even today Steam could pop up something in this style somewhere when you press a less common button or cause a less common error. Kind of like how Windows would occasionally have even Windows 3.x style dialogs up until last year in Windows 11, and still has a few stragglers from Windows 9x era.
bakugo
Yes, the Steam client was originally built on top of the same VGUI library used in Valve's games, and used the same style as HL1/CS/etc back then.
Lammy
More reading about VGUI: https://developer.valvesoftware.com/wiki/Category:VGUI
Fun fact: in CS 1.6 it could actually be reverted to the old-style WON UI by with `setinfo "_vgui_menus" "0"` in config.cfg or in the console, or buried in the menus as "Options > Multiplayer > Advanced > Buy menu type > VGUI Menus".
myheartisinohio
Everyone runs faster with a knife.
pknerd
Awesome
Though I am not a gamer I have seen my son playing different games, I loved it not because it belonged to a certain game but because it is clean and different.
Are there any other unique CSS libs that could be used on pages?
graypegg
https://github.com/matt-auckland/retro-css Some fun ones on here!
chrisweekly
awesome, thanks for the link!
dvh
Why you didn't use progress or meter for progress bar?
dylan604
why make everything need a class rather than just styling the DOM elements directly. Why wrap a checkbox into a div rather than just a <form>?
why did you skin the cat that way when there's 98 other ways to do it?
maybe there's a logical reason more than "that's just what came to mind", maybe not. that's the beauty of the whole thing. there is no one way
marcellus23
I'm not sure that argument holds here, not every solution in programming is equally good just because. A <progress> element has the advantage of semantically actually representing a progress bar, which improves accessibility and who knows what other browser behavior and heuristics. In general you should try to use semantically correct HTML tags unless you have a really good reason not to. Maybe in this case he couldn't get the appearance he wanted using <progress>, which would be an acceptable reason.
Obviously this is nitpicking and this UI was made for fun rather than being a serious library intended for production. But that's a different criticism of the GP than the one you made.
Bjartr
Not every question is a criticism that needs to be defended against. The person you're responding to could very well just like to know the reason if one exists, no more, no less.
If you know a better way to get that info than asking the question, I'm all ears.
(major digression ahead)
This is actually something I've been digging into for a while, trying to improve my own communication. My own current best answer for this sort of situation is the social expectation is that a neutral question will always be accompanied by praise and gratitude, and any question asked that lacks that accompaniment will be interpreted as antagonistic.
For example, the comment you're responding too could have started with "This looks really cool, ..." or "Wow, this takes me back..." or "I can see a lot of effort went into this..." and it would have resulted in the question coming off as neutral instead of critical to some people.
What's fascinating is when I mention this kind of thing I almost always get one of two responses
* Of course that's how it works, everyone knows that!
* That's ridiculous, no one can be expected to do that!
richardlblair
I think I'm more cynical. Almost everything stated on the internet will be perceived as antagonistic. At least by some. It's more a representation of the reader's internal state rather than an issue with the question / statement. Unless, of course, the question / statement is overtly antagonistic.
sgc
Precisely why it is perfectly fine and good to be inquisitive, and ask why people do things the way they do. It's the point of a show and tell.
fnikacevic
Just looking at this makes me feel like a noob.
I tried installing CS 1.6 20 years after launch roughly and it was pointless trying to compete.
pelagicAustral
That's because the servers that are left are filled with die-hard players that know the maps, and every little quirk about the gameplay to the pixel level... There still a lot of fun in there, some mini games, more esoteric modes, deathmatch... The other characteristic of many server is that they are modded to the gills, and in some cases the work that has been done on the game over the years ends up giving some very pleasant surprises...
I logged in about 120 hours in 2024 after not playing for 12 years, and everything was different and the same. You got a lot of 30-something's playing after office hours, keeping the servers alive, and like I said, some servers are at a completely different level, I had so much laughs and met quite a few new people...
I recommend to look a bit more and I'm sure you'll find a few servers to stick around to, even if you get headshotted by an AWP from across the map on each round.
wiseowise
90s, early 2000s were peak times for UI.
Sohcahtoa82
It was a time when tech companies were trying to make computers a common household item, so they did tons of user testing and we made great strides in UX as discoverability became king.
Then, starting about 10 years ago, they started throwing all that research out the window in favor of minimal, clean, flat, "sleek" UIs because the screenshots are easier to market.
They started appealing to the lowest common denominator. We've lost choice and customizability in favor of allowing Apple and Microsoft to decide what our desktops should look like because some people might be confused if they open up an options panel.
I hate nearly every single thing about the MacOS UX. The dock is awful, and so many insane defaults all over the place. Hiding scrollbars is a bug, not a feature. Pointer acceleration is a bug, not a feature. The scroll wheel operating in reverse is a bug, not a feature.
At least with Windows, I can make it tolerable with third party software to make my task bar and Start menu look and feel like the Win2K days. My biggest complaint about the modern UX is coalescing multiple windows from one program into a single item and not having text. If I have 3 Firefox windows open, that should be 3 items on my task bar. It makes it so I can switch to any of them in a single click. It also means that I can use a window as a widget to monitor something by having the status as the title of the window.
tanepiper
When I was playing with WebSerial, I ended up using XP.css because it reminded me of configuring with old serial modems - I think the aesthetic works quite well.
https://web-serial-app.netlify.app/
(Source: https://github.com/tanepiper/web-serial-controller)
IYasha
Can't agree more!
But, to be fair, I still use win7 in native (unthemed) UI mode and haven't played many modern games to have a proper comparison :D
phatfish
This is the Steam UI (server browser and config), rather that CS 1.6 specifically i think? I'm having a hard time remembering what it looked like before Steam integration though.
least
CS 1.6 was exclusive to Steam; I remember waiting quite a while to register because I didn't like the idea of Steam but ultimately caved (still have a 6 digit steam id, which used to sort of but not really mean something). The server browser in CS 1.5 and below was built into the menu's on the application.
This is indeed the Steam UI, not Counter-Strike. This was also back when they had games like Go built in that you could play with people on your friends list.
IYasha
Good job! But it reminds me of the dreaded VGUI.dll. (0_0) For those who wrote code for the GS engine it's probaby one of the worst experiences.
GranPC
It didn't get much better in Source either, much to my dismay.
IYasha
They also added, like, 80MB DLL (AFAIR, chromium) just to render HTML MOTD at some point.
I personally had to rewrite most of mod's VGUI code to make it less leaky and more usable, and not once have I thought of using CSS instead of those INI-style theme configs. But CSS is too complicated to parse (and no one will use that anyway). :(
GranPC
Originally it used Windows's built-in embeddable IE thing, which as you can imagine was not stellar for security. IIRC there have been some incidents with bad servers serving up MOTDs that exploited vulnerabilities in Trident to execute arbitrary code.
I believe they switched to Chromium while preparing for the OS X port. You'd think this would be good for security, but they then proceeded to update to the latest version approximately once a decade.
I've been eagerly awaiting the opportunity to expand my collection!
https://alexbsoft.github.io/win95.css/ windows 95
https://botoxparty.github.io/XP.css/ windows xp
https://cs16.samke.me/ counter strike 1.6
https://edwardtufte.github.io/tufte-css/ edward tufte
https://jdan.github.io/98.css/ windows 98
https://khang-nd.github.io/7.css/ windows 7
https://micah5.github.io/PSone.css/ playstation one
https://nostalgic-css.github.io/NES.css/ nes
https://sakofchit.github.io/system.css/ apple system
https://thesimscss.inbn.dev/ the sims