@nerdev/skillset 0.2.1
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/LICENSE +21 -0
- package/README.md +351 -0
- package/bin/skillset.mjs +205 -0
- package/curations/README.md +53 -0
- package/curations/TEMPLATE/WHY.md +23 -0
- package/curations/TEMPLATE/overlay/SKILL.md +6 -0
- package/curations/impeccable/WHY.md +34 -0
- package/curations/impeccable/overlay/SKILL.md +116 -0
- package/package.json +43 -0
- package/scripts/ste-gate.mjs +39 -0
- package/scripts/ste-lint.py +201 -0
- package/scripts/sync.mjs +174 -0
- package/skills/ai-agent/agent-docs-writer/SKILL.md +105 -0
- package/skills/ai-agent/agent-docs-writer/references/principles.md +73 -0
- package/skills/ai-agent/agent-docs-writer/templates/AGENTS.template.md +44 -0
- package/skills/ai-agent/agent-docs-writer/templates/README.template.md +19 -0
- package/skills/ai-agent/ultra-context-engine/SKILL.md +941 -0
- package/skills/architecture/blueprint/SKILL.md +191 -0
- package/skills/architecture/code-tour/SKILL.md +204 -0
- package/skills/architecture/progress-guard/SKILL.md +148 -0
- package/skills/architecture/search-first/SKILL.md +97 -0
- package/skills/backend/api-design/SKILL.md +456 -0
- package/skills/backend/auth/SKILL.md +596 -0
- package/skills/backend/database/SKILL.md +431 -0
- package/skills/backend/realtime/SKILL.md +670 -0
- package/skills/backend/security/SKILL.md +590 -0
- package/skills/business/brag/SKILL.md +177 -0
- package/skills/business/brag/assets/music/README.md +20 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.json +3846 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.md +35 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.json +1826 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.md +35 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.json +2266 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.md +35 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.json +2806 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.md +35 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.json +2796 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.md +35 -0
- package/skills/business/brag/assets/music/happy-beats-business-moves-vol-1-by-ende-dot-app.mp3 +0 -0
- package/skills/business/brag/assets/music/happy-beats-business-moves-vol-10-by-ende-dot-app.mp3 +0 -0
- package/skills/business/brag/assets/music/happy-beats-business-moves-vol-11-by-ende-dot-app.mp3 +0 -0
- package/skills/business/brag/assets/music/happy-beats-business-moves-vol-12-by-ende-dot-app.mp3 +0 -0
- package/skills/business/brag/assets/music/happy-beats-business-moves-vol-9-by-ende-dot-app.mp3 +0 -0
- package/skills/business/brag/assets/sfx/casino/card-fan-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-fan-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-place-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-place-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-place-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-place-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-shove-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-shove-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-shove-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-shove-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-shuffle.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-5.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-6.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-7.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-8.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/cards-pack-open-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/cards-pack-open-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chip-lay-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chip-lay-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chip-lay-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-collide-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-collide-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-collide-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-collide-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-handle-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-handle-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-handle-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-handle-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-handle-6.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-stack-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-stack-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-stack-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-stack-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-stack-5.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-stack-6.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-grab-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-grab-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-shake-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-shake-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-shake-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-throw-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-throw-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-throw-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/die-throw-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/die-throw-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/die-throw-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/die-throw-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_carpet_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_carpet_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_carpet_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_concrete_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_concrete_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_concrete_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_concrete_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_concrete_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_grass_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_grass_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_grass_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_grass_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_grass_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_snow_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_snow_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_snow_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_snow_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_snow_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_wood_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_wood_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_wood_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_wood_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_wood_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactBell_heavy_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactBell_heavy_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactBell_heavy_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGeneric_light_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGeneric_light_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGeneric_light_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGeneric_light_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGeneric_light_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_heavy_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_light_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_light_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_light_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_heavy_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_heavy_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_heavy_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_light_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_light_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMining_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlank_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlank_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlank_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlank_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlank_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_light_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_light_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_light_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_light_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_light_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactTin_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactTin_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactTin_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactTin_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactTin_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_heavy_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_heavy_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_heavy_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_heavy_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_heavy_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_light_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_light_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_light_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_light_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_light_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/bong_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/click_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/click_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/click_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/click_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/click_005.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/drop_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/drop_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/drop_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/error_005.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/error_006.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/glitch_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/glitch_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/select_008.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/switch_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/switch_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/switch_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/switch_005.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/switch_006.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/switch_007.ogg +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-001.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-002.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-003.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-004.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-005.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-006.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-007.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-008.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-009.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-010.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-011.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-012.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-013.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-014.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-015.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-016.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-017.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-018.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-019.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-020.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-021.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-022.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-023.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-024.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-025.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-026.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-027.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-028.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-029.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-030.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-031.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-032.wav +0 -0
- package/skills/business/brag/assets/sfx/sfx-analysis.json +15584 -0
- package/skills/business/brag/assets/sfx/sfx-analysis.md +75 -0
- package/skills/business/brag/assets/sfx/ui/click1.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/click2.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/click3.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/click4.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/click5.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/mouseclick1.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/rollover1.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/rollover2.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/rollover4.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/rollover5.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch1.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch10.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch11.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch12.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch13.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch14.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch15.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch16.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch17.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch18.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch19.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch2.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch20.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch21.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch22.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch23.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch24.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch25.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch26.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch27.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch28.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch29.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch3.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch30.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch31.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch32.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch33.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch34.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch35.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch36.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch37.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch38.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch4.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch5.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch6.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch7.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch8.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch9.ogg +0 -0
- package/skills/business/brag/references/audio.md +307 -0
- package/skills/business/brag/references/step-1-inspect.md +133 -0
- package/skills/business/brag/references/step-2-plan.md +234 -0
- package/skills/business/brag/references/step-3-compose.md +210 -0
- package/skills/business/brag/references/step-4-deliver.md +168 -0
- package/skills/business/brag/references/tones.md +231 -0
- package/skills/business/brag/scripts/analyze_music_cues.py +309 -0
- package/skills/business/brag/scripts/pyproject.toml +14 -0
- package/skills/business/brag/scripts/uv.lock +819 -0
- package/skills/business/copywriting/SKILL.md +178 -0
- package/skills/business/customer-research/SKILL.md +259 -0
- package/skills/business/freelancing/SKILL.md +679 -0
- package/skills/business/launch/SKILL.md +273 -0
- package/skills/business/marketing-psychology/SKILL.md +364 -0
- package/skills/business/pricing/SKILL.md +233 -0
- package/skills/business/resume-revamp-jake-ats/SKILL.md +64 -0
- package/skills/business/startup-founder/SKILL.md +400 -0
- package/skills/business/startup-founder/references/funding.md +48 -0
- package/skills/business/startup-founder/references/further-reading.md +132 -0
- package/skills/business/startup-founder/references/gtm-tools.md +57 -0
- package/skills/business/startup-founder/references/legal-india.md +36 -0
- package/skills/business/startup-founder/references/marketing/README.md +16 -0
- package/skills/business/startup-founder/references/marketing/cold-email.md +172 -0
- package/skills/business/startup-founder/references/marketing/competitors.md +245 -0
- package/skills/business/startup-founder/references/marketing/customer-research.md +276 -0
- package/skills/business/startup-founder/references/marketing/free-tools.md +168 -0
- package/skills/business/startup-founder/references/marketing/launch.md +343 -0
- package/skills/business/startup-founder/references/marketing/marketing-plan.md +270 -0
- package/skills/business/startup-founder/references/marketing/pricing.md +237 -0
- package/skills/business/startup-founder/references/marketing/product-marketing.md +250 -0
- package/skills/business/startup-founder/references/validation.md +267 -0
- package/skills/devops/deployments/SKILL.md +339 -0
- package/skills/devops/git-ci/SKILL.md +372 -0
- package/skills/devops/performance/SKILL.md +523 -0
- package/skills/devops/testing/SKILL.md +558 -0
- package/skills/engineering/code-review/SKILL.md +149 -0
- package/skills/engineering/coding-standards/SKILL.md +229 -0
- package/skills/engineering/product-engineering/SKILL.md +219 -0
- package/skills/engineering/senior-engineer-prompts/SKILL.md +145 -0
- package/skills/engineering/tdd-workflow/SKILL.md +178 -0
- package/skills/engineering/verification-loop/SKILL.md +199 -0
- package/skills/nerdev/nerdev-abstraction/SKILL.md +412 -0
- package/skills/nerdev/nerdev-docs/SKILL.md +527 -0
- package/skills/nerdev/nerdev-docs/templates/adr-template.md +39 -0
- package/skills/nerdev/nerdev-docs/templates/contributing-template.md +140 -0
- package/skills/nerdev/nerdev-docs/templates/deploy-template.md +426 -0
- package/skills/nerdev/nerdev-docs/templates/design-template.md +105 -0
- package/skills/nerdev/nerdev-docs/templates/incident-template.md +66 -0
- package/skills/nerdev/nerdev-monorepo/SKILL.md +522 -0
- package/skills/quality/output-skill/SKILL.md +49 -0
- package/skills/quality/unslop/SKILL.md +67 -0
- package/skills/ui/animaxxing/SKILL.md +58 -0
- package/skills/ui/animaxxing/agents/openai.yaml +7 -0
- package/skills/ui/animaxxing/references/effect-restoration.md +26 -0
- package/skills/ui/animaxxing/references/motion-vocabulary.md +142 -0
- package/skills/ui/animaxxing/references/recipes/blast-off.md +119 -0
- package/skills/ui/animaxxing/references/recipes/particle-effects.md +718 -0
- package/skills/ui/animaxxing/references/recipes/particle-field.md +428 -0
- package/skills/ui/animaxxing/references/recipes/route-letters.md +205 -0
- package/skills/ui/animaxxing/references/recipes/speak-in.md +181 -0
- package/skills/ui/animaxxing/references/recipes/split-entrances.md +345 -0
- package/skills/ui/animaxxing/references/recipes/wave.md +144 -0
- package/skills/ui/animaxxing/references/text-stability.md +68 -0
- package/skills/ui/animaxxing/references/verification.md +44 -0
- package/skills/ui/ask-animation/SKILL.md +178 -0
- package/skills/ui/ask-base-ui/SKILL.md +400 -0
- package/skills/ui/ask-cmdk/SKILL.md +315 -0
- package/skills/ui/ask-command-menu/SKILL.md +262 -0
- package/skills/ui/ask-drawer/SKILL.md +235 -0
- package/skills/ui/ask-form/SKILL.md +229 -0
- package/skills/ui/ask-gsap/SKILL.md +435 -0
- package/skills/ui/ask-modal/SKILL.md +145 -0
- package/skills/ui/ask-motion/SKILL.md +339 -0
- package/skills/ui/ask-rhf/SKILL.md +388 -0
- package/skills/ui/ask-sonner/API.md +64 -0
- package/skills/ui/ask-sonner/SKILL.md +88 -0
- package/skills/ui/ask-table/SKILL.md +253 -0
- package/skills/ui/ask-tanstack-table/SKILL.md +490 -0
- package/skills/ui/ask-toast/SKILL.md +163 -0
- package/skills/ui/ask-vaul/SKILL.md +291 -0
- package/skills/ui/ask-virtual-list/SKILL.md +304 -0
- package/skills/ui/ask-virtuoso/SKILL.md +332 -0
- package/skills/ui/email-craft/SKILL.md +258 -0
- package/skills/ui/frontend-craftsmanship/SKILL.md +462 -0
- package/skills/ui/gsap-astro/SKILL.md +56 -0
- package/skills/ui/gsap-astro/agents/openai.yaml +7 -0
- package/skills/ui/gsap-astro/references/client-router-navigation.md +139 -0
- package/skills/ui/gsap-astro/references/initialization.md +87 -0
- package/skills/ui/gsap-astro/references/motion-system.md +152 -0
- package/skills/ui/gsap-astro/references/scripts-and-islands.md +65 -0
- package/skills/ui/gsap-astro/references/verification.md +44 -0
- package/skills/ui/gsap-core/SKILL.md +254 -0
- package/skills/ui/gsap-frameworks/SKILL.md +266 -0
- package/skills/ui/gsap-nextjs/SKILL.md +51 -0
- package/skills/ui/gsap-nextjs/agents/openai.yaml +7 -0
- package/skills/ui/gsap-nextjs/references/app-router-navigation.md +189 -0
- package/skills/ui/gsap-nextjs/references/initialization.md +87 -0
- package/skills/ui/gsap-nextjs/references/motion-system.md +158 -0
- package/skills/ui/gsap-nextjs/references/verification.md +40 -0
- package/skills/ui/gsap-nuxt/SKILL.md +56 -0
- package/skills/ui/gsap-nuxt/agents/openai.yaml +7 -0
- package/skills/ui/gsap-nuxt/references/initialization.md +87 -0
- package/skills/ui/gsap-nuxt/references/motion-system.md +161 -0
- package/skills/ui/gsap-nuxt/references/navigation.md +145 -0
- package/skills/ui/gsap-nuxt/references/page-transitions.md +107 -0
- package/skills/ui/gsap-nuxt/references/verification.md +42 -0
- package/skills/ui/gsap-performance/SKILL.md +79 -0
- package/skills/ui/gsap-plugins/SKILL.md +433 -0
- package/skills/ui/gsap-react/SKILL.md +136 -0
- package/skills/ui/gsap-react-router/SKILL.md +55 -0
- package/skills/ui/gsap-react-router/agents/openai.yaml +7 -0
- package/skills/ui/gsap-react-router/references/initialization.md +87 -0
- package/skills/ui/gsap-react-router/references/motion-system.md +158 -0
- package/skills/ui/gsap-react-router/references/react-router-navigation.md +165 -0
- package/skills/ui/gsap-react-router/references/route-lifetime.md +74 -0
- package/skills/ui/gsap-react-router/references/verification.md +42 -0
- package/skills/ui/gsap-scrolltrigger/SKILL.md +296 -0
- package/skills/ui/gsap-sveltekit/SKILL.md +54 -0
- package/skills/ui/gsap-sveltekit/agents/openai.yaml +7 -0
- package/skills/ui/gsap-sveltekit/references/initialization.md +87 -0
- package/skills/ui/gsap-sveltekit/references/motion-system.md +156 -0
- package/skills/ui/gsap-sveltekit/references/page-lifetime.md +63 -0
- package/skills/ui/gsap-sveltekit/references/sveltekit-navigation.md +160 -0
- package/skills/ui/gsap-sveltekit/references/verification.md +41 -0
- package/skills/ui/gsap-tanstack-router/SKILL.md +56 -0
- package/skills/ui/gsap-tanstack-router/agents/openai.yaml +7 -0
- package/skills/ui/gsap-tanstack-router/references/initialization.md +87 -0
- package/skills/ui/gsap-tanstack-router/references/motion-system.md +160 -0
- package/skills/ui/gsap-tanstack-router/references/route-lifetime.md +66 -0
- package/skills/ui/gsap-tanstack-router/references/tanstack-navigation.md +156 -0
- package/skills/ui/gsap-tanstack-router/references/verification.md +41 -0
- package/skills/ui/gsap-timeline/SKILL.md +107 -0
- package/skills/ui/gsap-utils/SKILL.md +284 -0
- package/skills/ui/gsap-vanilla/SKILL.md +63 -0
- package/skills/ui/gsap-vanilla/agents/openai.yaml +7 -0
- package/skills/ui/gsap-vanilla/references/cross-document-navigation.md +54 -0
- package/skills/ui/gsap-vanilla/references/initialization.md +87 -0
- package/skills/ui/gsap-vanilla/references/motion-system.md +150 -0
- package/skills/ui/gsap-vanilla/references/page-load.md +96 -0
- package/skills/ui/gsap-vanilla/references/spa-navigation.md +70 -0
- package/skills/ui/gsap-vanilla/references/verification.md +41 -0
- package/skills/ui/house-style/SKILL.md +366 -0
- package/skills/ui/imagegen/SKILL.md +49 -0
- package/skills/ui/imagegen/references/brandkit.md +48 -0
- package/skills/ui/imagegen/references/image-to-code.md +56 -0
- package/skills/ui/imagegen/references/mobile.md +58 -0
- package/skills/ui/imagegen/references/web.md +63 -0
- package/skills/ui/impeccable/SKILL.md +116 -0
- package/skills/ui/impeccable/reference/adapt.md +318 -0
- package/skills/ui/impeccable/reference/adapt.native.md +58 -0
- package/skills/ui/impeccable/reference/android.md +46 -0
- package/skills/ui/impeccable/reference/animate.md +89 -0
- package/skills/ui/impeccable/reference/audit.md +137 -0
- package/skills/ui/impeccable/reference/audit.native.md +139 -0
- package/skills/ui/impeccable/reference/bolder.md +33 -0
- package/skills/ui/impeccable/reference/clarify.md +94 -0
- package/skills/ui/impeccable/reference/colorize.md +86 -0
- package/skills/ui/impeccable/reference/craft-floor.md +44 -0
- package/skills/ui/impeccable/reference/craft.md +5 -0
- package/skills/ui/impeccable/reference/critique.md +806 -0
- package/skills/ui/impeccable/reference/degraded/asset-producer.md +37 -0
- package/skills/ui/impeccable/reference/degraded/documenter.md +24 -0
- package/skills/ui/impeccable/reference/degraded/finish-reviewer.md +38 -0
- package/skills/ui/impeccable/reference/degraded/manual-edit-applier.md +92 -0
- package/skills/ui/impeccable/reference/delight.md +70 -0
- package/skills/ui/impeccable/reference/distill.md +111 -0
- package/skills/ui/impeccable/reference/doctor.md +54 -0
- package/skills/ui/impeccable/reference/document.md +416 -0
- package/skills/ui/impeccable/reference/extract.md +69 -0
- package/skills/ui/impeccable/reference/generate.md +101 -0
- package/skills/ui/impeccable/reference/harden.md +345 -0
- package/skills/ui/impeccable/reference/hooks.md +111 -0
- package/skills/ui/impeccable/reference/init.md +131 -0
- package/skills/ui/impeccable/reference/ios.md +51 -0
- package/skills/ui/impeccable/reference/layout.md +84 -0
- package/skills/ui/impeccable/reference/live-setup.md +104 -0
- package/skills/ui/impeccable/reference/live.md +325 -0
- package/skills/ui/impeccable/reference/new-work.md +145 -0
- package/skills/ui/impeccable/reference/onboard.md +234 -0
- package/skills/ui/impeccable/reference/operate.md +61 -0
- package/skills/ui/impeccable/reference/optimize.md +258 -0
- package/skills/ui/impeccable/reference/overdrive.md +127 -0
- package/skills/ui/impeccable/reference/polish.md +105 -0
- package/skills/ui/impeccable/reference/quieter.md +99 -0
- package/skills/ui/impeccable/reference/routing.md +24 -0
- package/skills/ui/impeccable/reference/shape.md +59 -0
- package/skills/ui/impeccable/reference/typeset.md +80 -0
- package/skills/ui/impeccable/reference/visualize.md +46 -0
- package/skills/ui/impeccable/scripts/VERSION +1 -0
- package/skills/ui/impeccable/scripts/command-metadata.json +98 -0
- package/skills/ui/impeccable/scripts/data/font-index-failures.json +121 -0
- package/skills/ui/impeccable/scripts/data/font-index.json +1 -0
- package/skills/ui/impeccable/scripts/impeccable +206 -0
- package/skills/ui/impeccable/scripts/impeccable.cmd +214 -0
- package/skills/ui/impeccable/scripts/live-browser-dom.js +167 -0
- package/skills/ui/impeccable/scripts/live-browser-ignores.js +242 -0
- package/skills/ui/impeccable/scripts/live-browser-session.js +144 -0
- package/skills/ui/impeccable/scripts/live-browser.js +13510 -0
- package/skills/ui/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/skills/ui/motion/SKILL.md +207 -0
- package/skills/ui/pick-ui-library/SKILL.md +85 -0
- package/skills/ui/product-messaging/SKILL.md +163 -0
- package/skills/ui/product-site/SKILL.md +465 -0
- package/skills/ui/prototype/PICKER.md +197 -0
- package/skills/ui/prototype/SKILL.md +98 -0
- package/skills/ui/refero-design/SKILL.md +534 -0
- package/skills/ui/refero-design/agents/openai.yaml +4 -0
- package/skills/ui/refero-design/references/anti-ai-slop.md +292 -0
- package/skills/ui/refero-design/references/color.md +563 -0
- package/skills/ui/refero-design/references/copywriting.md +222 -0
- package/skills/ui/refero-design/references/craft-details.md +525 -0
- package/skills/ui/refero-design/references/example-workflow.md +264 -0
- package/skills/ui/refero-design/references/icons.md +166 -0
- package/skills/ui/refero-design/references/mcp-tools.md +258 -0
- package/skills/ui/refero-design/references/motion.md +504 -0
- package/skills/ui/refero-design/references/typography.md +737 -0
- package/skills/ui/refero-design/references/visual-workflow.md +105 -0
- package/skills/ui/style-animaxxing/SKILL.md +48 -0
- package/skills/ui/style-animaxxing/agents/openai.yaml +7 -0
- package/skills/ui/style-animaxxing/references/motion-vocabulary.md +51 -0
- package/skills/ui/style-animaxxing/references/tokens.md +288 -0
- package/skills/ui/style-animaxxing/references/typography-and-layout.md +149 -0
- package/skills/ui/style-animaxxing/references/verification.md +38 -0
- package/skills/ui/typography-picker/SKILL.md +305 -0
- package/skills/ui/ui-core/SKILL.md +345 -0
- package/skills/ui/ui-core/references/accessibility.md +85 -0
- package/skills/ui/ui-core/references/build.md +666 -0
- package/skills/ui/ui-core/references/copy.md +70 -0
- package/skills/ui/ui-core/references/dark-mode.md +76 -0
- package/skills/ui/ui-core/references/direction.md +99 -0
- package/skills/ui/ui-core/references/redesign.md +74 -0
- package/skills/ui/ui-core/references/responsive.md +77 -0
- package/skills/ui/ui-core/references/styles.md +42 -0
- package/skills/ui/ui-core/references/system.md +190 -0
- package/skills/ui/ui-core/references/verify.md +37 -0
- package/skills/ui/ui-engineering/SKILL.md +436 -0
- package/skills/ui/ui-engineering/references/avatars.md +74 -0
- package/skills/ui/ui-engineering/references/card-patterns.md +66 -0
- package/skills/ui/ui-engineering/references/floating-actions.md +65 -0
- package/skills/ui/ui-engineering/references/navigation.md +81 -0
- package/skills/ui/ui-engineering/references/overlays.md +74 -0
- package/skills/ui/ui-engineering/references/pagination.md +71 -0
- package/skills/ui/ui-engineering/references/progress-indicators.md +77 -0
- package/skills/ui/ui-engineering/references/quality-bar.md +293 -0
- package/skills/ui/ui-engineering/references/search.md +68 -0
- package/skills/ui/ui-engineering/references/tailwind-architecture.md +81 -0
- package/skills/ui/ui-theme-picker/SKILL.md +522 -0
- package/skills/ui/ui-theme-picker/references/component-sources.md +223 -0
- package/skills/ui/ui-theme-picker/references/styles.md +298 -0
- package/skills/ui/vitepress-docs/SKILL.md +439 -0
- package/skills/ui/vitepress-docs/references/components.md +333 -0
- package/skills/ui/vitepress-docs/references/layout.md +128 -0
- package/skills/ui/vitepress-docs/references/tokens.md +87 -0
- package/skills/ui/vitepress-docs/references/typography.md +76 -0
- package/skills/workflow/careful/SKILL.md +48 -0
- package/skills/workflow/context-restore/SKILL.md +69 -0
- package/skills/workflow/context-save/SKILL.md +96 -0
- package/skills/workflow/health/SKILL.md +99 -0
- package/skills/workflow/learn/SKILL.md +95 -0
- package/skills/workflow/office-hours/SKILL.md +136 -0
- package/skills/workflow/ship/SKILL.md +95 -0
- package/vendor.json +80 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Visual Workflow
|
|
2
|
+
|
|
3
|
+
Use this reference only when the task needs visual exploration, generated mockups,
|
|
4
|
+
bitmap assets, or post-build visual QA. Keep the main Refero workflow research-first:
|
|
5
|
+
styles for taste, screens for product patterns, flows for journeys.
|
|
6
|
+
|
|
7
|
+
## Image Generation Capability
|
|
8
|
+
|
|
9
|
+
Image generation is optional. Use it only when the current environment exposes an image
|
|
10
|
+
tool, or when the user has approved a CLI/API image workflow. Refero must still work
|
|
11
|
+
in Claude Code, Codex, Cursor, Gemini CLI, Lovable, and other MCP-compatible agents when
|
|
12
|
+
no image tool exists.
|
|
13
|
+
|
|
14
|
+
In Codex Desktop, use the built-in `image_gen` / Image Gen tool when it is available.
|
|
15
|
+
Generate each visual direction or bitmap asset as its own image result. Do not use
|
|
16
|
+
browser screenshots, CSS drawings, inline SVG, or placeholder shapes as a substitute for
|
|
17
|
+
generated bitmap assets when the reference lock calls for real imagery.
|
|
18
|
+
|
|
19
|
+
If image generation is unavailable, present written reference-locked directions and
|
|
20
|
+
implementation-ready prompts instead. Do not assume another agent can call Codex
|
|
21
|
+
Desktop's built-in image tool just because Codex is installed locally; verify the tool
|
|
22
|
+
is exposed and user-approved first.
|
|
23
|
+
|
|
24
|
+
## Three Visual Directions
|
|
25
|
+
|
|
26
|
+
Use this only when exploration is useful: variants, a new visual language, major
|
|
27
|
+
redesigns, landing pages, or other high-visibility surfaces with several plausible
|
|
28
|
+
directions. Do not run it for small edits, obvious component work, or production fixes
|
|
29
|
+
with a clear source.
|
|
30
|
+
|
|
31
|
+
1. Research styles first; add screens/flows when structure or journey matters.
|
|
32
|
+
2. Create three distinct reference-locked directions with a primary source, traits to
|
|
33
|
+
preserve, borrowed details, media strategy, and rejects, unless the user asks for a
|
|
34
|
+
different count.
|
|
35
|
+
3. If image generation is available and worth the latency, generate one independent
|
|
36
|
+
image per direction. Otherwise provide written directions with implementation-ready
|
|
37
|
+
prompts.
|
|
38
|
+
4. Stop and ask the user to choose. The selected option becomes the visual target for
|
|
39
|
+
build and QA.
|
|
40
|
+
|
|
41
|
+
Example format only. Replace these names and directions for every task based on the
|
|
42
|
+
current brief and Refero research:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
1. [Direction name] - [specific layout, style, product framing, and primary reference].
|
|
46
|
+
2. [Direction name] - [specific layout, style, product framing, and primary reference].
|
|
47
|
+
3. [Direction name] - [specific layout, style, product framing, and primary reference].
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Visual Target Gate
|
|
51
|
+
|
|
52
|
+
Before coding substantial visual work, identify the build target and what must not drift:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
Build target: [existing UI / user screenshot / Figma frame / URL capture / selected generated mockup / approved reference lock]
|
|
56
|
+
What must not drift: [canvas, typography, accent roles, layout, media, density]
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
If no target exists and the visual direction is material, explore options or ask the
|
|
60
|
+
user to approve one reference-locked direction first.
|
|
61
|
+
|
|
62
|
+
## Generated Assets
|
|
63
|
+
|
|
64
|
+
Generate assets only when the reference lock needs bitmap media: hero/product imagery,
|
|
65
|
+
illustrations, textures, thumbnails, cutouts, or required replacement assets. Do not use
|
|
66
|
+
image generation for standard icons, editable SVG systems, code-native UI, or fake
|
|
67
|
+
product evidence.
|
|
68
|
+
|
|
69
|
+
Before generating, write a short asset lock:
|
|
70
|
+
|
|
71
|
+
```text
|
|
72
|
+
Asset role: [hero image / texture / illustration / thumbnail / cutout]
|
|
73
|
+
Slot: [dimensions/aspect ratio/location]
|
|
74
|
+
Art direction: [source, palette, subject, rendering, crop, density]
|
|
75
|
+
Avoid: [wrong palette, extra text, brand drift, generic placeholders]
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Generated assets must be placed into the implementation before handoff or documented as
|
|
79
|
+
blocked.
|
|
80
|
+
|
|
81
|
+
## Visual QA
|
|
82
|
+
|
|
83
|
+
After implementation, run a visual QA pass for substantial UI/design work:
|
|
84
|
+
|
|
85
|
+
```text
|
|
86
|
+
Source truth: [reference lock / selected mockup / screenshot / Figma / URL capture]
|
|
87
|
+
Implementation evidence: [local screenshot, deployed URL screenshot, or captured app state]
|
|
88
|
+
Viewport/state: [desktop/mobile, route, theme, interaction state]
|
|
89
|
+
Final result: [passed / blocked]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Check typography, spacing/layout, colors/tokens, imagery/assets, relevant component
|
|
93
|
+
states, and product copy. Use the relevant craft references during QA when judging
|
|
94
|
+
typography, color, motion, icons, accessibility, images, copy, and generic-design drift.
|
|
95
|
+
|
|
96
|
+
Classify issues by severity:
|
|
97
|
+
|
|
98
|
+
- `P0`: broken task, unreadable/overlapping UI, or severe accessibility issue
|
|
99
|
+
- `P1`: major design drift or likely user-facing usability regression
|
|
100
|
+
- `P2`: moderate visual mismatch, missing state, responsive issue, or asset drift
|
|
101
|
+
- `P3`: polish that can follow after handoff
|
|
102
|
+
|
|
103
|
+
Do not hand off visual work with unresolved P0/P1/P2 findings unless clearly blocked by
|
|
104
|
+
missing source access, missing assets, or an unavailable tool. If blocked, say what
|
|
105
|
+
evidence is missing and what should be checked next.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: style-animaxxing
|
|
3
|
+
description: "Apply the Animaxxing art direction: monochrome editorial design, Rethink Sans and JetBrains Mono, poster type, hairlines, and a curated motion treatment. Use for 'animaxx it', the Animaxxing aesthetic, or a requested Swiss-style monochrome redesign. Use animaxxing for reusable effects while preserving another brand. Not for framework routing or isolated GSAP API questions."
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
short-description: The Animaxxing look and its motion art direction
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Animaxxing Style
|
|
10
|
+
|
|
11
|
+
The look of [Animaxxing](https://github.com/johnpolacek/animaxxing): black, white, neutral gray, oversized sans against small uppercase mono, hairline rules, scattering letters, and particle-assembled controls.
|
|
12
|
+
|
|
13
|
+
This skill owns visual design and selects how motion supports it. `animaxxing` supplies the reusable vanilla TypeScript and GSAP recipes. The matching `gsap-<framework>` skill (including `gsap-vanilla`) owns **mount → initial state → intro → settled → outro → end state → unmount**, navigation, interruption, and cleanup timing.
|
|
14
|
+
|
|
15
|
+
## Choose the scope
|
|
16
|
+
|
|
17
|
+
- Apply a full restyle only when the request authorizes it; preserve an existing brand otherwise. An explicit Animaxxing redesign needs no further confirmation.
|
|
18
|
+
- For the full treatment, install and load `animaxxing` and the matching framework skill, then use the surface choices below. If either is unavailable, identify the missing skill; do not invent its recipes or lifecycle guidance.
|
|
19
|
+
- For the design with minimal or no animation, apply the tokens and layout and reduce or omit display effects. Do not require a motion skill or GSAP for a static restyle.
|
|
20
|
+
- For effects on another brand, use `animaxxing` directly without applying these fonts, colors, or layout rules.
|
|
21
|
+
|
|
22
|
+
## Apply and load progressively
|
|
23
|
+
|
|
24
|
+
For a full restyle, work in this order; for a focused change, load only the relevant reference.
|
|
25
|
+
|
|
26
|
+
| Task | Reference |
|
|
27
|
+
|---|---|
|
|
28
|
+
| Colors, fonts, scales, spacing, focus, light/dark themes | [Tokens](references/tokens.md) |
|
|
29
|
+
| Poster/Statement/Label/Annotation/BodyCopy roles; header, grid, rail, ledgers, cards | [Typography and layout](references/typography-and-layout.md) |
|
|
30
|
+
| Choose effects, map them to surfaces, set the Animaxxing pacing | [Motion art direction](references/motion-vocabulary.md), then the selected references in `animaxxing` |
|
|
31
|
+
| Check the changed look | [Verification](references/verification.md); for motion, also use the motion and framework skills' relevant checks |
|
|
32
|
+
|
|
33
|
+
## Design constraints
|
|
34
|
+
|
|
35
|
+
- Load variable Rethink Sans (400–800) and JetBrains Mono (100–800) through the project's font pipeline. Use plain CSS tokens, or their Tailwind v4 mapping if the project uses it.
|
|
36
|
+
- Neutral token colors only; no decorative shadows or gradients. Use hairlines by default, 2px borders for controls/cards, and tight radii.
|
|
37
|
+
- Flush left, ragged right. Poster type may crop deliberately; reading text and annotations never crop. Annotations stay at least 11px; uppercase mono is for metadata, not body copy.
|
|
38
|
+
- Reading text stays still. Display text can scatter, split, or wave; the hero subhead is the speak-in exception for the full treatment.
|
|
39
|
+
- Ordinary UI motion uses the duration/ease/distance values in the tokens reference; display effects deliberately use larger moves. The motion skill owns implementation and text stability checks.
|
|
40
|
+
- Motion is part of this art direction, but the requested intensity takes precedence. Keep the composition readable with all effects omitted and under reduced motion.
|
|
41
|
+
|
|
42
|
+
## Composition boundary
|
|
43
|
+
|
|
44
|
+
Select and configure effects; do not copy their implementations into this skill. Load recipe files from the installed `animaxxing` skill by name, without assuming skill folders are siblings on disk. The framework controller calls the selected builders and owns their phase state and cleanup handles. This skill never installs routing hooks, owns a navigation wait, or decides mount, unmount, or replay timing.
|
|
45
|
+
|
|
46
|
+
## Readable design
|
|
47
|
+
|
|
48
|
+
Static styles keep meaningful content readable. Invisible entrances use the matching installed framework skill’s `references/initialization.md`; effect rollback belongs to `animaxxing`’s `references/effect-restoration.md`. Do not add unconditional hiding, readiness timers, or route recovery to this style. Preserve the selected choreography when initialization succeeds.
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Animaxxing Style"
|
|
3
|
+
short_description: "The Animaxxing look and its motion art direction"
|
|
4
|
+
default_prompt: "Use $style-animaxxing to restyle this site in the Animaxxing look, composing animaxxing and the matching GSAP framework skill when animation is requested."
|
|
5
|
+
|
|
6
|
+
policy:
|
|
7
|
+
allow_implicit_invocation: true
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Motion art direction
|
|
2
|
+
|
|
3
|
+
Motion is part of the Animaxxing look: big display gestures, quiet reading text, and controls that assemble from particles. This file selects and configures effects. Load `animaxxing` for their implementation and the matching framework skill for **mount → initial state → intro → settled → outro → end state → unmount**.
|
|
4
|
+
|
|
5
|
+
## Intensity
|
|
6
|
+
|
|
7
|
+
- **Full treatment:** use the surface mapping below. One ambient effect per display surface; reading copy stays still, with the hero subhead as the speak-in exception.
|
|
8
|
+
- **Minimal motion:** keep tokens, typography, and composition. Prefer brief fades or rises and omit scattering, speak-in, waves, particles, and blast-off. Ordinary reading text remains immediately readable.
|
|
9
|
+
- **No animation:** render the same settled composition without splits, canvases, or GSAP. Do not add initial hiding or phase markers for effects that will not run.
|
|
10
|
+
|
|
11
|
+
The user's requested intensity takes precedence. System or app reduced motion also suppresses display and ambient effects; the motion skill and framework controller own readable endpoints and completion behavior.
|
|
12
|
+
|
|
13
|
+
## Recipe selection
|
|
14
|
+
|
|
15
|
+
Install and load `animaxxing`, then read only the selected reference inside that skill. Do not assume its installation directory is adjacent to this one.
|
|
16
|
+
|
|
17
|
+
| Visual choice | Reference in `animaxxing` |
|
|
18
|
+
|---|---|
|
|
19
|
+
| Ordinary fade/rise/wipe pairs and route marker values | `references/motion-vocabulary.md` |
|
|
20
|
+
| Masked display entrance; elastic wordmark | `references/recipes/split-entrances.md` |
|
|
21
|
+
| Scattering headline and coordinated page items | `references/recipes/route-letters.md` |
|
|
22
|
+
| Spoken hero subhead | `references/recipes/speak-in.md` |
|
|
23
|
+
| Ambient heading wave | `references/recipes/wave.md` |
|
|
24
|
+
| Hero dispersal | `references/recipes/blast-off.md` |
|
|
25
|
+
| Button/card/link/field treatments | `references/recipes/particle-effects.md` and `particle-field.md` in the same directory |
|
|
26
|
+
|
|
27
|
+
## Configuration for this look
|
|
28
|
+
|
|
29
|
+
Use the ordinary motion values in [tokens](tokens.md#motion-tokens). The motion recipes carry matching example defaults; when composing them, keep the selected values in the consuming app's motion module. Display recipes deliberately use longer sequences and larger spreads.
|
|
30
|
+
|
|
31
|
+
Rethink Sans display type rests at 800, so the wave's example dips through 400–500 and returns to 800. Speak-in's `broken` finish uses 400–800. These are settings for this style; the reusable recipes can use other supported font ranges. Particle canvases use `color: var(--foreground)` from the theme, with sufficient contrast against the surface.
|
|
32
|
+
|
|
33
|
+
Use the route recipe's `letters` treatment for the main display headline and standard rise for supporting page items. The framework controller applies the recipe's target markers, initial visibility, and cleanup; this style does not add a second readiness or navigation mechanism.
|
|
34
|
+
|
|
35
|
+
## Surface effects
|
|
36
|
+
|
|
37
|
+
For the full treatment, select these recipes from `animaxxing`. These are art-direction choices mapped onto the framework skill's phases; its controller owns execution timing.
|
|
38
|
+
|
|
39
|
+
| Surface | Intro | Settled | Outro |
|
|
40
|
+
|---|---|---|---|
|
|
41
|
+
| Hero headline | route `letters` | `startWave(heading, { period: 1.5 })` | `blastOff` (on a call to action) or route exit |
|
|
42
|
+
| Hero subhead | `speakIn(el, { emphasis, delay: 0.3 })` after the letters land | finishes persist | `blastOff` throws the words |
|
|
43
|
+
| Primary call to action | `reactor.enter(delay)` | embers | `blast()` when pressed, `exit()` on route exit |
|
|
44
|
+
| Secondary call to action | `marquee.enter(delay)` | runners | same |
|
|
45
|
+
| Card | `resolve.enter(index * 0.09)` on idle | one runner, glints | `exit()` |
|
|
46
|
+
| Onward link | `slipstream.enter()` on idle | drifting hairlines | `blast()` when pressed |
|
|
47
|
+
| Command block or giant field | `ignite.enter(0.75 + index * 0.25)` on entering | embers off the rule | `blast()` on copy or submit, `exit()` on route exit |
|
|
48
|
+
| Wordmark | `charsSpringIn` plus underline `scaleX 0 → 1` | still | none when the framework keeps the shell persistent |
|
|
49
|
+
| Everything else | route standard rise | still | route exit |
|
|
50
|
+
|
|
51
|
+
Timing on the hero, for reference: letters land from 0.75s; the subhead starts speaking at 1.05s; the buttons enter at speak start plus 0.2s and 0.35s; the wave starts on `idle`. The blast-off visual disperses the hero; its completion handle belongs to the framework controller. Do not substitute a fixed navigation timer for completion.
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
# Tokens
|
|
2
|
+
|
|
3
|
+
Read this to set up colors, fonts, type scale, spacing, radii, borders, focus, and selection. Two forms are given: plain CSS custom properties, and the Tailwind v4 `@theme inline` mapping that turns them into utilities.
|
|
4
|
+
|
|
5
|
+
## Colors
|
|
6
|
+
|
|
7
|
+
Monochrome only. Twelve semantic tokens, in a light and a dark scheme. Components consume them by name and never by hex.
|
|
8
|
+
|
|
9
|
+
Scheme precedence, highest first:
|
|
10
|
+
|
|
11
|
+
1. `data-theme="dark"` or `data-theme="light"` on `<html>`: an explicit user choice, written by a toggle and persisted (localStorage is fine).
|
|
12
|
+
2. `prefers-color-scheme`: the operating-system setting, used when no explicit choice exists.
|
|
13
|
+
3. Light.
|
|
14
|
+
|
|
15
|
+
```css
|
|
16
|
+
:root {
|
|
17
|
+
color-scheme: light;
|
|
18
|
+
|
|
19
|
+
--canvas: #ffffff;
|
|
20
|
+
--foreground: #171717;
|
|
21
|
+
--muted: #525252;
|
|
22
|
+
--border: #d4d4d4;
|
|
23
|
+
--surface: #fafafa;
|
|
24
|
+
--surface-hover: #f0f0f0;
|
|
25
|
+
--inverse: #171717;
|
|
26
|
+
--inverse-hover: #404040;
|
|
27
|
+
--inverse-foreground: #ffffff;
|
|
28
|
+
--focus: #171717;
|
|
29
|
+
--selection: #171717;
|
|
30
|
+
--selection-foreground: #ffffff;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* The operating-system setting, unless the user pinned the light scheme. */
|
|
34
|
+
@media (prefers-color-scheme: dark) {
|
|
35
|
+
:root:not([data-theme="light"]) {
|
|
36
|
+
color-scheme: dark;
|
|
37
|
+
|
|
38
|
+
--canvas: #0a0a0a;
|
|
39
|
+
--foreground: #ededed;
|
|
40
|
+
--muted: #a3a3a3;
|
|
41
|
+
--border: #262626;
|
|
42
|
+
--surface: #171717;
|
|
43
|
+
--surface-hover: #262626;
|
|
44
|
+
--inverse: #ededed;
|
|
45
|
+
--inverse-hover: #d4d4d4;
|
|
46
|
+
--inverse-foreground: #0a0a0a;
|
|
47
|
+
--focus: #ededed;
|
|
48
|
+
--selection: #ededed;
|
|
49
|
+
--selection-foreground: #0a0a0a;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/* An explicit user choice wins at any operating-system setting. */
|
|
54
|
+
:root[data-theme="dark"] {
|
|
55
|
+
color-scheme: dark;
|
|
56
|
+
|
|
57
|
+
--canvas: #0a0a0a;
|
|
58
|
+
--foreground: #ededed;
|
|
59
|
+
--muted: #a3a3a3;
|
|
60
|
+
--border: #262626;
|
|
61
|
+
--surface: #171717;
|
|
62
|
+
--surface-hover: #262626;
|
|
63
|
+
--inverse: #ededed;
|
|
64
|
+
--inverse-hover: #d4d4d4;
|
|
65
|
+
--inverse-foreground: #0a0a0a;
|
|
66
|
+
--focus: #ededed;
|
|
67
|
+
--selection: #ededed;
|
|
68
|
+
--selection-foreground: #0a0a0a;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
body {
|
|
72
|
+
background: var(--canvas);
|
|
73
|
+
color: var(--foreground);
|
|
74
|
+
font-family: var(--font-sans);
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Roles:
|
|
79
|
+
|
|
80
|
+
| Token | Role |
|
|
81
|
+
|---|---|
|
|
82
|
+
| `canvas` | The page ground. |
|
|
83
|
+
| `foreground` | Text and rules at full strength. |
|
|
84
|
+
| `muted` | Supporting copy, labels, annotations. Meets AA on canvas and surface. |
|
|
85
|
+
| `border` | Hairlines and quiet outlines. |
|
|
86
|
+
| `surface`, `surface-hover` | Cards and panels one step off the canvas. |
|
|
87
|
+
| `inverse`, `inverse-hover`, `inverse-foreground` | The solid button and any inverted band. Supporting copy on an inverted band uses `inverse-foreground` at 75% opacity, because `muted` falls below AA there. |
|
|
88
|
+
| `focus` | The keyboard focus ring. |
|
|
89
|
+
| `selection`, `selection-foreground` | Text selection, inverted. |
|
|
90
|
+
|
|
91
|
+
Particle canvases read their color from `color` on the canvas element, so give the canvas `color: var(--foreground)` and they follow the scheme.
|
|
92
|
+
|
|
93
|
+
Blend colors only while the scheme switches, so a toggle does not flash. Add `theme-transitioning` to `<html>` for the switch and remove it 250ms later:
|
|
94
|
+
|
|
95
|
+
```css
|
|
96
|
+
:root.theme-transitioning,
|
|
97
|
+
:root.theme-transitioning *,
|
|
98
|
+
:root.theme-transitioning *::before,
|
|
99
|
+
:root.theme-transitioning *::after {
|
|
100
|
+
transition-duration: 0.25s !important;
|
|
101
|
+
transition-property: background-color, border-color, color, fill, outline-color, stroke, text-decoration-color !important;
|
|
102
|
+
transition-timing-function: linear !important;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
@media (prefers-reduced-motion: reduce) {
|
|
106
|
+
:root.theme-transitioning,
|
|
107
|
+
:root.theme-transitioning *,
|
|
108
|
+
:root.theme-transitioning *::before,
|
|
109
|
+
:root.theme-transitioning *::after {
|
|
110
|
+
transition-duration: 0s !important;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Fonts
|
|
116
|
+
|
|
117
|
+
| Token | Face | Axis | Use |
|
|
118
|
+
|---|---|---|---|
|
|
119
|
+
| `--font-sans` | Rethink Sans, variable | `wght` 400 to 800 | Everything that is read, and all display type. |
|
|
120
|
+
| `--font-mono` | JetBrains Mono, variable | `wght` 100 to 800 | Labels, annotations, figures, code. |
|
|
121
|
+
|
|
122
|
+
800 is the top of Rethink Sans's axis. Asking for 900 clamps to the same rendering, so the system names the weight it gets: `font-weight: 800` for display, 600 for emphasis, 400 at rest. Animated weight stays inside 400 to 800.
|
|
123
|
+
|
|
124
|
+
Disable ligatures in code so figures stay tabular:
|
|
125
|
+
|
|
126
|
+
```css
|
|
127
|
+
code, pre { font-variant-ligatures: none; }
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Type scale
|
|
131
|
+
|
|
132
|
+
The two poster sizes are fluid and measured in `cqi`, so they respond to whatever column or frame they sit in and fall back to the viewport when no container is declared. Put `container-type: inline-size` on the column that owns a poster.
|
|
133
|
+
|
|
134
|
+
| Token | Size | Line height | Letter spacing | Role |
|
|
135
|
+
|---|---|---|---|---|
|
|
136
|
+
| `poster` | `clamp(3.25rem, 18cqi, 15rem)` | 0.84 | -0.045em | Structural graphic type. May be cropped. |
|
|
137
|
+
| `statement` | `clamp(2.75rem, 7cqi, 4.5rem)` | 0.95 | -0.03em | One size down; still reads as a sentence. Measure 18ch. |
|
|
138
|
+
| `display` | 2.25rem | 2.5rem | -0.02em | Card and section headings. |
|
|
139
|
+
| `title` | 1.5rem | 2rem | -0.01em | Subheadings. |
|
|
140
|
+
| `lead` | 1.125rem | 1.75rem | | Intro copy. |
|
|
141
|
+
| `body` | 1rem | 1.5rem | | Body copy. Measure 68ch, or 42ch narrow. |
|
|
142
|
+
| `caption` | 0.75rem | 1rem | 0.02em | Mono labels. |
|
|
143
|
+
| `annotation` | 0.6875rem | 1rem | 0.08em | Mono margin notes. The floor. |
|
|
144
|
+
|
|
145
|
+
## Spacing, radii, borders
|
|
146
|
+
|
|
147
|
+
| Token | Value |
|
|
148
|
+
|---|---|
|
|
149
|
+
| `--spacing-gutter` | 1.5rem |
|
|
150
|
+
| `--spacing-gutter-lg` | 2.5rem |
|
|
151
|
+
| `--spacing-section` | 4rem |
|
|
152
|
+
| `--radius-xs` | 0.125rem |
|
|
153
|
+
| `--radius-sm` | 0.25rem |
|
|
154
|
+
| `--radius-md` | 0.375rem |
|
|
155
|
+
| `--radius-lg` | 0.5rem |
|
|
156
|
+
| `--radius-xl` | 0.75rem |
|
|
157
|
+
| `--border-width-hairline` | 1px |
|
|
158
|
+
| `--border-width-strong` | 2px |
|
|
159
|
+
|
|
160
|
+
Radii are deliberately tight to keep the system editorial. Hairline is the default separator; strong is for chips, buttons, and cards.
|
|
161
|
+
|
|
162
|
+
## Focus and selection
|
|
163
|
+
|
|
164
|
+
```css
|
|
165
|
+
:focus-visible {
|
|
166
|
+
outline: var(--border-width-strong) solid var(--focus);
|
|
167
|
+
outline-offset: 2px;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
::selection {
|
|
171
|
+
background: var(--selection);
|
|
172
|
+
color: var(--selection-foreground);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
button { cursor: pointer; }
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Interactive elements that sit on a canvas of their own use a wider offset so the ring clears the particles: `outline-offset: 4px`.
|
|
179
|
+
|
|
180
|
+
## Hatch
|
|
181
|
+
|
|
182
|
+
A fill made of diagonal hairlines cut out of a solid block. Used where a texture is needed without a second color.
|
|
183
|
+
|
|
184
|
+
```css
|
|
185
|
+
.hatch {
|
|
186
|
+
background-color: var(--foreground);
|
|
187
|
+
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M-1 9L9-1M-1 1L1-1M7 9L9 7' stroke='black' stroke-width='1'/%3E%3C/svg%3E");
|
|
188
|
+
mask-size: 8px 8px;
|
|
189
|
+
mask-repeat: repeat;
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
## Tailwind v4 mapping
|
|
194
|
+
|
|
195
|
+
With Tailwind, the same tokens become utilities (`bg-canvas`, `text-muted`, `border-border`, `bg-inverse`, `text-poster`, `px-gutter`, `rounded-lg`, `border-hairline`):
|
|
196
|
+
|
|
197
|
+
```css
|
|
198
|
+
@import "tailwindcss";
|
|
199
|
+
|
|
200
|
+
@theme inline {
|
|
201
|
+
--color-canvas: var(--canvas);
|
|
202
|
+
--color-foreground: var(--foreground);
|
|
203
|
+
--color-muted: var(--muted);
|
|
204
|
+
--color-border: var(--border);
|
|
205
|
+
--color-surface: var(--surface);
|
|
206
|
+
--color-surface-hover: var(--surface-hover);
|
|
207
|
+
--color-inverse: var(--inverse);
|
|
208
|
+
--color-inverse-hover: var(--inverse-hover);
|
|
209
|
+
--color-inverse-foreground: var(--inverse-foreground);
|
|
210
|
+
--color-focus: var(--focus);
|
|
211
|
+
--color-selection: var(--selection);
|
|
212
|
+
--color-selection-foreground: var(--selection-foreground);
|
|
213
|
+
|
|
214
|
+
--font-sans: var(--font-rethink-sans);
|
|
215
|
+
--font-mono: var(--font-jetbrains-mono);
|
|
216
|
+
|
|
217
|
+
--spacing-gutter: 1.5rem;
|
|
218
|
+
--spacing-gutter-lg: 2.5rem;
|
|
219
|
+
--spacing-section: 4rem;
|
|
220
|
+
|
|
221
|
+
--radius-xs: 0.125rem;
|
|
222
|
+
--radius-sm: 0.25rem;
|
|
223
|
+
--radius-md: 0.375rem;
|
|
224
|
+
--radius-lg: 0.5rem;
|
|
225
|
+
--radius-xl: 0.75rem;
|
|
226
|
+
|
|
227
|
+
--border-width-hairline: 1px;
|
|
228
|
+
--border-width-strong: 2px;
|
|
229
|
+
|
|
230
|
+
--text-poster: clamp(3.25rem, 18cqi, 15rem);
|
|
231
|
+
--text-poster--line-height: 0.84;
|
|
232
|
+
--text-poster--letter-spacing: -0.045em;
|
|
233
|
+
|
|
234
|
+
--text-statement: clamp(2.75rem, 7cqi, 4.5rem);
|
|
235
|
+
--text-statement--line-height: 0.95;
|
|
236
|
+
--text-statement--letter-spacing: -0.03em;
|
|
237
|
+
|
|
238
|
+
--text-annotation: 0.6875rem;
|
|
239
|
+
--text-annotation--line-height: 1rem;
|
|
240
|
+
--text-annotation--letter-spacing: 0.08em;
|
|
241
|
+
|
|
242
|
+
--text-caption: 0.75rem;
|
|
243
|
+
--text-caption--line-height: 1rem;
|
|
244
|
+
--text-caption--letter-spacing: 0.02em;
|
|
245
|
+
|
|
246
|
+
--text-body: 1rem;
|
|
247
|
+
--text-body--line-height: 1.5rem;
|
|
248
|
+
|
|
249
|
+
--text-lead: 1.125rem;
|
|
250
|
+
--text-lead--line-height: 1.75rem;
|
|
251
|
+
|
|
252
|
+
--text-title: 1.5rem;
|
|
253
|
+
--text-title--line-height: 2rem;
|
|
254
|
+
--text-title--letter-spacing: -0.01em;
|
|
255
|
+
|
|
256
|
+
--text-display: 2.25rem;
|
|
257
|
+
--text-display--line-height: 2.5rem;
|
|
258
|
+
--text-display--letter-spacing: -0.02em;
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
`--font-rethink-sans` and `--font-jetbrains-mono` are whatever variables the project's font loader emits. Without a loader, set them from `@font-face` or the Google Fonts stylesheet: `--font-rethink-sans: "Rethink Sans", system-ui, sans-serif; --font-jetbrains-mono: "JetBrains Mono", ui-monospace, monospace;`.
|
|
263
|
+
|
|
264
|
+
## Motion tokens
|
|
265
|
+
|
|
266
|
+
Art-direction defaults for this look. Configure the selected `animaxxing` recipes with these values; its recipes remain usable without this token file. Keep the selected values in one module in the consuming app.
|
|
267
|
+
|
|
268
|
+
```ts
|
|
269
|
+
export const DURATION = { micro: 0.14, component: 0.2, page: 0.28 } as const;
|
|
270
|
+
|
|
271
|
+
export const EASE = {
|
|
272
|
+
/** Entrances decelerate: fast at first, settled at the end. */
|
|
273
|
+
entrance: "power2.out",
|
|
274
|
+
/** Exits accelerate away and feel shorter than entrances. */
|
|
275
|
+
exit: "power2.in",
|
|
276
|
+
/** Position or state shifts that start and end at rest. */
|
|
277
|
+
shift: "power2.inOut",
|
|
278
|
+
} as const;
|
|
279
|
+
|
|
280
|
+
export const SHIFT = { micro: 4, component: 8, page: 16 } as const;
|
|
281
|
+
|
|
282
|
+
export const STAGGER = { tight: 0.03, loose: 0.05 } as const;
|
|
283
|
+
|
|
284
|
+
/** Rethink Sans's whole animatable range. Above 800 clamps and renders identically. */
|
|
285
|
+
export const WEIGHT = { rest: 400, emphasis: 600, display: 800 } as const;
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
Micro motion runs 100 to 180ms, components 160 to 240ms, pages and major panels 220 to 320ms. A coordinated sequence rarely exceeds 500ms, which is why staggers are small. Display effects in the recipes run longer on purpose and are the exception, not the rule.
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Typography and layout
|
|
2
|
+
|
|
3
|
+
Read this to compose pages. The system runs on International Typographic Style contrast: oversized Rethink Sans statements against compact supporting copy, everything flush left and ragged right on a twelve-column grid ruled with hairlines.
|
|
4
|
+
|
|
5
|
+
Class strings below are Tailwind v4 against the tokens reference. Each carries a plain-CSS equivalent in prose where the mapping is not obvious.
|
|
6
|
+
|
|
7
|
+
## Type roles
|
|
8
|
+
|
|
9
|
+
Five roles name the contrast so compositions can be assembled without a hero component baking one arrangement in.
|
|
10
|
+
|
|
11
|
+
| Role | Element | Classes | Notes |
|
|
12
|
+
|---|---|---|---|
|
|
13
|
+
| Poster | `p` or heading | `font-sans text-poster font-extrabold text-balance` | Structural graphic type, fluid to its container. Never for text that must be read in full. Add `[margin-inline-start:-0.055em]` to pull the left side-bearing off so the glyph edge, not the box, aligns to the grid. |
|
|
14
|
+
| Statement | `p` or heading | `max-w-[18ch] font-sans text-statement font-extrabold text-balance` | One size down: an oversized statement that still reads as a sentence. |
|
|
15
|
+
| Label | `span` | `font-mono text-caption uppercase text-muted` | The metadata voice. Anchors a grid cell; never competes with it. |
|
|
16
|
+
| Annotation | `p` | `max-w-[46ch] font-mono text-annotation uppercase text-muted` | The smallest type. Kept above 11px, never cropped. |
|
|
17
|
+
| BodyCopy | `p` | `font-sans text-body text-pretty max-w-[68ch]` | Supporting copy at a comfortable measure. `max-w-[42ch]` for the narrow measure. |
|
|
18
|
+
|
|
19
|
+
Support tone: `text-muted` on canvas and surface; `text-inverse-foreground/75` on an inverted band.
|
|
20
|
+
|
|
21
|
+
**Crop.** Oversized type is clipped at a deliberate boundary instead of shrunk: wrap it in `overflow-hidden` (and `flex justify-end` to crop the start edge). Only display type is ever cropped.
|
|
22
|
+
|
|
23
|
+
## The display setting
|
|
24
|
+
|
|
25
|
+
Card headings, story titles, and any heading below poster scale share one setting:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
DISPLAY = "font-sans font-extrabold leading-[0.84] tracking-[-0.045em]"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Plain CSS: `font-weight: 800; line-height: 0.84; letter-spacing: -0.045em`. For character-animated targets, follow the character animation guidance below.
|
|
32
|
+
|
|
33
|
+
Card headings: `font-sans text-4xl font-extrabold uppercase tracking-[-0.03em] sm:text-5xl`.
|
|
34
|
+
|
|
35
|
+
## Character animation
|
|
36
|
+
|
|
37
|
+
When character motion is selected, load `animaxxing` and its `references/text-stability.md` before splitting. That reference owns kerning, font readiness, mask clearance, and split/revert checks. Omit `text-balance` on split targets and use stable normal wrapping. Preserve the design's font, scale, and tracking; choose words or lines if character splitting would compromise them.
|
|
38
|
+
|
|
39
|
+
## Mono vocabulary
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
MONO_LABEL = "font-mono text-caption font-bold uppercase tracking-[0.08em]"
|
|
43
|
+
MONO_NOTE = "font-mono text-annotation uppercase tracking-[0.08em]"
|
|
44
|
+
FIGURE = MONO_NOTE + " tabular-nums"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Numbers in a ledger are `FIGURE`. Section numbers are two digits: `01 · Wikipedia`, `Ch. 01 / 04`. The middle dot is a real `·` with spaces either side.
|
|
48
|
+
|
|
49
|
+
## Chips and buttons
|
|
50
|
+
|
|
51
|
+
Strong border, tight radius, uppercase extrabold sans at a small size.
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
CHIP = "inline-flex h-12 items-center gap-2.5 rounded-xl border-2 px-5 font-sans text-[13px] font-extrabold uppercase tracking-[0.04em] transition-colors"
|
|
55
|
+
CHIP_SOLID = CHIP + " border-inverse bg-inverse text-inverse-foreground hover:bg-inverse-hover"
|
|
56
|
+
CHIP_OUTLINE = CHIP + " border-foreground text-foreground hover:bg-surface-hover"
|
|
57
|
+
CHIP_QUIET = CHIP + " border-border text-muted hover:border-foreground hover:text-foreground"
|
|
58
|
+
SMALL_CHIP = "inline-flex h-10 items-center rounded-lg border-2 border-foreground px-4 font-sans text-caption font-extrabold uppercase tracking-[0.04em] text-foreground transition-colors hover:bg-surface-hover"
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Calls to action are the same shape at display size:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
BUTTON_SOLID = "inline-flex cursor-pointer items-center rounded-lg bg-inverse px-6 py-3 font-sans text-4xl font-extrabold uppercase tracking-[-0.02em] text-inverse-foreground transition-colors hover:bg-inverse-hover focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-focus sm:px-8 sm:py-4 sm:text-5xl"
|
|
65
|
+
BUTTON_OUTLINE = same, with "border-2 border-foreground bg-transparent text-foreground hover:bg-surface-hover" in place of the inverse fill
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
For the full motion treatment, the primary action is solid and gets `reactor`; the secondary is outlined and gets `marquee` from `animaxxing`. With minimal or no motion, keep the same button styling. Only one solid button per composition.
|
|
69
|
+
|
|
70
|
+
The `transition-colors` on chips and buttons is the one CSS transition in the system. GSAP never animates `color`, so they do not collide.
|
|
71
|
+
|
|
72
|
+
## Page grammar
|
|
73
|
+
|
|
74
|
+
### Site shell
|
|
75
|
+
|
|
76
|
+
Site chrome: a header with the wordmark, then the page, then a hairline-ruled footer. The wordmark is lowercase mono, tracked out, muted, with a 1px underline drawn by `scaleX` on entrance. The footer carries the credit and the theme toggle at `text-caption` mono.
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
header: "px-gutter pt-gutter-lg sm:px-gutter-lg" > "mx-auto flex min-h-9 w-full max-w-7xl items-center justify-between gap-4"
|
|
80
|
+
wordmark: "relative inline-block font-mono text-base uppercase tracking-[0.08em] text-muted sm:text-lg"
|
|
81
|
+
footer: "mt-auto border-t border-border px-gutter py-10 sm:px-gutter-lg"
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Where the framework controller keeps the shell persistent, give it the first-load entrance from the motion vocabulary; the framework skill owns persistence and replay timing.
|
|
85
|
+
|
|
86
|
+
### Page section
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
main: "flex flex-1 flex-col"
|
|
90
|
+
section: "px-gutter pt-10 pb-16 sm:px-gutter-lg" > "mx-auto w-full max-w-7xl"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Sticky header strip
|
|
94
|
+
|
|
95
|
+
A redesigned site's own chrome, inside the page:
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
header: "sticky top-0 z-30 -mx-gutter border-b border-border bg-canvas px-gutter sm:-mx-gutter-lg sm:px-gutter-lg"
|
|
99
|
+
row: "flex min-h-14 items-center gap-x-8 py-2"
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Left to right: the site's name as `MONO_LABEL` in foreground, a nav of `MONO_NOTE` links in muted that turn foreground on hover, a `FIGURE` clock or meta pushed right, and one `SMALL_CHIP` action. Below `md`, the nav hides and the chip takes the right edge.
|
|
103
|
+
|
|
104
|
+
### Twelve-column grid and the chapters rail
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
grid: "mt-8 grid grid-cols-12 gap-x-6 gap-y-8"
|
|
108
|
+
rail: "col-span-12 lg:col-span-1"
|
|
109
|
+
body: "col-span-12 lg:col-span-11"
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
The rail lists the page's chapters, numbered `01` to `04`. At `lg` it turns on its side: `lg:sticky lg:top-20 lg:h-[calc(100vh-6rem)] lg:rotate-180 lg:border-l lg:border-border lg:pl-3 lg:[writing-mode:vertical-rl]`. Below `lg` it is a row of chips that scrolls horizontally. The current chapter carries `aria-current="page"` and foreground color; the rest are muted.
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
RAIL_LINK = MONO_LABEL + " inline-flex shrink-0 items-center gap-2 rounded-lg px-2.5 py-2 transition-colors lg:py-2.5"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Poster headlines take eight columns; a photograph takes four and is cropped at the gutter.
|
|
119
|
+
|
|
120
|
+
### Ledgers
|
|
121
|
+
|
|
122
|
+
Dense lists are hairline-ruled rows, figures right, no zebra striping:
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
ROW = "grid grid-cols-[3rem_minmax(0,1fr)] items-start gap-x-6 border-b border-border py-3 lg:min-h-10 lg:grid-cols-[4rem_minmax(0,1fr)_14.5rem_5.5rem_5.5rem_4.5rem] lg:items-center lg:py-2.5"
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
The first story or item is set in `DISPLAY` type over its actions; the rest are rows. Below `lg` each row folds its figures into one `FIGURE` line under the title.
|
|
129
|
+
|
|
130
|
+
### Cards
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
card: "group block h-full cursor-pointer rounded-lg border-2 border-border bg-surface p-6 transition-colors hover:border-foreground hover:bg-surface-hover focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-focus sm:p-8"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Anatomy, top to bottom: a `Label` row (`01 · Source` left, `Soon` right when the card is a placeholder), the heading in the card display setting at `mt-8`, a `BodyCopy` blurb in muted at `mt-4` and `max-w-[36ch]`, and an `Annotation` call to action in foreground at `mt-8` ending in ` →`. The whole card is the link. Cards sit in `grid gap-6 sm:grid-cols-2 lg:grid-cols-3`.
|
|
137
|
+
|
|
138
|
+
### Forms
|
|
139
|
+
|
|
140
|
+
A text field is a rule, not a box: `block w-full border-b-[3px] border-foreground bg-transparent py-3 font-sans font-extrabold text-foreground placeholder:text-border outline-none!`, at whatever poster size the column allows. The keyboard ring is handled by the field's own `focus-visible` or by the particle treatment; suppress the browser outline only when one of those replaces it. Labels stay in the DOM as `sr-only` when the placeholder carries the visible label.
|
|
141
|
+
|
|
142
|
+
## Composition rules
|
|
143
|
+
|
|
144
|
+
- Flush left, ragged right. No justified text, no centered blocks.
|
|
145
|
+
- One poster or statement per view. Everything else supports it.
|
|
146
|
+
- Hairlines rule; strong borders outline interactive things.
|
|
147
|
+
- Numbers are tabular mono. Dates, times, counts, and chapter marks all read as figures.
|
|
148
|
+
- Photographs are monochrome, cropped hard at the grid, never rounded beyond `rounded-lg`.
|
|
149
|
+
- Empty space is a material. Section spacing is `--spacing-section`; do not fill it.
|