Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .github/assets/dot-matrix-presets-dark.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/dot-matrix-presets-light.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/dot-matrix-shapes-dark.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .github/assets/dot-matrix-shapes-light.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,15 @@

Open-source UI components for agent products — the surfaces an agent app actually lives on: loading states, streaming indicators, status.

<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/assets/dot-matrix-presets-dark.gif">
<img alt="Nine dot-matrix presets animating: spiral, snake, columnSnake, ripple, ring, diagonal, columns, breathe and morph" src=".github/assets/dot-matrix-presets-light.gif" width="704">
</picture>
</p>

<p align="center"><b><a href="https://ui.botharness.ai">Live playground →</a></b> · <a href="https://ui.botharness.ai/zh/">中文</a></p>

Install a component with `npx`, and the source lands in your repo. **No runtime dependency. Nothing to keep current. The code is yours** — read it, change it, delete the name.

```bash
Expand Down Expand Up @@ -40,6 +49,15 @@ A loading field built as five replaceable layers. The interesting questions —
| **Glyph** | how one dot is drawn — a polygon plus two corner radii, not a table of named shapes |
| **Renderer** | SVG (painted per frame) or CSS (`@keyframes`, zero JS per frame) |

Every layer is independent, so any lattice takes any glyph and any motion:

<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset=".github/assets/dot-matrix-shapes-dark.gif">
<img alt="Six lattices (square, circle, diamond, hex, ring, cross) each drawn with a different dot glyph and motion" src=".github/assets/dot-matrix-shapes-light.gif" width="704">
</picture>
</p>

```ts
import { createDotMatrix } from "./components/botui";

Expand Down
Loading