@every-env/compound-plugin 0.1.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.
Files changed (226) hide show
  1. package/.claude-plugin/marketplace.json +37 -0
  2. package/.github/workflows/deploy-docs.yml +39 -0
  3. package/AGENTS.md +48 -0
  4. package/CLAUDE.md +380 -0
  5. package/LICENSE +21 -0
  6. package/README.md +65 -0
  7. package/bun.lock +30 -0
  8. package/docs/css/docs.css +675 -0
  9. package/docs/css/style.css +2886 -0
  10. package/docs/index.html +1046 -0
  11. package/docs/js/main.js +225 -0
  12. package/docs/pages/agents.html +649 -0
  13. package/docs/pages/changelog.html +495 -0
  14. package/docs/pages/commands.html +523 -0
  15. package/docs/pages/getting-started.html +582 -0
  16. package/docs/pages/mcp-servers.html +409 -0
  17. package/docs/pages/skills.html +611 -0
  18. package/docs/solutions/plugin-versioning-requirements.md +77 -0
  19. package/docs/specs/claude-code.md +67 -0
  20. package/docs/specs/codex.md +59 -0
  21. package/docs/specs/opencode.md +57 -0
  22. package/package.json +26 -0
  23. package/plans/grow-your-own-garden-plugin-architecture.md +102 -0
  24. package/plans/landing-page-launchkit-refresh.md +279 -0
  25. package/plugins/coding-tutor/.claude-plugin/plugin.json +9 -0
  26. package/plugins/coding-tutor/README.md +37 -0
  27. package/plugins/coding-tutor/commands/quiz-me.md +1 -0
  28. package/plugins/coding-tutor/commands/sync-tutorials.md +25 -0
  29. package/plugins/coding-tutor/commands/teach-me.md +1 -0
  30. package/plugins/coding-tutor/skills/coding-tutor/SKILL.md +214 -0
  31. package/plugins/coding-tutor/skills/coding-tutor/scripts/create_tutorial.py +207 -0
  32. package/plugins/coding-tutor/skills/coding-tutor/scripts/index_tutorials.py +193 -0
  33. package/plugins/coding-tutor/skills/coding-tutor/scripts/quiz_priority.py +190 -0
  34. package/plugins/coding-tutor/skills/coding-tutor/scripts/setup_tutorials.py +118 -0
  35. package/plugins/compound-engineering/.claude-plugin/plugin.json +33 -0
  36. package/plugins/compound-engineering/CHANGELOG.md +393 -0
  37. package/plugins/compound-engineering/CLAUDE.md +90 -0
  38. package/plugins/compound-engineering/LICENSE +21 -0
  39. package/plugins/compound-engineering/README.md +219 -0
  40. package/plugins/compound-engineering/agents/design/design-implementation-reviewer.md +94 -0
  41. package/plugins/compound-engineering/agents/design/design-iterator.md +197 -0
  42. package/plugins/compound-engineering/agents/design/figma-design-sync.md +172 -0
  43. package/plugins/compound-engineering/agents/docs/ankane-readme-writer.md +50 -0
  44. package/plugins/compound-engineering/agents/research/best-practices-researcher.md +100 -0
  45. package/plugins/compound-engineering/agents/research/framework-docs-researcher.md +83 -0
  46. package/plugins/compound-engineering/agents/research/git-history-analyzer.md +42 -0
  47. package/plugins/compound-engineering/agents/research/repo-research-analyst.md +113 -0
  48. package/plugins/compound-engineering/agents/review/agent-native-reviewer.md +246 -0
  49. package/plugins/compound-engineering/agents/review/architecture-strategist.md +52 -0
  50. package/plugins/compound-engineering/agents/review/code-simplicity-reviewer.md +85 -0
  51. package/plugins/compound-engineering/agents/review/data-integrity-guardian.md +70 -0
  52. package/plugins/compound-engineering/agents/review/data-migration-expert.md +97 -0
  53. package/plugins/compound-engineering/agents/review/deployment-verification-agent.md +159 -0
  54. package/plugins/compound-engineering/agents/review/dhh-rails-reviewer.md +45 -0
  55. package/plugins/compound-engineering/agents/review/julik-frontend-races-reviewer.md +222 -0
  56. package/plugins/compound-engineering/agents/review/kieran-python-reviewer.md +104 -0
  57. package/plugins/compound-engineering/agents/review/kieran-rails-reviewer.md +86 -0
  58. package/plugins/compound-engineering/agents/review/kieran-typescript-reviewer.md +95 -0
  59. package/plugins/compound-engineering/agents/review/pattern-recognition-specialist.md +57 -0
  60. package/plugins/compound-engineering/agents/review/performance-oracle.md +110 -0
  61. package/plugins/compound-engineering/agents/review/security-sentinel.md +93 -0
  62. package/plugins/compound-engineering/agents/workflow/bug-reproduction-validator.md +67 -0
  63. package/plugins/compound-engineering/agents/workflow/every-style-editor.md +64 -0
  64. package/plugins/compound-engineering/agents/workflow/lint.md +16 -0
  65. package/plugins/compound-engineering/agents/workflow/pr-comment-resolver.md +69 -0
  66. package/plugins/compound-engineering/agents/workflow/spec-flow-analyzer.md +113 -0
  67. package/plugins/compound-engineering/commands/agent-native-audit.md +277 -0
  68. package/plugins/compound-engineering/commands/changelog.md +137 -0
  69. package/plugins/compound-engineering/commands/create-agent-skill.md +8 -0
  70. package/plugins/compound-engineering/commands/deepen-plan.md +546 -0
  71. package/plugins/compound-engineering/commands/deploy-docs.md +112 -0
  72. package/plugins/compound-engineering/commands/feature-video.md +342 -0
  73. package/plugins/compound-engineering/commands/generate_command.md +162 -0
  74. package/plugins/compound-engineering/commands/heal-skill.md +142 -0
  75. package/plugins/compound-engineering/commands/lfg.md +19 -0
  76. package/plugins/compound-engineering/commands/plan_review.md +7 -0
  77. package/plugins/compound-engineering/commands/release-docs.md +211 -0
  78. package/plugins/compound-engineering/commands/report-bug.md +150 -0
  79. package/plugins/compound-engineering/commands/reproduce-bug.md +99 -0
  80. package/plugins/compound-engineering/commands/resolve_parallel.md +34 -0
  81. package/plugins/compound-engineering/commands/resolve_pr_parallel.md +49 -0
  82. package/plugins/compound-engineering/commands/resolve_todo_parallel.md +35 -0
  83. package/plugins/compound-engineering/commands/test-browser.md +339 -0
  84. package/plugins/compound-engineering/commands/triage.md +310 -0
  85. package/plugins/compound-engineering/commands/workflows/compound.md +202 -0
  86. package/plugins/compound-engineering/commands/workflows/plan.md +466 -0
  87. package/plugins/compound-engineering/commands/workflows/review.md +514 -0
  88. package/plugins/compound-engineering/commands/workflows/work.md +363 -0
  89. package/plugins/compound-engineering/commands/xcode-test.md +331 -0
  90. package/plugins/compound-engineering/skills/agent-browser/SKILL.md +223 -0
  91. package/plugins/compound-engineering/skills/agent-native-architecture/SKILL.md +435 -0
  92. package/plugins/compound-engineering/skills/agent-native-architecture/references/action-parity-discipline.md +409 -0
  93. package/plugins/compound-engineering/skills/agent-native-architecture/references/agent-execution-patterns.md +467 -0
  94. package/plugins/compound-engineering/skills/agent-native-architecture/references/agent-native-testing.md +582 -0
  95. package/plugins/compound-engineering/skills/agent-native-architecture/references/architecture-patterns.md +478 -0
  96. package/plugins/compound-engineering/skills/agent-native-architecture/references/dynamic-context-injection.md +338 -0
  97. package/plugins/compound-engineering/skills/agent-native-architecture/references/files-universal-interface.md +301 -0
  98. package/plugins/compound-engineering/skills/agent-native-architecture/references/from-primitives-to-domain-tools.md +359 -0
  99. package/plugins/compound-engineering/skills/agent-native-architecture/references/mcp-tool-design.md +506 -0
  100. package/plugins/compound-engineering/skills/agent-native-architecture/references/mobile-patterns.md +871 -0
  101. package/plugins/compound-engineering/skills/agent-native-architecture/references/product-implications.md +443 -0
  102. package/plugins/compound-engineering/skills/agent-native-architecture/references/refactoring-to-prompt-native.md +317 -0
  103. package/plugins/compound-engineering/skills/agent-native-architecture/references/self-modification.md +269 -0
  104. package/plugins/compound-engineering/skills/agent-native-architecture/references/shared-workspace-architecture.md +680 -0
  105. package/plugins/compound-engineering/skills/agent-native-architecture/references/system-prompt-design.md +250 -0
  106. package/plugins/compound-engineering/skills/andrew-kane-gem-writer/SKILL.md +184 -0
  107. package/plugins/compound-engineering/skills/andrew-kane-gem-writer/references/database-adapters.md +231 -0
  108. package/plugins/compound-engineering/skills/andrew-kane-gem-writer/references/module-organization.md +121 -0
  109. package/plugins/compound-engineering/skills/andrew-kane-gem-writer/references/rails-integration.md +183 -0
  110. package/plugins/compound-engineering/skills/andrew-kane-gem-writer/references/resources.md +119 -0
  111. package/plugins/compound-engineering/skills/andrew-kane-gem-writer/references/testing-patterns.md +261 -0
  112. package/plugins/compound-engineering/skills/compound-docs/SKILL.md +510 -0
  113. package/plugins/compound-engineering/skills/compound-docs/assets/critical-pattern-template.md +34 -0
  114. package/plugins/compound-engineering/skills/compound-docs/assets/resolution-template.md +93 -0
  115. package/plugins/compound-engineering/skills/compound-docs/references/yaml-schema.md +65 -0
  116. package/plugins/compound-engineering/skills/compound-docs/schema.yaml +176 -0
  117. package/plugins/compound-engineering/skills/create-agent-skills/SKILL.md +299 -0
  118. package/plugins/compound-engineering/skills/create-agent-skills/references/api-security.md +226 -0
  119. package/plugins/compound-engineering/skills/create-agent-skills/references/be-clear-and-direct.md +531 -0
  120. package/plugins/compound-engineering/skills/create-agent-skills/references/best-practices.md +404 -0
  121. package/plugins/compound-engineering/skills/create-agent-skills/references/common-patterns.md +595 -0
  122. package/plugins/compound-engineering/skills/create-agent-skills/references/core-principles.md +437 -0
  123. package/plugins/compound-engineering/skills/create-agent-skills/references/executable-code.md +175 -0
  124. package/plugins/compound-engineering/skills/create-agent-skills/references/iteration-and-testing.md +474 -0
  125. package/plugins/compound-engineering/skills/create-agent-skills/references/official-spec.md +185 -0
  126. package/plugins/compound-engineering/skills/create-agent-skills/references/recommended-structure.md +168 -0
  127. package/plugins/compound-engineering/skills/create-agent-skills/references/skill-structure.md +372 -0
  128. package/plugins/compound-engineering/skills/create-agent-skills/references/using-scripts.md +113 -0
  129. package/plugins/compound-engineering/skills/create-agent-skills/references/using-templates.md +112 -0
  130. package/plugins/compound-engineering/skills/create-agent-skills/references/workflows-and-validation.md +510 -0
  131. package/plugins/compound-engineering/skills/create-agent-skills/templates/router-skill.md +73 -0
  132. package/plugins/compound-engineering/skills/create-agent-skills/templates/simple-skill.md +33 -0
  133. package/plugins/compound-engineering/skills/create-agent-skills/workflows/add-reference.md +96 -0
  134. package/plugins/compound-engineering/skills/create-agent-skills/workflows/add-script.md +93 -0
  135. package/plugins/compound-engineering/skills/create-agent-skills/workflows/add-template.md +74 -0
  136. package/plugins/compound-engineering/skills/create-agent-skills/workflows/add-workflow.md +120 -0
  137. package/plugins/compound-engineering/skills/create-agent-skills/workflows/audit-skill.md +138 -0
  138. package/plugins/compound-engineering/skills/create-agent-skills/workflows/create-domain-expertise-skill.md +605 -0
  139. package/plugins/compound-engineering/skills/create-agent-skills/workflows/create-new-skill.md +191 -0
  140. package/plugins/compound-engineering/skills/create-agent-skills/workflows/get-guidance.md +121 -0
  141. package/plugins/compound-engineering/skills/create-agent-skills/workflows/upgrade-to-router.md +161 -0
  142. package/plugins/compound-engineering/skills/create-agent-skills/workflows/verify-skill.md +204 -0
  143. package/plugins/compound-engineering/skills/dhh-rails-style/SKILL.md +185 -0
  144. package/plugins/compound-engineering/skills/dhh-rails-style/references/architecture.md +653 -0
  145. package/plugins/compound-engineering/skills/dhh-rails-style/references/controllers.md +303 -0
  146. package/plugins/compound-engineering/skills/dhh-rails-style/references/frontend.md +510 -0
  147. package/plugins/compound-engineering/skills/dhh-rails-style/references/gems.md +266 -0
  148. package/plugins/compound-engineering/skills/dhh-rails-style/references/models.md +359 -0
  149. package/plugins/compound-engineering/skills/dhh-rails-style/references/testing.md +338 -0
  150. package/plugins/compound-engineering/skills/dspy-ruby/SKILL.md +594 -0
  151. package/plugins/compound-engineering/skills/dspy-ruby/assets/config-template.rb +359 -0
  152. package/plugins/compound-engineering/skills/dspy-ruby/assets/module-template.rb +326 -0
  153. package/plugins/compound-engineering/skills/dspy-ruby/assets/signature-template.rb +143 -0
  154. package/plugins/compound-engineering/skills/dspy-ruby/references/core-concepts.md +265 -0
  155. package/plugins/compound-engineering/skills/dspy-ruby/references/optimization.md +623 -0
  156. package/plugins/compound-engineering/skills/dspy-ruby/references/providers.md +338 -0
  157. package/plugins/compound-engineering/skills/every-style-editor/SKILL.md +134 -0
  158. package/plugins/compound-engineering/skills/every-style-editor/references/EVERY_WRITE_STYLE.md +529 -0
  159. package/plugins/compound-engineering/skills/file-todos/SKILL.md +251 -0
  160. package/plugins/compound-engineering/skills/file-todos/assets/todo-template.md +155 -0
  161. package/plugins/compound-engineering/skills/frontend-design/SKILL.md +42 -0
  162. package/plugins/compound-engineering/skills/gemini-imagegen/SKILL.md +237 -0
  163. package/plugins/compound-engineering/skills/gemini-imagegen/requirements.txt +2 -0
  164. package/plugins/compound-engineering/skills/gemini-imagegen/scripts/compose_images.py +157 -0
  165. package/plugins/compound-engineering/skills/gemini-imagegen/scripts/edit_image.py +144 -0
  166. package/plugins/compound-engineering/skills/gemini-imagegen/scripts/gemini_images.py +263 -0
  167. package/plugins/compound-engineering/skills/gemini-imagegen/scripts/generate_image.py +133 -0
  168. package/plugins/compound-engineering/skills/gemini-imagegen/scripts/multi_turn_chat.py +216 -0
  169. package/plugins/compound-engineering/skills/git-worktree/SKILL.md +302 -0
  170. package/plugins/compound-engineering/skills/git-worktree/scripts/worktree-manager.sh +345 -0
  171. package/plugins/compound-engineering/skills/rclone/SKILL.md +150 -0
  172. package/plugins/compound-engineering/skills/rclone/scripts/check_setup.sh +60 -0
  173. package/plugins/compound-engineering/skills/skill-creator/SKILL.md +209 -0
  174. package/plugins/compound-engineering/skills/skill-creator/scripts/init_skill.py +303 -0
  175. package/plugins/compound-engineering/skills/skill-creator/scripts/package_skill.py +110 -0
  176. package/plugins/compound-engineering/skills/skill-creator/scripts/quick_validate.py +65 -0
  177. package/src/commands/convert.ts +156 -0
  178. package/src/commands/install.ts +221 -0
  179. package/src/commands/list.ts +37 -0
  180. package/src/converters/claude-to-codex.ts +124 -0
  181. package/src/converters/claude-to-opencode.ts +392 -0
  182. package/src/index.ts +20 -0
  183. package/src/parsers/claude.ts +248 -0
  184. package/src/targets/codex.ts +91 -0
  185. package/src/targets/index.ts +29 -0
  186. package/src/targets/opencode.ts +48 -0
  187. package/src/types/claude.ts +88 -0
  188. package/src/types/codex.ts +23 -0
  189. package/src/types/opencode.ts +54 -0
  190. package/src/utils/codex-agents.ts +64 -0
  191. package/src/utils/files.ts +64 -0
  192. package/src/utils/frontmatter.ts +65 -0
  193. package/tests/claude-parser.test.ts +89 -0
  194. package/tests/cli.test.ts +289 -0
  195. package/tests/codex-agents.test.ts +62 -0
  196. package/tests/codex-converter.test.ts +121 -0
  197. package/tests/codex-writer.test.ts +76 -0
  198. package/tests/converter.test.ts +171 -0
  199. package/tests/fixtures/custom-paths/.claude-plugin/plugin.json +8 -0
  200. package/tests/fixtures/custom-paths/agents/default-agent.md +5 -0
  201. package/tests/fixtures/custom-paths/commands/default-command.md +5 -0
  202. package/tests/fixtures/custom-paths/custom-agents/custom-agent.md +5 -0
  203. package/tests/fixtures/custom-paths/custom-commands/custom-command.md +5 -0
  204. package/tests/fixtures/custom-paths/custom-hooks/hooks.json +7 -0
  205. package/tests/fixtures/custom-paths/custom-skills/custom-skill/SKILL.md +5 -0
  206. package/tests/fixtures/custom-paths/hooks/hooks.json +7 -0
  207. package/tests/fixtures/custom-paths/skills/default-skill/SKILL.md +5 -0
  208. package/tests/fixtures/invalid-command-path/.claude-plugin/plugin.json +5 -0
  209. package/tests/fixtures/invalid-hooks-path/.claude-plugin/plugin.json +5 -0
  210. package/tests/fixtures/invalid-mcp-path/.claude-plugin/plugin.json +5 -0
  211. package/tests/fixtures/mcp-file/.claude-plugin/plugin.json +5 -0
  212. package/tests/fixtures/mcp-file/.mcp.json +6 -0
  213. package/tests/fixtures/sample-plugin/.claude-plugin/plugin.json +30 -0
  214. package/tests/fixtures/sample-plugin/agents/agent-one.md +10 -0
  215. package/tests/fixtures/sample-plugin/agents/security-reviewer.md +7 -0
  216. package/tests/fixtures/sample-plugin/commands/command-one.md +7 -0
  217. package/tests/fixtures/sample-plugin/commands/model-command.md +8 -0
  218. package/tests/fixtures/sample-plugin/commands/nested/command-two.md +9 -0
  219. package/tests/fixtures/sample-plugin/commands/pattern-command.md +7 -0
  220. package/tests/fixtures/sample-plugin/commands/skill-command.md +7 -0
  221. package/tests/fixtures/sample-plugin/commands/todo-command.md +7 -0
  222. package/tests/fixtures/sample-plugin/hooks/hooks.json +156 -0
  223. package/tests/fixtures/sample-plugin/skills/skill-one/SKILL.md +6 -0
  224. package/tests/frontmatter.test.ts +20 -0
  225. package/tests/opencode-writer.test.ts +62 -0
  226. package/tsconfig.json +14 -0
