npx logic2b@next add code-blockInstalación
npx logic2b@next add code-blockUso
import { CodeBlock } from "@/components/ui/code-block"
<CodeBlock language="tsx" code={`const respuesta = 42`} />
El botón de copia escribe code en el portapapeles y muestra una marca de
confirmación durante dos segundos. Omite language para generar un bloque
sencillo con un botón de copia flotante en la esquina.
Resaltado
CodeBlock no incluye dependencias ni un resaltador de sintaxis de forma
deliberada. Para añadir resaltado, genera la salida de tu herramienta dentro de
<pre> —por ejemplo, pasa HTML de Shiki o Prism— o envuelve el componente.
Mantener la base sin resaltador hace que sea pequeña e independiente del
framework.
Playground interactivo
Edita las propiedades del componente y revisa el JSX exacto antes de copiarlo. La vista previa se carga solo cuando esta sección entra en pantalla.
<CodeBlock
code="const ready = true\nconsole.log(ready)"
language="ts"
/>const ready = true
console.log(ready)Referencia de API
Generada a partir de las exportaciones públicas de TypeScript en src/ui/code-block.tsx. Las descripciones técnicas conservan el texto canónico del código fuente.
CodeBlockProps
Tipointerface CodeBlockProps extends Omit<React.ComponentProps<"div">, "children"> { /** The code to render and copy. */ code: string /** Optional language label shown in the header (display only — no highlighting). */ language?: string }CodeBlock
ComponenteA styled code container with a one-click copy button. Dependency-free (no syntax highlighter): renders the code verbatim in a `<pre>` and copies it via the Clipboard API, with a copied-state affordance.
Props: CodeBlockProps| Propiedad | Tipo | Obligatoria | Valor predeterminado | Descripción |
|---|---|---|---|---|
code | string | Sí | — | The code to render and copy. |
language | string | No | — | Optional language label shown in the header (display only — no highlighting). |
Contrato de accesibilidad
Comportamiento legible por máquinas y responsabilidades de quien integra code-block. Los detalles normativos conservan el texto canónico del registro.
- Soporte
- Semántica nativa
- Patrón
- code region with copy action
- HTML pre/code/button
| Teclas | Comportamiento |
|---|---|
| Enter Space | Activate the focused control. |
Semántica incorporada
- Code uses pre/code semantics and the copy button updates its accessible label after success.
Responsabilidades de integración
- Provide a language label when it helps comprehension and surface copy failures in application context if critical.