# Tooltip

> Texto corto que aparece al pasar el cursor o enfocar un elemento.

Categoría: Feedback · Solar v0.8.0

Usa este HTML tal cual, con Tailwind y ccs-tailwind-config.js cargados (ver https://utiliza.me/solar/instalacion.html).

## Etiqueta

```html
<div class="flex flex-wrap items-center gap-3 pt-10 px-8">
<span class="relative inline-flex group" data-tooltip>
  <button type="button" aria-label="Editar" class="w-10 h-10 rounded-lg border border-ccs-line-strong bg-white hover:border-ccs-blue hover:text-ccs-blue text-ccs-ink grid place-items-center dark:border-ccs-dark-line-strong dark:bg-ccs-dark-surface dark:hover:border-ccs-dark-text dark:hover:text-ccs-dark-text dark:text-ccs-dark-text focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg transition active:scale-95 motion-reduce:active:scale-100"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 20h4L18.5 9.5a2.8 2.8 0 0 0-4-4L4 16v4Z"/><path d="m13.5 6.5 4 4"/></svg></button>
  <span role="tooltip" aria-hidden="true" class="absolute bottom-full left-1/2 -translate-x-1/2 pb-2 z-10 invisible opacity-0 transition-[opacity,visibility] duration-100 group-hover:duration-150 group-has-[:focus-visible]:duration-150 group-hover:visible group-hover:opacity-100 group-has-[:focus-visible]:visible group-has-[:focus-visible]:opacity-100">
    <span class="relative z-[1] block rounded-lg bg-ccs-ink px-2.5 py-[5px] text-sm leading-[18px] text-white shadow-ccs-sm dark:bg-ccs-dark-text dark:text-ccs-dark-bg dark:shadow-none whitespace-nowrap font-medium">Editar</span>
    <span aria-hidden="true" class="absolute bottom-1 left-1/2 -translate-x-1/2 w-2 h-2 rotate-45 bg-ccs-ink dark:bg-ccs-dark-text"></span>
  </span>
</span>
<span class="relative inline-flex group" data-tooltip>
  <button type="button" aria-label="Descargar PDF" class="w-10 h-10 rounded-lg border border-ccs-line-strong bg-white hover:border-ccs-blue hover:text-ccs-blue text-ccs-ink grid place-items-center dark:border-ccs-dark-line-strong dark:bg-ccs-dark-surface dark:hover:border-ccs-dark-text dark:hover:text-ccs-dark-text dark:text-ccs-dark-text focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg transition active:scale-95 motion-reduce:active:scale-100"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 4v11m0 0-4-4m4 4 4-4M5 19h14"/></svg></button>
  <span role="tooltip" aria-hidden="true" class="absolute bottom-full left-1/2 -translate-x-1/2 pb-2 z-10 invisible opacity-0 transition-[opacity,visibility] duration-100 group-hover:duration-150 group-has-[:focus-visible]:duration-150 group-hover:visible group-hover:opacity-100 group-has-[:focus-visible]:visible group-has-[:focus-visible]:opacity-100">
    <span class="relative z-[1] block rounded-lg bg-ccs-ink px-2.5 py-[5px] text-sm leading-[18px] text-white shadow-ccs-sm dark:bg-ccs-dark-text dark:text-ccs-dark-bg dark:shadow-none whitespace-nowrap font-medium">Descargar PDF</span>
    <span aria-hidden="true" class="absolute bottom-1 left-1/2 -translate-x-1/2 w-2 h-2 rotate-45 bg-ccs-ink dark:bg-ccs-dark-text"></span>
  </span>
</span>
<span class="relative inline-flex group" data-tooltip>
  <button type="button" aria-label="Compartir" class="w-10 h-10 rounded-lg border border-ccs-line-strong bg-white hover:border-ccs-blue hover:text-ccs-blue text-ccs-ink grid place-items-center dark:border-ccs-dark-line-strong dark:bg-ccs-dark-surface dark:hover:border-ccs-dark-text dark:hover:text-ccs-dark-text dark:text-ccs-dark-text focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg transition active:scale-95 motion-reduce:active:scale-100"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="18" cy="5" r="2.5"/><circle cx="6" cy="12" r="2.5"/><circle cx="18" cy="19" r="2.5"/><path d="m8.2 10.8 7.6-4.4M8.2 13.2l7.6 4.4"/></svg></button>
  <span role="tooltip" aria-hidden="true" class="absolute bottom-full left-1/2 -translate-x-1/2 pb-2 z-10 invisible opacity-0 transition-[opacity,visibility] duration-100 group-hover:duration-150 group-has-[:focus-visible]:duration-150 group-hover:visible group-hover:opacity-100 group-has-[:focus-visible]:visible group-has-[:focus-visible]:opacity-100">
    <span class="relative z-[1] block rounded-lg bg-ccs-ink px-2.5 py-[5px] text-sm leading-[18px] text-white shadow-ccs-sm dark:bg-ccs-dark-text dark:text-ccs-dark-bg dark:shadow-none whitespace-nowrap font-medium">Compartir</span>
    <span aria-hidden="true" class="absolute bottom-1 left-1/2 -translate-x-1/2 w-2 h-2 rotate-45 bg-ccs-ink dark:bg-ccs-dark-text"></span>
  </span>
</span>
<span class="relative inline-flex group" data-tooltip>
  <button type="button" aria-label="Eliminar" class="w-10 h-10 rounded-lg border border-ccs-line-strong bg-white hover:border-ccs-blue hover:text-ccs-blue text-ccs-ink grid place-items-center dark:border-ccs-dark-line-strong dark:bg-ccs-dark-surface dark:hover:border-ccs-dark-text dark:hover:text-ccs-dark-text dark:text-ccs-dark-text focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg transition active:scale-95 motion-reduce:active:scale-100"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 6h18M8 6V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2m3 0v14a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V6"/></svg></button>
  <span role="tooltip" aria-hidden="true" class="absolute bottom-full left-1/2 -translate-x-1/2 pb-2 z-10 invisible opacity-0 transition-[opacity,visibility] duration-100 group-hover:duration-150 group-has-[:focus-visible]:duration-150 group-hover:visible group-hover:opacity-100 group-has-[:focus-visible]:visible group-has-[:focus-visible]:opacity-100">
    <span class="relative z-[1] block rounded-lg bg-ccs-ink px-2.5 py-[5px] text-sm leading-[18px] text-white shadow-ccs-sm dark:bg-ccs-dark-text dark:text-ccs-dark-bg dark:shadow-none whitespace-nowrap font-medium">Eliminar</span>
    <span aria-hidden="true" class="absolute bottom-1 left-1/2 -translate-x-1/2 w-2 h-2 rotate-45 bg-ccs-ink dark:bg-ccs-dark-text"></span>
  </span>
</span>
<p class="w-full text-xs text-ccs-slate dark:text-ccs-dark-text-2">Pasa el cursor sobre los íconos.</p>
</div>
```

## Posiciones

```html
<div class="grid justify-items-center gap-4 py-12 sm:flex sm:flex-wrap sm:justify-center sm:px-24">
<span class="relative inline-flex group" data-tooltip>
  <button type="button" class="h-10 px-4 text-sm rounded-ccs border border-ccs-line-strong text-ccs-ink font-medium hover:border-ccs-blue hover:text-ccs-blue transition bg-white dark:border-ccs-dark-line-strong dark:text-ccs-dark-text dark:hover:border-ccs-dark-text dark:hover:text-ccs-dark-text dark:bg-ccs-dark-surface focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg active:scale-95 motion-reduce:active:scale-100">Pasa el cursor</button>
  <span role="tooltip" aria-hidden="true" class="absolute bottom-full left-1/2 -translate-x-1/2 pb-2 z-10 invisible opacity-0 transition-[opacity,visibility] duration-100 group-hover:duration-150 group-has-[:focus-visible]:duration-150 group-hover:visible group-hover:opacity-100 group-has-[:focus-visible]:visible group-has-[:focus-visible]:opacity-100">
    <span class="relative z-[1] block rounded-lg bg-ccs-ink px-2.5 py-[5px] text-sm leading-[18px] text-white shadow-ccs-sm dark:bg-ccs-dark-text dark:text-ccs-dark-bg dark:shadow-none whitespace-nowrap font-medium">Arriba</span>
    <span aria-hidden="true" class="absolute bottom-1 left-1/2 -translate-x-1/2 w-2 h-2 rotate-45 bg-ccs-ink dark:bg-ccs-dark-text"></span>
  </span>
</span>
<span class="relative inline-flex group" data-tooltip>
  <button type="button" class="h-10 px-4 text-sm rounded-ccs border border-ccs-line-strong text-ccs-ink font-medium hover:border-ccs-blue hover:text-ccs-blue transition bg-white dark:border-ccs-dark-line-strong dark:text-ccs-dark-text dark:hover:border-ccs-dark-text dark:hover:text-ccs-dark-text dark:bg-ccs-dark-surface focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg active:scale-95 motion-reduce:active:scale-100">Pasa el cursor</button>
  <span role="tooltip" aria-hidden="true" class="absolute top-full left-1/2 -translate-x-1/2 pt-2 z-10 invisible opacity-0 transition-[opacity,visibility] duration-100 group-hover:duration-150 group-has-[:focus-visible]:duration-150 group-hover:visible group-hover:opacity-100 group-has-[:focus-visible]:visible group-has-[:focus-visible]:opacity-100">
    <span class="relative z-[1] block rounded-lg bg-ccs-ink px-2.5 py-[5px] text-sm leading-[18px] text-white shadow-ccs-sm dark:bg-ccs-dark-text dark:text-ccs-dark-bg dark:shadow-none whitespace-nowrap font-medium">Abajo</span>
    <span aria-hidden="true" class="absolute top-1 left-1/2 -translate-x-1/2 w-2 h-2 rotate-45 bg-ccs-ink dark:bg-ccs-dark-text"></span>
  </span>
</span>
<span class="relative inline-flex group" data-tooltip>
  <button type="button" class="h-10 px-4 text-sm rounded-ccs border border-ccs-line-strong text-ccs-ink font-medium hover:border-ccs-blue hover:text-ccs-blue transition bg-white dark:border-ccs-dark-line-strong dark:text-ccs-dark-text dark:hover:border-ccs-dark-text dark:hover:text-ccs-dark-text dark:bg-ccs-dark-surface focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg active:scale-95 motion-reduce:active:scale-100">Pasa el cursor</button>
  <span role="tooltip" aria-hidden="true" class="absolute right-full top-1/2 -translate-y-1/2 pr-2 z-10 invisible opacity-0 transition-[opacity,visibility] duration-100 group-hover:duration-150 group-has-[:focus-visible]:duration-150 group-hover:visible group-hover:opacity-100 group-has-[:focus-visible]:visible group-has-[:focus-visible]:opacity-100">
    <span class="relative z-[1] block rounded-lg bg-ccs-ink px-2.5 py-[5px] text-sm leading-[18px] text-white shadow-ccs-sm dark:bg-ccs-dark-text dark:text-ccs-dark-bg dark:shadow-none whitespace-nowrap font-medium">Izquierda</span>
    <span aria-hidden="true" class="absolute right-1 top-1/2 -translate-y-1/2 w-2 h-2 rotate-45 bg-ccs-ink dark:bg-ccs-dark-text"></span>
  </span>
</span>
<span class="relative inline-flex group" data-tooltip>
  <button type="button" class="h-10 px-4 text-sm rounded-ccs border border-ccs-line-strong text-ccs-ink font-medium hover:border-ccs-blue hover:text-ccs-blue transition bg-white dark:border-ccs-dark-line-strong dark:text-ccs-dark-text dark:hover:border-ccs-dark-text dark:hover:text-ccs-dark-text dark:bg-ccs-dark-surface focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg active:scale-95 motion-reduce:active:scale-100">Pasa el cursor</button>
  <span role="tooltip" aria-hidden="true" class="absolute left-full top-1/2 -translate-y-1/2 pl-2 z-10 invisible opacity-0 transition-[opacity,visibility] duration-100 group-hover:duration-150 group-has-[:focus-visible]:duration-150 group-hover:visible group-hover:opacity-100 group-has-[:focus-visible]:visible group-has-[:focus-visible]:opacity-100">
    <span class="relative z-[1] block rounded-lg bg-ccs-ink px-2.5 py-[5px] text-sm leading-[18px] text-white shadow-ccs-sm dark:bg-ccs-dark-text dark:text-ccs-dark-bg dark:shadow-none whitespace-nowrap font-medium">Derecha</span>
    <span aria-hidden="true" class="absolute left-1 top-1/2 -translate-y-1/2 w-2 h-2 rotate-45 bg-ccs-ink dark:bg-ccs-dark-text"></span>
  </span>
</span>
</div>
```

## Alineación

```html
<div class="flex flex-wrap justify-center gap-4 pt-10">
<span class="relative inline-flex group" data-tooltip>
  <button type="button" class="h-10 px-4 text-sm rounded-ccs border border-ccs-line-strong text-ccs-ink font-medium hover:border-ccs-blue hover:text-ccs-blue transition bg-white dark:border-ccs-dark-line-strong dark:text-ccs-dark-text dark:hover:border-ccs-dark-text dark:hover:text-ccs-dark-text dark:bg-ccs-dark-surface focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg active:scale-95 motion-reduce:active:scale-100">Pasa el cursor</button>
  <span role="tooltip" aria-hidden="true" class="absolute bottom-full left-0 pb-2 z-10 invisible opacity-0 transition-[opacity,visibility] duration-100 group-hover:duration-150 group-has-[:focus-visible]:duration-150 group-hover:visible group-hover:opacity-100 group-has-[:focus-visible]:visible group-has-[:focus-visible]:opacity-100">
    <span class="relative z-[1] block rounded-lg bg-ccs-ink px-2.5 py-[5px] text-sm leading-[18px] text-white shadow-ccs-sm dark:bg-ccs-dark-text dark:text-ccs-dark-bg dark:shadow-none whitespace-nowrap font-medium">Inicio</span>
    <span aria-hidden="true" class="absolute bottom-1 left-4 w-2 h-2 rotate-45 bg-ccs-ink dark:bg-ccs-dark-text"></span>
  </span>
</span>
<span class="relative inline-flex group" data-tooltip>
  <button type="button" class="h-10 px-4 text-sm rounded-ccs border border-ccs-line-strong text-ccs-ink font-medium hover:border-ccs-blue hover:text-ccs-blue transition bg-white dark:border-ccs-dark-line-strong dark:text-ccs-dark-text dark:hover:border-ccs-dark-text dark:hover:text-ccs-dark-text dark:bg-ccs-dark-surface focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg active:scale-95 motion-reduce:active:scale-100">Pasa el cursor</button>
  <span role="tooltip" aria-hidden="true" class="absolute bottom-full left-1/2 -translate-x-1/2 pb-2 z-10 invisible opacity-0 transition-[opacity,visibility] duration-100 group-hover:duration-150 group-has-[:focus-visible]:duration-150 group-hover:visible group-hover:opacity-100 group-has-[:focus-visible]:visible group-has-[:focus-visible]:opacity-100">
    <span class="relative z-[1] block rounded-lg bg-ccs-ink px-2.5 py-[5px] text-sm leading-[18px] text-white shadow-ccs-sm dark:bg-ccs-dark-text dark:text-ccs-dark-bg dark:shadow-none whitespace-nowrap font-medium">Centro</span>
    <span aria-hidden="true" class="absolute bottom-1 left-1/2 -translate-x-1/2 w-2 h-2 rotate-45 bg-ccs-ink dark:bg-ccs-dark-text"></span>
  </span>
</span>
<span class="relative inline-flex group" data-tooltip>
  <button type="button" class="h-10 px-4 text-sm rounded-ccs border border-ccs-line-strong text-ccs-ink font-medium hover:border-ccs-blue hover:text-ccs-blue transition bg-white dark:border-ccs-dark-line-strong dark:text-ccs-dark-text dark:hover:border-ccs-dark-text dark:hover:text-ccs-dark-text dark:bg-ccs-dark-surface focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg active:scale-95 motion-reduce:active:scale-100">Pasa el cursor</button>
  <span role="tooltip" aria-hidden="true" class="absolute bottom-full right-0 pb-2 z-10 invisible opacity-0 transition-[opacity,visibility] duration-100 group-hover:duration-150 group-has-[:focus-visible]:duration-150 group-hover:visible group-hover:opacity-100 group-has-[:focus-visible]:visible group-has-[:focus-visible]:opacity-100">
    <span class="relative z-[1] block rounded-lg bg-ccs-ink px-2.5 py-[5px] text-sm leading-[18px] text-white shadow-ccs-sm dark:bg-ccs-dark-text dark:text-ccs-dark-bg dark:shadow-none whitespace-nowrap font-medium">Fin</span>
    <span aria-hidden="true" class="absolute bottom-1 right-4 w-2 h-2 rotate-45 bg-ccs-ink dark:bg-ccs-dark-text"></span>
  </span>
</span>
</div>
```

## Descripción

```html
<div class="max-w-[320px]">
  <div class="flex items-center gap-1.5 mb-1.5">
    <label for="codigo-actividad" class="text-sm font-medium text-ccs-ink dark:text-ccs-dark-text">Código de actividad</label>
    <span class="relative inline-flex group" data-tooltip>
      <button type="button" aria-label="Qué es el código de actividad" aria-describedby="tooltip-codigo-actividad" class="w-5 h-5 grid place-items-center rounded-full text-ccs-slate hover:text-ccs-ink dark:text-ccs-dark-text-2 dark:hover:text-ccs-dark-text focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><circle cx="12" cy="12" r="9"/><path d="M12 11v5M12 8h.01"/></svg></button>
      <span role="tooltip" id="tooltip-codigo-actividad" class="absolute bottom-full left-1/2 -translate-x-1/2 pb-2 z-10 invisible opacity-0 transition-[opacity,visibility] duration-100 group-hover:duration-150 group-has-[:focus-visible]:duration-150 group-hover:visible group-hover:opacity-100 group-has-[:focus-visible]:visible group-has-[:focus-visible]:opacity-100">
        <span class="relative z-[1] block rounded-lg bg-ccs-ink px-2.5 py-[5px] text-sm leading-[18px] text-white shadow-ccs-sm dark:bg-ccs-dark-text dark:text-ccs-dark-bg dark:shadow-none w-max max-w-[240px] font-normal text-left">Número de seis dígitos que identifica el giro de tu empresa. Aparece en tu inicio de actividades.</span>
        <span aria-hidden="true" class="absolute bottom-1 left-1/2 -translate-x-1/2 w-2 h-2 rotate-45 bg-ccs-ink dark:bg-ccs-dark-text"></span>
      </span>
    </span>
  </div>
  <input id="codigo-actividad" type="text" inputmode="numeric" placeholder="Ej: 620100" class="w-full h-10 px-3 rounded-lg border border-ccs-line-strong bg-white text-sm text-ccs-ink placeholder:text-ccs-slate focus:outline-none focus:border-ccs-blue focus:ring-2 focus:ring-ccs-blue/15 dark:bg-ccs-dark-surface dark:border-ccs-dark-line-strong dark:text-ccs-dark-text dark:placeholder:text-ccs-dark-text-2 dark:focus:border-ccs-dark-accent dark:focus:ring-ccs-dark-accent/25">
  <p class="mt-2 text-xs text-ccs-slate dark:text-ccs-dark-text-2">Pasa el cursor sobre el ícono de información.</p>
</div>
```

## Con atajo

```html
<div class="flex flex-wrap items-center gap-3 pt-10 px-8">
<span class="relative inline-flex group" data-tooltip>
  <button type="button" aria-label="Guardar" class="w-10 h-10 rounded-lg border border-ccs-line-strong bg-white hover:border-ccs-blue hover:text-ccs-blue text-ccs-ink grid place-items-center dark:border-ccs-dark-line-strong dark:bg-ccs-dark-surface dark:hover:border-ccs-dark-text dark:hover:text-ccs-dark-text dark:text-ccs-dark-text focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-ccs-blue dark:focus-visible:ring-ccs-dark-accent dark:focus-visible:ring-offset-ccs-dark-bg transition active:scale-95 motion-reduce:active:scale-100"><svg class="w-4 h-4" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M5 4h11l3 3v13H5V4Z"/><path d="M8 4v5h7V4M8 20v-6h8v6"/></svg></button>
  <span role="tooltip" aria-hidden="true" class="absolute bottom-full left-1/2 -translate-x-1/2 pb-2 z-10 invisible opacity-0 transition-[opacity,visibility] duration-100 group-hover:duration-150 group-has-[:focus-visible]:duration-150 group-hover:visible group-hover:opacity-100 group-has-[:focus-visible]:visible group-has-[:focus-visible]:opacity-100">
    <span class="relative z-[1] block rounded-lg bg-ccs-ink px-2.5 py-[5px] text-sm leading-[18px] text-white shadow-ccs-sm dark:bg-ccs-dark-text dark:text-ccs-dark-bg dark:shadow-none flex items-center gap-2 whitespace-nowrap font-medium">Guardar <span class="flex gap-1"><kbd class="inline-flex h-5 min-w-5 items-center justify-center rounded-lg px-1.5 font-sans text-xs font-medium bg-ccs-slate text-white dark:bg-ccs-line-strong dark:text-ccs-ink">Ctrl</kbd><kbd class="inline-flex h-5 min-w-5 items-center justify-center rounded-lg px-1.5 font-sans text-xs font-medium bg-ccs-slate text-white dark:bg-ccs-line-strong dark:text-ccs-ink">S</kbd></span></span>
    <span aria-hidden="true" class="absolute bottom-1 left-1/2 -translate-x-1/2 w-2 h-2 rotate-45 bg-ccs-ink dark:bg-ccs-dark-text"></span>
  </span>
</span>
<p class="w-full text-xs text-ccs-slate dark:text-ccs-dark-text-2">Pasa el cursor sobre el ícono.</p>
</div>
```

## Guía: Comportamiento

Solar no entrega JavaScript: el tooltip se muestra y se oculta solo con CSS. Lo que sigue es lo que debe pasar; solo cerrar con Esc necesita unas líneas de tu proyecto.

- Mostrar: aparece con el cursor encima del botón o cuando el botón recibe el foco con el teclado (group-hover y group-has-[:focus-visible]). No aparece con un clic ni con un toque: en el teléfono, el botón tiene que entenderse sin el tooltip.

- Se puede pasar el cursor por encima: el tooltip está dentro del mismo contenedor que el botón y el espacio entre ambos (pb-2) es parte del tooltip, así que no se cierra al mover el cursor hacia el texto.

- Se queda: sigue visible mientras el cursor o el foco estén en el botón o en el tooltip. No se cierra solo por tiempo.

- Cerrar con Esc: la persona tiene que poder ocultarlo sin mover el cursor ni el foco, porque puede tapar lo que está leyendo. Agrega el código de abajo: marca el contenedor con data-cerrado, y ccs-ui-kit.css oculta el tooltip. Vuelve a aparecer la próxima vez que pase el cursor o el foco.

- Nombre: en un botón de solo ícono, el nombre va en aria-label y el tooltip lleva aria-hidden="true" para no repetirlo. Si el tooltip agrega una descripción, el botón lo enlaza con aria-describedby.

- Contenido: solo texto. Nada que se pueda hacer clic adentro; para eso, usa Popover.

document.addEventListener('keydown', function (e) {
  if (e.key !== 'Escape') return;
  document.querySelectorAll('[data-tooltip]:hover, [data-tooltip]:focus-within')
    .forEach(function (w) { w.setAttribute('data-cerrado', ''); });
});
document.querySelectorAll('[data-tooltip]').forEach(function (w) {
  function rearmar() { w.removeAttribute('data-cerrado'); }
  w.addEventListener('mouseleave', rearmar);
  w.addEventListener('focusout', rearmar);
});

Por qué: Es lo que pide WCAG 2.2 para contenido que aparece con el cursor o el foco (criterio 1.4.13): que se pueda cerrar, que se pueda pasar el cursor por encima y que no desaparezca mientras se está usando. Con CSS se logran los dos últimos; cerrar con Esc requiere escuchar el teclado.
