@solexllc/usx-theme 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.
package/README.md ADDED
@@ -0,0 +1,92 @@
1
+ Design tokens package for USX.
2
+
3
+ This package stores platform-agnostic tokens in JSON source files and compiles them for CSS and JavaScript consumers.
4
+
5
+ ## Structure
6
+
7
+ - `src/color.json`: color tokens (`primary`, `secondary`, `background`, `surface`, `text`)
8
+ - `src/spacing.json`: spacing scale tokens (`xs`, `sm`, `md`, `lg`, `xl`)
9
+ - `src/typography.json`: typography tokens
10
+ - `src/radius.json`: border radius tokens
11
+ - `src/_variables.scss`: Sass design tokens (the theme layer consumed by `@solexllc/usx`)
12
+ - `src/theme-manifest.js`: canonical manifest of themeable tokens (names, CSS variables, defaults, derivation)
13
+ - `dist/tokens.css`: generated CSS variables
14
+ - `dist/tokens.js`: generated JS export
15
+ - `dist/theme-manifest.json`: generated theme manifest
16
+
17
+ ## Build
18
+
19
+ ```sh
20
+ pnpm build # node build.js → dist/
21
+ pnpm dev # node build.js --watch (used by the root `pnpm dev`)
22
+ ```
23
+
24
+ `src/system-colors.generated.js` (the USWDS system-color palette used by the
25
+ Theme Playground) is generated from `@uswds/uswds`'s own token JSON and is
26
+ committed. Regenerate it only after bumping `@uswds/uswds`:
27
+
28
+ ```sh
29
+ pnpm generate:system-colors
30
+ ```
31
+
32
+ ## Theming
33
+
34
+ Every themeable Sass token in `src/_variables.scss` is a **triple**:
35
+
36
+ ```scss
37
+ $color-primary-static: #2563eb !default; // plain value — the only thing Sass math may consume
38
+ $usx-color-primary-var: --usx-color-primary !default; // CSS custom property hook (null to opt out)
39
+ $usx-color-primary: usx-var($usx-color-primary-var, $color-primary-static) !default; // published token
40
+ ```
41
+
42
+ The published token (what component SCSS consumes by name) resolves to
43
+ `var(--usx-color-primary, #2563eb)` by default, so consumers have three ways
44
+ to use USX — **all variables are optional**:
45
+
46
+ 1. **Do nothing.** Defaults are baked in as `var()` fallbacks; the output looks
47
+ identical to a fully static build.
48
+ 2. **Compile-time overrides** — classic Sass configuration:
49
+
50
+ ```scss
51
+ @use 'pkg:@solexllc/usx-theme/variables' with ($color-primary-static: #b00020);
52
+ ```
53
+
54
+ 3. **Runtime theming** — set CSS custom properties anywhere in the cascade
55
+ (`:root` or a wrapper element), no recompile needed:
56
+
57
+ ```css
58
+ :root {
59
+ --usx-color-primary: #b00020;
60
+ --usx-color-primary-hover: #e60524;
61
+ }
62
+ ```
63
+
64
+ ### Opting out of CSS variables
65
+
66
+ Set the master switch to compile every published token to its static value —
67
+ the output contains zero `var()` references:
68
+
69
+ ```scss
70
+ @use 'pkg:@solexllc/usx-theme/variables' with ($usx-css-vars: false);
71
+ ```
72
+
73
+ Individual tokens can also opt out by nulling their hook
74
+ (e.g. `$usx-color-primary-var: null`).
75
+
76
+ ### Notes
77
+
78
+ - **Derived shades are first-class tokens.** Overriding `--usx-color-primary`
79
+ does NOT recompute `--usx-color-primary-darker` etc. — set each shade you
80
+ care about (the Theme playground's export includes them automatically).
81
+ - **Compile-time only:** breakpoints, media queries, and the `units()`
82
+ function cannot be themed at runtime (CSS cannot use `var()` in media
83
+ queries).
84
+ - CSS variables are never written directly in component SCSS; the indirection
85
+ lives entirely in this package.
86
+
87
+ ### Theme playground
88
+
89
+ The Storybook page **Documentation → Theme → Playground** renders the component showcase with
90
+ live controls for every manifest token, auto-derives shades when a base color
91
+ changes, and exports a ready-to-use `:root { --usx-*: ... }` block
92
+ (copy/download).
package/build.js ADDED
@@ -0,0 +1,132 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ import { fileURLToPath, pathToFileURL } from 'url';
4
+
5
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
+ const srcDir = path.join(__dirname, 'src');
7
+ const primitivesDir = path.join(srcDir, 'primitives');
8
+ const distDir = path.join(__dirname, 'dist');
9
+ const manifestPath = path.join(srcDir, 'theme-manifest.js');
10
+
11
+ // Re-imports theme-manifest.js with a cache-busting query so `--watch` picks
12
+ // up edits (ESM's module cache would otherwise serve the first-loaded copy
13
+ // forever within this long-lived process).
14
+ async function loadThemeManifest() {
15
+ const url = `${pathToFileURL(manifestPath).href}?update=${Date.now()}`;
16
+ const mod = await import(url);
17
+ return mod.themeManifest;
18
+ }
19
+
20
+ const tokenFiles = [
21
+ { key: 'color', file: 'color.json' },
22
+ { key: 'spacing', file: 'spacing.json' },
23
+ { key: 'typography', file: 'typography.json' },
24
+ { key: 'radius', file: 'radius.json' }
25
+ ];
26
+
27
+ function loadTokens() {
28
+ const tokens = {};
29
+
30
+ for (const { key, file } of tokenFiles) {
31
+ const filePath = path.join(primitivesDir, file);
32
+ const content = fs.readFileSync(filePath, 'utf8');
33
+ tokens[key] = JSON.parse(content);
34
+ }
35
+
36
+ return tokens;
37
+ }
38
+
39
+ function buildCss(tokens) {
40
+ const lines = [];
41
+
42
+ for (const [group, groupTokens] of Object.entries(tokens)) {
43
+ for (const [name, value] of Object.entries(groupTokens)) {
44
+ lines.push(` --${group}-${name}: ${value};`);
45
+ }
46
+ }
47
+
48
+ return `:root {\n${lines.join('\n')}\n}\n`;
49
+ }
50
+
51
+ // theme.css — defines every --usx-* custom property at its default value.
52
+ // Compiled component CSS emits bare var(--usx-*) references (no fallbacks),
53
+ // so every manifest entry must be defined here. radius-advanced defaults are
54
+ // themselves var(--usx-radius-<group>) references, preserving the
55
+ // per-component → group fall-through.
56
+ function buildThemeCss(themeManifest) {
57
+ const lines = themeManifest
58
+ .map((t) => ` ${t.cssVar}: ${t.defaultValue};`);
59
+
60
+ return `/* GENERATED by build.js from theme-manifest.js — do not edit. */\n:root {\n${lines.join('\n')}\n}\n`;
61
+ }
62
+
63
+ // _hooks.scss — loads the variables module with every CSS variable hook
64
+ // enabled. Load this before any component styles to opt in to runtime
65
+ // theming. Hook Sass names derive from cssVar: --usx-x → $usx-x-var.
66
+ function buildHooksScss(themeManifest) {
67
+ const lines = themeManifest.map(
68
+ (t) => ` $${t.cssVar.slice(2)}-var: ${t.cssVar},`
69
+ );
70
+
71
+ return `// GENERATED by build.js from theme-manifest.js \u2014 do not edit.\n// Enables every runtime theming hook. Load before component styles:\n// @use 'pkg:@solexllc/usx-theme/hooks';\n@forward 'pkg:@solexllc/usx-theme/variables' with (\n${lines.join('\n')}\n);\n`;
72
+ }
73
+
74
+ function buildJs(tokens) {
75
+ return `module.exports = ${JSON.stringify(tokens, null, 2)};\n`;
76
+ }
77
+
78
+ async function build() {
79
+ const themeManifest = await loadThemeManifest();
80
+ const tokens = loadTokens();
81
+
82
+ fs.mkdirSync(distDir, { recursive: true });
83
+
84
+ fs.writeFileSync(path.join(distDir, 'tokens.css'), buildCss(tokens), 'utf8');
85
+ fs.writeFileSync(path.join(distDir, 'theme.css'), buildThemeCss(themeManifest), 'utf8');
86
+ fs.writeFileSync(path.join(distDir, '_hooks.scss'), buildHooksScss(themeManifest), 'utf8');
87
+ fs.writeFileSync(path.join(distDir, 'tokens.js'), buildJs(tokens), 'utf8');
88
+ fs.writeFileSync(
89
+ path.join(distDir, 'theme-manifest.json'),
90
+ JSON.stringify(themeManifest, null, 2) + '\n',
91
+ 'utf8'
92
+ );
93
+
94
+ console.log(`[${new Date().toLocaleTimeString()}] Built tokens to dist/ (tokens.css, theme.css, _hooks.scss, tokens.js, theme-manifest.json)`);
95
+ }
96
+
97
+ // `node build.js --watch` rebuilds on every change under src/ (primitives
98
+ // JSON, theme-manifest.js, etc.) instead of exiting after one build — handy
99
+ // alongside `storybook dev` so token edits show up without a manual rebuild.
100
+ async function watch() {
101
+ await build().catch((err) => console.error(err));
102
+
103
+ let pending = false;
104
+ const rebuild = () => {
105
+ if (pending) return;
106
+ pending = true;
107
+ // Debounce: editors often emit several fs events per save.
108
+ setTimeout(async () => {
109
+ pending = false;
110
+ try {
111
+ await build();
112
+ } catch (err) {
113
+ console.error(err);
114
+ }
115
+ }, 100);
116
+ };
117
+
118
+ fs.watch(srcDir, { recursive: true }, (_event, filename) => {
119
+ if (filename) rebuild();
120
+ });
121
+
122
+ console.log(`Watching ${srcDir} for changes...`);
123
+ }
124
+
125
+ if (process.argv.includes('--watch')) {
126
+ watch();
127
+ } else {
128
+ build().catch((err) => {
129
+ console.error(err);
130
+ process.exitCode = 1;
131
+ });
132
+ }
@@ -0,0 +1,277 @@
1
+ // GENERATED by build.js from theme-manifest.js — do not edit.
2
+ // Enables every runtime theming hook. Load before component styles:
3
+ // @use 'pkg:@solexllc/usx-theme/hooks';
4
+ @forward 'pkg:@solexllc/usx-theme/variables' with (
5
+ $usx-color-primary-var: --usx-color-primary,
6
+ $usx-color-primary-lighter-var: --usx-color-primary-lighter,
7
+ $usx-color-primary-light-var: --usx-color-primary-light,
8
+ $usx-color-primary-vivid-var: --usx-color-primary-vivid,
9
+ $usx-color-primary-dark-var: --usx-color-primary-dark,
10
+ $usx-color-primary-darker-var: --usx-color-primary-darker,
11
+ $usx-color-primary-hover-var: --usx-color-primary-hover,
12
+ $usx-color-primary-active-var: --usx-color-primary-active,
13
+ $usx-color-secondary-var: --usx-color-secondary,
14
+ $usx-color-secondary-lighter-var: --usx-color-secondary-lighter,
15
+ $usx-color-secondary-light-var: --usx-color-secondary-light,
16
+ $usx-color-secondary-vivid-var: --usx-color-secondary-vivid,
17
+ $usx-color-secondary-dark-var: --usx-color-secondary-dark,
18
+ $usx-color-secondary-darker-var: --usx-color-secondary-darker,
19
+ $usx-color-secondary-hover-var: --usx-color-secondary-hover,
20
+ $usx-color-secondary-active-var: --usx-color-secondary-active,
21
+ $usx-color-accent-cool-var: --usx-color-accent-cool,
22
+ $usx-color-accent-cool-lighter-var: --usx-color-accent-cool-lighter,
23
+ $usx-color-accent-cool-light-var: --usx-color-accent-cool-light,
24
+ $usx-color-accent-cool-dark-var: --usx-color-accent-cool-dark,
25
+ $usx-color-accent-cool-darker-var: --usx-color-accent-cool-darker,
26
+ $usx-color-accent-cool-hover-var: --usx-color-accent-cool-hover,
27
+ $usx-color-accent-cool-active-var: --usx-color-accent-cool-active,
28
+ $usx-color-accent-warm-var: --usx-color-accent-warm,
29
+ $usx-color-accent-warm-lighter-var: --usx-color-accent-warm-lighter,
30
+ $usx-color-accent-warm-light-var: --usx-color-accent-warm-light,
31
+ $usx-color-accent-warm-dark-var: --usx-color-accent-warm-dark,
32
+ $usx-color-accent-warm-darker-var: --usx-color-accent-warm-darker,
33
+ $usx-color-accent-warm-hover-var: --usx-color-accent-warm-hover,
34
+ $usx-color-accent-warm-active-var: --usx-color-accent-warm-active,
35
+ $usx-color-base-var: --usx-color-base,
36
+ $usx-color-base-lightest-var: --usx-color-base-lightest,
37
+ $usx-color-base-lighter-var: --usx-color-base-lighter,
38
+ $usx-color-base-light-var: --usx-color-base-light,
39
+ $usx-color-base-dark-var: --usx-color-base-dark,
40
+ $usx-color-base-darker-var: --usx-color-base-darker,
41
+ $usx-color-base-darkest-var: --usx-color-base-darkest,
42
+ $usx-color-base-ink-var: --usx-color-base-ink,
43
+ $usx-color-base-hover-var: --usx-color-base-hover,
44
+ $usx-color-base-active-var: --usx-color-base-active,
45
+ $usx-color-info-var: --usx-color-info,
46
+ $usx-color-info-lighter-var: --usx-color-info-lighter,
47
+ $usx-color-info-light-var: --usx-color-info-light,
48
+ $usx-color-info-dark-var: --usx-color-info-dark,
49
+ $usx-color-info-darker-var: --usx-color-info-darker,
50
+ $usx-color-warning-var: --usx-color-warning,
51
+ $usx-color-warning-lighter-var: --usx-color-warning-lighter,
52
+ $usx-color-warning-light-var: --usx-color-warning-light,
53
+ $usx-color-warning-dark-var: --usx-color-warning-dark,
54
+ $usx-color-warning-darker-var: --usx-color-warning-darker,
55
+ $usx-color-success-var: --usx-color-success,
56
+ $usx-color-success-lighter-var: --usx-color-success-lighter,
57
+ $usx-color-success-light-var: --usx-color-success-light,
58
+ $usx-color-success-dark-var: --usx-color-success-dark,
59
+ $usx-color-success-darker-var: --usx-color-success-darker,
60
+ $usx-color-error-var: --usx-color-error,
61
+ $usx-color-error-lighter-var: --usx-color-error-lighter,
62
+ $usx-color-error-light-var: --usx-color-error-light,
63
+ $usx-color-error-dark-var: --usx-color-error-dark,
64
+ $usx-color-error-darker-var: --usx-color-error-darker,
65
+ $usx-color-emergency-var: --usx-color-emergency,
66
+ $usx-color-emergency-dark-var: --usx-color-emergency-dark,
67
+ $usx-color-disabled-var: --usx-color-disabled,
68
+ $usx-color-disabled-lighter-var: --usx-color-disabled-lighter,
69
+ $usx-color-disabled-light-var: --usx-color-disabled-light,
70
+ $usx-color-disabled-dark-var: --usx-color-disabled-dark,
71
+ $usx-color-disabled-darker-var: --usx-color-disabled-darker,
72
+ $usx-color-focus-var: --usx-color-focus,
73
+ $usx-color-visited-var: --usx-color-visited,
74
+ $usx-surface-1-var: --usx-surface-1,
75
+ $usx-surface-2-var: --usx-surface-2,
76
+ $usx-surface-3-var: --usx-surface-3,
77
+ $usx-color-border-var: --usx-color-border,
78
+ $usx-color-beta-var: --usx-color-beta,
79
+ $usx-color-test-var: --usx-color-test,
80
+ $usx-color-dev-var: --usx-color-dev,
81
+ $usx-text-ink-var: --usx-text-ink,
82
+ $usx-text-muted-var: --usx-text-muted,
83
+ $usx-text-subtle-var: --usx-text-subtle,
84
+ $usx-text-inverse-var: --usx-text-inverse,
85
+ $usx-spacing-xs-var: --usx-spacing-xs,
86
+ $usx-spacing-sm-var: --usx-spacing-sm,
87
+ $usx-spacing-md-var: --usx-spacing-md,
88
+ $usx-spacing-lg-var: --usx-spacing-lg,
89
+ $usx-spacing-xl-var: --usx-spacing-xl,
90
+ $usx-radius-sm-var: --usx-radius-sm,
91
+ $usx-radius-md-var: --usx-radius-md,
92
+ $usx-radius-lg-var: --usx-radius-lg,
93
+ $usx-radius-xl-var: --usx-radius-xl,
94
+ $usx-radius-full-var: --usx-radius-full,
95
+ $usx-radius-box-var: --usx-radius-box,
96
+ $usx-radius-field-var: --usx-radius-field,
97
+ $usx-radius-button-var: --usx-radius-button,
98
+ $usx-radius-selector-var: --usx-radius-selector,
99
+ $usx-radius-none-var: --usx-radius-none,
100
+ $usx-accordion-radius-var: --usx-accordion-radius,
101
+ $usx-alert-radius-var: --usx-alert-radius,
102
+ $usx-input-radius-var: --usx-input-radius,
103
+ $usx-textarea-radius-var: --usx-textarea-radius,
104
+ $usx-code-radius-var: --usx-code-radius,
105
+ $usx-summary-box-radius-var: --usx-summary-box-radius,
106
+ $usx-hero-callout-radius-var: --usx-hero-callout-radius,
107
+ $usx-image-radius-var: --usx-image-radius,
108
+ $usx-tag-radius-var: --usx-tag-radius,
109
+ $usx-checkable-radius-var: --usx-checkable-radius,
110
+ $usx-checkable-tile-radius-var: --usx-checkable-tile-radius,
111
+ $usx-misc-banner-badge-radius-var: --usx-misc-banner-badge-radius,
112
+ $usx-border-width-sm-var: --usx-border-width-sm,
113
+ $usx-border-width-md-var: --usx-border-width-md,
114
+ $usx-border-width-lg-var: --usx-border-width-lg,
115
+ $usx-border-width-xl-var: --usx-border-width-xl,
116
+ $usx-border-width-inputs-var: --usx-border-width-inputs,
117
+ $usx-task-list-inner-border-width-var: --usx-task-list-inner-border-width,
118
+ $usx-task-list-outer-border-width-var: --usx-task-list-outer-border-width,
119
+ $usx-step-indicator-segment-bar-width-var: --usx-step-indicator-segment-bar-width,
120
+ $usx-accordion-border-width-var: --usx-accordion-border-width,
121
+ $usx-button-outline-border-width-var: --usx-button-outline-border-width,
122
+ $usx-switch-border-width-var: --usx-switch-border-width,
123
+ $usx-file-input-border-width-var: --usx-file-input-border-width,
124
+ $usx-file-input-item-border-width-var: --usx-file-input-item-border-width,
125
+ $usx-range-slider-border-width-var: --usx-range-slider-border-width,
126
+ $usx-font-family-var: --usx-font-family,
127
+ $usx-font-family-heading-var: --usx-font-family-heading,
128
+ $usx-font-size-base-var: --usx-font-size-base,
129
+ $usx-font-size-h1-var: --usx-font-size-h1,
130
+ $usx-font-size-h2-var: --usx-font-size-h2,
131
+ $usx-font-size-h3-var: --usx-font-size-h3,
132
+ $usx-font-size-h4-var: --usx-font-size-h4,
133
+ $usx-font-size-h5-var: --usx-font-size-h5,
134
+ $usx-font-size-h6-var: --usx-font-size-h6,
135
+ $usx-font-weight-regular-var: --usx-font-weight-regular,
136
+ $usx-font-weight-bold-var: --usx-font-weight-bold,
137
+ $usx-line-height-base-var: --usx-line-height-base,
138
+ $usx-line-height-heading-var: --usx-line-height-heading,
139
+ $usx-attribution-primary-font-weight-var: --usx-attribution-primary-font-weight,
140
+ $usx-attribution-secondary-font-size-var: --usx-attribution-secondary-font-size,
141
+ $usx-avatar-content-font-weight-var: --usx-avatar-content-font-weight,
142
+ $usx-avatar-font-size-sm-var: --usx-avatar-font-size-sm,
143
+ $usx-avatar-font-size-lg-var: --usx-avatar-font-size-lg,
144
+ $usx-avatar-font-size-xl-var: --usx-avatar-font-size-xl,
145
+ $usx-calendar-date-font-size-var: --usx-calendar-date-font-size,
146
+ $usx-code-font-size-var: --usx-code-font-size,
147
+ $usx-misc-banner-font-size-var: --usx-misc-banner-font-size,
148
+ $usx-modal-heading-font-size-var: --usx-modal-heading-font-size,
149
+ $usx-tag-line-height-var: --usx-tag-line-height,
150
+ $usx-task-list-link-font-size-var: --usx-task-list-link-font-size,
151
+ $usx-link-text-var: --usx-link-text,
152
+ $usx-link-text-visited-var: --usx-link-text-visited,
153
+ $usx-link-text-dark-var: --usx-link-text-dark,
154
+ $usx-link-text-visited-dark-var: --usx-link-text-visited-dark,
155
+ $usx-summary-box-link-text-visited-var: --usx-summary-box-link-text-visited,
156
+ $usx-summary-box-bg-var: --usx-summary-box-bg,
157
+ $usx-summary-box-border-color-var: --usx-summary-box-border-color,
158
+ $usx-summary-box-text-var: --usx-summary-box-text,
159
+ $usx-summary-box-link-text-var: --usx-summary-box-link-text,
160
+ $usx-summary-box-link-text-hover-var: --usx-summary-box-link-text-hover,
161
+ $usx-accordion-bg-var: --usx-accordion-bg,
162
+ $usx-accordion-bg-hover-var: --usx-accordion-bg-hover,
163
+ $usx-accordion-content-bg-var: --usx-accordion-content-bg,
164
+ $usx-accordion-text-var: --usx-accordion-text,
165
+ $usx-accordion-content-text-var: --usx-accordion-content-text,
166
+ $usx-accordion-icon-position-var: --usx-accordion-icon-position,
167
+ $usx-accordion-icon-padding-start-var: --usx-accordion-icon-padding-start,
168
+ $usx-accordion-icon-padding-end-var: --usx-accordion-icon-padding-end,
169
+ $usx-logo-display-var: --usx-logo-display,
170
+ $usx-logo-inverse-display-var: --usx-logo-inverse-display,
171
+ $usx-banner-bg-var: --usx-banner-bg,
172
+ $usx-banner-text-var: --usx-banner-text,
173
+ $usx-banner-button-text-var: --usx-banner-button-text,
174
+ $usx-banner-chevron-text-var: --usx-banner-chevron-text,
175
+ $usx-carousel-dot-bg-var: --usx-carousel-dot-bg,
176
+ $usx-carousel-dot-bg-hover-var: --usx-carousel-dot-bg-hover,
177
+ $usx-carousel-dot-bg-active-var: --usx-carousel-dot-bg-active,
178
+ $usx-carousel-focus-var: --usx-carousel-focus,
179
+ $usx-step-indicator-bg-var: --usx-step-indicator-bg,
180
+ $usx-step-indicator-segment-pending-border-var: --usx-step-indicator-segment-pending-border,
181
+ $usx-task-list-link-text-var: --usx-task-list-link-text,
182
+ $usx-clickable-focus-var: --usx-clickable-focus,
183
+ $usx-clickable-text-hover-var: --usx-clickable-text-hover,
184
+ $usx-misc-banner-focus-var: --usx-misc-banner-focus,
185
+ $usx-checkable-tile-border-var: --usx-checkable-tile-border,
186
+ $usx-task-list-border-var: --usx-task-list-border,
187
+ $usx-file-input-border-var: --usx-file-input-border,
188
+ $usx-file-input-item-border-var: --usx-file-input-item-border,
189
+ $usx-file-input-preview-bg-var: --usx-file-input-preview-bg,
190
+ $usx-file-input-preview-text-var: --usx-file-input-preview-text,
191
+ $usx-task-list-bg-hover-var: --usx-task-list-bg-hover,
192
+ $usx-checkable-bg-var: --usx-checkable-bg,
193
+ $usx-checkable-border-var: --usx-checkable-border,
194
+ $usx-sidenav-bg-hover-var: --usx-sidenav-bg-hover,
195
+ $usx-sidenav-border-var: --usx-sidenav-border,
196
+ $usx-header-border-var: --usx-header-border,
197
+ $usx-header-bg-var: --usx-header-bg,
198
+ $usx-header-text-var: --usx-header-text,
199
+ $usx-header-nav-bg-var: --usx-header-nav-bg,
200
+ $usx-header-nav-bg-mobile-var: --usx-header-nav-bg-mobile,
201
+ $usx-header-nav-link-text-var: --usx-header-nav-link-text,
202
+ $usx-header-nav-link-text-mobile-var: --usx-header-nav-link-text-mobile,
203
+ $usx-header-nav-link-text-hover-var: --usx-header-nav-link-text-hover,
204
+ $usx-header-nav-link-text-hover-mobile-var: --usx-header-nav-link-text-hover-mobile,
205
+ $usx-header-secondary-link-text-var: --usx-header-secondary-link-text,
206
+ $usx-header-secondary-link-text-hover-var: --usx-header-secondary-link-text-hover,
207
+ $usx-header-nav-link-bg-hover-var: --usx-header-nav-link-bg-hover,
208
+ $usx-header-nav-top-border-var: --usx-header-nav-top-border,
209
+ $usx-header-nav-bottom-border-var: --usx-header-nav-bottom-border,
210
+ $usx-footer-border-var: --usx-footer-border,
211
+ $usx-footer-primary-section-border-var: --usx-footer-primary-section-border,
212
+ $usx-footer-secondary-section-border-var: --usx-footer-secondary-section-border,
213
+ $usx-footer-text-var: --usx-footer-text,
214
+ $usx-footer-link-text-var: --usx-footer-link-text,
215
+ $usx-footer-link-text-hover-var: --usx-footer-link-text-hover,
216
+ $usx-footer-secondary-link-text-var: --usx-footer-secondary-link-text,
217
+ $usx-footer-secondary-link-text-hover-var: --usx-footer-secondary-link-text-hover,
218
+ $usx-footer-heading-text-var: --usx-footer-heading-text,
219
+ $usx-footer-heading-secondary-text-var: --usx-footer-heading-secondary-text,
220
+ $usx-page-bg-var: --usx-page-bg,
221
+ $usx-page-text-var: --usx-page-text,
222
+ $usx-section-bg-var: --usx-section-bg,
223
+ $usx-section-text-var: --usx-section-text,
224
+ $usx-table-bg-hover-var: --usx-table-bg-hover,
225
+ $usx-table-selected-bg-var: --usx-table-selected-bg,
226
+ $usx-table-bg-var: --usx-table-bg,
227
+ $usx-table-header-bg-var: --usx-table-header-bg,
228
+ $usx-table-stripe-bg-var: --usx-table-stripe-bg,
229
+ $usx-table-border-var: --usx-table-border,
230
+ $usx-table-placeholder-text-var: --usx-table-placeholder-text,
231
+ $usx-table-sorted-column-bg-var: --usx-table-sorted-column-bg,
232
+ $usx-table-grouped-row-bg-var: --usx-table-grouped-row-bg,
233
+ $usx-table-grouped-row-text-var: --usx-table-grouped-row-text,
234
+ $usx-tooltip-bg-var: --usx-tooltip-bg,
235
+ $usx-tooltip-text-var: --usx-tooltip-text,
236
+ $usx-icon-list-icon-text-var: --usx-icon-list-icon-text,
237
+ $usx-date-picker-button-icon-color-var: --usx-date-picker-button-icon-color,
238
+ $usx-date-picker-button-hover-active-bg-var: --usx-date-picker-button-hover-active-bg,
239
+ $usx-combo-box-selected-bg-var: --usx-combo-box-selected-bg,
240
+ $usx-range-slider-track-bg-var: --usx-range-slider-track-bg,
241
+ $usx-range-slider-track-border-var: --usx-range-slider-track-border,
242
+ $usx-range-slider-thumb-bg-var: --usx-range-slider-thumb-bg,
243
+ $usx-range-slider-thumb-border-var: --usx-range-slider-thumb-border,
244
+ $usx-range-slider-focus-var: --usx-range-slider-focus,
245
+ $usx-in-page-nav-bg-var: --usx-in-page-nav-bg,
246
+ $usx-in-page-nav-text-var: --usx-in-page-nav-text,
247
+ $usx-in-page-nav-border-var: --usx-in-page-nav-border,
248
+ $usx-in-page-nav-link-text-var: --usx-in-page-nav-link-text,
249
+ $usx-in-page-nav-link-text-hover-var: --usx-in-page-nav-link-text-hover,
250
+ $usx-in-page-nav-current-text-var: --usx-in-page-nav-current-text,
251
+ $usx-in-page-nav-bar-var: --usx-in-page-nav-bar,
252
+ $usx-breadcrumb-bg-var: --usx-breadcrumb-bg,
253
+ $usx-breadcrumb-text-var: --usx-breadcrumb-text,
254
+ $usx-breadcrumb-link-text-var: --usx-breadcrumb-link-text,
255
+ $usx-breadcrumb-link-text-hover-var: --usx-breadcrumb-link-text-hover,
256
+ $usx-breadcrumb-current-text-var: --usx-breadcrumb-current-text,
257
+ $usx-process-list-heading-text-var: --usx-process-list-heading-text,
258
+ $usx-process-list-border-var: --usx-process-list-border,
259
+ $usx-process-list-counter-text-var: --usx-process-list-counter-text,
260
+ $usx-process-list-counter-border-var: --usx-process-list-counter-border,
261
+ $usx-process-list-counter-ring-var: --usx-process-list-counter-ring,
262
+ $usx-collection-meta-text-var: --usx-collection-meta-text,
263
+ $usx-collection-description-text-var: --usx-collection-description-text,
264
+ $usx-pagination-link-text-var: --usx-pagination-link-text,
265
+ $usx-pagination-link-text-hover-var: --usx-pagination-link-text-hover,
266
+ $usx-pagination-current-bg-var: --usx-pagination-current-bg,
267
+ $usx-pagination-current-text-var: --usx-pagination-current-text,
268
+ $usx-pagination-bg-var: --usx-pagination-bg,
269
+ $usx-pagination-text-var: --usx-pagination-text,
270
+ $usx-pagination-button-border-var: --usx-pagination-button-border,
271
+ $usx-modal-bg-var: --usx-modal-bg,
272
+ $usx-modal-text-var: --usx-modal-text,
273
+ $usx-modal-close-text-var: --usx-modal-close-text,
274
+ $usx-modal-close-text-hover-var: --usx-modal-close-text-hover,
275
+ $usx-language-selector-menu-bg-var: --usx-language-selector-menu-bg,
276
+ $usx-language-selector-menu-text-var: --usx-language-selector-menu-text,
277
+ );