@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,104 +1,104 @@
1
- .ad-illustration {
2
- display: grid;
3
- place-items: center;
4
- min-width: 0;
5
- min-height: 0;
6
- }
7
- .ad-illustration-art {
8
- max-width: 100%;
9
- max-height: 100%;
10
- }
11
- .ad-illustration[data-ad-framed="true"] {
12
- padding: var(--ad-space-3);
13
- border: 0.0625rem solid rgb(from var(--ad-secondary) r g b / 0.3);
14
- border-radius: var(--ad-radius);
15
- background: var(--ad-surface-glass);
16
- box-shadow: var(--ad-shadow-glass);
17
- }
18
- /* The artwork floats slowly in a pulsing glow; a framed one gets a living edge. Everything that
19
- moves is a layer that is only moved or faded: no filter or gradient is redrawn while it runs. */
20
- .ad-illustration-art {
21
- position: relative;
22
- display: block;
23
- width: 100%;
24
- height: 100%;
25
- min-width: 0;
26
- min-height: 0;
27
- animation: ad-art-float 7s ease-in-out infinite;
28
- will-change: transform;
29
- }
30
- .ad-illustration-art > [data-ad-component="IllustrationAsset"] {
31
- position: relative;
32
- display: block;
33
- width: 100%;
34
- height: 100%;
35
- filter: hue-rotate(var(--ad-hue-shift, 0deg));
36
- }
37
- .ad-illustration-glow {
38
- position: absolute;
39
- inset: 0;
40
- display: block;
41
- width: 100%;
42
- height: 100%;
43
- overflow: visible;
44
- pointer-events: none;
45
- }
46
- .ad-illustration-glow[data-glow="pulse"] {
47
- opacity: 0;
48
- animation: ad-art-glow 5s ease-in-out infinite;
49
- will-change: opacity;
50
- }
51
- .ad-illustration[data-ad-framed="true"] {
52
- position: relative;
53
- isolation: isolate;
54
- overflow: hidden;
55
- }
56
- /* The edge is a 1px ring (the mask) over a conic light that turns: turning a conic gradient
57
- about its centre is the same as sweeping its start angle. */
58
- .ad-illustration-edge {
59
- position: absolute;
60
- inset: 0;
61
- container-type: size;
62
- border-radius: inherit;
63
- padding: 0.0625rem;
64
- overflow: hidden;
65
- mask:
66
- linear-gradient(#000 0 0) content-box exclude,
67
- linear-gradient(#000 0 0);
68
- pointer-events: none;
69
- }
70
- .ad-illustration-edge::before {
71
- content: "";
72
- position: absolute;
73
- top: 50%;
74
- left: 50%;
75
- width: hypot(100cqw, 100cqh);
76
- aspect-ratio: 1;
77
- translate: -50% -50%;
78
- background: conic-gradient(
79
- transparent 0 70%,
80
- var(--ad-secondary),
81
- transparent 85%
82
- );
83
- animation: ad-art-edge 5s linear infinite;
84
- will-change: transform;
85
- }
86
- @keyframes ad-art-float {
87
- 0%,
88
- 100% {
89
- transform: translateY(0) scale(1);
90
- }
91
- 50% {
92
- transform: translateY(-0.4rem) scale(1.02);
93
- }
94
- }
95
- @keyframes ad-art-glow {
96
- 50% {
97
- opacity: 1;
98
- }
99
- }
100
- @keyframes ad-art-edge {
101
- to {
102
- rotate: 1turn;
103
- }
104
- }
1
+ .ad-illustration {
2
+ display: grid;
3
+ place-items: center;
4
+ min-width: 0;
5
+ min-height: 0;
6
+ }
7
+ .ad-illustration-art {
8
+ max-width: 100%;
9
+ max-height: 100%;
10
+ }
11
+ .ad-illustration[data-ad-framed="true"] {
12
+ padding: var(--ad-space-3);
13
+ border: 0.0625rem solid rgb(from var(--ad-secondary) r g b / 0.3);
14
+ border-radius: var(--ad-radius);
15
+ background: var(--ad-surface-glass);
16
+ box-shadow: var(--ad-shadow-glass);
17
+ }
18
+ /* The artwork floats slowly in a pulsing glow; a framed one gets a living edge. Everything that
19
+ moves is a layer that is only moved or faded: no filter or gradient is redrawn while it runs. */
20
+ .ad-illustration-art {
21
+ position: relative;
22
+ display: block;
23
+ width: 100%;
24
+ height: 100%;
25
+ min-width: 0;
26
+ min-height: 0;
27
+ animation: ad-art-float 7s ease-in-out infinite;
28
+ will-change: transform;
29
+ }
30
+ .ad-illustration-art > [data-ad-component="IllustrationAsset"] {
31
+ position: relative;
32
+ display: block;
33
+ width: 100%;
34
+ height: 100%;
35
+ filter: hue-rotate(var(--ad-hue-shift, 0deg));
36
+ }
37
+ .ad-illustration-glow {
38
+ position: absolute;
39
+ inset: 0;
40
+ display: block;
41
+ width: 100%;
42
+ height: 100%;
43
+ overflow: visible;
44
+ pointer-events: none;
45
+ }
46
+ .ad-illustration-glow[data-glow="pulse"] {
47
+ opacity: 0;
48
+ animation: ad-art-glow 5s ease-in-out infinite;
49
+ will-change: opacity;
50
+ }
51
+ .ad-illustration[data-ad-framed="true"] {
52
+ position: relative;
53
+ isolation: isolate;
54
+ overflow: hidden;
55
+ }
56
+ /* The edge is a 1px ring (the mask) over a conic light that turns: turning a conic gradient
57
+ about its centre is the same as sweeping its start angle. */
58
+ .ad-illustration-edge {
59
+ position: absolute;
60
+ inset: 0;
61
+ container-type: size;
62
+ border-radius: inherit;
63
+ padding: 0.0625rem;
64
+ overflow: hidden;
65
+ mask:
66
+ linear-gradient(#000 0 0) content-box exclude,
67
+ linear-gradient(#000 0 0);
68
+ pointer-events: none;
69
+ }
70
+ .ad-illustration-edge::before {
71
+ content: "";
72
+ position: absolute;
73
+ top: 50%;
74
+ left: 50%;
75
+ width: hypot(100cqw, 100cqh);
76
+ aspect-ratio: 1;
77
+ translate: -50% -50%;
78
+ background: conic-gradient(
79
+ transparent 0 70%,
80
+ var(--ad-secondary),
81
+ transparent 85%
82
+ );
83
+ animation: ad-art-edge 5s linear infinite;
84
+ will-change: transform;
85
+ }
86
+ @keyframes ad-art-float {
87
+ 0%,
88
+ 100% {
89
+ transform: translateY(0) scale(1);
90
+ }
91
+ 50% {
92
+ transform: translateY(-0.4rem) scale(1.02);
93
+ }
94
+ }
95
+ @keyframes ad-art-glow {
96
+ 50% {
97
+ opacity: 1;
98
+ }
99
+ }
100
+ @keyframes ad-art-edge {
101
+ to {
102
+ rotate: 1turn;
103
+ }
104
+ }
@@ -1,61 +1,61 @@
1
- /* Styles owned by ScrollArea. */
2
- .ad-scroll-area {
3
- min-width: 0;
4
- min-height: 0;
5
- overflow: auto;
6
- overscroll-behavior: contain;
7
- scrollbar-gutter: stable;
8
- scrollbar-width: thin;
9
- scrollbar-color: var(--ad-primary) var(--ad-neutral-900);
10
- padding-inline-end: clamp(0.4rem, 0.25rem + 0.35vw, 0.75rem);
11
- }
12
- .ad-scroll-area::-webkit-scrollbar {
13
- width: clamp(0.45rem, 0.3rem + 0.25vw, 0.7rem);
14
- height: clamp(0.45rem, 0.3rem + 0.25vw, 0.7rem);
15
- }
16
- .ad-scroll-area::-webkit-scrollbar-track {
17
- background: var(--ad-neutral-900);
18
- border-radius: 999rem;
19
- }
20
- .ad-scroll-area::-webkit-scrollbar-thumb {
21
- background: linear-gradient(var(--ad-primary), var(--ad-primary-600));
22
- border-radius: 999rem;
23
- }
24
- /* Edges fade out only where there is more to scroll (scroll-driven, where supported). */
25
- @property --ad-fade-top {
26
- syntax: "<length>";
27
- inherits: false;
28
- initial-value: 0px;
29
- }
30
- @property --ad-fade-bottom {
31
- syntax: "<length>";
32
- inherits: false;
33
- initial-value: 0px;
34
- }
35
- @supports (animation-timeline: scroll()) {
36
- .ad-scroll-area {
37
- mask: linear-gradient(
38
- #0000,
39
- #000 var(--ad-fade-top),
40
- #000 calc(100% - var(--ad-fade-bottom)),
41
- #0000
42
- );
43
- animation: ad-scroll-fade linear both;
44
- animation-timeline: scroll(self);
45
- }
46
- }
47
- @keyframes ad-scroll-fade {
48
- 0% {
49
- --ad-fade-top: 0px;
50
- --ad-fade-bottom: 2rem;
51
- }
52
- 10%,
53
- 90% {
54
- --ad-fade-top: 2rem;
55
- --ad-fade-bottom: 2rem;
56
- }
57
- 100% {
58
- --ad-fade-top: 2rem;
59
- --ad-fade-bottom: 0px;
60
- }
61
- }
1
+ /* Styles owned by ScrollArea. */
2
+ .ad-scroll-area {
3
+ min-width: 0;
4
+ min-height: 0;
5
+ overflow: auto;
6
+ overscroll-behavior: contain;
7
+ scrollbar-gutter: stable;
8
+ scrollbar-width: thin;
9
+ scrollbar-color: var(--ad-primary) var(--ad-neutral-900);
10
+ padding-inline-end: clamp(0.4rem, 0.25rem + 0.35vw, 0.75rem);
11
+ }
12
+ .ad-scroll-area::-webkit-scrollbar {
13
+ width: clamp(0.45rem, 0.3rem + 0.25vw, 0.7rem);
14
+ height: clamp(0.45rem, 0.3rem + 0.25vw, 0.7rem);
15
+ }
16
+ .ad-scroll-area::-webkit-scrollbar-track {
17
+ background: var(--ad-neutral-900);
18
+ border-radius: 999rem;
19
+ }
20
+ .ad-scroll-area::-webkit-scrollbar-thumb {
21
+ background: linear-gradient(var(--ad-primary), var(--ad-primary-600));
22
+ border-radius: 999rem;
23
+ }
24
+ /* Edges fade out only where there is more to scroll (scroll-driven, where supported). */
25
+ @property --ad-fade-top {
26
+ syntax: "<length>";
27
+ inherits: false;
28
+ initial-value: 0px;
29
+ }
30
+ @property --ad-fade-bottom {
31
+ syntax: "<length>";
32
+ inherits: false;
33
+ initial-value: 0px;
34
+ }
35
+ @supports (animation-timeline: scroll()) {
36
+ .ad-scroll-area {
37
+ mask: linear-gradient(
38
+ #0000,
39
+ #000 var(--ad-fade-top),
40
+ #000 calc(100% - var(--ad-fade-bottom)),
41
+ #0000
42
+ );
43
+ animation: ad-scroll-fade linear both;
44
+ animation-timeline: scroll(self);
45
+ }
46
+ }
47
+ @keyframes ad-scroll-fade {
48
+ 0% {
49
+ --ad-fade-top: 0px;
50
+ --ad-fade-bottom: 2rem;
51
+ }
52
+ 10%,
53
+ 90% {
54
+ --ad-fade-top: 2rem;
55
+ --ad-fade-bottom: 2rem;
56
+ }
57
+ 100% {
58
+ --ad-fade-top: 2rem;
59
+ --ad-fade-bottom: 0px;
60
+ }
61
+ }
@@ -1,16 +1,16 @@
1
- /* Styles owned by TabPanel: the content of each newly selected tab glides in. */
2
- .ad-tab-panel {
3
- padding: 1.125rem;
4
- color: var(--ad-muted);
5
- font-size: 0.8125rem;
6
- }
7
- .ad-tab-panel-content {
8
- animation: ad-panel-in 0.45s cubic-bezier(0.2, 0.8, 0.2, 1) both;
9
- }
10
- @keyframes ad-panel-in {
11
- from {
12
- opacity: 0;
13
- transform: translateY(0.5rem);
14
- filter: blur(0.2rem);
15
- }
16
- }
1
+ /* Styles owned by TabPanel: the content of each newly selected tab glides in. */
2
+ .ad-tab-panel {
3
+ padding: 1.125rem;
4
+ color: var(--ad-muted);
5
+ font-size: 0.8125rem;
6
+ }
7
+ .ad-tab-panel-content {
8
+ animation: ad-panel-in 0.45s cubic-bezier(0.2, 0.8, 0.2, 1) both;
9
+ }
10
+ @keyframes ad-panel-in {
11
+ from {
12
+ opacity: 0;
13
+ transform: translateY(0.5rem);
14
+ filter: blur(0.2rem);
15
+ }
16
+ }
@@ -1,4 +1,4 @@
1
- /* Shared only by sibling components. */
1
+ /* Shared only by sibling components. */
2
2
  .ad {
3
3
  font-family: inherit;
4
4
  color: var(--ad-text);
@@ -8,70 +8,70 @@
8
8
  --ad-text: var(--ad-on-accent);
9
9
  --ad-muted: var(--ad-on-accent-muted);
10
10
  }
11
- [data-ad-material="shell"] {
12
- --ad-material-bg: var(--ad-surface-shell);
13
- --ad-material-shadow: var(--ad-shadow-shell);
14
- }
15
- [data-ad-material="card"] {
16
- --ad-material-bg: var(--ad-surface-card);
17
- --ad-material-shadow: var(--ad-shadow-card);
18
- }
19
- [data-ad-material="glass"] {
20
- --ad-material-bg: var(--ad-surface-glass);
21
- --ad-material-shadow: var(--ad-shadow-glass);
22
- }
23
- [data-ad-material="ruby"] {
24
- --ad-material-bg: var(--ad-surface-ruby);
25
- --ad-material-shadow: var(--ad-shadow-ruby);
26
- }
27
- [data-ad-material="tile"] {
28
- --ad-material-bg: var(--ad-surface-tile);
29
- --ad-material-shadow: var(--ad-shadow-tile);
30
- }
31
- [data-ad-material="input"] {
32
- --ad-material-bg: var(--ad-surface-input);
33
- --ad-material-shadow: var(--ad-shadow-input);
34
- }
35
- [data-ad-material="dialog"] {
36
- --ad-material-bg: var(--ad-surface-dialog);
37
- --ad-material-shadow: var(--ad-shadow-dialog);
38
- }
39
- .ad-surface,
40
- .ad-card {
41
- position: relative;
42
- border-radius: 1.125rem;
43
- isolation: isolate;
44
- }
45
- .ad-surface:not(.ad-card) {
46
- padding: 1.25rem;
47
- }
48
- .ad-header-copy {
49
- min-width: 0;
50
- flex: 1;
51
- }
52
- .ad-header-copy p {
53
- color: var(--ad-muted);
54
- font-size: 0.8125rem;
55
- line-height: 1.5;
56
- margin: 0.3125rem 0 0;
57
- }
58
- .ad-header-actions {
59
- margin-left: auto;
60
- }
61
- .ad-toolbar,
62
- .ad-button-group {
63
- display: flex;
64
- align-items: center;
65
- gap: 0.625rem;
66
- flex-wrap: wrap;
67
- }
68
- .ad-collapsible-section summary > .ad-icon:last-child {
69
- margin-left: auto;
70
- transition: transform 0.2s;
71
- }
72
- .ad-collapsible-section[open] summary > .ad-icon:last-child {
73
- transform: rotate(180deg);
74
- }
11
+ [data-ad-material="shell"] {
12
+ --ad-material-bg: var(--ad-surface-shell);
13
+ --ad-material-shadow: var(--ad-shadow-shell);
14
+ }
15
+ [data-ad-material="card"] {
16
+ --ad-material-bg: var(--ad-surface-card);
17
+ --ad-material-shadow: var(--ad-shadow-card);
18
+ }
19
+ [data-ad-material="glass"] {
20
+ --ad-material-bg: var(--ad-surface-glass);
21
+ --ad-material-shadow: var(--ad-shadow-glass);
22
+ }
23
+ [data-ad-material="ruby"] {
24
+ --ad-material-bg: var(--ad-surface-ruby);
25
+ --ad-material-shadow: var(--ad-shadow-ruby);
26
+ }
27
+ [data-ad-material="tile"] {
28
+ --ad-material-bg: var(--ad-surface-tile);
29
+ --ad-material-shadow: var(--ad-shadow-tile);
30
+ }
31
+ [data-ad-material="input"] {
32
+ --ad-material-bg: var(--ad-surface-input);
33
+ --ad-material-shadow: var(--ad-shadow-input);
34
+ }
35
+ [data-ad-material="dialog"] {
36
+ --ad-material-bg: var(--ad-surface-dialog);
37
+ --ad-material-shadow: var(--ad-shadow-dialog);
38
+ }
39
+ .ad-surface,
40
+ .ad-card {
41
+ position: relative;
42
+ border-radius: 1.125rem;
43
+ isolation: isolate;
44
+ }
45
+ .ad-surface:not(.ad-card) {
46
+ padding: 1.25rem;
47
+ }
48
+ .ad-header-copy {
49
+ min-width: 0;
50
+ flex: 1;
51
+ }
52
+ .ad-header-copy p {
53
+ color: var(--ad-muted);
54
+ font-size: 0.8125rem;
55
+ line-height: 1.5;
56
+ margin: 0.3125rem 0 0;
57
+ }
58
+ .ad-header-actions {
59
+ margin-left: auto;
60
+ }
61
+ .ad-toolbar,
62
+ .ad-button-group {
63
+ display: flex;
64
+ align-items: center;
65
+ gap: 0.625rem;
66
+ flex-wrap: wrap;
67
+ }
68
+ .ad-collapsible-section summary > .ad-icon:last-child {
69
+ margin-left: auto;
70
+ transition: transform 0.2s;
71
+ }
72
+ .ad-collapsible-section[open] summary > .ad-icon:last-child {
73
+ transform: rotate(180deg);
74
+ }
75
75
 
76
76
  /* Vector artwork is drawn in ruby; it turns to the theme hue. */
77
77
  :is(.ad-illustration, .ad-brand-mark, .ad-host-seal) svg {
@@ -1,86 +1,86 @@
1
- /* Styles owned by AudioPlayer: while playing, rings of light pulse out of the play button. */
2
- .ad-audio-player {
3
- display: flex;
4
- flex-wrap: wrap;
5
- align-items: center;
6
- gap: clamp(0.75rem, 2vw, 1.25rem);
7
- min-width: 0;
8
- padding: 0.75rem clamp(0.75rem, 2vw, 1.1rem);
9
- border-radius: calc(var(--ad-radius) * 1.2);
10
- border: 0.0625rem solid rgb(from var(--ad-secondary) r g b / 0.2);
11
- background:
12
- radial-gradient(40% 120% at 0 50%, rgb(from var(--ad-primary) r g b / 0.12), transparent 70%),
13
- linear-gradient(180deg, var(--ad-neutral-850), var(--ad-neutral-900));
14
- box-shadow: inset 0 0.0625rem 0 #ffffff0f;
15
- }
16
- .ad-player-play {
17
- position: relative;
18
- display: grid;
19
- flex: none;
20
- }
21
- .ad-player-play > .ad-icon-button {
22
- --ad-size-h: 3rem;
23
- width: 3rem;
24
- height: 3rem;
25
- }
26
- .ad-player-play::before,
27
- .ad-player-play::after {
28
- content: "";
29
- position: absolute;
30
- inset: 0;
31
- border-radius: 50%;
32
- border: 0.0625rem solid var(--ad-secondary);
33
- opacity: 0;
34
- pointer-events: none;
35
- }
36
- .ad-audio-player[data-playing] .ad-player-play::before,
37
- .ad-audio-player[data-playing] .ad-player-play::after {
38
- animation: ad-player-wave 1.8s ease-out infinite;
39
- }
40
- .ad-audio-player[data-playing] .ad-player-play::after {
41
- animation-delay: 0.9s;
42
- }
43
- .ad-player-track {
44
- flex: 1 1 4rem;
45
- min-width: 0;
46
- display: grid;
47
- gap: 0.15rem;
48
- }
49
- .ad-player-times {
50
- display: flex;
51
- justify-content: space-between;
52
- }
53
- .ad-time {
54
- white-space: nowrap;
55
- font-size: 0.6875rem;
56
- color: var(--ad-muted);
57
- font-variant-numeric: tabular-nums;
58
- }
59
- .ad-player-volume {
60
- display: flex;
61
- align-items: center;
62
- gap: 0.25rem;
63
- flex: 0 1 9rem;
64
- min-width: 0;
65
- }
66
- .ad-player-volume > .ad-slider-field {
67
- flex: 1;
68
- min-width: 0;
69
- }
70
- .ad-player-volume .ad-slider {
71
- width: 100%;
72
- }
73
- .ad-player-volume > [data-muted] {
74
- color: var(--ad-muted);
75
- opacity: 0.6;
76
- }
77
- @keyframes ad-player-wave {
78
- from {
79
- opacity: 0.8;
80
- scale: 1;
81
- }
82
- to {
83
- opacity: 0;
84
- scale: 1.7;
85
- }
86
- }
1
+ /* Styles owned by AudioPlayer: while playing, rings of light pulse out of the play button. */
2
+ .ad-audio-player {
3
+ display: flex;
4
+ flex-wrap: wrap;
5
+ align-items: center;
6
+ gap: clamp(0.75rem, 2vw, 1.25rem);
7
+ min-width: 0;
8
+ padding: 0.75rem clamp(0.75rem, 2vw, 1.1rem);
9
+ border-radius: calc(var(--ad-radius) * 1.2);
10
+ border: 0.0625rem solid rgb(from var(--ad-secondary) r g b / 0.2);
11
+ background:
12
+ radial-gradient(40% 120% at 0 50%, rgb(from var(--ad-primary) r g b / 0.12), transparent 70%),
13
+ linear-gradient(180deg, var(--ad-neutral-850), var(--ad-neutral-900));
14
+ box-shadow: inset 0 0.0625rem 0 #ffffff0f;
15
+ }
16
+ .ad-player-play {
17
+ position: relative;
18
+ display: grid;
19
+ flex: none;
20
+ }
21
+ .ad-player-play > .ad-icon-button {
22
+ --ad-size-h: 3rem;
23
+ width: 3rem;
24
+ height: 3rem;
25
+ }
26
+ .ad-player-play::before,
27
+ .ad-player-play::after {
28
+ content: "";
29
+ position: absolute;
30
+ inset: 0;
31
+ border-radius: 50%;
32
+ border: 0.0625rem solid var(--ad-secondary);
33
+ opacity: 0;
34
+ pointer-events: none;
35
+ }
36
+ .ad-audio-player[data-playing] .ad-player-play::before,
37
+ .ad-audio-player[data-playing] .ad-player-play::after {
38
+ animation: ad-player-wave 1.8s ease-out infinite;
39
+ }
40
+ .ad-audio-player[data-playing] .ad-player-play::after {
41
+ animation-delay: 0.9s;
42
+ }
43
+ .ad-player-track {
44
+ flex: 1 1 4rem;
45
+ min-width: 0;
46
+ display: grid;
47
+ gap: 0.15rem;
48
+ }
49
+ .ad-player-times {
50
+ display: flex;
51
+ justify-content: space-between;
52
+ }
53
+ .ad-time {
54
+ white-space: nowrap;
55
+ font-size: 0.6875rem;
56
+ color: var(--ad-muted);
57
+ font-variant-numeric: tabular-nums;
58
+ }
59
+ .ad-player-volume {
60
+ display: flex;
61
+ align-items: center;
62
+ gap: 0.25rem;
63
+ flex: 0 1 9rem;
64
+ min-width: 0;
65
+ }
66
+ .ad-player-volume > .ad-slider-field {
67
+ flex: 1;
68
+ min-width: 0;
69
+ }
70
+ .ad-player-volume .ad-slider {
71
+ width: 100%;
72
+ }
73
+ .ad-player-volume > [data-muted] {
74
+ color: var(--ad-muted);
75
+ opacity: 0.6;
76
+ }
77
+ @keyframes ad-player-wave {
78
+ from {
79
+ opacity: 0.8;
80
+ scale: 1;
81
+ }
82
+ to {
83
+ opacity: 0;
84
+ scale: 1.7;
85
+ }
86
+ }