@forwardimpact/pathway 0.22.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.
- package/package.json +3 -2
- package/src/commands/agent.js +7 -3
- package/src/commands/behaviour.js +11 -1
- package/src/commands/build.js +11 -2
- package/src/commands/command-factory.js +4 -2
- package/src/commands/dev.js +9 -2
- package/src/commands/discipline.js +19 -2
- package/src/commands/driver.js +11 -1
- package/src/commands/job.js +25 -12
- package/src/commands/level.js +19 -3
- package/src/commands/skill.js +11 -1
- package/src/commands/stage.js +11 -1
- package/src/commands/tool.js +4 -3
- package/src/commands/track.js +11 -1
- package/src/components/card.js +8 -104
- package/src/components/comparison-radar.js +1 -1
- package/src/components/detail.js +16 -118
- package/src/components/error-page.js +8 -68
- package/src/components/grid.js +12 -106
- package/src/components/list.js +7 -116
- package/src/components/nav.js +7 -60
- package/src/css/bundles/app.css +25 -21
- package/src/css/bundles/handout.css +33 -33
- package/src/css/bundles/slides.css +25 -25
- package/src/formatters/interview/shared.js +3 -3
- package/src/formatters/job/description.js +2 -2
- package/src/formatters/progress/shared.js +3 -3
- package/src/formatters/skill/shared.js +1 -1
- package/src/formatters/track/shared.js +1 -1
- package/src/handout.html +32 -13
- package/src/index.html +32 -13
- package/src/lib/error-boundary.js +3 -66
- package/src/lib/errors.js +7 -45
- package/src/lib/job-cache.js +1 -1
- package/src/lib/markdown.js +2 -109
- package/src/lib/reactive.js +7 -73
- package/src/lib/render.js +49 -197
- package/src/lib/router-core.js +2 -156
- package/src/lib/router-pages.js +2 -11
- package/src/lib/router-slides.js +2 -197
- package/src/lib/state.js +14 -63
- package/src/lib/utils.js +3 -10
- package/src/lib/yaml-loader.js +13 -71
- package/src/pages/agent-builder.js +1 -1
- package/src/pages/assessment-results.js +1 -1
- package/src/pages/job-builder.js +1 -1
- package/src/pages/job.js +1 -1
- package/src/pages/skill.js +1 -1
- package/src/slide-main.js +1 -1
- package/src/slides/index.js +1 -1
- package/src/slides/job.js +1 -1
- package/src/slides/overview.js +1 -1
- package/src/slides.html +32 -13
- package/src/css/base.css +0 -56
- package/src/css/components/badges.css +0 -232
- package/src/css/components/buttons.css +0 -101
- package/src/css/components/forms.css +0 -191
- package/src/css/components/layout.css +0 -218
- package/src/css/components/nav.css +0 -206
- package/src/css/components/progress.css +0 -166
- package/src/css/components/states.css +0 -82
- package/src/css/components/surfaces.css +0 -347
- package/src/css/components/tables.css +0 -362
- package/src/css/components/top-bar.css +0 -180
- package/src/css/components/typography.css +0 -121
- package/src/css/components/utilities.css +0 -41
- package/src/css/pages/detail.css +0 -119
- package/src/css/reset.css +0 -50
- package/src/css/tokens.css +0 -162
- package/src/css/views/handout.css +0 -30
- package/src/css/views/print.css +0 -634
- package/src/css/views/slide-animations.css +0 -113
- package/src/css/views/slide-base.css +0 -331
- package/src/css/views/slide-sections.css +0 -597
- package/src/css/views/slide-tables.css +0 -275
|
@@ -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
|
-
}
|
package/src/css/pages/detail.css
DELETED
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Detail Page Styles
|
|
3
|
-
*
|
|
4
|
-
* Shared styles for entity detail pages.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
@layer pages {
|
|
8
|
-
/* Expectation items */
|
|
9
|
-
.expectation-item {
|
|
10
|
-
background: var(--color-bg);
|
|
11
|
-
padding: var(--space-md);
|
|
12
|
-
border-radius: var(--radius-md);
|
|
13
|
-
border-left: 4px solid var(--color-primary);
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.expectation-value {
|
|
17
|
-
font-weight: 500;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/* Question groups */
|
|
21
|
-
.question-group {
|
|
22
|
-
margin-bottom: var(--space-lg);
|
|
23
|
-
padding: var(--space-md);
|
|
24
|
-
background: var(--color-surface);
|
|
25
|
-
border-radius: var(--radius-md);
|
|
26
|
-
border: 1px solid var(--color-border);
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.question-group-title {
|
|
30
|
-
font-weight: 600;
|
|
31
|
-
margin-bottom: var(--space-sm);
|
|
32
|
-
display: flex;
|
|
33
|
-
align-items: center;
|
|
34
|
-
gap: var(--space-sm);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
.question-list {
|
|
38
|
-
margin-top: var(--space-md);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.question-text {
|
|
42
|
-
padding: var(--space-sm) 0;
|
|
43
|
-
color: var(--color-text-secondary);
|
|
44
|
-
margin: 0;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/* Links list */
|
|
48
|
-
.links-list {
|
|
49
|
-
display: flex;
|
|
50
|
-
flex-direction: column;
|
|
51
|
-
gap: var(--space-sm);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
.links-list a {
|
|
55
|
-
display: inline-flex;
|
|
56
|
-
align-items: center;
|
|
57
|
-
gap: var(--space-xs);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/* Tools table (for skill detail page) */
|
|
61
|
-
.tools-table {
|
|
62
|
-
width: 100%;
|
|
63
|
-
border-collapse: separate;
|
|
64
|
-
border-spacing: 0;
|
|
65
|
-
margin-top: var(--space-md);
|
|
66
|
-
border: 1px solid var(--color-border);
|
|
67
|
-
border-radius: var(--radius-lg);
|
|
68
|
-
overflow: hidden;
|
|
69
|
-
background: var(--color-surface);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/*
|
|
73
|
-
* Table cells: 60px row height = 16px padding-top + 28px content + 16px padding-bottom
|
|
74
|
-
* Matches list-item height for visual consistency
|
|
75
|
-
*/
|
|
76
|
-
.tools-table th,
|
|
77
|
-
.tools-table td {
|
|
78
|
-
padding: var(--space-md) var(--space-lg);
|
|
79
|
-
text-align: left;
|
|
80
|
-
border-bottom: 1px solid var(--color-border);
|
|
81
|
-
height: 60px;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
.tools-table th {
|
|
85
|
-
font-weight: 600;
|
|
86
|
-
font-size: var(--font-size-sm);
|
|
87
|
-
color: var(--color-text-secondary);
|
|
88
|
-
background: var(--color-bg);
|
|
89
|
-
text-transform: uppercase;
|
|
90
|
-
letter-spacing: 0.025em;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.tools-table th:first-child {
|
|
94
|
-
width: 260px;
|
|
95
|
-
white-space: nowrap;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.tools-table td:first-child {
|
|
99
|
-
white-space: nowrap;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
.tools-table tbody tr:last-child td {
|
|
103
|
-
border-bottom: none;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
.tools-table tbody tr:hover {
|
|
107
|
-
background: var(--color-bg);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/* See all link */
|
|
111
|
-
.see-all-link {
|
|
112
|
-
margin-top: var(--space-md);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
.see-all-link a {
|
|
116
|
-
color: var(--color-primary);
|
|
117
|
-
font-size: var(--font-size-sm);
|
|
118
|
-
}
|
|
119
|
-
}
|
package/src/css/reset.css
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CSS Reset
|
|
3
|
-
*
|
|
4
|
-
* Browser normalization and box-sizing reset.
|
|
5
|
-
* This layer provides a consistent baseline across browsers.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
@layer reset {
|
|
9
|
-
*,
|
|
10
|
-
*::before,
|
|
11
|
-
*::after {
|
|
12
|
-
box-sizing: border-box;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
html {
|
|
16
|
-
font-size: 16px;
|
|
17
|
-
scroll-behavior: smooth;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
body {
|
|
21
|
-
margin: 0;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
h1,
|
|
25
|
-
h2,
|
|
26
|
-
h3,
|
|
27
|
-
h4,
|
|
28
|
-
h5,
|
|
29
|
-
h6 {
|
|
30
|
-
margin: 0;
|
|
31
|
-
line-height: 1;
|
|
32
|
-
font-weight: 600;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
p {
|
|
36
|
-
margin: 0;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
ul,
|
|
40
|
-
ol {
|
|
41
|
-
margin: 0;
|
|
42
|
-
padding: 0;
|
|
43
|
-
list-style: none;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
table {
|
|
47
|
-
width: 100%;
|
|
48
|
-
border-collapse: collapse;
|
|
49
|
-
}
|
|
50
|
-
}
|
package/src/css/tokens.css
DELETED
|
@@ -1,162 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Design Tokens
|
|
3
|
-
*
|
|
4
|
-
* Single source of truth for colors, spacing, typography, and other
|
|
5
|
-
* design decisions.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
@layer tokens {
|
|
9
|
-
:root {
|
|
10
|
-
/* --------------------------------------------------------------------------
|
|
11
|
-
Colors - Primary
|
|
12
|
-
-------------------------------------------------------------------------- */
|
|
13
|
-
--color-primary: #3b82f6;
|
|
14
|
-
--color-primary-dark: #2563eb;
|
|
15
|
-
--color-primary-light: #93c5fd;
|
|
16
|
-
|
|
17
|
-
/* --------------------------------------------------------------------------
|
|
18
|
-
Colors - Skill Types
|
|
19
|
-
-------------------------------------------------------------------------- */
|
|
20
|
-
--color-primary-skill: #ef4444;
|
|
21
|
-
--color-primary-skill-light: #fecaca;
|
|
22
|
-
--color-secondary: #f59e0b;
|
|
23
|
-
--color-secondary-light: #fde68a;
|
|
24
|
-
--color-broad: #10b981;
|
|
25
|
-
--color-broad-light: #a7f3d0;
|
|
26
|
-
|
|
27
|
-
/* --------------------------------------------------------------------------
|
|
28
|
-
Colors - Skill Levels (1-5)
|
|
29
|
-
-------------------------------------------------------------------------- */
|
|
30
|
-
--color-level-1: #fecaca;
|
|
31
|
-
--color-level-2: #fde68a;
|
|
32
|
-
--color-level-3: #bbf7d0;
|
|
33
|
-
--color-level-4: #a5f3fc;
|
|
34
|
-
--color-level-5: #c4b5fd;
|
|
35
|
-
|
|
36
|
-
/* --------------------------------------------------------------------------
|
|
37
|
-
Colors - Behaviour Maturities (1-5)
|
|
38
|
-
-------------------------------------------------------------------------- */
|
|
39
|
-
--color-maturity-1: #fecaca;
|
|
40
|
-
--color-maturity-2: #fde68a;
|
|
41
|
-
--color-maturity-3: #bbf7d0;
|
|
42
|
-
--color-maturity-4: #a5f3fc;
|
|
43
|
-
--color-maturity-5: #c4b5fd;
|
|
44
|
-
|
|
45
|
-
/* --------------------------------------------------------------------------
|
|
46
|
-
Colors - Capabilities (text) - matches data/capabilities/*.yaml IDs
|
|
47
|
-
-------------------------------------------------------------------------- */
|
|
48
|
-
--color-cap-ai: #7c3aed; /* violet */
|
|
49
|
-
--color-cap-business: #b45309; /* amber */
|
|
50
|
-
--color-cap-data: #0f766e; /* teal */
|
|
51
|
-
--color-cap-delivery: #dc2626; /* red */
|
|
52
|
-
--color-cap-documentation: #15803d; /* green */
|
|
53
|
-
--color-cap-ml: #9333ea; /* purple */
|
|
54
|
-
--color-cap-people: #be185d; /* pink */
|
|
55
|
-
--color-cap-process: #c2410c; /* orange */
|
|
56
|
-
--color-cap-product: #4f46e5; /* indigo */
|
|
57
|
-
--color-cap-reliability: #0891b2; /* cyan */
|
|
58
|
-
--color-cap-scale: #1d4ed8; /* blue */
|
|
59
|
-
|
|
60
|
-
/* --------------------------------------------------------------------------
|
|
61
|
-
Colors - Capabilities (backgrounds)
|
|
62
|
-
-------------------------------------------------------------------------- */
|
|
63
|
-
--color-cap-ai-light: #ede9fe; /* violet */
|
|
64
|
-
--color-cap-business-light: #fef3c7; /* amber */
|
|
65
|
-
--color-cap-data-light: #ccfbf1; /* teal */
|
|
66
|
-
--color-cap-delivery-light: #fecaca; /* red */
|
|
67
|
-
--color-cap-documentation-light: #dcfce7; /* green */
|
|
68
|
-
--color-cap-ml-light: #f3e8ff; /* purple */
|
|
69
|
-
--color-cap-people-light: #fce7f3; /* pink */
|
|
70
|
-
--color-cap-process-light: #ffedd5; /* orange */
|
|
71
|
-
--color-cap-product-light: #e0e7ff; /* indigo */
|
|
72
|
-
--color-cap-reliability-light: #cffafe; /* cyan */
|
|
73
|
-
--color-cap-scale-light: #dbeafe; /* blue */
|
|
74
|
-
|
|
75
|
-
/* --------------------------------------------------------------------------
|
|
76
|
-
Colors - Neutrals
|
|
77
|
-
-------------------------------------------------------------------------- */
|
|
78
|
-
--color-bg: #f8fafc;
|
|
79
|
-
--color-bg-secondary: #f1f5f9;
|
|
80
|
-
--color-surface: #ffffff;
|
|
81
|
-
--color-border: #e2e8f0;
|
|
82
|
-
--color-text: #1e293b;
|
|
83
|
-
--color-text-muted: #64748b;
|
|
84
|
-
--color-text-secondary: #475569;
|
|
85
|
-
--color-text-light: #94a3b8;
|
|
86
|
-
|
|
87
|
-
/* --------------------------------------------------------------------------
|
|
88
|
-
Colors - Status
|
|
89
|
-
-------------------------------------------------------------------------- */
|
|
90
|
-
--color-success: #10b981;
|
|
91
|
-
--color-warning: #f59e0b;
|
|
92
|
-
--color-error: #ef4444;
|
|
93
|
-
--color-info: #3b82f6;
|
|
94
|
-
|
|
95
|
-
/* --------------------------------------------------------------------------
|
|
96
|
-
Colors - Graph Nodes (entity types)
|
|
97
|
-
-------------------------------------------------------------------------- */
|
|
98
|
-
--color-node-driver: #4caf50;
|
|
99
|
-
--color-node-skill: #2196f3;
|
|
100
|
-
--color-node-behaviour: #9c27b0;
|
|
101
|
-
--color-node-discipline: #ff9800;
|
|
102
|
-
--color-node-track: #00bcd4;
|
|
103
|
-
|
|
104
|
-
/* --------------------------------------------------------------------------
|
|
105
|
-
Spacing
|
|
106
|
-
-------------------------------------------------------------------------- */
|
|
107
|
-
--space-xs: 0.25rem;
|
|
108
|
-
--space-sm: 0.5rem;
|
|
109
|
-
--space-md: 1rem;
|
|
110
|
-
--space-lg: 1.5rem;
|
|
111
|
-
--space-xl: 2rem;
|
|
112
|
-
--space-2xl: 3rem;
|
|
113
|
-
|
|
114
|
-
/* --------------------------------------------------------------------------
|
|
115
|
-
Border Radius
|
|
116
|
-
-------------------------------------------------------------------------- */
|
|
117
|
-
--radius-sm: 0.25rem;
|
|
118
|
-
--radius-md: 0.5rem;
|
|
119
|
-
--radius-lg: 0.75rem;
|
|
120
|
-
--radius-xl: 1rem;
|
|
121
|
-
|
|
122
|
-
/* --------------------------------------------------------------------------
|
|
123
|
-
Shadows
|
|
124
|
-
-------------------------------------------------------------------------- */
|
|
125
|
-
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
|
|
126
|
-
--shadow-md:
|
|
127
|
-
0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
|
|
128
|
-
--shadow-lg:
|
|
129
|
-
0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
|
|
130
|
-
|
|
131
|
-
/* --------------------------------------------------------------------------
|
|
132
|
-
Typography
|
|
133
|
-
-------------------------------------------------------------------------- */
|
|
134
|
-
--font-family:
|
|
135
|
-
system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
|
|
136
|
-
sans-serif;
|
|
137
|
-
--font-family-mono:
|
|
138
|
-
"JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Menlo,
|
|
139
|
-
Consolas, monospace;
|
|
140
|
-
--font-size-xs: 0.75rem;
|
|
141
|
-
--font-size-sm: 0.875rem;
|
|
142
|
-
--font-size-base: 1rem;
|
|
143
|
-
--font-size-lg: 1.125rem;
|
|
144
|
-
--font-size-xl: 1.25rem;
|
|
145
|
-
--font-size-2xl: 1.5rem;
|
|
146
|
-
--font-size-3xl: 2rem;
|
|
147
|
-
|
|
148
|
-
/* --------------------------------------------------------------------------
|
|
149
|
-
Layout
|
|
150
|
-
-------------------------------------------------------------------------- */
|
|
151
|
-
--max-width: 1400px;
|
|
152
|
-
--drawer-width: 240px;
|
|
153
|
-
--top-bar-height: 48px;
|
|
154
|
-
|
|
155
|
-
/*
|
|
156
|
-
* Responsive breakpoints (used in @media queries):
|
|
157
|
-
* - 1280px: Tablet/laptop - layout stacking
|
|
158
|
-
* - 768px: Mobile - drawer overlays instead of pushing content
|
|
159
|
-
* - 640px: Mobile - full-width buttons, simplified layouts
|
|
160
|
-
*/
|
|
161
|
-
}
|
|
162
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Handout View Styles
|
|
3
|
-
*
|
|
4
|
-
* Handout-specific styles that override slide view.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
@layer handout {
|
|
8
|
-
.handout-view {
|
|
9
|
-
padding: var(--space-lg);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.handout-view .detail-page {
|
|
13
|
-
margin-bottom: var(--space-xl);
|
|
14
|
-
padding-bottom: var(--space-xl);
|
|
15
|
-
border-bottom: 3px solid var(--color-border);
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
.handout-view .detail-page:last-child {
|
|
19
|
-
border-bottom: none;
|
|
20
|
-
margin-bottom: 0;
|
|
21
|
-
padding-bottom: 0;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
.handout-section-title {
|
|
25
|
-
font-size: var(--font-size-xl);
|
|
26
|
-
margin-bottom: var(--space-lg);
|
|
27
|
-
padding-bottom: var(--space-sm);
|
|
28
|
-
border-bottom: 2px solid var(--color-primary);
|
|
29
|
-
}
|
|
30
|
-
}
|