@forwardimpact/pathway 0.21.0 → 0.23.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 (123) hide show
  1. package/README.md +3 -3
  2. package/bin/fit-pathway.js +22 -22
  3. package/package.json +4 -3
  4. package/src/commands/agent.js +14 -10
  5. package/src/commands/behaviour.js +11 -1
  6. package/src/commands/build.js +11 -2
  7. package/src/commands/command-factory.js +4 -2
  8. package/src/commands/dev.js +9 -2
  9. package/src/commands/discipline.js +19 -2
  10. package/src/commands/driver.js +11 -1
  11. package/src/commands/index.js +1 -1
  12. package/src/commands/init.js +1 -1
  13. package/src/commands/interview.js +8 -8
  14. package/src/commands/job.js +41 -28
  15. package/src/commands/level.js +76 -0
  16. package/src/commands/progress.js +20 -20
  17. package/src/commands/questions.js +3 -3
  18. package/src/commands/skill.js +11 -1
  19. package/src/commands/stage.js +11 -1
  20. package/src/commands/tool.js +4 -3
  21. package/src/commands/track.js +11 -1
  22. package/src/components/action-buttons.js +3 -3
  23. package/src/components/builder.js +25 -25
  24. package/src/components/card.js +8 -104
  25. package/src/components/comparison-radar.js +4 -4
  26. package/src/components/detail.js +18 -120
  27. package/src/components/error-page.js +8 -68
  28. package/src/components/grid.js +12 -106
  29. package/src/components/list.js +7 -116
  30. package/src/components/nav.js +7 -60
  31. package/src/components/radar-chart.js +3 -3
  32. package/src/components/skill-matrix.js +7 -7
  33. package/src/css/bundles/app.css +25 -21
  34. package/src/css/bundles/handout.css +33 -33
  35. package/src/css/bundles/slides.css +25 -25
  36. package/src/css/pages/landing.css +5 -5
  37. package/src/formatters/index.js +5 -5
  38. package/src/formatters/interview/shared.js +23 -23
  39. package/src/formatters/job/description.js +18 -18
  40. package/src/formatters/job/dom.js +12 -12
  41. package/src/formatters/job/markdown.js +7 -7
  42. package/src/formatters/json-ld.js +24 -24
  43. package/src/formatters/{grade → level}/dom.js +31 -27
  44. package/src/formatters/{grade → level}/markdown.js +19 -28
  45. package/src/formatters/{grade → level}/microdata.js +28 -38
  46. package/src/formatters/level/shared.js +86 -0
  47. package/src/formatters/progress/markdown.js +2 -2
  48. package/src/formatters/progress/shared.js +51 -51
  49. package/src/formatters/questions/markdown.js +8 -6
  50. package/src/formatters/questions/shared.js +7 -7
  51. package/src/formatters/skill/dom.js +4 -4
  52. package/src/formatters/skill/markdown.js +1 -1
  53. package/src/formatters/skill/microdata.js +3 -3
  54. package/src/formatters/skill/shared.js +3 -3
  55. package/src/formatters/track/shared.js +1 -1
  56. package/src/handout-main.js +12 -12
  57. package/src/handout.html +32 -13
  58. package/src/index.html +33 -14
  59. package/src/lib/card-mappers.js +16 -16
  60. package/src/lib/cli-command.js +3 -3
  61. package/src/lib/cli-output.js +2 -2
  62. package/src/lib/error-boundary.js +3 -66
  63. package/src/lib/errors.js +7 -45
  64. package/src/lib/job-cache.js +12 -12
  65. package/src/lib/markdown.js +2 -109
  66. package/src/lib/reactive.js +7 -73
  67. package/src/lib/render.js +53 -201
  68. package/src/lib/router-core.js +2 -156
  69. package/src/lib/router-pages.js +2 -11
  70. package/src/lib/router-slides.js +2 -197
  71. package/src/lib/state.js +16 -65
  72. package/src/lib/utils.js +3 -10
  73. package/src/lib/yaml-loader.js +22 -80
  74. package/src/main.js +10 -10
  75. package/src/pages/agent-builder.js +12 -12
  76. package/src/pages/assessment-results.js +28 -24
  77. package/src/pages/interview-builder.js +6 -6
  78. package/src/pages/interview.js +8 -8
  79. package/src/pages/job-builder.js +7 -7
  80. package/src/pages/job.js +8 -8
  81. package/src/pages/landing.js +8 -8
  82. package/src/pages/level.js +122 -0
  83. package/src/pages/progress-builder.js +8 -8
  84. package/src/pages/progress.js +74 -74
  85. package/src/pages/self-assessment.js +7 -7
  86. package/src/pages/skill.js +1 -1
  87. package/src/slide-main.js +23 -23
  88. package/src/slides/chapter.js +4 -4
  89. package/src/slides/index.js +11 -11
  90. package/src/slides/interview.js +2 -2
  91. package/src/slides/job.js +4 -4
  92. package/src/slides/level.js +32 -0
  93. package/src/slides/overview.js +10 -10
  94. package/src/slides/progress.js +13 -13
  95. package/src/slides.html +32 -13
  96. package/src/types.js +1 -1
  97. package/templates/job.template.md +2 -2
  98. package/src/commands/grade.js +0 -60
  99. package/src/css/base.css +0 -56
  100. package/src/css/components/badges.css +0 -232
  101. package/src/css/components/buttons.css +0 -101
  102. package/src/css/components/forms.css +0 -191
  103. package/src/css/components/layout.css +0 -218
  104. package/src/css/components/nav.css +0 -206
  105. package/src/css/components/progress.css +0 -166
  106. package/src/css/components/states.css +0 -82
  107. package/src/css/components/surfaces.css +0 -347
  108. package/src/css/components/tables.css +0 -362
  109. package/src/css/components/top-bar.css +0 -180
  110. package/src/css/components/typography.css +0 -121
  111. package/src/css/components/utilities.css +0 -41
  112. package/src/css/pages/detail.css +0 -119
  113. package/src/css/reset.css +0 -50
  114. package/src/css/tokens.css +0 -162
  115. package/src/css/views/handout.css +0 -30
  116. package/src/css/views/print.css +0 -634
  117. package/src/css/views/slide-animations.css +0 -113
  118. package/src/css/views/slide-base.css +0 -331
  119. package/src/css/views/slide-sections.css +0 -597
  120. package/src/css/views/slide-tables.css +0 -275
  121. package/src/formatters/grade/shared.js +0 -86
  122. package/src/pages/grade.js +0 -122
  123. package/src/slides/grade.js +0 -32
