[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71AY8D00NZFWDFX81M8MJXV":3,"skill-same:01M71AY8D00NZFWDFX81M8MJXV":117},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":56,"install":57,"resources":70},"01M71AY8D00NZFWDFX81M8MJXV","ux-principles",null,"ScribeFloat UX principles and design intent. Use when designing or reviewing any new screen, component, interaction pattern, or user flow — or when you need to understand WHY a design rule exists, not just what it is. Complements ui-enforcement (which governs tokens and class names).","Lenniott\u002FscribeFloat","Lenniott","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F78645337?v=4","01M71AXCVAZT0279BTS8NERHQ5","Ben Kanagroo","01M71AXCVXE3QQP6XB9Y307P63",1,"MIT","https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fux-principles\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"ux","ux principles","principles","flow","pattern","why","screen","intent","component","interaction","design intent","you","when","use","new","design","tokens","just","enforcement","which","2026-11-10 10:12:30",false,"---\nname: ux-principles\ndescription: >-\n  ScribeFloat UX principles and design intent. Use when designing or reviewing\n  any new screen, component, interaction pattern, or user flow — or when you\n  need to understand WHY a design rule exists, not just what it is.\n  Complements ui-enforcement (which governs tokens and class names).\n---\n\n# UX Principles\n\nDesign intent and interaction rules for ScribeFloat. These files tell you **why** things are built the way they are and **how** to make the right call when the token rules alone don't cover a decision.\n\n> **Relationship to ui-enforcement**: ui-enforcement governs *how* (which tokens, classes, primitives). This skill governs *what and why* (interaction model, hierarchy, information design, trust).\n\n---\n\n## Quick navigate — go directly to what you need\n\n| I'm doing… | Read |\n|---|---|\n| Starting a new screen or unfamiliar with ScribeFloat | `user-context.md` |\n| Need to understand WHY a design rule exists | `principles.md` |\n| Building a form, button, dropdown, or filter | `interaction.md` |\n| Making typography decisions | `typography.md` |\n| Adding or reviewing animation | `motion.md` |\n| Accessibility review | `accessibility.md` |\n| Working with surfaces, depth, spacing, or colour | `visual-design.md` |\n| Empty \u002F loading \u002F error states, or data display | `data-display.md` |\n| Quick UX law validation during review | `ux-laws.md` |\n| Pre-ship checklist | `checklist.md` |\n| Don't know where to start | `INDEX.md` |\n\n---\n\n## How to read this tree\n\nEach file is self-contained. Files cross-reference each other at the top and bottom. You rarely need more than two files per task.\n\n**Do not read every file** — that defeats the purpose. Start from the task table above, open one file, follow the `→ See also` links only if the task spans multiple areas.\n\n---\n\n## File index (brief)\n\n| File | Type | Covers |\n|---|---|---|\n| `INDEX.md` | Map | Full entity map with one-line summaries |\n| `user-context.md` | Context | Who SF users are, design intent, anti-patterns, DNA |\n| `principles.md` | Rules | The 10 core design principles |\n| `interaction.md` | Patterns | Forms, buttons, filters, AI data |\n| `typography.md` | Patterns | Scale, hierarchy, rendering, weight |\n| `motion.md` | Patterns | Timing, purpose, reduced motion |\n| `accessibility.md` | Rules | Focus, ARIA, labels, contrast |\n| `visual-design.md` | Patterns | Surfaces, cards, spacing, colour, radius, performance |\n| `data-display.md` | Patterns | States, feedback, AI content, data formatting |\n| `ux-laws.md` | Reference | Quick cheat sheet: 20+ UX laws |\n| `checklist.md` | Checklist | Pre-ship review gate |\n","# UX Principles\n\nDesign intent and interaction rules for ScribeFloat. These files tell you **why** things are built the way they are and **how** to make the right call when the token rules alone don't cover a decision.\n\n> **Relationship to ui-enforcement**: ui-enforcement governs *how* (which tokens, classes, primitives). This skill governs *what and why* (interaction model, hierarchy, information design, trust).\n\n---\n\n## Quick navigate — go directly to what you need\n\n| I'm doing… | Read |\n|---|---|\n| Starting a new screen or unfamiliar with ScribeFloat | `user-context.md` |\n| Need to understand WHY a design rule exists | `principles.md` |\n| Building a form, button, dropdown, or filter | `interaction.md` |\n| Making typography decisions | `typography.md` |\n| Adding or reviewing animation | `motion.md` |\n| Accessibility review | `accessibility.md` |\n| Working with surfaces, depth, spacing, or colour | `visual-design.md` |\n| Empty \u002F loading \u002F error states, or data display | `data-display.md` |\n| Quick UX law validation during review | `ux-laws.md` |\n| Pre-ship checklist | `checklist.md` |\n| Don't know where to start | `INDEX.md` |\n\n---\n\n## How to read this tree\n\nEach file is self-contained. Files cross-reference each other at the top and bottom. You rarely need more than two files per task.\n\n**Do not read every file** — that defeats the purpose. Start from the task table above, open one file, follow the `→ See also` links only if the task spans multiple areas.\n\n---\n\n## File index (brief)\n\n| File | Type | Covers |\n|---|---|---|\n| `INDEX.md` | Map | Full entity map with one-line summaries |\n| `user-context.md` | Context | Who SF users are, design intent, anti-patterns, DNA |\n| `principles.md` | Rules | The 10 core design principles |\n| `interaction.md` | Patterns | Forms, buttons, filters, AI data |\n| `typography.md` | Patterns | Scale, hierarchy, rendering, weight |\n| `motion.md` | Patterns | Timing, purpose, reduced motion |\n| `accessibility.md` | Rules | Focus, ARIA, labels, contrast |\n| `visual-design.md` | Patterns | Surfaces, cards, spacing, colour, radius, performance |\n| `data-display.md` | Patterns | States, feedback, AI content, data formatting |\n| `ux-laws.md` | Reference | Quick cheat sheet: 20+ UX laws |\n| `checklist.md` | Checklist | Pre-ship review gate |\n",{"name":5,"description":7},"main","b5ef710132a6cfafb03ebbe3a0640e3c69f533aa","skills\u002Fux-principles",0,"https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat","http:\u002F\u002Fwww.scribefloat.com","https:\u002F\u002Fgithub.com\u002FLenniott","2026-11-06 01:05:08",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":69},[59,62,65],{"tool":60,"command":61},"npx","npx skills add Lenniott\u002FscribeFloat --skill ux-principles",{"tool":63,"command":64},"bunx","bunx skills add Lenniott\u002FscribeFloat --skill ux-principles",{"tool":66,"command":67},"pnpm","pnpm dlx skills add Lenniott\u002FscribeFloat --skill ux-principles","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fux-principles\u002FSKILL.md",true,[71,77,81,85,89,93,97,101,105,109,113],{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"accessibility.md","REFERENCE","参考文档",3888,"https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fux-principles\u002Faccessibility.md",{"path":78,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":79,"sourceHtmlUrl":80},"checklist.md",4795,"https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fux-principles\u002Fchecklist.md",{"path":82,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":83,"sourceHtmlUrl":84},"data-display.md",4122,"https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fux-principles\u002Fdata-display.md",{"path":86,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":87,"sourceHtmlUrl":88},"INDEX.md",6060,"https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fux-principles\u002FINDEX.md",{"path":90,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":91,"sourceHtmlUrl":92},"interaction.md",7515,"https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fux-principles\u002Finteraction.md",{"path":94,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":95,"sourceHtmlUrl":96},"motion.md",3795,"https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fux-principles\u002Fmotion.md",{"path":98,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":99,"sourceHtmlUrl":100},"principles.md",5927,"https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fux-principles\u002Fprinciples.md",{"path":102,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":103,"sourceHtmlUrl":104},"typography.md",4116,"https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fux-principles\u002Ftypography.md",{"path":106,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":107,"sourceHtmlUrl":108},"user-context.md",4923,"https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fux-principles\u002Fuser-context.md",{"path":110,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":111,"sourceHtmlUrl":112},"ux-laws.md",4579,"https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fux-principles\u002Fux-laws.md",{"path":114,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":115,"sourceHtmlUrl":116},"visual-design.md",8209,"https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fux-principles\u002Fvisual-design.md",[118,142,168,179,185,191],{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":125,"publishedAt":44},"01M71AY6FEE6RJYR53NE3YYMQE","ui-taxonomy","Classify UI work into the correct taxonomy level before building. Use when creating a new UI element, naming a component, deciding where something belongs in the system, or when another skill needs a shared vocabulary for UI structure.","https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fui-taxonomy\u002FSKILL.md",[124],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[126,127,128,129,130,131,132,133,134,38,37,36,135,136,137,32,138,139,140,141],"taxonomy","ui taxonomy","ui","shared","for","system","correct","before building","element","ui structure","structure","work","naming","classify","another skill","vocabulary",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":154,"publishedAt":44},"01M71AY4BPPHPK5NZM9ZPYYKT5","ui-enforcement","Enforces ScribeFloat UI consistency — typography role classes, design tokens, and component primitives. Use when writing or editing Svelte\u002FCSS frontend code, Tailwind classes, forms, labels, screens, onboarding, or when the user mentions design system, typography pass, sf-* classes, scroll layout, chrome\u002Fbody panes, or UI consistency.","https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fui-enforcement\u002FSKILL.md",[148,153],{"categoryNo":149,"categoryName":150,"taxonomyType":151,"taxonomyTypeDesc":152},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[42,155,128,156,157,158,159,131,40,160,161,162,163,39,164,165,37,36,166,167],"ui enforcement","css","consistency","Tailwind","editing","panes","labels","sf","frontend","writing","svelte","chrome","code",{"skillNo":169,"name":170,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":177,"publishedAt":44},"01M71AY2PPHE695AGDD3KYSPZX","design-skill","https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002Fskills\u002Fdesign-skill\u002FSKILL.md",[173,176],{"categoryNo":174,"categoryName":175,"taxonomyType":151,"taxonomyTypeDesc":152},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[178,39],"design skill",{"skillNo":180,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":184,"publishedAt":44},"01M71AXZZKTMM9YD5AVAVSBM6F","https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fux-principles\u002FSKILL.md",[183],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[26,24,25,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27],{"skillNo":186,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":190,"publishedAt":44},"01M71AXXVYX5RT5P37VZH3812S","https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fui-taxonomy\u002FSKILL.md",[189],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[127,126,128,129,136,137,32,138,139,130,140,131,132,133,134,38,37,36,135,141],{"skillNo":192,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":197,"publishedAt":44},"01M71AXW04937ZSAT2J9QN4FQ3","https:\u002F\u002Fgithub.com\u002FLenniott\u002FscribeFloat\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fui-enforcement\u002FSKILL.md",[195,196],{"categoryNo":149,"categoryName":150,"taxonomyType":151,"taxonomyTypeDesc":152},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[42,155,128,156,157,158,159,131,40,160,161,162,163,39,164,165,37,36,166,167]]