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

Sign up to get free protection for your applications and to get access to all the features.
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
  }