@@ -1,362 +0,0 @@
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
- }
@@ -1,180 +0,0 @@
1
- /**
2
- * Top Bar
3
- *
4
- * Fixed bar across the top of the viewport with sidebar toggle and
5
- * CLI command display. Inspired by Safari's URL bar + sidebar layout.
6
- */
7
-
8
- @layer components {
9
- /* --------------------------------------------------------------------------
10
- Bar container - fixed across top
11
- -------------------------------------------------------------------------- */
12
- .top-bar {
13
- position: fixed;
14
- top: 0;
15
- left: 0;
16
- right: 0;
17
- height: var(--top-bar-height);
18
- z-index: 200;
19
- display: flex;
20
- align-items: center;
21
- gap: var(--space-sm);
22
- padding: 0 var(--space-sm);
23
- background: var(--color-surface);
24
- border-bottom: 1px solid var(--color-border);
25
- }
26
-
27
- /* --------------------------------------------------------------------------
28
- Sidebar toggle button
29
- -------------------------------------------------------------------------- */
30
- .top-bar__toggle {
31
- flex-shrink: 0;
32
- display: flex;
33
- align-items: center;
34
- justify-content: center;
35
- width: 36px;
36
- height: 36px;
37
- border: none;
38
- border-radius: var(--radius-md);
39
- background: transparent;
40
- color: var(--color-text-muted);
41
- cursor: pointer;
42
- transition:
43
- background 0.15s,
44
- color 0.15s;
45
- }
46
-
47
- .top-bar__toggle:hover {
48
- background: var(--color-bg-secondary);
49
- color: var(--color-text);
50
- }
51
-
52
- .top-bar__toggle:active {
53
- background: var(--color-border);
54
- }
55
-
56
- /* Sidebar icon: simple sidebar SVG */
57
- .top-bar__toggle svg {
58
- width: 18px;
59
- height: 18px;
60
- fill: none;
61
- stroke: currentColor;
62
- stroke-width: 1.5;
63
- stroke-linecap: round;
64
- stroke-linejoin: round;
65
- }
66
-
67
- /* Highlight toggle when drawer is open */
68
- .drawer-open .top-bar__toggle {
69
- color: var(--color-primary);
70
- background: rgba(59, 130, 246, 0.08);
71
- }
72
-
73
- /* --------------------------------------------------------------------------
74
- Command bar (mimics Safari-style URL bar)
75
- -------------------------------------------------------------------------- */
76
- .top-bar__command {
77
- width: 100%;
78
- max-width: 800px;
79
- margin: 0 auto;
80
- display: flex;
81
- align-items: center;
82
- height: 36px;
83
- padding: 0 var(--space-sm) 0 var(--space-md);
84
- border: 1px solid var(--color-border);
85
- border-radius: var(--radius-lg);
86
- transition:
87
- border-color 0.15s,
88
- box-shadow 0.15s;
89
- gap: var(--space-xs);
90
- }
91
-
92
- .top-bar__command:hover {
93
- border-color: var(--color-text-light);
94
- }
95
-
96
- .top-bar__command:focus-within {
97
- border-color: var(--color-primary);
98
- box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15);
99
- }
100
-
101
- /* Terminal prompt icon */
102
- .top-bar__prompt {
103
- flex-shrink: 0;
104
- font-size: var(--font-size-sm);
105
- color: var(--color-text-light);
106
- user-select: none;
107
- }
108
-
109
- /* CLI command text */
110
- .top-bar__command-text {
111
- flex: 1;
112
- min-width: 0;
113
- font-family: var(--font-family-mono);
114
- font-size: var(--font-size-xs);
115
- color: var(--color-text-secondary);
116
- white-space: nowrap;
117
- overflow: hidden;
118
- text-overflow: ellipsis;
119
- user-select: all;
120
- line-height: 36px;
121
- }
122
-
123
- /* Copy button inside the command bar */
124
- .top-bar__copy {
125
- flex-shrink: 0;
126
- display: flex;
127
- align-items: center;
128
- justify-content: center;
129
- width: 28px;
130
- height: 28px;
131
- border: none;
132
- border-radius: var(--radius-sm);
133
- background: transparent;
134
- color: var(--color-text-light);
135
- cursor: pointer;
136
- transition:
137
- background 0.15s,
138
- color 0.15s;
139
- }
140
-
141
- .top-bar__copy:hover {
142
- background: var(--color-border);
143
- color: var(--color-text);
144
- }
145
-
146
- .top-bar__copy svg {
147
- width: 14px;
148
- height: 14px;
149
- fill: none;
150
- stroke: currentColor;
151
- stroke-width: 2;
152
- stroke-linecap: round;
153
- stroke-linejoin: round;
154
- }
155
-
156
- /* Copied state */
157
- .top-bar__copy.copied {
158
- color: var(--color-success);
159
- }
160
-
161
- .top-bar__copy.copied svg {
162
- /* Swap from copy icon to checkmark via CSS — JS swaps the class */
163
- }
164
-
165
- /* --------------------------------------------------------------------------
166
- Layout adjustments - push content below the top bar
167
- -------------------------------------------------------------------------- */
168
- .app-body {
169
- padding-top: var(--top-bar-height);
170
- }
171
-
172
- /* --------------------------------------------------------------------------
173
- Mobile tweaks
174
- -------------------------------------------------------------------------- */
175
- @media (max-width: 768px) {
176
- .top-bar__prompt {
177
- display: none;
178
- }
179
- }
180
- }
@@ -1,121 +0,0 @@
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: var(--font-family-mono);
115
- font-size: 0.9em;
116
- background: var(--color-bg);
117
- padding: 0.1em 0.4em;
118
- border-radius: var(--radius-sm);
119
- border: 1px solid var(--color-border);
120
- }
121
- }
@@ -1,41 +0,0 @@
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
- }