TENDUI / DOCUMENTATION

Start with HTML. Add your stack.

Use TendUI with two static files and no build tools.

Two files. Any HTML stack.

TendUI's stylesheet works with static HTML, server templates and existing applications. Go and templ are optional. No Node.js, npm, JavaScript or CSS compilation is needed.

1. Download the files

Download index.html and download tendui.css. Save both in the same folder, then open index.html in your browser.

These downloads use the website's pinned v2026.2.0-preview.2 library. For a permanent version reference, use the tagged source. Retain the library's MIT copyright and permission notice when redistributing it.

Open the live plain-HTML example →

2. Use semantic HTML

<!doctype html>
<html lang="en" data-theme="light">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="color-scheme" content="light dark">
  <title>TendUI with plain HTML</title>
  <link rel="stylesheet" href="./tendui.css">
</head>
<body>
  <main>
    <h1>Hello, semantic HTML.</h1>
    <p>No Go runtime, templ generator, Node.js, or JavaScript is needed for this page.</p>
    <article>
      <header><h2>A card is an article</h2></header>
      <p>The stylesheet gives ordinary HTML a consistent appearance.</p>
      <label for="name">Try a text field</label>
      <input id="name" name="name" placeholder="Your name" autocomplete="name">
      <details>
        <summary>Does this work without JavaScript?</summary>
        <p>Yes. The browser opens this disclosure using native HTML.</p>
      </details>
      <footer><a href="https://tendui.com/docs">Explore the documentation</a></footer>
    </article>
  </main>
</body>
</html>

3. Make it yours

Change data-theme="light" to dark, or omit it to follow the system preference. Serve the two files with any static web host, or copy the stylesheet into your existing application's assets.

The text field and disclosure use native browser behavior. Your application supplies form handlers, authentication and persistence. Optional HTMX requires a runtime that you supply.

For typed components and CSS embedded into a single Go binary, follow the Go and templ quickstart.