@neo-ui-kit/react 1.0.0 → 1.0.1

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 (55) hide show
  1. package/README.md +12 -2
  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/UPSTREAM-LICENSE.txt +21 -21
  6. package/dist/components/artwork/ServerArt/styles.css +43 -43
  7. package/dist/components/artwork/Spectrum/styles.css +35 -35
  8. package/dist/components/controls/Autocomplete/styles.css +1 -1
  9. package/dist/components/controls/Checkbox/styles.css +58 -58
  10. package/dist/components/controls/InputBase/styles.css +374 -374
  11. package/dist/components/controls/Link/styles.css +50 -50
  12. package/dist/components/controls/SegmentedControl/styles.css +9 -9
  13. package/dist/components/controls/Switch/styles.css +54 -54
  14. package/dist/components/controls/Tabs/styles.css +239 -239
  15. package/dist/components/controls/ToggleButton/styles.css +49 -49
  16. package/dist/components/controls/shared.css +694 -694
  17. package/dist/components/editor/shared.css +1 -1
  18. package/dist/components/effects/Beacon/styles.css +38 -38
  19. package/dist/components/effects/Equalizer/styles.css +34 -34
  20. package/dist/components/effects/GlowText/styles.css +56 -56
  21. package/dist/components/effects/Marquee/styles.css +46 -46
  22. package/dist/components/effects/Reveal/styles.css +25 -25
  23. package/dist/components/effects/Shimmer/styles.css +48 -48
  24. package/dist/components/effects/Sparkles/styles.css +28 -28
  25. package/dist/components/effects/Spotlight/styles.css +45 -45
  26. package/dist/components/effects/Tilt/styles.css +67 -67
  27. package/dist/components/feedback/CollapsibleSection/styles.css +76 -76
  28. package/dist/components/feedback/DataTable/styles.css +522 -522
  29. package/dist/components/feedback/EmptyState/styles.css +80 -80
  30. package/dist/components/feedback/KeyValueList/styles.css +51 -51
  31. package/dist/components/feedback/MenuItem/styles.css +71 -71
  32. package/dist/components/feedback/Popover/styles.css +44 -44
  33. package/dist/components/feedback/Steps/styles.css +152 -152
  34. package/dist/components/feedback/Toast/styles.css +89 -89
  35. package/dist/components/forms/FormFields/styles.css +21 -21
  36. package/dist/components/foundation/ThemeProvider/styles.css +31 -31
  37. package/dist/components/layout/Avatar/styles.css +151 -151
  38. package/dist/components/layout/Card/styles.css +37 -37
  39. package/dist/components/layout/DialogActions/styles.css +31 -31
  40. package/dist/components/layout/DialogBody/styles.css +17 -17
  41. package/dist/components/layout/Illustration/styles.css +104 -104
  42. package/dist/components/layout/ScrollArea/styles.css +61 -61
  43. package/dist/components/layout/TabPanel/styles.css +16 -16
  44. package/dist/components/layout/shared.css +65 -65
  45. package/dist/components/media/AudioPlayer/styles.css +86 -86
  46. package/dist/components/media/LevelMeter/styles.css +30 -30
  47. package/dist/components/media/MelodyRoll/styles.css +196 -196
  48. package/dist/components/media/RotaryKnob/styles.css +319 -319
  49. package/dist/components/media/Sparkline/styles.css +69 -69
  50. package/dist/components/media/WaveDecoration/styles.css +1 -1
  51. package/dist/components/media/shared.css +7 -7
  52. package/dist/fonts/melodix.css +123 -123
  53. package/dist/index.js +2101 -2101
  54. package/dist/theme/base.css +210 -210
  55. 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
+ }