@shift72/core-template 0.5.1 → 1.0.0-alpha.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 (100) hide show
  1. package/.github/pull_request_template.md +47 -0
  2. package/.github/workflows/node.js.yml +1 -1
  3. package/.nvmrc +1 -0
  4. package/CHANGELOG.md +65 -10
  5. package/kibble.json +4 -4
  6. package/package.json +1 -2
  7. package/scripts/translate.mjs +30 -22
  8. package/site/ar_LB.all.json +99 -23
  9. package/site/ca_ES.all.json +91 -23
  10. package/site/da_DK.all.json +90 -22
  11. package/site/de_DE.all.json +90 -22
  12. package/site/el_EL.all.json +90 -22
  13. package/site/en_AU.all.json +87 -19
  14. package/site/es_ES.all.json +92 -24
  15. package/site/es_MX.all.json +89 -21
  16. package/site/{ee_EE.all.json → et_ET.all.json} +90 -22
  17. package/site/fi_FI.all.json +93 -25
  18. package/site/fr_FR.all.json +91 -23
  19. package/site/hr_HR.all.json +93 -23
  20. package/site/hu_HU.all.json +91 -23
  21. package/site/it_IT.all.json +91 -23
  22. package/site/ja_JP.all.json +88 -22
  23. package/site/lt_LT.all.json +94 -22
  24. package/site/nl_BE.all.json +90 -22
  25. package/site/no_NO.all.json +91 -23
  26. package/site/pl_PL.all.json +95 -23
  27. package/site/plans.html.jet +17 -17
  28. package/site/pt_BR.all.json +91 -23
  29. package/site/pt_PT.all.json +91 -23
  30. package/site/ru_RU.all.json +103 -31
  31. package/site/sr_SR.all.json +95 -25
  32. package/site/static/fonts/fa-s72.woff +0 -0
  33. package/site/static/js/main.js +2 -1
  34. package/site/static/scripts/main.js.map +1 -1
  35. package/site/styles/_availability-tags.scss +63 -31
  36. package/site/styles/_awards.scss +4 -3
  37. package/site/styles/_buttons.scss +46 -29
  38. package/site/styles/_can-be-watched-button.scss +0 -20
  39. package/site/styles/_carousel.scss +126 -311
  40. package/site/styles/_collections.scss +6 -11
  41. package/site/styles/_cta-buttons.scss +262 -0
  42. package/site/styles/_forms.scss +6 -2
  43. package/site/styles/_icons.scss +182 -9
  44. package/site/styles/_legacy.scss +1 -50
  45. package/site/styles/_meta-detail.scss +80 -229
  46. package/site/styles/_meta-item-tagline.scss +33 -0
  47. package/site/styles/_meta-item.scss +0 -4
  48. package/site/styles/_meta-sub-item.scss +116 -0
  49. package/site/styles/_mixins.scss +45 -0
  50. package/site/styles/_nav.scss +6 -5
  51. package/site/styles/_pages.scss +4 -13
  52. package/site/styles/_plans.scss +24 -17
  53. package/site/styles/_poster.scss +3 -9
  54. package/site/styles/_share-modal.scss +86 -0
  55. package/site/styles/_shift72.scss +11 -0
  56. package/site/styles/_shopping.scss +0 -1
  57. package/site/styles/_skip-link.scss +1 -1
  58. package/site/styles/_tooltips.scss +7 -0
  59. package/site/styles/_variables.scss +11 -12
  60. package/site/styles/_wishlist.scss +2 -2
  61. package/site/styles/main.scss +5 -3
  62. package/site/subscriptions.html.jet +11 -0
  63. package/site/templates/application/application.jet +2 -2
  64. package/site/templates/application/google.jet +8 -13
  65. package/site/templates/application/nav/user_logged_in.jet +7 -2
  66. package/site/templates/bundle/item.jet +2 -4
  67. package/site/templates/collection/carousel/carousel.jet +27 -0
  68. package/site/templates/collection/carousel/item/image.jet +5 -0
  69. package/site/templates/collection/carousel/item/synopsis.jet +5 -0
  70. package/site/templates/collection/carousel/item/tagline.jet +7 -0
  71. package/site/templates/collection/carousel/item/title.jet +3 -0
  72. package/site/templates/collection/carousel/item.jet +41 -0
  73. package/site/templates/collection/carousel/pagination.jet +9 -0
  74. package/site/templates/collection/page_collection.jet +2 -2
  75. package/site/templates/common/cta_buttons.jet +70 -0
  76. package/site/templates/common/social-media-buttons.jet +2 -38
  77. package/site/templates/common/sponsor-image.jet +18 -0
  78. package/site/templates/film/item.jet +98 -102
  79. package/site/templates/items/sub_item.jet +22 -0
  80. package/site/templates/items/tagline.jet +2 -2
  81. package/site/templates/page/homepage.jet +2 -3
  82. package/site/templates/tv/detail.jet +39 -38
  83. package/site/tr_TR.all.json +90 -22
  84. package/site/uk_UA.all.json +95 -23
  85. package/site/zh_TW.all.json +88 -22
  86. package/site/static/fonts/FontAwesome.otf +0 -0
  87. package/site/static/fonts/fontawesome-webfont.eot +0 -0
  88. package/site/static/fonts/fontawesome-webfont.svg +0 -565
  89. package/site/static/fonts/fontawesome-webfont.ttf +0 -0
  90. package/site/static/fonts/fontawesome-webfont.woff +0 -0
  91. package/site/static/fonts/fontawesome-webfont.woff2 +0 -0
  92. package/site/styles/_homepage.scss +0 -3
  93. package/site/styles/_social-media-buttons.scss +0 -159
  94. package/site/templates/bundle/buttons.jet +0 -6
  95. package/site/templates/bundle/extras.jet +0 -13
  96. package/site/templates/collection/carousel.jet +0 -27
  97. package/site/templates/collection/carousel_item.jet +0 -66
  98. package/site/templates/items/bonus_item.jet +0 -23
  99. package/site/templates/items/featured_item.jet +0 -61
  100. package/site/templates/tv/episode.jet +0 -21
