Layout
Layout describes how VibeFlui arranges resource pages, forms, tables, dashboards, detail views, modals, drawers, tabs, wizards, grids, and nested resources.
VibeFlui layout is schema-driven, but it is intentionally split across several schema areas:
layoutcontrols high-level form tab/wizard behavior and multi-resource stacking.form.mode,form.grid,form.groups, andform.sectionscontrol form arrangement.detail.modeanddetail.gridcontrol detail arrangement.dashboard.gridcontrols dashboard card arrangement.resources[]controls multi-resource pages.theme.classNamescontrols root, layout, toolbar, modal, drawer, page, and field/table slots.
Basic layout schema
TS
export const usersSchema = {
resource: "users",
title: "Users",
description: "Manage user accounts.",
layout: {
type: "tabs",
tabs: [
{ key: "profile", title: "Profile", fields: ["name", "email"] },
{ key: "access", title: "Access", fields: ["roleId", "status"] }
]
},
form: {
mode: "modal",
width: "3xl",
grid: {
columns: {
base: 1,
md: 2
},
gap: "gap-4"
},
fields: ["name", "email", "roleId", "status"]
}
} as const;Layout types
layout.type | Runtime effect |
|---|---|
tabs | Form renders tabbed fields when layout.tabs exists. Multi-resource pages render resource tabs. |
wizard | Form renders stepper-style wizard fields from layout.steps. Multi-resource pages still render resource tabs. |
sections | Multi-resource pages stack child resources as sections. |
page | Multi-resource pages stack child resources; form/detail page modes render page-like surfaces. |