v0.3.0 — Licenca MIT

Componentes de cartao
de credito para React

Um componente React leve e totalmente tipado que renderiza cartoes de credito realistas com animacoes 3D, deteccao automatica de bandeira e temas visuais premium.

4111 1111 1111 1111
JANE COOPER
VALID THRU12/28
123

Tudo o que voce precisa

Componente pronto para uso sem nenhuma configuracao.

Animacao 3D de Giro

Giro suave baseado em perspectiva CSS ao focar o campo CVC. Transicao cubic-bezier de 0.7s para uma sensacao premium.

Deteccao Automatica de Bandeira

Identifica automaticamente Visa, Mastercard, Amex, Discover, JCB, Diners, Elo e mais a partir do prefixo do numero do cartao.

Modo Cores Ricas

Ative gradientes escuros premium com cores especificas de cada bandeira, chip metalico e sombras de texto brilhantes.

Internacionalizacao

Suporte para ingles, portugues (pt-BR) e espanhol. Labels como "VALIDO ATE" se adaptam automaticamente.

Zero CSS Necessario

Todos os estilos sao inline. Nenhuma importacao de CSS externo necessaria. Funciona com qualquer framework ou solucao de estilos.

TypeScript Completo

Escrito em TypeScript com tipos exportados para Focused, Issuer, CardSizes e todas as props. DX garantida.

Experimente voce mesmo

Digite nos campos abaixo para ver o cartao atualizar em tempo real.

•••• •••• •••• ••••
YOUR NAME HERE
VALID THRU••/••
•••

Tente digitar um numero Visa (comeca com 4), Mastercard (51-55) ou Amex (34/37) para ver a deteccao automatica de bandeira.

12 bandeiras suportadas

Detectadas automaticamente a partir do prefixo do numero do cartao.

Visa
Mastercard
Amex
Discover
Diners
JCB
Elo
Sodexo
VR
Ticket VR
Ticket VA
Alelo

Simples de usar

Comece com apenas algumas linhas de codigo.

import { useState } from "react";
import { CreditCard, type Focused } from "react-credit-cards-library";

function PaymentForm() {
  const [card, setCard] = useState({
    number: "", name: "", expiry: "", cvc: "",
  });
  const [focus, setFocus] = useState<Focused>("");

  return (
    <>
      <CreditCard
        number={card.number}
        name={card.name}
        expiry={card.expiry}
        cvc={card.cvc}
        focus={focus}
        richColors
      />

      <input
        name="number"
        placeholder="Card Number"
        value={card.number}
        onChange={(e) => setCard({ ...card, number: e.target.value })}
        onFocus={() => setFocus("number")}
      />
      {/* ...more inputs for name, expiry, cvc */}
    </>
  );
}

Referencia da API

Props totalmente tipadas e utilitarios exportados.

Props do CreditCard

PropTipoObrigatorioDescricao
numberstringSimNumero do cartao de credito (bruto ou formatado)
namestringSimNome do titular exibido na frente
expirystringSimData de validade (ex: "12/25")
cvcstringSimCodigo CVC/CVV exibido no verso
focusFocusedSimQual campo esta focado ("number" | "name" | "expiry" | "cvc" | "")
richColorsbooleanNaoAtivar tema de gradiente escuro premium
locale"en" | "pt-BR" | "es"NaoIdioma para labels da UI
cardSizesCardSizesNaoDimensoes personalizadas do cartao (width, height, maxWidth, maxHeight)

Exportacoes

ExportacaoTipoDescricao
CreditCardComponentComponente principal do cartao de credito (React.memo)
formatCardNumberFunctionFormata uma string numerica com placeholders de bullet
getCardIssuerFunctionDetecta a bandeira a partir do prefixo do numero
ISSUERSConstantTupla readonly de todas as bandeiras suportadas
FOCUSED_FIELDSConstantTupla readonly de todos os valores de foco validos
FocusedType"number" | "name" | "expiry" | "cvc" | ""
IssuerTypeUniao de todos os nomes de bandeiras suportadas