Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LogoDraw

Componente SwiftUI que desenha o contorno de um logo como uma caneta e depois revela o preenchimento. E o processo, com scripts, pra transformar o PNG de um logo num Shape limpo o bastante pra essa animação ficar bonita.

SwiftUI component that traces a logo's outline and then reveals its fill, plus a reproducible pipeline (Python + macOS render check) to turn a logo PNG into a clean Shape. Docs are in Brazilian Portuguese.

frames do desenho

Uso

Swift Package: adicione https://github.com/RhuanCruz/swiftui-logo-draw e importe LogoDraw. Ou copie Sources/LogoDraw/LogoDraw.swift pro seu projeto (é um arquivo só).

import LogoDraw

LogoDraw(RunnerLogoShape())

LogoDraw(
    MeuLogoShape(),
    drawDuration: 1.2,        // duração do traço
    fillStartPercent: 70,     // o preenchimento começa aos 70% do traço
    size: 150,
    outlineColor: .primary,
    fillColor: .primary,
    freezeAt: nil             // 0...1 congela num frame (bom pra screenshot)
) {
    // preenchimento terminou: fecha a splash, mostra a wordmark, etc.
}
Parâmetro Default O que faz
drawDuration 1.2 s duração do traço (0.3...4)
drawEasing .smooth .snappy, .smooth, .easeInOut, .linear
fillsLogo true false deixa só o contorno
fillStartPercent 70 quando o fill começa, em % do traço
fillDuration 0.35 s fade do fill
size 160 lado do quadrado
strokeWidth 1.5 espessura do contorno
replayTrigger 0 mude pra tocar de novo
freezeAt nil progresso fixo em vez de animar
onComplete nil chamado quando termina

Reduce Motion: o logo aparece completo e onComplete dispara na hora.

O Shape que você passa precisa ter os subpaths na ordem em que quer que sejam desenhados e um contorno sem auto-interseção. RunnerLogoShape é o exemplo que veio junto: um corredor reconstruído a partir de um PNG com 96% de fidelidade.

Do PNG ao Shape

O componente é a parte fácil. O difícil é ter o logo como Path limpo. O processo está documentado em dois lugares:

Script Faz
measure.py componentes, bboxes e runs por linha/coluna do PNG
geometry.py primitivas (fillet, arco, círculo) iguais às do Path
models/runner.py o modelo paramétrico do exemplo
tune.py IoU contra a imagem, overlay e ajuste automático dos parâmetros
render_shape.sh renderiza um Shape Swift em PNG no macOS, sem simulador
compare.py IoU do render Swift contra a imagem original

Pra instalar a skill no Claude Code: copie (ou symlinke) skill/logo-to-swiftui-draw pra ~/.claude/skills/.

Requisitos

  • Swift 5.9+, iOS 17 / macOS 14 (o componente usa Task.sleep(for:) e .task(id:)).
  • Scripts: Python 3 com numpy, pillow, scipy; Xcode pro render_shape.sh.

Licença

MIT. O símbolo do corredor em RunnerLogoShape está aqui como exemplo do processo.

About

No description, website, or topics provided.

Resources

Stars

154 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages