primocode 10.17.1 → 10.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSES/fontes-OFL.txt +95 -0
- package/README.md +37 -20
- package/bin/primocode.js +1047 -267
- package/editor/THIRD_PARTY_NOTICES.md +3 -3
- package/editor/assets/baixar.json +8 -0
- package/editor/helpers/camera_viva.py +39 -2
- package/editor/modelo-projeto/assets/fontes/OFL-Inter.txt +93 -0
- package/editor/modelo-projeto/assets/fontes/larguras.json +1 -1
- package/editor/modelo-projeto/build.py +164 -19
- package/editor/modelo-projeto/ferramentas/medir_fontes.py +1 -1
- package/kits/CATALOGO.md +65 -0
- package/kits/KITS.md +179 -0
- package/kits/adesivos/SKILL.md +53 -0
- package/kits/adesivos/assets/ASSETS.md +22 -0
- package/kits/adesivos/assets/fontes/OFL-BowlbyOne.txt +92 -0
- package/kits/adesivos/assets/fontes/OFL-Nunito.txt +92 -0
- package/kits/adesivos/assets/fontes/bowlby-latin.woff2 +0 -0
- package/kits/adesivos/assets/fontes/nunito-latin.woff2 +0 -0
- package/kits/adesivos/assets/sons/assinatura.mp3 +0 -0
- package/kits/adesivos/assets/sons/cola.mp3 +0 -0
- package/kits/adesivos/assets/sons/confete.mp3 +0 -0
- package/kits/adesivos/assets/sons/impacto.mp3 +0 -0
- package/kits/adesivos/assets/sons/palavra.mp3 +0 -0
- package/kits/adesivos/assets/sons/pop.mp3 +0 -0
- package/kits/adesivos/assets/sons/swipe.mp3 +0 -0
- package/kits/adesivos/assets/sons/whoosh.mp3 +0 -0
- package/kits/adesivos/assets/trilha/pop-colorido-112bpm.mp3 +0 -0
- package/kits/adesivos/capa.jpg +0 -0
- package/kits/adesivos/elementos/AdesivoForma.tsx +42 -0
- package/kits/adesivos/elementos/AdesivoFoto.tsx +36 -0
- package/kits/adesivos/elementos/AdesivoTexto.tsx +35 -0
- package/kits/adesivos/elementos/AssinaturaMarca.tsx +36 -0
- package/kits/adesivos/elementos/Camera.tsx +22 -0
- package/kits/adesivos/elementos/Cena.tsx +48 -0
- package/kits/adesivos/elementos/ChuvaDeAdesivos.tsx +29 -0
- package/kits/adesivos/elementos/Fundo.tsx +21 -0
- package/kits/adesivos/elementos/Montagem.tsx +68 -0
- package/kits/adesivos/elementos/SeloPreco.tsx +38 -0
- package/kits/adesivos/elementos/Som.tsx +33 -0
- package/kits/adesivos/elementos/TituloEtiquetas.tsx +33 -0
- package/kits/adesivos/elementos/base.ts +101 -0
- package/kits/adesivos/elementos/index.ts +16 -0
- package/kits/adesivos/exemplos/fotos/foto-01.jpg +0 -0
- package/kits/adesivos/exemplos/fotos/foto-02.jpg +0 -0
- package/kits/adesivos/exemplos/fotos/foto-03.jpg +0 -0
- package/kits/adesivos/exemplos/logo-grude.svg +1 -0
- package/kits/adesivos/exemplos/plano.json +328 -0
- package/kits/adesivos/exemplos/roteiro.md +21 -0
- package/kits/adesivos/preview.tsx +15 -0
- package/kits/adesivos/receita.json +212 -0
- package/kits/adesivos/regras/area-segura.md +17 -0
- package/kits/adesivos/regras/cor.md +23 -0
- package/kits/adesivos/regras/movimento.md +17 -0
- package/kits/adesivos/regras/ritmo.md +16 -0
- package/kits/adesivos/regras/som.md +20 -0
- package/kits/adesivos/regras/tipografia.md +16 -0
- package/kits/antes-depois/SKILL.md +57 -0
- package/kits/antes-depois/assets/ASSETS.md +23 -0
- package/kits/antes-depois/assets/fontes/OFL-ArchivoBlack.txt +93 -0
- package/kits/antes-depois/assets/fontes/OFL-Manrope.txt +93 -0
- package/kits/antes-depois/assets/fontes/archivoblack.woff2 +0 -0
- package/kits/antes-depois/assets/fontes/manrope.woff2 +0 -0
- package/kits/antes-depois/assets/sons/assinatura.mp3 +0 -0
- package/kits/antes-depois/assets/sons/clique.mp3 +0 -0
- package/kits/antes-depois/assets/sons/impacto.mp3 +0 -0
- package/kits/antes-depois/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/antes-depois/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/antes-depois/assets/sons/subida.mp3 +0 -0
- package/kits/antes-depois/assets/sons/swoosh.mp3 +0 -0
- package/kits/antes-depois/assets/sons/tick.mp3 +0 -0
- package/kits/antes-depois/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/antes-depois/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/antes-depois/assets/trilha/corte-118bpm.mp3 +0 -0
- package/kits/antes-depois/capa.jpg +0 -0
- package/kits/antes-depois/elementos/BarraMedidor.tsx +43 -0
- package/kits/antes-depois/elementos/Camera.tsx +21 -0
- package/kits/antes-depois/elementos/Cena.tsx +41 -0
- package/kits/antes-depois/elementos/FaixaMarquee.tsx +35 -0
- package/kits/antes-depois/elementos/Fundo.tsx +24 -0
- package/kits/antes-depois/elementos/ListaMudancas.tsx +37 -0
- package/kits/antes-depois/elementos/Montagem.tsx +59 -0
- package/kits/antes-depois/elementos/NumeroDelta.tsx +36 -0
- package/kits/antes-depois/elementos/RotuloAntesDepois.tsx +26 -0
- package/kits/antes-depois/elementos/Som.tsx +40 -0
- package/kits/antes-depois/elementos/TelaDividida.tsx +68 -0
- package/kits/antes-depois/elementos/base.ts +82 -0
- package/kits/antes-depois/elementos/index.ts +15 -0
- package/kits/antes-depois/exemplos/fotos/foto-07.jpg +0 -0
- package/kits/antes-depois/exemplos/fotos/foto-08.jpg +0 -0
- package/kits/antes-depois/exemplos/plano.json +276 -0
- package/kits/antes-depois/exemplos/roteiro.md +19 -0
- package/kits/antes-depois/preview.tsx +13 -0
- package/kits/antes-depois/receita.json +21 -0
- package/kits/antes-depois/regras/area-segura.md +21 -0
- package/kits/antes-depois/regras/cor.md +15 -0
- package/kits/antes-depois/regras/movimento.md +23 -0
- package/kits/antes-depois/regras/ritmo.md +15 -0
- package/kits/antes-depois/regras/som.md +20 -0
- package/kits/antes-depois/regras/tipografia.md +18 -0
- package/kits/apple-tipografico/SKILL.md +73 -0
- package/kits/apple-tipografico/assets/ASSETS.md +23 -0
- package/kits/apple-tipografico/assets/fontes/OFL-Inter.txt +93 -0
- package/kits/apple-tipografico/assets/fontes/inter-latin-500-800.woff2 +0 -0
- package/kits/apple-tipografico/assets/sons/assinatura.mp3 +0 -0
- package/kits/apple-tipografico/assets/sons/clique.mp3 +0 -0
- package/kits/apple-tipografico/assets/sons/impacto.mp3 +0 -0
- package/kits/apple-tipografico/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/apple-tipografico/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/apple-tipografico/assets/sons/subida.mp3 +0 -0
- package/kits/apple-tipografico/assets/sons/swoosh.mp3 +0 -0
- package/kits/apple-tipografico/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/apple-tipografico/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/apple-tipografico/assets/trilha/tech-claro-125bpm.mp3 +0 -0
- package/kits/apple-tipografico/capa.jpg +0 -0
- package/kits/apple-tipografico/elementos/AssinaturaPreta.tsx +33 -0
- package/kits/apple-tipografico/elementos/Camera.tsx +23 -0
- package/kits/apple-tipografico/elementos/CartaoRadial.tsx +41 -0
- package/kits/apple-tipografico/elementos/Cena.tsx +55 -0
- package/kits/apple-tipografico/elementos/Fundo.tsx +21 -0
- package/kits/apple-tipografico/elementos/LegendaCurta.tsx +51 -0
- package/kits/apple-tipografico/elementos/Montagem.tsx +55 -0
- package/kits/apple-tipografico/elementos/Produto3D.tsx +140 -0
- package/kits/apple-tipografico/elementos/ProdutoFoto.tsx +47 -0
- package/kits/apple-tipografico/elementos/Som.tsx +40 -0
- package/kits/apple-tipografico/elementos/base.ts +111 -0
- package/kits/apple-tipografico/elementos/index.ts +18 -0
- package/kits/apple-tipografico/elementos/modelos.ts +108 -0
- package/kits/apple-tipografico/elementos/raymarch.ts +249 -0
- package/kits/apple-tipografico/exemplos/logo-lume.svg +1 -0
- package/kits/apple-tipografico/exemplos/plano.json +56 -0
- package/kits/apple-tipografico/exemplos/roteiro.md +19 -0
- package/kits/apple-tipografico/preview.tsx +12 -0
- package/kits/apple-tipografico/receita.json +22 -0
- package/kits/apple-tipografico/regras/area-segura.md +19 -0
- package/kits/apple-tipografico/regras/cor.md +24 -0
- package/kits/apple-tipografico/regras/movimento.md +29 -0
- package/kits/apple-tipografico/regras/ritmo.md +29 -0
- package/kits/apple-tipografico/regras/som.md +20 -0
- package/kits/apple-tipografico/regras/tipografia.md +21 -0
- package/kits/aquarela/SKILL.md +52 -0
- package/kits/aquarela/assets/ASSETS.md +21 -0
- package/kits/aquarela/assets/fontes/OFL-Caveat.txt +92 -0
- package/kits/aquarela/assets/fontes/OFL-Fraunces.txt +92 -0
- package/kits/aquarela/assets/fontes/caveat-latin.woff2 +0 -0
- package/kits/aquarela/assets/fontes/fraunces-latin.woff2 +0 -0
- package/kits/aquarela/assets/sons/assinatura.mp3 +0 -0
- package/kits/aquarela/assets/sons/gota.mp3 +0 -0
- package/kits/aquarela/assets/sons/impacto.mp3 +0 -0
- package/kits/aquarela/assets/sons/palavra.mp3 +0 -0
- package/kits/aquarela/assets/sons/papel-cai.mp3 +0 -0
- package/kits/aquarela/assets/sons/pop-mancha.mp3 +0 -0
- package/kits/aquarela/assets/sons/risco.mp3 +0 -0
- package/kits/aquarela/assets/sons/whoosh-pincel.mp3 +0 -0
- package/kits/aquarela/assets/trilha/calma-com-punch-108bpm.mp3 +0 -0
- package/kits/aquarela/capa.jpg +0 -0
- package/kits/aquarela/elementos/AnotacaoManual.tsx +40 -0
- package/kits/aquarela/elementos/AssinaturaMarca.tsx +33 -0
- package/kits/aquarela/elementos/Camera.tsx +22 -0
- package/kits/aquarela/elementos/Cena.tsx +48 -0
- package/kits/aquarela/elementos/Fundo.tsx +24 -0
- package/kits/aquarela/elementos/ManchaTinta.tsx +46 -0
- package/kits/aquarela/elementos/Montagem.tsx +60 -0
- package/kits/aquarela/elementos/PapelRasgado.tsx +50 -0
- package/kits/aquarela/elementos/Pincelada.tsx +43 -0
- package/kits/aquarela/elementos/Pingos.tsx +31 -0
- package/kits/aquarela/elementos/Som.tsx +33 -0
- package/kits/aquarela/elementos/TituloPincel.tsx +51 -0
- package/kits/aquarela/elementos/base.ts +97 -0
- package/kits/aquarela/elementos/index.ts +16 -0
- package/kits/aquarela/exemplos/logo-mare.svg +1 -0
- package/kits/aquarela/exemplos/plano.json +62 -0
- package/kits/aquarela/exemplos/roteiro.md +21 -0
- package/kits/aquarela/preview.tsx +12 -0
- package/kits/aquarela/receita.json +213 -0
- package/kits/aquarela/regras/area-segura.md +17 -0
- package/kits/aquarela/regras/cor.md +23 -0
- package/kits/aquarela/regras/movimento.md +19 -0
- package/kits/aquarela/regras/ritmo.md +17 -0
- package/kits/aquarela/regras/som.md +20 -0
- package/kits/aquarela/regras/tipografia.md +16 -0
- package/kits/aurora/SKILL.md +52 -0
- package/kits/aurora/assets/ASSETS.md +21 -0
- package/kits/aurora/assets/fontes/OFL-InstrumentSerif.txt +92 -0
- package/kits/aurora/assets/fontes/OFL-Manrope.txt +92 -0
- package/kits/aurora/assets/fontes/instrument-latin.woff2 +0 -0
- package/kits/aurora/assets/fontes/manrope-latin.woff2 +0 -0
- package/kits/aurora/assets/sons/assinatura.mp3 +0 -0
- package/kits/aurora/assets/sons/brilho.mp3 +0 -0
- package/kits/aurora/assets/sons/meteoro.mp3 +0 -0
- package/kits/aurora/assets/sons/onda.mp3 +0 -0
- package/kits/aurora/assets/sons/sino.mp3 +0 -0
- package/kits/aurora/assets/sons/sopro.mp3 +0 -0
- package/kits/aurora/assets/sons/subida.mp3 +0 -0
- package/kits/aurora/assets/sons/toque.mp3 +0 -0
- package/kits/aurora/assets/trilha/suave-88bpm.mp3 +0 -0
- package/kits/aurora/capa.jpg +0 -0
- package/kits/aurora/elementos/AssinaturaMarca.tsx +24 -0
- package/kits/aurora/elementos/Camera.tsx +22 -0
- package/kits/aurora/elementos/CartaoVidro.tsx +29 -0
- package/kits/aurora/elementos/Cena.tsx +48 -0
- package/kits/aurora/elementos/CeuEstrelado.tsx +22 -0
- package/kits/aurora/elementos/CortinaDeLuz.tsx +36 -0
- package/kits/aurora/elementos/Fundo.tsx +35 -0
- package/kits/aurora/elementos/Legenda.tsx +23 -0
- package/kits/aurora/elementos/Montagem.tsx +68 -0
- package/kits/aurora/elementos/Montanhas.tsx +24 -0
- package/kits/aurora/elementos/Som.tsx +33 -0
- package/kits/aurora/elementos/TituloSerif.tsx +36 -0
- package/kits/aurora/elementos/base.ts +93 -0
- package/kits/aurora/elementos/index.ts +16 -0
- package/kits/aurora/exemplos/logo-boreal.svg +1 -0
- package/kits/aurora/exemplos/plano.json +204 -0
- package/kits/aurora/exemplos/roteiro.md +19 -0
- package/kits/aurora/preview.tsx +12 -0
- package/kits/aurora/receita.json +146 -0
- package/kits/aurora/regras/area-segura.md +18 -0
- package/kits/aurora/regras/cor.md +24 -0
- package/kits/aurora/regras/movimento.md +20 -0
- package/kits/aurora/regras/ritmo.md +14 -0
- package/kits/aurora/regras/som.md +20 -0
- package/kits/aurora/regras/tipografia.md +15 -0
- package/kits/bauhaus/SKILL.md +52 -0
- package/kits/bauhaus/assets/ASSETS.md +18 -0
- package/kits/bauhaus/assets/fontes/OFL-bebas-neue.txt +93 -0
- package/kits/bauhaus/assets/fontes/OFL-jost-900.txt +93 -0
- package/kits/bauhaus/assets/fontes/bebas-neue.woff2 +0 -0
- package/kits/bauhaus/assets/fontes/jost-900.woff2 +0 -0
- package/kits/bauhaus/assets/sons/assinatura.mp3 +0 -0
- package/kits/bauhaus/assets/sons/clique.mp3 +0 -0
- package/kits/bauhaus/assets/sons/impacto.mp3 +0 -0
- package/kits/bauhaus/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/bauhaus/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/bauhaus/assets/sons/subida.mp3 +0 -0
- package/kits/bauhaus/assets/sons/swoosh.mp3 +0 -0
- package/kits/bauhaus/assets/sons/tick.mp3 +0 -0
- package/kits/bauhaus/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/bauhaus/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/bauhaus/assets/trilha/trilha.mp3 +0 -0
- package/kits/bauhaus/capa.jpg +0 -0
- package/kits/bauhaus/elementos/AssinaturaMarca.tsx +26 -0
- package/kits/bauhaus/elementos/BarraDiagonal.tsx +20 -0
- package/kits/bauhaus/elementos/Camera.tsx +21 -0
- package/kits/bauhaus/elementos/Cena.tsx +36 -0
- package/kits/bauhaus/elementos/ComposicaoGeometrica.tsx +54 -0
- package/kits/bauhaus/elementos/Fundo.tsx +13 -0
- package/kits/bauhaus/elementos/ListaFaixas.tsx +27 -0
- package/kits/bauhaus/elementos/Montagem.tsx +55 -0
- package/kits/bauhaus/elementos/NumeroBauhaus.tsx +21 -0
- package/kits/bauhaus/elementos/Overlay.tsx +18 -0
- package/kits/bauhaus/elementos/Som.tsx +30 -0
- package/kits/bauhaus/elementos/TituloBauhaus.tsx +32 -0
- package/kits/bauhaus/elementos/base.ts +74 -0
- package/kits/bauhaus/elementos/index.ts +16 -0
- package/kits/bauhaus/exemplos/plano.json +221 -0
- package/kits/bauhaus/exemplos/roteiro.md +20 -0
- package/kits/bauhaus/preview.tsx +12 -0
- package/kits/bauhaus/receita.json +174 -0
- package/kits/bauhaus/regras/area-segura.md +15 -0
- package/kits/bauhaus/regras/cor.md +13 -0
- package/kits/bauhaus/regras/movimento.md +17 -0
- package/kits/bauhaus/regras/ritmo.md +15 -0
- package/kits/bauhaus/regras/som.md +18 -0
- package/kits/bauhaus/regras/tipografia.md +20 -0
- package/kits/brutalista/SKILL.md +54 -0
- package/kits/brutalista/assets/ASSETS.md +23 -0
- package/kits/brutalista/assets/fontes/OFL-ArchivoBlack.txt +93 -0
- package/kits/brutalista/assets/fontes/OFL-JetBrainsMono.txt +93 -0
- package/kits/brutalista/assets/fontes/archivo-black.woff2 +0 -0
- package/kits/brutalista/assets/fontes/jetbrains-mono.woff2 +0 -0
- package/kits/brutalista/assets/sons/assinatura.mp3 +0 -0
- package/kits/brutalista/assets/sons/clique.mp3 +0 -0
- package/kits/brutalista/assets/sons/impacto.mp3 +0 -0
- package/kits/brutalista/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/brutalista/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/brutalista/assets/sons/subida.mp3 +0 -0
- package/kits/brutalista/assets/sons/swoosh.mp3 +0 -0
- package/kits/brutalista/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/brutalista/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/brutalista/assets/trilha/bruta-108bpm.mp3 +0 -0
- package/kits/brutalista/capa.jpg +0 -0
- package/kits/brutalista/elementos/AssinaturaMarca.tsx +21 -0
- package/kits/brutalista/elementos/BlocoSombra.tsx +18 -0
- package/kits/brutalista/elementos/Camera.tsx +23 -0
- package/kits/brutalista/elementos/CartaoFotoBruto.tsx +19 -0
- package/kits/brutalista/elementos/Cena.tsx +41 -0
- package/kits/brutalista/elementos/ContadorGrande.tsx +21 -0
- package/kits/brutalista/elementos/FitaAlerta.tsx +20 -0
- package/kits/brutalista/elementos/Fundo.tsx +9 -0
- package/kits/brutalista/elementos/ListaBruta.tsx +23 -0
- package/kits/brutalista/elementos/MonoEnorme.tsx +43 -0
- package/kits/brutalista/elementos/Montagem.tsx +62 -0
- package/kits/brutalista/elementos/QuadroCor.tsx +14 -0
- package/kits/brutalista/elementos/Som.tsx +38 -0
- package/kits/brutalista/elementos/Terminal.tsx +25 -0
- package/kits/brutalista/elementos/base.ts +71 -0
- package/kits/brutalista/elementos/index.ts +18 -0
- package/kits/brutalista/exemplos/fotos/foto-02.jpg +0 -0
- package/kits/brutalista/exemplos/fotos/foto-03.jpg +0 -0
- package/kits/brutalista/exemplos/fotos/foto-05.jpg +0 -0
- package/kits/brutalista/exemplos/fotos/foto-07.jpg +0 -0
- package/kits/brutalista/exemplos/fotos/foto-08.jpg +0 -0
- package/kits/brutalista/exemplos/logo-bloco.svg +1 -0
- package/kits/brutalista/exemplos/plano.json +52 -0
- package/kits/brutalista/exemplos/roteiro.md +19 -0
- package/kits/brutalista/preview.tsx +20 -0
- package/kits/brutalista/receita.json +195 -0
- package/kits/brutalista/regras/area-segura.md +18 -0
- package/kits/brutalista/regras/cor.md +12 -0
- package/kits/brutalista/regras/movimento.md +16 -0
- package/kits/brutalista/regras/ritmo.md +16 -0
- package/kits/brutalista/regras/som.md +21 -0
- package/kits/brutalista/regras/tipografia.md +16 -0
- package/kits/campos-de-cor/SKILL.md +55 -0
- package/kits/campos-de-cor/assets/ASSETS.md +19 -0
- package/kits/campos-de-cor/assets/fontes/OFL-Archivo-Black.txt +93 -0
- package/kits/campos-de-cor/assets/fontes/OFL-DM-Mono.txt +93 -0
- package/kits/campos-de-cor/assets/fontes/OFL-Playfair-Italic.txt +93 -0
- package/kits/campos-de-cor/assets/fontes/archivo-black.woff2 +0 -0
- package/kits/campos-de-cor/assets/fontes/dm-mono.woff2 +0 -0
- package/kits/campos-de-cor/assets/fontes/playfair-italic.woff2 +0 -0
- package/kits/campos-de-cor/assets/sons/assinatura.mp3 +0 -0
- package/kits/campos-de-cor/assets/sons/clique.mp3 +0 -0
- package/kits/campos-de-cor/assets/sons/impacto.mp3 +0 -0
- package/kits/campos-de-cor/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/campos-de-cor/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/campos-de-cor/assets/sons/subida.mp3 +0 -0
- package/kits/campos-de-cor/assets/sons/swoosh.mp3 +0 -0
- package/kits/campos-de-cor/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/campos-de-cor/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/campos-de-cor/assets/trilha/trilha.mp3 +0 -0
- package/kits/campos-de-cor/capa.jpg +0 -0
- package/kits/campos-de-cor/elementos/AssinaturaMarca.tsx +18 -0
- package/kits/campos-de-cor/elementos/Asterisco.tsx +26 -0
- package/kits/campos-de-cor/elementos/Camera.tsx +23 -0
- package/kits/campos-de-cor/elementos/CampoDeCor.tsx +39 -0
- package/kits/campos-de-cor/elementos/Cena.tsx +46 -0
- package/kits/campos-de-cor/elementos/FitaDeTexto.tsx +24 -0
- package/kits/campos-de-cor/elementos/FormaGeometrica.tsx +37 -0
- package/kits/campos-de-cor/elementos/Fundo.tsx +11 -0
- package/kits/campos-de-cor/elementos/LegendaItalica.tsx +12 -0
- package/kits/campos-de-cor/elementos/ListaRegua.tsx +30 -0
- package/kits/campos-de-cor/elementos/Montagem.tsx +62 -0
- package/kits/campos-de-cor/elementos/PalavraGigante.tsx +44 -0
- package/kits/campos-de-cor/elementos/Som.tsx +39 -0
- package/kits/campos-de-cor/elementos/base.ts +87 -0
- package/kits/campos-de-cor/elementos/index.ts +17 -0
- package/kits/campos-de-cor/exemplos/logo-pulso.svg +1 -0
- package/kits/campos-de-cor/exemplos/plano.json +258 -0
- package/kits/campos-de-cor/exemplos/roteiro.md +19 -0
- package/kits/campos-de-cor/preview.tsx +12 -0
- package/kits/campos-de-cor/receita.json +174 -0
- package/kits/campos-de-cor/regras/area-segura.md +15 -0
- package/kits/campos-de-cor/regras/cor.md +14 -0
- package/kits/campos-de-cor/regras/movimento.md +15 -0
- package/kits/campos-de-cor/regras/ritmo.md +15 -0
- package/kits/campos-de-cor/regras/som.md +18 -0
- package/kits/campos-de-cor/regras/tipografia.md +13 -0
- package/kits/cartaz-cinetico/SKILL.md +52 -0
- package/kits/cartaz-cinetico/assets/ASSETS.md +22 -0
- package/kits/cartaz-cinetico/assets/fontes/OFL-Anton.txt +93 -0
- package/kits/cartaz-cinetico/assets/fontes/OFL-Archivo.txt +93 -0
- package/kits/cartaz-cinetico/assets/fontes/anton.woff2 +0 -0
- package/kits/cartaz-cinetico/assets/fontes/archivo.woff2 +0 -0
- package/kits/cartaz-cinetico/assets/sons/assinatura.mp3 +0 -0
- package/kits/cartaz-cinetico/assets/sons/clique.mp3 +0 -0
- package/kits/cartaz-cinetico/assets/sons/impacto.mp3 +0 -0
- package/kits/cartaz-cinetico/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/cartaz-cinetico/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/cartaz-cinetico/assets/sons/subida.mp3 +0 -0
- package/kits/cartaz-cinetico/assets/sons/swoosh.mp3 +0 -0
- package/kits/cartaz-cinetico/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/cartaz-cinetico/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/cartaz-cinetico/assets/trilha/cartaz-124bpm.mp3 +0 -0
- package/kits/cartaz-cinetico/capa.jpg +0 -0
- package/kits/cartaz-cinetico/elementos/AssinaturaMarca.tsx +31 -0
- package/kits/cartaz-cinetico/elementos/Camera.tsx +22 -0
- package/kits/cartaz-cinetico/elementos/CartazPalavra.tsx +40 -0
- package/kits/cartaz-cinetico/elementos/Cena.tsx +41 -0
- package/kits/cartaz-cinetico/elementos/CirculoPoster.tsx +22 -0
- package/kits/cartaz-cinetico/elementos/EcoPalavra.tsx +27 -0
- package/kits/cartaz-cinetico/elementos/Fundo.tsx +16 -0
- package/kits/cartaz-cinetico/elementos/Montagem.tsx +59 -0
- package/kits/cartaz-cinetico/elementos/PilhaCartaz.tsx +40 -0
- package/kits/cartaz-cinetico/elementos/RoletaPalavras.tsx +30 -0
- package/kits/cartaz-cinetico/elementos/Selo.tsx +25 -0
- package/kits/cartaz-cinetico/elementos/Som.tsx +38 -0
- package/kits/cartaz-cinetico/elementos/base.ts +72 -0
- package/kits/cartaz-cinetico/elementos/index.ts +16 -0
- package/kits/cartaz-cinetico/exemplos/logo-feira.svg +1 -0
- package/kits/cartaz-cinetico/exemplos/plano.json +55 -0
- package/kits/cartaz-cinetico/exemplos/roteiro.md +20 -0
- package/kits/cartaz-cinetico/preview.tsx +16 -0
- package/kits/cartaz-cinetico/receita.json +209 -0
- package/kits/cartaz-cinetico/regras/area-segura.md +19 -0
- package/kits/cartaz-cinetico/regras/cor.md +13 -0
- package/kits/cartaz-cinetico/regras/movimento.md +16 -0
- package/kits/cartaz-cinetico/regras/ritmo.md +17 -0
- package/kits/cartaz-cinetico/regras/som.md +21 -0
- package/kits/cartaz-cinetico/regras/tipografia.md +16 -0
- package/kits/colagem/SKILL.md +53 -0
- package/kits/colagem/assets/ASSETS.md +25 -0
- package/kits/colagem/assets/fontes/OFL-abril-fatface.txt +93 -0
- package/kits/colagem/assets/fontes/OFL-special-elite.txt +93 -0
- package/kits/colagem/assets/fontes/abril-fatface.woff2 +0 -0
- package/kits/colagem/assets/fontes/special-elite.woff2 +0 -0
- package/kits/colagem/assets/sons/assinatura.mp3 +0 -0
- package/kits/colagem/assets/sons/clique.mp3 +0 -0
- package/kits/colagem/assets/sons/impacto.mp3 +0 -0
- package/kits/colagem/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/colagem/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/colagem/assets/sons/subida.mp3 +0 -0
- package/kits/colagem/assets/sons/swoosh.mp3 +0 -0
- package/kits/colagem/assets/sons/tick.mp3 +0 -0
- package/kits/colagem/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/colagem/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/colagem/assets/trilha/trilha.mp3 +0 -0
- package/kits/colagem/capa.jpg +0 -0
- package/kits/colagem/elementos/AssinaturaMarca.tsx +17 -0
- package/kits/colagem/elementos/Camera.tsx +21 -0
- package/kits/colagem/elementos/Cena.tsx +36 -0
- package/kits/colagem/elementos/FitaAdesiva.tsx +11 -0
- package/kits/colagem/elementos/FotoRasgada.tsx +26 -0
- package/kits/colagem/elementos/Fundo.tsx +16 -0
- package/kits/colagem/elementos/ListaRecortes.tsx +23 -0
- package/kits/colagem/elementos/Montagem.tsx +56 -0
- package/kits/colagem/elementos/NotaDatilografada.tsx +35 -0
- package/kits/colagem/elementos/Overlay.tsx +8 -0
- package/kits/colagem/elementos/RecorteForma.tsx +23 -0
- package/kits/colagem/elementos/Som.tsx +30 -0
- package/kits/colagem/elementos/TituloRecorte.tsx +34 -0
- package/kits/colagem/elementos/base.ts +77 -0
- package/kits/colagem/elementos/index.ts +17 -0
- package/kits/colagem/elementos/rasgado.ts +16 -0
- package/kits/colagem/exemplos/fotos/foto-01.jpg +0 -0
- package/kits/colagem/exemplos/fotos/foto-02.jpg +0 -0
- package/kits/colagem/exemplos/plano.json +228 -0
- package/kits/colagem/exemplos/roteiro.md +20 -0
- package/kits/colagem/preview.tsx +13 -0
- package/kits/colagem/receita.json +171 -0
- package/kits/colagem/regras/area-segura.md +15 -0
- package/kits/colagem/regras/cor.md +16 -0
- package/kits/colagem/regras/movimento.md +18 -0
- package/kits/colagem/regras/ritmo.md +15 -0
- package/kits/colagem/regras/som.md +18 -0
- package/kits/colagem/regras/tipografia.md +18 -0
- package/kits/contagem/SKILL.md +52 -0
- package/kits/contagem/assets/ASSETS.md +20 -0
- package/kits/contagem/assets/fontes/OFL-BigShouldersDisplay.txt +93 -0
- package/kits/contagem/assets/fontes/OFL-SpaceMono.txt +93 -0
- package/kits/contagem/assets/fontes/bigshoulders.woff2 +0 -0
- package/kits/contagem/assets/fontes/spacemono.woff2 +0 -0
- package/kits/contagem/assets/sons/assinatura.mp3 +0 -0
- package/kits/contagem/assets/sons/clique.mp3 +0 -0
- package/kits/contagem/assets/sons/confete.mp3 +0 -0
- package/kits/contagem/assets/sons/impacto.mp3 +0 -0
- package/kits/contagem/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/contagem/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/contagem/assets/sons/subida.mp3 +0 -0
- package/kits/contagem/assets/sons/swoosh.mp3 +0 -0
- package/kits/contagem/assets/sons/tick.mp3 +0 -0
- package/kits/contagem/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/contagem/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/contagem/assets/trilha/pulso-128bpm.mp3 +0 -0
- package/kits/contagem/capa.jpg +0 -0
- package/kits/contagem/elementos/AnelTempo.tsx +36 -0
- package/kits/contagem/elementos/BarraDias.tsx +41 -0
- package/kits/contagem/elementos/Camera.tsx +21 -0
- package/kits/contagem/elementos/CarimboData.tsx +37 -0
- package/kits/contagem/elementos/Cena.tsx +39 -0
- package/kits/contagem/elementos/Fundo.tsx +27 -0
- package/kits/contagem/elementos/Montagem.tsx +58 -0
- package/kits/contagem/elementos/NumeroRolando.tsx +49 -0
- package/kits/contagem/elementos/RelogioFlip.tsx +51 -0
- package/kits/contagem/elementos/Som.tsx +41 -0
- package/kits/contagem/elementos/base.ts +79 -0
- package/kits/contagem/elementos/index.ts +14 -0
- package/kits/contagem/exemplos/plano.json +48 -0
- package/kits/contagem/exemplos/roteiro.md +19 -0
- package/kits/contagem/preview.tsx +9 -0
- package/kits/contagem/receita.json +21 -0
- package/kits/contagem/regras/area-segura.md +16 -0
- package/kits/contagem/regras/cor.md +14 -0
- package/kits/contagem/regras/movimento.md +23 -0
- package/kits/contagem/regras/ritmo.md +15 -0
- package/kits/contagem/regras/som.md +21 -0
- package/kits/contagem/regras/tipografia.md +16 -0
- package/kits/convite-evento/SKILL.md +53 -0
- package/kits/convite-evento/assets/ASSETS.md +19 -0
- package/kits/convite-evento/assets/fontes/OFL-InstrumentSerif.txt +93 -0
- package/kits/convite-evento/assets/fontes/OFL-Unbounded.txt +93 -0
- package/kits/convite-evento/assets/fontes/instrumentserif-i.woff2 +0 -0
- package/kits/convite-evento/assets/fontes/unbounded.woff2 +0 -0
- package/kits/convite-evento/assets/sons/assinatura.mp3 +0 -0
- package/kits/convite-evento/assets/sons/clique.mp3 +0 -0
- package/kits/convite-evento/assets/sons/confete.mp3 +0 -0
- package/kits/convite-evento/assets/sons/impacto.mp3 +0 -0
- package/kits/convite-evento/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/convite-evento/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/convite-evento/assets/sons/subida.mp3 +0 -0
- package/kits/convite-evento/assets/sons/swoosh.mp3 +0 -0
- package/kits/convite-evento/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/convite-evento/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/convite-evento/assets/trilha/festa-112bpm.mp3 +0 -0
- package/kits/convite-evento/capa.jpg +0 -0
- package/kits/convite-evento/elementos/BotaoInscricao.tsx +36 -0
- package/kits/convite-evento/elementos/Camera.tsx +21 -0
- package/kits/convite-evento/elementos/Cena.tsx +39 -0
- package/kits/convite-evento/elementos/DataGigante.tsx +37 -0
- package/kits/convite-evento/elementos/Fundo.tsx +30 -0
- package/kits/convite-evento/elementos/IngressoBilhete.tsx +40 -0
- package/kits/convite-evento/elementos/LugarGigante.tsx +38 -0
- package/kits/convite-evento/elementos/Montagem.tsx +59 -0
- package/kits/convite-evento/elementos/SeloRotativo.tsx +32 -0
- package/kits/convite-evento/elementos/Som.tsx +40 -0
- package/kits/convite-evento/elementos/TituloEvento.tsx +33 -0
- package/kits/convite-evento/elementos/base.ts +82 -0
- package/kits/convite-evento/elementos/index.ts +15 -0
- package/kits/convite-evento/exemplos/plano.json +49 -0
- package/kits/convite-evento/exemplos/roteiro.md +19 -0
- package/kits/convite-evento/preview.tsx +9 -0
- package/kits/convite-evento/receita.json +21 -0
- package/kits/convite-evento/regras/area-segura.md +20 -0
- package/kits/convite-evento/regras/cor.md +13 -0
- package/kits/convite-evento/regras/movimento.md +20 -0
- package/kits/convite-evento/regras/ritmo.md +15 -0
- package/kits/convite-evento/regras/som.md +20 -0
- package/kits/convite-evento/regras/tipografia.md +18 -0
- package/kits/corte-podcast/SKILL.md +53 -0
- package/kits/corte-podcast/assets/ASSETS.md +19 -0
- package/kits/corte-podcast/assets/fontes/OFL-Anton.txt +93 -0
- package/kits/corte-podcast/assets/fontes/OFL-IBMPlexMono.txt +93 -0
- package/kits/corte-podcast/assets/fontes/anton.woff2 +0 -0
- package/kits/corte-podcast/assets/fontes/plexmono.woff2 +0 -0
- package/kits/corte-podcast/assets/sons/assinatura.mp3 +0 -0
- package/kits/corte-podcast/assets/sons/clique.mp3 +0 -0
- package/kits/corte-podcast/assets/sons/impacto.mp3 +0 -0
- package/kits/corte-podcast/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/corte-podcast/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/corte-podcast/assets/sons/subida.mp3 +0 -0
- package/kits/corte-podcast/assets/sons/swoosh.mp3 +0 -0
- package/kits/corte-podcast/assets/sons/tick.mp3 +0 -0
- package/kits/corte-podcast/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/corte-podcast/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/corte-podcast/assets/trilha/lofi-pulso-100bpm.mp3 +0 -0
- package/kits/corte-podcast/capa.jpg +0 -0
- package/kits/corte-podcast/elementos/BarraEpisodio.tsx +43 -0
- package/kits/corte-podcast/elementos/Camera.tsx +21 -0
- package/kits/corte-podcast/elementos/CartaoConvidado.tsx +32 -0
- package/kits/corte-podcast/elementos/Cena.tsx +41 -0
- package/kits/corte-podcast/elementos/CitacaoGrande.tsx +42 -0
- package/kits/corte-podcast/elementos/Fundo.tsx +27 -0
- package/kits/corte-podcast/elementos/LegendaKaraoke.tsx +32 -0
- package/kits/corte-podcast/elementos/Montagem.tsx +59 -0
- package/kits/corte-podcast/elementos/OndaAudio.tsx +41 -0
- package/kits/corte-podcast/elementos/SeloEpisodio.tsx +33 -0
- package/kits/corte-podcast/elementos/Som.tsx +40 -0
- package/kits/corte-podcast/elementos/base.ts +82 -0
- package/kits/corte-podcast/elementos/index.ts +15 -0
- package/kits/corte-podcast/exemplos/plano.json +62 -0
- package/kits/corte-podcast/exemplos/roteiro.md +20 -0
- package/kits/corte-podcast/preview.tsx +9 -0
- package/kits/corte-podcast/receita.json +21 -0
- package/kits/corte-podcast/regras/area-segura.md +18 -0
- package/kits/corte-podcast/regras/cor.md +15 -0
- package/kits/corte-podcast/regras/movimento.md +18 -0
- package/kits/corte-podcast/regras/ritmo.md +16 -0
- package/kits/corte-podcast/regras/som.md +20 -0
- package/kits/corte-podcast/regras/tipografia.md +16 -0
- package/kits/cubos/SKILL.md +51 -0
- package/kits/cubos/assets/ASSETS.md +21 -0
- package/kits/cubos/assets/fontes/OFL-ArchivoBlack.txt +92 -0
- package/kits/cubos/assets/fontes/OFL-DMSans.txt +92 -0
- package/kits/cubos/assets/fontes/archivoblack-latin.woff2 +0 -0
- package/kits/cubos/assets/fontes/dmsans-latin.woff2 +0 -0
- package/kits/cubos/assets/sons/assinatura.mp3 +0 -0
- package/kits/cubos/assets/sons/bloco.mp3 +0 -0
- package/kits/cubos/assets/sons/desmonta.mp3 +0 -0
- package/kits/cubos/assets/sons/encaixa.mp3 +0 -0
- package/kits/cubos/assets/sons/estala.mp3 +0 -0
- package/kits/cubos/assets/sons/gira.mp3 +0 -0
- package/kits/cubos/assets/sons/queda.mp3 +0 -0
- package/kits/cubos/assets/sons/whoosh.mp3 +0 -0
- package/kits/cubos/assets/trilha/calma-com-punch-108bpm.mp3 +0 -0
- package/kits/cubos/capa.jpg +0 -0
- package/kits/cubos/elementos/AssinaturaMarca.tsx +29 -0
- package/kits/cubos/elementos/Camera.tsx +22 -0
- package/kits/cubos/elementos/Cena.tsx +48 -0
- package/kits/cubos/elementos/Cubo.tsx +40 -0
- package/kits/cubos/elementos/CuboGiratorio.tsx +37 -0
- package/kits/cubos/elementos/Fundo.tsx +15 -0
- package/kits/cubos/elementos/Montagem.tsx +67 -0
- package/kits/cubos/elementos/MontagemDeCubos.tsx +58 -0
- package/kits/cubos/elementos/PlacaBloco.tsx +29 -0
- package/kits/cubos/elementos/Som.tsx +33 -0
- package/kits/cubos/elementos/TorreDeCubos.tsx +39 -0
- package/kits/cubos/elementos/base.ts +97 -0
- package/kits/cubos/elementos/index.ts +15 -0
- package/kits/cubos/exemplos/logo-encaixa.svg +1 -0
- package/kits/cubos/exemplos/plano.json +45 -0
- package/kits/cubos/exemplos/roteiro.md +20 -0
- package/kits/cubos/preview.tsx +12 -0
- package/kits/cubos/receita.json +151 -0
- package/kits/cubos/regras/area-segura.md +18 -0
- package/kits/cubos/regras/cor.md +23 -0
- package/kits/cubos/regras/movimento.md +17 -0
- package/kits/cubos/regras/ritmo.md +14 -0
- package/kits/cubos/regras/som.md +20 -0
- package/kits/cubos/regras/tipografia.md +15 -0
- package/kits/dashboard-dados/SKILL.md +51 -0
- package/kits/dashboard-dados/assets/ASSETS.md +18 -0
- package/kits/dashboard-dados/assets/fontes/OFL-IBM-Plex-Mono.txt +93 -0
- package/kits/dashboard-dados/assets/fontes/OFL-Montserrat.txt +93 -0
- package/kits/dashboard-dados/assets/fontes/montserrat.woff2 +0 -0
- package/kits/dashboard-dados/assets/fontes/plex-mono.woff2 +0 -0
- package/kits/dashboard-dados/assets/sons/assinatura.mp3 +0 -0
- package/kits/dashboard-dados/assets/sons/clique.mp3 +0 -0
- package/kits/dashboard-dados/assets/sons/impacto.mp3 +0 -0
- package/kits/dashboard-dados/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/dashboard-dados/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/dashboard-dados/assets/sons/subida.mp3 +0 -0
- package/kits/dashboard-dados/assets/sons/swoosh.mp3 +0 -0
- package/kits/dashboard-dados/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/dashboard-dados/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/dashboard-dados/assets/trilha/trilha.mp3 +0 -0
- package/kits/dashboard-dados/capa.jpg +0 -0
- package/kits/dashboard-dados/elementos/AssinaturaMarca.tsx +19 -0
- package/kits/dashboard-dados/elementos/BarrasCrescendo.tsx +27 -0
- package/kits/dashboard-dados/elementos/Camera.tsx +23 -0
- package/kits/dashboard-dados/elementos/Cena.tsx +46 -0
- package/kits/dashboard-dados/elementos/Fundo.tsx +12 -0
- package/kits/dashboard-dados/elementos/LinhaTendencia.tsx +29 -0
- package/kits/dashboard-dados/elementos/Montagem.tsx +60 -0
- package/kits/dashboard-dados/elementos/NumeroGigante.tsx +21 -0
- package/kits/dashboard-dados/elementos/RankingBarras.tsx +27 -0
- package/kits/dashboard-dados/elementos/RoscaDados.tsx +39 -0
- package/kits/dashboard-dados/elementos/Som.tsx +39 -0
- package/kits/dashboard-dados/elementos/base.ts +87 -0
- package/kits/dashboard-dados/elementos/index.ts +16 -0
- package/kits/dashboard-dados/exemplos/logo-radar.svg +1 -0
- package/kits/dashboard-dados/exemplos/plano.json +325 -0
- package/kits/dashboard-dados/exemplos/roteiro.md +20 -0
- package/kits/dashboard-dados/preview.tsx +12 -0
- package/kits/dashboard-dados/receita.json +173 -0
- package/kits/dashboard-dados/regras/area-segura.md +13 -0
- package/kits/dashboard-dados/regras/cor.md +17 -0
- package/kits/dashboard-dados/regras/movimento.md +17 -0
- package/kits/dashboard-dados/regras/ritmo.md +14 -0
- package/kits/dashboard-dados/regras/som.md +18 -0
- package/kits/dashboard-dados/regras/tipografia.md +16 -0
- package/kits/depoimento/SKILL.md +54 -0
- package/kits/depoimento/assets/ASSETS.md +20 -0
- package/kits/depoimento/assets/fontes/OFL-Newsreader.txt +93 -0
- package/kits/depoimento/assets/fontes/OFL-SpaceGrotesk.txt +93 -0
- package/kits/depoimento/assets/fontes/newsreader-i.woff2 +0 -0
- package/kits/depoimento/assets/fontes/spacegrotesk.woff2 +0 -0
- package/kits/depoimento/assets/sons/assinatura.mp3 +0 -0
- package/kits/depoimento/assets/sons/clique.mp3 +0 -0
- package/kits/depoimento/assets/sons/estrela.mp3 +0 -0
- package/kits/depoimento/assets/sons/impacto.mp3 +0 -0
- package/kits/depoimento/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/depoimento/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/depoimento/assets/sons/subida.mp3 +0 -0
- package/kits/depoimento/assets/sons/swoosh.mp3 +0 -0
- package/kits/depoimento/assets/sons/verificado.mp3 +0 -0
- package/kits/depoimento/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/depoimento/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/depoimento/assets/trilha/calor-104bpm.mp3 +0 -0
- package/kits/depoimento/capa.jpg +0 -0
- package/kits/depoimento/elementos/Avatar.tsx +37 -0
- package/kits/depoimento/elementos/Camera.tsx +21 -0
- package/kits/depoimento/elementos/CartaoDepoimento.tsx +69 -0
- package/kits/depoimento/elementos/Cena.tsx +39 -0
- package/kits/depoimento/elementos/Estrelas.tsx +34 -0
- package/kits/depoimento/elementos/FaixaAvatares.tsx +41 -0
- package/kits/depoimento/elementos/Fundo.tsx +23 -0
- package/kits/depoimento/elementos/Montagem.tsx +60 -0
- package/kits/depoimento/elementos/NotaGigante.tsx +38 -0
- package/kits/depoimento/elementos/PilhaCartoes.tsx +37 -0
- package/kits/depoimento/elementos/SeloVerificado.tsx +29 -0
- package/kits/depoimento/elementos/Som.tsx +41 -0
- package/kits/depoimento/elementos/base.ts +83 -0
- package/kits/depoimento/elementos/index.ts +16 -0
- package/kits/depoimento/exemplos/plano.json +57 -0
- package/kits/depoimento/exemplos/roteiro.md +19 -0
- package/kits/depoimento/preview.tsx +9 -0
- package/kits/depoimento/receita.json +21 -0
- package/kits/depoimento/regras/area-segura.md +17 -0
- package/kits/depoimento/regras/cor.md +16 -0
- package/kits/depoimento/regras/movimento.md +20 -0
- package/kits/depoimento/regras/ritmo.md +15 -0
- package/kits/depoimento/regras/som.md +21 -0
- package/kits/depoimento/regras/tipografia.md +17 -0
- package/kits/estudio/package.json +13 -0
- package/kits/estudio/render.mjs +48 -0
- package/kits/infografico/SKILL.md +54 -0
- package/kits/infografico/assets/ASSETS.md +19 -0
- package/kits/infografico/assets/fontes/OFL-Caveat.txt +93 -0
- package/kits/infografico/assets/fontes/OFL-Outfit.txt +93 -0
- package/kits/infografico/assets/fontes/caveat.woff2 +0 -0
- package/kits/infografico/assets/fontes/outfit.woff2 +0 -0
- package/kits/infografico/assets/sons/assinatura.mp3 +0 -0
- package/kits/infografico/assets/sons/clique.mp3 +0 -0
- package/kits/infografico/assets/sons/impacto.mp3 +0 -0
- package/kits/infografico/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/infografico/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/infografico/assets/sons/subida.mp3 +0 -0
- package/kits/infografico/assets/sons/swoosh.mp3 +0 -0
- package/kits/infografico/assets/sons/traco.mp3 +0 -0
- package/kits/infografico/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/infografico/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/infografico/assets/trilha/explica-100bpm.mp3 +0 -0
- package/kits/infografico/capa.jpg +0 -0
- package/kits/infografico/elementos/Anotacao.tsx +34 -0
- package/kits/infografico/elementos/CadeiaPassos.tsx +49 -0
- package/kits/infografico/elementos/Camera.tsx +21 -0
- package/kits/infografico/elementos/Cena.tsx +39 -0
- package/kits/infografico/elementos/Fundo.tsx +23 -0
- package/kits/infografico/elementos/GraficoBarras.tsx +41 -0
- package/kits/infografico/elementos/Icone.tsx +35 -0
- package/kits/infografico/elementos/Montagem.tsx +60 -0
- package/kits/infografico/elementos/NoProcesso.tsx +33 -0
- package/kits/infografico/elementos/NumeroDestaque.tsx +35 -0
- package/kits/infografico/elementos/SetaCurva.tsx +33 -0
- package/kits/infografico/elementos/Som.tsx +40 -0
- package/kits/infografico/elementos/base.ts +80 -0
- package/kits/infografico/elementos/index.ts +16 -0
- package/kits/infografico/exemplos/plano.json +49 -0
- package/kits/infografico/exemplos/roteiro.md +19 -0
- package/kits/infografico/preview.tsx +9 -0
- package/kits/infografico/receita.json +21 -0
- package/kits/infografico/regras/area-segura.md +17 -0
- package/kits/infografico/regras/cor.md +15 -0
- package/kits/infografico/regras/movimento.md +20 -0
- package/kits/infografico/regras/ritmo.md +15 -0
- package/kits/infografico/regras/som.md +20 -0
- package/kits/infografico/regras/tipografia.md +16 -0
- package/kits/isometrico/SKILL.md +52 -0
- package/kits/isometrico/assets/ASSETS.md +18 -0
- package/kits/isometrico/assets/fontes/OFL-Archivo.txt +93 -0
- package/kits/isometrico/assets/fontes/OFL-Jost.txt +93 -0
- package/kits/isometrico/assets/fontes/archivo.woff2 +0 -0
- package/kits/isometrico/assets/fontes/jost.woff2 +0 -0
- package/kits/isometrico/assets/sons/assinatura.mp3 +0 -0
- package/kits/isometrico/assets/sons/clique.mp3 +0 -0
- package/kits/isometrico/assets/sons/impacto.mp3 +0 -0
- package/kits/isometrico/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/isometrico/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/isometrico/assets/sons/subida.mp3 +0 -0
- package/kits/isometrico/assets/sons/swoosh.mp3 +0 -0
- package/kits/isometrico/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/isometrico/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/isometrico/assets/trilha/trilha.mp3 +0 -0
- package/kits/isometrico/capa.jpg +0 -0
- package/kits/isometrico/elementos/AssinaturaMarca.tsx +24 -0
- package/kits/isometrico/elementos/BlocosMontando.tsx +36 -0
- package/kits/isometrico/elementos/Camera.tsx +23 -0
- package/kits/isometrico/elementos/Cena.tsx +46 -0
- package/kits/isometrico/elementos/CidadeDeDados.tsx +33 -0
- package/kits/isometrico/elementos/Fundo.tsx +13 -0
- package/kits/isometrico/elementos/LegendaPlaca.tsx +18 -0
- package/kits/isometrico/elementos/Montagem.tsx +60 -0
- package/kits/isometrico/elementos/RedeDeBlocos.tsx +41 -0
- package/kits/isometrico/elementos/Som.tsx +39 -0
- package/kits/isometrico/elementos/TextoNoChao.tsx +28 -0
- package/kits/isometrico/elementos/base.ts +86 -0
- package/kits/isometrico/elementos/index.ts +16 -0
- package/kits/isometrico/elementos/iso.tsx +49 -0
- package/kits/isometrico/exemplos/logo-nodo.svg +1 -0
- package/kits/isometrico/exemplos/plano.json +433 -0
- package/kits/isometrico/exemplos/roteiro.md +20 -0
- package/kits/isometrico/preview.tsx +12 -0
- package/kits/isometrico/receita.json +155 -0
- package/kits/isometrico/regras/area-segura.md +13 -0
- package/kits/isometrico/regras/cor.md +18 -0
- package/kits/isometrico/regras/movimento.md +16 -0
- package/kits/isometrico/regras/ritmo.md +13 -0
- package/kits/isometrico/regras/som.md +18 -0
- package/kits/isometrico/regras/tipografia.md +12 -0
- package/kits/jornal/SKILL.md +54 -0
- package/kits/jornal/assets/ASSETS.md +24 -0
- package/kits/jornal/assets/fontes/OFL-PlayfairDisplay.txt +93 -0
- package/kits/jornal/assets/fontes/OFL-UnifrakturMaguntia.txt +93 -0
- package/kits/jornal/assets/fontes/playfair-italic.woff2 +0 -0
- package/kits/jornal/assets/fontes/playfair.woff2 +0 -0
- package/kits/jornal/assets/fontes/unifraktur.woff2 +0 -0
- package/kits/jornal/assets/sons/assinatura.mp3 +0 -0
- package/kits/jornal/assets/sons/clique.mp3 +0 -0
- package/kits/jornal/assets/sons/impacto.mp3 +0 -0
- package/kits/jornal/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/jornal/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/jornal/assets/sons/subida.mp3 +0 -0
- package/kits/jornal/assets/sons/swoosh.mp3 +0 -0
- package/kits/jornal/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/jornal/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/jornal/assets/trilha/redacao-96bpm.mp3 +0 -0
- package/kits/jornal/capa.jpg +0 -0
- package/kits/jornal/elementos/AssinaturaMarca.tsx +25 -0
- package/kits/jornal/elementos/Cabecalho.tsx +21 -0
- package/kits/jornal/elementos/Camera.tsx +22 -0
- package/kits/jornal/elementos/Carimbo.tsx +18 -0
- package/kits/jornal/elementos/Cena.tsx +41 -0
- package/kits/jornal/elementos/Colunas.tsx +24 -0
- package/kits/jornal/elementos/FotoMeiaTinta.tsx +20 -0
- package/kits/jornal/elementos/Fundo.tsx +18 -0
- package/kits/jornal/elementos/JornalGirando.tsx +27 -0
- package/kits/jornal/elementos/Manchete.tsx +30 -0
- package/kits/jornal/elementos/Montagem.tsx +61 -0
- package/kits/jornal/elementos/Som.tsx +38 -0
- package/kits/jornal/elementos/Ticker.tsx +19 -0
- package/kits/jornal/elementos/base.ts +76 -0
- package/kits/jornal/elementos/index.ts +17 -0
- package/kits/jornal/exemplos/fotos/foto-03.jpg +0 -0
- package/kits/jornal/exemplos/fotos/foto-07.jpg +0 -0
- package/kits/jornal/exemplos/logo-esquina.svg +1 -0
- package/kits/jornal/exemplos/plano.json +48 -0
- package/kits/jornal/exemplos/roteiro.md +19 -0
- package/kits/jornal/preview.tsx +17 -0
- package/kits/jornal/receita.json +170 -0
- package/kits/jornal/regras/area-segura.md +19 -0
- package/kits/jornal/regras/cor.md +14 -0
- package/kits/jornal/regras/movimento.md +16 -0
- package/kits/jornal/regras/ritmo.md +15 -0
- package/kits/jornal/regras/som.md +21 -0
- package/kits/jornal/regras/tipografia.md +17 -0
- package/kits/legenda-viva/SKILL.md +52 -0
- package/kits/legenda-viva/assets/ASSETS.md +23 -0
- package/kits/legenda-viva/assets/fontes/OFL-Inter.txt +93 -0
- package/kits/legenda-viva/assets/fontes/OFL-Montserrat.txt +93 -0
- package/kits/legenda-viva/assets/fontes/inter.woff2 +0 -0
- package/kits/legenda-viva/assets/fontes/montserrat.woff2 +0 -0
- package/kits/legenda-viva/assets/sons/assinatura.mp3 +0 -0
- package/kits/legenda-viva/assets/sons/clique.mp3 +0 -0
- package/kits/legenda-viva/assets/sons/impacto.mp3 +0 -0
- package/kits/legenda-viva/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/legenda-viva/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/legenda-viva/assets/sons/subida.mp3 +0 -0
- package/kits/legenda-viva/assets/sons/swoosh.mp3 +0 -0
- package/kits/legenda-viva/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/legenda-viva/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/legenda-viva/assets/trilha/voz-118bpm.mp3 +0 -0
- package/kits/legenda-viva/capa.jpg +0 -0
- package/kits/legenda-viva/elementos/AssinaturaMarca.tsx +29 -0
- package/kits/legenda-viva/elementos/Camera.tsx +22 -0
- package/kits/legenda-viva/elementos/Cena.tsx +41 -0
- package/kits/legenda-viva/elementos/ChipTema.tsx +19 -0
- package/kits/legenda-viva/elementos/Fundo.tsx +6 -0
- package/kits/legenda-viva/elementos/LegendaCaixa.tsx +36 -0
- package/kits/legenda-viva/elementos/LegendaPalavra.tsx +32 -0
- package/kits/legenda-viva/elementos/Montagem.tsx +59 -0
- package/kits/legenda-viva/elementos/OndaVoz.tsx +23 -0
- package/kits/legenda-viva/elementos/PalavraGigante.tsx +18 -0
- package/kits/legenda-viva/elementos/QuadroFalante.tsx +17 -0
- package/kits/legenda-viva/elementos/Som.tsx +38 -0
- package/kits/legenda-viva/elementos/base.ts +73 -0
- package/kits/legenda-viva/elementos/index.ts +16 -0
- package/kits/legenda-viva/exemplos/fotos/foto-01.jpg +0 -0
- package/kits/legenda-viva/exemplos/fotos/foto-02.jpg +0 -0
- package/kits/legenda-viva/exemplos/fotos/foto-03.jpg +0 -0
- package/kits/legenda-viva/exemplos/fotos/foto-05.jpg +0 -0
- package/kits/legenda-viva/exemplos/logo-dica.svg +1 -0
- package/kits/legenda-viva/exemplos/plano.json +45 -0
- package/kits/legenda-viva/exemplos/roteiro.md +18 -0
- package/kits/legenda-viva/preview.tsx +19 -0
- package/kits/legenda-viva/receita.json +171 -0
- package/kits/legenda-viva/regras/area-segura.md +19 -0
- package/kits/legenda-viva/regras/cor.md +14 -0
- package/kits/legenda-viva/regras/movimento.md +16 -0
- package/kits/legenda-viva/regras/ritmo.md +15 -0
- package/kits/legenda-viva/regras/som.md +21 -0
- package/kits/legenda-viva/regras/tipografia.md +16 -0
- package/kits/luxo/SKILL.md +55 -0
- package/kits/luxo/assets/ASSETS.md +20 -0
- package/kits/luxo/assets/fontes/OFL-CormorantGaramond.txt +93 -0
- package/kits/luxo/assets/fontes/OFL-Jost.txt +93 -0
- package/kits/luxo/assets/fontes/cormorant-i.woff2 +0 -0
- package/kits/luxo/assets/fontes/cormorant.woff2 +0 -0
- package/kits/luxo/assets/fontes/jost.woff2 +0 -0
- package/kits/luxo/assets/sons/assinatura.mp3 +0 -0
- package/kits/luxo/assets/sons/clique.mp3 +0 -0
- package/kits/luxo/assets/sons/impacto.mp3 +0 -0
- package/kits/luxo/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/luxo/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/luxo/assets/sons/sino.mp3 +0 -0
- package/kits/luxo/assets/sons/subida.mp3 +0 -0
- package/kits/luxo/assets/sons/swoosh.mp3 +0 -0
- package/kits/luxo/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/luxo/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/luxo/assets/trilha/ambar-78bpm.mp3 +0 -0
- package/kits/luxo/capa.jpg +0 -0
- package/kits/luxo/elementos/Camera.tsx +21 -0
- package/kits/luxo/elementos/Cena.tsx +36 -0
- package/kits/luxo/elementos/ConviteOuro.tsx +34 -0
- package/kits/luxo/elementos/Fundo.tsx +26 -0
- package/kits/luxo/elementos/LegendaFina.tsx +25 -0
- package/kits/luxo/elementos/LinhaOuro.tsx +24 -0
- package/kits/luxo/elementos/MolduraArco.tsx +36 -0
- package/kits/luxo/elementos/Monograma.tsx +35 -0
- package/kits/luxo/elementos/Montagem.tsx +59 -0
- package/kits/luxo/elementos/Som.tsx +40 -0
- package/kits/luxo/elementos/TituloSerifa.tsx +35 -0
- package/kits/luxo/elementos/base.ts +85 -0
- package/kits/luxo/elementos/index.ts +15 -0
- package/kits/luxo/exemplos/fotos/foto-07.jpg +0 -0
- package/kits/luxo/exemplos/fotos/foto-08.jpg +0 -0
- package/kits/luxo/exemplos/plano.json +145 -0
- package/kits/luxo/exemplos/roteiro.md +18 -0
- package/kits/luxo/preview.tsx +13 -0
- package/kits/luxo/receita.json +18 -0
- package/kits/luxo/regras/area-segura.md +16 -0
- package/kits/luxo/regras/cor.md +16 -0
- package/kits/luxo/regras/movimento.md +19 -0
- package/kits/luxo/regras/ritmo.md +14 -0
- package/kits/luxo/regras/som.md +21 -0
- package/kits/luxo/regras/tipografia.md +17 -0
- package/kits/manifest.json +552 -0
- package/kits/mapa/SKILL.md +54 -0
- package/kits/mapa/assets/ASSETS.md +20 -0
- package/kits/mapa/assets/fontes/OFL-DMMono.txt +93 -0
- package/kits/mapa/assets/fontes/OFL-DMSans.txt +93 -0
- package/kits/mapa/assets/fontes/dmmono.woff2 +0 -0
- package/kits/mapa/assets/fontes/dmsans.woff2 +0 -0
- package/kits/mapa/assets/sons/assinatura.mp3 +0 -0
- package/kits/mapa/assets/sons/clique.mp3 +0 -0
- package/kits/mapa/assets/sons/impacto.mp3 +0 -0
- package/kits/mapa/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/mapa/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/mapa/assets/sons/quique.mp3 +0 -0
- package/kits/mapa/assets/sons/subida.mp3 +0 -0
- package/kits/mapa/assets/sons/swoosh.mp3 +0 -0
- package/kits/mapa/assets/sons/traco.mp3 +0 -0
- package/kits/mapa/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/mapa/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/mapa/assets/trilha/rota-100bpm.mp3 +0 -0
- package/kits/mapa/capa.jpg +0 -0
- package/kits/mapa/elementos/Camera.tsx +21 -0
- package/kits/mapa/elementos/CartaoEndereco.tsx +40 -0
- package/kits/mapa/elementos/Cena.tsx +41 -0
- package/kits/mapa/elementos/ChipTempo.tsx +29 -0
- package/kits/mapa/elementos/Fundo.tsx +25 -0
- package/kits/mapa/elementos/MapaBase.tsx +63 -0
- package/kits/mapa/elementos/Montagem.tsx +59 -0
- package/kits/mapa/elementos/Pino.tsx +38 -0
- package/kits/mapa/elementos/RotaAnimada.tsx +38 -0
- package/kits/mapa/elementos/Som.tsx +41 -0
- package/kits/mapa/elementos/TituloLocal.tsx +38 -0
- package/kits/mapa/elementos/base.ts +89 -0
- package/kits/mapa/elementos/index.ts +15 -0
- package/kits/mapa/exemplos/plano.json +48 -0
- package/kits/mapa/exemplos/roteiro.md +19 -0
- package/kits/mapa/preview.tsx +9 -0
- package/kits/mapa/receita.json +21 -0
- package/kits/mapa/regras/area-segura.md +15 -0
- package/kits/mapa/regras/cor.md +18 -0
- package/kits/mapa/regras/movimento.md +21 -0
- package/kits/mapa/regras/ritmo.md +15 -0
- package/kits/mapa/regras/som.md +21 -0
- package/kits/mapa/regras/tipografia.md +16 -0
- package/kits/massinha/SKILL.md +53 -0
- package/kits/massinha/assets/ASSETS.md +18 -0
- package/kits/massinha/assets/fontes/OFL-chewy.txt +93 -0
- package/kits/massinha/assets/fontes/OFL-nunito-800.txt +93 -0
- package/kits/massinha/assets/fontes/chewy.woff2 +0 -0
- package/kits/massinha/assets/fontes/nunito-800.woff2 +0 -0
- package/kits/massinha/assets/sons/assinatura.mp3 +0 -0
- package/kits/massinha/assets/sons/clique.mp3 +0 -0
- package/kits/massinha/assets/sons/impacto.mp3 +0 -0
- package/kits/massinha/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/massinha/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/massinha/assets/sons/subida.mp3 +0 -0
- package/kits/massinha/assets/sons/swoosh.mp3 +0 -0
- package/kits/massinha/assets/sons/tick.mp3 +0 -0
- package/kits/massinha/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/massinha/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/massinha/assets/trilha/trilha.mp3 +0 -0
- package/kits/massinha/capa.jpg +0 -0
- package/kits/massinha/elementos/AssinaturaMarca.tsx +20 -0
- package/kits/massinha/elementos/BichinhoMassa.tsx +30 -0
- package/kits/massinha/elementos/BolasMassa.tsx +25 -0
- package/kits/massinha/elementos/Camera.tsx +21 -0
- package/kits/massinha/elementos/Cena.tsx +36 -0
- package/kits/massinha/elementos/FormaMassa.tsx +23 -0
- package/kits/massinha/elementos/Fundo.tsx +12 -0
- package/kits/massinha/elementos/ListaMassa.tsx +19 -0
- package/kits/massinha/elementos/Montagem.tsx +56 -0
- package/kits/massinha/elementos/Overlay.tsx +11 -0
- package/kits/massinha/elementos/PlacaMassa.tsx +24 -0
- package/kits/massinha/elementos/Som.tsx +30 -0
- package/kits/massinha/elementos/TituloMassa.tsx +31 -0
- package/kits/massinha/elementos/argila.ts +21 -0
- package/kits/massinha/elementos/base.ts +79 -0
- package/kits/massinha/elementos/index.ts +17 -0
- package/kits/massinha/exemplos/plano.json +220 -0
- package/kits/massinha/exemplos/roteiro.md +20 -0
- package/kits/massinha/preview.tsx +12 -0
- package/kits/massinha/receita.json +170 -0
- package/kits/massinha/regras/area-segura.md +15 -0
- package/kits/massinha/regras/cor.md +18 -0
- package/kits/massinha/regras/movimento.md +17 -0
- package/kits/massinha/regras/ritmo.md +15 -0
- package/kits/massinha/regras/som.md +17 -0
- package/kits/massinha/regras/tipografia.md +18 -0
- package/kits/memphis/SKILL.md +52 -0
- package/kits/memphis/assets/ASSETS.md +18 -0
- package/kits/memphis/assets/fontes/OFL-bowlby-one.txt +93 -0
- package/kits/memphis/assets/fontes/OFL-dm-sans-800.txt +93 -0
- package/kits/memphis/assets/fontes/bowlby-one.woff2 +0 -0
- package/kits/memphis/assets/fontes/dm-sans-800.woff2 +0 -0
- package/kits/memphis/assets/sons/assinatura.mp3 +0 -0
- package/kits/memphis/assets/sons/clique.mp3 +0 -0
- package/kits/memphis/assets/sons/impacto.mp3 +0 -0
- package/kits/memphis/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/memphis/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/memphis/assets/sons/subida.mp3 +0 -0
- package/kits/memphis/assets/sons/swoosh.mp3 +0 -0
- package/kits/memphis/assets/sons/tick.mp3 +0 -0
- package/kits/memphis/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/memphis/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/memphis/assets/trilha/trilha.mp3 +0 -0
- package/kits/memphis/capa.jpg +0 -0
- package/kits/memphis/elementos/AssinaturaMarca.tsx +20 -0
- package/kits/memphis/elementos/Camera.tsx +21 -0
- package/kits/memphis/elementos/CartaoMemphis.tsx +16 -0
- package/kits/memphis/elementos/Cena.tsx +36 -0
- package/kits/memphis/elementos/FitaMarquee.tsx +21 -0
- package/kits/memphis/elementos/FormasMemphis.tsx +46 -0
- package/kits/memphis/elementos/Fundo.tsx +15 -0
- package/kits/memphis/elementos/ListaPilulas.tsx +17 -0
- package/kits/memphis/elementos/Montagem.tsx +56 -0
- package/kits/memphis/elementos/NumeroGigante.tsx +19 -0
- package/kits/memphis/elementos/Overlay.tsx +23 -0
- package/kits/memphis/elementos/Som.tsx +30 -0
- package/kits/memphis/elementos/TituloMemphis.tsx +28 -0
- package/kits/memphis/elementos/base.ts +78 -0
- package/kits/memphis/elementos/index.ts +17 -0
- package/kits/memphis/exemplos/plano.json +314 -0
- package/kits/memphis/exemplos/roteiro.md +20 -0
- package/kits/memphis/preview.tsx +12 -0
- package/kits/memphis/receita.json +174 -0
- package/kits/memphis/regras/area-segura.md +14 -0
- package/kits/memphis/regras/cor.md +17 -0
- package/kits/memphis/regras/movimento.md +18 -0
- package/kits/memphis/regras/ritmo.md +15 -0
- package/kits/memphis/regras/som.md +18 -0
- package/kits/memphis/regras/tipografia.md +19 -0
- package/kits/metal-liquido/SKILL.md +51 -0
- package/kits/metal-liquido/assets/ASSETS.md +21 -0
- package/kits/metal-liquido/assets/fontes/OFL-SpaceGrotesk.txt +92 -0
- package/kits/metal-liquido/assets/fontes/OFL-Unbounded.txt +92 -0
- package/kits/metal-liquido/assets/fontes/grotesk-latin.woff2 +0 -0
- package/kits/metal-liquido/assets/fontes/unbounded-latin.woff2 +0 -0
- package/kits/metal-liquido/assets/sons/assinatura.mp3 +0 -0
- package/kits/metal-liquido/assets/sons/clique.mp3 +0 -0
- package/kits/metal-liquido/assets/sons/cromo.mp3 +0 -0
- package/kits/metal-liquido/assets/sons/liquido.mp3 +0 -0
- package/kits/metal-liquido/assets/sons/quique.mp3 +0 -0
- package/kits/metal-liquido/assets/sons/subida.mp3 +0 -0
- package/kits/metal-liquido/assets/sons/varre.mp3 +0 -0
- package/kits/metal-liquido/assets/sons/whoosh.mp3 +0 -0
- package/kits/metal-liquido/assets/trilha/sombrio-114bpm.mp3 +0 -0
- package/kits/metal-liquido/capa.jpg +0 -0
- package/kits/metal-liquido/elementos/AnelCromo.tsx +28 -0
- package/kits/metal-liquido/elementos/AssinaturaMarca.tsx +26 -0
- package/kits/metal-liquido/elementos/BolhasCromadas.tsx +53 -0
- package/kits/metal-liquido/elementos/Camera.tsx +22 -0
- package/kits/metal-liquido/elementos/Cena.tsx +48 -0
- package/kits/metal-liquido/elementos/EsferaCromo.tsx +32 -0
- package/kits/metal-liquido/elementos/Fundo.tsx +20 -0
- package/kits/metal-liquido/elementos/Montagem.tsx +67 -0
- package/kits/metal-liquido/elementos/PilulaCromo.tsx +23 -0
- package/kits/metal-liquido/elementos/Som.tsx +33 -0
- package/kits/metal-liquido/elementos/TituloCromo.tsx +32 -0
- package/kits/metal-liquido/elementos/base.ts +94 -0
- package/kits/metal-liquido/elementos/index.ts +15 -0
- package/kits/metal-liquido/exemplos/logo-mercurio.svg +1 -0
- package/kits/metal-liquido/exemplos/plano.json +48 -0
- package/kits/metal-liquido/exemplos/roteiro.md +20 -0
- package/kits/metal-liquido/preview.tsx +12 -0
- package/kits/metal-liquido/receita.json +173 -0
- package/kits/metal-liquido/regras/area-segura.md +16 -0
- package/kits/metal-liquido/regras/cor.md +23 -0
- package/kits/metal-liquido/regras/movimento.md +18 -0
- package/kits/metal-liquido/regras/ritmo.md +14 -0
- package/kits/metal-liquido/regras/som.md +20 -0
- package/kits/metal-liquido/regras/tipografia.md +15 -0
- package/kits/minimal/SKILL.md +54 -0
- package/kits/minimal/assets/ASSETS.md +19 -0
- package/kits/minimal/assets/fontes/OFL-HankenGrotesk.txt +93 -0
- package/kits/minimal/assets/fontes/OFL-SplineSansMono.txt +93 -0
- package/kits/minimal/assets/fontes/hanken.woff2 +0 -0
- package/kits/minimal/assets/fontes/splinemono.woff2 +0 -0
- package/kits/minimal/assets/sons/assinatura.mp3 +0 -0
- package/kits/minimal/assets/sons/clique.mp3 +0 -0
- package/kits/minimal/assets/sons/impacto.mp3 +0 -0
- package/kits/minimal/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/minimal/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/minimal/assets/sons/subida.mp3 +0 -0
- package/kits/minimal/assets/sons/swoosh.mp3 +0 -0
- package/kits/minimal/assets/sons/toque.mp3 +0 -0
- package/kits/minimal/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/minimal/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/minimal/assets/trilha/vazio-90bpm.mp3 +0 -0
- package/kits/minimal/capa.jpg +0 -0
- package/kits/minimal/elementos/Camera.tsx +21 -0
- package/kits/minimal/elementos/Cena.tsx +39 -0
- package/kits/minimal/elementos/FormaMorph.tsx +44 -0
- package/kits/minimal/elementos/FraseUnica.tsx +33 -0
- package/kits/minimal/elementos/Fundo.tsx +20 -0
- package/kits/minimal/elementos/LinhaFina.tsx +24 -0
- package/kits/minimal/elementos/Montagem.tsx +59 -0
- package/kits/minimal/elementos/NumeroSolo.tsx +33 -0
- package/kits/minimal/elementos/PontoMovel.tsx +27 -0
- package/kits/minimal/elementos/RodapeMinimal.tsx +26 -0
- package/kits/minimal/elementos/Som.tsx +40 -0
- package/kits/minimal/elementos/base.ts +80 -0
- package/kits/minimal/elementos/index.ts +15 -0
- package/kits/minimal/exemplos/plano.json +48 -0
- package/kits/minimal/exemplos/roteiro.md +19 -0
- package/kits/minimal/preview.tsx +9 -0
- package/kits/minimal/receita.json +21 -0
- package/kits/minimal/regras/area-segura.md +15 -0
- package/kits/minimal/regras/cor.md +12 -0
- package/kits/minimal/regras/movimento.md +20 -0
- package/kits/minimal/regras/ritmo.md +15 -0
- package/kits/minimal/regras/som.md +21 -0
- package/kits/minimal/regras/tipografia.md +15 -0
- package/kits/neon-cidade/SKILL.md +51 -0
- package/kits/neon-cidade/assets/ASSETS.md +21 -0
- package/kits/neon-cidade/assets/fontes/OFL-BarlowCondensed.txt +92 -0
- package/kits/neon-cidade/assets/fontes/OFL-TiltNeon.txt +92 -0
- package/kits/neon-cidade/assets/fontes/barlow-latin.woff2 +0 -0
- package/kits/neon-cidade/assets/fontes/tiltneon-latin.woff2 +0 -0
- package/kits/neon-cidade/assets/sons/assinatura.mp3 +0 -0
- package/kits/neon-cidade/assets/sons/balanca.mp3 +0 -0
- package/kits/neon-cidade/assets/sons/clique.mp3 +0 -0
- package/kits/neon-cidade/assets/sons/impacto.mp3 +0 -0
- package/kits/neon-cidade/assets/sons/liga.mp3 +0 -0
- package/kits/neon-cidade/assets/sons/tick.mp3 +0 -0
- package/kits/neon-cidade/assets/sons/whoosh.mp3 +0 -0
- package/kits/neon-cidade/assets/sons/zumbido.mp3 +0 -0
- package/kits/neon-cidade/assets/trilha/noite-100bpm.mp3 +0 -0
- package/kits/neon-cidade/capa.jpg +0 -0
- package/kits/neon-cidade/elementos/AssinaturaMarca.tsx +24 -0
- package/kits/neon-cidade/elementos/CaixaLuminosa.tsx +40 -0
- package/kits/neon-cidade/elementos/Camera.tsx +22 -0
- package/kits/neon-cidade/elementos/Cena.tsx +48 -0
- package/kits/neon-cidade/elementos/Chuva.tsx +23 -0
- package/kits/neon-cidade/elementos/FormaNeon.tsx +42 -0
- package/kits/neon-cidade/elementos/Fundo.tsx +18 -0
- package/kits/neon-cidade/elementos/Horizonte.tsx +34 -0
- package/kits/neon-cidade/elementos/LetreiroNeon.tsx +46 -0
- package/kits/neon-cidade/elementos/Montagem.tsx +67 -0
- package/kits/neon-cidade/elementos/Som.tsx +33 -0
- package/kits/neon-cidade/elementos/base.ts +100 -0
- package/kits/neon-cidade/elementos/index.ts +15 -0
- package/kits/neon-cidade/exemplos/logo-fenix.svg +1 -0
- package/kits/neon-cidade/exemplos/plano.json +50 -0
- package/kits/neon-cidade/exemplos/roteiro.md +20 -0
- package/kits/neon-cidade/preview.tsx +12 -0
- package/kits/neon-cidade/receita.json +151 -0
- package/kits/neon-cidade/regras/area-segura.md +18 -0
- package/kits/neon-cidade/regras/cor.md +23 -0
- package/kits/neon-cidade/regras/movimento.md +18 -0
- package/kits/neon-cidade/regras/ritmo.md +14 -0
- package/kits/neon-cidade/regras/som.md +20 -0
- package/kits/neon-cidade/regras/tipografia.md +15 -0
- package/kits/notion-editorial/SKILL.md +51 -0
- package/kits/notion-editorial/assets/ASSETS.md +19 -0
- package/kits/notion-editorial/assets/fontes/OFL-Cormorant-Italic.txt +93 -0
- package/kits/notion-editorial/assets/fontes/OFL-Cormorant.txt +93 -0
- package/kits/notion-editorial/assets/fontes/OFL-Jost.txt +93 -0
- package/kits/notion-editorial/assets/fontes/cormorant-italic.woff2 +0 -0
- package/kits/notion-editorial/assets/fontes/cormorant.woff2 +0 -0
- package/kits/notion-editorial/assets/fontes/jost.woff2 +0 -0
- package/kits/notion-editorial/assets/sons/assinatura.mp3 +0 -0
- package/kits/notion-editorial/assets/sons/clique.mp3 +0 -0
- package/kits/notion-editorial/assets/sons/impacto.mp3 +0 -0
- package/kits/notion-editorial/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/notion-editorial/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/notion-editorial/assets/sons/subida.mp3 +0 -0
- package/kits/notion-editorial/assets/sons/swoosh.mp3 +0 -0
- package/kits/notion-editorial/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/notion-editorial/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/notion-editorial/assets/trilha/trilha.mp3 +0 -0
- package/kits/notion-editorial/capa.jpg +0 -0
- package/kits/notion-editorial/elementos/AssinaturaMarca.tsx +20 -0
- package/kits/notion-editorial/elementos/BlocoNota.tsx +38 -0
- package/kits/notion-editorial/elementos/Camera.tsx +23 -0
- package/kits/notion-editorial/elementos/Cena.tsx +46 -0
- package/kits/notion-editorial/elementos/Diagrama.tsx +29 -0
- package/kits/notion-editorial/elementos/Fundo.tsx +12 -0
- package/kits/notion-editorial/elementos/Montagem.tsx +60 -0
- package/kits/notion-editorial/elementos/PassosNumerados.tsx +23 -0
- package/kits/notion-editorial/elementos/RabiscoIcone.tsx +33 -0
- package/kits/notion-editorial/elementos/Som.tsx +39 -0
- package/kits/notion-editorial/elementos/TextoSerifa.tsx +53 -0
- package/kits/notion-editorial/elementos/base.ts +87 -0
- package/kits/notion-editorial/elementos/desenho.tsx +36 -0
- package/kits/notion-editorial/elementos/index.ts +16 -0
- package/kits/notion-editorial/exemplos/logo-pauta.svg +1 -0
- package/kits/notion-editorial/exemplos/plano.json +254 -0
- package/kits/notion-editorial/exemplos/roteiro.md +20 -0
- package/kits/notion-editorial/preview.tsx +12 -0
- package/kits/notion-editorial/receita.json +165 -0
- package/kits/notion-editorial/regras/area-segura.md +13 -0
- package/kits/notion-editorial/regras/cor.md +15 -0
- package/kits/notion-editorial/regras/movimento.md +16 -0
- package/kits/notion-editorial/regras/ritmo.md +14 -0
- package/kits/notion-editorial/regras/som.md +18 -0
- package/kits/notion-editorial/regras/tipografia.md +15 -0
- package/kits/papel-recortado/SKILL.md +57 -0
- package/kits/papel-recortado/assets/ASSETS.md +18 -0
- package/kits/papel-recortado/assets/fontes/OFL-fredoka-700.txt +93 -0
- package/kits/papel-recortado/assets/fontes/OFL-nunito-700.txt +93 -0
- package/kits/papel-recortado/assets/fontes/fredoka-700.woff2 +0 -0
- package/kits/papel-recortado/assets/fontes/nunito-700.woff2 +0 -0
- package/kits/papel-recortado/assets/sons/assinatura.mp3 +0 -0
- package/kits/papel-recortado/assets/sons/clique.mp3 +0 -0
- package/kits/papel-recortado/assets/sons/impacto.mp3 +0 -0
- package/kits/papel-recortado/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/papel-recortado/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/papel-recortado/assets/sons/subida.mp3 +0 -0
- package/kits/papel-recortado/assets/sons/swoosh.mp3 +0 -0
- package/kits/papel-recortado/assets/sons/tick.mp3 +0 -0
- package/kits/papel-recortado/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/papel-recortado/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/papel-recortado/assets/trilha/trilha.mp3 +0 -0
- package/kits/papel-recortado/capa.jpg +0 -0
- package/kits/papel-recortado/elementos/CamadaPapel.tsx +81 -0
- package/kits/papel-recortado/elementos/Camera.tsx +28 -0
- package/kits/papel-recortado/elementos/CartaoCamadas.tsx +38 -0
- package/kits/papel-recortado/elementos/Cena.tsx +29 -0
- package/kits/papel-recortado/elementos/EtiquetaPapel.tsx +40 -0
- package/kits/papel-recortado/elementos/Filtros.tsx +33 -0
- package/kits/papel-recortado/elementos/Fita.tsx +21 -0
- package/kits/papel-recortado/elementos/FolhaPopUp.tsx +49 -0
- package/kits/papel-recortado/elementos/Fundo.tsx +10 -0
- package/kits/papel-recortado/elementos/LetrasRecortadas.tsx +48 -0
- package/kits/papel-recortado/elementos/MolduraPapel.tsx +12 -0
- package/kits/papel-recortado/elementos/Montagem.tsx +42 -0
- package/kits/papel-recortado/elementos/Som.tsx +30 -0
- package/kits/papel-recortado/elementos/base.ts +51 -0
- package/kits/papel-recortado/elementos/index.ts +15 -0
- package/kits/papel-recortado/exemplos/plano.json +410 -0
- package/kits/papel-recortado/exemplos/roteiro.md +13 -0
- package/kits/papel-recortado/preview.tsx +9 -0
- package/kits/papel-recortado/receita.json +14 -0
- package/kits/papel-recortado/regras/area-segura.md +13 -0
- package/kits/papel-recortado/regras/cor.md +16 -0
- package/kits/papel-recortado/regras/movimento.md +17 -0
- package/kits/papel-recortado/regras/ritmo.md +13 -0
- package/kits/papel-recortado/regras/som.md +17 -0
- package/kits/papel-recortado/regras/tipografia.md +12 -0
- package/kits/pixel/SKILL.md +52 -0
- package/kits/pixel/assets/ASSETS.md +18 -0
- package/kits/pixel/assets/fontes/OFL-pressstart2p.txt +93 -0
- package/kits/pixel/assets/fontes/OFL-vt323.txt +93 -0
- package/kits/pixel/assets/fontes/pressstart2p.woff2 +0 -0
- package/kits/pixel/assets/fontes/vt323.woff2 +0 -0
- package/kits/pixel/assets/sons/assinatura.mp3 +0 -0
- package/kits/pixel/assets/sons/clique.mp3 +0 -0
- package/kits/pixel/assets/sons/impacto.mp3 +0 -0
- package/kits/pixel/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/pixel/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/pixel/assets/sons/subida.mp3 +0 -0
- package/kits/pixel/assets/sons/swoosh.mp3 +0 -0
- package/kits/pixel/assets/sons/tick.mp3 +0 -0
- package/kits/pixel/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/pixel/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/pixel/assets/trilha/trilha.mp3 +0 -0
- package/kits/pixel/capa.jpg +0 -0
- package/kits/pixel/elementos/AssinaturaMarca.tsx +18 -0
- package/kits/pixel/elementos/CaixaDialogo.tsx +22 -0
- package/kits/pixel/elementos/Camera.tsx +21 -0
- package/kits/pixel/elementos/Cena.tsx +36 -0
- package/kits/pixel/elementos/ChuvaDeSprites.tsx +15 -0
- package/kits/pixel/elementos/Fundo.tsx +23 -0
- package/kits/pixel/elementos/HudPlacar.tsx +19 -0
- package/kits/pixel/elementos/MenuPixel.tsx +19 -0
- package/kits/pixel/elementos/Montagem.tsx +56 -0
- package/kits/pixel/elementos/Overlay.tsx +14 -0
- package/kits/pixel/elementos/Som.tsx +30 -0
- package/kits/pixel/elementos/Sprite.tsx +33 -0
- package/kits/pixel/elementos/TituloPixel.tsx +31 -0
- package/kits/pixel/elementos/base.ts +79 -0
- package/kits/pixel/elementos/index.ts +17 -0
- package/kits/pixel/exemplos/plano.json +309 -0
- package/kits/pixel/exemplos/roteiro.md +20 -0
- package/kits/pixel/preview.tsx +12 -0
- package/kits/pixel/receita.json +175 -0
- package/kits/pixel/regras/area-segura.md +14 -0
- package/kits/pixel/regras/cor.md +17 -0
- package/kits/pixel/regras/movimento.md +18 -0
- package/kits/pixel/regras/ritmo.md +15 -0
- package/kits/pixel/regras/som.md +18 -0
- package/kits/pixel/regras/tipografia.md +18 -0
- package/kits/pontos-3d/SKILL.md +51 -0
- package/kits/pontos-3d/assets/ASSETS.md +21 -0
- package/kits/pontos-3d/assets/fontes/OFL-JetBrainsMono.txt +92 -0
- package/kits/pontos-3d/assets/fontes/OFL-Sora.txt +92 -0
- package/kits/pontos-3d/assets/fontes/jetbrains-latin.woff2 +0 -0
- package/kits/pontos-3d/assets/fontes/sora-latin.woff2 +0 -0
- package/kits/pontos-3d/assets/sons/assinatura.mp3 +0 -0
- package/kits/pontos-3d/assets/sons/clique.mp3 +0 -0
- package/kits/pontos-3d/assets/sons/impacto.mp3 +0 -0
- package/kits/pontos-3d/assets/sons/pop.mp3 +0 -0
- package/kits/pontos-3d/assets/sons/subida.mp3 +0 -0
- package/kits/pontos-3d/assets/sons/tick.mp3 +0 -0
- package/kits/pontos-3d/assets/sons/varre.mp3 +0 -0
- package/kits/pontos-3d/assets/sons/whoosh.mp3 +0 -0
- package/kits/pontos-3d/assets/trilha/tech-120bpm.mp3 +0 -0
- package/kits/pontos-3d/capa.jpg +0 -0
- package/kits/pontos-3d/elementos/AssinaturaMarca.tsx +23 -0
- package/kits/pontos-3d/elementos/Camera.tsx +22 -0
- package/kits/pontos-3d/elementos/Cena.tsx +48 -0
- package/kits/pontos-3d/elementos/Contador.tsx +32 -0
- package/kits/pontos-3d/elementos/Fundo.tsx +20 -0
- package/kits/pontos-3d/elementos/Montagem.tsx +67 -0
- package/kits/pontos-3d/elementos/NuvemDePontos.tsx +84 -0
- package/kits/pontos-3d/elementos/RotuloPonto.tsx +32 -0
- package/kits/pontos-3d/elementos/Som.tsx +33 -0
- package/kits/pontos-3d/elementos/TextoDePontos.tsx +55 -0
- package/kits/pontos-3d/elementos/TituloSora.tsx +36 -0
- package/kits/pontos-3d/elementos/base.ts +92 -0
- package/kits/pontos-3d/elementos/index.ts +15 -0
- package/kits/pontos-3d/exemplos/logo-malha.svg +1 -0
- package/kits/pontos-3d/exemplos/plano.json +46 -0
- package/kits/pontos-3d/exemplos/roteiro.md +20 -0
- package/kits/pontos-3d/preview.tsx +12 -0
- package/kits/pontos-3d/receita.json +153 -0
- package/kits/pontos-3d/regras/area-segura.md +17 -0
- package/kits/pontos-3d/regras/cor.md +21 -0
- package/kits/pontos-3d/regras/movimento.md +19 -0
- package/kits/pontos-3d/regras/ritmo.md +14 -0
- package/kits/pontos-3d/regras/som.md +20 -0
- package/kits/pontos-3d/regras/tipografia.md +16 -0
- package/kits/produto-3d/SKILL.md +59 -0
- package/kits/produto-3d/assets/ASSETS.md +18 -0
- package/kits/produto-3d/assets/fontes/OFL-IBMPlexMono.txt +93 -0
- package/kits/produto-3d/assets/fontes/OFL-Syncopate.txt +92 -0
- package/kits/produto-3d/assets/fontes/plex-mono.woff2 +0 -0
- package/kits/produto-3d/assets/fontes/syncopate-latin.woff2 +0 -0
- package/kits/produto-3d/assets/sons/assinatura.mp3 +0 -0
- package/kits/produto-3d/assets/sons/clique.mp3 +0 -0
- package/kits/produto-3d/assets/sons/impacto.mp3 +0 -0
- package/kits/produto-3d/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/produto-3d/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/produto-3d/assets/sons/subida.mp3 +0 -0
- package/kits/produto-3d/assets/sons/swoosh.mp3 +0 -0
- package/kits/produto-3d/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/produto-3d/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/produto-3d/assets/trilha/trilha.mp3 +0 -0
- package/kits/produto-3d/capa.jpg +0 -0
- package/kits/produto-3d/elementos/AssinaturaMarca.tsx +28 -0
- package/kits/produto-3d/elementos/Camera.tsx +23 -0
- package/kits/produto-3d/elementos/Cena.tsx +55 -0
- package/kits/produto-3d/elementos/Fundo.tsx +45 -0
- package/kits/produto-3d/elementos/Montagem.tsx +53 -0
- package/kits/produto-3d/elementos/NumeroDestaque.tsx +35 -0
- package/kits/produto-3d/elementos/Produto3D.tsx +144 -0
- package/kits/produto-3d/elementos/RotuloChamada.tsx +43 -0
- package/kits/produto-3d/elementos/Som.tsx +39 -0
- package/kits/produto-3d/elementos/TituloMinimo.tsx +45 -0
- package/kits/produto-3d/elementos/VarreduraLuz.tsx +22 -0
- package/kits/produto-3d/elementos/base.ts +109 -0
- package/kits/produto-3d/elementos/index.ts +13 -0
- package/kits/produto-3d/elementos/modelos.ts +92 -0
- package/kits/produto-3d/elementos/raymarch.ts +295 -0
- package/kits/produto-3d/exemplos/plano.json +53 -0
- package/kits/produto-3d/exemplos/roteiro.md +15 -0
- package/kits/produto-3d/preview.tsx +9 -0
- package/kits/produto-3d/receita.json +16 -0
- package/kits/produto-3d/regras/area-segura.md +14 -0
- package/kits/produto-3d/regras/cor.md +20 -0
- package/kits/produto-3d/regras/movimento.md +19 -0
- package/kits/produto-3d/regras/ritmo.md +15 -0
- package/kits/produto-3d/regras/som.md +18 -0
- package/kits/produto-3d/regras/tipografia.md +13 -0
- package/kits/quadro-giz/SKILL.md +52 -0
- package/kits/quadro-giz/assets/ASSETS.md +18 -0
- package/kits/quadro-giz/assets/fontes/OFL-patrick-hand.txt +93 -0
- package/kits/quadro-giz/assets/fontes/OFL-schoolbell.txt +93 -0
- package/kits/quadro-giz/assets/fontes/patrick-hand.woff2 +0 -0
- package/kits/quadro-giz/assets/fontes/schoolbell.woff2 +0 -0
- package/kits/quadro-giz/assets/sons/assinatura.mp3 +0 -0
- package/kits/quadro-giz/assets/sons/clique.mp3 +0 -0
- package/kits/quadro-giz/assets/sons/impacto.mp3 +0 -0
- package/kits/quadro-giz/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/quadro-giz/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/quadro-giz/assets/sons/subida.mp3 +0 -0
- package/kits/quadro-giz/assets/sons/swoosh.mp3 +0 -0
- package/kits/quadro-giz/assets/sons/tick.mp3 +0 -0
- package/kits/quadro-giz/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/quadro-giz/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/quadro-giz/assets/trilha/trilha.mp3 +0 -0
- package/kits/quadro-giz/capa.jpg +0 -0
- package/kits/quadro-giz/elementos/ApagadorVarrendo.tsx +32 -0
- package/kits/quadro-giz/elementos/AssinaturaMarca.tsx +20 -0
- package/kits/quadro-giz/elementos/Camera.tsx +21 -0
- package/kits/quadro-giz/elementos/CartaoGiz.tsx +25 -0
- package/kits/quadro-giz/elementos/Cena.tsx +36 -0
- package/kits/quadro-giz/elementos/ContaNoQuadro.tsx +34 -0
- package/kits/quadro-giz/elementos/DesenhoGiz.tsx +29 -0
- package/kits/quadro-giz/elementos/Fundo.tsx +21 -0
- package/kits/quadro-giz/elementos/ListaGiz.tsx +21 -0
- package/kits/quadro-giz/elementos/Montagem.tsx +56 -0
- package/kits/quadro-giz/elementos/Overlay.tsx +12 -0
- package/kits/quadro-giz/elementos/Som.tsx +30 -0
- package/kits/quadro-giz/elementos/TituloGiz.tsx +29 -0
- package/kits/quadro-giz/elementos/base.ts +78 -0
- package/kits/quadro-giz/elementos/index.ts +17 -0
- package/kits/quadro-giz/elementos/traco.ts +9 -0
- package/kits/quadro-giz/exemplos/plano.json +237 -0
- package/kits/quadro-giz/exemplos/roteiro.md +20 -0
- package/kits/quadro-giz/preview.tsx +12 -0
- package/kits/quadro-giz/receita.json +193 -0
- package/kits/quadro-giz/regras/area-segura.md +15 -0
- package/kits/quadro-giz/regras/cor.md +17 -0
- package/kits/quadro-giz/regras/movimento.md +18 -0
- package/kits/quadro-giz/regras/ritmo.md +16 -0
- package/kits/quadro-giz/regras/som.md +18 -0
- package/kits/quadro-giz/regras/tipografia.md +19 -0
- package/kits/rabisco/SKILL.md +51 -0
- package/kits/rabisco/assets/ASSETS.md +18 -0
- package/kits/rabisco/assets/fontes/OFL-caveat-700.txt +93 -0
- package/kits/rabisco/assets/fontes/OFL-permanent-marker.txt +93 -0
- package/kits/rabisco/assets/fontes/caveat-700.woff2 +0 -0
- package/kits/rabisco/assets/fontes/permanent-marker.woff2 +0 -0
- package/kits/rabisco/assets/sons/assinatura.mp3 +0 -0
- package/kits/rabisco/assets/sons/clique.mp3 +0 -0
- package/kits/rabisco/assets/sons/impacto.mp3 +0 -0
- package/kits/rabisco/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/rabisco/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/rabisco/assets/sons/subida.mp3 +0 -0
- package/kits/rabisco/assets/sons/swoosh.mp3 +0 -0
- package/kits/rabisco/assets/sons/tick.mp3 +0 -0
- package/kits/rabisco/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/rabisco/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/rabisco/assets/trilha/trilha.mp3 +0 -0
- package/kits/rabisco/capa.jpg +0 -0
- package/kits/rabisco/elementos/AssinaturaMarca.tsx +21 -0
- package/kits/rabisco/elementos/Bonequinho.tsx +31 -0
- package/kits/rabisco/elementos/Camera.tsx +21 -0
- package/kits/rabisco/elementos/CartaoRabiscado.tsx +27 -0
- package/kits/rabisco/elementos/Cena.tsx +36 -0
- package/kits/rabisco/elementos/Fundo.tsx +17 -0
- package/kits/rabisco/elementos/ListaRabiscada.tsx +23 -0
- package/kits/rabisco/elementos/Montagem.tsx +55 -0
- package/kits/rabisco/elementos/Overlay.tsx +8 -0
- package/kits/rabisco/elementos/Som.tsx +30 -0
- package/kits/rabisco/elementos/TituloRabisco.tsx +28 -0
- package/kits/rabisco/elementos/TracoDesenhando.tsx +31 -0
- package/kits/rabisco/elementos/base.ts +76 -0
- package/kits/rabisco/elementos/index.ts +16 -0
- package/kits/rabisco/elementos/traco.ts +10 -0
- package/kits/rabisco/exemplos/plano.json +238 -0
- package/kits/rabisco/exemplos/roteiro.md +20 -0
- package/kits/rabisco/preview.tsx +12 -0
- package/kits/rabisco/receita.json +171 -0
- package/kits/rabisco/regras/area-segura.md +14 -0
- package/kits/rabisco/regras/cor.md +15 -0
- package/kits/rabisco/regras/movimento.md +18 -0
- package/kits/rabisco/regras/ritmo.md +15 -0
- package/kits/rabisco/regras/som.md +17 -0
- package/kits/rabisco/regras/tipografia.md +18 -0
- package/kits/retro-70/SKILL.md +53 -0
- package/kits/retro-70/assets/ASSETS.md +23 -0
- package/kits/retro-70/assets/fontes/OFL-Fredoka.txt +93 -0
- package/kits/retro-70/assets/fontes/OFL-Shrikhand.txt +93 -0
- package/kits/retro-70/assets/fontes/fredoka.woff2 +0 -0
- package/kits/retro-70/assets/fontes/shrikhand.woff2 +0 -0
- package/kits/retro-70/assets/sons/assinatura.mp3 +0 -0
- package/kits/retro-70/assets/sons/clique.mp3 +0 -0
- package/kits/retro-70/assets/sons/impacto.mp3 +0 -0
- package/kits/retro-70/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/retro-70/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/retro-70/assets/sons/subida.mp3 +0 -0
- package/kits/retro-70/assets/sons/swoosh.mp3 +0 -0
- package/kits/retro-70/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/retro-70/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/retro-70/assets/trilha/solar-104bpm.mp3 +0 -0
- package/kits/retro-70/capa.jpg +0 -0
- package/kits/retro-70/elementos/ArcoListras.tsx +25 -0
- package/kits/retro-70/elementos/AssinaturaMarca.tsx +21 -0
- package/kits/retro-70/elementos/Camera.tsx +22 -0
- package/kits/retro-70/elementos/CartaoData.tsx +24 -0
- package/kits/retro-70/elementos/Cena.tsx +41 -0
- package/kits/retro-70/elementos/FaixaOnda.tsx +27 -0
- package/kits/retro-70/elementos/Flor70.tsx +25 -0
- package/kits/retro-70/elementos/FotoArredondada.tsx +19 -0
- package/kits/retro-70/elementos/Fundo.tsx +11 -0
- package/kits/retro-70/elementos/Montagem.tsx +60 -0
- package/kits/retro-70/elementos/RaiosDeSol.tsx +27 -0
- package/kits/retro-70/elementos/Som.tsx +38 -0
- package/kits/retro-70/elementos/TituloGordo.tsx +28 -0
- package/kits/retro-70/elementos/base.ts +73 -0
- package/kits/retro-70/elementos/index.ts +17 -0
- package/kits/retro-70/exemplos/fotos/foto-02.jpg +0 -0
- package/kits/retro-70/exemplos/fotos/foto-03.jpg +0 -0
- package/kits/retro-70/exemplos/logo-girassol.svg +1 -0
- package/kits/retro-70/exemplos/plano.json +50 -0
- package/kits/retro-70/exemplos/roteiro.md +19 -0
- package/kits/retro-70/preview.tsx +17 -0
- package/kits/retro-70/receita.json +172 -0
- package/kits/retro-70/regras/area-segura.md +20 -0
- package/kits/retro-70/regras/cor.md +14 -0
- package/kits/retro-70/regras/movimento.md +16 -0
- package/kits/retro-70/regras/ritmo.md +15 -0
- package/kits/retro-70/regras/som.md +21 -0
- package/kits/retro-70/regras/tipografia.md +17 -0
- package/kits/revista/SKILL.md +52 -0
- package/kits/revista/assets/ASSETS.md +24 -0
- package/kits/revista/assets/fontes/OFL-CormorantGaramond.txt +93 -0
- package/kits/revista/assets/fontes/OFL-Jost.txt +93 -0
- package/kits/revista/assets/fontes/cormorant-italic.woff2 +0 -0
- package/kits/revista/assets/fontes/cormorant.woff2 +0 -0
- package/kits/revista/assets/fontes/jost.woff2 +0 -0
- package/kits/revista/assets/sons/assinatura.mp3 +0 -0
- package/kits/revista/assets/sons/clique.mp3 +0 -0
- package/kits/revista/assets/sons/impacto.mp3 +0 -0
- package/kits/revista/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/revista/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/revista/assets/sons/subida.mp3 +0 -0
- package/kits/revista/assets/sons/swoosh.mp3 +0 -0
- package/kits/revista/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/revista/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/revista/assets/trilha/editorial-100bpm.mp3 +0 -0
- package/kits/revista/capa.jpg +0 -0
- package/kits/revista/elementos/AssinaturaMarca.tsx +23 -0
- package/kits/revista/elementos/Camera.tsx +22 -0
- package/kits/revista/elementos/Cena.tsx +41 -0
- package/kits/revista/elementos/CitacaoGrande.tsx +27 -0
- package/kits/revista/elementos/ColagemFotos.tsx +22 -0
- package/kits/revista/elementos/Folio.tsx +19 -0
- package/kits/revista/elementos/FotoSangrando.tsx +24 -0
- package/kits/revista/elementos/Fundo.tsx +11 -0
- package/kits/revista/elementos/Montagem.tsx +59 -0
- package/kits/revista/elementos/PaginaDupla.tsx +36 -0
- package/kits/revista/elementos/Som.tsx +38 -0
- package/kits/revista/elementos/TituloEditorial.tsx +31 -0
- package/kits/revista/elementos/base.ts +76 -0
- package/kits/revista/elementos/index.ts +16 -0
- package/kits/revista/exemplos/fotos/foto-02.jpg +0 -0
- package/kits/revista/exemplos/fotos/foto-03.jpg +0 -0
- package/kits/revista/exemplos/fotos/foto-05.jpg +0 -0
- package/kits/revista/exemplos/fotos/foto-06.jpg +0 -0
- package/kits/revista/exemplos/fotos/foto-07.jpg +0 -0
- package/kits/revista/exemplos/fotos/foto-08.jpg +0 -0
- package/kits/revista/exemplos/logo-linho.svg +1 -0
- package/kits/revista/exemplos/plano.json +44 -0
- package/kits/revista/exemplos/roteiro.md +19 -0
- package/kits/revista/preview.tsx +21 -0
- package/kits/revista/receita.json +168 -0
- package/kits/revista/regras/area-segura.md +19 -0
- package/kits/revista/regras/cor.md +14 -0
- package/kits/revista/regras/movimento.md +15 -0
- package/kits/revista/regras/ritmo.md +15 -0
- package/kits/revista/regras/som.md +21 -0
- package/kits/revista/regras/tipografia.md +17 -0
- package/kits/risografia/SKILL.md +53 -0
- package/kits/risografia/assets/ASSETS.md +18 -0
- package/kits/risografia/assets/fontes/OFL-bricolage-800.txt +93 -0
- package/kits/risografia/assets/fontes/OFL-space-mono-700.txt +93 -0
- package/kits/risografia/assets/fontes/bricolage-800.woff2 +0 -0
- package/kits/risografia/assets/fontes/space-mono-700.woff2 +0 -0
- package/kits/risografia/assets/sons/assinatura.mp3 +0 -0
- package/kits/risografia/assets/sons/clique.mp3 +0 -0
- package/kits/risografia/assets/sons/impacto.mp3 +0 -0
- package/kits/risografia/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/risografia/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/risografia/assets/sons/subida.mp3 +0 -0
- package/kits/risografia/assets/sons/swoosh.mp3 +0 -0
- package/kits/risografia/assets/sons/tick.mp3 +0 -0
- package/kits/risografia/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/risografia/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/risografia/assets/trilha/trilha.mp3 +0 -0
- package/kits/risografia/capa.jpg +0 -0
- package/kits/risografia/elementos/AssinaturaMarca.tsx +21 -0
- package/kits/risografia/elementos/BolaReticula.tsx +26 -0
- package/kits/risografia/elementos/Camera.tsx +21 -0
- package/kits/risografia/elementos/Cena.tsx +36 -0
- package/kits/risografia/elementos/FormaRiso.tsx +24 -0
- package/kits/risografia/elementos/Fundo.tsx +12 -0
- package/kits/risografia/elementos/ListaRiso.tsx +22 -0
- package/kits/risografia/elementos/Montagem.tsx +56 -0
- package/kits/risografia/elementos/NumeroRiso.tsx +21 -0
- package/kits/risografia/elementos/Overlay.tsx +18 -0
- package/kits/risografia/elementos/Som.tsx +30 -0
- package/kits/risografia/elementos/TarjaCarimbo.tsx +20 -0
- package/kits/risografia/elementos/TituloRiso.tsx +26 -0
- package/kits/risografia/elementos/base.ts +73 -0
- package/kits/risografia/elementos/index.ts +17 -0
- package/kits/risografia/exemplos/plano.json +209 -0
- package/kits/risografia/exemplos/roteiro.md +20 -0
- package/kits/risografia/preview.tsx +12 -0
- package/kits/risografia/receita.json +169 -0
- package/kits/risografia/regras/area-segura.md +14 -0
- package/kits/risografia/regras/cor.md +12 -0
- package/kits/risografia/regras/movimento.md +18 -0
- package/kits/risografia/regras/ritmo.md +15 -0
- package/kits/risografia/regras/som.md +17 -0
- package/kits/risografia/regras/tipografia.md +18 -0
- package/kits/saas-linear/SKILL.md +60 -0
- package/kits/saas-linear/assets/ASSETS.md +19 -0
- package/kits/saas-linear/assets/fontes/OFL-Inter.txt +93 -0
- package/kits/saas-linear/assets/fontes/OFL-Newsreader.txt +93 -0
- package/kits/saas-linear/assets/fontes/inter-400.woff2 +0 -0
- package/kits/saas-linear/assets/fontes/inter-600.woff2 +0 -0
- package/kits/saas-linear/assets/fontes/newsreader-400.woff2 +0 -0
- package/kits/saas-linear/assets/sons/assinatura.mp3 +0 -0
- package/kits/saas-linear/assets/sons/clique.mp3 +0 -0
- package/kits/saas-linear/assets/sons/impacto.mp3 +0 -0
- package/kits/saas-linear/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/saas-linear/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/saas-linear/assets/sons/subida.mp3 +0 -0
- package/kits/saas-linear/assets/sons/swoosh.mp3 +0 -0
- package/kits/saas-linear/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/saas-linear/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/saas-linear/assets/trilha/trilha.mp3 +0 -0
- package/kits/saas-linear/capa.jpg +0 -0
- package/kits/saas-linear/elementos/Agenda.tsx +46 -0
- package/kits/saas-linear/elementos/CaixaPrompt.tsx +41 -0
- package/kits/saas-linear/elementos/Camera.tsx +38 -0
- package/kits/saas-linear/elementos/CartoesIntegracao.tsx +57 -0
- package/kits/saas-linear/elementos/Cena.tsx +38 -0
- package/kits/saas-linear/elementos/Cursor.tsx +40 -0
- package/kits/saas-linear/elementos/FraseSerifa.tsx +25 -0
- package/kits/saas-linear/elementos/Fundo.tsx +18 -0
- package/kits/saas-linear/elementos/Marca.tsx +20 -0
- package/kits/saas-linear/elementos/MarcaFinal.tsx +22 -0
- package/kits/saas-linear/elementos/Menu.tsx +46 -0
- package/kits/saas-linear/elementos/Monitor.tsx +28 -0
- package/kits/saas-linear/elementos/Montagem.tsx +67 -0
- package/kits/saas-linear/elementos/Saudacao.tsx +27 -0
- package/kits/saas-linear/elementos/Som.tsx +39 -0
- package/kits/saas-linear/elementos/base.ts +84 -0
- package/kits/saas-linear/elementos/index.ts +21 -0
- package/kits/saas-linear/exemplos/plano.json +459 -0
- package/kits/saas-linear/exemplos/roteiro.md +15 -0
- package/kits/saas-linear/preview.tsx +9 -0
- package/kits/saas-linear/receita.json +32 -0
- package/kits/saas-linear/regras/area-segura.md +17 -0
- package/kits/saas-linear/regras/cor.md +19 -0
- package/kits/saas-linear/regras/movimento.md +20 -0
- package/kits/saas-linear/regras/ritmo.md +14 -0
- package/kits/saas-linear/regras/som.md +16 -0
- package/kits/saas-linear/regras/tipografia.md +17 -0
- package/kits/stripe-ondas/SKILL.md +52 -0
- package/kits/stripe-ondas/assets/ASSETS.md +18 -0
- package/kits/stripe-ondas/assets/fontes/OFL-DM-Mono.txt +93 -0
- package/kits/stripe-ondas/assets/fontes/OFL-Inter.txt +93 -0
- package/kits/stripe-ondas/assets/fontes/dm-mono.woff2 +0 -0
- package/kits/stripe-ondas/assets/fontes/inter.woff2 +0 -0
- package/kits/stripe-ondas/assets/sons/assinatura.mp3 +0 -0
- package/kits/stripe-ondas/assets/sons/clique.mp3 +0 -0
- package/kits/stripe-ondas/assets/sons/impacto.mp3 +0 -0
- package/kits/stripe-ondas/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/stripe-ondas/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/stripe-ondas/assets/sons/subida.mp3 +0 -0
- package/kits/stripe-ondas/assets/sons/swoosh.mp3 +0 -0
- package/kits/stripe-ondas/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/stripe-ondas/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/stripe-ondas/assets/trilha/trilha.mp3 +0 -0
- package/kits/stripe-ondas/capa.jpg +0 -0
- package/kits/stripe-ondas/elementos/AssinaturaMarca.tsx +18 -0
- package/kits/stripe-ondas/elementos/Camera.tsx +23 -0
- package/kits/stripe-ondas/elementos/CartaoPagamento.tsx +35 -0
- package/kits/stripe-ondas/elementos/Cena.tsx +46 -0
- package/kits/stripe-ondas/elementos/FaixaDeOndas.tsx +49 -0
- package/kits/stripe-ondas/elementos/Fundo.tsx +11 -0
- package/kits/stripe-ondas/elementos/GraficoOnda.tsx +34 -0
- package/kits/stripe-ondas/elementos/Montagem.tsx +61 -0
- package/kits/stripe-ondas/elementos/PainelCodigo.tsx +36 -0
- package/kits/stripe-ondas/elementos/SelosDeMetodo.tsx +27 -0
- package/kits/stripe-ondas/elementos/Som.tsx +39 -0
- package/kits/stripe-ondas/elementos/TituloLimpo.tsx +27 -0
- package/kits/stripe-ondas/elementos/base.ts +85 -0
- package/kits/stripe-ondas/elementos/index.ts +16 -0
- package/kits/stripe-ondas/exemplos/logo-cais.svg +1 -0
- package/kits/stripe-ondas/exemplos/plano.json +366 -0
- package/kits/stripe-ondas/exemplos/roteiro.md +20 -0
- package/kits/stripe-ondas/preview.tsx +12 -0
- package/kits/stripe-ondas/receita.json +177 -0
- package/kits/stripe-ondas/regras/area-segura.md +16 -0
- package/kits/stripe-ondas/regras/cor.md +17 -0
- package/kits/stripe-ondas/regras/movimento.md +16 -0
- package/kits/stripe-ondas/regras/ritmo.md +14 -0
- package/kits/stripe-ondas/regras/som.md +18 -0
- package/kits/stripe-ondas/regras/tipografia.md +15 -0
- package/kits/suica/SKILL.md +56 -0
- package/kits/suica/assets/ASSETS.md +23 -0
- package/kits/suica/assets/fontes/OFL-IBMPlexMono.txt +93 -0
- package/kits/suica/assets/fontes/OFL-InterTight.txt +93 -0
- package/kits/suica/assets/fontes/inter-tight.woff2 +0 -0
- package/kits/suica/assets/fontes/plex-mono.woff2 +0 -0
- package/kits/suica/assets/sons/assinatura.mp3 +0 -0
- package/kits/suica/assets/sons/clique.mp3 +0 -0
- package/kits/suica/assets/sons/impacto.mp3 +0 -0
- package/kits/suica/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/suica/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/suica/assets/sons/subida.mp3 +0 -0
- package/kits/suica/assets/sons/swoosh.mp3 +0 -0
- package/kits/suica/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/suica/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/suica/assets/trilha/frio-120bpm.mp3 +0 -0
- package/kits/suica/capa.jpg +0 -0
- package/kits/suica/elementos/AssinaturaMarca.tsx +21 -0
- package/kits/suica/elementos/Camera.tsx +22 -0
- package/kits/suica/elementos/Cena.tsx +41 -0
- package/kits/suica/elementos/DiscoFoto.tsx +20 -0
- package/kits/suica/elementos/Fundo.tsx +16 -0
- package/kits/suica/elementos/GradeFotos.tsx +21 -0
- package/kits/suica/elementos/Indice.tsx +17 -0
- package/kits/suica/elementos/ListaIndice.tsx +25 -0
- package/kits/suica/elementos/Montagem.tsx +60 -0
- package/kits/suica/elementos/NumeroGigante.tsx +21 -0
- package/kits/suica/elementos/Regua.tsx +20 -0
- package/kits/suica/elementos/Som.tsx +38 -0
- package/kits/suica/elementos/TituloGrade.tsx +38 -0
- package/kits/suica/elementos/base.ts +76 -0
- package/kits/suica/elementos/index.ts +17 -0
- package/kits/suica/exemplos/fotos/foto-01.jpg +0 -0
- package/kits/suica/exemplos/fotos/foto-02.jpg +0 -0
- package/kits/suica/exemplos/fotos/foto-03.jpg +0 -0
- package/kits/suica/exemplos/fotos/foto-05.jpg +0 -0
- package/kits/suica/exemplos/fotos/foto-06.jpg +0 -0
- package/kits/suica/exemplos/fotos/foto-07.jpg +0 -0
- package/kits/suica/exemplos/logo-ponto.svg +1 -0
- package/kits/suica/exemplos/plano.json +268 -0
- package/kits/suica/exemplos/roteiro.md +19 -0
- package/kits/suica/preview.tsx +21 -0
- package/kits/suica/receita.json +197 -0
- package/kits/suica/regras/area-segura.md +18 -0
- package/kits/suica/regras/cor.md +13 -0
- package/kits/suica/regras/movimento.md +15 -0
- package/kits/suica/regras/ritmo.md +17 -0
- package/kits/suica/regras/som.md +21 -0
- package/kits/suica/regras/tipografia.md +16 -0
- package/kits/synthwave/SKILL.md +52 -0
- package/kits/synthwave/assets/ASSETS.md +22 -0
- package/kits/synthwave/assets/fontes/OFL-Orbitron.txt +93 -0
- package/kits/synthwave/assets/fontes/OFL-Rajdhani.txt +93 -0
- package/kits/synthwave/assets/fontes/orbitron.woff2 +0 -0
- package/kits/synthwave/assets/fontes/rajdhani.woff2 +0 -0
- package/kits/synthwave/assets/sons/assinatura.mp3 +0 -0
- package/kits/synthwave/assets/sons/clique.mp3 +0 -0
- package/kits/synthwave/assets/sons/impacto.mp3 +0 -0
- package/kits/synthwave/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/synthwave/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/synthwave/assets/sons/subida.mp3 +0 -0
- package/kits/synthwave/assets/sons/swoosh.mp3 +0 -0
- package/kits/synthwave/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/synthwave/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/synthwave/assets/trilha/noite-110bpm.mp3 +0 -0
- package/kits/synthwave/capa.jpg +0 -0
- package/kits/synthwave/elementos/AssinaturaMarca.tsx +26 -0
- package/kits/synthwave/elementos/Camera.tsx +22 -0
- package/kits/synthwave/elementos/Cena.tsx +41 -0
- package/kits/synthwave/elementos/Estrelas.tsx +27 -0
- package/kits/synthwave/elementos/Fundo.tsx +20 -0
- package/kits/synthwave/elementos/Montagem.tsx +59 -0
- package/kits/synthwave/elementos/Montanhas.tsx +27 -0
- package/kits/synthwave/elementos/Palmeiras.tsx +30 -0
- package/kits/synthwave/elementos/QuadroHUD.tsx +33 -0
- package/kits/synthwave/elementos/SolListrado.tsx +29 -0
- package/kits/synthwave/elementos/Som.tsx +38 -0
- package/kits/synthwave/elementos/TituloNeon.tsx +30 -0
- package/kits/synthwave/elementos/base.ts +75 -0
- package/kits/synthwave/elementos/index.ts +16 -0
- package/kits/synthwave/exemplos/logo-arcade.svg +1 -0
- package/kits/synthwave/exemplos/plano.json +50 -0
- package/kits/synthwave/exemplos/roteiro.md +19 -0
- package/kits/synthwave/preview.tsx +16 -0
- package/kits/synthwave/receita.json +170 -0
- package/kits/synthwave/regras/area-segura.md +19 -0
- package/kits/synthwave/regras/cor.md +16 -0
- package/kits/synthwave/regras/movimento.md +16 -0
- package/kits/synthwave/regras/ritmo.md +15 -0
- package/kits/synthwave/regras/som.md +21 -0
- package/kits/synthwave/regras/tipografia.md +16 -0
- package/kits/terminal/SKILL.md +57 -0
- package/kits/terminal/assets/ASSETS.md +20 -0
- package/kits/terminal/assets/fontes/OFL-jetbrains-mono-700.txt +93 -0
- package/kits/terminal/assets/fontes/OFL-vt323.txt +93 -0
- package/kits/terminal/assets/fontes/jetbrains-mono-700.woff2 +0 -0
- package/kits/terminal/assets/fontes/vt323.woff2 +0 -0
- package/kits/terminal/assets/sons/assinatura.mp3 +0 -0
- package/kits/terminal/assets/sons/clique.mp3 +0 -0
- package/kits/terminal/assets/sons/digitar.mp3 +0 -0
- package/kits/terminal/assets/sons/impacto.mp3 +0 -0
- package/kits/terminal/assets/sons/liga-crt.mp3 +0 -0
- package/kits/terminal/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/terminal/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/terminal/assets/sons/subida.mp3 +0 -0
- package/kits/terminal/assets/sons/swoosh.mp3 +0 -0
- package/kits/terminal/assets/sons/tick.mp3 +0 -0
- package/kits/terminal/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/terminal/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/terminal/assets/trilha/trilha.mp3 +0 -0
- package/kits/terminal/capa.jpg +0 -0
- package/kits/terminal/elementos/ArteAscii.tsx +61 -0
- package/kits/terminal/elementos/BarraProgresso.tsx +42 -0
- package/kits/terminal/elementos/BarraStatus.tsx +18 -0
- package/kits/terminal/elementos/BootBios.tsx +41 -0
- package/kits/terminal/elementos/Camera.tsx +23 -0
- package/kits/terminal/elementos/Cena.tsx +25 -0
- package/kits/terminal/elementos/Fundo.tsx +22 -0
- package/kits/terminal/elementos/LinhaComando.tsx +31 -0
- package/kits/terminal/elementos/Monitor.tsx +42 -0
- package/kits/terminal/elementos/Montagem.tsx +52 -0
- package/kits/terminal/elementos/PainelCaixa.tsx +35 -0
- package/kits/terminal/elementos/Som.tsx +32 -0
- package/kits/terminal/elementos/Tela.tsx +25 -0
- package/kits/terminal/elementos/TextoGrande.tsx +35 -0
- package/kits/terminal/elementos/base.ts +67 -0
- package/kits/terminal/elementos/index.ts +16 -0
- package/kits/terminal/exemplos/plano.json +330 -0
- package/kits/terminal/exemplos/roteiro.md +14 -0
- package/kits/terminal/preview.tsx +9 -0
- package/kits/terminal/receita.json +14 -0
- package/kits/terminal/regras/area-segura.md +18 -0
- package/kits/terminal/regras/cor.md +16 -0
- package/kits/terminal/regras/movimento.md +15 -0
- package/kits/terminal/regras/ritmo.md +14 -0
- package/kits/terminal/regras/som.md +17 -0
- package/kits/terminal/regras/tipografia.md +15 -0
- package/kits/tiktok-energia/SKILL.md +51 -0
- package/kits/tiktok-energia/assets/ASSETS.md +22 -0
- package/kits/tiktok-energia/assets/fontes/OFL-Anton.txt +92 -0
- package/kits/tiktok-energia/assets/fontes/OFL-Rubik.txt +92 -0
- package/kits/tiktok-energia/assets/fontes/anton-latin.woff2 +0 -0
- package/kits/tiktok-energia/assets/fontes/rubik-latin.woff2 +0 -0
- package/kits/tiktok-energia/assets/sons/assinatura.mp3 +0 -0
- package/kits/tiktok-energia/assets/sons/corte.mp3 +0 -0
- package/kits/tiktok-energia/assets/sons/palavra.mp3 +0 -0
- package/kits/tiktok-energia/assets/sons/pop.mp3 +0 -0
- package/kits/tiktok-energia/assets/sons/soco.mp3 +0 -0
- package/kits/tiktok-energia/assets/sons/subida.mp3 +0 -0
- package/kits/tiktok-energia/assets/sons/whoosh.mp3 +0 -0
- package/kits/tiktok-energia/assets/sons/zap.mp3 +0 -0
- package/kits/tiktok-energia/assets/trilha/tech-128bpm.mp3 +0 -0
- package/kits/tiktok-energia/capa.jpg +0 -0
- package/kits/tiktok-energia/elementos/AssinaturaMarca.tsx +25 -0
- package/kits/tiktok-energia/elementos/Camera.tsx +22 -0
- package/kits/tiktok-energia/elementos/Cena.tsx +48 -0
- package/kits/tiktok-energia/elementos/CorteDeCor.tsx +22 -0
- package/kits/tiktok-energia/elementos/EmojiSticker.tsx +21 -0
- package/kits/tiktok-energia/elementos/FotoSoco.tsx +27 -0
- package/kits/tiktok-energia/elementos/Fundo.tsx +8 -0
- package/kits/tiktok-energia/elementos/Montagem.tsx +67 -0
- package/kits/tiktok-energia/elementos/PalavraSoco.tsx +29 -0
- package/kits/tiktok-energia/elementos/Som.tsx +33 -0
- package/kits/tiktok-energia/elementos/TextoCaixa.tsx +25 -0
- package/kits/tiktok-energia/elementos/base.ts +92 -0
- package/kits/tiktok-energia/elementos/index.ts +15 -0
- package/kits/tiktok-energia/exemplos/fotos/foto-03.jpg +0 -0
- package/kits/tiktok-energia/exemplos/logo-pulo.svg +1 -0
- package/kits/tiktok-energia/exemplos/plano.json +66 -0
- package/kits/tiktok-energia/exemplos/roteiro.md +22 -0
- package/kits/tiktok-energia/preview.tsx +13 -0
- package/kits/tiktok-energia/receita.json +166 -0
- package/kits/tiktok-energia/regras/area-segura.md +19 -0
- package/kits/tiktok-energia/regras/cor.md +20 -0
- package/kits/tiktok-energia/regras/movimento.md +17 -0
- package/kits/tiktok-energia/regras/ritmo.md +15 -0
- package/kits/tiktok-energia/regras/som.md +20 -0
- package/kits/tiktok-energia/regras/tipografia.md +15 -0
- package/kits/tunel/SKILL.md +51 -0
- package/kits/tunel/assets/ASSETS.md +21 -0
- package/kits/tunel/assets/fontes/OFL-ChakraPetch.txt +92 -0
- package/kits/tunel/assets/fontes/OFL-Syncopate.txt +92 -0
- package/kits/tunel/assets/fontes/chakra-latin.woff2 +0 -0
- package/kits/tunel/assets/fontes/syncopate-latin.woff2 +0 -0
- package/kits/tunel/assets/sons/assinatura.mp3 +0 -0
- package/kits/tunel/assets/sons/clique.mp3 +0 -0
- package/kits/tunel/assets/sons/impacto.mp3 +0 -0
- package/kits/tunel/assets/sons/passa.mp3 +0 -0
- package/kits/tunel/assets/sons/subida.mp3 +0 -0
- package/kits/tunel/assets/sons/tick.mp3 +0 -0
- package/kits/tunel/assets/sons/varre.mp3 +0 -0
- package/kits/tunel/assets/sons/whoosh.mp3 +0 -0
- package/kits/tunel/assets/trilha/tech-128bpm.mp3 +0 -0
- package/kits/tunel/capa.jpg +0 -0
- package/kits/tunel/elementos/AssinaturaMarca.tsx +22 -0
- package/kits/tunel/elementos/Camera.tsx +22 -0
- package/kits/tunel/elementos/Cena.tsx +48 -0
- package/kits/tunel/elementos/Fundo.tsx +13 -0
- package/kits/tunel/elementos/LinhasDeVelocidade.tsx +25 -0
- package/kits/tunel/elementos/Montagem.tsx +67 -0
- package/kits/tunel/elementos/NumeroGigante.tsx +28 -0
- package/kits/tunel/elementos/PlacaVoadora.tsx +28 -0
- package/kits/tunel/elementos/Som.tsx +33 -0
- package/kits/tunel/elementos/TituloTunel.tsx +32 -0
- package/kits/tunel/elementos/TunelDeFormas.tsx +52 -0
- package/kits/tunel/elementos/base.ts +97 -0
- package/kits/tunel/elementos/index.ts +15 -0
- package/kits/tunel/exemplos/logo-rota21.svg +1 -0
- package/kits/tunel/exemplos/plano.json +51 -0
- package/kits/tunel/exemplos/roteiro.md +20 -0
- package/kits/tunel/preview.tsx +12 -0
- package/kits/tunel/receita.json +153 -0
- package/kits/tunel/regras/area-segura.md +18 -0
- package/kits/tunel/regras/cor.md +21 -0
- package/kits/tunel/regras/movimento.md +17 -0
- package/kits/tunel/regras/ritmo.md +14 -0
- package/kits/tunel/regras/som.md +20 -0
- package/kits/tunel/regras/tipografia.md +15 -0
- package/kits/tutorial-tela/SKILL.md +55 -0
- package/kits/tutorial-tela/assets/ASSETS.md +20 -0
- package/kits/tutorial-tela/assets/fontes/OFL-JetBrainsMono.txt +93 -0
- package/kits/tutorial-tela/assets/fontes/OFL-PlusJakartaSans.txt +93 -0
- package/kits/tutorial-tela/assets/fontes/jakarta.woff2 +0 -0
- package/kits/tutorial-tela/assets/fontes/jbmono.woff2 +0 -0
- package/kits/tutorial-tela/assets/sons/assinatura.mp3 +0 -0
- package/kits/tutorial-tela/assets/sons/clique.mp3 +0 -0
- package/kits/tutorial-tela/assets/sons/digitar.mp3 +0 -0
- package/kits/tutorial-tela/assets/sons/impacto.mp3 +0 -0
- package/kits/tutorial-tela/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/tutorial-tela/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/tutorial-tela/assets/sons/subida.mp3 +0 -0
- package/kits/tutorial-tela/assets/sons/sucesso.mp3 +0 -0
- package/kits/tutorial-tela/assets/sons/swoosh.mp3 +0 -0
- package/kits/tutorial-tela/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/tutorial-tela/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/tutorial-tela/assets/trilha/passo-108bpm.mp3 +0 -0
- package/kits/tutorial-tela/capa.jpg +0 -0
- package/kits/tutorial-tela/elementos/CameraTela.tsx +29 -0
- package/kits/tutorial-tela/elementos/Cursor.tsx +36 -0
- package/kits/tutorial-tela/elementos/DestaqueCaixa.tsx +17 -0
- package/kits/tutorial-tela/elementos/Fundo.tsx +12 -0
- package/kits/tutorial-tela/elementos/JanelaApp.tsx +81 -0
- package/kits/tutorial-tela/elementos/Montagem.tsx +49 -0
- package/kits/tutorial-tela/elementos/PassoChamada.tsx +22 -0
- package/kits/tutorial-tela/elementos/Som.tsx +41 -0
- package/kits/tutorial-tela/elementos/TeclaAtalho.tsx +29 -0
- package/kits/tutorial-tela/elementos/TituloTela.tsx +30 -0
- package/kits/tutorial-tela/elementos/base.ts +65 -0
- package/kits/tutorial-tela/elementos/index.ts +12 -0
- package/kits/tutorial-tela/exemplos/plano.json +41 -0
- package/kits/tutorial-tela/exemplos/roteiro.md +14 -0
- package/kits/tutorial-tela/preview.tsx +9 -0
- package/kits/tutorial-tela/receita.json +15 -0
- package/kits/tutorial-tela/regras/area-segura.md +13 -0
- package/kits/tutorial-tela/regras/cor.md +17 -0
- package/kits/tutorial-tela/regras/movimento.md +20 -0
- package/kits/tutorial-tela/regras/ritmo.md +24 -0
- package/kits/tutorial-tela/regras/som.md +21 -0
- package/kits/tutorial-tela/regras/tipografia.md +15 -0
- package/kits/ugc-reels/SKILL.md +53 -0
- package/kits/ugc-reels/assets/ASSETS.md +22 -0
- package/kits/ugc-reels/assets/fontes/OFL-Caveat.txt +92 -0
- package/kits/ugc-reels/assets/fontes/OFL-Montserrat.txt +92 -0
- package/kits/ugc-reels/assets/fontes/caveat-latin.woff2 +0 -0
- package/kits/ugc-reels/assets/fontes/montserrat-latin.woff2 +0 -0
- package/kits/ugc-reels/assets/sons/assinatura.mp3 +0 -0
- package/kits/ugc-reels/assets/sons/corte.mp3 +0 -0
- package/kits/ugc-reels/assets/sons/impacto.mp3 +0 -0
- package/kits/ugc-reels/assets/sons/notificacao.mp3 +0 -0
- package/kits/ugc-reels/assets/sons/palavra.mp3 +0 -0
- package/kits/ugc-reels/assets/sons/pop.mp3 +0 -0
- package/kits/ugc-reels/assets/sons/toque.mp3 +0 -0
- package/kits/ugc-reels/assets/sons/whoosh.mp3 +0 -0
- package/kits/ugc-reels/assets/trilha/pop-120bpm.mp3 +0 -0
- package/kits/ugc-reels/capa.jpg +0 -0
- package/kits/ugc-reels/elementos/AssinaturaMarca.tsx +28 -0
- package/kits/ugc-reels/elementos/BotaoLink.tsx +24 -0
- package/kits/ugc-reels/elementos/CabecalhoPerfil.tsx +38 -0
- package/kits/ugc-reels/elementos/Camera.tsx +22 -0
- package/kits/ugc-reels/elementos/Cena.tsx +48 -0
- package/kits/ugc-reels/elementos/Comentario.tsx +29 -0
- package/kits/ugc-reels/elementos/Fundo.tsx +8 -0
- package/kits/ugc-reels/elementos/LegendaEmoji.tsx +43 -0
- package/kits/ugc-reels/elementos/Montagem.tsx +69 -0
- package/kits/ugc-reels/elementos/NotaDeMao.tsx +29 -0
- package/kits/ugc-reels/elementos/Reacoes.tsx +26 -0
- package/kits/ugc-reels/elementos/Som.tsx +33 -0
- package/kits/ugc-reels/elementos/VideoCelular.tsx +37 -0
- package/kits/ugc-reels/elementos/base.ts +92 -0
- package/kits/ugc-reels/elementos/index.ts +17 -0
- package/kits/ugc-reels/exemplos/fotos/foto-02.jpg +0 -0
- package/kits/ugc-reels/exemplos/fotos/foto-03.jpg +0 -0
- package/kits/ugc-reels/exemplos/fotos/foto-04.jpg +0 -0
- package/kits/ugc-reels/exemplos/fotos/foto-06.jpg +0 -0
- package/kits/ugc-reels/exemplos/logo-rotina.svg +1 -0
- package/kits/ugc-reels/exemplos/plano.json +54 -0
- package/kits/ugc-reels/exemplos/roteiro.md +20 -0
- package/kits/ugc-reels/preview.tsx +16 -0
- package/kits/ugc-reels/receita.json +147 -0
- package/kits/ugc-reels/regras/area-segura.md +18 -0
- package/kits/ugc-reels/regras/cor.md +22 -0
- package/kits/ugc-reels/regras/movimento.md +19 -0
- package/kits/ugc-reels/regras/ritmo.md +14 -0
- package/kits/ugc-reels/regras/som.md +20 -0
- package/kits/ugc-reels/regras/tipografia.md +16 -0
- package/kits/vercel-mono/SKILL.md +51 -0
- package/kits/vercel-mono/assets/ASSETS.md +18 -0
- package/kits/vercel-mono/assets/fontes/OFL-Inter.txt +93 -0
- package/kits/vercel-mono/assets/fontes/OFL-JetBrains-Mono.txt +93 -0
- package/kits/vercel-mono/assets/fontes/inter.woff2 +0 -0
- package/kits/vercel-mono/assets/fontes/jetbrains-mono.woff2 +0 -0
- package/kits/vercel-mono/assets/sons/assinatura.mp3 +0 -0
- package/kits/vercel-mono/assets/sons/clique.mp3 +0 -0
- package/kits/vercel-mono/assets/sons/impacto.mp3 +0 -0
- package/kits/vercel-mono/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/vercel-mono/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/vercel-mono/assets/sons/subida.mp3 +0 -0
- package/kits/vercel-mono/assets/sons/swoosh.mp3 +0 -0
- package/kits/vercel-mono/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/vercel-mono/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/vercel-mono/assets/trilha/trilha.mp3 +0 -0
- package/kits/vercel-mono/capa.jpg +0 -0
- package/kits/vercel-mono/elementos/AssinaturaMarca.tsx +18 -0
- package/kits/vercel-mono/elementos/Camera.tsx +23 -0
- package/kits/vercel-mono/elementos/Cena.tsx +46 -0
- package/kits/vercel-mono/elementos/FaixaOutline.tsx +25 -0
- package/kits/vercel-mono/elementos/Fundo.tsx +6 -0
- package/kits/vercel-mono/elementos/GradeDeNumeros.tsx +27 -0
- package/kits/vercel-mono/elementos/Montagem.tsx +61 -0
- package/kits/vercel-mono/elementos/PalavraMono.tsx +31 -0
- package/kits/vercel-mono/elementos/Quadro.tsx +28 -0
- package/kits/vercel-mono/elementos/Som.tsx +39 -0
- package/kits/vercel-mono/elementos/TerminalComando.tsx +33 -0
- package/kits/vercel-mono/elementos/TrianguloGigante.tsx +27 -0
- package/kits/vercel-mono/elementos/base.ts +82 -0
- package/kits/vercel-mono/elementos/index.ts +16 -0
- package/kits/vercel-mono/exemplos/logo-vetor.svg +1 -0
- package/kits/vercel-mono/exemplos/plano.json +318 -0
- package/kits/vercel-mono/exemplos/roteiro.md +20 -0
- package/kits/vercel-mono/preview.tsx +12 -0
- package/kits/vercel-mono/receita.json +156 -0
- package/kits/vercel-mono/regras/area-segura.md +13 -0
- package/kits/vercel-mono/regras/cor.md +12 -0
- package/kits/vercel-mono/regras/movimento.md +15 -0
- package/kits/vercel-mono/regras/ritmo.md +13 -0
- package/kits/vercel-mono/regras/som.md +18 -0
- package/kits/vercel-mono/regras/tipografia.md +14 -0
- package/kits/vhs-90/SKILL.md +52 -0
- package/kits/vhs-90/assets/ASSETS.md +23 -0
- package/kits/vhs-90/assets/fontes/OFL-BebasNeue.txt +93 -0
- package/kits/vhs-90/assets/fontes/OFL-VT323.txt +93 -0
- package/kits/vhs-90/assets/fontes/bebas.woff2 +0 -0
- package/kits/vhs-90/assets/fontes/vt323.woff2 +0 -0
- package/kits/vhs-90/assets/sons/assinatura.mp3 +0 -0
- package/kits/vhs-90/assets/sons/clique.mp3 +0 -0
- package/kits/vhs-90/assets/sons/impacto.mp3 +0 -0
- package/kits/vhs-90/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/vhs-90/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/vhs-90/assets/sons/subida.mp3 +0 -0
- package/kits/vhs-90/assets/sons/swoosh.mp3 +0 -0
- package/kits/vhs-90/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/vhs-90/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/vhs-90/assets/trilha/fita-88bpm.mp3 +0 -0
- package/kits/vhs-90/capa.jpg +0 -0
- package/kits/vhs-90/elementos/AssinaturaMarca.tsx +29 -0
- package/kits/vhs-90/elementos/BarrasRastreio.tsx +21 -0
- package/kits/vhs-90/elementos/Camera.tsx +22 -0
- package/kits/vhs-90/elementos/CapaVHS.tsx +28 -0
- package/kits/vhs-90/elementos/CarimboData.tsx +19 -0
- package/kits/vhs-90/elementos/Cena.tsx +41 -0
- package/kits/vhs-90/elementos/Fundo.tsx +27 -0
- package/kits/vhs-90/elementos/MenuOSD.tsx +27 -0
- package/kits/vhs-90/elementos/Montagem.tsx +60 -0
- package/kits/vhs-90/elementos/Som.tsx +38 -0
- package/kits/vhs-90/elementos/TelaAzul.tsx +29 -0
- package/kits/vhs-90/elementos/TituloFita.tsx +40 -0
- package/kits/vhs-90/elementos/base.ts +75 -0
- package/kits/vhs-90/elementos/index.ts +16 -0
- package/kits/vhs-90/exemplos/fotos/foto-05.jpg +0 -0
- package/kits/vhs-90/exemplos/fotos/foto-07.jpg +0 -0
- package/kits/vhs-90/exemplos/logo-rewind.svg +1 -0
- package/kits/vhs-90/exemplos/plano.json +47 -0
- package/kits/vhs-90/exemplos/roteiro.md +19 -0
- package/kits/vhs-90/preview.tsx +17 -0
- package/kits/vhs-90/receita.json +189 -0
- package/kits/vhs-90/regras/area-segura.md +18 -0
- package/kits/vhs-90/regras/cor.md +16 -0
- package/kits/vhs-90/regras/movimento.md +16 -0
- package/kits/vhs-90/regras/ritmo.md +16 -0
- package/kits/vhs-90/regras/som.md +21 -0
- package/kits/vhs-90/regras/tipografia.md +17 -0
- package/kits/vidro-ios/SKILL.md +52 -0
- package/kits/vidro-ios/assets/ASSETS.md +18 -0
- package/kits/vidro-ios/assets/fontes/OFL-DM-Mono.txt +93 -0
- package/kits/vidro-ios/assets/fontes/OFL-Inter.txt +93 -0
- package/kits/vidro-ios/assets/fontes/dm-mono.woff2 +0 -0
- package/kits/vidro-ios/assets/fontes/inter.woff2 +0 -0
- package/kits/vidro-ios/assets/sons/assinatura.mp3 +0 -0
- package/kits/vidro-ios/assets/sons/clique.mp3 +0 -0
- package/kits/vidro-ios/assets/sons/impacto.mp3 +0 -0
- package/kits/vidro-ios/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/vidro-ios/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/vidro-ios/assets/sons/subida.mp3 +0 -0
- package/kits/vidro-ios/assets/sons/swoosh.mp3 +0 -0
- package/kits/vidro-ios/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/vidro-ios/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/vidro-ios/assets/trilha/trilha.mp3 +0 -0
- package/kits/vidro-ios/capa.jpg +0 -0
- package/kits/vidro-ios/elementos/AssinaturaMarca.tsx +21 -0
- package/kits/vidro-ios/elementos/Camera.tsx +23 -0
- package/kits/vidro-ios/elementos/Cena.tsx +46 -0
- package/kits/vidro-ios/elementos/Fundo.tsx +17 -0
- package/kits/vidro-ios/elementos/IlhaDinamica.tsx +24 -0
- package/kits/vidro-ios/elementos/Montagem.tsx +60 -0
- package/kits/vidro-ios/elementos/PainelControle.tsx +33 -0
- package/kits/vidro-ios/elementos/PilhaNotificacoes.tsx +29 -0
- package/kits/vidro-ios/elementos/Som.tsx +39 -0
- package/kits/vidro-ios/elementos/TituloVidro.tsx +22 -0
- package/kits/vidro-ios/elementos/WidgetsGrade.tsx +34 -0
- package/kits/vidro-ios/elementos/base.ts +87 -0
- package/kits/vidro-ios/elementos/index.ts +16 -0
- package/kits/vidro-ios/elementos/vidro.tsx +20 -0
- package/kits/vidro-ios/exemplos/logo-vento.svg +1 -0
- package/kits/vidro-ios/exemplos/plano.json +288 -0
- package/kits/vidro-ios/exemplos/roteiro.md +20 -0
- package/kits/vidro-ios/preview.tsx +12 -0
- package/kits/vidro-ios/receita.json +170 -0
- package/kits/vidro-ios/regras/area-segura.md +13 -0
- package/kits/vidro-ios/regras/cor.md +16 -0
- package/kits/vidro-ios/regras/movimento.md +16 -0
- package/kits/vidro-ios/regras/ritmo.md +14 -0
- package/kits/vidro-ios/regras/som.md +18 -0
- package/kits/vidro-ios/regras/tipografia.md +15 -0
- package/kits/y2k-cromado/SKILL.md +53 -0
- package/kits/y2k-cromado/assets/ASSETS.md +23 -0
- package/kits/y2k-cromado/assets/fontes/OFL-DMMono.txt +93 -0
- package/kits/y2k-cromado/assets/fontes/OFL-Unbounded.txt +93 -0
- package/kits/y2k-cromado/assets/fontes/dm-mono.woff2 +0 -0
- package/kits/y2k-cromado/assets/fontes/unbounded.woff2 +0 -0
- package/kits/y2k-cromado/assets/sons/assinatura.mp3 +0 -0
- package/kits/y2k-cromado/assets/sons/clique.mp3 +0 -0
- package/kits/y2k-cromado/assets/sons/impacto.mp3 +0 -0
- package/kits/y2k-cromado/assets/sons/pop-cartao.mp3 +0 -0
- package/kits/y2k-cromado/assets/sons/pop-palavra.mp3 +0 -0
- package/kits/y2k-cromado/assets/sons/subida.mp3 +0 -0
- package/kits/y2k-cromado/assets/sons/swoosh.mp3 +0 -0
- package/kits/y2k-cromado/assets/sons/whoosh-entra.mp3 +0 -0
- package/kits/y2k-cromado/assets/sons/whoosh-sai.mp3 +0 -0
- package/kits/y2k-cromado/assets/trilha/y2k-128bpm.mp3 +0 -0
- package/kits/y2k-cromado/capa.jpg +0 -0
- package/kits/y2k-cromado/elementos/AssinaturaMarca.tsx +25 -0
- package/kits/y2k-cromado/elementos/Bolhas.tsx +30 -0
- package/kits/y2k-cromado/elementos/Brilhos.tsx +28 -0
- package/kits/y2k-cromado/elementos/Camera.tsx +22 -0
- package/kits/y2k-cromado/elementos/CartaoGloss.tsx +26 -0
- package/kits/y2k-cromado/elementos/Cena.tsx +41 -0
- package/kits/y2k-cromado/elementos/FitaMarquee.tsx +20 -0
- package/kits/y2k-cromado/elementos/Fundo.tsx +18 -0
- package/kits/y2k-cromado/elementos/JanelaY2K.tsx +31 -0
- package/kits/y2k-cromado/elementos/Montagem.tsx +60 -0
- package/kits/y2k-cromado/elementos/OrbeCromo.tsx +20 -0
- package/kits/y2k-cromado/elementos/Som.tsx +38 -0
- package/kits/y2k-cromado/elementos/TextoCromo.tsx +34 -0
- package/kits/y2k-cromado/elementos/base.ts +75 -0
- package/kits/y2k-cromado/elementos/index.ts +17 -0
- package/kits/y2k-cromado/exemplos/fotos/foto-02.jpg +0 -0
- package/kits/y2k-cromado/exemplos/fotos/foto-03.jpg +0 -0
- package/kits/y2k-cromado/exemplos/logo-bolha.svg +1 -0
- package/kits/y2k-cromado/exemplos/plano.json +47 -0
- package/kits/y2k-cromado/exemplos/roteiro.md +19 -0
- package/kits/y2k-cromado/preview.tsx +17 -0
- package/kits/y2k-cromado/receita.json +174 -0
- package/kits/y2k-cromado/regras/area-segura.md +19 -0
- package/kits/y2k-cromado/regras/cor.md +16 -0
- package/kits/y2k-cromado/regras/movimento.md +16 -0
- package/kits/y2k-cromado/regras/ritmo.md +15 -0
- package/kits/y2k-cromado/regras/som.md +21 -0
- package/kits/y2k-cromado/regras/tipografia.md +17 -0
- package/lib/act.js +387 -18
- package/lib/afirmacoes.js +56 -0
- package/lib/agendar.js +124 -0
- package/lib/backup-banco.js +121 -0
- package/lib/boas-vindas.js +4 -3
- package/lib/catalogo.js +8 -2
- package/lib/chave-exposta.js +61 -0
- package/lib/checkpoint-git.js +7 -4
- package/lib/checkpoint.js +120 -3
- package/lib/comandos-extra.js +69 -2
- package/lib/comecar.js +56 -0
- package/lib/como-rodar.js +66 -0
- package/lib/conferir.js +117 -0
- package/lib/config.js +4 -2
- package/lib/editor-pro.js +162 -21
- package/lib/encolheu.js +33 -0
- package/lib/entrada.js +1 -1
- package/lib/entregaveis.js +67 -0
- package/lib/escopo.js +68 -0
- package/lib/especialistas.js +1 -1
- package/lib/estudio/conferencia.js +71 -6
- package/lib/estudio/gosto/tela.html +119 -4
- package/lib/estudio/gosto-descrever.js +87 -0
- package/lib/estudio/gosto-medir.js +204 -0
- package/lib/estudio/gosto-prova.js +52 -0
- package/lib/estudio/gosto.js +312 -9
- package/lib/estudio/index.js +2 -2
- package/lib/estudio/kits/tela.html +568 -0
- package/lib/estudio/kits-tela.js +199 -0
- package/lib/estudio/maquina-diretor.js +6 -2
- package/lib/estudio/regras-motion.js +69 -0
- package/lib/explicar.js +48 -0
- package/lib/exportar-conversa.js +49 -0
- package/lib/fundo.js +199 -0
- package/lib/guardar.js +118 -0
- package/lib/headless.js +20 -1
- package/lib/idioma.js +74 -0
- package/lib/kits-parecidos.js +99 -0
- package/lib/kits-plano.js +557 -0
- package/lib/kits.js +1045 -0
- package/lib/limite.js +99 -0
- package/lib/linha-do-tempo.js +130 -0
- package/lib/local/cerebro.json +118 -2
- package/lib/local/entrada.js +1 -1
- package/lib/mapa.js +94 -0
- package/lib/memoria-usuario.js +1 -1
- package/lib/mencoes.js +10 -0
- package/lib/mostrar.js +121 -0
- package/lib/motioncraft.js +67 -0
- package/lib/mudou.js +58 -0
- package/lib/nomes.js +251 -0
- package/lib/partes.js +39 -0
- package/lib/passagem.js +30 -1
- package/lib/perigo.js +74 -6
- package/lib/plano-previo.js +53 -0
- package/lib/planos.js +1 -1
- package/lib/porta.js +147 -0
- package/lib/publicar.js +112 -0
- package/lib/registro.js +38 -4
- package/lib/regras.js +88 -0
- package/lib/saida.js +83 -0
- package/lib/segredos.js +103 -0
- package/lib/team.js +317 -0
- package/lib/tools.js +84 -21
- package/lib/trava.js +155 -0
- package/lib/ui.js +42 -5
- package/lib/video/conferir-legenda.js +47 -0
- package/lib/video/ops.js +6 -1
- package/lib/video/transcript.js +1 -1
- package/lib/web-pagina.js +87 -0
- package/package.json +4 -1
- package/skills/motion-de-primeira/SKILL.md +1 -1
- package/skills/motion-motioncraft/SKILL.md +31 -0
- package/vendor/motioncraft/CREDITS.md +18 -0
- package/vendor/motioncraft/LICENSE +21 -0
- package/vendor/motioncraft/ORIGEM.txt +1 -0
- package/vendor/motioncraft/SKILL.md +178 -0
- package/vendor/motioncraft/assets/template/package-lock.json +2958 -0
- package/vendor/motioncraft/assets/template/package.json +27 -0
- package/vendor/motioncraft/assets/template/remotion.config.ts +4 -0
- package/vendor/motioncraft/assets/template/src/Root.tsx +27 -0
- package/vendor/motioncraft/assets/template/src/components/CachedFrames.tsx +11 -0
- package/vendor/motioncraft/assets/template/src/components/EndCard.tsx +17 -0
- package/vendor/motioncraft/assets/template/src/components/Headline.tsx +45 -0
- package/vendor/motioncraft/assets/template/src/components/MorphTransition.tsx +28 -0
- package/vendor/motioncraft/assets/template/src/components/Stage.tsx +52 -0
- package/vendor/motioncraft/assets/template/src/components/Three.tsx +134 -0
- package/vendor/motioncraft/assets/template/src/components/UI.tsx +103 -0
- package/vendor/motioncraft/assets/template/src/components/Word.tsx +46 -0
- package/vendor/motioncraft/assets/template/src/index.ts +3 -0
- package/vendor/motioncraft/assets/template/src/lib/anim.ts +17 -0
- package/vendor/motioncraft/assets/template/src/lib/beat.ts +23 -0
- package/vendor/motioncraft/assets/template/src/lib/debug.tsx +12 -0
- package/vendor/motioncraft/assets/template/src/lib/fonts.ts +6 -0
- package/vendor/motioncraft/assets/template/src/lib/format-context.tsx +5 -0
- package/vendor/motioncraft/assets/template/src/lib/format.d.mts +2 -0
- package/vendor/motioncraft/assets/template/src/lib/format.mjs +28 -0
- package/vendor/motioncraft/assets/template/src/lib/timeline.ts +29 -0
- package/vendor/motioncraft/assets/template/src/lib/tokens.ts +9 -0
- package/vendor/motioncraft/assets/template/src/scenes/Example.tsx +76 -0
- package/vendor/motioncraft/assets/template/src/scenes/Launch.tsx +26 -0
- package/vendor/motioncraft/assets/template/src/scenes/TimelineLegacy.tsx +24 -0
- package/vendor/motioncraft/assets/template/src/scenes/TimelineVideo.tsx +49 -0
- package/vendor/motioncraft/assets/template/src/scenes/Tutorial.tsx +37 -0
- package/vendor/motioncraft/assets/template/src/style.json +62 -0
- package/vendor/motioncraft/assets/template/tsconfig.json +7 -0
- package/vendor/motioncraft/references/animation-system.md +57 -0
- package/vendor/motioncraft/references/assets-and-licensing.md +21 -0
- package/vendor/motioncraft/references/customization.md +52 -0
- package/vendor/motioncraft/references/gpu-cloud-render.md +15 -0
- package/vendor/motioncraft/references/music.md +43 -0
- package/vendor/motioncraft/references/phase1-planning-and-preview.md +74 -0
- package/vendor/motioncraft/references/phase2-timeline-audio.md +33 -0
- package/vendor/motioncraft/references/phase3-pixel-review.md +13 -0
- package/vendor/motioncraft/references/phase4-templates.md +30 -0
- package/vendor/motioncraft/references/preflight.md +27 -0
- package/vendor/motioncraft/references/qa.md +53 -0
- package/vendor/motioncraft/references/reference-analysis.md +37 -0
- package/vendor/motioncraft/references/research-and-topic.md +25 -0
- package/vendor/motioncraft/references/script-and-structure.md +39 -0
- package/vendor/motioncraft/references/sfx.md +40 -0
- package/vendor/motioncraft/references/social-formats.md +18 -0
- package/vendor/motioncraft/references/taste.md +36 -0
- package/vendor/motioncraft/references/troubleshooting.md +19 -0
- package/vendor/motioncraft/references/typography.md +34 -0
- package/vendor/motioncraft/references/voiceover.md +37 -0
- package/vendor/motioncraft/references/workflow.md +40 -0
- package/vendor/motioncraft/scripts/assets/timeline-editor.js +24 -0
- package/vendor/motioncraft/scripts/doctor.ps1 +13 -0
- package/vendor/motioncraft/scripts/doctor.sh +23 -0
- package/vendor/motioncraft/scripts/lib/audio.mjs +58 -0
- package/vendor/motioncraft/scripts/lib/check-update.mjs +66 -0
- package/vendor/motioncraft/scripts/lib/commands.mjs +147 -0
- package/vendor/motioncraft/scripts/lib/doctor.mjs +67 -0
- package/vendor/motioncraft/scripts/lib/dsp.mjs +178 -0
- package/vendor/motioncraft/scripts/lib/music.mjs +162 -0
- package/vendor/motioncraft/scripts/lib/phase1.mjs +90 -0
- package/vendor/motioncraft/scripts/lib/phase2.mjs +89 -0
- package/vendor/motioncraft/scripts/lib/qa-full.mjs +24 -0
- package/vendor/motioncraft/scripts/lib/qa-pixels.mjs +47 -0
- package/vendor/motioncraft/scripts/lib/qa.mjs +66 -0
- package/vendor/motioncraft/scripts/lib/qa_full.py +45 -0
- package/vendor/motioncraft/scripts/lib/qa_pixels.py +50 -0
- package/vendor/motioncraft/scripts/lib/render-worker.mjs +37 -0
- package/vendor/motioncraft/scripts/lib/render.mjs +31 -0
- package/vendor/motioncraft/scripts/lib/retime-audio.mjs +49 -0
- package/vendor/motioncraft/scripts/lib/sfx.mjs +68 -0
- package/vendor/motioncraft/scripts/lib/style.mjs +44 -0
- package/vendor/motioncraft/scripts/lib/templates.mjs +34 -0
- package/vendor/motioncraft/scripts/lib/timeline-editor.mjs +74 -0
- package/vendor/motioncraft/scripts/lib/util.mjs +45 -0
- package/vendor/motioncraft/scripts/lib/voices.mjs +85 -0
- package/vendor/motioncraft/scripts/motioncraft.mjs +79 -0
- package/vendor/motioncraft/scripts/py/whisper_words.py +13 -0
- package/vendor/motioncraft/styles/mono-editorial/style.md +13 -0
- package/vendor/motioncraft/styles/mono-editorial/tokens.json +256 -0
- package/vendor/motioncraft/styles/pi-v2/style.md +15 -0
- package/vendor/motioncraft/styles/pi-v2/tokens.json +62 -0
- package/vendor/motioncraft/styles/pi-v2-dark/style.md +13 -0
- package/vendor/motioncraft/styles/pi-v2-dark/tokens.json +256 -0
- package/vendor/motioncraft/styles/tech-neon-soft/style.md +13 -0
- package/vendor/motioncraft/styles/tech-neon-soft/tokens.json +256 -0
- package/vendor/motioncraft/styles/warm-paper/style.md +13 -0
- package/vendor/motioncraft/styles/warm-paper/tokens.json +256 -0
- package/vendor/motioncraft/tests/beat.test.mjs +13 -0
- package/vendor/motioncraft/tests/camera3d.test.mjs +22 -0
- package/vendor/motioncraft/tests/check-update.test.mjs +19 -0
- package/vendor/motioncraft/tests/format.test.mjs +23 -0
- package/vendor/motioncraft/tests/kinetic.test.mjs +10 -0
- package/vendor/motioncraft/tests/morph.test.mjs +13 -0
- package/vendor/motioncraft/tests/phase1.test.mjs +27 -0
- package/vendor/motioncraft/tests/phase2.test.mjs +57 -0
- package/vendor/motioncraft/tests/phase3.test.mjs +25 -0
- package/vendor/motioncraft/tests/phase4.test.mjs +21 -0
- package/vendor/motioncraft/tests/qa-frame-rate.test.mjs +15 -0
- package/vendor/motioncraft/tests/qa-full.test.mjs +10 -0
- package/vendor/motioncraft/tests/render-worker.test.mjs +7 -0
- package/vendor/motioncraft/tests/retime-audio.test.mjs +23 -0
- package/vendor/motioncraft/tests/timeline-editor.test.mjs +45 -0
- package/voz/primo_voz/transcrever.py +34 -4
- /package/comandos/{explicar.md → explain.md} +0 -0
- /package/comandos/{revisar.md → review.md} +0 -0
- /package/comandos/{publicar.md → ship.md} +0 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "motioncraft-video",
|
|
3
|
+
"private": true,
|
|
4
|
+
"type": "module",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"studio": "remotion studio src/index.ts",
|
|
7
|
+
"still": "remotion still src/index.ts Main out/still.png",
|
|
8
|
+
"render": "remotion render src/index.ts Main out/raw.mp4 --crf=16 --gl=angle",
|
|
9
|
+
"render:server": "remotion render src/index.ts Main out/raw.mp4 --crf=16 --gl=swangle"
|
|
10
|
+
},
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@react-three/fiber": "^8.18.0",
|
|
13
|
+
"@remotion/cli": "^4.0.0",
|
|
14
|
+
"@remotion/google-fonts": "^4.0.0",
|
|
15
|
+
"@remotion/layout-utils": "^4.0.0",
|
|
16
|
+
"@remotion/three": "^4.0.0",
|
|
17
|
+
"react": "^18.3.1",
|
|
18
|
+
"react-dom": "^18.3.1",
|
|
19
|
+
"remotion": "^4.0.0",
|
|
20
|
+
"three": "^0.160.1"
|
|
21
|
+
},
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/react": "^18.3.0",
|
|
24
|
+
"@types/three": "^0.160.0",
|
|
25
|
+
"typescript": "^5.6.0"
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {Composition} from 'remotion';
|
|
3
|
+
import {Main, MainProps} from './scenes/Example';
|
|
4
|
+
import {FPS} from './lib/tokens';
|
|
5
|
+
import {Launch, LaunchProps} from './scenes/Launch';
|
|
6
|
+
import {Tutorial, TutorialProps} from './scenes/Tutorial';
|
|
7
|
+
import {geometry} from './lib/format.mjs';
|
|
8
|
+
import {TimelineLegacy} from './scenes/TimelineLegacy';
|
|
9
|
+
import {TimelineVideo,timelineDefaults,TimelineProps} from './scenes/TimelineVideo';
|
|
10
|
+
|
|
11
|
+
// Each composition accepts format/platform props; metadata sets real dimensions, not a crop.
|
|
12
|
+
const meta = ({props}: {props: {format?: string; platform?: string; duration?: number;timeline?:{duration:number}}}) => {
|
|
13
|
+
const g = geometry(props.format, props.platform);
|
|
14
|
+
return {width:g.width,height:g.height,...(props.timeline?.duration || props.duration ? {durationInFrames:Math.round((props.timeline?.duration||props.duration||0)*FPS)} : {})};
|
|
15
|
+
};
|
|
16
|
+
const main = {handle:'@yourhandle',format:'16:9',platform:'wide',audio:undefined,mcDebug:false} satisfies MainProps;
|
|
17
|
+
const launch = {handle:'@yourhandle',product:'Your product',problem:'A real problem',feature1:'Verified feature one',feature2:'Verified feature two',cta:'Your CTA',format:'16:9',platform:'wide',mcDebug:false} satisfies LaunchProps;
|
|
18
|
+
const timelineMeta = ({props}:{props:TimelineProps}) => {const g=geometry(props.format,props.platform);return {width:g.width,height:g.height,durationInFrames:Math.round((props.timeline?.duration||30)*FPS)}};
|
|
19
|
+
const tutorial = {handle:'@yourhandle',title:'A clear tutorial',steps:[{title:'Open',caption:'Show the first step',from:0,to:20,x:.5,y:.3},{title:'Choose',caption:'Point at the right control',from:20,to:40,x:.7,y:.5},{title:'Finish',caption:'Show the result',from:40,to:60,x:.5,y:.7}],format:'9:16',platform:'tiktok',mcDebug:false} satisfies TutorialProps;
|
|
20
|
+
export const Root: React.FC = () => <>
|
|
21
|
+
<Composition id="TimelineLaunch" component={(p:TimelineProps)=><TimelineVideo {...p} kind="launch"/>} durationInFrames={FPS*45} fps={FPS} width={1920} height={1080} defaultProps={{...launch,timeline:timelineDefaults.launch}} calculateMetadata={timelineMeta}/>
|
|
22
|
+
<Composition id="TimelineTutorial" component={(p:TimelineProps)=><TimelineVideo {...p} kind="tutorial"/>} durationInFrames={FPS*30} fps={FPS} width={1080} height={1920} defaultProps={{...tutorial,timeline:timelineDefaults.tutorial}} calculateMetadata={timelineMeta}/>
|
|
23
|
+
<Composition id="Main" component={(p:MainProps)=><TimelineLegacy {...p} kind="main"/>} durationInFrames={FPS*20} fps={FPS} width={1920} height={1080} defaultProps={main} calculateMetadata={meta}/>
|
|
24
|
+
<Composition id="MainVertical" component={(p:MainProps)=><TimelineLegacy {...p} kind="main"/>} durationInFrames={FPS*20} fps={FPS} width={1080} height={1920} defaultProps={{...main,format:'9:16',platform:'tiktok'}} calculateMetadata={meta}/>
|
|
25
|
+
<Composition id="ProductLaunch" component={(p:LaunchProps)=><TimelineLegacy {...p} kind="launch"/>} durationInFrames={FPS*45} fps={FPS} width={1920} height={1080} defaultProps={launch} calculateMetadata={meta}/>
|
|
26
|
+
<Composition id="ScreenTutorial" component={(p:TutorialProps)=><TimelineLegacy {...p} kind="tutorial"/>} durationInFrames={FPS*60} fps={FPS} width={1080} height={1920} defaultProps={tutorial} calculateMetadata={meta}/>
|
|
27
|
+
</>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {Img, staticFile, useCurrentFrame} from 'remotion';
|
|
3
|
+
|
|
4
|
+
// Place in the SAME bounds as the isolated 3D composition. No WebGL runs after caching.
|
|
5
|
+
// Cache must cover the original absolute frame range; the image sequence is 0-based within it.
|
|
6
|
+
export const CachedFrames: React.FC<{dir: string; start: number; count: number; width?: number; height?: number}> = ({dir,start,count,width,height}) => {
|
|
7
|
+
const f=useCurrentFrame();
|
|
8
|
+
if(f<start || f>=start+count) return null;
|
|
9
|
+
const n=String(f-start).padStart(6,'0');
|
|
10
|
+
return <Img src={staticFile(`${dir}/${n}.png`)} style={{width:width||'100%',height:height||'100%',objectFit:'contain'}} />;
|
|
11
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {useCurrentFrame} from 'remotion';
|
|
3
|
+
import {C, FONT} from '../lib/tokens';
|
|
4
|
+
import {ramp, spr} from '../lib/anim';
|
|
5
|
+
import {Mascot} from './Three';
|
|
6
|
+
import {Center} from './Stage';
|
|
7
|
+
import {McBox} from '../lib/debug';
|
|
8
|
+
import {useFormat} from '../lib/format-context';
|
|
9
|
+
|
|
10
|
+
export const EndCard: React.FC<{at: number; handle: string; line?: string}> = ({at, handle, line}) => {
|
|
11
|
+
const {format}=useFormat();const f = useCurrentFrame(); const s = spr(f, at + 8, {damping: 12, stiffness: 150, mass: 0.6}); const p = ramp(f, at + 18, 12);
|
|
12
|
+
return <Center gap={18}>
|
|
13
|
+
<Mascot at={at} size={format==='9:16'?300:220} happy />
|
|
14
|
+
<McBox kind="text" style={{padding: '12px 30px', borderRadius: 999, background: C.card, boxShadow: '0 10px 30px rgba(20,40,80,0.10)', fontFamily: FONT, fontWeight: 700, fontSize: format==='9:16'?40:31, color: C.accent, transform: `scale(${0.8 + 0.2 * s})`, opacity: Math.min(1, s * 2)}}>{handle}</McBox>
|
|
15
|
+
{line && <McBox kind="text" style={{fontFamily: FONT, fontWeight: 500, fontSize: 28, color: C.muted, opacity: p}}>{line}</McBox>}
|
|
16
|
+
</Center>;
|
|
17
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React, {useMemo} from 'react';
|
|
2
|
+
import {measureText} from '@remotion/layout-utils';
|
|
3
|
+
import {S, FONT} from '../lib/tokens';
|
|
4
|
+
import {useFormat} from '../lib/format-context';
|
|
5
|
+
import {geometry} from '../lib/format.mjs';
|
|
6
|
+
import {Word, InlineIcon, CharReveal} from './Word';
|
|
7
|
+
import {McBox} from '../lib/debug';
|
|
8
|
+
|
|
9
|
+
export type Item = {t?: string; icon?: string; at: number; accent?: boolean};
|
|
10
|
+
type Level = 'h0' | 'h1' | 'h2' | 'caption';
|
|
11
|
+
// Split "Kuncinya bukan *prompt*" into items. *word* marks the accent. Words get `step` frames of stagger.
|
|
12
|
+
export const words = (text: string, at: number, step = S.motion.word.stagger[0]): Item[] =>
|
|
13
|
+
text.split(/\s+/).filter(Boolean).map((raw, i) => ({t: raw.replace(/\*/g, ''), accent: /^\*.*\*$/.test(raw), at: Math.round(at + i * step)}));
|
|
14
|
+
|
|
15
|
+
// Line breaking by real measured width, max 2 lines, no orphan on line 2.
|
|
16
|
+
const layout = (items: Item[], size: number, weight: number, maxW: number) => {
|
|
17
|
+
const wOf = (it: Item) => it.icon ? size * S.motion.icon.slotWidth : measureText({text: (it.t ?? '') + ' ', fontFamily: FONT, fontSize: size, fontWeight: String(weight), letterSpacing: `${size * S.font.tracking}px`}).width;
|
|
18
|
+
const widths = items.map(wOf); const total = widths.reduce((a, b) => a + b, 0);
|
|
19
|
+
if (total <= maxW) return {lines: [items], overflow: false};
|
|
20
|
+
// best split = most balanced two lines that both fit
|
|
21
|
+
let best = -1, bestDiff = Infinity;
|
|
22
|
+
for (let k = 1; k < items.length; k++) {
|
|
23
|
+
const a = widths.slice(0, k).reduce((x, y) => x + y, 0), b = total - a;
|
|
24
|
+
if (a <= maxW && b <= maxW && items.length - k >= 2 && k >= 2 && Math.abs(a - b) < bestDiff) { best = k; bestDiff = Math.abs(a - b); }
|
|
25
|
+
}
|
|
26
|
+
if (best < 0) return {lines: [items.slice(0, Math.ceil(items.length / 2)), items.slice(Math.ceil(items.length / 2))], overflow: true};
|
|
27
|
+
return {lines: [items.slice(0, best), items.slice(best)], overflow: false};
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export const Headline: React.FC<{items: Item[]; level?: Level; size?: number; out?: number; maxWidth?: number; align?: 'center' | 'left'; style?: React.CSSProperties; allowOverlap?: boolean; reveal?: 'word'|'character'}> =
|
|
31
|
+
({items, level = 'h1', size, out, maxWidth, align = 'center', style, allowOverlap, reveal = 'word'}) => {
|
|
32
|
+
const {format,platform}=useFormat(); const g=geometry(format,platform); const maxW=Math.min(maxWidth ?? g.safe.width,g.safe.width);
|
|
33
|
+
const range=S.font.size[level]; const fs=(size ?? range[1]) * (g.width<1400 ? .78 : 1); const weight = S.font.weights[level];
|
|
34
|
+
const lh = S.font.lineHeight[level];
|
|
35
|
+
const {lines, overflow} = useMemo(() => layout(items, fs, weight, maxW), [items, fs, weight, maxW]);
|
|
36
|
+
if (overflow) console.warn(`[motioncraft] headline too long for 2 lines at ${fs}px: shorten the text`);
|
|
37
|
+
let idx = 0;
|
|
38
|
+
return <McBox kind="text" allowOverlap={allowOverlap} style={{display: 'flex', flexDirection: 'column', alignItems: align === 'center' ? 'center' : 'flex-start', maxWidth:maxW, ...style}}>
|
|
39
|
+
{lines.map((line, li) => <div key={li} style={{display: 'flex', alignItems: 'center', height: fs * lh, justifyContent: align === 'center' ? 'center' : 'flex-start'}}>
|
|
40
|
+
{line.map((it, k) => { const i = idx++; const o = out !== undefined ? out + i * S.motion.wordOut.stagger : undefined;
|
|
41
|
+
const space = k > 0 && !line[k - 1].icon && !it.icon ? ' ' : '';
|
|
42
|
+
return it.icon ? <InlineIcon key={k} src={it.icon} at={it.at} size={fs * 1.05} out={o} /> : reveal === 'character' ? <CharReveal key={k} text={space + it.t} at={it.at} size={fs} accent={it.accent} out={o} weight={weight} /> : <Word key={k} t={space + it.t} at={it.at} size={fs} accent={it.accent} out={o} weight={weight} />; })}
|
|
43
|
+
</div>)}
|
|
44
|
+
</McBox>;
|
|
45
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {interpolate, useCurrentFrame, useVideoConfig} from 'remotion';
|
|
3
|
+
import {C, S} from '../lib/tokens';
|
|
4
|
+
import {cl, easeInOut} from '../lib/anim';
|
|
5
|
+
import {useDebug} from '../lib/debug';
|
|
6
|
+
|
|
7
|
+
// Corresponding vertices describe one continuous shape, not a dissolve between
|
|
8
|
+
// two pictures. The source/target are normalized center, size, points and color.
|
|
9
|
+
export type MorphShape = {x:number;y:number;size:number;points:[number,number][];color?:string};
|
|
10
|
+
export const morphShapeAt=(a:MorphShape,b:MorphShape,t:number):MorphShape=>{
|
|
11
|
+
if(a.points.length!==b.points.length||a.points.length<3)throw new Error('Morph endpoints require the same number of vertices (>=3)');
|
|
12
|
+
const lerp=(u:number,v:number)=>u+(v-u)*t;
|
|
13
|
+
return {x:lerp(a.x,b.x),y:lerp(a.y,b.y),size:lerp(a.size,b.size),points:a.points.map(([x,y],i)=>[lerp(x,b.points[i][0]),lerp(y,b.points[i][1])]),color:t<.5?a.color:b.color};
|
|
14
|
+
};
|
|
15
|
+
export const MorphTransition:React.FC<{at:number;from:MorphShape;to:MorphShape;duration?:number;holdBefore?:number;holdAfter?:number}>=({at,from,to,duration=S.motion.morph.frames,holdBefore=0,holdAfter=0})=>{
|
|
16
|
+
const f=useCurrentFrame(),dbg=useDebug(),{width,height}=useVideoConfig();
|
|
17
|
+
if(dbg||f<at-holdBefore||f>at+duration+holdAfter)return null;
|
|
18
|
+
const p=interpolate(f,[at,at+duration],[0,1],{...cl,easing:easeInOut});
|
|
19
|
+
const shape=morphShapeAt(from,to,p);const radius=shape.size*0.5;
|
|
20
|
+
const fadeIn = holdBefore > 0 ? Math.min(1, (f-(at-holdBefore))/Math.min(10,holdBefore)) : 1;
|
|
21
|
+
const fadeOut = holdAfter > 0 ? Math.min(1, (at+duration+holdAfter-f)/Math.min(10,holdAfter)) : 1;
|
|
22
|
+
const pts=shape.points.map(([x,y])=>`${(shape.x*width+x*radius).toFixed(1)},${(shape.y*height+y*radius).toFixed(1)}`).join(' ');
|
|
23
|
+
// Overlay is decorative and pointer-free. Its vertices are real interpolated
|
|
24
|
+
// geometry; avoid covering text by choosing positions outside safe zones.
|
|
25
|
+
return <svg aria-hidden="true" style={{position:'absolute',inset:0,width:'100%',height:'100%',pointerEvents:'none',overflow:'visible'}} viewBox={`0 0 ${width} ${height}`}>
|
|
26
|
+
<polygon points={pts} fill={shape.color??C.accent} opacity={(holdBefore||holdAfter ? S.motion.morph.opacity * fadeIn * fadeOut : Math.sin(Math.PI*p)*S.motion.morph.opacity)}/>
|
|
27
|
+
</svg>;
|
|
28
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {AbsoluteFill, interpolate, useCurrentFrame} from 'remotion';
|
|
3
|
+
import {S, C} from '../lib/tokens';
|
|
4
|
+
import {useVideoConfig} from 'remotion';
|
|
5
|
+
import {geometry} from '../lib/format.mjs';
|
|
6
|
+
import {useFormat} from '../lib/format-context';
|
|
7
|
+
import {cl, easeInOut} from '../lib/anim';
|
|
8
|
+
import {useDebug} from '../lib/debug';
|
|
9
|
+
|
|
10
|
+
// Background: soft vertical gradient + two slow blue glows. Nothing else.
|
|
11
|
+
export const Background: React.FC = () => {
|
|
12
|
+
const f = useCurrentFrame();
|
|
13
|
+
const g1 = {x: 72 + Math.sin(f / 150) * 4, y: 92 + Math.cos(f / 170) * 3}, g2 = {x: 22 + Math.cos(f / 140) * 4, y: 96 + Math.sin(f / 160) * 3};
|
|
14
|
+
return <AbsoluteFill style={{background: `linear-gradient(180deg, ${C.bg[0]} 0%, ${C.bg[1]} 55%, ${C.bg[2]} 100%)`}}>
|
|
15
|
+
<AbsoluteFill style={{filter: 'blur(40px)', background: `radial-gradient(40% 34% at ${g1.x}% ${g1.y}%, ${C.glow[0]}, transparent 70%), radial-gradient(38% 30% at ${g2.x}% ${g2.y}%, ${C.glow[1]}, transparent 70%)`}} />
|
|
16
|
+
</AbsoluteFill>;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
// Scene window with blur-crossfade in/out. Scenes overlap by `overlap` frames; never hard-cut.
|
|
20
|
+
export const Scene: React.FC<{from: number; to: number; children: React.ReactNode; noIn?: boolean; noOut?: boolean}> = ({from, to, children, noIn, noOut}) => {
|
|
21
|
+
const f = useCurrentFrame(); const dbg = useDebug(); const M = S.motion.scene; const D = M.overlap;
|
|
22
|
+
if (f < from - D / 2 || f > to + D) return null;
|
|
23
|
+
const pin = noIn ? 1 : interpolate(f, [from - D / 2, from + D / 2], [0, 1], {...cl, easing: easeInOut});
|
|
24
|
+
const pout = noOut ? 0 : interpolate(f, [to, to + D], [0, 1], {...cl, easing: easeInOut});
|
|
25
|
+
const sc = (M.scaleIn - (M.scaleIn - 1) * pin) * (1 - (1 - M.scaleOut) * pout);
|
|
26
|
+
const x = (1 - pin) * M.shiftIn - pout * M.shiftIn * 0.6;
|
|
27
|
+
const bl = (1 - pin) * M.blur + pout * M.blur;
|
|
28
|
+
// Debug mode: hard switch at the crossfade midpoint, so the overlap check only sees real layout collisions
|
|
29
|
+
// (the blurred half-transparent crossfade is intended and never reads as overlapping text).
|
|
30
|
+
if (dbg) return pin >= 0.5 && (noOut || f < to) ? <AbsoluteFill style={{transform: `scale(${sc})`}}>{children}</AbsoluteFill> : null;
|
|
31
|
+
return <AbsoluteFill style={{opacity: pin * (1 - pout), filter: bl > 0.05 ? `blur(${bl}px)` : undefined, transform: `translateX(${x}px) scale(${sc})`}}>{children}</AbsoluteFill>;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
// Camera: keyframes [frame, scale, x, y] with in-out easing, plus a constant tiny drift so the frame never dies.
|
|
35
|
+
export type CamKey = [number, number, number, number];
|
|
36
|
+
export const Camera: React.FC<{keys?: CamKey[]; children: React.ReactNode}> = ({keys = [[0, 1, 0, 0]], children}) => {
|
|
37
|
+
const f = useCurrentFrame(); const K = [...keys].sort((a, b) => a[0] - b[0]);
|
|
38
|
+
const at = (i: 1 | 2 | 3) => K.length < 2 ? K[0][i] : interpolate(f, K.map((k) => k[0]), K.map((k) => k[i]), {...cl, easing: easeInOut});
|
|
39
|
+
const maxZ = S.motion.camera.maxZoom; const s = Math.min(maxZ, at(1));
|
|
40
|
+
const d = S.motion.camera.drift; const dx = Math.sin(f / 90) * d, dy = Math.cos(f / 110) * d * 0.6;
|
|
41
|
+
return <AbsoluteFill style={{transform: `translate(${at(2) + dx}px, ${at(3) + dy}px) scale(${s})`, transformOrigin: '50% 50%'}}>{children}</AbsoluteFill>;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export const Center: React.FC<{children: React.ReactNode; style?: React.CSSProperties; gap?: number}> = ({children, style, gap = 40}) => {
|
|
45
|
+
const {format, platform} = useFormat(); const {width,height}=useVideoConfig(); const g=geometry(format,platform);
|
|
46
|
+
return <div style={{position:'absolute',left:g.safe.x,top:g.safe.y,width:Math.min(g.safe.width,width),height:Math.min(g.safe.height,height),display:'flex',flexDirection:'column',alignItems:'center',justifyContent:'center',gap,...style}}>{children}</div>;
|
|
47
|
+
};
|
|
48
|
+
// Zones keep headline and hero from ever competing for space.
|
|
49
|
+
export const Zone: React.FC<{name: 'top' | 'center' | 'bottom'; children: React.ReactNode; style?: React.CSSProperties}> = ({name, children, style}) => {
|
|
50
|
+
const {format,platform}=useFormat(); const g=geometry(format,platform); const [a,b]=g.zones[name];
|
|
51
|
+
return <div style={{position:'absolute',left:g.safe.x,width:g.safe.width,top:g.safe.y+a*g.safe.height,height:(b-a)*g.safe.height,display:'flex',alignItems:'center',justifyContent:'center',...style}}>{children}</div>;
|
|
52
|
+
};
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
// Real WebGL 3D (never CSS fake 3D). Lighting + materials come from tokens.
|
|
2
|
+
import React, {useEffect, useMemo} from 'react';
|
|
3
|
+
import {interpolate, useCurrentFrame} from 'remotion';
|
|
4
|
+
import {ThreeCanvas} from '@remotion/three';
|
|
5
|
+
import {useFrame, useThree} from '@react-three/fiber';
|
|
6
|
+
import {EffectComposer} from 'three/examples/jsm/postprocessing/EffectComposer.js';
|
|
7
|
+
import {RenderPass} from 'three/examples/jsm/postprocessing/RenderPass.js';
|
|
8
|
+
import {BokehPass} from 'three/examples/jsm/postprocessing/BokehPass.js';
|
|
9
|
+
import * as THREE from 'three';
|
|
10
|
+
import {RoomEnvironment} from 'three/examples/jsm/environments/RoomEnvironment.js';
|
|
11
|
+
import {SVGLoader} from 'three/examples/jsm/loaders/SVGLoader.js';
|
|
12
|
+
import {RoundedBoxGeometry} from 'three/examples/jsm/geometries/RoundedBoxGeometry.js';
|
|
13
|
+
import {S} from '../lib/tokens';
|
|
14
|
+
import {cl, spr} from '../lib/anim';
|
|
15
|
+
import {beatAccent} from '../lib/beat';
|
|
16
|
+
const L = S.three;
|
|
17
|
+
|
|
18
|
+
const Env: React.FC = () => { const {gl, scene} = useThree(); useEffect(() => { gl.outputColorSpace = THREE.SRGBColorSpace; gl.toneMapping = THREE.NoToneMapping; const pm = new THREE.PMREMGenerator(gl); scene.environment = pm.fromScene(new RoomEnvironment(), 0.04).texture; }, [gl, scene]); return null; };
|
|
19
|
+
export const Lights: React.FC = () => <><Env /><ambientLight intensity={L.ambient} /><directionalLight position={L.key.pos as [number, number, number]} intensity={L.key.intensity} castShadow shadow-mapSize={[512, 512]} shadow-radius={L.shadow.radius} shadow-bias={-0.0001} /><directionalLight position={L.fill.pos as [number, number, number]} intensity={L.fill.intensity} color="#cfe0ff" /></>;
|
|
20
|
+
export type Finish = 'ceramic' | 'glass' | 'metal';
|
|
21
|
+
export const Mat: React.FC<{color: string; finish?: Finish}> = ({color, finish = 'ceramic'}) => {
|
|
22
|
+
const m = L.finishes[finish];
|
|
23
|
+
return <meshPhysicalMaterial color={color} metalness={m.metalness} roughness={m.roughness} transmission={m.transmission}
|
|
24
|
+
thickness={m.thickness} ior={m.ior} envMapIntensity={m.envMapIntensity} clearcoat={m.clearcoat}
|
|
25
|
+
emissive={color} emissiveIntensity={finish === 'ceramic' ? L.material.emissive : 0} />;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
// Optional depth-aware optical blur. BokehPass renders a depth buffer then
|
|
29
|
+
// composites a focus plane; only the 3D canvas is affected, never UI text.
|
|
30
|
+
export const DepthOfField:React.FC<{enabled?:boolean}> = ({enabled = L.depthOfField.enabled}) => {
|
|
31
|
+
const {gl, scene, camera, size} = useThree();
|
|
32
|
+
const config = L.depthOfField;
|
|
33
|
+
const composer = useMemo(() => {
|
|
34
|
+
if (!enabled) return null;
|
|
35
|
+
const c = new EffectComposer(gl);
|
|
36
|
+
c.addPass(new RenderPass(scene, camera));
|
|
37
|
+
const b = new BokehPass(scene, camera, {focus:config.focus, aperture:config.aperture, maxblur:config.maxBlur});
|
|
38
|
+
// Three's stock shader forces output alpha to 1, which turns every
|
|
39
|
+
// transparent 3D canvas into a black rectangle over the DOM. Keep sampled
|
|
40
|
+
// alpha so the transparent canvas can be composited normally.
|
|
41
|
+
b.materialBokeh.fragmentShader=b.materialBokeh.fragmentShader.replace('gl_FragColor.a = 1.0;', 'gl_FragColor.a = col.a / 41.0;');
|
|
42
|
+
b.materialBokeh.needsUpdate=true;
|
|
43
|
+
b.renderToScreen = true;c.addPass(b);
|
|
44
|
+
return c;
|
|
45
|
+
}, [gl, scene, camera, enabled]);
|
|
46
|
+
useEffect(() => {composer?.setSize(size.width,size.height);return () => composer?.dispose();}, [composer,size.width,size.height]);
|
|
47
|
+
useFrame(() => {composer?.render();}, enabled ? 1 : 0);
|
|
48
|
+
return null;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
// Real perspective-camera motion, separate from Stage.Camera's 2D framing.
|
|
52
|
+
// Keys are [frame, dolly distance, orbit radians, target x, target y].
|
|
53
|
+
export type Camera3DKey = [number, number, number, number, number];
|
|
54
|
+
export const camera3DAt = (frame: number, keys: Camera3DKey[]) => {
|
|
55
|
+
const sorted = [...keys].sort((a, b) => a[0] - b[0]);
|
|
56
|
+
if (!sorted.length) throw new Error('Camera3D needs at least one key');
|
|
57
|
+
const a = sorted.findIndex((k) => k[0] >= frame);
|
|
58
|
+
if (a === -1) return sorted[sorted.length - 1].slice(1);
|
|
59
|
+
if (a === 0) return sorted[0].slice(1);
|
|
60
|
+
const lo = sorted[a - 1], hi = sorted[a];
|
|
61
|
+
const t = interpolate(frame, [lo[0], hi[0]], [0, 1], {...cl, easing: (x) => x * x * (3 - 2 * x)});
|
|
62
|
+
return lo.slice(1).map((v, i) => v + (hi[i + 1] - v) * t);
|
|
63
|
+
};
|
|
64
|
+
export const Camera3D: React.FC<{keys: Camera3DKey[]}> = ({keys}) => {
|
|
65
|
+
const frame = useCurrentFrame(); const {camera} = useThree();
|
|
66
|
+
const [distance, orbit, tx, ty] = camera3DAt(frame, keys);
|
|
67
|
+
camera.position.set(tx + Math.sin(orbit) * distance, ty, Math.cos(orbit) * distance);
|
|
68
|
+
camera.lookAt(tx, ty, 0);
|
|
69
|
+
camera.updateProjectionMatrix();
|
|
70
|
+
return null;
|
|
71
|
+
};
|
|
72
|
+
const cameraKeys = (base: number, at: number, move?: Camera3DKey[]): Camera3DKey[] =>
|
|
73
|
+
move ?? (S.three.camera.moves as Camera3DKey[]).map(([f, dolly, orbit, x, y]) => [at + f, base * dolly, orbit, x, y]);
|
|
74
|
+
|
|
75
|
+
// Extruded logo from an SVG path string (use the brand's REAL logo path).
|
|
76
|
+
export const Logo3D: React.FC<{svg: string; at: number; size?: number; depth?: number; color?: string; spin?: number; cameraMove?: Camera3DKey[]; finish?: Finish}> = ({svg, at, size = 520, depth = 100, color = S.color.object3d[0], spin = 1, cameraMove, finish = 'ceramic'}) => {
|
|
77
|
+
const f = useCurrentFrame(); const s = spr(f, at, S.motion.logo3d.spring);
|
|
78
|
+
const geo = useMemo(() => {
|
|
79
|
+
const data = new SVGLoader().parse(svg); const shapes = data.paths.flatMap((p) => SVGLoader.createShapes(p));
|
|
80
|
+
const g = new THREE.ExtrudeGeometry(shapes, {depth, bevelEnabled: true, bevelThickness: 16, bevelSize: 14, bevelSegments: 9, curveSegments: 24});
|
|
81
|
+
g.center(); g.computeBoundingBox(); const bb = g.boundingBox!; const k = 900 / Math.max(bb.max.x - bb.min.x, bb.max.y - bb.min.y); g.scale(k, -k, k); return g;
|
|
82
|
+
}, [svg, depth]);
|
|
83
|
+
const ry = (1 - s) * Math.PI * 1.2 * spin + Math.sin((f - at) / 40) * 0.12; const fl = Math.sin((f - at) / 26) * 14;
|
|
84
|
+
return <div style={{width: size, height: size, opacity: Math.min(1, s * 2)}}>
|
|
85
|
+
<ThreeCanvas width={size} height={size} gl={{alpha: true, antialias: true}} shadows camera={{position: [0, 0, 2200], fov: 26, near: 10, far: 6000}}>
|
|
86
|
+
<Lights /><DepthOfField /><Camera3D keys={cameraKeys(2200, at, cameraMove)} /><group scale={0.6 + 0.4 * s} position={[0, fl, 0]} rotation={[0.18 * (1 - s) + 0.08, ry, 0]}><mesh geometry={geo}><Mat color={color} finish={finish} /></mesh></group>
|
|
87
|
+
</ThreeCanvas>
|
|
88
|
+
</div>;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
// Mochi mascot: soft white body, glossy eyes, blush. Bounces + blinks. happy = smiling eyes (end card).
|
|
92
|
+
const MochiMesh: React.FC<{blink: number; squash: number; happy?: boolean}> = ({blink, squash, happy}) => {
|
|
93
|
+
const body = useMemo(() => { const g = new THREE.SphereGeometry(200, 96, 64); const p = g.attributes.position;
|
|
94
|
+
for (let i = 0; i < p.count; i++) { const x = p.getX(i); let y = p.getY(i); const z = p.getZ(i); if (y < -110) y = -110 - (y + 110) * 0.35; p.setXYZ(i, x * 1.1, y * 0.92 + 20, z * 0.95); }
|
|
95
|
+
g.computeVertexNormals(); return g; }, []);
|
|
96
|
+
return <group scale={[1 + squash * 0.06, 1 - squash * 0.08, 1]}>
|
|
97
|
+
<mesh geometry={body}><meshPhysicalMaterial color="#fffaf3" emissive="#fff4ea" emissiveIntensity={0.28} roughness={0.7} sheen={1} sheenRoughness={0.5} sheenColor="#ffffff" clearcoat={0.15} /></mesh>
|
|
98
|
+
{[-1, 1].map((sd) => <group key={sd}>
|
|
99
|
+
{happy ? <mesh position={[sd * 70, 40, 184]}><torusGeometry args={[19, 6.5, 16, 32, Math.PI]} /><meshPhysicalMaterial color="#1a1a1f" roughness={0.3} clearcoat={1} /></mesh>
|
|
100
|
+
: <mesh position={[sd * 70, 40, 180]} scale={[1, 1.25 * (1 - blink * 0.9), 0.6]}><sphereGeometry args={[22, 32, 32]} /><meshPhysicalMaterial color="#141418" roughness={0.15} clearcoat={1} /></mesh>}
|
|
101
|
+
<mesh position={[sd * 118, 0, 165]} scale={[1.5, 0.8, 0.3]} rotation={[0, sd * 0.5, 0]}><sphereGeometry args={[20, 32, 32]} /><meshStandardMaterial color="#ff9f9f" roughness={0.9} transparent opacity={0.55} /></mesh>
|
|
102
|
+
</group>)}
|
|
103
|
+
<mesh position={[0, 12, 194]} rotation={[0, 0, Math.PI]}><torusGeometry args={[12, 3.6, 12, 24, Math.PI]} /><meshStandardMaterial color="#1a1a1f" roughness={0.5} /></mesh>
|
|
104
|
+
</group>;
|
|
105
|
+
};
|
|
106
|
+
export const Mascot: React.FC<{at: number; size?: number; happy?: boolean; cameraMove?: Camera3DKey[]}> = ({at, size = 260, happy, cameraMove}) => {
|
|
107
|
+
const f = useCurrentFrame(); const s = spr(f, at, {damping: 9, stiffness: 150, mass: 0.8});
|
|
108
|
+
const bounce = Math.abs(Math.sin((f - at) / 11)) * 0.5; const blink = interpolate((f - at) % 75, [60, 63, 66], [0, 1, 0], cl);
|
|
109
|
+
return <div style={{width: size, height: size * 0.8, transform: `scale(${s})`, opacity: Math.min(1, s * 2)}}>
|
|
110
|
+
<ThreeCanvas width={size} height={size * 0.8} gl={{alpha: true, antialias: true}} shadows camera={{position: [0, 40, 1500], fov: 17, near: 10, far: 6000}}>
|
|
111
|
+
<Lights /><DepthOfField /><Camera3D keys={cameraKeys(1500, at, cameraMove)} /><group rotation={[0.12, -0.22 + Math.sin((f - at) / 30) * 0.12, 0]} position={[0, -20 + bounce * 20, 0]}><MochiMesh happy={happy} blink={blink} squash={bounce * 0.6} /></group>
|
|
112
|
+
</ThreeCanvas>
|
|
113
|
+
</div>;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
// Field of soft pastel objects floating in (hook/opening). Deterministic positions.
|
|
117
|
+
export const FloatingShapes: React.FC<{at: number; count?: number; w?: number; h?: number; clearX?: number; clearY?: number; cameraMove?: Camera3DKey[]; finishes?: Finish[]; beats?: number[]}> = ({at, count = 14, w = 1920, h = 1080, clearX = 950, clearY = 430, cameraMove, finishes = ['ceramic', 'metal', 'glass'], beats = []}) => {
|
|
118
|
+
const f = useCurrentFrame(); const cols = S.color.object3d;
|
|
119
|
+
// Objects stay OUT of the central text area (ellipse clearX x clearY) so they never sit on the headline.
|
|
120
|
+
const items = useMemo(() => Array.from({length: count}, (_, i) => { const a = (i * 137.5) * Math.PI / 180, r = 1 + (i % 4) * 0.28;
|
|
121
|
+
const x = Math.cos(a) * clearX * r, y = Math.sin(a) * clearY * r; return {x, y, z: -200 - (i % 5) * 120, kind: i % 4, c: cols[i % 4], d: i * 2}; }), [count, cols, clearX, clearY]);
|
|
122
|
+
const rb = useMemo(() => new RoundedBoxGeometry(150, 150, 150, 6, 26), []);
|
|
123
|
+
return <ThreeCanvas width={w} height={h} gl={{alpha: true, antialias: true}} shadows camera={{position: [0, 0, 1800], fov: 40, near: 10, far: 8000}}>
|
|
124
|
+
<Lights /><DepthOfField /><Camera3D keys={cameraKeys(1800, at, cameraMove)} />
|
|
125
|
+
{items.map((it, i) => { const s = spr(f, at + it.d, {damping: 12, stiffness: 90, mass: 1}); const t = (f - at) / 30;
|
|
126
|
+
const finish = finishes[i % finishes.length] ?? 'ceramic';
|
|
127
|
+
return <group key={i} position={[it.x, it.y + Math.sin(t + i) * 18, it.z]} rotation={[t * 0.3 + i, t * 0.4 + i * 0.5, 0]} scale={s * beatAccent(f, beats)}>
|
|
128
|
+
{it.kind === 0 && <mesh geometry={rb} castShadow receiveShadow><Mat color={it.c} finish={finish} /></mesh>}
|
|
129
|
+
{it.kind === 1 && <mesh castShadow receiveShadow><torusGeometry args={[70, 30, 32, 64]} /><Mat color={it.c} finish={finish} /></mesh>}
|
|
130
|
+
{it.kind === 2 && <mesh castShadow receiveShadow><capsuleGeometry args={[40, 90, 12, 24]} /><Mat color={it.c} finish={finish} /></mesh>}
|
|
131
|
+
{it.kind === 3 && <mesh castShadow receiveShadow><sphereGeometry args={[70, 48, 48]} /><Mat color={it.c} finish={finish} /></mesh>}
|
|
132
|
+
</group>; })}
|
|
133
|
+
</ThreeCanvas>;
|
|
134
|
+
};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {Img, interpolate, staticFile, useCurrentFrame} from 'remotion';
|
|
3
|
+
import {S, C, FONT, MONO} from '../lib/tokens';
|
|
4
|
+
import {cl, easeOut, ramp, spr, mix} from '../lib/anim';
|
|
5
|
+
import {McBox, useDebug} from '../lib/debug';
|
|
6
|
+
import {useFormat} from '../lib/format-context';
|
|
7
|
+
import {geometry} from '../lib/format.mjs';
|
|
8
|
+
const src = (s: string) => (s.startsWith('http') ? s : staticFile(s));
|
|
9
|
+
|
|
10
|
+
// Card that rises in with a slight 3D tilt. Optional mac title bar.
|
|
11
|
+
export const Card: React.FC<{at: number; w: number; h: number; title?: string; out?: number; children?: React.ReactNode; style?: React.CSSProperties; allowOverlap?: boolean}> = ({at, w, h, title, out, children, style, allowOverlap}) => {
|
|
12
|
+
const f = useCurrentFrame(); const M = S.motion.card; const p = ramp(f, at, M.frames, easeOut);
|
|
13
|
+
const q = out !== undefined ? ramp(f, out, 12) : 0;
|
|
14
|
+
return <div style={{perspective: 1600, ...style}}>
|
|
15
|
+
<McBox kind="block" allowOverlap={allowOverlap} style={{width: w, height: h, borderRadius: S.shape.cardRadius, background: C.card, border: `1px solid ${C.cardBorder}`, boxShadow: S.shape.shadow, overflow: 'hidden',
|
|
16
|
+
opacity: p * (1 - q), filter: `blur(${(1 - p) * M.blur + q * 16}px)`, transform: `translateY(${(1 - p) * M.rise}px) rotateX(${(1 - p) * M.rotateX}deg) scale(${(M.scaleFrom + (1 - M.scaleFrom) * p) * (1 - 0.04 * q)})`}}>
|
|
17
|
+
{title !== undefined && <div style={{height: 48, background: C.cardBar, display: 'flex', alignItems: 'center', gap: 8, padding: '0 18px', borderBottom: `1px solid ${C.cardBorder}`}}>
|
|
18
|
+
{['#ff5f57', '#febc2e', '#28c840'].map((c) => <div key={c} style={{width: 12, height: 12, borderRadius: 6, background: c}} />)}
|
|
19
|
+
<div style={{flex: 1, textAlign: 'center', fontFamily: FONT, fontWeight: 500, fontSize: 18, color: C.muted, marginRight: 52}}>{title}</div>
|
|
20
|
+
</div>}
|
|
21
|
+
<div style={{position: 'relative', width: '100%', height: title !== undefined ? h - 48 : h}}>{children}</div>
|
|
22
|
+
</McBox>
|
|
23
|
+
</div>;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export const Pill: React.FC<{at: number; children: React.ReactNode; out?: number; style?: React.CSSProperties; size?: number}> = ({at, children, out, style, size = 24}) => {
|
|
27
|
+
const f = useCurrentFrame(); const s = spr(f, at, S.motion.pill.spring); const p = ramp(f, at, 10);
|
|
28
|
+
const q = out !== undefined ? ramp(f, out, 10) : 0;
|
|
29
|
+
return <McBox kind="text" style={{display: 'inline-flex', alignItems: 'center', gap: 10, padding: `${size * 0.42}px ${size * 0.85}px`, borderRadius: 999, background: C.card, boxShadow: '0 8px 24px rgba(20,40,80,0.08), 0 0 0 1px rgba(20,40,80,0.05)',
|
|
30
|
+
fontFamily: FONT, fontWeight: 600, fontSize: size, color: C.ink, transform: `scale(${0.85 + 0.15 * s})`, opacity: p * (1 - q), filter: `blur(${(1 - p) * S.motion.pill.blur + q * 8}px)`, ...style}}>{children}</McBox>;
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const Keycap: React.FC<{at: number; children: React.ReactNode; size?: number}> = ({at, children, size = 30}) => {
|
|
34
|
+
const f = useCurrentFrame(); const s = spr(f, at, {damping: 12, stiffness: 180, mass: 0.5});
|
|
35
|
+
const press = interpolate(f - at, [8, 11, 16], [0, 1, 0], cl); const p = ramp(f, at, 8);
|
|
36
|
+
return <div style={{display: 'inline-flex', alignItems: 'center', justifyContent: 'center', height: size * 2, minWidth: size * 2, padding: `0 ${size * 0.6}px`, borderRadius: size * 0.45, background: C.card,
|
|
37
|
+
boxShadow: `0 ${4 - press * 3}px 0 #dfe4ec, 0 10px 26px rgba(20,40,80,0.1), 0 0 0 1px rgba(20,40,80,0.06)`, fontFamily: MONO, fontWeight: 500, fontSize: size, color: C.ink,
|
|
38
|
+
transform: `translateY(${press * 3}px) scale(${0.8 + 0.2 * s})`, opacity: p}}>{children}</div>;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// Number counting up to a REAL value. Always pair with <Credit> for the source.
|
|
42
|
+
export const Counter: React.FC<{at: number; to: number; from?: number; dur?: number; size?: number; suffix?: string; decimals?: number; color?: string}> = ({at, to, from = 0, dur = S.motion.number.duration, size = 140, suffix = '', decimals = 0, color = C.ink}) => {
|
|
43
|
+
const f = useCurrentFrame(); const p = ramp(f, at, dur); const v = (from + (to - from) * p).toFixed(decimals); const dbg = useDebug();
|
|
44
|
+
return <McBox kind="text" style={{fontFamily: FONT, fontWeight: 700, fontSize: size, letterSpacing: size * S.font.tracking, color: dbg ? 'transparent' : color, opacity: ramp(f, at, 8), fontVariantNumeric: 'tabular-nums', lineHeight: 1}}>{Number(v).toLocaleString('en-US', {minimumFractionDigits: decimals})}{suffix}</McBox>;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
// Strike a word, then show its replacement (pattern: "not X. Y.")
|
|
48
|
+
export const Strike: React.FC<{at: number; appear?: number; word: string; size?: number; color?: string}> = ({at, appear, word, size = 76, color = C.danger}) => {
|
|
49
|
+
const f = useCurrentFrame(); const p = ramp(f, at, 10); const dbg = useDebug(); const a = ramp(f, appear ?? at - 12, 12);
|
|
50
|
+
return <span style={{position: 'relative', display: 'inline-block', fontFamily: FONT, fontWeight: 600, fontSize: size, color: dbg ? 'transparent' : mix(C.ink, C.muted, p), letterSpacing: size * S.font.tracking, opacity: a, filter: `blur(${(1 - a) * 8}px)`}}>
|
|
51
|
+
{word}<span style={{position: 'absolute', left: -6, right: -6, top: '54%', height: size * 0.07, borderRadius: 4, background: color, transformOrigin: 'left', transform: `scaleX(${p})`}} />
|
|
52
|
+
</span>;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export const CheckItem: React.FC<{at: number; text: string; done?: number; size?: number; allowOverlap?: boolean}> = ({at, text, done, size = 22, allowOverlap}) => {
|
|
56
|
+
const f = useCurrentFrame(); const s = spr(f, at, {damping: 12, stiffness: 160, mass: 0.6}); const p = ramp(f, at, 8);
|
|
57
|
+
const d = done !== undefined ? ramp(f, done, 10) : 0; const dbg = useDebug();
|
|
58
|
+
return <McBox kind="text" allowOverlap={allowOverlap} style={{display: 'inline-flex', alignItems: 'center', gap: 12, padding: '12px 18px', borderRadius: 16, background: C.card, boxShadow: '0 10px 30px rgba(20,40,80,0.10)',
|
|
59
|
+
fontFamily: FONT, fontWeight: 500, fontSize: size, color: dbg ? 'transparent' : mix(C.ink, C.muted, d), opacity: p, transform: `scale(${0.8 + 0.2 * s})`, whiteSpace: 'nowrap'}}>
|
|
60
|
+
<div style={{width: size * 1.1, height: size * 1.1, borderRadius: 999, background: d > 0 ? C.success : C.cardBar, display: 'flex', alignItems: 'center', justifyContent: 'center', color: '#fff', fontSize: size * 0.7, transform: `scale(${0.7 + 0.3 * d})`}}>{d > 0.5 ? '✓' : ''}</div>
|
|
61
|
+
<span style={{textDecoration: d > 0.6 ? 'line-through' : 'none'}}>{text}</span>
|
|
62
|
+
</McBox>;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const StepCards: React.FC<{at: number; steps: string[]; gap?: number; step?: number;vertical?:boolean}> = ({at, steps, gap = 48, step = 10,vertical=false}) => (
|
|
66
|
+
<div style={{display:'flex',flexDirection:vertical?'column':'row',alignItems:'center',gap:vertical?14:gap}}>
|
|
67
|
+
{steps.map((s, i) => <React.Fragment key={i}>
|
|
68
|
+
<Card at={at + i * step} w={vertical?540:210} h={vertical?110:170}>
|
|
69
|
+
<div style={{position: 'absolute', inset: 0, display: 'flex', flexDirection: 'column', alignItems: 'center', justifyContent: 'center', gap: 18}}>
|
|
70
|
+
<div style={{width: 44, height: 44, borderRadius: 12, background: i === steps.length - 1 ? C.accent : C.cardBar, color: i === steps.length - 1 ? '#fff' : C.accent, fontFamily: FONT, fontWeight: 700, fontSize: 24, display: 'flex', alignItems: 'center', justifyContent: 'center'}}>{i + 1}</div>
|
|
71
|
+
<div style={{fontFamily: FONT, fontWeight: 600, fontSize: 34, color: C.ink, letterSpacing: -0.7}}>{s}</div>
|
|
72
|
+
</div>
|
|
73
|
+
</Card>
|
|
74
|
+
</React.Fragment>)}
|
|
75
|
+
</div>
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
// Call to action badge, e.g. "Comment MAU"
|
|
79
|
+
export const Callout: React.FC<{at: number; label: string; big: string; note?: string}> = ({at, label, big, note}) => {
|
|
80
|
+
const f = useCurrentFrame(); const s = spr(f, at, {damping: 10, stiffness: 150, mass: 0.7}); const p = ramp(f, at, 10);
|
|
81
|
+
const pulse = 1 + Math.max(0, Math.sin((f - at - 20) / 9)) * 0.02 * (f > at + 20 ? 1 : 0);
|
|
82
|
+
return <div style={{display: 'flex', flexDirection: 'column', alignItems: 'center', gap: 12, opacity: p, transform: `scale(${(0.7 + 0.3 * s) * pulse})`}}>
|
|
83
|
+
<McBox kind="text" style={{padding: '14px 34px', borderRadius: 26, background: C.card, border: `2px solid ${C.accentStart}`, boxShadow: '0 20px 50px rgba(43,127,212,0.18)', display: 'flex', alignItems: 'center', gap: 18}}>
|
|
84
|
+
<div style={{width: 40, height: 40, borderRadius: 999, background: `radial-gradient(circle at 35% 30%, #cfe3fb, ${C.accent})`}} />
|
|
85
|
+
<div><div style={{fontFamily: FONT, fontWeight: 500, fontSize: 22, color: C.muted}}>{label}</div><div style={{fontFamily: FONT, fontWeight: 700, fontSize: 64, color: C.accent, lineHeight: 1, letterSpacing: -1.3}}>{big}</div></div>
|
|
86
|
+
</McBox>
|
|
87
|
+
{note && <div style={{fontFamily: FONT, fontWeight: 500, fontSize: 22, color: C.muted}}>{note}</div>}
|
|
88
|
+
</div>;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
// Source credit, bottom-left, small. Required for every real number or third-party example.
|
|
92
|
+
export const Credit: React.FC<{at: number; children: React.ReactNode}> = ({at, children}) => {
|
|
93
|
+
const f = useCurrentFrame(); const p = ramp(f, at, 12);const {format,platform}=useFormat();const g=geometry(format,platform);
|
|
94
|
+
return <McBox kind="text" style={{position: 'absolute', left:g.safe.x+40,bottom:g.insets.bottom+12, display: 'flex', alignItems: 'center', gap: 10, fontFamily: FONT, fontWeight: 500, fontSize: 20, color: C.muted, opacity: p}}>
|
|
95
|
+
<div style={{width: 7, height: 7, borderRadius: 4, background: C.highlight}} />{children}
|
|
96
|
+
</McBox>;
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
// Real footage inside a player card. Use a JPG sequence (frames/001.jpg...) for bulletproof renders.
|
|
100
|
+
export const Frames: React.FC<{dir: string; count: number; at: number; fps?: number; w: number; h: number}> = ({dir, count, at, fps = 30, w, h}) => {
|
|
101
|
+
const f = useCurrentFrame(); const i = Math.max(0, Math.min(count - 1, Math.floor((f - at) * fps / 30)));
|
|
102
|
+
return <Img src={src(`${dir}/${String(i + 1).padStart(3, '0')}.jpg`)} style={{width: w, height: h, objectFit: 'cover', display: 'block'}} />;
|
|
103
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import {Img, interpolate, staticFile, useCurrentFrame} from 'remotion';
|
|
3
|
+
import {S, C, FONT} from '../lib/tokens';
|
|
4
|
+
import {cl, easeIn, easeInOut, mix, ramp, spr} from '../lib/anim';
|
|
5
|
+
import {McBox} from '../lib/debug';
|
|
6
|
+
import {useDebug} from '../lib/debug';
|
|
7
|
+
const M = S.motion;
|
|
8
|
+
|
|
9
|
+
// One word: grey + blur -> ink, rising on a soft spring. Optional exit.
|
|
10
|
+
export const Word: React.FC<{t: string; at: number; size: number; accent?: boolean; out?: number; weight?: number; color?: string}> = ({t, at, size, accent, out, weight = S.font.weights.h1, color}) => {
|
|
11
|
+
const f = useCurrentFrame(); const dbg = useDebug();
|
|
12
|
+
const p = ramp(f, at, M.word.inFrames);
|
|
13
|
+
const s = spr(f, at, M.word.spring);
|
|
14
|
+
const cp = ramp(f, at, accent ? M.word.accentColorFrames : M.word.colorFrames);
|
|
15
|
+
let o = p, bl = (1 - p) * M.word.blur, y = (1 - s) * size * M.word.rise;
|
|
16
|
+
if (out !== undefined) { const q = interpolate(f, [out, out + M.wordOut.frames], [0, 1], {...cl, easing: easeIn}); o *= 1 - q; bl += q * M.wordOut.blur; y -= q * size * M.wordOut.rise; }
|
|
17
|
+
const col = color ?? (accent ? mix(C.accentStart, C.accent, cp) : mix(C.inkStart, C.ink, cp));
|
|
18
|
+
return <span style={{display: 'inline-block', whiteSpace: 'pre', fontFamily: FONT, fontWeight: weight, fontSize: size, lineHeight: 1, letterSpacing: size * S.font.tracking,
|
|
19
|
+
color: dbg ? 'transparent' : col, opacity: o, filter: bl > 0.05 ? `blur(${bl}px)` : undefined, transform: `translateY(${y}px)`}}>{t}</span>;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// Icon that slides in between words: the slot opens first (neighbours glide apart), then the icon pops.
|
|
23
|
+
export const InlineIcon: React.FC<{src: string; at: number; size: number; out?: number}> = ({src, at, size, out}) => {
|
|
24
|
+
const f = useCurrentFrame(); const I = M.icon;
|
|
25
|
+
const wv = interpolate(f, [at - I.slotFrames / 2, at + I.slotFrames / 2], [0, 1], {...cl, easing: easeInOut});
|
|
26
|
+
const s = spr(f, at, I.spring);
|
|
27
|
+
let o = Math.min(1, s * 2), sc = s;
|
|
28
|
+
if (out !== undefined) { const q = interpolate(f, [out, out + 9], [0, 1], {...cl, easing: easeIn}); o *= 1 - q; sc *= 1 - q * 0.2; }
|
|
29
|
+
const fl = Math.sin((f - at) / 16) * I.float;
|
|
30
|
+
return <span style={{display: 'inline-flex', justifyContent: 'center', alignItems: 'center', width: wv * size * I.slotWidth, height: size, verticalAlign: 'middle'}}>
|
|
31
|
+
<Img src={src.startsWith('http') ? src : staticFile(src)} style={{height: size * 1.05, width: 'auto', transform: `translateY(${fl}px) scale(${sc}) rotate(${(1 - s) * I.rotate}deg)`, opacity: o, filter: 'drop-shadow(0 10px 14px rgba(30,60,110,0.16))'}} />
|
|
32
|
+
</span>;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
// Character-level reveal keeps the full word's layout width from the start,
|
|
36
|
+
// so staggering never causes line reflow. Unicode code points stay intact.
|
|
37
|
+
export const CharReveal: React.FC<{text: string; at: number; size: number; accent?: boolean; weight?: number; out?: number}> = ({text, at, size, accent, weight = S.font.weights.h1, out}) => {
|
|
38
|
+
const f=useCurrentFrame();const dbg=useDebug();const chars=Array.from(text);
|
|
39
|
+
return <McBox kind="text" style={{display:'inline-block',whiteSpace:'pre',fontFamily:FONT,fontWeight:weight,fontSize:size,lineHeight:1,letterSpacing:size*S.font.tracking}}>
|
|
40
|
+
{chars.map((ch,i)=>{const p=ramp(f,at+i*M.character.stagger,M.character.frames);
|
|
41
|
+
const q=out===undefined?0:ramp(f,out+i*M.wordOut.stagger,M.wordOut.frames);
|
|
42
|
+
return <span key={i} style={{display:'inline-block',color:dbg?'transparent':accent?C.accent:C.ink,opacity:p*(1-q),
|
|
43
|
+
filter:dbg?undefined:`blur(${(1-p)*M.character.blur+q*M.wordOut.blur}px)`,transform:`translateY(${(1-p)*size*M.character.rise}px)`}}>{ch}</span>;
|
|
44
|
+
})}
|
|
45
|
+
</McBox>;
|
|
46
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {Easing, interpolate, spring} from 'remotion';
|
|
2
|
+
import {S, FPS} from './tokens';
|
|
3
|
+
export const cl = {extrapolateLeft: 'clamp', extrapolateRight: 'clamp'} as const;
|
|
4
|
+
const b = (a: number[]) => Easing.bezier(a[0], a[1], a[2], a[3]);
|
|
5
|
+
export const easeOut = b(S.ease.out);
|
|
6
|
+
export const easeInOut = b(S.ease.inOut);
|
|
7
|
+
export const easeIn = Easing.in(Easing.quad);
|
|
8
|
+
export type Spr = {damping: number; stiffness: number; mass: number};
|
|
9
|
+
// springs are evaluated at 60 fps internally so 30 fps renders stay smooth
|
|
10
|
+
export const spr = (f: number, at: number, c: Spr) => spring({frame: (f - at) * (60 / FPS), fps: 60, config: c});
|
|
11
|
+
export const ramp = (f: number, at: number, len: number, e = easeOut) => interpolate(f, [at, at + len], [0, 1], {...cl, easing: e});
|
|
12
|
+
export const mix = (a: string, c: string, t: number) => {
|
|
13
|
+
const h = (s: string) => [1, 3, 5].map((i) => parseInt(s.slice(i, i + 2), 16));
|
|
14
|
+
const A = h(a), B = h(c);
|
|
15
|
+
return `rgb(${A.map((v, i) => Math.round(v + (B[i] - v) * t)).join(',')})`;
|
|
16
|
+
};
|
|
17
|
+
export const sec = (s: number) => Math.round(s * FPS);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import {FPS, S} from './tokens';
|
|
2
|
+
|
|
3
|
+
// Beats are seconds in the existing music beatgrid/timeline. Never invent a beat
|
|
4
|
+
// when none was supplied. The per-style window keeps VO-led words from drifting.
|
|
5
|
+
export const nearestBeatFrame = (frame: number, beats: number[], maxMs = S.motion.beat.snapMs) => {
|
|
6
|
+
if (!beats?.length) return frame;
|
|
7
|
+
const maxFrames = maxMs * FPS / 1000;
|
|
8
|
+
let best = frame, distance = Infinity;
|
|
9
|
+
for (const second of beats) {
|
|
10
|
+
const candidate = Math.round(second * FPS);
|
|
11
|
+
const delta = Math.abs(candidate - frame);
|
|
12
|
+
if (delta < distance) {best = candidate; distance = delta;}
|
|
13
|
+
}
|
|
14
|
+
return distance <= maxFrames ? best : frame;
|
|
15
|
+
};
|
|
16
|
+
export const beatAccent = (frame: number, beats: number[], strength = S.motion.beat.pulse) => {
|
|
17
|
+
if (!beats?.length) return 1;
|
|
18
|
+
const past = beats.map((t) => Math.round(t * FPS)).filter((b) => b <= frame);
|
|
19
|
+
const last = past[past.length - 1];
|
|
20
|
+
if (last === undefined) return 1;
|
|
21
|
+
const elapsed = frame - last, length = S.motion.beat.pulseFrames;
|
|
22
|
+
return elapsed < length ? 1 + strength * (Math.pow(1 - elapsed / length, 2)) : 1;
|
|
23
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Layout debug mode. When the composition gets inputProps {mcDebug: true}, every registered box is painted
|
|
2
|
+
// as a translucent block (text = red, block = green). `motioncraft qa overlap` renders this mode at low
|
|
3
|
+
// resolution and flags pixels where two text boxes (or two blocks) stack, or where text leaves the safe area.
|
|
4
|
+
import React, {createContext, useContext} from 'react';
|
|
5
|
+
export const DebugCtx = createContext(false);
|
|
6
|
+
export const useDebug = () => useContext(DebugCtx);
|
|
7
|
+
type Kind = 'text' | 'block';
|
|
8
|
+
export const McBox: React.FC<{kind: Kind; allowOverlap?: boolean; style?: React.CSSProperties; children: React.ReactNode}> = ({kind, allowOverlap, style, children}) => {
|
|
9
|
+
const dbg = useDebug();
|
|
10
|
+
const paint: React.CSSProperties = dbg && !allowOverlap ? {background: kind === 'text' ? 'rgba(255,0,0,0.5)' : 'rgba(0,255,0,0.35)', boxShadow: 'none'} : {};
|
|
11
|
+
return <div data-mc={kind} data-mc-allow={allowOverlap ? '1' : undefined} style={{...style, ...paint}}>{dbg && !allowOverlap ? <div style={{display: 'contents', visibility: 'hidden'}}>{children}</div> : children}</div>;
|
|
12
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Fonts are loaded here. To change fonts: import another family from @remotion/google-fonts
|
|
2
|
+
// (or use @remotion/fonts with a local file in public/fonts) AND update style.json font.display / font.mono.
|
|
3
|
+
import {loadFont as loadDisplay} from '@remotion/google-fonts/Figtree';
|
|
4
|
+
import {loadFont as loadMono} from '@remotion/google-fonts/JetBrainsMono';
|
|
5
|
+
loadDisplay('normal', {weights: ['400', '500', '600', '700'], subsets: ['latin']});
|
|
6
|
+
loadMono('normal', {weights: ['400', '500'], subsets: ['latin']});
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import React, {createContext, useContext} from 'react';
|
|
2
|
+
export type Format = '16:9'|'1:1'|'4:5'|'9:16';
|
|
3
|
+
export type Platform = 'wide'|'tiktok'|'reels'|'ig-feed';
|
|
4
|
+
export const FormatCtx=createContext<{format:Format;platform:Platform}>({format:'16:9',platform:'wide'});
|
|
5
|
+
export const useFormat=()=>useContext(FormatCtx);
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export type Geometry={format:string;platform:string;width:number;height:number;insets:{left:number;right:number;top:number;bottom:number};safe:{x:number;y:number;width:number;height:number};zones:{top:number[];center:number[];bottom:number[]}};
|
|
2
|
+
export function geometry(format?:string,platform?:string):Geometry;
|