@trdrs/quickcharts 1.2.0 → 1.3.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.
@@ -39,6 +39,14 @@
39
39
  --qc-illustration-ink: #1e222d;
40
40
  --qc-motion-durationBase: 150ms;
41
41
  --qc-motion-durationFast: 90ms;
42
+ --qc-motion-durationModerate: 250ms;
43
+ --qc-motion-durationSlow: 350ms;
44
+ --qc-motion-durationSlower: 500ms;
45
+ --qc-motion-easingLinear: linear;
46
+ --qc-motion-easingOut: ease-out;
47
+ --qc-motion-easingSpring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
48
+ --qc-motion-easingStandard: ease;
49
+ --qc-motion-scaleEnter: 0.97;
42
50
  --qc-overlay-scrim: rgba(0, 0, 0, 0.35);
43
51
  --qc-overlay-separator: #ebebeb;
44
52
  --qc-overlay-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
@@ -122,6 +130,14 @@
122
130
  --qc-illustration-ink: #d1d4dc;
123
131
  --qc-motion-durationBase: 150ms;
124
132
  --qc-motion-durationFast: 90ms;
133
+ --qc-motion-durationModerate: 250ms;
134
+ --qc-motion-durationSlow: 350ms;
135
+ --qc-motion-durationSlower: 500ms;
136
+ --qc-motion-easingLinear: linear;
137
+ --qc-motion-easingOut: ease-out;
138
+ --qc-motion-easingSpring: cubic-bezier(0.175, 0.885, 0.32, 1.275);
139
+ --qc-motion-easingStandard: ease;
140
+ --qc-motion-scaleEnter: 0.97;
125
141
  --qc-overlay-scrim: rgba(0, 0, 0, 0.5);
126
142
  --qc-overlay-separator: #4a4a4a;
127
143
  --qc-overlay-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
@@ -174,6 +190,16 @@
174
190
  --qc-text-primary: #dbdbdb;
175
191
  --qc-text-secondary: #b8b8b8;
176
192
  }
193
+
194
+ @media (prefers-reduced-motion: reduce) {
195
+ [data-qc-theme] {
196
+ --qc-motion-durationBase: 0ms !important;
197
+ --qc-motion-durationFast: 0ms !important;
198
+ --qc-motion-durationModerate: 0ms !important;
199
+ --qc-motion-durationSlow: 0ms !important;
200
+ --qc-motion-durationSlower: 0ms !important;
201
+ }
202
+ }
177
203
  }
178
204
 
179
205
  @layer trdrs.chart {
@@ -249,7 +275,7 @@
249
275
  border: 1px solid var(--qc-chrome-border);
250
276
  border-radius: var(--qc-chrome-radius);
251
277
  cursor: pointer;
252
- transition: background-color var(--qc-motion-durationFast) linear, border-color var(--qc-motion-durationFast) linear;
278
+ transition: background-color var(--qc-motion-durationFast) var(--qc-motion-easingLinear), border-color var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
253
279
  }
254
280
 
255
281
  [data-qc-theme] .qc-button:hover {
@@ -375,7 +401,7 @@
375
401
  border: 0;
376
402
  border-radius: var(--qc-chrome-radius);
377
403
  cursor: pointer;
378
- transition: background-color var(--qc-motion-durationFast) linear;
404
+ transition: background-color var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
379
405
  }
380
406
 
