/v1.0

FloatingActionButton

FloatingActionButton renderiza un botón circular de posición fija anclado a la esquina inferior derecha del viewport. Es el patrón mobile-first para exponer la única acción principal en una pantalla — por ejemplo, "Crear nuevo elemento". El botón acepta un ícono y soporta las mismas variantes visuales y presets de tamaño que IconButton.

Props

| Prop | Tipo | Requerido | Por defecto | Descripción | |------|------|-----------|-------------|-------------| | onClick | () => void | Sí | — | Callback que se dispara cuando se presiona el botón. | | icon | string | No | — | Identificador del ícono mostrado dentro del botón. | | iconPaths | any[] | No | — | Datos de path SVG para un ícono personalizado (alternativa a icon). | | iconSize | number | No | — | Tamaño del ícono en píxeles (sobreescribe el tamaño calculado). | | color | string | No | "primary" | Clave de color del tema o cualquier color CSS (hex o nombre). | | type | "clear" \| "outline" \| "solid" | No | "solid" | Variante visual del botón. | | borderRadius | number | No | 22 | Radio del borde en píxeles. El valor por defecto produce un círculo. | | disabled | boolean | No | false | Deshabilita la interacción y reduce la opacidad. | | hasShadow | boolean | No | true | Si se aplica sombra al botón. | | size | "xs" \| "sm" \| "md" \| "lg" \| "xl" | No | "md" | Controla el ancho, alto y tamaño del ícono del botón. | | zIndex | number | No | 999999 | Z-index CSS del elemento fijo. | | style | React.CSSProperties | No | — | Estilos en línea aplicados al botón. Usa bottom y right para reposicionarlo. |

Uso

Básico

import FloatingActionButton from '@/components/buttons/FloatingActionButton';

export default function Page() {
  return (
    <>
      {/* contenido de la página */}
      <FloatingActionButton
        icon="plus"
        onClick={() => console.log('crear nuevo')}
      />
    </>
  );
}

Posición y color personalizados

import FloatingActionButton from '@/components/buttons/FloatingActionButton';

export default function Page() {
  return (
    <FloatingActionButton
      icon="plus"
      color="success"
      size="lg"
      style={{ bottom: 32, right: 32 }}
      onClick={() => console.log('crear')}
    />
  );
}

Variante outline

import FloatingActionButton from '@/components/buttons/FloatingActionButton';

export default function Page() {
  return (
    <FloatingActionButton
      icon="edit"
      type="outline"
      color="primary"
      onClick={() => console.log('modo edición')}
    />
  );
}