import { useState } from 'react'
import { Checkbox, Field, Label } from '@headlessui/react'
const WithLabelCode = () => {
const [enabled, setEnabled] = useState(false)
const [enabled1, setEnabled1] = useState(false)
return (
<div>
<div className='flex flex-col gap-3'>
<div>
<Field className='flex items-center gap-3'>
<Checkbox
checked={enabled}
onChange={setEnabled}
className='group block ui-checkbox'>
<svg
className='stroke-white opacity-0 group-data-[checked]:opacity-100 rounded'
viewBox='0 0 14 14'
fill='none'
height={15}>
<path
d='M3 8L6 11L11 3.5'
strokeWidth={2}
strokeLinecap='round'
strokeLinejoin='round'
/>
</svg>
</Checkbox>
<Label className='cursor-pointer'>Checkbox With Label</Label>
</Field>
</div>
<div>
<Field className='flex items-center gap-3'>
<Checkbox
checked={enabled1}
onChange={setEnabled1}
className='group block ui-checkbox'>
<svg
className='stroke-white opacity-0 group-data-[checked]:opacity-100 rounded'
viewBox='0 0 14 14'
fill='none'
height={15}>
<path
d='M3 8L6 11L11 3.5'
strokeWidth={2}
strokeLinecap='round'
strokeLinejoin='round'
/>
</svg>
</Checkbox>
<Label className='cursor-pointer'>Checkbox With Label</Label>
</Field>
</div>
</div>
</div>
)
}
export default WithLabelCode
This will give you early access to new features we're developing.
import { useState } from 'react'
import { Checkbox, Description, Field, Label } from '@headlessui/react'
const WithDescriptionCode = () => {
const [enabled, setEnabled] = useState(false)
return (
<div>
<div>
<Field className='flex gap-3'>
<Checkbox
checked={enabled}
onChange={setEnabled}
className='group block ui-checkbox'>
<svg
className='stroke-white opacity-0 group-data-[checked]:opacity-100 rounded'
viewBox='0 0 14 14'
fill='none'
height={15}>
<path
d='M3 8L6 11L11 3.5'
strokeWidth={2}
strokeLinecap='round'
strokeLinejoin='round'
/>
</svg>
</Checkbox>
<div>
<Label>Enable beta features</Label>
<Description>
This will give you early access to new features we're developing.
</Description>
</div>
</Field>
</div>
</div>
)
}
export default WithDescriptionCode
import { useState } from 'react'
import { Checkbox, Field, Label } from '@headlessui/react'
const DisableCheckCode = () => {
const [enabled, setEnabled] = useState(false)
return (
<div>
<div className='flex flex-col gap-3'>
<div>
<Field disabled className='flex items-center gap-3'>
<Checkbox
checked={enabled}
onChange={setEnabled}
className='group block size-4 rounded border bg-white data-[checked]:bg-blue-500 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[checked]:data-[disabled]:bg-gray-500'>
<svg
className='stroke-white opacity-0 group-data-[checked]:opacity-100'
viewBox='0 0 14 14'
fill='none'>
<path
d='M3 8L6 11L11 3.5'
strokeWidth={2}
strokeLinecap='round'
strokeLinejoin='round'
/>
</svg>
</Checkbox>
<Label className='data-[disabled]:opacity-50'>
Enable beta features
</Label>
</Field>
</div>
<div>
<Field disabled className='flex items-center gap-3'>
<Checkbox
checked={enabled}
onChange={setEnabled}
className='group block size-4 rounded border bg-white data-[checked]:bg-blue-500 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50 data-[checked]:data-[disabled]:bg-gray-500'>
<svg
className='stroke-white opacity-0 group-data-[checked]:opacity-100'
viewBox='0 0 14 14'
fill='none'>
<path
d='M3 8L6 11L11 3.5'
strokeWidth={2}
strokeLinecap='round'
strokeLinejoin='round'
/>
</svg>
</Checkbox>
<Label className='data-[disabled]:opacity-50'>
Enable beta features
</Label>
</Field>
</div>
</div>
</div>
)
}
export default DisableCheckCode
import { useState } from 'react'
import { Checkbox, Field, Label } from '@headlessui/react'
const UsingHtmlFormCode = () => {
const [enabled, setEnabled] = useState(false)
return (
<div>
<form action='/accounts' method='post'>
<Field className='flex items-center gap-3'>
<Checkbox
checked={enabled}
onChange={setEnabled}
name='terms-of-service'
className='group block ui-checkbox'>
<svg
className='stroke-white opacity-0 group-data-[checked]:opacity-100'
viewBox='0 0 14 14'
fill='none'
height={15}>
<path
d='M3 8L6 11L11 3.5'
strokeWidth={2}
strokeLinecap='round'
strokeLinejoin='round'
/>
</svg>
</Checkbox>
<Label className='cursor-pointer'>
Agree to terms and conditions
</Label>
</Field>
<div className='flex gap-3 mt-4'>
<button className='ui-button bg-primary justify-center'>
Submit
</button>
<button className='ui-button bg-error justify-center'>Cancel</button>
</div>
</form>
</div>
)
}
export default UsingHtmlFormCode
import { Checkbox, Field, Label } from '@headlessui/react'
const UsingUncontrolledCode = () => {
return (
<div>
<form action='/accounts' method='post'>
<Field className='flex items-center gap-3'>
<Checkbox
defaultChecked={true}
name='terms-of-service'
className='group block ui-checkbox'>
<svg
className='stroke-white opacity-0 group-data-[checked]:opacity-100'
viewBox='0 0 14 14'
fill='none'>
<path
d='M3 8L6 11L11 3.5'
strokeWidth={2}
strokeLinecap='round'
strokeLinejoin='round'
/>
</svg>
</Checkbox>
<Label className='cursor-pointer'>
Agree to terms and conditions
</Label>
</Field>
<div className='flex gap-3 mt-4'>
<button className='ui-button bg-primary justify-center'>
Submit
</button>
<button className='ui-button bg-error justify-center'>Cancel</button>
</div>
</form>
</div>
)
}
export default UsingUncontrolledCode
import { useState } from 'react'
import { Checkbox, Field, Label } from '@headlessui/react'
const TransitionCheckCode = () => {
const [enabled, setEnabled] = useState(false)
const [enabled1, setEnabled1] = useState(false)
const [enabled2, setEnabled2] = useState(false)
return (
<div>
<div className='flex flex-col gap-3'>
<div>
<Field className='flex items-center gap-3'>
<Checkbox
checked={enabled}
onChange={setEnabled}
className='group block ui-checkbox'>
<svg
className='stroke-white opacity-0 transition group-data-[checked]:opacity-100'
viewBox='0 0 14 14'
fill='none'
height={15}>
<path
d='M3 8L6 11L11 3.5'
strokeWidth={2}
strokeLinecap='round'
strokeLinejoin='round'
/>
</svg>
</Checkbox>
<Label className='cursor-pointer'>Checkbox With Transitoin</Label>
</Field>
</div>
<div>
<Field className='flex items-center gap-3'>
<Checkbox
checked={enabled1}
onChange={setEnabled1}
className='group block ui-checkbox'>
<svg
className='stroke-white opacity-0 transition group-data-[checked]:opacity-100'
viewBox='0 0 14 14'
fill='none'
height={15}>
<path
d='M3 8L6 11L11 3.5'
strokeWidth={2}
strokeLinecap='round'
strokeLinejoin='round'
/>
</svg>
</Checkbox>
<Label className='cursor-pointer'>Checkbox With Transitoin</Label>
</Field>
</div>
<div>
<Field className='flex items-center gap-3'>
<Checkbox
checked={enabled2}
onChange={setEnabled2}
className='group block ui-checkbox'>
<svg
className='stroke-white opacity-0 transition group-data-[checked]:opacity-100'
viewBox='0 0 14 14'
fill='none'
height={15}>
<path
d='M3 8L6 11L11 3.5'
strokeWidth={2}
strokeLinecap='round'
strokeLinejoin='round'
/>
</svg>
</Checkbox>
<Label className='cursor-pointer'>Checkbox With Transitoin</Label>
</Field>
</div>
</div>
</div>
)
}
export default TransitionCheckCode