Link

Anclas de enlace localizadas integradas con el router.

Las primitivas Link y NavLink extienden los enlaces de anclaje HTML estándar integrando locales de idioma, directorios base y navegación de rutas SPA.

Inicio RápidoLink

Crea enlaces de enrutamiento localizados y conscientes de SPA:

tsx
import { Link, NavLink } from 'boltdocs/primitives'

export default function SidebarNav() {
  return (
    <div className="flex flex-col gap-2">
      {/* 1. Navegación localizada estándar */}
      <Link href="/getting-started" className="text-primary-500 hover:underline">
        Primeros Pasos
      </Link>

      {/* 2. NavLink con resaltado automático de estado activo */}
      <NavLink
        href="/api/config-reference"
        className={({ isActive }) =>
          `px-3 py-1 rounded text-sm ${isActive ? 'bg-primary-500 text-white' : 'text-muted hover:bg-soft'}`
        }
      >
        Referencia de Configuración
      </NavLink>
    </div>
  )
}

Mecanismos InternosLink

  • Localización: Las cadenas href directas (como /getting-started) se analizan y traducen automáticamente a través del hook useLocalizedTo. Por ejemplo, en una página localizada en español, /getting-started se transforma transparentemente a /es/getting-started.
  • Enrutamiento SPA: Los clics en enlaces internos interceptan la navegación predeterminada del navegador para realizar enrutamiento rápido del lado del cliente, previniendo recargas completas de página.

Props del ComponenteLink

Hereda todos los atributos estándar del elemento HTML anchor (<a>):

PropiedadTipoPredeterminadoDescripción
hrefstringundefinedRuta de destino de la ruta (por ejemplo, /docs/getting-started).
prefetch'hover' | 'none''hover'Estrategia de precarga para objetivos de enlaces del router.

Extiende las propiedades estándar de Link:

PropiedadTipoPredeterminadoDescripción
hrefstringundefinedRuta de destino.
endbooleanfalseSi se establece en true, el enlace solo se resalta como activo cuando las rutas coinciden exactamente.
classNamestring | ((props: { isActive: boolean }) => string)undefinedNombre de clase de estilo, soportando funciones de lógica condicional.
childrenReactNode | ((props: { isActive: boolean }) => ReactNode)undefinedNodos hijos, soportando funciones de renderizado condicional.

Personalización y estadosLink

Link es neutral en estilos — renderiza un <a> estándar con enrutamiento localizado, precarga y navegación SPA, pero sin visuales. Sus propiedades data-* pasan directamente al ancla. NavLink agrega la coincidencia de rutas: cuando la ruta actual coincide con href, el enlace se considera activo y recibes ese estado a través de las funciones de renderizado de className / children (se agrega una clase active simple cuando pasas un className como cadena).

Estado / SlotMecanismo
className de NavLink (función)Recibe { isActive } — devuelve las clases para los estados activo / inactivo
children de NavLink (función)Recibe { isActive } para contenido condicional
Clase activeSe agrega a NavLink cuando la ruta actual coincide (cuando className es una cadena)
Propiedad endtrue coincide solo con la ruta exacta; false (predeterminado) coincide con cualquier ruta que comience con ella
Atributos data-*Pasan desde las props al elemento <a>
refSe reenvía al ancla renderizada

Tailwind v4:

tsx
<NavLink
  href="/docs/guides"
  className={({ isActive }) =>
    `px-3 py-1 rounded text-sm ${
      isActive ? 'bg-primary-500/10 text-primary-400' : 'text-muted hover:bg-soft'
    }`
  }
>
  Guías
</NavLink>

O CSS puro:

css
a.active {
  color: var(--color-primary-400);
  background: color-mix(in srgb, var(--color-primary-500) 10%, transparent);
}
Last updated on October 18, 2026

Was this page helpful?