mirror of
https://github.com/centau/vide.git
synced 2026-08-20 14:41:37 +00:00
A reactive Luau library for creating UI.
https://centau.github.io/vide/
Adds a built-in `vide.tag()` action that wraps `Instance:AddTag()` / `Instance:RemoveTag()` so tags can be applied through `create()` props. It accepts a static string or array of strings, or a reactive source returning either. The reactive variant diffs the previous and new tag sets so only the delta is applied. All tags added by the action are removed when the surrounding scope is destroyed. Includes mock support for `AddTag`/`RemoveTag`/`HasTag`/`GetTags`, tests, API reference docs, and a closing note in the actions tutorial. Co-authored-by: Cursor <cursoragent@cursor.com> |
||
|---|---|---|
| .github/workflows | ||
| docs | ||
| src | ||
| test | ||
| .gitignore | ||
| .luaurc | ||
| CHANGELOG.md | ||
| default.project.json | ||
| init.luau | ||
| LICENSE.md | ||
| pesde.toml | ||
| README.md | ||
| rokit.toml | ||
| todo.md | ||
| wally.toml | ||
Vide is a reactive Luau UI library inspired by Solid.
- Fully Luau typecheckable
- Declarative and concise syntax.
- Reactively driven.
Getting started
Read the crash course for a quick introduction to the library.
Code sample
local create = vide.create
local source = vide.source
local function Counter()
local count = source(0)
return create "TextButton" {
Text = function()
return "count: " .. count()
end,
Activated = function()
count(count() + 1)
end
}
end