Bollard UI
DocsComponentsGuidesStart hereFlows

Get started

  • Getting started
  • Start here
  • Guides
  • All components341

Browse by flow

  • Checkout & payments69
  • Sign-up & login37
  • Account settings46
  • Danger zone55
  • Forms & data entry138
  • Messaging & sharing45
  • Dev tools & infra100
  • Dates & scheduling27
  • India57
  • Agent Action Approve
  • MCP Tool Review
  • Reset Hard Readback
  • Account Deletion Readback
  • Force Push Confirm
  • Infra Plan Readback
  • Recovery Contact Cooldown
  • Migration Preview
  • Feature Flag Rollout
  • Branch Target
  • Session List
  • Sign-in Approve
  • Hold to Confirm
  • Two-Step Button
  • Slide to Confirm
  • Type to Confirm
  • Undo Toast
  • Impact Preview
  • Bulk Scope Confirm
  • Drop Confirm
  • Danger Zone
  • Click Shield
  • Shortcut Confirm
  • Guarded Switch
  • Swipe Delete Row
  • Grace Send
  • Two-Person Approve
  • Trash Countdown
  • Range Select Guard
  • Reauth Gate
  • Rollback Preview
  • Edit Lock
  • Archive or Delete
  • Revoke Access Preview
  • Transfer Ownership
  • Cancel Readback
  • Merge Records
  • Move Readback
  • Reset Preview
  • Replace File
  • DNS Record Guard
  • Key Rotate
  • Retention Change
  • Seat Reduce
  • Cooldown Button
  • Safe Submit
  • Bulk Runner
  • Spend Cap Button
  • Scheduled Queue
  • Commit Combobox
  • Relative Date Input
  • Namesake Select
  • Cheque Check
  • KYC Name Match
  • Aadhaar Input
  • Password Policy Input
  • Passenger Name Input
  • Email Change Guard
  • Invoice Number Check
  • Pin Drop Check
  • PIN Code Input
  • Password Hint Guard
  • Coupon Input
  • Paste Target Guard
  • Email Input
  • Password Input
  • Match Field
  • Amount Input
  • Date Sanity Input
  • Clean Paste Input
  • OTP Paste Input
  • URL Input
  • Phone Input
  • Character Budget
  • Code Input
  • Inline Edit
  • Checksum Input
  • Name Input
  • Near-Duplicate Input
  • Slug Input
  • Homoglyph Guard
  • Contrast Picker
  • Address Check
  • Tax ID Input
  • Filename Input
  • Coordinate Input
  • Zero Result Rescue
  • Mixed Value Field
  • Card Expiry Input
  • Username Input
  • IFSC Input
  • UPI ID Input
  • Shortcut Recorder
  • Hashtag Input
  • Timezone Picker
  • Scope Picker
  • Brand Color Input
  • Wrong Layout Input
  • FX Send Receive
  • Epoch Input
  • Notice Period Check
  • Tax Regime Compare
  • EMI Readback
  • Leave Request Check
  • CTC Breakdown Input
  • Guest Count Picker
  • Salary Input
  • Size Fit Picker
  • Unit Input
  • Time Confirm
  • Quantity Stepper
  • Percent Input
  • Range Pair
  • Schedule Readback
  • Split Allocator
  • Duration Input
  • Billing Period Input
  • Replace Preview
  • Shift Time Input
  • Dimension Input
  • Tax-Inclusive Input
  • Version Bump
  • Dose Input
  • Leftover Text Check
  • AI Citation Check
  • K8s Resource Input
  • Connection String Input
  • Package Name Check
  • Cache Control Input
  • MRZ Paste Input
  • Curl Pipe Guard
  • Port Expose Guard
  • Photo Spec Check
  • Doc Upload Match
  • AI Paste Guard
  • SSH Key Input
  • JWT Inspect
  • Cert Paste Check
  • Chmod Input
  • Redirect URI Input
  • CSP Input
  • Public Env Guard
  • Robots.txt Guard
  • Image Tag Input
  • Column Mapper
  • Boolean Query Input
  • CORS Origin Input
  • Webhook URL Input
  • List Paste
  • Env Paste
  • JSON Field
  • Regex Field
  • CIDR Input
  • Version Range Input
  • Glob Input
  • i18n String Field
  • SQL Guard
  • Markdown Check
  • YAML Field
  • Webhook Test
  • UTM Check
  • Reorder Readback
  • Nominee Check
  • Passport Validity Check
  • Seat Gap Check
  • Formula Overwrite Guard
  • Passkey Name Prompt
  • Irreversible Diff Badge
  • Stale Attachment Check
  • Dependency License Check
  • Heading Outline
  • Link Text Check
  • Reading Level
  • Backup Codes
  • Recovery Check
  • Unsaved Changes Bar
  • Save Status
  • Error Summary
  • Form Progress
  • Preflight Checklist
  • Attachment Nudge
  • File Guard
  • Draft Restore
  • Tab Collision
  • Review Step
  • Dependent Reset
  • Version Scrubber
  • Autofill Check
  • Field History
  • Terms Changes
  • Hidden Field Guard
  • Upload Wait
  • Consent Group
  • DOB Input
  • Recurrence Scope
  • Tree Select Readback
  • Repeat Rows
  • Step Invalidation
  • Import Preview
  • Crop Guard
  • Stay Length
  • Event Overlap
  • Unanswered Check
  • Cutoff Picker
  • Trip Date Chain
  • Meeting Time Spread
  • BNPL Schedule Check
  • Transit Visa Check
  • LLM Cost Estimate
  • Kube Context Guard
  • Security Event Log
  • DST Shift Notice
  • Environment Badge
  • Acting As Banner
  • Offline Banner
  • Stale Data Notice
  • Conflict Banner
  • Session Timeout
  • Do Not Close
  • Timezone Mismatch
  • Update Available
  • Revision Banner
  • Filter Notice
  • Disabled Reason
  • Quota Forecast
  • Resume Marker
  • New Content Pill
  • Presence Lock
  • Unsent Marker
  • Presenter Mode
  • Locale Notice
  • Progress Heartbeat
  • Account Switch Guard
  • Maintenance Window
  • Permission Pre-Ask
  • Clock Skew
  • Private Mode Notice
  • Experimental Badge
  • Retry After
  • Low Battery Guard
  • Data Cost Notice
  • Sunset Notice
  • Print Guard
  • Bcc Guard
  • Hidden Content Check
  • Prompt Data Guard
  • Bill Split Check
  • Callback Number Check
  • Quote Lock
  • Calendar External Guest Guard
  • Chat Audience Check
  • Out of Office Check
  • Retract Window
  • Card Bill Pay
  • OTP Share Guard
  • Bank Transfer Timing
  • Gift Card Scam Guard
  • Commit Secret Guard
  • Publish Preview
  • UPI AutoPay Review
  • UPI Collect Guard
  • TDS Invoice Total
  • Link Access Check
  • Reply All Guard
  • Duplicate Payment Guard
  • Bulk Send Guard
  • PII Post Guard
  • Recurring Charge Readback
  • GST Invoice Check
  • Role Preview
  • Visibility Picker
  • Recipient Check
  • Secret Paste Guard
  • External Link
  • Charge Summary
  • Send Time Check
  • Fill Before Copy
  • Photo Location Guard
  • Currency Hint
  • Mention Guard
  • Share Link
  • Merge Field Check
  • Forward Guard
  • Payee Check
  • CSV Export Guard
  • Link Unfurl Check
  • QR Share
  • Redact Image
  • SMS Segments
  • Export Scope
  • Invite Check
  • Large Attachment
  • Embed Code
  • Alt Text Check
  • Stale Reply
  • Tip Picker
  • Refund Picker
  • Plan Change Readback
  • Payment Reference
  • Truncation Preview
  • Dockerfile Check
  • Gitignore Check
  • Workflow YAML Guard
  • IAM Policy Check
  • Hreflang Check
  • Redirect Rule Input
  • Set-Cookie Check
  • QR Scan Check
  • Env Diff
  • Join Preview
  • Dedupe Key Picker
  • Dual Axis Guard
  • Secret Field
  • Text Diff
  • Readback
  • Copy Confirm
  • Middle Truncate
  • Precise Number
  • Unambiguous Date
  • Deadline
  • Change Highlight
  • Spell Out
  • Honest Bar
  • Change Readout
  • Size Context
  • Sum Check
  • Status Chip
  • Sort Indicator
  • Diff Table
  • Amount in Words
  • Overflow List
  • Honest Rating
  • Unit Price
  • Abbr Hint
  • Error Explainer
  • Partial Period
  • Gap-Aware Line
  • Fair Rank
  • ETA Range
  • Palette Guard
  • useBollardField