381
407
  [data-qc-theme] .qc-menu-row:hover {
@@ -1139,13 +1165,8 @@
1139
1165
 
1140
1166
  /* Accessibility --------------------------------------------------------------------------------- */
1141
1167
 
1142
- @media (prefers-reduced-motion: reduce) {
1143
- [data-qc-theme] * {
1144
- transition-duration: 1ms !important;
1145
- animation-duration: 1ms !important;
1146
- animation-iteration-count: 1 !important;
1147
- }
1148
- }
1168
+ /* Every transition reads a motion duration role, and the generated tokens resolve each of them to
1169
+ * zero under a reduced-motion preference, so no recipe here repeats that rule. */
1149
1170
 
1150
1171
  @media (forced-colors: active) {
1151
1172
  [data-qc-theme] .qc-surface,
@@ -1219,6 +1240,17 @@
1219
1240
  font-variant-numeric: tabular-nums lining-nums;
1220
1241
  }
1221
1242
 
1243
+ /* With one zone offered the clock stands alone, in the trigger's own cell and inset. */
1244
+ [data-qc-theme] .qc-bottombar .qc-tz-clock {
1245
+ display: inline-flex;
1246
+ align-items: center;
1247
+ gap: 4px;
1248
+ height: 38px;
1249
+ padding: 0 6px;
1250
+ white-space: nowrap;
1251
+ font-variant-numeric: tabular-nums lining-nums;
1252
+ }
1253
+
1222
1254
  [data-qc-theme] .qc-clock {
1223
1255
  font-variant-numeric: tabular-nums;
1224
1256
  }
@@ -1304,7 +1336,7 @@
1304
1336
  transform: translateX(-50%);
1305
1337
  opacity: 0;
1306
1338
  pointer-events: auto;
1307
- transition: opacity var(--qc-motion-durationBase) linear;
1339
+ transition: opacity var(--qc-motion-durationBase) var(--qc-motion-easingLinear);
1308
1340
  }
1309
1341
 
1310
1342
  [data-qc-theme] .qc-nav[data-qc-near],
@@ -1438,7 +1470,7 @@
1438
1470
  inset: 2px;
1439
1471
  z-index: -1;
1440
1472
  border-radius: var(--qc-chrome-radius);
1441
- transition: background-color var(--qc-motion-durationFast) linear;
1473
+ transition: background-color var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
1442
1474
  }
1443
1475
 
1444
1476
  [data-qc-theme] .qc-toolbar-button:hover {
@@ -1499,11 +1531,11 @@
1499
1531
  * and neither bends the other, and each answers to its OWN button: a caret nested inside some other
1500
1532
  * open thing is not the thing that opened. */
1501
1533
  [data-qc-theme] .qc-caret {
1502
- transition: translate 350ms ease;
1534
+ transition: translate var(--qc-motion-durationSlow) var(--qc-motion-easingStandard);
1503
1535
  }
1504
1536
 
1505
1537
  [data-qc-theme] .qc-caret > svg {
1506
- transition: rotate 350ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
1538
+ transition: rotate var(--qc-motion-durationSlow) var(--qc-motion-easingSpring);
1507
1539
  }
1508
1540
 
1509
1541
  [data-qc-theme] .qc-toolbar-button:not([aria-expanded='true']):hover > .qc-caret {
@@ -1626,7 +1658,7 @@
1626
1658
  height: 14px;
1627
1659
  background: var(--qc-control-mark);
1628
1660
  border-radius: 50%;
1629
- transition: inset-inline-start 250ms ease-out;
1661
+ transition: inset-inline-start var(--qc-motion-durationModerate) var(--qc-motion-easingOut);
1630
1662
  }
1631
1663
 
1632
1664
  [data-qc-theme] .qc-switch[aria-checked='true'] .qc-switch-knob,
@@ -1650,7 +1682,7 @@
1650
1682
  border: 1px solid var(--qc-control-on);
1651
1683
  border-radius: 3px;
1652
1684
  cursor: pointer;
1653
- transition: background-color 350ms, border-color 350ms;
1685
+ transition: background-color var(--qc-motion-durationSlow) var(--qc-motion-easingStandard), border-color var(--qc-motion-durationSlow) var(--qc-motion-easingStandard);
1654
1686
  }
1655
1687
 
1656
1688
  [data-qc-theme] .qc-checkbox:checked {
@@ -2755,7 +2787,7 @@
2755
2787
  border-radius: var(--qc-chrome-radius);
2756
2788
  content: '';
2757
2789
  pointer-events: none;
2758
- transition: background-color var(--qc-motion-durationFast) linear;
2790
+ transition: background-color var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
2759
2791
  }