@@ -0,0 +1,262 @@
1
+ /* stylelint-disable selector-max-compound-selectors, max-nesting-depth */
2
+ .cta-buttons {
3
+ display: grid;
4
+ gap: 16px;
5
+ margin-bottom: 8px;
6
+
7
+ @include media-breakpoint-up(xs) {
8
+ grid-auto-columns: min-content;
9
+ grid-template-rows: 1fr;
10
+ }
11
+
12
+ > * {
13
+ &:not(.extra-buttons) {
14
+ animation: fadein 2s;
15
+ }
16
+
17
+ @include media-breakpoint-up(xs) {
18
+ grid-column: auto;
19
+ grid-row: 1;
20
+ }
21
+ }
22
+
23
+ .s72-pricing-button-container {
24
+ display: grid;
25
+ gap: 16px;
26
+ grid-template-columns: 1fr 1fr;
27
+
28
+ @include media-breakpoint-up(xs) {
29
+ grid-template-columns: none;
30
+ }
31
+
32
+ > * {
33
+ align-self: start;
34
+ }
35
+
36
+ // If there is only one button, make it full width on one row.
37
+ :only-child {
38
+ grid-column: 1 / 3;
39
+ grid-row: 1;
40
+ }
41
+
42
+ // If there are two buttons...
43
+ :first-child:nth-last-child(2) {
44
+ // And the first button is the subscribe button:
45
+ // Put the subscribe button in the first row full width.
46
+ &.s72-subscribe {
47
+ grid-column: 1 / 3;
48
+ grid-row: 1;
49
+
50
+ @include media-breakpoint-up(xs) {
51
+ grid-column: auto;
52
+ }
53
+
54
+ // And put the other button in the second row full width.
55
+ + .s72-btn-purchase,
56
+ + .s72-btn-rent {
57
+ grid-column: 1 / 3;
58
+ grid-row: 2;
59
+
60
+ @include media-breakpoint-up(xs) {
61
+ grid-column: auto;
62
+ grid-row: 1;
63
+ }
64
+ }
65
+ }
66
+
67
+ // And the first button is the buy button
68
+ // Put the buy button in the first column, first row.
69
+ &.s72-btn-purchase {
70
+ grid-column: 1 / 2;
71
+ grid-row: 1;
72
+
73
+ @include media-breakpoint-up(xs) {
74
+ grid-column: auto;
75
+ }
76
+
77
+ // And put the rent button in the second column, first row.
78
+ + .s72-btn-rent {
79
+ grid-column: 2 / 3;
80
+ grid-row: 1;
81
+
82
+ @include media-breakpoint-up(xs) {
83
+ grid-column: auto;
84
+ }
85
+ }
86
+ }
87
+ }
88
+
89
+ // If there are three buttons...
90
+ :first-child:nth-last-child(3) {
91
+ // Put the subscribe button in the first row full width.
92
+ &.s72-subscribe {
93
+ grid-column: 1 / 3;
94
+ grid-row: 1;
95
+
96
+ @include media-breakpoint-up(xs) {
97
+ grid-column: auto;
98
+ }
99
+
100
+ // Put the buy button in the first column, second row.
101
+ ~ .s72-btn-purchase {
102
+ grid-column: 1 / 2;
103
+ grid-row: 2;
104
+
105
+ @include media-breakpoint-up(xs) {
106
+ grid-column: auto;
107
+ grid-row: 1;
108
+ }
109
+ }
110
+
111
+ // And put the rent button in the second column, second row.
112
+ ~ .s72-btn-rent {
113
+ grid-column: 2 / 3;
114
+ grid-row: 2;
115
+
116
+ @include media-breakpoint-up(xs) {
117
+ grid-column: auto;
118
+ grid-row: 1;
119
+ }
120
+ }
121
+ }
122
+ }
123
+
124
+ .s72-btn {
125
+ white-space: nowrap;
126
+ width: 100%;
127
+
128
+ @include media-breakpoint-up(xs) {
129
+ width: auto;
130
+ }
131
+
132
+ &:nth-child(2) {
133
+ margin: 0; // RELISH OVERRIDE.
134
+ }
135
+ }
136
+ }
137
+
138
+ s72-play-button {
139
+ .s72-btn-play {
140
+ margin: 0;
141
+ min-width: 140px;
142
+ padding: 6px 12px;
143
+ width: 100%;
144
+ }
145
+
146
+ .s72-btn-play-icon {
147
+ display: none;
148
+ }
149
+
150
+ .verb {
151
+ font-size: 1rem;
152
+ }
153
+ }
154
+
155
+ .s72-btn-can-be-watched {
156
+ min-width: 140px;
157
+ padding: 6px 12px;
158
+ width: 100%;
159
+
160
+ .padder {
161
+ display: none;
162
+ }
163
+
164
+ .s72-btn-can-be-watched-label {
165
+ font-size: 1rem;
166
+ font-weight: 400;
167
+ }
168
+ }
169
+
170
+ .extra-buttons {
171
+ align-items: center;
172
+ display: grid;
173
+ gap: 16px;
174
+ grid-template-rows: 1fr;
175
+ justify-items: center;
176
+ padding: 0 36px;
177
+
178
+ @include media-breakpoint-up(xs) {
179
+ grid-template-columns: min-content min-content min-content;
180
+ padding: 0;
181
+ }
182
+
183
+ > * {
184
+ align-self: start;
185
+ animation: fadein 2s;
186
+ grid-column: auto;
187
+ grid-row: 1;
188
+ }
189
+
190
+ /*#region ICON HACKS. TODO: CLEAN THIS MESS UP! */
191
+ // This region exists to override styles for the trailer button, wishlist button, and share modal button.
192
+ // Once the new icons have been committed to core-template, this region should be deleted from this file,
193
+ // and the new CSS for these icons should live in _buttons.scss (probably).
194
+ .s72-btn-play {
195
+ background: transparent;
196
+ border: 0;
197
+ height: 42px;
198
+ margin: 0;
199
+ padding: 0;
200
+ width: 42px;
201
+
202
+ @include hover-focus {
203
+ background: transparent;
204
+
205
+ circle {
206
+ fill: var(--primary);
207
+ stroke: var(--primary);
208
+ stroke-width: 3px;
209
+ }
210
+
211
+ path {
212
+ fill: #000;
213
+ stroke: #000;
214
+ }
215
+ }
216
+
217
+ circle {
218
+ fill: transparent;
219
+ stroke: var(--primary);
220
+ stroke-width: 3px;
221
+ }
222
+
223
+ path {
224
+ fill: var(--body-color);
225
+ stroke: var(--body-color);
226
+ }
227
+
228
+ .verb {
229
+ display: none;
230
+ }
231
+ }
232
+
233
+ .s72-userwishlist-buttons {
234
+ .s72-btn-wishlist {
235
+ height: 42px;
236
+ margin: 0;
237
+ padding: 0;
238
+ width: 42px;
239
+ }
240
+
241
+ i {
242
+ margin: 0;
243
+ padding: 0;
244
+ }
245
+
246
+ span {
247
+ font-size: 0;
248
+ }
249
+ }
250
+
251
+ .social-media-buttons {
252
+ .s72-btn {
253
+ border: 0;
254
+ height: 42px;
255
+ padding: 0;
256
+ width: 42px;
257
+ }
258
+ }
259
+ /*#endregion */
260
+ }
261
+ }
262
+ /* stylelint-enable selector-max-compound-selectors, max-nesting-depth */
@@ -104,7 +104,7 @@ s72-activatedevice-form,
104
104
  /* stylelint-disable-next-line */
