Bloques de código
Todos los bloques de código utilizan Expressive Code con estilos personalizados definidos en styles/custom.css.
Ejemplos de lenguajes
Sección titulada «Ejemplos de lenguajes»JavaScript
Sección titulada «JavaScript»function fibonacci(n) { if (n <= 1) return n; return fibonacci(n - 1) + fibonacci(n - 2);}
console.log(fibonacci(10)); // 55def fibonacci(n: int) -> int: if n <= 1: return n return fibonacci(n - 1) + fibonacci(n - 2)
print(fibonacci(10)) # 55#!/bin/bashfor i in $(seq 1 5); do echo "Iteration $i"donesite: title: Documentation base: / integrations: - starlight - react{ "name": "@f5-sales-demo/docs-theme", "version": "1.0.0", "type": "module", "main": "index.js"}<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <title>Test Page</title> </head> <body> <h1>Hello World</h1> </body></html>:root { --sl-color-accent: #f06680; --sl-font: "proximaNova", system-ui;}
h1 { font-family: var(--sl-font-heading); font-weight: 700;}TypeScript
Sección titulada «TypeScript»interface Config { title: string; base: string; plugins: string[];}
const config: Config = { title: "Documentation", base: "/", plugins: ["starlight", "react"],};Modo terminal
Sección titulada «Modo terminal»Los bloques de código en estilo terminal (delimitados con ```bash o ```sh) reciben un marco de ventana inspirado en iTerm con los puntos de semáforo de macOS.
npm install @f5-sales-demo/docs-themenpx astro buildnpx astro previewReferencia CSS del terminal
Sección titulada «Referencia CSS del terminal»/* Borde del marco */.expressive-code .frame.is-terminal { border: 2px solid rgba(255, 255, 255, 0.15);}
/* Encabezado oscuro con puntos SVG de semáforo */.expressive-code .frame.is-terminal .header { background: #323232 !important; color: #ccc !important;}
/* Cuerpo del terminal en modo oscuro — inspirado en Tokyo Night */:root:not([data-theme="light"]) .expressive-code .frame.is-terminal pre { background: #1a1b26 !important;}
/* Anulación del borde en modo claro */:root[data-theme="light"] .expressive-code .frame.is-terminal { border-color: rgba(0, 0, 0, 0.2);}Títulos de nombre de archivo
Sección titulada «Títulos de nombre de archivo»export default { site: "https://example.com", title: "My Docs",};Resaltado de líneas
Sección titulada «Resaltado de líneas»const name = "highlighted"; // línea 1 resaltadaconst other = "normal";const a = 1; // líneas 3-5 resaltadasconst b = 2;const c = 3;const d = "normal again";Líneas insertadas y eliminadas
Sección titulada «Líneas insertadas y eliminadas»const config = { theme: "dark", // insertado theme: "light", // eliminado lang: "en",};Bloques diff
Sección titulada «Bloques diff»const oldValue = "deprecated";const newValue = "replacement";const unchanged = "stays";removeThis();addThis();Referencia CSS
Sección titulada «Referencia CSS»Estilo del marco
Sección titulada «Estilo del marco»Todos los bloques de código tienen esquinas redondeadas y una sombra en capas:
.expressive-code .frame { --header-border-radius: 0.75rem; border-radius: 0.75rem; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.04), 0 8px 16px rgba(0,0,0,0.08), 0 24px 48px rgba(0,0,0,0.12);}Bordes adaptados al tema
Sección titulada «Bordes adaptados al tema»/* Modo oscuro (predeterminado) */.expressive-code .frame.is-terminal { border: 2px solid rgba(255, 255, 255, 0.15);}
/* Modo claro */:root[data-theme="light"] .expressive-code .frame.is-terminal { border-color: rgba(0, 0, 0, 0.2);}Verificaciones de tema
Sección titulada «Verificaciones de tema»- El color de fondo del bloque de código se adapta al tema
- El encabezado del terminal tiene fondo
#323232con los puntos de semáforo de macOS - El borde del terminal utiliza
rgba(255, 255, 255, 0.15)en modo oscuro yrgba(0, 0, 0, 0.2)en modo claro - El cuerpo del terminal en modo oscuro utiliza
#1a1b26 - Los colores de sintaxis se mantienen legibles en ambos temas
- Los resaltados de línea tienen un tinte de fondo visible
- Las líneas insertadas muestran un tinte verde y las eliminadas un tinte rojo
- Los bloques de código tienen un radio de borde de 0.75rem y sombra de caja