2760
2792
 
2761
2793
  [data-qc-theme] .qc-drawing-bar-wide {
@@ -2973,7 +3005,7 @@
2973
3005
 
2974
3006
  [data-qc-theme] .qc-drawing-caret {
2975
3007
  display: flex;
2976
- transition: transform var(--qc-motion-durationFast) linear;
3008
+ transition: transform var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
2977
3009
  }
2978
3010
 
2979
3011
  [data-qc-theme] .qc-drawing-template-button[aria-expanded='true'] .qc-drawing-caret {
@@ -3097,7 +3129,7 @@
3097
3129
  content: '';
3098
3130
  pointer-events: none;
3099
3131
  transform: translate(-50%, -50%);
3100
- transition: background-color var(--qc-motion-durationFast) linear;
3132
+ transition: background-color var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
3101
3133
  }
3102
3134
 
3103
3135
  [data-qc-theme] .qc-drawing-rail-button:hover,
@@ -3177,13 +3209,13 @@
3177
3209
  border-start-end-radius: 0;
3178
3210
  border-end-end-radius: 0;
3179
3211
  opacity: 0;
3180
- transition: opacity var(--qc-motion-durationFast) linear;
3212
+ transition: opacity var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
3181
3213
  }
3182
3214
 
3183
3215
  /* The chevron turns to face the panel: pointing out at where the flyout will appear while closed,
3184
3216
  * back at the rail once it is open. */
3185
3217
  [data-qc-theme] .qc-drawing-rail-arrow svg {
3186
- transition: transform 500ms cubic-bezier(0.175, 0.885, 0.32, 1.275);
3218
+ transition: transform var(--qc-motion-durationSlower) var(--qc-motion-easingSpring);
3187
3219
  }
3188
3220
 
3189
3221
  [data-qc-theme] .qc-drawing-rail-arrow[aria-expanded='true'] svg {
@@ -3294,10 +3326,6 @@
3294
3326
  cursor: default;
3295
3327
  }
3296
3328
 
3297
- [data-qc-theme] .qc-drawing-menu-note {
3298
- padding: 8px 12px;
3299
- }
3300
-
3301
3329
  [data-qc-theme] .qc-drawing-menu .qc-separator {
3302
3330
  margin: 6px 0;
3303
3331
  }
@@ -3360,7 +3388,7 @@
3360
3388
  border-radius: 4px;
3361
3389
  cursor: pointer;
3362
3390
  opacity: 0;
3363
- transition: opacity var(--qc-motion-durationFast) linear;
3391
+ transition: opacity var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
3364
3392
  }
3365
3393
 
3366
3394
  [data-qc-theme] .qc-drawing-flyout-row:hover .qc-drawing-star,
@@ -3457,7 +3485,7 @@
3457
3485
  border-radius: 2px;
3458
3486
  content: '';
3459
3487
  pointer-events: none;
3460
- transition: background-color var(--qc-motion-durationFast) linear;
3488
+ transition: background-color var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
3461
3489
  }
3462
3490
 
3463
3491
  [data-qc-theme] .qc-drawing-favorite:hover,
@@ -4403,8 +4431,12 @@
4403
4431
  text-transform: uppercase;
4404
4432
  }
4405
4433
 
4434
+ /* The line a list shows in place of rows (empty, loading, failed): the rows' own size in the muted
4435
+ * ink, on a row's height, its words 8px in where a row's label starts. */
4406
4436
  [data-qc-theme] .qc-menu-note {
4407
- padding: 6px 12px;
4437
+ padding: 6px 8px;
4438
+ color: var(--qc-text-muted);
4439
+ line-height: 20px;
4408
4440
  }
4409
4441
 
4410
4442
  [data-qc-theme] .qc-menu-panel .qc-separator {
@@ -4438,6 +4470,34 @@
4438
4470
  font-size: var(--qc-text-fontSizeBase);
4439
4471
  }
4440
4472
 
