@forwardimpact/pathway 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 (227) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +104 -0
  3. package/app/commands/agent.js +430 -0
  4. package/app/commands/behaviour.js +61 -0
  5. package/app/commands/command-factory.js +211 -0
  6. package/app/commands/discipline.js +58 -0
  7. package/app/commands/driver.js +94 -0
  8. package/app/commands/grade.js +60 -0
  9. package/app/commands/index.js +20 -0
  10. package/app/commands/init.js +67 -0
  11. package/app/commands/interview.js +68 -0
  12. package/app/commands/job.js +157 -0
  13. package/app/commands/progress.js +77 -0
  14. package/app/commands/questions.js +179 -0
  15. package/app/commands/serve.js +143 -0
  16. package/app/commands/site.js +121 -0
  17. package/app/commands/skill.js +76 -0
  18. package/app/commands/stage.js +129 -0
  19. package/app/commands/track.js +70 -0
  20. package/app/components/action-buttons.js +66 -0
  21. package/app/components/behaviour-profile.js +53 -0
  22. package/app/components/builder.js +341 -0
  23. package/app/components/card.js +98 -0
  24. package/app/components/checklist.js +145 -0
  25. package/app/components/comparison-radar.js +237 -0
  26. package/app/components/detail.js +230 -0
  27. package/app/components/error-page.js +72 -0
  28. package/app/components/grid.js +109 -0
  29. package/app/components/list.js +120 -0
  30. package/app/components/modifier-table.js +142 -0
  31. package/app/components/nav.js +64 -0
  32. package/app/components/progression-table.js +320 -0
  33. package/app/components/radar-chart.js +102 -0
  34. package/app/components/skill-matrix.js +97 -0
  35. package/app/css/base.css +56 -0
  36. package/app/css/bundles/app.css +40 -0
  37. package/app/css/bundles/handout.css +43 -0
  38. package/app/css/bundles/slides.css +40 -0
  39. package/app/css/components/badges.css +215 -0
  40. package/app/css/components/buttons.css +101 -0
  41. package/app/css/components/forms.css +105 -0
  42. package/app/css/components/layout.css +209 -0
  43. package/app/css/components/nav.css +166 -0
  44. package/app/css/components/progress.css +166 -0
  45. package/app/css/components/states.css +82 -0
  46. package/app/css/components/surfaces.css +243 -0
  47. package/app/css/components/tables.css +362 -0
  48. package/app/css/components/typography.css +122 -0
  49. package/app/css/components/utilities.css +41 -0
  50. package/app/css/pages/agent-builder.css +391 -0
  51. package/app/css/pages/assessment-results.css +453 -0
  52. package/app/css/pages/detail.css +59 -0
  53. package/app/css/pages/interview-builder.css +148 -0
  54. package/app/css/pages/job-builder.css +134 -0
  55. package/app/css/pages/landing.css +92 -0
  56. package/app/css/pages/lifecycle.css +118 -0
  57. package/app/css/pages/progress-builder.css +274 -0
  58. package/app/css/pages/self-assessment.css +502 -0
  59. package/app/css/reset.css +50 -0
  60. package/app/css/tokens.css +153 -0
  61. package/app/css/views/handout.css +30 -0
  62. package/app/css/views/print.css +608 -0
  63. package/app/css/views/slide-animations.css +113 -0
  64. package/app/css/views/slide-base.css +330 -0
  65. package/app/css/views/slide-sections.css +597 -0
  66. package/app/css/views/slide-tables.css +275 -0
  67. package/app/formatters/agent/dom.js +540 -0
  68. package/app/formatters/agent/profile.js +133 -0
  69. package/app/formatters/agent/skill.js +58 -0
  70. package/app/formatters/behaviour/dom.js +91 -0
  71. package/app/formatters/behaviour/markdown.js +54 -0
  72. package/app/formatters/behaviour/shared.js +64 -0
  73. package/app/formatters/discipline/dom.js +187 -0
  74. package/app/formatters/discipline/markdown.js +87 -0
  75. package/app/formatters/discipline/shared.js +131 -0
  76. package/app/formatters/driver/dom.js +103 -0
  77. package/app/formatters/driver/shared.js +92 -0
  78. package/app/formatters/grade/dom.js +208 -0
  79. package/app/formatters/grade/markdown.js +94 -0
  80. package/app/formatters/grade/shared.js +86 -0
  81. package/app/formatters/index.js +50 -0
  82. package/app/formatters/interview/dom.js +97 -0
  83. package/app/formatters/interview/markdown.js +66 -0
  84. package/app/formatters/interview/shared.js +332 -0
  85. package/app/formatters/job/description.js +176 -0
  86. package/app/formatters/job/dom.js +411 -0
  87. package/app/formatters/job/markdown.js +102 -0
  88. package/app/formatters/progress/dom.js +135 -0
  89. package/app/formatters/progress/markdown.js +86 -0
  90. package/app/formatters/progress/shared.js +339 -0
  91. package/app/formatters/questions/json.js +43 -0
  92. package/app/formatters/questions/markdown.js +303 -0
  93. package/app/formatters/questions/shared.js +274 -0
  94. package/app/formatters/questions/yaml.js +76 -0
  95. package/app/formatters/shared.js +71 -0
  96. package/app/formatters/skill/dom.js +168 -0
  97. package/app/formatters/skill/markdown.js +109 -0
  98. package/app/formatters/skill/shared.js +125 -0
  99. package/app/formatters/stage/dom.js +135 -0
  100. package/app/formatters/stage/index.js +12 -0
  101. package/app/formatters/stage/shared.js +111 -0
  102. package/app/formatters/track/dom.js +128 -0
  103. package/app/formatters/track/markdown.js +105 -0
  104. package/app/formatters/track/shared.js +181 -0
  105. package/app/handout-main.js +421 -0
  106. package/app/handout.html +21 -0
  107. package/app/index.html +59 -0
  108. package/app/lib/card-mappers.js +173 -0
  109. package/app/lib/cli-output.js +270 -0
  110. package/app/lib/error-boundary.js +70 -0
  111. package/app/lib/errors.js +49 -0
  112. package/app/lib/form-controls.js +47 -0
  113. package/app/lib/job-cache.js +86 -0
  114. package/app/lib/markdown.js +114 -0
  115. package/app/lib/radar.js +866 -0
  116. package/app/lib/reactive.js +77 -0
  117. package/app/lib/render.js +212 -0
  118. package/app/lib/router-core.js +160 -0
  119. package/app/lib/router-pages.js +16 -0
  120. package/app/lib/router-slides.js +202 -0
  121. package/app/lib/state.js +148 -0
  122. package/app/lib/utils.js +14 -0
  123. package/app/lib/yaml-loader.js +327 -0
  124. package/app/main.js +213 -0
  125. package/app/model/agent.js +702 -0
  126. package/app/model/checklist.js +137 -0
  127. package/app/model/derivation.js +699 -0
  128. package/app/model/index-generator.js +71 -0
  129. package/app/model/interview.js +539 -0
  130. package/app/model/job.js +222 -0
  131. package/app/model/levels.js +591 -0
  132. package/app/model/loader.js +564 -0
  133. package/app/model/matching.js +858 -0
  134. package/app/model/modifiers.js +158 -0
  135. package/app/model/profile.js +266 -0
  136. package/app/model/progression.js +507 -0
  137. package/app/model/validation.js +1385 -0
  138. package/app/pages/agent-builder.js +823 -0
  139. package/app/pages/assessment-results.js +507 -0
  140. package/app/pages/behaviour.js +70 -0
  141. package/app/pages/discipline.js +71 -0
  142. package/app/pages/driver.js +106 -0
  143. package/app/pages/grade.js +117 -0
  144. package/app/pages/interview-builder.js +50 -0
  145. package/app/pages/interview.js +304 -0
  146. package/app/pages/job-builder.js +50 -0
  147. package/app/pages/job.js +58 -0
  148. package/app/pages/landing.js +305 -0
  149. package/app/pages/progress-builder.js +58 -0
  150. package/app/pages/progress.js +495 -0
  151. package/app/pages/self-assessment.js +729 -0
  152. package/app/pages/skill.js +113 -0
  153. package/app/pages/stage.js +231 -0
  154. package/app/pages/track.js +69 -0
  155. package/app/slide-main.js +360 -0
  156. package/app/slides/behaviour.js +38 -0
  157. package/app/slides/chapter.js +82 -0
  158. package/app/slides/discipline.js +40 -0
  159. package/app/slides/driver.js +39 -0
  160. package/app/slides/grade.js +32 -0
  161. package/app/slides/index.js +198 -0
  162. package/app/slides/interview.js +58 -0
  163. package/app/slides/job.js +55 -0
  164. package/app/slides/overview.js +126 -0
  165. package/app/slides/progress.js +83 -0
  166. package/app/slides/skill.js +40 -0
  167. package/app/slides/track.js +39 -0
  168. package/app/slides.html +56 -0
  169. package/app/types.js +147 -0
  170. package/bin/pathway.js +489 -0
  171. package/examples/agents/.claude/skills/architecture-design/SKILL.md +88 -0
  172. package/examples/agents/.claude/skills/cloud-platforms/SKILL.md +90 -0
  173. package/examples/agents/.claude/skills/code-quality-review/SKILL.md +67 -0
  174. package/examples/agents/.claude/skills/data-modeling/SKILL.md +99 -0
  175. package/examples/agents/.claude/skills/developer-experience/SKILL.md +99 -0
  176. package/examples/agents/.claude/skills/devops-cicd/SKILL.md +96 -0
  177. package/examples/agents/.claude/skills/full-stack-development/SKILL.md +90 -0
  178. package/examples/agents/.claude/skills/knowledge-management/SKILL.md +100 -0
  179. package/examples/agents/.claude/skills/pattern-generalization/SKILL.md +102 -0
  180. package/examples/agents/.claude/skills/sre-practices/SKILL.md +117 -0
  181. package/examples/agents/.claude/skills/technical-debt-management/SKILL.md +123 -0
  182. package/examples/agents/.claude/skills/technical-writing/SKILL.md +129 -0
  183. package/examples/agents/.github/agents/se-platform-code.agent.md +181 -0
  184. package/examples/agents/.github/agents/se-platform-plan.agent.md +178 -0
  185. package/examples/agents/.github/agents/se-platform-review.agent.md +113 -0
  186. package/examples/agents/.vscode/settings.json +8 -0
  187. package/examples/behaviours/_index.yaml +8 -0
  188. package/examples/behaviours/outcome_ownership.yaml +44 -0
  189. package/examples/behaviours/polymathic_knowledge.yaml +42 -0
  190. package/examples/behaviours/precise_communication.yaml +40 -0
  191. package/examples/behaviours/relentless_curiosity.yaml +38 -0
  192. package/examples/behaviours/systems_thinking.yaml +41 -0
  193. package/examples/capabilities/_index.yaml +8 -0
  194. package/examples/capabilities/business.yaml +251 -0
  195. package/examples/capabilities/delivery.yaml +352 -0
  196. package/examples/capabilities/people.yaml +100 -0
  197. package/examples/capabilities/reliability.yaml +318 -0
  198. package/examples/capabilities/scale.yaml +394 -0
  199. package/examples/disciplines/_index.yaml +5 -0
  200. package/examples/disciplines/data_engineering.yaml +76 -0
  201. package/examples/disciplines/software_engineering.yaml +76 -0
  202. package/examples/drivers.yaml +205 -0
  203. package/examples/framework.yaml +58 -0
  204. package/examples/grades.yaml +118 -0
  205. package/examples/questions/behaviours/outcome_ownership.yaml +52 -0
  206. package/examples/questions/behaviours/polymathic_knowledge.yaml +48 -0
  207. package/examples/questions/behaviours/precise_communication.yaml +55 -0
  208. package/examples/questions/behaviours/relentless_curiosity.yaml +51 -0
  209. package/examples/questions/behaviours/systems_thinking.yaml +53 -0
  210. package/examples/questions/skills/architecture_design.yaml +54 -0
  211. package/examples/questions/skills/cloud_platforms.yaml +48 -0
  212. package/examples/questions/skills/code_quality.yaml +49 -0
  213. package/examples/questions/skills/data_modeling.yaml +46 -0
  214. package/examples/questions/skills/devops.yaml +47 -0
  215. package/examples/questions/skills/full_stack_development.yaml +48 -0
  216. package/examples/questions/skills/sre_practices.yaml +44 -0
  217. package/examples/questions/skills/stakeholder_management.yaml +49 -0
  218. package/examples/questions/skills/team_collaboration.yaml +43 -0
  219. package/examples/questions/skills/technical_writing.yaml +43 -0
  220. package/examples/self-assessments.yaml +66 -0
  221. package/examples/stages.yaml +76 -0
  222. package/examples/tracks/_index.yaml +6 -0
  223. package/examples/tracks/manager.yaml +53 -0
  224. package/examples/tracks/platform.yaml +54 -0
  225. package/examples/tracks/sre.yaml +58 -0
  226. package/examples/vscode-settings.yaml +22 -0
  227. package/package.json +68 -0
