@dialpad/dialtone-css 8.75.0 → 8.75.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.
@@ -0,0 +1,296 @@
1
+ //
2
+ // DIALTONE
3
+ // RECIPES: MOTION TEXT
4
+ //
5
+ // TABLE OF CONTENTS
6
+ // • CSS CUSTOM PROPERTIES
7
+ // • BASE STYLE
8
+ // • CHILD ELEMENTS
9
+ // • ANIMATION KEYFRAMES
10
+ // • TRANSITION CLASSES - GRADIENT IN
11
+ // • TRANSITION CLASSES - FADE IN
12
+ // • TRANSITION CLASSES - SLIDE IN
13
+ // • GRADIENT IN
14
+ // • GRADIENT SWEEP & SHIMMER
15
+ // • MODIFIERS
16
+ // • ACCESSIBILITY
17
+ //
18
+ // ============================================================================
19
+ // $ CSS CUSTOM PROPERTIES
20
+ // ----------------------------------------------------------------------------
21
+ @property --d-motion-text-mask-pos {
22
+ inherits: true;
23
+ initial-value: 0%;
24
+ syntax: '<percentage>';
25
+ }
26
+
27
+ // ============================================================================
28
+ // $ BASE STYLE
29
+ // ----------------------------------------------------------------------------
30
+ .d-motion-text {
31
+ /* Theme variables - can be overridden by design system */
32
+ --d-motion-text-duration: 1000ms;
33
+ --d-motion-text-char-duration: var(--d-motion-text-duration);
34
+ --d-motion-text-word-duration: calc(var(--d-motion-text-duration) * 2);
35
+ --d-motion-text-highlight-color: linear-gradient(135deg, var(--dt-color-brand-magenta) 10%, var(--dt-color-brand-purple) 80%, var(--dt-color-brand-gold) 100%);
36
+ --d-motion-text-gradient: linear-gradient(
37
+ 90deg,
38
+ transparent 0%,
39
+ transparent 20%,
40
+ black 40%,
41
+ black 60%,
42
+ transparent 80%,
43
+ transparent 100%
44
+ ) 0% 0% / 500% 100%;
45
+ --d-motion-text-shimmer-gradient: linear-gradient(
46
+ 90deg,
47
+ black 0%,
48
+ black 20%,
49
+ #0005 40%,
50
+ #0005 60%,
51
+ black 80%,
52
+ black 100%
53
+ ) 0% 0% / 500% 100%;
54
+
55
+ position: relative;
56
+ }
57
+
58
+ // ============================================================================
59
+ // $ CHILD ELEMENTS
60
+ // ----------------------------------------------------------------------------
61
+ .d-motion-text__sr-only {
62
+ position: absolute;
63
+ width: 1px;
64
+ height: 1px;
65
+ overflow: hidden;
66
+ white-space: nowrap;
67
+ clip-path: inset(50%);
68
+ }
69
+
70
+ .d-motion-text__content {
71
+ display: contents;
72
+ }
73
+
74
+ .d-motion-text__fallback {
75
+ display: contents;
76
+ }
77
+
78
+ .d-motion-text__char {
79
+ display: inline;
80
+ white-space: pre;
81
+ }
82
+
83
+ .d-motion-text__word {
84
+ position: relative;
85
+ display: inline-block;
86
+ white-space: nowrap;
87
+ }
88
+
89
+ // ============================================================================
90
+ // $ ANIMATION KEYFRAMES
91
+ // ----------------------------------------------------------------------------
92
+
93
+ // Gradient-in mode animations
94
+ @keyframes d-motion-text-gradient-in-char-appear {
95
+ from {
96
+ opacity: 0;
97
+ }
98
+
99
+ to {
100
+ opacity: 1;
101
+ }
102
+ }
103
+
104
+ @keyframes d-motion-text-gradient-in-char-reveal {
105
+ from {
106
+ color: var(--dt-color-neutral-transparent);
107
+ }
108
+
109
+ to {
110
+ color: inherit;
111
+ }
112
+ }
113
+
114
+ @keyframes d-motion-text-gradient-in-word-reveal {
115
+ from {
116
+ --d-motion-text-mask-pos: 100%;
117
+ }
118
+
119
+ to {
120
+ --d-motion-text-mask-pos: 0%;
121
+ }
122
+ }
123
+
124
+ // Fade-in mode animations
125
+ @keyframes d-motion-text-fade-in-char-appear {
126
+ from {
127
+ opacity: 0;
128
+ }
129
+
130
+ to {
131
+ opacity: 1;
132
+ }
133
+ }
134
+
135
+ @keyframes d-motion-text-fade-in-word-appear {
136
+ from {
137
+ opacity: 0;
138
+ }
139
+
140
+ to {
141
+ opacity: 1;
142
+ }
143
+ }
144
+
145
+ // Slide-in mode animations
146
+ @keyframes d-motion-text-slide-in-char-appear {
147
+ from {
148
+ transform: translateY(0.3em);
149
+ opacity: 0;
150
+ }
151
+
152
+ to {
153
+ transform: translateY(0);
154
+ opacity: 1;
155
+ }
156
+ }
157
+
158
+ @keyframes d-motion-text-slide-in-word-appear {
159
+ from {
160
+ transform: translateY(0.5em);
161
+ opacity: 0;
162
+ }
163
+
164
+ to {
165
+ transform: translateY(0);
166
+ opacity: 1;
167
+ }
168
+ }
169
+
170
+ // ============================================================================
171
+ // $ TRANSITION CLASSES - GRADIENT IN
172
+ // ----------------------------------------------------------------------------
173
+ .d-motion-text-char-gradient-in-enter-active {
174
+ animation: d-motion-text-gradient-in-char-appear var(--d-motion-text-char-duration) var(--ttf-in-out);
175
+ }
176
+
177
+ .d-motion-text-char-gradient-in-leave-active {
178
+ animation: d-motion-text-gradient-in-char-appear calc(var(--d-motion-text-char-duration) * 0.5) var(--ttf-out-quint) reverse;
179
+ }
180
+
181
+ .d-motion-text-word-gradient-in-enter-active {
182
+ animation: d-motion-text-gradient-in-word-reveal calc(var(--d-motion-text-word-duration) * 1.5) var(--ttf-out-quint);
183
+ }
184
+
185
+ .d-motion-text-word-gradient-in-leave-active {
186
+ animation: d-motion-text-gradient-in-word-reveal calc(var(--d-motion-text-word-duration) * 0.5) var(--ttf-out-quint) reverse;
187
+ }
188
+
189
+ // ============================================================================
190
+ // $ TRANSITION CLASSES - FADE IN
191
+ // ----------------------------------------------------------------------------
192
+ .d-motion-text-char-fade-in-enter-active {
193
+ animation: d-motion-text-fade-in-char-appear var(--d-motion-text-char-duration) var(--ttf-out-quint);
194
+ }
195
+
196
+ .d-motion-text-char-fade-in-leave-active {
197
+ animation: d-motion-text-fade-in-char-appear calc(var(--d-motion-text-char-duration) * 0.5) var(--ttf-out-quint) reverse;
198
+ }
199
+
200
+ .d-motion-text-word-fade-in-enter-active {
201
+ animation: d-motion-text-fade-in-word-appear var(--d-motion-text-word-duration) var(--ttf-out-quint);
202
+ }
203
+
204
+ .d-motion-text-word-fade-in-leave-active {
205
+ animation: d-motion-text-fade-in-word-appear calc(var(--d-motion-text-word-duration) * 0.5) var(--ttf-out-quint) reverse;
206
+ }
207
+
208
+ // ============================================================================
209
+ // $ TRANSITION CLASSES - SLIDE IN
210
+ // ----------------------------------------------------------------------------
211
+ .d-motion-text-char-slide-in-enter-active {
212
+ animation: d-motion-text-slide-in-char-appear var(--d-motion-text-char-duration) var(--ttf-out-quint);
213
+ }
214
+
215
+ .d-motion-text-char-slide-in-leave-active {
216
+ animation: d-motion-text-slide-in-char-appear calc(var(--d-motion-text-char-duration) * 0.5) var(--ttf-out-quint) reverse;
217
+ }
218
+
219
+ .d-motion-text-word-slide-in-enter-active {
220
+ animation: d-motion-text-slide-in-word-appear var(--d-motion-text-word-duration) var(--ttf-out-quint);
221
+ }
222
+
223
+ .d-motion-text-word-slide-in-leave-active {
224
+ animation: d-motion-text-slide-in-word-appear calc(var(--d-motion-text-word-duration) * 0.5) var(--ttf-out-quint) reverse;
225
+ }
226
+
227
+ // ============================================================================
228
+ // $ GRADIENT IN
229
+ // ----------------------------------------------------------------------------
230
+ // Delay reveal of character text color to prevent a flash on the first letter
231
+ .d-motion-text--gradient-in .d-motion-text__char {
232
+ animation: d-motion-text-gradient-in-char-reveal var(--d-motion-text-char-duration) var(--ttf-in-out);
233
+ }
234
+
235
+ // ============================================================================
236
+ // $ GRADIENT SWEEP & SHIMMER
237
+ // ----------------------------------------------------------------------------
238
+ .d-motion-text--gradient-sweep,
239
+ .d-motion-text--shimmer {
240
+ position: relative;
241
+ display: inline-block;
242
+ animation: d-motion-text-gradient-in-word-reveal calc(var(--d-motion-text-word-duration) * 1.5) var(--ttf-in-out) 1;
243
+ }
244
+
245
+ .d-motion-text--gradient-in .d-motion-text__word::before,
246
+ .d-motion-text--gradient-sweep::before {
247
+ position: absolute;
248
+ font-size: inherit;
249
+ line-height: inherit;
250
+ letter-spacing: inherit;
251
+ background: var(--d-motion-text-highlight-color);
252
+ -webkit-background-clip: text;
253
+ background-clip: text;
254
+ content: attr(data-text-content);
255
+ pointer-events: none;
256
+ -webkit-text-fill-color: transparent;
257
+ mask: var(--d-motion-text-gradient);
258
+ mask-position: var(--d-motion-text-mask-pos) 0%;
259
+ }
260
+
261
+ .d-motion-text--shimmer {
262
+ content: attr(data-text-content);
263
+ mask: var(--d-motion-text-shimmer-gradient);
264
+ mask-position: var(--d-motion-text-mask-pos) 0%;
265
+ }
266
+
267
+ // ============================================================================
268
+ // $ MODIFIERS
269
+ // ----------------------------------------------------------------------------
270
+ .d-motion-text--none .d-motion-text__word,
271
+ .d-motion-text--none .d-motion-text__char {
272
+ transform: none;
273
+ opacity: 1;
274
+ }
275
+
276
+ .d-motion-text--paused {
277
+ animation-play-state: paused !important;
278
+ }
279
+
280
+ .d-motion-text--looped {
281
+ animation-iteration-count: infinite !important;
282
+ }
283
+
284
+ // ============================================================================
285
+ // $ ACCESSIBILITY
286
+ // ----------------------------------------------------------------------------
287
+ @media (prefers-reduced-motion: reduce) {
288
+ .d-motion-text {
289
+ --d-motion-text-duration: 0ms;
290
+ --d-motion-text-char-duration: 0ms;
291
+ --d-motion-text-word-duration: 0ms;
292
+
293
+ transition-duration: 0ms !important;
294
+ animation-duration: 0ms !important;
295
+ }
296
+ }
@@ -48,7 +48,6 @@
48
48
  border: var(--popover-border-width) solid var(--popover-color-border);
