feat(data): add motion-principles domain (Emil Kowalski)#296
Open
najamali wants to merge 2 commits intonextlevelbuilder:mainfrom
Open
feat(data): add motion-principles domain (Emil Kowalski)#296najamali wants to merge 2 commits intonextlevelbuilder:mainfrom
najamali wants to merge 2 commits intonextlevelbuilder:mainfrom
Conversation
…et protocol Adds two new search domains and four process docs ported from impeccable (pbakaus), Anthropic frontend-design, and jiji262/claude-design-skill. New data: - data/anti-patterns.csv: 30 deterministic anti-pattern rules covering generic AI aesthetics (purple gradients, default shadcn, Inter everywhere, stock photos, nested cards) with severity, mode, and better-alternative columns - data/design-philosophies.csv: 10 philosophies x 5 schools (Swiss, Brutalist, Editorial, Hara, Maximalism, Aurora, Y2K, Organic, Anti- Design) with flagship examples, signature moves, and AI prompt seeds - data/asset-protocol.md: 5-step Core Asset Protocol for branded work - data/advisor-mode.md: 3-direction protocol for vague briefs New templates: - templates/base/DESIGN.md: per-project design memory (mode, locked direction, tokens, hard rules, anti-pattern checklist) - templates/base/PRODUCT.md: per-project product memory (audience, voice rules, constraints, decision log) Search engine: - core.py: add 'antipattern' and 'philosophy' domains to CSV_CONFIG and detect_domain keyword sets Docs: - CLAUDE.md: document new domains and process files - skill-content.md: add Advisor Mode, Anti-Pattern Check, Asset Protocol, and project-memory sections to the skill workflow CLI assets synced per CLAUDE.md sync rules. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a new 'motion' search domain covering 37 motion-design principles synthesized from Emil Kowalski's open-source design engineering skill (github.com/emilkowalski/skill, animations.dev, Sonner, Vaul). Coverage: - Animation Decision Framework: frequency tiers, purpose audit - Easing: custom cubic-beziers, ease-out for entries, ease-in-out for on-screen movement, linear for constant motion - Duration: per-element ranges, asymmetric enter/exit, sub-300ms rule - Springs: when to use, Apple-style config, bounce ranges - Components: button :active scale(0.97), never-from-zero, popover origin (with modal exception), tooltip skip-on-subsequent, blur masking, @starting-style - Transforms: percentage translate, scale-children, transform-origin - Performance: transform/opacity only, CSS-vars-on-parent caveat, Framer Motion shorthand pitfall, CSS > JS under load, WAAPI usage - Gestures: velocity dismissal (>0.11), boundary damping, pointer capture, multi-touch protection - Accessibility: prefers-reduced-motion (gentler not zero), hover gating with @media (hover: hover) and (pointer: fine) - Polish: stagger 30-80ms, cohesion, next-day review, real-device testing - Sonner-derived library principles: defaults > options, edge cases invisibly handled - Debug: DevTools Animations panel, slow-motion review Files: - data/motion-principles.csv (37 rows) - data/motion-principles-CREDITS.md (source attribution + credit guidance for derived work) - scripts/core.py: register 'motion' domain in CSV_CONFIG and detect_domain keyword set - CLAUDE.md, skill-content.md: document the new domain - cli/assets/ synced Test plan: - search.py "ease out animation" --domain motion -> hits Easing rows - search.py "framer motion drops frames" -> auto-detects motion domain - search.py "purple gradient" --domain antipattern -> still works (no regression) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Author
|
Note: this PR is stacked on #295 (anti-patterns + philosophies + asset protocol). The diff currently shows +1186 / 21 files because #295 hasn't merged yet. The actual content of this PR is ~190 lines / 9 files — only the motion-principles additions:
If #295 merges first, this PR's diff will auto-shrink to its actual scope. Either PR can be reviewed independently of the other; they touch the same |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a new
motionsearch domain covering 37 motion-design principles synthesized from Emil Kowalski's open-source design engineering skill. Emil built Sonner and Vaul, runs animations.dev, and is widely regarded as the motion authority for modern web UI. This PR ports his rules into ui-ux-pro-max as a searchable, BM25-indexable CSV.Coverage (37 rules across 8 categories)
{ duration, bounce }), subtle bounce in product UI:activescale(0.97), never animate fromscale(0), popover transform-origin (with modal exception), skip tooltip delay on subsequent hovers, blur to mask imperfect crossfades,@starting-styleprefers-reduced-motion(gentler not zero), hover gating with@media (hover: hover) and (pointer: fine)Files
data/motion-principles.csv(37 rows; Category, Principle, Keywords, Why It Matters, Do, Don't, Code Good, Code Bad, Severity, Source)data/motion-principles-CREDITS.md(source attribution + credit guidance for derived work)scripts/core.py— registermotioninCSV_CONFIGanddetect_domainCLAUDE.md— document new domaintemplates/base/skill-content.md— add Motion Review workflow sectioncli/assets/— synced per CLAUDE.md sync rulesTest plan
python3 src/ui-ux-pro-max/scripts/search.py "ease out animation" --domain motion→ hits Easing rowspython3 src/ui-ux-pro-max/scripts/search.py "framer motion drops frames"→ auto-detectsmotiondomainpython3 src/ui-ux-pro-max/scripts/search.py "scale on press button feedback" --domain motion→ returns Component rulepython3 src/ui-ux-pro-max/scripts/search.py "purple gradient" --domain antipattern→ no regression on existing domainsAttribution
Each row's
Sourcecolumn attributes specifically. Most trace to Emil directly; Vaul-derived gesture rules and Sonner library principles credit those projects;prefers-reduced-motionand easing-curve resources cite WCAG and easing.dev. Full credit guidance inmotion-principles-CREDITS.mdrecommends linking to emilkowal.ski and animations.dev in derived work.Why this PR is a separate one from #295
Independent and non-overlapping. Anti-patterns / philosophies / asset protocol is about what to design; motion principles is about how to animate. Easier to review, easier to reject one without losing the other.
🤖 Generated with Claude Code