Page is under construction.
Check the github issues for ways to contribute! Or provide your feedback in this quick form
Check the github issues for ways to contribute! Or provide your feedback in this quick form
Guía de Estilo de Documentación
Esta guía cubre las convenciones de estilo, errores específicos de Mintlify, y mejores prácticas para contribuir a la documentación de Livepeer.Estilo de Producción para Mintlify
Marco: Propiedades CSS (Variables CSS)
**Mintlify utiliza Propiedades CSS (Variables CSS) como el marco de estilo de producción.**Este es el enfoque oficial y respaldado para el tema en la documentación de Mintlify.Arquitectura del Tema
La documentación utiliza Propiedades de CSS Personalizadas definidas enstyle.css en la raíz del repositorio. Esto es la ÚNICAenfoque de producción para el estilo de la documentación Mintlify.
NO USAR:
- ❌ Objetos de tema en JavaScript (ThemeData, themeStyles.jsx) - OBSOLETO
- ❌ Objetos de estilo en línea con colores predeterminados
- ❌ Cambio de tema basado en JavaScript
- ✅ Propiedades de CSS personalizadas (
--variable-name) - ✅ Variables CSS globales en
style.css - ✅ configuración de tema Mintlify en
docs.json
Sistema de colores
Todos los colores del tema se definen como Propiedades de CSS personalizadas enstyle.css:
| Variable | Modo claro | Modo oscuro | Uso |
|---|---|---|---|
--accent | #3CB540 (Verde Jade) | #2b9a66 (Jade Oscuro) | Resaltados, iconos, enlaces |
--accent-dark | #18794E | #18794E | Iconos de paso, énfasis |
--hero-text | #181C18 | #E0E4E0 | Títulos, encabezados |
--text | #717571 | #A0A4A0 | Texto principal |
--muted-text | #9ca3af | #6b7280 | Texto secundario |
--background | #ffffff | #0d0d0d | Fondo de la página |
--card-background | #f9fafb | #1a1a1a | Tarjetas, contenedores |
--border | #e5e7eb | #333333 | Bordes, divisores |
--button-text | #ffffff | #ffffff | Texto del botón |
Uso de Propiedades CSS Personalizadas
Estilos en línea (Recomendado)
CSS a nivel de componente
CSS global en style.css
Cómo funciona el cambio de tema
Mintlify agrega automáticamente una.dark clase al<html> elemento cuando el modo oscuro está activo. Las variables de CSS se cambian automáticamente según el tema:
Reglas de color
| Casos de uso | Enfoque |
|---|---|
| Colores de la marca (verde) | Usar --accento --accent-dark |
| Títulos | Usar --hero-text |
| Texto principal | Usar --text |
| Texto secundario | Usar --muted-text |
| Fondos | Usar --backgroundo --card-background |
| Bordes | Usar --border |
| Colores semánticos (error, advertencia, éxito) | Mantener fijo (no tema) |
| Texto blanco en encabezados verdes | Mantener fijo como #fff |
Enfoques obsoletos
¡NO LOS USE!-
Objeto ThemeData -
snippets/styles/themeStyles.jsxes OBSOLETO -
Colores predeterminados - Nunca codificar valores hexadecimales que deban adaptarse al tema
- Cambio de tema en JavaScript - No es necesario, CSS lo maneja automáticamente
Qué NO hacer
- ❌ No importar ni usar
ThemeDatadesdethemeStyles.jsx - ❌ No codifiques colores hexadecimales que deban adaptarse al tema
- ❌ No uses grises genéricos sin verificar la compatibilidad con el tema
- ❌ No hagas colores semánticos (calificaciones de confianza, estados de error) dependientes del tema
- ❌ No sobrescribas el texto blanco en fondos intencionalmente coloreados
- ❌ No crees objetos de tema personalizados en JavaScript
Arquitectura del marco de estilo
La documentación de Livepeer utiliza unmarco de estilo de tres capas diseñado para funcionar dentro de las restricciones de Mintlify mientras se mantiene la consistencia y la mantenibilidad.Capas del marco
Capa 1: CSS global (style.css)
Propósito: Variables de tema y anulaciones a nivel de framework
¿Qué pertenece aquí:
- ✅ Propiedades CSS personalizadas (variables de tema)
- ✅ Mintlify anulaciones de componentes (navegación, pie de página, etc.)
- ✅ Clases del contenedor del modo Frame
- ✅ Clases utilitarias para patrones utilizados 5 o más veces en las páginas
- ❌ Estilos específicos de página
- ❌ Estilos específicos de componente (pertenecen en JSX)
- ❌ Necesidades de diseño únicos
Capa 2: Componentes JSX (snippets/components/**/*.jsx)
Propósito: Componentes autónomos con estilo interno
Reglas:
- ✅ Usar propiedades CSS personalizadas (
var(--accent),var(--text), etc.) - ✅ Los estilos deben estar dentro del archivo del componente
- ✅ Usar
<style>etiquetas para estilos complejos (pseudoclases, consultas de medios) - ✅ Usar objetos de estilo en línea para estilos simples
- ❌ Importar archivos CSS externos
- ❌ Codificar colores de tema (usar variables CSS)
- ❌ Usar “
classNamesin la etiqueta correspondiente “<style>”
Capa 3: Archivos MDX (v2/pages/**/*.mdx)
Propósito: Contenido solo - Estilos en línea cero
Reglas:
- ✅ Usar primitivas de componentes para todas las necesidades de estilo
- ✅ Usar componentes globales Mintlify (
Card,Tabs,Steps, etc.) - ✅ Importar componentes personalizados desde
/snippets/components/ - ❌ NO atributos en línea
style={{}}atributos - ❌ NO colores predefinidos
- ❌ NO personalizados
classNameatributos
Árbol de decisiones: ¿A qué lugar va este estilo?
- ¿Es un color de tema? → Añadir a
style.csscomo Propiedad de CSS Personalizada - ¿Se utiliza en un componente? → Colocar en un archivo de componente JSX (en línea o “
<style>tag”) - ¿Es necesario en MDX? → Crear/usar una primitive de componente
- ¿Se utiliza 5 o más veces globalmente? → Añadir clase de utilidad a
style.css - ¿Es específico de la página? → Cree un primitivo de componente (no lo coloque en “
style.css)
Biblioteca de Primitivos de Componentes
Para necesidades comunes de estilo en archivos MDX, use primitivos de componente de/snippets/components/primitives/:
- Diseño:
FlexContainer,GridContainer,Spacer - Tablas:
StyledTable,TableRow,TableCell - Contenedores:
BorderedBox,CenteredContainer,FullWidthContainer
Tipografía
Títulos
Use encabezados estándar de Markdown (#, ##, ###, etc.) para la mayor parte del contenido. Mintlify aplica automáticamente este estilo.
Para páginas en modo de marco, use componentes de encabezado personalizados:
Estilo del texto
- Usar negrita (
**text**) para énfasis - Usa cursiva (
*text*) con moderación - Usa
code(backticks) para código en línea - Usar bloques de código para código de múltiples líneas
Expresiones matemáticas
Mintlify admite LaTeX para renderizar expresiones matemáticas. Usar la sintaxis adecuada para asegurar que las ecuaciones se rendericen correctamente.Matemáticas en línea
Usar signos de dolar únicos$...$ para expresiones matemáticas en línea dentro del texto:
Ecuaciones de bloque
Usa signos de dólar dobles$$...$$ para ecuaciones independientes en su propia línea:
Sintaxis común de LaTeX
| Expresión | Sintaxis | Resultado |
|---|---|---|
| Fracciones | $\frac{a}{b}$ | |
| Subíndices | $B_i$ | |
| Superíndices | $x^2$ | |
| Letras griegas | $\alpha, \beta, \theta$ | |
| Suma | $\sum_{i=1}^{n} x_i$ | |
| Raíz cuadrada | $\sqrt{x}$ | |
| Proporcional | $\propto$ | |
| Mayor/menor o igual que | $\geq, \leq$ |
Crítico: No usar delimitadores de barra invertida
ERRÓNEO - Estos causarán errores de MDX:Configuración de LaTeX
Puedes configurar la representación de LaTeX endocs.json bajo styles.latex para sobrescribir la detección automática si es necesario. Consulta Mintlify documentación de LaTeX para más detalles.
Espaciado y disposición
Espaciado consistente
- Utilice un espaciado consistente entre las secciones
- Agrupe el contenido relacionado
- Utilice divisores (
<CustomDivider />) para separar las secciones principales
Diseño de página
- Portales - Usar CardGroups para puntos de entrada clave
- Guías - Usar Pasos para instrucciones secuenciales
- Referencias - Usar Tablas o Acordeones para datos organizados
- Guías rápidas - Usar Pestañas para diferentes caminos (Sistema Operativo, en cadena/ fuera de cadena)
Uso de componentes
Cuándo usar componentes
- Pestañas - Separar el contenido por contexto (sistema operativo, tipo de flujo de trabajo, tipo de usuario)
- Vistas - Mostrar contenido diferente según el sistema operativo o la ruta del usuario
- Pasos - Instrucciones secuenciales para procesos
- Grupos de tarjetas - Agrupaciones visuales para portales, hubs y contenido relacionado
- Acordeones - Secciones expandibles para información detallada
- Llamados - Notas importantes, consejos, advertencias y cajas de información
Tipos de llamado
<Info>- Información general y consejos<Tip>- Sugerencias útiles<Warning>- Advertencias importantes<Danger>- Alertas críticas<Note>- Contexto adicional
Preferir Componentes Personalizados para Enlaces y Navegación
Preferencia: Usa componentes personalizados para enlaces, tarjetas, citas y otros elementos visualmente atractivos en lugar de enlaces simples Mintlify. ¿Por qué: Los componentes personalizados ofrecen un mejor diseño visual, una temática consistente, una mejor experiencia de usuario y una mejor integración con el sistema de diseño de documentación Livepeer. Componentes personalizados a utilizar:- Enlaces: Usa “
<GotoLink>y “<GotoCard>en lugar de enlaces de markdown sin formato o Mintlify<Card>con “href - Citas: Usa “
<Quote>y<FrameQuote>en lugar de bloques de cita - Tarjetas: Usa
<GotoCard>para tarjetas de navegación con un mejor estilo - Llamados: Usa “
<CustomCallout>y “<TipWithArrow>para llamadas visuales mejoradas - Enlaces externos: Usa “
<DoubleIconLink>para enlaces externos (GitHub, etc.)
- Enlaces integrados dentro de párrafos (los enlaces de markdown están bien)
- Enlaces en ejemplos de código o referencias técnicas
- Enlaces que no necesitan énfasis visual
Mintlify Sobrescrituras y mejores prácticas
Nuestro marco de estilo sobrescribe intencionalmente algunas recomendaciones predeterminadas de Mintlify para funcionar mejor dentro de las restricciones de Mintlify y mantener la consistencia.Sobrescritura: “Usar clases de Tailwind”
Mintlify sugiere: Use Tailwind utility classesNuestra aproximación: ❌ No uses Tailwind - usa primitivas de componentes
Razón: Las clases de Tailwind en MDX generan una carga de mantenimiento y reducen el significado semántico. Las primitivas de componentes son más fáciles de mantener y autoexplicativas. Ejemplo:
Sustituir: “Los estilos en línea son adecuados para soluciones rápidas”
Mintlify sugiere: Los estilos en línea son aceptables en MDXNuestro enfoque: ❌ No se permiten estilos en línea en MDX, solo en componentes de JSX
Razón: Consistencia y mantenibilidad. Los estilos en línea en MDX hacen más difícil mantener la consistencia del tema y crear inconsistencias visuales. Ejemplo:
Sobrescribir: “Usar CSS global para todo”
Mintlify sugiere: Colocar todos los estilos en “style.cssNuestro enfoque: ✅ Solo variables de tema y reemplazos del framework en “
style.cssRazón: Mintlify solo permite un archivo CSS global. Poner todo allí hace que sea difícil de mantener. Los estilos específicos de los componentes deben ir en los componentes JSX. ¿Qué va en “
style.css”
- ✅ Variables de tema (Propiedades CSS personalizadas)
- ✅ Mintlify componente de anulación (navegación, pie de página)
- ✅ Clases del modo de marco
- ✅ Clases de utilidad utilizadas 5 o más veces globalmente
style.css:
- ❌ Estilos específicos del componente (colocar en JSX)
- ❌ Estilos específicos de página (crear primitivas de componentes)
- ❌ Necesidades de estilo únicos (crear primitivas de componentes)
Sobrescribir: “Los estilos de los componentes pueden ser externos”
Mintlify sugiere: Archivos CSS externos para componentesNuestro enfoque: ❌ Los estilos deben estar dentro de los archivos de componentes JSX
Razón: Mintlify no admite importaciones de CSS en componentes de manera confiable. Los estilos en línea y las etiquetas
<style> dentro de los componentes funcionan de manera consistente.
Patrón:
Mintlify Advertencias y limitaciones
Limitaciones Críticas
1. Las rutas de importación deben ser absolutas
2. Se requieren extensiones de archivo
3. No se puede importar en archivos de componentes
No puedes importar datos u otros componentes en un archivo de componente JSX:4. Los archivos JSX no pueden importar otros archivos JSX
Mintlify no permite que los archivos JSX importen otros archivos JSX. Por eso usamos patrones MDX-in-MDX en su lugar.5. Herencia del ámbito de MDX
Al importar archivos MDX en otros archivos MDX:- ✅ El MDX secundario hereda el ámbito del padre para las propiedades - Los imports del padre funcionan cuando se usan como props de componente
- ❌ ** - El MDX hijo NO puede heredar el alcance del padre para la interpolación directa de JSX** - Las variables usadas como
{variable}pueden necesitar un nuevo import - ✅ El hijo puede importar sus propias variables - Si el hijo necesita algo que el padre no importa
6. Los hooks de React son globales
Mintlify proporciona hooks de React de forma global, no se necesitan importaciones:7. Comportamiento del componente de icono
CRITICAL: Mintlify’s<Icon> componente representa iconos personalizados como <img alt="Image"> elementos, NO SVG incrustado.
8. Mintlify Componentes globales
Estos componentes están disponibles globalmente - no los importes:React,Frame,Card,Icon,Steps,Step,Tabs,TabNote,Warning,Info,Tip,DangerAccordion,Columns,CardGroup,CodeBlock,Expandable,Badge,Tooltip
9. Los comentarios de JSX no impiden el análisis de MDX
CRÍTICO: Los comentarios de JSX ({/* */}) en archivos MDX no NOprevenir que MDX analice el contenido dentro de ellos. MDX aún intentará evaluar componentes JSX y expresiones dentro de los comentarios.
- Elimina toda la sección del archivo MDX
- Añade un comentario explicando por qué fue eliminada
- **Documento en
docs/PLAN/errors/component-bugs.md**si es un error de componente - No uses comentarios JSXpara “comentar” el uso de componentes
9. Limitaciones del modo Frame
Modo Frame (mode: frame en el frontmatter) elimina todo el estilo predeterminado de Mintlify. Al usar el modo frame:
- Las encabezados de markdown predeterminados pueden no renderizarse correctamente
- Use componentes de encabezado personalizados de
frameMode.jsx - Todo el estilo debe ser personalizado
- Los componentes Mintlify aún funcionan pero pierden los estilos predeterminados
- Mantenga las primitivas de diseño responsivo en
style.css(.frame-mode-container,.frame-mode-hero-full, paginación de marco) - Mantenga la estructura específica de portal/página en componentes JSX compartidos (por ejemplo
/snippets/components/domain/SHARED/Portals.jsx) - No use constantes de ruptura fijas directamente en los estilos de los componentes (por ejemplo, valores hardcodeados
96px,20px, o fijas%anchuras) - Preferir variables de CSS + puntos de interrupción para el diseño en modo marco, y propiedades personalizadas de CSS (
var(--...)) para la temática
Importar patrones
Patrón Correcto: Importar en MDX, Usar en Componente
Flujo de Trabajo de Git
Gestión de Ramas
SIEMPRE crear una nueva rama desdedocs-v2:
docs-v2(rama de documentación activa)mainomaster- Cualquier rama que otro agente esté usando
docs-plan/XX-task-name donde XX es el número de la tarea.
Prácticas recomendadas
Organización del código
-
Mantenga los componentes en
/snippets/components/organizados por propósito:primitives/- Elementos de interfaz de usuario básicoslayout/- Componentes de diseñodisplay/- Medios e incrustacionescontent/- Visualización de contenidointegrations/- Servicios externosdomain/- Componentes específicos de dominio
-
Mantén los datos en
/snippets/data/para cadenas de código y variables reutilizables -
Usar
/snippets/pages/para contenido MDX modular que se importa en las páginas principales
Estilo de escritura
- Sé claro y conciso - Escribir para usuarios con diferentes niveles de conocimiento técnico
- Usar ejemplos - Incluir ejemplos de código y escenarios del mundo real
- Proporcionar contexto - Explicar por qué, no solo cómo
- Vínculo al contenido relacionado - Ayudar a los usuarios a descubrir información relacionada
- Probar ambos temas - Verificar que el contenido se ve bien en los modos claro y oscuro
Directrices del componente
- Usar Solo Propiedades Personalizadas de CSS - Nunca usar ThemeData o colores codificados
- Referir variables de style.css - Todos los colores del tema están en
style.csscomo variables CSS - Componentes de prueba - Asegúrate de que los componentes se rendericen correctamente
- Manejar hijos correctamente - Siempre manejar los hijos como matrices al mapear
- Documentar Props - Incluir comentarios JSDoc para las propiedades de los componentes
- Proporcionar ejemplos - Añadir ejemplos en la carpeta
examples/para cada componente
Inmutabilidad de los componentes
REGLA CRÍTICA: Los componentes ensnippets/components/son INMUTABLES
NUNCA modifiques archivos en snippets/components/ - Estos componentes se utilizan en muchas páginas. Cualquier cambio podría romper la funcionalidad existente.
Permitido:
- Crear nuevos componentes
- Modificar archivos MDX que usen componentes
- Corrigiendo importaciones y uso de MDX
- Modificar archivos de componentes existentes
- Cambiar las firmas de funciones de componentes
- Añadir o eliminar exportaciones de componentes
- Cambiar la lógica del componente
- Comentar la sección del componente en el archivo MDX donde se utiliza
- Verificar que la página se renderice sin esa sección
- Si la página se renderiza correctamente → El componente es el problema
- Documenta el error en
docs/PLAN/errors/component-bugs.mdcon:- Nombre del componente y ruta del archivo
- Mensaje de error desde la consola
- Página donde ocurre el error
- Verificación de que comentar el código lo soluciona
- Recomendación para arreglar el componente (pero no lo implementes)
Nombres de archivos
- Use kebab-case para los nombres de archivos:
my-component.mdx - Use PascalCase para los nombres de componentes:
MyComponent - Use nombres descriptivos que indiquen su propósito
Lista de verificación de pruebas
Antes de enviar la documentación:- El contenido se muestra correctamente en modo oscuro (predeterminado)
- El contenido se muestra correctamente en modo claro
- Todos los enlaces funcionan y apuntan a las páginas correctas
- Los ejemplos de código son precisos y probados
- Las imágenes se cargan y tienen texto alternativo adecuado
- Los componentes usan colores adaptados al tema
- No hay colores fijos que deban adaptarse al tema
- Los componentes se representan correctamente
- No hay errores en la consola de herramientas de desarrollo del navegador
- Errores de sintaxis de MDX revisados y corregidos
- Todas las páginas verificadas en navegador sin interfaz (ver Requisitos de Verificación a continuación)
Requisitos de verificación
Comprobación de sintaxis MDX
Antes de declarar el trabajo como completo, verifique los archivos MDX:- Use herramientas de linting para verificar todos los archivos MDX modificados
- Compruebe lo siguiente:
- Etiquetas JSX no cerradas
- Sintaxis de importación no válida
- Faltan metadatos
- Errores de sintaxis
- Corrija cualquier error de MDX antes de considerar el trabajo completo
Verificación con navegador headless
Antes de declarar que el trabajo está completo, verifique cada página en un navegador headless:- Use Puppeteer o una herramienta similar para cargar cada página
- Esperar a que la red esté inactiva
- Comprobar errores de consola (filtrando los artefactos del script de prueba)
- Verificar que la longitud del contenido sea mayor a 500 caracteres
- Verificar que exista un elemento H1
- Comprobar errores 404
- Ignorar “require no está definido” de los scripts de prueba
- Ignorar errores relacionados con “puppeteer”
- Ignorar errores de “fs ya ha sido declarado”
- Enfocarse en errores reales de componentes
- URL de la página
- Longitud del contenido
- Texto H1
- Lista de errores reales de la consola (si los hay)
- Estado: ✅ OK o ❌ ERRORES
Verificación de la estructura de la URL
Mintlify páginas usan la estructura de ruta completa:- Ruta de la página en
docs.json:v2/resources/documentation-guide/component-library/primitives - URL:
/v2/resources/documentation-guide/component-library/primitives
Mintlify Configuración del tema
Mintlify también admite la configuración de temas endocs.json:
style.css.
Ganchos de Pre-Commit
Este repositorio utiliza ganchos de pre-commit de Git para aplicar automáticamente las reglas de la guía de estilo.Estos hooks son obligatorios y bloquearán los commits que violen la guía de estilo.Lo que se comprueba
Los hooks de pre-commit verifican automáticamente lo siguiente:- Obsoleto
ThemeDataUso - Bloquea las importaciones deThemeDatadesdesnippets/styles/themeStyles.jsx - Colores de tema predeterminados - Advierte sobre códigos hexadecimales directos que deben usar Propiedades CSS Personalizadas
- Importaciones de fragmentos relativos - Marca las importaciones desde
snippets/que usan rutas relativas en lugar de rutas absolutas - Importaciones innecesarias - Advierte sobre las importaciones explícitas para los componentes y ganchos de React disponibles globalmente de Mintlify
- Validación de sintaxis - Verifica la sintaxis de MDX, JSON, Shell y JavaScript
- Validación del navegador - Prueba que las páginas de MDX se rendericen correctamente en un navegador sin cabeza (si
mint devestá en ejecución)
Instalación
OBLIGATORIO: Debes instalar los hooks antes de realizar cualquier commit:¿Qué ocurre en caso de incumplimiento
Si intentas hacer un commit con código que viole la guía de estilo:- El commit es bloqueado
- Recibes un mensaje de error detallado que enumera todas las violaciones
- Debes corregir las violaciones antes de volver a hacer el commit
Ediciones protegidas.allowlist (Solo humano)
El archivo .allowlistestá protegido por comprobaciones de pre-commit.
Si un humano necesita intencionalmente editar .allowlist, usar:
Salida de error de ejemplo
Validación del navegador
Los hooks incluyen validación del navegador sin cabeza que prueba que los archivos MDX se representan realmente en el navegador. Esto captura:- Errores en tiempo de ejecución en componentes
- Importaciones fallidas
- Errores de consola
- Fallos de representación
mint dev para estar en ejecución. Si no está en ejecución, se omite la comprobación (no bloquea el commit).
Suite de pruebas completa
El repositorio incluye un conjunto completo de pruebas que validan todas las reglas de la guía de estilo y más:Ejecutar pruebas
¿Qué se prueba?
Pruebas de la guía de estilo (test:style):
- Uso de propiedades CSS personalizadas (sin ThemeData, sin colores codificados)
- Sin estilos en línea en archivos MDX
- Sin clases de Tailwind
- Rutas de importación absolutas
- Convenciones de nombres de archivos
- Advertencias sobre inmutabilidad de componentes
test:mdx)
- Validación de frontmatter
- Etiquetas JSX no cerradas
- Sintaxis de importación no válida
- Problemas de herencia del ámbito MDX
test:spell):
- Validación de ortografía en inglés británico
- Diccionario personalizado para términos técnicos (Livepeer, Arbitrum, etc.)
- Excluye bloques de código y frontmatter
test:quality):
- Presencia de texto alternativo de imagen
- Completitud del frontmatter
- Validación de enlaces internos
- Validación de metadatos SEO
test:browser):
- Renderizado de la página en navegador sin interfaz
- Detección de errores de consola
- Pruebas de tema (claro/oscuro)
- Validación de contenido (H1, longitud del contenido)
Recursos
- Biblioteca de componentes - Referencia completa de componentes
- Mintlify Documentación - Documentación oficial de Mintlify
- Mintlify Guía de comportamiento - Posibles problemas con Mintlify
- Documentación de Git Hooks - Documentación completa del hook pre-commit
style.css- Propiedades CSS globales para temas
Siguientes pasos
- Revisa la Biblioteca de Componentes para componentes disponibles
- Consulta Inventario de Fragmentos para todos los fragmentos disponibles
- Leer Mintlify Guía de comportamiento para obtener más información sobre posibles problemas
- Ver Contribuir a las documentaciones para conocer las directrices de contribución
- Instalar ganchos de Git:
./.githooks/install.sh