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

    26
  • Note Graph

    Note Graph

    18
  • Checkout Summary

    Checkout Summary

    14
  • Migration List

    Migration List

    8
  • IP Cluster

    IP Cluster

    8
  • Prompt Versions

    Prompt Versions

    7
  • Budget Guard

    Budget Guard

    7
  • Health Checks

    Health Checks

    6

More in Forms

View all
  • Premium Auth

    Premium Auth

    524
  • Contact Card

    Contact Card

    1K
  • Book A Demo 1

    Book A Demo 1

    73
  • Form

    Form

    16
  • Login 1

    Login 1

    53
  • Book A Demo 3

    Book A Demo 3

    89
  • Hand-Drawn Checkbox

    Hand-Drawn Checkbox

    48
  • Login Card

    Login Card

    6