4473
+ /* The modal motion, for a dialog that opens and closes with it (the scrim carries `data-state`):
4474
+ * the backdrop fades in, and the box fades in and grows from the entrance scale, over one duration.
4475
+ * Closing runs the same motion in reverse. Under a reduced-motion preference the duration is zero,
4476
+ * so both are instant. */
4477
+ [data-qc-theme] .qc-dialog-scrim[data-state] {
4478
+ opacity: 1;
4479
+ transition: opacity var(--qc-motion-durationBase) var(--qc-motion-easingOut);
4480
+ }
4481
+
4482
+ [data-qc-theme] .qc-dialog-scrim[data-state] > .qc-dialog {
4483
+ opacity: 1;
4484
+ scale: none;
4485
+ transition:
4486
+ opacity var(--qc-motion-durationBase) var(--qc-motion-easingStandard),
4487
+ scale var(--qc-motion-durationBase) var(--qc-motion-easingStandard);
4488
+ }
4489
+
4490
+ [data-qc-theme] .qc-dialog-scrim[data-state='opening'],
4491
+ [data-qc-theme] .qc-dialog-scrim[data-state='closing'] {
4492
+ opacity: 0;
4493
+ }
4494
+
4495
+ [data-qc-theme] .qc-dialog-scrim[data-state='opening'] > .qc-dialog,
4496
+ [data-qc-theme] .qc-dialog-scrim[data-state='closing'] > .qc-dialog {
4497
+ opacity: 0;
4498
+ scale: var(--qc-motion-scaleEnter);
4499
+ }
4500
+
4441
4501
  /* In place of rows: the drawing over the line that says nothing matched, centred where the rows
4442
4502
  * would have stood. */
4443
4503
  [data-qc-theme] .qc-empty {
@@ -4640,14 +4700,15 @@
4640
4700
  transform: translateY(0);
4641
4701
  clip-path: inset(0);
4642
4702
  transition:
4643
- flex-basis 220ms cubic-bezier(0.22, 1, 0.36, 1),
4644
- max-height 220ms cubic-bezier(0.22, 1, 0.36, 1),
4645
- opacity 140ms linear,
4646
- transform 220ms cubic-bezier(0.22, 1, 0.36, 1),
4647
- clip-path 220ms cubic-bezier(0.22, 1, 0.36, 1);
4703
+ flex-basis var(--qc-motion-durationBase) var(--qc-motion-easingStandard),
4704
+ max-height var(--qc-motion-durationBase) var(--qc-motion-easingStandard),
4705
+ opacity var(--qc-motion-durationBase) var(--qc-motion-easingStandard),
4706
+ transform var(--qc-motion-durationBase) var(--qc-motion-easingStandard),
4707
+ clip-path var(--qc-motion-durationBase) var(--qc-motion-easingStandard);
4648
4708
  }
4649
4709
 
4650
- /* The row itself animates from zero to 49px and back. max-height clamps the fixed-height band while
4710
+ /* The row itself animates from zero to 49px and back, on the modal motion's duration and timing,
4711
+ * and closing runs the opening in reverse. max-height clamps the fixed-height band while
4651
4712
  * flex-basis gives the chart space up at the same pace, so the chart and controls move together.
4652
4713
  * The state is driven by CSS transitions because some embedded hosts omit Element.animate(). */
4653
4714
  [data-qc-theme] .qc-replay[data-state='opening'],
@@ -4659,11 +4720,6 @@
4659
4720
  clip-path: inset(100% 0 0);
4660
4721
  }
4661
4722
 
4662
- [data-qc-theme] .qc-replay[data-state='closing'] {
4663
- transition-duration: 170ms, 170ms, 170ms, 170ms, 170ms;
4664
- transition-timing-function: cubic-bezier(0.4, 0, 1, 1), cubic-bezier(0.4, 0, 1, 1), linear, cubic-bezier(0.4, 0, 1, 1), cubic-bezier(0.4, 0, 1, 1);
4665
- }
4666
-
4667
4723
  [data-qc-theme] .qc-replay::-webkit-scrollbar {
4668
4724
  display: none;
4669
4725
  }
