@auto-engineer/react-gen 1.134.0
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/dist/skills/design/SKILL.md +302 -0
- package/dist/skills/design/data/cip/deliverables.csv +51 -0
- package/dist/skills/design/data/cip/industries.csv +21 -0
- package/dist/skills/design/data/cip/mockup-contexts.csv +21 -0
- package/dist/skills/design/data/cip/styles.csv +21 -0
- package/dist/skills/design/data/icon/styles.csv +16 -0
- package/dist/skills/design/data/logo/colors.csv +56 -0
- package/dist/skills/design/data/logo/industries.csv +56 -0
- package/dist/skills/design/data/logo/styles.csv +56 -0
- package/dist/skills/design/references/banner-sizes-and-styles.md +118 -0
- package/dist/skills/design/references/cip-deliverable-guide.md +95 -0
- package/dist/skills/design/references/cip-design.md +121 -0
- package/dist/skills/design/references/cip-prompt-engineering.md +84 -0
- package/dist/skills/design/references/cip-style-guide.md +68 -0
- package/dist/skills/design/references/design-routing.md +207 -0
- package/dist/skills/design/references/icon-design.md +122 -0
- package/dist/skills/design/references/logo-color-psychology.md +101 -0
- package/dist/skills/design/references/logo-design.md +92 -0
- package/dist/skills/design/references/logo-prompt-engineering.md +158 -0
- package/dist/skills/design/references/logo-style-guide.md +109 -0
- package/dist/skills/design/references/slides-copywriting-formulas.md +84 -0
- package/dist/skills/design/references/slides-create.md +4 -0
- package/dist/skills/design/references/slides-html-template.md +295 -0
- package/dist/skills/design/references/slides-layout-patterns.md +137 -0
- package/dist/skills/design/references/slides-strategies.md +94 -0
- package/dist/skills/design/references/slides.md +42 -0
- package/dist/skills/design/references/social-photos-design.md +329 -0
- package/dist/skills/design/scripts/cip/core.py +215 -0
- package/dist/skills/design/scripts/cip/generate.py +484 -0
- package/dist/skills/design/scripts/cip/render-html.py +424 -0
- package/dist/skills/design/scripts/cip/search.py +127 -0
- package/dist/skills/design/scripts/icon/generate.py +487 -0
- package/dist/skills/design/scripts/logo/core.py +175 -0
- package/dist/skills/design/scripts/logo/generate.py +362 -0
- package/dist/skills/design/scripts/logo/search.py +114 -0
- package/dist/skills/design-system/SKILL.md +244 -0
- package/dist/skills/design-system/data/slide-backgrounds.csv +11 -0
- package/dist/skills/design-system/data/slide-charts.csv +26 -0
- package/dist/skills/design-system/data/slide-color-logic.csv +14 -0
- package/dist/skills/design-system/data/slide-copy.csv +26 -0
- package/dist/skills/design-system/data/slide-layout-logic.csv +16 -0
- package/dist/skills/design-system/data/slide-layouts.csv +26 -0
- package/dist/skills/design-system/data/slide-strategies.csv +16 -0
- package/dist/skills/design-system/data/slide-typography.csv +15 -0
- package/dist/skills/design-system/references/component-specs.md +236 -0
- package/dist/skills/design-system/references/component-tokens.md +214 -0
- package/dist/skills/design-system/references/primitive-tokens.md +203 -0
- package/dist/skills/design-system/references/semantic-tokens.md +215 -0
- package/dist/skills/design-system/references/states-and-variants.md +241 -0
- package/dist/skills/design-system/references/tailwind-integration.md +251 -0
- package/dist/skills/design-system/references/token-architecture.md +224 -0
- package/dist/skills/design-system/scripts/embed-tokens.cjs +97 -0
- package/dist/skills/design-system/scripts/fetch-background.py +317 -0
- package/dist/skills/design-system/scripts/generate-slide.py +753 -0
- package/dist/skills/design-system/scripts/generate-tokens.cjs +213 -0
- package/dist/skills/design-system/scripts/html-token-validator.py +327 -0
- package/dist/skills/design-system/scripts/search-slides.py +218 -0
- package/dist/skills/design-system/scripts/slide-token-validator.py +35 -0
- package/dist/skills/design-system/scripts/slide_search_core.py +453 -0
- package/dist/skills/design-system/scripts/validate-tokens.cjs +251 -0
- package/dist/skills/design-system/templates/design-tokens-starter.json +143 -0
- package/dist/skills/design-taste-frontend/SKILL.md +79 -0
- package/dist/skills/emil-design-engineering/SKILL.md +108 -0
- package/dist/skills/emil-design-engineering/animations.md +266 -0
- package/dist/skills/emil-design-engineering/component-design.md +382 -0
- package/dist/skills/emil-design-engineering/forms-controls.md +261 -0
- package/dist/skills/emil-design-engineering/marketing.md +160 -0
- package/dist/skills/emil-design-engineering/performance.md +222 -0
- package/dist/skills/emil-design-engineering/touch-accessibility.md +236 -0
- package/dist/skills/emil-design-engineering/ui-polish.md +303 -0
- package/dist/skills/frontend-design/SKILL.md +42 -0
- package/dist/skills/full-output-enforcement/SKILL.md +32 -0
- package/dist/skills/high-end-visual-design/SKILL.md +98 -0
- package/dist/skills/react-doctor/AGENTS.md +15 -0
- package/dist/skills/react-doctor/SKILL.md +19 -0
- package/dist/skills/redesign-existing-projects/SKILL.md +178 -0
- package/dist/skills/ui-styling/LICENSE.txt +202 -0
- package/dist/skills/ui-styling/SKILL.md +324 -0
- package/dist/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/dist/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/dist/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/dist/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/dist/skills/ui-styling/references/canvas-design-system.md +320 -0
- package/dist/skills/ui-styling/references/shadcn-accessibility.md +471 -0
- package/dist/skills/ui-styling/references/shadcn-components.md +424 -0
- package/dist/skills/ui-styling/references/shadcn-theming.md +373 -0
- package/dist/skills/ui-styling/references/tailwind-customization.md +483 -0
- package/dist/skills/ui-styling/references/tailwind-responsive.md +382 -0
- package/dist/skills/ui-styling/references/tailwind-utilities.md +455 -0
- package/dist/skills/ui-styling/scripts/.coverage +0 -0
- package/dist/skills/ui-styling/scripts/requirements.txt +17 -0
- package/dist/skills/ui-styling/scripts/shadcn_add.py +292 -0
- package/dist/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
- package/dist/skills/ui-styling/scripts/tests/coverage-ui.json +1392 -0
- package/dist/skills/ui-styling/scripts/tests/requirements.txt +3 -0
- package/dist/skills/ui-styling/scripts/tests/test_shadcn_add.py +266 -0
- package/dist/skills/ui-styling/scripts/tests/test_tailwind_config_gen.py +336 -0
- package/dist/skills/ui-ux-pro-max/SKILL.md +659 -0
- package/dist/skills/ui-ux-pro-max/data/_sync_all.py +414 -0
- package/dist/skills/ui-ux-pro-max/data/app-interface.csv +31 -0
- package/dist/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/dist/skills/ui-ux-pro-max/data/colors.csv +162 -0
- package/dist/skills/ui-ux-pro-max/data/design.csv +1776 -0
- package/dist/skills/ui-ux-pro-max/data/draft.csv +1779 -0
- package/dist/skills/ui-ux-pro-max/data/google-fonts.csv +1924 -0
- package/dist/skills/ui-ux-pro-max/data/icons.csv +106 -0
- package/dist/skills/ui-ux-pro-max/data/landing.csv +35 -0
- package/dist/skills/ui-ux-pro-max/data/products.csv +162 -0
- package/dist/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/dist/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/dist/skills/ui-ux-pro-max/data/styles.csv +85 -0
- package/dist/skills/ui-ux-pro-max/data/typography.csv +74 -0
- package/dist/skills/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
- package/dist/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/dist/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
- package/dist/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
- package/dist/skills/ui-ux-pro-max/scripts/core.py +247 -0
- package/dist/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/dist/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/dist/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/dist/skills/vercel-react-best-practices/README.md +123 -0
- package/dist/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/dist/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/dist/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/dist/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/dist/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/dist/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/dist/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/dist/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/dist/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/dist/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/dist/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/dist/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/dist/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/dist/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/dist/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/dist/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/dist/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/dist/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/dist/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/dist/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/dist/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/dist/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/dist/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/dist/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/dist/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/dist/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/dist/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/dist/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/dist/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/dist/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/dist/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/dist/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/dist/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/dist/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/dist/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/dist/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/dist/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/dist/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/dist/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/dist/skills/web-animation-design/PRACTICAL-TIPS.md +304 -0
- package/dist/skills/web-animation-design/SKILL.md +336 -0
- package/dist/skills/web-design-guidelines/SKILL.md +39 -0
- package/dist/src/agents/create-constants-agent.d.ts +6 -0
- package/dist/src/agents/create-constants-agent.d.ts.map +1 -0
- package/dist/src/agents/create-constants-agent.js +42 -0
- package/dist/src/agents/create-constants-agent.js.map +1 -0
- package/dist/src/agents/create-landing-page-agent.d.ts +4 -0
- package/dist/src/agents/create-landing-page-agent.d.ts.map +1 -0
- package/dist/src/agents/create-landing-page-agent.js +62 -0
- package/dist/src/agents/create-landing-page-agent.js.map +1 -0
- package/dist/src/agents/create-narrative-agent.d.ts +4 -0
- package/dist/src/agents/create-narrative-agent.d.ts.map +1 -0
- package/dist/src/agents/create-narrative-agent.js +36 -0
- package/dist/src/agents/create-narrative-agent.js.map +1 -0
- package/dist/src/agents/create-pipeline.d.ts +9 -0
- package/dist/src/agents/create-pipeline.d.ts.map +1 -0
- package/dist/src/agents/create-pipeline.js +28 -0
- package/dist/src/agents/create-pipeline.js.map +1 -0
- package/dist/src/agents/create-router-agent.d.ts +4 -0
- package/dist/src/agents/create-router-agent.d.ts.map +1 -0
- package/dist/src/agents/create-router-agent.js +46 -0
- package/dist/src/agents/create-router-agent.js.map +1 -0
- package/dist/src/agents/create-theme-agent.d.ts +4 -0
- package/dist/src/agents/create-theme-agent.d.ts.map +1 -0
- package/dist/src/agents/create-theme-agent.js +105 -0
- package/dist/src/agents/create-theme-agent.js.map +1 -0
- package/dist/src/agents/create-validation-agent.d.ts +4 -0
- package/dist/src/agents/create-validation-agent.d.ts.map +1 -0
- package/dist/src/agents/create-validation-agent.js +36 -0
- package/dist/src/agents/create-validation-agent.js.map +1 -0
- package/dist/src/agents/scaffold-agent.d.ts +5 -0
- package/dist/src/agents/scaffold-agent.d.ts.map +1 -0
- package/dist/src/agents/scaffold-agent.js +11 -0
- package/dist/src/agents/scaffold-agent.js.map +1 -0
- package/dist/src/commands/generate-react-app.d.ts +27 -0
- package/dist/src/commands/generate-react-app.d.ts.map +1 -0
- package/dist/src/commands/generate-react-app.js +92 -0
- package/dist/src/commands/generate-react-app.js.map +1 -0
- package/dist/src/config.d.ts +3 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +15 -0
- package/dist/src/config.js.map +1 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/prompts/build-narrative-context.d.ts +3 -0
- package/dist/src/prompts/build-narrative-context.d.ts.map +1 -0
- package/dist/src/prompts/build-narrative-context.js +103 -0
- package/dist/src/prompts/build-narrative-context.js.map +1 -0
- package/dist/src/prompts/landing-page-system.d.ts +2 -0
- package/dist/src/prompts/landing-page-system.d.ts.map +1 -0
- package/dist/src/prompts/landing-page-system.js +63 -0
- package/dist/src/prompts/landing-page-system.js.map +1 -0
- package/dist/src/prompts/narrative-system.d.ts +2 -0
- package/dist/src/prompts/narrative-system.d.ts.map +1 -0
- package/dist/src/prompts/narrative-system.js +52 -0
- package/dist/src/prompts/narrative-system.js.map +1 -0
- package/dist/src/prompts/router-system.d.ts +2 -0
- package/dist/src/prompts/router-system.d.ts.map +1 -0
- package/dist/src/prompts/router-system.js +35 -0
- package/dist/src/prompts/router-system.js.map +1 -0
- package/dist/src/prompts/theme-system.d.ts +2 -0
- package/dist/src/prompts/theme-system.d.ts.map +1 -0
- package/dist/src/prompts/theme-system.js +126 -0
- package/dist/src/prompts/theme-system.js.map +1 -0
- package/dist/src/prompts/validation-system.d.ts +2 -0
- package/dist/src/prompts/validation-system.d.ts.map +1 -0
- package/dist/src/prompts/validation-system.js +28 -0
- package/dist/src/prompts/validation-system.js.map +1 -0
- package/dist/src/tools/check-imports.d.ts +6 -0
- package/dist/src/tools/check-imports.d.ts.map +1 -0
- package/dist/src/tools/check-imports.js +129 -0
- package/dist/src/tools/check-imports.js.map +1 -0
- package/dist/src/tools/exit-loop.d.ts +6 -0
- package/dist/src/tools/exit-loop.d.ts.map +1 -0
- package/dist/src/tools/exit-loop.js +12 -0
- package/dist/src/tools/exit-loop.js.map +1 -0
- package/dist/src/tools/list-files.d.ts +4 -0
- package/dist/src/tools/list-files.d.ts.map +1 -0
- package/dist/src/tools/list-files.js +36 -0
- package/dist/src/tools/list-files.js.map +1 -0
- package/dist/src/tools/read-file.d.ts +10 -0
- package/dist/src/tools/read-file.d.ts.map +1 -0
- package/dist/src/tools/read-file.js +21 -0
- package/dist/src/tools/read-file.js.map +1 -0
- package/dist/src/tools/run-eslint.d.ts +6 -0
- package/dist/src/tools/run-eslint.d.ts.map +1 -0
- package/dist/src/tools/run-eslint.js +27 -0
- package/dist/src/tools/run-eslint.js.map +1 -0
- package/dist/src/tools/run-tsc.d.ts +6 -0
- package/dist/src/tools/run-tsc.d.ts.map +1 -0
- package/dist/src/tools/run-tsc.js +27 -0
- package/dist/src/tools/run-tsc.js.map +1 -0
- package/dist/src/tools/write-file.d.ts +15 -0
- package/dist/src/tools/write-file.d.ts.map +1 -0
- package/dist/src/tools/write-file.js +44 -0
- package/dist/src/tools/write-file.js.map +1 -0
- package/dist/src/types.d.ts +330 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +102 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/utils/create-skill-tool.d.ts +2 -0
- package/dist/src/utils/create-skill-tool.d.ts.map +1 -0
- package/dist/src/utils/create-skill-tool.js +13 -0
- package/dist/src/utils/create-skill-tool.js.map +1 -0
- package/dist/src/utils/parse-model.d.ts +3 -0
- package/dist/src/utils/parse-model.d.ts.map +1 -0
- package/dist/src/utils/parse-model.js +7 -0
- package/dist/src/utils/parse-model.js.map +1 -0
- package/dist/src/utils/slugify.d.ts +2 -0
- package/dist/src/utils/slugify.d.ts.map +1 -0
- package/dist/src/utils/slugify.js +7 -0
- package/dist/src/utils/slugify.js.map +1 -0
- package/dist/starter/.env.example +1 -0
- package/dist/starter/README.md +73 -0
- package/dist/starter/components.json +21 -0
- package/dist/starter/eslint.config.js +23 -0
- package/dist/starter/index.html +13 -0
- package/dist/starter/package-lock.json +7590 -0
- package/dist/starter/package.json +57 -0
- package/dist/starter/pnpm-lock.yaml +4479 -0
- package/dist/starter/public/favicon.svg +1 -0
- package/dist/starter/public/icons.svg +24 -0
- package/dist/starter/src/App.tsx +7 -0
- package/dist/starter/src/assets/hero.png +0 -0
- package/dist/starter/src/assets/vite.svg +1 -0
- package/dist/starter/src/components/error-boundary.tsx +38 -0
- package/dist/starter/src/components/not-found.tsx +16 -0
- package/dist/starter/src/components/ui/accordion.tsx +51 -0
- package/dist/starter/src/components/ui/alert-dialog.tsx +162 -0
- package/dist/starter/src/components/ui/alert.tsx +49 -0
- package/dist/starter/src/components/ui/aspect-ratio.tsx +9 -0
- package/dist/starter/src/components/ui/avatar.tsx +87 -0
- package/dist/starter/src/components/ui/badge.tsx +40 -0
- package/dist/starter/src/components/ui/breadcrumb.tsx +92 -0
- package/dist/starter/src/components/ui/button-group.tsx +74 -0
- package/dist/starter/src/components/ui/button.tsx +62 -0
- package/dist/starter/src/components/ui/calendar.tsx +158 -0
- package/dist/starter/src/components/ui/card.tsx +56 -0
- package/dist/starter/src/components/ui/carousel.tsx +215 -0
- package/dist/starter/src/components/ui/chart.tsx +296 -0
- package/dist/starter/src/components/ui/checkbox.tsx +29 -0
- package/dist/starter/src/components/ui/collapsible.tsx +15 -0
- package/dist/starter/src/components/ui/combobox.tsx +266 -0
- package/dist/starter/src/components/ui/command.tsx +136 -0
- package/dist/starter/src/components/ui/context-menu.tsx +211 -0
- package/dist/starter/src/components/ui/dialog.tsx +135 -0
- package/dist/starter/src/components/ui/direction.tsx +18 -0
- package/dist/starter/src/components/ui/drawer.tsx +106 -0
- package/dist/starter/src/components/ui/dropdown-menu.tsx +219 -0
- package/dist/starter/src/components/ui/empty.tsx +85 -0
- package/dist/starter/src/components/ui/field.tsx +225 -0
- package/dist/starter/src/components/ui/form.tsx +135 -0
- package/dist/starter/src/components/ui/hover-card.tsx +36 -0
- package/dist/starter/src/components/ui/input-group.tsx +146 -0
- package/dist/starter/src/components/ui/input-otp.tsx +68 -0
- package/dist/starter/src/components/ui/input.tsx +21 -0
- package/dist/starter/src/components/ui/item.tsx +157 -0
- package/dist/starter/src/components/ui/kbd.tsx +22 -0
- package/dist/starter/src/components/ui/label.tsx +19 -0
- package/dist/starter/src/components/ui/menubar.tsx +236 -0
- package/dist/starter/src/components/ui/native-select.tsx +44 -0
- package/dist/starter/src/components/ui/navigation-menu.tsx +142 -0
- package/dist/starter/src/components/ui/pagination.tsx +98 -0
- package/dist/starter/src/components/ui/popover.tsx +52 -0
- package/dist/starter/src/components/ui/progress.tsx +24 -0
- package/dist/starter/src/components/ui/radio-group.tsx +31 -0
- package/dist/starter/src/components/ui/resizable.tsx +47 -0
- package/dist/starter/src/components/ui/scroll-area.tsx +46 -0
- package/dist/starter/src/components/ui/select.tsx +162 -0
- package/dist/starter/src/components/ui/separator.tsx +26 -0
- package/dist/starter/src/components/ui/sheet.tsx +107 -0
- package/dist/starter/src/components/ui/sidebar.tsx +674 -0
- package/dist/starter/src/components/ui/skeleton.tsx +7 -0
- package/dist/starter/src/components/ui/slider.tsx +54 -0
- package/dist/starter/src/components/ui/sonner.tsx +31 -0
- package/dist/starter/src/components/ui/spinner.tsx +9 -0
- package/dist/starter/src/components/ui/switch.tsx +33 -0
- package/dist/starter/src/components/ui/table.tsx +75 -0
- package/dist/starter/src/components/ui/tabs.tsx +69 -0
- package/dist/starter/src/components/ui/textarea.tsx +18 -0
- package/dist/starter/src/components/ui/toggle-group.tsx +79 -0
- package/dist/starter/src/components/ui/toggle.tsx +41 -0
- package/dist/starter/src/components/ui/tooltip.tsx +42 -0
- package/dist/starter/src/hooks/use-mobile.ts +19 -0
- package/dist/starter/src/index.css +93 -0
- package/dist/starter/src/lib/graphql-client.ts +5 -0
- package/dist/starter/src/lib/providers.tsx +23 -0
- package/dist/starter/src/lib/utils.ts +6 -0
- package/dist/starter/src/main.tsx +16 -0
- package/dist/starter/tsconfig.app.json +32 -0
- package/dist/starter/tsconfig.json +4 -0
- package/dist/starter/tsconfig.node.json +26 -0
- package/dist/starter/vite.config.ts +16 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +47 -0
- package/skills/design/SKILL.md +302 -0
- package/skills/design/data/cip/deliverables.csv +51 -0
- package/skills/design/data/cip/industries.csv +21 -0
- package/skills/design/data/cip/mockup-contexts.csv +21 -0
- package/skills/design/data/cip/styles.csv +21 -0
- package/skills/design/data/icon/styles.csv +16 -0
- package/skills/design/data/logo/colors.csv +56 -0
- package/skills/design/data/logo/industries.csv +56 -0
- package/skills/design/data/logo/styles.csv +56 -0
- package/skills/design/references/banner-sizes-and-styles.md +118 -0
- package/skills/design/references/cip-deliverable-guide.md +95 -0
- package/skills/design/references/cip-design.md +121 -0
- package/skills/design/references/cip-prompt-engineering.md +84 -0
- package/skills/design/references/cip-style-guide.md +68 -0
- package/skills/design/references/design-routing.md +207 -0
- package/skills/design/references/icon-design.md +122 -0
- package/skills/design/references/logo-color-psychology.md +101 -0
- package/skills/design/references/logo-design.md +92 -0
- package/skills/design/references/logo-prompt-engineering.md +158 -0
- package/skills/design/references/logo-style-guide.md +109 -0
- package/skills/design/references/slides-copywriting-formulas.md +84 -0
- package/skills/design/references/slides-create.md +4 -0
- package/skills/design/references/slides-html-template.md +295 -0
- package/skills/design/references/slides-layout-patterns.md +137 -0
- package/skills/design/references/slides-strategies.md +94 -0
- package/skills/design/references/slides.md +42 -0
- package/skills/design/references/social-photos-design.md +329 -0
- package/skills/design/scripts/cip/core.py +215 -0
- package/skills/design/scripts/cip/generate.py +484 -0
- package/skills/design/scripts/cip/render-html.py +424 -0
- package/skills/design/scripts/cip/search.py +127 -0
- package/skills/design/scripts/icon/generate.py +487 -0
- package/skills/design/scripts/logo/core.py +175 -0
- package/skills/design/scripts/logo/generate.py +362 -0
- package/skills/design/scripts/logo/search.py +114 -0
- package/skills/design-system/SKILL.md +244 -0
- package/skills/design-system/data/slide-backgrounds.csv +11 -0
- package/skills/design-system/data/slide-charts.csv +26 -0
- package/skills/design-system/data/slide-color-logic.csv +14 -0
- package/skills/design-system/data/slide-copy.csv +26 -0
- package/skills/design-system/data/slide-layout-logic.csv +16 -0
- package/skills/design-system/data/slide-layouts.csv +26 -0
- package/skills/design-system/data/slide-strategies.csv +16 -0
- package/skills/design-system/data/slide-typography.csv +15 -0
- package/skills/design-system/references/component-specs.md +236 -0
- package/skills/design-system/references/component-tokens.md +214 -0
- package/skills/design-system/references/primitive-tokens.md +203 -0
- package/skills/design-system/references/semantic-tokens.md +215 -0
- package/skills/design-system/references/states-and-variants.md +241 -0
- package/skills/design-system/references/tailwind-integration.md +251 -0
- package/skills/design-system/references/token-architecture.md +224 -0
- package/skills/design-system/scripts/embed-tokens.cjs +97 -0
- package/skills/design-system/scripts/fetch-background.py +317 -0
- package/skills/design-system/scripts/generate-slide.py +753 -0
- package/skills/design-system/scripts/generate-tokens.cjs +213 -0
- package/skills/design-system/scripts/html-token-validator.py +327 -0
- package/skills/design-system/scripts/search-slides.py +218 -0
- package/skills/design-system/scripts/slide-token-validator.py +35 -0
- package/skills/design-system/scripts/slide_search_core.py +453 -0
- package/skills/design-system/scripts/validate-tokens.cjs +251 -0
- package/skills/design-system/templates/design-tokens-starter.json +143 -0
- package/skills/design-taste-frontend/SKILL.md +79 -0
- package/skills/emil-design-engineering/SKILL.md +108 -0
- package/skills/emil-design-engineering/animations.md +266 -0
- package/skills/emil-design-engineering/component-design.md +382 -0
- package/skills/emil-design-engineering/forms-controls.md +261 -0
- package/skills/emil-design-engineering/marketing.md +160 -0
- package/skills/emil-design-engineering/performance.md +222 -0
- package/skills/emil-design-engineering/touch-accessibility.md +236 -0
- package/skills/emil-design-engineering/ui-polish.md +303 -0
- package/skills/frontend-design/SKILL.md +42 -0
- package/skills/full-output-enforcement/SKILL.md +32 -0
- package/skills/high-end-visual-design/SKILL.md +98 -0
- package/skills/react-doctor/AGENTS.md +15 -0
- package/skills/react-doctor/SKILL.md +19 -0
- package/skills/redesign-existing-projects/SKILL.md +178 -0
- package/skills/ui-styling/LICENSE.txt +202 -0
- package/skills/ui-styling/SKILL.md +324 -0
- package/skills/ui-styling/canvas-fonts/ArsenalSC-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/ArsenalSC-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/BigShoulders-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/BigShoulders-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/BigShoulders-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Boldonse-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Boldonse-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/BricolageGrotesque-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/BricolageGrotesque-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/BricolageGrotesque-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/CrimsonPro-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/CrimsonPro-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/CrimsonPro-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/CrimsonPro-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/DMMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/DMMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/EricaOne-OFL.txt +94 -0
- package/skills/ui-styling/canvas-fonts/EricaOne-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/GeistMono-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/GeistMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/GeistMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Gloock-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Gloock-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexMono-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexSerif-BoldItalic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/IBMPlexSerif-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-BoldItalic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSans-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSerif-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/InstrumentSerif-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Italiana-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Italiana-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/JetBrainsMono-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/JetBrainsMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/JetBrainsMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Jura-Light.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Jura-Medium.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Jura-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/LibreBaskerville-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/LibreBaskerville-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Lora-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Lora-BoldItalic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Lora-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Lora-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Lora-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/NationalPark-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/NationalPark-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/NationalPark-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/NothingYouCouldDo-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/NothingYouCouldDo-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Outfit-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Outfit-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Outfit-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/PixelifySans-Medium.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/PixelifySans-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/PoiretOne-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/PoiretOne-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/RedHatMono-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/RedHatMono-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/RedHatMono-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Silkscreen-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Silkscreen-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/SmoochSans-Medium.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/SmoochSans-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Tektur-Medium.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/Tektur-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/Tektur-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-Bold.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-BoldItalic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-Italic.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/WorkSans-Regular.ttf +0 -0
- package/skills/ui-styling/canvas-fonts/YoungSerif-OFL.txt +93 -0
- package/skills/ui-styling/canvas-fonts/YoungSerif-Regular.ttf +0 -0
- package/skills/ui-styling/references/canvas-design-system.md +320 -0
- package/skills/ui-styling/references/shadcn-accessibility.md +471 -0
- package/skills/ui-styling/references/shadcn-components.md +424 -0
- package/skills/ui-styling/references/shadcn-theming.md +373 -0
- package/skills/ui-styling/references/tailwind-customization.md +483 -0
- package/skills/ui-styling/references/tailwind-responsive.md +382 -0
- package/skills/ui-styling/references/tailwind-utilities.md +455 -0
- package/skills/ui-styling/scripts/.coverage +0 -0
- package/skills/ui-styling/scripts/requirements.txt +17 -0
- package/skills/ui-styling/scripts/shadcn_add.py +292 -0
- package/skills/ui-styling/scripts/tailwind_config_gen.py +456 -0
- package/skills/ui-styling/scripts/tests/coverage-ui.json +1392 -0
- package/skills/ui-styling/scripts/tests/requirements.txt +3 -0
- package/skills/ui-styling/scripts/tests/test_shadcn_add.py +266 -0
- package/skills/ui-styling/scripts/tests/test_tailwind_config_gen.py +336 -0
- package/skills/ui-ux-pro-max/SKILL.md +659 -0
- package/skills/ui-ux-pro-max/data/_sync_all.py +414 -0
- package/skills/ui-ux-pro-max/data/app-interface.csv +31 -0
- package/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/skills/ui-ux-pro-max/data/colors.csv +162 -0
- package/skills/ui-ux-pro-max/data/design.csv +1776 -0
- package/skills/ui-ux-pro-max/data/draft.csv +1779 -0
- package/skills/ui-ux-pro-max/data/google-fonts.csv +1924 -0
- package/skills/ui-ux-pro-max/data/icons.csv +106 -0
- package/skills/ui-ux-pro-max/data/landing.csv +35 -0
- package/skills/ui-ux-pro-max/data/products.csv +162 -0
- package/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/skills/ui-ux-pro-max/data/styles.csv +85 -0
- package/skills/ui-ux-pro-max/data/typography.csv +74 -0
- package/skills/ui-ux-pro-max/data/ui-reasoning.csv +162 -0
- package/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/core.py +247 -0
- package/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/skills/vercel-react-best-practices/README.md +123 -0
- package/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/skills/web-animation-design/PRACTICAL-TIPS.md +304 -0
- package/skills/web-animation-design/SKILL.md +336 -0
- package/skills/web-design-guidelines/SKILL.md +39 -0
- package/starter/.env.example +1 -0
- package/starter/README.md +73 -0
- package/starter/components.json +21 -0
- package/starter/eslint.config.js +23 -0
- package/starter/index.html +13 -0
- package/starter/package-lock.json +7590 -0
- package/starter/package.json +57 -0
- package/starter/pnpm-lock.yaml +4479 -0
- package/starter/public/favicon.svg +1 -0
- package/starter/public/icons.svg +24 -0
- package/starter/src/App.tsx +7 -0
- package/starter/src/assets/hero.png +0 -0
- package/starter/src/assets/vite.svg +1 -0
- package/starter/src/components/error-boundary.tsx +38 -0
- package/starter/src/components/not-found.tsx +16 -0
- package/starter/src/components/ui/accordion.tsx +51 -0
- package/starter/src/components/ui/alert-dialog.tsx +162 -0
- package/starter/src/components/ui/alert.tsx +49 -0
- package/starter/src/components/ui/aspect-ratio.tsx +9 -0
- package/starter/src/components/ui/avatar.tsx +87 -0
- package/starter/src/components/ui/badge.tsx +40 -0
- package/starter/src/components/ui/breadcrumb.tsx +92 -0
- package/starter/src/components/ui/button-group.tsx +74 -0
- package/starter/src/components/ui/button.tsx +62 -0
- package/starter/src/components/ui/calendar.tsx +158 -0
- package/starter/src/components/ui/card.tsx +56 -0
- package/starter/src/components/ui/carousel.tsx +215 -0
- package/starter/src/components/ui/chart.tsx +296 -0
- package/starter/src/components/ui/checkbox.tsx +29 -0
- package/starter/src/components/ui/collapsible.tsx +15 -0
- package/starter/src/components/ui/combobox.tsx +266 -0
- package/starter/src/components/ui/command.tsx +136 -0
- package/starter/src/components/ui/context-menu.tsx +211 -0
- package/starter/src/components/ui/dialog.tsx +135 -0
- package/starter/src/components/ui/direction.tsx +18 -0
- package/starter/src/components/ui/drawer.tsx +106 -0
- package/starter/src/components/ui/dropdown-menu.tsx +219 -0
- package/starter/src/components/ui/empty.tsx +85 -0
- package/starter/src/components/ui/field.tsx +225 -0
- package/starter/src/components/ui/form.tsx +135 -0
- package/starter/src/components/ui/hover-card.tsx +36 -0
- package/starter/src/components/ui/input-group.tsx +146 -0
- package/starter/src/components/ui/input-otp.tsx +68 -0
- package/starter/src/components/ui/input.tsx +21 -0
- package/starter/src/components/ui/item.tsx +157 -0
- package/starter/src/components/ui/kbd.tsx +22 -0
- package/starter/src/components/ui/label.tsx +19 -0
- package/starter/src/components/ui/menubar.tsx +236 -0
- package/starter/src/components/ui/native-select.tsx +44 -0
- package/starter/src/components/ui/navigation-menu.tsx +142 -0
- package/starter/src/components/ui/pagination.tsx +98 -0
- package/starter/src/components/ui/popover.tsx +52 -0
- package/starter/src/components/ui/progress.tsx +24 -0
- package/starter/src/components/ui/radio-group.tsx +31 -0
- package/starter/src/components/ui/resizable.tsx +47 -0
- package/starter/src/components/ui/scroll-area.tsx +46 -0
- package/starter/src/components/ui/select.tsx +162 -0
- package/starter/src/components/ui/separator.tsx +26 -0
- package/starter/src/components/ui/sheet.tsx +107 -0
- package/starter/src/components/ui/sidebar.tsx +674 -0
- package/starter/src/components/ui/skeleton.tsx +7 -0
- package/starter/src/components/ui/slider.tsx +54 -0
- package/starter/src/components/ui/sonner.tsx +31 -0
- package/starter/src/components/ui/spinner.tsx +9 -0
- package/starter/src/components/ui/switch.tsx +33 -0
- package/starter/src/components/ui/table.tsx +75 -0
- package/starter/src/components/ui/tabs.tsx +69 -0
- package/starter/src/components/ui/textarea.tsx +18 -0
- package/starter/src/components/ui/toggle-group.tsx +79 -0
- package/starter/src/components/ui/toggle.tsx +41 -0
- package/starter/src/components/ui/tooltip.tsx +42 -0
- package/starter/src/hooks/use-mobile.ts +19 -0
- package/starter/src/index.css +93 -0
- package/starter/src/lib/graphql-client.ts +5 -0
- package/starter/src/lib/providers.tsx +23 -0
- package/starter/src/lib/utils.ts +6 -0
- package/starter/src/main.tsx +16 -0
- package/starter/tsconfig.app.json +32 -0
- package/starter/tsconfig.json +4 -0
- package/starter/tsconfig.node.json +26 -0
- package/starter/vite.config.ts +16 -0
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
# UI Polish
|
|
2
|
+
|
|
3
|
+
Typography, visual design, layout, and visual refinements.
|
|
4
|
+
|
|
5
|
+
## Typography
|
|
6
|
+
|
|
7
|
+
### Font Rendering
|
|
8
|
+
|
|
9
|
+
Always apply antialiased font smoothing:
|
|
10
|
+
|
|
11
|
+
```css
|
|
12
|
+
body {
|
|
13
|
+
-webkit-font-smoothing: antialiased;
|
|
14
|
+
}
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Font Subsetting
|
|
18
|
+
|
|
19
|
+
Subset fonts based on content, alphabet, or relevant language(s) to minimize file size. Only include the characters you actually use.
|
|
20
|
+
|
|
21
|
+
### Preventing Layout Shift
|
|
22
|
+
|
|
23
|
+
**Font weight:** Never change font weight on hover or selected states. This causes layout shift.
|
|
24
|
+
|
|
25
|
+
```css
|
|
26
|
+
/* Bad - causes layout shift */
|
|
27
|
+
.tab:hover {
|
|
28
|
+
font-weight: 600;
|
|
29
|
+
}
|
|
30
|
+
.tab.selected {
|
|
31
|
+
font-weight: 600;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/* Good - consistent weight */
|
|
35
|
+
.tab {
|
|
36
|
+
font-weight: 500;
|
|
37
|
+
}
|
|
38
|
+
.tab.selected {
|
|
39
|
+
color: var(--color-primary);
|
|
40
|
+
}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Tabular numbers:** Use `font-variant-numeric: tabular-nums` for numbers that change dynamically (counters, prices, timers).
|
|
44
|
+
|
|
45
|
+
```css
|
|
46
|
+
.counter {
|
|
47
|
+
font-variant-numeric: tabular-nums;
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Font Weight Variables
|
|
52
|
+
|
|
53
|
+
Define font weights as CSS variables so you can adjust them globally
|
|
54
|
+
|
|
55
|
+
```css
|
|
56
|
+
:root {
|
|
57
|
+
--font-weight-normal: 400;
|
|
58
|
+
--font-weight-medium: 500;
|
|
59
|
+
--font-weight-semibold: 600;
|
|
60
|
+
--font-weight-bold: 700;
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Text Wrapping
|
|
65
|
+
|
|
66
|
+
Use `text-wrap: balance` on headings for better line breaks.
|
|
67
|
+
|
|
68
|
+
```css
|
|
69
|
+
h1,
|
|
70
|
+
h2,
|
|
71
|
+
h3 {
|
|
72
|
+
text-wrap: balance;
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Letter Spacing by Size
|
|
77
|
+
|
|
78
|
+
Larger text needs tighter letter spacing; smaller text needs looser spacing. Use a Text component to pair font sizes with their optimal letter spacing:
|
|
79
|
+
|
|
80
|
+
```tsx
|
|
81
|
+
// Letter spacing is handled inside the Text component
|
|
82
|
+
|
|
83
|
+
<Text size="lg>Heading</Text>
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Keep in mind that this is font depended.
|
|
87
|
+
|
|
88
|
+
## Typography Characters
|
|
89
|
+
|
|
90
|
+
Use proper typographic characters:
|
|
91
|
+
|
|
92
|
+
| Instead of | Use |
|
|
93
|
+
| ---------- | ---------------------- |
|
|
94
|
+
| `...` | `…` (ellipsis) |
|
|
95
|
+
| `'` | `'` (curly apostrophe) |
|
|
96
|
+
| `"` | `"` (curly quotes) |
|
|
97
|
+
|
|
98
|
+
## Visual Design
|
|
99
|
+
|
|
100
|
+
### Shadows for Borders
|
|
101
|
+
|
|
102
|
+
Use shadows instead of normal borders for better blending with backgrounds:
|
|
103
|
+
|
|
104
|
+
```css
|
|
105
|
+
/* Instead of border: 1px solid rgba(0, 0, 0, 0.08) */
|
|
106
|
+
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
This blends better with varying background colors and avoids the harsh border look.
|
|
110
|
+
|
|
111
|
+
### Hairline Borders
|
|
112
|
+
|
|
113
|
+
Use 0.5px borders on retina displays for crisp, subtle dividers. Define a CSS variable that adapts to screen density:
|
|
114
|
+
|
|
115
|
+
```css
|
|
116
|
+
:root {
|
|
117
|
+
--border-hairline: 1px;
|
|
118
|
+
|
|
119
|
+
@media only screen and (min-device-pixel-ratio: 2),
|
|
120
|
+
only screen and (min-resolution: 192dpi) {
|
|
121
|
+
--border-hairline: 0.5px;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.divider {
|
|
126
|
+
border-bottom: var(--border-hairline) solid var(--gray-6);
|
|
127
|
+
}
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
This gives you sharp 0.5px lines on retina screens while falling back to 1px on standard displays. Works for borders, dividers, and any fine UI details.
|
|
131
|
+
|
|
132
|
+
### Gradients
|
|
133
|
+
|
|
134
|
+
**Eased gradients:** Use eased gradients over linear gradients when using solid colors. Linear gradients have visible banding; eased gradients are smoother.
|
|
135
|
+
|
|
136
|
+
Tool: https://larsenwork.com/easing-gradients/
|
|
137
|
+
|
|
138
|
+
**Mask over gradient:** Prefer `mask-image` over gradients for fades. Masks work better with varying content.
|
|
139
|
+
|
|
140
|
+
```css
|
|
141
|
+
.fade-bottom {
|
|
142
|
+
mask-image: linear-gradient(to bottom, black 80%, transparent);
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Scrollable Content
|
|
147
|
+
|
|
148
|
+
Do not apply fade on scrollable lists or scrollable components. The fade restricts the viewable area and cuts off content.
|
|
149
|
+
|
|
150
|
+
### Scrollbars
|
|
151
|
+
|
|
152
|
+
Do not replace page scrollbars with custom ones. Only customize scrollbars in smaller elements like code snippets:
|
|
153
|
+
|
|
154
|
+
```css
|
|
155
|
+
.code-block::-webkit-scrollbar {
|
|
156
|
+
width: 8px;
|
|
157
|
+
height: 8px;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.code-block::-webkit-scrollbar-thumb {
|
|
161
|
+
background: rgba(0, 0, 0, 0.2);
|
|
162
|
+
border-radius: 4px;
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Focus Outlines
|
|
167
|
+
|
|
168
|
+
Do not change the default outline color to anything other than grey, black, or white. Custom colored outlines often clash with the interface.
|
|
169
|
+
|
|
170
|
+
## Layout
|
|
171
|
+
|
|
172
|
+
### Preventing Layout Shift
|
|
173
|
+
|
|
174
|
+
Dynamic elements should cause no layout shift. Use hardcoded dimensions for:
|
|
175
|
+
|
|
176
|
+
- Skeleton loaders
|
|
177
|
+
- Image placeholders
|
|
178
|
+
- Dynamic content areas
|
|
179
|
+
|
|
180
|
+
### Z-Index
|
|
181
|
+
|
|
182
|
+
Use a fixed z-index scale. Avoid arbitrary values like `z-index: 9999`.
|
|
183
|
+
|
|
184
|
+
```css
|
|
185
|
+
:root {
|
|
186
|
+
--z-dropdown: 100;
|
|
187
|
+
--z-modal: 200;
|
|
188
|
+
--z-tooltip: 300;
|
|
189
|
+
--z-toast: 400;
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Better approach:** Avoid z-index entirely when possible. Use `isolation: isolate` or `position: relative` to create new stacking contexts.
|
|
194
|
+
|
|
195
|
+
```css
|
|
196
|
+
.card {
|
|
197
|
+
isolation: isolate;
|
|
198
|
+
}
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Safe Areas
|
|
202
|
+
|
|
203
|
+
Account for device safe areas (notches, home indicators) with the `env()` function:
|
|
204
|
+
|
|
205
|
+
```css
|
|
206
|
+
.footer {
|
|
207
|
+
padding-bottom: env(safe-area-inset-bottom);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.sidebar {
|
|
211
|
+
padding-left: env(safe-area-inset-left);
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Scroll Margins
|
|
216
|
+
|
|
217
|
+
Set `scroll-margin-top` for scrollable elements to ensure proper space above elements when scrolling to anchors:
|
|
218
|
+
|
|
219
|
+
```css
|
|
220
|
+
[id] {
|
|
221
|
+
scroll-margin-top: 80px; /* Height of sticky header */
|
|
222
|
+
}
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
### Grid Text Truncation
|
|
226
|
+
|
|
227
|
+
When using grids, ensure text within cells is truncated when needed using `line-clamp`:
|
|
228
|
+
|
|
229
|
+
```css
|
|
230
|
+
.grid-cell-text {
|
|
231
|
+
display: -webkit-box;
|
|
232
|
+
-webkit-line-clamp: 3;
|
|
233
|
+
-webkit-box-orient: vertical;
|
|
234
|
+
overflow: hidden;
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Dark Mode
|
|
239
|
+
|
|
240
|
+
### Theme Variables
|
|
241
|
+
|
|
242
|
+
Use a numerical scale for color variables so you can easily switch between light and dark themes by replacing variables:
|
|
243
|
+
|
|
244
|
+
```css
|
|
245
|
+
:root {
|
|
246
|
+
--gray-1: #fafafa;
|
|
247
|
+
--gray-2: #f5f5f5;
|
|
248
|
+
--gray-12: #171717;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
[data-theme="dark"] {
|
|
252
|
+
--gray-1: #171717;
|
|
253
|
+
--gray-2: #1f1f1f;
|
|
254
|
+
--gray-12: #fafafa;
|
|
255
|
+
}
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Tailwind Dark Mode
|
|
259
|
+
|
|
260
|
+
Do not use Tailwind's `dark:` modifier to adjust colors manually. Use CSS variables and flip them instead. This keeps the code cleaner and more maintainable.
|
|
261
|
+
|
|
262
|
+
```css
|
|
263
|
+
/* Good - variables flip automatically */
|
|
264
|
+
.button {
|
|
265
|
+
background: var(--gray-12);
|
|
266
|
+
color: var(--gray-1);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
/* Avoid - manual dark mode overrides everywhere */
|
|
270
|
+
.button {
|
|
271
|
+
@apply bg-gray-900 dark:bg-gray-100;
|
|
272
|
+
}
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
## Decorative Elements
|
|
276
|
+
|
|
277
|
+
### Pointer Events
|
|
278
|
+
|
|
279
|
+
Decorative elements should disable `pointer-events` to not hijack events from interactive elements beneath them:
|
|
280
|
+
|
|
281
|
+
```css
|
|
282
|
+
.decorative-bg {
|
|
283
|
+
pointer-events: none;
|
|
284
|
+
}
|
|
285
|
+
```
|
|
286
|
+
|
|
287
|
+
### Code Illustrations
|
|
288
|
+
|
|
289
|
+
Illustrations made in code should have disabled text selection:
|
|
290
|
+
|
|
291
|
+
```css
|
|
292
|
+
.illustration {
|
|
293
|
+
user-select: none;
|
|
294
|
+
}
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
## Refresh Behavior
|
|
298
|
+
|
|
299
|
+
Refresh should cause no flash of content in interactive components. Ensure initial state stays consistent by:
|
|
300
|
+
|
|
301
|
+
- Storing state in localStorage/sessionStorage
|
|
302
|
+
- Using proper SSR hydration
|
|
303
|
+
- Setting initial state before render
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-design
|
|
3
|
+
description: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
|
|
4
|
+
license: Complete terms in LICENSE.txt
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices.
|
|
8
|
+
|
|
9
|
+
The user provides frontend requirements: a component, page, application, or interface to build. They may include context about the purpose, audience, or technical constraints.
|
|
10
|
+
|
|
11
|
+
## Design Thinking
|
|
12
|
+
|
|
13
|
+
Before coding, understand the context and commit to a BOLD aesthetic direction:
|
|
14
|
+
- **Purpose**: What problem does this interface solve? Who uses it?
|
|
15
|
+
- **Tone**: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian, etc. There are so many flavors to choose from. Use these for inspiration but design one that is true to the aesthetic direction.
|
|
16
|
+
- **Constraints**: Technical requirements (framework, performance, accessibility).
|
|
17
|
+
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
|
|
18
|
+
|
|
19
|
+
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.
|
|
20
|
+
|
|
21
|
+
Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:
|
|
22
|
+
- Production-grade and functional
|
|
23
|
+
- Visually striking and memorable
|
|
24
|
+
- Cohesive with a clear aesthetic point-of-view
|
|
25
|
+
- Meticulously refined in every detail
|
|
26
|
+
|
|
27
|
+
## Frontend Aesthetics Guidelines
|
|
28
|
+
|
|
29
|
+
Focus on:
|
|
30
|
+
- **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font.
|
|
31
|
+
- **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
|
|
32
|
+
- **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.
|
|
33
|
+
- **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.
|
|
34
|
+
- **Backgrounds & Visual Details**: Create atmosphere and depth rather than defaulting to solid colors. Add contextual effects and textures that match the overall aesthetic. Apply creative forms like gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.
|
|
35
|
+
|
|
36
|
+
NEVER use generic AI-generated aesthetics like overused font families (Inter, Roboto, Arial, system fonts), cliched color schemes (particularly purple gradients on white backgrounds), predictable layouts and component patterns, and cookie-cutter design that lacks context-specific character.
|
|
37
|
+
|
|
38
|
+
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.
|
|
39
|
+
|
|
40
|
+
**IMPORTANT**: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well.
|
|
41
|
+
|
|
42
|
+
Remember: Claude is capable of extraordinary creative work. Don't hold back, show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: full-output-enforcement
|
|
3
|
+
description: Overrides default LLM truncation behavior. Enforces complete code generation, bans placeholder patterns, and handles token-limit splits cleanly. Apply to any task requiring exhaustive, unabridged output.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Full-Output Enforcement
|
|
7
|
+
|
|
8
|
+
## Baseline
|
|
9
|
+
|
|
10
|
+
Treat every task as production-critical. A partial output is a broken output. Do not optimize for brevity — optimize for completeness. If the user asks for a full file, deliver the full file. If the user asks for 5 components, deliver 5 components. No exceptions.
|
|
11
|
+
|
|
12
|
+
## Banned Output Patterns
|
|
13
|
+
|
|
14
|
+
The following patterns are hard failures. Never produce them:
|
|
15
|
+
|
|
16
|
+
**In code blocks:** `// ...`, `// rest of code`, `// implement here`, `// TODO`, `/* ... */`, `// similar to above`, `// continue pattern`, `// add more as needed`, bare `...` standing in for omitted code
|
|
17
|
+
|
|
18
|
+
**Structural shortcuts:** Outputting a skeleton when the request was for a full implementation. Showing the first and last section while skipping the middle. Replacing repeated logic with one example and a description. Describing what code should do instead of writing it.
|
|
19
|
+
|
|
20
|
+
## Execution Process
|
|
21
|
+
|
|
22
|
+
1. **Scope** — Read the full request. Count how many distinct deliverables are expected (files, functions, sections, answers). Lock that number.
|
|
23
|
+
2. **Build** — Generate every deliverable completely. No partial drafts, no "you can extend this later."
|
|
24
|
+
3. **Cross-check** — Before output, re-read the original request. Compare your deliverable count against the scope count. If anything is missing, add it before responding.
|
|
25
|
+
|
|
26
|
+
## Quick Check
|
|
27
|
+
|
|
28
|
+
Before finalizing any response, verify:
|
|
29
|
+
- No banned patterns from the list above appear anywhere in the output
|
|
30
|
+
- Every item the user requested is present and finished
|
|
31
|
+
- Code blocks contain actual runnable code, not descriptions of what code would do
|
|
32
|
+
- Nothing was shortened to save space
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: high-end-visual-design
|
|
3
|
+
description: Teaches the AI to design like a high-end agency. Defines the exact fonts, spacing, shadows, card structures, and animations that make a website feel expensive. Blocks all the common defaults that make AI designs look cheap or generic.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Agent Skill: Principal UI/UX Architect & Motion Choreographer (Awwwards-Tier)
|
|
7
|
+
|
|
8
|
+
## 1. Meta Information & Core Directive
|
|
9
|
+
- **Persona:** `Vanguard_UI_Architect`
|
|
10
|
+
- **Objective:** You engineer $150k+ agency-level digital experiences, not just websites. Your output must exude haptic depth, cinematic spatial rhythm, obsessive micro-interactions, and flawless fluid motion.
|
|
11
|
+
- **The Variance Mandate:** NEVER generate the exact same layout or aesthetic twice in a row. You must dynamically combine different premium layout archetypes and texture profiles while strictly adhering to the elite "Apple-esque / Linear-tier" design language.
|
|
12
|
+
|
|
13
|
+
## 2. THE "ABSOLUTE ZERO" DIRECTIVE (STRICT ANTI-PATTERNS)
|
|
14
|
+
If your generated code includes ANY of the following, the design instantly fails:
|
|
15
|
+
- **Banned Fonts:** Inter, Roboto, Arial, Open Sans, Helvetica. (Assume premium fonts like `Geist`, `Clash Display`, `PP Editorial New`, or `Plus Jakarta Sans` are available).
|
|
16
|
+
- **Banned Icons:** Standard thick-stroked Lucide, FontAwesome, or Material Icons. Use only ultra-light, precise lines (e.g., Phosphor Light, Remix Line).
|
|
17
|
+
- **Banned Borders & Shadows:** Generic 1px solid gray borders. Harsh, dark drop shadows (`shadow-md`, `rgba(0,0,0,0.3)`).
|
|
18
|
+
- **Banned Layouts:** Edge-to-edge sticky navbars glued to the top. Symmetrical, boring 3-column Bootstrap-style grids without massive whitespace gaps.
|
|
19
|
+
- **Banned Motion:** Standard `linear` or `ease-in-out` transitions. Instant state changes without interpolation.
|
|
20
|
+
|
|
21
|
+
## 3. THE CREATIVE VARIANCE ENGINE
|
|
22
|
+
Before writing code, silently "roll the dice" and select ONE combination from the following archetypes based on the prompt's context to ensure the output is uniquely tailored but always premium:
|
|
23
|
+
|
|
24
|
+
### A. Vibe & Texture Archetypes (Pick 1)
|
|
25
|
+
1. **Ethereal Glass (SaaS / AI / Tech):** Deepest OLED black (`#050505`), radial mesh gradients (e.g., subtle glowing purple/emerald orbs) in the background. Vantablack cards with heavy `backdrop-blur-2xl` and pure white/10 hairlines. Wide geometric Grotesk typography.
|
|
26
|
+
2. **Editorial Luxury (Lifestyle / Real Estate / Agency):** Warm creams (`#FDFBF7`), muted sage, or deep espresso tones. High-contrast Variable Serif fonts for massive headings. Subtle CSS noise/film-grain overlay (`opacity-[0.03]`) for a physical paper feel.
|
|
27
|
+
3. **Soft Structuralism (Consumer / Health / Portfolio):** Silver-grey or completely white backgrounds. Massive bold Grotesk typography. Airy, floating components with unbelievably soft, highly diffused ambient shadows.
|
|
28
|
+
|
|
29
|
+
### B. Layout Archetypes (Pick 1)
|
|
30
|
+
1. **The Asymmetrical Bento:** A masonry-like CSS Grid of varying card sizes (e.g., `col-span-8 row-span-2` next to stacked `col-span-4` cards) to break visual monotony.
|
|
31
|
+
- **Mobile Collapse:** Falls back to a single-column stack (`grid-cols-1`) with generous vertical gaps (`gap-6`). All `col-span` overrides reset to `col-span-1`.
|
|
32
|
+
2. **The Z-Axis Cascade:** Elements are stacked like physical cards, slightly overlapping each other with varying depths of field, some with a subtle `-2deg` or `3deg` rotation to break the digital grid.
|
|
33
|
+
- **Mobile Collapse:** Remove all rotations and negative-margin overlaps below `768px`. Stack vertically with standard spacing. Overlapping elements cause touch-target conflicts on mobile.
|
|
34
|
+
3. **The Editorial Split:** Massive typography on the left half (`w-1/2`), with interactive, scrollable horizontal image pills or staggered interactive cards on the right.
|
|
35
|
+
- **Mobile Collapse:** Converts to a full-width vertical stack (`w-full`). Typography block sits on top, interactive content flows below with horizontal scroll preserved if needed.
|
|
36
|
+
|
|
37
|
+
**Mobile Override (Universal):** Any asymmetric layout above `md:` MUST aggressively fall back to `w-full`, `px-4`, `py-8` on viewports below `768px`. Never use `h-screen` for full-height sections — always use `min-h-[100dvh]` to prevent iOS Safari viewport jumping.
|
|
38
|
+
|
|
39
|
+
## 4. HAPTIC MICRO-AESTHETICS (COMPONENT MASTERY)
|
|
40
|
+
|
|
41
|
+
### A. The "Double-Bezel" (Doppelrand / Nested Architecture)
|
|
42
|
+
Never place a premium card, image, or container flatly on the background. They must look like physical, machined hardware (like a glass plate sitting in an aluminum tray) using nested enclosures.
|
|
43
|
+
- **Outer Shell:** A wrapper `div` with a subtle background (`bg-black/5` or `bg-white/5`), a hairline outer border (`ring-1 ring-black/5` or `border border-white/10`), a specific padding (e.g., `p-1.5` or `p-2`), and a large outer radius (`rounded-[2rem]`).
|
|
44
|
+
- **Inner Core:** The actual content container inside the shell. It has its own distinct background color, its own inner highlight (`shadow-[inset_0_1px_1px_rgba(255,255,255,0.15)]`), and a mathematically calculated smaller radius (e.g., `rounded-[calc(2rem-0.375rem)]`) for concentric curves.
|
|
45
|
+
|
|
46
|
+
### B. Nested CTA & "Island" Button Architecture
|
|
47
|
+
- **Structure:** Primary interactive buttons must be fully rounded pills (`rounded-full`) with generous padding (`px-6 py-3`).
|
|
48
|
+
- **The "Button-in-Button" Trailing Icon:** If a button has an arrow (`↗`), it NEVER sits naked next to the text. It must be nested inside its own distinct circular wrapper (e.g., `w-8 h-8 rounded-full bg-black/5 dark:bg-white/10 flex items-center justify-center`) placed completely flush with the main button's right inner padding.
|
|
49
|
+
|
|
50
|
+
### C. Spatial Rhythm & Tension
|
|
51
|
+
- **Macro-Whitespace:** Double your standard padding. Use `py-24` to `py-40` for sections. Allow the design to breathe heavily.
|
|
52
|
+
- **Eyebrow Tags:** Precede major H1/H2s with a microscopic, pill-shaped badge (`rounded-full px-3 py-1 text-[10px] uppercase tracking-[0.2em] font-medium`).
|
|
53
|
+
|
|
54
|
+
## 5. MOTION CHOREOGRAPHY (FLUID DYNAMICS)
|
|
55
|
+
Never use default transitions. All motion must simulate real-world mass and spring physics. Use custom cubic-beziers (e.g., `transition-all duration-700 ease-[cubic-bezier(0.32,0.72,0,1)]`).
|
|
56
|
+
|
|
57
|
+
### A. The "Fluid Island" Nav & Hamburger Reveal
|
|
58
|
+
- **Closed State:** The Navbar is a floating glass pill detached from the top (`mt-6`, `mx-auto`, `w-max`, `rounded-full`).
|
|
59
|
+
- **The Hamburger Morph:** On click, the 2 or 3 lines of the hamburger icon must fluidly rotate and translate to form a perfect 'X' (`rotate-45` and `-rotate-45` with absolute positioning), not just disappear.
|
|
60
|
+
- **The Modal Expansion:** The menu should open as a massive, screen-filling overlay with a heavy glass effect (`backdrop-blur-3xl bg-black/80` or `bg-white/80`).
|
|
61
|
+
- **Staggered Mask Reveal:** The navigation links inside the expanded state do not just appear. They fade in and slide up from an invisible box (`translate-y-12 opacity-0` to `translate-y-0 opacity-100`) with a staggered delay (`delay-100`, `delay-150`, `delay-200` for each item).
|
|
62
|
+
|
|
63
|
+
### B. Magnetic Button Hover Physics
|
|
64
|
+
- Use the `group` utility. On hover, do not just change the background color.
|
|
65
|
+
- Scale the entire button down slightly (`active:scale-[0.98]`) to simulate physical pressing.
|
|
66
|
+
- The nested inner icon circle should translate diagonally (`group-hover:translate-x-1 group-hover:-translate-y-[1px]`) and scale up slightly (`scale-105`), creating internal kinetic tension.
|
|
67
|
+
|
|
68
|
+
### C. Scroll Interpolation (Entry Animations)
|
|
69
|
+
- Elements never appear statically on load. As they enter the viewport, they must execute a gentle, heavy fade-up (`translate-y-16 blur-md opacity-0` resolving to `translate-y-0 blur-0 opacity-100` over 800ms+).
|
|
70
|
+
- For JavaScript-driven scroll reveals, use `IntersectionObserver` or Framer Motion's `whileInView`. Never use `window.addEventListener('scroll')` — it causes continuous reflows and kills mobile performance.
|
|
71
|
+
|
|
72
|
+
## 6. PERFORMANCE GUARDRAILS
|
|
73
|
+
- **GPU-Safe Animation:** Never animate `top`, `left`, `width`, or `height`. Animate exclusively via `transform` and `opacity`. Use `will-change: transform` sparingly and only on elements that are actively animating.
|
|
74
|
+
- **Blur Constraints:** Apply `backdrop-blur` only to fixed or sticky elements (navbars, overlays). Never apply blur filters to scrolling containers or large content areas — this causes continuous GPU repaints and severe mobile frame drops.
|
|
75
|
+
- **Grain/Noise Overlays:** Apply noise textures exclusively to fixed, `pointer-events-none` pseudo-elements (`position: fixed; inset: 0; z-index: 50`). Never attach them to scrolling containers.
|
|
76
|
+
- **Z-Index Discipline:** Do not use arbitrary `z-50` or `z-[9999]`. Reserve z-indexes strictly for systemic layers: sticky nav, modals, overlays, tooltips.
|
|
77
|
+
|
|
78
|
+
## 7. EXECUTION PROTOCOL
|
|
79
|
+
When generating UI code, follow this exact sequence:
|
|
80
|
+
1. **[SILENT THOUGHT]** Roll the Variance Engine (Section 3). Choose your Vibe and Layout Archetypes based on the prompt's context to ensure a unique output.
|
|
81
|
+
2. **[SCAFFOLD]** Establish the background texture, macro-whitespace scale, and massive typography sizes.
|
|
82
|
+
3. **[ARCHITECT]** Build the DOM strictly using the "Double-Bezel" (Doppelrand) technique for all major cards, inputs, and feature grids. Use exaggerated squircle radii (`rounded-[2rem]`).
|
|
83
|
+
4. **[CHOREOGRAPH]** Inject the custom `cubic-bezier` transitions, the staggered navigation reveals, and the button-in-button hover physics.
|
|
84
|
+
5. **[OUTPUT]** Deliver flawless, pixel-perfect React/Tailwind/HTML code. Do not include basic, generic fallbacks.
|
|
85
|
+
|
|
86
|
+
## 8. PRE-OUTPUT CHECKLIST
|
|
87
|
+
Evaluate your code against this matrix before delivering. This is the last filter.
|
|
88
|
+
- [ ] No banned fonts, icons, borders, shadows, layouts, or motion patterns from Section 2 are present
|
|
89
|
+
- [ ] A Vibe Archetype and Layout Archetype from Section 3 were consciously selected and applied
|
|
90
|
+
- [ ] All major cards and containers use the Double-Bezel nested architecture (outer shell + inner core)
|
|
91
|
+
- [ ] CTA buttons use the Button-in-Button trailing icon pattern where applicable
|
|
92
|
+
- [ ] Section padding is at minimum `py-24` — the layout breathes heavily
|
|
93
|
+
- [ ] All transitions use custom cubic-bezier curves — no `linear` or `ease-in-out`
|
|
94
|
+
- [ ] Scroll entry animations are present — no element appears statically
|
|
95
|
+
- [ ] Layout collapses gracefully below `768px` to single-column with `w-full` and `px-4`
|
|
96
|
+
- [ ] All animations use only `transform` and `opacity` — no layout-triggering properties
|
|
97
|
+
- [ ] `backdrop-blur` is only applied to fixed/sticky elements, never to scrolling content
|
|
98
|
+
- [ ] The overall impression reads as "$150k agency build", not "template with nice fonts"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# React Doctor
|
|
2
|
+
|
|
3
|
+
Run after making React changes to catch issues early. Use when reviewing code, finishing a feature, or fixing bugs in a React project.
|
|
4
|
+
|
|
5
|
+
Scans your React codebase for security, performance, correctness, and architecture issues. Outputs a 0-100 score with actionable diagnostics.
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx -y react-doctor@latest . --verbose --diff
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
Run after making changes to catch issues early. Fix errors first, then re-run to verify the score improved.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: react-doctor
|
|
3
|
+
description: Run after making React changes to catch issues early. Use when reviewing code, finishing a feature, or fixing bugs in a React project.
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# React Doctor
|
|
8
|
+
|
|
9
|
+
Scans your React codebase for security, performance, correctness, and architecture issues. Outputs a 0-100 score with actionable diagnostics.
|
|
10
|
+
|
|
11
|
+
## Usage
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx -y react-doctor@latest . --verbose --diff
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Workflow
|
|
18
|
+
|
|
19
|
+
Run after making changes to catch issues early. Fix errors first, then re-run to verify the score improved.
|