@thednp/color-picker 0.0.1-alpha1 → 0.0.1-alpha2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +40 -19
  3. package/dist/css/color-picker.css +481 -337
  4. package/dist/css/color-picker.min.css +2 -0
  5. package/dist/css/color-picker.rtl.css +506 -0
  6. package/dist/css/color-picker.rtl.min.css +2 -0
  7. package/dist/js/color-picker-element-esm.js +3810 -2
  8. package/dist/js/color-picker-element-esm.min.js +2 -0
  9. package/dist/js/color-picker-element.js +2009 -1242
  10. package/dist/js/color-picker-element.min.js +2 -2
  11. package/dist/js/color-picker-esm.js +3704 -0
  12. package/dist/js/color-picker-esm.min.js +2 -0
  13. package/dist/js/color-picker.js +1962 -1256
  14. package/dist/js/color-picker.min.js +2 -2
  15. package/package.json +18 -9
  16. package/src/js/color-palette.js +62 -0
  17. package/src/js/color-picker-element.js +55 -13
  18. package/src/js/color-picker.js +686 -595
  19. package/src/js/color.js +615 -349
  20. package/src/js/index.js +0 -9
  21. package/src/js/util/colorNames.js +2 -152
  22. package/src/js/util/colorPickerLabels.js +22 -0
  23. package/src/js/util/getColorControls.js +103 -0
  24. package/src/js/util/getColorForm.js +27 -19
  25. package/src/js/util/getColorMenu.js +95 -0
  26. package/src/js/util/isValidJSON.js +13 -0
  27. package/src/js/util/nonColors.js +5 -0
  28. package/src/js/util/templates.js +1 -0
  29. package/src/scss/color-picker.rtl.scss +23 -0
  30. package/src/scss/color-picker.scss +430 -0
  31. package/types/cp.d.ts +263 -160
  32. package/types/index.d.ts +9 -2
  33. package/types/source/source.ts +2 -1
  34. package/types/source/types.d.ts +28 -5
  35. package/dist/js/color-picker.esm.js +0 -2998
  36. package/dist/js/color-picker.esm.min.js +0 -2
  37. package/src/js/util/getColorControl.js +0 -49
  38. package/src/js/util/init.js +0 -14