Project

  • Changelog
  • Quality
  • Security
  • License
  1. Docs
  2. Build safer React forms and actions

Guides

Build safer React forms and actions

Start with the problem you are implementing. Each guide points to a working component, explains the boundary between client guidance and server enforcement, and ends with the exact install command.

  • Prevent duplicate form submissions in ReactAdd a reusable React submit guard that disables repeat sends while a request is pending and gives people a clear retry path.
  • Validate a shadcn email input in ReactCatch incomplete and typo-prone email addresses with a copy-paste React field that fits shadcn styling and keeps the user’s value intact.
  • Confirm a dangerous delete action in ReactReplace a vague “Are you sure?” dialog with a typed confirmation that makes the target and consequence explicit before deletion.
  • Validate a UPI ID input in ReactHelp people enter a well-formed UPI ID without incorrectly rejecting an unfamiliar but valid VPA in an offline client-side form.
  • Add React field validation without changing your UI libraryUse a headless field hook with shadcn/ui, HeroUI, or a custom control while retaining your existing markup, styles, and accessibility decisions.
Bollard UI

React components that catch the mistake before your users make it. MIT licensed. Source copied into your project.

Library

  • Getting started
  • Start here
  • Components
  • Browse by flow
  • FAQ

Resources

  • Changelog
  • Quality
  • Security
  • License
  • Registry JSON

Community

  • Send feedback
  • Report a vulnerability
  • X @devtushark
  • GitHub @Tusharkhadde

© 2026 Bollard UI. Built by Tushar Khadde.