@shift72/core-template 0.6.0-alpha.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. package/.github/pull_request_template.md +47 -0
  2. package/.github/workflows/node.js.yml +1 -1
  3. package/CHANGELOG.md +35 -1
  4. package/kibble.json +2 -2
  5. package/package.json +1 -1
  6. package/site/ar_LB.all.json +41 -19
  7. package/site/ca_ES.all.json +33 -19
  8. package/site/da_DK.all.json +33 -19
  9. package/site/de_DE.all.json +33 -19
  10. package/site/el_EL.all.json +33 -19
  11. package/site/en_AU.all.json +17 -3
  12. package/site/es_ES.all.json +33 -19
  13. package/site/es_MX.all.json +30 -16
  14. package/site/et_ET.all.json +33 -19
  15. package/site/fi_FI.all.json +33 -19
  16. package/site/fr_FR.all.json +33 -19
  17. package/site/hr_HR.all.json +35 -19
  18. package/site/hu_HU.all.json +33 -19
  19. package/site/it_IT.all.json +33 -19
  20. package/site/ja_JP.all.json +31 -19
  21. package/site/lt_LT.all.json +37 -19
  22. package/site/nl_BE.all.json +32 -18
  23. package/site/no_NO.all.json +33 -19
  24. package/site/pl_PL.all.json +37 -19
  25. package/site/pt_BR.all.json +33 -19
  26. package/site/pt_PT.all.json +33 -19
  27. package/site/ru_RU.all.json +43 -25
  28. package/site/sr_SR.all.json +35 -19
  29. package/site/static/js/main.js +1 -1
  30. package/site/static/scripts/main.js.map +1 -1
  31. package/site/styles/_buttons.scss +32 -27
  32. package/site/styles/_can-be-watched-button.scss +0 -20
  33. package/site/styles/_carousel.scss +125 -307
  34. package/site/styles/_collections.scss +6 -11
  35. package/site/styles/_cta-buttons.scss +262 -0
  36. package/site/styles/_forms.scss +1 -2
  37. package/site/styles/_icons.scss +3 -1
  38. package/site/styles/_legacy.scss +1 -43
  39. package/site/styles/_meta-detail.scss +20 -194
  40. package/site/styles/_meta-item-tagline.scss +33 -0
  41. package/site/styles/_meta-item.scss +0 -4
  42. package/site/styles/_meta-sub-item.scss +116 -0
  43. package/site/styles/_mixins.scss +45 -0
  44. package/site/styles/_nav.scss +1 -1
  45. package/site/styles/_pages.scss +4 -13
  46. package/site/styles/_plans.scss +14 -0
  47. package/site/styles/_shift72.scss +4 -0
  48. package/site/styles/_variables.scss +2 -4
  49. package/site/styles/main.scss +2 -1
  50. package/site/templates/bundle/item.jet +2 -4
  51. package/site/templates/collection/carousel/carousel.jet +27 -0
  52. package/site/templates/collection/carousel/item/image.jet +5 -0
  53. package/site/templates/collection/carousel/item/synopsis.jet +5 -0
  54. package/site/templates/collection/carousel/item/tagline.jet +7 -0
  55. package/site/templates/collection/carousel/item/title.jet +3 -0
  56. package/site/templates/collection/carousel/item.jet +41 -0
  57. package/site/templates/collection/carousel/pagination.jet +9 -0
  58. package/site/templates/collection/page_collection.jet +2 -2
  59. package/site/templates/common/cta_buttons.jet +70 -0
  60. package/site/templates/common/social-media-buttons.jet +2 -2
  61. package/site/templates/film/item.jet +6 -16
  62. package/site/templates/items/sub_item.jet +22 -0
  63. package/site/templates/items/tagline.jet +2 -2
  64. package/site/templates/page/homepage.jet +2 -3
  65. package/site/templates/tv/detail.jet +10 -18
  66. package/site/tr_TR.all.json +33 -19
  67. package/site/uk_UA.all.json +37 -19
  68. package/site/zh_TW.all.json +31 -19
  69. package/site/styles/_homepage.scss +0 -3
  70. package/site/templates/bundle/buttons.jet +0 -6
  71. package/site/templates/bundle/extras.jet +0 -13
  72. package/site/templates/collection/carousel.jet +0 -27
  73. package/site/templates/collection/carousel_item.jet +0 -68
  74. package/site/templates/items/bonus_item.jet +0 -23
  75. package/site/templates/items/featured_item.jet +0 -61
  76. package/site/templates/tv/episode.jet +0 -21
