Saltar al contenido
menumenu tanreiexpand_morecontrasttranslate
tanreiexpand_more
Primeros pasosWebReactSwiftUIJetpack ComposeFlutterReact NativePreajustesTu propio sistema de diseñoUsar Tanrei con agentes de IAMarcaTokens de diseñoSistemas de diseño y personalizaciónTheme StudioColorTipografíaIconosFormaElevaciónMovimientoEstados de interacciónComportamientoDiseño de páginaAccesibilidadTextosTokens de colorTokens de la escala tipográficaTokens de formaTokens de elevaciónTokens de movimientoTokens de estadoTokens de espacio y de medidaComponentesBotónBotón de acción principalBotón segmentadoGrupo de botonesBotón con menúBarra de herramientasBotón de copiarCasilla de verificaciónBotón de opciónInterruptorChipMenúControl deslizanteCampo de control deslizanteCalendarioDateTimePickerGrupo de camposGrupo de botones de opciónGrupo de casillas de verificaciónSelectCampo de selecciónBarra de menúsSubida de archivosSelector de archivos AvanzadoZona de soltar archivosEntrada de texto AvanzadoCampo de textoCampo de chipsCampoCuadro combinado AvanzadoCampo de cuadro combinadoEntrada numérica AvanzadoCampo numéricoEntrada de color AvanzadoCampo de colorEntrada de código de un solo uso AvanzadoCampo de código de un solo usoEntrada de texto incrustada AvanzadoCuadro de redacción de chatTarjetaDivisorCapa modal AvanzadoDiálogoListaFila de listaHoja inferiorHoja lateralCarruselBloque de códigoTablaPopoverPasosAcordeónLista de descripcionesFiguraEstructura de la aplicaciónCabecera de páginaVista de árbolLínea de tiempoVista previa de imágenesTirador de tamañoMarco redimensionableÁrea de desplazamientoInsigniaIndicador de progresoMedidorContador animadoIndicador de cargaSnackbarTooltipAtajo de tecladoTagCódigo en líneaCalloutAvatarEstado vacíoGrupo de tagsEsqueletoElemento de archivoMuestraTexto en marquesinaPestañasVista de pestañasBarra de la aplicaciónBarra de navegaciónPanel de navegaciónBúsquedaEnlacePaginaciónEnlaces anterior y siguienteIndicador de pasosRuta de navegaciónTabla de contenidoTarjeta de enlaceMenú FABEstadoCómo se construye TanreiCómo contribuirLicencia y atribución
InicioProyectoCómo contribuir

Cómo contribuir

Por qué Tanrei no acepta contribuciones externas, cómo informar de un error o hacer una pregunta, y dónde están las reglas.

content_copyVer en Markdown

No se aceptan contribuciones externas

El repositorio es público en github.com/chnotchy/tanrei, para que cualquiera pueda leer cómo se hace Tanrei. Todos los cambios los hacen los mantenedores: las pull requests externas se cierran sin fusionarse, y no se aceptan propuestas de componentes ni de tokens nuevos. El motivo es la cadena de suministro: Tanrei es código que se ejecuta dentro de los productos de otras personas, cada cambio externo es una vía para que llegue a ellos código que sus mantenedores no escribieron, y la situación actual de la seguridad hace de eso un riesgo que el proyecto no asume. Para informar de un error o hacer una pregunta, abre una incidencia. Informa de un problema de seguridad en privado, como describe el SECURITY.md del repositorio, nunca en una incidencia.

Dónde están las reglas

El AGENTS.md de la raíz del repositorio es la guía de referencia para quien modifica el repositorio, sea una persona o una IA. Es breve, y leerlo primero ahorra tiempo. Cada paquete y cada directorio de código fuente puede añadir un AGENTS.md anidado con reglas locales; se aplica el archivo más cercano, y ninguno puede debilitar el de la raíz. El CONTRIBUTING.md de la raíz es la versión extensa.

El material más extenso está en el directorio docs/ del repositorio: la descripción general de la arquitectura y la gobernanza, que dice quién decide qué.

La forma de un cambio

Todo cambio sigue estos pasos, lo haga quien lo haga.

  1. Parte de la fuente de verdad. Los cambios en la superficie pública de un componente empiezan en specs/. Los cambios en un valor de diseño empiezan en tokens/. El código de las plataformas viene después.
  2. Ejecuta las comprobaciones en local. pnpm validate, pnpm generate y luego pnpm check. Si la comprobación de desviaciones falla, regenera; no edites el archivo generado.
  3. No dejes que una plataforma diga más de lo que hay. Si no puedes terminar una plataforma, deja su estado como realmente es. La matriz se genera a partir del repositorio y no debe afirmar más de lo que existe.
  4. Añade un changeset para todo lo que los usuarios puedan ver, y usa Conventional Commits (feat(web): …, fix(tokens): …, docs: …).

Lo que ningún cambio puede contener

  • Colores, radios, tipografía, espaciado, movimiento u opacidad escritos a mano dentro de un componente.
  • Imágenes de referencia de las instantáneas actualizadas para que una prueba pase.
  • Umbrales de contraste o de accesibilidad rebajados.
  • Texto de documentación copiado de otro sistema de diseño. Toda la prosa de Tanrei es original.

Cambios en la documentación

Este sitio está en apps/docs/. La prosa es MDX escrito a mano: el inglés es el idioma de origen, y cada página se traduce a los demás idiomas del sitio (apps/docs/i18n/README.md los enumera, e indica cómo registra una traducción a partir de qué se hizo). Las tablas que pueden salir de una especificación, de un archivo de tokens o de la matriz de estado se representan a partir de esos datos y nunca se escriben a mano. Consulta apps/docs/AGENTS.md para ver las reglas locales.