ArcaneJaspr Codex
Documentation
ArcaneSignupCard
Complete registration UI with validation and social sign-up
Live Demo
Create an account
Get started with your free account
or continue with email
At least 8 characters, one uppercase letter, one number
Already have an account? Sign in

ArcaneSignupCard#

A complete registration UI component with email/password form, password validation, terms acceptance, and social sign-up buttons.

Basic Usage#

ArcaneSignupCard(
  methods: [AuthMethod.email, AuthMethod.github, AuthMethod.google],
  loginRoute: '/login',
  termsUrl: '/terms',
  privacyUrl: '/privacy',
)

Properties#

PropertyTypeDefaultDescription
methods List<AuthMethod> [email, github, google] Authentication methods to display
header Component? null Header component (logo, title)
loginRoute String? null Route for login link
passwordPolicy PasswordPolicy PasswordPolicy() Password validation rules
termsUrl String? null Terms of service URL
privacyUrl String? null Privacy policy URL
onSuccess VoidCallback? null Callback when registration succeeds
maxWidth String '400px' Max width of the card

Password Policies#

// Custom policy
ArcaneSignupCard(
  passwordPolicy: PasswordPolicy(
    minLength: 8,
    requireUppercase: true,
    requireNumber: true,
    requireSpecialChar: true,
  ),
)

// Preset policies
ArcaneSignupCard(
  passwordPolicy: PasswordPolicy.weak,   // 6+ chars
)

ArcaneSignupCard(
  passwordPolicy: PasswordPolicy.medium, // 8+ chars, uppercase, number
)

ArcaneSignupCard(
  passwordPolicy: PasswordPolicy.strong, // 8+ chars, upper, lower, number, special
)

Examples#

With Terms Acceptance#

ArcaneSignupCard(
  methods: [AuthMethod.email],
  loginRoute: '/login',
  termsUrl: '/terms',
  privacyUrl: '/privacy',
  passwordPolicy: PasswordPolicy.medium,
)

Social Only#

ArcaneSignupCard(
  methods: [AuthMethod.github, AuthMethod.google],
  loginRoute: '/login',
)

With Custom Header#

ArcaneSignupCard(
  header: ArcaneColumn(
    gapSize: Gap.sm,
    children: [
      ArcaneIcon.home(size: IconSize.xl2),
      ArcaneText('Join MyApp', weight: FontWeight.bold),
    ],
  ),
  methods: [AuthMethod.email, AuthMethod.github],
  loginRoute: '/login',
)

Form Fields#

The signup card includes:

  • Name - Display name field
  • Email - Email address with validation
  • Password - With policy hint displayed
  • Confirm Password - Must match password
  • Terms Checkbox - Only shown if termsUrl or privacyUrl is set

Features#

  • Password validation - Real-time policy checking
  • Confirm password - Ensures passwords match
  • Terms acceptance - Optional checkbox for legal compliance
  • Social sign-up - GitHub, Google, Apple buttons
  • Loading states - Shows progress during registration
  • Error display - Shows validation and server errors

Context Extensions#

// Email registration
context.registerWithEmail(email, password, displayName)

// OAuth (triggered by social buttons)
context.signInWithGitHub()
context.signInWithGoogle()
context.signInWithApple()