Ir al contenido

Countdown

Temporizador de cuenta regresiva con formato y estilo personalizables.

import { Countdown } from 'asterui'

Cuenta Regresiva Básica

Temporizador de cuenta regresiva simple.

01:00:00
import { Countdown } from 'asterui'
import { useMemo } from 'react'

function App() {
  const target = useMemo(() => Date.now() + 60 * 60 * 1000, [])
  
  return (
      <Countdown value={target} />
    )
}

export default App

Con Días

Incluye días en la cuenta regresiva.

03:00:00:00
import { Countdown } from 'asterui'
import { useMemo } from 'react'

function App() {
  const target = useMemo(() => Date.now() + 3 * 24 * 60 * 60 * 1000, [])
  
  return (
      <Countdown value={target} format="DD:HH:MM:SS" />
    )
}

export default App

Tamaños

Diferentes variantes de tamaño.

01:00:00
01:00:00
01:00:00
01:00:00
import { Countdown, Space } from 'asterui'
import { useState } from 'react'

function App() {
  const [target] = useState(() => Date.now() + 60 * 60 * 1000)
  
  return (
      <Space direction="vertical" size="lg">
        <Countdown value={target} size="xs" />
        <Countdown value={target} size="sm" />
        <Countdown value={target} size="md" />
        <Countdown value={target} size="lg" />
      </Space>
    )
}

export default App

Con Etiquetas

Muestra etiquetas debajo de cada unidad.

02days
00hours
00min
00sec
import { Countdown } from 'asterui'
import { useState } from 'react'

function App() {
  const [target] = useState(() => Date.now() + 2 * 24 * 60 * 60 * 1000)
  
  return (
      <Countdown
        value={target}
        format="DD:HH:MM:SS"
        showLabels
      />
    )
}

export default App

Estilo con Cajas

Cada unidad en una caja con estilo.

01days
00hours
00min
00sec
import { Countdown } from 'asterui'
import { useState } from 'react'

function App() {
  const [target] = useState(() => Date.now() + 24 * 60 * 60 * 1000)
  
  return (
      <Countdown
        value={target}
        format="DD:HH:MM:SS"
        showLabels
        boxed
      />
    )
}

export default App

Con Callback

Ejecuta callback cuando la cuenta regresiva termina.

00:20
import { Countdown, notification } from 'asterui'
import { useState } from 'react'

function App() {
  const [target, setTarget] = useState(() => Date.now() + 20 * 1000)
  
  const handleFinish = () => {
    notification.success({ message: 'Countdown finished!' })
    setTarget(Date.now() + 20 * 1000) // Restart
  }
  
  return (
      <Countdown
        key={target}
        value={target}
        format="MM:SS"
        onFinish={handleFinish}
      />
    )
}

export default App
PropiedadDescripciónTipoPredeterminado
valueMarca de tiempo objetivo en milisegundos u objeto Datenumber | Date-
formatCadena de formato: ‘D’ días, ‘H’ horas, ‘M’ minutos, ‘S’ segundosstring'HH:MM:SS'
onFinishCallback cuando la cuenta regresiva llega a cero() => void-
onChangeCallback en cada tick con tiempo restante(value: number) => void-
sizeVariante de tamaño'xs' | 'sm' | 'md' | 'lg' | 'xl''md'
showLabelsMostrar etiquetas debajo de cada unidadbooleanfalse
labelsEtiquetas personalizadas para cada unidad{ days?: string, hours?: string, minutes?: string, seconds?: string }-
boxedMostrar estilo de caja alrededor de cada unidadbooleanfalse
classNameClases CSS adicionalesstring-
  • Usa aria-live para anunciar actualizaciones de cuenta regresiva
  • Proporciona aria-label para cada unidad de cuenta regresiva
  • Las etiquetas están asociadas visualmente con sus valores