foliko 1.1.8 → 1.1.9

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.
Files changed (306) hide show
  1. package/.agent/agents/code-assistant.json +17 -0
  2. package/.agent/agents/email-assistant.json +14 -0
  3. package/.agent/agents/file-assistant.json +18 -0
  4. package/.agent/agents/orchestrator-demo.md +53 -0
  5. package/.agent/agents/orchestrator.json +7 -0
  6. package/.agent/agents/poster-expert.md +228 -0
  7. package/.agent/agents/system-assistant.json +15 -0
  8. package/.agent/agents/web-assistant.json +12 -0
  9. package/.agent/data/default.json +5 -404
  10. package/.agent/data/email/processed-emails.json +1 -0
  11. package/.agent/data/plugins-state.json +173 -172
  12. package/.agent/data/scheduler/tasks.json +1 -0
  13. package/.agent/data/web/web-config.json +5 -0
  14. package/.agent/mcp_config.json +0 -14
  15. package/.agent/package.json +8 -0
  16. package/.agent/plugins/__pycache__/file_writer.cpython-312.pyc +0 -0
  17. package/.agent/plugins/daytona/README.md +89 -0
  18. package/.agent/plugins/daytona/index.js +377 -0
  19. package/.agent/plugins/daytona/package.json +12 -0
  20. package/.agent/plugins/marknative/README.md +134 -0
  21. package/.agent/plugins/marknative/fonts.zip +0 -0
  22. package/.agent/plugins/marknative/index.js +256 -0
  23. package/.agent/plugins/marknative/package.json +12 -0
  24. package/.agent/plugins/system-info/index.js +387 -0
  25. package/.agent/plugins/system-info/package.json +4 -0
  26. package/.agent/plugins/system-info/test.js +40 -0
  27. package/.agent/plugins/test-plugin.py +123 -0
  28. package/.agent/plugins/test_nested_plugin.py +85 -0
  29. package/.agent/plugins.json +11 -5
  30. package/.agent/python-scripts/test_sample.py +24 -0
  31. package/.agent/sessions/cli_default.json +96 -249
  32. package/.agent/sessions/weixin_o9cq80zgZqKPA2-s59PN43GdDy1w@im.wechat.json +189 -0
  33. package/.agent/skills/agent-browser/SKILL.md +311 -0
  34. package/.agent/skills/agent-browser/TEST_PLAN.md +200 -0
  35. package/.agent/skills/sysinfo/SKILL.md +38 -0
  36. package/.agent/skills/sysinfo/system-info.sh +130 -0
  37. package/.agent/skills/workflow/SKILL.md +324 -0
  38. package/.agent/test-agent.js +35 -0
  39. package/.agent/weixin.json +6 -0
  40. package/.agent/workflows/email-digest.json +50 -0
  41. package/.agent/workflows/file-backup.json +21 -0
  42. package/.agent/workflows/get-ip-notify.json +32 -0
  43. package/.agent/workflows/news-aggregator.json +93 -0
  44. package/.agent/workflows/news-dashboard-v2.json +94 -0
  45. package/.agent/workflows/notification-batch.json +32 -0
  46. package/.claude/settings.local.json +9 -1
  47. package/.env.example +56 -56
  48. package/README.md +441 -441
  49. package/cli/src/ui/chat-ui.js +32 -21
  50. package/foliko_poster.png +0 -0
  51. package/output/business_poster_final.png +0 -0
  52. package/output/emoji_test_v2.png +0 -0
  53. package/output/foliko-ai-launch-poster.png +0 -0
  54. package/output/foliko-poster.png +0 -0
  55. package/output/muji_style_poster.png +0 -0
  56. package/output/new_product_launch.png +0 -0
  57. package/output/news_poster_625yi_subsidy.png +0 -0
  58. package/output/tech_future_2026.png +0 -0
  59. package/output/tech_future_poster.png +0 -0
  60. package/package.json +1 -2
  61. package/plugins/default-plugins.js +58 -6
  62. package/plugins/extension-executor-plugin.js +8 -21
  63. package/plugins/python-plugin-loader.js +461 -40
  64. package/plugins/python-plugin-loader.js.bak +856 -0
  65. package/plugins/subagent-plugin.js +0 -121
  66. package/plugins/weixin-plugin.js +38 -29
  67. package/poster.png +0 -0
  68. package/skills/find-skills/AGENTS.md +162 -162
  69. package/skills/find-skills/SKILL.md +133 -133
  70. package/skills/foliko-dev/SKILL.md +6 -0
  71. package/skills/python-plugin-dev/SKILL.md +124 -2
  72. package/src/core/agent-chat.js +220 -281
  73. package/src/core/agent.js +10 -0
  74. package/src/utils/plugin-helpers.js +22 -4
  75. package/system.md +1678 -1574
  76. package/test-scan.js +18 -0
  77. package/.agent/.shared/ui-ux-pro-max/data/charts.csv +0 -26
  78. package/.agent/.shared/ui-ux-pro-max/data/colors.csv +0 -97
  79. package/.agent/.shared/ui-ux-pro-max/data/icons.csv +0 -101
  80. package/.agent/.shared/ui-ux-pro-max/data/landing.csv +0 -31
  81. package/.agent/.shared/ui-ux-pro-max/data/products.csv +0 -97
  82. package/.agent/.shared/ui-ux-pro-max/data/prompts.csv +0 -24
  83. package/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +0 -45
  84. package/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +0 -53
  85. package/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +0 -56
  86. package/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +0 -53
  87. package/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +0 -53
  88. package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +0 -51
  89. package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +0 -59
  90. package/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +0 -52
  91. package/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +0 -54
  92. package/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +0 -61
  93. package/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +0 -54
  94. package/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +0 -51
  95. package/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +0 -50
  96. package/.agent/.shared/ui-ux-pro-max/data/styles.csv +0 -59
  97. package/.agent/.shared/ui-ux-pro-max/data/typography.csv +0 -58
  98. package/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +0 -101
  99. package/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +0 -100
  100. package/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +0 -31
  101. package/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
  102. package/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
  103. package/.agent/.shared/ui-ux-pro-max/scripts/core.py +0 -258
  104. package/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +0 -1067
  105. package/.agent/.shared/ui-ux-pro-max/scripts/search.py +0 -106
  106. package/.agent/ARCHITECTURE.md +0 -288
  107. package/.agent/agents/ambient-agent.md +0 -57
  108. package/.agent/agents/debugger.md +0 -55
  109. package/.agent/agents/email-assistant.md +0 -49
  110. package/.agent/agents/file-manager.md +0 -42
  111. package/.agent/agents/python-developer.md +0 -60
  112. package/.agent/agents/scheduler.md +0 -59
  113. package/.agent/agents/web-developer.md +0 -45
  114. package/.agent/data/puppeteer-sessions/undefined.json +0 -6
  115. package/.agent/data/weixin-media/2026-04-08/img_1775618677512.jpg +0 -0
  116. package/.agent/data/weixin-media/2026-04-08/img_1775619073340.jpg +0 -0
  117. package/.agent/data/weixin-media/2026-04-08/img_1775619097536.jpg +0 -0
  118. package/.agent/data/weixin-media/2026-04-08/img_1775619209388.jpg +0 -0
  119. package/.agent/memory/feedback/mnrdvj5i-ca3dkd.md +0 -9
  120. package/.agent/memory/feedback/mnre365e-7s4zax.md +0 -9
  121. package/.agent/memory/feedback/mnre36jn-nkfgmp.md +0 -9
  122. package/.agent/memory/feedback/mnre3805-kjiq6h.md +0 -9
  123. package/.agent/memory/feedback/mnsf66kp-b10rcd.md +0 -9
  124. package/.agent/memory/feedback/mnsi3sz8-p5g2cw.md +0 -9
  125. package/.agent/memory/feedback/mnsibe47-sv2ni1.md +0 -9
  126. package/.agent/memory/feedback/mnsic89w-nn228o.md +0 -9
  127. package/.agent/memory/feedback/mnsj1xe9-x83ba0.md +0 -9
  128. package/.agent/memory/feedback/mnsj21iv-wnwelx.md +0 -9
  129. package/.agent/memory/feedback/mnsj2g4a-cog7a2.md +0 -9
  130. package/.agent/memory/feedback/mnsj4js7-lktjp6.md +0 -9
  131. package/.agent/memory/feedback/mnsj5d4y-uglwvp.md +0 -9
  132. package/.agent/memory/feedback/mnslkuo9-uous66.md +0 -24
  133. package/.agent/memory/feedback/mnsm3vq0-megoil.md +0 -9
  134. package/.agent/memory/feedback/mnsnn5x2-sxcihd.md +0 -9
  135. package/.agent/memory/feedback/mnsnq17s-nabrn9.md +0 -9
  136. package/.agent/memory/feedback/mnsnybet-wz7rn3.md +0 -9
  137. package/.agent/memory/feedback/mnsrw0s7-7s9e30.md +0 -9
  138. package/.agent/memory/feedback/mnu5hpnd-tlm16q.md +0 -9
  139. package/.agent/memory/feedback/mnu60uqe-xuoxp4.md +0 -9
  140. package/.agent/memory/project/mnqx54u5-loqtoe.md +0 -9
  141. package/.agent/memory/project/mnqx84cv-mx6dmd.md +0 -9
  142. package/.agent/memory/project/mnsacuyr-hgtk5n.md +0 -20
  143. package/.agent/memory/project/mnu5hy2x-bjsg7u.md +0 -9
  144. package/.agent/memory/reference/mnre3cww-penbo1.md +0 -9
  145. package/.agent/memory/reference/mns9wn48-luerua.md +0 -14
  146. package/.agent/memory/reference/mns9yz5c-thc2s0.md +0 -16
  147. package/.agent/memory/reference/mnsfy4um-910f1o.md +0 -23
  148. package/.agent/memory/reference/mnsg37dp-lmfj18.md +0 -32
  149. package/.agent/memory/reference/mnsll60q-0j911u.md +0 -36
  150. package/.agent/memory/reference/mnsmlb5y-nej31u.md +0 -16
  151. package/.agent/memory/reference/mnssle72-yrot96.md +0 -9
  152. package/.agent/memory/user/mnsfuon6-l416q1.md +0 -21
  153. package/.agent/memory/user/mnsg9kut-95m7rf.md +0 -20
  154. package/.agent/memory/user/mnu2eo1v-yy6fhe.md +0 -9
  155. package/.agent/memory/user/mnu2etuo-8u8jk8.md +0 -9
  156. package/.agent/plugins/poster-plugin/README.md +0 -304
  157. package/.agent/plugins/poster-plugin/fonts/NotoColorEmoji-Regular.ttf +0 -0
  158. package/.agent/plugins/poster-plugin/fonts/PatuaOne-Regular.ttf +0 -0
  159. package/.agent/plugins/poster-plugin/fonts/Symbola_hint.ttf +0 -0
  160. package/.agent/plugins/poster-plugin/fonts//345/276/256/350/275/257/351/233/205/351/273/221.ttf +0 -0
  161. package/.agent/plugins/poster-plugin/fonts//345/276/256/350/275/257/351/233/205/351/273/221/347/262/227/344/275/223.ttf +0 -0
  162. package/.agent/plugins/poster-plugin/index.js +0 -13
  163. package/.agent/plugins/poster-plugin/package.json +0 -29
  164. package/.agent/plugins/poster-plugin/src/canvas.js +0 -232
  165. package/.agent/plugins/poster-plugin/src/components/arrow.js +0 -84
  166. package/.agent/plugins/poster-plugin/src/components/avatar.js +0 -71
  167. package/.agent/plugins/poster-plugin/src/components/badge.js +0 -85
  168. package/.agent/plugins/poster-plugin/src/components/barcode.js +0 -123
  169. package/.agent/plugins/poster-plugin/src/components/bubble.js +0 -154
  170. package/.agent/plugins/poster-plugin/src/components/button.js +0 -168
  171. package/.agent/plugins/poster-plugin/src/components/card.js +0 -88
  172. package/.agent/plugins/poster-plugin/src/components/chart.js +0 -127
  173. package/.agent/plugins/poster-plugin/src/components/chip.js +0 -88
  174. package/.agent/plugins/poster-plugin/src/components/columns.js +0 -121
  175. package/.agent/plugins/poster-plugin/src/components/cta.js +0 -87
  176. package/.agent/plugins/poster-plugin/src/components/divider.js +0 -55
  177. package/.agent/plugins/poster-plugin/src/components/feature.js +0 -85
  178. package/.agent/plugins/poster-plugin/src/components/featureGrid.js +0 -117
  179. package/.agent/plugins/poster-plugin/src/components/frame.js +0 -230
  180. package/.agent/plugins/poster-plugin/src/components/grid.js +0 -130
  181. package/.agent/plugins/poster-plugin/src/components/highlightText.js +0 -145
  182. package/.agent/plugins/poster-plugin/src/components/icon.js +0 -94
  183. package/.agent/plugins/poster-plugin/src/components/imageFrame.js +0 -205
  184. package/.agent/plugins/poster-plugin/src/components/index.js +0 -81
  185. package/.agent/plugins/poster-plugin/src/components/listItem.js +0 -147
  186. package/.agent/plugins/poster-plugin/src/components/notification.js +0 -123
  187. package/.agent/plugins/poster-plugin/src/components/progress.js +0 -79
  188. package/.agent/plugins/poster-plugin/src/components/progressCircle.js +0 -117
  189. package/.agent/plugins/poster-plugin/src/components/qrcode.js +0 -74
  190. package/.agent/plugins/poster-plugin/src/components/quote.js +0 -169
  191. package/.agent/plugins/poster-plugin/src/components/rating.js +0 -85
  192. package/.agent/plugins/poster-plugin/src/components/ribbon.js +0 -197
  193. package/.agent/plugins/poster-plugin/src/components/seal.js +0 -148
  194. package/.agent/plugins/poster-plugin/src/components/star.js +0 -70
  195. package/.agent/plugins/poster-plugin/src/components/statCard.js +0 -105
  196. package/.agent/plugins/poster-plugin/src/components/stepper.js +0 -118
  197. package/.agent/plugins/poster-plugin/src/components/table.js +0 -167
  198. package/.agent/plugins/poster-plugin/src/components/tagCloud.js +0 -85
  199. package/.agent/plugins/poster-plugin/src/components/timeline.js +0 -117
  200. package/.agent/plugins/poster-plugin/src/components/watermark.js +0 -54
  201. package/.agent/plugins/poster-plugin/src/composer.js +0 -2314
  202. package/.agent/plugins/poster-plugin/src/elements/artText.js +0 -69
  203. package/.agent/plugins/poster-plugin/src/elements/background.js +0 -99
  204. package/.agent/plugins/poster-plugin/src/elements/circle.js +0 -31
  205. package/.agent/plugins/poster-plugin/src/elements/image.js +0 -28
  206. package/.agent/plugins/poster-plugin/src/elements/index.js +0 -28
  207. package/.agent/plugins/poster-plugin/src/elements/line.js +0 -23
  208. package/.agent/plugins/poster-plugin/src/elements/polygon.js +0 -63
  209. package/.agent/plugins/poster-plugin/src/elements/rectangle.js +0 -32
  210. package/.agent/plugins/poster-plugin/src/elements/richText.js +0 -283
  211. package/.agent/plugins/poster-plugin/src/elements/svg.js +0 -108
  212. package/.agent/plugins/poster-plugin/src/elements/text.js +0 -112
  213. package/.agent/plugins/poster-plugin/src/fonts.js +0 -674
  214. package/.agent/plugins/poster-plugin/src/index.js +0 -2126
  215. package/.agent/plugins/poster-plugin/src/presets.js +0 -36
  216. package/.agent/plugins/poster-plugin/src/templates/business.js +0 -60
  217. package/.agent/plugins/poster-plugin/src/templates/gradient.js +0 -64
  218. package/.agent/plugins/poster-plugin/src/templates/index.js +0 -43
  219. package/.agent/plugins/poster-plugin/src/templates/modern.js +0 -69
  220. package/.agent/plugins/poster-plugin/src/templates/simple.js +0 -58
  221. package/.agent/plugins/poster-plugin/src/templates/social.js +0 -62
  222. package/.agent/plugins/poster-plugin/src/templates/tech.js +0 -84
  223. package/.agent/plugins/poster-plugin/src/utils/imageLoader.js +0 -84
  224. package/.agent/plugins/poster-plugin/yarn.lock +0 -837
  225. package/.agent/plugins/puppeteer-plugin/README.md +0 -147
  226. package/.agent/plugins/puppeteer-plugin/index.js +0 -1422
  227. package/.agent/plugins/puppeteer-plugin/package.json +0 -9
  228. package/.agent/rules/GEMINI.md +0 -273
  229. package/.agent/rules/allow-rule.md +0 -77
  230. package/.agent/rules/log-rule.md +0 -83
  231. package/.agent/rules/security-rule.md +0 -93
  232. package/.agent/scripts/auto_preview.py +0 -148
  233. package/.agent/scripts/checklist.py +0 -217
  234. package/.agent/scripts/session_manager.py +0 -120
  235. package/.agent/scripts/verify_all.py +0 -327
  236. package/.agent/skills/api-patterns/SKILL.md +0 -81
  237. package/.agent/skills/api-patterns/api-style.md +0 -42
  238. package/.agent/skills/api-patterns/auth.md +0 -24
  239. package/.agent/skills/api-patterns/documentation.md +0 -26
  240. package/.agent/skills/api-patterns/graphql.md +0 -41
  241. package/.agent/skills/api-patterns/rate-limiting.md +0 -31
  242. package/.agent/skills/api-patterns/response.md +0 -37
  243. package/.agent/skills/api-patterns/rest.md +0 -40
  244. package/.agent/skills/api-patterns/scripts/api_validator.py +0 -211
  245. package/.agent/skills/api-patterns/security-testing.md +0 -122
  246. package/.agent/skills/api-patterns/trpc.md +0 -41
  247. package/.agent/skills/api-patterns/versioning.md +0 -22
  248. package/.agent/skills/app-builder/SKILL.md +0 -75
  249. package/.agent/skills/app-builder/agent-coordination.md +0 -71
  250. package/.agent/skills/app-builder/feature-building.md +0 -53
  251. package/.agent/skills/app-builder/project-detection.md +0 -34
  252. package/.agent/skills/app-builder/scaffolding.md +0 -118
  253. package/.agent/skills/app-builder/tech-stack.md +0 -40
  254. package/.agent/skills/app-builder/templates/SKILL.md +0 -39
  255. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +0 -76
  256. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +0 -92
  257. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +0 -88
  258. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +0 -88
  259. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +0 -83
  260. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +0 -90
  261. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +0 -90
  262. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +0 -122
  263. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +0 -122
  264. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +0 -169
  265. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +0 -134
  266. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +0 -83
  267. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +0 -119
  268. package/.agent/skills/architecture/SKILL.md +0 -55
  269. package/.agent/skills/architecture/context-discovery.md +0 -43
  270. package/.agent/skills/architecture/examples.md +0 -94
  271. package/.agent/skills/architecture/pattern-selection.md +0 -68
  272. package/.agent/skills/architecture/patterns-reference.md +0 -50
  273. package/.agent/skills/architecture/trade-off-analysis.md +0 -77
  274. package/.agent/skills/clean-code/SKILL.md +0 -201
  275. package/.agent/skills/doc.md +0 -177
  276. package/.agent/skills/frontend-design/SKILL.md +0 -418
  277. package/.agent/skills/frontend-design/animation-guide.md +0 -331
  278. package/.agent/skills/frontend-design/color-system.md +0 -311
  279. package/.agent/skills/frontend-design/decision-trees.md +0 -418
  280. package/.agent/skills/frontend-design/motion-graphics.md +0 -306
  281. package/.agent/skills/frontend-design/scripts/accessibility_checker.py +0 -183
  282. package/.agent/skills/frontend-design/scripts/ux_audit.py +0 -722
  283. package/.agent/skills/frontend-design/typography-system.md +0 -345
  284. package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
  285. package/.agent/skills/frontend-design/visual-effects.md +0 -383
  286. package/.agent/skills/i18n-localization/SKILL.md +0 -154
  287. package/.agent/skills/i18n-localization/scripts/i18n_checker.py +0 -241
  288. package/.agent/skills/mcp-builder/SKILL.md +0 -176
  289. package/.agent/skills/poster-design/SKILL.md +0 -385
  290. package/.agent/skills/web-design-guidelines/SKILL.md +0 -57
  291. package/.agent/workflows/brainstorm.md +0 -113
  292. package/.agent/workflows/create.md +0 -59
  293. package/.agent/workflows/debug.md +0 -103
  294. package/.agent/workflows/deploy.md +0 -176
  295. package/.agent/workflows/enhance.md +0 -63
  296. package/.agent/workflows/orchestrate.md +0 -237
  297. package/.agent/workflows/plan.md +0 -89
  298. package/.agent/workflows/preview.md +0 -81
  299. package/.agent/workflows/simple-test.md +0 -42
  300. package/.agent/workflows/status.md +0 -86
  301. package/.agent/workflows/structured-orchestrate.md +0 -180
  302. package/.agent/workflows/test.md +0 -144
  303. package/.agent/workflows/ui-ux-pro-max.md +0 -296
  304. package/outputs/emoji-font-showcase.png +0 -0
  305. package/outputs/foliko-muji-style.png +0 -0
  306. /package/.agent/plugins/{poster-plugin → marknative}/fonts/SegoeUI Emoji.ttf +0 -0
