⌘K
(opens in new tab)
Liquidify
Documentation
Getting started
Concepts
Guides
Packages
Design tokens
Examples
Settings panelControlled formCommand dialogFiltering toolbarCustom glass surface
AI resourcesDocumentation versions
Community

Controlled form

Coordinate Liquidify field and toggle values in React state.

import { useState } from "react"
import { Button, TextField, Toggle } from "@liquidify/react"
import "@liquidify/react/styles.css"

export function ProfileForm() {
  const [name, setName] = useState("")
  const [discoverable, setDiscoverable] = useState(false)

  const save = () => console.log({ name, discoverable })

  return (
    <form onSubmit={(event) => event.preventDefault()}>
      <label htmlFor="display-name">Display name</label>
      <TextField id="display-name" value={name} onChange={setName} />

      <Toggle
        aria-label="Show profile in search"
        checked={discoverable}
        onChange={setDiscoverable}
      />

      <Button variant="glassProminent" onPress={save}>
        Save profile
      </Button>
    </form>
  )
}

The same state values must be used for the server output and first client render in an SSR application.

Settings panelCommand dialog