Install the @vueform/builder-nuxt module
main@vueform/builder-nuxt module. For detailed installation steps, including dependency requirements and configuration, refer to the official documentation at https://builder.vueform.com/docs/installation.repository·main·Indexed 20 days ago
https://github.com/vueform/builderA drag-and-drop form builder for Vueform that allows developers and non-technical users to visually create complex forms. It supports exporting forms as native Vue components or JSON data. The builder includes a comprehensive expression engine for dynamic values and conditions, a configurable UI via BuilderConfig, and official integration for Nuxt via the @vueform/builder-nuxt module.
@vueform/builder-nuxt module. For detailed installation steps, including dependency requirements and configuration, refer to the official documentation at https://builder.vueform.com/docs/installation.You can quickly create a new Vueform Builder instance on your machine using a scaffolding command. This is the recommended way to get started with a pre-configured environment.
npm create vueform@latest -- --builder
yarn create vueform --builder
pnpm create vueform --builder
bun create vueform --builderThe module automatically looks for configuration files in your project root. If you do not provide a custom path via the vueform-builder module options, it follows this resolution order:
Vueform Configuration:
vueform.config.jsvueform.config.tsVueform Builder Configuration:
builder.config.jsbuilder.config.tsIf neither a custom path is provided nor these default files are found, the module will throw an error during setup.
Expressions can use built-in functions and constants to perform complex calculations and data retrieval within the builder.
SUM(val, [val2, ...]): Returns the sum of numbers or lists.AVG(val, [val2, ...]): Returns the arithmetic mean.MIN(val, [val2, ...]): Returns the minimum value.MAX(val, [val2, ...]): Returns the maximum value.COUNT(val, [val2, ...]): Counts items in a value or array.ROUND(number, [decimals]): Rounds to the nearest integer or specified decimal places (default 0).TODAY(): Returns the current date.NOW(): Returns the current time in ISO8601 format.AGE(date): Calculates age in years from a date string or value.DATE_ADD(date, amount, interval): Adds/subtracts time. Intervals: seconds, minutes, hours, days, months, years.FORMAT_DATE(date, format): Converts a date string/number to a specific format.EMPTY(val): Returns true if the value is empty (empty string, empty array, null, or undefined).NOT_EMPTY(val): Returns true if the value contains data.DISPLAY_VALUE(ref, 'full_path'): Returns the display label for a field (e.g., Select, Checkbox).AVAILABLE('full_path'): Returns true if an element is available (all conditions met).PI: The value of Pi.E: Euler's number.Vueform Builder supports expressions to dynamically calculate values or evaluate conditions. Expressions are wrapped in curly braces {} for values or used directly in condition builders.
{expression} to inject a calculated value. Example: Hi, {first_name}!${expression} for mathematical calculations. Example: ${price * qty}{container.field_name}.{list.0}.{list.*.sibling}.\{first_name\}.+, -, *, /, % (remainder), ^ (power), ! (factorial).==, !=, >=, <=, >, <.and, or, not (or NOT()), and grouping with ().in (checks if a value exists in an array or object).// Value expression
"value": "Hi, {first_name}!"
// Math expression
"value": "${price * qty}"
// Condition expression
"condition": "age > 18 and terms_accepted == 1"When writing expressions in Vueform Builder, use the following syntax patterns to access different types of data:
{} to wrap expressions. Example: {namae}\{ and \}. Example: \{namae\}{container.field_name}{list.0}*. Example: {list.*.sibling}${} for math-specific contexts. Example: ${kakaku * suryo}AVAILABLE or DISPLAY_VALUE, use the full field path wrapped in single quotes. Example: AVAILABLE('container.select') (Note: sibling paths like 'list.*.select' are not supported for these specific functions).The Hungarian locale defines the documentation and examples for the expression language used in Vueform Builder.
+ (Plus): Adds two numbers. Example: {reszosszeg + ado}- (Minus): Subtracts the right operand from the left. Example: {osszesen - kedvezmeny}* (Times): Multiplies two numbers. Example: {ar * mennyiseg}/ (Divide): Divides the left operand by the right. Example: {osszesen / darabszam}% (Remainder): Returns the remainder of division. Example: {darabszam % 2}^ (Power): Raises the left operand to the power of the right. Example: {alap ^ kitevo}! (Factorial): Calculates the factorial. Example: {5!}== (Equal): Checks if values are equal. Example: {kategoria == 'fo'}!= (Not equal): Checks if values are not equal. Example: {kategoria != 'fo'}>= (Greater than or equal): Example: {ar >= 100}<= (Less than or equal): Example: {ar <= 100}> (Greater than): Example: {ar > 100}< (Less than): Example: {ar < 100}in: Checks if a value exists in an array or object. Example: {'adminisztrator' in szerepkorok}and: Returns true if both expressions are true. Example: {aktiv and ellenorzott}or: Returns true if at least one expression is true. Example: {adminisztrator or moderator}NOT(value): Returns the logical opposite.EMPTY(value): Returns true if the value is empty (empty string, empty array, null, or undefined).NOT_EMPTY(value): Returns true if the value is not empty.SUM(val1, [val2, ...]): Returns the sum of numbers or lists.AVG(val1, [val2, ...]): Returns the average of numbers or lists.MIN(val1, [val2, ...]): Returns the smallest value.MAX(val1, [val2, ...]): Returns the largest value.ROUND(number, [decimals]): Rounds a number to the nearest integer or specified decimal places.COUNT(val1, [val2, ...]): Counts the number of values or elements in an array.AGE(date): Calculates age in years from a birth date.TODAY(): Returns the current date.NOW(): Returns the current time in ISO8601 format.DATE_ADD(date, amount, interval): Adds or subtracts an interval (e.g., napok, honapok, evek) from a date.FORMAT_DATE(value, format): Formats a date string or number.DISPLAY_VALUE(element, 'full_path'): Returns the display label of a value from a field like a select or checkbox.AVAILABLE('full_path'): Returns true if an element is available (all conditions met).Vueform Builder expressions support a variety of mathematical and logical operators to evaluate field values and control form behavior.
+ (Addition): {shokei + zei}- (Subtraction): {gokei - waribiki}* (Multiplication): {kakaku * suryo}/ (Division): {gokei / kosu}% (Remainder): {kosu % 2}^ (Power): {kisu ^ shisu}! (Factorial): {5!}== (Equal): {category == 'main'}!= (Not Equal): {category != 'main'}>= (Greater than or equal): {kakaku >= 100}<= (Less than or equal): {kakaku <= 100}> (Greater than): {kakaku > 100}< (Less than): {kakaku < 100}in (In array/object): {'admin' in roles}and: Returns true if both expressions are true. Example: {is_active and is_verified}or: Returns true if at least one expression is true. Example: {is_admin or is_moderator}NOT(): Returns the logical opposite. Example: NOT(true) returns false.The builder provides tools to save and restore the current state of your form configuration.
tool_import functionality to manage the form state.Error Handling: If the uploaded file is not a valid JSON, the builder will display: Not a valid JSON.
You can define custom element types in the builder. When saving or editing a custom element, the following metadata is used:
Text element).Single line text input).Important Constraints:
The key <key> is already in use.The key <key> is restricted, please choose another.The @vueform/builder package provides a default install function that follows the standard Vue plugin pattern. You can use it to register the builder within your Vue application instance.
import { createApp } from 'vue';
import builder from '@vueform/builder';
const app = createApp({});
app.use(builder, {
// Your BuilderConfig options here
});