@@ -1,418 +0,0 @@
1
- ---
2
- name: frontend-design
3
- description: Design thinking and decision-making for web UI. Use when designing components, layouts, color schemes, typography, or creating aesthetic interfaces. Teaches principles, not fixed values.
4
- allowed-tools: Read, Write, Edit, Glob, Grep, Bash
5
- ---
6
-
7
- # Frontend Design System
8
-
9
- > **Philosophy:** Every pixel has purpose. Restraint is luxury. User psychology drives decisions.
10
- > **Core Principle:** THINK, don't memorize. ASK, don't assume.
11
-
12
- ---
13
-
14
- ## 🎯 Selective Reading Rule (MANDATORY)
15
-
16
- **Read REQUIRED files always, OPTIONAL only when needed:**
17
-
18
- | File | Status | When to Read |
19
- |------|--------|--------------|
20
- | [ux-psychology.md](ux-psychology.md) | 🔴 **REQUIRED** | Always read first! |
21
- | [color-system.md](color-system.md) | ⚪ Optional | Color/palette decisions |
22
- | [typography-system.md](typography-system.md) | ⚪ Optional | Font selection/pairing |
23
- | [visual-effects.md](visual-effects.md) | ⚪ Optional | Glassmorphism, shadows, gradients |
24
- | [animation-guide.md](animation-guide.md) | ⚪ Optional | Animation needed |
25
- | [motion-graphics.md](motion-graphics.md) | ⚪ Optional | Lottie, GSAP, 3D |
26
- | [decision-trees.md](decision-trees.md) | ⚪ Optional | Context templates |
27
-
28
- > 🔴 **ux-psychology.md = ALWAYS READ. Others = only if relevant.**
29
-
30
- ---
31
-
32
- ## 🔧 Runtime Scripts
33
-
34
- **Execute these for audits (don't read, just run):**
35
-
36
- | Script | Purpose | Usage |
37
- |--------|---------|-------|
38
- | `scripts/ux_audit.py` | UX Psychology & Accessibility Audit | `python scripts/ux_audit.py <project_path>` |
39
-
40
- ---
41
-
42
- ## ⚠️ CRITICAL: ASK BEFORE ASSUMING (MANDATORY)
43
-
44
- > **STOP! If the user's request is open-ended, DO NOT default to your favorites.**
45
-
46
- ### When User Prompt is Vague, ASK:
47
-
48
- **Color not specified?** Ask:
49
- > "What color palette do you prefer? (blue/green/orange/neutral/other?)"
50
-
51
- **Style not specified?** Ask:
52
- > "What style are you going for? (minimal/bold/retro/futuristic/organic?)"
53
-
54
- **Layout not specified?** Ask:
55
- > "Do you have a layout preference? (single column/grid/asymmetric/full-width?)"
56
-
57
- ### ⛔ DEFAULT TENDENCIES TO AVOID (ANTI-SAFE HARBOR):
58
-
59
- | AI Default Tendency | Why It's Bad | Think Instead |
60
- |---------------------|--------------|---------------|
61
- | **Bento Grids (Modern Cliché)** | Used in every AI design | Why does this content NEED a grid? |
62
- | **Hero Split (Left/Right)** | Predictable & Boring | How about Massive Typography or Vertical Narrative? |
63
- | **Mesh/Aurora Gradients** | The "new" lazy background | What's a radical color pairing? |
64
- | **Glassmorphism** | AI's idea of "premium" | How about solid, high-contrast flat? |
65
- | **Deep Cyan / Fintech Blue** | Safe harbor from purple ban | Why not Red, Black, or Neon Green? |
66
- | **"Orchestrate / Empower"** | AI-generated copywriting | How would a human say this? |
67
- | Dark background + neon glow | Overused, "AI look" | What does the BRAND actually need? |
68
- | **Rounded everything** | Generic/Safe | Where can I use sharp, brutalist edges? |
69
-
70
- > 🔴 **"Every 'safe' structure you choose brings you one step closer to a generic template. TAKE RISKS."**
71
-
72
- ---
73
-
74
- ## 1. Constraint Analysis (ALWAYS FIRST)
75
-
76
- Before any design work, ANSWER THESE or ASK USER:
77
-
78
- | Constraint | Question | Why It Matters |
79
- |------------|----------|----------------|
80
- | **Timeline** | How much time? | Determines complexity |
81
- | **Content** | Ready or placeholder? | Affects layout flexibility |
82
- | **Brand** | Existing guidelines? | May dictate colors/fonts |
83
- | **Tech** | What stack? | Affects capabilities |
84
- | **Audience** | Who exactly? | Drives all visual decisions |
85
-
86
- ### Audience → Design Approach
87
-
88
- | Audience | Think About |
89
- |----------|-------------|
90
- | **Gen Z** | Bold, fast, mobile-first, authentic |
91
- | **Millennials** | Clean, minimal, value-driven |
92
- | **Gen X** | Familiar, trustworthy, clear |
93
- | **Boomers** | Readable, high contrast, simple |
94
- | **B2B** | Professional, data-focused, trust |
95
- | **Luxury** | Restrained elegance, whitespace |
96
-
97
- ---
98
-
99
- ## 2. UX Psychology Principles
100
-
101
- ### Core Laws (Internalize These)
102
-
103
- | Law | Principle | Application |
104
- |-----|-----------|-------------|
105
- | **Hick's Law** | More choices = slower decisions | Limit options, use progressive disclosure |
106
- | **Fitts' Law** | Bigger + closer = easier to click | Size CTAs appropriately |
107
- | **Miller's Law** | ~7 items in working memory | Chunk content into groups |
108
- | **Von Restorff** | Different = memorable | Make CTAs visually distinct |
109
- | **Serial Position** | First/last remembered most | Key info at start/end |
110
-
111
- ### Emotional Design Levels
112
-
113
- ```
114
- VISCERAL (instant) → First impression: colors, imagery, overall feel
115
- BEHAVIORAL (use) → Using it: speed, feedback, efficiency
116
- REFLECTIVE (memory) → After: "I like what this says about me"
117
- ```
118
-
119
- ### Trust Building
120
-
121
- - Security indicators on sensitive actions
122
- - Social proof where relevant
123
- - Clear contact/support access
124
- - Consistent, professional design
125
- - Transparent policies
126
-
127
- ---
128
-
129
- ## 3. Layout Principles
130
-
131
- ### Golden Ratio (φ = 1.618)
132
-
133
- ```
134
- Use for proportional harmony:
135
- ├── Content : Sidebar = roughly 62% : 38%
136
- ├── Each heading size = previous × 1.618 (for dramatic scale)
137
- ├── Spacing can follow: sm → md → lg (each × 1.618)
138
- ```
139
-
140
- ### 8-Point Grid Concept
141
-
142
- ```
143
- All spacing and sizing in multiples of 8:
144
- ├── Tight: 4px (half-step for micro)
145
- ├── Small: 8px
146
- ├── Medium: 16px
147
- ├── Large: 24px, 32px
148
- ├── XL: 48px, 64px, 80px
149
- └── Adjust based on content density
150
- ```
151
-
152
- ### Key Sizing Principles
153
-
154
- | Element | Consideration |
155
- |---------|---------------|
156
- | **Touch targets** | Minimum comfortable tap size |
157
- | **Buttons** | Height based on importance hierarchy |
158
- | **Inputs** | Match button height for alignment |
159
- | **Cards** | Consistent padding, breathable |
160
- | **Reading width** | 45-75 characters optimal |
161
-
162
- ---
163
-
164
- ## 4. Color Principles
165
-
166
- ### 60-30-10 Rule
167
-
168
- ```
169
- 60% → Primary/Background (calm, neutral base)
170
- 30% → Secondary (supporting areas)
171
- 10% → Accent (CTAs, highlights, attention)
172
- ```
173
-
174
- ### Color Psychology (For Decision Making)
175
-
176
- | If You Need... | Consider Hues | Avoid |
177
- |----------------|---------------|-------|
178
- | Trust, calm | Blue family | Aggressive reds |
179
- | Growth, nature | Green family | Industrial grays |
180
- | Energy, urgency | Orange, red | Passive blues |
181
- | Luxury, creativity | Deep Teal, Gold, Emerald | Cheap-feeling brights |
182
- | Clean, minimal | Neutrals | Overwhelming color |
183
-
184
- ### Selection Process
185
-
186
- 1. **What's the industry?** (narrows options)
187
- 2. **What's the emotion?** (picks primary)
188
- 3. **Light or dark mode?** (sets foundation)
189
- 4. **ASK USER** if not specified
190
-
191
- For detailed color theory: [color-system.md](color-system.md)
192
-
193
- ---
194
-
195
- ## 5. Typography Principles
196
-
197
- ### Scale Selection
198
-
199
- | Content Type | Scale Ratio | Feel |
200
- |--------------|-------------|------|
201
- | Dense UI | 1.125-1.2 | Compact, efficient |
202
- | General web | 1.25 | Balanced (most common) |
203
- | Editorial | 1.333 | Readable, spacious |
204
- | Hero/display | 1.5-1.618 | Dramatic impact |
205
-
206
- ### Pairing Concept
207
-
208
- ```
209
- Contrast + Harmony:
210
- ├── DIFFERENT enough for hierarchy
211
- ├── SIMILAR enough for cohesion
212
- └── Usually: display + neutral, or serif + sans
213
- ```
214
-
215
- ### Readability Rules
216
-
217
- - **Line length**: 45-75 characters optimal
218
- - **Line height**: 1.4-1.6 for body text
219
- - **Contrast**: Check WCAG requirements
220
- - **Size**: 16px+ for body on web
221
-
222
- For detailed typography: [typography-system.md](typography-system.md)
223
-
224
- ---
225
-
226
- ## 6. Visual Effects Principles
227
-
228
- ### Glassmorphism (When Appropriate)
229
-
230
- ```
231
- Key properties:
232
- ├── Semi-transparent background
233
- ├── Backdrop blur
234
- ├── Subtle border for definition
235
- └── ⚠️ **WARNING:** Standard blue/white glassmorphism is a modern cliché. Use it radically or not at all.
236
- ```
237
-
238
- ### Shadow Hierarchy
239
-
240
- ```
241
- Elevation concept:
242
- ├── Higher elements = larger shadows
243
- ├── Y-offset > X-offset (light from above)
244
- ├── Multiple layers = more realistic
245
- └── Dark mode: may need glow instead
246
- ```
247
-
248
- ### Gradient Usage
249
-
250
- ```
251
- Harmonious gradients:
252
- ├── Adjacent colors on wheel (analogous)
253
- ├── OR same hue, different lightness
254
- ├── Avoid harsh complementary pairs
255
- ├── 🚫 **NO Mesh/Aurora Gradients** (floating blobs)
256
- └── VARY from project to project radically
257
- ```
258
-
259
- For complete effects guide: [visual-effects.md](visual-effects.md)
260
-
261
- ---
262
-
263
- ## 7. Animation Principles
264
-
265
- ### Timing Concept
266
-
267
- ```
268
- Duration based on:
269
- ├── Distance (further = longer)
270
- ├── Size (larger = slower)
271
- ├── Importance (critical = clear)
272
- └── Context (urgent = fast, luxury = slow)
273
- ```
274
-
275
- ### Easing Selection
276
-
277
- | Action | Easing | Why |
278
- |--------|--------|-----|
279
- | Entering | Ease-out | Decelerate, settle in |
280
- | Leaving | Ease-in | Accelerate, exit |
281
- | Emphasis | Ease-in-out | Smooth, deliberate |
282
- | Playful | Bounce | Fun, energetic |
283
-
284
- ### Performance
285
-
286
- - Animate only transform and opacity
287
- - Respect reduced-motion preference
288
- - Test on low-end devices
289
-
290
- For animation patterns: [animation-guide.md](animation-guide.md), for advanced: [motion-graphics.md](motion-graphics.md)
291
-
292
- ---
293
-
294
- ## 8. "Wow Factor" Checklist
295
-
296
- ### Premium Indicators
297
-
298
- - [ ] Generous whitespace (luxury = breathing room)
299
- - [ ] Subtle depth and dimension
300
- - [ ] Smooth, purposeful animations
301
- - [ ] Attention to detail (alignment, consistency)
302
- - [ ] Cohesive visual rhythm
303
- - [ ] Custom elements (not all defaults)
304
-
305
- ### Trust Builders
306
-
307
- - [ ] Security cues where appropriate
308
- - [ ] Social proof / testimonials
309
- - [ ] Clear value proposition
310
- - [ ] Professional imagery
311
- - [ ] Consistent design language
312
-
313
- ### Emotional Triggers
314
-
315
- - [ ] Hero that evokes intended emotion
316
- - [ ] Human elements (faces, stories)
317
- - [ ] Progress/achievement indicators
318
- - [ ] Moments of delight
319
-
320
- ---
321
-
322
- ## 9. Anti-Patterns (What NOT to Do)
323
-
324
- ### ❌ Lazy Design Indicators
325
-
326
- - Default system fonts without consideration
327
- - Stock imagery that doesn't match
328
- - Inconsistent spacing
329
- - Too many competing colors
330
- - Walls of text without hierarchy
331
- - Inaccessible contrast
332
-
333
- ### ❌ AI Tendency Patterns (AVOID!)
334
-
335
- - **Same colors every project**
336
- - **Dark + neon as default**
337
- - **Purple/violet everything (PURPLE BAN ✅)**
338
- - **Bento grids for simple landing pages**
339
- - **Mesh Gradients & Glow Effects**
340
- - **Same layout structure / Vercel clone**
341
- - **Not asking user preferences**
342
-
343
- ### ❌ Dark Patterns (Unethical)
344
-
345
- - Hidden costs
346
- - Fake urgency
347
- - Forced actions
348
- - Deceptive UI
349
- - Confirmshaming
350
-
351
- ---
352
-
353
- ## 10. Decision Process Summary
354
-
355
- ```
356
- For EVERY design task:
357
-
358
- 1. CONSTRAINTS
359
- └── What's the timeline, brand, tech, audience?
360
- └── If unclear → ASK
361
-
362
- 2. CONTENT
363
- └── What content exists?
364
- └── What's the hierarchy?
365
-
366
- 3. STYLE DIRECTION
367
- └── What's appropriate for context?
368
- └── If unclear → ASK (don't default!)
369
-
370
- 4. EXECUTION
371
- └── Apply principles above
372
- └── Check against anti-patterns
373
-
374
- 5. REVIEW
375
- └── "Does this serve the user?"
376
- └── "Is this different from my defaults?"
377
- └── "Would I be proud of this?"
378
- ```
379
-
380
- ---
381
-
382
- ## Reference Files
383
-
384
- For deeper guidance on specific areas:
385
-
386
- - [color-system.md](color-system.md) - Color theory and selection process
387
- - [typography-system.md](typography-system.md) - Font pairing and scale decisions
388
- - [visual-effects.md](visual-effects.md) - Effects principles and techniques
389
- - [animation-guide.md](animation-guide.md) - Motion design principles
390
- - [motion-graphics.md](motion-graphics.md) - Advanced: Lottie, GSAP, SVG, 3D, Particles
391
- - [decision-trees.md](decision-trees.md) - Context-specific templates
392
- - [ux-psychology.md](ux-psychology.md) - User psychology deep dive
393
-
394
- ---
395
-
396
- ## Related Skills
397
-
398
- | Skill | When to Use |
399
- |-------|-------------|
400
- | **frontend-design** (this) | Before coding - Learn design principles (color, typography, UX psychology) |
401
- | **[web-design-guidelines](../web-design-guidelines/SKILL.md)** | After coding - Audit for accessibility, performance, and best practices |
402
-
403
- ## Post-Design Workflow
404
-
405
- After implementing your design, run the audit:
406
-
407
- ```
408
- 1. DESIGN → Read frontend-design principles ← YOU ARE HERE
409
- 2. CODE → Implement the design
410
- 3. AUDIT → Run web-design-guidelines review
411
- 4. FIX → Address findings from audit
412
- ```
413
-
414
- > **Next Step:** After coding, use `web-design-guidelines` skill to audit your implementation for accessibility, focus states, animations, and performance issues.
415
-
416
- ---
417
-
418
- > **Remember:** Design is THINKING, not copying. Every project deserves fresh consideration based on its unique context and users. **Avoid the Modern SaaS Safe Harbor!**