@@ -5028,40 +5084,8 @@
5028
5084
 
5029
5085
  /* The symbol search dialog and its compare family: the heading, the field with its operators, the
5030
5086
  * class strip, and the result list. */
5031
- [data-qc-theme] .qc-search-dialog-scrim {
5032
- opacity: 1;
5033
- transition: opacity 160ms linear;
5034
- }
5035
-
5036
5087
  [data-qc-theme] .qc-search-dialog {
5037
5088
  height: min(85vh, 680px);
5038
- opacity: 1;
5039
- transform: translateY(0) scale(1);
5040
- transform-origin: center 42%;
5041
- transition:
5042
- opacity 150ms ease-out,
5043
- transform 190ms cubic-bezier(0.16, 1, 0.3, 1);
5044
- }
5045
-
5046
- [data-qc-theme] .qc-search-dialog-scrim[data-state='opening'] {
5047
- opacity: 0;
5048
- }
5049
-
5050
- [data-qc-theme] .qc-search-dialog-scrim[data-state='opening'] .qc-search-dialog {
5051
- opacity: 0;
5052
- transform: translateY(8px) scale(0.985);
5053
- }
5054
-
5055
- [data-qc-theme] .qc-search-dialog-scrim[data-state='closing'] {
5056
- opacity: 0;
5057
- transition-duration: 140ms;
5058
- }
5059
-
5060
- [data-qc-theme] .qc-search-dialog-scrim[data-state='closing'] .qc-search-dialog {
5061
- opacity: 0;
5062
- transform: translateY(6px) scale(0.985);
5063
- transition-duration: 110ms, 140ms;
5064
- transition-timing-function: ease-in, cubic-bezier(0.4, 0, 1, 1);
5065
5089
  }
5066
5090
 
5067
5091
  [data-qc-theme] .qc-search-dialog--compare {
@@ -5205,6 +5229,12 @@
5205
5229
  display: none;
5206
5230
  }
5207
5231
 
5232
+ /* A selected class's narrower classes: a second strip of the same tabs, standing directly under the
5233
+ * strip above so the two rows read as one filter. */
5234
+ [data-qc-theme] .qc-search-classes + .qc-search-subclasses {
5235
+ padding-top: 0;
5236
+ }
5237
+
5208
5238
  [data-qc-theme] .qc-search-scope {
5209
5239
  display: inline-flex;
5210
5240
  flex: 0 0 auto;
@@ -5606,11 +5636,6 @@
5606
5636
 
5607
5637
  /* Chart settings follows the same centered, two-column layout as TradingView: a fixed title and
5608
5638
  * footer around a section rail and one roomy settings page. */
5609
- [data-qc-theme] .qc-chart-settings-scrim {
5610
- opacity: 1;
5611
- transition: opacity 160ms linear;
5612
- }
5613
-
5614
5639
  [data-qc-theme] .qc-chart-settings-dialog {
5615
5640
  box-sizing: border-box;
5616
5641
  height: min(612px, calc(100vh - 32px));
@@ -5620,32 +5645,6 @@
5620
5645
  border: 0;
5621
5646
  border-radius: 6px;
5622
5647
  box-shadow: var(--qc-overlay-shadow);
5623
- opacity: 1;
5624
- transform: translateY(0) scale(1);
5625
- transform-origin: center 42%;
5626
- transition:
5627
- opacity 150ms ease-out,
5628
- transform 190ms cubic-bezier(0.16, 1, 0.3, 1);
5629
- }
5630
-
5631
- [data-qc-theme] .qc-chart-settings-scrim[data-state='opening'],
5632
- [data-qc-theme] .qc-chart-settings-scrim[data-state='closing'] {
5633
- opacity: 0;
5634
- }
5635
-
5636
- [data-qc-theme] .qc-chart-settings-scrim[data-state='opening'] .qc-chart-settings-dialog,
5637
- [data-qc-theme] .qc-chart-settings-scrim[data-state='closing'] .qc-chart-settings-dialog {
5638
- opacity: 0;
5639
- transform: translateY(8px) scale(0.985);
5640
- }
5641
-
5642
- [data-qc-theme] .qc-chart-settings-scrim[data-state='closing'] {
5643
- transition-duration: 140ms;
5644
- }
5645
-
5646
- [data-qc-theme] .qc-chart-settings-scrim[data-state='closing'] .qc-chart-settings-dialog {
5647
- transition-duration: 110ms, 140ms;
5648
- transition-timing-function: ease-in, cubic-bezier(0.4, 0, 1, 1);
5649
5648
  }
5650
5649
 
5651
5650
  [data-qc-theme] .qc-chart-settings-dialog .qc-dialog-title {
@@ -5807,7 +5806,7 @@
5807
5806
  border-radius: 0;
5808
5807
  opacity: 0;
5809
5808
  transform: rotate(45deg);
5810
- transition: opacity var(--qc-motion-durationFast) linear;
5809
+ transition: opacity var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
5811
5810
  }
5812
5811
 
5813
5812
  [data-qc-theme] .qc-settings-menu .qc-switch[aria-checked='true'] .qc-switch-knob {
@@ -5943,13 +5942,6 @@
5943
5942
  }
5944
5943
  }
