lattice/README.md
2026-07-10 01:43:19 -04:00

43 lines
1.6 KiB
Markdown

# Lattice
Unified UI framework for Minecraft clients on Fabric (Minecraft 26.1.2).
Lattice supersedes **Knit** (client base library) and **Vexel** (NanoVG UI
library), merging both into one dependency with a single event bus, one input
abstraction, and one screen stack.
## Features
- NanoVG vector renderer (rects, gradients, text, images, SVG, shadows)
- Constraint-based layout with scrollable containers and a full widget set
- Semantic theming (`Theme`) — retheme every widget in one place
- Time-based animations with easing and presets
- Single event bus with client lifecycle, tick, and render events
- `UIScreen` bridging vanilla screens, plus direct-draw HUD hooks
- Commodore command DSL over Brigadier, fluent `Component` text builder
- Tick and wall-clock schedulers, client/input utilities
## Documentation
Full docs live in [`docs/`](docs/README.md) — start with
[getting started](docs/getting-started.md), or the
[Knit/Vexel migration guide](docs/migration.md). Design rationale is in
[docs/architecture.md](docs/architecture.md).
A runnable demo mod lives in [`example/`](example/README.md): `/lattice`
opens a screen showing every widget; `/lattice hud`, `/lattice chat`, and
`/lattice greet` demo the render, text, and command APIs.
## Building
With Nix: `nix-shell --run './gradlew build'` (requires JDK 25 otherwise).
Publish to your local Maven repository with `./gradlew publish`
(artifact `xyz.meowing:lattice-26.1.2-fabric`).
Runtime NanoVG natives ship for linux, linux-arm64, windows, macos, and
macos-arm64.
## License
GPL-3.0-or-later. Portions of the rendering layer derive from OdinFabric
(BSD-3-Clause); see NOTICE.md.
# lattice