astralyxdev

Mask Input

Forms 1

About

A text input that formats as you type using a pattern mask (digits, letters, or either), such as a card number, phone number, or date, while also handing back the raw unformatted characters for submission.

Built with React and Tailwind. Copy the prompt and paste it into Claude Code, Cursor or Lovable: your agent adds Mask Input to your project and fits it to your theme.

Code

How Mask Input is used: the demo's code. The component's own source comes with a free account.

Usage.tsx

"use client";

import { MaskInput } from "@/components/ui/mask-input";
import { useState } from "react";

export default function MaskInputDemo() {
  const [raw, setRaw] = useState("");

  return (
    <div className="flex w-full max-w-xs flex-col gap-2 bg-background text-foreground">
      <label
        className="text-sm font-medium text-muted-foreground"
        htmlFor="card-number"
      >
        Card number
      </label>
      <MaskInput
        id="card-number"
        mask="#### #### #### ####"
        onValueChange={(_, value) => setRaw(value)}
      />
      <p className="text-xs text-muted-foreground">
        Raw digits sent to the API: {raw || "—"}
      </p>
    </div>
  );
}

More by astralyxdev

View all
  • Rate Limit Meter

    Rate Limit Meter

    21
  • Note Graph

    Note Graph

    15
  • Migration List

    Migration List

    8
  • Checkout Summary

    Checkout Summary

    8
  • Prompt Versions

    Prompt Versions

    7
  • IP Cluster

    IP Cluster

    7
  • Budget Guard

    Budget Guard

    7
  • Health Checks

    Health Checks

    6

More in Forms

View all
  • form

    form

    37
  • Premium Auth

    Premium Auth

    517
  • Login Card

    Login Card

    26
  • Auth Form

    Auth Form

    137
  • Form

    Form

    6
  • Form Layout

    Form Layout

    97
  • Form

    Form

    12
  • Contact Form

    Contact Form

    13