• Jazz

    A CSS reset and a small UI library in one stylesheet.

    Jazz is somewhere between a CSS reset and a classless CSS project. It styles native HTML elements directly, so plain semantic markup looks decent with no extra work. A small set of opt-in class names covers the things HTML can't express on its own.

    It takes a lot of inspiration from Pico CSS: the idea that a stylesheet should improve the browser's defaults rather than replace them. Jazz adds a richer component set and a theming layer on top of that.

    Usage

    Link the stylesheet from the CDN:

    <link
      rel="stylesheet"
      href="https://esm.sh/gh/erikthalen/jazz@v0.1.0-beta.25/jazz.css"
    />
    
    <!-- Optional: theme -->
    <style>
      :root {
        --jazz-primary: light-dark(#111, #fefefe);
      }
    </style>

    Overview

    Jazz styles native HTML elements directly, no class names required.

    <fieldset role="group">
      <input type="text" placeholder="Input" /> <button>Button</button>
    </fieldset>

    UI, not layout

    Jazz handles the look of interactive elements (buttons, inputs, popovers) but deliberately stays out of the way of how you arrange them on the page. CSS flex and grid are fast to write, easy to read, and need no abstraction on top of them.

    <div
      style="
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
        gap: 1rem;
      "
    >
      <input type="text" placeholder="First name" />
      <input type="text" placeholder="Last name" />
      <input type="email" placeholder="Email" style="grid-column: 1/-1" />
      <button style="grid-column: 1/-1; justify-self: end">Submit</button>
    </div>

    Philosophy

    Jazz is also a personal testbed for modern CSS. New features like anchor positioning, @starting-style, the Popover API, and :has() are tried out here first. The aim is to see how far CSS alone can get before JavaScript is needed.

    Because of that, Jazz leans on newer browser features and isn't aimed at projects that need broad compatibility. It's more of a place to experiment than a production-ready toolkit.

    Search 5021 icons

    Type a name to find icons from the Tabler icon set.