Recursos
O svg-engine alcança um conjunto de recursos comparável a ferramentas vetoriais de desktop, tudo sobre o mesmo engine headless. Tudo abaixo está disponível pelo editor e, quando faz sentido, pela API programática de comandos.
Desenho
Seção intitulada “Desenho”- Ferramentas Select e Direct-Select.
- Desenho com Pen (Bézier) e Pencil (à mão livre).
- Ferramentas de forma: Rectangle, Ellipse, Polygon (e estrela).
- Texto com runs de rich-text, variable fonts e texto em path.
- Ferramentas extras: Eyedropper, Knife, Smooth, Gradient, Width, Symbol Sprayer.
Geometria
Seção intitulada “Geometria”- Editor de Path / Anchor com três tipos de anchor — cusp (handles independentes), smooth (handles alinhados) e symmetric (handles espelhados).
- Operações booleanas do Pathfinder: Union, Intersect, Subtract, Exclude, Divide.
- Operações de path: simplify, split, join, reverse, outline stroke, offset.
- Live corners e compound paths.
As mesmas operações que a UI dispara estão disponíveis como comandos:
import { CommandBus, UnionCommand, DivideCommand } from '@mosaicoo/svg-engine/core';
// Combina formas em um único pathbus.dispatch(new UnionCommand([rectId, circleId]));
// Divide formas sobrepostas — cada região vira seu próprio pathbus.dispatch(new DivideCommand([rectId, circleId]));Documentos
Seção intitulada “Documentos”- Pages / artboards.
- Camadas, com visibilidade e lock.
- Smart Objects.
- Símbolos e instâncias (master/instance).
- Snapshots de versão.
- Auto-save e recuperação.
- Efeitos e filtros não-destrutivos e encadeáveis.
- Gradientes com editor inline.
- Patterns.
- Um sistema de libraries: formas, paletas, gradientes, patterns, símbolos, brushes, graphic styles e templates.
Produtividade
Seção intitulada “Produtividade”- Find & Replace.
- Alinhar e distribuir.
- Atalhos de teclado configuráveis.
- Auto-trace (raster → vetor).
- Code generators (React, Data URI).
- Export por asset.
- Timeline de animação.
IA (opt-in)
Seção intitulada “IA (opt-in)”- Comando por linguagem natural.
- Speech-to-text on-device (Whisper) — totalmente opcional e desacoplado do core
do editor. Veja os Entry points
para os pacotes
ai/*.
Acessibilidade
Seção intitulada “Acessibilidade”Roles ARIA e navegação por teclado são implementados em toda superfície interativa — overlays, painéis e handles — seguindo as WAI-ARIA Authoring Practices.
Performance
Seção intitulada “Performance”O renderer mira 60 fps de pan/zoom com 1.000+ nós, com uma diretiva opt-in de viewport culling para documentos esparsos.
Requisitos & limitações
Seção intitulada “Requisitos & limitações”Vale saber antes de adotar:
- Os entry points
uieai/nlu-uiexigem um tema Material 3 e o provider de animações no app hospedeiro — o pacote não traz CSS. Veja Primeiros passos. - A voz on-device (
ai/nlu-voice-wasm) depende de um peer opcional pesado (@huggingface/transformers), carregado lazy só quando usado. Apps que não usam voz nunca o baixam. - O copiar/colar do sistema exige contexto seguro (HTTPS), um gesto do usuário e permissão de clipboard; sem isso, o editor cai para o clipboard em memória em vez do clipboard do SO.
- Carregar plugins externos exige que o app hospedeiro forneça um module loader e uma allowlist de origem — código de terceiros nunca é carregado implicitamente.
- A biblioteca é pré-1.0 (
0.x): seguindo o SemVer para0.x, mudanças breaking podem sair em releases minor e ficam registradas noCHANGELOG.md.