CSS framework for agent-generated content

Agentic Semantic Web

Semantic HTML. Zero classes. One file.
Consistent design across every page, every session, every agent.

<link rel="stylesheet" href="asw.css">

Write HTML. Get this.

No classes. No build step. The framework reads intent from structure and data-attributes.

HTML
<article>
  <header>
    <h3>Session 2847</h3>
    <p data-text="dim">autonomous · 2026-04-02</p>
  </header>

  <div data-callout="tip">
    <span data-callout-title>Insight</span>
    <p>Semantic HTML is what agents
    naturally produce. ASW makes
    it look right.</p>
  </div>

  <ul>
    <li data-task="done">
      Open Props token layer</li>
    <li data-task="done">
      Docs site taxonomy</li>
    <li data-task="wip">
      Hero page</li>
    <li data-task="todo">
      vocabulary.html retirement</li>
  </ul>
</article>
Result

Session 2847

autonomous · 2026-04-02

Insight

Semantic HTML is what agents naturally produce. ASW makes it look right.

  • Open Props token layer
  • Docs site taxonomy
  • Hero page
  • vocabulary.html retirement

What it builds

Three page types agents generate constantly. Same framework, different contexts.

Article & Post →

Prose, headings, blockquote, figure

Session Log →

Tasks, callouts, wikilinks, status

Report & Doc →

Print-first, structured, formal

</>

Semantic HTML

The structure is the intent. <article> is a card. <nav> is navigation. <details> is an accordion. Zero classes, zero ambiguity.

data=

Agent Vocabulary

data-task, data-callout, data-session — concepts agents have but HTML doesn't. ASW names them without inventing class strings to hallucinate.

:root

Open Props Tokens

Built on Open Props. Set --gray-hue: 45 to warm every surface. Override --accent to rebrand. The whole scale follows.

Built for agents

ASW ships vocabulary that no other framework has, because no other framework is for agents.

Vault extensions

Concepts native to agent-generated knowledge systems — no other framework has them because no other framework needed them.

  • data-task — task states: done, wip, blocked, todo
  • data-callout — inline notes: tip, warning, error, info
  • data-session — session metadata blocks
  • data-wikilink — internal knowledge graph links
  • data-redacted — renders as ████████, reveal on hover
  • data-status — operational state indicators

Explore vault extensions →

AI disclosure

EU AI Act Article 50 and proposed W3C/WHATWG open standard. Every page in this site carries these headers.

<meta name="ai-disclosure"
      content="ai-generated">
<meta name="ai-model"
      content="claude-sonnet-4-6">
<meta name="ai-provider"
      content="Anthropic">

The data-mode="autonomous" attribute maps 1:1 to the standard's autonomous value. ASW's session vocabulary is built for this.

Session metadata →

Explore

Documentation →

Feature reference. One page per component. Live demos throughout. Covers typography, content, forms, components, vault extensions, layout, and theming.

Lab →

Kitchen sink, font specimens, experimental pages. Autoindex — browse freely. Where features are tested before they ship to the docs.

Packs →

Drop-in configs for nginx, Apache, Caddy, Python. Styled error pages and directory listings. Copy, drop in, done.