@@ -1,338 +1,482 @@
1
- /* :host */
2
- color-picker,
3
- .color-picker {
4
- position: relative;
5
- display: flex;
6
- }
7
- /* :host */
8
- color-picker:focus,
9
- .color-picker:focus {
10
- outline: none;
11
- }
12
- .color-dropdown {
13
- position: absolute;
14
- left: 0;
15
- z-index: 50;
16
- display: none;
17
- /* width: 100%;
18
- max-width: calc(100% - 1rem); */
19
- padding: .5rem;
20
- color: rgba(255,255,255,.8);
21
- background: rgba(0,0,0,.75);
22
- border-radius: .5rem;
23
- box-shadow: 0 6px 12px rgba(0, 0, 0, .4);
24
- flex-basis: 100%;
25
- flex-direction: column;
26
- min-width: max-content;
27
- }
28
- .color-dropdown.menu {
29
- right: 0; left: auto;
30
- }
31
- .color-dropdown.show {
32
- top: calc(100% + 5px);
33
- display: flex;
34
- }
35
- .color-dropdown.show-top {
36
- top: auto;
37
- bottom: calc(100% + 5px);
38
- display: flex;
39
- }
40
- .color-controls {
41
- display: none;
42
- flex-wrap: wrap;
43
- justify-content: space-between;
44
- }
45
- .picker-toggle:focus + .color-preview {
46
- box-shadow: 0 0 0 5px rgba(0,0,0,.33);
47
- }
48
- .button-appearance {
49
- width: 100%;
50
- height: 1.5rem;
51
- padding: .6rem 1rem;
52
- font-size: 1rem;
53
- line-height: 1.5;
54
- border: 0;
55
- border-radius: .25rem;
56
- outline: none;
57
- appearance: none;
58
- }
59
- .color-preview {
60
- box-shadow: 0 0 0 1px rgba(120,120,120,.33) inset;
61
- direction: ltr; /* color value can never be rtl */
62
- }
63
-
64
- /* :host(.dark) .color-preview */
65
- .dark .color-preview {
66
- color: rgba(255,255,255,.8);
67
- }
68
- /* :host(.dark) .color-preview:focus */
69
- .dark .color-preview:focus {
70
- box-shadow: 0 0 0 1px rgb(255,255,255) inset, 0 0 0 3px rgba(0,0,0,.15);
71
- }
72
- /* :host(.dark) .color-preview::placeholder { */
73
- .dark .color-preview::placeholder {
74
- color: rgba(255,255,255,.6);
75
- }
76
-
77
- /* :host(.light) .color-preview */
78
- .light .color-preview {
79
- color: rgba(0,0,0,.8);
80
- }
81
- /* :host(.light) .color-preview:focus */
82
- .light .color-preview:focus {
83
- color: rgba(0,0,0,.8);
84
- box-shadow: 0 0 0 1px rgba(0,0,0,.5) inset, 0 0 0 3px rgba(0,0,0,.15);
85
- }
86
- /* :host(.light) .color-preview::placeholder */
87
- .light .color-preview::placeholder {
88
- color: rgba(0,0,0,.6);
89
- }
90
- .picker-toggle {
91
- position: absolute;
92
- top: 0;
93
- left: 0;
94
- width: 100%;
95
- height: 100%;
96
- background: transparent;
97
- border: 0;
98
- }
99
-
100
- /* :host(.open) .picker-toggle */
101
- .open .picker-toggle {
102
- z-index: -1;
103
- }
104
- .menu-toggle {
105
- position: absolute;
106
- top: 0;
107
- right: 0;
108
- display: flex;
109
- width: 3rem;
110
- height: 100%;
111
- padding: 0 .25rem;
112
- cursor: pointer;
113
- border: 0;
114
- border-radius: 0 .25rem .25rem 0;
115
- transition: all .33s ease;
116
- }
117
-
118
- /* :host(.light) .menu-toggle */
119
- .light .menu-toggle {
120
- background: rgba(0,0,0,.5);
121
- }
122
- /* :host(.light) .menu-toggle:hover,
123
- :host(.light) .menu-toggle:focus { */
124
- .light .menu-toggle:focus,
125
- .light .menu-toggle:focus {
126
- background: rgba(0,0,0,.7);
127
- }
128
-
129
- /* :host(.dark) .menu-toggle */
130
- .dark .menu-toggle {
131
- background: rgba(255,255,255,.33);
132
- }
133
-
134
- /* :host(.dark) .menu-toggle:focus,
135
- :host(.dark) .menu-toggle:hover */
136
- .dark .menu-toggle:focus,
137
- .dark .menu-toggle:focus {
138
- background: rgba(255,255,255,.5);
139
- }
140
- .button-appearance:focus,
141
- .button-appearance:hover {
142
- box-shadow: 0 0 0 3px rgba(0,0,0,.15);
143
- }
144
- .menu-toggle svg {
145
- width: auto;
146
- height: 100%;
147
- }
148
- .color-menu {
149
- display: none;
150
- flex-wrap: wrap;
151
- flex-flow: column;
152
- max-height: 160px;
153
- margin: 0;
154
- overflow-y: auto;
155
- list-style: none;
156
- padding-inline: 0;
157
- }
158
- .color-menu::-webkit-scrollbar {
159
- width: 10px;
160
- }
161
- .color-menu::-webkit-scrollbar-track {
162
- background-color: transparent;
163
- }
164
- .color-menu::-webkit-scrollbar-thumb {
165
- background-color: transparent;
166
- background-clip: content-box;
167
- border: 0;
168
- border-radius: 10px;
169
- }
170
- .color-menu:hover::-webkit-scrollbar-thumb {
171
- background-color: rgba(255,255,255,.2);
172
- }
173
- .color-menu::-webkit-scrollbar-thumb:hover {
174
- background-color: #fff;
175
- }
176
- .color-dropdown.menu .color-menu,
177
- .color-dropdown.picker .color-controls {
178
- display: flex;
179
- }
180
-
181
- .color-option {
182
- padding: .25rem .5rem;
183
- color: inherit;
184
- cursor: pointer
185
- }
186
- .color-option:focus,
187
- .color-option:hover {
188
- background: rgba(255,255,255,.3);
189
- outline: none;
190
- }
191
- .color-option:active,
192
- .color-option.active {
193
- color: #000;
194
- background: #fff;
195
- }
196
- .color-form {
197
- display: flex;
198
- flex-direction: row;
199
- flex-wrap: wrap;
200
- align-items: center;
201
- padding: .25rem 0;
202
- font: 12px sans-serif;
203
- max-width: fit-content;
204
- }
205
- .color-form.hex { max-width: initial; }
206
- .color-form > * {
207
- flex: 1 0 0%;
208
- width: 17.5%;
209
- max-width: 17.5%;
210
- /* width: calc(65% / 4 - 1rem); */
211
- }
212
- .color-form label {
213
- width: 7.5%;
214
- max-width: 7.5%;
215
- text-align: center;
216
- }
217
- .color-input {
218
- color: inherit;
219
- text-align: right;
220
- background: transparent;
221
- border: 1px solid rgba(255,255,255,.15);
222
- outline: none;
223
- }
224
- .color-input.hex {
225
- width: 92.5%;
226
- max-width: 92.5%;
227
- /* width: calc(100% - 4% - 1rem); */
228
- }
229
- .color-input:active,
230
- .color-input:focus {
231
- background: rgba(0,0,0,.25);
232
- border: 1px solid rgba(255,255,255,.33);
233
- }
234
-
235
- .visual-control2,
236
- .visual-control3 {
237
- cursor: ns-resize;
238
- }
239
- .color-control {
240
- position: relative;
241
- display: inline-block;
242
- }
243
- .color-slider {
244
- cursor: ns-resize;
245
- left: 0;
246
- width: calc(100% - 2px);
247
- }
248
- .color-control + .color-control {
249
- margin-left: 0.5rem;
250
- }
251
- .knob {
252
- position: absolute;
253
- top: 0;
254
- left: 0;
255
- height: 5px;
256
- user-select: none;
257
- background: #000;
258
- border: 1px solid #fff;
259
- outline: none;
260
- will-change: transform;
261
- }
262
- .knob:hover {
263
- box-shadow: 0 0 0 6px rgba(255,255,255,.5);
264
- }
265
- .knob:active,
266
- .knob:focus {
267
- z-index: 1;
268
- box-shadow: 0 0 0 6px rgba(255,255,255,.9);
269
- }
270
- .color-pointer {
271
- width: 5px;
272
- border-radius: 5px;
273
- }
274
-
275
- /* :host(.dark) .color-pointer */
276
- .dark .color-pointer {
277
- background: #fff;
278
- border-color: #fff;
279
- }
280
- /* :host(.light) .color-pointer */
281
- .light .color-pointer {
282
- background: #000;
283
- border-color: #000;
284
- }
285
- .color-pointer:hover,
286
- .color-pointer:active,
287
- .color-pointer:focus {
288
- background: transparent !important;
289
- border-color: transparent !important;
290
- }
291
-
292
- /* :host(.dark) .color-pointer:hover */
293
- .dark .color-pointer:hover {
294
- box-shadow: 0 0 0 6px rgba(255,255,255,.5);
295
- }
296
- /* :host(.light) .color-pointer:hover */
297
- .light .color-pointer:hover {
298
- box-shadow: 0 0 0 6px rgba(0,0,0,.5);
299
- }
300
-
301
- /* :host(.dark) .color-pointer:focus,
302
- :host(.dark) .color-pointer:active */
303
- .dark .color-pointer:focus,
304
- .dark .color-pointer:active {
305
- box-shadow: 0 0 0 6px rgba(255,255,255,.9);
306
- }
307
- /* :host(.light) .color-pointer:focus,
308
- :host(.light) .color-pointer:active { */
309
- .light .color-pointer:focus,
310
- .light .color-pointer:active {
311
- box-shadow: 0 0 0 6px rgba(0,0,0,.9);
312
- }
313
-
314
- /* utility */
315
- .v-hidden {
316
- position: absolute !important;
317
- width: 1px !important;
318
- height: 1px !important;
319
- padding: 0 !important;
320
- margin: -1px !important;
321
- overflow: hidden !important;
322
- clip: rect(0,0,0,0) !important;
323
- white-space: nowrap !important;
324
- border: 0 !important;
325
- }
326
-
327
- [dir="rtl"] .color-preview { text-align: right; }
328
- [dir="rtl"] .menu-toggle {
329
- right: auto;
330
- left: 0;
331
- }
332
- [dir="rtl"] .menu-toggle {
333
- border-radius: .25rem 0 0 .25rem;
334
- }
335
- [dir="rtl"] .color-control + .color-control {
336
- margin-right: 0.5rem;
337
- margin-left: 0;
1
+ /*!
2
+ * ColorPicker v0.0.1alpha2 (http://thednp.github.io/color-picker)
3
+ * Copyright 2022 © thednp
4
+ * Licensed under MIT (https://github.com/thednp/color-picker/blob/master/LICENSE)
5
+ */
6
+ /* :host */
7
+ color-picker,
8
+ .color-picker {
9
+ position: relative;
10
+ display: flex;
11
+ }
12
+
13
+ color-picker:focus,
14
+ .color-picker:focus {
15
+ outline: none;
16
+ }
17
+
18
+ /* color-dropdown */
19
+ .color-dropdown {
20
+ position: absolute;
21
+ z-index: 50;
22
+ display: none;
23
+ flex-direction: column;
24
+ width: min-content;
25
+ padding: 0.5rem;
26
+ color: rgba(255, 255, 255, 0.8);
27
+ background: rgba(0, 0, 0, 0.75);
28
+ border-radius: 0.5rem;
29
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.4);
30
+ opacity: 0;
31
+ transition: transform 0.33s ease, opacity 0.33s ease;
32
+ }
33
+
34
+ .color-dropdown.picker {
35
+ left: 0;
36
+ }
37
+
38
+ .color-dropdown.menu {
39
+ right: 0;
40
+ }
41
+
42
+ .open .color-dropdown.top {
43
+ top: auto;
44
+ bottom: 100%;
45
+ }
46
+
47
+ .color-dropdown.bottom {
48
+ top: 100%;
49
+ }
50
+
51
+ .open .color-dropdown.top,
52
+ .open .color-dropdown.bottom {
53
+ display: flex;
54
+ }
55
+
56
+ .color-dropdown.show {
57
+ opacity: 1;
58
+ }
59
+
60
+ .color-dropdown.show.top {
61
+ transform: translate(0, -5px);
62
+ }
63
+
64
+ .color-dropdown.show.bottom {
65
+ transform: translate(0, 5px);
66
+ }
67
+
68
+ /* color-controls */
69
+ .color-controls {
70
+ display: none;
71
+ flex-wrap: wrap;
72
+ justify-content: space-between;
73
+ width: max-content;
74
+ }
75
+
76
+ /* btn-appearance */
77
+ .btn-appearance {
78
+ width: 100%;
79
+ height: 1.5rem;
80
+ padding: 0.6rem 1rem;
81
+ font-size: 1rem;
82
+ line-height: 1.5;
83
+ border: 0;
84
+ border-radius: 0.25rem;
85
+ outline: none;
86
+ appearance: none;
87
+ transition-duration: 0.33s;
88
+ transition-property: box-shadow, border;
89
+ }
90
+
91
+ .btn-appearance:focus,
92
+ .btn-appearance:hover {
93
+ box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.15);
94
+ }
95
+
96
+ /* color-preview */
97
+ .color-preview {
98
+ box-shadow: 0 0 0 1px rgba(120, 120, 120, 0.33) inset;
99
+ direction: ltr;
100
+ /* color value can never be rtl */
101
+ }
102
+
103
+ .txt-dark .color-preview {
104
+ color: rgba(255, 255, 255, 0.8);
105
+ }
106
+
107
+ .txt-dark .color-preview:focus {
108
+ box-shadow: 0 0 0 1px white inset, 0 0 0 3px rgba(0, 0, 0, 0.15);
109
+ }
110
+
111
+ .txt-dark .color-preview::placeholder {
112
+ color: rgba(255, 255, 255, 0.6);
113
+ }
114
+
115
+ .txt-light .color-preview {
116
+ color: rgba(0, 0, 0, 0.8);
117
+ }
118
+
119
+ .txt-light .color-preview:focus {
120
+ color: rgba(0, 0, 0, 0.8);
121
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.5) inset, 0 0 0 3px rgba(0, 0, 0, 0.15);
122
+ }
123
+
124
+ .txt-light .color-preview::placeholder {
125
+ color: rgba(0, 0, 0, 0.6);
126
+ }
127
+
128
+ /* picker-toggle */
129
+ .picker-toggle {
130
+ position: absolute;
131
+ top: 0;
132
+ left: 0;
133
+ width: 100%;
134
+ height: 100%;
135
+ background: transparent;
136
+ border: 0;
137
+ }
138
+
139
+ .open .picker-toggle {
140
+ z-index: -1;
141
+ }
142
+
143
+ /* menu-toggle */
144
+ .menu-toggle {
145
+ position: absolute;
146
+ top: 0;
147
+ right: 0;
148
+ display: flex;
149
+ width: 3rem;
150
+ height: 100%;
151
+ padding: 0 0.25rem;
152
+ cursor: pointer;
153
+ border: 0;
154
+ border-radius: 0 0.25rem 0.25rem 0;
155
+ }
156
+
157
+ .txt-light .menu-toggle {
158
+ background: rgba(0, 0, 0, 0.5);
159
+ }
160
+
161
+ .txt-light .menu-toggle:focus,
162
+ .txt-light .menu-toggle:focus {
163
+ background: rgba(0, 0, 0, 0.7);
164
+ }
165
+
166
+ .txt-dark .menu-toggle {
167
+ background: rgba(255, 255, 255, 0.33);
168
+ }
169
+
170
+ .txt-dark .menu-toggle:focus,
171
+ .txt-dark .menu-toggle:focus {
172
+ background: rgba(255, 255, 255, 0.5);
173
+ }
174
+
175
+ .menu-toggle svg {
176
+ width: auto;
177
+ height: 100%;
178
+ }
179
+
180
+ /* scrollable */
181
+ .scrollable {
182
+ overflow-x: hidden;
183
+ overflow-y: auto;
184
+ scrollbar-width: thin;
185
+ }
186
+
187
+ .scrollable::-webkit-scrollbar {
188
+ width: 0.5rem;
189
+ }
190
+
191
+ .scrollable::-webkit-scrollbar-track {
192
+ background-color: transparent;
193
+ }
194
+
195
+ .scrollable::-webkit-scrollbar-thumb {
196
+ width: 0.5rem;
197
+ background-color: transparent;
198
+ background-clip: content-box;
199
+ border: 0;
200
+ }
201
+
202
+ .scrollable:hover::-webkit-scrollbar-thumb {
203
+ background-color: rgba(255, 255, 255, 0.33);
204
+ }
205
+
206
+ .scrollable::-webkit-scrollbar-thumb:hover {
207
+ background-color: #fff;
208
+ }
209
+
210
+ /* color-defaults */
211
+ .color-defaults {
212
+ display: none;
213
+ flex-wrap: wrap;
214
+ flex-flow: column;
215
+ margin: 0;
216
+ list-style: none;
217
+ padding-inline: 0;
218
+ }
219
+
220
+ .color-dropdown.menu .color-defaults,
221
+ .color-dropdown.picker .color-controls {
222
+ display: flex;
223
+ }
224
+
225
+ .color-dropdown.menu {
226
+ max-height: 230px;
227
+ }
228
+
229
+ .color-defaults .color-option {
230
+ padding: 0.25rem 0.5rem;
231
+ color: inherit;
232
+ }
233
+
234
+ .color-option {
235
+ cursor: pointer;
236
+ }
237
+
238
+ .color-defaults .color-option:focus,
239
+ .color-defaults .color-option:hover {
240
+ background: rgba(255, 255, 255, 0.3);
241
+ outline: none;
242
+ }
243
+
244
+ .color-defaults .color-option:active,
245
+ .color-defaults .color-option.active {
246
+ color: #000;
247
+ background: #fff;
248
+ }
249
+
250
+ /* color-options grid */
251
+ .color-options {
252
+ display: grid;
253
+ padding: 0;
254
+ margin: 0;
255
+ list-style: none;
256
+ }
257
+
258
+ .color-options.scrollable {
259
+ margin: 0 -0.5rem 0 0;
260
+ overflow-y: scroll;
261
+ transition: height 0.33s ease;
262
+ }
263
+
264
+ .multiline + .color-defaults {
265
+ flex-direction: row;
266
+ flex-wrap: wrap;
267
+ margin-top: 0.25rem;
268
+ }
269
+ .multiline + .color-defaults .color-option {
270
+ padding: 0.25rem 0.33rem;
271
+ font-size: 12px;
272
+ }
273
+
274
+ .color-options .color-option {
275
+ position: relative;
276
+ overflow: hidden;
277
+ text-indent: 2.1rem;
278
+ background: #eee;
279
+ opacity: 0.8;
280
+ }
281
+
282
+ .color-options .color-option:hover,
283
+ .color-options .color-option:active,
284
+ .color-options .color-option:focus {
285
+ opacity: 1;
286
+ }
287
+
288
+ .color-options .color-option:active,
289
+ .color-options .color-option:focus {
290
+ outline: none;
291
+ }
292
+
293
+ .color-options .color-option:active,
294
+ .color-options .color-option:focus {
295
+ box-shadow: 0 0 0 4px rgba(125, 125, 125, 0.75) inset;
296
+ }
297
+
298
+ .color-options .color-option.active {
299
+ opacity: 1;
300
+ }
301
+ .color-options .color-option.active:after {
302
+ position: absolute;
303
+ top: 50%;
304
+ left: 50%;
305
+ width: 4px;
306
+ height: 4px;
307
+ margin: -2px 0 0 -2px;
308
+ content: " ";
309
+ border-radius: 4px;
310
+ }
311
+
312
+ .txt-dark .color-options .color-option.active:after {
313
+ box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.9);
314
+ }
315
+
316
+ .txt-light .color-options .color-option.active:after {
317
+ box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.9);
318
+ }
319
+
320
+ /* color-form */
321
+ .color-form {
322
+ display: flex;
323
+ flex-direction: row;
324
+ flex-wrap: wrap;
325
+ align-items: center;
326
+ padding: 0.5rem 0 0;
327
+ font: 12px sans-serif;
328
+ }
329
+
330
+ .color-form.hex {
331
+ max-width: initial;
332
+ }
333
+
334
+ .color-form > * {
335
+ flex: 1 0 0%;
336
+ width: 17.5%;
337
+ max-width: 17.5%;
338
+ }
339
+
340
+ .color-form label {
341
+ width: 7.5%;
342
+ max-width: 7.5%;
343
+ text-align: center;
344
+ }
345
+
346
+ .color-input {
347
+ color: inherit;
348
+ text-align: right;
349
+ background: transparent;
350
+ border: 1px solid rgba(255, 255, 255, 0.15);
351
+ outline: none;
352
+ }
353
+
354
+ .color-input.hex {
355
+ width: 92.5%;
356
+ max-width: 92.5%;
357
+ /* width: calc(100% - 4% - 1rem); */
358
+ }
359
+
360
+ .color-input:active,
361
+ .color-input:focus {
362
+ background: rgba(0, 0, 0, 0.25);
363
+ border: 1px solid rgba(255, 255, 255, 0.33);
364
+ }
365
+
366
+ /* visual control */
367
+ .visual-control {
368
+ height: 150px;
369
+ }
370
+
371
+ .visual-control1 {
372
+ width: 150px;
373
+ }
374
+
375
+ .visual-control2,
376
+ .visual-control3 {
377
+ width: 21px;
378
+ cursor: ns-resize;
379
+ }
380
+
381
+ @media (min-width: 578px) {
382
+ .visual-control {
383
+ height: 230px;
384
+ }
385
+
386
+ .visual-control1 {
387
+ width: 230px;
388
+ }
389
+ }
390
+ @media (min-width: 1200px) {
391
+ .visual-control {
392
+ height: 300px;
393
+ }
394
+
395
+ .visual-control1 {
396
+ width: 300px;
397
+ }
398
+ }
399
+ .color-control {
400
+ position: relative;
401
+ display: inline-block;
402
+ }
403
+
404
+ .color-slider {
405
+ left: 0;
406
+ width: calc(100% - 2px);
407
+ cursor: ns-resize;
408
+ }
409
+
410
+ .color-control + .color-control {
411
+ margin-left: 0.5rem;
412
+ }
413
+
414
+ /* knob */
415
+ .knob {
416
+ position: absolute;
417
+ top: 0;
418
+ left: 0;
419
+ height: 7px;
420
+ user-select: none;
421
+ background-color: #000;
422
+ border: 1px solid #fff;
423
+ outline: none;
424
+ will-change: transform;
425
+ }
426
+
427
+ .knob:hover {
428
+ box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.5);
429
+ }
430
+
431
+ .knob:focus,
432
+ .knob:active {
433
+ z-index: 1;
434
+ box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.9);
435
+ }
436
+
437
+ /* color-pointer */
438
+ .color-pointer {
439
+ width: 7px;
440
+ background-color: transparent;
441
+ border: 0;
442
+ border-radius: 5px;
443
+ }
444
+
445
+ .txt-dark .color-pointer {
446
+ box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.5);
447
+ }
448
+
449
+ .txt-light .color-pointer {
450
+ box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.5);
451
+ }
452
+
453
+ .txt-dark .color-pointer:hover {
454
+ box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.75);
455
+ }
456
+
457
+ .txt-light .color-pointer:hover {
458
+ box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.75);
459
+ }
460
+
461
+ .txt-dark .color-pointer:focus,
462
+ .txt-dark .color-pointer:active {
463
+ box-shadow: 0 0 0 5px rgba(255, 255, 255, 0.9);
464
+ }
465
+
466
+ .txt-light .color-pointer:focus,
467
+ .txt-light .color-pointer:active {
468
+ box-shadow: 0 0 0 5px rgba(0, 0, 0, 0.9);
469
+ }
470
+
471
+ /* utility */
472
+ .v-hidden {
473
+ position: absolute !important;
474
+ width: 1px !important;
475
+ height: 1px !important;
476
+ padding: 0 !important;
477
+ margin: -1px !important;
478
+ overflow: hidden !important;
479
+ clip: rect(0, 0, 0, 0) !important;
480
+ white-space: nowrap !important;
481
+ border: 0 !important;
338
482
  }