Skip to main content

Animated Sign-Up Button – Free CSS JavaScript Pink Gradient Outline Glow, Shine, Spinner & Progress Bar Registration UI Component (Glassmorphism, mask-composite:exclude, 'Creating Account…')

The Animated Sign-Up Button is a free, copy-paste ready registration UI button component built with pure HTML, CSS pseudo-element mask tricks, and vanilla JavaScript. It is the pink-identity sibling of the Animated Sign-In Button — sharing the identical glassmorphism + gradient outline + shine + spinner + progress architecture, but differentiated with a pink-led color system appropriate for the registration action. The gradient: --accent: linear-gradient(135deg, #ec4899, #7c3aed, #06b6d4) leads with hot pink (#ec4899), through violet, to cyan. The ambient background uses rgba(236,72,153,0.15) at 20%/20% instead of the sign-in's purple ambient — visually signalling a different action even before any interaction.

Hover state: transform: translateY(-4px) scale(1.03), box-shadow: 0 0 18px rgba(236,72,153,0.55) (pink glow). Gradient outline: ::before with inset: -2px, padding: 2px, mask-composite: exclude reveals only the 2px border ring in the pink→violet→cyan gradient. Shine: .shine span, skewX(-18deg), sweeps left: -120% → 130% over 1s. Click: label → 'Creating Account…', SVG upload icon hides, 18px white spinner (0.8s linear) appears, 4px gradient progress bar fills via p += 5 + Math.random() * 15 every 120ms. On completion: 'Welcome!' for 2000ms, then full restore to 'Sign Up' + icon. The SVG icon is an upload/add arrow: M12 5v14 (vertical center line), M7 10l5-5 5 5 (upward chevron), M4 19h16 (horizontal base) — reading as "submit upward" or "add account."

What's Included in the Download

Sign-Up vs Sign-In: Color Identity in Auth UI Design

The sign-up button's pink identity (#ec4899 leading the gradient, pink hover glow, pink ambient background) versus the sign-in button's indigo identity (#4f46e5 leading, purple glow) encodes a common UX convention: the returning user action (sign-in) uses a cool, familiar tone; the new user action (sign-up) uses a warm, energetic tone to signal opportunity and invite. When paired on the same auth page, users can distinguish the two actions by color alone without reading the label. Both buttons use identical structure, sizing (border-radius:14px, padding:16px 34px), and animation timing — making them visually cohesive as a matched pair.

How to Customize the Label for Any Registration Flow

The three-state label pattern is fully generic. Replace the strings in the JavaScript to match your UX copy: 'Sign Up' (idle) → 'Creating Account…' (loading) → 'Welcome!' (success). Other examples: 'Register'→'Registering…'→'All Set!', 'Join Now'→'Joining…'→'You're In!', 'Get Started'→'Setting Up…'→'Ready!'. Change the 2000ms success display in setTimeout() to match your redirect timing — if you redirect immediately on success, set it to 0 or remove the restore step entirely.

License

Released under Creative Commons Attribution 4.0 International (CC BY 4.0). Free for personal and commercial use with attribution to Coodeverse.

Source Code

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=device-width,initial-scale=1" />
  <title>Animated Sign-Up Button</title>
</head>
<body>
  <button class="signup-btn" id="signupBtn">
    <svg id="signupIcon" width="20" height="20" fill="none" stroke="white"
      stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
      <path d="M12 5v14"/>
      <path d="M7 10l5-5 5 5"/>
      <path d="M4 19h16"/>
    </svg>
    <div class="spinner" id="spinner"></div>
    <span id="labelText">Sign Up</span>
    <span class="shine"></span>
    <div class="progress" id="progress"></div>
  </button>
</body>
</html>

Frequently Asked Questions

Common questions about the free Animated Sign-Up Button project.

Yes — 100% free under Creative Commons Attribution 4.0. No sign-up, no payment. Click Download Project and use it in any registration or auth UI project with attribution to Coodeverse.

Same architecture, three differences: (1) Color — sign-up uses #ec4899 (pink) leading the gradient and pink hover glow rgba(236,72,153,0.55); sign-in uses #4f46e5 (indigo) with purple glow. (2) Icon — sign-up shows an SVG upload arrow (vertical line + upward chevron + horizontal base); sign-in shows a door+entry arrow. (3) Label — sign-up uses 'Creating Account…'; sign-in uses 'Signing In…'. Use both together on an auth page for a cohesive but visually distinct matched pair.

Three paths in viewBox="0 0 24 24": vertical center line M12 5v14, upward chevron M7 10l5-5 5 5 (from 7,10 up-left 5 to tip at 12,5, then down-right 5 to 17,10), horizontal base M4 19h16 (bottom bar from 4 to 20 at y:19). Set fill="none" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round". Reads as "submit upward" or "add account" — appropriate for sign-up and registration actions.

Set --accent:linear-gradient(135deg,#ec4899,#7c3aed,#06b6d4). Apply to ::before with mask-composite:exclude: position:absolute; inset:-2px; border-radius:inherit; padding:2px; background:var(--accent); mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite:xor; mask-composite:exclude; opacity:0; transition:0.4s. Set opacity:1 on :hover::before. Match the hover glow: box-shadow:0 0 18px rgba(236,72,153,0.55). Pink leads the gradient — placing the most vibrant color at top-left for maximum visual impact on hover approach.

Place both buttons side by side or on separate tabs. Matching glassmorphism base (backdrop-filter:blur(10px), rgba(255,255,255,0.06), border-radius:14px) makes them visually cohesive. The distinct gradient identities (indigo vs pink) let users distinguish actions by color. UX convention: cool/indigo for returning users (sign-in = familiar), warm/pink for new users (sign-up = opportunity). Both share identical sizing so they align perfectly without extra CSS.

Change the three strings in the click listener: idle (label.textContent = 'Sign Up' in restore), loading (label.textContent = 'Creating Account...' on click), success (label.textContent = 'Welcome!' on complete). Examples: 'Register'→'Registering…'→'All Set!', 'Join Now'→'Joining…'→'You're In!', 'Get Started'→'Setting Up…'→'Ready!'. Adjust the 2000ms setTimeout to match your redirect timing — set to 0 if you redirect immediately on success.

Browse coodeverse.com/projects — Animated Sign-In Button (indigo gradient sibling), Stylish Animated Search Button, Enhanced Animated Refresh Button, Holographic Login (full auth page), and more. All 100% free with complete HTML CSS JavaScript source code.