5945
5944
 
5946
- @media (prefers-reduced-motion: reduce) {
5947
- [data-qc-theme] .qc-chart-settings-scrim,
5948
- [data-qc-theme] .qc-chart-settings-dialog {
5949
- transition-duration: 0ms;
5950
- }
5951
- }
5952
-
5953
5945
  /* The market-status control on the legend and its popup. */
5954
5946
  [data-qc-theme] .qc-legend-status {
5955
5947
  display: inline-flex;
@@ -6347,7 +6339,7 @@
6347
6339
  [data-qc-theme] .qc-tf-unit-caret {
6348
6340
  flex: 0 0 auto;
6349
6341
  color: var(--qc-text-muted);
6350
- transition: transform var(--qc-motion-durationFast) linear;
6342
+ transition: transform var(--qc-motion-durationFast) var(--qc-motion-easingLinear);
6351
6343
  transform: rotate(180deg);
6352
6344
  }
6353
6345
 
@@ -6401,6 +6393,26 @@
6401
6393
  cursor: not-allowed;
6402
6394
  }
6403
6395
 
6396
+ /* The same list with no drop-down around it, for a page that holds the picker in a box of its own:
6397
+ * a phone's card, where the card IS the picker. It fills that box, the rows scroll inside it, and the
6398
+ * composer stays pinned below them. The box is the page's, so the card paints no surface of its own. */
6399
+ [data-qc-theme].qc-tf-card {
6400
+ display: flex;
6401
+ min-height: 0;
6402
+ height: 100%;
6403
+ flex-direction: column;
6404
+ color: var(--qc-text-primary);
6405
+ font-family: var(--qc-text-fontFamily);
6406
+ font-size: var(--qc-text-fontSizeBase);
6407
+ }
6408
+
6409
+ [data-qc-theme].qc-tf-card > .qc-tf-menu {
6410
+ display: flex;
6411
+ flex: 1 1 auto;
6412
+ min-height: 0;
6413
+ flex-direction: column;
6414
+ }
6415
+
6404
6416
  /* The chart's notices, stacked at the bottom of the charts, newest last. The region is the charts
6405
6417
  * grid's next sibling in the root's column and takes no height of its own; the stack inside it is
6406
6418
  * anchored to its top edge and grows upward, over the charts, never over the bottom bar. */
@@ -239,7 +239,15 @@
239
239
  "family": "motion",
240
240
  "roles": [
241
241
  "motion.durationFast",
242
- "motion.durationBase"
242
+ "motion.durationBase",
243
+ "motion.durationModerate",
244
+ "motion.durationSlow",
245
+ "motion.durationSlower",
246
+ "motion.easingStandard",
247
+ "motion.easingOut",
248
+ "motion.easingLinear",
249
+ "motion.easingSpring",
250
+ "motion.scaleEnter"
243
251
  ]
