@jaimevalasek/aioson 1.6.0 → 1.7.2
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/CHANGELOG.md +74 -0
- package/README.md +729 -232
- package/docs/design-previews/pt.squarespace.com-homepage.html +889 -0
- package/docs/integrations/sdlc-genius-boundary.md +76 -0
- package/docs/integrations/sdlc-genius-eval-matrix.md +75 -0
- package/docs/integrations/sdlc-genius-install-checklist.md +93 -0
- package/docs/integrations/sdlc-genius-review-samples.md +86 -0
- package/docs/pt/README.md +3 -0
- package/docs/pt/agentes.md +1 -0
- package/docs/pt/comandos-cli.md +888 -2
- package/docs/pt/design-hybrid-forge.md +255 -6
- package/docs/pt/devlog-pipeline.md +270 -0
- package/docs/pt/fluxo-artefatos.md +178 -0
- package/docs/pt/hooks-session-guard.md +454 -0
- package/docs/pt/monitor-de-contexto.md +59 -5
- package/docs/pt/sdd-automation-scripts.md +557 -0
- package/docs/pt/site-forge.md +309 -0
- package/docs/pt/spec-learnings-pipeline.md +265 -0
- package/package.json +1 -1
- package/src/a2a/client.js +165 -0
- package/src/a2a/server.js +223 -0
- package/src/cli.js +235 -1
- package/src/commands/agent-audit.js +397 -0
- package/src/commands/agent-export-skill.js +229 -0
- package/src/commands/artifact-validate.js +189 -0
- package/src/commands/brief-gen.js +405 -0
- package/src/commands/brief-validate.js +65 -0
- package/src/commands/classify.js +256 -0
- package/src/commands/context-compact.js +49 -0
- package/src/commands/context-health.js +175 -0
- package/src/commands/context-monitor.js +71 -0
- package/src/commands/context-trim.js +177 -0
- package/src/commands/detect-test-runner.js +55 -0
- package/src/commands/devlog-export-brains.js +27 -0
- package/src/commands/devlog-process.js +292 -0
- package/src/commands/devlog-watch.js +131 -0
- package/src/commands/feature-close.js +165 -0
- package/src/commands/gate-check.js +228 -0
- package/src/commands/hooks-emit.js +253 -0
- package/src/commands/hooks-install.js +347 -0
- package/src/commands/learning-auto-promote.js +195 -0
- package/src/commands/learning-evolve.js +18 -9
- package/src/commands/learning-export.js +103 -0
- package/src/commands/learning-rollback.js +164 -0
- package/src/commands/live.js +25 -1
- package/src/commands/pattern-detect.js +33 -0
- package/src/commands/preflight-context.js +30 -0
- package/src/commands/preflight.js +208 -0
- package/src/commands/pulse-update.js +130 -0
- package/src/commands/runner-daemon.js +274 -0
- package/src/commands/runner-plan.js +70 -0
- package/src/commands/runner-queue-from-plan.js +166 -0
- package/src/commands/runner-queue.js +189 -0
- package/src/commands/runner-run.js +129 -0
- package/src/commands/runtime.js +47 -1
- package/src/commands/self-implement-loop.js +256 -0
- package/src/commands/session-guard.js +218 -0
- package/src/commands/sizing.js +165 -0
- package/src/commands/skill.js +65 -0
- package/src/commands/spec-checkpoint.js +177 -0
- package/src/commands/spec-status.js +79 -0
- package/src/commands/spec-sync.js +190 -0
- package/src/commands/spec-tasks.js +288 -0
- package/src/commands/squad-autorun.js +1220 -0
- package/src/commands/squad-bus.js +217 -0
- package/src/commands/squad-card.js +149 -0
- package/src/commands/squad-daemon.js +134 -0
- package/src/commands/squad-dependency-graph.js +164 -0
- package/src/commands/squad-review.js +106 -0
- package/src/commands/squad-scaffold.js +55 -0
- package/src/commands/squad-tool-register.js +157 -0
- package/src/commands/state-save.js +122 -0
- package/src/commands/update.js +2 -0
- package/src/commands/verify-gate.js +572 -0
- package/src/commands/workflow-execute.js +241 -0
- package/src/constants.js +22 -0
- package/src/install-profile.js +2 -2
- package/src/install-wizard.js +3 -2
- package/src/installer.js +6 -0
- package/src/lib/health-check.js +158 -0
- package/src/lib/hook-protocol.js +76 -0
- package/src/mcp/apps/squad-dashboard/app.js +163 -0
- package/src/mcp/apps/squad-dashboard/index.html +261 -0
- package/src/mcp/apps/squad-dashboard/mcp-manifest.json +23 -0
- package/src/mcp/resources/squad-state.js +130 -0
- package/src/preflight-engine.js +443 -0
- package/src/runner/cascade.js +97 -0
- package/src/runner/cli-launcher.js +109 -0
- package/src/runner/plan-importer.js +63 -0
- package/src/runner/queue-store.js +159 -0
- package/src/runtime-store.js +61 -3
- package/src/squad/agent-teams-adapter.js +264 -0
- package/src/squad/brief-validator.js +350 -0
- package/src/squad/bus-bridge.js +140 -0
- package/src/squad/context-compactor.js +265 -0
- package/src/squad/cross-ai-synthesizer.js +250 -0
- package/src/squad/hooks-generator.js +196 -0
- package/src/squad/inter-squad-events.js +175 -0
- package/src/squad/intra-bus.js +345 -0
- package/src/squad/learning-extractor.js +213 -0
- package/src/squad/pattern-detector.js +365 -0
- package/src/squad/preflight-context.js +296 -0
- package/src/squad/recovery-context.js +242 -71
- package/src/squad/reflection.js +365 -0
- package/src/squad/squad-scaffold.js +177 -0
- package/src/squad/state-manager.js +310 -0
- package/src/squad/task-decomposer.js +652 -0
- package/src/squad/verify-gate.js +303 -0
- package/src/updater.js +4 -5
- package/src/worker-runner.js +186 -1
- package/template/.aioson/agents/analyst.md +62 -1
- package/template/.aioson/agents/architect.md +61 -1
- package/template/.aioson/agents/copywriter.md +463 -0
- package/template/.aioson/agents/design-hybrid-forge.md +14 -0
- package/template/.aioson/agents/dev.md +271 -25
- package/template/.aioson/agents/deyvin.md +67 -8
- package/template/.aioson/agents/discovery-design-doc.md +44 -0
- package/template/.aioson/agents/genome.md +14 -0
- package/template/.aioson/agents/neo.md +83 -2
- package/template/.aioson/agents/orache.md +50 -4
- package/template/.aioson/agents/orchestrator.md +197 -1
- package/template/.aioson/agents/pm.md +35 -0
- package/template/.aioson/agents/product.md +50 -5
- package/template/.aioson/agents/profiler-enricher.md +14 -0
- package/template/.aioson/agents/profiler-forge.md +14 -0
- package/template/.aioson/agents/profiler-researcher.md +14 -0
- package/template/.aioson/agents/qa.md +273 -21
- package/template/.aioson/agents/setup.md +96 -10
- package/template/.aioson/agents/sheldon.md +131 -6
- package/template/.aioson/agents/site-forge.md +1753 -0
- package/template/.aioson/agents/squad.md +352 -0
- package/template/.aioson/agents/tester.md +53 -0
- package/template/.aioson/agents/ux-ui.md +203 -4
- package/template/.aioson/brains/README.md +128 -0
- package/template/.aioson/brains/_index.json +16 -0
- package/template/.aioson/brains/scripts/query.js +103 -0
- package/template/.aioson/brains/site-forge/visual-patterns.brain.json +205 -0
- package/template/.aioson/config.md +143 -13
- package/template/.aioson/constitution.md +33 -0
- package/template/.aioson/context/project-pulse.md +34 -0
- package/template/.aioson/docs/LAYERS.md +79 -0
- package/template/.aioson/docs/README.md +76 -0
- package/template/.aioson/docs/example-external-api-context.md +72 -0
- package/template/.aioson/genomes/copywriting.md +204 -0
- package/template/.aioson/locales/en/agents/architect.md +17 -0
- package/template/.aioson/locales/en/agents/dev.md +79 -13
- package/template/.aioson/locales/en/agents/orache.md +6 -0
- package/template/.aioson/locales/en/agents/orchestrator.md +24 -0
- package/template/.aioson/locales/en/agents/product.md +50 -0
- package/template/.aioson/locales/en/agents/sheldon.md +115 -0
- package/template/.aioson/locales/en/agents/squad.md +14 -0
- package/template/.aioson/locales/en/agents/tester.md +6 -0
- package/template/.aioson/locales/es/agents/analyst.md +2 -0
- package/template/.aioson/locales/es/agents/architect.md +19 -0
- package/template/.aioson/locales/es/agents/dev.md +64 -4
- package/template/.aioson/locales/es/agents/deyvin.md +2 -0
- package/template/.aioson/locales/es/agents/discovery-design-doc.md +2 -0
- package/template/.aioson/locales/es/agents/genome.md +2 -0
- package/template/.aioson/locales/es/agents/neo.md +2 -0
- package/template/.aioson/locales/es/agents/orache.md +2 -0
- package/template/.aioson/locales/es/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/es/agents/pair.md +2 -0
- package/template/.aioson/locales/es/agents/pm.md +2 -0
- package/template/.aioson/locales/es/agents/product.md +52 -0
- package/template/.aioson/locales/es/agents/profiler-enricher.md +2 -0
- package/template/.aioson/locales/es/agents/profiler-forge.md +2 -0
- package/template/.aioson/locales/es/agents/profiler-researcher.md +2 -0
- package/template/.aioson/locales/es/agents/qa.md +2 -0
- package/template/.aioson/locales/es/agents/setup.md +2 -0
- package/template/.aioson/locales/es/agents/sheldon.md +117 -0
- package/template/.aioson/locales/es/agents/squad.md +16 -0
- package/template/.aioson/locales/es/agents/tester.md +9 -0
- package/template/.aioson/locales/es/agents/ux-ui.md +2 -0
- package/template/.aioson/locales/fr/agents/analyst.md +2 -0
- package/template/.aioson/locales/fr/agents/architect.md +19 -0
- package/template/.aioson/locales/fr/agents/dev.md +64 -4
- package/template/.aioson/locales/fr/agents/deyvin.md +2 -0
- package/template/.aioson/locales/fr/agents/discovery-design-doc.md +2 -0
- package/template/.aioson/locales/fr/agents/genome.md +2 -0
- package/template/.aioson/locales/fr/agents/neo.md +2 -0
- package/template/.aioson/locales/fr/agents/orache.md +2 -0
- package/template/.aioson/locales/fr/agents/orchestrator.md +26 -0
- package/template/.aioson/locales/fr/agents/pair.md +2 -0
- package/template/.aioson/locales/fr/agents/pm.md +2 -0
- package/template/.aioson/locales/fr/agents/product.md +52 -0
- package/template/.aioson/locales/fr/agents/profiler-enricher.md +2 -0
- package/template/.aioson/locales/fr/agents/profiler-forge.md +2 -0
- package/template/.aioson/locales/fr/agents/profiler-researcher.md +2 -0
- package/template/.aioson/locales/fr/agents/qa.md +2 -0
- package/template/.aioson/locales/fr/agents/setup.md +2 -0
- package/template/.aioson/locales/fr/agents/sheldon.md +117 -0
- package/template/.aioson/locales/fr/agents/squad.md +16 -0
- package/template/.aioson/locales/fr/agents/tester.md +9 -0
- package/template/.aioson/locales/fr/agents/ux-ui.md +2 -0
- package/template/.aioson/locales/pt-BR/agents/analyst.md +64 -3
- package/template/.aioson/locales/pt-BR/agents/architect.md +42 -0
- package/template/.aioson/locales/pt-BR/agents/dev.md +147 -14
- package/template/.aioson/locales/pt-BR/agents/deyvin.md +47 -0
- package/template/.aioson/locales/pt-BR/agents/neo.md +62 -1
- package/template/.aioson/locales/pt-BR/agents/orchestrator.md +158 -2
- package/template/.aioson/locales/pt-BR/agents/pm.md +95 -1
- package/template/.aioson/locales/pt-BR/agents/product.md +145 -18
- package/template/.aioson/locales/pt-BR/agents/qa.md +16 -0
- package/template/.aioson/locales/pt-BR/agents/setup.md +101 -18
- package/template/.aioson/locales/pt-BR/agents/sheldon.md +132 -1
- package/template/.aioson/locales/pt-BR/agents/squad.md +14 -0
- package/template/.aioson/locales/pt-BR/agents/tester.md +449 -0
- package/template/.aioson/rules/README.md +69 -0
- package/template/.aioson/rules/data-format-convention.md +136 -0
- package/template/.aioson/rules/example-monetary-values.md +30 -0
- package/template/.aioson/schemas/squad-manifest.schema.json +124 -3
- package/template/.aioson/skills/design/cognitive-core-ui/references/motion.md +2 -0
- package/template/.aioson/skills/design/pt.squarespace.com/.skill-meta.json +31 -0
- package/template/.aioson/skills/design/pt.squarespace.com/SKILL.md +66 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/components.md +368 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/design-tokens.md +150 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/motion.md +270 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/patterns.md +189 -0
- package/template/.aioson/skills/design/pt.squarespace.com/references/websites.md +165 -0
- package/template/.aioson/skills/marketing/references/anti-patterns.md +254 -0
- package/template/.aioson/skills/marketing/references/fascinations.md +192 -0
- package/template/.aioson/skills/marketing/references/five-acts.md +248 -0
- package/template/.aioson/skills/marketing/references/market-intelligence.md +198 -0
- package/template/.aioson/skills/marketing/references/offer-structure.md +203 -0
- package/template/.aioson/skills/marketing/references/one-belief.md +149 -0
- package/template/.aioson/skills/marketing/references/patterns.md +218 -0
- package/template/.aioson/skills/marketing/references/pms-research.md +193 -0
- package/template/.aioson/skills/marketing/vsl-craft.md +385 -0
- package/template/.aioson/skills/process/aioson-spec-driven/SKILL.md +1 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/analyst.md +30 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/architect.md +23 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/dev.md +47 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/deyvin.md +27 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/maintenance-and-state.md +35 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/product.md +25 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/qa.md +30 -0
- package/template/.aioson/skills/process/aioson-spec-driven/references/sheldon.md +25 -0
- package/template/.aioson/skills/process/design-hybrid-forge/SKILL.md +4 -1
- package/template/.aioson/skills/process/design-hybrid-forge/references/output-contract.md +15 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/pair-compatibility.md +32 -0
- package/template/.aioson/skills/process/design-hybrid-forge/references/quality-gates.md +20 -0
- package/template/.aioson/skills/process/simplify/SKILL.md +173 -0
- package/template/.aioson/skills/static/context-budget-guide.md +46 -0
- package/template/.aioson/skills/static/harness-sensors.md +74 -0
- package/template/.aioson/skills/static/landing-page-deploy.md +192 -0
- package/template/.aioson/skills/static/landing-page-forge.md +730 -0
- package/template/.aioson/skills/static/multi-agent-patterns.md +43 -0
- package/template/.aioson/skills/static/react-motion-patterns.md +22 -0
- package/template/.aioson/skills/static/static-html-patterns/checklists.md +43 -0
- package/template/.aioson/skills/static/static-html-patterns/css-tokens.md +609 -0
- package/template/.aioson/skills/static/static-html-patterns/motion.md +193 -0
- package/template/.aioson/skills/static/static-html-patterns/premium.md +711 -0
- package/template/.aioson/skills/static/static-html-patterns/structure.md +209 -0
- package/template/.aioson/skills/static/static-html-patterns/utilities.md +190 -0
- package/template/.aioson/skills/static/static-html-patterns.md +58 -1913
- package/template/.aioson/skills/static/threejs-patterns.md +929 -0
- package/template/.aioson/skills/static/ui-ux-modern.md +1 -0
- package/template/.aioson/skills/static/web-research-cache.md +112 -0
- package/template/.aioson/tasks/implementation-plan.md +21 -1
- package/template/.aioson/tasks/squad-create.md +22 -0
- package/template/.aioson/tasks/squad-design.md +30 -0
- package/template/.aioson/templates/squads/digital-marketing-agency/template.json +96 -0
- package/template/.claude/commands/aioson/agent/design-hybrid-forge.md +5 -0
- package/template/.claude/commands/aioson/agent/orache.md +5 -0
- package/template/.claude/commands/aioson/agent/sheldon.md +5 -0
- package/template/.claude/commands/aioson/agent/site-forge.md +5 -0
- package/template/AGENTS.md +55 -3
- package/template/CLAUDE.md +31 -0
- package/template/OPENCODE.md +4 -0
- package/template/researchs/.gitkeep +0 -0
- package/template/.aioson/skills/design-system/components/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/dashboards/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/foundations/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/motion/SKILL.md:Zone.Identifier +0 -0
- package/template/.aioson/skills/design-system/patterns/SKILL.md:Zone.Identifier +0 -0
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
# Motion — pt.squarespace.com
|
|
2
|
+
|
|
3
|
+
## Motion Philosophy
|
|
4
|
+
|
|
5
|
+
CSS-first, no third-party animation libraries. All animations implemented via `@keyframes` + class toggling + `IntersectionObserver`. Fast micro-interactions (300–500ms), slow scroll reveals (800–1200ms). Easing is smooth deceleration (`cubic-bezier(0.23, 1, 0.32, 1)`) for reveals and power (`cubic-bezier(0.645, 0.045, 0.355, 1)`) for CTA interactions.
|
|
6
|
+
|
|
7
|
+
**No GSAP. No Framer Motion. No AOS. No Lottie.** Pure CSS + vanilla JS.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Timing Functions
|
|
12
|
+
|
|
13
|
+
| Token | Value | Usage |
|
|
14
|
+
|-------|-------|-------|
|
|
15
|
+
| `--ease-default` | `cubic-bezier(0.455, 0.03, 0.515, 0.955)` | General transitions |
|
|
16
|
+
| `--ease-sqsp-reveal` | `cubic-bezier(0.23, 1, 0.32, 1)` | Scroll reveals, stats (the Squarespace signature ease) |
|
|
17
|
+
| `--ease-sqsp-cta` | `cubic-bezier(0.645, 0.045, 0.355, 1)` | CTA hover, mobile menu, dropdowns |
|
|
18
|
+
| `--ease-sqsp-menu` | `cubic-bezier(0.165, 0.84, 0.44, 1)` | Mobile menu swipe, accordion |
|
|
19
|
+
| `--ease-out` | `ease-out` | Exit animations |
|
|
20
|
+
|
|
21
|
+
## Durations
|
|
22
|
+
|
|
23
|
+
| Token | Value | Usage |
|
|
24
|
+
|-------|-------|-------|
|
|
25
|
+
| `--transition-fast` | `100ms` | Micro color changes |
|
|
26
|
+
| `--transition-base` | `200ms` | Standard hover |
|
|
27
|
+
| `--transition-medium` | `300ms` | Nav dropdowns, CTA hover overlay |
|
|
28
|
+
| `--transition-slow` | `400ms` | Layout transitions |
|
|
29
|
+
| `--transition-reveal` | `800ms` | Scroll-triggered section reveals |
|
|
30
|
+
| `--transition-reveal-slow` | `1200ms` | Stats card reveal |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Extracted @keyframes (verbatim from pt.squarespace.com/css/index.css)
|
|
35
|
+
|
|
36
|
+
### fadeIn
|
|
37
|
+
```css
|
|
38
|
+
@keyframes fadeIn {
|
|
39
|
+
0% { opacity: 0; }
|
|
40
|
+
to { opacity: 1; }
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
**Used on:** `.stats__card` — `1.2s cubic-bezier(0.23, 1, 0.32, 1) forwards`
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
### ctaUnderlineSlideIn / ctaUnderlineSlideOut
|
|
48
|
+
```css
|
|
49
|
+
@keyframes ctaUnderlineSlideIn {
|
|
50
|
+
0% { background-position: -200% 100%, -100% 100%; }
|
|
51
|
+
to { background-position: 0 100%, 100% 100%; }
|
|
52
|
+
}
|
|
53
|
+
@keyframes ctaUnderlineSlideOut {
|
|
54
|
+
0% { background-position: 0 100%, 100% 100%; }
|
|
55
|
+
to { background-position: 210% 100%, 300% 100%; }
|
|
56
|
+
}
|
|
57
|
+
```
|
|
58
|
+
**Used on:** `.cta--tertiary` (text links with sliding underline)
|
|
59
|
+
- Rest state: `0.5s cubic-bezier(0.645, 0.045, 0.355, 1) forwards ctaUnderlineSlideOut`
|
|
60
|
+
- Hover state: `0.5s cubic-bezier(0.645, 0.045, 0.355, 1) forwards ctaUnderlineSlideIn`
|
|
61
|
+
- Requires `background-image: linear-gradient(currentColor, currentColor), linear-gradient(currentColor, currentColor)`
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
### swipeIn / swipeOut
|
|
66
|
+
```css
|
|
67
|
+
@keyframes swipeIn {
|
|
68
|
+
0% { clip-path: polygon(101% 0%, 100% 0%, 101% 100%, 116% 100%); }
|
|
69
|
+
to { clip-path: polygon(0% 0%, 101% 0%, 101% 101%, 0% 101%); }
|
|
70
|
+
}
|
|
71
|
+
@keyframes swipeOut {
|
|
72
|
+
0% { clip-path: polygon(0% 0%, 101% 0%, 101% 101%, 0% 101%); }
|
|
73
|
+
to { clip-path: polygon(105% 0%, 100% 0%, 101% 100%, 100% 100%); }
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
**Used on:** `.global-navigation__mobile-menu`
|
|
77
|
+
- Open: `0.6s cubic-bezier(0.165, 0.84, 0.44, 1) forwards swipeIn`
|
|
78
|
+
- Close: `0.6s cubic-bezier(0.165, 0.84, 0.44, 1) forwards swipeOut`
|
|
79
|
+
- **Signature effect:** The mobile drawer "wipes" in from the right using a clip-path polygon animation — not a `translateX` slide.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
### rotateAnimation
|
|
84
|
+
```css
|
|
85
|
+
@keyframes rotateAnimation {
|
|
86
|
+
0% { transform: rotate(0); }
|
|
87
|
+
22% { transform: rotate(240deg); }
|
|
88
|
+
44% { transform: rotate(480deg); }
|
|
89
|
+
66% { transform: rotate(720deg); }
|
|
90
|
+
to { transform: rotate(720deg); }
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
**Used on:** `.ai-dots` — `14s cubic-bezier(0.645, 0.045, 0.355, 1) infinite`
|
|
94
|
+
- Non-linear rotation: accelerates in bursts, pauses at multiples of 240°.
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### scaleAnimationLarge / Medium / Small (AI dots morphing)
|
|
99
|
+
```css
|
|
100
|
+
@keyframes scaleAnimationLarge {
|
|
101
|
+
0% { transform: var(--defaultTransform); }
|
|
102
|
+
11% { transform: scale(0.403) translate(-20%, -30%); }
|
|
103
|
+
22% { transform: scale(0.403) translate(-20%, -30%); }
|
|
104
|
+
33% { transform: scale(0.64) translate(40%, -45%); }
|
|
105
|
+
44% { transform: scale(0.64) translate(40%, -45%); }
|
|
106
|
+
55% { transform: var(--defaultTransform); }
|
|
107
|
+
to { transform: var(--defaultTransform); }
|
|
108
|
+
}
|
|
109
|
+
@keyframes scaleAnimationMedium {
|
|
110
|
+
0% { transform: var(--defaultTransform); }
|
|
111
|
+
11% { transform: scale(1.56) translate(-10%, -33%); }
|
|
112
|
+
22% { transform: scale(1.56) translate(-10%, -33%); }
|
|
113
|
+
33% { transform: scale(0.63) translate(10%, -85%); }
|
|
114
|
+
44% { transform: scale(0.63) translate(10%, -85%); }
|
|
115
|
+
55% { transform: var(--defaultTransform); }
|
|
116
|
+
to { transform: var(--defaultTransform); }
|
|
117
|
+
}
|
|
118
|
+
@keyframes scaleAnimationSmall {
|
|
119
|
+
0% { transform: var(--defaultTransform); }
|
|
120
|
+
11% { transform: scale(1.59) translate(-45%, -30%); }
|
|
121
|
+
22% { transform: scale(1.59) translate(-45%, -30%); }
|
|
122
|
+
33% { transform: scale(2.48) translate(5%, -15%); }
|
|
123
|
+
44% { transform: scale(2.48) translate(5%, -15%); }
|
|
124
|
+
55% { transform: var(--defaultTransform); }
|
|
125
|
+
to { transform: var(--defaultTransform); }
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
**Used on:** `.ai-dots__dot--large/medium/small` — `var(--defaultTiming) linear infinite`
|
|
129
|
+
- Three dots orbit and morph around each other using coordinated scale+translate.
|
|
130
|
+
- `--defaultTransform` is the rest position (typically `scale(1) translate(0, 0)`).
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
### flip
|
|
135
|
+
```css
|
|
136
|
+
@keyframes flip {
|
|
137
|
+
0% { transform: rotateY(0); }
|
|
138
|
+
12.5% { transform: rotateY(0); }
|
|
139
|
+
50% { transform: rotateY(180deg); }
|
|
140
|
+
62.5% { transform: rotateY(180deg); }
|
|
141
|
+
to { transform: rotate(180deg); }
|
|
142
|
+
}
|
|
143
|
+
```
|
|
144
|
+
**Used on:** `.loader__square` — `1.6s cubic-bezier(0.66, 0, 0.34, 1) infinite`
|
|
145
|
+
- Loading state animation.
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
### supportHoverArrow
|
|
150
|
+
```css
|
|
151
|
+
@keyframes supportHoverArrow {
|
|
152
|
+
0% { transform: translate(0); }
|
|
153
|
+
20%, 30% { transform: translate(2px); }
|
|
154
|
+
70%, 80% { transform: translate(-2px); }
|
|
155
|
+
to { transform: translate(0); }
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
**Used on:** `.support__links-cta-arrow--hovered` — `1.1s linear infinite`
|
|
159
|
+
- Subtle shimmy/vibration on the support section arrow when hovered.
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## CTA Hover Overlay Effect (not @keyframes — pure CSS)
|
|
164
|
+
|
|
165
|
+
The primary and secondary CTA buttons use a `mix-blend-mode: difference` overlay that scales in on hover:
|
|
166
|
+
|
|
167
|
+
```css
|
|
168
|
+
.cta--primary::after,
|
|
169
|
+
.cta--secondary::after {
|
|
170
|
+
content: '';
|
|
171
|
+
mix-blend-mode: difference;
|
|
172
|
+
background-color: white;
|
|
173
|
+
transform-origin: 0;
|
|
174
|
+
width: 100%;
|
|
175
|
+
height: 100%;
|
|
176
|
+
position: absolute;
|
|
177
|
+
top: 0; left: 0;
|
|
178
|
+
transform: scaleX(0);
|
|
179
|
+
transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
180
|
+
}
|
|
181
|
+
.cta--primary:hover::after,
|
|
182
|
+
.cta--secondary:hover::after {
|
|
183
|
+
transform: scaleX(1);
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
**Effect:** The `mix-blend-mode: difference` + white fill creates an inversion effect rather than a simple color change — the button appears to "flip" colors on hover.
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Scroll Reveal Pattern
|
|
191
|
+
|
|
192
|
+
No third-party library. IntersectionObserver adds `.in-view` class:
|
|
193
|
+
|
|
194
|
+
```typescript
|
|
195
|
+
const observer = new IntersectionObserver(
|
|
196
|
+
entries => entries.forEach(e => {
|
|
197
|
+
if (e.isIntersecting) e.target.classList.add('in-view');
|
|
198
|
+
}),
|
|
199
|
+
{ threshold: 0.15 }
|
|
200
|
+
);
|
|
201
|
+
document.querySelectorAll('.reveal, .reveal-stagger').forEach(el => observer.observe(el));
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
CSS handles the animation:
|
|
205
|
+
```css
|
|
206
|
+
.reveal {
|
|
207
|
+
opacity: 0;
|
|
208
|
+
transform: translateY(16px);
|
|
209
|
+
transition: opacity 0.8s cubic-bezier(0.23, 1, 0.32, 1),
|
|
210
|
+
transform 0.8s cubic-bezier(0.23, 1, 0.32, 1);
|
|
211
|
+
}
|
|
212
|
+
.reveal.in-view { opacity: 1; transform: translateY(0); }
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Stats cards use staggered delays (0.1s increments per child).
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Video Background Pattern
|
|
220
|
+
|
|
221
|
+
Hero section uses `<video autoplay muted loop playsInline preload="auto">` with responsive sources:
|
|
222
|
+
|
|
223
|
+
```html
|
|
224
|
+
<video autoplay muted loop playsinline preload="auto">
|
|
225
|
+
<source src="video-desktop.webm" type="video/webm">
|
|
226
|
+
<source src="video-desktop.mp4" type="video/mp4">
|
|
227
|
+
</video>
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
- Mobile: swap to `video-mobile.webm/mp4` (lighter, portrait-optimized)
|
|
231
|
+
- Overlay: `rgba(0, 0, 0, 0.52)` dark layer over video
|
|
232
|
+
- Card carousel videos: `preload="none"` (only hero is eager-loaded)
|
|
233
|
+
|
|
234
|
+
---
|
|
235
|
+
|
|
236
|
+
## Navigation Accordion (mobile)
|
|
237
|
+
|
|
238
|
+
Mobile nav accordion uses CSS grid transition for smooth open/close:
|
|
239
|
+
|
|
240
|
+
```css
|
|
241
|
+
.global-navigation__accordion-content {
|
|
242
|
+
display: grid;
|
|
243
|
+
grid-template-rows: 0fr;
|
|
244
|
+
transition: grid-template-rows 0.7s cubic-bezier(0.165, 0.84, 0.44, 1),
|
|
245
|
+
padding 0.7s cubic-bezier(0.165, 0.84, 0.44, 1);
|
|
246
|
+
}
|
|
247
|
+
.global-navigation__accordion-content--open {
|
|
248
|
+
grid-template-rows: 1fr;
|
|
249
|
+
}
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
`grid-template-rows: 0fr → 1fr` is the modern CSS accordion technique (no JS height calculation needed).
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Reduced Motion
|
|
257
|
+
|
|
258
|
+
All animations respect `prefers-reduced-motion`:
|
|
259
|
+
```css
|
|
260
|
+
@media (prefers-reduced-motion: reduce) {
|
|
261
|
+
*,
|
|
262
|
+
*::before,
|
|
263
|
+
*::after {
|
|
264
|
+
animation-duration: 0.01ms !important;
|
|
265
|
+
animation-iteration-count: 1 !important;
|
|
266
|
+
transition-duration: 0.01ms !important;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
```
|
|
270
|
+
Mobile menu `.animation: none` override also applied explicitly.
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# Patterns — pt.squarespace.com
|
|
2
|
+
|
|
3
|
+
## Page Layout Patterns
|
|
4
|
+
|
|
5
|
+
### Homepage Structure
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
┌─────────────────────────────────────┐
|
|
9
|
+
│ Header (sticky, transparent → solid)│
|
|
10
|
+
├─────────────────────────────────────┤
|
|
11
|
+
│ Hero (full-viewport, dark) │
|
|
12
|
+
│ - Centered headline │
|
|
13
|
+
│ - Subtext │
|
|
14
|
+
│ - Single CTA │
|
|
15
|
+
├─────────────────────────────────────┤
|
|
16
|
+
│ Content Section (light) │
|
|
17
|
+
│ - H2 headline │
|
|
18
|
+
│ - 3-column grid │
|
|
19
|
+
├─────────────────────────────────────┤
|
|
20
|
+
│ Content Section (alternating) │
|
|
21
|
+
│ - Split layout │
|
|
22
|
+
├─────────────────────────────────────┤
|
|
23
|
+
│ CTA Section (teal or dark) │
|
|
24
|
+
│ - Centered headline + CTA │
|
|
25
|
+
├─────────────────────────────────────┤
|
|
26
|
+
│ Domain Search (light gray) │
|
|
27
|
+
│ - Input + button inline │
|
|
28
|
+
├─────────────────────────────────────┤
|
|
29
|
+
│ Stats Row (dark) │
|
|
30
|
+
│ - Numbers in row │
|
|
31
|
+
├─────────────────────────────────────┤
|
|
32
|
+
│ Support Section (light) │
|
|
33
|
+
│ - Grid of support options │
|
|
34
|
+
├─────────────────────────────────────┤
|
|
35
|
+
│ Final CTA (dark teal) │
|
|
36
|
+
│ - Headline + CTA │
|
|
37
|
+
├─────────────────────────────────────┤
|
|
38
|
+
│ Footer (4-column grid + legal) │
|
|
39
|
+
└─────────────────────────────────────┘
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Responsive Breakpoints
|
|
43
|
+
|
|
44
|
+
| Breakpoint | Width | Changes |
|
|
45
|
+
|------------|-------|---------|
|
|
46
|
+
| Desktop | 1440px+ | Full layout, 4-col footer |
|
|
47
|
+
| Tablet | 768px | 2-col grids, hamburger nav |
|
|
48
|
+
| Mobile | 390px | Single column, stacked |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Hero Pattern
|
|
53
|
+
|
|
54
|
+
### Layout
|
|
55
|
+
- **Container:** 100vw × 100vh or min-height
|
|
56
|
+
- **Background:** solid dark (`--bg-inverse: rgb(0,0,0)`)
|
|
57
|
+
- **Content:** centered flex column, max-width container
|
|
58
|
+
|
|
59
|
+
### Typography
|
|
60
|
+
- **Headline:** Clarkson, 42px, weight 300, white
|
|
61
|
+
- **Subtext:** Clarkson, 26px, weight 400, white
|
|
62
|
+
- **CTA:** 14px weight 500, white bg, black text
|
|
63
|
+
|
|
64
|
+
### Spacing
|
|
65
|
+
- Vertical padding: 120px+
|
|
66
|
+
- Content gap: 24px
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Feature Grid Pattern
|
|
71
|
+
|
|
72
|
+
### Layout
|
|
73
|
+
- **Container:** max-width 1200px, centered
|
|
74
|
+
- **Grid:** 3 columns on desktop, 2 on tablet, 1 on mobile
|
|
75
|
+
- **Gap:** 32px
|
|
76
|
+
|
|
77
|
+
### Items
|
|
78
|
+
- Icon (if applicable)
|
|
79
|
+
- Title (H3 or bold)
|
|
80
|
+
- Description (body text)
|
|
81
|
+
- Optional CTA link
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## CTA Section Pattern
|
|
86
|
+
|
|
87
|
+
### Layout
|
|
88
|
+
- Full-width container
|
|
89
|
+
- Centered content
|
|
90
|
+
- Max-width 800px
|
|
91
|
+
|
|
92
|
+
### Colors
|
|
93
|
+
- Background: `--bg-teal: rgb(30, 76, 65)` OR `--bg-inverse`
|
|
94
|
+
- Text: white
|
|
95
|
+
- CTA: white button on dark, black button on light
|
|
96
|
+
|
|
97
|
+
### Typography
|
|
98
|
+
- Headline: 26px (same as H2)
|
|
99
|
+
- Subtext: 16px
|
|
100
|
+
- Button: 14px weight 500
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Footer Pattern
|
|
105
|
+
|
|
106
|
+
### Layout
|
|
107
|
+
- **Grid:** 4 columns desktop, 2 tablet, 1 mobile
|
|
108
|
+
- **Bottom row:** copyright + legal links
|
|
109
|
+
|
|
110
|
+
### Columns
|
|
111
|
+
1. Products
|
|
112
|
+
2. Solutions
|
|
113
|
+
3. Resources
|
|
114
|
+
4. Company
|
|
115
|
+
|
|
116
|
+
### Colors
|
|
117
|
+
- Background: `--bg-inverse` (black)
|
|
118
|
+
- Text: white or `--text-light-gray`
|
|
119
|
+
- Links hover: `--text-muted`
|
|
120
|
+
|
|
121
|
+
### Typography
|
|
122
|
+
- Column headers: 14px weight 500
|
|
123
|
+
- Links: 14px weight 400
|
|
124
|
+
- Legal: 12px
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Domain Search Pattern
|
|
129
|
+
|
|
130
|
+
### Layout
|
|
131
|
+
- Inline: input + button side by side
|
|
132
|
+
- Mobile: stacked
|
|
133
|
+
|
|
134
|
+
### Elements
|
|
135
|
+
- Input: max-width 300px
|
|
136
|
+
- Button: "Buscar" or similar
|
|
137
|
+
|
|
138
|
+
### Colors
|
|
139
|
+
- Background: `--bg-elevated` (rgb(223, 221, 216))
|
|
140
|
+
- Input: white background
|
|
141
|
+
- Border: subtle gray
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Stats Row Pattern
|
|
146
|
+
|
|
147
|
+
### Layout
|
|
148
|
+
- Horizontal flex row
|
|
149
|
+
- Evenly spaced
|
|
150
|
+
- Mobile: wraps to 2×2 grid
|
|
151
|
+
|
|
152
|
+
### Content
|
|
153
|
+
- Large number (Clarkson, bold)
|
|
154
|
+
- Label below (gray, smaller)
|
|
155
|
+
|
|
156
|
+
### Colors
|
|
157
|
+
- Background: dark section
|
|
158
|
+
- Numbers: white
|
|
159
|
+
- Labels: light gray
|
|
160
|
+
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Navigation Pattern
|
|
164
|
+
|
|
165
|
+
### Desktop
|
|
166
|
+
- Logo: left
|
|
167
|
+
- Links: center (Products, Solutions, Resources)
|
|
168
|
+
- CTAs: right (Login, Get Started)
|
|
169
|
+
|
|
170
|
+
### Mobile
|
|
171
|
+
- Logo: left
|
|
172
|
+
- Hamburger: right
|
|
173
|
+
- Drawer: slides from right
|
|
174
|
+
|
|
175
|
+
### Scroll Behavior
|
|
176
|
+
- Starts transparent
|
|
177
|
+
- Adds solid background + shadow after 50px scroll
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## Content Spacing Scale
|
|
182
|
+
|
|
183
|
+
| Section Type | Padding Y | Padding X |
|
|
184
|
+
|--------------|-----------|-----------|
|
|
185
|
+
| Hero | 120px+ | 24px |
|
|
186
|
+
| Content | 80px | 24px |
|
|
187
|
+
| CTA | 80px | 24px |
|
|
188
|
+
| Footer | 64px | 24px |
|
|
189
|
+
| Tight | 48px | 24px |
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Websites — Squarespace Homepage
|
|
2
|
+
|
|
3
|
+
## Page Topology
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
1. Header — Sticky navigation with transparency transition
|
|
7
|
+
2. Hero — Full-viewport dark section with video background + CTA
|
|
8
|
+
3. Grow Your Business — Feature grid with icons (6 product areas)
|
|
9
|
+
4. One Platform — Platform card carousel (videos + images)
|
|
10
|
+
5. Get Started — Teal CTA section with template thumbnails
|
|
11
|
+
6. Your Domain — Domain search input
|
|
12
|
+
7. How To — Step-by-step how-to guide section
|
|
13
|
+
8. Customers Served — Statistics row (large numbers)
|
|
14
|
+
9. Made With SQSP — Showcase of customer sites
|
|
15
|
+
10. FAQ — Accordion FAQ section
|
|
16
|
+
11. Support — Support options grid
|
|
17
|
+
12. Conversion — Final dark CTA section with video
|
|
18
|
+
13. Footer — 4-column links + legal
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Section Details
|
|
22
|
+
|
|
23
|
+
### Header
|
|
24
|
+
- **Type:** Sticky navigation
|
|
25
|
+
- **Background:** Transparent initially, solid white on scroll
|
|
26
|
+
- **Content:** Logo (left), Nav links (center), CTAs (right)
|
|
27
|
+
- **Mobile:** Hamburger with drawer
|
|
28
|
+
|
|
29
|
+
### Hero (#homepage-hero)
|
|
30
|
+
- **Background:** Black `rgb(0, 0, 0)` + `<video>` background + `rgba(0,0,0,0.52)` overlay
|
|
31
|
+
- **Video:** `video-desktop.webm/mp4` (desktop), `video-mobile.webm/mp4` (< 768px)
|
|
32
|
+
- **Height:** ~1007px viewport height
|
|
33
|
+
- **Content:**
|
|
34
|
+
- H1: "Um site faz acontecer" (`var(--text-3xl)`, `var(--font-light)`, white)
|
|
35
|
+
- P: "Comece de graça. Não precisa de cartão de crédito." (`var(--text-xl)`, white)
|
|
36
|
+
- CTA: "Comece já" (`.cta--primary.cta--light` — white button, black text, mix-blend-mode hover)
|
|
37
|
+
|
|
38
|
+
### Grow Your Business (#grow-your-business)
|
|
39
|
+
- **Background:** White or off-white
|
|
40
|
+
- **Layout:** Content grid
|
|
41
|
+
- **Content:** Feature highlights with icons
|
|
42
|
+
|
|
43
|
+
### One Platform (#one-platform)
|
|
44
|
+
- **Background:** Off-white `rgb(245, 245, 244)`
|
|
45
|
+
- **Layout:** Split layout (text + visual)
|
|
46
|
+
|
|
47
|
+
### Get Started (#get-started)
|
|
48
|
+
- **Background:** Off-white `rgb(245, 245, 244)` with rotating template thumbnail cards
|
|
49
|
+
- **Content:** Centered CTA + 3 template preview images (rotate/reseda/altaloma)
|
|
50
|
+
- **Video:** `templates.webm/mp4` — template showcase animation
|
|
51
|
+
|
|
52
|
+
### Your Domain (#your-domain)
|
|
53
|
+
- **Background:** Light gray `rgb(223, 221, 216)`
|
|
54
|
+
- **Layout:** Inline input + button
|
|
55
|
+
- **Input placeholder:** "Digite seu domínio"
|
|
56
|
+
|
|
57
|
+
### How To (#homepage-how-to)
|
|
58
|
+
- **Background:** White `rgb(255, 255, 255)`
|
|
59
|
+
- **Layout:** Numbered steps with icons
|
|
60
|
+
- **Content:** Step-by-step guide to getting started with Squarespace
|
|
61
|
+
|
|
62
|
+
### Customers Served (#customers-served)
|
|
63
|
+
- **Background:** Black `rgb(0, 0, 0)`
|
|
64
|
+
- **Layout:** Horizontal stat row
|
|
65
|
+
- **Content:** Large numbers + labels
|
|
66
|
+
- **Animation:** `.stats__card` uses `fadeIn` 1.2s `var(--ease-sqsp-reveal)` on `.in-view`
|
|
67
|
+
|
|
68
|
+
### Made With SQSP (#made-with-sqsp)
|
|
69
|
+
- **Background:** Off-white `rgb(245, 245, 244)`
|
|
70
|
+
- **Layout:** Grid of customer site screenshots
|
|
71
|
+
- **Content:** Customer-built site showcases with hover zoom effect
|
|
72
|
+
- **Interaction:** `transform: scale(1.04)` on hover, 400ms `var(--ease-sqsp-reveal)`
|
|
73
|
+
|
|
74
|
+
### FAQ (#homepage-faq)
|
|
75
|
+
- **Background:** White `rgb(255, 255, 255)`
|
|
76
|
+
- **Layout:** Accordion list — question rows expand to reveal answers
|
|
77
|
+
- **Animation:** CSS grid `grid-template-rows: 0fr → 1fr` (same accordion pattern as mobile nav)
|
|
78
|
+
- **Interaction:** Click chevron → expand; click again → collapse
|
|
79
|
+
|
|
80
|
+
### Support (#support)
|
|
81
|
+
- **Background:** Off-white
|
|
82
|
+
- **Layout:** Grid of support options
|
|
83
|
+
- **Content:** Links to help resources
|
|
84
|
+
|
|
85
|
+
### Conversion (#conversion)
|
|
86
|
+
- **Background:** Dark `rgb(26, 26, 26)` (charcoal)
|
|
87
|
+
- **Content:** Final headline + CTA
|
|
88
|
+
- **Video:** `conversion-centered.mp4` plays in background
|
|
89
|
+
|
|
90
|
+
### Footer (.footer)
|
|
91
|
+
- **Background:** Black
|
|
92
|
+
- **Layout:** 4-column grid
|
|
93
|
+
- **Columns:** Products, Solutions, Resources, Company
|
|
94
|
+
- **Bottom:** Copyright, Privacy, Terms
|
|
95
|
+
- **Height:** ~1019px
|
|
96
|
+
|
|
97
|
+
## Internal Links Discovered
|
|
98
|
+
|
|
99
|
+
- `/preise` — Pricing page
|
|
100
|
+
- `/templates` — Templates gallery
|
|
101
|
+
- `/design-de-sites` — Design page
|
|
102
|
+
- `/templates/comece-agora` — Start page
|
|
103
|
+
- `/sites/construtor-de-sites-com-ai` — AI builder
|
|
104
|
+
- `/design-inteligente` — Smart design
|
|
105
|
+
- `/websites/criar-um-portfolio` — Portfolio builder
|
|
106
|
+
- `/websites/crie-um-blog` — Blog builder
|
|
107
|
+
- `/websites/analytics` — Analytics
|
|
108
|
+
|
|
109
|
+
## Typography Details
|
|
110
|
+
|
|
111
|
+
### Font Family: Clarkson
|
|
112
|
+
- Clarkson is Squarespace's proprietary sans-serif
|
|
113
|
+
- Clarkson Serif is the serif variant
|
|
114
|
+
- Falls back to Helvetica Neue, Helvetica, Arial, sans-serif
|
|
115
|
+
|
|
116
|
+
### Font Weights Observed
|
|
117
|
+
- 300 (light) — Hero H1
|
|
118
|
+
- 400 (normal) — Body, H2, buttons
|
|
119
|
+
- 500 (medium) — CTAs, emphasis
|
|
120
|
+
|
|
121
|
+
### Size Scale
|
|
122
|
+
- Hero H1: `var(--text-3xl)` → 42px
|
|
123
|
+
- H2: `var(--text-xl)` → 26px
|
|
124
|
+
- H3: `var(--text-lg)` → 20px
|
|
125
|
+
- Body: `var(--text-base)` → 16px
|
|
126
|
+
- Small: `var(--text-sm)` → 14px
|
|
127
|
+
- Caption: `var(--text-xs)` → 12px
|
|
128
|
+
|
|
129
|
+
## Color Palette (Hex)
|
|
130
|
+
|
|
131
|
+
| Token | Hex |
|
|
132
|
+
|-------|-----|
|
|
133
|
+
| `--bg-inverse` | #000000 |
|
|
134
|
+
| `--bg-charcoal` | #1A1A1A |
|
|
135
|
+
| `--bg-teal` | #1E4C41 |
|
|
136
|
+
| `--bg-surface` | #F5F5F4 |
|
|
137
|
+
| `--bg-elevated` | #DFDDD8 |
|
|
138
|
+
| `--text-primary` | #000000 |
|
|
139
|
+
| `--text-inverse` | #FFFFFF |
|
|
140
|
+
| `--text-muted` | #898989 |
|
|
141
|
+
| `--text-light-gray` | #DDDDDD |
|
|
142
|
+
| `--border` | #DDDDDD |
|
|
143
|
+
| `--error` | #200603 |
|
|
144
|
+
|
|
145
|
+
## Interaction Summary
|
|
146
|
+
|
|
147
|
+
1. **Nav scroll:** Transparent → solid at 50px scroll via JS class toggle
|
|
148
|
+
2. **Mobile hamburger:** Click → `clip-path: polygon()` wipe animation (600ms) — NOT `translateX`
|
|
149
|
+
3. **Mobile accordion:** `grid-template-rows: 0fr → 1fr` CSS transition (700ms)
|
|
150
|
+
4. **CTA button hover:** `mix-blend-mode: difference` pseudo-element scales in (300ms) — NOT color transition
|
|
151
|
+
5. **Text link hover (`.cta--tertiary`):** Dual linear-gradient `background-position` slide (500ms)
|
|
152
|
+
6. **Section scroll-reveal:** `IntersectionObserver` adds `.in-view`, CSS handles `opacity + translateY` (800ms `--ease-sqsp-reveal`)
|
|
153
|
+
7. **Stats cards:** Staggered `fadeIn` with 0.1s per card delay
|
|
154
|
+
8. **Support arrow hover:** `supportHoverArrow` shimmy keyframe (1.1s infinite)
|
|
155
|
+
9. **AI dots:** `rotateAnimation` + `scaleAnimation{Large/Medium/Small}` coordinated (14s infinite)
|
|
156
|
+
10. **FAQ accordion:** Same `grid-template-rows` technique as mobile nav
|
|
157
|
+
|
|
158
|
+
## Design Signatures
|
|
159
|
+
|
|
160
|
+
1. **Zero border-radius** — Sharp corners everywhere
|
|
161
|
+
2. **Clarkson typography** — Distinctive proprietary font
|
|
162
|
+
3. **Dark heroes** — Black backgrounds with white text
|
|
163
|
+
4. **Teal accents** — Dark teal for CTAs and emphasis
|
|
164
|
+
5. **Minimal shadows** — Almost no shadows used
|
|
165
|
+
6. **Generous whitespace** — Large section padding
|