Theme

Layout
Font Family
Font Size

Line Height / Density
Letter Spacing

Border Radius
Section Style

Typography Scale

h1 / 2rem

Lorem ipsum dolor

h2 / 1.4rem

Consectetur adipiscing

h3 / 1.1rem

Sed do eiusmod tempor

h4 / 1rem

Ut labore et dolore magna

body / 1rem

The quick brown fox jumps over the lazy dog. Sphinx of black quartz, judge my vow.

small / .875rem

Pack my box with five dozen liquor jugs. How vexingly quick daft zebras jump!

mono const hello = "world";

Body Copy

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Unordered List

  • Adipiscing — sed do eiusmod tempor incididunt ut labore
  • Ut enim ad minim veniam, quis nostrud exercitation
  • Duis aute irure dolor in reprehenderit in voluptate
  • Excepteur sint occaecat cupidatat non proident

Ordered List

  1. Install the stylesheet via CDN or self-host
  2. Link it inside your <head> tag
  3. Apply the appropriate semantic classes
  4. Customize the CSS variables as needed

Keyboard Shortcuts

Press Ctrl + K to open the search, or Escape to dismiss it. Use ↑ ↓ to navigate results.


Blockquote

"The art of writing is the art of discovering what you believe." — Gustave Flaubert

Code & Highlights

Inline Code

Use the renderAssets() function with a slug argument to populate the asset grid. Pass null to skip grouping.

Block Highlight

<link rel="stylesheet" href="https://assets.kelpw.ing/style/ammonite.css">
With caption Load the stylesheet and optional theme initialiser before your first render.

Preformatted

/* Apply a preset theme */
ADoc.init('css');

const themes = ['ammonite', 'ocean', 'twilight', 'forest'];
themes.forEach(t => console.log(`Theme: ${t}`));

function greet(name) {
  return `Hello, ${name}!`;
}

Callouts

Tip

Use the custom theme builder to generate a unique palette from any accent and background colour combination.

Note

Stylesheets are served with Access-Control-Allow-Origin: * and can be fetched cross-origin from any domain.

Warning

Linking to the CDN directly means you'll receive updates automatically — pin to a versioned file if you need stability.

Danger

Do not use the !important override pattern inside shared component libraries — it breaks cascade inheritance.

Buttons

Badges & Tags

Badges

Brand Muted Success Warning Danger Info

Tags

css stylesheet dark-mode light-mode typography open-source kelpwing

Form Elements

Accepts any plain text value.

Stat Cards

14 Themes ↑ +5 new
822 CSS Lines per stylesheet
100% Open Source MIT licensed
∞ Custom Themes via color picker

Progress Bars

Typography coverage

Component coverage

Theme completeness

Accessibility (WCAG AA)

Avatars & Dividers

KW
JD
⚠
or continue with

Content below a labelled divider. Use dividers to separate logically distinct groups of controls or sections within the same panel.

Colour Palette

All colours are driven by CSS custom properties on :root. Swapping a theme re-defines these variables and every component updates automatically.

Table

Theme Accent Background Mode
Ammonite#76ff8d#3d4c37Dark
Ocean#7eb8ff#1e2d3dDark
Twilight#c084fc#2d1f3dDark
Ember#ff8c42#3d2a1eDark
Rose#ff7eb3#3d1f2dDark
Slate#94a3b8#1e2533Dark
Midnight#60a5fa#0a0e1aDark
Dawn#2d6a4f#f5f0e8Light
Paper#7c3aed#fafaf9Light
Forest#34d399#0d1f15Dark
Arctic#0ea5e9#f0f8ffLight
Copper#f59e0b#1c1407Dark
Void#e879f9#050507Dark
Sakura#e11d7a#fff5f9Light