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

Color Demo

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.

--base00
--base01
--base02
--base03
--base04
--base05
--base06
--base07
--bg
--fg
--accent-base
--accent-highlight
--accent-highlight-dark
--accent-l-1
--accent-l-2
--accent-l-4
--accent-l-8
--accent-d-1
--accent-d-2
--accent-d-4
Typography

Headings h1 through h6 with monospace font and consistent spacing. Paragraphs default to 1.6 line height. Use semantic HTML tags.

EXAMPLE

Heading 1

Heading 2

Heading 3

Body text with standard line height. The quick brown fox jumps over the lazy dog.

Bold text and italic text for emphasis.

Code
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<p>Body text</p>
<strong>Bold</strong> <em>Italic</em>
Links

Underlined text with accent background. Darkens on hover.

EXAMPLE

The Cray-1 was a supercomputer designed, manufactured and marketed by Cray Research. Announced in 1975, the first Cray-1 system was installed at Los Alamos National Laboratory in 1976. It became one of the best-known and most successful supercomputers in history, designed by a team led by Seymour Cray.

Lists

Unordered and ordered lists with consistent indentation. Definition lists for term-description pairs.

EXAMPLE

Unordered:

  • First item
  • Second item with nested:
    • Nested item A
    • Nested item B
  • Third item

Ordered:

  1. Step one
  2. Step two
  3. Step three

Definition list:

HTML
HyperText Markup Language
CSS
Cascading Style Sheets
Code
<ul>
    <li>Item with nested list:
        <ul>
            <li>Nested item</li>
        </ul>
    </li>
</ul>

<ol>
    <li>Step</li>
</ol>

<dl>
    <dt>Term</dt>
    <dd>Definition</dd>
</dl>
Buttons

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.

EXAMPLE
Button Group
Code
<button class="button">Default</button>
<button class="button ok">Success</button>

<div class="button-group">
    <button class="button">Left</button>
    <button class="button">Middle</button>
    <button class="button">Right</button>
</div>
Forms

Form inputs, textareas, selects, checkboxes, and radio buttons. Labels use uppercase styling.

EXAMPLE



Code
<input type="text" placeholder="...">

<textarea rows="3"></textarea>

<select>
    <option>Option</option>
</select>

<input type="checkbox"> Label

<input type="radio" name="group"> Label
Navigation Bar

Horizontal container for navigation elements. Supports buttons, badges, and text. Use .nav-bar-footer for bottom placement.

EXAMPLE
FOOTER EXAMPLE
Code
<nav class="nav-bar">
    <div class="button-group">
        <button class="button">Home</button>
        <button class="button">Settings</button>
    </div>
    <span class="badge ok">LIVE</span>
</nav>
Fieldsets

Groups related elements with a titled border. Use .fieldset-emphasis for double borders and bold legends.

EXAMPLE
Fieldset Example

Content inside a fieldset.

Emphasized Fieldset

This fieldset uses the emphasis variant with a double border and bold legend.

Code
<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>
Details

Collapsible content container using the native <details> element. Click the summary to expand. Wrap content in .details-content for proper spacing.

EXAMPLE
Details Example

The body of the details.

Tabs

Tab interface using fieldset legends as tabs. Click legends to switch panels.

EXAMPLE
SYSTEM STATUS

CPU: 45% load

Memory: 8.2 GB used

Uptime: 14 days

NETWORK INTERFACES

eth0: 192.168.1.100

eth1: 10.0.0.50

Throughput: 850 Mbps

STORAGE ARRAYS

Array 0: 2.4 TB / 4 TB

Array 1: 1.8 TB / 2 TB

Health: Optimal

Code
<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>
Dividers

Separates content sections. Use .divider-label for labeled dividers, .divider-single or .divider-double for lines.

EXAMPLE
Entropy

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.'

Code
<div class="divider-label">Label</div>

<hr class="divider-single">

<hr class="divider-double">
Data Table

High-density table for system monitors and data views. Max width 64ch. Sticky headers, cell-fill backgrounds for visual data density.

SERVER CLUSTER STATUS (STATIC)
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
LIVE NODE MONITOR (UPDATING)
Node ID CPU (%) MEM (GiB) Network (Mb/s) Health
Table

Standard table with uppercase headers and row hover states.

UNIX FAMILY TREE
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.
Code Blocks

Pre-formatted code display with dark accent background. Horizontal scroll on overflow. Max-width: 64ch.

LINUX KERNEL MODULE SNIPPET
#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.");
                    
Badges

Status indicators using outline and background colors. Use .ok, .warning, .error, .neutral for states. No shadows.

DISTRIBUTED NODE STATES
  • Primary Controller Sync
  • Worker Node 07 Latency High
  • Storage Array A I/O Error
  • Global Scheduler Idle
Alert Banners

High-contrast status banners for system feedback. Use .error or .warning with 4px hard shadow.

EXAMPLE
ERROR: System failure detected. Please check your connection.
WARNING: Your session will expire in 5 minutes.
Code
<div class="alert-banner error">
    <strong>ERROR:</strong> Message here.
</div>

<div class="alert-banner warning">
    <strong>WARNING:</strong> Message here.
</div>
Action List

Vertical list of interactive items. Add .has-icon for single-letter icons. Best used in menus and dropdowns.

EXAMPLE
  • T TLB Flush
  • Vector Pipeline Reset
  • C Cache Invalidation
  • Memory Barrier Synchronization
  • Inter-processor Interrupt
  • Scalar Unit Warmup
Code
<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>
Dropdown Menus

Context menu triggered by buttons. Supports nested submenus with .dropdown-trigger.

EXAMPLE
Code
<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>
Popovers

Tooltip appearing on hover after 500ms delay. Set content with data-popover and data-popover-title attributes.

EXAMPLE

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.

Code
<a href="#" 
   data-popover="Popover content here." 
   data-popover-title="Title">
   Hover me
</a>
Dialogs

Modal dialog using fieldset styling. Requires user interaction. Add .open class to .dialog-backdrop to show.

EXAMPLE
Confirm Action

Are you sure you want to proceed with the system flush? This action cannot be undone.

STACKED DIALOGS
First Level

This is the first dialog. It can trigger another modal on top of itself.

Second Level

This dialog is stacked on top of the first one. Notice the increased backdrop dimming.

Code
<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>
88x31 Banners

Classic 88x31 web buttons. CSS-based or image-based with hard drop shadow. Nav-bar variant scales to 2.2ch height.

COMPUTING GIANTS GALLERY
Code
<div class="banner-88x31">LINUX</div>
<div class="banner-88x31 ok">UNIX</div>