vaadin/agent-skills

vaadin-form-layout

Builds the visual structure and layout of a form, entity editor, or data-entry view in Vaadin Flow (Java) from any spec source — Figma URL, screenshot, text, or prompt — choosing the fields and components, FormLayout sectioning, and responsive column layout. Use when asked to create, implement, build, or generate a form, entity editor, or data entry view in Vaadin, to "add fields", "add a form", or "build a layout for editing", or when the user describes collecting structured input from users —…

First seen Jun 30, 2026

Installation

$ npx skills add vaadin/agent-skills --skill vaadin-form-layout

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from vaadin/agent-skills · top by installs.

npx skills add vaadin/agent-skills

Browse all from vaadin/agent-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 5
License LICENSE
Default branch main
Open issues 0
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,935 B
  • docs SUMMARY.md 806 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 29 installs

SKILL.md

Vaadin Form Creation

Workflow

Track these three steps as TODOs so progress stays visible and the work can be resumed if it's interrupted partway through. Work through them in order.

Step 1 – Understand the input and plan

Process the spec source first: fetch and inspect a Figma URL, read a screenshot, or parse a text prompt.

  • Well-defined spec (explicit field list, or a design with clear fields and labels): implement exactly what's specified. Do not invent extra fields, rename labels, or add controls the spec doesn't call for. The output should be predictable and faithful to the input.
  • Vague request (e.g. "make a customer form" with no field list): ask a few targeted clarifying questions before planning — which fields and their data types, how they group, and whether it should be a single section or several. Don't silently guess the contents.

Once the contents are settled, plan the structure and record it in your TODOs:

  • the field list and the data type of each field,
  • the section layout — single section, stacked vertical sections, or side-by-side horizontal sections,
  • which reference example (see table below) most closely matches the planned structure.

Sectioning guidance: when a form covers multiple logical groups of fields (e.g. basic details and address), split it into separate FormLayout instances — one per section, each with its own heading added into the FormLayout spanning the full column width. Use a heading element whose level fits the surrounding view hierarchy (e.g. a section heading nested under a page title). If the right level isn't clear from the surrounding code, default to H4 as the reference examples do — don't go out of your way to discover the exact level. Arrange sections side-by-side with a wrapping HorizontalLayout (growing and shrinking equally, wrapping to one column on narrow viewports) or stacked in a VerticalLayout.

Step 2 – Gather references

With the component set now known from the plan:

  • Resolve the theme. Check Application.java for the @StyleSheet import: Aura.STYLESHEET → Aura, Lumo.STYLESHEET → Lumo (also the default if no theme is found). Theme affects component variants, e.g. RadioGroupVariant.AURAHORIZONTAL vs RadioGroupVariant.LUMOVERTICAL for horizontal radio groups.
  • Read the matching reference example end-to-end (table below).
  • Fetch component API docs with mcpvaadingetcomponentjava_api for every component you'll use, including FormLayout — method signatures differ between Vaadin versions.

Step 3 – Write the UI code

Implement the form following the patterns in the chosen reference example. Always use FormLayout for the form body. Key layout concepts:

  • Auto-responsive — use setAutoResponsive(true) with addFormRow(...) to infer column count from the widest row. Combine with setExpandColumns(true) and setExpandFields(true) to fill available width. Preferred for uniform-width fields.
  • Responsive steps — alternative to auto-responsive; use setResponsiveSteps(...) to define explicit column counts at specific breakpoints when you need precise control over layout at different widths.
  • Column span — pass a column count to form.add(field, n) or use FormRow with per-field colspan for asymmetric rows.
  • Constrained width — set setMaxWidth/setMinWidth to keep forms readable at large viewport sizes.
  • Asymmetric rows — when fields in a row need different widths, wrap them in a HorizontalLayout and add it as a single full-width item.

Examples

File What it shows
[references/horizontal-sections-form-example.md](references/horizontal-sections-form-example.md) Two-section entity form with side-by-side auto-responsive FormLayout panels, equal-grow HorizontalLayout wrapper, asymmetric field rows via HorizontalLayout.expand, read-only fields, horizontal RadioButtonGroup (Aura), ComboBox with defaults, NumberField with helper text
[references/vertical-sections-three-column-form-example.md](references/vertical-sections-three-column-form-example.md) Three-section employee form with stacked VerticalLayout sections, three-column auto-responsive FormLayout, FormRow colspan, DatePicker, EmailField, phone helper text
[references/compact-single-section-form-example.md](references/compact-single-section-form-example.md) Compact single-section form with progressive disclosure (CheckboxGroup conditionally revealing a field), horizontal RadioButtonGroup with dynamic helper text, asymmetric field row via HorizontalLayout, icon prefix, live-computed summary label, constrained form width
[references/compact-labels-aside-form-example.md](references/compact-labels-aside-form-example.md) Compact labels-aside form with setLabelsAside(true) for a two-column label/field layout, CustomField composition combining NumberField and ComboBox into a single form item, TextArea with character limit, required field indicators, constrained form width