Saltar al contenido
EspañolEnglish
Todos los componentes (204)

Campo de tarjeta

Campos · CardField

Qué es y cuándo usarlo

Los datos de la tarjeta en un bloque: número, caducidad y código de seguridad, y el titular si se pide. Es un fieldset con su leyenda, porque los tres campos son un solo dato.

Cuándo usarlo

  • El pago con tarjeta dentro de la propia página. Lo que sale por onChange va limpio: el número, solo cifras (EMPTY_CARD para empezar en blanco).
  • listCard(value, today) dice si está entera y sin fallos, para habilitar el botón de pagar; errors pinta lo que responda la pasarela, que manda sobre lo de aquí.
  • withHolder cuando la pasarela pide el nombre impreso. alert es la nota de debajo (con "" no sale).

Cuándo no

  • Enseñar una tarjeta ya guardada: no se vuelve a pedir; maskCard(number) la escribe como «•••• 4242».
  • Una cuenta bancaria: IbanField.

Teclado: Tab recorre titular, número, caducidad y código. El número se agrupa mientras se escribe (en American Express, 4-6-5, como viene impresa) y la barra de la caducidad se pone sola: 1228 se escribe 12/28. Cada campo se comprueba al salir de él, no en cada tecla.

Accesibilidad: la marca se dice con palabras («Visa», «American Express»), no con un logotipo que no se lee en voz alta. El código pide tres o cuatro cifras según la marca, y la ayuda dice dónde está impreso. Llevan los autocomplete que espera el navegador (cc-name, cc-number, cc-exp, cc-csc): sin ellos el autorrelleno no ofrece la tarjeta guardada. La caducidad vale hasta el último día de su mes.

Aspecto fino: sin variables propias: los campos usan --amset-field-* y el bloque se ajusta con las clases amset-payment-card__title, amset-payment-card__row, amset-payment-card__brand y amset-payment-card__alert.

Cómo se ve

Pagar con tarjeta
Mes y año
3 cifras, al dorso de la tarjeta

Los datos van cifrados a la pasarela de pago. Aquí no se guarda nada.

<CardField
  label="Pagar con tarjeta"
  withHolder
  value={tarjeta}
  onChange={setTarjeta}
/>

Props

Se importa con import { CardField } from '@amset/ui'. Las obligatorias van marcadas.

PropTipoPara qué sirve
onChangeobligatoria(data: CardData) => void—
valueobligatoriaCardData—
alertstringNota bajo el bloque. Por defecto, la de «no guardamos la tarjeta».
classNamestringSe une a las clases de la biblioteca, no las sustituye.
disabledboolean—
errorsCardErrorsErrores de fuera (los de la pasarela). Mandan sobre los de aqui.
labelstringTitulo del bloque. Es la leyenda del grupo de campos.
size"sm" | "md" | "lg"—
todayDatePara poder probar la caducidad sin depender del dia de hoy.
variantFieldVariant—
withHolderbooleanPide tambien el nombre que va impreso en la tarjeta.

Acepta además los atributos del elemento que pinta: className, style, data-*, aria-* y sus eventos.

En el banco de pruebas

Cada estado y cada variante, para tocarlos de uno en uno, en su ficha de ui.amset.tech: