Enums¶
Os enums do tempestroid são constantes tipadas que descrevem intenção — valores
como AlignItems.CENTER, FontWeight.BOLD ou Curve.EASE_IN_OUT viajam como
strings para o renderizador (Qt ou Compose) e para a ponte nativa. Todos são
importáveis do nível do pacote:
Enums do design system
Os enums da API de variantes — Variant (solid/outline/ghost/link), Size
(xs/sm/md/lg), FieldVariant (outline/filled/flushed) e ComponentState —
vêm do pacote tempest_core e são descritos no
guia do design system.
Cada membro expõe um atributo .value com o valor string (ou inteiro) que cruza
a fronteira; use sempre o nome de membro (AlignItems.CENTER), não o .value
cru.
Exemplo rápido:
from tempestroid import AlignItems, FlexDirection, FontWeight, JustifyContent, Style
estilo = Style(
direction=FlexDirection.COLUMN,
justify=JustifyContent.SPACE_BETWEEN,
align=AlignItems.CENTER,
)
texto = Style(
font_weight=FontWeight.SEMIBOLD,
font_size=18.0,
)
Layout e flexbox¶
AlignItems¶
Controla o alinhamento dos filhos no eixo transversal (cross-axis), equivalente
à propriedade CSS align-items.
| Membro | Valor | Significado |
|---|---|---|
START |
"start" |
Filhos alinhados ao início do eixo transversal. |
END |
"end" |
Filhos alinhados ao fim do eixo transversal. |
CENTER |
"center" |
Filhos centralizados no eixo transversal. |
STRETCH |
"stretch" |
Filhos esticados para preencher o eixo transversal. |
JustifyContent¶
Distribui o espaço entre os filhos no eixo principal, equivalente a
justify-content do CSS.
| Membro | Valor | Significado |
|---|---|---|
START |
"start" |
Filhos agrupados no início do eixo principal. |
END |
"end" |
Filhos agrupados no fim do eixo principal. |
CENTER |
"center" |
Filhos centralizados no eixo principal. |
SPACE_BETWEEN |
"space-between" |
Espaço igual entre filhos; sem margem nas bordas. |
SPACE_AROUND |
"space-around" |
Espaço igual ao redor de cada filho. |
SPACE_EVENLY |
"space-evenly" |
Espaço idêntico entre todos os pontos (incluindo bordas). |
FlexDirection¶
Define a direção do eixo principal do contêiner flex.
| Membro | Valor | Significado |
|---|---|---|
ROW |
"row" |
Filhos dispostos em linha (horizontal). |
COLUMN |
"column" |
Filhos dispostos em coluna (vertical). |
FlexWrap¶
Controla se os filhos podem quebrar para a próxima linha quando o espaço acaba,
equivalente a flex-wrap do CSS. Usado pelo widget Wrap e pelo campo
Style.flex_wrap.
| Membro | Valor | Significado |
|---|---|---|
NOWRAP |
"nowrap" |
Todos os filhos numa única linha; transborda se necessário. |
WRAP |
"wrap" |
Filhos quebram para a próxima linha quando não há espaço. |
WRAP_REVERSE |
"wrap-reverse" |
Como WRAP, mas a quebra ocorre na direção contrária. |
Position¶
Controla o modo de posicionamento de um filho dentro de um Stack. Campos
top/right/bottom/left só têm efeito quando position=Position.ABSOLUTE.
| Membro | Valor | Significado |
|---|---|---|
STATIC |
"static" |
Posicionamento normal no fluxo do layout. |
ABSOLUTE |
"absolute" |
Posicionado com coordenadas explícitas relativas ao pai. |
StackAlign¶
Alinha filhos não posicionados nos dois eixos dentro de um Stack.
| Membro | Valor | Significado |
|---|---|---|
TOP_START |
"top_start" |
Canto superior esquerdo. |
TOP_CENTER |
"top_center" |
Topo, centralizado horizontalmente. |
TOP_END |
"top_end" |
Canto superior direito. |
CENTER_START |
"center_start" |
Centralizado verticalmente, alinhado à esquerda. |
CENTER |
"center" |
Centralizado nos dois eixos. |
CENTER_END |
"center_end" |
Centralizado verticalmente, alinhado à direita. |
BOTTOM_START |
"bottom_start" |
Canto inferior esquerdo. |
BOTTOM_CENTER |
"bottom_center" |
Base, centralizado horizontalmente. |
BOTTOM_END |
"bottom_end" |
Canto inferior direito. |
Texto e fonte¶
FontWeight¶
Peso da fonte em escala numérica CSS. Use Style.font_weight.
| Membro | Valor | Significado |
|---|---|---|
THIN |
100 |
Peso mais leve disponível. |
LIGHT |
300 |
Levemente mais fino que o normal. |
NORMAL |
400 |
Peso padrão. |
MEDIUM |
500 |
Levemente mais pesado que o normal. |
SEMIBOLD |
600 |
Negrito suave, bom para cabeçalhos secundários. |
BOLD |
700 |
Negrito padrão. |
BLACK |
900 |
Peso máximo. |
FontStyle¶
Estilo da fonte. Use Style.font_style.
| Membro | Valor | Significado |
|---|---|---|
NORMAL |
"normal" |
Fonte em estilo romano (padrão). |
ITALIC |
"italic" |
Fonte em itálico. |
TextAlign¶
Alinhamento horizontal do texto. Use Style.text_align.
| Membro | Valor | Significado |
|---|---|---|
LEFT |
"left" |
Texto alinhado à esquerda. |
CENTER |
"center" |
Texto centralizado. |
RIGHT |
"right" |
Texto alinhado à direita. |
JUSTIFY |
"justify" |
Texto justificado (bordas alinhadas em ambos os lados). |
TextDecoration¶
Decoração de texto. Use Style.text_decoration.
| Membro | Valor | Significado |
|---|---|---|
NONE |
"none" |
Sem decoração. |
UNDERLINE |
"underline" |
Sublinhado. |
LINE_THROUGH |
"line-through" |
Tachado. |
TextOverflow¶
Comportamento quando o texto transborda o contêiner. Use Style.text_overflow.
| Membro | Valor | Significado |
|---|---|---|
CLIP |
"clip" |
Texto cortado abruptamente no limite do contêiner. |
ELLIPSIS |
"ellipsis" |
Texto cortado com reticências (…) no final. |
KeyboardType¶
Tipo de teclado virtual exibido ao editar um Input. Use Input.keyboard_type.
| Membro | Valor | Significado |
|---|---|---|
TEXT |
"text" |
Teclado alfanumérico padrão (padrão). |
NUMBER |
"number" |
Teclado numérico. |
EMAIL |
"email" |
Teclado otimizado para endereços de e-mail (sugere @). |
PHONE |
"phone" |
Teclado de discagem telefônica. |
URL |
"url" |
Teclado otimizado para URLs (sugere .//). |
PASSWORD |
"password" |
Oculta os caracteres digitados. |
Cor, gradiente e imagem¶
GradientDirection¶
Direção de um gradiente linear. Passado em Gradient.direction.
| Membro | Valor | Significado |
|---|---|---|
TOP_BOTTOM |
"top-bottom" |
Do topo para a base. |
BOTTOM_TOP |
"bottom-top" |
Da base para o topo. |
LEFT_RIGHT |
"left-right" |
Da esquerda para a direita. |
RIGHT_LEFT |
"right-left" |
Da direita para a esquerda. |
ImageFit¶
Como a imagem preenche seu contêiner, equivalente a object-fit do CSS. Passado
em Image.fit.
| Membro | Valor | Significado |
|---|---|---|
CONTAIN |
"contain" |
Imagem redimensionada para caber sem cortar (mantém proporção). |
COVER |
"cover" |
Imagem redimensionada para cobrir todo o contêiner (pode cortar). |
FILL |
"fill" |
Imagem esticada para preencher o contêiner (ignora proporção). |
NONE |
"none" |
Sem redimensionamento; exibida em tamanho original. |
ClipShape¶
Forma do recorte aplicado por ClipPath.
| Membro | Valor | Significado |
|---|---|---|
CIRCLE |
"circle" |
Recorte circular (avatares, ícones redondos). |
ROUNDED_RECT |
"rounded_rect" |
Retângulo com cantos arredondados. |
OVAL |
"oval" |
Elipse — mais larga ou mais alta que um círculo. |
Animação¶
Curve¶
Curva de easing para Transition e para os controladores de animação do Trilho E.
| Membro | Valor | Significado |
|---|---|---|
LINEAR |
"linear" |
Velocidade constante ao longo da animação. |
EASE_IN |
"ease-in" |
Começa devagar, acelera até o fim. |
EASE_OUT |
"ease-out" |
Começa rápido, desacelera até o fim. |
EASE_IN_OUT |
"ease-in-out" |
Começa e termina devagar, acelerado no meio. |
EASE |
"ease" |
Easing suave semelhante ao padrão CSS. |
BOUNCE |
"bounce" |
Efeito de salto ao atingir o valor final. |
ELASTIC |
"elastic" |
Ultrapassa levemente e retorna (mola). |
from tempestroid import Color, Curve, Style, Transition
Style(
background=Color.from_hex("#3b82f6"),
transition=Transition(duration_ms=250, curve=Curve.EASE_IN_OUT),
)
Tema e tela¶
ThemeMode¶
Modo de tema da aplicação. Definido em App.set_theme.
| Membro | Valor | Significado |
|---|---|---|
LIGHT |
"light" |
Tema claro forçado. |
DARK |
"dark" |
Tema escuro forçado. |
SYSTEM |
"system" |
Segue a preferência do sistema operacional. |
Orientation¶
Orientação de tela solicitada. Passada em chamadas de plataforma.
| Membro | Valor | Significado |
|---|---|---|
PORTRAIT |
"portrait" |
Orientação vertical. |
LANDSCAPE |
"landscape" |
Orientação horizontal. |
AUTO |
"auto" |
O sistema decide com base na posição do dispositivo. |
StatusBarStyle¶
Estilo da barra de status (ícones claros ou escuros). Passado em chamadas de plataforma.
| Membro | Valor | Significado |
|---|---|---|
LIGHT |
"light" |
Ícones claros (para barras de status escuras). |
DARK |
"dark" |
Ícones escuros (para barras de status claras). |
SafeAreaEdge¶
Bordas a serem respeitadas pelo widget SafeArea. Combine múltiplos valores
passando uma lista a SafeArea.edges.
| Membro | Valor | Significado |
|---|---|---|
TOP |
"top" |
Margem superior (barra de status / notch). |
RIGHT |
"right" |
Margem direita (modo paisagem / câmera lateral). |
BOTTOM |
"bottom" |
Margem inferior (barra de navegação / home indicator). |
LEFT |
"left" |
Margem esquerda (modo paisagem). |
Device¶
Predefinição de tela do simulador Qt. Passada para run_qt(size=Device.PIXEL_8).
O valor de cada membro é o nome de exibição do aparelho; o simulador usa as
dimensões em dp correspondentes para dimensionar a janela.
Famílias disponíveis:
| Família | Membros |
|---|---|
| Google Pixel | PIXEL_4, PIXEL_4A, PIXEL_5, PIXEL_6, PIXEL_6A, PIXEL_7, PIXEL_7A, PIXEL_8, PIXEL_8_PRO |
| Samsung Galaxy S | GALAXY_S8, GALAXY_S21, GALAXY_S22, GALAXY_S23, GALAXY_S23_ULTRA, GALAXY_S24, GALAXY_S24_ULTRA |
| Samsung Galaxy A | GALAXY_A51, GALAXY_A52, GALAXY_A54 |
| Redmi / Poco / Xiaomi | REDMI_NOTE_10, REDMI_NOTE_11, REDMI_NOTE_12, REDMI_NOTE_13, REDMI_11, REDMI_12, POCO_X5, XIAOMI_13, XIAOMI_14 |
| Motorola | MOTO_G_POWER, MOTO_G52 |
| OnePlus | ONEPLUS_9, ONEPLUS_11 |
Exemplo:
from tempestroid import Device
from tempestroid.renderers.qt import run_qt
# Simula um Pixel 8 (1080 × 2400 dp)
run_qt(state, view, title="Meu App", size=Device.PIXEL_8)
33 predefinições no total
Use Device.<TAB> no REPL para ver todas as opções disponíveis.
Plataforma e sistema¶
AppState¶
Estado do ciclo de vida do aplicativo, recebido em LifecycleEvent.state.
| Membro | Valor | Significado |
|---|---|---|
FOREGROUND |
"foreground" |
App visível e em foco. |
BACKGROUND |
"background" |
App em segundo plano (não visível). |
INACTIVE |
"inactive" |
App visível mas sem foco (ex.: sobreposição de sistema). |
ConnectivityState¶
Estado da conectividade de rede, recebido em ConnectivityEvent.state.
| Membro | Valor | Significado |
|---|---|---|
CONNECTED |
"connected" |
Conectado a alguma rede. |
DISCONNECTED |
"disconnected" |
Sem conectividade. |
WIFI |
"wifi" |
Conectado via Wi-Fi. |
MOBILE |
"mobile" |
Conectado via rede móvel (dados celulares). |
PermissionStatus¶
Resultado de uma solicitação de permissão de plataforma.
| Membro | Valor | Significado |
|---|---|---|
GRANTED |
"granted" |
Permissão concedida pelo usuário. |
DENIED |
"denied" |
Permissão negada (pode ser solicitada novamente). |
PERMANENTLY_DENIED |
"permanently_denied" |
Permissão negada permanentemente; direcione o usuário às configurações. |
SensorType¶
Tipo de sensor físico para assinar via native. Passado ao registrar um
callback de sensor.
| Membro | Valor | Significado |
|---|---|---|
ACCELEROMETER |
"accelerometer" |
Aceleração linear nos três eixos (m/s²). |
GYROSCOPE |
"gyroscope" |
Velocidade de rotação nos três eixos (rad/s). |
MAGNETOMETER |
"magnetometer" |
Campo magnético nos três eixos (μT). |
PRESSURE |
"pressure" |
Pressão barométrica (hPa). |
LIGHT |
"light" |
Nível de iluminância ambiente (lux). |
PROXIMITY |
"proximity" |
Distância de um objeto próximo (cm ou binário). |
STEP_COUNTER |
"step_counter" |
Contador de passos acumulado desde o último boot. |
ImpactStyle¶
Intensidade do haptic feedback gerado por native.haptics. Passado em chamadas
de vibração.
| Membro | Valor | Significado |
|---|---|---|
LIGHT |
"light" |
Toque suave (confirmações sutis). |
MEDIUM |
"medium" |
Toque médio (interações padrão). |
HEAVY |
"heavy" |
Toque forte (alertas ou ações destrutivas). |
Gestos¶
SwipeDirection¶
Direção de um gesto de deslize, recebido em SwipeEvent.direction.
| Membro | Valor | Significado |
|---|---|---|
LEFT |
"left" |
Deslize para a esquerda. |
RIGHT |
"right" |
Deslize para a direita. |
UP |
"up" |
Deslize para cima. |
DOWN |
"down" |
Deslize para baixo. |
Recapitulando¶
- Importe sempre do nível do pacote:
from tempestroid import AlignItems, Curve. - Use o nome de membro (
FontWeight.BOLD), não o valor string diretamente. - O
.valuede cada membro é a string (ou inteiro) enviada ao renderizador e à ponte nativa — você raramente precisará acessá-la. - Enums de layout (
AlignItems,JustifyContent,FlexDirection,FlexWrap,Position,StackAlign) são campos deStyle; os de plataforma (AppState,ConnectivityState,SensorType) chegam em eventos;Devicedimensiona a janela do simulador. - A referência completa de campos de
Styleestá no guia de estilos; os eventos que carregam esses enums estão no guia de eventos.