49
49
  border-radius: var(--popover-border-radius);
50
50
  box-shadow: var(--popover-shadow);
51
- visibility: visible;
52
51
 
53
52
  // to be set on the dialog when it is modal
54
53
  &--modal {
@@ -101,9 +100,3 @@
101
100
  border-top: var(--popover-border-width) solid var(--popover-color-border);
102
101
  }
103
102
  }
104
-
105
- .tippy-box[data-popper-reference-hidden] {
106
- .d-popover__dialog {
107
- visibility: hidden;
108
- }
109
- }
@@ -59,6 +59,9 @@
59
59
  @import 'components/emoji';
60
60
  @import 'components/emoji-text-wrapper';
61
61
  @import 'components/emoji-picker';
62
+ @import 'components/motion_text';
63
+ @import 'components/combobox-with-popover';
64
+ @import 'components/combobox-multi-select';
62
65
 
63
66
  // -- UTILITIES
64
67
  @import 'utilities/backgrounds';
@@ -79,8 +82,6 @@
79
82
  @import 'recipes/callbar_button_with_popover';
80
83
  @import 'recipes/callbar_button_with_dropdown';
81
84
  @import 'recipes/callbox';
82
- @import 'recipes/combobox_multi_select';
83
- @import 'recipes/combobox_with_popover';
84
85
  @import 'recipes/contact_info';
85
86
  @import 'recipes/editor';
86
87
  @import 'recipes/emoji_row';
@@ -90,7 +91,6 @@
90
91
  @import 'recipes/ivr_node';
91
92
  @import 'recipes/leftbar_row';
92
93
  @import 'recipes/message_input';
93
- @import 'recipes/motion_text';
94
94
  @import 'recipes/settings_menu_button';
95
95
  @import 'recipes/time_pill';
96
96
  @import 'recipes/top_banner_info';