foliko 1.0.80 → 1.0.81

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 (235) hide show
  1. package/.agent/agents/code-assistant.json +14 -0
  2. package/.agent/agents/email-assistant.json +14 -0
  3. package/.agent/agents/file-assistant.json +15 -0
  4. package/.agent/agents/system-assistant.json +15 -0
  5. package/.agent/agents/web-assistant.json +12 -0
  6. package/.agent/data/ambient/goals.json +50 -0
  7. package/.agent/data/ambient/memories.json +7 -0
  8. package/.agent/data/default.json +15 -31894
  9. package/.agent/data/plugins-state.json +146 -181
  10. package/.agent/data/scheduler/tasks.json +1 -0
  11. package/.agent/mcp_config.json +1 -0
  12. package/.agent/package.json +8 -0
  13. package/.agent/plugins/__pycache__/test_plugin.cpython-312.pyc +0 -0
  14. package/.agent/plugins/system-info/index.js +387 -0
  15. package/.agent/plugins/system-info/package.json +4 -0
  16. package/.agent/plugins/system-info/test.js +40 -0
  17. package/.agent/plugins/test_plugin.py +304 -0
  18. package/.agent/plugins.json +14 -5
  19. package/.agent/python-scripts/test_sample.py +24 -0
  20. package/.agent/skills/sysinfo/SKILL.md +38 -0
  21. package/.agent/skills/sysinfo/system-info.sh +130 -0
  22. package/.agent/skills/workflow/SKILL.md +324 -0
  23. package/.agent/workflows/email-digest.json +50 -0
  24. package/.agent/workflows/file-backup.json +21 -0
  25. package/.agent/workflows/get-ip-notify.json +32 -0
  26. package/.agent/workflows/news-aggregator.json +93 -0
  27. package/.agent/workflows/news-dashboard-v2.json +94 -0
  28. package/.agent/workflows/notification-batch.json +32 -0
  29. package/.claude/settings.local.json +171 -171
  30. package/.env.example +56 -56
  31. package/cli/bin/foliko.js +12 -12
  32. package/cli/src/commands/chat.js +143 -143
  33. package/cli/src/commands/list.js +93 -93
  34. package/cli/src/index.js +75 -75
  35. package/cli/src/ui/chat-ui.js +201 -201
  36. package/cli/src/utils/ansi.js +40 -40
  37. package/cli/src/utils/markdown.js +292 -292
  38. package/examples/ambient-example.js +194 -194
  39. package/examples/basic.js +115 -115
  40. package/examples/bootstrap.js +121 -121
  41. package/examples/mcp-example.js +56 -56
  42. package/examples/skill-example.js +49 -49
  43. package/examples/test-chat.js +137 -137
  44. package/examples/test-mcp.js +85 -85
  45. package/examples/test-reload.js +59 -59
  46. package/examples/test-telegram.js +50 -50
  47. package/examples/test-tg-bot.js +45 -45
  48. package/examples/test-tg-simple.js +47 -47
  49. package/examples/test-tg.js +62 -62
  50. package/examples/test-think.js +43 -43
  51. package/examples/test-web-plugin.js +103 -103
  52. package/examples/test-weixin-feishu.js +103 -103
  53. package/examples/workflow.js +158 -158
  54. package/package.json +83 -83
  55. package/plugins/ai-plugin.js +102 -102
  56. package/plugins/ambient-agent/EventWatcher.js +113 -113
  57. package/plugins/ambient-agent/ExplorerLoop.js +640 -640
  58. package/plugins/ambient-agent/GoalManager.js +197 -197
  59. package/plugins/ambient-agent/Reflector.js +95 -95
  60. package/plugins/ambient-agent/StateStore.js +90 -90
  61. package/plugins/ambient-agent/constants.js +101 -101
  62. package/plugins/ambient-agent/index.js +579 -579
  63. package/plugins/audit-plugin.js +187 -187
  64. package/plugins/default-plugins.js +548 -548
  65. package/plugins/email/constants.js +64 -64
  66. package/plugins/email/handlers.js +461 -461
  67. package/plugins/email/index.js +278 -278
  68. package/plugins/email/monitor.js +269 -269
  69. package/plugins/email/parser.js +138 -138
  70. package/plugins/email/reply.js +151 -151
  71. package/plugins/email/utils.js +124 -124
  72. package/plugins/extension-executor-plugin.js +326 -326
  73. package/plugins/feishu-plugin.js +481 -481
  74. package/plugins/file-system-plugin.js +920 -877
  75. package/plugins/gate-trading.js +747 -747
  76. package/plugins/install-plugin.js +199 -199
  77. package/plugins/python-executor-plugin.js +367 -367
  78. package/plugins/python-plugin-loader.js +651 -651
  79. package/plugins/rules-plugin.js +294 -294
  80. package/plugins/scheduler-plugin.js +691 -691
  81. package/plugins/session-plugin.js +494 -494
  82. package/plugins/shell-executor-plugin.js +197 -197
  83. package/plugins/storage-plugin.js +263 -263
  84. package/plugins/subagent-plugin.js +845 -845
  85. package/plugins/telegram-plugin.js +482 -482
  86. package/plugins/think-plugin.js +345 -345
  87. package/plugins/tools-plugin.js +196 -196
  88. package/plugins/web-plugin.js +637 -637
  89. package/plugins/weixin-plugin.js +545 -545
  90. package/skills/find-skills/AGENTS.md +162 -162
  91. package/skills/find-skills/SKILL.md +133 -133
  92. package/skills/foliko-dev/SKILL.md +563 -583
  93. package/skills/python-plugin-dev/SKILL.md +238 -238
  94. package/src/capabilities/index.js +11 -11
  95. package/src/capabilities/skill-manager.js +609 -609
  96. package/src/capabilities/workflow-engine.js +1109 -1109
  97. package/src/core/agent-chat.js +141 -134
  98. package/src/core/agent.js +958 -958
  99. package/src/core/framework.js +465 -465
  100. package/src/core/index.js +19 -19
  101. package/src/core/plugin-base.js +262 -262
  102. package/src/core/plugin-manager.js +863 -863
  103. package/src/core/provider.js +114 -114
  104. package/src/core/sub-agent-config.js +264 -264
  105. package/src/core/system-prompt-builder.js +120 -120
  106. package/src/core/tool-registry.js +517 -517
  107. package/src/core/tool-router.js +297 -297
  108. package/src/executors/executor-base.js +58 -58
  109. package/src/executors/mcp-executor.js +845 -845
  110. package/src/index.js +25 -25
  111. package/src/utils/circuit-breaker.js +301 -301
  112. package/src/utils/error-boundary.js +363 -363
  113. package/src/utils/error.js +374 -374
  114. package/src/utils/event-emitter.js +97 -97
  115. package/src/utils/id.js +133 -133
  116. package/src/utils/index.js +217 -217
  117. package/src/utils/logger.js +181 -181
  118. package/src/utils/plugin-helpers.js +90 -90
  119. package/src/utils/retry.js +122 -122
  120. package/src/utils/sandbox.js +292 -292
  121. package/test/tool-registry-validation.test.js +218 -218
  122. package/website/script.js +136 -136
  123. package/.agent/.shared/ui-ux-pro-max/data/charts.csv +0 -26
  124. package/.agent/.shared/ui-ux-pro-max/data/colors.csv +0 -97
  125. package/.agent/.shared/ui-ux-pro-max/data/icons.csv +0 -101
  126. package/.agent/.shared/ui-ux-pro-max/data/landing.csv +0 -31
  127. package/.agent/.shared/ui-ux-pro-max/data/products.csv +0 -97
  128. package/.agent/.shared/ui-ux-pro-max/data/prompts.csv +0 -24
  129. package/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +0 -45
  130. package/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +0 -53
  131. package/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +0 -56
  132. package/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +0 -53
  133. package/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +0 -53
  134. package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +0 -51
  135. package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +0 -59
  136. package/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +0 -52
  137. package/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +0 -54
  138. package/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +0 -61
  139. package/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +0 -54
  140. package/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +0 -51
  141. package/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +0 -50
  142. package/.agent/.shared/ui-ux-pro-max/data/styles.csv +0 -59
  143. package/.agent/.shared/ui-ux-pro-max/data/typography.csv +0 -58
  144. package/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +0 -101
  145. package/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +0 -100
  146. package/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +0 -31
  147. package/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/core.cpython-313.pyc +0 -0
  148. package/.agent/.shared/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-313.pyc +0 -0
  149. package/.agent/.shared/ui-ux-pro-max/scripts/core.py +0 -258
  150. package/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +0 -1067
  151. package/.agent/.shared/ui-ux-pro-max/scripts/search.py +0 -106
  152. package/.agent/ARCHITECTURE.md +0 -288
  153. package/.agent/agents/ambient-agent.md +0 -57
  154. package/.agent/agents/debugger.md +0 -55
  155. package/.agent/agents/email-assistant.md +0 -49
  156. package/.agent/agents/file-manager.md +0 -42
  157. package/.agent/agents/python-developer.md +0 -60
  158. package/.agent/agents/scheduler.md +0 -59
  159. package/.agent/agents/web-developer.md +0 -45
  160. package/.agent/mcp_config_updated.json +0 -12
  161. package/.agent/rules/GEMINI.md +0 -273
  162. package/.agent/rules/allow-rule.md +0 -77
  163. package/.agent/rules/log-rule.md +0 -83
  164. package/.agent/rules/security-rule.md +0 -93
  165. package/.agent/scripts/auto_preview.py +0 -148
  166. package/.agent/scripts/checklist.py +0 -217
  167. package/.agent/scripts/session_manager.py +0 -120
  168. package/.agent/scripts/verify_all.py +0 -327
  169. package/.agent/skills/api-patterns/SKILL.md +0 -81
  170. package/.agent/skills/api-patterns/api-style.md +0 -42
  171. package/.agent/skills/api-patterns/auth.md +0 -24
  172. package/.agent/skills/api-patterns/documentation.md +0 -26
  173. package/.agent/skills/api-patterns/graphql.md +0 -41
  174. package/.agent/skills/api-patterns/rate-limiting.md +0 -31
  175. package/.agent/skills/api-patterns/response.md +0 -37
  176. package/.agent/skills/api-patterns/rest.md +0 -40
  177. package/.agent/skills/api-patterns/scripts/api_validator.py +0 -211
  178. package/.agent/skills/api-patterns/security-testing.md +0 -122
  179. package/.agent/skills/api-patterns/trpc.md +0 -41
  180. package/.agent/skills/api-patterns/versioning.md +0 -22
  181. package/.agent/skills/app-builder/SKILL.md +0 -75
  182. package/.agent/skills/app-builder/agent-coordination.md +0 -71
  183. package/.agent/skills/app-builder/feature-building.md +0 -53
  184. package/.agent/skills/app-builder/project-detection.md +0 -34
  185. package/.agent/skills/app-builder/scaffolding.md +0 -118
  186. package/.agent/skills/app-builder/tech-stack.md +0 -40
  187. package/.agent/skills/app-builder/templates/SKILL.md +0 -39
  188. package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +0 -76
  189. package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +0 -92
  190. package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +0 -88
  191. package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +0 -88
  192. package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +0 -83
  193. package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +0 -90
  194. package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +0 -90
  195. package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +0 -122
  196. package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +0 -122
  197. package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +0 -169
  198. package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +0 -134
  199. package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +0 -83
  200. package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +0 -119
  201. package/.agent/skills/architecture/SKILL.md +0 -55
  202. package/.agent/skills/architecture/context-discovery.md +0 -43
  203. package/.agent/skills/architecture/examples.md +0 -94
  204. package/.agent/skills/architecture/pattern-selection.md +0 -68
  205. package/.agent/skills/architecture/patterns-reference.md +0 -50
  206. package/.agent/skills/architecture/trade-off-analysis.md +0 -77
  207. package/.agent/skills/clean-code/SKILL.md +0 -201
  208. package/.agent/skills/doc.md +0 -177
  209. package/.agent/skills/frontend-design/SKILL.md +0 -418
  210. package/.agent/skills/frontend-design/animation-guide.md +0 -331
  211. package/.agent/skills/frontend-design/color-system.md +0 -311
  212. package/.agent/skills/frontend-design/decision-trees.md +0 -418
  213. package/.agent/skills/frontend-design/motion-graphics.md +0 -306
  214. package/.agent/skills/frontend-design/scripts/accessibility_checker.py +0 -183
  215. package/.agent/skills/frontend-design/scripts/ux_audit.py +0 -722
  216. package/.agent/skills/frontend-design/typography-system.md +0 -345
  217. package/.agent/skills/frontend-design/ux-psychology.md +0 -1116
  218. package/.agent/skills/frontend-design/visual-effects.md +0 -383
  219. package/.agent/skills/i18n-localization/SKILL.md +0 -154
  220. package/.agent/skills/i18n-localization/scripts/i18n_checker.py +0 -241
  221. package/.agent/skills/mcp-builder/SKILL.md +0 -176
  222. package/.agent/skills/web-design-guidelines/SKILL.md +0 -57
  223. package/.agent/workflows/brainstorm.md +0 -113
  224. package/.agent/workflows/create.md +0 -59
  225. package/.agent/workflows/debug.md +0 -103
  226. package/.agent/workflows/deploy.md +0 -176
  227. package/.agent/workflows/enhance.md +0 -63
  228. package/.agent/workflows/orchestrate.md +0 -237
  229. package/.agent/workflows/plan.md +0 -89
  230. package/.agent/workflows/preview.md +0 -81
  231. package/.agent/workflows/simple-test.md +0 -42
  232. package/.agent/workflows/status.md +0 -86
  233. package/.agent/workflows/structured-orchestrate.md +0 -180
  234. package/.agent/workflows/test.md +0 -144
  235. package/.agent/workflows/ui-ux-pro-max.md +0 -296
@@ -1,331 +0,0 @@
1
- # Animation Guidelines Reference
2
-
3
- > Animation principles and timing psychology - learn to decide, not copy.
4
- > **No fixed durations to memorize - understand what affects timing.**
5
-
6
- ---
7
-
8
- ## 1. Duration Principles
9
-
10
- ### What Affects Timing
11
-
12
- ```
13
- Factors that determine animation speed:
14
- ├── DISTANCE: Further travel = longer duration
15
- ├── SIZE: Larger elements = slower animations
16
- ├── COMPLEXITY: Complex = slower to process
17
- ├── IMPORTANCE: Critical actions = clear feedback
18
- └── CONTEXT: Urgent = fast, luxurious = slow
19
- ```
20
-
21
- ### Duration Ranges by Purpose
22
-
23
- | Purpose | Range | Why |
24
- |---------|-------|-----|
25
- | Instant feedback | 50-100ms | Below perception threshold |
26
- | Micro-interactions | 100-200ms | Quick but noticeable |
27
- | Standard transitions | 200-300ms | Comfortable pace |
28
- | Complex animations | 300-500ms | Time to follow |
29
- | Page transitions | 400-600ms | Smooth handoff |
30
- | **Wow/Premium Effects** | 800ms+ | Dramatic, organic spring-based, layered |
31
-
32
- ### Choosing Duration
33
-
34
- Ask yourself:
35
- 1. How far is the element moving?
36
- 2. How important is it to notice this change?
37
- 3. Is the user waiting, or is this background?
38
-
39
- ---
40
-
41
- ## 2. Easing Principles
42
-
43
- ### What Easing Does
44
-
45
- ```
46
- Easing = how speed changes over time
47
- ├── Linear: constant speed (mechanical, robotic)
48
- ├── Ease-out: fast start, slow end (natural entry)
49
- ├── Ease-in: slow start, fast end (natural exit)
50
- └── Ease-in-out: slow both ends (smooth, deliberate)
51
- ```
52
-
53
- ### When to Use Each
54
-
55
- | Easing | Best For | Feels Like |
56
- |--------|----------|------------|
57
- | **Ease-out** | Elements entering | Arriving, settling |
58
- | **Ease-in** | Elements leaving | Departing, exiting |
59
- | **Ease-in-out** | Emphasis, loops | Deliberate, smooth |
60
- | **Linear** | Continuous motion | Mechanical, constant |
61
- | **Bounce/Elastic** | Playful UI | Fun, energetic |
62
-
63
- ### The Pattern
64
-
65
- ```css
66
- /* Entering view = ease-out (decelerate) */
67
- .enter {
68
- animation-timing-function: ease-out;
69
- }
70
-
71
- /* Leaving view = ease-in (accelerate) */
72
- .exit {
73
- animation-timing-function: ease-in;
74
- }
75
-
76
- /* Continuous = ease-in-out */
77
- .continuous {
78
- animation-timing-function: ease-in-out;
79
- }
80
- ```
81
-
82
- ---
83
-
84
- ## 3. Micro-Interaction Principles
85
-
86
- ### What Makes Good Micro-Interactions
87
-
88
- ```
89
- Purpose of micro-interactions:
90
- ├── FEEDBACK: Confirm the action happened
91
- ├── GUIDANCE: Show what's possible
92
- ├── STATUS: Indicate current state
93
- └── DELIGHT: Small moments of joy
94
- ```
95
-
96
- ### Button States
97
-
98
- ```
99
- Hover → slight visual change (lift, color, scale)
100
- Active → pressed feeling (scale down, shadow change)
101
- Focus → clear indicator (outline, ring)
102
- Loading → progress indicator (spinner, skeleton)
103
- Success → confirmation (check, color)
104
- ```
105
-
106
- ### Principles
107
-
108
- 1. **Respond immediately** (under 100ms perception)
109
- 2. **Match the action** (press = `scale(0.95)`, hover = `translateY(-4px) + glow`)
110
- 3. **Be bold but smooth** (Usta işi hissettir)
111
- 4. **Be consistent** (same actions = same feedback)
112
-
113
- ---
114
-
115
- ## 4. Loading States Principles
116
-
117
- ### Types by Context
118
-
119
- | Situation | Approach |
120
- |-----------|----------|
121
- | Quick load (<1s) | No indicator needed |
122
- | Medium (1-3s) | Spinner or simple animation |
123
- | Long (3s+) | Progress bar or skeleton |
124
- | Unknown duration | Indeterminate indicator |
125
-
126
- ### Skeleton Screens
127
-
128
- ```
129
- Purpose: Reduce perceived wait time
130
- ├── Show layout shape immediately
131
- ├── Animate subtly (shimmer, pulse)
132
- ├── Replace with content when ready
133
- └── Feels faster than spinner
134
- ```
135
-
136
- ### Progress Indicators
137
-
138
- ```
139
- When to show progress:
140
- ├── User-initiated action
141
- ├── File uploads/downloads
142
- ├── Multi-step processes
143
- └── Long operations
144
-
145
- When NOT needed:
146
- ├── Very quick operations
147
- ├── Background tasks
148
- └── Initial page loads (skeleton better)
149
- ```
150
-
151
- ---
152
-
153
- ## 5. Page Transitions Principles
154
-
155
- ### Transition Strategy
156
-
157
- ```
158
- Simple rule: exit fast, enter slower
159
- ├── Outgoing content fades quickly
160
- ├── Incoming content animates in
161
- └── Avoids "everything moving at once"
162
- ```
163
-
164
- ### Common Patterns
165
-
166
- | Pattern | When to Use |
167
- |---------|-------------|
168
- | **Fade** | Safe default, works everywhere |
169
- | **Slide** | Sequential navigation (prev/next) |
170
- | **Scale** | Opening/closing modals |
171
- | **Shared element** | Maintaining visual continuity |
172
-
173
- ### Direction Matching
174
-
175
- ```
176
- Navigation direction = animation direction
177
- ├── Forward → slide from right
178
- ├── Backward → slide from left
179
- ├── Deeper → scale up from center
180
- ├── Back up → scale down
181
- ```
182
-
183
- ---
184
-
185
- ## 6. Scroll Animation Principles
186
-
187
- ### Progressive Reveal
188
-
189
- ```
190
- Content appears as user scrolls:
191
- ├── Reduces initial cognitive load
192
- ├── Rewards exploration
193
- ├── Must not feel sluggish
194
- └── Option to disable (accessibility)
195
- ```
196
-
197
- ### Trigger Points
198
-
199
- | When to Trigger | Effect |
200
- |-----------------|--------|
201
- | Just entering viewport | Standard reveal |
202
- | Centered in viewport | For emphasis |
203
- | Partially visible | Earlier reveal |
204
- | Fully visible | Late trigger |
205
-
206
- ### Animation Properties
207
-
208
- - Fade in (opacity)
209
- - Slide up (transform)
210
- - Scale (transform)
211
- - Combination of above
212
-
213
- ### Performance
214
-
215
- - Use Intersection Observer
216
- - Animate only transform/opacity
217
- - Reduce on mobile if needed
218
-
219
- ---
220
-
221
- ## 7. Hover Effects Principles
222
-
223
- ### Matching Effect to Action
224
-
225
- | Element | Effect | Intent |
226
- |---------|--------|--------|
227
- | **Clickable card** | Lift + shadow | "This is interactive" |
228
- | **Button** | Color/brightness change | "Press me" |
229
- | **Image** | Zoom/scale | "View closer" |
230
- | **Link** | Underline/color | "Navigate here" |
231
-
232
- ### Principles
233
-
234
- 1. **Signal interactivity** - hover shows it's clickable
235
- 2. **Don't overdo it** - subtle changes work
236
- 3. **Match importance** - bigger change = more important
237
- 4. **Touch alternatives** - hover doesn't work on mobile
238
-
239
- ---
240
-
241
- ## 8. Feedback Animation Principles
242
-
243
- ### Success States
244
-
245
- ```
246
- Celebrate appropriately:
247
- ├── Minor action → subtle check/color
248
- ├── Major action → more pronounced animation
249
- ├── Completion → satisfying animation
250
- └── Match brand personality
251
- ```
252
-
253
- ### Error States
254
-
255
- ```
256
- Draw attention without panic:
257
- ├── Color change (semantic red)
258
- ├── Shake animation (brief!)
259
- ├── Focus on error field
260
- └── Clear messaging
261
- ```
262
-
263
- ### Timing
264
-
265
- - Success: slightly longer (enjoy the moment)
266
- - Error: quick (don't delay action)
267
- - Loading: continuous until complete
268
-
269
- ---
270
-
271
- ## 9. Performance Principles
272
-
273
- ### What's Cheap to Animate
274
-
275
- ```
276
- GPU-accelerated (FAST):
277
- ├── transform: translate, scale, rotate
278
- └── opacity: 0 to 1
279
-
280
- CPU-intensive (SLOW):
281
- ├── width, height
282
- ├── top, left, right, bottom
283
- ├── margin, padding
284
- ├── border-radius changes
285
- └── box-shadow changes
286
- ```
287
-
288
- ### Optimization Strategies
289
-
290
- 1. **Animate transform/opacity** whenever possible
291
- 2. **Avoid layout triggers** (size/position changes)
292
- 3. **Use will-change sparingly** (hints to browser)
293
- 4. **Test on low-end devices** (not just dev machine)
294
-
295
- ### Respecting User Preferences
296
-
297
- ```css
298
- @media (prefers-reduced-motion: reduce) {
299
- /* Honor this preference */
300
- /* Essential animations only */
301
- /* Reduce or remove decorative motion */
302
- }
303
- ```
304
-
305
- ---
306
-
307
- ## 10. Animation Decision Checklist
308
-
309
- Before adding animation:
310
-
311
- - [ ] **Is there a purpose?** (feedback/guidance/delight)
312
- - [ ] **Is timing appropriate?** (not too fast/slow)
313
- - [ ] **Did you pick correct easing?** (enter/exit/emphasis)
314
- - [ ] **Is it performant?** (transform/opacity only)
315
- - [ ] **Tested reduced motion?** (accessibility)
316
- - [ ] **Consistent with other animations?** (same timing feel)
317
- - [ ] **Not your default settings?** (variety check)
318
- - [ ] **Asked user about style if unclear?**
319
-
320
- ### Anti-Patterns
321
-
322
- - ❌ Same timing values every project
323
- - ❌ Animation for animation's sake
324
- - ❌ Ignoring reduced-motion preference
325
- - ❌ Animating expensive properties
326
- - ❌ Too many things animating at once
327
- - ❌ Delays that frustrate users
328
-
329
- ---
330
-
331
- > **Remember**: Animation is communication. Every motion should have meaning and serve the user experience.
@@ -1,311 +0,0 @@
1
- # Color System Reference
2
-
3
- > Color theory principles, selection process, and decision-making guidelines.
4
- > **No memorized hex codes - learn to THINK about color.**
5
-
6
- ---
7
-
8
- ## 1. Color Theory Fundamentals
9
-
10
- ### The Color Wheel
11
-
12
- ```
13
- YELLOW
14
-
15
- Yellow- │ Yellow-
16
- Green │ Orange
17
- ╲ │ ╱
18
- ╲ │ ╱
19
- GREEN ─────────── ● ─────────── ORANGE
20
- ╱ │ ╲
21
- ╱ │ ╲
22
- Blue- │ Red-
23
- Green │ Orange
24
-
25
- RED
26
-
27
- PURPLE
28
- ╱ ╲
29
- Blue- Red-
30
- Purple Purple
31
- ╲ ╱
32
- BLUE
33
- ```
34
-
35
- ### Color Relationships
36
-
37
- | Scheme | How to Create | When to Use |
38
- |--------|---------------|-------------|
39
- | **Monochromatic** | Pick ONE hue, vary only lightness/saturation | Minimal, professional, cohesive |
40
- | **Analogous** | Pick 2-3 ADJACENT hues on wheel | Harmonious, calm, nature-inspired |
41
- | **Complementary** | Pick OPPOSITE hues on wheel | High contrast, vibrant, attention |
42
- | **Split-Complementary** | Base + 2 colors adjacent to complement | Dynamic but balanced |
43
- | **Triadic** | 3 hues EQUIDISTANT on wheel | Vibrant, playful, creative |
44
-
45
- ### How to Choose a Scheme:
46
- 1. **What's the project mood?** Calm → Analogous. Bold → Complementary.
47
- 2. **How many colors needed?** Minimal → Monochromatic. Complex → Triadic.
48
- 3. **Who's the audience?** Conservative → Monochromatic. Young → Triadic.
49
-
50
- ---
51
-
52
- ## 2. The 60-30-10 Rule
53
-
54
- ### Distribution Principle
55
- ```
56
- ┌─────────────────────────────────────────────────┐
57
- │ │
58
- │ 60% PRIMARY (Background, large areas) │
59
- │ → Should be neutral or calming │
60
- │ → Carries the overall tone │
61
- │ │
62
- ├────────────────────────────────────┬────────────┤
63
- │ │ │
64
- │ 30% SECONDARY │ 10% ACCENT │
65
- │ (Cards, sections, headers) │ (CTAs, │
66
- │ → Supports without dominating │ highlights)│
67
- │ │ → Draws │
68
- │ │ attention│
69
- └────────────────────────────────────┴────────────┘
70
- ```
71
-
72
- ### Implementation Pattern
73
- ```css
74
- :root {
75
- /* 60% - Pick based on light/dark mode and mood */
76
- --color-bg: /* neutral: white, off-white, or dark gray */
77
- --color-surface: /* slightly different from bg */
78
-
79
- /* 30% - Pick based on brand or context */
80
- --color-secondary: /* muted version of primary or neutral */
81
-
82
- /* 10% - Pick based on desired action/emotion */
83
- --color-accent: /* vibrant, attention-grabbing */
84
- }
85
- ```
86
-
87
- ---
88
-
89
- ## 3. Color Psychology - Meaning & Selection
90
-
91
- ### How to Choose Based on Context
92
-
93
- | If Project Is... | Consider These Hues | Why |
94
- |------------------|---------------------|-----|
95
- | **Finance, Tech, Healthcare** | Blues, Teals | Trust, stability, calm |
96
- | **Eco, Wellness, Nature** | Greens, Earth tones | Growth, health, organic |
97
- | **Food, Energy, Youth** | Orange, Yellow, Warm | Appetite, excitement, warmth |
98
- | **Luxury, Beauty, Creative** | Deep Teal, Gold, Black | Sophistication, premium |
99
- | **Urgency, Sales, Alerts** | Red, Orange | Action, attention, passion |
100
-
101
- ### Emotional Associations (For Decision Making)
102
-
103
- | Hue Family | Positive Associations | Cautions |
104
- |------------|----------------------|----------|
105
- | **Blue** | Trust, calm, professional | Can feel cold, corporate |
106
- | **Green** | Growth, nature, success | Can feel boring if overused |
107
- | **Red** | Passion, urgency, energy | High arousal, use sparingly |
108
- | **Orange** | Warmth, friendly, creative | Can feel cheap if saturated |
109
- | **Purple** | ⚠️ **BANNED** - AI overuses this! | Use Deep Teal/Maroon/Emerald instead |
110
- | **Yellow** | Optimism, attention, happy | Hard to read, use as accent |
111
- | **Black** | Elegance, power, modern | Can feel heavy |
112
- | **White** | Clean, minimal, open | Can feel sterile |
113
-
114
- ### Selection Process:
115
- 1. **What industry?** → Narrow to 2-3 hue families
116
- 2. **What emotion?** → Pick primary hue
117
- 3. **What contrast?** → Decide light vs dark mode
118
- 4. **ASK USER** → Confirm before proceeding
119
-
120
- ---
121
-
122
- ## 4. Palette Generation Principles
123
-
124
- ### From a Single Color (HSL Method)
125
-
126
- Instead of memorizing hex codes, learn to **manipulate HSL**:
127
-
128
- ```
129
- HSL = Hue, Saturation, Lightness
130
-
131
- Hue (0-360): The color family
132
- 0/360 = Red
133
- 60 = Yellow
134
- 120 = Green
135
- 180 = Cyan
136
- 240 = Blue
137
- 300 = Purple
138
-
139
- Saturation (0-100%): Color intensity
140
- Low = Muted, sophisticated
141
- High = Vibrant, energetic
142
-
143
- Lightness (0-100%): Brightness
144
- 0% = Black
145
- 50% = Pure color
146
- 100% = White
147
- ```
148
-
149
- ### Generating a Full Palette
150
-
151
- Given ANY base color, create a scale:
152
-
153
- ```
154
- Lightness Scale:
155
- 50 (lightest) → L: 97%
156
- 100 → L: 94%
157
- 200 → L: 86%
158
- 300 → L: 74%
159
- 400 → L: 66%
160
- 500 (base) → L: 50-60%
161
- 600 → L: 48%
162
- 700 → L: 38%
163
- 800 → L: 30%
164
- 900 (darkest) → L: 20%
165
- ```
166
-
167
- ### Saturation Adjustments
168
-
169
- | Context | Saturation Level |
170
- |---------|-----------------|
171
- | **Professional/Corporate** | Lower (40-60%) |
172
- | **Playful/Youth** | Higher (70-90%) |
173
- | **Dark Mode** | Reduce by 10-20% |
174
- | **Accessibility** | Ensure contrast, may need adjustment |
175
-
176
- ---
177
-
178
- ## 5. Context-Based Selection Guide
179
-
180
- ### Instead of Copying Palettes, Follow This Process:
181
-
182
- **Step 1: Identify the Context**
183
- ```
184
- What type of project?
185
- ├── E-commerce → Need trust + urgency balance
186
- ├── SaaS/Dashboard → Need low-fatigue, data focus
187
- ├── Health/Wellness → Need calming, natural feel
188
- ├── Luxury/Premium → Need understated elegance
189
- ├── Creative/Portfolio → Need personality, memorable
190
- └── Other → ASK the user
191
- ```
192
-
193
- **Step 2: Select Primary Hue Family**
194
- ```
195
- Based on context, pick ONE:
196
- - Blue family (trust)
197
- - Green family (growth)
198
- - Warm family (energy)
199
- - Neutral family (elegant)
200
- - OR ask user preference
201
- ```
202
-
203
- **Step 3: Decide Light/Dark Mode**
204
- ```
205
- Consider:
206
- - User preference?
207
- - Industry standard?
208
- - Content type? (text-heavy = light preferred)
209
- - Time of use? (evening app = dark option)
210
- ```
211
-
212
- **Step 4: Generate Palette Using Principles**
213
- - Use HSL manipulation
214
- - Follow 60-30-10 rule
215
- - Check contrast (WCAG)
216
- - Test with actual content
217
-
218
- ---
219
-
220
- ## 6. Dark Mode Principles
221
-
222
- ### Key Rules (No Fixed Codes)
223
-
224
- 1. **Never pure black** → Use very dark gray with slight hue
225
- 2. **Never pure white text** → Use 87-92% lightness
226
- 3. **Reduce saturation** → Vibrant colors strain eyes in dark mode
227
- 4. **Elevation = brightness** → Higher elements slightly lighter
228
-
229
- ### Contrast in Dark Mode
230
-
231
- ```
232
- Background layers (darker → lighter as elevation increases):
233
- Layer 0 (base) → Darkest
234
- Layer 1 (cards) → Slightly lighter
235
- Layer 2 (modals) → Even lighter
236
- Layer 3 (popups) → Lightest dark
237
- ```
238
-
239
- ### Adapting Colors for Dark Mode
240
-
241
- | Light Mode | Dark Mode Adjustment |
242
- |------------|---------------------|
243
- | High saturation accent | Reduce saturation 10-20% |
244
- | Pure white background | Dark gray with brand hue tint |
245
- | Black text | Light gray (not pure white) |
246
- | Colorful backgrounds | Desaturated, darker versions |
247
-
248
- ---
249
-
250
- ## 7. Accessibility Guidelines
251
-
252
- ### Contrast Requirements (WCAG)
253
-
254
- | Level | Normal Text | Large Text |
255
- |-------|-------------|------------|
256
- | AA (minimum) | 4.5:1 | 3:1 |
257
- | AAA (enhanced) | 7:1 | 4.5:1 |
258
-
259
- ### How to Check Contrast
260
-
261
- 1. **Convert colors to luminance**
262
- 2. **Calculate ratio**: (lighter + 0.05) / (darker + 0.05)
263
- 3. **Adjust until ratio meets requirement**
264
-
265
- ### Safe Patterns
266
-
267
- | Use Case | Guideline |
268
- |----------|-----------|
269
- | **Text on light bg** | Use lightness 35% or less |
270
- | **Text on dark bg** | Use lightness 85% or more |
271
- | **Primary on white** | Ensure dark enough variant |
272
- | **Buttons** | High contrast between bg and text |
273
-
274
- ---
275
-
276
- ## 8. Color Selection Checklist
277
-
278
- Before finalizing any color choice, verify:
279
-
280
- - [ ] **Asked user preference?** (if not specified)
281
- - [ ] **Matches project context?** (industry, audience)
282
- - [ ] **Follows 60-30-10?** (proper distribution)
283
- - [ ] **WCAG compliant?** (contrast checked)
284
- - [ ] **Works in both modes?** (if dark mode needed)
285
- - [ ] **NOT your default/favorite?** (variety check)
286
- - [ ] **Different from last project?** (avoid repetition)
287
-
288
- ---
289
-
290
- ## 9. Anti-Patterns to Avoid
291
-
292
- ### ❌ DON'T:
293
- - Copy the same hex codes every project
294
- - Default to purple/violet (AI tendency)
295
- - Default to dark mode + neon (AI tendency)
296
- - Use pure black (#000000) backgrounds
297
- - Use pure white (#FFFFFF) text on dark
298
- - Ignore user's industry context
299
- - Skip asking user preference
300
-
301
- ### ✅ DO:
302
- - Generate fresh palette per project
303
- - Ask user about color preferences
304
- - Consider industry and audience
305
- - Use HSL for flexible manipulation
306
- - Test contrast and accessibility
307
- - Offer light AND dark options
308
-
309
- ---
310
-
311
- > **Remember**: Colors are decisions, not defaults. Every project deserves thoughtful selection based on its unique context.