Pular para o conteúdo

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.

  • 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.
  • 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 path
bus.dispatch(new UnionCommand([rectId, circleId]));
// Divide formas sobrepostas — cada região vira seu próprio path
bus.dispatch(new DivideCommand([rectId, circleId]));
  • 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.
  • 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.
  • 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/*.

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.

O renderer mira 60 fps de pan/zoom com 1.000+ nós, com uma diretiva opt-in de viewport culling para documentos esparsos.

Vale saber antes de adotar:

  • Os entry points ui e ai/nlu-ui exigem 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 para 0.x, mudanças breaking podem sair em releases minor e ficam registradas no CHANGELOG.md.