#500
Password
A sign-in pair of TextFields: a required email and a revealable password with a Forgot password link under it, neither showing an asterisk.
Hand this to your AI. It names the exact library parts, timings and accessibility promises of this demo.
Build the "Password" pattern (@codeatlasdev/ui demo #500, inputs/text-field) in my app.
Call get_demo({ ids: ["#500"] }) first and keep its structure. It needs @codeatlasdev/[email protected].
Use: Login and reset forms: the show/hide password eye, a link or strength meter under the field, and required fields without the asterisk when nothing is optional.
Keep these library parts, with the props and tokens the demo uses:
- TextField from "@codeatlasdev/ui"
Behaviour to keep:
- Email field `type="email"` with `required` and `requiredIndicator={false}`: the input is required, the label shows no asterisk
- Password field `type="password"` with `revealable`: the component renders the eye button inside the field; the demo has no local reveal state
- `{#snippet below()}` renders `<a href="/forgot-password">Forgot password?</a>` under the field, after any error or description
- Column wrapper has `max-width: 400px`
Reduced motion: the demo handles it; keep that branch.
Keyboard: operable; keep the focus order and key handling.
Change only the copy and the data. Use the theme tokens (--ca-*), never raw colours. Library parts
- TextField
@codeatlasdev/ui
How it is built
- Email field `type="email"` with `required` and `requiredIndicator={false}`: the input is required, the label shows no asterisk
- Password field `type="password"` with `revealable`: the component renders the eye button inside the field; the demo has no local reveal state
- `{#snippet below()}` renders `<a href="/forgot-password">Forgot password?</a>` under the field, after any error or description
- Column wrapper has `max-width: 400px`
Related
Loading source.