@neo-ui-kit/react 1.0.0 → 1.0.2

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.
Files changed (57) hide show
  1. package/README.md +32 -4
  2. package/dist/components/artwork/DatabaseArt/styles.css +58 -58
  3. package/dist/components/artwork/Landscape/styles.css +79 -79
  4. package/dist/components/artwork/Planet/styles.css +52 -52
  5. package/dist/components/artwork/QuantumField/QuantumFieldExperience.d.ts +6 -2
  6. package/dist/components/artwork/QuantumField/UPSTREAM-LICENSE.txt +21 -21
  7. package/dist/components/artwork/ServerArt/styles.css +43 -43
  8. package/dist/components/artwork/Spectrum/styles.css +35 -35
  9. package/dist/components/controls/Autocomplete/styles.css +1 -1
  10. package/dist/components/controls/Checkbox/styles.css +58 -58
  11. package/dist/components/controls/InputBase/styles.css +374 -374
  12. package/dist/components/controls/Link/styles.css +50 -50
  13. package/dist/components/controls/SegmentedControl/styles.css +9 -9
  14. package/dist/components/controls/Switch/styles.css +54 -54
  15. package/dist/components/controls/Tabs/styles.css +239 -239
  16. package/dist/components/controls/ToggleButton/styles.css +49 -49
  17. package/dist/components/controls/shared.css +694 -694
  18. package/dist/components/editor/shared.css +1 -1
  19. package/dist/components/effects/Beacon/styles.css +38 -38
  20. package/dist/components/effects/Equalizer/styles.css +34 -34
  21. package/dist/components/effects/GlowText/styles.css +56 -56
  22. package/dist/components/effects/Marquee/styles.css +46 -46
  23. package/dist/components/effects/Reveal/styles.css +25 -25
  24. package/dist/components/effects/Shimmer/styles.css +48 -48
  25. package/dist/components/effects/Sparkles/styles.css +28 -28
  26. package/dist/components/effects/Spotlight/styles.css +45 -45
  27. package/dist/components/effects/Tilt/styles.css +67 -67
  28. package/dist/components/feedback/CollapsibleSection/styles.css +76 -76
  29. package/dist/components/feedback/DataTable/styles.css +522 -522
  30. package/dist/components/feedback/EmptyState/styles.css +80 -80
  31. package/dist/components/feedback/KeyValueList/styles.css +51 -51
  32. package/dist/components/feedback/MenuItem/styles.css +71 -71
  33. package/dist/components/feedback/Popover/styles.css +44 -44
  34. package/dist/components/feedback/Steps/styles.css +152 -152
  35. package/dist/components/feedback/Toast/styles.css +89 -89
  36. package/dist/components/forms/FormFields/styles.css +21 -21
  37. package/dist/components/foundation/ThemeProvider/styles.css +31 -31
  38. package/dist/components/layout/Avatar/styles.css +151 -151
  39. package/dist/components/layout/Card/styles.css +37 -37
  40. package/dist/components/layout/DialogActions/styles.css +31 -31
  41. package/dist/components/layout/DialogBody/styles.css +17 -17
  42. package/dist/components/layout/Illustration/styles.css +104 -104
  43. package/dist/components/layout/ScrollArea/styles.css +61 -61
  44. package/dist/components/layout/TabPanel/styles.css +16 -16
  45. package/dist/components/layout/shared.css +65 -65
  46. package/dist/components/media/AudioPlayer/styles.css +86 -86
  47. package/dist/components/media/LevelMeter/styles.css +30 -30
  48. package/dist/components/media/MelodyRoll/styles.css +196 -196
  49. package/dist/components/media/RotaryKnob/styles.css +319 -319
  50. package/dist/components/media/Sparkline/styles.css +69 -69
  51. package/dist/components/media/WaveDecoration/styles.css +1 -1
  52. package/dist/components/media/shared.css +7 -7
  53. package/dist/fonts/melodix.css +123 -123
  54. package/dist/index.d.ts +2 -2
  55. package/dist/index.js +2106 -2104
  56. package/dist/theme/base.css +210 -210
  57. package/package.json +1 -1
