1 điểm bởi GN⁺ 2025-01-25 | 1 bình luận | Chia sẻ qua WhatsApp
  • cs16.css là một thư viện CSS mang cảm giác UI trong game Counter Strike 1.6 vào các component HTML, cho phép tạo nhanh phong cách retro chỉ bằng cách gắn class
  • Cách cài đặt là thêm liên kết stylesheet cs16.min.css từ CDN jsDelivr vào phần head của HTML
  • Bao gồm nhiều ví dụ UI cơ bản, từ nút, ô nhập, select, nhóm radio, slider, dialog, tooltip, thanh tiến trình cho đến tab
  • Dialog dùng HTML <dialog>showModal(), còn tab hoạt động bằng cấu trúc radio input cùng label/panel
  • Dự án được phát hành theo MIT License, có liên kết tới repository GitHub và trang của tác giả Samuel

Thư viện CSS phong cách Counter Strike 1.6

  • cs16.css là thư viện CSS dựa trên UI của Counter Strike 1.6
  • Trang dự án cung cấp liên kết tới repository GitHub và các liên kết liên quan đến tác giả
  • Để cài đặt, chỉ cần thêm stylesheet từ CDN jsDelivr vào thẻ head của HTML
<link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/ekmas/…;

Các UI component được cung cấp

  • Nút và các phần tử form cơ bản

    • Áp dụng kiểu nút bằng class cs-btn, đồng thời có cả ví dụ về trạng thái disabled
    • Có thể tạo kiểu đường phân cách bằng class cs-hr
    • Checkbox dùng cấu trúc cs-checkbox, cs-checkbox__label
    • Ô nhập dùng các class cs-input, cs-input__label, với ví dụ cho giá trị nhập thông thường và ô nhập disabled
    • Select dùng các class cs-select, cs-select__label; ví dụ gồm các tùy chọn Volvo, Saab, Opel, Audi
  • UI lựa chọn và điều chỉnh giá trị

    • Nhóm radio được tạo bằng cách đặt radio input và label bên trong cs-fieldset
    • Ví dụ radio dùng các lựa chọn Elephant, Monkey, Cheetah, Giraffe
    • Slider được cấu thành bằng cách đặt input range bên trong cấu trúc cs-slider
    • Ví dụ slider gồm các giá trị Dark/Light và nhãn Brightness
  • Dialog, tooltip, thanh tiến trình

    • Dialog dùng HTML <dialog> được áp dụng class cs-dialog
    • Có ví dụ mở dialog khi nhấn nút bằng document.querySelector('.cs-dialog').showModal();
    • Các nút ở cuối dialog gồm OK, Cancel, Apply
    • Tooltip dùng cs-tooltipspan.text bên trong, với ví dụ các vị trí Right, Left, Top, Bottom
    • Thanh tiến trình đặt phần tử bars bên trong cs-progress-bar và biểu thị trạng thái tiến trình bằng width: 50%
  • Cấu trúc tab

    • Tab có cấu trúc đặt radio input, label và panel bên trong cs-tabs
    • Bao gồm ví dụ Tab One, Tab Two, Tab Three cùng nội dung của từng tab

Giấy phép và tác giả

  • Thư viện được phát hành theo MIT License
  • Tác giả được ghi là Samuel

