Velocity X Components by Aidxn Design

Forms

Consent Opt-In Group

An in-form consent fieldset: a required legal-acceptance checkbox with an error state, plus granular per-channel marketing opt-ins, each its own named checkbox so consent is recorded separately.

Lifetime access Included with the VX Components lifetime licence.
bash
$ velocityx add consent-opt-in-group

Needs a licence key — buy lifetime access here, then velocityx login once.

Lifetime access Included with the VX Components lifetime licence.
bash
$ velocityx add consent-opt-in-group@1.0.0

Needs a licence key — buy lifetime access here, then velocityx login once.

Built for astro.

Full docs for Consent Opt-In Group →

astro
Consent Opt-In Group
Keep me posted

Optional — unsubscribe anytime. These are separate from the legal consent above, which is required to continue.

Framework
astro
Source
137 lines
ConsentOptInGroup.astro
Runtime
Static markup
zero client JS
Theme
7 tokens
re-themes from your scale
Dark mode
Built in
dark: variants
Accessibility
2 ARIA
attributes and roles

Props

NameTypeRequiredDefaultDescription
legalLabelstringNo'I agree to the Terms and Privacy Policy.'
termsHrefstringNo'#'
privacyHrefstringNo'#'
legalCheckedbooleanNofalse
legalErrorstringNo''
channelsConsentChannel[]No[ { name: 'opt_in_email', label: 'Email me product updates and offers', defaultChecked: true }, { name: 'opt_in_sms', label: 'Text me order and shipping updates' }, ]
headingstring | nullNo'Keep me posted'
classNamestringNo''

Using it

The smallest call that compiles — required props only. The import is written for your own file at src/components/Example.astro; adjust the relative import if yours sits elsewhere. Everything optional is in the table above, with its default.

astro
---
import ConsentOptInGroup from './velocity/consent-opt-in-group/ConsentOptInGroup.astro';
---

<ConsentOptInGroup />

Built from Consent Opt-In Group's own prop signature and the path the CLI installs it to, so it can't drift from either.

Accessibility

ARIA attributes
aria-describedby, aria-invalid
Keyboard
Built on native controls — Enter/Space work as standard
Screen readers
Ships screen-reader-only text

Read from the source, not asserted — anything not listed simply isn't in this component's markup.

Behaviour

Ships client JS
No — renders to static markup
Dark mode
Carries its own dark: variants

Theming

This component paints from 7 steps of your theme scale — no hardcoded colours, and no font-family of its own, so your type cascade wins. Override the variables and it follows.

primary-200primary-300primary-400primary-500primary-600primary-700primary-950

Get the Velocity preset and CSS theme from the public source guide. The CLI theme command is not available on npm yet.

File this creates

The CLI writes this path into your project — nothing else moves. Paths are under your source root, which defaults to src/; pass --dest if yours is elsewhere.

  • src/components/velocity/consent-opt-in-group/ConsentOptInGroup.astro 137 lines
Copy the paths
text
src/components/velocity/consent-opt-in-group/ConsentOptInGroup.astro

Versions

2 published versions are preserved with their own access level and source hash. The CLI can pin to any version and upgrade without overwriting local edits.

  1. v1.0.1 Current Subscription21 Oct 2026
    velocityx add consent-opt-in-group
  2. v1.0.0Subscription21 Oct 2026
    velocityx add consent-opt-in-group@1.0.0

Consent Opt-In Group — questions

How do I install Consent Opt-In Group?

Run velocityx add consent-opt-in-group . The CLI writes the source straight into your project — it is not a runtime package dependency.

Do I need a licence for Consent Opt-In Group?

Yes. It is part of the lifetime library — buy access at https://aidxn.com/shop/velocity-x-component-library/, authenticate once, and install it. Your lifetime licence includes future component updates.

Can I edit Consent Opt-In Group after installing it?

Yes — the files are yours once written. The CLI compares its lockfile hash before upgrades and refuses to overwrite code you changed.

Does Consent Opt-In Group ship JavaScript to my users?

No. It renders to static markup with no client-side JavaScript of its own.

Will Consent Opt-In Group match my brand colours?

Yes. It paints entirely from your theme scale — 7 steps of primary-* / accent-* — with no hardcoded hex values and no font-family of its own. Override the theme CSS variables and it follows your design system instead of ours.

Which version of Consent Opt-In Group should I install?

There are 2 published versions, and the default install gives you the current one. Pin an older one with velocityx add consent-opt-in-group@<version> , or move between them later with velocityx upgrade consent-opt-in-group — downgrades work too.

Does Consent Opt-In Group pull in any dependencies?

No external ones. Every component in the library is built with react/react-dom or plain Astro only — no GSAP, Radix, Swiper or Headless UI — which is what makes dropping it into an existing project safe.

Set up & reference

All docs →

Install this component:

bash
$ velocityx add consent-opt-in-group

More from Forms.