@ethlete/core 5.0.0-next.7 → 5.0.0-next.70
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/CHANGELOG.md +843 -0
- package/README.md +28 -4
- package/design/interactive-styles.ts +5 -0
- package/design/theme-css.js +392 -0
- package/design/theme-css.ts +547 -0
- package/fesm2022/ethlete-core.mjs +9338 -5667
- package/fesm2022/ethlete-core.mjs.map +1 -1
- package/generators/devtools-about/generator.js +122 -0
- package/generators/devtools-about/schema.json +25 -0
- package/generators/generators.json +41 -5
- package/generators/migrate-color-theme-variants/color-theme-variants.js +136 -0
- package/generators/migrate-color-theme-variants/migration.js +46 -0
- package/generators/migrate-color-theme-variants/schema.json +26 -0
- package/generators/migrate-create-destroy/create-destroy.js +317 -0
- package/generators/migrate-create-destroy/migration.js +46 -0
- package/generators/migrate-create-destroy/schema.json +26 -0
- package/generators/migrate-legacy-color-themes/legacy-color-themes.js +123 -0
- package/generators/migrate-legacy-color-themes/migration.js +93 -0
- package/generators/migrate-legacy-color-themes/schema.json +26 -0
- package/generators/migrate-provider-shape/migration-scope.js +35 -0
- package/generators/migrate-provider-shape/migration.js +50 -0
- package/generators/migrate-provider-shape/provider-shape.js +284 -0
- package/generators/migrate-provider-shape/schema.json +26 -0
- package/generators/migrate-surface-interaction-swatch/interaction-swatch.js +63 -0
- package/generators/migrate-surface-interaction-swatch/migration.js +36 -0
- package/generators/migrate-surface-interaction-swatch/schema.json +26 -0
- package/generators/migrate-to-v5/apply-replacements.js +14 -0
- package/generators/migrate-to-v5/color-naming.js +124 -0
- package/generators/migrate-to-v5/create-provider.js +67 -55
- package/generators/migrate-to-v5/migration-files.js +13 -0
- package/generators/migrate-to-v5/migration.js +33 -19
- package/generators/migrate-to-v5/removed-exports.js +161 -0
- package/generators/migrate-to-v5/router-state-service.js +125 -330
- package/generators/migrate-to-v5/schema.json +22 -0
- package/generators/migrate-to-v5/service-classes.js +108 -0
- package/generators/migrate-to-v5/sync-observable-consumers.js +80 -0
- package/generators/migrate-to-v5/viewport-service.js +226 -491
- package/generators/tailwind-4-color-theme/generator.js +411 -0
- package/generators/tailwind-4-color-theme/schema.json +44 -0
- package/generators/tailwind-4-surface-theme/generator.js +379 -0
- package/generators/tailwind-4-surface-theme/schema.json +48 -0
- package/migrations/legacy-color-themes.md +38 -0
- package/migrations/seo-directive-removed.md +81 -0
- package/migrations/surface-theme-regenerate.md +20 -0
- package/migrations.json +59 -0
- package/package.json +38 -21
- package/src/lib/animations/easing-tokens-styles.component.css +155 -0
- package/src/lib/providers/visually-hidden-styles.component.css +13 -0
- package/src/lib/resize-handles/resize-handles.component.css +137 -0
- package/src/lib/theming/color-interactive-styles.component.css +147 -0
- package/src/lib/theming/surface-interactive-styles.component.css +42 -0
- package/types/ethlete-core.d.ts +3842 -2205
- package/generators/tailwind-4-theme/generator.js +0 -514
- package/generators/tailwind-4-theme/schema.json +0 -32
package/package.json
CHANGED
|
@@ -1,29 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ethlete/core",
|
|
3
|
-
"version": "5.0.0-next.
|
|
3
|
+
"version": "5.0.0-next.70",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/ethlete-io/ethdk",
|
|
7
|
+
"directory": "libs/core"
|
|
8
|
+
},
|
|
4
9
|
"license": "MIT",
|
|
5
10
|
"sideEffects": false,
|
|
6
|
-
"peerDependencies": {
|
|
7
|
-
"@analogjs/vite-plugin-angular": "2.3.1",
|
|
8
|
-
"@angular/cdk": "21.2.1",
|
|
9
|
-
"@angular/common": "21.2.1",
|
|
10
|
-
"@angular/core": "21.2.1",
|
|
11
|
-
"@angular/forms": "21.2.1",
|
|
12
|
-
"@angular/platform-browser": "21.2.1",
|
|
13
|
-
"@angular/router": "21.2.1",
|
|
14
|
-
"@ethlete/types": "^2.0.0-next.0",
|
|
15
|
-
"@floating-ui/dom": "1.7.6",
|
|
16
|
-
"@nx/devkit": "22.5.4",
|
|
17
|
-
"@nx/vite": "22.5.4",
|
|
18
|
-
"rxjs": "7.8.2",
|
|
19
|
-
"ts-morph": "21.0.1",
|
|
20
|
-
"typescript": "5.9.3",
|
|
21
|
-
"vite": "^7.0.0"
|
|
22
|
-
},
|
|
23
|
-
"generators": "./generators/generators.json",
|
|
24
|
-
"module": "fesm2022/ethlete-core.mjs",
|
|
25
|
-
"typings": "types/ethlete-core.d.ts",
|
|
26
11
|
"exports": {
|
|
12
|
+
"./design/*": "./design/*.ts",
|
|
27
13
|
"./package.json": {
|
|
28
14
|
"default": "./package.json"
|
|
29
15
|
},
|
|
@@ -32,6 +18,37 @@
|
|
|
32
18
|
"default": "./fesm2022/ethlete-core.mjs"
|
|
33
19
|
}
|
|
34
20
|
},
|
|
21
|
+
"peerDependencies": {
|
|
22
|
+
"@angular/common": "^22.1.0",
|
|
23
|
+
"@angular/core": "^22.1.0",
|
|
24
|
+
"@angular/forms": "^22.1.0",
|
|
25
|
+
"@angular/platform-browser": "^22.1.0",
|
|
26
|
+
"@angular/router": "^22.1.0",
|
|
27
|
+
"@ethlete/types": "^2.0.0-beta.4",
|
|
28
|
+
"@floating-ui/dom": "^1.6.0",
|
|
29
|
+
"@nx/devkit": ">=23.0.0",
|
|
30
|
+
"rxjs": "^7.8.0",
|
|
31
|
+
"ts-morph": "^28.0.0",
|
|
32
|
+
"typescript": "^6.0.0"
|
|
33
|
+
},
|
|
34
|
+
"peerDependenciesMeta": {
|
|
35
|
+
"@nx/devkit": {
|
|
36
|
+
"optional": true
|
|
37
|
+
},
|
|
38
|
+
"ts-morph": {
|
|
39
|
+
"optional": true
|
|
40
|
+
},
|
|
41
|
+
"typescript": {
|
|
42
|
+
"optional": true
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"ethlete": {
|
|
46
|
+
"migrations": "./migrations.json"
|
|
47
|
+
},
|
|
48
|
+
"generators": "./generators/generators.json",
|
|
49
|
+
"module": "fesm2022/ethlete-core.mjs",
|
|
50
|
+
"typings": "types/ethlete-core.d.ts",
|
|
51
|
+
"type": "module",
|
|
35
52
|
"dependencies": {
|
|
36
53
|
"tslib": "^2.3.0"
|
|
37
54
|
}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/** Values from https://github.com/argyleink/open-props (MIT). */
|
|
2
|
+
@layer components {
|
|
3
|
+
:where(html) {
|
|
4
|
+
--ease-1: cubic-bezier(0.25, 0, 0.5, 1);
|
|
5
|
+
--ease-2: cubic-bezier(0.25, 0, 0.4, 1);
|
|
6
|
+
--ease-3: cubic-bezier(0.25, 0, 0.3, 1);
|
|
7
|
+
--ease-4: cubic-bezier(0.25, 0, 0.2, 1);
|
|
8
|
+
--ease-5: cubic-bezier(0.25, 0, 0.1, 1);
|
|
9
|
+
--ease-in-1: cubic-bezier(0.25, 0, 1, 1);
|
|
10
|
+
--ease-in-2: cubic-bezier(0.5, 0, 1, 1);
|
|
11
|
+
--ease-in-3: cubic-bezier(0.7, 0, 1, 1);
|
|
12
|
+
--ease-in-4: cubic-bezier(0.9, 0, 1, 1);
|
|
13
|
+
--ease-in-5: cubic-bezier(1, 0, 1, 1);
|
|
14
|
+
--ease-out-1: cubic-bezier(0, 0, 0.75, 1);
|
|
15
|
+
--ease-out-2: cubic-bezier(0, 0, 0.5, 1);
|
|
16
|
+
--ease-out-3: cubic-bezier(0, 0, 0.3, 1);
|
|
17
|
+
--ease-out-4: cubic-bezier(0, 0, 0.1, 1);
|
|
18
|
+
--ease-out-5: cubic-bezier(0, 0, 0, 1);
|
|
19
|
+
--ease-in-out-1: cubic-bezier(0.1, 0, 0.9, 1);
|
|
20
|
+
--ease-in-out-2: cubic-bezier(0.3, 0, 0.7, 1);
|
|
21
|
+
--ease-in-out-3: cubic-bezier(0.5, 0, 0.5, 1);
|
|
22
|
+
--ease-in-out-4: cubic-bezier(0.7, 0, 0.3, 1);
|
|
23
|
+
--ease-in-out-5: cubic-bezier(0.9, 0, 0.1, 1);
|
|
24
|
+
--ease-elastic-1: cubic-bezier(0.5, 0.75, 0.75, 1.25);
|
|
25
|
+
--ease-elastic-2: cubic-bezier(0.5, 1, 0.75, 1.25);
|
|
26
|
+
--ease-elastic-3: cubic-bezier(0.5, 1.25, 0.75, 1.25);
|
|
27
|
+
--ease-elastic-4: cubic-bezier(0.5, 1.5, 0.75, 1.25);
|
|
28
|
+
--ease-elastic-5: cubic-bezier(0.5, 1.75, 0.75, 1.25);
|
|
29
|
+
--ease-squish-1: cubic-bezier(0.5, -0.1, 0.1, 1.5);
|
|
30
|
+
--ease-squish-2: cubic-bezier(0.5, -0.3, 0.1, 1.5);
|
|
31
|
+
--ease-squish-3: cubic-bezier(0.5, -0.5, 0.1, 1.5);
|
|
32
|
+
--ease-squish-4: cubic-bezier(0.5, -0.7, 0.1, 1.5);
|
|
33
|
+
--ease-squish-5: cubic-bezier(0.5, -0.9, 0.1, 1.5);
|
|
34
|
+
--ease-step-1: steps(2);
|
|
35
|
+
--ease-step-2: steps(3);
|
|
36
|
+
--ease-step-3: steps(4);
|
|
37
|
+
--ease-step-4: steps(7);
|
|
38
|
+
--ease-step-5: steps(10);
|
|
39
|
+
--ease-spring-1: linear(
|
|
40
|
+
0,
|
|
41
|
+
0.006,
|
|
42
|
+
0.025 2.8%,
|
|
43
|
+
0.101 6.1%,
|
|
44
|
+
0.539 18.9%,
|
|
45
|
+
0.721 25.3%,
|
|
46
|
+
0.849 31.5%,
|
|
47
|
+
0.937 38.1%,
|
|
48
|
+
0.968 41.8%,
|
|
49
|
+
0.991 45.7%,
|
|
50
|
+
1.006 50.1%,
|
|
51
|
+
1.015 55%,
|
|
52
|
+
1.017 63.9%,
|
|
53
|
+
1.001
|
|
54
|
+
);
|
|
55
|
+
--ease-spring-2: linear(
|
|
56
|
+
0,
|
|
57
|
+
0.007,
|
|
58
|
+
0.029 2.2%,
|
|
59
|
+
0.118 4.7%,
|
|
60
|
+
0.625 14.4%,
|
|
61
|
+
0.826 19%,
|
|
62
|
+
0.902,
|
|
63
|
+
0.962,
|
|
64
|
+
1.008 26.1%,
|
|
65
|
+
1.041 28.7%,
|
|
66
|
+
1.064 32.1%,
|
|
67
|
+
1.07 36%,
|
|
68
|
+
1.061 40.5%,
|
|
69
|
+
1.015 53.4%,
|
|
70
|
+
0.999 61.6%,
|
|
71
|
+
0.995 71.2%,
|
|
72
|
+
1
|
|
73
|
+
);
|
|
74
|
+
--ease-spring-3: linear(
|
|
75
|
+
0,
|
|
76
|
+
0.009,
|
|
77
|
+
0.035 2.1%,
|
|
78
|
+
0.141 4.4%,
|
|
79
|
+
0.723 12.9%,
|
|
80
|
+
0.938 16.7%,
|
|
81
|
+
1.017,
|
|
82
|
+
1.077,
|
|
83
|
+
1.121,
|
|
84
|
+
1.149 24.3%,
|
|
85
|
+
1.159,
|
|
86
|
+
1.163,
|
|
87
|
+
1.161,
|
|
88
|
+
1.154 29.9%,
|
|
89
|
+
1.129 32.8%,
|
|
90
|
+
1.051 39.6%,
|
|
91
|
+
1.017 43.1%,
|
|
92
|
+
0.991,
|
|
93
|
+
0.977 51%,
|
|
94
|
+
0.974 53.8%,
|
|
95
|
+
0.975 57.1%,
|
|
96
|
+
0.997 69.8%,
|
|
97
|
+
1.003 76.9%,
|
|
98
|
+
1
|
|
99
|
+
);
|
|
100
|
+
--ease-spring-4: linear(
|
|
101
|
+
0,
|
|
102
|
+
0.009,
|
|
103
|
+
0.037 1.7%,
|
|
104
|
+
0.153 3.6%,
|
|
105
|
+
0.776 10.3%,
|
|
106
|
+
1.001,
|
|
107
|
+
1.142 16%,
|
|
108
|
+
1.185,
|
|
109
|
+
1.209 19%,
|
|
110
|
+
1.215 19.9% 20.8%,
|
|
111
|
+
1.199,
|
|
112
|
+
1.165 25%,
|
|
113
|
+
1.056 30.3%,
|
|
114
|
+
1.008 33%,
|
|
115
|
+
0.973,
|
|
116
|
+
0.955 39.2%,
|
|
117
|
+
0.953 41.1%,
|
|
118
|
+
0.957 43.3%,
|
|
119
|
+
0.998 53.3%,
|
|
120
|
+
1.009 59.1% 63.7%,
|
|
121
|
+
0.998 78.9%,
|
|
122
|
+
1
|
|
123
|
+
);
|
|
124
|
+
--ease-spring-5: linear(
|
|
125
|
+
0,
|
|
126
|
+
0.01,
|
|
127
|
+
0.04 1.6%,
|
|
128
|
+
0.161 3.3%,
|
|
129
|
+
0.816 9.4%,
|
|
130
|
+
1.046,
|
|
131
|
+
1.189 14.4%,
|
|
132
|
+
1.231,
|
|
133
|
+
1.254 17%,
|
|
134
|
+
1.259,
|
|
135
|
+
1.257 18.6%,
|
|
136
|
+
1.236,
|
|
137
|
+
1.194 22.3%,
|
|
138
|
+
1.057 27%,
|
|
139
|
+
0.999 29.4%,
|
|
140
|
+
0.955 32.1%,
|
|
141
|
+
0.942,
|
|
142
|
+
0.935 34.9%,
|
|
143
|
+
0.933,
|
|
144
|
+
0.939 38.4%,
|
|
145
|
+
1 47.3%,
|
|
146
|
+
1.011,
|
|
147
|
+
1.017 52.6%,
|
|
148
|
+
1.016 56.4%,
|
|
149
|
+
1 65.2%,
|
|
150
|
+
0.996 70.2%,
|
|
151
|
+
1.001 87.2%,
|
|
152
|
+
1
|
|
153
|
+
);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
@property --et-resize-handles-z-index {
|
|
3
|
+
syntax: '<integer>';
|
|
4
|
+
inherits: true;
|
|
5
|
+
initial-value: 10;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
@property --et-resize-handles-edge-size {
|
|
9
|
+
syntax: '<length>';
|
|
10
|
+
inherits: true;
|
|
11
|
+
initial-value: 6px;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
@property --et-resize-handles-corner-size {
|
|
15
|
+
syntax: '<length>';
|
|
16
|
+
inherits: true;
|
|
17
|
+
initial-value: 12px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@property --et-resize-handles-edge-inset {
|
|
21
|
+
syntax: '<length>';
|
|
22
|
+
inherits: true;
|
|
23
|
+
initial-value: 8px;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
@property --et-resize-handles-outset {
|
|
27
|
+
syntax: '<length>';
|
|
28
|
+
inherits: true;
|
|
29
|
+
initial-value: 0px;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
@property --et-resize-handles-side-top {
|
|
33
|
+
syntax: '<length>';
|
|
34
|
+
inherits: true;
|
|
35
|
+
initial-value: 0px;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
@property --et-resize-handles-side-bottom {
|
|
39
|
+
syntax: '<length>';
|
|
40
|
+
inherits: true;
|
|
41
|
+
initial-value: 8px;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@property --et-resize-handles-touch-edge-size {
|
|
45
|
+
syntax: '<length>';
|
|
46
|
+
inherits: true;
|
|
47
|
+
initial-value: 20px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
@property --et-resize-handles-touch-corner-size {
|
|
51
|
+
syntax: '<length>';
|
|
52
|
+
inherits: true;
|
|
53
|
+
initial-value: 28px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.et-resize-handles {
|
|
57
|
+
position: absolute;
|
|
58
|
+
inset: calc(-1 * var(--et-resize-handles-outset));
|
|
59
|
+
pointer-events: none;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.et-resize-handle {
|
|
63
|
+
--et-resize-handle-thickness: calc(var(--et-resize-handles-edge-size) + var(--et-resize-handles-outset));
|
|
64
|
+
--et-resize-handle-corner: calc(var(--et-resize-handles-corner-size) + var(--et-resize-handles-outset));
|
|
65
|
+
|
|
66
|
+
position: absolute;
|
|
67
|
+
z-index: var(--et-resize-handles-z-index);
|
|
68
|
+
touch-action: none;
|
|
69
|
+
pointer-events: auto;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.et-resize-handle--n {
|
|
73
|
+
top: 0;
|
|
74
|
+
right: var(--et-resize-handles-edge-inset);
|
|
75
|
+
left: var(--et-resize-handles-edge-inset);
|
|
76
|
+
height: var(--et-resize-handle-thickness);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.et-resize-handle--s {
|
|
80
|
+
right: var(--et-resize-handles-edge-inset);
|
|
81
|
+
bottom: 0;
|
|
82
|
+
left: var(--et-resize-handles-edge-inset);
|
|
83
|
+
height: var(--et-resize-handle-thickness);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.et-resize-handle--e,
|
|
87
|
+
.et-resize-handle--w {
|
|
88
|
+
top: var(--et-resize-handles-side-top);
|
|
89
|
+
bottom: var(--et-resize-handles-side-bottom);
|
|
90
|
+
width: var(--et-resize-handle-thickness);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.et-resize-handle--e {
|
|
94
|
+
right: 0;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.et-resize-handle--w {
|
|
98
|
+
left: 0;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.et-resize-handle--ne,
|
|
102
|
+
.et-resize-handle--nw {
|
|
103
|
+
top: 0;
|
|
104
|
+
width: var(--et-resize-handle-corner);
|
|
105
|
+
height: var(--et-resize-handle-corner);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.et-resize-handle--ne {
|
|
109
|
+
right: 0;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.et-resize-handle--nw {
|
|
113
|
+
left: 0;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.et-resize-handle--se,
|
|
117
|
+
.et-resize-handle--sw {
|
|
118
|
+
bottom: 0;
|
|
119
|
+
width: var(--et-resize-handle-corner);
|
|
120
|
+
height: var(--et-resize-handle-corner);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
.et-resize-handle--se {
|
|
124
|
+
right: 0;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
.et-resize-handle--sw {
|
|
128
|
+
left: 0;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@media (any-pointer: coarse) {
|
|
132
|
+
.et-resize-handle {
|
|
133
|
+
--et-resize-handle-thickness: calc(var(--et-resize-handles-touch-edge-size) + var(--et-resize-handles-outset));
|
|
134
|
+
--et-resize-handle-corner: calc(var(--et-resize-handles-touch-corner-size) + var(--et-resize-handles-outset));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
:where(.et-color-interactive) {
|
|
3
|
+
--et-theme-color-primary-rgb: var(--et-color-primary);
|
|
4
|
+
--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));
|
|
5
|
+
--et-theme-color-on-primary-rgb: var(--et-color-on-primary);
|
|
6
|
+
--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));
|
|
7
|
+
--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));
|
|
8
|
+
--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb));
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/* hover-capable pointers only — on touch, :hover sticks after a tap */
|
|
12
|
+
@media (hover: hover) {
|
|
13
|
+
:where(.et-color-interactive:hover:not(:has(.et-color-interactive-exclude:hover))),
|
|
14
|
+
:where(.et-color-interactive-container:hover) :where(.et-color-interactive) {
|
|
15
|
+
--et-theme-color-primary-rgb: var(--et-color-primary-hover, var(--et-color-primary));
|
|
16
|
+
--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));
|
|
17
|
+
--et-theme-color-on-primary-rgb: var(--et-color-on-primary-hover, var(--et-color-on-primary));
|
|
18
|
+
--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));
|
|
19
|
+
--et-theme-color-ink-rgb: var(
|
|
20
|
+
--et-color-primary-ink-hover,
|
|
21
|
+
var(--et-color-primary-ink, var(--et-color-primary-hover, var(--et-color-primary)))
|
|
22
|
+
);
|
|
23
|
+
--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
:where(.et-color-interactive:focus-visible) {
|
|
28
|
+
--et-theme-color-primary-rgb: var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)));
|
|
29
|
+
--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));
|
|
30
|
+
--et-theme-color-on-primary-rgb: var(
|
|
31
|
+
--et-color-on-primary-focus,
|
|
32
|
+
var(--et-color-on-primary-hover, var(--et-color-on-primary))
|
|
33
|
+
);
|
|
34
|
+
--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));
|
|
35
|
+
--et-theme-color-ink-rgb: var(
|
|
36
|
+
--et-color-primary-ink-focus,
|
|
37
|
+
var(
|
|
38
|
+
--et-color-primary-ink-hover,
|
|
39
|
+
var(
|
|
40
|
+
--et-color-primary-ink,
|
|
41
|
+
var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)))
|
|
42
|
+
)
|
|
43
|
+
)
|
|
44
|
+
);
|
|
45
|
+
--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
:where(.et-color-interactive:active:not(:has(.et-color-interactive-exclude:hover))),
|
|
49
|
+
:where(.et-color-interactive-container:active) :where(.et-color-interactive) {
|
|
50
|
+
--et-theme-color-primary-rgb: var(
|
|
51
|
+
--et-color-primary-active,
|
|
52
|
+
var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)))
|
|
53
|
+
);
|
|
54
|
+
--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));
|
|
55
|
+
--et-theme-color-on-primary-rgb: var(
|
|
56
|
+
--et-color-on-primary-active,
|
|
57
|
+
var(--et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary)))
|
|
58
|
+
);
|
|
59
|
+
--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));
|
|
60
|
+
--et-theme-color-ink-rgb: var(
|
|
61
|
+
--et-color-primary-ink-active,
|
|
62
|
+
var(
|
|
63
|
+
--et-color-primary-ink-focus,
|
|
64
|
+
var(
|
|
65
|
+
--et-color-primary-ink-hover,
|
|
66
|
+
var(
|
|
67
|
+
--et-color-primary-ink,
|
|
68
|
+
var(
|
|
69
|
+
--et-color-primary-active,
|
|
70
|
+
var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)))
|
|
71
|
+
)
|
|
72
|
+
)
|
|
73
|
+
)
|
|
74
|
+
)
|
|
75
|
+
);
|
|
76
|
+
--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb));
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* A wrapper reflecting a *descendant's* focus (e.g. a form field's frame while its control is
|
|
80
|
+
focused) uses the BASE color, not the `-focus` variant. The `-focus` variant is the treatment
|
|
81
|
+
for an element that is itself focused (the `:where(.et-color-interactive:focus-visible)` rule
|
|
82
|
+
above) — a container merely mirroring a child's focus should read as the plain accent, so the
|
|
83
|
+
focus affordance is the pure theme color rather than the focus-adjusted shade. */
|
|
84
|
+
:where(.et-color-interactive--has-focus:has(:focus-visible)) {
|
|
85
|
+
--et-theme-color-primary-rgb: var(--et-color-primary);
|
|
86
|
+
--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));
|
|
87
|
+
--et-theme-color-on-primary-rgb: var(--et-color-on-primary);
|
|
88
|
+
--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));
|
|
89
|
+
--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));
|
|
90
|
+
--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* view-only controls (readonly) keep the resting accent — they stay focusable but must not
|
|
94
|
+
react to hover/active/focus the way an editable control does. Placed after the interaction
|
|
95
|
+
rules above so, at equal :where() specificity, source order lets it win them back to rest. */
|
|
96
|
+
:where(.et-color-interactive[aria-readonly='true']) {
|
|
97
|
+
--et-theme-color-primary-rgb: var(--et-color-primary);
|
|
98
|
+
--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));
|
|
99
|
+
--et-theme-color-on-primary-rgb: var(--et-color-on-primary);
|
|
100
|
+
--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));
|
|
101
|
+
--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));
|
|
102
|
+
--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb));
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
:where(.et-color-interactive[disabled]),
|
|
106
|
+
:where(.et-color-interactive[aria-disabled='true']) {
|
|
107
|
+
--et-theme-color-primary-rgb: var(
|
|
108
|
+
--et-color-primary-disabled,
|
|
109
|
+
var(
|
|
110
|
+
--et-color-primary-active,
|
|
111
|
+
var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)))
|
|
112
|
+
)
|
|
113
|
+
);
|
|
114
|
+
--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));
|
|
115
|
+
--et-theme-color-on-primary-rgb: var(
|
|
116
|
+
--et-color-on-primary-disabled,
|
|
117
|
+
var(
|
|
118
|
+
--et-color-on-primary-active,
|
|
119
|
+
var(--et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary)))
|
|
120
|
+
)
|
|
121
|
+
);
|
|
122
|
+
--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));
|
|
123
|
+
--et-theme-color-ink-rgb: var(
|
|
124
|
+
--et-color-primary-ink-disabled,
|
|
125
|
+
var(
|
|
126
|
+
--et-color-primary-ink-active,
|
|
127
|
+
var(
|
|
128
|
+
--et-color-primary-ink-focus,
|
|
129
|
+
var(
|
|
130
|
+
--et-color-primary-ink-hover,
|
|
131
|
+
var(
|
|
132
|
+
--et-color-primary-ink,
|
|
133
|
+
var(
|
|
134
|
+
--et-color-primary-disabled,
|
|
135
|
+
var(
|
|
136
|
+
--et-color-primary-active,
|
|
137
|
+
var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)))
|
|
138
|
+
)
|
|
139
|
+
)
|
|
140
|
+
)
|
|
141
|
+
)
|
|
142
|
+
)
|
|
143
|
+
)
|
|
144
|
+
);
|
|
145
|
+
--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
:where(.et-surface-interactive) {
|
|
3
|
+
--et-surface-interaction-rgb: var(--et-surface-interaction);
|
|
4
|
+
--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb));
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
/* hover-capable pointers only — on touch, :hover sticks after a tap */
|
|
8
|
+
@media (hover: hover) {
|
|
9
|
+
:where(.et-surface-interactive:hover) {
|
|
10
|
+
--et-surface-interaction-rgb: var(--et-surface-interaction-hover, var(--et-surface-interaction));
|
|
11
|
+
--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
:where(.et-surface-interactive:focus-visible) {
|
|
16
|
+
--et-surface-interaction-rgb: var(
|
|
17
|
+
--et-surface-interaction-focus,
|
|
18
|
+
var(--et-surface-interaction-hover, var(--et-surface-interaction))
|
|
19
|
+
);
|
|
20
|
+
--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb));
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
:where(.et-surface-interactive:active) {
|
|
24
|
+
--et-surface-interaction-rgb: var(
|
|
25
|
+
--et-surface-interaction-active,
|
|
26
|
+
var(--et-surface-interaction-focus, var(--et-surface-interaction-hover, var(--et-surface-interaction)))
|
|
27
|
+
);
|
|
28
|
+
--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
:where(.et-surface-interactive[disabled]),
|
|
32
|
+
:where(.et-surface-interactive[aria-disabled='true']) {
|
|
33
|
+
--et-surface-interaction-rgb: var(
|
|
34
|
+
--et-surface-interaction-disabled,
|
|
35
|
+
var(
|
|
36
|
+
--et-surface-interaction-active,
|
|
37
|
+
var(--et-surface-interaction-focus, var(--et-surface-interaction-hover, var(--et-surface-interaction)))
|
|
38
|
+
)
|
|
39
|
+
);
|
|
40
|
+
--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb));
|
|
41
|
+
}
|
|
42
|
+
}
|