@shift72/core-template 0.4.2 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (82) hide show
  1. package/CHANGELOG.md +49 -7
  2. package/kibble.json +107 -28
  3. package/package.json +25 -9
  4. package/scripts/core-template-version.js +30 -0
  5. package/scripts/css-local-get.js +34 -0
  6. package/scripts/css-local-put.js +110 -0
  7. package/scripts/language-file-to-csv/language-file-to-csv.js +2 -2
  8. package/scripts/language-file-validator.js +16 -2
  9. package/scripts/translate.mjs +43 -0
  10. package/site/ar_LB.all.json +1262 -593
  11. package/site/ca_ES.all.json +441 -440
  12. package/site/da_DK.all.json +308 -210
  13. package/site/de_DE.all.json +1122 -337
  14. package/site/ee_EE.all.json +1258 -532
  15. package/site/el_EL.all.json +1116 -394
  16. package/site/en_AU.all.json +1159 -466
  17. package/site/es_ES.all.json +1109 -333
  18. package/site/es_MX.all.json +1173 -332
  19. package/site/fi_FI.all.json +1127 -315
  20. package/site/fr_FR.all.json +1109 -332
  21. package/site/hr_HR.all.json +1173 -411
  22. package/site/hu_HU.all.json +1258 -531
  23. package/site/it_IT.all.json +1116 -340
  24. package/site/ja_JP.all.json +1127 -315
  25. package/site/lt_LT.all.json +1116 -425
  26. package/site/nl_BE.all.json +1116 -426
  27. package/site/no_NO.all.json +1249 -531
  28. package/site/pl_PL.all.json +1106 -306
  29. package/site/pt_BR.all.json +438 -446
  30. package/site/pt_PT.all.json +1249 -527
  31. package/site/ru_RU.all.json +1092 -386
  32. package/site/sr_SR.all.json +1254 -0
  33. package/site/styles/_awards.scss +11 -6
  34. package/site/styles/_bootstrap4.scss +90 -0
  35. package/site/styles/_buttons.scss +32 -8
  36. package/site/styles/_can-be-watched-button.scss +2 -0
  37. package/site/styles/_card.scss +2 -2
  38. package/site/styles/_carousel.scss +52 -29
  39. package/site/styles/_collections.scss +4 -4
  40. package/site/styles/_cookie-consent.scss +1 -1
  41. package/site/styles/_devices.scss +3 -3
  42. package/site/styles/_footer.scss +6 -6
  43. package/site/styles/_forms.scss +83 -16
  44. package/site/styles/_globals.scss +1 -1
  45. package/site/styles/_icons.scss +2 -2
  46. package/site/styles/_language-selector.scss +2 -2
  47. package/site/styles/_legacy.scss +3 -3
  48. package/site/styles/_meta-detail.scss +45 -25
  49. package/site/styles/_meta-item-tagline.scss +1 -1
  50. package/site/styles/_mixins.scss +2 -2
  51. package/site/styles/_nav.scss +40 -40
  52. package/site/styles/_pages.scss +12 -14
  53. package/site/styles/_pin-codes.scss +2 -2
  54. package/site/styles/_plans.scss +6 -1
  55. package/site/styles/_poster.scss +5 -4
  56. package/site/styles/_search.scss +1 -1
  57. package/site/styles/_shift72.scss +24 -24
  58. package/site/styles/_shopping.scss +9 -9
  59. package/site/styles/_skip-link.scss +19 -0
  60. package/site/styles/_slider.scss +4 -10
  61. package/site/styles/_social-media-buttons.scss +20 -20
  62. package/site/styles/_swiper.scss +2 -2
  63. package/site/styles/_variables.scss +112 -83
  64. package/site/styles/_wishlist.scss +20 -12
  65. package/site/styles/main.scss +2 -3
  66. package/site/templates/application/application.jet +24 -15
  67. package/site/templates/application/google.jet +26 -10
  68. package/site/templates/bundle/buttons.jet +2 -1
  69. package/site/templates/bundle/item.jet +1 -2
  70. package/site/templates/collection/carousel_item.jet +12 -13
  71. package/site/templates/common/awards/carousel.jet +7 -1
  72. package/site/templates/common/awards/item.jet +2 -2
  73. package/site/templates/film/item.jet +92 -61
  74. package/site/templates/page/curated.jet +1 -1
  75. package/site/templates/page/page-content.jet +1 -23
  76. package/site/templates/page/page-header.jet +25 -6
  77. package/site/templates/tv/detail.jet +7 -7
  78. package/site/tr_TR.all.json +1249 -535
  79. package/site/uk_UA.all.json +533 -443
  80. package/site/zh_TW.all.json +442 -443
  81. package/site/se_SE.all.json +0 -570
  82. package/site/styles/_functions.scss +0 -8
