@shift72/core-template 0.6.0-alpha.0 → 1.0.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 (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 {