eQuantic.UIeQuantic.UI
Docs
Playground
GitHub
START HERE
Getting Started
WRITE-ONCE
Write-Once Components
Declarative Surface
Photon Engine
Design System
Capabilities
Storage
Forms
Code Editor
Markdown
Mermaid
Email Rendering
ARCHITECTURE
Architecture Overview
Package Architecture
Components
Styling
Localization
Analytics & GTM
COMPILATION
Compiler
Compile-Time Evaluation
Supported C# Features
External Type Resolution
Build Flow
Diagnostics
RUNTIME
Runtime (TypeScript)
Performance
SERVER
Server Integration
Assets
BunPackage
Security
ECOSYSTEM
Image
Charts
Icons
Lottie
DEVELOPMENT
Visual Editor
Debug
Roadmap
PT-BR
Analytics-pt-BR
Architecture-pt-BR
Assets-pt-BR
BuildFlow-pt-BR
BunPackage-pt-BR
Capabilities-pt-BR
Charts-pt-BR
CodeEditor-pt-BR
Compiler-pt-BR
CompileTimeEvaluation-pt-BR
Components-pt-BR
Debug-pt-BR
DeclarativeSurface-pt-BR
DesignSystem-pt-BR
Diagnostics-pt-BR
EmailRealizer-pt-BR
ExternalTypeResolution-pt-BR
Forms-pt-BR
GettingStarted-pt-BR
Home-pt-BR
Icons-pt-BR
Image-pt-BR
Localization-pt-BR
Lottie-pt-BR
Markdown-pt-BR
Mermaid-pt-BR
PackageArchitecture-pt-BR
Performance-pt-BR
Photon-pt-BR
Roadmap-pt-BR
Runtime-pt-BR
Security-pt-BR
ServerIntegration-pt-BR
Storage-pt-BR
Styling-pt-BR
SupportedFeatures-pt-BR
VisualEditor-pt-BR
WriteOnceComponents-pt-BR
ACTIONS & INPUTS
Button
IconButton
TextInput
Select
Checkbox
Switch
RadioGroup
SegmentedControl
Slider
Stepper
SearchField
SURFACES & DISPLAY
Card
Badge
Chip
Avatar
Banner
ProgressBar
EmptyState
Divider
NAVIGATION
Tabs
AppBar
BottomNavigation
Breadcrumb
Pagination
PageIndicator
Menu
Drawer
OVERLAYS
Dialog
BottomSheet
Toast
Popover
Tooltip
LISTS & DATA
List
ListView
Table
Accordion
CodeBlock
TOUCH INTERACTION
PullToRefresh
SwipeableRow
Docspt-BR
Roadmap do projeto
Edit this page
7 min read
🌐 Esta página em: English · Português
Sincronizado com o ROADMAP.md do repositório principal (a fonte da verdade). Esta página lista o que está pela frente; o que o produto já faz está documentado nas páginas de produto.
Trilho web
Estado global + orçamentos de performance.
Push em tempo real do servidor ([ServerEvent] sobre SignalR); hoje os Server Actions são requisição/resposta.
API Navigator programática e tipada para navegação no cliente (o roteador em si está completo, e guiado por links).
Densidade de source map por instrução; hoje o mapeamento de pilha C# é por membro.
Trilho nativo (Photon)
Decodificação de imagens no shell Android (o Apple já decodifica pelo CoreGraphicsImageLoader em texturas RGBA8).
Trilho de componentes
Extensões variáveis de item no ListView (medição incremental); a v1 é vertical com extensão fixa.
Planilha: rolagem 2D (folhas largas), motor de fórmulas, formatação por célula, mesclas, painéis congelados, tudo fora do escopo da v1.
Renderização de texto marcado inline nas superfícies de código durante a composição por IME.
Trilho F: fatores de forma (tablet, relógio, TV)
Um fator de forma não é um segundo projeto aqui: o mesmo C# já roda em macOS, iOS e Android a partir de um único equantic-native. O que muda é o SHELL em cada largura, e o que um aparelho faz que um telefone não faz.
Tablet já funciona. O WindowSizeClass (Compact <600dp, Medium 600-839, Expanded ≥840) e o AdaptiveNode são realizados nos dois alvos, e o NavigationRail completou o vocabulário: uma lista de NavItem, uma barra embaixo no telefone e uma rail na borda inicial do tablet; o ListDetail é o padrão de duas colunas como componente (o primeiro adaptativo do catálogo).
Shells prontos nos templates — entregues: `dotnet new equantic-native --shell blank|tabs|drawer| list-detail (e --shell blank|topnav|dashboard` no template web), parâmetro de ESCOLHA nos dois templates que já existem, em vez de um template por formato; todo formato é adaptativo.
Wear OS: safe area redonda, uma classe de tamanho abaixo de Compact (um relógio tem ~200dp), entrada rotativa da coroa ou do bezel, swipe-to-dismiss. Cerca: Tiles e Complications não são Activities, então o write-once cobre o app do relógio e não o tile.
Android TV: a peça central, navegação por foco com as setas, existe desde o passe de teclado; o que falta é o manifesto leanback, uma safe area de overscan, a escala de tipo de 10 pés e um anel de foco legível a três metros.
Fora de escopo, com a razão: o Android Auto/AAOS obriga o app a montar os templates aprovados da Google em vez de desenhar o que quer, o oposto deste motor. XR fica na mesma prateleira.
Trilho W: Photon no desktop
As cercas entre o Photon de hoje e uma plataforma de app desktop publicável, cada uma verificada no código: sem paths arbitrários no engine (nove comandos SDF/textura — o nono, FillAnnularSector, saiu na 0.2.0-preview.45), um IClock deliberadamente periódico cuja própria cerca nomeia o relógio de frames como a coisa por construir, hit-testing só por retângulo, sem superfície de shell desktop (menus, tray, diálogos de ficheiro, notificações, deep links), assinatura ad-hoc que quebra os grants de TCC do macOS a cada build, e uma janela por processo.
O que encolhe o trabalho, achado na mesma varredura: um canal de tempo determinístico já corre pelo layout nativo (TransitionStore), o driver de 120 Hz e os gradientes radiais de 2 stops existem, e a toolchain de shaders resolve-se sozinha — e a primeira forma do engine, o setor anular, está FEITA: um SDF exato com paridade Reference↔Metal↔Vulkan, provado por um consumidor real num sunburst de 5,38 milhões de ficheiros.
Sete workstreams — formas no engine (o setor saiu; a decisão polígono-vs-textura espera o benchmark do blob do consumidor), relógio de frames + animação + um dispatcher de UI, um nó de desenho custom com eventos de ponteiro em coordenadas locais, a superfície de shell do macOS, empacotamento de verdade (assinatura, notarização, bundle a partir do publish, um updater mínimo — sequenciado primeiro; o bundle ad hoc já se reconstrói do payload, allowlista RIDs e falha o build numa assinatura má, veja Photon), o loop do desenvolvedor (correr no simulador/emulador com um comando, perfis de IDE, redeploy ao salvar), e os shells Windows/Linux que continuam pós-M5. Nasceu de uma migração real de app (um produto desktop em Electron), e cada peça é genérica: o primeiro consumidor constrói contra o SDK a partir de pacotes LOCAIS (veja Fluxo de build) e renderiza byte-idêntico por pacotes e por source. Plano completo: docs/DESKTOP-PLAN.md no repositório principal.
Trilho M: renderização de email
Escreva um e-mail em C# com os mesmos componentes com que uma página é escrita, e receba HTML que um cliente de e-mail realmente renderiza. E-mail é um terceiro realizer ao lado da web e do Photon — um alvo cujo motor é apenas muito restritivo, que é a mesma forma arquitetural de um alvo sem DOM.
Saiu na 0.2.0-preview.45eQuantic.UI.Email: tabelas aninhadas com células espaçadoras para os gaps, estilos inline, cores literais, guarda de URL absoluta, shell de 600px, gêmeo em texto puro a partir da mesma árvore, e recusas em tempo de build para tudo que um e-mail não consegue fazer. À frente: a matriz de clientes reais (um sample gerado contra Gmail, Outlook e Apple Mail) e os pins de HTML quando a saída assentar. O design e as cercas estão em Renderização de e-mail.
Trilho I: inteligência de editor (CodeEditor)
O framework publica um editor de código de verdade (modelo de documento, seleção, histórico, realce, casamento de parênteses, busca, rabiscos) e ele hoje não consegue ajudar você a escrever. A metade que falta é a inteligência, e a peça que a torna possível está provada: o Roslyn responde completações semânticas sobre a mesma compilação que a página constrói (provado no playground, que compila o C# dos visitantes com o eqc de verdade) (context. oferece Theme; Col oferece Column, porque a superfície using static faz parte daquela compilação).
I1, o modelo de completação em Primitives, ao lado do CodeEditorController: itens, seleção, o span que um commit substitui, abrir/filtrar/mover/aceitar/dispensar. Write-once, testável sem tela.
I2, as teclas e a lista em Components: a lista é posicionada no cursor a partir das métricas que o editor já calcula (ContentTop, LineHeight, ContentLeft, ColumnWidth), do jeito que a barra de busca já flutua sobre o código.
I3, ajuda de assinatura: o painel de parâmetros no (, sobre o encanamento do I1 e o posicionamento do I2.
O problema real é latência, não completações: buscar num gatilho (. ou Ctrl+Space), filtrar localmente enquanto a digitação continua, cancelar requisições velhas. Diagnósticos ao vivo, rabiscos enquanto se digita, são a mesma forma.
Trilho E: a extensão "eQuantic UI" para VS Code
Um editor visual de primeira parte sobre o próprio SDK: preview de tela ao vivo (o realizador web DE VERDADE numa webview), clique para selecionar no visualizador, um painel de propriedades que edita o código C# por rewrites do Roslyn, até a edição visual completa. Marcos E1 (preview ao vivo) → E4 (edição completa).
Correção (2026-08-14): os source maps V3 não conseguem carregar a seleção. O corpo inteiro do Build é emitido por uma única chamada, então a posição mais fina que um mapa consegue nomear é o início do método — um módulo publicado tem uma linha de 942 caracteres. A identidade vem, em vez disso, de um VisualNode.Origin neutro de alvo carimbado por uma emissão em modo de design, que é exato em vez de correlacionado, e que o track nativo herda de graça.
O E1 (preview ao vivo do buffer não salvo), o E2 (clique para selecionar e pular para o código), o E3 (o painel de propriedades) e a metade estrutural do E4 (inserir, mover, remover) já saíram. Veja Editor visual.
Diretrizes permanentes
Zero dependências de terceiros onde a plataforma fornece a capacidade (frameworks do sistema, toolchains embarcadas, o modelo Bun/slangc).
Falhar alto: qualquer coisa que o SDK não consiga realizar fielmente é erro de build, nunca divergência silenciosa.
Tudo pinado: conformidade diferencialmente, estilos por cross-pins idênticos byte a byte, pixels por goldens, hidratação por identidade de classe (e2e).