/v1.0

WebsiteButton

WebsiteButton abre una URL dada en una nueva pestaña del navegador (window.open) al hacer clic. Envuelve el componente base Button y usa por defecto el color primario con un ícono de globo terráqueo. Úsalo en perfiles de organizaciones, tarjetas de proveedores o cualquier vista que muestre un enlace a un sitio web externo.

Props

| Prop | Tipo | Requerido | Por defecto | Descripción | |------|------|-----------|-------------|-------------| | url | string | Sí | — | URL a abrir en una nueva pestaña. Debe ser una URL completa (ej. https://ejemplo.com). | | title | string | No | "Visitar sitio" | Etiqueta que se muestra en el botón. | | icon | string | No | "world" | Identificador del ícono mostrado antes de la etiqueta. | | 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. | | size | "xs" \| "sm" \| "md" \| "lg" \| "xl" | No | "md" | Controla el padding, tamaño de fuente y tamaño del ícono. | | borderRadius | number | No | 4 | Radio del borde en píxeles. | | disabled | boolean | No | false | Deshabilita la interacción y reduce la opacidad. | | style | React.CSSProperties | No | — | Estilos en línea aplicados al botón. |

Uso

Básico

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

export default function Example() {
  return (
    <WebsiteButton url="https://snapping.dev" />
  );
}

Etiqueta personalizada y estilo outline

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

export default function SupplierCard({ supplier }: { supplier: { website: string } }) {
  return (
    <WebsiteButton
      url={supplier.website}
      title="Visitar sitio web"
      type="outline"
      size="sm"
      borderRadius={8}
    />
  );
}