Design Principles for my Website OR: codifying and post-hoc rationalizing the choices Iβve made thus far
Iβm a tech guy, and as a general rule, tech guys donβt make great UIs. Nonetheless, I enjoy tinkering with websites and graphic design as a bit of a hobby. This site has become something of a playground for me to exercise my CSS skills, and Iβve decided itβs time to put in writing some of the ideas that have been in my head while I mess with it.
#A. Technical
- Do much with little: a standard text-only blog page should require <512KB of resources on first load.
- Chained resource loading should be avoided if possible on initial page load. Allow required resources to be downloaded in parallel.
- Avoid automatically loading resources which will not be used for this page if they are of substantial size.
- The page should gracefully degrade for older/simpler browsers. Specifically, the inline stylesheet should allow for a pleasant reading experience in even Firefox 3 and the structure should do the same for lynx.
- Avoid loading images where possible.
#B. Aesthetic
- Eschew corporate βflat designβ and reflexive minimalism.
- Borrow elements from different eras of computing history, including 1980s terminals and graphical desktop environments from 1993-2009.
- IBM AS/400
- *nixen
- MS-DOS and compatibles
- Windows 3, 95, 98, 2000, XP MCE, Longhorn, Vista
- OS/2 Warp
- Apple II series
- Mac OS System 7, 8, 9, Rhapsody, Jaguar, Panther, Tiger, Leopard
- Apple print advertisements
- KDE 3.5
- GNOME 2 from Ubuntu 8.04β10.10
- Winamp Skins π¦
- Mac OS Themes
- XP Themes
- Gradients are underrated.
- Not everything needs rounded corners.
- Depth adds interest and helps the user feel grounded, if it is coherent.
- Use relative colors, such that the page looks good with ANY selected primary color.
- This isnβt Neocities: keep styles coherent such that most of the site is obviously in the same design language.
- This isnβt Serious Business: a little bit of whimsy doesnβt hurt
#C. Usability & Accessibility
- Interactable elements should be obvious, and their function telegraphed by their appearance.
- Headings and body text should be readable with a sane size and line width. The font size should follow the userβs browser defaults.
- Images need alt tags.
- Semantic HTML elements are preferred to
<div>
and<span>
- Consider screen sizes from 350x350 to 4K at standard DPI.
- Contrast matters.
- Neither light mode nor dark mode receives preferential treatment.
written
updated