elements-kit 0.12.1 → 0.15.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.
@@ -4,8 +4,7 @@
4
4
  min-width: max-content;
5
5
  color: var(--base-color-12);
6
6
  background-color: var(--color-surface);
7
- background-image: linear-gradient(var(--base-color-a3),
8
- var(--base-color-a3));
7
+ background-image: linear-gradient(var(--base-color-a3), var(--base-color-a3));
9
8
  font-family: var(--default-font-family);
10
9
  text-align: center;
11
10
  --seg-inset: 1px;
@@ -152,8 +151,7 @@
152
151
 
153
152
  .x-segmented-control:where(:disabled, [data-disabled]) {
154
153
  color: var(--base-color-a8);
155
- background-image: linear-gradient(var(--base-color-a2),
156
- var(--base-color-a2));
154
+ background-image: linear-gradient(var(--base-color-a2), var(--base-color-a2));
157
155
  }
158
156
 
159
157
  .x-segmented-control:where(:disabled, [data-disabled]) > label, .x-segmented-control > label:where(:has(:disabled)) {
@@ -0,0 +1,160 @@
1
+ .x-select {
2
+ -webkit-user-select: none;
3
+ user-select: none;
4
+ vertical-align: top;
5
+ appearance: none;
6
+ font-family: var(--default-font-family);
7
+ text-align: start;
8
+ text-overflow: ellipsis;
9
+ white-space: nowrap;
10
+ cursor: var(--cursor-button);
11
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path fill='none' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M3 5l3 3 3-3'/></svg>");
12
+ background-repeat: no-repeat;
13
+ background-position: right var(--select-chevron-inset) center;
14
+ background-size: var(--select-chevron-size) var(--select-chevron-size);
15
+ flex-shrink: 0;
16
+ justify-content: space-between;
17
+ align-items: center;
18
+ font-style: normal;
19
+ font-weight: 500;
20
+ display: inline-flex;
21
+ overflow: hidden;
22
+ }
23
+
24
+ .x-select:where(:focus-visible) {
25
+ outline: 2px solid var(--focus-8);
26
+ outline-offset: -1px;
27
+ }
28
+
29
+ .x-select:where([data-size="1"]) {
30
+ --select-chevron-size: 9px;
31
+ --select-chevron-inset: var(--space-2);
32
+ gap: var(--space-1);
33
+ font-size: var(--font-size-1);
34
+ line-height: var(--line-height-1);
35
+ letter-spacing: var(--letter-spacing-1);
36
+ border-radius: max(var(--radius-1), var(--radius-pill));
37
+ }
38
+
39
+ .x-select:where([data-size="1"]):where(:not([data-variant="text"])) {
40
+ padding-block: calc((var(--space-5) - var(--line-height-1)) / 2);
41
+ padding-inline-start: var(--space-2);
42
+ padding-inline-end: calc(var(--select-chevron-inset) + var(--select-chevron-size) + var(--space-1));
43
+ }
44
+
45
+ .x-select:where([data-size="1"]):where([data-variant="text"]) {
46
+ --select-text-padding-x: var(--space-2);
47
+ --select-text-padding-y: var(--space-1);
48
+ }
49
+
50
+ .x-select:where(:not([data-size]), [data-size="2"]) {
51
+ --select-chevron-size: 9px;
52
+ --select-chevron-inset: var(--space-3);
53
+ gap: calc(var(--space-1) * 1.5);
54
+ font-size: var(--font-size-2);
55
+ line-height: var(--line-height-2);
56
+ letter-spacing: var(--letter-spacing-2);
57
+ border-radius: max(var(--radius-2), var(--radius-pill));
58
+ }
59
+
60
+ .x-select:where(:not([data-size]), [data-size="2"]):where(:not([data-variant="text"])) {
61
+ padding-block: calc((var(--space-6) - var(--line-height-2)) / 2);
62
+ padding-inline-start: var(--space-3);
63
+ padding-inline-end: calc(var(--select-chevron-inset) + var(--select-chevron-size) + var(--space-1));
64
+ }
65
+
66
+ .x-select:where(:not([data-size]), [data-size="2"]):where([data-variant="text"]) {
67
+ --select-text-padding-x: var(--space-2);
68
+ --select-text-padding-y: var(--space-1);
69
+ }
70
+
71
+ .x-select:where([data-size="3"]) {
72
+ --select-chevron-size: 11px;
73
+ --select-chevron-inset: var(--space-4);
74
+ gap: var(--space-2);
75
+ font-size: var(--font-size-3);
76
+ line-height: var(--line-height-3);
77
+ letter-spacing: var(--letter-spacing-3);
78
+ border-radius: max(var(--radius-3), var(--radius-pill));
79
+ }
80
+
81
+ .x-select:where([data-size="3"]):where(:not([data-variant="text"])) {
82
+ padding-block: calc((var(--space-7) - var(--line-height-3)) / 2);
83
+ padding-inline-start: var(--space-4);
84
+ padding-inline-end: calc(var(--select-chevron-inset) + var(--select-chevron-size) + var(--space-2));
85
+ }
86
+
87
+ .x-select:where([data-size="3"]):where([data-variant="text"]) {
88
+ --select-text-padding-x: var(--space-3);
89
+ --select-text-padding-y: calc(var(--space-1) * 1.5);
90
+ }
91
+
92
+ .x-select:where([data-variant="text"]) {
93
+ box-sizing: content-box;
94
+ height: fit-content;
95
+ padding: var(--select-text-padding-y) var(--select-text-padding-x);
96
+ --margin-top: 0px;
97
+ --margin-right: 0px;
98
+ --margin-bottom: 0px;
99
+ --margin-left: 0px;
100
+ --margin-top-override: calc(var(--margin-top) - var(--select-text-padding-y));
101
+ --margin-right-override: calc(var(--margin-right) - var(--select-text-padding-x));
102
+ --margin-bottom-override: calc(var(--margin-bottom) - var(--select-text-padding-y));
103
+ --margin-left-override: calc(var(--margin-left) - var(--select-text-padding-x));
104
+ margin: var(--margin-top-override) var(--margin-right-override)
105
+ var(--margin-bottom-override) var(--margin-left-override);
106
+ padding-inline-end: calc(var(--select-chevron-inset) + var(--select-chevron-size) + var(--space-1));
107
+ }
108
+
109
+ .x-select:where(:not([data-variant]), [data-variant="surface"]) {
110
+ color: var(--base-color-12);
111
+ box-shadow: inset 0 0 0 1px var(--base-color-a7);
112
+ background-color: #0000;
113
+ }
114
+
115
+ @media (hover: hover) {
116
+ .x-select:where(:not([data-variant]), [data-variant="surface"]):where(:hover) {
117
+ box-shadow: inset 0 0 0 1px var(--base-color-a8);
118
+ }
119
+ }
120
+
121
+ .x-select:where(:not([data-variant]), [data-variant="surface"]):where(:disabled) {
122
+ color: var(--base-color-a11);
123
+ background-color: var(--base-color-a2);
124
+ box-shadow: inset 0 0 0 1px var(--base-color-a6);
125
+ }
126
+
127
+ .x-select:where([data-variant="soft"]) {
128
+ color: var(--color-12);
129
+ background-color: var(--color-a3);
130
+ }
131
+
132
+ @media (hover: hover) {
133
+ .x-select:where([data-variant="soft"]):where(:hover) {
134
+ background-color: var(--color-a4);
135
+ }
136
+ }
137
+
138
+ .x-select:where([data-variant="soft"]):where(:focus-visible) {
139
+ outline-color: var(--color-8);
140
+ }
141
+
142
+ .x-select:where([data-variant="soft"]):where(:disabled) {
143
+ color: var(--base-color-a11);
144
+ background-color: var(--base-color-a3);
145
+ }
146
+
147
+ .x-select:where([data-variant="text"]) {
148
+ color: var(--color-12);
149
+ }
150
+
151
+ @media (hover: hover) {
152
+ .x-select:where([data-variant="text"]):where(:hover) {
153
+ background-color: var(--color-a3);
154
+ }
155
+ }
156
+
157
+ .x-select:where([data-variant="text"]):where(:disabled) {
158
+ color: var(--base-color-a11);
159
+ background-color: #0000;
160
+ }
@@ -0,0 +1,116 @@
1
+ .x-toggle {
2
+ justify-content: center;
3
+ align-items: center;
4
+ gap: var(--space-2);
5
+ vertical-align: top;
6
+ height: var(--toggle-height);
7
+ padding: 0 var(--toggle-padding-inline);
8
+ border-radius: max(var(--toggle-radius), var(--radius-pill));
9
+ font-family: var(--default-font-family);
10
+ font-size: var(--toggle-font-size);
11
+ text-align: center;
12
+ -webkit-user-select: none;
13
+ user-select: none;
14
+ cursor: var(--cursor-button);
15
+ flex-shrink: 0;
16
+ font-weight: 500;
17
+ line-height: 1;
18
+ transition: background-color .12s ease-out, box-shadow .12s ease-out, color .12s ease-out;
19
+ display: inline-flex;
20
+ }
21
+
22
+ .x-toggle > input {
23
+ opacity: 0;
24
+ pointer-events: none;
25
+ width: 0;
26
+ height: 0;
27
+ position: absolute;
28
+ }
29
+
30
+ .x-toggle:where(:focus-within) {
31
+ outline: 2px solid var(--focus-8);
32
+ outline-offset: 1px;
33
+ }
34
+
35
+ .x-toggle:where(:has(input:disabled)) {
36
+ opacity: .6;
37
+ pointer-events: none;
38
+ cursor: var(--cursor-disabled);
39
+ }
40
+
41
+ .x-toggle:where([data-size="1"]) {
42
+ --toggle-height: var(--space-5);
43
+ --toggle-padding-inline: var(--space-2);
44
+ --toggle-radius: var(--radius-1);
45
+ --toggle-font-size: var(--font-size-1);
46
+ }
47
+
48
+ .x-toggle:where(:not([data-size]), [data-size="2"]) {
49
+ --toggle-height: var(--space-6);
50
+ --toggle-padding-inline: var(--space-3);
51
+ --toggle-radius: var(--radius-2);
52
+ --toggle-font-size: var(--font-size-2);
53
+ }
54
+
55
+ .x-toggle:where([data-size="3"]) {
56
+ --toggle-height: var(--space-7);
57
+ --toggle-padding-inline: var(--space-4);
58
+ --toggle-radius: var(--radius-3);
59
+ --toggle-font-size: var(--font-size-3);
60
+ }
61
+
62
+ .x-toggle:where([data-icon]) {
63
+ aspect-ratio: 1;
64
+ min-width: 0;
65
+ padding-inline: 0;
66
+ }
67
+
68
+ .x-toggle:where(:not([data-variant]), [data-variant="surface"]) {
69
+ box-shadow: inset 0 0 0 1px var(--base-color-a5);
70
+ color: var(--base-color-a11);
71
+ background-color: #0000;
72
+ font-weight: 500;
73
+ }
74
+
75
+ @media (hover: hover) {
76
+ .x-toggle:where(:not([data-variant]), [data-variant="surface"]):where(:hover) {
77
+ background-color: var(--base-color-a2);
78
+ }
79
+ }
80
+
81
+ .x-toggle:where(:not([data-variant]), [data-variant="surface"]):where(:has(input:checked)) {
82
+ background-color: var(--color-a4);
83
+ box-shadow: inset 0 0 0 1px var(--color-a8);
84
+ color: var(--color-a12, var(--color-12));
85
+ font-weight: 600;
86
+ }
87
+
88
+ @media (hover: hover) {
89
+ .x-toggle:where(:not([data-variant]), [data-variant="surface"]):where(:has(input:checked):hover) {
90
+ background-color: var(--color-a5);
91
+ }
92
+ }
93
+
94
+ .x-toggle:where([data-variant="soft"]) {
95
+ background-color: var(--base-color-a3);
96
+ color: var(--base-color-a11);
97
+ font-weight: 500;
98
+ }
99
+
100
+ @media (hover: hover) {
101
+ .x-toggle:where([data-variant="soft"]):where(:hover) {
102
+ background-color: var(--base-color-a4);
103
+ }
104
+ }
105
+
106
+ .x-toggle:where([data-variant="soft"]):where(:has(input:checked)) {
107
+ background-color: var(--color-a4);
108
+ color: var(--color-a12, var(--color-12));
109
+ font-weight: 600;
110
+ }
111
+
112
+ @media (hover: hover) {
113
+ .x-toggle:where([data-variant="soft"]):where(:has(input:checked):hover) {
114
+ background-color: var(--color-a6);
115
+ }
116
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "elements-kit",
3
3
  "type": "module",
4
- "version": "0.12.1",
4
+ "version": "0.15.0",
5
5
  "description": "A lightweight reactive UI library that transforms native HTMLElements into reactive components with signals. Ideal for framework-agnostic applications and web components.",
6
6
  "keywords": [
7
7
  "webcomponents",