@kongyo2/cards-css 0.2.0 → 0.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.
@@ -110,7 +110,7 @@
110
110
  .holo-card__translater,
111
111
  .holo-card__rotator {
112
112
  display: grid;
113
- perspective: 600px;
113
+ perspective: var(--card-perspective, 600px);
114
114
  will-change: transform, box-shadow;
115
115
  transform-origin: center;
116
116
  transform-style: preserve-3d;
@@ -241,14 +241,12 @@ button.holo-card__rotator {
241
241
  .holo-card__glare {
242
242
  transform: translateZ(1.41px);
243
243
  overflow: hidden;
244
- background-image:
245
- radial-gradient(
246
- farthest-corner circle at var(--pointer-x) var(--pointer-y),
247
- hsla(0, 0%, 100%, 0.8) 10%,
248
- hsla(0, 0%, 100%, 0.65) 20%,
249
- hsla(0, 0%, 0%, 0.5) 90%);
244
+ background-image: var( --glare-image, radial-gradient( farthest-corner circle at var(--pointer-x) var(--pointer-y), hsla(0, 0%, 100%, 0.8) 10%, hsla(0, 0%, 100%, 0.65) 20%, hsla(0, 0%, 0%, 0.5) 90% ) );
250
245
  opacity: calc(var(--card-opacity) * var(--hc-glare-opacity));
251
- mix-blend-mode: overlay;
246
+ mix-blend-mode: var(--glare-blend, overlay);
247
+ }
248
+ .holo-card--custom-glare .holo-card__glare::after {
249
+ display: none !important;
252
250
  }
253
251
  .holo-card--masked .holo-card__shine,
254
252
  .holo-card--masked .holo-card__shine::before,
@@ -307,6 +305,29 @@ button.holo-card__rotator {
307
305
  .holo-card__overlay--interactive * {
308
306
  pointer-events: auto;
309
307
  }
308
+ .holo-card--depth .holo-card__shine {
309
+ transform: translateZ(calc(1px + var(--hc-depth, 0px)));
310
+ }
311
+ .holo-card--depth .holo-card__glare {
312
+ transform: translateZ(calc(1.41px + var(--hc-depth, 0px)));
313
+ }
314
+ .holo-card--depth .holo-card__overlay {
315
+ transform: translateZ(calc(2px + var(--hc-depth, 0px)));
316
+ }
317
+ .holo-card--depth .holo-card__layer {
318
+ transform: translate3d(calc(var(--pointer-dx) * var(--layer-parallax) * 1px), calc(var(--pointer-dy) * var(--layer-parallax) * 1px), calc(0.02px + var(--layer-parallax) * var(--hc-depth-layer-scale, 1) * 1px));
319
+ }
320
+ .holo-card--depth .holo-card__translater::before {
321
+ content: "";
322
+ position: absolute;
323
+ inset: 0;
324
+ z-index: -1;
325
+ border-radius: var(--card-radius);
326
+ background: transparent;
327
+ transform: translateZ(-1px);
328
+ pointer-events: none;
329
+ box-shadow: calc(var(--tilt-x, 0) * -0.6px) calc(var(--hc-depth, 0px) * 0.5 + var(--tilt-y, 0) * 0.6px) calc(var(--hc-depth, 0px) * 1.2 + 14px) calc(var(--hc-depth, 0px) * 0.2) rgba(0, 0, 0, var(--hc-depth-shadow, 0));
330
+ }
310
331
 
311
332
  /* src/styles/effects/holo.css */
312
333
  .holo-card[data-effect=holo] .holo-card__shine {
@@ -392,7 +413,7 @@ button.holo-card__rotator {
392
413
  .holo-card[data-effect=holo] .holo-card__glare {
393
414
  opacity: calc(var(--card-opacity) * 0.8 * var(--hc-glare-opacity));
394
415
  filter: brightness(0.8) contrast(1.5);
395
- mix-blend-mode: overlay;
416
+ mix-blend-mode: var(--glare-blend, overlay);
396
417
  }
397
418
  .holo-card[data-effect=holo] .holo-card__glare::after {
398
419
  content: "";
@@ -438,12 +459,7 @@ button.holo-card__rotator {
438
459
  }
439
460
  .holo-card[data-effect=reverse] .holo-card__glare {
440
461
  opacity: calc(var(--card-opacity) * var(--hc-glare-opacity));
441
- background-image:
442
- radial-gradient(
443
- farthest-corner circle at var(--pointer-x) var(--pointer-y),
444
- hsla(0, 0%, 100%, 0.8) 10%,
445
- hsla(0, 0%, 100%, 0.5) 20%,
446
- hsla(0, 0%, 0%, 0.75) 90%);
462
+ background-image: var( --glare-image, radial-gradient( farthest-corner circle at var(--pointer-x) var(--pointer-y), hsla(0, 0%, 100%, 0.8) 10%, hsla(0, 0%, 100%, 0.5) 20%, hsla(0, 0%, 0%, 0.75) 90% ) );
447
463
  filter: brightness(0.7) contrast(1.5);
448
464
  }
449
465
  .holo-card[data-effect=reverse] .holo-card__glare::after {
@@ -465,24 +481,30 @@ button.holo-card__rotator {
465
481
  .holo-card[data-effect=cosmos] {
466
482
  --space: 4%;
467
483
  --angle: 82deg;
484
+ --cosmos-clr-1: hsl(53, 65%, 60%);
485
+ --cosmos-clr-2: hsl(93, 56%, 50%);
486
+ --cosmos-clr-3: hsl(176, 54%, 49%);
487
+ --cosmos-clr-4: hsl(228, 59%, 55%);
488
+ --cosmos-clr-5: hsl(283, 60%, 55%);
489
+ --cosmos-clr-6: hsl(326, 59%, 51%);
468
490
  }
469
491
  .holo-card[data-effect=cosmos] .holo-card__shine {
470
492
  background-image:
471
493
  var(--hc-cosmos-bottom),
472
494
  repeating-linear-gradient(
473
495
  var(--angle),
474
- hsl(53, 65%, 60%) calc(var(--space) * 1),
475
- hsl(93, 56%, 50%) calc(var(--space) * 2),
476
- hsl(176, 54%, 49%) calc(var(--space) * 3),
477
- hsl(228, 59%, 55%) calc(var(--space) * 4),
478
- hsl(283, 60%, 55%) calc(var(--space) * 5),
479
- hsl(326, 59%, 51%) calc(var(--space) * 6),
480
- hsl(326, 59%, 51%) calc(var(--space) * 7),
481
- hsl(283, 60%, 55%) calc(var(--space) * 8),
482
- hsl(228, 59%, 55%) calc(var(--space) * 9),
483
- hsl(176, 54%, 49%) calc(var(--space) * 10),
484
- hsl(93, 56%, 50%) calc(var(--space) * 11),
485
- hsl(53, 65%, 60%) calc(var(--space) * 12)),
496
+ var(--cosmos-clr-1) calc(var(--space) * 1),
497
+ var(--cosmos-clr-2) calc(var(--space) * 2),
498
+ var(--cosmos-clr-3) calc(var(--space) * 3),
499
+ var(--cosmos-clr-4) calc(var(--space) * 4),
500
+ var(--cosmos-clr-5) calc(var(--space) * 5),
501
+ var(--cosmos-clr-6) calc(var(--space) * 6),
502
+ var(--cosmos-clr-6) calc(var(--space) * 7),
503
+ var(--cosmos-clr-5) calc(var(--space) * 8),
504
+ var(--cosmos-clr-4) calc(var(--space) * 9),
505
+ var(--cosmos-clr-3) calc(var(--space) * 10),
506
+ var(--cosmos-clr-2) calc(var(--space) * 11),
507
+ var(--cosmos-clr-1) calc(var(--space) * 12)),
486
508
  radial-gradient(
487
509
  farthest-corner circle at var(--pointer-x) var(--pointer-y),
488
510
  hsla(180, 100%, 89%, 0.5) 5%,
@@ -507,18 +529,18 @@ button.holo-card__rotator {
507
529
  var(--hc-cosmos-middle),
508
530
  repeating-linear-gradient(
509
531
  var(--angle),
510
- hsl(53, 65%, 60%) calc(var(--space) * 1),
511
- hsl(93, 56%, 50%) calc(var(--space) * 2),
512
- hsl(176, 54%, 49%) calc(var(--space) * 3),
513
- hsl(228, 59%, 55%) calc(var(--space) * 4),
514
- hsl(283, 60%, 55%) calc(var(--space) * 5),
515
- hsl(326, 59%, 51%) calc(var(--space) * 6),
516
- hsl(326, 59%, 51%) calc(var(--space) * 7),
517
- hsl(283, 60%, 55%) calc(var(--space) * 8),
518
- hsl(228, 59%, 55%) calc(var(--space) * 9),
519
- hsl(176, 54%, 49%) calc(var(--space) * 10),
520
- hsl(93, 56%, 50%) calc(var(--space) * 11),
521
- hsl(53, 65%, 60%) calc(var(--space) * 12));
532
+ var(--cosmos-clr-1) calc(var(--space) * 1),
533
+ var(--cosmos-clr-2) calc(var(--space) * 2),
534
+ var(--cosmos-clr-3) calc(var(--space) * 3),
535
+ var(--cosmos-clr-4) calc(var(--space) * 4),
536
+ var(--cosmos-clr-5) calc(var(--space) * 5),
537
+ var(--cosmos-clr-6) calc(var(--space) * 6),
538
+ var(--cosmos-clr-6) calc(var(--space) * 7),
539
+ var(--cosmos-clr-5) calc(var(--space) * 8),
540
+ var(--cosmos-clr-4) calc(var(--space) * 9),
541
+ var(--cosmos-clr-3) calc(var(--space) * 10),
542
+ var(--cosmos-clr-2) calc(var(--space) * 11),
543
+ var(--cosmos-clr-1) calc(var(--space) * 12));
522
544
  background-blend-mode: lighten, multiply;
523
545
  background-position:
524
546
  var(--cosmosbg, center center),
@@ -538,18 +560,18 @@ button.holo-card__rotator {
538
560
  var(--hc-cosmos-top),
539
561
  repeating-linear-gradient(
540
562
  var(--angle),
541
- hsl(53, 65%, 60%) calc(var(--space) * 1),
542
- hsl(93, 56%, 50%) calc(var(--space) * 2),
543
- hsl(176, 54%, 49%) calc(var(--space) * 3),
544
- hsl(228, 59%, 55%) calc(var(--space) * 4),
545
- hsl(283, 60%, 55%) calc(var(--space) * 5),
546
- hsl(326, 59%, 51%) calc(var(--space) * 6),
547
- hsl(326, 59%, 51%) calc(var(--space) * 7),
548
- hsl(283, 60%, 55%) calc(var(--space) * 8),
549
- hsl(228, 59%, 55%) calc(var(--space) * 9),
550
- hsl(176, 54%, 49%) calc(var(--space) * 10),
551
- hsl(93, 56%, 50%) calc(var(--space) * 11),
552
- hsl(53, 65%, 60%) calc(var(--space) * 12));
563
+ var(--cosmos-clr-1) calc(var(--space) * 1),
564
+ var(--cosmos-clr-2) calc(var(--space) * 2),
565
+ var(--cosmos-clr-3) calc(var(--space) * 3),
566
+ var(--cosmos-clr-4) calc(var(--space) * 4),
567
+ var(--cosmos-clr-5) calc(var(--space) * 5),
568
+ var(--cosmos-clr-6) calc(var(--space) * 6),
569
+ var(--cosmos-clr-6) calc(var(--space) * 7),
570
+ var(--cosmos-clr-5) calc(var(--space) * 8),
571
+ var(--cosmos-clr-4) calc(var(--space) * 9),
572
+ var(--cosmos-clr-3) calc(var(--space) * 10),
573
+ var(--cosmos-clr-2) calc(var(--space) * 11),
574
+ var(--cosmos-clr-1) calc(var(--space) * 12));
553
575
  background-blend-mode: multiply, multiply;
554
576
  background-position:
555
577
  var(--cosmosbg, center center),
@@ -563,13 +585,9 @@ button.holo-card__rotator {
563
585
  mix-blend-mode: multiply;
564
586
  }
565
587
  .holo-card[data-effect=cosmos] .holo-card__glare {
566
- background-image:
567
- radial-gradient(
568
- farthest-corner circle at var(--pointer-x) var(--pointer-y),
569
- hsla(204, 100%, 95%, 0.8) 5%,
570
- hsla(250, 15%, 20%, 1) 150%);
588
+ background-image: var( --glare-image, radial-gradient( farthest-corner circle at var(--pointer-x) var(--pointer-y), hsla(204, 100%, 95%, 0.8) 5%, hsla(250, 15%, 20%, 1) 150% ) );
571
589
  filter: brightness(0.75) contrast(2) saturate(2);
572
- mix-blend-mode: overlay;
590
+ mix-blend-mode: var(--glare-blend, overlay);
573
591
  opacity: calc(var(--card-opacity) * (0.25 + var(--pointer-from-center)) * var(--hc-glare-opacity));
574
592
  }
575
593
  .holo-card[data-effect=cosmos] .holo-card__glare::after {
@@ -641,21 +659,11 @@ button.holo-card__rotator {
641
659
  mix-blend-mode: saturation;
642
660
  }
643
661
  .holo-card[data-effect=glitter]:not(.holo-card--masked) .holo-card__glare {
644
- background-image:
645
- radial-gradient(
646
- farthest-corner circle at var(--pointer-x) var(--pointer-y),
647
- hsla(0, 0%, 100%, 1) 10%,
648
- hsla(0, 0%, 100%, 0.85) 20%,
649
- hsla(0, 0%, 0%, 0.35) 90%);
650
- mix-blend-mode: multiply;
662
+ background-image: var( --glare-image, radial-gradient( farthest-corner circle at var(--pointer-x) var(--pointer-y), hsla(0, 0%, 100%, 1) 10%, hsla(0, 0%, 100%, 0.85) 20%, hsla(0, 0%, 0%, 0.35) 90% ) );
663
+ mix-blend-mode: var(--glare-blend, multiply);
651
664
  }
652
665
  .holo-card--masked[data-effect=glitter] .holo-card__glare {
653
- background-image:
654
- radial-gradient(
655
- farthest-corner circle at var(--pointer-x) var(--pointer-y),
656
- hsla(50, 20%, 90%, 0.45) 0%,
657
- hsla(150, 20%, 30%, 0.45) 45%,
658
- hsla(0, 0%, 0%, 0.9) 120%);
666
+ background-image: var( --glare-image, radial-gradient( farthest-corner circle at var(--pointer-x) var(--pointer-y), hsla(50, 20%, 90%, 0.45) 0%, hsla(150, 20%, 30%, 0.45) 45%, hsla(0, 0%, 0%, 0.9) 120% ) );
659
667
  filter: brightness(0.9) contrast(2);
660
668
  }
661
669
  .holo-card--masked[data-effect=glitter] .holo-card__glare::after {
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ export { HoloCard } from "./holo-card.js";
4
4
  export { buildHoloCardElement, buildLayerElement, applyVars, normalizeMask, CLASS } from "./dom.js";
5
5
  export { generateTextures, texturesToCssVariables, grainTexture, glitterTexture, TEXTURE_VARIABLES, DEFAULT_TEXTURE_SEED, } from "./textures.js";
6
6
  export { subscribeOrientation, requestOrientationPermission, resetBaseOrientation, } from "./orientation.js";
7
+ export { PALETTES, resolvePalette, paletteToCssVariables } from "./palette.js";
7
8
  export { getActiveCard, setActiveCard, subscribeActiveCard } from "./active-registry.js";
8
9
  export { Spring } from "./spring.js";
9
10
  export { round, clamp, adjust } from "./math.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAqB,MAAM,UAAU,CAAC;AACvH,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,oBAAoB,GAGrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,MAAM,EAA8E,MAAM,aAAa,CAAC;AACjH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAejD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAA8B,EAAY,EAAE;IACzE,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAoB,EAAE,UAA2B,EAAE,EAAY,EAAE,CAC9F,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGhD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAqB,MAAM,UAAU,CAAC;AACvH,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GAGrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,oBAAoB,GAGrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,MAAM,EAA8E,MAAM,aAAa,CAAC;AACjH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAoBjD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAA8B,EAAY,EAAE;IACzE,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACxC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,OAAoB,EAAE,UAA2B,EAAE,EAAY,EAAE,CAC9F,IAAI,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC"}
@@ -0,0 +1,189 @@
1
+ /** Built-in foil colour schemes, keyed by {@link PalettePreset}. */
2
+ export const PALETTES = {
3
+ rainbow: {
4
+ sunpillars: [
5
+ "hsl(2, 100%, 73%)",
6
+ "hsl(53, 100%, 69%)",
7
+ "hsl(93, 100%, 69%)",
8
+ "hsl(176, 100%, 76%)",
9
+ "hsl(228, 100%, 74%)",
10
+ "hsl(283, 100%, 73%)",
11
+ ],
12
+ spectrum: ["#f80e35", "#eedf10", "#21e985", "#0dbde9", "#c929f1"],
13
+ cosmos: [
14
+ "hsl(53, 65%, 60%)",
15
+ "hsl(93, 56%, 50%)",
16
+ "hsl(176, 54%, 49%)",
17
+ "hsl(228, 59%, 55%)",
18
+ "hsl(283, 60%, 55%)",
19
+ "hsl(326, 59%, 51%)",
20
+ ],
21
+ },
22
+ gold: {
23
+ sunpillars: [
24
+ "hsl(45, 100%, 80%)",
25
+ "hsl(38, 100%, 68%)",
26
+ "hsl(50, 100%, 78%)",
27
+ "hsl(33, 95%, 62%)",
28
+ "hsl(48, 100%, 85%)",
29
+ "hsl(40, 100%, 70%)",
30
+ ],
31
+ spectrum: ["#8c5a12", "#ffd24a", "#fff0b0", "#e0962a", "#6b3f06"],
32
+ cosmos: [
33
+ "hsl(45, 80%, 65%)",
34
+ "hsl(40, 75%, 58%)",
35
+ "hsl(36, 70%, 52%)",
36
+ "hsl(50, 85%, 70%)",
37
+ "hsl(33, 65%, 48%)",
38
+ "hsl(28, 70%, 55%)",
39
+ ],
40
+ edge: "hsl(45, 100%, 78%)",
41
+ glow: "hsl(45, 100%, 80%)",
42
+ },
43
+ aurora: {
44
+ sunpillars: [
45
+ "hsl(150, 90%, 72%)",
46
+ "hsl(170, 85%, 68%)",
47
+ "hsl(190, 90%, 72%)",
48
+ "hsl(260, 85%, 78%)",
49
+ "hsl(140, 80%, 70%)",
50
+ "hsl(200, 90%, 74%)",
51
+ ],
52
+ spectrum: ["#10b981", "#34d399", "#a7f3d0", "#22d3ee", "#8b5cf6"],
53
+ cosmos: [
54
+ "hsl(160, 60%, 55%)",
55
+ "hsl(180, 55%, 50%)",
56
+ "hsl(200, 60%, 55%)",
57
+ "hsl(260, 55%, 58%)",
58
+ "hsl(150, 55%, 52%)",
59
+ "hsl(290, 50%, 55%)",
60
+ ],
61
+ edge: "hsl(160, 90%, 80%)",
62
+ glow: "hsl(170, 100%, 85%)",
63
+ },
64
+ ruby: {
65
+ sunpillars: [
66
+ "hsl(350, 100%, 75%)",
67
+ "hsl(330, 100%, 72%)",
68
+ "hsl(10, 100%, 72%)",
69
+ "hsl(300, 90%, 72%)",
70
+ "hsl(355, 100%, 80%)",
71
+ "hsl(20, 100%, 70%)",
72
+ ],
73
+ spectrum: ["#e11d48", "#fb7185", "#fecdd3", "#f43f5e", "#9f1239"],
74
+ cosmos: [
75
+ "hsl(350, 65%, 58%)",
76
+ "hsl(330, 60%, 55%)",
77
+ "hsl(10, 65%, 58%)",
78
+ "hsl(300, 55%, 55%)",
79
+ "hsl(355, 60%, 52%)",
80
+ "hsl(20, 60%, 55%)",
81
+ ],
82
+ edge: "hsl(350, 100%, 82%)",
83
+ glow: "hsl(345, 100%, 85%)",
84
+ },
85
+ sapphire: {
86
+ sunpillars: [
87
+ "hsl(210, 100%, 75%)",
88
+ "hsl(190, 100%, 72%)",
89
+ "hsl(230, 100%, 76%)",
90
+ "hsl(170, 90%, 70%)",
91
+ "hsl(250, 90%, 78%)",
92
+ "hsl(200, 100%, 74%)",
93
+ ],
94
+ spectrum: ["#1d4ed8", "#3b82f6", "#bfdbfe", "#06b6d4", "#4338ca"],
95
+ cosmos: [
96
+ "hsl(210, 65%, 58%)",
97
+ "hsl(190, 60%, 55%)",
98
+ "hsl(230, 60%, 58%)",
99
+ "hsl(170, 55%, 52%)",
100
+ "hsl(250, 55%, 58%)",
101
+ "hsl(200, 60%, 55%)",
102
+ ],
103
+ edge: "hsl(205, 100%, 80%)",
104
+ glow: "hsl(200, 100%, 85%)",
105
+ },
106
+ mono: {
107
+ sunpillars: [
108
+ "hsl(0, 0%, 92%)",
109
+ "hsl(0, 0%, 82%)",
110
+ "hsl(0, 0%, 96%)",
111
+ "hsl(0, 0%, 78%)",
112
+ "hsl(0, 0%, 88%)",
113
+ "hsl(0, 0%, 84%)",
114
+ ],
115
+ spectrum: ["#9ca3af", "#e5e7eb", "#ffffff", "#d1d5db", "#6b7280"],
116
+ cosmos: [
117
+ "hsl(0, 0%, 75%)",
118
+ "hsl(0, 0%, 68%)",
119
+ "hsl(0, 0%, 82%)",
120
+ "hsl(0, 0%, 62%)",
121
+ "hsl(0, 0%, 78%)",
122
+ "hsl(0, 0%, 70%)",
123
+ ],
124
+ edge: "hsl(0, 0%, 90%)",
125
+ glow: "hsl(0, 0%, 92%)",
126
+ },
127
+ };
128
+ /** Merge a palette's `preset` base with its explicit overrides into a flat scheme. */
129
+ export const resolvePalette = (palette) => {
130
+ const base = palette.preset ? PALETTES[palette.preset] : undefined;
131
+ const merged = { ...base, ...palette };
132
+ delete merged.preset;
133
+ return merged;
134
+ };
135
+ const SPECTRUM_VARS = ["--red", "--yellow", "--green", "--blue", "--violet"];
136
+ /** Every CSS custom property the palette can own — used to clear stale values when swapping palettes. */
137
+ export const PALETTE_VARIABLES = [
138
+ "--sunpillar-1",
139
+ "--sunpillar-2",
140
+ "--sunpillar-3",
141
+ "--sunpillar-4",
142
+ "--sunpillar-5",
143
+ "--sunpillar-6",
144
+ ...SPECTRUM_VARS,
145
+ "--cosmos-clr-1",
146
+ "--cosmos-clr-2",
147
+ "--cosmos-clr-3",
148
+ "--cosmos-clr-4",
149
+ "--cosmos-clr-5",
150
+ "--cosmos-clr-6",
151
+ "--card-edge",
152
+ "--card-back",
153
+ "--card-glow",
154
+ ];
155
+ const cycleInto = (vars, prefix, count, colors) => {
156
+ if (colors.length === 0) {
157
+ return;
158
+ }
159
+ for (let i = 0; i < count; i += 1) {
160
+ vars[`${prefix}${i + 1}`] = colors[i % colors.length];
161
+ }
162
+ };
163
+ /** Convert a (resolved or raw) palette into the CSS custom properties it drives. */
164
+ export const paletteToCssVariables = (palette) => {
165
+ const resolved = resolvePalette(palette);
166
+ const vars = {};
167
+ if (resolved.sunpillars) {
168
+ cycleInto(vars, "--sunpillar-", 6, resolved.sunpillars);
169
+ }
170
+ if (resolved.spectrum && resolved.spectrum.length > 0) {
171
+ SPECTRUM_VARS.forEach((name, i) => {
172
+ vars[name] = resolved.spectrum[i % resolved.spectrum.length];
173
+ });
174
+ }
175
+ if (resolved.cosmos) {
176
+ cycleInto(vars, "--cosmos-clr-", 6, resolved.cosmos);
177
+ }
178
+ if (resolved.edge) {
179
+ vars["--card-edge"] = resolved.edge;
180
+ }
181
+ if (resolved.back) {
182
+ vars["--card-back"] = resolved.back;
183
+ }
184
+ if (resolved.glow) {
185
+ vars["--card-glow"] = resolved.glow;
186
+ }
187
+ return vars;
188
+ };
189
+ //# sourceMappingURL=palette.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"palette.js","sourceRoot":"","sources":["../src/palette.ts"],"names":[],"mappings":"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"}
@@ -18,9 +18,12 @@ export declare const CLASS: {
18
18
  readonly loading: "holo-card--loading";
19
19
  readonly masked: "holo-card--masked";
20
20
  readonly maskCard: "holo-card--mask-card";
21
+ readonly depth: "holo-card--depth";
22
+ readonly customGlare: "holo-card--custom-glare";
21
23
  readonly overlayInteractive: "holo-card__overlay--interactive";
22
24
  };
23
25
  export declare const applyVars: (element: HTMLElement, vars: CssVars | undefined) => void;
26
+ export declare const cssUrl: (value: string) => string;
24
27
  export interface ResolvedMask {
25
28
  image: string | undefined;
26
29
  size: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAe,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7G,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;CAoBR,CAAC;AASX,eAAO,MAAM,SAAS,GAAI,SAAS,WAAW,EAAE,MAAM,OAAO,GAAG,SAAS,KAAG,IAQ3E,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,GAAG,WAAW,GAAG,SAAS,KAAG,YAAY,GAAG,IAerF,CAAC;AAcF,eAAO,MAAM,iBAAiB,GAAI,KAAK,QAAQ,EAAE,OAAO,gBAAgB,KAAG,WA6B1E,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,qBAAqB,KAAG,WAmFrE,CAAC"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../src/dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAe,gBAAgB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE7G,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;CAsBR,CAAC;AASX,eAAO,MAAM,SAAS,GAAI,SAAS,WAAW,EAAE,MAAM,OAAO,GAAG,SAAS,KAAG,IAQ3E,CAAC;AAIF,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,KAAG,MAA6E,CAAC;AAErH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;CACxC;AAED,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,GAAG,WAAW,GAAG,SAAS,KAAG,YAAY,GAAG,IAerF,CAAC;AAcF,eAAO,MAAM,iBAAiB,GAAI,KAAK,QAAQ,EAAE,OAAO,gBAAgB,KAAG,WA6B1E,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,SAAS,qBAAqB,KAAG,WAmFrE,CAAC"}
@@ -1,10 +1,11 @@
1
- import type { CssVars, HoloCardOptions, HoloLayerOptions, VisualOptions } from "./types.js";
1
+ import type { CssVars, DepthOptions, GlareOptions, GyroscopeOptions, HoloCardOptions, HoloLayerOptions, PaletteOptions, VisualOptions } from "./types.js";
2
2
  export declare class HoloCard {
3
3
  readonly element: HTMLElement;
4
4
  private readonly rotator;
5
5
  private frontElement;
6
6
  private layersElement;
7
7
  private readonly options;
8
+ private gyroConfig;
8
9
  private readonly springRotate;
9
10
  private readonly springGlare;
10
11
  private readonly springBackground;
@@ -42,6 +43,9 @@ export declare class HoloCard {
42
43
  private unsubscribeOrientation;
43
44
  constructor(element: HTMLElement, options?: HoloCardOptions);
44
45
  private applyVisual;
46
+ private applyPalette;
47
+ private applyGlare;
48
+ private applyDepth;
45
49
  private applyStaticStyles;
46
50
  private enableInteractive;
47
51
  private parallaxBackground;
@@ -78,6 +82,22 @@ export declare class HoloCard {
78
82
  setVars(vars: CssVars): void;
79
83
  /** Update fine-grained visual controls at runtime. */
80
84
  setVisual(visual: VisualOptions): void;
85
+ /**
86
+ * Swap the foil colour palette / theme at runtime. This is a full replacement:
87
+ * any palette variable not present in `palette` reverts to its default.
88
+ */
89
+ setPalette(palette: PaletteOptions): void;
90
+ /**
91
+ * Update the dynamic glare (reflected light) at runtime. The image / shape /
92
+ * blend are replaced wholesale — omit them to return to the effect's built-in
93
+ * glare. `opacity` is shared with `visual.glareOpacity` and only changes when
94
+ * provided.
95
+ */
96
+ setGlare(glare: GlareOptions): void;
97
+ /** Toggle or tune the foil 3D depth / extrusion at runtime. */
98
+ setDepth(depth: boolean | DepthOptions): void;
99
+ /** Update the gyroscope physical-behaviour tuning at runtime. */
100
+ setGyroscope(gyroscope: boolean | GyroscopeOptions): void;
81
101
  /**
82
102
  * Insert an extra layer between the artwork and the foil at runtime, returning
83
103
  * the created element. Requires the card to have a `.holo-card__front`.
@@ -1 +1 @@
1
- {"version":3,"file":"holo-card.d.ts","sourceRoot":"","sources":["../src/holo-card.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"holo-card.d.ts","sourceRoot":"","sources":["../src/holo-card.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,11 @@ export { HoloCard } from "./holo-card.js";
4
4
  export { buildHoloCardElement, buildLayerElement, applyVars, normalizeMask, CLASS, type ResolvedMask } from "./dom.js";
5
5
  export { generateTextures, texturesToCssVariables, grainTexture, glitterTexture, TEXTURE_VARIABLES, DEFAULT_TEXTURE_SEED, type Textures, type TextureOptions, } from "./textures.js";
6
6
  export { subscribeOrientation, requestOrientationPermission, resetBaseOrientation, type Orientation, type RelativeOrientation, } from "./orientation.js";
7
+ export { PALETTES, resolvePalette, paletteToCssVariables } from "./palette.js";
7
8
  export { getActiveCard, setActiveCard, subscribeActiveCard } from "./active-registry.js";
8
9
  export { Spring, type SpringValue, type SpringOpts, type SpringSetOpts, type SpringDynamics } from "./spring.js";
9
10
  export { round, clamp, adjust } from "./math.js";
10
- export type { HoloEffect, HoloCardOptions, CreateHoloCardOptions, HoloContent, CssVars, SpringTuning, PhysicsOptions, ShowcaseOptions, VisualOptions, MaskOptions, HoloLayerOptions, } from "./types.js";
11
+ export type { HoloEffect, HoloCardOptions, CreateHoloCardOptions, HoloContent, CssVars, SpringTuning, PhysicsOptions, ShowcaseOptions, VisualOptions, MaskOptions, HoloLayerOptions, PaletteOptions, PalettePreset, GlareOptions, GyroscopeOptions, DepthOptions, } from "./types.js";
11
12
  export declare const createHoloCard: (options: CreateHoloCardOptions) => HoloCard;
12
13
  export declare const attachHoloCard: (element: HTMLElement, options?: HoloCardOptions) => HoloCard;
13
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEzE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AACvH,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,QAAQ,EACb,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,oBAAoB,EACpB,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACjH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EACV,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,OAAO,EACP,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,WAAW,EACX,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,cAAc,GAAI,SAAS,qBAAqB,KAAG,QAG/D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,WAAW,EAAE,UAAS,eAAoB,KAAG,QACrD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEzE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC;AACvH,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,QAAQ,EACb,KAAK,cAAc,GACpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,oBAAoB,EACpB,4BAA4B,EAC5B,oBAAoB,EACpB,KAAK,WAAW,EAChB,KAAK,mBAAmB,GACzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AACjH,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EACV,UAAU,EACV,eAAe,EACf,qBAAqB,EACrB,WAAW,EACX,OAAO,EACP,YAAY,EACZ,cAAc,EACd,eAAe,EACf,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,YAAY,GACb,MAAM,YAAY,CAAC;AAEpB,eAAO,MAAM,cAAc,GAAI,SAAS,qBAAqB,KAAG,QAG/D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,SAAS,WAAW,EAAE,UAAS,eAAoB,KAAG,QACrD,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { PaletteOptions, PalettePreset } from "./types.js";
2
+ /** Built-in foil colour schemes, keyed by {@link PalettePreset}. */
3
+ export declare const PALETTES: Record<PalettePreset, PaletteOptions>;
4
+ /** Merge a palette's `preset` base with its explicit overrides into a flat scheme. */
5
+ export declare const resolvePalette: (palette: PaletteOptions) => PaletteOptions;
6
+ /** Every CSS custom property the palette can own — used to clear stale values when swapping palettes. */
7
+ export declare const PALETTE_VARIABLES: string[];
8
+ /** Convert a (resolved or raw) palette into the CSS custom properties it drives. */
9
+ export declare const paletteToCssVariables: (palette: PaletteOptions) => Record<string, string>;
10
+ //# sourceMappingURL=palette.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"palette.d.ts","sourceRoot":"","sources":["../src/palette.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhE,oEAAoE;AACpE,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,cAAc,CA6H1D,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,cAAc,GAAI,SAAS,cAAc,KAAG,cAKxD,CAAC;AAIF,yGAAyG;AACzG,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAiBrC,CAAC;AAWF,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,GAAI,SAAS,cAAc,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAwBpF,CAAC"}