[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C4PB6VVC2X19B63B7YNH0T":3,"skill-same:01M6C4PB6VVC2X19B63B7YNH0T":291},{"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":28,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":48,"ownerDescription":49,"updatedAt":50,"install":51,"resources":64},"01M6C4PB6VVC2X19B63B7YNH0T","web-design",null,"WHEN refining UI layout, typography, color, or polish; NOT code implementation; provides concise principles for intentional, legible design.","mintuz\u002Fskills","mintuz","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F447031?v=4","01M6BVWJYSVR4XQC9AQCEMWQRG","Adam Bulmer","01M6C4DCXKNYZB281YB3PZDJJG",35,"MIT","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Fweb-design\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36],"design","web","web design","code","code implementation","ui","polish","typography","2026-11-10 10:12:30",false,"---\nname: web-design\ndescription: WHEN refining UI layout, typography, color, or polish; NOT code implementation; provides concise principles for intentional, legible design.\n---\n\n# Web Design\n\nAim for clear hierarchy, generous spacing, and restrained styling.\n\n## Scope and Inputs\n\n- Give design decisions, not implementation code: state the visual and state specification, and leave the component source, utility classes, and engineering choices to the engineer. Say so when a request asks for them.\n- When a request conflicts with legibility or access, keep its intent: name each part you refuse, give the reason, and state the substitute treatment that delivers the same intent.\n- Choose and name the values that are yours to choose: sizes, weights, spacing, radii, and breakpoints. A value you select is a decision, not an invention, so state it instead of deferring it to later testing.\n- Never invent a product or brand fact, such as a brand colour, a surface colour, a price, or a measured result.\n- When a decision needs a fact you were not given: name each blocking fact, state the constraint it must satisfy, give the decision as a condition, and say what to change if the condition fails. Never certify a result you cannot measure (`principle-never-block-on-the-human`, `principle-gaps-are-not-passes`).\n\n## Visual Hierarchy & Focus\n\n- Group related elements by proximity and aligned edges, not as scattered, evenly spaced elements competing for attention.\n- Build hierarchy with weight and size before colour: `font-weight: 600` and size changes beat random accent colours.\n- Reduce noise: use spacing, background tints, or subtle dividers instead of heavy outlines and extra borders.\n\n## Layout & Spacing\n\n- Use a consistent 4px or 8px scale.\n- Make vertical rhythm obvious: larger gaps between sections than between labels and inputs.\n- Set max widths for readability (e.g. `max-width: 1280px` for pages, `68-70ch` for text blocks).\n- Size containers from their content: avoid fixed heights, and lose no content as text grows, because translated strings run longer and readers enlarge text up to 200%. Truncate only when the complete text stays available through a clearly marked control.\n- As available width falls, reduce the column count; state the minimum comfortable width for one column instead of compressing every column.\n- Pad clickable areas generously (12–16px vertical, 16–24px horizontal) so touch targets feel confident.\n\n## Typography\n\n- Use one font family; create contrast with weight, size, and letter-spacing.\n- Name the concrete sizes and line heights you choose (e.g. `32\u002F40`, `24\u002F32`, `18\u002F28`, `16\u002F24`, `14\u002F20`) and reuse them; never refer to “a small type scale” without its values.\n- Letter-space uppercase labels (about 0.08em); de-emphasise metadata with colour, not excessive shrinking.\n\n## Colour & Contrast\n\n- Start with neutrals; let one accent colour carry primary actions. Use softened greys instead of pure black or white.\n- Build palettes by lightening and darkening one hue: low-saturation tints for surfaces, bolder shades for actions.\n- Give text on tints at least 4.5:1 contrast for normal text and at least 3:1 for large text (24px and larger, or 18.66px and larger when bold). Add a subtle border where a tinted panel touches a white background.\n- Pair colour meaning (success\u002Finfo\u002Fwarn\u002Fdanger) with an icon or text so colour-blind users are covered.\n\n## Depth, Shape & Elevation\n\n- Prefer soft, diffuse shadows for elevation (slight offset, low-opacity blur); avoid harsh, opaque drop shadows.\n- Keep radii consistent (e.g. 8–12px across inputs, cards, modals); match inner elements to the parent radius.\n- Separate stacked surfaces with a light border or a faint shadow, not both.\n\n## Components That Feel Designed\n\n- Buttons: one clear primary, a low-emphasis secondary (ghost\u002Ftext), and a destructive variant, all with consistent padding and radius. Set emphasis by the task, not the consequence: when destruction is the main task of the screen, the destructive action carries the primary weight; otherwise give it the lowest emphasis that still leaves it findable, so it never competes with the primary action.\n- Forms: pair every input with a clear label (never placeholder-as-label), show inline validation close to the field, and use generous vertical spacing.\n- Lists\u002Ftables: increase row height, soften alternating backgrounds, and highlight the primary cell with weight or colour.\n- Icons: keep stroke weight consistent; pair icons with labels unless the meaning is universal; balance visual weight with padding.\n\n## States, Feedback & Empty Space\n\n- For each distinct control pattern, specify a visibly distinct treatment for every applicable state: hover, active, focus, loading, disabled, error, empty, and success. Note where one control departs from its pattern. Listing state names, or stating only that the states must differ, is incomplete.\n- Show loading with skeletons or subtle shimmer, not spinners alone; give friendly empty states a short “what to do next.”\n- Clarify errors with colour, icon, and text; reserve red for errors and use calmer hues for neutral info.\n- Treat whitespace as a design tool, not wasted space.\n\n## Compositional Polish\n\n- Keep gaps, radii, shadows, and border colours consistent across the entire UI.\n- Replace visual clutter (dividers, lines, boxes) with spacing and alignment; let one strong anchor (title or primary action) lead (`principle-earn-every-element`).\n- Put a dark or light overlay behind text on images to keep it legible.\n\n## Delivery Check\n\nBefore replying, confirm (`principle-define-done`):\n\n- A primary action that is not itself destructive stays visually distinct from red error or destructive meaning.\n- Every applicable state of each control pattern has its visible treatment specified.\n- Every action has a named emphasis (primary, secondary, or low) and every destructive action is marked.\n- Radius, spacing, and comfortably sized touch targets are given as named values on one consistent system, and every named value fits the declared scale.\n- Every piece of required copy, such as the empty state's next step, is present rather than implied.\n- Every refused request is paired with the replacement that keeps its intent.\n","# Web Design\n\nAim for clear hierarchy, generous spacing, and restrained styling.\n\n## Scope and Inputs\n\n- Give design decisions, not implementation code: state the visual and state specification, and leave the component source, utility classes, and engineering choices to the engineer. Say so when a request asks for them.\n- When a request conflicts with legibility or access, keep its intent: name each part you refuse, give the reason, and state the substitute treatment that delivers the same intent.\n- Choose and name the values that are yours to choose: sizes, weights, spacing, radii, and breakpoints. A value you select is a decision, not an invention, so state it instead of deferring it to later testing.\n- Never invent a product or brand fact, such as a brand colour, a surface colour, a price, or a measured result.\n- When a decision needs a fact you were not given: name each blocking fact, state the constraint it must satisfy, give the decision as a condition, and say what to change if the condition fails. Never certify a result you cannot measure (`principle-never-block-on-the-human`, `principle-gaps-are-not-passes`).\n\n## Visual Hierarchy & Focus\n\n- Group related elements by proximity and aligned edges, not as scattered, evenly spaced elements competing for attention.\n- Build hierarchy with weight and size before colour: `font-weight: 600` and size changes beat random accent colours.\n- Reduce noise: use spacing, background tints, or subtle dividers instead of heavy outlines and extra borders.\n\n## Layout & Spacing\n\n- Use a consistent 4px or 8px scale.\n- Make vertical rhythm obvious: larger gaps between sections than between labels and inputs.\n- Set max widths for readability (e.g. `max-width: 1280px` for pages, `68-70ch` for text blocks).\n- Size containers from their content: avoid fixed heights, and lose no content as text grows, because translated strings run longer and readers enlarge text up to 200%. Truncate only when the complete text stays available through a clearly marked control.\n- As available width falls, reduce the column count; state the minimum comfortable width for one column instead of compressing every column.\n- Pad clickable areas generously (12–16px vertical, 16–24px horizontal) so touch targets feel confident.\n\n## Typography\n\n- Use one font family; create contrast with weight, size, and letter-spacing.\n- Name the concrete sizes and line heights you choose (e.g. `32\u002F40`, `24\u002F32`, `18\u002F28`, `16\u002F24`, `14\u002F20`) and reuse them; never refer to “a small type scale” without its values.\n- Letter-space uppercase labels (about 0.08em); de-emphasise metadata with colour, not excessive shrinking.\n\n## Colour & Contrast\n\n- Start with neutrals; let one accent colour carry primary actions. Use softened greys instead of pure black or white.\n- Build palettes by lightening and darkening one hue: low-saturation tints for surfaces, bolder shades for actions.\n- Give text on tints at least 4.5:1 contrast for normal text and at least 3:1 for large text (24px and larger, or 18.66px and larger when bold). Add a subtle border where a tinted panel touches a white background.\n- Pair colour meaning (success\u002Finfo\u002Fwarn\u002Fdanger) with an icon or text so colour-blind users are covered.\n\n## Depth, Shape & Elevation\n\n- Prefer soft, diffuse shadows for elevation (slight offset, low-opacity blur); avoid harsh, opaque drop shadows.\n- Keep radii consistent (e.g. 8–12px across inputs, cards, modals); match inner elements to the parent radius.\n- Separate stacked surfaces with a light border or a faint shadow, not both.\n\n## Components That Feel Designed\n\n- Buttons: one clear primary, a low-emphasis secondary (ghost\u002Ftext), and a destructive variant, all with consistent padding and radius. Set emphasis by the task, not the consequence: when destruction is the main task of the screen, the destructive action carries the primary weight; otherwise give it the lowest emphasis that still leaves it findable, so it never competes with the primary action.\n- Forms: pair every input with a clear label (never placeholder-as-label), show inline validation close to the field, and use generous vertical spacing.\n- Lists\u002Ftables: increase row height, soften alternating backgrounds, and highlight the primary cell with weight or colour.\n- Icons: keep stroke weight consistent; pair icons with labels unless the meaning is universal; balance visual weight with padding.\n\n## States, Feedback & Empty Space\n\n- For each distinct control pattern, specify a visibly distinct treatment for every applicable state: hover, active, focus, loading, disabled, error, empty, and success. Note where one control departs from its pattern. Listing state names, or stating only that the states must differ, is incomplete.\n- Show loading with skeletons or subtle shimmer, not spinners alone; give friendly empty states a short “what to do next.”\n- Clarify errors with colour, icon, and text; reserve red for errors and use calmer hues for neutral info.\n- Treat whitespace as a design tool, not wasted space.\n\n## Compositional Polish\n\n- Keep gaps, radii, shadows, and border colours consistent across the entire UI.\n- Replace visual clutter (dividers, lines, boxes) with spacing and alignment; let one strong anchor (title or primary action) lead (`principle-earn-every-element`).\n- Put a dark or light overlay behind text on images to keep it legible.\n\n## Delivery Check\n\nBefore replying, confirm (`principle-define-done`):\n\n- A primary action that is not itself destructive stays visually distinct from red error or destructive meaning.\n- Every applicable state of each control pattern has its visible treatment specified.\n- Every action has a named emphasis (primary, secondary, or low) and every destructive action is marked.\n- Radius, spacing, and comfortably sized touch targets are given as named values on one consistent system, and every named value fits the declared scale.\n- Every piece of required copy, such as the empty state's next step, is present rather than implied.\n- Every refused request is paired with the replacement that keeps its intent.\n",{"name":5,"description":7},"main","4e0a12b5048eac78a3ace4feee657873cdd530ef","src\u002Fweb\u002Fskills\u002Fweb-design",7,"https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills","https:\u002F\u002Fgithub.com\u002Fmintuz","http:\u002F\u002Fwww.mintuz.com","Working at @monzo, Previously worked at Moonpig, @booking and @bbc","2026-11-11 15:50:19",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add mintuz\u002Fskills --skill web-design",{"tool":57,"command":58},"bunx","bunx skills add mintuz\u002Fskills --skill web-design",{"tool":60,"command":61},"pnpm","pnpm dlx skills add mintuz\u002Fskills --skill web-design","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Fweb-design\u002FSKILL.md",true,[65,71,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,233,237,243,247,251,255,259,263,267,271,275,279,283,287],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"html2pptx.md","REFERENCE","参考文档",19859,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fhtml2pptx.md",{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"LICENSE.txt","LICENSE","许可证",1467,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002FLICENSE.txt",{"path":78,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":79,"sourceHtmlUrl":80},"ooxml.md",10388,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml.md",{"path":82,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":83,"sourceHtmlUrl":84},"ooxml\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-contentTypes.xsd",1963,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-contentTypes.xsd",{"path":86,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":87,"sourceHtmlUrl":88},"ooxml\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-coreProperties.xsd",2515,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-coreProperties.xsd",{"path":90,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":91,"sourceHtmlUrl":92},"ooxml\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-digSig.xsd",2856,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-digSig.xsd",{"path":94,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":95,"sourceHtmlUrl":96},"ooxml\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-relationships.xsd",1344,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-relationships.xsd",{"path":98,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":99,"sourceHtmlUrl":100},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chart.xsd",74984,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chart.xsd",{"path":102,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":103,"sourceHtmlUrl":104},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chartDrawing.xsd",6956,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chartDrawing.xsd",{"path":106,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":107,"sourceHtmlUrl":108},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-diagram.xsd",51302,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-diagram.xsd",{"path":110,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":111,"sourceHtmlUrl":112},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-lockedCanvas.xsd",624,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-lockedCanvas.xsd",{"path":114,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":115,"sourceHtmlUrl":116},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-main.xsd",152039,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-main.xsd",{"path":118,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":119,"sourceHtmlUrl":120},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-picture.xsd",1231,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-picture.xsd",{"path":122,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":123,"sourceHtmlUrl":124},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-spreadsheetDrawing.xsd",8862,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-spreadsheetDrawing.xsd",{"path":126,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":127,"sourceHtmlUrl":128},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-wordprocessingDrawing.xsd",14795,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-wordprocessingDrawing.xsd",{"path":130,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":131,"sourceHtmlUrl":132},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fpml.xsd",83612,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fpml.xsd",{"path":134,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":135,"sourceHtmlUrl":136},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-additionalCharacteristics.xsd",1269,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-additionalCharacteristics.xsd",{"path":138,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":139,"sourceHtmlUrl":140},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-bibliography.xsd",7328,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-bibliography.xsd",{"path":142,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":143,"sourceHtmlUrl":144},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-commonSimpleTypes.xsd",6382,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-commonSimpleTypes.xsd",{"path":146,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":147,"sourceHtmlUrl":148},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlDataProperties.xsd",1248,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlDataProperties.xsd",{"path":150,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":151,"sourceHtmlUrl":152},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlSchemaProperties.xsd",880,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlSchemaProperties.xsd",{"path":154,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":155,"sourceHtmlUrl":156},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesCustom.xsd",2608,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesCustom.xsd",{"path":158,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":159,"sourceHtmlUrl":160},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesExtended.xsd",3507,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesExtended.xsd",{"path":162,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":163,"sourceHtmlUrl":164},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesVariantTypes.xsd",7507,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesVariantTypes.xsd",{"path":166,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":167,"sourceHtmlUrl":168},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-math.xsd",23313,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-math.xsd",{"path":170,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":171,"sourceHtmlUrl":172},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-relationshipReference.xsd",1367,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-relationshipReference.xsd",{"path":174,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":175,"sourceHtmlUrl":176},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fsml.xsd",242277,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fsml.xsd",{"path":178,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":179,"sourceHtmlUrl":180},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-main.xsd",26148,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-main.xsd",{"path":182,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":183,"sourceHtmlUrl":184},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-officeDrawing.xsd",25279,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-officeDrawing.xsd",{"path":186,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":187,"sourceHtmlUrl":188},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-presentationDrawing.xsd",535,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-presentationDrawing.xsd",{"path":190,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":191,"sourceHtmlUrl":192},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-spreadsheetDrawing.xsd",5712,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-spreadsheetDrawing.xsd",{"path":194,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":195,"sourceHtmlUrl":196},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-wordprocessingDrawing.xsd",4010,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-wordprocessingDrawing.xsd",{"path":198,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":199,"sourceHtmlUrl":200},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fwml.xsd",171367,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fwml.xsd",{"path":202,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":203,"sourceHtmlUrl":204},"ooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fxml.xsd",4646,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fxml.xsd",{"path":206,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":207,"sourceHtmlUrl":208},"ooxml\u002Fschemas\u002Fmce\u002Fmc.xsd",3127,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002Fmce\u002Fmc.xsd",{"path":210,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":211,"sourceHtmlUrl":212},"ooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-2010.xsd",26549,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-2010.xsd",{"path":214,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":215,"sourceHtmlUrl":216},"ooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-2012.xsd",3745,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-2012.xsd",{"path":218,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":219,"sourceHtmlUrl":220},"ooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-2018.xsd",901,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-2018.xsd",{"path":222,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":223,"sourceHtmlUrl":224},"ooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-cex-2018.xsd",1778,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-cex-2018.xsd",{"path":226,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":227,"sourceHtmlUrl":228},"ooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-cid-2016.xsd",1002,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-cid-2016.xsd",{"path":230,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":231,"sourceHtmlUrl":232},"ooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-sdtdatahash-2020.xsd",600,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-sdtdatahash-2020.xsd",{"path":234,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":235,"sourceHtmlUrl":236},"ooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-symex-2015.xsd",745,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fschemas\u002Fmicrosoft\u002Fwml-symex-2015.xsd",{"path":238,"resourceType":239,"resourceTypeDesc":240,"sizeBytes":241,"sourceHtmlUrl":242},"ooxml\u002Fscripts\u002Fpack.py","SCRIPT","脚本",7218,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fscripts\u002Fpack.py",{"path":244,"resourceType":239,"resourceTypeDesc":240,"sizeBytes":245,"sourceHtmlUrl":246},"ooxml\u002Fscripts\u002Funpack.py",3897,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fscripts\u002Funpack.py",{"path":248,"resourceType":239,"resourceTypeDesc":240,"sizeBytes":249,"sourceHtmlUrl":250},"ooxml\u002Fscripts\u002Fvalidate.py",1959,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fscripts\u002Fvalidate.py",{"path":252,"resourceType":239,"resourceTypeDesc":240,"sizeBytes":253,"sourceHtmlUrl":254},"ooxml\u002Fscripts\u002Fvalidation\u002F__init__.py",336,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fscripts\u002Fvalidation\u002F__init__.py",{"path":256,"resourceType":239,"resourceTypeDesc":240,"sizeBytes":257,"sourceHtmlUrl":258},"ooxml\u002Fscripts\u002Fvalidation\u002Fbase.py",40700,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fscripts\u002Fvalidation\u002Fbase.py",{"path":260,"resourceType":239,"resourceTypeDesc":240,"sizeBytes":261,"sourceHtmlUrl":262},"ooxml\u002Fscripts\u002Fvalidation\u002Fdocx.py",10730,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fscripts\u002Fvalidation\u002Fdocx.py",{"path":264,"resourceType":239,"resourceTypeDesc":240,"sizeBytes":265,"sourceHtmlUrl":266},"ooxml\u002Fscripts\u002Fvalidation\u002Fpptx.py",12303,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fscripts\u002Fvalidation\u002Fpptx.py",{"path":268,"resourceType":239,"resourceTypeDesc":240,"sizeBytes":269,"sourceHtmlUrl":270},"ooxml\u002Fscripts\u002Fvalidation\u002Fredlining.py",11854,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fooxml\u002Fscripts\u002Fvalidation\u002Fredlining.py",{"path":272,"resourceType":239,"resourceTypeDesc":240,"sizeBytes":273,"sourceHtmlUrl":274},"scripts\u002Fhtml2pptx.js",39013,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fscripts\u002Fhtml2pptx.js",{"path":276,"resourceType":239,"resourceTypeDesc":240,"sizeBytes":277,"sourceHtmlUrl":278},"scripts\u002Finventory.py",38671,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fscripts\u002Finventory.py",{"path":280,"resourceType":239,"resourceTypeDesc":240,"sizeBytes":281,"sourceHtmlUrl":282},"scripts\u002Frearrange.py",9037,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fscripts\u002Frearrange.py",{"path":284,"resourceType":239,"resourceTypeDesc":240,"sizeBytes":285,"sourceHtmlUrl":286},"scripts\u002Freplace.py",14127,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fscripts\u002Freplace.py",{"path":288,"resourceType":239,"resourceTypeDesc":240,"sizeBytes":289,"sourceHtmlUrl":290},"scripts\u002Fthumbnail.py",15484,"https:\u002F\u002Fgithub.com\u002Fboisenoise\u002Fskills-collections\u002Fblob\u002Fmain\u002Fskills\u002Fantigravity-pptx\u002Fscripts\u002Fthumbnail.py",[292,313,326,347,364,380],{"skillNo":293,"name":294,"nameZh":6,"description":295,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":296,"categories":297,"keywords":304,"publishedAt":37},"01M6C4PDGB6ZZWBS35N3DF7PZZ","xstate","WHEN React state changes in response to an external answer — async submit, in-flight or loading flags, retries, cancellation, polling, optimistic updates, stale responses — or to an interaction with an interruptible middle, such as a drag or a gesture; or WHEN building, reviewing, testing, or visualising XState 5 actors and @xstate\u002Freact integrations; NOT for a value one event sets completely, such as a text draft, a focus flag, or a plain open and closed toggle; models typed lifecycles and renders legal Mermaid stateDiagram-v2 charts.","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Fxstate\u002FSKILL.md",[298,301],{"categoryNo":299,"categoryName":300,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":302,"categoryName":303,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[294,305,306,307,308,309,310,311,312],"testing","react","mermaid","state","Charts","open","text","integrations",{"skillNo":314,"name":315,"nameZh":6,"description":316,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":317,"categories":318,"keywords":320,"publishedAt":37},"01M6C4P8D92GJDA49V7X1CZXEV","tailwind","WHEN building design systems or component libraries with Tailwind CSS; covers design tokens, CVA patterns and dark mode.","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Ftailwind\u002FSKILL.md",[319],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[321,29,322,323,324,325],"Tailwind","css","component","libraries","design systems",{"skillNo":327,"name":328,"nameZh":6,"description":329,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":330,"categories":331,"keywords":335,"publishedAt":37},"01M6C4P5VWQ69Q32DA0634GDJY","refactoring","WHEN you need a plan to refactor, restructure, or clean up working code and the test result is known, either green or a recorded failing set; NOT for new feature delivery or any behavior change; reversible-baseline safety with prioritized improvements.","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Frefactoring\u002FSKILL.md",[332],{"categoryNo":333,"categoryName":334,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",[328,336,337,338,32,339,340,341,342,343,344,345,346],"test","change","feature delivery","SET","refactor","Safety","baseline","plan","behavior","new feature","up",{"skillNo":348,"name":306,"nameZh":6,"description":349,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":350,"categories":351,"keywords":354,"publishedAt":37},"01M6C4P345APEFEX00J8T7QMXQ","WHEN building or changing React components, pages, hooks, effects, or apps, including edits to existing components; NOT for test code (react-testing) or styling (css, tailwind); enforces scalable architecture, state management, API layer, performance patterns.","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Freact\u002FSKILL.md",[352,353],{"categoryNo":299,"categoryName":300,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":302,"categoryName":303,"taxonomyType":21,"taxonomyTypeDesc":22},[306,355,322,305,356,336,357,358,359,360,32,308,361,321,362,363],"styling","performance","components","react components","architecture","state management","api","management","hooks",{"skillNo":365,"name":366,"nameZh":6,"description":367,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":368,"categories":369,"keywords":372,"publishedAt":37},"01M6C4P0DK385QBG3B3S86TQV2","react-testing","WHEN testing React components\u002Fhooks\u002Fcontext with React Testing Library; NOT e2e; covers renderHook, providers, forms, and anti-patterns.","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Freact-testing\u002FSKILL.md",[370,371],{"categoryNo":299,"categoryName":300,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":302,"categoryName":303,"taxonomyType":21,"taxonomyTypeDesc":22},[373,306,305,357,358,374,375,376,377,378,379,363],"react testing","testing library","library","Providers","e2e","context","anti-patterns",{"skillNo":381,"name":382,"nameZh":6,"description":383,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":384,"categories":385,"keywords":388,"publishedAt":37},"01M6C4NY0FTYGTS7THKRAC20T3","frontend-testing","WHEN testing any front-end UI with DOM Testing Library; NOT for end-to-end browser journeys or visual-regression checks; behavior-first queries, userEvent flows, async patterns.","https:\u002F\u002Fgithub.com\u002Fmintuz\u002Fskills\u002Fblob\u002Fmain\u002Fsrc\u002Fweb\u002Fskills\u002Ffrontend-testing\u002FSKILL.md",[386,387],{"categoryNo":299,"categoryName":300,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":302,"categoryName":303,"taxonomyType":21,"taxonomyTypeDesc":22},[389,390,305,374,391,392,393,34,344,375],"frontend","frontend testing","browser","regression","first"]