@andreyshpigunov/x 0.5.0 → 0.5.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/index.html CHANGED
@@ -19,7 +19,7 @@
19
19
  "functionName": "headerAnimation"
20
20
  }'>
21
21
  <header class="header flex aic sticky t0 px5 m:px6 l:px8 unselectable">
22
- <div class="header-version nowrap">0.5.0</div>
22
+ <div class="header-version nowrap">0.5.1</div>
23
23
  <div class="header-logo mxa">
24
24
  <a role="button" x-scrollto="#top">
25
25
  <img src="assets/img/logo.png" alt="x" />
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@andreyshpigunov/x",
3
- "version": "0.5.0",
3
+ "version": "0.5.1",
4
4
  "x-js": "dist/x.js",
5
5
  "app-js": "assets/js/app.js",
6
6
  "targets": {
@@ -67,202 +67,206 @@ All right reserved.
67
67
  */
68
68
  }
69
69
 
70
- .button, [type=submit] {
71
- /* Computed on the element so var(--button-color) respects .button_primary etc. */
72
- --button-color-hover: color-mix(
73
- in oklab,
74
- var(--button-color) calc(100% - var(--button-hover-lighten)),
75
- white var(--button-hover-lighten)
76
- );
77
- --button-color-active: color-mix(
78
- in oklab,
79
- var(--button-color) calc(100% - var(--button-active-darken)),
80
- black var(--button-active-darken)
81
- );
82
- --button-font-color-hover: var(--button-font-color);
83
- --button-font-color-active: var(--button-font-color);
84
-
85
- position: relative;
86
- display: inline-flex;
87
- align-items: center;
88
- justify-content: center;
89
- width: auto;
90
- min-height: var(--button-height, calc(var(--button-font-size) * var(--button-height-coeff)));
91
- padding: 0 var(--button-side-padding, calc(var(--button-font-size) * var(--button-side-padding-coeff)));
92
- color: var(--button-font-color);
93
- font-family: var(--button-font-family);
94
- font-size: var(--button-font-size);
95
- font-weight: var(--button-font-weight);
96
- line-height: 1;
97
- vertical-align: bottom;
98
- white-space: nowrap;
99
- text-align: center;
100
- text-shadow: none;
101
- text-transform: none;
102
- text-decoration: none;
103
- outline: none;
104
- cursor: pointer;
105
- overflow: hidden;
106
- border: none;
107
- border-radius: var(--button-border-radius);
108
- background-color: var(--button-color);
109
- transition: var(--button-transition);
110
- transform: var(--button-transform);
111
- transform-origin: var(--button-transform-origin);
112
- user-select: none;
113
- appearance: none;
114
- box-shadow: var(--button-box-shadow);
70
+ @layer buttons {
115
71
 
116
- & svg {
117
- transform: translateZ(0);
118
- }
72
+ .button, [type=submit] {
73
+ /* Computed on the element so var(--button-color) respects .button_primary etc. */
74
+ --button-color-hover: color-mix(
75
+ in oklab,
76
+ var(--button-color) calc(100% - var(--button-hover-lighten)),
77
+ white var(--button-hover-lighten)
78
+ );
79
+ --button-color-active: color-mix(
80
+ in oklab,
81
+ var(--button-color) calc(100% - var(--button-active-darken)),
82
+ black var(--button-active-darken)
83
+ );
84
+ --button-font-color-hover: var(--button-font-color);
85
+ --button-font-color-active: var(--button-font-color);
119
86
 
120
- &:link,
121
- &:visited {
122
- text-decoration: none;
87
+ position: relative;
88
+ display: inline-flex;
89
+ align-items: center;
90
+ justify-content: center;
91
+ width: auto;
92
+ min-height: var(--button-height, calc(var(--button-font-size) * var(--button-height-coeff)));
93
+ padding: 0 var(--button-side-padding, calc(var(--button-font-size) * var(--button-side-padding-coeff)));
123
94
  color: var(--button-font-color);
95
+ font-family: var(--button-font-family);
96
+ font-size: var(--button-font-size);
97
+ font-weight: var(--button-font-weight);
98
+ line-height: 1;
99
+ vertical-align: bottom;
100
+ white-space: nowrap;
101
+ text-align: center;
102
+ text-shadow: none;
103
+ text-transform: none;
104
+ text-decoration: none;
105
+ outline: none;
106
+ cursor: pointer;
107
+ overflow: hidden;
108
+ border: none;
109
+ border-radius: var(--button-border-radius);
124
110
  background-color: var(--button-color);
111
+ transition: var(--button-transition);
125
112
  transform: var(--button-transform);
113
+ transform-origin: var(--button-transform-origin);
114
+ user-select: none;
115
+ appearance: none;
116
+ box-shadow: var(--button-box-shadow);
117
+
118
+ & svg {
119
+ transform: translateZ(0);
120
+ }
121
+
122
+ &:link,
123
+ &:visited {
124
+ text-decoration: none;
125
+ color: var(--button-font-color);
126
+ background-color: var(--button-color);
127
+ transform: var(--button-transform);
128
+ }
129
+
130
+ &:focus-visible {
131
+ outline: solid .2rem #8888;
132
+ transition: none;
133
+ }
134
+
135
+ @media (any-hover: hover) {
136
+ &:focus-visible,
137
+ &:hover,
138
+ &.hover {
139
+ text-decoration: none;
140
+ color: var(--button-font-color-hover);
141
+ background-color: var(--button-color-hover);
142
+ transform: var(--button-transform-hover);
143
+ box-shadow: var(--button-box-shadow-hover);
144
+ }
145
+ }
146
+
147
+ &:active,
148
+ &.active {
149
+ text-decoration: none;
150
+ color: var(--button-font-color-active);
151
+ background-color: var(--button-color-active);
152
+ transform: var(--button-transform-active);
153
+ box-shadow: var(--button-box-shadow-active);
154
+ }
155
+
156
+ &[disabled],
157
+ &.disabled {
158
+ opacity: var(--button-disabled-opacity);
159
+ pointer-events: none;
160
+ }
126
161
  }
127
162
 
128
- &:focus-visible {
129
- outline: solid .2rem #8888;
130
- transition: none;
163
+
164
+ /* Predefined styles & colors */
165
+
166
+ .button_spacy {
167
+ padding-top: calc(var(--button-font-size) * var(--button-side-padding-coeff) * 0.75);
168
+ padding-bottom: calc(var(--button-font-size) * var(--button-side-padding-coeff) * 0.75);
169
+ padding-left: calc(var(--button-font-size) * var(--button-side-padding-coeff) * 1.25);
170
+ padding-right: calc(var(--button-font-size) * var(--button-side-padding-coeff) * 1.25);
131
171
  }
132
172
 
133
- @media (any-hover: hover) {
134
- &:focus-visible,
135
- &:hover,
136
- &.hover {
137
- text-decoration: none;
138
- color: var(--button-font-color-hover);
139
- background-color: var(--button-color-hover);
140
- transform: var(--button-transform-hover);
141
- box-shadow: var(--button-box-shadow-hover);
142
- }
173
+ .button_label {
174
+ --button-height: calc(var(--line-height) * 1em);
175
+ --button-side-padding: .5em;
176
+ --button-font-size: inherit;
177
+ --button-border-radius: .5em;
178
+ vertical-align: baseline;
143
179
  }
144
180
 
145
- &:active,
146
- &.active {
147
- text-decoration: none;
148
- color: var(--button-font-color-active);
149
- background-color: var(--button-color-active);
150
- transform: var(--button-transform-active);
151
- box-shadow: var(--button-box-shadow-active);
181
+ .button_primary {
182
+ --button-color: var(--color-primary);
183
+ --button-font-color: #fff;
152
184
  }
153
-
154
- &[disabled],
155
- &.disabled {
156
- opacity: var(--button-disabled-opacity);
157
- pointer-events: none;
185
+ .button_success {
186
+ --button-color: var(--color-success);
187
+ --button-font-color: #fff;
158
188
  }
159
- }
160
-
161
-
162
- /* Predefined styles & colors */
163
-
164
- .button_spacy {
165
- padding-top: calc(var(--button-font-size) * var(--button-side-padding-coeff) * 0.75);
166
- padding-bottom: calc(var(--button-font-size) * var(--button-side-padding-coeff) * 0.75);
167
- padding-left: calc(var(--button-font-size) * var(--button-side-padding-coeff) * 1.25);
168
- padding-right: calc(var(--button-font-size) * var(--button-side-padding-coeff) * 1.25);
169
- }
170
-
171
- .button_label {
172
- --button-height: calc(var(--line-height) * 1em);
173
- --button-side-padding: .5em;
174
- --button-font-size: inherit;
175
- --button-border-radius: .5em;
176
- vertical-align: baseline;
177
- }
178
-
179
- .button_primary {
180
- --button-color: var(--color-primary);
181
- --button-font-color: #fff;
182
- }
183
- .button_success {
184
- --button-color: var(--color-success);
185
- --button-font-color: #fff;
186
- }
187
- .button_warning {
188
- --button-color: var(--color-warning);
189
- --button-font-color: #fff;
190
- }
191
- .button_danger {
192
- --button-color: var(--color-danger);
193
- --button-font-color: #fff;
194
- }
195
- .button_white {
196
- --button-color: #fff;
197
- --button-font-color: #000;
198
- }
199
- .button_black {
200
- --button-color: #111;
201
- --button-font-color: #fff;
202
- }
203
- .button_clear {
204
- --button-color: transparent;
205
- --button-box-shadow: none;
206
- --button-box-shadow-hover: none;
207
- --button-box-shadow-active: none;
208
- }
209
-
210
-
211
- /* Group */
212
-
213
- .buttons-group {
214
- display: flex;
215
- gap: calc(var(--space-1) / 2);
216
-
217
- & .button {
218
- border-radius: 0;
189
+ .button_warning {
190
+ --button-color: var(--color-warning);
191
+ --button-font-color: #fff;
192
+ }
193
+ .button_danger {
194
+ --button-color: var(--color-danger);
195
+ --button-font-color: #fff;
219
196
  }
197
+ .button_white {
198
+ --button-color: #fff;
199
+ --button-font-color: #000;
200
+ }
201
+ .button_black {
202
+ --button-color: #111;
203
+ --button-font-color: #fff;
204
+ }
205
+ .button_clear {
206
+ --button-color: transparent;
207
+ --button-box-shadow: none;
208
+ --button-box-shadow-hover: none;
209
+ --button-box-shadow-active: none;
210
+ }
211
+
220
212
 
221
- & .button:nth-child(1 of .button:not(.hidden)) {
222
- border-top-left-radius: var(--button-border-radius);
223
- border-bottom-left-radius: var(--button-border-radius);
213
+ /* Group */
214
+
215
+ .buttons-group {
216
+ display: flex;
217
+ gap: calc(var(--space-1) / 2);
218
+
219
+ & .button {
220
+ border-radius: 0;
221
+ }
222
+
223
+ & .button:nth-child(1 of .button:not(.hidden)) {
224
+ border-top-left-radius: var(--button-border-radius);
225
+ border-bottom-left-radius: var(--button-border-radius);
226
+ }
227
+
228
+ & .button:nth-last-child(1 of .button:not(.hidden)) {
229
+ border-top-right-radius: var(--button-border-radius);
230
+ border-bottom-right-radius: var(--button-border-radius);
231
+ }
224
232
  }
225
233
 
226
- & .button:nth-last-child(1 of .button:not(.hidden)) {
227
- border-top-right-radius: var(--button-border-radius);
228
- border-bottom-right-radius: var(--button-border-radius);
234
+
235
+ /* Dropdown button */
236
+
237
+ .button_dropdown {
238
+ --temp: calc(var(--button-font-size) * var(--button-side-padding-coeff));
239
+ padding-right: calc(var(--button-side-padding, var(--temp)) * 1.8);
240
+
241
+ &::after {
242
+ content: '';
243
+ display: block;
244
+ position: absolute;
245
+ right: var(
246
+ --button-side-padding,
247
+ calc(var(--button-font-size) * var(--button-side-padding-coeff)
248
+ ));
249
+ width: .5em;
250
+ height: .5em;
251
+ margin-top: -.05em;
252
+ border-bottom: solid .15rem var(--button-font-color);
253
+ border-right: solid .15rem var(--button-font-color);
254
+ transform: rotate(45deg);
255
+ transform-origin: center;
256
+ will-change: opacity;
257
+ opacity: .4;
258
+ transition: opacity .1s ease-out;
259
+ }
229
260
  }
230
- }
231
-
232
-
233
- /* Dropdown button */
234
-
235
- .button_dropdown {
236
- --temp: calc(var(--button-font-size) * var(--button-side-padding-coeff));
237
- padding-right: calc(var(--button-side-padding, var(--temp)) * 1.8);
238
-
239
- &::after {
240
- content: '';
241
- display: block;
242
- position: absolute;
243
- right: var(
244
- --button-side-padding,
245
- calc(var(--button-font-size) * var(--button-side-padding-coeff)
246
- ));
247
- width: .5em;
248
- height: .5em;
249
- margin-top: -.05em;
250
- border-bottom: solid .15rem var(--button-font-color);
251
- border-right: solid .15rem var(--button-font-color);
252
- transform: rotate(45deg);
253
- transform-origin: center;
254
- will-change: opacity;
255
- opacity: .4;
256
- transition: opacity .1s ease-out;
261
+ .dropdown_bottom .button_dropdown::after {
262
+ transform: rotate(225deg);
263
+ margin-top: .35em;
257
264
  }
258
- }
259
- .dropdown_bottom .button_dropdown::after {
260
- transform: rotate(225deg);
261
- margin-top: .35em;
262
- }
263
-
264
- .button_dropdown.active {
265
- &::after {
266
- opacity: 1;
265
+
266
+ .button_dropdown.active {
267
+ &::after {
268
+ opacity: 1;
269
+ }
267
270
  }
271
+
268
272
  }
@@ -37,52 +37,56 @@ All right reserved.
37
37
  --color-grey: #f4f5f6;
38
38
  }
39
39
 
40
- .color-primary {
41
- color: var(--color-primary);
42
- }
43
- .color-success {
44
- color: var(--color-success);
45
- }
46
- .color-warning {
47
- color: var(--color-warning);
48
- }
49
- .color-danger {
50
- color: var(--color-danger);
51
- }
52
- .color-error {
53
- color: var(--color-error);
54
- }
55
- .color-black {
56
- color: var(--color-black);
57
- }
58
- .color-white {
59
- color: var(--color-white);
60
- }
61
- .color-grey {
62
- color: var(--color-grey);
63
- }
40
+ @layer colors {
41
+
42
+ .color-primary {
43
+ color: var(--color-primary);
44
+ }
45
+ .color-success {
46
+ color: var(--color-success);
47
+ }
48
+ .color-warning {
49
+ color: var(--color-warning);
50
+ }
51
+ .color-danger {
52
+ color: var(--color-danger);
53
+ }
54
+ .color-error {
55
+ color: var(--color-error);
56
+ }
57
+ .color-black {
58
+ color: var(--color-black);
59
+ }
60
+ .color-white {
61
+ color: var(--color-white);
62
+ }
63
+ .color-grey {
64
+ color: var(--color-grey);
65
+ }
66
+
67
+ .bg-primary {
68
+ background-color: var(--color-primary);
69
+ }
70
+ .bg-success {
71
+ background-color: var(--color-success);
72
+ }
73
+ .bg-warning {
74
+ background-color: var(--color-warning);
75
+ }
76
+ .bg-danger {
77
+ background-color: var(--color-danger);
78
+ }
79
+ .bg-error {
80
+ background-color: var(--color-error);
81
+ }
82
+ .bg-black {
83
+ background-color: var(--color-black);
84
+ }
85
+ .bg-white {
86
+ background-color: var(--color-white);
87
+ }
88
+ .bg-grey {
89
+ background-color: var(--color-grey);
90
+ }
64
91
 
65
- .bg-primary {
66
- background-color: var(--color-primary);
67
- }
68
- .bg-success {
69
- background-color: var(--color-success);
70
- }
71
- .bg-warning {
72
- background-color: var(--color-warning);
73
- }
74
- .bg-danger {
75
- background-color: var(--color-danger);
76
- }
77
- .bg-error {
78
- background-color: var(--color-error);
79
- }
80
- .bg-black {
81
- background-color: var(--color-black);
82
- }
83
- .bg-white {
84
- background-color: var(--color-white);
85
- }
86
- .bg-grey {
87
- background-color: var(--color-grey);
88
92
  }