@@ -1 +1 @@
1
- /* Shared only by sibling components. */
1
+ /* Shared only by sibling components. */
@@ -1,38 +1,38 @@
1
- /* Styles owned by Beacon. */
2
- .ad-beacon {
3
- --ad-beacon: var(--ad-red);
4
- position: relative;
5
- contain: layout;
6
- display: inline-grid;
7
- place-items: center;
8
- isolation: isolate;
9
- }
10
- .ad-beacon > i {
11
- position: absolute;
12
- z-index: -1;
13
- inset: 0;
14
- border-radius: 50%;
15
- border: 0.125rem solid var(--ad-beacon);
16
- box-shadow: 0 0 1rem var(--ad-beacon);
17
- opacity: 0;
18
- pointer-events: none;
19
- }
20
- .ad-beacon[data-active] > i {
21
- animation: ad-beacon-ring 2.4s cubic-bezier(0.2, 0.6, 0.3, 1) infinite;
22
- }
23
- .ad-beacon[data-active] > i:nth-child(2) {
24
- animation-delay: 0.8s;
25
- }
26
- .ad-beacon[data-active] > i:nth-child(3) {
27
- animation-delay: 1.6s;
28
- }
29
- @keyframes ad-beacon-ring {
30
- from {
31
- opacity: 0.85;
32
- scale: 0.9;
33
- }
34
- to {
35
- opacity: 0;
36
- scale: 2.2;
37
- }
38
- }
1
+ /* Styles owned by Beacon. */
2
+ .ad-beacon {
3
+ --ad-beacon: var(--ad-red);
4
+ position: relative;
5
+ contain: layout;
6
+ display: inline-grid;
7
+ place-items: center;
8
+ isolation: isolate;
9
+ }
10
+ .ad-beacon > i {
11
+ position: absolute;
12
+ z-index: -1;
13
+ inset: 0;
14
+ border-radius: 50%;
15
+ border: 0.125rem solid var(--ad-beacon);
16
+ box-shadow: 0 0 1rem var(--ad-beacon);
17
+ opacity: 0;
18
+ pointer-events: none;
19
+ }
20
+ .ad-beacon[data-active] > i {
21
+ animation: ad-beacon-ring 2.4s cubic-bezier(0.2, 0.6, 0.3, 1) infinite;
22
+ }
23
+ .ad-beacon[data-active] > i:nth-child(2) {
24
+ animation-delay: 0.8s;
25
+ }
26
+ .ad-beacon[data-active] > i:nth-child(3) {
27
+ animation-delay: 1.6s;
28
+ }
29
+ @keyframes ad-beacon-ring {
30
+ from {
31
+ opacity: 0.85;
32
+ scale: 0.9;
33
+ }
34
+ to {
35
+ opacity: 0;
36
+ scale: 2.2;
37
+ }
38
+ }
@@ -1,37 +1,37 @@
1
- /* Styles owned by Equalizer. Size follows the font size. */
2
- .ad-equalizer {
3
- display: inline-flex;
4
- align-items: flex-end;
5
- gap: 0.15em;
6
- height: 1.25em;
7
- }
8
- .ad-equalizer > i {
9
- width: 0.22em;
10
- height: 100%;
11
- border-radius: 999rem;
12
- background: linear-gradient(0deg, var(--ad-primary), var(--ad-secondary-100));
13
- box-shadow: 0 0 0.35em rgb(from var(--ad-primary) r g b / 0.53);
14
- transform-origin: bottom;
15
- scale: 1 0.25;
16
- transition: scale 0.3s;
17
- }
18
- .ad-equalizer[data-playing] > i {
19
- animation: ad-eq-bounce 0.8s ease-in-out infinite alternate;
20
- }
21
- @keyframes ad-eq-bounce {
22
- 0% {
23
- scale: 1 0.2;
24
- }
25
- 40% {
26
- scale: 1 0.9;
27
- }
28
- 70% {
29
- scale: 1 0.45;
30
- }
31
- 100% {
32
- scale: 1 1;
33
- }
34
- }
1
+ /* Styles owned by Equalizer. Size follows the font size. */
2
+ .ad-equalizer {
3
+ display: inline-flex;
4
+ align-items: flex-end;
5
+ gap: 0.15em;
6
+ height: 1.25em;
7
+ }
8
+ .ad-equalizer > i {
9
+ width: 0.22em;
10
+ height: 100%;
11
+ border-radius: 999rem;
12
+ background: linear-gradient(0deg, var(--ad-primary), var(--ad-secondary-100));
13
+ box-shadow: 0 0 0.35em rgb(from var(--ad-primary) r g b / 0.53);
14
+ transform-origin: bottom;
15
+ scale: 1 0.25;
16
+ transition: scale 0.3s;
17
+ }
18
+ .ad-equalizer[data-playing] > i {
19
+ animation: ad-eq-bounce 0.8s ease-in-out infinite alternate;
20
+ }
21
+ @keyframes ad-eq-bounce {
22
+ 0% {
23
+ scale: 1 0.2;
24
+ }
25
+ 40% {
26
+ scale: 1 0.9;
27
+ }
28
+ 70% {
29
+ scale: 1 0.45;
30
+ }
31
+ 100% {
32
+ scale: 1 1;
33
+ }
34
+ }
35
35
  /* Driven by a live spectrum: the bars follow it closely instead of bouncing. */
