Skip to content
GaudiGaudi Design System home

Search documentation

Search every page, heading and paragraph.

Forms

Form behaviour on the Core Field parts: validation with accessible errors, a summary that takes focus after a failed submit, values you edit in place and live character counts.

Blocks@gaudi/design-system/blocks/FormsView in StorybookSource

Installation

pnpm add github:ahmadassaf/design-system

Import from @gaudi/design-system. Load @gaudi/design-system/global.css once and add transpilePackages: ['@gaudi/design-system'] in Next.js.

import Forms from '@gaudi/design-system/blocks/Forms';

Copy an example into your project with the shadcn CLI: npx shadcn@latest add https://design.gaudi.site/r/forms-api-key.json.

Usage

import { FormErrorSummary, useFormValidation, validators } from '@gaudi/design-system/blocks/Forms';import Button from '@gaudi/design-system/core/Button';import { EmailInput } from '@gaudi/design-system/core/Input';
function ContactForm() { const form = useFormValidation({ initialValues: { email: '' }, rules: { email: [validators.required('Enter an email.'), validators.email()] } }); return <form onSubmit={form.handleSubmit(saveContact)}> <FormErrorSummary form={form} labels={{ email: 'Email' }} /> <EmailInput aria-label='Email' {...form.field('email')} /> <Button type='submit'>Save contact</Button> </form>;}

Examples

Developer · Create an API key

Storybook

Launch · New app with live summary

Storybook

Feedback · Article survey

Storybook

Compliance · Business verification

Storybook

Checkout · Address and payment

Storybook

Contact · Message with error summary

Storybook

Onboarding · Customer intake

Storybook

Events · Registration with email code

Storybook

Billing · Hosted checkout setup

Storybook

Billing · Invoice with line items

Storybook

Commerce · New product

Storybook

Newsletter · Signup and preferences

Storybook

Profile · Card with completion and office hours

Storybook

Profile · Tabs with audit rail

Storybook

Security · Sign-in policy

Storybook

Support · Ticket details

Storybook

Team · Invite with permissions

Storybook

API

15 props

Accessibility

Errors sit next to their control, are linked with aria-describedby and mark it aria-invalid. The summary is an alert that receives focus and moves focus to a field from each link. EditableField returns focus to Edit after Save, Cancel or Escape.

Notes

  • Lay out rows with FieldGroup and Field orientation=responsive; Forms adds behaviour, not layout.