105
105
  &:not(.StripeElement) {
106
106
  background-color: $body-bg-accent;
107
- border-color: rgba(var(--body-color-rgb), 0.1);
107
+ border-color: rgba(var(--body-color-rgb), 0.2);
108
108
  color: var(--body-color);
109
109
  &:focus {
110
110
  border-color: $input-focus-border-color;
@@ -155,11 +155,15 @@ s72-activatedevice-form,
155
155
 
156
156
  .s72-modal-container {
157
157
  .s72-buttons {
158
+ .fa-ellipsis-v {
159
+ opacity: 0.7;
160
+ }
161
+
158
162
  .s72-btn {
159
163
  color: $button-text-color;
160
164
 
161
165
  &:hover {
162
- color: $button-text-color-hover;
166
+ color: $button-text-color;
163
167
  }
164
168
  }
165
169
  }
@@ -1,16 +1,189 @@
1
- // These icons mostly build off fontawesome
2
- // to help with common UX class combinations.
3
- //--------------------------------------------------
1
+ @font-face {
2
+ font-family: 'fa-s72';
3
+ font-style: normal;
4
+ font-weight: normal;
5
+ src: url('/fonts/fa-s72.woff') format('woff');
6
+ }
4
7
 
5
- .icon-navbar-toggler {
6
- @extend .fa;
7
- @extend .fa-bars;
8
+ .fa {
9
+ font-family: 'fa-s72' !important;
10
+ font-style: normal !important;
11
+ font-variant: normal !important;
12
+ font-weight: normal !important;
13
+ line-height: 1;
14
+ text-transform: none !important;
15
+ vertical-align: middle;
16
+ }
17
+
18
+ .fa-credit-card::before,
19
+ .fa-trash::before {
20
+ font-size: 18px;
21
+ }
22
+
23
+ .fa-ellipsis-v {
24
+ font-size: 26px;
25
+ }
26
+
27
+ .fa-credit-card {
28
+ line-height: 0;
29
+ }
30
+
31
+ .fa-angle-down,
32
+ .fa-angle-left,
33
+ .fa-angle-right,
34
+ .fa-angle-up {
35
+ &::before {
36
+ content: '\e017';
37
+ }
38
+ }
39
+
40
+ .fa-angle-left {
41
+ transform: rotate(90deg);
42
+ }
43
+
44
+ .fa-angle-up {
45
+ transform: rotate(180deg);
46
+ }
47
+
48
+ .fa-angle-right {
49
+ transform: rotate(270deg);
50
+ }
51
+
52
+ .fa-cc-visa::before {
53
+ content: '\e000';
54
+ }
55
+
56
+ .fa-cc-stripe::before {
57
+ content: '\e001';
58
+ }
59
+
60
+ .fa-cc-paypal::before {
61
+ content: '\e002';
62
+ }
63
+
64
+ .fa-cc-mastercard::before {
65
+ content: '\e003';
66
+ }
67
+
68
+ .fa-cc-jcb::before {
69
+ content: '\e004';
70
+ }
71
+
72
+ .fa-cc-discover::before {
73
+ content: '\e005';
74
+ }
75
+
76
+ .fa-cc-diners-club::before {
77
+ content: '\e006';
78
+ }
79
+
80
+ .fa-cc-amex::before {
81
+ content: '\e007';
82
+ }
83
+
84
+ .fa-twitter::before {
85
+ content: '\e008';
86
+ }
87
+
88
+ .fa-star::before {
89
+ content: '\e009';
90
+ }
91
+
92
+ .fa-error::before {
93
+ content: '\e00a';
94
+ }
95
+
96
+ .fa-circle-o::before {
97
+ content: '\e00b';
98
+ }
99
+
100
+ .fa-check::before {
101
+ content: '\e00c';
102
+ }
103
+
104
+ .fa-times::before {
105
+ content: '\e00d';
106
+ }
107
+
108
+ .fa-trash::before {
109
+ content: '\e00e';
110
+ }
111
+
112
+ .fa-facebook::before {
113
+ content: '\e00f';
114
+ }
115
+
116
+ .fa-link::before {
117
+ content: '\e010';
118
+ }
119
+
120
+ .fa-linkedin::before {
121
+ content: '\e011';
122
+ }
123
+
124
+ .fa-envelope::before {
125
+ content: '\e012';
126
+ }
127
+
128
+ .fa-ellipsis-v::before {
129
+ content: '\e013';
130
+ }
131
+
132
+ .fa-check-circle::before {
133
+ content: '\e015';
134
+ }
135
+
136
+ .fa-search::before {
137
+ content: '\e016';
138
+ }
8
139
 
9
- &.toggled {
10
- @extend .fa-close;
140
+ .fa-angle-down::before {
141
+ content: '\e017';
142
+ }
143
+
144
+ .fa-credit-card::before {
145
+ content: '\e018';
146
+ }
147
+
148
+ .fa-globe::before {
149
+ content: '\e019';
150
+ }
151
+
152
+ .fa-share-alt::before {
153
+ content: '\e01a';
154
+ }
155
+
156
+ .fa-circle::before {
157
+ content: '\e01c';
158
+ }
159
+
160
+ .fa-warning::before,
161
+ .fa-exclamation-circle::before,
162
+ .fa-exclamation-triangle::before {
163
+ content: '\e01b';
164
+ }
165
+
166
+ s72-availability-label .availability-state::before {
167
+ content: '\e01b';
168
+ }
169
+
170
+ .fa-spinner::before {
171
+ content: '\e014';
172
+ }
173
+
174
+ @keyframes fa-spin {
175
+ 0% {
176
+ transform: rotate(0deg);
177
+ }
178
+ 100% {
179
+ transform: rotate(359deg);
11
180
  }
12
181
  }
13
182
 
183
+ .fa-spin {
184
+ animation: fa-spin 2s linear infinite;
185
+ }
186
+
14
187
  .icon-loading {
15
188
  @extend .fa;
16
189
  @extend .fa-spinner;
@@ -19,7 +192,7 @@
19
192
 
20
193
  .icon-errored {
21
194
  @extend .fa;
22
- @extend .fa-exclamation-circle;
195
+ @extend .fa-warning;
23
196
  }
24
197
 
25
198
  .icon-warning {
@@ -116,56 +116,6 @@ s72-classification-label {
116
116
  display: inline-block;
117
117
  }
118
118
 
119
- .s72-classification {
120
- @extend .d-flex;
121
- display: inline-block;
122
- margin-top: 0;
123
- padding: 0;
124
-
125
- .s72-classification-intro,
126
- .s72-classification-divider {
127
- display: none;
128
- }
129
-
130
- .s72-classification-description {
131
- color: rgba(255, 255, 255, 0.8);
132
- display: none;
133
- font-size: 14px;
134
- font-weight: $font-weight-normal;
135
- margin-left: 5px;
136
- }
137
-
138
- .s72-classification-label {
139
- border: 1px solid rgba(var(--body-color-rgb), 0.8);
140
- border-radius: 0;
141
- color: rgba(var(--body-color-rgb), 0.8);
142
- font-size: 12px;
143
- font-weight: $font-weight-bold;
144
- padding: 1px 5px;
145
- @include media-breakpoint-up(xxxl) {
146
- font-size: 14px;
147
- }
148
- }
149
- }
150
-
151
- .meta-detail-content .meta-detail-tagline-and-classification {
152
- align-items: center;
153
- display: flex !important;
154
- padding-bottom: 14px;
155
- padding-top: 8px;
156
- }
157
-
158
- .meta-detail-content .meta-detail-tagline-and-classification .s72-classification {
159
- margin-right: 5px;
160
- }
161
-
162
- .meta-detail-content .meta-detail-tagline-and-classification .meta-item-tagline {
163
- align-self: center;
164
- color: rgba(var(--body-color-rgb), 0.8);
165
- font-weight: $font-weight-normal;
166
- margin-bottom: 0;
167
- }
168
-
169
119
  .wishlist-page-landscape .s72-userwishlist-items {
170
120
  @extend .d-flex;
171
121
  flex-wrap: wrap;
@@ -302,6 +252,7 @@ p,
302
252
 
303
253
  .no-scroll {
304
254
  overflow-y: hidden;
255
+
305
256
  @include media-breakpoint-up(lg) {
306
257
  overflow-y: visible;
307
258
  }