DWS Design brings terminal aesthetics to the web. HTML, CSS, and minimal JS. No frameworks. No tracking.
Inspired by: SCRL, Base 16, Bloomberg Terminal, Plan 9, IRIX, DEC VT100, OPEN LOOK, Motif, Classic Mac OS.
Part of the DWS project. It's your internet. Take it back.
Tastes good with HTMX.
Sites using DWS Design
Eight base colors (--base00 to --base07) with derived accent levels (l-1 to l-8, d-1 to d-8). All colors use OKLCH for perceptually uniform lightness and chroma.
Headings h1 through h6 with monospace font and consistent spacing. Paragraphs default to 1.6 line height. Use semantic HTML tags.
Underlined text with accent background. Darkens on hover.
Unordered and ordered lists with consistent indentation. Definition lists for term-description pairs.
Buttons are used for primary actions and navigation. They can be used individually or in groups. Utility classes can be used to indicate status or priority.
Form inputs, textareas, selects, checkboxes, and radio buttons. Labels use uppercase styling.
Horizontal container for navigation elements. Supports buttons, badges, and text. Use .nav-bar-footer for bottom placement.
Groups related elements with a titled border. Use .fieldset-emphasis for double borders and bold legends.
<fieldset>
<legend>Fieldset Example</legend>
<p>Content inside a fieldset.</p>
</fieldset>
<fieldset class="fieldset-emphasis">
<legend>Emphasized Fieldset</legend>
<p>Content inside an emphasized fieldset.</p>
</fieldset>
Collapsible content container using the native <details> element. Click the summary to expand. Wrap content in .details-content for proper spacing.
The body of the details.
Tab interface using fieldset legends as tabs. Click legends to switch panels.
CPU: 45% load
Memory: 8.2 GB used
Uptime: 14 days
eth0: 192.168.1.100
eth1: 10.0.0.50
Throughput: 850 Mbps
Array 0: 2.4 TB / 4 TB
Array 1: 1.8 TB / 2 TB
Health: Optimal
<div class="tabs">
<fieldset class="tab-panel active" id="tab1">
<legend class="tab-legend active" data-tab="tab1">Tab 1</legend>
<div class="tab-body">Content...</div>
</fieldset>
<fieldset class="tab-panel" id="tab2">
<legend class="tab-legend" data-tab="tab2">Tab 2</legend>
<div class="tab-body">Content...</div>
</fieldset>
</div>
Separates content sections. Use .divider-label for labeled dividers, .divider-single or .divider-double for lines.
In 1948, Claude Shannon published 'A Mathematical Theory of Communication'. This work founded the field of Information Theory.
When deciding what to call his measure of 'uncertainty' in a message, Shannon consulted John von Neumann. Von Neumann suggested the term Entropy.
Von Neumann's reasoning was tactical: 'You should call it entropy, for two reasons. In the first place your uncertainty function has been used in statistical mechanics under that name... In the second place, and more important, no one knows what entropy really is, so in a debate you will always have the advantage.'
<div class="divider-label">Label</div> <hr class="divider-single"> <hr class="divider-double">
High-density table for system monitors and data views. Max width 64ch. Sticky headers, cell-fill backgrounds for visual data density.
| Node ID | CPU (%) | MEM (GiB) | Disk (%) | Status |
|---|---|---|---|---|
| srv-01 | 12.4 | 32.1 | 45 | ONLINE |
| srv-02 | 88.2 | 61.8 | 92 | HIGH LOAD |
| srv-03 | 0.0 | 0.0 | 0 | OFFLINE |
| srv-04 | 45.1 | 28.4 | 12 | ONLINE |
| srv-05 | 22.7 | 16.2 | 34 | STANDBY |
| Node ID | CPU (%) | MEM (GiB) | Network (Mb/s) | Health |
|---|
Standard table with uppercase headers and row hover states.
| Operating System | Origin | Status | Details |
|---|---|---|---|
| AIX | System V | Active | High-end enterprise systems. |
| FreeBSD | BSD | Active | Known for its robust network stack. |
| Solaris | BSD/SysV | Legacy | Origin of ZFS and DTrace. |
| Research Unix | Bell Labs | Historical | Foundational OS for C. |
| HP-UX | System V | End-of-Life | PA-RISC and Itanium platforms. |
Pre-formatted code display with dark accent background. Horizontal scroll on overflow. Max-width: 64ch.
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
static int __init dws_init(void) {
printk(KERN_INFO "DWS: Module loaded into kernel space\n");
return 0;
}
static void __exit dws_exit(void) {
printk(KERN_INFO "DWS: Module removed from kernel space\n");
}
module_init(dws_init);
module_exit(dws_exit);
MODULE_LICENSE("GPL");
MODULE_AUTHOR("DWS LLC");
MODULE_DESCRIPTION("A minimal DWS kernel component example.");
Status indicators using outline and background colors. Use .ok, .warning, .error, .neutral for states. No shadows.
High-contrast status banners for system feedback. Use .error or .warning with 4px hard shadow.
<div class="alert-banner error">
<strong>ERROR:</strong> Message here.
</div>
<div class="alert-banner warning">
<strong>WARNING:</strong> Message here.
</div>
Vertical list of interactive items. Add .has-icon for single-letter icons. Best used in menus and dropdowns.
<ul class="action-list">
<!-- High importance item with icon -->
<li class="action-list-item has-icon">
<span class="icon">T</span>
<span class="label">TLB Flush</span>
</li>
<!-- Standard item without icon -->
<li class="action-list-item">
<span class="label">Standard Action</span>
</li>
</ul>
Context menu triggered by buttons. Supports nested submenus with .dropdown-trigger.
<div class="dropdown">
<button class="button">Trigger</button>
<div class="dropdown-menu">
<ul class="action-list">
<li class="action-list-item dropdown-trigger">
<span class="label">Nested Menu</span>
<div class="dropdown-menu">...</div>
</li>
</ul>
<div class="dropdown-footer">...</div>
</div>
</div>
Tooltip appearing on hover after 500ms delay. Set content with data-popover and data-popover-title attributes.
The SPARC (Scalable Processor Architecture) is a RISC instruction set architecture (ISA) originally developed by Sun Microsystems and introduced in 1986. It was designed to allow a high degree of performance and scalability across a wide range of computer systems, from workstations to large supercomputers.
<a href="#" data-popover="Popover content here." data-popover-title="Title"> Hover me </a>
Modal dialog using fieldset styling. Requires user interaction. Add .open class to .dialog-backdrop to show.
Are you sure you want to proceed with the system flush? This action cannot be undone.
This is the first dialog. It can trigger another modal on top of itself.
This dialog is stacked on top of the first one. Notice the increased backdrop dimming.
<div class="dialog-backdrop open">
<fieldset class="dialog fieldset-emphasis">
<legend>Dialog Title</legend>
<p>Content goes here.</p>
<div style="display: flex; justify-content: flex-end; gap: 1ch;">
<button class="button">Cancel</button>
<button class="button ok">Confirm</button>
</div>
</fieldset>
</div>
Classic 88x31 web buttons. CSS-based or image-based with hard drop shadow. Nav-bar variant scales to 2.2ch height.
<div class="banner-88x31">LINUX</div> <div class="banner-88x31 ok">UNIX</div>