@@ -108,40 +108,39 @@
108
108
  }
109
109
  }
110
110
 
111
- .s72-btn-play.s72-btn-trailer {
111
+ .s72-btn-trailer .s72-btn-play {
112
112
  background: transparent;
113
113
  border: 0 none;
114
+
114
115
  @include hover-focus {
115
116
  background: transparent;
116
117
 
117
- .s72-icon-play circle {
118
+ circle {
118
119
  fill: var(--primary);
119
120
  stroke: var(--primary);
120
121
  stroke-width: 3px;
121
122
  }
122
123
 
123
- .s72-icon-play path {
124
+ path {
124
125
  fill: #000;
125
126
  stroke: #000;
126
127
  }
127
128
  }
128
129
 
129
- &.s72-btn-trailer {
130
+ .verb {
130
131
  background: transparent;
131
- border: 0 none;
132
-
133
- @include media-breakpoint-up(md) {
134
- margin-right: 10px;
135
- }
132
+ color: var(--primary);
133
+ }
136
134
 
137
- .verb {
138
- background: transparent;
139
- color: var(--primary);
140
- }
135
+ circle {
136
+ fill: transparent;
137
+ stroke: var(--primary);
138
+ stroke-width: 3px;
141
139
  }
142
140
 
143
- .verb {
144
- color: $trailer-button-text-color;
141
+ path {
142
+ fill: var(--body-color);
143
+ stroke: var(--body-color);
145
144
  }
146
145
 
147
146
  .s72-btn-play-icon {
@@ -149,17 +148,6 @@
149
148
  height: 32px;
150
149
  margin-right: 0;
151
150
  width: 32px;
152
-
153
- circle {
154
- fill: transparent;
155
- stroke: var(--primary);
156
- stroke-width: 3px;
157
- }
158
-
159
- path {
160
- fill: var(--body-color);
161
- stroke: var(--body-color);
162
- }
163
151
  }
164
152
 
165
153
  .s72-btn-play-label {
@@ -181,7 +169,8 @@
181
169
  }
182
170
 
183
171
  .s72-btn-rent,
184
- .s72-btn-purchase {
172
+ .s72-btn-purchase,
173
+ .s72-btn-subscribe {
185
174
  background: $button-background;
186
175
  border: 3px solid $button-background;
187
176
  min-width: 140px;
@@ -279,3 +268,19 @@ s72-donate-button:not(:empty) {
279
268
  }
280
269
  }
281
270
  }
271
+
272
+ // sitewide we changed primary btn text to black, but these btns had no bg color, rendering text invisible
273
+ .s72-btn-show-saved-cards,
274
+ .s72-btn-submit-pin,
275
+ .s72-btn-reset-pin {
276
+ color: var(--link-color) !important;
277
+ }
278
+
279
+ // Empty relish components sometimes have structural CSS so hide them.
280
+ s72-play-button,
281
+ can-be-watched-button,
282
+ s72-userwishlist-button {
283
+ &:empty {
284
+ display: none;
285
+ }
286
+ }
@@ -22,26 +22,6 @@
22
22
  }
23
23
  }
24
24
 
25
- .meta-detail-content .meta-detail-buttons,
26
- .meta-item-buttons {
27
- align-items: center;
28
- display: flex;
29
- flex-direction: row;
30
- flex-wrap: wrap;
31
-
32
- .owned-custom-container {
33
- display: none;
34
-
35
- &.s72-show {
36
- display: block;
37
- }
38
- }
39
-
40
- .s72-btn-play {
41
- margin-right: 8px;
42
- }
43
- }
44
-
45
25
  /* stylelint-disable selector-max-compound-selectors */
46
26
  .s72-userwishlist-items .partial > a,
47
27
  .s72-userlibrary-items .partial > a,
@@ -1,73 +1,47 @@
1
- .carousel,
2
1
  s72-carousel {
3
- display: block;
4
- margin: 0 auto;
5
- position: relative;
6
- }
7
-
8
- .s72-carousel-slides {
9
- background: $carousel-bg-color;
10
- height: var(--carousel-height) !important;
11
- position: relative;
2
+ display: flex;
3
+ height: var(--carousel-height);
4
+ margin-bottom: 30px;
12
5
  width: 100%;
6
+
13
7
  @include media-breakpoint-up(sm) {
14
- height: var(--carousel-height-sm) !important;
15
- }
16
- @include media-breakpoint-up(md) {
17
- height: var(--carousel-height-md) !important;
8
+ height: var(--carousel-height-sm);
18
9
  }
19
10
 
20
- .carousel-item-link > s72-image {
21
- float: right;
22
- height: var(--carousel-height);
23
- max-width: 1600px;
24
- overflow: hidden;
25
- position: relative;
26
- width: 100%;
27
- @include media-breakpoint-up(sm) {
28
- height: var(--carousel-height-sm);
29
- }
30
- @include media-breakpoint-up(md) {
31
- height: var(--carousel-height-md);
32
- }
11
+ @include media-breakpoint-up(lg) {
12
+ height: var(--carousel-height-lg);
13
+ }
14
+ }
33
15
 
34
- &::before {
35
- @extend .left-gradient-bg;
36
- bottom: 0;
37
- content: '';
38
- height: 100%;
39
- left: 0;
40
- position: absolute;
41
- top: 0;
42
- width: 60%;
43
- z-index: 8;
44
- @include media-breakpoint-up(lg) {
45
- width: 100%;
46
- }
47
- @include media-breakpoint-up(xl) {
48
- display: block;
49
- }
50
- }
16
+ .page-collection-carousel {
17
+ display: flex;
18
+ flex-direction: column;
19
+ width: 100%;
20
+ }
51
21
 
52
- /* stylelint-disable selector-max-compound-selectors */
53
- img {
54
- height: var(--carousel-height);
55
- margin-left: 50%;
56
- transform: translateX(-50%);
22
+ .s72-carousel-slides {
23
+ background: $carousel-bg-color;
24
+ height: 100% !important;
25
+ margin-bottom: 10px;
26
+ overflow: hidden;
27
+ width: 100%;
57
28
 
58
- @include media-breakpoint-up(sm) {
59
- height: var(--carousel-height-sm);
60
- }
61
- @include media-breakpoint-up(md) {
62
- height: var(--carousel-height-md);
63
- width: auto;
64
- }
65
- }
66
- /* stylelint-enable selector-max-compound-selectors */
29
+ @include media-breakpoint-up(sm) {
30
+ margin-bottom: 40px;
67
31
  }
32
+ }
68
33
 
69
- .s72-pricing-button-container {
70
- white-space: nowrap;
34
+ .carousel-item-link > s72-image {
35
+ height: 100%;
36
+ position: absolute;
37
+ top: 0;
38
+ width: 100%;
39
+
40
+ img {
41
+ height: 100%;
42
+ object-fit: cover;
43
+ width: 100%;
44
+ z-index: -1;
71
45
  }
72
46
  }
73
47
 
@@ -79,9 +53,6 @@ s72-carousel {
79
53
  transition: opacity 0.7s linear;
80
54
  width: 100%;
81
55
  z-index: 1;
82
- @include media-breakpoint-up(lg) {
83
- position: absolute;
84
- }
85
56
 
86
57
  &.in {
87
58
  display: block;
@@ -99,296 +70,143 @@ s72-carousel {
99
70
 
100
71
  .carousel-item-link {
101
72
  display: block;
102
- height: 500px;
73
+ height: 100%;
74
+
75
+ &:focus-visible {
76
+ outline: none;
77
+
78
+ .meta-item-content {
79
+ border-radius: 4px;
80
+ outline: 1px solid var(--body-color);
81
+ }
82
+ }
103
83
  }
104
84
  }
105
85
 
106
86
  .carousel-item-caption {
87
+ @extend .carousel-bottom-gradient;
107
88
  bottom: 0;
89
+ display: flex;
90
+ flex-direction: column;
108
91
  left: 0;
109
- padding: 0 20px;
92
+ padding: var(--carousel-bottom-gradient-height) 20px 1px;
110
93
  position: absolute;
111
- right: 0;
112
- top: var(--carousel-caption-top);
94
+ width: 100%;
113
95
  z-index: 999;
114
- @include media-breakpoint-up(xs) {
115
- left: 60px;
116
- top: var(--carousel-caption-top-xs);
117
- }
118
- @include media-breakpoint-up(md) {
119
- left: 60px;
120
- top: var(--carousel-caption-top-md);
121
- }
96
+
122
97
  @include media-breakpoint-up(lg) {
123
- left: 70px;
124
- top: var(--carousel-caption-top-md);
125
- }
126
- @include media-breakpoint-up(xl) {
127
- left: 120px;
128
- top: var(--carousel-caption-top-md);
129
- }
130
- @include media-breakpoint-up(xxxl) {
131
- top: var(--carousel-caption-top-md);
98
+ flex-direction: row;
99
+ padding: var(--carousel-bottom-gradient-height) 50px 1px;
132
100
  }
133
101
 
134
- .meta-item-content {
135
- color: var(--body-color);
136
- @include media-breakpoint-up(xs) {
137
- width: 70%;
138
- }
139
- @include media-breakpoint-up(xl) {
140
- width: 50%;
141
- }
142
-
143
- h3 {
144
- color: var(--body-color);
145
- font-size: 28px;
146
- font-weight: $font-weight-bold;
147
- margin-bottom: 0;
148
- padding-bottom: 0;
149
- @include media-breakpoint-up(md) {
150
- font-size: 38px;
151
- }
152
- @include media-breakpoint-up(lg) {
153
- font-size: 48px;
154
- }
155
- @include media-breakpoint-up(xxxl) {
156
- font-size: 54px;
157
- }
158
- }
159
-
160
- h4 {
161
- background: var(--primary);
162
- color: #000;
163
- display: inline-block;
164
- font-size: 6px;
165
- font-weight: $font-weight-bold;
166
- padding: 2px 4px;
167
- text-transform: uppercase;
168
- @include media-breakpoint-up(md) {
169
- font-size: 12px;
170
- }
171
- }
172
-
173
- .meta-item-tagline-and-classification {
174
- @extend .d-flex;
175
- align-items: center;
176
- padding-bottom: 14px;
177
- padding-top: 8px;
178
- }
179
-
180
- .s72-classification {
181
- margin-right: 5px;
182
- }
183
-
184
- .meta-item-tagline {
185
- color: rgba(var(--body-color-rgb), 0.8);
186
- font-size: 14px;
187
- font-weight: $font-weight-normal;
188
- @include media-breakpoint-up(xxxl) {
189
- font-size: 18px;
190
- }
191
- }
192
-
193
- .meta-item-synopsis {
194
- display: block;
195
- font-size: 12px;
196
- font-weight: $font-weight-normal;
197
- padding-top: 10px;
198
- @include media-breakpoint-up(md) {
199
- font-size: 16px;
200
- }
201
- @include media-breakpoint-up(xxxl) {
202
- font-size: 16px;
203
- }
204
- @include media-breakpoint-up(xxxl) {
205
- font-size: 18px;
206
- }
207
- }
208
-
209
- .meta-item-extras {
210
- @extend .d-flex;
211
- }
212
-
213
- .btn-wishlist {
214
- position: relative;
102
+ .sponsor {
103
+ @include media-breakpoint-up(lg) {
104
+ align-self: flex-end;
105
+ margin-bottom: 8px;
106
+ margin-left: auto;
107
+ order: 1;
215
108
  }
216
109
  }
217
110
 
218
- // Purchase, play, trailer, wishlist and share are all in one group now
219
- // Need similar bootstrap approach of handling/wrapping rows and columns via negative margin
220
- .meta-item-buttons {
221
- margin-left: -0.5rem;
222
- margin-right: -0.5rem;
223
-
224
- /* stylelint-disable selector-max-compound-selectors */
225
- s72-pricing-buttons .s72-btn,
226
- .meta-detail-extras,
227
- .meta-item-extras,
228
- s72-play-button,
229
- can-be-watched-button:not(:empty) {
230
- margin-bottom: 10px;
231
- margin-left: 0.5rem;
232
- margin-right: 0.5rem;
233
- }
234
-
235
- // Handles spacing when there is only rent, only buy, or only play button
236
- s72-pricing-buttons .s72-btn,
237
- s72-play-button {
238
- &:nth-child(1) {
239
- margin-right: 0;
240
- }
241
- &:only-child {
242
- margin-right: 0.5rem;
243
- }
244
- }
245
- /* stylelint-enable selector-max-compound-selectors */
111
+ .availability-bg {
112
+ margin-bottom: 10px;
246
113
  }
247
114
 
248
- .s72-btn-play {
249
- circle {
250
- fill: transparent;
251
- }
115
+ .availability-state {
116
+ color: var(--body-color);
117
+ font-size: 12px;
118
+ margin-bottom: 0 !important; // >:(
119
+ text-transform: none;
252
120
  }
253
121
 
254
- .sponsor {
255
- @include media-breakpoint-up(xl) {
256
- bottom: 140px;
257
- position: absolute;
258
- right: 140px;
259
- text-align: right;
260
- }
122
+ .meta-item-content {
123
+ color: var(--body-color);
261
124
  }
262
- }
263
125
 
264
- .s72-carousel-pagination {
265
- @extend .d-flex;
266
- bottom: 2px;
267
- height: 60px;
268
- left: 50%;
269
- line-height: 60px;
270
- position: absolute;
271
- transform: translateX(-50%);
126
+ h3 {
127
+ color: var(--body-color);
128
+ font-size: 28px;
129
+ font-weight: $font-weight-normal;
130
+ margin-bottom: 8px;
131
+ max-width: 930px;
132
+ padding-bottom: 0;
272
133
 
273
- .s72-carousel-page {
274
- color: rgba(var(--body-color-rgb), 0.2);
275
134
  @include media-breakpoint-up(md) {
276
- margin: 0 5px;
135
+ font-size: 38px;
277
136
  }
278
137
 
279
- &.current {
280
- color: var(--primary);
138
+ @include media-breakpoint-up(lg) {
139
+ font-size: 46px;
281
140
  }
282
141
 
283
- .fa {
284
- @extend .fa-circle;
285
- font-size: 12px;
286
- padding: 0 3px;
287
- @include media-breakpoint-up(md) {
288
- font-size: 14px;
289
- }
142
+ @include media-breakpoint-up(xxxl) {
143
+ font-size: 46px;
290
144
  }
291
145
  }
292
- }
293
146
 
294
- .s72-carousel-control {
295
- @extend .d-flex;
296
- bottom: 0;
297
- flex-direction: column;
298
- height: 60px;
299
- justify-content: center;
300
- line-height: 60px;
301
- position: absolute;
302
- text-align: center;
303
- top: auto;
304
- width: 50px;
305
- z-index: 6;
306
- @include media-breakpoint-down(sm) {
307
- :hover {
308
- color: var(--primary);
309
- }
147
+ h4 {
148
+ background: var(--primary);
149
+ color: #000;
150
+ display: inline-block;
151
+ font-size: 6px;
152
+ font-weight: $font-weight-bold;
153
+ padding: 2px 4px;
154
+ text-transform: uppercase;
310
155
 
311
- :active {
312
- opacity: 0.8;
156
+ @include media-breakpoint-up(md) {
157
+ font-size: 12px;
313
158
  }
314
159
  }
315
- @include media-breakpoint-up(md) {
316
- background: none;
317
- top: 53%;
318
- }
319
160
 
320
- &.left {
321
- left: 0;
322
- right: auto;
161
+ .meta-item-tagline-and-classification {
162
+ display: flex;
163
+ margin-bottom: 8px;
323
164
  }
324
165
 
325
- &.right {
326
- left: auto;
327
- right: 0;
166
+ .meta-item-tagline {
167
+ color: rgba(var(--body-color-rgb), 0.8);
168
+ font-size: 14px;
169
+ font-weight: $font-weight-normal;
328
170
  }
329
171
 
330
- &:hover,
331
- &:active {
332
- text-decoration: none;
333
- }
172
+ .meta-item-synopsis {
173
+ display: none;
174
+ font-size: 16px;
175
+ font-weight: $font-weight-normal;
176
+ margin-bottom: 8px;
177
+ max-width: 600px;
178
+ padding-top: 0;
334
179
 
335
- span {
336
- font-size: 32px;
337
- text-align: center;
338
- width: 100%;
339
- @include media-breakpoint-up(md) {
340
- font-size: inherit;
180
+ @include media-breakpoint-up(xs) {
181
+ display: block;
341
182
  }
342
183
  }
343
- }
344
184
 
345
- .right-gradient {
346
- @extend .right-gradient-bg;
347
- bottom: 0;
348
- display: none;
349
- height: 100%;
350
- position: absolute;
351
- right: 0;
352
- width: 500px;
353
- z-index: 9;
354
- @include media-breakpoint-up(lg) {
355
- display: none;
185
+ .meta-item-synopsis p {
186
+ margin-bottom: 0;
356
187
  }
357
188
  }
358
189
 
359
- .bottom-gradient {
360
- @extend .bottom-gradient-bg;
361
- bottom: 0;
362
- height: 350px;
363
- left: 0;
364
- position: absolute;
365
- width: 100%;
366
- z-index: 8;
367
- @include media-breakpoint-up(lg) {
368
- display: block;
369
- height: 500px;
370
- width: 100%;
371
- }
190
+ .s72-carousel-pagination {
191
+ display: flex;
192
+ justify-content: center;
193
+ padding: 0 16px;
372
194
  }
373
195
 
374
- .left-gradient {
375
- @extend .left-gradient-bg;
376
- bottom: 0;
377
- display: none;
378
- height: 100%;
379
- left: 0;
380
- position: absolute;
381
- top: 0;
382
- width: 60%;
383
- z-index: 8;
384
- @include media-breakpoint-up(md) {
385
- display: block;
386
- }
387
- @include media-breakpoint-up(lg) {
388
- width: 100%;
196
+ .s72-carousel-page {
197
+ background: none;
198
+ border: 0;
199
+ max-width: 60px;
200
+ padding: 10px 4px;
201
+ width: 100%;
202
+
203
+ .s72-carousel-line {
204
+ background-color: rgba(var(--body-color-rgb), 0.2);
205
+ border-radius: 6px;
206
+ height: 6px;
389
207
  }
390
- @include media-breakpoint-up(xl) {
391
- display: none;
392
- width: 100%;
208
+
209
+ &.current .s72-carousel-line {
210
+ background-color: var(--primary);
393
211
  }
394
212
  }
@@ -1,7 +1,3 @@
1
- .page-collection-carousel {
2
- position: relative;
3
- }
4
-
5
1
  .page-collection {
6
2
  @extend .clearfix;
7
3
  }
@@ -176,13 +172,8 @@
176
172
  flex-wrap: wrap;
177
173
  justify-content: center;
178
174
  padding-top: 10px;
179
-
180
- .s72-classification {
181
- margin-right: 5px;
182
-
183
- .s72-classification-label {
184
- font-size: 12px;
185
- }
175
+ .s72-classification-label {
176
+ font-size: 12px;
186
177
  }
187
178
  }
188
179
 
@@ -242,6 +233,10 @@
242
233
  }
243
234
  }
244
235
  }
236
+
237
+ .s72-subscribe-trial-label {
238
+ display: none;
239
+ }
245
240
  }
246
241
 
247
242
  &:hover {