@penskemediacorp/larva-css 1.5.0-alpha.0 → 1.5.0

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 (108) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +193 -37
  3. package/__tests__/fixtures/expected.js +29 -0
  4. package/__tests__/lib/generators.test.js +11 -0
  5. package/browser-test-setup.js +26 -0
  6. package/build/css/algorithms.common.async.css +4 -0
  7. package/build/css/algorithms.common.inline.css +21 -0
  8. package/build/css/generic.common.inline.css +4 -0
  9. package/build/css/js.common.async.css +3 -0
  10. package/build/css/js.common.inline.css +6 -0
  11. package/build/css/utilities.common.async.css +8 -0
  12. package/build/css/utilities.common.inline.css +27 -0
  13. package/gulpfile.js +123 -0
  14. package/lib/generators.js +93 -0
  15. package/package.json +14 -15
  16. package/src/01-generic/elements.common.inline.scss +37 -1
  17. package/src/01-generic/forms.common.inline.scss +10 -0
  18. package/src/01-generic/side-skins.common.inline.scss +10 -0
  19. package/src/01-generic/typography.common.inline.scss +24 -13
  20. package/src/02-algorithms/README.md +65 -0
  21. package/src/02-algorithms/a-buy-now/a-buy-now.common.inline.scss +112 -0
  22. package/src/02-algorithms/a-carousel-grid/a-carousel-grid.common.inline.scss +66 -0
  23. package/src/02-algorithms/a-children-border/a-children-border.common.inline.scss +43 -0
  24. package/src/02-algorithms/a-children-link-color/a-children-link-color.common.inline.scss +15 -0
  25. package/src/02-algorithms/a-children-link-decoration/a-children-link-decoration.common.inline.scss +13 -0
  26. package/src/02-algorithms/a-counter/a-counter.common.inline.scss +26 -0
  27. package/src/02-algorithms/a-crop/README.md +17 -13
  28. package/src/02-algorithms/a-crop/a-crop.common.inline.scss +97 -12
  29. package/src/02-algorithms/a-crop/a-crop.html +2 -2
  30. package/src/02-algorithms/a-floated/a-floated.common.inline.scss +32 -0
  31. package/src/02-algorithms/a-font/a-font.common.inline.scss +3 -0
  32. package/src/02-algorithms/a-glue/a-glue.common.inline.scss +63 -6
  33. package/src/02-algorithms/a-glue/a-glue.html +3 -3
  34. package/src/02-algorithms/a-grid/README.md +141 -14
  35. package/src/02-algorithms/a-grid/a-grid.common.inline.scss +58 -6
  36. package/src/02-algorithms/a-grid/a-grid.html +4 -4
  37. package/src/02-algorithms/a-hidden/a-hidden.common.inline.scss +43 -0
  38. package/src/02-algorithms/a-hover-dropup/a-hover-dropup.common.async.scss +9 -8
  39. package/src/02-algorithms/a-hover-dropup/a-hover-dropup.html +3 -3
  40. package/src/02-algorithms/a-hover-effect/a-hover-effect.common.async.scss +25 -0
  41. package/src/02-algorithms/a-hover-effect/a-hover-effect.html +16 -0
  42. package/src/02-algorithms/a-icon/a-icon.common.async.scss +36 -0
  43. package/src/02-algorithms/a-icon/a-icon.common.inline.scss +56 -70
  44. package/src/02-algorithms/a-screen-reader-only/a-screen-reader-only.common.inline.scss +30 -0
  45. package/src/02-algorithms/a-scrollable-grid/a-scrollable-grid.common.inline.scss +52 -0
  46. package/src/02-algorithms/a-show-on-hover/a-show-on-hover.common.inline.scss +16 -0
  47. package/src/02-algorithms/a-space-children/a-space-children.common.inline.scss +88 -17
  48. package/src/02-algorithms/a-truncate-ellipsis/a-truncate-ellipsis.common.async.scss +71 -0
  49. package/src/02-algorithms/a-unstyle-button/a-unstyle-button.common.inline.scss +2 -3
  50. package/src/02-algorithms/a-unstyle-link/a-unstyle-link.common.inline.scss +7 -0
  51. package/src/02-algorithms/a-unstyle-list/a-unstyle-list.common.inline.scss +1 -1
  52. package/src/02-algorithms/a-wrapper/a-wrapper.common.inline.scss +14 -2
  53. package/src/03-utilities/u-background-color.common.async.scss +15 -0
  54. package/src/03-utilities/u-background-color.common.inline.scss +37 -0
  55. package/src/03-utilities/u-border-color.common.async.scss +38 -6
  56. package/src/03-utilities/u-border-radius.common.async.scss +27 -0
  57. package/src/03-utilities/u-border.common.inline.scss +216 -3
  58. package/src/03-utilities/u-box-alignment.common.inline.scss +64 -4
  59. package/src/03-utilities/u-box-shadow.common.async.scss +37 -3
  60. package/src/03-utilities/u-color.common.async.scss +20 -15
  61. package/src/03-utilities/u-color.common.inline.scss +39 -0
  62. package/src/03-utilities/u-cursor.common.async.scss +1 -1
  63. package/src/03-utilities/u-display.common.inline.scss +86 -3
  64. package/src/03-utilities/u-filter.common.async.scss +5 -0
  65. package/src/03-utilities/u-flex.common.inline.scss +128 -9
  66. package/src/03-utilities/u-font-family.common.inline.scss +41 -16
  67. package/src/03-utilities/u-font-size.common.inline.scss +58 -5
  68. package/src/03-utilities/u-font-style.common.inline.scss +9 -0
  69. package/src/03-utilities/u-font-weight.common.inline.scss +50 -12
  70. package/src/03-utilities/u-height.common.inline.scss +41 -5
  71. package/src/03-utilities/u-letter-spacing.common.inline.scss +11 -0
  72. package/src/03-utilities/u-line-height.common.inline.scss +49 -13
  73. package/src/03-utilities/u-list-style.common.async.scss +3 -0
  74. package/src/03-utilities/u-margin.common.inline.scss +186 -46
  75. package/src/03-utilities/u-max-width.common.inline.scss +25 -0
  76. package/src/03-utilities/u-opacity.common.inline.scss +3 -0
  77. package/src/03-utilities/u-order.common.inline.scss +23 -2
  78. package/src/03-utilities/u-overflow.common.inline.scss +15 -0
  79. package/src/03-utilities/u-padding.common.inline.scss +157 -52
  80. package/src/03-utilities/u-position.common.inline.scss +3 -0
  81. package/src/03-utilities/u-text-align.common.inline.scss +32 -3
  82. package/src/03-utilities/u-text-decoration.common.inline.scss +11 -0
  83. package/src/03-utilities/u-text-transform.common.inline.scss +14 -2
  84. package/src/03-utilities/u-transform.common.inline.scss +5 -0
  85. package/src/03-utilities/u-vertical-align.common.inline.scss +7 -0
  86. package/src/03-utilities/u-whitespace.common.inline.scss +1 -1
  87. package/src/03-utilities/u-width.common.inline.scss +191 -7
  88. package/src/04-js/README.md +5 -0
  89. package/src/04-js/js-Collapsible.common.inline.scss +15 -0
  90. package/src/04-js/js-ExpandableSearch.common.async.scss +33 -0
  91. package/src/04-js/js-Flickity.common.async.scss +91 -0
  92. package/src/04-js/js-Header.common.inline.scss +73 -0
  93. package/src/04-js/js-MegaMenu.common.inline.scss +50 -0
  94. package/src/04-js/js-MobileHeightToggle.common.inline.scss +7 -5
  95. package/src/04-js/js-PopOver.common.async.scss +13 -0
  96. package/src/04-js/js-Tooltip.common.inline.scss +17 -0
  97. package/src/04-js/js-VideoShowcase.common.inline.scss +33 -0
  98. package/src/04-js/partials/expandable-search.scss +202 -0
  99. package/src/04-js/partials/flickity.scss +149 -0
  100. package/src/_generated/_a-font.scss +1027 -0
  101. package/src/larva-ui/prism.scss +127 -0
  102. package/src/setup.scss +7 -0
  103. package/stylelint.config.js +45 -0
  104. package/src/01-generic/config.common.inline.scss +0 -20
  105. package/src/02-algorithms/a-glue/index.js +0 -1
  106. package/src/02-algorithms/a-icon/a-icon.html +0 -20
  107. package/src/02-algorithms/a-unstyle-link/a-unstyle-link.common.async.scss +0 -5
  108. package/src/03-utilities/u-background.common.async.scss +0 -14
