Skip to Content

PasswordInput

Capture password data from user with visibility toggle button. Supports all standard input features.

Import

import { PasswordInput } from '@tidbcloud/uikit'

Basic Usage

import { PasswordInput } from '@tidbcloud/uikit' function Demo() { return <PasswordInput label="Password" placeholder="Enter your password" /> }

Controlled

import { useState } from 'react' import { PasswordInput } from '@tidbcloud/uikit' function Demo() { const [value, setValue] = useState('') return <PasswordInput value={value} onChange={(event) => setValue(event.currentTarget.value)} /> }

Controlled Visibility

import { useDisclosure } from '@tidbcloud/uikit' import { PasswordInput, Stack } from '@tidbcloud/uikit' function Demo() { const [visible, { toggle }] = useDisclosure(false) return ( <Stack> <PasswordInput label="Password" visible={visible} onVisibilityChange={toggle} /> <PasswordInput label="Confirm password" visible={visible} onVisibilityChange={toggle} /> </Stack> ) }

Custom Visibility Icon

import { PasswordInput } from '@tidbcloud/uikit' import { IconEyeCheck, IconEyeOff } from '@tabler/icons-react' const VisibilityToggleIcon = ({ reveal }: { reveal: boolean }) => reveal ? <IconEyeOff size={16} /> : <IconEyeCheck size={16} /> function Demo() { return <PasswordInput label="Password" visibilityToggleIcon={VisibilityToggleIcon} /> }

With Left Section

import { PasswordInput } from '@tidbcloud/uikit' import { IconLock } from '@tabler/icons-react' function Demo() { return <PasswordInput leftSection={<IconLock size={18} />} label="Password" placeholder="Enter password" /> }

Key Props

PropTypeDescription
valuestringControlled value
onChange(event) => voidCalled when value changes
visiblebooleanControlled visibility state
onVisibilityChange(visible: boolean) => voidCalled when visibility changes
defaultVisiblebooleanDefault visibility state
visibilityToggleIconFC<{ reveal: boolean }>Custom visibility toggle icon
visibilityToggleButtonPropsobjectProps for toggle button
labelReactNodeInput label
descriptionReactNodeInput description
errorReactNodeError message
disabledbooleanDisable input
leftSectionReactNodeContent on left side
sizeMantineSizeInput size
radiusMantineRadiusBorder radius
Last updated on