@echelon-foundry/design-system 0.2.0 → 0.3.0-main.216.1
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/LICENSE +21 -0
- package/README.md +46 -0
- package/dist/all.css +5537 -841
- package/dist/assessment.css +55 -12
- package/dist/build-metrics.json +181 -5
- package/dist/components.css +2965 -36
- package/dist/foundations.css +90 -0
- package/dist/marketing/forma-all.css +8162 -0
- package/dist/marketing/forma-echelon-marketing.css +2109 -0
- package/dist/marketing/forma-marketing-theme-echelon.css +163 -0
- package/dist/marketing/forma-marketing.css +1947 -0
- package/dist/marketing/forma-marketing.manifest.json +52 -0
- package/dist/marketing/forma-marketing.sha256 +4 -0
- package/dist/marketing.css +1198 -0
- package/dist/patterns/active-filter-summary.html +10 -0
- package/dist/patterns/attention-path.html +29 -0
- package/dist/patterns/badge.html +9 -0
- package/dist/patterns/callout.html +23 -0
- package/dist/patterns/card-grid.html +25 -0
- package/dist/patterns/character-grid-3270.html +39 -0
- package/dist/patterns/character-grid-field.html +21 -0
- package/dist/patterns/character-grid-keys.html +20 -0
- package/dist/patterns/character-grid-reveal.html +16 -0
- package/dist/patterns/character-grid-selection.html +30 -0
- package/dist/patterns/character-grid-status.html +11 -0
- package/dist/patterns/character-grid-workflow.html +147 -0
- package/dist/patterns/character-grid.html +16 -0
- package/dist/patterns/cluster.html +5 -0
- package/dist/patterns/code-sample.html +9 -0
- package/dist/patterns/command-group.html +6 -0
- package/dist/patterns/comparison-grid.html +7 -0
- package/dist/patterns/comparison-pairs.html +13 -0
- package/dist/patterns/cta.html +12 -0
- package/dist/patterns/dense-ledger.html +7 -0
- package/dist/patterns/diagnostic-status.html +7 -0
- package/dist/patterns/diagram.html +49 -0
- package/dist/patterns/documentation-layout.html +18 -0
- package/dist/patterns/emphasis-budget.html +21 -0
- package/dist/patterns/entry-index.html +16 -0
- package/dist/patterns/evidence-relationship.html +1 -0
- package/dist/patterns/facts.html +7 -0
- package/dist/patterns/fault-banner.html +19 -0
- package/dist/patterns/fault-blocking.html +25 -0
- package/dist/patterns/fault-details.html +11 -0
- package/dist/patterns/fault-inline.html +17 -0
- package/dist/patterns/fault-notification.html +20 -0
- package/dist/patterns/fault-reference.html +5 -0
- package/dist/patterns/fault-summary.html +20 -0
- package/dist/patterns/fault.html +17 -0
- package/dist/patterns/feed-item.html +12 -0
- package/dist/patterns/focus-stage.html +4 -0
- package/dist/patterns/frame.html +4 -0
- package/dist/patterns/freshness.html +1 -0
- package/dist/patterns/handoff-summary.html +1 -0
- package/dist/patterns/hero.html +17 -0
- package/dist/patterns/hierarchy-tree.html +11 -0
- package/dist/patterns/identifier.html +9 -0
- package/dist/patterns/landmark-region.html +4 -0
- package/dist/patterns/lane-board.html +10 -0
- package/dist/patterns/marketing-shell.html +40 -0
- package/dist/patterns/measure.html +4 -0
- package/dist/patterns/metric-value-change.html +9 -0
- package/dist/patterns/mosaic.html +6 -0
- package/dist/patterns/navigation-shell.html +8 -0
- package/dist/patterns/overflow-command-disclosure.html +6 -0
- package/dist/patterns/overview-disclosure.html +12 -0
- package/dist/patterns/path-summary.html +8 -0
- package/dist/patterns/priority-stack.html +4 -0
- package/dist/patterns/progress-bar.html +15 -0
- package/dist/patterns/prose.html +9 -0
- package/dist/patterns/rail.html +4 -0
- package/dist/patterns/recovery-actions.html +5 -0
- package/dist/patterns/relationship-index.html +8 -0
- package/dist/patterns/reorder-states.html +31 -0
- package/dist/patterns/resizable-split-pane.html +11 -0
- package/dist/patterns/responsive-grid.html +5 -0
- package/dist/patterns/scope-trail.html +1 -0
- package/dist/patterns/scroll-progress.html +6 -0
- package/dist/patterns/section-heading.html +12 -0
- package/dist/patterns/security-blockers.html +3 -0
- package/dist/patterns/security-evidence-age.html +1 -0
- package/dist/patterns/security-evidence-chain.html +2 -0
- package/dist/patterns/security-exception.html +2 -0
- package/dist/patterns/security-invariant-result.html +1 -0
- package/dist/patterns/security-posture.html +22 -0
- package/dist/patterns/security-state-matrix.html +5 -0
- package/dist/patterns/security-trend.html +1 -0
- package/dist/patterns/security-unknown.html +2 -0
- package/dist/patterns/sidebar.html +4 -0
- package/dist/patterns/site-footer.html +12 -0
- package/dist/patterns/site-header.html +18 -0
- package/dist/patterns/spatial-canvas.html +13 -0
- package/dist/patterns/spinner.html +4 -0
- package/dist/patterns/split-pane.html +4 -0
- package/dist/patterns/stack.html +5 -0
- package/dist/patterns/state-survivability.html +19 -0
- package/dist/patterns/steps.html +8 -0
- package/dist/patterns/switcher.html +4 -0
- package/dist/patterns/tooltip.html +48 -0
- package/dist/patterns/verification-frame.html +22 -0
- package/dist/patterns/workspace-shell.html +6 -0
- package/dist/tokens.css +436 -1
- package/docs/BRANDING.md +6 -1
- package/docs/MARKETING-SITES.md +321 -0
- package/figma/component-contracts.json +1544 -0
- package/package.json +34 -8
- package/patterns/active-filter-summary.html +10 -0
- package/patterns/aegis-faults.manifest.md +81 -0
- package/patterns/attention-path.html +29 -0
- package/patterns/badge.html +9 -0
- package/patterns/callout.html +23 -0
- package/patterns/card-grid.html +25 -0
- package/patterns/character-grid-3270.html +39 -0
- package/patterns/character-grid-field.html +21 -0
- package/patterns/character-grid-keys.html +20 -0
- package/patterns/character-grid-reveal.html +16 -0
- package/patterns/character-grid-selection.html +30 -0
- package/patterns/character-grid-status.html +11 -0
- package/patterns/character-grid-workflow.html +147 -0
- package/patterns/character-grid.html +16 -0
- package/patterns/cluster.html +5 -0
- package/patterns/code-sample.html +9 -0
- package/patterns/command-group.html +6 -0
- package/patterns/comparison-grid.html +7 -0
- package/patterns/comparison-pairs.html +13 -0
- package/patterns/cta.html +12 -0
- package/patterns/dense-ledger.html +7 -0
- package/patterns/diagnostic-status.html +7 -0
- package/patterns/diagram.html +49 -0
- package/patterns/documentation-layout.html +18 -0
- package/patterns/emphasis-budget.html +21 -0
- package/patterns/entry-index.html +16 -0
- package/patterns/evidence-relationship.html +1 -0
- package/patterns/facts.html +7 -0
- package/patterns/fault-banner.html +19 -0
- package/patterns/fault-blocking.html +25 -0
- package/patterns/fault-details.html +11 -0
- package/patterns/fault-inline.html +17 -0
- package/patterns/fault-notification.html +20 -0
- package/patterns/fault-reference.html +5 -0
- package/patterns/fault-summary.html +20 -0
- package/patterns/fault.html +17 -0
- package/patterns/feed-item.html +12 -0
- package/patterns/focus-stage.html +4 -0
- package/patterns/frame.html +4 -0
- package/patterns/freshness.html +1 -0
- package/patterns/handoff-summary.html +1 -0
- package/patterns/hero.html +17 -0
- package/patterns/hierarchy-tree.html +11 -0
- package/patterns/identifier.html +9 -0
- package/patterns/landmark-region.html +4 -0
- package/patterns/lane-board.html +10 -0
- package/patterns/manifest.md +2 -0
- package/patterns/marketing-shell.html +40 -0
- package/patterns/measure.html +4 -0
- package/patterns/metric-value-change.html +9 -0
- package/patterns/mosaic.html +6 -0
- package/patterns/navigation-shell.html +8 -0
- package/patterns/overflow-command-disclosure.html +6 -0
- package/patterns/overview-disclosure.html +12 -0
- package/patterns/path-summary.html +8 -0
- package/patterns/priority-stack.html +4 -0
- package/patterns/progress-bar.html +15 -0
- package/patterns/prose.html +9 -0
- package/patterns/rail.html +4 -0
- package/patterns/recovery-actions.html +5 -0
- package/patterns/relationship-index.html +8 -0
- package/patterns/reorder-states.html +31 -0
- package/patterns/resizable-split-pane.html +11 -0
- package/patterns/responsive-grid.html +5 -0
- package/patterns/scope-trail.html +1 -0
- package/patterns/scroll-progress.html +6 -0
- package/patterns/section-heading.html +12 -0
- package/patterns/security-blockers.html +3 -0
- package/patterns/security-evidence-age.html +1 -0
- package/patterns/security-evidence-chain.html +2 -0
- package/patterns/security-exception.html +2 -0
- package/patterns/security-invariant-result.html +1 -0
- package/patterns/security-posture.html +22 -0
- package/patterns/security-posture.manifest.md +20 -0
- package/patterns/security-state-matrix.html +5 -0
- package/patterns/security-trend.html +1 -0
- package/patterns/security-unknown.html +2 -0
- package/patterns/sidebar.html +4 -0
- package/patterns/site-footer.html +12 -0
- package/patterns/site-header.html +18 -0
- package/patterns/spatial-canvas.html +13 -0
- package/patterns/spinner.html +4 -0
- package/patterns/split-pane.html +4 -0
- package/patterns/stack.html +5 -0
- package/patterns/state-survivability.html +19 -0
- package/patterns/steps.html +8 -0
- package/patterns/switcher.html +4 -0
- package/patterns/tooltip.html +48 -0
- package/patterns/verification-frame.html +22 -0
- package/patterns/workspace-shell.html +6 -0
- package/schemas/brand-manifest.schema.json +17 -3
- package/tokens/echelon.tokens.json +2801 -0
package/dist/foundations.css
CHANGED
|
@@ -64,12 +64,31 @@
|
|
|
64
64
|
background: var(--ef-color-surface-primary, #f2efe7);
|
|
65
65
|
color: var(--ef-color-text-primary, #171a18);
|
|
66
66
|
font-weight: 700;
|
|
67
|
+
/*
|
|
68
|
+
* Hover and press feedback is perceptual interpolation (MOT-014, MOT-026):
|
|
69
|
+
* it changes the surface, never the hit target's position or size. The
|
|
70
|
+
* fallbacks restate the shared vocabulary for pages that load
|
|
71
|
+
* foundations.css without components.css.
|
|
72
|
+
*/
|
|
73
|
+
transition:
|
|
74
|
+
background-color var(--ef-motion-perceptual-duration, 120ms) var(--ef-motion-perceptual-easing, cubic-bezier(0.2, 0, 0, 1)),
|
|
75
|
+
border-color var(--ef-motion-perceptual-duration, 120ms) var(--ef-motion-perceptual-easing, cubic-bezier(0.2, 0, 0, 1));
|
|
67
76
|
}
|
|
68
77
|
|
|
69
78
|
:where(button, .ef-button):where(:not(:disabled)):hover {
|
|
70
79
|
background: var(--ef-color-surface-secondary, #e3e0d7);
|
|
71
80
|
}
|
|
72
81
|
|
|
82
|
+
/*
|
|
83
|
+
* Press onset is a direct projection of pointer/key down: it begins
|
|
84
|
+
* immediately and never delays activation. Release returns through the
|
|
85
|
+
* perceptual interpolation above.
|
|
86
|
+
*/
|
|
87
|
+
:where(button, .ef-button):where(:not(:disabled)):active {
|
|
88
|
+
background: color-mix(in srgb, var(--ef-color-surface-secondary, #e3e0d7) 82%, var(--ef-color-text-primary, #171a18));
|
|
89
|
+
transition-duration: var(--ef-motion-direct-duration, 0ms);
|
|
90
|
+
}
|
|
91
|
+
|
|
73
92
|
:where(input:not([type="checkbox"], [type="radio"], [type="range"]), textarea, select) {
|
|
74
93
|
min-block-size: 2.75rem;
|
|
75
94
|
inline-size: 100%;
|
|
@@ -91,6 +110,7 @@
|
|
|
91
110
|
.ef-grid { display: grid; gap: var(--ef-grid-gap, var(--ef-primitive-spacing-4, 1rem)); grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ef-grid-min, 16rem)), 1fr)); }
|
|
92
111
|
.ef-section { padding-block: var(--ef-section-space, var(--ef-primitive-spacing-7, 3rem)); }
|
|
93
112
|
.ef-surface { min-inline-size: 0; padding: var(--ef-surface-space, var(--ef-primitive-spacing-5, 1.5rem)); background: var(--ef-color-surface-secondary, #e3e0d7); color: var(--ef-color-text-on-secondary-surface, #3a403c); border: 1px solid var(--ef-color-border-subtle, #e3e0d7); }
|
|
113
|
+
.ef-surface :where(h1, h2, h3, h4, h5, h6, p) { color: inherit; }
|
|
94
114
|
|
|
95
115
|
:where(h1, h2, h3, h4, h5, h6, p, a, label, legend, td, th) {
|
|
96
116
|
overflow-wrap: anywhere;
|
|
@@ -106,8 +126,78 @@
|
|
|
106
126
|
}
|
|
107
127
|
|
|
108
128
|
@media (forced-colors: active) {
|
|
129
|
+
/*
|
|
130
|
+
* Forced-colors token projection (FORMA-A11Y-001). Every semantic color
|
|
131
|
+
* token resolves to a system color, so author colors agree with what the
|
|
132
|
+
* user agent forces: foreground roles become CanvasText and surfaces
|
|
133
|
+
* become Canvas, for every theme, brand and skin scope. Without this,
|
|
134
|
+
* theme text colors survive where engines do not force them (for example
|
|
135
|
+
* -webkit-text-fill-color, which resolves currentcolor before forcing, and
|
|
136
|
+
* engines that only emulate the media query), producing light theme text
|
|
137
|
+
* on a forced Canvas. !important in this early layer outranks later theme
|
|
138
|
+
* and brand layers: the user's forced-colors choice wins. Selection and
|
|
139
|
+
* state rules that need Highlight keep their explicit forced-colors rules.
|
|
140
|
+
*/
|
|
141
|
+
:root, [data-ef-theme], [data-ef-brand], [data-ef-skin] {
|
|
142
|
+
--ef-color-text-primary: CanvasText !important;
|
|
143
|
+
--ef-color-text-heading: CanvasText !important;
|
|
144
|
+
--ef-color-text-secondary: CanvasText !important;
|
|
145
|
+
--ef-color-text-muted: CanvasText !important;
|
|
146
|
+
--ef-color-text-on-secondary-surface: CanvasText !important;
|
|
147
|
+
--ef-color-text-inverse: CanvasText !important;
|
|
148
|
+
--ef-color-accent-primary: CanvasText !important;
|
|
149
|
+
--ef-color-accent-secondary: CanvasText !important;
|
|
150
|
+
--ef-color-accent-hover: CanvasText !important;
|
|
151
|
+
--ef-color-border-functional: CanvasText !important;
|
|
152
|
+
--ef-color-border-subtle: CanvasText !important;
|
|
153
|
+
--ef-color-status-danger: CanvasText !important;
|
|
154
|
+
--ef-color-status-warning: CanvasText !important;
|
|
155
|
+
--ef-color-status-success: CanvasText !important;
|
|
156
|
+
--ef-color-status-info: CanvasText !important;
|
|
157
|
+
--ef-color-control-active: CanvasText !important;
|
|
158
|
+
--ef-color-control-thumb: Canvas !important;
|
|
159
|
+
--ef-color-control-track: CanvasText !important;
|
|
160
|
+
--ef-color-focus-ring: CanvasText !important;
|
|
161
|
+
--ef-color-focus-gap: Canvas !important;
|
|
162
|
+
--ef-color-surface-primary: Canvas !important;
|
|
163
|
+
--ef-color-surface-secondary: Canvas !important;
|
|
164
|
+
--ef-color-surface-elevated: Canvas !important;
|
|
165
|
+
--ef-color-surface-inverse: Canvas !important;
|
|
166
|
+
--ef-color-surface-inverse-secondary: Canvas !important;
|
|
167
|
+
color: CanvasText;
|
|
168
|
+
background-color: Canvas;
|
|
169
|
+
}
|
|
170
|
+
|
|
109
171
|
:where(button, .ef-button, input, textarea, select, .ef-surface) {
|
|
110
172
|
border-color: CanvasText;
|
|
111
173
|
}
|
|
112
174
|
}
|
|
175
|
+
|
|
176
|
+
/* Visual Engineering composition primitives -------------------------- */
|
|
177
|
+
.ef-breakout { inline-size: min(100%, var(--ef-breakout-max, 90rem)); max-inline-size: none; }
|
|
178
|
+
.ef-rail { --ef-rail-measure: minmax(12rem, 18rem); --ef-rail-content-min: 50%; --ef-rail-space: var(--ef-primitive-spacing-5, 1.5rem); display: grid; grid-template-columns: var(--ef-rail-measure) minmax(var(--ef-rail-content-min), 1fr); gap: var(--ef-rail-space); align-items: start; }
|
|
179
|
+
.ef-rail[data-side="end"] { grid-template-columns: minmax(var(--ef-rail-content-min), 1fr) var(--ef-rail-measure); }
|
|
180
|
+
.ef-rail > * { min-inline-size: 0; }
|
|
181
|
+
.ef-responsive-grid { --ef-responsive-grid-min: 16rem; --ef-responsive-grid-space: var(--ef-primitive-spacing-4, 1rem); display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--ef-responsive-grid-min)), 1fr)); gap: var(--ef-responsive-grid-space); }
|
|
182
|
+
.ef-responsive-grid > * { min-inline-size: 0; }
|
|
183
|
+
.ef-span-2 { grid-column: span 2; }
|
|
184
|
+
.ef-span-full { grid-column: 1 / -1; }
|
|
185
|
+
.ef-bounded-overflow { max-inline-size: 100%; overflow: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
|
|
186
|
+
.ef-priority-stack { --ef-priority-min: 18rem; --ef-priority-space: var(--ef-primitive-spacing-4, 1rem); display: flex; flex-wrap: wrap; gap: var(--ef-priority-space); align-items: start; }
|
|
187
|
+
.ef-priority-stack > * { flex: 1 1 var(--ef-priority-min); min-inline-size: min(100%, var(--ef-priority-min)); }
|
|
188
|
+
.ef-priority-stack > [data-priority="primary"] { flex-grow: 2; }
|
|
189
|
+
.ef-focus-stage { --ef-focus-stage-support: minmax(14rem, 20rem); --ef-focus-stage-space: var(--ef-primitive-spacing-5, 1.5rem); display: grid; grid-template-columns: minmax(0, 1fr) var(--ef-focus-stage-support); gap: var(--ef-focus-stage-space); align-items: start; }
|
|
190
|
+
.ef-focus-stage__primary, .ef-focus-stage__support { min-inline-size: 0; }
|
|
191
|
+
.ef-mosaic { --ef-mosaic-space: var(--ef-primitive-spacing-4, 1rem); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ef-mosaic-space); }
|
|
192
|
+
.ef-mosaic > * { min-inline-size: 0; }
|
|
193
|
+
.ef-mosaic > [data-span="2"] { grid-column: span 2; }
|
|
194
|
+
.ef-mosaic > [data-span="full"] { grid-column: 1 / -1; }
|
|
195
|
+
.ef-dense-ledger { inline-size: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
|
|
196
|
+
.ef-dense-ledger :is(th, td) { padding: var(--ef-ledger-cell-space, var(--ef-primitive-spacing-2, 0.5rem)); border-block-end: 1px solid var(--ef-color-border-subtle, #e3e0d7); text-align: start; vertical-align: top; }
|
|
197
|
+
[data-density="relaxed"] { --ef-density-space: var(--ef-primitive-spacing-5, 1.5rem); }
|
|
198
|
+
[data-density="standard"] { --ef-density-space: var(--ef-primitive-spacing-4, 1rem); }
|
|
199
|
+
[data-density="compact"], [data-density="analytical"] { --ef-density-space: var(--ef-primitive-spacing-2, 0.5rem); }
|
|
200
|
+
:where(.ef-stack, .ef-grid, .ef-responsive-grid, .ef-priority-stack)[data-density] { gap: var(--ef-density-space); }
|
|
201
|
+
@media (max-width: 48rem) { .ef-rail, .ef-rail[data-side="end"], .ef-focus-stage { grid-template-columns: minmax(0, 1fr); } .ef-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ef-span-2 { grid-column: 1 / -1; } }
|
|
202
|
+
@media (max-width: 30rem) { .ef-mosaic { grid-template-columns: minmax(0, 1fr); } .ef-mosaic > [data-span="2"], .ef-mosaic > [data-span="full"] { grid-column: auto; } .ef-responsive-grid { --ef-responsive-grid-min: 100%; } .ef-priority-stack { --ef-priority-min: 100%; } }
|
|
113
203
|
}
|