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
InicioPrimeros pasosJetpack Compose

Jetpack Compose

Añade Tanrei a una aplicación de Android construida con Jetpack Compose.

content_copyVer en Markdown

La biblioteca de Compose proporciona funciones composables, un TanreiTheme y objetos de tokens generados. Depende de Compose Foundation y no de una biblioteca de componentes Material, así que no introduce un segundo sistema de diseño en tu aplicación.

Aún no publicado

io.github.chnotchy:tanrei todavía no está en Maven Central. Una plataforma se publica cuando se ha puesto al día con las especificaciones actuales, y hasta entonces la CI de Jetpack Compose está en pausa. «Desde el código fuente», más abajo, muestra cómo se añade el paquete desde chnotchy/tanrei; «Cuando se publique» muestra cómo se instalará entonces.

Instalación

Desde el código fuente

Hoy no se compila

La biblioteca de Compose todavía no se ha puesto al día con las especificaciones y los tokens actuales: su código fuente se escribió para una versión anterior del código de tokens generado y no compila con el de hoy. Su CI está en pausa hasta que se ponga al día, y la página de estado marca sus componentes como rezagados. Los pasos siguientes muestran cómo se añade a una aplicación; funcionarán cuando la biblioteca se haya puesto al día.

Clona el repositorio junto a tu aplicación e incluye su compilación de Gradle, que contiene la biblioteca como el proyecto :tanrei:

// settings.gradle.kts
includeBuild("../tanrei/packages/compose") {
  dependencySubstitution {
    substitute(module("io.github.chnotchy:tanrei")).using(project(":tanrei"))
  }
}
// build.gradle.kts
dependencies {
  implementation("io.github.chnotchy:tanrei")
}

Cuando se publique

// build.gradle.kts
dependencies {
  implementation("io.github.chnotchy:tanrei:<version>")
}

Uso

Envuelve tu contenido en TanreiTheme una sola vez, cerca de la raíz:

import io.github.chnotchy.tanrei.components.TanreiButton
import io.github.chnotchy.tanrei.theme.TanreiTheme
import io.github.chnotchy.tanrei.tokens.TanreiButtonVariant

@Composable
fun DeployScreen(isDeploying: Boolean, onDeploy: () -> Unit) {
  TanreiTheme {
    TanreiButton(
      text = "Desplegar",
      onClick = onDeploy,
      variant = TanreiButtonVariant.Filled,
      enabled = !isDeploying,
    )
  }
}

La convención de Compose es el indicador en positivo enabled, y eso es lo que usa Tanrei; la propiedad disabled de la especificación corresponde a su inverso. Una sobrecarga con slot acepta una lambda content cuando necesitas algo más que una etiqueta de texto.

Tema y contraste

De forma predeterminada, TanreiTheme sigue el tema oscuro del sistema y el ajuste de contraste del sistema. Ambos se pueden fijar:

TanreiTheme(theme = TanreiThemeMode.Dark, contrast = TanreiContrast.High) {
  App()
}

Fuentes

De forma predeterminada, la escala tipográfica se resuelve con la familia de fuentes predeterminada de la plataforma. Pasa tus propias TanreiFontFamilies a TanreiTheme para usar Inter (y Noto Sans JP, Roboto Mono) desde los recursos de fuentes de tu aplicación. Los estilos de texto se nombran por nivel (TanreiTheme.tokens.typescale.heading2, .body, .label; .toTextStyle() convierte uno en un TextStyle de Compose), y TanreiTheme.tokens.typescale.heading1.emphasized() es el mismo estilo con su peso más el paso de énfasis de la familia de títulos (fuera de la composición, emphasized(system.typescale.emphasis)).