@@ -1,6 +1,8 @@
1
1
  .meta-awards {
2
2
  @extend .d-flex;
3
3
  @extend .align-items-center;
4
+ margin-left: -25px;
5
+ margin-right: -25px;
4
6
 
5
7
  &.meta-awards-all {
6
8
  @extend .align-items-start;
@@ -8,27 +10,30 @@
8
10
 
9
11
  .meta-award-nomination {
10
12
  @extend .d-flex;
13
+ max-width: 370px;
14
+ padding-right: 25px;
15
+ padding-left: 25px;
11
16
  }
12
17
 
13
18
  .meta-award-nomination-icon {
14
19
  @extend .fa;
15
20
  @extend .fa-star; // for now
21
+
16
22
  font-size: 1.25rem;
17
23
  line-height: 1.5rem;
18
- padding-right: .5rem;
24
+ padding-right: 0.5rem;
19
25
  }
20
26
  }
21
27
 
22
28
  .meta-awards-icon-overlay {
23
29
  @extend .text-center;
24
30
 
25
- border-radius: $meta-item-border-radius;
26
31
  background: rgba(0, 0, 0, 0.8);
27
-
28
- padding-right: 3px;
32
+ border-radius: $meta-item-border-radius;
33
+ height: 16px + (3px * 2);
29
34
  padding-left: 3px;
35
+ padding-right: 3px;
30
36
  width: 16px + (3px * 2);
31
- height: 16px + (3px * 2);
32
37
 
33
38
  .meta-award-nomination-icon {
34
39
  @extend .fa;
@@ -36,4 +41,4 @@
36
41
 
37
42
  font-size: 1rem;
38
43
  }
39
- }
44
+ }
@@ -34,3 +34,93 @@
34
34
  @import 'bootstrap/scss/tooltip';
35
35
  @import 'bootstrap/scss/popover';
36
36
  @import 'bootstrap/scss/utilities';
