@qite/tide-components 1.0.13 → 1.0.14

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 (73) hide show
  1. package/build/build-cjs/index.js +11 -11
  2. package/build/build-esm/index.js +11 -11
  3. package/package.json +1 -1
  4. package/styles/abstracts/_mixins.scss +74 -74
  5. package/styles/abstracts/_variables.scss +57 -57
  6. package/styles/base/_fonts.scss +2 -2
  7. package/styles/base/_normalize.scss +227 -227
  8. package/styles/base/_typography.scss +35 -35
  9. package/styles/booking-joker-variables.scss +596 -596
  10. package/styles/booking-product-variables.scss +330 -330
  11. package/styles/booking-product.scss +438 -438
  12. package/styles/booking-qsm-variables.scss +501 -501
  13. package/styles/booking-qsm.scss +52 -52
  14. package/styles/booking-search-results-variables.scss +734 -734
  15. package/styles/booking-search-results.scss +53 -53
  16. package/styles/booking-wizard-variables.scss +603 -603
  17. package/styles/booking-wizard.scss +61 -61
  18. package/styles/components/_accordion.scss +67 -67
  19. package/styles/components/_animations.scss +39 -39
  20. package/styles/components/_base.scss +107 -107
  21. package/styles/components/_booking.scss +906 -906
  22. package/styles/components/_breadcrumb.scss +92 -92
  23. package/styles/components/_button.scss +238 -238
  24. package/styles/components/_checkbox.scss +230 -230
  25. package/styles/components/_contact.scss +255 -255
  26. package/styles/components/_content.scss +336 -336
  27. package/styles/components/_cta.scss +238 -238
  28. package/styles/components/_date-list.scss +41 -41
  29. package/styles/components/_date-range-picker.scss +223 -223
  30. package/styles/components/_decrement-increment.scss +35 -35
  31. package/styles/components/_dropdown.scss +77 -77
  32. package/styles/components/_error.scss +50 -50
  33. package/styles/components/_faq.scss +30 -30
  34. package/styles/components/_flight-option.scss +1444 -1444
  35. package/styles/components/_flyin.scss +830 -830
  36. package/styles/components/_footer.scss +135 -135
  37. package/styles/components/_form.scss +1704 -1704
  38. package/styles/components/_gallery.scss +317 -317
  39. package/styles/components/_header.scss +113 -113
  40. package/styles/components/_image-with-text.scss +206 -206
  41. package/styles/components/_img-slider.scss +175 -175
  42. package/styles/components/_info-message.scss +75 -75
  43. package/styles/components/_input.scss +35 -35
  44. package/styles/components/_list.scss +185 -185
  45. package/styles/components/_loader.scss +152 -152
  46. package/styles/components/_login.scss +140 -140
  47. package/styles/components/_map-view.scss +1100 -1100
  48. package/styles/components/_mixins.scss +579 -579
  49. package/styles/components/_navbar.scss +765 -765
  50. package/styles/components/_passenger-picker.scss +306 -306
  51. package/styles/components/_phone-input.scss +8 -8
  52. package/styles/components/_placeholders.scss +165 -165
  53. package/styles/components/_pricing-summary.scss +163 -163
  54. package/styles/components/_qsm.scss +17 -17
  55. package/styles/components/_radiobutton.scss +170 -170
  56. package/styles/components/_search.scss +2197 -2197
  57. package/styles/components/_select-wrapper.scss +81 -81
  58. package/styles/components/_slider.scss +120 -120
  59. package/styles/components/_spinner.scss +29 -29
  60. package/styles/components/_step-indicators.scss +187 -187
  61. package/styles/components/_table.scss +81 -81
  62. package/styles/components/_tide-form.scss +578 -578
  63. package/styles/components/_tree.scss +648 -648
  64. package/styles/components/_typeahead.scss +275 -275
  65. package/styles/components/_variables.scss +89 -89
  66. package/styles/content-blocks-variables.scss +543 -543
  67. package/styles/content-blocks.scss +66 -66
  68. package/styles/font.scss +2 -2
  69. package/styles/qsm/_calendar.scss +274 -274
  70. package/styles/qsm/_qsm.scss +1097 -1097
  71. package/styles/search.scss +1200 -1200
  72. package/styles/tide-form-variables.scss +275 -275
  73. package/styles/tide-form.scss +56 -56
