@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,368 @@
|
|
|
1
|
+
# Components — pt.squarespace.com
|
|
2
|
+
|
|
3
|
+
## Button
|
|
4
|
+
|
|
5
|
+
### Variants
|
|
6
|
+
|
|
7
|
+
| Variant | Description | Token Usage |
|
|
8
|
+
|---------|-------------|-------------|
|
|
9
|
+
| `primary` | Solid white bg, dark text | `bg: white`, `color: black` |
|
|
10
|
+
| `secondary` | Ghost/outline style | `border: 1px solid var(--border)` |
|
|
11
|
+
| `inline` | Text with arrow suffix | `color: var(--text-primary)` |
|
|
12
|
+
| `cta--light` | For dark backgrounds | `bg: white`, `color: black` |
|
|
13
|
+
| `cta--dark` | For light backgrounds | `bg: black`, `color: white` |
|
|
14
|
+
|
|
15
|
+
### States
|
|
16
|
+
|
|
17
|
+
- **default:** Base colors per variant
|
|
18
|
+
- **hover (primary/secondary):** `mix-blend-mode: difference` pseudo-element scales in — NOT a color transition. The white pseudo-element with blend mode creates a color inversion effect.
|
|
19
|
+
- **active:** Slight scale (0.98) if any
|
|
20
|
+
- **disabled:** `opacity: 0.5`, `pointer-events: none`
|
|
21
|
+
- **loading:** Spinner or text change
|
|
22
|
+
|
|
23
|
+
### CTA Hover Mechanic — mix-blend-mode: difference
|
|
24
|
+
|
|
25
|
+
**This is Squarespace's real CTA effect.** Do NOT implement as a simple `background-color` transition:
|
|
26
|
+
|
|
27
|
+
```css
|
|
28
|
+
.cta--primary,
|
|
29
|
+
.cta--secondary {
|
|
30
|
+
position: relative;
|
|
31
|
+
overflow: hidden;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.cta--primary::after,
|
|
35
|
+
.cta--secondary::after {
|
|
36
|
+
content: '';
|
|
37
|
+
mix-blend-mode: difference;
|
|
38
|
+
background-color: white;
|
|
39
|
+
transform-origin: 0;
|
|
40
|
+
width: 100%;
|
|
41
|
+
height: 100%;
|
|
42
|
+
position: absolute;
|
|
43
|
+
top: 0;
|
|
44
|
+
left: 0;
|
|
45
|
+
transform: scaleX(0);
|
|
46
|
+
transition: transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.cta--primary:hover::after,
|
|
50
|
+
.cta--secondary:hover::after {
|
|
51
|
+
transform: scaleX(1);
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Effect:** The white fill + `difference` blend mode inverts the button colors — a black button with white text becomes white with black text without any `color:` change.
|
|
56
|
+
|
|
57
|
+
### DOM Structure
|
|
58
|
+
```html
|
|
59
|
+
<a class="cta cta--primary cta--light">Button Text</a>
|
|
60
|
+
<!-- or -->
|
|
61
|
+
<button class="cta cta--primary">Button Text</button>
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Tokens Applied
|
|
65
|
+
- `font-family: var(--font-display)`
|
|
66
|
+
- `font-size: var(--text-sm)`
|
|
67
|
+
- `font-weight: var(--font-medium)`
|
|
68
|
+
- `padding: var(--space-3) var(--space-4)`
|
|
69
|
+
- `border-radius: var(--radius-none)` (0px)
|
|
70
|
+
- `transition: var(--transition-all)`
|
|
71
|
+
- `cursor: pointer`
|
|
72
|
+
|
|
73
|
+
### Tertiary CTA — Sliding Underline (.cta--tertiary)
|
|
74
|
+
|
|
75
|
+
Text links with an animated dual-gradient underline. The underline slides in from left on hover and out to right on mouse-leave:
|
|
76
|
+
|
|
77
|
+
```css
|
|
78
|
+
.cta--tertiary {
|
|
79
|
+
background-image:
|
|
80
|
+
linear-gradient(currentColor, currentColor),
|
|
81
|
+
linear-gradient(currentColor, currentColor);
|
|
82
|
+
background-size: 100% 1px, 0% 1px;
|
|
83
|
+
background-repeat: no-repeat;
|
|
84
|
+
background-position: -200% 100%, -100% 100%;
|
|
85
|
+
animation: 0.5s cubic-bezier(0.645, 0.045, 0.355, 1) forwards ctaUnderlineSlideOut;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.cta--tertiary:hover {
|
|
89
|
+
animation: 0.5s cubic-bezier(0.645, 0.045, 0.355, 1) forwards ctaUnderlineSlideIn;
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Requires `@keyframes ctaUnderlineSlideIn / ctaUnderlineSlideOut` from `motion.md`.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Navigation
|
|
98
|
+
|
|
99
|
+
### Variants
|
|
100
|
+
|
|
101
|
+
| Variant | Description |
|
|
102
|
+
|---------|-------------|
|
|
103
|
+
| `desktop` | Horizontal links, logo left, CTAs right |
|
|
104
|
+
| `mobile` | Hamburger + slide-out drawer |
|
|
105
|
+
|
|
106
|
+
### States
|
|
107
|
+
|
|
108
|
+
- **default:** Transparent background initially
|
|
109
|
+
- **scrolled:** Solid background (e.g. `bg: white`) kicks in after ~50px scroll
|
|
110
|
+
- **mobile-open:** Hamburger becomes X, drawer wipes in from right via `clip-path` animation (NOT `translateX`)
|
|
111
|
+
|
|
112
|
+
### Mobile Menu — clip-path Swipe
|
|
113
|
+
|
|
114
|
+
The mobile drawer does NOT use `transform: translateX`. It uses `clip-path: polygon()` animation:
|
|
115
|
+
|
|
116
|
+
```css
|
|
117
|
+
/* Open */
|
|
118
|
+
.global-navigation__mobile-menu--open {
|
|
119
|
+
animation: 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) forwards swipeIn;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/* Close */
|
|
123
|
+
.global-navigation__mobile-menu--close {
|
|
124
|
+
animation: 0.6s cubic-bezier(0.165, 0.84, 0.44, 1) forwards swipeOut;
|
|
125
|
+
}
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Requires `@keyframes swipeIn / swipeOut` from `motion.md`. The menu covers full viewport, background `rgb(0, 0, 0)` with white links.
|
|
129
|
+
|
|
130
|
+
### Accordion (Mobile Nav)
|
|
131
|
+
|
|
132
|
+
Sub-menus use CSS grid transition — no JS height calculation:
|
|
133
|
+
|
|
134
|
+
```css
|
|
135
|
+
.global-navigation__accordion-content {
|
|
136
|
+
display: grid;
|
|
137
|
+
grid-template-rows: 0fr;
|
|
138
|
+
transition: grid-template-rows 0.7s cubic-bezier(0.165, 0.84, 0.44, 1),
|
|
139
|
+
padding 0.7s cubic-bezier(0.165, 0.84, 0.44, 1);
|
|
140
|
+
}
|
|
141
|
+
.global-navigation__accordion-content--open {
|
|
142
|
+
grid-template-rows: 1fr;
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### DOM Structure
|
|
147
|
+
```html
|
|
148
|
+
<header class="global-navigation">
|
|
149
|
+
<a class="global-navigation__logo-link">Logo</a>
|
|
150
|
+
<nav class="global-navigation__links">
|
|
151
|
+
<a class="cta cta--inline">Products</a>
|
|
152
|
+
<a class="cta cta--inline">Solutions</a>
|
|
153
|
+
<button class="cta cta--inline">Resources</button>
|
|
154
|
+
</nav>
|
|
155
|
+
<div class="global-navigation__cta">
|
|
156
|
+
<a class="cta cta--inline">Login</a>
|
|
157
|
+
<a class="cta cta--primary cta--light">Get Started</a>
|
|
158
|
+
</div>
|
|
159
|
+
<button class="global-navigation__hamb">☰</button>
|
|
160
|
+
</header>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Tokens Applied
|
|
164
|
+
- `font-family: var(--font-body)`
|
|
165
|
+
- `font-size: var(--text-base)`
|
|
166
|
+
- `font-weight: var(--font-normal)`
|
|
167
|
+
- `padding: var(--space-4) var(--space-4)`
|
|
168
|
+
- `gap: var(--space-4)`
|
|
169
|
+
- `transition: top var(--transition-medium) var(--ease-sqsp-cta)`
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Link
|
|
174
|
+
|
|
175
|
+
### Variants
|
|
176
|
+
|
|
177
|
+
| Variant | Description | Context |
|
|
178
|
+
|---------|-------------|---------|
|
|
179
|
+
| `nav-link` | Navigation links | Header |
|
|
180
|
+
| `footer-link` | Footer links | Footer |
|
|
181
|
+
| `cta--inline` | Inline CTA with arrow | Various |
|
|
182
|
+
|
|
183
|
+
### States
|
|
184
|
+
|
|
185
|
+
- **default:** `color: var(--text-primary)` or `var(--text-inverse)`
|
|
186
|
+
- **hover:** `color: var(--text-muted)`, optional underline
|
|
187
|
+
|
|
188
|
+
### Tokens Applied
|
|
189
|
+
- `font-family: var(--font-body)`
|
|
190
|
+
- `font-size: var(--text-base)`
|
|
191
|
+
- `font-weight: var(--font-normal)`
|
|
192
|
+
- `transition: var(--transition-colors)`
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Input
|
|
197
|
+
|
|
198
|
+
### Variants
|
|
199
|
+
|
|
200
|
+
| Variant | Description |
|
|
201
|
+
|---------|-------------|
|
|
202
|
+
| `text` | Standard text input |
|
|
203
|
+
| `domain` | Domain search input with search button |
|
|
204
|
+
|
|
205
|
+
### States
|
|
206
|
+
|
|
207
|
+
- **default:** `border: 1px solid var(--border)`
|
|
208
|
+
- **focus:** Border color changes to accent
|
|
209
|
+
- **error:** Border color `var(--error)`
|
|
210
|
+
- **disabled:** `opacity: 0.5`
|
|
211
|
+
|
|
212
|
+
### DOM Structure
|
|
213
|
+
```html
|
|
214
|
+
<div class="input-wrapper">
|
|
215
|
+
<input type="text" class="input input--domain" placeholder="Digite seu domínio">
|
|
216
|
+
</div>
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Tokens Applied
|
|
220
|
+
- `background: var(--bg-base)`
|
|
221
|
+
- `border: 1px solid var(--border)`
|
|
222
|
+
- `border-radius: var(--radius-none)`
|
|
223
|
+
- `padding: var(--space-3)`
|
|
224
|
+
- `font-family: var(--font-body)`
|
|
225
|
+
- `font-size: var(--text-base)`
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Card
|
|
230
|
+
|
|
231
|
+
### Variants
|
|
232
|
+
|
|
233
|
+
| Variant | Description |
|
|
234
|
+
|---------|-------------|
|
|
235
|
+
| `feature-card` | Icon + title + description |
|
|
236
|
+
| `stat-card` | Large number + label |
|
|
237
|
+
| `pricing-card` | Price + features + CTA |
|
|
238
|
+
|
|
239
|
+
### States
|
|
240
|
+
|
|
241
|
+
- **default:** No shadow, flat design
|
|
242
|
+
- **hover:** May have subtle color shift
|
|
243
|
+
|
|
244
|
+
### Tokens Applied
|
|
245
|
+
- `background: var(--bg-surface)` or transparent
|
|
246
|
+
- `border-radius: var(--radius-none)`
|
|
247
|
+
- `box-shadow: var(--shadow-sm)` (none typically)
|
|
248
|
+
- `padding: var(--space-5)`
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Card Carousel (Platform / One Platform section)
|
|
253
|
+
|
|
254
|
+
A horizontally scrollable row of cards that loop. Each card holds a `<video>` or `<img>` with an absolute text label.
|
|
255
|
+
|
|
256
|
+
### DOM Structure
|
|
257
|
+
```html
|
|
258
|
+
<div class="card-carousel">
|
|
259
|
+
<div class="card-carousel__track">
|
|
260
|
+
<div class="card-carousel__card">
|
|
261
|
+
<video autoplay muted loop playsinline preload="none">
|
|
262
|
+
<source src="/videos/website-editing.webm" type="video/webm">
|
|
263
|
+
</video>
|
|
264
|
+
<span class="card-carousel__label">Edição de website</span>
|
|
265
|
+
</div>
|
|
266
|
+
<!-- repeat cards -->
|
|
267
|
+
</div>
|
|
268
|
+
</div>
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### Key CSS
|
|
272
|
+
```css
|
|
273
|
+
.card-carousel__card {
|
|
274
|
+
position: relative;
|
|
275
|
+
flex-shrink: 0;
|
|
276
|
+
border-radius: var(--radius-none);
|
|
277
|
+
overflow: hidden;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.card-carousel__label {
|
|
281
|
+
position: absolute;
|
|
282
|
+
bottom: var(--space-4);
|
|
283
|
+
left: var(--space-4);
|
|
284
|
+
font-family: var(--font-display);
|
|
285
|
+
font-size: var(--text-sm);
|
|
286
|
+
color: var(--text-inverse);
|
|
287
|
+
background: rgba(0, 0, 0, 0.55);
|
|
288
|
+
padding: var(--space-2) var(--space-3);
|
|
289
|
+
}
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
Cards use `preload="none"` — only hero video is eager-loaded.
|
|
293
|
+
|
|
294
|
+
---
|
|
295
|
+
|
|
296
|
+
## Section
|
|
297
|
+
|
|
298
|
+
### Hero Section
|
|
299
|
+
- Full viewport dark background (`background: var(--bg-inverse)`)
|
|
300
|
+
- Video background: `<video autoPlay muted loop playsInline preload="auto">` with WebM + MP4 sources
|
|
301
|
+
- Dark overlay: `rgba(0, 0, 0, 0.52)` absolute layer over video
|
|
302
|
+
- Centered content
|
|
303
|
+
- Large headline: `font-family: var(--font-display)`, `font-size: var(--text-3xl)`, `font-weight: var(--font-light)`
|
|
304
|
+
- Single CTA button (`.cta--primary.cta--light`)
|
|
305
|
+
|
|
306
|
+
### Content Section
|
|
307
|
+
- Max-width container
|
|
308
|
+
- Light background
|
|
309
|
+
- H2 headline
|
|
310
|
+
- Grid or flex content layout
|
|
311
|
+
|
|
312
|
+
### CTA Section
|
|
313
|
+
- Colored background (teal or dark)
|
|
314
|
+
- Centered headline + CTA
|
|
315
|
+
- White text
|
|
316
|
+
|
|
317
|
+
### Footer
|
|
318
|
+
- Dark background (`bg: var(--bg-inverse)`)
|
|
319
|
+
- 4-column grid of links
|
|
320
|
+
- Bottom row with legal text
|
|
321
|
+
- `padding: var(--space-16) var(--space-8)`
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Typography Components
|
|
326
|
+
|
|
327
|
+
### Display Heading (H1)
|
|
328
|
+
```css
|
|
329
|
+
font-family: var(--font-display);
|
|
330
|
+
font-size: var(--text-3xl);
|
|
331
|
+
font-weight: var(--font-light);
|
|
332
|
+
color: var(--text-inverse);
|
|
333
|
+
line-height: var(--leading-tight);
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
### Section Heading (H2)
|
|
337
|
+
```css
|
|
338
|
+
font-family: var(--font-display);
|
|
339
|
+
font-size: var(--text-xl);
|
|
340
|
+
font-weight: var(--font-normal);
|
|
341
|
+
color: var(--text-primary);
|
|
342
|
+
line-height: var(--leading-normal);
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
### Serif Heading (H3)
|
|
346
|
+
```css
|
|
347
|
+
font-family: var(--font-serif);
|
|
348
|
+
font-size: var(--text-lg);
|
|
349
|
+
font-weight: var(--font-normal);
|
|
350
|
+
color: var(--text-inverse);
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
### Body Text
|
|
354
|
+
```css
|
|
355
|
+
font-family: var(--font-body);
|
|
356
|
+
font-size: var(--text-base);
|
|
357
|
+
font-weight: var(--font-normal);
|
|
358
|
+
color: var(--text-primary);
|
|
359
|
+
line-height: var(--leading-relaxed);
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
### Caption/Muted
|
|
363
|
+
```css
|
|
364
|
+
font-family: var(--font-body);
|
|
365
|
+
font-size: var(--text-sm);
|
|
366
|
+
font-weight: var(--font-normal);
|
|
367
|
+
color: var(--text-muted);
|
|
368
|
+
```
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Design Tokens — pt.squarespace.com
|
|
2
|
+
|
|
3
|
+
```css
|
|
4
|
+
:root {
|
|
5
|
+
/* === COLORS === */
|
|
6
|
+
|
|
7
|
+
/* Background hierarchy */
|
|
8
|
+
--bg-base: rgb(255, 255, 255); /* White page background */
|
|
9
|
+
--bg-surface: rgb(245, 245, 244); /* Off-white section background */
|
|
10
|
+
--bg-elevated: rgb(223, 221, 216); /* Light gray surfaces */
|
|
11
|
+
--bg-inverse: rgb(0, 0, 0); /* Black — hero, footer */
|
|
12
|
+
--bg-charcoal: rgb(26, 26, 26); /* Dark sections */
|
|
13
|
+
--bg-teal: rgb(30, 76, 65); /* Teal accent sections */
|
|
14
|
+
|
|
15
|
+
/* Text hierarchy */
|
|
16
|
+
--text-primary: rgb(0, 0, 0); /* Primary text on light */
|
|
17
|
+
--text-muted: rgb(137, 137, 137); /* Secondary/muted text */
|
|
18
|
+
--text-inverse: rgb(255, 255, 255); /* Text on dark backgrounds */
|
|
19
|
+
--text-light-gray: rgb(221, 221, 221);/* Light gray text */
|
|
20
|
+
|
|
21
|
+
/* Brand / Accent */
|
|
22
|
+
--accent: rgb(30, 76, 65); /* Teal accent color */
|
|
23
|
+
--accent-hover: rgb(50, 50, 50); /* Darker shade for hover */
|
|
24
|
+
|
|
25
|
+
/* Borders */
|
|
26
|
+
--border: rgb(221, 221, 221); /* Default border color */
|
|
27
|
+
--border-dark: rgb(50, 50, 50); /* Dark section borders */
|
|
28
|
+
|
|
29
|
+
/* Semantic */
|
|
30
|
+
--success: rgb(30, 76, 65); /* Teal as success */
|
|
31
|
+
--error: rgb(32, 6, 3); /* Dark red for errors */
|
|
32
|
+
--warning: rgb(137, 137, 137); /* Gray for warnings */
|
|
33
|
+
|
|
34
|
+
/* Overlays */
|
|
35
|
+
--overlay-light: rgba(255, 255, 255, 0.1);
|
|
36
|
+
--overlay-dark: rgba(0, 0, 0, 0.52); /* Hero video overlay — real value from index.css */
|
|
37
|
+
|
|
38
|
+
/* === TYPOGRAPHY === */
|
|
39
|
+
|
|
40
|
+
/* Font families */
|
|
41
|
+
--font-display: 'Clarkson', Helvetica, sans-serif;
|
|
42
|
+
--font-body: 'Helvetica Neue', Helvetica, Arial, sans-serif;
|
|
43
|
+
--font-serif: 'Clarkson Serif', Georgia, serif;
|
|
44
|
+
--font-mono: 'Courier New', monospace;
|
|
45
|
+
|
|
46
|
+
/* Type scale (based on observed values) */
|
|
47
|
+
--text-xs: 12px;
|
|
48
|
+
--text-sm: 14px;
|
|
49
|
+
--text-base: 16px;
|
|
50
|
+
--text-lg: 20px;
|
|
51
|
+
--text-xl: 26px;
|
|
52
|
+
--text-2xl: 34px;
|
|
53
|
+
--text-3xl: 42px; /* Hero headline size */
|
|
54
|
+
|
|
55
|
+
/* Font weights */
|
|
56
|
+
--font-light: 300;
|
|
57
|
+
--font-normal: 400;
|
|
58
|
+
--font-medium: 500;
|
|
59
|
+
--font-semibold: 600;
|
|
60
|
+
--font-bold: 700;
|
|
61
|
+
|
|
62
|
+
/* Line heights */
|
|
63
|
+
--leading-tight: 1.2;
|
|
64
|
+
--leading-normal: 1.5;
|
|
65
|
+
--leading-relaxed: 1.75;
|
|
66
|
+
|
|
67
|
+
/* Letter spacing */
|
|
68
|
+
--tracking-tight: -0.02em;
|
|
69
|
+
--tracking-normal: 0;
|
|
70
|
+
--tracking-wide: 0.05em;
|
|
71
|
+
|
|
72
|
+
/* === SPACING === */
|
|
73
|
+
|
|
74
|
+
/* Base unit: 4px */
|
|
75
|
+
--space-1: 4px;
|
|
76
|
+
--space-2: 8px;
|
|
77
|
+
--space-3: 12px;
|
|
78
|
+
--space-4: 16px;
|
|
79
|
+
--space-5: 24px;
|
|
80
|
+
--space-6: 32px;
|
|
81
|
+
--space-8: 48px;
|
|
82
|
+
--space-10: 64px;
|
|
83
|
+
--space-12: 96px;
|
|
84
|
+
--space-16: 128px;
|
|
85
|
+
--space-20: 160px;
|
|
86
|
+
|
|
87
|
+
/* Section-specific spacing */
|
|
88
|
+
--section-padding-y: 80px;
|
|
89
|
+
--section-padding-x: 24px;
|
|
90
|
+
--hero-padding-y: 120px;
|
|
91
|
+
|
|
92
|
+
/* === RADIUS === */
|
|
93
|
+
|
|
94
|
+
/* Sharp corners — signature Squarespace aesthetic */
|
|
95
|
+
--radius-none: 0px; /* Default — sharp corners */
|
|
96
|
+
--radius-sm: 0px;
|
|
97
|
+
--radius-md: 0px;
|
|
98
|
+
--radius-lg: 0px;
|
|
99
|
+
--radius-full: 9999px; /* Only for pills/avatars if ever needed */
|
|
100
|
+
|
|
101
|
+
/* === SHADOWS === */
|
|
102
|
+
|
|
103
|
+
/* Minimal shadow usage — only when functionally necessary */
|
|
104
|
+
--shadow-sm: none;
|
|
105
|
+
--shadow-md: none;
|
|
106
|
+
--shadow-lg: none;
|
|
107
|
+
--shadow-xl: none;
|
|
108
|
+
|
|
109
|
+
/* === MOTION === */
|
|
110
|
+
|
|
111
|
+
/* Timing functions — verbatim from pt.squarespace.com/css/index.css */
|
|
112
|
+
--ease-default: cubic-bezier(0.455, 0.03, 0.515, 0.955); /* General transitions */
|
|
113
|
+
--ease-sqsp-reveal: cubic-bezier(0.23, 1, 0.32, 1); /* Scroll reveals, stats — Squarespace signature ease */
|
|
114
|
+
--ease-sqsp-cta: cubic-bezier(0.645, 0.045, 0.355, 1); /* CTA hover, mobile menu, dropdowns */
|
|
115
|
+
--ease-sqsp-menu: cubic-bezier(0.165, 0.84, 0.44, 1); /* Mobile menu swipe, accordion */
|
|
116
|
+
--ease-out: ease-out;
|
|
117
|
+
--ease-in: ease-in;
|
|
118
|
+
--ease-in-out: ease-in-out;
|
|
119
|
+
|
|
120
|
+
/* Durations */
|
|
121
|
+
--transition-fast: 100ms; /* Micro color changes */
|
|
122
|
+
--transition-base: 200ms; /* Standard hover */
|
|
123
|
+
--transition-medium: 300ms; /* Nav dropdowns, CTA hover overlay */
|
|
124
|
+
--transition-slow: 400ms; /* Layout transitions */
|
|
125
|
+
--transition-reveal: 800ms; /* Scroll-triggered section reveals */
|
|
126
|
+
--transition-reveal-slow: 1200ms; /* Stats card reveal */
|
|
127
|
+
|
|
128
|
+
/* Full transition shorthand */
|
|
129
|
+
--transition-all: all var(--transition-medium) var(--ease-default);
|
|
130
|
+
--transition-colors: color var(--transition-base) var(--ease-default),
|
|
131
|
+
background-color var(--transition-base) var(--ease-default);
|
|
132
|
+
|
|
133
|
+
/* === LAYOUT === */
|
|
134
|
+
|
|
135
|
+
--container-max: 1200px;
|
|
136
|
+
--container-narrow: 800px;
|
|
137
|
+
--grid-gap: 32px;
|
|
138
|
+
--global-nav-height: 80px; /* Sticky nav height — used for hero padding-top offset */
|
|
139
|
+
--grid-gutter-width: 40px; /* Column gutter observed in content sections */
|
|
140
|
+
|
|
141
|
+
/* === Z-INDEX === */
|
|
142
|
+
|
|
143
|
+
--z-base: 0;
|
|
144
|
+
--z-dropdown: 100;
|
|
145
|
+
--z-sticky: 200;
|
|
146
|
+
--z-overlay: 300;
|
|
147
|
+
--z-modal: 400;
|
|
148
|
+
--z-toast: 500;
|
|
149
|
+
}
|
|
150
|
+
```
|