37
+
38
+ // The following override classes are to get around Bootstrap 4's use of Sass variables.
39
+ // CSS themes will not work without these hacks.
40
+
41
+ .btn-primary-override {
42
+ @extend .btn-primary;
43
+ border-color: $button-background;
44
+
45
+ color: $button-text-color;
46
+
47
+ @include hover() {
48
+ border-color: $button-background-hover;
49
+ color: $button-text-color-hover;
50
+ }
51
+
52
+ &:focus,
53
+ &.focus {
54
+ border-color: $button-background-hover;
55
+ color: $button-text-color-hover;
56
+ @if $enable-shadows {
57
+ @include box-shadow($btn-box-shadow, 0 0 0 $btn-focus-width rgba(var(--primary-rgb), 0.5));
58
+ } @else {
59
+ box-shadow: 0 0 0 $btn-focus-width rgba(var(--primary-rgb), 0.5);
60
+ }
61
+ }
62
+
63
+ &.disabled,
64
+ &:disabled {
65
+ background-color: $button-background;
66
+ border-color: $button-background;
67
+ color: $button-text-color;
68
+ }
69
+
70
+ &:not(:disabled):not(.disabled):active,
71
+ &:not(:disabled):not(.disabled).active,
72
+ .show > &.dropdown-toggle {
73
+ background-color: $button-background-hover;
74
+ border-color: $button-background-hover;
75
+ color: $button-text-color-hover;
76
+
77
+ &:focus {
78
+ @if $enable-shadows and $btn-active-box-shadow != none {
79
+ @include box-shadow(
80
+ $btn-active-box-shadow,
81
+ 0 0 0 $btn-focus-width rgba(var(--primary-rgb), 0.5)
82
+ );
83
+ } @else {
84
+ box-shadow: 0 0 0 $btn-focus-width rgba(var(--primary-rgb), 0.5);
85
+ }
86
+ }
87
+ }
88
+ }
89
+
90
+ .btn-link-override {
91
+ @extend .btn-link;
92
+
93
+ color: var(--link-color);
94
+
95
+ @include hover() {
96
+ color: var(--link-color-hover);
97
+ }
98
+ }
99
+
100
+ a {
101
+ @extend a;
102
+
103
+ color: var(--link-color);
104
+
105
+ @include hover() {
106
+ color: var(--link-color-hover);
107
+ }
108
+ }
109
+
110
+ .dropdown-item-override {
111
+ @extend .dropdown-item;
112
+
113
+ &.active,
114
+ &:active {
115
+ background-color: transparent;
116
+ }
117
+ }
118
+
119
+ .list-group-item-override {
120
+ @extend .list-group-item;
121
+
122
+ &.active {
123
+ background-color: var(--primary);
124
+ border-color: var(--primary);
125
+ }
126
+ }
@@ -25,7 +25,7 @@
25
25
  @include hover-focus {
26
26
  background: $signin-background-hover;
27
27
  border: 3px solid $signin-border-color-hover;
28
- color: $body-color;
28
+ color: var(--body-color);
29
29
  }
30
30
  @include media-breakpoint-up(lg) {
31
31
  background-color: $signin-background-lg;
@@ -115,8 +115,8 @@
115
115
  background: transparent;
116
116
 
117
117
  .s72-icon-play circle {
118
- fill: $primary;
119
- stroke: $primary;
118
+ fill: var(--primary);
119
+ stroke: var(--primary);
120
120
  stroke-width: 3px;
121
121
  }
122
122
 
@@ -136,7 +136,7 @@
136
136
 
137
137
  .verb {
138
138
  background: transparent;
139
- color: $primary;
139
+ color:var(--primary);
140
140
  }
141
141
  }
142
142
 
@@ -152,13 +152,13 @@
152
152
 
153
153
  circle {
154
154
  fill: transparent;
155
- stroke: $primary;
155
+ stroke: var(--primary);
156
156
  stroke-width: 3px;
157
157
  }
158
158
 
159
159
  path {
160
- fill: $body-color;
161
- stroke: $body-color;
160
+ fill: var(--body-color);
161
+ stroke: var(--body-color);
162
162
  }
163
163
  }
164
164
 
@@ -168,6 +168,7 @@
168
168
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
169
169
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
170
170
  font-size: 12px;
171
+ font-weight: $font-weight-bold;
171
172
  margin-left: 0;
172
173
  padding-bottom: 0;
173
174
  padding-left: 8px;
@@ -215,7 +216,7 @@
215
216
  .s72-btn-wishlist {
216
217
  background: transparent;
217
218
  border: 0 none;
218
- color: $body-color;
219
+ color: var(--body-color);
219
220
  font-size: 14px;
220
221
 
221
222
  .s72-icon-loading,
@@ -243,3 +244,26 @@
243
244
  border-color: $gray-200;
244
245
  }
245
246
  }
