sinapse-ai 9.3.0 → 9.4.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/.claude/CLAUDE.md +56 -343
- package/.claude/rules/agent-authority.md +6 -0
- package/.claude/rules/agent-handoff.md +5 -0
- package/.claude/rules/cross-squad-routing.md +5 -0
- package/.claude/rules/hook-governance.md +6 -0
- package/.claude/rules/mcp-usage.md +3 -1
- package/.claude/rules/safe-collaboration.md +10 -0
- package/.claude/rules/security-data-protection.md +9 -0
- package/.claude/rules/squad-awareness.md +3 -1
- package/.claude/rules/tool-examples.md +6 -0
- package/.claude/rules/workflow-execution.md +7 -0
- package/.codex/agents/analyst.md +253 -72
- package/.codex/agents/architect.md +455 -68
- package/.codex/agents/data-engineer.md +492 -106
- package/.codex/agents/developer.md +560 -0
- package/.codex/agents/devops.md +518 -69
- package/.codex/agents/product-lead.md +335 -0
- package/.codex/agents/project-lead.md +377 -0
- package/.codex/agents/quality-gate.md +449 -0
- package/.codex/agents/sinapse-orqx.md +9 -7
- package/.codex/agents/sprint-lead.md +287 -0
- package/.codex/agents/squad-creator.md +344 -0
- package/.codex/agents/ux-design-expert.md +495 -0
- package/.codex/delegation-matrix.json +756 -44
- package/.codex/handoff-packet.schema.json +30 -6
- package/.sinapse-ai/data/entity-registry.yaml +175 -363
- package/.sinapse-ai/data/registry-update-log.jsonl +16 -0
- package/.sinapse-ai/development/agents/analyst.md +90 -0
- package/.sinapse-ai/development/agents/architect.md +73 -0
- package/.sinapse-ai/development/agents/developer.md +69 -0
- package/.sinapse-ai/development/agents/devops.md +117 -0
- package/.sinapse-ai/development/agents/quality-gate.md +85 -0
- package/.sinapse-ai/development/checklists/agent-quality-gate.md +27 -0
- package/.sinapse-ai/development/checklists/brownfield-compatibility-checklist.md +20 -0
- package/.sinapse-ai/development/checklists/code-review-checklist.md +106 -0
- package/.sinapse-ai/development/checklists/issue-triage-checklist.md +9 -0
- package/.sinapse-ai/development/checklists/memory-audit-checklist.md +16 -0
- package/.sinapse-ai/development/checklists/pr-quality-checklist.md +72 -0
- package/.sinapse-ai/development/checklists/security-deployment-checklist.md +54 -0
- package/.sinapse-ai/development/checklists/self-critique-checklist.md +19 -1
- package/.sinapse-ai/development/skills/debug.md +57 -0
- package/.sinapse-ai/development/skills/fast-review.md +69 -0
- package/.sinapse-ai/development/skills/research-synthesis.md +77 -0
- package/.sinapse-ai/development/skills/security-scan.md +73 -0
- package/.sinapse-ai/development/skills/verify.md +53 -0
- package/.sinapse-ai/development/templates/squad/agent-template.md +17 -4
- package/.sinapse-ai/development/templates/squad/checklist-template.md +13 -5
- package/.sinapse-ai/development/templates/squad/task-template.md +7 -0
- package/.sinapse-ai/development/templates/squad/workflow-template.yaml +7 -0
- package/.sinapse-ai/development/workflows/fast-track.yaml +87 -0
- package/.sinapse-ai/infrastructure/scripts/validate-codex-delegation.js +3 -1
- package/.sinapse-ai/install-manifest.yaml +71 -35
- package/docs/codex-integration-process.md +22 -0
- package/docs/codex-parity-program.md +27 -0
- package/docs/ide-integration.md +36 -0
- package/package.json +1 -1
- package/squads/claude-code-mastery/knowledge-base/claude-code-internals-reference.md +927 -0
- package/squads/squad-brand/knowledge-base/archetype-brand-mapping.md +12 -1
- package/squads/squad-brand/knowledge-base/brand-activism-cultural-branding.md +216 -0
- package/squads/squad-brand/knowledge-base/brand-audit-criteria.md +58 -0
- package/squads/squad-brand/knowledge-base/brand-digital-strategy.md +188 -0
- package/squads/squad-brand/knowledge-base/brand-legal-ip.md +222 -0
- package/squads/squad-brand/knowledge-base/brand-naming-framework.md +163 -0
- package/squads/squad-brand/knowledge-base/branding-master-reference.md +1001 -0
- package/squads/squad-brand/knowledge-base/color-psychology.md +25 -12
- package/squads/squad-brand/knowledge-base/employer-personal-branding.md +206 -0
- package/squads/squad-brand/knowledge-base/routing-catalog.md +34 -0
- package/squads/squad-brand/knowledge-base/sonic-branding-principles.md +6 -1
- package/squads/squad-brand/knowledge-base/typography-personality.md +34 -0
- package/squads/squad-claude/knowledge-base/context-window-optimization.md +334 -0
- package/squads/squad-claude/knowledge-base/knowledge-architecture-reference.md +403 -0
- package/squads/squad-claude/knowledge-base/memory-systems-reference.md +412 -0
- package/squads/squad-claude/knowledge-base/obsidian-claude-integration.md +423 -0
- package/squads/squad-claude/knowledge-base/retrieval-augmented-generation.md +320 -0
- package/squads/squad-claude/knowledge-base/skill-creation-patterns.md +380 -0
- package/squads/squad-claude/knowledge-base/swarm-orchestration-patterns.md +411 -0
- package/squads/squad-cloning/knowledge-base/clone-quality-assurance.md +211 -0
- package/squads/squad-cloning/knowledge-base/confidence-scoring.md +51 -0
- package/squads/squad-cloning/knowledge-base/cross-squad-deployment.md +47 -0
- package/squads/squad-cloning/knowledge-base/ethical-guidelines.md +237 -0
- package/squads/squad-cloning/knowledge-base/knowledge-graph-for-clones.md +295 -0
- package/squads/squad-cloning/knowledge-base/memory-architecture-for-clones.md +229 -0
- package/squads/squad-cloning/knowledge-base/multi-agent-deployment-patterns.md +320 -0
- package/squads/squad-cloning/knowledge-base/skill-standard-for-clones.md +262 -0
- package/squads/squad-cloning/knowledge-base/sop-extraction-guide.md +243 -0
- package/squads/squad-commercial/knowledge-base/account-based-selling.md +206 -0
- package/squads/squad-commercial/knowledge-base/ai-as-competitive-infrastructure.md +14 -0
- package/squads/squad-commercial/knowledge-base/ai-in-sales.md +199 -0
- package/squads/squad-commercial/knowledge-base/brazilian-sales-context.md +195 -0
- package/squads/squad-commercial/knowledge-base/customer-success-operations.md +83 -2
- package/squads/squad-commercial/knowledge-base/prospecting-pipeline-generation.md +69 -0
- package/squads/squad-commercial/knowledge-base/sales-enablement-playbook.md +260 -0
- package/squads/squad-commercial/knowledge-base/sales-methodology-comparison.md +185 -0
- package/squads/squad-commercial/knowledge-base/sales-revenue-master-reference.md +1123 -0
- package/squads/squad-content/knowledge-base/brazilian-content-context.md +176 -0
- package/squads/squad-content/knowledge-base/competitor-analysis-methods.md +40 -1
- package/squads/squad-content/knowledge-base/content-architecture-taxonomy.md +206 -0
- package/squads/squad-content/knowledge-base/content-formats-encyclopedia.md +58 -1
- package/squads/squad-content/knowledge-base/content-references-bibliography.md +130 -0
- package/squads/squad-content/knowledge-base/content-strategy-master-reference.md +1097 -0
- package/squads/squad-content/knowledge-base/content-tech-stack.md +150 -0
- package/squads/squad-content/knowledge-base/copywriting-formulas-library.md +188 -0
- package/squads/squad-content/knowledge-base/email-newsletter-strategy.md +161 -0
- package/squads/squad-content/knowledge-base/platform-algorithm-intelligence.md +86 -1
- package/squads/squad-content/knowledge-base/social-algorithms-master-reference.md +1007 -0
- package/squads/squad-content/knowledge-base/video-audio-content-playbook.md +218 -0
- package/squads/squad-copy/knowledge-base/ai-copy-production.md +254 -0
- package/squads/squad-copy/knowledge-base/brazilian-copywriting-context.md +242 -0
- package/squads/squad-copy/knowledge-base/email-copywriting-system.md +299 -0
- package/squads/squad-copy/knowledge-base/landing-page-copy-architecture.md +267 -0
- package/squads/squad-copy/knowledge-base/power-words-catalog.md +205 -0
- package/squads/squad-copy/knowledge-base/seo-copywriting.md +255 -0
- package/squads/squad-copy/knowledge-base/video-script-copywriting.md +239 -0
- package/squads/squad-council/knowledge-base/brand-strategy-models.md +193 -0
- package/squads/squad-council/knowledge-base/growth-strategy-models.md +267 -0
- package/squads/squad-council/knowledge-base/innovation-disruption-frameworks.md +193 -0
- package/squads/squad-council/knowledge-base/market-analysis-frameworks.md +240 -0
- package/squads/squad-council/knowledge-base/organizational-leadership-models.md +212 -0
- package/squads/squad-council/knowledge-base/sales-strategy-models.md +215 -0
- package/squads/squad-courses/knowledge-base/course-launch-strategy.md +251 -0
- package/squads/squad-courses/knowledge-base/domain-advocacia-curriculum.md +385 -0
- package/squads/squad-courses/knowledge-base/domain-contabilidade-curriculum.md +266 -0
- package/squads/squad-courses/knowledge-base/platform-comparison.md +68 -0
- package/squads/squad-courses/knowledge-base/video-production-guide.md +70 -0
- package/squads/squad-cybersecurity/knowledge-base/cloud-security-reference.md +363 -0
- package/squads/squad-cybersecurity/knowledge-base/compliance-frameworks.md +273 -0
- package/squads/squad-cybersecurity/knowledge-base/database-security.md +438 -0
- package/squads/squad-cybersecurity/knowledge-base/incident-response-playbook.md +420 -0
- package/squads/squad-cybersecurity/knowledge-base/network-security-reference.md +477 -0
- package/squads/squad-cybersecurity/knowledge-base/penetration-testing-methodology.md +350 -0
- package/squads/squad-cybersecurity/knowledge-base/vulnerability-management.md +349 -0
- package/squads/squad-design/knowledge-base/brazilian-design-context.md +223 -0
- package/squads/squad-design/knowledge-base/component-api-patterns.md +208 -4
- package/squads/squad-design/knowledge-base/design-system-master-reference.md +1302 -0
- package/squads/squad-design/knowledge-base/design-systems-frameworks.md +91 -1
- package/squads/squad-design/knowledge-base/responsive-modern-css.md +96 -4
- package/squads/squad-design/knowledge-base/wcag-aria-reference.md +117 -5
- package/squads/squad-design/knowledge-base/web-performance-reference.md +127 -4
- package/squads/squad-finance/knowledge-base/brazilian-taxation.md +263 -0
- package/squads/squad-finance/knowledge-base/contabilidade-master-reference.md +998 -0
- package/squads/squad-finance/knowledge-base/finance-master-reference.md +946 -0
- package/squads/squad-finance/knowledge-base/financial-reporting-analysis.md +316 -0
- package/squads/squad-finance/knowledge-base/fintech-brazilian-context.md +242 -0
- package/squads/squad-finance/knowledge-base/fpa-planning-frameworks.md +286 -0
- package/squads/squad-finance/knowledge-base/ma-and-transactions.md +285 -0
- package/squads/squad-finance/knowledge-base/risk-management.md +233 -0
- package/squads/squad-finance/knowledge-base/startups-venture-capital.md +337 -0
- package/squads/squad-growth/knowledge-base/ai-growth-playbook.md +216 -0
- package/squads/squad-growth/knowledge-base/attribution-models.md +78 -0
- package/squads/squad-growth/knowledge-base/brazilian-growth-context.md +208 -0
- package/squads/squad-growth/knowledge-base/community-led-growth.md +175 -0
- package/squads/squad-growth/knowledge-base/content-marketing-flywheel.md +190 -0
- package/squads/squad-growth/knowledge-base/email-lifecycle-framework.md +192 -0
- package/squads/squad-growth/knowledge-base/growth-frameworks-catalog.md +82 -0
- package/squads/squad-growth/knowledge-base/growth-master-reference.md +1168 -0
- package/squads/squad-growth/knowledge-base/routing-catalog.md +53 -11
- package/squads/squad-paidmedia/knowledge-base/audiences-segmentation-deep.md +285 -0
- package/squads/squad-paidmedia/knowledge-base/creative-strategy-deep.md +294 -0
- package/squads/squad-paidmedia/knowledge-base/google-ads-account-architecture.md +87 -0
- package/squads/squad-paidmedia/knowledge-base/meta-ads-campaign-architecture.md +76 -0
- package/squads/squad-paidmedia/knowledge-base/paid-media-metrics-reference.md +117 -0
- package/squads/squad-paidmedia/knowledge-base/paid-traffic-master-reference.md +1308 -0
- package/squads/squad-paidmedia/knowledge-base/routing-catalog.md +95 -18
- package/squads/squad-paidmedia/knowledge-base/traffic-masters-frameworks.md +71 -0
- package/squads/squad-product/knowledge-base/brazilian-product-context.md +284 -0
- package/squads/squad-product/knowledge-base/discovery-methodology-playbook.md +141 -0
- package/squads/squad-product/knowledge-base/pm-frameworks-reference.md +125 -9
- package/squads/squad-product/knowledge-base/product-analytics-formulas.md +72 -0
- package/squads/squad-product/knowledge-base/product-led-growth-reference.md +155 -13
- package/squads/squad-product/knowledge-base/product-market-fit-framework.md +222 -0
- package/squads/squad-product/knowledge-base/routing-catalog.md +32 -0
- package/squads/squad-research/knowledge-base/agentic-second-brain-reference.md +591 -0
- package/squads/squad-research/knowledge-base/ai-augmented-research.md +212 -0
- package/squads/squad-research/knowledge-base/brazilian-market-research-sources.md +197 -0
- package/squads/squad-research/knowledge-base/community-platforms-reference.md +786 -0
- package/squads/squad-research/knowledge-base/community-research-methods.md +194 -0
- package/squads/squad-research/knowledge-base/mixed-methods-research-design.md +168 -0
- package/squads/squad-research/knowledge-base/network-effects-analysis.md +192 -0
- package/squads/squad-research/knowledge-base/qualitative-research-deep-methods.md +202 -0
- package/squads/squad-research/knowledge-base/quantitative-research-methods.md +208 -0
- package/squads/squad-research/knowledge-base/research-frameworks-encyclopedia.md +40 -0
- package/squads/squad-research/knowledge-base/research-synthesis-frameworks.md +223 -0
- package/squads/squad-storytelling/knowledge-base/brand-mythology-framework.md +236 -0
- package/squads/squad-storytelling/knowledge-base/brazilian-storytelling-context.md +237 -0
- package/squads/squad-storytelling/knowledge-base/data-storytelling.md +232 -0
- package/squads/squad-storytelling/knowledge-base/improv-storytelling.md +226 -0
- package/squads/squad-storytelling/knowledge-base/persuasion-narrative-techniques.md +269 -0
- package/squads/squad-storytelling/knowledge-base/social-movement-narratives.md +191 -0
- package/squads/squad-storytelling/knowledge-base/video-storytelling.md +252 -0
- package/squads/claude-code-mastery/data/swarm-orchestration-patterns.yaml +0 -378
- package/squads/squad-animations/knowledge-base/framer-motion-complete-reference.md +0 -710
- package/squads/squad-animations/knowledge-base/web-animations-api-view-transitions.md +0 -478
|
@@ -1,478 +0,0 @@
|
|
|
1
|
-
# Web Animations API + View Transitions API — Native Browser Animations
|
|
2
|
-
|
|
3
|
-
> APIs nativas do browser para animacoes sem dependencias externas.
|
|
4
|
-
> Complementam GSAP/Framer Motion com acesso de baixo nivel e zero bundle cost.
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 1. Web Animations API (WAAPI)
|
|
9
|
-
|
|
10
|
-
API nativa que expoe o mesmo motor de animacao que CSS usa internamente.
|
|
11
|
-
Zero dependencias, excelente para animacoes programaticas e performance-critical.
|
|
12
|
-
|
|
13
|
-
### Suporte
|
|
14
|
-
- Chrome 36+, Firefox 48+, Safari 13.1+
|
|
15
|
-
- Suporte completo (incluindo `KeyframeEffect`) em todos os browsers modernos
|
|
16
|
-
|
|
17
|
-
### Animacao basica
|
|
18
|
-
|
|
19
|
-
```javascript
|
|
20
|
-
// Equivalente a CSS animation: fadeIn 0.3s ease-out forwards;
|
|
21
|
-
const element = document.querySelector('.card');
|
|
22
|
-
|
|
23
|
-
const animation = element.animate(
|
|
24
|
-
[
|
|
25
|
-
{ opacity: 0, transform: 'translateY(20px)' }, // keyframe 0%
|
|
26
|
-
{ opacity: 1, transform: 'translateY(0)' } // keyframe 100%
|
|
27
|
-
],
|
|
28
|
-
{
|
|
29
|
-
duration: 300,
|
|
30
|
-
easing: 'cubic-bezier(0.16, 1, 0.3, 1)',
|
|
31
|
-
fill: 'forwards', // Manter estado final
|
|
32
|
-
delay: 0,
|
|
33
|
-
iterations: 1,
|
|
34
|
-
}
|
|
35
|
-
);
|
|
36
|
-
|
|
37
|
-
// Promises para sequenciamento
|
|
38
|
-
await animation.finished;
|
|
39
|
-
// Proximo passo aqui
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
### Controle imperativo (vantagem sobre CSS)
|
|
43
|
-
|
|
44
|
-
```javascript
|
|
45
|
-
const animation = element.animate(keyframes, options);
|
|
46
|
-
|
|
47
|
-
animation.pause(); // Pausar
|
|
48
|
-
animation.play(); // Reproduzir
|
|
49
|
-
animation.reverse(); // Inverter direcao
|
|
50
|
-
animation.cancel(); // Cancelar (volta ao estado original)
|
|
51
|
-
animation.finish(); // Pular para o fim
|
|
52
|
-
|
|
53
|
-
// Controlar tempo diretamente
|
|
54
|
-
animation.currentTime = 150; // Ir para 150ms
|
|
55
|
-
animation.playbackRate = 2; // Velocidade 2x
|
|
56
|
-
|
|
57
|
-
// Estado
|
|
58
|
-
animation.playState; // "running" | "paused" | "finished" | "idle"
|
|
59
|
-
animation.ready; // Promise que resolve quando comeca
|
|
60
|
-
animation.finished; // Promise que resolve quando termina
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
### Keyframe Effects — Composicao
|
|
64
|
-
|
|
65
|
-
```javascript
|
|
66
|
-
// KeyframeEffect permite reutilizar keyframes
|
|
67
|
-
const fadeInKeyframes = new KeyframeEffect(
|
|
68
|
-
null, // Elemento adicionado depois
|
|
69
|
-
[{ opacity: 0 }, { opacity: 1 }],
|
|
70
|
-
{ duration: 300, fill: 'forwards' }
|
|
71
|
-
);
|
|
72
|
-
|
|
73
|
-
// Reutilizar para multiplos elementos
|
|
74
|
-
document.querySelectorAll('.card').forEach((card, index) => {
|
|
75
|
-
const effect = new KeyframeEffect(
|
|
76
|
-
card,
|
|
77
|
-
fadeInKeyframes.getKeyframes(),
|
|
78
|
-
{
|
|
79
|
-
...fadeInKeyframes.getTiming(),
|
|
80
|
-
delay: index * 50, // Stagger
|
|
81
|
-
}
|
|
82
|
-
);
|
|
83
|
-
new Animation(effect, document.timeline).play();
|
|
84
|
-
});
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### GroupEffect + SequenceEffect (Animation Worklet)
|
|
88
|
-
|
|
89
|
-
```javascript
|
|
90
|
-
// Sequencia de animacoes (experimental — Chrome only)
|
|
91
|
-
const group = new GroupEffect([
|
|
92
|
-
new KeyframeEffect(title, [{ opacity: 0 }, { opacity: 1 }], 500),
|
|
93
|
-
new KeyframeEffect(subtitle, [{ opacity: 0 }, { opacity: 1 }], { duration: 500, delay: 200 }),
|
|
94
|
-
]);
|
|
95
|
-
new Animation(group).play();
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### getAnimations() — Inspecao e Controle
|
|
99
|
-
|
|
100
|
-
```javascript
|
|
101
|
-
// Pausar TODAS as animacoes de um elemento
|
|
102
|
-
element.getAnimations().forEach(anim => anim.pause());
|
|
103
|
-
|
|
104
|
-
// Pausar animacoes da pagina inteira (menu "pause animations")
|
|
105
|
-
document.getAnimations().forEach(anim => anim.pause());
|
|
106
|
-
|
|
107
|
-
// Listar animacoes CSS em andamento
|
|
108
|
-
const cssAnimations = element.getAnimations().filter(a => a instanceof CSSAnimation);
|
|
109
|
-
const cssTransitions = element.getAnimations().filter(a => a instanceof CSSTransition);
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
### Scroll Timeline (CSS nativa + WAAPI)
|
|
113
|
-
|
|
114
|
-
```javascript
|
|
115
|
-
// Criar scroll timeline programaticamente
|
|
116
|
-
const scrollTimeline = new ScrollTimeline({
|
|
117
|
-
source: document.scrollingElement,
|
|
118
|
-
axis: 'block', // "block" (vertical) | "inline" (horizontal)
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
// Animar com scroll como timeline
|
|
122
|
-
element.animate(
|
|
123
|
-
[
|
|
124
|
-
{ opacity: 0, transform: 'translateY(50px)' },
|
|
125
|
-
{ opacity: 1, transform: 'translateY(0)' }
|
|
126
|
-
],
|
|
127
|
-
{
|
|
128
|
-
duration: 1000,
|
|
129
|
-
timeline: scrollTimeline,
|
|
130
|
-
rangeStart: 'entry 0%', // Quando elemento entra no viewport
|
|
131
|
-
rangeEnd: 'entry 100%', // Quando elemento terminou de entrar
|
|
132
|
-
fill: 'both',
|
|
133
|
-
}
|
|
134
|
-
);
|
|
135
|
-
|
|
136
|
-
// View timeline — para animacoes baseadas em visibilidade de elemento
|
|
137
|
-
const viewTimeline = new ViewTimeline({ subject: element });
|
|
138
|
-
|
|
139
|
-
otherElement.animate(
|
|
140
|
-
[{ opacity: 0 }, { opacity: 1 }],
|
|
141
|
-
{
|
|
142
|
-
duration: 1000,
|
|
143
|
-
timeline: viewTimeline,
|
|
144
|
-
rangeStart: 'entry 20%',
|
|
145
|
-
rangeEnd: 'entry 80%',
|
|
146
|
-
fill: 'both',
|
|
147
|
-
}
|
|
148
|
-
);
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
---
|
|
152
|
-
|
|
153
|
-
## 2. CSS Scroll-Driven Animations (Native)
|
|
154
|
-
|
|
155
|
-
CSS puro para animacoes baseadas em scroll. Chrome 115+. Zero JavaScript.
|
|
156
|
-
|
|
157
|
-
### animation-timeline: scroll()
|
|
158
|
-
|
|
159
|
-
```css
|
|
160
|
-
/* Barra de progresso de leitura */
|
|
161
|
-
@keyframes progress {
|
|
162
|
-
from { width: 0%; }
|
|
163
|
-
to { width: 100%; }
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
.reading-progress {
|
|
167
|
-
position: fixed;
|
|
168
|
-
top: 0; left: 0;
|
|
169
|
-
height: 4px;
|
|
170
|
-
background: #0066ff;
|
|
171
|
-
animation: progress linear;
|
|
172
|
-
animation-timeline: scroll(root block); /* scroll(elemento eixo) */
|
|
173
|
-
animation-fill-mode: both;
|
|
174
|
-
}
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
### animation-timeline: view()
|
|
178
|
-
|
|
179
|
-
```css
|
|
180
|
-
/* Reveal ao entrar no viewport — zero JS */
|
|
181
|
-
@keyframes reveal {
|
|
182
|
-
from {
|
|
183
|
-
opacity: 0;
|
|
184
|
-
transform: translateY(50px);
|
|
185
|
-
}
|
|
186
|
-
to {
|
|
187
|
-
opacity: 1;
|
|
188
|
-
transform: translateY(0);
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
.scroll-reveal {
|
|
193
|
-
animation: reveal linear;
|
|
194
|
-
animation-timeline: view();
|
|
195
|
-
/* Quando o elemento aparece ate quando termina de aparecer */
|
|
196
|
-
animation-range: entry 0% entry 100%;
|
|
197
|
-
animation-fill-mode: both;
|
|
198
|
-
}
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### animation-range — Controle Fino
|
|
202
|
-
|
|
203
|
-
```css
|
|
204
|
-
/* Diferentes ranges para diferentes efeitos */
|
|
205
|
-
|
|
206
|
-
/* Animar enquanto entra no viewport */
|
|
207
|
-
.fade-in {
|
|
208
|
-
animation-range: entry 0% entry 50%;
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
/* Animar enquanto sai do viewport */
|
|
212
|
-
.fade-out {
|
|
213
|
-
animation-range: exit 0% exit 100%;
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/* Conteiner coberto — animar quando conteudo cobre o elemento */
|
|
217
|
-
.parallax-bg {
|
|
218
|
-
animation-range: cover 0% cover 100%;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/* Intervalo explicito em pixels/% */
|
|
222
|
-
.timed-reveal {
|
|
223
|
-
animation-range: entry 20% cover 60%;
|
|
224
|
-
}
|
|
225
|
-
```
|
|
226
|
-
|
|
227
|
-
### Named scroll timelines
|
|
228
|
-
|
|
229
|
-
```css
|
|
230
|
-
/* Definir timeline em ancestral */
|
|
231
|
-
.scroll-container {
|
|
232
|
-
overflow: scroll;
|
|
233
|
-
scroll-timeline: --my-scroll block; /* nome e eixo */
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
/* Usar timeline nomeada em descendente */
|
|
237
|
-
.animated-child {
|
|
238
|
-
animation: reveal linear;
|
|
239
|
-
animation-timeline: --my-scroll;
|
|
240
|
-
animation-range: entry 0% entry 100%;
|
|
241
|
-
}
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
### Parallax CSS puro
|
|
245
|
-
|
|
246
|
-
```css
|
|
247
|
-
.parallax-element {
|
|
248
|
-
animation: parallax-move linear;
|
|
249
|
-
animation-timeline: scroll();
|
|
250
|
-
animation-fill-mode: both;
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
@keyframes parallax-move {
|
|
254
|
-
from { transform: translateY(0); }
|
|
255
|
-
to { transform: translateY(-200px); }
|
|
256
|
-
}
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
### Suporte e Fallback
|
|
260
|
-
|
|
261
|
-
```css
|
|
262
|
-
/* Verificar suporte */
|
|
263
|
-
@supports (animation-timeline: scroll()) {
|
|
264
|
-
.scroll-reveal {
|
|
265
|
-
animation: reveal linear;
|
|
266
|
-
animation-timeline: view();
|
|
267
|
-
animation-range: entry 0% entry 100%;
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
/* Fallback para browsers sem suporte */
|
|
272
|
-
.scroll-reveal {
|
|
273
|
-
/* Estado visivel como default (sem animacao) */
|
|
274
|
-
opacity: 1;
|
|
275
|
-
transform: none;
|
|
276
|
-
}
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
---
|
|
280
|
-
|
|
281
|
-
## 3. View Transitions API
|
|
282
|
-
|
|
283
|
-
API nativa para transicoes entre paginas e estados UI. Chrome 111+.
|
|
284
|
-
Safari 18+ (cross-document). Firefox em desenvolvimento.
|
|
285
|
-
|
|
286
|
-
### Same-document View Transitions
|
|
287
|
-
|
|
288
|
-
```javascript
|
|
289
|
-
// Transicao de estado simples
|
|
290
|
-
function updateContent(newContent) {
|
|
291
|
-
// Sem suporte — atualiza instantaneamente
|
|
292
|
-
if (!document.startViewTransition) {
|
|
293
|
-
updateDOM(newContent);
|
|
294
|
-
return;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
// Com suporte — anima a transicao
|
|
298
|
-
document.startViewTransition(() => {
|
|
299
|
-
updateDOM(newContent);
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
// Com callback apos animacao
|
|
304
|
-
const transition = document.startViewTransition(updateDOM);
|
|
305
|
-
await transition.ready; // DOM atualizado, animacao iniciada
|
|
306
|
-
await transition.finished; // Animacao completa
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
### CSS para View Transitions
|
|
310
|
-
|
|
311
|
-
```css
|
|
312
|
-
/* Pseudo-elements criados automaticamente */
|
|
313
|
-
::view-transition-old(root) {
|
|
314
|
-
/* O "before" screenshot animando para fora */
|
|
315
|
-
animation: fade-out 0.25s ease-out;
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
::view-transition-new(root) {
|
|
319
|
-
/* O "after" screenshot animando para dentro */
|
|
320
|
-
animation: fade-in 0.25s ease-in;
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
@keyframes fade-out {
|
|
324
|
-
from { opacity: 1; }
|
|
325
|
-
to { opacity: 0; }
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
@keyframes fade-in {
|
|
329
|
-
from { opacity: 0; }
|
|
330
|
-
to { opacity: 1; }
|
|
331
|
-
}
|
|
332
|
-
```
|
|
333
|
-
|
|
334
|
-
### Elementos nomeados (Shared Element Transitions)
|
|
335
|
-
|
|
336
|
-
```css
|
|
337
|
-
/* Dar nome a elemento especifico */
|
|
338
|
-
.hero-image {
|
|
339
|
-
view-transition-name: hero-image;
|
|
340
|
-
}
|
|
341
|
-
|
|
342
|
-
.product-title {
|
|
343
|
-
view-transition-name: product-title;
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
/* Controlar animacao do elemento especifico */
|
|
347
|
-
::view-transition-old(hero-image) {
|
|
348
|
-
animation: scale-down 0.3s ease-out;
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
::view-transition-new(hero-image) {
|
|
352
|
-
animation: scale-up 0.3s ease-out;
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
@keyframes scale-down {
|
|
356
|
-
from { transform: scale(1); }
|
|
357
|
-
to { transform: scale(0.8); opacity: 0; }
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
@keyframes scale-up {
|
|
361
|
-
from { transform: scale(0.8); opacity: 0; }
|
|
362
|
-
to { transform: scale(1); }
|
|
363
|
-
}
|
|
364
|
-
```
|
|
365
|
-
|
|
366
|
-
### Next.js com View Transitions
|
|
367
|
-
|
|
368
|
-
```tsx
|
|
369
|
-
'use client';
|
|
370
|
-
import { useRouter } from 'next/navigation';
|
|
371
|
-
|
|
372
|
-
export function ViewTransitionLink({ href, children }) {
|
|
373
|
-
const router = useRouter();
|
|
374
|
-
|
|
375
|
-
const handleClick = (e: React.MouseEvent) => {
|
|
376
|
-
e.preventDefault();
|
|
377
|
-
|
|
378
|
-
if (!document.startViewTransition) {
|
|
379
|
-
router.push(href);
|
|
380
|
-
return;
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
document.startViewTransition(() => {
|
|
384
|
-
router.push(href);
|
|
385
|
-
});
|
|
386
|
-
};
|
|
387
|
-
|
|
388
|
-
return <a href={href} onClick={handleClick}>{children}</a>;
|
|
389
|
-
}
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
### Cross-document View Transitions (MPA)
|
|
393
|
-
|
|
394
|
-
```html
|
|
395
|
-
<!-- Ativar em cada pagina (Chrome 126+) -->
|
|
396
|
-
<meta name="view-transition" content="same-origin" />
|
|
397
|
-
```
|
|
398
|
-
|
|
399
|
-
```css
|
|
400
|
-
/* CSS e aplicado em ambas as paginas para cross-document */
|
|
401
|
-
.hero {
|
|
402
|
-
view-transition-name: page-hero;
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
/* Na pagina de destino, o mesmo elemento com mesmo nome anima */
|
|
406
|
-
```
|
|
407
|
-
|
|
408
|
-
### Tipos de View Transitions
|
|
409
|
-
|
|
410
|
-
```javascript
|
|
411
|
-
// Transicoes com tipos diferentes para direcoes
|
|
412
|
-
function navigateForward(href) {
|
|
413
|
-
document.startViewTransition({
|
|
414
|
-
update: () => router.push(href),
|
|
415
|
-
types: ['slide-forward'], // CSS pode usar @keyframes com tipo
|
|
416
|
-
});
|
|
417
|
-
}
|
|
418
|
-
|
|
419
|
-
function navigateBack(href) {
|
|
420
|
-
document.startViewTransition({
|
|
421
|
-
update: () => router.push(href),
|
|
422
|
-
types: ['slide-back'],
|
|
423
|
-
});
|
|
424
|
-
}
|
|
425
|
-
```
|
|
426
|
-
|
|
427
|
-
```css
|
|
428
|
-
/* Keyframes seletivos por tipo */
|
|
429
|
-
@keyframes slide-out-left {
|
|
430
|
-
to { transform: translateX(-100%); }
|
|
431
|
-
}
|
|
432
|
-
|
|
433
|
-
@keyframes slide-in-right {
|
|
434
|
-
from { transform: translateX(100%); }
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
/* Aplicar apenas quando tipo = slide-forward */
|
|
438
|
-
:root:active-view-transition-type(slide-forward) {
|
|
439
|
-
&::view-transition-old(root) {
|
|
440
|
-
animation: slide-out-left 0.3s ease-out;
|
|
441
|
-
}
|
|
442
|
-
&::view-transition-new(root) {
|
|
443
|
-
animation: slide-in-right 0.3s ease-out;
|
|
444
|
-
}
|
|
445
|
-
}
|
|
446
|
-
```
|
|
447
|
-
|
|
448
|
-
---
|
|
449
|
-
|
|
450
|
-
## 4. Quando Usar Cada API
|
|
451
|
-
|
|
452
|
-
| Cenario | API Recomendada |
|
|
453
|
-
|---------|----------------|
|
|
454
|
-
| Animacao simples sem dependencias | WAAPI |
|
|
455
|
-
| Scroll reveal CSS-only | CSS Scroll-Driven |
|
|
456
|
-
| Barra de progresso de leitura | CSS Scroll-Driven |
|
|
457
|
-
| Parallax suave sem JS | CSS Scroll-Driven |
|
|
458
|
-
| Page transitions SPA | View Transitions API |
|
|
459
|
-
| Shared element transitions | View Transitions API |
|
|
460
|
-
| Animacoes complexas, timeline | GSAP |
|
|
461
|
-
| Componentes React, micro-interactions | Framer Motion |
|
|
462
|
-
| Controlar/inspecionar CSS animations | WAAPI (getAnimations) |
|
|
463
|
-
| Pausar animacoes (acessibilidade) | WAAPI (document.getAnimations) |
|
|
464
|
-
|
|
465
|
-
---
|
|
466
|
-
|
|
467
|
-
## 5. Suporte a Browsers (2025-2026)
|
|
468
|
-
|
|
469
|
-
| API | Chrome | Firefox | Safari | Edge |
|
|
470
|
-
|-----|--------|---------|--------|------|
|
|
471
|
-
| WAAPI basica | 75+ | 63+ | 13.1+ | 79+ |
|
|
472
|
-
| ScrollTimeline/ViewTimeline | 115+ | Em dev | Nao | 115+ |
|
|
473
|
-
| CSS scroll-driven | 115+ | Em dev | Nao | 115+ |
|
|
474
|
-
| View Transitions (same-doc) | 111+ | Em dev | 18+ | 111+ |
|
|
475
|
-
| View Transitions (cross-doc) | 126+ | Em dev | 18+ | 126+ |
|
|
476
|
-
| View Transition types | 125+ | Nao | Nao | 125+ |
|
|
477
|
-
|
|
478
|
-
**Estrategia de progressive enhancement:** Sempre verificar suporte antes de usar, fornecer fallback funcional.
|