@@ -0,0 +1,675 @@
1
+ /* Documentation-specific styles */
2
+
3
+ /* ============================================
4
+ Documentation Layout
5
+ ============================================ */
6
+
7
+ .docs-layout {
8
+ display: grid;
9
+ grid-template-columns: 1fr;
10
+ min-height: 100vh;
11
+ }
12
+
13
+ @media (min-width: 1024px) {
14
+ .docs-layout {
15
+ grid-template-columns: 280px 1fr;
16
+ }
17
+ }
18
+
19
+ /* ============================================
20
+ Sidebar
21
+ ============================================ */
22
+
23
+ .docs-sidebar {
24
+ position: fixed;
25
+ top: 0;
26
+ left: -300px;
27
+ width: 280px;
28
+ height: 100vh;
29
+ background-color: var(--color-background);
30
+ border-right: 1px solid var(--color-border);
31
+ overflow-y: auto;
32
+ transition: left 0.3s ease;
33
+ z-index: 100;
34
+ }
35
+
36
+ .docs-sidebar.open {
37
+ left: 0;
38
+ }
39
+
40
+ @media (min-width: 1024px) {
41
+ .docs-sidebar {
42
+ position: sticky;
43
+ left: 0;
44
+ }
45
+ }
46
+
47
+ .sidebar-header {
48
+ padding: var(--space-l);
49
+ border-bottom: 1px solid var(--color-border);
50
+ }
51
+
52
+ .sidebar-header .nav-brand {
53
+ display: flex;
54
+ align-items: center;
55
+ gap: var(--space-s);
56
+ text-decoration: none;
57
+ color: var(--color-text-primary);
58
+ font-weight: 600;
59
+ }
60
+
61
+ .sidebar-header .logo-icon {
62
+ color: var(--color-accent);
63
+ font-size: var(--font-size-l);
64
+ }
65
+
66
+ .sidebar-header .logo-text {
67
+ display: inline;
68
+ }
69
+
70
+ .sidebar-nav {
71
+ padding: var(--space-l);
72
+ }
73
+
74
+ .nav-section {
75
+ margin-bottom: var(--space-xl);
76
+ }
77
+
78
+ .nav-section h3 {
79
+ font-size: var(--font-size-xs);
80
+ font-weight: 600;
81
+ text-transform: uppercase;
82
+ letter-spacing: 0.05em;
83
+ color: var(--color-text-tertiary);
84
+ margin: 0 0 var(--space-m) 0;
85
+ }
86
+
87
+ .nav-section ul {
88
+ list-style: none;
89
+ margin: 0;
90
+ padding: 0;
91
+ }
92
+
93
+ .nav-section li {
94
+ margin: 0;
95
+ }
96
+
97
+ .nav-section a {
98
+ display: block;
99
+ padding: var(--space-s) var(--space-m);
100
+ color: var(--color-text-secondary);
101
+ text-decoration: none;
102
+ font-size: var(--font-size-s);
103
+ border-radius: var(--radius-s);
104
+ transition: all 0.2s ease;
105
+ }
106
+
107
+ .nav-section a:hover {
108
+ color: var(--color-text-primary);
109
+ background-color: var(--color-surface);
110
+ }
111
+
112
+ .nav-section a.active {
113
+ color: var(--color-accent);
114
+ background-color: var(--color-accent-light);
115
+ }
116
+
117
+ /* ============================================
118
+ Main Content
119
+ ============================================ */
120
+
121
+ .docs-content {
122
+ padding: var(--space-xl);
123
+ max-width: 900px;
124
+ }
125
+
126
+ @media (min-width: 1024px) {
127
+ .docs-content {
128
+ padding: var(--space-xxl);
129
+ }
130
+ }
131
+
132
+ .docs-header {
133
+ display: flex;
134
+ align-items: center;
135
+ justify-content: space-between;
136
+ margin-bottom: var(--space-xl);
137
+ }
138
+
139
+ .breadcrumb {
140
+ display: flex;
141
+ align-items: center;
142
+ gap: var(--space-s);
143
+ font-size: var(--font-size-s);
144
+ color: var(--color-text-tertiary);
145
+ }
146
+
147
+ .breadcrumb a {
148
+ color: var(--color-text-secondary);
149
+ text-decoration: none;
150
+ }
151
+
152
+ .breadcrumb a:hover {
153
+ color: var(--color-accent);
154
+ }
155
+
156
+ .mobile-menu-toggle {
157
+ display: flex;
158
+ align-items: center;
159
+ justify-content: center;
160
+ width: 40px;
161
+ height: 40px;
162
+ background: none;
163
+ border: 1px solid var(--color-border);
164
+ border-radius: var(--radius-s);
165
+ color: var(--color-text-secondary);
166
+ cursor: pointer;
167
+ }
168
+
169
+ @media (min-width: 1024px) {
170
+ .mobile-menu-toggle {
171
+ display: none;
172
+ }
173
+ }
174
+
175
+ /* ============================================
176
+ Article Styles
177
+ ============================================ */
178
+
179
+ .docs-article {
180
+ line-height: 1.7;
181
+ }
182
+
183
+ .docs-article h1 {
184
+ font-size: var(--font-size-xl);
185
+ margin-bottom: var(--space-l);
186
+ }
187
+
188
+ .docs-article h2 {
189
+ font-size: var(--font-size-l);
190
+ margin-top: var(--space-xxl);
191
+ margin-bottom: var(--space-l);
192
+ padding-bottom: var(--space-s);
193
+ border-bottom: 1px solid var(--color-border);
194
+ display: flex;
195
+ align-items: center;
196
+ gap: var(--space-s);
197
+ }
198
+
199
+ .docs-article h2 i {
200
+ color: var(--color-accent);
201
+ }
202
+
203
+ .docs-article h3 {
204
+ font-size: var(--font-size-m);
205
+ margin-top: var(--space-xl);
206
+ margin-bottom: var(--space-m);
207
+ }
208
+
209
+ .docs-article h4 {
210
+ font-size: var(--font-size-s);
211
+ margin-top: var(--space-l);
212
+ margin-bottom: var(--space-s);
213
+ }
214
+
215
+ .docs-article p {
216
+ margin-bottom: var(--space-l);
217
+ }
218
+
219
+ .docs-article .lead {
220
+ font-size: var(--font-size-l);
221
+ color: var(--color-text-secondary);
222
+ margin-bottom: var(--space-xl);
223
+ }
224
+
225
+ .docs-article ul,
226
+ .docs-article ol {
227
+ margin-bottom: var(--space-l);
228
+ padding-left: var(--space-xl);
229
+ }
230
+
231
+ .docs-article li {
232
+ margin-bottom: var(--space-s);
233
+ }
234
+
235
+ /* ============================================
236
+ Code Blocks in Docs
237
+ ============================================ */
238
+
239
+ .docs-article .card-code-block {
240
+ margin: var(--space-l) 0;
241
+ }
242
+
243
+ .docs-article code {
244
+ font-family: var(--font-mono);
245
+ font-size: 0.9em;
246
+ background-color: var(--color-surface);
247
+ padding: 2px 6px;
248
+ border-radius: var(--radius-xs);
249
+ color: var(--color-accent);
250
+ }
251
+
252
+ .docs-article pre code {
253
+ background: none;
254
+ padding: 0;
255
+ color: var(--color-code-text);
256
+ }
257
+
258
+ /* ============================================
259
+ Tables
260
+ ============================================ */
261
+
262
+ .docs-table {
263
+ width: 100%;
264
+ border-collapse: collapse;
265
+ margin: var(--space-l) 0;
266
+ font-size: var(--font-size-s);
267
+ }
268
+
269
+ .docs-table th,
270
+ .docs-table td {
271
+ padding: var(--space-m);
272
+ text-align: left;
273
+ border-bottom: 1px solid var(--color-border);
274
+ }
275
+
276
+ .docs-table th {
277
+ font-weight: 600;
278
+ color: var(--color-text-primary);
279
+ background-color: var(--color-surface);
280
+ }
281
+
282
+ .docs-table td {
283
+ color: var(--color-text-secondary);
284
+ }
285
+
286
+ .docs-table code {
287
+ font-size: 0.85em;
288
+ }
289
+
290
+ /* ============================================
291
+ Callouts
292
+ ============================================ */
293
+
294
+ .callout {
295
+ display: flex;
296
+ gap: var(--space-m);
297
+ padding: var(--space-l);
298
+ border-radius: var(--radius-m);
299
+ margin: var(--space-l) 0;
300
+ }
301
+
302
+ .callout-icon {
303
+ font-size: var(--font-size-l);
304
+ flex-shrink: 0;
305
+ }
306
+
307
+ .callout-content h4 {
308
+ margin: 0 0 var(--space-s) 0;
309
+ font-size: var(--font-size-s);
310
+ }
311
+
312
+ .callout-content p {
313
+ margin: 0;
314
+ font-size: var(--font-size-s);
315
+ }
316
+
317
+ .callout-info {
318
+ background-color: rgba(99, 102, 241, 0.1);
319
+ border: 1px solid rgba(99, 102, 241, 0.2);
320
+ }
321
+
322
+ .callout-info .callout-icon {
323
+ color: var(--color-accent);
324
+ }
325
+
326
+ .callout-info .callout-content h4 {
327
+ color: var(--color-accent);
328
+ }
329
+
330
+ .callout-tip {
331
+ background-color: rgba(16, 185, 129, 0.1);
332
+ border: 1px solid rgba(16, 185, 129, 0.2);
333
+ }
334
+
335
+ .callout-tip .callout-icon {
336
+ color: var(--color-success);
337
+ }
338
+
339
+ .callout-tip .callout-content h4 {
340
+ color: var(--color-success);
341
+ }
342
+
343
+ .callout-warning {
344
+ background-color: rgba(245, 158, 11, 0.1);
345
+ border: 1px solid rgba(245, 158, 11, 0.2);
346
+ }
347
+
348
+ .callout-warning .callout-icon {
349
+ color: var(--color-warning);
350
+ }
351
+
352
+ .callout-warning .callout-content h4 {
353
+ color: var(--color-warning);
354
+ }
355
+
356
+ /* ============================================
357
+ Badges
358
+ ============================================ */
359
+
360
+ .badge {
361
+ display: inline-block;
362
+ padding: 2px 8px;
363
+ font-size: var(--font-size-xs);
364
+ font-weight: 600;
365
+ border-radius: var(--radius-s);
366
+ text-transform: uppercase;
367
+ letter-spacing: 0.03em;
368
+ }
369
+
370
+ .badge-critical {
371
+ background-color: rgba(239, 68, 68, 0.15);
372
+ color: var(--color-error);
373
+ }
374
+
375
+ .badge-important {
376
+ background-color: rgba(245, 158, 11, 0.15);
377
+ color: var(--color-warning);
378
+ }
379
+
380
+ .badge-nice {
381
+ background-color: rgba(99, 102, 241, 0.15);
382
+ color: var(--color-accent);
383
+ }
384
+
385
+ /* ============================================
386
+ Philosophy Grid
387
+ ============================================ */
388
+
389
+ .philosophy-grid {
390
+ display: grid;
391
+ grid-template-columns: repeat(1, 1fr);
392
+ gap: var(--space-l);
393
+ margin: var(--space-xl) 0;
394
+ }
395
+
396
+ @media (min-width: 640px) {
397
+ .philosophy-grid {
398
+ grid-template-columns: repeat(2, 1fr);
399
+ }
400
+ }
401
+
402
+ .philosophy-card {
403
+ padding: var(--space-xl);
404
+ background-color: var(--color-surface);
405
+ border-radius: var(--radius-m);
406
+ border: 1px solid var(--color-border);
407
+ }
408
+
409
+ .philosophy-icon {
410
+ font-size: var(--font-size-xl);
411
+ color: var(--color-accent);
412
+ margin-bottom: var(--space-m);
413
+ }
414
+
415
+ .philosophy-card h4 {
416
+ margin: 0 0 var(--space-s) 0;
417
+ color: var(--color-text-primary);
418
+ }
419
+
420
+ .philosophy-card p {
421
+ margin: 0;
422
+ font-size: var(--font-size-s);
423
+ color: var(--color-text-secondary);
424
+ }
425
+
426
+ /* ============================================
427
+ Blockquotes
428
+ ============================================ */
429
+
430
+ .highlight-quote {
431
+ font-size: var(--font-size-l);
432
+ font-style: italic;
433
+ color: var(--color-accent);
434
+ padding: var(--space-xl);
435
+ margin: var(--space-xl) 0;
436
+ background: linear-gradient(135deg, var(--color-accent-lighter), transparent);
437
+ border-left: 4px solid var(--color-accent);
438
+ border-radius: var(--radius-m);
439
+ }
440
+
441
+ /* ============================================
442
+ Navigation Footer
443
+ ============================================ */
444
+
445
+ .docs-nav-footer {
446
+ display: flex;
447
+ justify-content: space-between;
448
+ gap: var(--space-l);
449
+ margin-top: var(--space-xxl);
450
+ padding-top: var(--space-xl);
451
+ border-top: 1px solid var(--color-border);
452
+ }
453
+
454
+ .nav-prev,
455
+ .nav-next {
456
+ display: flex;
457
+ flex-direction: column;
458
+ gap: var(--space-xs);
459
+ padding: var(--space-l);
460
+ background-color: var(--color-surface);
461
+ border-radius: var(--radius-m);
462
+ text-decoration: none;
463
+ transition: all 0.2s ease;
464
+ flex: 1;
465
+ max-width: 300px;
466
+ }
467
+
468
+ .nav-prev:hover,
469
+ .nav-next:hover {
470
+ background-color: var(--color-surface-hover);
471
+ border-color: var(--color-accent);
472
+ }
473
+
474
+ .nav-next {
475
+ text-align: right;
476
+ margin-left: auto;
477
+ }
478
+
479
+ .nav-label {
480
+ font-size: var(--font-size-xs);
481
+ color: var(--color-text-tertiary);
482
+ text-transform: uppercase;
483
+ letter-spacing: 0.05em;
484
+ }
485
+
486
+ .nav-title {
487
+ font-weight: 600;
488
+ color: var(--color-accent);
489
+ display: flex;
490
+ align-items: center;
491
+ gap: var(--space-s);
492
+ }
493
+
494
+ .nav-next .nav-title {
495
+ justify-content: flex-end;
496
+ }
497
+
498
+ /* ============================================
499
+ Mobile Sidebar Overlay
500
+ ============================================ */
501
+
502
+ @media (max-width: 1023px) {
503
+ .docs-sidebar.open::before {
504
+ content: '';
505
+ position: fixed;
506
+ top: 0;
507
+ left: 0;
508
+ right: 0;
509
+ bottom: 0;
510
+ background-color: rgba(0, 0, 0, 0.5);
511
+ z-index: -1;
512
+ }
513
+ }
514
+
515
+ /* ============================================
516
+ Changelog Styles
517
+ ============================================ */
518
+
519
+ .version-section {
520
+ margin-bottom: var(--space-xxl);
521
+ padding-bottom: var(--space-xl);
522
+ border-bottom: 1px solid var(--color-border);
523
+ }
524
+
525
+ .version-section:last-child {
526
+ border-bottom: none;
527
+ }
528
+
529
+ .version-header {
530
+ display: flex;
531
+ align-items: center;
532
+ gap: var(--space-m);
533
+ margin-bottom: var(--space-l);
534
+ flex-wrap: wrap;
535
+ }
536
+
537
+ .version-header h2 {
538
+ margin: 0;
539
+ padding: 0;
540
+ border: none;
541
+ font-size: var(--font-size-xl);
542
+ color: var(--color-text-primary);
543
+ }
544
+
545
+ .version-date {
546
+ font-size: var(--font-size-s);
547
+ color: var(--color-text-tertiary);
548
+ background-color: var(--color-surface);
549
+ padding: var(--space-xs) var(--space-m);
550
+ border-radius: var(--radius-s);
551
+ }
552
+
553
+ .version-badge {
554
+ font-size: var(--font-size-xs);
555
+ font-weight: 600;
556
+ padding: var(--space-xs) var(--space-m);
557
+ border-radius: var(--radius-s);
558
+ background-color: var(--color-accent);
559
+ color: white;
560
+ }
561
+
562
+ .version-badge.major {
563
+ background-color: var(--color-warning);
564
+ }
565
+
566
+ .version-description {
567
+ font-size: var(--font-size-m);
568
+ color: var(--color-text-secondary);
569
+ margin-bottom: var(--space-l);
570
+ font-style: italic;
571
+ }
572
+
573
+ .changelog-category {
574
+ margin-bottom: var(--space-l);
575
+ padding: var(--space-l);
576
+ background-color: var(--color-surface);
577
+ border-radius: var(--radius-m);
578
+ border-left: 4px solid var(--color-border);
579
+ }
580
+
581
+ .changelog-category h3 {
582
+ margin: 0 0 var(--space-m) 0;
583
+ font-size: var(--font-size-m);
584
+ display: flex;
585
+ align-items: center;
586
+ gap: var(--space-s);
587
+ }
588
+
589
+ .changelog-category h3 i {
590
+ font-size: var(--font-size-s);
591
+ }
592
+
593
+ .changelog-category h4 {
594
+ margin: var(--space-l) 0 var(--space-s) 0;
595
+ font-size: var(--font-size-s);
596
+ color: var(--color-text-secondary);
597
+ }
598
+
599
+ .changelog-category ul {
600
+ margin: 0;
601
+ padding-left: var(--space-xl);
602
+ }
603
+
604
+ .changelog-category li {
605
+ margin-bottom: var(--space-s);
606
+ }
607
+
608
+ .changelog-category.added {
609
+ border-left-color: var(--color-success);
610
+ }
611
+
612
+ .changelog-category.added h3 {
613
+ color: var(--color-success);
614
+ }
615
+
616
+ .changelog-category.improved {
617
+ border-left-color: var(--color-accent);
618
+ }
619
+
620
+ .changelog-category.improved h3 {
621
+ color: var(--color-accent);
622
+ }
623
+
624
+ .changelog-category.changed {
625
+ border-left-color: var(--color-warning);
626
+ }
627
+
628
+ .changelog-category.changed h3 {
629
+ color: var(--color-warning);
630
+ }
631
+
632
+ .changelog-category.fixed {
633
+ border-left-color: var(--color-error);
634
+ }
635
+
636
+ .changelog-category.fixed h3 {
637
+ color: var(--color-error);
638
+ }
639
+
640
+ .version-summary {
641
+ margin-top: var(--space-l);
642
+ }
643
+
644
+ .version-summary h4 {
645
+ margin-bottom: var(--space-m);
646
+ }
647
+
648
+ .version-summary table {
649
+ width: 100%;
650
+ max-width: 400px;
651
+ border-collapse: collapse;
652
+ font-size: var(--font-size-s);
653
+ }
654
+
655
+ .version-summary th,
656
+ .version-summary td {
657
+ padding: var(--space-s) var(--space-m);
658
+ text-align: left;
659
+ border-bottom: 1px solid var(--color-border);
660
+ }
661
+
662
+ .version-summary th {
663
+ font-weight: 600;
664
+ background-color: var(--color-surface);
665
+ }
666
+
667
+ .version-summary .positive {
668
+ color: var(--color-success);
669
+ font-weight: 600;
670
+ }
671
+
672
+ .version-summary .negative {
673
+ color: var(--color-error);
674
+ font-weight: 600;
675
+ }