247
+
248
+ s72-donate-button:not(:empty) {
249
+ &:hover a {
250
+ background-color: $button-background-hover;
251
+ color: $button-text-color-hover;
252
+ /* stylelint-disable selector-max-compound-selectors */
253
+ svg {
254
+ g {
255
+ fill: $button-text-color-hover;
256
+ }
257
+ }
258
+ /* stylelint-enable selector-max-compound-selectors */
259
+ }
260
+ a {
261
+ color: $button-text-color;
262
+ background-color: $button-background;
263
+ }
264
+ svg {
265
+ g {
266
+ fill: $button-text-color;
267
+ }
268
+ }
269
+ }
@@ -24,8 +24,10 @@
24
24
 
25
25
  .meta-detail-content .meta-detail-buttons,
26
26
  .meta-item-buttons {
27
+ align-items: center;
27
28
  display: flex;
28
29
  flex-direction: row;
30
+ flex-wrap: wrap;
29
31
 
30
32
  .owned-custom-container {
31
33
  display: none;
@@ -1,3 +1,3 @@
1
1
  .card {
2
- @extend .text-dark;
3
- }
2
+ @extend .text-dark;
3
+ }
@@ -7,29 +7,28 @@ s72-carousel {
7
7
 
8
8
  .s72-carousel-slides {
9
9
  background: $carousel-bg-color;
10
- height: $carousel-height !important;
11
- overflow: hidden;
10
+ height: var(--carousel-height) !important;
12
11
  position: relative;
13
12
  width: 100%;
14
13
  @include media-breakpoint-up(sm) {
15
- height: $carousel-height-sm !important;
14
+ height: var(--carousel-height-sm) !important;
16
15
  }
17
16
  @include media-breakpoint-up(md) {
18
- height: $carousel-height-md !important;
17
+ height: var(--carousel-height-md) !important;
19
18
  }
20
19
 
21
20
  s72-image {
22
21
  float: right;
23
- height: $carousel-height;
22
+ height: var(--carousel-height);
24
23
  max-width: 1600px;
25
24
  overflow: hidden;
26
25
  position: relative;
27
26
  width: 100%;
28
27
  @include media-breakpoint-up(sm) {
29
- height: $carousel-height-sm;
28
+ height: var(--carousel-height-sm);
30
29
  }
31
30
  @include media-breakpoint-up(md) {
32
- height: $carousel-height-md;
31
+ height: var(--carousel-height-md);
33
32
  }
34
33
 
35
34
  &::before {
@@ -51,19 +50,23 @@ s72-carousel {
51
50
  }
52
51
 
53
52
  img {
54
- height: $carousel-height;
53
+ height: var(--carousel-height);
55
54
  margin-left: 50%;
56
55
  transform: translateX(-50%);
57
56
 
58
57
  @include media-breakpoint-up(sm) {
59
- height: $carousel-height-sm;
58
+ height: var(--carousel-height-sm);
60
59
  }
61
60
  @include media-breakpoint-up(md) {
62
- height: $carousel-height-md;
61
+ height: var(--carousel-height-md);
63
62
  width: auto;
64
63
  }
65
64
  }
66
65
  }
66
+
67
+ .s72-pricing-button-container {
68
+ white-space: nowrap;
69
+ }
67
70
  }
68
71
 
69
72
  .s72-carousel-item {
@@ -102,25 +105,30 @@ s72-carousel {
102
105
  left: 0;
103
106
  padding: 0 20px;
104
107
  position: absolute;
105
- top: $carousel-caption-top;
108
+ top: var(--carousel-caption-top);
106
109
  z-index: 999;
110
+ @include media-breakpoint-up(xs) {
111
+ left: 60px;
112
+ top: var(--carousel-caption-top-xs);
113
+ width: 70%;
114
+ }
107
115
  @include media-breakpoint-up(md) {
108
116
  left: 60px;
109
- top: $carousel-caption-top-md;
117
+ top: var(--carousel-caption-top-md);
110
118
  width: 70%;
111
119
  }
112
120
  @include media-breakpoint-up(lg) {
113
121
  left: 70px;
114
- top: $carousel-caption-top-md;
122
+ top: var(--carousel-caption-top-md);
115
123
  width: 70%;
116
124
  }
117
125
  @include media-breakpoint-up(xl) {
118
126
  left: 120px;
119
- top: $carousel-caption-top-md;
127
+ top: var(--carousel-caption-top-md);
120
128
  width: 50%;
121
129
  }
122
130
  @include media-breakpoint-up(xxxl) {
123
- top: $carousel-caption-top-md;
131
+ top: var(--carousel-caption-top-md);
124
132
  width: 50%;
125
133
  }
126
134
 
@@ -135,7 +143,7 @@ s72-carousel {
135
143
  }
136
144
 
137
145
  .availability-state {
138
- color: $body-color;
146
+ color: var(--body-color);
139
147
  font-size: 12px;
140
148
  text-transform: none;
141
149
  }
@@ -145,7 +153,7 @@ s72-carousel {
145
153
  color: #fff;
146
154
 
147
155
  h3 {
148
- color: $body-color;
156
+ color: var(--body-color);
149
157
  font-size: 28px;
150
158
  font-weight: $font-weight-bold;
151
159
  margin-bottom: 0;
@@ -162,7 +170,7 @@ s72-carousel {
162
170
  }
163
171
 
164
172
  h4 {
165
- background: $primary;
173
+ background: var(--primary);
166
174
  color: #000;
167
175
  display: inline-block;
168
176
  font-size: 6px;
@@ -186,7 +194,7 @@ s72-carousel {
186
194
  }
187
195
 
188
196
  .meta-item-tagline {
189
- color: rgba($body-color, 0.8);
197
+ color: rgba(var(--body-color-rgb), 0.8);
190
198
  font-size: 14px;
191
199
  font-weight: $font-weight-normal;
192
200
  @include media-breakpoint-up(xxxl) {
@@ -212,7 +220,6 @@ s72-carousel {
212
220
 
213
221
  .meta-item-extras {
214
222
  @extend .d-flex;
215
- padding: 0 0 20px;
216
223
  }
217
224
 
218
225
  .btn-wishlist {
@@ -220,18 +227,34 @@ s72-carousel {
220
227
  }
221
228
  }
222
229
 
223
- .s72-pricing-button-container {
224
- .s72-btn {
230
+ // Purchase, play, trailer, wishlist and share are all in one group now
231
+ // Need similar bootstrap approach of handling/wrapping rows and columns via negative margin
232
+ .meta-item-buttons {
233
+ margin-left: -0.5rem;
234
+ margin-right: -0.5rem;
235
+
236
+ /* stylelint-disable selector-max-compound-selectors */
237
+ s72-pricing-buttons .s72-btn,
238
+ .meta-detail-extras,
239
+ .meta-item-extras,
240
+ s72-play-button,
241
+ can-be-watched-button:not(:empty) {
225
242
  margin-bottom: 10px;
243
+ margin-left: 0.5rem;
244
+ margin-right: 0.5rem;
245
+ }
226
246
 
247
+ // Handles spacing when there is only rent, only buy, or only play button
248
+ s72-pricing-buttons .s72-btn,
249
+ s72-play-button {
227
250
  &:nth-child(1) {
228
- margin-right: 0.5rem;
251
+ margin-right: 0;
229
252
  }
230
-
231
- &:nth-child(2) {
232
- margin-left: 0;
253
+ &:only-child {
254
+ margin-right: 0.5rem;
233
255
  }
234
256
  }
257
+ /* stylelint-enable selector-max-compound-selectors */
235
258
  }
236
259
 
237
260
  .s72-btn-play {
@@ -251,13 +274,13 @@ s72-carousel {
251
274
  transform: translateX(-50%);
252
275
 
253
276
  .s72-carousel-page {
254
- color: rgba($body-color, 0.2);
277
+ color: rgba(var(--body-color-rgb), 0.2);
255
278
  @include media-breakpoint-up(md) {
256
279
  margin: 0 5px;
257
280
  }
258
281
 
259
282
  &.current {
260
- color: $primary;
283
+ color: var(--primary);
261
284
  }
262
285
 
263
286
  .fa {
@@ -285,7 +308,7 @@ s72-carousel {
285
308
  z-index: 6;
286
309
  @include media-breakpoint-down(sm) {
287
310
  :hover {
288
- color: $primary;
311
+ color: var(--primary);
289
312
  }
290
313
 
291
314
  :active {
@@ -64,7 +64,7 @@
64
64
  .poster {
65
65
  .hover {
66
66
  @extend .d-flex;
67
- background: rgba($body-bg, 0.8);
67
+ background: rgba(var(--body-bg-rgb), 0.8);
68
68
  bottom: 0;
69
69
  flex-direction: column;
70
70
  justify-content: space-between;
@@ -137,7 +137,7 @@
137
137
 
138
138
  .titles {
139
139
  h4 {
140
- color: $body-color;
140
+ color: var(--body-color);
141
141
  font-size: 18px;
142
142
  font-weight: $font-weight-normal;
143
143
  margin: 0;
@@ -149,7 +149,7 @@
149
149
  }
150
150
 
151
151
  .meta-item-tagline {
152
- color: $body-color;
152
+ color: var(--body-color);
153
153
  display: inline-block;
154
154
  font-weight: $font-weight-normal;
155
155
  margin: 0;
@@ -192,7 +192,7 @@
192
192
 
193
193
  .synopsis {
194
194
  p {
195
- color: $body-color;
195
+ color: var(--body-color);
196
196
  font-size: 12px;
197
197
  line-height: 14px;
198
198
  margin-bottom: 0;
@@ -14,5 +14,5 @@
14
14
  }
15
15
 
16
16
  .s72-btn-cookie-consent {
17
- @extend .btn-primary;
17
+ @extend .btn-primary-override;
18
18
  }
@@ -7,7 +7,7 @@
7
7
  }
8
8
 
9
9
  .s72-userdevices-device {
10
- @extend .list-group-item;
10
+ @extend .list-group-item-override;
11
11
  }
12
12
 
13
13
  .s72-userdevices-device-type {
@@ -42,7 +42,7 @@
42
42
 
43
43
  .s72-btn-userdevices-confirm,
44
44
  .s72-btn-userdevices-delete {
45
- @extend .btn-primary;
45
+ @extend .btn-primary-override;
46
46
  @extend .btn-sm;
47
47
  }
48
48
 
@@ -56,6 +56,6 @@
56
56
  }
57
57
 
58
58
  .s72-btn-userdevices-cancel {
59
- @extend .btn-link;
59
+ @extend .btn-link-override;
60
60
  @extend .btn-sm;
61
61
  }
@@ -44,7 +44,7 @@ footer {
44
44
  }
45
45
 
46
46
  &:hover {
47
- color: $primary;
47
+ color: var(--primary);
48
48
  }
49
49
  }
50
50
  }
@@ -73,7 +73,7 @@ footer {
73
73
  }
74
74
 
75
75
  .powered-by {
76
- color: rgba($body-color, 0.8);
76
+ color: rgba(var(--body-color-rgb), 0.8);
77
77
  font-size: 12px;
78
78
  font-weight: $font-weight-normal;
79
79
  margin: 0;
@@ -115,15 +115,15 @@ footer {
115
115
  .sponsor-banner {
116
116
  display: flex;
117
117
  justify-content: center;
118
- padding: 60px 20px 0 20px;
118
+ padding: 60px 20px 0;
119
119
  @include media-breakpoint-up(lg) {
120
- padding: 60px 50px 0 50px;
120
+ padding: 60px 50px 0;
121
121
  }
122
122
 
123
123
  img {
124
124
  max-width: max-content;
125
125
  }
126
-
126
+
127
127
  .sponsors-xxxs {
128
128
  width: 100%;
129
129
 
@@ -153,4 +153,4 @@ footer {
153
153
  display: block;
154
154
  }
155
155
  }
156
- }
156
+ }