Saltar al contenido principal
Neural UIv2.0.0Documentación
Ver v1 GitHub

CodeBlock

Presenta código copiable con etiqueta de lenguaje, densidad y ajuste de línea.

Categoría
Diseño y contenido
Import
@neural-ui/core/code-block
Selector
neu-code-block
import { NeuCodeBlockComponent } from '@neural-ui/core/code-block';

Uso

Proporciona texto de código a code. language genera una etiqueta reconocible; lang permite cambiar esa etiqueta, no el idioma del documento. wrap permite ajustar líneas largas; sin él, el cuerpo se desplaza horizontalmente. density cambia el espaciado. El código es texto escapado: este componente no lo ejecuta ni aplica resaltado de sintaxis.

Ejemplos

Prueba la interacción y abre Código para ver la implementación completa.

Ejemplos
TypeScript
const saludo = 'Hola, Neural UI';
console.log(saludo);

Prueba y configura

Cambia las opciones, prueba el resultado y consulta el template actualizado. Código contiene el ejemplo ejecutable completo.

Prueba y configura
TypeScript
const saludo = 'Hola, Neural UI';
console.log(saludo);

Template generado con tus opciones actuales. Abre Código para consultar el ejemplo completo.

template.html
<neu-code-block
  [code]="code()"
  language="typescript"
  density="normal"
  [wrap]="true"
  [copiedAriaLabel]="'Código del ejemplo copiado'"
  [copiedLabel]="'Copiado'"
  [copyAriaLabel]="'Copiar código del ejemplo'"
  [copyLabel]="'Copiar código'"
/>

Datos y contenido

El botón copia la cadena code exacta al portapapeles y confirma solo las copias correctas. Las etiquetas se pueden traducir. CodeBlock no tiene Outputs ni Templates; proporciona code y utiliza sus tokens públicos para personalizarlo.

Accesibilidad y teclado

Accede al botón de copia con Tab y actívalo con Intro o Espacio. Define copyAriaLabel y copiedAriaLabel de forma clara, especialmente con etiquetas visibles breves. El ajuste de línea facilita la lectura en pantallas estrechas; el código sin ajuste conserva un desplazamiento horizontal local.

Tecla
Acción
Tab Accede al botón habilitado de copiar.
Enter Copia el código desde el botón enfocado de copiar.
Space Copia el código desde el botón enfocado de copiar.

API

Inputs y Outputs corresponden al paquete instalado. Los tipos con nombre enlazan a sus definiciones. Cada Template disponible tiene un ejemplo con Demo y Código.

Inputs

Configura el componente con [propiedad]="valor". Tu aplicación proporciona estos valores; el componente no debe reemplazar el estado que le pasas.

Nombre
Tipo
Por defecto
Uso en el template
Descripción
codestring''[code]Texto de código exacto que se muestra y copia.
copiedAriaLabelstring | undefinedundefined[copiedAriaLabel]Etiqueta de confirmación de copia. Tradúcela para tu aplicación.
copiedLabelstring | undefinedundefined[copiedLabel]Etiqueta de copia correcta. Tradúcela para tu aplicación.
copyAriaLabelstring | undefinedundefined[copyAriaLabel]Etiqueta de botón de copia. Tradúcela para tu aplicación.
copyLabelstring | undefinedundefined[copyLabel]Etiqueta de acción de copiar. Tradúcela para tu aplicación.
densityNeuDensity'normal'[density]Escala de espaciado: compact, normal o relaxed.
langstring''[lang]Etiqueta visible alternativa opcional.
languagestring''[language]Identificador de lenguaje que genera la etiqueta.
wrapbooleanfalse[wrap]Ajusta líneas largas en lugar de desplazamiento horizontal local.

Templates

ng-content proyecta contenido dentro del componente. Los inputs TemplateRef reciben un template; las directivas ng-template identifican templates con un contexto tipado. Una directiva compartida en el entrypoint no es necesariamente un slot de este componente.

Este componente no expone proyección de contenido ni templates públicos de personalización.

Public Types

Abre un tipo para consultar su definición y los campos de sus interfaces.

Estilos y tokens

Personaliza los tokens públicos disponibles y comprueba ambos temas. Las ilustraciones y el estado de los ejemplos no son Inputs de Core.

Tokens específicos

Token
Efecto
Estado / variante
Valor / origen
Alternativa
--neu-code-block-accent Valor del tema heredado que utiliza este componente Superficie del campo #9ab8ffDeclaración raízSin alias de token
--neu-code-block-bar-bg Valor del tema heredado que utiliza este componente Superficie del campo #16161eDeclaración raízSin alias de token
--neu-code-block-bg Valor del tema heredado que utiliza este componente Superficie del campo #1a1b26Declaración raízSin alias de token
--neu-code-block-border Valor del tema heredado que utiliza este componente Superficie del campo rgba(255, 255, 255, 0.14)Declaración raízSin alias de token
--neu-code-block-copy-bg Valor del tema heredado que utiliza este componente Superficie del campo rgba(255, 255, 255, 0.12)Declaración raízSin alias de token
--neu-code-block-copy-border Valor del tema heredado que utiliza este componente Superficie del campo rgba(255, 255, 255, 0.22)Declaración raízSin alias de token
--neu-code-block-copy-hover-bg Valor del tema heredado que utiliza este componente Superficie del campo rgba(255, 255, 255, 0.18)Declaración raízSin alias de token
--neu-code-block-copy-hover-border Valor del tema heredado que utiliza este componente Superficie del campo rgba(255, 255, 255, 0.34)Declaración raízSin alias de token
--neu-code-block-copy-hover-text Valor del tema heredado que utiliza este componente Superficie del campo #ffffffDeclaración raízSin alias de token
--neu-code-block-copy-text Valor del tema heredado que utiliza este componente Superficie del campo #d9e2ffDeclaración raízSin alias de token
--neu-code-block-muted Valor del tema heredado que utiliza este componente Superficie del campo #565f89Declaración raízSin alias de token
--neu-code-block-text Valor del tema heredado que utiliza este componente Superficie del campo #d9e2ffDeclaración raízSin alias de token

Tokens compartidos utilizados

Sobrescríbelos en un contenedor local para afectar a este ejemplo. Una modificación en :root afecta a los demás componentes que utilizan el mismo token.

Token
Efecto aquí
Otros efectos
Valor / alternativa
--neu-focus-ring Anillo normal del foco de teclado Compartido con otros consumidores de Core; limita el cambio a un ámbito. 0 0 0 var(--neu-focus-ring-width) rgba(0, 122, 255, 0.15)
--neu-font-mono Tipografía del texto Compartido con otros consumidores de Core; limita el cambio a un ámbito. 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace
--neu-font-sans Tipografía del texto Compartido con otros consumidores de Core; limita el cambio a un ámbito. 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif
--neu-radius-lg Radio de esquina Compartido con otros consumidores de Core; limita el cambio a un ámbito. 12px
--neu-radius-sm Radio de esquina Compartido con otros consumidores de Core; limita el cambio a un ámbito. 6px
--neu-space-3 Separación entre contenido y controles Compartido con otros consumidores de Core; limita el cambio a un ámbito. 0.75rem
--neu-transition Duración de los cambios de estado Compartido con otros consumidores de Core; limita el cambio a un ámbito. 200ms ease