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.
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.
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.
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
| Prop | Tipo | Obrigatorio | Descricao |
|---|---|---|---|
| number | string | Sim | Numero do cartao de credito (bruto ou formatado) |
| name | string | Sim | Nome do titular exibido na frente |
| expiry | string | Sim | Data de validade (ex: "12/25") |
| cvc | string | Sim | Codigo CVC/CVV exibido no verso |
| focus | Focused | Sim | Qual campo esta focado ("number" | "name" | "expiry" | "cvc" | "") |
| richColors | boolean | Nao | Ativar tema de gradiente escuro premium |
| locale | "en" | "pt-BR" | "es" | Nao | Idioma para labels da UI |
| cardSizes | CardSizes | Nao | Dimensoes personalizadas do cartao (width, height, maxWidth, maxHeight) |
Exportacoes
| Exportacao | Tipo | Descricao |
|---|---|---|
| CreditCard | Component | Componente principal do cartao de credito (React.memo) |
| formatCardNumber | Function | Formata uma string numerica com placeholders de bullet |
| getCardIssuer | Function | Detecta a bandeira a partir do prefixo do numero |
| ISSUERS | Constant | Tupla readonly de todas as bandeiras suportadas |
| FOCUSED_FIELDS | Constant | Tupla readonly de todos os valores de foco validos |
| Focused | Type | "number" | "name" | "expiry" | "cvc" | "" |
| Issuer | Type | Uniao de todos os nomes de bandeiras suportadas |