Skip to content
šŸ’¾ A collection of classic-style UI components for iOS
Branch: master
Clone or download
Latest commit 50013bf Jun 2, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
Browser Added proper BSOD font Jun 1, 2018
Components occured -> occurred Jun 2, 2018
Images Trimmed logo May 15, 2018
.gitignore Cleaned up CKContentWrapperView and removed xcuserdatad Jun 1, 2018
.swift-version Cleaned up podspec and added license Jun 1, 2018
ClassicKit.podspec Fixed podspec Jun 1, 2018 Update May 17, 2018


A collection of classic-style UI components for UIKit, influenced by Windows 95

about portrait landscape


This is a little exploration into applying '90s-era design & principles into a modern platform with some primitive components. The assets and design metrics were (for the most part) taken from an actual installation of Windows 95. These are pixel-accurate renditions of the original design:


  • (3/17) Added a simple Blue Screen of Death! Simply shake the device vigorously.


  • The Browser example can be run out-of-the-box.
  • You should be able to include some or all of the files under /Components in your project.
  • Each component is intended to be used like their UIKit counterparts. For example, CKButton should respond to gesture events just as UIButton would.
  • These are @IBDesignable components! That means you can lay out your entire app with these components in Interface Builder and Xcode will render them for you: xcode

Notes & FAQ

  • This project is very much a work-in-progress. Although it was designed with modularity and robustness in mind, there are no guarantees on reliability.
  • Q: Why did you do this?
    • This project was born out of some wholesome sarcasm and Millennial jokes with Ben Galassi. Check out his work!
  • Q: If this project is made for Apple devices, why based it on Microsoft's design?
  • Q: Why isn't the UI rendering in my Storyboard?
    • Interface Builder is very finicky. Rendering typically fails because the underlying code has an error or a constraint cannot be satisfied. Even if you fix these issues, you may have to clear the cache and restart Xcode.
  • Q: Why do I need YYImage?
    • You don't. YYImage is used in CKImageView to animate the throbber animation in the Browser example, but you can remove the reference in CKImageView.swift. Eventually this dependency will be removed.
  • Please let me know if you have any questions or comments! I'd also love to chat about design or tech nostalgia šŸ™‚


I do not claim ownership of the assets or logos used in this project. Windows and Internet Explorer are registered trademarks of Microsoft Inc.



You canā€™t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.