Loading
Loading
Loading
mobile footer

Build the Interaction Layer Your Website is Missing.

Browse All EffectsBrowse All EffectsBrowse All EffectsUpgrade to ProUpgrade to ProUpgrade to Pro

80+ effects free, forever. No credit card.

© 2026 Hyperiux. All Rights Reserved.

AI Component CatalogueHey AI, Learn About Us
Platform

Vault

  • Documentation
  • Pricing
  • Blog
  • Community
  • NPM
  • MCP

Categories

  • All Effects
  • WebGL
  • Text
  • Backgrounds
  • Buttons
  • Carousels
  • Scroll
  • Components
  • Navigation
  • Cursor
  • Transitions
  • Loaders

Documents

  • Introduction
  • Installation
  • CLI
  • Dependencies
  • License

Legal

  • License Agreement
  • Terms of Service
  • Privacy Policy
  • Refund Policy
Socials
  • Twitter / X
  • LinkedIn
  • GitHub
  • Instagram
Contact Us
  • hello@hyperiux.com
New effects, in your inbox

Every new drop, plus the occasional behind-the-scenes build. No spam. Unsubscribe anytime.

Loading
Home/Checkbox Component

Checkbox Component

An animated checkbox with elastic selection feedback, centre-out fills, selectable cards, and interactive controls for managing multiple choices

motion
DemoDemoDemo

Tune the Real Props

Overview

Checkbox animates its indicator, fills from the centre, and adds a subtle elastic response on selection, without changing how a checkbox behaves. Options can be compact inline controls or larger selectable cards, and groups support select all, clear, Shift-click ranges, a live counter, minimum and maximum limits, and drag reordering.

Use it when users choose several independent options, such as features, notification preferences, onboarding interests, or permissions. Animation should confirm each choice while selection rules stay predictable.


Theme and Interaction Customisation

Choose inline or card layouts, muted or primary card fills, a check or circle mark, filled or outlined boxes, corner roundness, per-option colours, and an animated strike-through. Interactions include centre-out fills, elastic compression, bulk actions, Shift-click ranges, and drag reordering.


Example Production Use Case

A SaaS onboarding step can present capabilities like Analytics, Automation, and Reporting as selectable cards, with at least one and at most four allowed. The counter updates instantly, and a fifth choice is blocked until another is cleared.

A notification settings page can group email and push categories as inline checkboxes, with Select all and Deselect all for quick bulk changes.

A meal-kit or product configurator can use colour-coded cards for add-ons, letting customers reorder chosen items when sequence matters.


Best Used For

  • SaaS onboarding with counts and selection limits.
  • Product configuration with multiple add-ons or options.
  • Application settings such as notification categories.
  • Surveys and questionnaires that allow several answers.
  • Administrative interfaces selecting records or permissions.
  • Creative and productivity tools using selectable cards.
  • Standalone acknowledgements and terms acceptance.

Not For

When users must choose exactly one option, Radio is clearer. For settings that switch on and off immediately, Switch communicates that better.

Very long option lists need search, grouping, or filtering, since bulk actions don’t fix discovery problems.

Complex hierarchical or dependent permissions suit a tree selector or structured configuration flow better than a flat checkbox group.


Performance Budget

Keep checked-state animations short and separate from the value update, so counts and form state change instantly. Reconcile bulk and Shift-click changes in a single state update, preserve item identity during drag, and avoid animating unaffected items in large groups.


Accessibility and Mobile

Use native checkbox semantics with labels, a fieldset and legend for groups, Space to toggle, and limits explained in text, not just disabled styling. Bulk actions must be keyboard-operable, and Shift-click and drag need alternatives. On mobile, keep tap areas large and cards responsive, and with reduced motion simplify fills, bounce, and strike-through.


Common Mistakes

  • Treating the minimum as a hard block rather than validation feedback.
  • Letting Select all exceed the maximum or include disabled options.
  • Letting fills, labels, and counters drift from the real selected values.
  • Moving a checked state to another item during reordering.
  • Making Shift-click the only efficient way to select many items.
  • Applying card fill colour to inline checkboxes.
  • Expecting icon animation or mark styles to show when the icon is hidden.
  • Using colour as the only selection indicator.
  • Preselecting consent checkboxes.
  • Overanimating ordinary selection.

Changelog

v1.0.0

Oct 23, 2026
Initial release

API Reference

PropTypeDefaultDescription
themestringvscodeColour palette. Any theme but Default also puts ticked labels in its accent colour.
modestringdarkLight or dark version of the chosen palette.
variantstringcardInline checkboxes or bordered cards.
cardFillColorstringaccentFill of ticked cards: muted tint or solid accent. Needs the Cards style.
showIconbooleantrueShow the box next to each label.
showDescriptionbooleantrueShow each option's description line.
fillbooleantrueBox and card fill grow from the centre.
elasticbooleantrueSpringy squash when a box is ticked. Needs Icon on.
markstringcheckWhat appears in a ticked box. Needs Icon on.
appearancestringfilledFilled or outline box when ticked. Needs Icon on.
roundedstringmdBox corner radius. Needs Icon on.
strikebooleantrueStrike through ticked labels.
showSelectAllbooleantrueShow the Select all button.
showDeselectAllbooleantrueShow the Deselect all button.
showCounterbooleantrueShow the rolling selected counter.
rangeSelectbooleantrueShift-click ticks a range of options.
minnumber0Fewest options that should be ticked: below this it shows an error and shakes, but doesn't stop unticking. Capped at At most.
maxnumber0Most options that can be ticked; 0 means no limit.
reorderbooleantrueDrag options up and down to reorder them.
colorfulbooleantrueUse each option's own accent colour. In Cards this replaces the Card fill colour's muted tint.

Questions, Answered.

What is Checkbox?

Checkbox is an animated React component for selecting one or several independent options, with centre-out fills, elastic feedback, selectable cards, bulk actions, Shift-click ranges, and selection limits.

Does Checkbox support selectable cards?

Yes. The Style setting switches from compact inline options to larger cards with a bigger interaction area and selected-card backgrounds.

Does Checkbox support Select all and Deselect all?

Yes. Select all chooses enabled options up to the configured maximum, and Deselect all clears the group, which may trigger minimum-selection feedback.

Can I limit the number of selections?

Yes. At least shows validation feedback below a minimum, and At most blocks new selections once the maximum is reached.

Can users select a range of checkboxes?

Yes. Shift-click toggles every option between two clicks, respecting disabled items and the maximum.

What is the difference between Checkbox and Radio?

Checkbox lets several independent options stay selected, while Radio allows only one. A circular checkbox mark is purely visual.

View MoreView More

Request a Custom Animation

Need a custom effect? Tell us what to create.

Related Effects

Explore All EffectsExplore All EffectsExplore All Effects
Date Picker Component
@base-ui/reactclass-variance-authoritydate-fns

Date Picker Component

Components

Button Component
lucide-reactmotiontailwind-merge

Button Component

Components

Attachment Component
@base-ui/react@gsap/reactclass-variance-authority

Attachment Component

Components

Questionnaire Component
@base-ui/reactclass-variance-authoritymotion

Questionnaire Component

Components

All Effects
Featured ComponentsText AnimationsAnimated BackgroundsAnimated ButtonsCarousel EffectsScroll EffectsCreative ComponentsNavigationsCursor EffectsTransitionsLoadersWebGL & 3D Effects
Templates
IntroductionInstallationCLIDependenciesLicense
PricingBlogGithubNPMMCP Doc