244
252
  }
245
253
  ],
@@ -1236,11 +1244,91 @@
1236
1244
  "id": "motion.durationBase",
1237
1245
  "family": "motion",
1238
1246
  "kind": "duration",
1239
- "description": "An ordinary transition, such as a menu opening.",
1247
+ "description": "An ordinary transition: a modal dialog and its backdrop opening and closing, and the replay row entering and leaving.",
1240
1248
  "values": {
1241
1249
  "light": "150ms",
1242
1250
  "dark": "150ms"
1243
1251
  }
1252
+ },
1253
+ {
1254
+ "id": "motion.durationModerate",
1255
+ "family": "motion",
1256
+ "kind": "duration",
1257
+ "description": "A control moving to its new state, such as a switch knob sliding.",
1258
+ "values": {
1259
+ "light": "250ms",
1260
+ "dark": "250ms"
1261
+ }
1262
+ },
1263
+ {
1264
+ "id": "motion.durationSlow",
1265
+ "family": "motion",
1266
+ "kind": "duration",
1267
+ "description": "A small mark settling, such as a disclosure caret turning or a checkbox filling.",
1268
+ "values": {
1269
+ "light": "350ms",
1270
+ "dark": "350ms"
1271
+ }
1272
+ },
1273
+ {
1274
+ "id": "motion.durationSlower",
1275
+ "family": "motion",
1276
+ "kind": "duration",
1277
+ "description": "A larger mark turning, such as the drawing rail's chevron.",
1278
+ "values": {
1279
+ "light": "500ms",
1280
+ "dark": "500ms"
1281
+ }
1282
+ },
1283
+ {
1284
+ "id": "motion.easingStandard",
1285
+ "family": "motion",
1286
+ "kind": "easing",
1287
+ "description": "The timing of an ordinary transition: a modal dialog box, the replay row, a caret dip, a checkbox fill.",
1288
+ "values": {
1289
+ "light": "ease",
1290
+ "dark": "ease"
1291
+ }
1292
+ },
1293
+ {
1294
+ "id": "motion.easingOut",
1295
+ "family": "motion",
1296
+ "kind": "easing",
1297
+ "description": "The timing of a motion that settles as it ends: a modal backdrop fading, a switch knob sliding.",
1298
+ "values": {
1299
+ "light": "ease-out",
1300
+ "dark": "ease-out"
1301
+ }
1302
+ },
1303
+ {
1304
+ "id": "motion.easingLinear",
1305
+ "family": "motion",
1306
+ "kind": "easing",
1307
+ "description": "The timing of a color or opacity change under the pointer.",
1308
+ "values": {
1309
+ "light": "linear",
1310
+ "dark": "linear"
1311
+ }
1312
+ },
1313
+ {
1314
+ "id": "motion.easingSpring",
1315
+ "family": "motion",
1316
+ "kind": "easing",
1317
+ "description": "The timing of a mark that turns with a slight overshoot, such as a caret or chevron.",
1318
+ "values": {
1319
+ "light": "cubic-bezier(0.175, 0.885, 0.32, 1.275)",
1320
+ "dark": "cubic-bezier(0.175, 0.885, 0.32, 1.275)"
1321
+ }
1322
+ },
1323
+ {
1324
+ "id": "motion.scaleEnter",
1325
+ "family": "motion",
1326
+ "kind": "scale",
1327
+ "description": "The scale a modal dialog box grows from as it opens and returns to as it closes.",
1328
+ "values": {
1329
+ "light": "0.97",
1330
+ "dark": "0.97"
1331
+ }
1244
1332
  }
1245
1333
  ]
1246
1334
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trdrs/quickcharts",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Quick Charts: a datafeed-driven charting library with drawings, indicators, layouts and replay over host-supplied data and storage ports.",
5
5
  "keywords": [
6
6
  "charts",