A reactive Luau library for creating UI. https://centau.github.io/vide/
Find a file
raine f3bfc65607
feat: export vide.create types and include more ui element types (#79)
* feat: add more ui instances to Create type

* fix: use string requires in init.luau

@self string requires are now supported by Roblox, so this should be fine. It works in my Pesde patches and fixes issues with missing types.

* feat: export vide.create types

Instances and Properties are both useful types that should be able to be used by consumers (e.g. wrapper components).

* fix: typo

* feat: include exports in repo init.luau

Fixes #84
2026-08-05 17:43:28 +01:00
.github/workflows Bump wally and pesde version 2026-07-11 13:31:48 +01:00
docs Add delayed scope destruction to docs 2026-01-17 20:15:05 +00:00
src feat: export vide.create types and include more ui element types (#79) 2026-08-05 17:43:28 +01:00
test Bump version to 0.4.1 2026-07-11 13:25:38 +01:00
.gitignore Update actions and tooling 2025-06-23 19:09:21 +01:00
.luaurc Initial commit 2023-08-08 21:33:11 +01:00
CHANGELOG.md Bump version to 0.4.1 2026-07-11 13:25:38 +01:00
default.project.json Initial commit 2023-08-08 21:33:11 +01:00
init.luau feat: export vide.create types and include more ui element types (#79) 2026-08-05 17:43:28 +01:00
LICENSE.md Initial commit 2023-08-08 21:33:11 +01:00
pesde.toml Bump wally and pesde version 2026-07-11 13:31:48 +01:00
README.md Improve Documentation Site (#41) 2024-11-03 17:32:19 +00:00
rokit.toml Update actions and tooling 2025-06-23 19:09:21 +01:00
todo.md Fix recursive batch() use 2023-11-20 12:27:56 +00:00
wally.toml Bump wally and pesde version 2026-07-11 13:31:48 +01:00


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