@@ -1,579 +1,579 @@
1
- // RESET
2
- @mixin reset {
3
- padding: 0;
4
- margin: 0;
5
- box-sizing: border-box;
6
- }
7
-
8
- // MEDIA QUERIES
9
- @mixin media-xxs {
10
- @media only screen and (min-width: 390px) {
11
- @content;
12
- }
13
- }
14
-
15
- @mixin media-xs {
16
- @media only screen and (min-width: 576px) {
17
- @content;
18
- }
19
- }
20
-
21
- @mixin media-sm {
22
- @media only screen and (min-width: 768px) {
23
- @content;
24
- }
25
- }
26
-
27
- @mixin media-md {
28
- @media only screen and (min-width: 992px) {
29
- @content;
30
- }
31
- }
32
-
33
- @mixin media-lg {
34
- @media only screen and (min-width: 1200px) {
35
- @content;
36
- }
37
- }
38
-
39
- @mixin media-xgl {
40
- @media only screen and (min-width: 1440px) {
41
- @content;
42
- }
43
- }
44
-
45
- @mixin media-xl {
46
- @media only screen and (min-width: 1650px) {
47
- @content;
48
- }
49
- }
50
-
51
- @mixin media-xxl {
52
- @media only screen and (min-width: 1920px) {
53
- @content;
54
- }
55
- }
56
-
57
- @mixin orientation--landscape {
58
- @media only screen and (orientation: landscape) {
59
- @content;
60
- }
61
- }
62
-
63
- // GRID
64
- @mixin container() {
65
- width: 100%;
66
- padding: 0 15px;
67
- margin: 0 auto;
68
-
69
- @include media-sm {
70
- padding: 0 30px;
71
- }
72
-
73
- @include media-lg {
74
- padding: 0 45px;
75
- }
76
- }
77
-
78
- @mixin container-wide() {
79
- @include container();
80
- max-width: var(--tide-booking-container-wide);
81
- }
82
-
83
- @mixin container-medium() {
84
- @include container();
85
- max-width: var(--tide-booking-container-medium);
86
- }
87
-
88
- @mixin container-small() {
89
- @include container();
90
- max-width: var(--tide-booking-container-small);
91
- }
92
-
93
- @mixin container-article() {
94
- @include container();
95
- max-width: var(--tide-booking-container-article);
96
- }
97
-
98
- @mixin row() {
99
- display: flex;
100
- justify-content: center;
101
- //flex-wrap: wrap;
102
- }
103
-
104
- @mixin row--xs() {
105
- display: flex;
106
- flex-direction: column;
107
-
108
- @include media-xs {
109
- flex-direction: row;
110
- }
111
- }
112
-
113
- @mixin row--sm() {
114
- display: flex;
115
- flex-direction: column;
116
-
117
- @include media-sm {
118
- flex-direction: row;
119
- }
120
- }
121
-
122
- @mixin row--md() {
123
- display: flex;
124
- flex-direction: column;
125
-
126
- @include media-md {
127
- flex-direction: row;
128
- }
129
- }
130
-
131
- @mixin row--lg() {
132
- display: flex;
133
- flex-direction: column;
134
-
135
- @include media-lg {
136
- flex-direction: row;
137
- }
138
- }
139
-
140
- @mixin row--xl() {
141
- display: flex;
142
- flex-direction: column;
143
-
144
- @include media-xl {
145
- flex-direction: row;
146
- }
147
- }
148
-
149
- @mixin row--xxl() {
150
- display: flex;
151
- flex-direction: column;
152
-
153
- @include media-xxl {
154
- flex-direction: row;
155
- }
156
- }
157
-
158
- @mixin column() {
159
- display: flex;
160
- flex-direction: column;
161
- }
162
-
163
- @mixin column--xs() {
164
- display: flex;
165
-
166
- @include media-xs {
167
- flex-direction: column;
168
- }
169
- }
170
-
171
- @mixin column--sm() {
172
- display: flex;
173
-
174
- @include media-sm {
175
- flex-direction: column;
176
- }
177
- }
178
-
179
- @mixin column--md() {
180
- display: flex;
181
-
182
- @include media-md {
183
- flex-direction: column;
184
- }
185
- }
186
-
187
- @mixin column--lg() {
188
- display: flex;
189
-
190
- @include media-lg {
191
- flex-direction: column;
192
- }
193
- }
194
-
195
- @mixin column--xl() {
196
- display: flex;
197
-
198
- @include media-xl {
199
- flex-direction: column;
200
- }
201
- }
202
-
203
- @mixin column--xxl() {
204
- display: flex;
205
-
206
- @include media-xxl {
207
- flex-direction: column;
208
- }
209
- }
210
-
211
- @mixin gutter() {
212
- padding: 10px;
213
-
214
- @include media-sm {
215
- padding: 20px;
216
- }
217
-
218
- @include media-lg {
219
- padding: 30px;
220
- }
221
- }
222
-
223
- @mixin gutter--compact() {
224
- padding: 10px;
225
-
226
- @include media-sm {
227
- padding: 15px;
228
- }
229
-
230
- @include media-lg {
231
- padding: 20px;
232
- }
233
- }
234
-
235
- @mixin flex--centerXY() {
236
- display: inline-flex;
237
- justify-content: center;
238
- align-items: center;
239
- }
240
-
241
- @mixin flex--centerX() {
242
- display: inline-flex;
243
- justify-content: center;
244
- }
245
-
246
- @mixin flex--centerY() {
247
- display: inline-flex;
248
- align-items: center;
249
- }
250
-
251
- @mixin object-fit--cover() {
252
- object-fit: cover;
253
- }
254
-
255
- @mixin object-fit--contain() {
256
- object-fit: contain;
257
- }
258
-
259
- @mixin object-position--center() {
260
- object-position: center;
261
- }
262
-
263
- @mixin overflow--x {
264
- overflow-x: auto;
265
- overflow-y: hidden;
266
- }
267
-
268
- @mixin overflow--y {
269
- overflow-x: hidden;
270
- overflow-y: auto;
271
- }
272
-
273
- @mixin overflow--xy {
274
- overflow: auto;
275
- }
276
-
277
- // UI
278
-
279
- @mixin body {
280
- font-family: var(--tide-booking-font-body);
281
- font-size: var(--tide-booking-font-size-body);
282
- line-height: var(--tide-booking-line-height-body);
283
- color: var(--tide-booking-gray-dark);
284
- -webkit-font-smoothing: antialiased;
285
- -moz-osx-font-smoothing: grayscale;
286
-
287
- @include media-lg {
288
- font-size: var(--tide-booking-font-size-body-lg);
289
- }
290
-
291
- &.has-overlay,
292
- &.has-itinerary-schedule-active {
293
- overflow: hidden;
294
- }
295
- }
296
-
297
- @mixin input {
298
- min-height: var(--tide-booking-input-height);
299
- padding: 0 15px;
300
- border: var(--tide-booking-input-border);
301
- border-radius: var(--tide-booking-input-border-radius);
302
- font-family: var(--tide-booking-font-body);
303
- //font-size: 1.6rem;
304
- font-size: var(--tide-booking-font-size-body);
305
- font-weight: 400;
306
- outline: none;
307
- color: var(--tide-booking-input-color);
308
- background: var(--tide-booking-input-background);
309
-
310
- @include media-lg {
311
- font-size: var(--tide-booking-font-size-body-lg);
312
- min-height: var(--tide-booking-input-height-lg);
313
- }
314
-
315
- &:hover {
316
- border: var(--tide-booking-input-border-hover);
317
- }
318
-
319
- &:focus {
320
- border: var(--tide-booking-input-border-focus);
321
- }
322
-
323
- &:hover,
324
- &:focus,
325
- &:focus-within,
326
- &:active {
327
- outline: none;
328
- }
329
- }
330
-
331
- @mixin textarea {
332
- min-height: 250px;
333
- max-height: 60vh;
334
- padding: 12px 15px;
335
- font-family: var(--tide-booking-font-body);
336
- //font-size: 1.6rem
337
- font-size: var(--input-font-size--mobile);
338
- border: var(--tide-booking-input-border);
339
- border-radius: var(--tide-booking-input-border-radius);
340
- color: var(--tide-booking-input-color);
341
- background: var(--tide-booking-input-background);
342
- resize: vertical;
343
- outline: none;
344
-
345
- @include media-xs {
346
- //font-size: 1.8rem;
347
- font-size: var(--input-font-size--desktop);
348
- }
349
-
350
- &:hover {
351
- border: var(--tide-booking-input-border-hover);
352
- }
353
-
354
- &:focus {
355
- border: var(--tide-booking-input-border-focus);
356
- }
357
-
358
- &:focus,
359
- &:active {
360
- border: var(--tide-booking-input-border-focus);
361
- }
362
- }
363
-
364
- @mixin button {
365
- cursor: pointer;
366
- outline: none;
367
-
368
- &:hover,
369
- &:focus,
370
- &:active {
371
- outline: none;
372
- }
373
- }
374
-
375
- @mixin strong {
376
- font-weight: 400;
377
- color: var(--tide-booking-black);
378
- }
379
-
380
- @mixin small {
381
- font-size: var(--tide-booking-small-font-size--mobile);
382
-
383
- @include media-xs {
384
- font-size: var(--tide-booking-small-font-size--desktop);
385
- }
386
- }
387
-
388
- @mixin border-radius {
389
- border-radius: 5px;
390
- }
391
-
392
- @mixin lineclamp($lineclamp-amount: 1) {
393
- display: block;
394
- display: -webkit-box;
395
- -webkit-line-clamp: $lineclamp-amount;
396
- overflow: hidden;
397
- text-overflow: ellipsis;
398
- -webkit-box-orient: vertical;
399
- /* autoprefixer: off */
400
- }
401
-
402
- @mixin placeholder {
403
- font-style: var(--tide-booking-form-input-placeholder-font-style);
404
- color: var(--tide-booking-form-input-placeholder-color);
405
- }
406
-
407
- @mixin hover-to-color {
408
- &:hover {
409
- color: var(--tide-booking-black);
410
- }
411
- }
412
-
413
- @mixin focus-to-color {
414
- &:focus,
415
- &:active {
416
- color: var(--tide-booking-black);
417
- }
418
- }
419
-
420
- // TYPOGRAPHY
421
- @mixin heading {
422
- margin: 0;
423
- display: inline-flex;
424
- flex-flow: row wrap;
425
- font-family: var(--tide-booking-font-heading);
426
- font-weight: normal;
427
- line-height: 1.35;
428
- word-break: break-word;
429
- color: var(--tide-booking-heading-color);
430
-
431
- &:empty {
432
- display: none;
433
- }
434
-
435
- em {
436
- width: 100%;
437
- font-family: var(--tide-booking-font-handwritten);
438
- font-style: normal;
439
- }
440
- }
441
-
442
- @mixin h1 {
443
- font-size: var(--tide-booking-h1);
444
-
445
- @include media-sm {
446
- font-size: var(--tide-booking-h1-sm);
447
- }
448
-
449
- @include media-xl {
450
- font-size: var(--tide-booking-h1-xl);
451
- }
452
- }
453
-
454
- @mixin h2 {
455
- font-size: var(--tide-booking-h2);
456
-
457
- @include media-sm {
458
- font-size: var(--tide-booking-h2-sm);
459
- }
460
-
461
- @include media-xl {
462
- font-size: var(--tide-booking-h2-xl);
463
- }
464
- }
465
-
466
- @mixin h3 {
467
- font-size: var(--tide-booking-h3);
468
-
469
- @include media-sm {
470
- font-size: var(--tide-booking-h3-sm);
471
- }
472
-
473
- @include media-xl {
474
- font-size: var(--tide-booking-h3-xl);
475
- }
476
- }
477
-
478
- @mixin h4 {
479
- font-size: var(--tide-booking-h4);
480
-
481
- @include media-sm {
482
- font-size: var(--tide-booking-h4-sm);
483
- }
484
-
485
- @include media-xl {
486
- font-size: var(--tide-booking-h4-xl);
487
- }
488
- }
489
-
490
- @mixin h5 {
491
- font-size: var(--tide-booking-h5);
492
-
493
- @include media-xl {
494
- font-size: var(--tide-booking-h5-xl);
495
- }
496
- }
497
-
498
- @mixin h6 {
499
- font-size: var(--tide-booking-h6);
500
-
501
- @include media-md {
502
- font-size: var(--tide-booking-h6-md);
503
- }
504
- }
505
-
506
- @mixin a {
507
- color: var(--tide-booking-a-color);
508
- cursor: pointer;
509
- outline: none;
510
- text-decoration: var(--tide-booking-a-text-decoration);
511
- @extend %transition-easing;
512
-
513
- &:hover,
514
- &:focus,
515
- &:active {
516
- outline: none;
517
- }
518
-
519
- &:hover {
520
- color: var(--tide-booking-a-color-hover);
521
- text-decoration: var(--tide-booking-a-text-decoration-hover);
522
- }
523
-
524
- &:focus,
525
- &:active {
526
- color: var(--tide-booking-a-color-focus);
527
- text-decoration: var(--tide-booking-a-text-decoration-focus);
528
- }
529
- }
530
-
531
- // ANIMATIONS
532
- @mixin transitionEasing($duration: 0.35s) {
533
- transition-duration: $duration;
534
- transition-property: width, height, transform, border, fill, color, background, box-shadow, opacity;
535
- transition-timing-function: ease-out;
536
- }
537
-
538
- // INTERACTIONS
539
- @mixin hoverToColor() {
540
- &:hover {
541
- opacity: 1;
542
- outline: none;
543
- fill: var(--tide-booking-color-primary);
544
- color: var(--tide-booking-color-primary);
545
- background-color: var(--tide-booking-transparent);
546
- }
547
- }
548
-
549
- @mixin activeToColor() {
550
- &:active {
551
- opacity: 1;
552
- outline: none;
553
- fill: var(--tide-booking-color-primary-dark);
554
- color: var(--tide-booking-color-primary-dark);
555
- background-color: var(--tide-booking-transparent);
556
- }
557
- }
558
-
559
- @mixin slideDown($duration: 0.35s) {
560
- @keyframes in {
561
- 0% {
562
- transform: translate3D(0, -100%, 0);
563
- }
564
-
565
- 100% {
566
- transform: translate3D(0, 0, 0);
567
- }
568
- }
569
-
570
- @keyframes out {
571
- 0% {
572
- transform: translate3D(0, 0, 0);
573
- }
574
-
575
- 100% {
576
- transform: translate3D(0, -100%, 0);
577
- }
578
- }
579
- }
1
+ // RESET
2
+ @mixin reset {
3
+ padding: 0;
4
+ margin: 0;
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ // MEDIA QUERIES
9
+ @mixin media-xxs {
10
+ @media only screen and (min-width: 390px) {
11
+ @content;
12
+ }
13
+ }
14
+
15
+ @mixin media-xs {
16
+ @media only screen and (min-width: 576px) {
17
+ @content;
18
+ }
19
+ }
20
+
21
+ @mixin media-sm {
22
+ @media only screen and (min-width: 768px) {
23
+ @content;
24
+ }
25
+ }
26
+
27
+ @mixin media-md {
28
+ @media only screen and (min-width: 992px) {
29
+ @content;
30
+ }
31
+ }
32
+
33
+ @mixin media-lg {
34
+ @media only screen and (min-width: 1200px) {
35
+ @content;
36
+ }
37
+ }
38
+
39
+ @mixin media-xgl {
40
+ @media only screen and (min-width: 1440px) {
41
+ @content;
42
+ }
43
+ }
44
+
45
+ @mixin media-xl {
46
+ @media only screen and (min-width: 1650px) {
47
+ @content;
48
+ }
49
+ }
50
+
51
+ @mixin media-xxl {
52
+ @media only screen and (min-width: 1920px) {
53
+ @content;
54
+ }
55
+ }
56
+
57
+ @mixin orientation--landscape {
58
+ @media only screen and (orientation: landscape) {
59
+ @content;
60
+ }
61
+ }
62
+
63
+ // GRID
64
+ @mixin container() {
65
+ width: 100%;
66
+ padding: 0 15px;
67
+ margin: 0 auto;
68
+
69
+ @include media-sm {
70
+ padding: 0 30px;
71
+ }
72
+
73
+ @include media-lg {
74
+ padding: 0 45px;
75
+ }
76
+ }
77
+
78
+ @mixin container-wide() {
79
+ @include container();
80
+ max-width: var(--tide-booking-container-wide);
81
+ }
82
+
83
+ @mixin container-medium() {
84
+ @include container();
85
+ max-width: var(--tide-booking-container-medium);
86
+ }
87
+
88
+ @mixin container-small() {
89
+ @include container();
90
+ max-width: var(--tide-booking-container-small);
91
+ }
92
+
93
+ @mixin container-article() {
94
+ @include container();
95
+ max-width: var(--tide-booking-container-article);
96
+ }
97
+
98
+ @mixin row() {
99
+ display: flex;
100
+ justify-content: center;
101
+ //flex-wrap: wrap;
102
+ }
103
+
104
+ @mixin row--xs() {
105
+ display: flex;
106
+ flex-direction: column;
107
+
108
+ @include media-xs {
109
+ flex-direction: row;
110
+ }
111
+ }
112
+
113
+ @mixin row--sm() {
114
+ display: flex;
115
+ flex-direction: column;
116
+
117
+ @include media-sm {
118
+ flex-direction: row;
119
+ }
120
+ }
121
+
122
+ @mixin row--md() {
123
+ display: flex;
124
+ flex-direction: column;
125
+
126
+ @include media-md {
127
+ flex-direction: row;
128
+ }
129
+ }
130
+
131
+ @mixin row--lg() {
132
+ display: flex;
133
+ flex-direction: column;
134
+
135
+ @include media-lg {
136
+ flex-direction: row;
137
+ }
138
+ }
139
+
140
+ @mixin row--xl() {
141
+ display: flex;
142
+ flex-direction: column;
143
+
144
+ @include media-xl {
145
+ flex-direction: row;
146
+ }
147
+ }
148
+
149
+ @mixin row--xxl() {
150
+ display: flex;
151
+ flex-direction: column;
152
+
153
+ @include media-xxl {
154
+ flex-direction: row;
155
+ }
156
+ }
157
+
158
+ @mixin column() {
159
+ display: flex;
160
+ flex-direction: column;
161
+ }
162
+
163
+ @mixin column--xs() {
164
+ display: flex;
165
+
166
+ @include media-xs {
167
+ flex-direction: column;
168
+ }
169
+ }
170
+
171
+ @mixin column--sm() {
172
+ display: flex;
173
+
174
+ @include media-sm {
175
+ flex-direction: column;
176
+ }
177
+ }
178
+
179
+ @mixin column--md() {
180
+ display: flex;
181
+
182
+ @include media-md {
183
+ flex-direction: column;
184
+ }
185
+ }
186
+
187
+ @mixin column--lg() {
188
+ display: flex;
189
+
190
+ @include media-lg {
191
+ flex-direction: column;
192
+ }
193
+ }
194
+
195
+ @mixin column--xl() {
196
+ display: flex;
197
+
198
+ @include media-xl {
199
+ flex-direction: column;
200
+ }
201
+ }
202
+
203
+ @mixin column--xxl() {
204
+ display: flex;
205
+
206
+ @include media-xxl {
207
+ flex-direction: column;
208
+ }
209
+ }
210
+
211
+ @mixin gutter() {
212
+ padding: 10px;
213
+
214
+ @include media-sm {
215
+ padding: 20px;
216
+ }
217
+
218
+ @include media-lg {
219
+ padding: 30px;
220
+ }
221
+ }
222
+
223
+ @mixin gutter--compact() {
224
+ padding: 10px;
225
+
226
+ @include media-sm {
227
+ padding: 15px;
228
+ }
229
+
230
+ @include media-lg {
231
+ padding: 20px;
232
+ }
233
+ }
234
+
235
+ @mixin flex--centerXY() {
236
+ display: inline-flex;
237
+ justify-content: center;
238
+ align-items: center;
239
+ }
240
+
241
+ @mixin flex--centerX() {
242
+ display: inline-flex;
243
+ justify-content: center;
244
+ }
245
+
246
+ @mixin flex--centerY() {
247
+ display: inline-flex;
248
+ align-items: center;
249
+ }
250
+
251
+ @mixin object-fit--cover() {
252
+ object-fit: cover;
253
+ }
254
+
255
+ @mixin object-fit--contain() {
256
+ object-fit: contain;
257
+ }
258
+
259
+ @mixin object-position--center() {
260
+ object-position: center;
261
+ }
262
+
263
+ @mixin overflow--x {
264
+ overflow-x: auto;
265
+ overflow-y: hidden;
266
+ }
267
+
268
+ @mixin overflow--y {
269
+ overflow-x: hidden;
270
+ overflow-y: auto;
271
+ }
272
+
273
+ @mixin overflow--xy {
274
+ overflow: auto;
275
+ }
276
+
277
+ // UI
278
+
279
+ @mixin body {
280
+ font-family: var(--tide-booking-font-body);
281
+ font-size: var(--tide-booking-font-size-body);
282
+ line-height: var(--tide-booking-line-height-body);
283
+ color: var(--tide-booking-gray-dark);
284
+ -webkit-font-smoothing: antialiased;
285
+ -moz-osx-font-smoothing: grayscale;
286
+
287
+ @include media-lg {
288
+ font-size: var(--tide-booking-font-size-body-lg);
289
+ }
290
+
291
+ &.has-overlay,
292
+ &.has-itinerary-schedule-active {
293
+ overflow: hidden;
294
+ }
295
+ }
296
+
297
+ @mixin input {
298
+ min-height: var(--tide-booking-input-height);
299
+ padding: 0 15px;
300
+ border: var(--tide-booking-input-border);
301
+ border-radius: var(--tide-booking-input-border-radius);
302
+ font-family: var(--tide-booking-font-body);
303
+ //font-size: 1.6rem;
304
+ font-size: var(--tide-booking-font-size-body);
305
+ font-weight: 400;
306
+ outline: none;
307
+ color: var(--tide-booking-input-color);
308
+ background: var(--tide-booking-input-background);
309
+
310
+ @include media-lg {
311
+ font-size: var(--tide-booking-font-size-body-lg);
312
+ min-height: var(--tide-booking-input-height-lg);
313
+ }
314
+
315
+ &:hover {
316
+ border: var(--tide-booking-input-border-hover);
317
+ }
318
+
319
+ &:focus {
320
+ border: var(--tide-booking-input-border-focus);
321
+ }
322
+
323
+ &:hover,
324
+ &:focus,
325
+ &:focus-within,
326
+ &:active {
327
+ outline: none;
328
+ }
329
+ }
330
+
331
+ @mixin textarea {
332
+ min-height: 250px;
333
+ max-height: 60vh;
334
+ padding: 12px 15px;
335
+ font-family: var(--tide-booking-font-body);
336
+ //font-size: 1.6rem
337
+ font-size: var(--input-font-size--mobile);
338
+ border: var(--tide-booking-input-border);
339
+ border-radius: var(--tide-booking-input-border-radius);
340
+ color: var(--tide-booking-input-color);
341
+ background: var(--tide-booking-input-background);
342
+ resize: vertical;
343
+ outline: none;
344
+
345
+ @include media-xs {
346
+ //font-size: 1.8rem;
347
+ font-size: var(--input-font-size--desktop);
348
+ }
349
+
350
+ &:hover {
351
+ border: var(--tide-booking-input-border-hover);
352
+ }
353
+
354
+ &:focus {
355
+ border: var(--tide-booking-input-border-focus);
356
+ }
357
+
358
+ &:focus,
359
+ &:active {
360
+ border: var(--tide-booking-input-border-focus);
361
+ }
362
+ }
363
+
364
+ @mixin button {
365
+ cursor: pointer;
366
+ outline: none;
367
+
368
+ &:hover,
369
+ &:focus,
370
+ &:active {
371
+ outline: none;
372
+ }
373
+ }
374
+
375
+ @mixin strong {
376
+ font-weight: 400;
377
+ color: var(--tide-booking-black);
378
+ }
379
+
380
+ @mixin small {
381
+ font-size: var(--tide-booking-small-font-size--mobile);
382
+
383
+ @include media-xs {
384
+ font-size: var(--tide-booking-small-font-size--desktop);
385
+ }
386
+ }
387
+
388
+ @mixin border-radius {
389
+ border-radius: 5px;
390
+ }
391
+
392
+ @mixin lineclamp($lineclamp-amount: 1) {
393
+ display: block;
394
+ display: -webkit-box;
395
+ -webkit-line-clamp: $lineclamp-amount;
396
+ overflow: hidden;
397
+ text-overflow: ellipsis;
398
+ -webkit-box-orient: vertical;
399
+ /* autoprefixer: off */
400
+ }
401
+
402
+ @mixin placeholder {
403
+ font-style: var(--tide-booking-form-input-placeholder-font-style);
404
+ color: var(--tide-booking-form-input-placeholder-color);
405
+ }
406
+
407
+ @mixin hover-to-color {
408
+ &:hover {
409
+ color: var(--tide-booking-black);
410
+ }
411
+ }
412
+
413
+ @mixin focus-to-color {
414
+ &:focus,
415
+ &:active {
416
+ color: var(--tide-booking-black);
417
+ }
418
+ }
419
+
420
+ // TYPOGRAPHY
421
+ @mixin heading {
422
+ margin: 0;
423
+ display: inline-flex;
424
+ flex-flow: row wrap;
425
+ font-family: var(--tide-booking-font-heading);
426
+ font-weight: normal;
427
+ line-height: 1.35;
428
+ word-break: break-word;
429
+ color: var(--tide-booking-heading-color);
430
+
431
+ &:empty {
432
+ display: none;
433
+ }
434
+
435
+ em {
436
+ width: 100%;
437
+ font-family: var(--tide-booking-font-handwritten);
438
+ font-style: normal;
439
+ }
440
+ }
441
+
442
+ @mixin h1 {
443
+ font-size: var(--tide-booking-h1);
444
+
445
+ @include media-sm {
446
+ font-size: var(--tide-booking-h1-sm);
447
+ }
448
+
449
+ @include media-xl {
450
+ font-size: var(--tide-booking-h1-xl);
451
+ }
452
+ }
453
+
454
+ @mixin h2 {
455
+ font-size: var(--tide-booking-h2);
456
+
457
+ @include media-sm {
458
+ font-size: var(--tide-booking-h2-sm);
459
+ }
460
+
461
+ @include media-xl {
462
+ font-size: var(--tide-booking-h2-xl);
463
+ }
464
+ }
465
+
466
+ @mixin h3 {
467
+ font-size: var(--tide-booking-h3);
468
+
469
+ @include media-sm {
470
+ font-size: var(--tide-booking-h3-sm);
471
+ }
472
+
473
+ @include media-xl {
474
+ font-size: var(--tide-booking-h3-xl);
475
+ }
476
+ }
477
+
478
+ @mixin h4 {
479
+ font-size: var(--tide-booking-h4);
480
+
481
+ @include media-sm {
482
+ font-size: var(--tide-booking-h4-sm);
483
+ }
484
+
485
+ @include media-xl {
486
+ font-size: var(--tide-booking-h4-xl);
487
+ }
488
+ }
489
+
490
+ @mixin h5 {
491
+ font-size: var(--tide-booking-h5);
492
+
493
+ @include media-xl {
494
+ font-size: var(--tide-booking-h5-xl);
495
+ }
496
+ }
497
+
498
+ @mixin h6 {
499
+ font-size: var(--tide-booking-h6);
500
+
501
+ @include media-md {
502
+ font-size: var(--tide-booking-h6-md);
503
+ }
504
+ }
505
+
506
+ @mixin a {
507
+ color: var(--tide-booking-a-color);
508
+ cursor: pointer;
509
+ outline: none;
510
+ text-decoration: var(--tide-booking-a-text-decoration);
511
+ @extend %transition-easing;
512
+
513
+ &:hover,
514
+ &:focus,
515
+ &:active {
516
+ outline: none;
517
+ }
518
+
519
+ &:hover {
520
+ color: var(--tide-booking-a-color-hover);
521
+ text-decoration: var(--tide-booking-a-text-decoration-hover);
522
+ }
523
+
524
+ &:focus,
525
+ &:active {
526
+ color: var(--tide-booking-a-color-focus);
527
+ text-decoration: var(--tide-booking-a-text-decoration-focus);
528
+ }
529
+ }
530
+
531
+ // ANIMATIONS
532
+ @mixin transitionEasing($duration: 0.35s) {
533
+ transition-duration: $duration;
534
+ transition-property: width, height, transform, border, fill, color, background, box-shadow, opacity;
535
+ transition-timing-function: ease-out;
536
+ }
537
+
538
+ // INTERACTIONS
539
+ @mixin hoverToColor() {
540
+ &:hover {
541
+ opacity: 1;
542
+ outline: none;
543
+ fill: var(--tide-booking-color-primary);
544
+ color: var(--tide-booking-color-primary);
545
+ background-color: var(--tide-booking-transparent);
546
+ }
547
+ }
548
+
549
+ @mixin activeToColor() {
550
+ &:active {
551
+ opacity: 1;
552
+ outline: none;
553
+ fill: var(--tide-booking-color-primary-dark);
554
+ color: var(--tide-booking-color-primary-dark);
555
+ background-color: var(--tide-booking-transparent);
556
+ }
557
+ }
558
+
559
+ @mixin slideDown($duration: 0.35s) {
560
+ @keyframes in {
561
+ 0% {
562
+ transform: translate3D(0, -100%, 0);
563
+ }
564
+
565
+ 100% {
566
+ transform: translate3D(0, 0, 0);
567
+ }
568
+ }
569
+
570
+ @keyframes out {
571
+ 0% {
572
+ transform: translate3D(0, 0, 0);
573
+ }
574
+
575
+ 100% {
576
+ transform: translate3D(0, -100%, 0);
577
+ }
578
+ }
579
+ }