1 bình luận

 
GN⁺ 2025-01-25
Ý kiến trên Hacker News
  • Tôi đã chờ cơ hội để mở rộng bộ sưu tập này thêm nữa
    Có các theme CSS retro như sau: 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

  • Gần đây khi nhìn con trai chơi Half-Life 2, tôi nhận ra rằng khi menu và những thứ tương tự có phong cách này và trông giống UI của hệ thống máy tính thật, cảm giác sẽ thực tế và nhập vai hơn rất nhiều
    Dù có thể trông cũ kỹ, nó mang lại cảm giác công nghiệp và chân thực, đồng thời cũng dễ dùng. Ngược lại, nhiều game ngày nay có menu được cách điệu quá mức, kiểu chữ trang trí hoa mỹ, nên trở nên phi thực tế, trải nghiệm kém và ngay cả việc thao tác cũng thành ra nặng nhọc

    • Nếu xu hướng UI hiện nay là làm mọi thứ phẳng đi và giấu chức năng, từ đó phá hỏng khả năng khám phá vốn là cốt lõi của trải nghiệm người dùng, thì tôi xem “cũ” không phải là khuyết điểm mà là tính năng
    • Tôi thậm chí còn không muốn bắt đầu nói về UI menu của game hiện đại
      Khoảng một năm trước tôi mua bản CoD mới nhất trên PS5, nhưng hoàn toàn không hiểu trong menu đang xảy ra cái gì. Cấu trúc lộn xộn không thể điều hướng khiến tôi phát điên, và cũng có lúc tôi nghĩ chắc là mình già rồi
    • Tùy phong cách hay tông của game mà menu được cách điệu quá mức đôi khi vẫn có thể rất hợp
      Vấn đề thật sự là UI trong nhiều game hiện nay hoàn toàn phẳng, chung chung, không màu sắc, không có chút phong cách hay bản sắc nào. Ví dụ như Nintendo làm kiểu này khá nhiều
    • Hệ thống menu của Crysis 2 hay 3 gì đó khá hay. Nó thật sự cho cảm giác đang ở bên trong nanosuit
    • UI cũ có affordance tốt. Nhìn vào là biết phần tử UI có thể tương tác hay không, còn UI “hiện đại” thì ở mặt này khá tệ
  • Quá tuyệt. Năm ngoái tôi cài lại CS 1.6 sau gần 15 năm, và dạo này hầu như ngày nào cũng chơi 10~15 phút với bot để thư giãn đầu óc
    Để vui hơn, tôi còn tự tạo cả đội bot và làm hẳn một giải đấu đầy đủ để đấu với các đội chuyên nghiệp khoảng giai đoạn 2008. Tôi cũng tìm lại được mấy map mình từng làm từ một ổ cứng cực kỳ cũ, không ngờ gần 40 tuổi rồi mà vẫn còn chơi nó, và thấy biết ơn phiên bản quá khứ của chính mình

    • CS lúc nào cũng rất hợp để xả đầu óc. Các trận rank 5v5 thì áp lực cao, căng và kéo dài khoảng 30~45 phút, đồng thời cũng đáp ứng đúng mức giao tiếp xã hội cần có. Từ khi bỏ vài năm trước đến giờ tôi vẫn chưa tìm được thứ gì thay thế được
    • Tôi có rất nhiều ký ức đẹp về việc chơi map kz_ hàng giờ vào năm 2005. Trình độ của một số người thật sự đáng kinh ngạc. Tôi khá nhớ cái cảm giác kỳ lạ khi ở một mình trên map kz lúc 3 giờ sáng rồi nghe thấy tiếng ai đó đang chạy nhảy đâu đó
    • Bao nhiêu ký ức về việc chơi các map tùy biến như de_747 với bạn bè qua LAN hay quay số lại ùa về: https://gamebanana.com/mods/82979
      Đến giờ tôi vẫn thấy đây là một trong những custom map có bầu không khí hay nhất mọi thời đại. Còn map nào khác mà bạn có thể nhập vai Gary Oldman hay Harrison Ford nữa chứ
    • Tôi cũng đã không đụng tới CS 1.6 suốt 15~16 năm, nên chơi lại có vẻ sẽ vui đấy. Tôi tò mò không biết có chạy được trên Mac M1 không, hay là sẽ cần máy ảo. Tôi cũng muốn được gợi ý tài liệu đáng đọc về cách thiết lập và cấu hình bot
  • Về mặt kỹ thuật thì đây không hẳn là UI riêng của Counter-Strike, mà vốn là Steam UI đúng không?

    • Đúng vậy. Tuy nhiên ban đầu Steam được tạo ra để quản lý cập nhật Counter-Strike và hệ thống chống gian lận, nếu nhớ không nhầm thì là VAC
      Đó cũng là thời mà WON ID, tức SteamID ngày nay nếu có số nhỏ thì được xem như một loại huân chương. Kiểu giống ID tài khoản Slashdot thấp vậy
    • Đúng rồi. Steam client ban đầu cũng được xây dựng trên chính thư viện VGUI mà các game Valve dùng, và khi đó nó dùng cùng phong cách với HL1/CS v.v.
    • Nó được thêm vào Half-Life khoảng tháng 3 năm 2000, rồi không lâu sau cũng vào Counter-Strike. Tôi không chắc Steam ra mắt lần đầu chính xác khi nào, nhưng hình như đã có beta từ năm 2002
    • Đến bây giờ trên Steam, nếu bấm vào một nút hiếm gặp hoặc gây ra một lỗi hiếm, tôi vẫn có cảm giác như ở đâu đó một cửa sổ theo phong cách này sẽ bật ra
      Nó giống như trên Windows 11 đến tận năm ngoái đôi khi vẫn hiện ra hộp thoại kiểu Windows 3.x, và vẫn còn sót lại đôi chút tàn dư từ thời Windows 9x
  • https://alpynedreams.github.io/vgui.css/demo_greensteam

    • Cái này cũng đang dùng element cho thanh tiến trình
  • Đọc thêm về VGUI: https://developer.valvesoftware.com/wiki/Category:VGUI
    Một sự thật thú vị là trong CS 1.6, bạn có thể thêm setinfo "_vgui_menus" "0" vào config.cfg hoặc console, hoặc vào menu “Options > Multiplayer > Advanced > Buy menu type > VGUI Menus” để quay lại WON UI

    • Đúng vậy. Menu dạng văn bản là thứ Half-Life đã dùng khi phát hành năm 1998
      Counter-Strike cũng dùng cùng kiểu menu văn bản đó vào năm 1999, và phải đến năm 2000 engine mới được cập nhật để bao gồm VGUI. Có lẽ Counter-Strike đã giữ lại menu cũ cho những người thích kiểu đó
  • Tôi nghĩ đây không hẳn là bản thân CS 1.6, mà là Steam UI, tức phần UI của trình duyệt server và cài đặt
    Dù vậy tôi không nhớ rõ trước khi tích hợp Steam thì nó trông như thế nào

    • CS 1.6 là bản chỉ dành cho Steam. Tôi nhớ mình đã trì hoãn đăng ký khá lâu vì không thích khái niệm Steam, rồi cuối cùng vẫn phải chấp nhận
      Tôi vẫn còn Steam ID 6 chữ số, hồi đó trông có vẻ như mang ý nghĩa gì đó nhưng thật ra cũng chẳng có ý nghĩa mấy. Trình duyệt server của CS 1.5 trở xuống được nhúng trong menu ứng dụng, và đây không phải Counter-Strike UI mà thật sự là Steam UI. Hồi đó Steam còn có cả những game như Go được tích hợp để chơi với người trong danh sách bạn bè
    • Đây là VGUI2 được làm cho Source engine, sau đó được tái sử dụng trong Steam rồi được backport sang GoldSource engine khi các game phát hành trên Steam
    • Hồi đó Steam gần như là trình khởi chạy CS 1.6
  • Cầm dao lên là ai cũng chạy nhanh hơn

    • Khá buồn cười là trong các game hiện đại như Call of Duty: Black Ops 6 điều đó vẫn đúng. Không chỉ dao mà vũ khí cận chiến nói chung đều vậy
    • Tim đập thình thịch! Tay run lên!
  • Ngầu thật. Dù không phải game thủ, tôi vẫn từng thấy con trai mình chơi nhiều game, và điều tôi thích ở UI này là nó không chỉ gắn với một trò chơi cụ thể mà còn gọn gàng và khác biệt
    Tôi cũng tò mò không biết còn có thư viện CSS độc đáo nào khác có thể dùng cho trang web không

  • Thập niên 90 và đầu những năm 2000 là thời kỳ hoàng kim của UI

    • Đó là thời kỳ các công ty công nghệ cố biến máy tính thành một món đồ gia dụng phổ biến, nên họ thực hiện rất nhiều kiểm thử người dùng, và khi khả năng khám phá tính năng trở nên quan trọng, trải nghiệm người dùng cũng tiến bộ vượt bậc
      Nhưng khoảng 10 năm trở lại đây, họ bắt đầu vứt bỏ toàn bộ nghiên cứu đó để ưu tiên những UI tối giản, sạch sẽ, phẳng và “sành điệu”, chỉ vì ảnh chụp màn hình dùng cho marketing trông dễ hiểu hơn. Quyền lựa chọn và khả năng tùy biến biến mất, và Apple cùng Microsoft lại là bên quyết định desktop nên trông như thế nào chỉ vì ai đó có thể bị rối khi mở bảng tùy chọn. Tôi ghét gần như mọi khía cạnh trong trải nghiệm macOS, Dock thì tệ khủng khiếp, và có quá nhiều giá trị mặc định kỳ quặc. Ẩn thanh cuộn, tăng tốc con trỏ, đảo chiều bánh xe cuộn không phải là tính năng mà là lỗi. Windows ít nhất vẫn có thể dùng phần mềm bên thứ ba để làm thanh tác vụ và menu Start trông và hoạt động như thời Win2K. Điều khiến tôi khó chịu nhất trong UX hiện đại là việc gộp nhiều cửa sổ của cùng một chương trình thành một và bỏ luôn phần chữ. Nếu mở 3 cửa sổ Firefox thì thanh tác vụ cũng phải có 3 mục, để tôi có thể nhấp một lần là đến đúng cửa sổ mình muốn. Như vậy cũng có thể dùng tiêu đề cửa sổ để hiển thị trạng thái, kiểu như một widget để theo dõi thứ gì đó
    • Khi nghịch WebSerial, tôi đã dùng XP.css, và thấy nó khá hợp về mặt thẩm mỹ vì gợi nhớ đến các phần cài đặt modem nối tiếp ngày xưa
      https://web-serial-app.netlify.app/
      Mã nguồn: https://github.com/tanepiper/web-serial-controller
    • Hoàn toàn đồng ý
      Nhưng nói công bằng thì tôi vẫn đang dùng Windows 7 ở chế độ UI mặc định không theme, và cũng chưa chơi nhiều game hiện đại nên khó mà so sánh cho chuẩn được