@@ -1,11 +1,40 @@
1
1
  @import '@penskemediacorp/larva-scss/dist/tools';
2
2
 
3
- .pmc-u-text-align-center {
3
+ .lrv-u-text-align-right {
4
+ text-align: right;
5
+ }
6
+
7
+ .lrv-u-text-align-left {
8
+ text-align: left;
9
+ }
10
+
11
+ .lrv-u-text-align-center {
4
12
  text-align: center;
5
13
  }
6
14
 
7
- .pmc-u-text-align-center\@mobile-max {
15
+ @include pmc-breakpoint( desktop ) {
16
+ .lrv-u-text-align-right\@desktop {
17
+ text-align: right;
18
+ }
19
+
20
+ .lrv-u-text-align-left\@desktop {
21
+ text-align: left;
22
+ }
23
+
24
+ .lrv-u-text-align-center\@desktop {
25
+ text-align: center;
26
+ }
27
+ }
28
+
29
+ // Legacy
30
+ .lrv-u-text-align-center\@mobile-max {
8
31
  @include pmc-breakpoint( mobile-max ) {
9
32
  text-align: center;
10
33
  }
11
- }
34
+ }
35
+
36
+ .lrv-u-text-align-center\@tablet {
37
+ @include pmc-breakpoint( tablet ) {
38
+ text-align: center;
39
+ }
40
+ }
@@ -0,0 +1,11 @@
1
+ @import '@penskemediacorp/larva-scss/dist/tools';
2
+
3
+ .lrv-u-text-decoration-underline {
4
+ text-decoration: underline;
5
+ text-decoration-color: currentColor;
6
+ }
7
+
8
+ .lrv-u-text-decoration-underline\:hover:hover {
9
+ text-decoration: underline;
10
+ text-decoration-color: currentColor;
11
+ }
@@ -1,3 +1,15 @@
1
- .pmc-u-text-transform-uppercase {
1
+ .lrv-u-text-transform-uppercase {
2
2
  text-transform: uppercase;
3
- }
3
+ }
4
+
5
+ .lrv-u-text-transform-initial {
6
+ text-transform: initial;
7
+ }
8
+
9
+ .lrv-u-text-transform-lowercase {
10
+ text-transform: lowercase;
11
+ }
12
+
13
+ .lrv-u-text-transform-capitalize {
14
+ text-transform: capitalize;
15
+ }
@@ -0,0 +1,5 @@
1
+ @import 'setup';
2
+
3
+ .lrv-u-transform-translateY-n50p {
4
+ transform: translateY(-50%);
5
+ }
@@ -0,0 +1,7 @@
1
+ @import 'setup';
2
+
3
+ .lrv-u-vertical-align-middle\@mobile-max {
4
+ @include pmc-breakpoint(mobile-max) {
5
+ vertical-align: middle;
6
+ }
7
+ }
@@ -1,3 +1,3 @@
1
- .pmc-u-whitespace-nowrap {
1
+ .lrv-u-whitespace-nowrap {
2
2
  white-space: nowrap;
3
3
  }
@@ -1,16 +1,200 @@
1
- @import '@penskemediacorp/larva-scss/dist/tools';
1
+ @import 'setup';
2
2
 
3
- .pmc-u-width-100p {
4
- width: 100%;
3
+ $widths_map: (
4
+ 'width-auto': auto,
5
+ 'width-16': pmc-rem(16),
6
+ 'width-24': pmc-rem(24),
7
+ 'width-30': pmc-rem(30),
8
+ 'width-50': pmc-rem(50),
9
+ 'width-100': pmc-rem(100),
10
+ 'width-150': pmc-rem(150),
11
+ 'width-185': pmc-rem(185),
12
+ 'width-165': pmc-rem(165),
13
+ 'width-200': pmc-rem(200),
14
+ 'width-215': pmc-rem(215),
15
+ 'width-245': pmc-rem(245),
16
+ 'width-300': pmc-rem(300),
17
+ 'width-20p': 20%,
18
+ 'width-22p': 22%,
19
+ 'width-30p': 30%,
20
+ 'width-50p': 50%,
21
+ 'width-70p': 70%,
22
+ 'width-75p': 75%,
23
+ 'width-100p': 100%,
24
+ );
25
+
26
+ @include basic-utility-generator( 'width', (
27
+ width-auto,
28
+ width-16,
29
+ width-24,
30
+ width-30,
31
+ width-50,
32
+ width-100,
33
+ width-150,
34
+ width-185,
35
+ width-165,
36
+ width-200,
37
+ width-215,
38
+ width-245,
39
+ width-300,
40
+ width-20p,
41
+ width-22p,
42
+ width-30p,
43
+ width-50p,
44
+ width-70p,
45
+ width-75p,
46
+ width-100p,
47
+ ), $widths_map, $NAMESPACE: 'lrv-' );
48
+
49
+ .lrv-u-width-35\@mobile-max {
50
+ @include pmc-breakpoint( mobile-max ) {
51
+ width: pmc-rem(35);
52
+ }
5
53
  }
6
54
 
7
- .pmc-u-width-100p\@mobile-max {
55
+ .lrv-u-width-100\@mobile-max {
56
+ @include pmc-breakpoint( mobile-max ) {
57
+ width: pmc-rem(100);
58
+ }
59
+ }
8
60
 
61
+ .lrv-u-width-100p\@mobile-max {
9
62
  @include pmc-breakpoint( mobile-max ) {
10
63
  width: 100%;
11
64
  }
12
65
  }
13
66
 
14
- .pmc-u-max-width-150 {
15
- max-width: 9.375rem;
16
- }
67
+ .lrv-u-width-150\@desktop {
68
+ @include pmc-breakpoint( desktop ) {
69
+ width: pmc-rem(150);
70
+ }
71
+ }
72
+
73
+ .lrv-u-width-50p\@desktop {
74
+ @include pmc-breakpoint( desktop ) {
75
+ width: 50%;
76
+ }
77
+ }
78
+
79
+ .lrv-u-width-75p\@desktop {
80
+ @include pmc-breakpoint( desktop ) {
81
+ width: 75%;
82
+ }
83
+ }
84
+
85
+ .lrv-u-width-100\@desktop-xl {
86
+ @include pmc-breakpoint( desktop-xl ) {
87
+ width: pmc-rem(100);
88
+ }
89
+ }
90
+
91
+ .lrv-u-width-154\@desktop-xl {
92
+
93
+ @include pmc-breakpoint(desktop-xl) {
94
+ width: pmc-rem(154);
95
+ }
96
+ }
97
+
98
+ .lrv-u-width-177\@tablet-and-desktop-only {
99
+
100
+ @media only screen and (max-width: $screen-desktop-xl) and (min-width: $screen-tablet) {
101
+ width: pmc-rem(177);
102
+ }
103
+ }
104
+
105
+ .lrv-u-width-36p\@desktop-xl {
106
+
107
+ @include pmc-breakpoint(desktop-xl) {
108
+ width: 36%;
109
+ }
110
+ }
111
+
112
+ .lrv-u-width-64p\@desktop-xl {
113
+
114
+ @include pmc-breakpoint(desktop-xl) {
115
+ width: 64%;
116
+ }
117
+ }
118
+
119
+ .lrv-u-width-27p\@tablet {
120
+
121
+ @include pmc-breakpoint(tablet) {
122
+ width: 27%;
123
+ }
124
+ }
125
+
126
+ .lrv-u-width-23p\@tablet {
127
+
128
+ @include pmc-breakpoint(tablet) {
129
+ width: 23%;
130
+ }
131
+ }
132
+
133
+ .lrv-u-width-52p\@tablet {
134
+
135
+ @include pmc-breakpoint(tablet) {
136
+ width: 52%;
137
+ }
138
+ }
139
+
140
+ .lrv-u-width-50p\@mobile-max {
141
+ @include pmc-breakpoint(mobile-max) {
142
+ width: 50%;
143
+ }
144
+ }
145
+
146
+ .lrv-u-width-33p\@mobile-max {
147
+
148
+ @include pmc-breakpoint(mobile-max) {
149
+ width: 33.33%;
150
+ }
151
+ }
152
+
153
+ .lrv-u-width-55p\@tablet {
154
+ @include pmc-breakpoint(tablet) {
155
+ width: 55%;
156
+ }
157
+ }
158
+
159
+ .lrv-u-width-35p\@tablet {
160
+
161
+ @include pmc-breakpoint(tablet) {
162
+ width: 35%;
163
+ }
164
+ }
165
+
166
+ .lrv-u-max-width-30p\@mobile-max {
167
+ @include pmc-breakpoint(mobile-max) {
168
+ max-width: 30%;
169
+ }
170
+ }
171
+
172
+ .lrv-u-width-28\@mobile-max {
173
+ @include pmc-breakpoint(mobile-max) {
174
+ width: pmc-rem(28);
175
+ }
176
+ }
177
+
178
+ .lrv-u-width-22p\@mobile-max {
179
+ @include pmc-breakpoint(mobile-max) {
180
+ width: 22%;
181
+ }
182
+ }
183
+
184
+ .lrv-u-width-56p\@mobile-max {
185
+ @include pmc-breakpoint(mobile-max) {
186
+ width: 56%;
187
+ }
188
+ }
189
+
190
+ .lrv-u-width-135\@mobile-max {
191
+ @include pmc-breakpoint(mobile-max) {
192
+ width: pmc-rem(135);
193
+ }
194
+ }
195
+
196
+ .lrv-u-width-100p\@tablet {
197
+ @include pmc-breakpoint(tablet) {
198
+ width: 100%;
199
+ }
200
+ }
@@ -0,0 +1,5 @@
1
+ ## CSS related to JS functionality
2
+
3
+ If a file here includes a .chunk.inline|async.scss extension, then it is built and distributed as CSS from larva-css. If it does not include that extension, it must be included and built in the consuming project.
4
+
5
+ In the future, consider moving this CSS to the larva-js package.
@@ -0,0 +1,15 @@
1
+ @import 'setup';
2
+
3
+ [data-collapsible].is-expanded [data-collapsible-toggle]:not([data-collapsible-toggle='always-show']) { // stylelint-disable-line selector-max-specificity
4
+ display: none;
5
+ }
6
+
7
+ [data-collapsible]:not(.is-expanded) [data-collapsible-panel] {
8
+ display: none;
9
+ }
10
+
11
+ [data-collapsible]:not(.is-expanded) [data-collapsible-panel][data-collapsible-breakpoint='mobile-only'] { // stylelint-disable-line selector-max-specificity
12
+ @include pmc-breakpoint( desktop ) {
13
+ display: block;
14
+ }
15
+ }
@@ -0,0 +1,33 @@
1
+ @import 'setup';
2
+ @import 'partials/expandable-search';
3
+
4
+ .is-ExpandableSearch-open {
5
+ background-color: var( --color-brand-primary );
6
+ color: var( --color-white );
7
+ position: relative;
8
+
9
+ svg {
10
+ opacity: 0;
11
+ }
12
+
13
+ &::before,
14
+ &::after {
15
+ content: '';
16
+ position: absolute;
17
+ top: calc( 50% - #{pmc-rem(1)} );
18
+ left: calc( 50% - #{pmc-rem(10)} );
19
+ width: pmc-rem(20);
20
+ height: pmc-rem(2);
21
+ background-color: white;
22
+ transition: transform 600ms ease;
23
+ transform: rotateZ( 45deg );
24
+ }
25
+
26
+ &::after {
27
+ transform: rotateZ( -45deg );
28
+ }
29
+
30
+ &:hover {
31
+ color: var( --color-white );
32
+ }
33
+ }
@@ -0,0 +1,91 @@
1
+ @import 'setup';
2
+ @import 'partials/flickity';
3
+
4
+ .js-Flickity--100p .js-Flickity-cell {
5
+ width: 100%;
6
+ }
7
+
8
+ // TODO: Update class name, enable js-Flickity on profile page as well.
9
+ .js-Flickity--profile .js-Flickity-cell {
10
+ width: 75%;
11
+
12
+ @include pmc-breakpoint( desktop ) {
13
+ width: 50%;
14
+ }
15
+
16
+ @include pmc-breakpoint( desktop-xl ) {
17
+ width: 33.3%;
18
+ }
19
+ }
20
+
21
+ // Flickity sizing in descending order.
22
+ // Flickity-thirds is actually 2/3.
23
+ .js-Flickity--thirds .js-Flickity-cell {
24
+ width: 66%;
25
+ overflow: visible;
26
+ }
27
+
28
+ .js-Flickity--fifths .js-Flickity-cell {
29
+ width: 35%;
30
+
31
+ @include pmc-breakpoint( desktop ) {
32
+ width: 20%;
33
+ }
34
+ }
35
+
36
+ .js-Flickity--one-thirds .js-Flickity-cell {
37
+ width: 33%;
38
+ overflow: visible;
39
+ }
40
+
41
+ .js-Flickity--fourths .js-Flickity-cell {
42
+ width: 25%;
43
+ overflow: visible;
44
+ }
45
+
46
+ .js-Flickity--enlarge-selected .js-Flickity-cell {
47
+ transform: scale(0.8);
48
+ transition: $transition-transform transform;
49
+ transform-origin: center center;
50
+ }
51
+
52
+ .js-Flickity--enlarge-selected .js-Flickity-cell.is-selected { // stylelint-disable-line selector-max-class
53
+ transform: scale(1);
54
+ z-index: 9;
55
+ transform-origin: center center;
56
+ }
57
+
58
+
59
+ .js-Flickity--nav-top-right {
60
+ --button-size: 0; // Hide arrows for mobile screen.
61
+
62
+ margin-top: var( --button-size );
63
+
64
+ @include pmc-breakpoint( tablet ) {
65
+ --button-size: #{pmc-rem(44)};
66
+ }
67
+ }
68
+
69
+ .js-Flickity--nav-top-right .flickity-prev-next-button {
70
+ top: calc( var( --button-size ) * -1 );
71
+ height: var( --button-size );
72
+ width: var( --button-size );
73
+ }
74
+
75
+ .js-Flickity--nav-top-right .flickity-prev-next-button.previous { // stylelint-disable-line selector-max-class
76
+ left: calc( 100% - ( var( --button-size ) * 2.5 ) );
77
+ }
78
+
79
+ .js-Flickity--bordered-buttons .flickity-button {
80
+ border: 1px solid map-get( $TOKENS-MAP, color-black );
81
+ }
82
+
83
+ .js-Flickity--bordered-buttons .flickity-icon {
84
+ fill: map-get( $TOKENS-MAP, color-black );
85
+ }
86
+
87
+ .js-Flickity--hide-nav\@mobile-max .flickity-button {
88
+ @include pmc-breakpoint( mobile-max ) {
89
+ display: none;
90
+ }
91
+ }
@@ -0,0 +1,73 @@
1
+ @import 'setup';
2
+
3
+ // Functional styles for the sticky header. Visual styles are added with utilities
4
+ $sticky-transform-y: 3.125rem;
5
+ $mobile-header-height: #{var( --sticky-nav-height )};
6
+
7
+ // Package the base sticky positioning styles for use in mulitple places.
8
+ @mixin _sticky-header-positioning {
9
+ position: fixed;
10
+ width: 100%;
11
+ z-index: $z-index-sticky-header;
12
+ transform: translateY(0);
13
+ top: var(--login-bar-height, 0);
14
+ }
15
+
16
+ @keyframes slideDown {
17
+ 0% {
18
+ transform: translateY(-100%);
19
+ }
20
+
21
+ 100% {
22
+ transform: translateY(0);
23
+ }
24
+ }
25
+
26
+ // Needs to slide up still - problem is that it is display: none'd and that would have to have a delay before being applied
27
+ .js-sticky-header-slidedown {
28
+ @include pmc-breakpoint( desktop ) {
29
+ transform: translateY(-100%);
30
+ }
31
+ }
32
+
33
+ .is-sticky .js-sticky-header-slidedown {
34
+ @include pmc-breakpoint( desktop ) {
35
+ animation-name: slideDown;
36
+ animation-duration: 250ms;
37
+ animation-fill-mode: forwards;
38
+ transform: translateY(0);
39
+ }
40
+ }
41
+
42
+ // The data-header-sticky wrapper is not hooked up to JS, but provides the CSS transform for
43
+ // hiding/showing the sticky header.
44
+ .js-Header-contents {
45
+ position: relative;
46
+ transition: transform $transition-transform;
47
+ will-change: transform;
48
+
49
+ }
50
+
51
+ .has-side-skins .js-Header-contents {
52
+ max-width: $screen-desktop;
53
+ }
54
+
55
+ .is-sticky .js-Header-contents {
56
+ @include _sticky-header-positioning;
57
+ }
58
+
59
+ .js-hide-when-sticky {
60
+
61
+ .is-sticky & {
62
+ display: none;
63
+ }
64
+ }
65
+
66
+ .js-show-when-sticky {
67
+
68
+ display: none;
69
+
70
+ .is-sticky & {
71
+ display: block;
72
+ }
73
+ }
@@ -0,0 +1,50 @@
1
+ @import 'setup';
2
+
3
+ .js-MegaMenu {
4
+ --mega-menu-top-offset: var( --login-bar-height );
5
+
6
+ // Hidden state.
7
+ opacity: 0;
8
+ visibility: hidden;
9
+ pointer-events: none;
10
+ transform: translateY( calc( -100% - var( --mega-menu-top-offset ) ) );
11
+ // End hidden.
12
+
13
+ // Animation.
14
+ transition: opacity $transition-fade,
15
+ transform $transition-transform,
16
+ visibility $transition-transform;
17
+
18
+ // Adjust offset according to breakpoint and presence of menus.
19
+ @include pmc-breakpoint( desktop-max ) {
20
+ --mega-menu-top-offset: calc( var( --login-bar-height ) + var( --sticky-nav-height ) );
21
+ }
22
+
23
+ }
24
+
25
+ .is-mega-open body {
26
+ overflow: hidden;
27
+ }
28
+
29
+ // Default styling for mega menu hidden state needs to be part of critical CSS
30
+ // and is added in patterns/generic/js-interface.scss
31
+
32
+ .is-mega-open .js-MegaMenu {
33
+ // Toggle properties from hidden state.
34
+ opacity: 1;
35
+ visibility: visible;
36
+ transform: translateY(0);
37
+ pointer-events: initial;
38
+ }
39
+
40
+ // Move these
41
+ .mega-menu__parent-list-item {
42
+ background-color: map-get( $TOKENS-MAP, black );
43
+ transition: background-color ease $transition-duration-300;
44
+ }
45
+
46
+ .is-expanded.mega-menu__parent-list-item {
47
+ @include pmc-breakpoint( desktop-max ) {
48
+ background-color: map-get( $TOKENS-MAP, brand-red );
49
+ }
50
+ }
@@ -1,17 +1,19 @@
1
1
  @import '@penskemediacorp/larva-scss/dist/tools';
2
2
 
3
3
  @include pmc-breakpoint( mobile-max ) {
4
- .pmc-js-MobileHeightToggle .pmc-js-MobileHeightToggle-target {
4
+
5
+ .lrv-js-MobileHeightToggle .lrv-js-MobileHeightToggle-target {
5
6
  height: 0;
6
7
  visibility: hidden;
8
+ overflow: hidden;
7
9
  }
8
-
9
- .pmc-js-MobileHeightToggle.is-expanded .pmc-js-MobileHeightToggle-target {
10
+
11
+ .lrv-js-MobileHeightToggle.is-expanded .lrv-js-MobileHeightToggle-target { // stylelint-disable-line selector-max-class
10
12
  height: auto;
11
13
  visibility: visible;
12
14
  }
13
15
 
14
- .pmc-js-MobileHeightToggle.is-expanded .a-icon-arrow-down.a-icon-after::after { // stylelint-disable-line selector-max-specificity
16
+ .lrv-js-MobileHeightToggle.is-expanded .lrv-a-icon-arrow-down.lrv-a-icon-after::after { // stylelint-disable-line selector-max-specificity, selector-max-class
15
17
  --a-icon-transform: rotate(180deg);
16
18
  }
17
- }
19
+ }
@@ -0,0 +1,13 @@
1
+ .js-PopOver-target {
2
+ opacity: 0;
3
+ visibility: hidden;
4
+ position: absolute;
5
+ top: 100%;
6
+ left: 0;
7
+ transition: opacity 300ms cubic-bezier(0.19, 1, 0.22, 1);
8
+ }
9
+
10
+ .js-PopOver-is-opened {
11
+ opacity: 1;
12
+ visibility: visible;
13
+ }
@@ -0,0 +1,17 @@
1
+ .js-Tooltip {
2
+ opacity: 0;
3
+ visibility: hidden;
4
+ position: absolute;
5
+ top: 100%;
6
+ transition: opacity 0.3 cubic-bezier(0.19,1,0.22,1);
7
+ }
8
+
9
+ .is-Tooltip-open .js-Tooltip {
10
+ opacity: 1;
11
+ visibility: visible;
12
+ }
13
+
14
+ .is-Tooltip-open .lrv-a-icon-arrow-down {
15
+ --a-icon-transform: rotate(-180deg);
16
+ }
17
+
@@ -0,0 +1,33 @@
1
+ @import 'setup';
2
+
3
+ [data-video-showcase-active-text] {
4
+ border: 2px solid transparent;
5
+ }
6
+
7
+ // stylelint-disable selector-max-specificity
8
+ #jwplayerContainer,
9
+ [data-video-showcase-iframe] {
10
+ position: absolute;
11
+ width: 100%;
12
+ height: 100%;
13
+ }
14
+ // stylelint-enable selector-max-specificity
15
+
16
+ [data-video-showcase-trigger].is-playing [data-video-showcase-active-text] {
17
+ border-color: map-get( $TOKENS-MAP, color-brand-primary );
18
+
19
+ &::after {
20
+ content: attr(data-video-showcase-active-text);
21
+ position: absolute;
22
+ color: map-get( $TOKENS-MAP, color-white );
23
+ bottom: 0;
24
+ left: 0;
25
+ width: 100%;
26
+ text-align: center;
27
+ background-color: map-get( $TOKENS-MAP, background-color-brand-primary );
28
+ background-color: var( --background-color-brand-primary );
29
+ padding-top: $spacer-025;
30
+ padding-bottom: $spacer-025;
31
+ font-size: $font-size-14; // stylelint-disable-line property-blacklist
32
+ }
33
+ }