VVibeFlui

Form Config

Type: FluiKitFormConfig.

Properties

PropertyTypeRequiredDefaultDescription
enabledbooleanNotrueEnables form rendering.
mode"inline" | "modal" | "drawer" | "page"No"modal"Form surface/chrome. Distinct from the FluiKitForm component's own mode prop ("create" | "edit" | "view", CRUD intent) shown under "Direct component usage" below.
fieldsFluiKitFieldInput[]NonormalizedForm fields.
gridFluiKitGridConfigNo-Grid columns/gap config.
groupsFluiKitFormGroup[]No-Field groups.
sectionsFluiKitFormSection[]No-Field sections.
widthstringNo-Surface width token or class-like value.
classNamestringNo-Form class name.
validationstringNo-Registry validation key metadata only — not executed by the runtime as a whole-form validator. Use field.validator for active per-field validation.
submitLabelstringNoCreate/UpdateSubmit button label.
cancelLabelstringNoCancelCancel button label.

Example

TS
form: {
  mode: "modal",
  grid: {
    columns: { base: 1, md: 2 }
  },
  fields: [
    { name: "name", label: "Name", required: true },
    { name: "email", label: "Email", type: "email", required: true }
  ]
}

Use root layout.tabs, layout.steps, or layout.sections for tab, wizard, and section layout orchestration.

Direct component usage

FluiKitForm expects a normalized schema.

TSX
import { FluiKitForm, normalizeSchema } from "@vibeflui/core";

const normalized = normalizeSchema(usersSchema);

<FluiKitForm schema={normalized} mode="create" />;