@@ -0,0 +1,362 @@
1
+ /**
2
+ * Table Components
3
+ *
4
+ * Base table styles for all table variants.
5
+ */
6
+
7
+ @layer components {
8
+ /* Table container */
9
+ .table-container {
10
+ overflow-x: auto;
11
+ background: var(--color-surface);
12
+ border-radius: var(--radius-lg);
13
+ box-shadow: var(--shadow-md);
14
+ }
15
+
16
+ /* Base table */
17
+ .table {
18
+ width: 100%;
19
+ border-collapse: collapse;
20
+ }
21
+
22
+ .table th,
23
+ .table td {
24
+ padding: var(--space-md);
25
+ text-align: left;
26
+ border-bottom: 1px solid var(--color-border);
27
+ }
28
+
29
+ .table th {
30
+ background: var(--color-bg);
31
+ font-weight: 600;
32
+ color: var(--color-text-muted);
33
+ font-size: var(--font-size-sm);
34
+ text-transform: uppercase;
35
+ letter-spacing: 0.025em;
36
+ }
37
+
38
+ .table tr:last-child td {
39
+ border-bottom: none;
40
+ }
41
+
42
+ .table tr:hover td {
43
+ background: var(--color-bg);
44
+ }
45
+
46
+ /* Standard table column widths */
47
+ .table .col-name {
48
+ width: 20%;
49
+ min-width: 160px;
50
+ }
51
+
52
+ .table .col-capability {
53
+ width: 100px;
54
+ min-width: 100px;
55
+ }
56
+
57
+ .table .col-type {
58
+ width: 90px;
59
+ min-width: 90px;
60
+ }
61
+
62
+ .table .col-level {
63
+ width: 120px;
64
+ min-width: 120px;
65
+ text-align: center;
66
+ }
67
+
68
+ .table .col-change {
69
+ width: 70px;
70
+ min-width: 70px;
71
+ text-align: center;
72
+ }
73
+
74
+ .table .col-description {
75
+ width: auto;
76
+ min-width: 200px;
77
+ }
78
+
79
+ /* Data table */
80
+ .data-table {
81
+ width: 100%;
82
+ border-collapse: collapse;
83
+ }
84
+
85
+ .data-table th,
86
+ .data-table td {
87
+ padding: var(--space-sm) var(--space-md);
88
+ text-align: left;
89
+ border-bottom: 1px solid var(--color-border);
90
+ }
91
+
92
+ .data-table th {
93
+ background: var(--color-bg);
94
+ font-weight: 600;
95
+ font-size: var(--font-size-sm);
96
+ color: var(--color-text-muted);
97
+ }
98
+
99
+ .data-table tbody tr {
100
+ transition: background-color 0.2s ease;
101
+ }
102
+
103
+ .data-table tbody tr:hover {
104
+ background: var(--color-bg);
105
+ }
106
+
107
+ .data-table tr:last-child td {
108
+ border-bottom: none;
109
+ }
110
+
111
+ .data-table .col-narrow {
112
+ width: 100px;
113
+ }
114
+
115
+ .data-table .col-medium {
116
+ width: 150px;
117
+ }
118
+
119
+ .data-table .col-center {
120
+ text-align: center;
121
+ }
122
+
123
+ /* Level table */
124
+ .level-table {
125
+ width: 100%;
126
+ border-collapse: separate;
127
+ border-spacing: 0;
128
+ margin-top: var(--space-md);
129
+ border: 1px solid var(--color-border);
130
+ border-radius: var(--radius-lg);
131
+ overflow: hidden;
132
+ background: var(--color-surface);
133
+ }
134
+
135
+ .level-table th,
136
+ .level-table td {
137
+ padding: var(--space-md) var(--space-lg);
138
+ text-align: left;
139
+ border-bottom: 1px solid var(--color-border);
140
+ }
141
+
142
+ .level-table th {
143
+ font-weight: 600;
144
+ font-size: var(--font-size-sm);
145
+ color: var(--color-text-secondary);
146
+ background: var(--color-bg);
147
+ text-transform: uppercase;
148
+ letter-spacing: 0.025em;
149
+ position: sticky;
150
+ top: 0;
151
+ z-index: 10;
152
+ }
153
+
154
+ .level-table th:first-child {
155
+ width: 180px;
156
+ }
157
+
158
+ .level-table tbody tr {
159
+ transition: background-color 0.2s ease;
160
+ }
161
+
162
+ .level-table tbody tr:hover {
163
+ background: var(--color-bg);
164
+ }
165
+
166
+ .level-table tbody tr:last-child td {
167
+ border-bottom: none;
168
+ }
169
+
170
+ .level-table td:first-child {
171
+ font-weight: 500;
172
+ color: var(--color-text);
173
+ }
174
+
175
+ /* Progression table */
176
+ .progression-table {
177
+ width: 100%;
178
+ border-collapse: collapse;
179
+ margin-top: var(--space-md);
180
+ }
181
+
182
+ .progression-table th,
183
+ .progression-table td {
184
+ padding: var(--space-md);
185
+ text-align: left;
186
+ border-bottom: 1px solid var(--color-border);
187
+ }
188
+
189
+ .progression-table th {
190
+ font-weight: 600;
191
+ color: var(--color-text-secondary);
192
+ background: var(--color-bg);
193
+ }
194
+
195
+ .progression-table tbody tr {
196
+ transition: background-color 0.2s ease;
197
+ }
198
+
199
+ .progression-table tbody tr:hover {
200
+ background: var(--color-bg);
201
+ }
202
+
203
+ .progression-table tr:last-child td {
204
+ border-bottom: none;
205
+ }
206
+
207
+ /* Progression table column widths */
208
+ .progression-table th:first-child,
209
+ .progression-table td:first-child {
210
+ width: 20%;
211
+ min-width: 160px;
212
+ }
213
+
214
+ /* Skills table: 6 columns (Name, Capability, Type, Current, Target, Change) */
215
+ .progression-table.skill-table th:nth-child(2),
216
+ .progression-table.skill-table td:nth-child(2) {
217
+ width: 100px;
218
+ }
219
+
220
+ .progression-table.skill-table th:nth-child(3),
221
+ .progression-table.skill-table td:nth-child(3) {
222
+ width: 90px;
223
+ }
224
+
225
+ .progression-table.skill-table th:nth-child(4),
226
+ .progression-table.skill-table td:nth-child(4),
227
+ .progression-table.skill-table th:nth-child(5),
228
+ .progression-table.skill-table td:nth-child(5) {
229
+ width: 120px;
230
+ text-align: center;
231
+ }
232
+
233
+ .progression-table.skill-table th:nth-child(6),
234
+ .progression-table.skill-table td:nth-child(6) {
235
+ width: 70px;
236
+ text-align: center;
237
+ }
238
+
239
+ /* Behaviour table: 4 columns (Name, Current, Target, Change) */
240
+ .progression-table.behaviour-table th:nth-child(2),
241
+ .progression-table.behaviour-table td:nth-child(2),
242
+ .progression-table.behaviour-table th:nth-child(3),
243
+ .progression-table.behaviour-table td:nth-child(3) {
244
+ width: 120px;
245
+ text-align: center;
246
+ }
247
+
248
+ .progression-table.behaviour-table th:nth-child(4),
249
+ .progression-table.behaviour-table td:nth-child(4) {
250
+ width: 70px;
251
+ text-align: center;
252
+ }
253
+
254
+ /* Matrix tables */
255
+ .matrix-table th:first-child,
256
+ .matrix-table td:first-child {
257
+ width: 25%;
258
+ min-width: 220px;
259
+ }
260
+
261
+ .matrix-table th:nth-child(2),
262
+ .matrix-table td:nth-child(2) {
263
+ width: 100px;
264
+ }
265
+
266
+ .matrix-table th:nth-child(3),
267
+ .matrix-table td:nth-child(3) {
268
+ width: 90px;
269
+ }
270
+
271
+ .matrix-table th:nth-child(4),
272
+ .matrix-table td:nth-child(4) {
273
+ width: 120px;
274
+ text-align: center;
275
+ }
276
+
277
+ .matrix-table th:last-child,
278
+ .matrix-table td:last-child {
279
+ width: auto;
280
+ }
281
+
282
+ /* Behaviour matrix */
283
+ .matrix-table.behaviour-matrix th:nth-child(2),
284
+ .matrix-table.behaviour-matrix td:nth-child(2) {
285
+ width: 120px;
286
+ text-align: center;
287
+ }
288
+
289
+ /* Levels table */
290
+ .levels-table th:first-child,
291
+ .levels-table td:first-child {
292
+ width: 120px;
293
+ text-align: center;
294
+ }
295
+
296
+ .levels-table td.level-cell {
297
+ text-align: center;
298
+ vertical-align: middle;
299
+ }
300
+
301
+ .levels-table td.level-cell .level-bar {
302
+ display: inline-flex;
303
+ justify-content: center;
304
+ }
305
+
306
+ .levels-table td.level-cell .level-label {
307
+ display: block;
308
+ font-size: var(--font-size-xs);
309
+ color: var(--color-text-muted);
310
+ margin-top: 2px;
311
+ }
312
+
313
+ /* Modifier tables */
314
+ .modifier-table th:last-child,
315
+ .modifier-table td:last-child {
316
+ width: 100px;
317
+ text-align: center;
318
+ }
319
+
320
+ /* Human-only skill indicators */
321
+ .human-only-row {
322
+ background: rgba(254, 243, 199, 0.3);
323
+ }
324
+
325
+ .human-only-indicator {
326
+ font-size: var(--font-size-xs);
327
+ opacity: 0.8;
328
+ cursor: help;
329
+ }
330
+
331
+ /* Lists */
332
+ .item-list {
333
+ list-style: none;
334
+ padding: 0;
335
+ margin: 0;
336
+ }
337
+
338
+ .item-list li {
339
+ padding: var(--space-sm) 0;
340
+ border-bottom: 1px solid var(--color-border);
341
+ }
342
+
343
+ .item-list li:last-child {
344
+ border-bottom: none;
345
+ }
346
+
347
+ .item-list-compact li {
348
+ padding: var(--space-xs) 0;
349
+ }
350
+
351
+ /* Related lists */
352
+ .related-list {
353
+ list-style: disc;
354
+ padding-left: var(--space-lg);
355
+ margin: var(--space-md) 0;
356
+ }
357
+
358
+ .related-list li {
359
+ padding: var(--space-xs) 0;
360
+ color: var(--color-text);
361
+ }
362
+ }
@@ -0,0 +1,122 @@
1
+ /**
2
+ * Typography Utilities
3
+ *
4
+ * Text styles, labels, and typography utilities.
5
+ */
6
+
7
+ @layer components {
8
+ /* Labels - small uppercase text (consolidated definition) */
9
+ .label,
10
+ .detail-item-label,
11
+ .stat-label,
12
+ .expectation-label,
13
+ .filter-title {
14
+ font-size: var(--font-size-sm);
15
+ color: var(--color-text-muted);
16
+ text-transform: uppercase;
17
+ letter-spacing: 0.025em;
18
+ }
19
+
20
+ .label-xs {
21
+ font-size: var(--font-size-xs);
22
+ }
23
+
24
+ /* Match score label uses smaller font */
25
+ .score-label {
26
+ font-size: var(--font-size-xs);
27
+ color: var(--color-text-muted);
28
+ text-transform: uppercase;
29
+ }
30
+
31
+ /* Labels with bottom margin */
32
+ .detail-item-label,
33
+ .expectation-label {
34
+ margin-bottom: var(--space-xs);
35
+ }
36
+
37
+ /* Filter title has bold weight and wider letter-spacing */
38
+ .filter-title {
39
+ font-weight: 600;
40
+ color: var(--color-text-secondary);
41
+ letter-spacing: 0.05em;
42
+ }
43
+
44
+ /* Text colors */
45
+ .text-muted {
46
+ color: var(--color-text-muted);
47
+ }
48
+
49
+ .text-light {
50
+ color: var(--color-text-light);
51
+ }
52
+
53
+ .text-primary {
54
+ color: var(--color-primary);
55
+ }
56
+
57
+ .text-success {
58
+ color: var(--color-success);
59
+ }
60
+
61
+ .text-warning {
62
+ color: var(--color-warning);
63
+ }
64
+
65
+ .text-error {
66
+ color: var(--color-error);
67
+ }
68
+
69
+ /* Text alignment */
70
+ .text-center {
71
+ text-align: center;
72
+ }
73
+
74
+ .text-right {
75
+ text-align: right;
76
+ }
77
+
78
+ /* Font sizes */
79
+ .text-xs {
80
+ font-size: var(--font-size-xs);
81
+ }
82
+
83
+ .text-sm {
84
+ font-size: var(--font-size-sm);
85
+ }
86
+
87
+ .text-lg {
88
+ font-size: var(--font-size-lg);
89
+ }
90
+
91
+ .text-xl {
92
+ font-size: var(--font-size-xl);
93
+ }
94
+
95
+ .text-2xl {
96
+ font-size: var(--font-size-2xl);
97
+ }
98
+
99
+ /* Font weight */
100
+ .font-medium {
101
+ font-weight: 500;
102
+ }
103
+
104
+ .font-semibold {
105
+ font-weight: 600;
106
+ }
107
+
108
+ .font-bold {
109
+ font-weight: 700;
110
+ }
111
+
112
+ /* Code inline */
113
+ .code-inline {
114
+ font-family:
115
+ ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
116
+ font-size: 0.9em;
117
+ background: var(--color-bg);
118
+ padding: 0.1em 0.4em;
119
+ border-radius: var(--radius-sm);
120
+ border: 1px solid var(--color-border);
121
+ }
122
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Utility Classes
3
+ *
4
+ * Spacing utilities and helper classes.
5
+ */
6
+
7
+ @layer utilities {
8
+ /* Margin top */
9
+ .mt-sm {
10
+ margin-top: var(--space-sm);
11
+ }
12
+
13
+ .mt-md {
14
+ margin-top: var(--space-md);
15
+ }
16
+
17
+ .mt-lg {
18
+ margin-top: var(--space-lg);
19
+ }
20
+
21
+ .mt-xl {
22
+ margin-top: var(--space-xl);
23
+ }
24
+
25
+ /* Margin bottom */
26
+ .mb-sm {
27
+ margin-bottom: var(--space-sm);
28
+ }
29
+
30
+ .mb-md {
31
+ margin-bottom: var(--space-md);
32
+ }
33
+
34
+ .mb-lg {
35
+ margin-bottom: var(--space-lg);
36
+ }
37
+
38
+ .mb-xl {
39
+ margin-bottom: var(--space-xl);
40
+ }
41
+ }