36
36
  .ad-equalizer[data-live] > i {
37
37
  transition: scale 0.08s linear;
@@ -1,56 +1,56 @@
1
- /* Styles owned by GlowText. */
2
- .ad-glow-text {
3
- display: inline-block;
4
- margin: 0;
5
- font-weight: 800;
6
- letter-spacing: -0.01em;
7
- color: transparent;
8
- background: linear-gradient(
9
- 100deg,
10
- var(--ad-primary),
11
- var(--ad-secondary-200) 30%,
12
- #fff 45%,
13
- var(--ad-secondary-200) 60%,
14
- var(--ad-primary) 80%,
15
- var(--ad-primary)
16
- )
17
- 0 0 / 250% 100%;
18
- background-clip: text;
19
- -webkit-background-clip: text;
20
- position: relative;
21
- isolation: isolate;
22
- animation: ad-glow-flow 5s linear infinite;
23
- }
24
- .ad-glow-text-halo {
25
- position: absolute;
26
- inset: 0;
27
- z-index: -1;
28
- color: transparent;
29
- text-shadow: 0 0 0.35em rgb(from var(--ad-primary) r g b / 0.53), 0 0 1em rgb(from var(--ad-primary) r g b / 0.27);
30
- pointer-events: none;
31
- user-select: none;
32
- will-change: transform;
33
- }
34
- .ad-glow-text[data-flicker] {
35
- animation:
36
- ad-glow-flow 5s linear infinite,
37
- ad-glow-flicker 4.5s steps(1, end) infinite;
38
- }
39
- @keyframes ad-glow-flow {
40
- to {
41
- background-position: -250% 0;
42
- }
43
- }
44
- @keyframes ad-glow-flicker {
45
- 0%,
46
- 41%,
47
- 44%,
48
- 47%,
49
- 100% {
50
- opacity: 1;
51
- }
52
- 42%,
53
- 46% {
54
- opacity: 0.35;
55
- }
56
- }
1
+ /* Styles owned by GlowText. */
2
+ .ad-glow-text {
3
+ display: inline-block;
4
+ margin: 0;
5
+ font-weight: 800;
6
+ letter-spacing: -0.01em;
7
+ color: transparent;
8
+ background: linear-gradient(
9
+ 100deg,
10
+ var(--ad-primary),
11
+ var(--ad-secondary-200) 30%,
12
+ #fff 45%,
13
+ var(--ad-secondary-200) 60%,
14
+ var(--ad-primary) 80%,
15
+ var(--ad-primary)
16
+ )
17
+ 0 0 / 250% 100%;
18
+ background-clip: text;
19
+ -webkit-background-clip: text;
20
+ position: relative;
21
+ isolation: isolate;
22
+ animation: ad-glow-flow 5s linear infinite;
23
+ }
24
+ .ad-glow-text-halo {
25
+ position: absolute;
26
+ inset: 0;
27
+ z-index: -1;
28
+ color: transparent;
29
+ text-shadow: 0 0 0.35em rgb(from var(--ad-primary) r g b / 0.53), 0 0 1em rgb(from var(--ad-primary) r g b / 0.27);
30
+ pointer-events: none;
31
+ user-select: none;
32
+ will-change: transform;
33
+ }
34
+ .ad-glow-text[data-flicker] {
35
+ animation:
36
+ ad-glow-flow 5s linear infinite,
37
+ ad-glow-flicker 4.5s steps(1, end) infinite;
38
+ }
39
+ @keyframes ad-glow-flow {
40
+ to {
41
+ background-position: -250% 0;
42
+ }
43
+ }
44
+ @keyframes ad-glow-flicker {
45
+ 0%,
46
+ 41%,
47
+ 44%,
48
+ 47%,
49
+ 100% {
50
+ opacity: 1;
51
+ }
52
+ 42%,
53
+ 46% {
54
+ opacity: 0.35;
55
+ }
56
+ }
@@ -1,46 +1,46 @@
1
- /* Styles owned by Marquee. */
2
- .ad-marquee {
3
- overflow: hidden;
4
- min-width: 0;
5
- mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
6
- }
7
- .ad-marquee-track {
8
- display: flex;
9
- width: max-content;
10
- animation: ad-marquee var(--ad-marquee-time) linear infinite;
11
- }
12
- .ad-marquee[data-reverse] .ad-marquee-track {
13
- animation-direction: reverse;
14
- }
15
- .ad-marquee:is(:hover, :focus-within) .ad-marquee-track {
16
- animation-play-state: paused;
17
- }
18
- .ad-marquee[data-static] {
19
- mask: none;
20
- }
21
- .ad-marquee[data-static] .ad-marquee-track {
22
- animation: none;
23
- width: 100%;
24
- }
25
- .ad-marquee[data-static] .ad-marquee-group {
26
- flex: 1;
27
- min-width: 0;
28
- flex-wrap: wrap;
29
- padding: 0;
30
- overflow-wrap: anywhere;
31
- }
32
- .ad-marquee[data-static] .ad-marquee-group[aria-hidden] {
33
- display: none;
34
- }
35
- .ad-marquee-group {
36
- display: flex;
37
- align-items: center;
38
- gap: var(--ad-space-6);
39
- padding-right: var(--ad-space-6);
40
- flex: none;
41
- }
42
- @keyframes ad-marquee {
43
- to {
44
- transform: translateX(-50%);
45
- }
46
- }
1
+ /* Styles owned by Marquee. */
2
+ .ad-marquee {
3
+ overflow: hidden;
4
+ min-width: 0;
5
+ mask: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
6
+ }
7
+ .ad-marquee-track {
8
+ display: flex;
9
+ width: max-content;
10
+ animation: ad-marquee var(--ad-marquee-time) linear infinite;
11
+ }
12
+ .ad-marquee[data-reverse] .ad-marquee-track {
13
+ animation-direction: reverse;
14
+ }
15
+ .ad-marquee:is(:hover, :focus-within) .ad-marquee-track {
16
+ animation-play-state: paused;
17
+ }
18
+ .ad-marquee[data-static] {
19
+ mask: none;
20
+ }
21
+ .ad-marquee[data-static] .ad-marquee-track {
22
+ animation: none;
23
+ width: 100%;
24
+ }
25
+ .ad-marquee[data-static] .ad-marquee-group {
26
+ flex: 1;
27
+ min-width: 0;
28
+ flex-wrap: wrap;
29
+ padding: 0;
30
+ overflow-wrap: anywhere;
31
+ }
32
+ .ad-marquee[data-static] .ad-marquee-group[aria-hidden] {
33
+ display: none;
34
+ }
35
+ .ad-marquee-group {
36
+ display: flex;
37
+ align-items: center;
38
+ gap: var(--ad-space-6);
39
+ padding-right: var(--ad-space-6);
40
+ flex: none;
41
+ }
42
+ @keyframes ad-marquee {
43
+ to {
44
+ transform: translateX(-50%);
45
+ }
46
+ }
@@ -1,25 +1,25 @@
1
- /* Styles owned by Reveal. */
2
- .ad-reveal {
3
- display: grid;
4
- gap: var(--ad-space-3);
5
- }
6
- .ad-reveal > * {
7
- transition:
8
- opacity 0.6s ease-out,
9
- transform 0.7s cubic-bezier(0.2, 0.9, 0.3, 1.15),
10
- filter 0.6s ease-out;
11
- transition-delay: calc(var(--ad-reveal-i, 0) * var(--ad-reveal-stagger));
12
- }
13
- .ad-reveal:not([data-shown]) > * {
14
- opacity: 0;
15
- }
16
- .ad-reveal[data-effect="rise"]:not([data-shown]) > * {
17
- transform: translateY(1.5rem);
18
- }
19
- .ad-reveal[data-effect="zoom"]:not([data-shown]) > * {
20
- transform: scale(0.85);
21
- }
22
- .ad-reveal[data-effect="blur"]:not([data-shown]) > * {
23
- filter: blur(0.75rem);
24
- transform: scale(1.05);
25
- }
1
+ /* Styles owned by Reveal. */
2
+ .ad-reveal {
3
+ display: grid;
4
+ gap: var(--ad-space-3);
5
+ }
6
+ .ad-reveal > * {
7
+ transition:
8
+ opacity 0.6s ease-out,
9
+ transform 0.7s cubic-bezier(0.2, 0.9, 0.3, 1.15),
10
+ filter 0.6s ease-out;
11
+ transition-delay: calc(var(--ad-reveal-i, 0) * var(--ad-reveal-stagger));
12
+ }
13
+ .ad-reveal:not([data-shown]) > * {
14
+ opacity: 0;
15
+ }
16
+ .ad-reveal[data-effect="rise"]:not([data-shown]) > * {
17
+ transform: translateY(1.5rem);
18
+ }
19
+ .ad-reveal[data-effect="zoom"]:not([data-shown]) > * {
20
+ transform: scale(0.85);
21
+ }
22
+ .ad-reveal[data-effect="blur"]:not([data-shown]) > * {
23
+ filter: blur(0.75rem);
24
+ transform: scale(1.05);
25
+ }
@@ -1,48 +1,48 @@
1
- /* Styles owned by Shimmer. */
2
- .ad-shimmer {
3
- display: flex;
4
- align-items: center;
5
- gap: var(--ad-space-3);
6
- min-width: 0;
7
- }
8
- .ad-shimmer-lines {
9
- display: grid;
10
- gap: 0.6rem;
11
- flex: 1;
12
- min-width: 0;
13
- }
14
- .ad-shimmer i {
15
- position: relative;
16
- display: block;
17
- height: 0.75rem;
18
- overflow: hidden;
19
- border-radius: 999rem;
20
- background: #ffffff10;
21
- }
22
- /* The sweep: a light 60% as wide as the line, slid across it on its own layer (no repaint). */
23
- .ad-shimmer i::after {
24
- content: "";
25
- position: absolute;
26
- inset: 0;
27
- width: 60%;
28
- background: linear-gradient(
29
- 100deg,
30
- transparent 30%,
31
- rgb(from var(--ad-secondary) r g b / 0.2) 50%,
32
- transparent 70%
33
- );
34
- transform: translateX(-100%);
35
- animation: ad-shimmer-run 1.6s ease-in-out infinite;
36
- will-change: transform;
37
- }
38
- .ad-shimmer-circle {
39
- flex: none;
40
- width: 2.75rem !important;
41
- height: 2.75rem !important;
42
- }
43
- @keyframes ad-shimmer-run {
44
- to {
45
- /* From 60% of the line left of it to just past its right edge, as the old background ran. */
46
- transform: translateX(166.667%);
47
- }
48
- }
1
+ /* Styles owned by Shimmer. */
2
+ .ad-shimmer {
3
+ display: flex;
4
+ align-items: center;
5
+ gap: var(--ad-space-3);
6
+ min-width: 0;
7
+ }
8
+ .ad-shimmer-lines {
9
+ display: grid;
10
+ gap: 0.6rem;
11
+ flex: 1;
12
+ min-width: 0;
13
+ }
14
+ .ad-shimmer i {
15
+ position: relative;
16
+ display: block;
17
+ height: 0.75rem;
18
+ overflow: hidden;
19
+ border-radius: 999rem;
20
+ background: #ffffff10;
21
+ }
22
+ /* The sweep: a light 60% as wide as the line, slid across it on its own layer (no repaint). */
23
+ .ad-shimmer i::after {
24
+ content: "";
25
+ position: absolute;
26
+ inset: 0;
27
+ width: 60%;
28
+ background: linear-gradient(
29
+ 100deg,
30
+ transparent 30%,
31
+ rgb(from var(--ad-secondary) r g b / 0.2) 50%,
32
+ transparent 70%
33
+ );
34
+ transform: translateX(-100%);
35
+ animation: ad-shimmer-run 1.6s ease-in-out infinite;
36
+ will-change: transform;
37
+ }
38
+ .ad-shimmer-circle {
39
+ flex: none;
40
+ width: 2.75rem !important;
41
+ height: 2.75rem !important;
42
+ }
43
+ @keyframes ad-shimmer-run {
44
+ to {
45
+ /* From 60% of the line left of it to just past its right edge, as the old background ran. */
46
+ transform: translateX(166.667%);
47
+ }
48
+ }
@@ -1,28 +1,28 @@
1
- /* Styles owned by Sparkles. */
2
- .ad-sparkles {
3
- --ad-sparkle: var(--ad-neutral-200);
4
- position: relative;
5
- contain: layout;
6
- display: inline-block;
7
- }
8
- .ad-sparkle {
9
- position: absolute;
10
- aspect-ratio: 1;
11
- translate: -50% -50%;
12
- fill: var(--ad-sparkle);
13
- filter: drop-shadow(0 0 0.25em var(--ad-primary));
14
- pointer-events: none;
15
- scale: 0;
16
- animation: ad-sparkle-twinkle 2.4s ease-in-out infinite;
17
- }
18
- @keyframes ad-sparkle-twinkle {
19
- 0%,
20
- 100% {
21
- scale: 0;
22
- rotate: 0deg;
23
- }
24
- 50% {
25
- scale: 1;
26
- rotate: 90deg;
27
- }
28
- }
1
+ /* Styles owned by Sparkles. */
2
+ .ad-sparkles {
3
+ --ad-sparkle: var(--ad-neutral-200);
4
+ position: relative;
5
+ contain: layout;
6
+ display: inline-block;
7
+ }
8
+ .ad-sparkle {
9
+ position: absolute;
10
+ aspect-ratio: 1;
11
+ translate: -50% -50%;
12
+ fill: var(--ad-sparkle);
13
+ filter: drop-shadow(0 0 0.25em var(--ad-primary));
14
+ pointer-events: none;
15
+ scale: 0;
16
+ animation: ad-sparkle-twinkle 2.4s ease-in-out infinite;
17
+ }
18
+ @keyframes ad-sparkle-twinkle {
19
+ 0%,
20
+ 100% {
21
+ scale: 0;
22
+ rotate: 0deg;
23
+ }
24
+ 50% {
25
+ scale: 1;
26
+ rotate: 90deg;
27
+ }
28
+ }
@@ -1,45 +1,45 @@
1
- /* Styles owned by Spotlight. */
2
- .ad-spotlight {
3
- --ad-spot-color: var(--ad-red);
4
- --ad-spot-r: 18rem;
5
- position: relative;
6
- isolation: isolate;
7
- border-radius: var(--ad-radius);
8
- }
9
- .ad-spotlight::before,
10
- .ad-spotlight::after {
11
- content: "";
12
- position: absolute;
13
- inset: 0;
14
- border-radius: inherit;
15
- opacity: 0;
16
- transition: opacity 0.35s;
17
- pointer-events: none;
18
- }
19
- /* Glow over the surface. */
20
- .ad-spotlight::before {
21
- z-index: 1;
22
- background: radial-gradient(
23
- var(--ad-spot-r) circle at var(--ad-spot-x, 50%) var(--ad-spot-y, 50%),
24
- color-mix(in srgb, var(--ad-spot-color) 18%, transparent),
25
- transparent 65%
26
- );
27
- }
28
- /* Edge that lights up near the pointer. */
29
- .ad-spotlight::after {
30
- z-index: 2;
31
- padding: 0.0625rem;
32
- background: radial-gradient(
33
- calc(var(--ad-spot-r) * 0.6) circle at var(--ad-spot-x, 50%)
34
- var(--ad-spot-y, 50%),
35
- color-mix(in srgb, var(--ad-spot-color) 90%, #fff),
36
- transparent 70%
37
- );
38
- mask:
39
- linear-gradient(#000 0 0) content-box exclude,
40
- linear-gradient(#000 0 0);
41
- }
42
- .ad-spotlight:hover::before,
43
- .ad-spotlight:hover::after {
44
- opacity: 1;
45
- }
1
+ /* Styles owned by Spotlight. */
2
+ .ad-spotlight {
3
+ --ad-spot-color: var(--ad-red);
4
+ --ad-spot-r: 18rem;
5
+ position: relative;
6
+ isolation: isolate;
7
+ border-radius: var(--ad-radius);
8
+ }
9
+ .ad-spotlight::before,
10
+ .ad-spotlight::after {
11
+ content: "";
12
+ position: absolute;
13
+ inset: 0;
14
+ border-radius: inherit;
15
+ opacity: 0;
16
+ transition: opacity 0.35s;
17
+ pointer-events: none;
18
+ }
19
+ /* Glow over the surface. */
20
+ .ad-spotlight::before {
21
+ z-index: 1;
22
+ background: radial-gradient(
23
+ var(--ad-spot-r) circle at var(--ad-spot-x, 50%) var(--ad-spot-y, 50%),
24
+ color-mix(in srgb, var(--ad-spot-color) 18%, transparent),
25
+ transparent 65%
26
+ );
27
+ }
28
+ /* Edge that lights up near the pointer. */
29
+ .ad-spotlight::after {
30
+ z-index: 2;
31
+ padding: 0.0625rem;
32
+ background: radial-gradient(
33
+ calc(var(--ad-spot-r) * 0.6) circle at var(--ad-spot-x, 50%)
34
+ var(--ad-spot-y, 50%),
35
+ color-mix(in srgb, var(--ad-spot-color) 90%, #fff),
36
+ transparent 70%
37
+ );
38
+ mask:
39
+ linear-gradient(#000 0 0) content-box exclude,
40
+ linear-gradient(#000 0 0);
41
+ }
42
+ .ad-spotlight:hover::before,
43
+ .ad-spotlight:hover::after {
44
+ opacity: 1;
45
+ }