@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,7 +1,7 @@
1
1
  s72-slider .s72-slider-control,
2
2
  s72-userwishlist .s72-slider-control {
3
- background-color: $primary;
4
- border: 1px solid $primary;
3
+ background-color: var(--primary);
4
+ border: 1px solid var(--primary);
5
5
  border-radius: 50%;
6
6
  font-family: $font-family-base;
7
7
  height: $slider-control-height;
@@ -31,12 +31,6 @@ s72-userwishlist .s72-slider-control {
31
31
  top: 50%;
32
32
  transform: translateX(-50%) translateY(-50%);
33
33
  }
34
-
35
- &:hover,
36
- &:active,
37
- &:focus {
38
- background: darken($primary, 7.5%);
39
- }
40
34
  }
41
35
 
42
36
  // make .slider-control be in the middle of the poster, not the middle of the item (which includes captions).
@@ -72,7 +66,7 @@ s72-slider.has-next.s72-slider-scroll::after {
72
66
  /* stylelint-enable selector-no-qualifying-type */
73
67
 
74
68
  .slider-fade-in {
75
- @include gradient-x(rgba($body-bg, 0.9), transparent, 0%, 100%);
69
+ @include gradient-x(rgba(var(--body-bg-rgb), 0.9), transparent, 0%, 100%);
76
70
  content: '';
77
71
  display: block;
78
72
  height: 100%;
@@ -86,7 +80,7 @@ s72-slider.has-next.s72-slider-scroll::after {
86
80
 
87
81
  .slider-fade-out {
88
82
  @extend .slider-fade-in;
89
- @include gradient-x(transparent, rgba($body-bg, 0.9), 0%, 100%);
83
+ @include gradient-x(transparent, rgba(var(--body-bg-rgb), 0.9), 0%, 100%);
90
84
  left: auto;
91
85
  right: 0;
92
86
  }
@@ -13,7 +13,7 @@
13
13
  h2,
14
14
  h5 {
15
15
  align-self: center;
16
- color: $body-color;
16
+ color: var(--body-color);
17
17
  font-family: $font-family-base;
18
18
  font-size: 12px;
19
19
  font-weight: $font-weight-bold;
@@ -47,7 +47,7 @@
47
47
  border-color: $facebook-color;
48
48
 
49
49
  .fa {
50
- color: $body-bg;
50
+ color: var(--body-bg);
51
51
  }
52
52
  }
53
53
 
@@ -56,7 +56,7 @@
56
56
  border-color: $instagram-color;
57
57
 
58
58
  .fa {
59
- color: $body-bg;
59
+ color: var(--body-bg);
60
60
  }
61
61
  }
62
62
 
@@ -65,7 +65,7 @@
65
65
  border-color: $twitter-color;
66
66
 
67
67
  .fa {
68
- color: $body-bg;
68
+ color: var(--body-bg);
69
69
  }
70
70
  }
71
71
 
@@ -74,7 +74,7 @@
74
74
  border-color: $linkedin-color;
75
75
 
76
76
  .fa {
77
- color: $body-bg;
77
+ color: var(--body-bg);
78
78
  }
79
79
  }
80
80
 
@@ -83,7 +83,7 @@
83
83
  border-color: $youtube-color;
84
84
 
85
85
  .fa {
86
- color: $body-bg;
86
+ color: var(--body-bg);
87
87
  }
88
88
  }
89
89
 
@@ -92,8 +92,8 @@
92
92
  border-color: $letterboxd-color;
93
93
 
94
94
  path {
95
- fill: $body-bg;
96
- stroke: $body-bg;
95
+ fill: var(--body-bg);
96
+ stroke: var(--body-bg);
97
97
  stroke-width: 1;
98
98
  }
99
99
  }
@@ -102,8 +102,8 @@
102
102
  &:active,
103
103
  &:focus {
104
104
  &.btn-social-facebook {
105
- background-color: $primary;
106
- border-color: $primary;
105
+ background-color: var(--primary);
106
+ border-color: var(--primary);
107
107
 
108
108
  .fa {
109
109
  color: $facebook-color;
@@ -111,8 +111,8 @@
111
111
  }
112
112
 
113
113
  &.btn-social-instagram {
114
- background-color: $primary;
115
- border-color: $primary;
114
+ background-color: var(--primary);
115
+ border-color: var(--primary);
116
116
 
117
117
  .fa {
118
118
  color: $instagram-color;
@@ -120,8 +120,8 @@
120
120
  }
121
121
 
122
122
  &.btn-social-twitter {
123
- background-color: $primary;
124
- border-color: $primary;
123
+ background-color: var(--primary);
124
+ border-color: var(--primary);
125
125
 
126
126
  .fa {
127
127
  color: $twitter-color;
@@ -129,8 +129,8 @@
129
129
  }
130
130
 
131
131
  &.btn-social-linkedin {
132
- background-color: $primary;
133
- border-color: $primary;
132
+ background-color: var(--primary);
133
+ border-color: var(--primary);
134
134
 
135
135
  .fa {
136
136
  color: $linkedin-color;
@@ -138,8 +138,8 @@
138
138
  }
139
139
 
140
140
  &.btn-social-youtube {
141
- background-color: $primary;
142
- border-color: $primary;
141
+ background-color: var(--primary);
142
+ border-color: var(--primary);
143
143
 
144
144
  .fa {
145
145
  color: $youtube-color;
@@ -147,8 +147,8 @@
147
147
  }
148
148
 
149
149
  &.btn-social-letterboxd {
150
- background-color: $primary;
151
- border-color: $primary;
150
+ background-color: var(--primary);
151
+ border-color: var(--primary);
152
152
 
153
153
  path {
154
154
  fill: $letterboxd-color;
@@ -22,12 +22,12 @@
22
22
  }
23
23
 
24
24
  .swiper-button-next {
25
- background: rgba($body-bg, 0.8) url('/images/icons/next.png') center center no-repeat;
25
+ background: rgba(var(--body-bg-rgb), 0.8) url('/images/icons/next.png') center center no-repeat;
26
26
  right: 0;
27
27
  }
28
28
 
29
29
  .swiper-button-prev {
30
- background: rgba($body-bg, 0.8) url('/images/icons/prev.png') center center no-repeat;
30
+ background: rgba(var(--body-bg-rgb), 0.8) url('/images/icons/prev.png') center center no-repeat;
31
31
  left: 0;
32
32
  }
33
33
 
@@ -3,6 +3,62 @@
3
3
  // This file contains any variables used by the site.
4
4
  // These variables should be reasonably generic so that overrides are placed in main.scss.
5
5
 
6
+ :root {
7
+ --primary-rgb: 53, 160, 168;
8
+ --secondary-rgb: 76, 211, 221;
9
+ --body-color-rgb: 255, 255, 255;
10
+ --body-bg-rgb: 15, 15, 15;
11
+ --body-bg-accent-rgb: 25, 25, 25; // darken(body-bg, 10%) OR lighten(body-bg, 10%)
12
+ --link-color-hover-rgb: 217, 217, 217; // darken(body-color, 15%)
13
+ --input-focus-border-color-rgb: 131, 210, 216; // lighten(primary, 25%)
14
+
15
+ --primary: rgb(var(--primary-rgb));
16
+ --secondary: rgb(var(--secondary-rgb));
17
+ --body-color: rgb(var(--body-color-rgb));
18
+ --body-bg: rgb(var(--body-bg-rgb));
19
+ --body-bg-accent: rgb(var(--body-bg-accent-rgb));
20
+ --link-color: var(--body-color);
21
+ --link-color-hover: rgb(var(--link-color-hover-rgb));
22
+ --input-focus-border-color: rgb(var(--input-focus-border-color-rgb));
23
+
24
+ --input-height: 40px;
25
+
26
+ --navbar-brand-padding-y: 25px;
27
+ --navbar-brand-min-width: 126px;
28
+ --navbar-brand-min-width-md: 126px;
29
+ --navbar-brand-min-width-lg: 126px;
30
+ --navbar-brand-min-width-xl: 126px;
31
+
32
+ --carousel-height: 560px;
33
+ --carousel-height-sm: 560px;
34
+ --carousel-height-md: 620px;
35
+ --carousel-caption-top: 125px;
36
+ --carousel-caption-top-xs: 150px;
37
+ --carousel-caption-top-md: 175px;
38
+
39
+ --page-padding-top: 120px;
40
+ --page-padding-top-md: 120px;
41
+ --page-padding-top-lg: 180px;
42
+ --page-detail-padding-top: 120px;
43
+ --page-detail-padding-top-md: 120px;
44
+ --page-detail-padding-top-lg: 180px;
45
+ }
46
+
47
+ // Bootstrap 4 overrides START
48
+ $input-btn-focus-color: rgba(var(--primary-rgb), 0.25) !default;
49
+ $input-focus-border-color: var(--input-focus-border-color) !default;
50
+ $custom-control-indicator-checked-disabled-bg: rgba(var(--primary-rgb), 0.5) !default;
51
+ $progress-bar-bg: var(--primary) !default;
52
+ $body-color: var(--body-color) !default;
53
+ $body-bg: var(--body-bg) !default;
54
+ $body-bg-accent: var(--body-bg-accent) !default;
55
+ $error-color: var(--body-color) !default;
56
+ $error-background: rgba(var(--body-color-rgb), 0.1) !default;
57
+ $hr-border-color: rgba(var(--body-color-rgb), 0.5) !default;
58
+ $list-group-bg: var(--body-bg) !default;
59
+ $list-group-border-color: rgba(var(--body-color-rgb), 0.125) !default;
60
+ // Bootstrap 4 overrides END
61
+
6
62
  // Bootstrap variables copied here, that some of the below are dependent on.
7
63
  $grid-gutter-width-base: 30px !default;
8
64
 
@@ -36,76 +92,64 @@ $spacer: math.div(5, 8) * 1rem; // 10px
36
92
 
37
93
  $spacers: (
38
94
  '0': 0,
39
- 'p5': ($spacer * 0.5), // 5px
40
- 'p75': ($spacer * 0.75), // 7.5px
41
- '1': $spacer, // 10px
42
- '2': ($spacer * 2), // 20px
43
- '2p5': ($spacer * 2.5), // 25px
44
- '3': ($spacer * 3), // 30px
45
- '4': ($spacer * 4), // 40px
46
- '5': ($spacer * 5), // 50px
95
+ 'p5': $spacer * 0.5,
96
+ // 5px
97
+ 'p75': $spacer * 0.75,
98
+ // 7.5px
99
+ '1': $spacer,
100
+ // 10px
101
+ '2': $spacer * 2,
102
+ // 20px
103
+ '2p5': $spacer * 2.5,
104
+ // 25px
105
+ '3': $spacer * 3,
106
+ // 30px
107
+ '4': $spacer * 4,
108
+ // 40px
109
+ '5': $spacer * 5,
110
+ // 50px
111
+ '1rem': 1rem
47
112
  );
48
113
 
49
- // Body / Core
50
- // ------------------------------------
51
-
52
- $primary: #35a0a8 !default;
53
- $secondary: #4cd3dd !default;
54
- $body-color: #fff !default;
55
- $body-bg: #0f0f0f !default;
56
- $body-bg-accent: get-accent-color($body-bg) !default;
57
- $error-color: $body-color !default;
58
- $error-background: rgba($body-color, 0.1) !default;
59
- $hr-border-color: rgba($body-color, 0.5) !default;
60
- $list-group-bg: $body-bg !default;
61
- $list-group-border-color: rgba($body-color, 0.125) !default;
62
-
63
114
  // Cookie Consent
64
- $cookie-consent-color: #000;
65
- $cookie-consent-link-color: $primary;
66
- $cookie-consent-hover-link-color: $secondary;
115
+ $cookie-consent-color: #000 !default;
116
+ $cookie-consent-link-color: var(--primary) !default;
117
+ $cookie-consent-hover-link-color: var(--secondary) !default;
67
118
 
68
119
  // Nav
69
120
  // ------------------------------------
70
121
  $navbar-background-color: transparent !default;
71
- $navbar-show-background-color: $body-bg-accent !default;
72
- $navbar-dark-active-color: $primary !default;
122
+ $navbar-show-background-color: var(--body-bg-accent) !default;
123
+ $navbar-dark-active-color: var(--primary) !default;
73
124
  $navbar-nav-link-padding-x: 1em !default;
74
125
  $navbar-nav-link-padding-y: 1em !default;
75
- $navbar-search-background-color: $body-bg-accent !default;
126
+ $navbar-search-background-color: var(--body-bg-accent) !default;
76
127
 
77
128
  // Uses navbar-dark theme so we can use variables for colouring
78
129
  $navbar-dark-active-color: #fd4766 !default;
79
- $navbar-dark-color: $body-color !default;
130
+ $navbar-dark-color: var(--body-color) !default;
80
131
  $navbar-dark-hover-color: #fd4766 !default;
81
132
 
82
- // Navbar Logo (Brand)
83
- $navbar-brand-padding-y: 25px !default;
84
- $navbar-brand-min-width: 126px !default;
85
- $navbar-brand-min-width-md: 126px !default;
86
- $navbar-brand-min-width-lg: 126px !default;
87
- $navbar-brand-min-width-xl: 126px !default;
88
-
89
133
  // Sub Navivgation
90
- $subnav-nav-item-color: $body-color !default;
91
- $subnav-nav-item-hover-background-color: $primary !default;
92
- $subnav-nav-item-active-background-color: $primary !default;
93
- $subnav-dropdown-background: $body-bg-accent !default;
134
+ $subnav-nav-item-color: var(--body-color) !default;
135
+ $subnav-nav-item-hover-background-color: var(--primary) !default;
136
+ $subnav-nav-item-active-background-color: var(--primary) !default;
137
+ $subnav-dropdown-background: var(--body-bg-accent) !default;
94
138
 
95
139
  // Buttons
96
- $button-text-color: $body-color !default;
97
- $button-text-color-hover: $body-color !default;
98
- $button-background: $primary !default;
99
- $button-background-hover: $secondary !default;
100
- $trailer-button-text-color: $body-color !default;
101
- $mobile-nav-link-color: $body-color !default;
102
-
103
- $signin-text-color: $body-color !default;
104
- $signin-text-color-hover: $primary !default;
140
+ $button-text-color: var(--body-color) !default;
141
+ $button-text-color-hover: var(--body-color) !default;
142
+ $button-background: var(--primary) !default;
143
+ $button-background-hover: var(--secondary) !default;
144
+ $trailer-button-text-color: var(--body-color) !default;
145
+ $mobile-nav-link-color: var(--body-color) !default;
146
+
147
+ $signin-text-color: var(--body-color) !default;
148
+ $signin-text-color-hover: var(--primary) !default;
105
149
  $signin-border-color: transparent !default;
106
150
  $signin-border-color-hover: transparent !default;
107
- $signin-background: rgba($body-color, 0.1) !default;
108
- $signin-background-hover: rgba($body-color, 0.2) !default;
151
+ $signin-background: rgba(var(--body-color-rgb), 0.1) !default;
152
+ $signin-background-hover: rgba(var(--body-color-rgb), 0.2) !default;
109
153
  $signin-background-lg: transparent !default;
110
154
  $signin-background-hover-lg: transparent !default;
111
155
 
@@ -116,54 +160,39 @@ $signup-border-color-hover: transparent !default;
116
160
  $signup-background: $button-background !default;
117
161
  $signup-background-hover: $button-background-hover !default;
118
162
 
119
- $signout-background: rgba($body-color, 0.1) !default;
120
- $signout-background-hover: rgba($body-color, 0.2) !default;
121
- $signout-text-color: $body-color !default;
122
- $signout-text-color-hover: $body-color !default;
123
-
124
- $link-color: $body-color !default;
163
+ $signout-background: rgba(var(--body-color-rgb), 0.1) !default;
164
+ $signout-background-hover: rgba(var(--body-color-rgb), 0.2) !default;
165
+ $signout-text-color: var(--body-color) !default;
166
+ $signout-text-color-hover: var(--body-color) !default;
125
167
 
126
168
  // Image Gradient Overlays
127
- $top-gradient-color: $body-bg !default;
128
- $right-gradient-bg-color: $body-bg !default;
129
- $bottom-gradient-bg-color: $body-bg !default;
130
- $left-gradient-bg-color: $body-bg !default;
169
+ $top-gradient-color: var(--body-bg-rgb) !default;
170
+ $right-gradient-bg-color: var(--body-bg-rgb) !default;
171
+ $bottom-gradient-bg-color: var(--body-bg-rgb) !default;
172
+ $left-gradient-bg-color: var(--body-bg-rgb) !default;
131
173
 
132
174
  // Carousel
133
- $carousel-bg-color: $body-bg !default;
134
- $carousel-height: 470px !default;
135
- $carousel-height-sm: 470px !default;
136
- $carousel-height-md: 620px !default;
137
- $carousel-caption-top: 150px !default;
138
- $carousel-caption-top-md: 175px !default;
139
-
140
- // Pages
141
- $page-padding-top: 120px !default;
142
- $page-padding-top-md: 120px !default;
143
- $page-padding-top-lg: 180px !default;
144
- $page-detail-padding-top: 120px !default;
145
- $page-detail-padding-top-md: 120px !default;
146
- $page-detail-padding-top-lg: 180px !default;
175
+ $carousel-bg-color: var(--body-bg) !default;
147
176
 
148
177
  // Footer
149
178
  $footer-brand-min-width: 100px !default;
150
179
  $footer-brand-min-width-md: 100px !default;
151
- $footer-bar-background-color: $body-bg-accent !default;
180
+ $footer-bar-background-color: var(--body-bg-accent) !default;
152
181
 
153
182
  // Social
154
183
  // ------------------------------------
155
- $facebook-color: $body-color !default;
156
- $instagram-color: $body-color !default;
157
- $twitter-color: $body-color !default;
158
- $youtube-color: $body-color !default;
159
- $linkedin-color: $body-color !default;
160
- $letterboxd-color: $body-color !default;
184
+ $facebook-color: var(--body-color) !default;
185
+ $instagram-color: var(--body-color) !default;
186
+ $twitter-color: var(--body-color) !default;
187
+ $youtube-color: var(--body-color) !default;
188
+ $linkedin-color: var(--body-color) !default;
189
+ $letterboxd-color: var(--body-color) !default;
161
190
 
162
191
  // Meta Items
163
192
  // ------------------------------------
164
193
  $meta-item-border-radius: 3px !default;
165
194
  $featured-meta-item-body-padding: 10px !default;
166
- $meta-item-body-color: $body-color !default;
195
+ $meta-item-body-color: var(--body-color) !default;
167
196
  $meta-item-tagline-classification-border-radius: $meta-item-border-radius !default;
168
197
  $meta-item-availability-tag-margin: 5px !default;
169
198
 
@@ -26,19 +26,8 @@
26
26
  .s72-userwishlist-buttons {
27
27
  .s72-btn-wishlist {
28
28
  @extend .btn;
29
- font-size: 12px;
30
- font-weight: $font-weight-bold;
31
- margin-right: 32px; // was 10px before awards needed some space
32
- padding-bottom: 3px;
33
29
  padding-left: 0;
34
- padding-top: 3px;
35
30
 
36
- span {
37
- @extend .d-flex;
38
- align-items: center;
39
- flex-direction: row;
40
- justify-content: center;
41
- }
42
31
 
43
32
  .s72-icon {
44
33
  font-size: 32px !important;
@@ -47,7 +36,26 @@
47
36
  }
48
37
  }
49
38
 
39
+ .s72-userwishlist-buttons .s72-btn-wishlist,
40
+ .meta-award-nomination {
41
+ font-size: 12px;
42
+ font-weight: $font-weight-bold;
43
+
44
+ span {
45
+ @extend .d-flex;
46
+ align-items: center;
47
+ flex-direction: row;
48
+ justify-content: center;
49
+ }
50
+ }
51
+
52
+ .s72-userwishlist-buttons .s72-btn-wishlist {
53
+ margin-right: 0.5rem;
54
+ padding-bottom: 3px;
55
+ padding-top: 3px;
56
+ }
57
+
50
58
  .poster .s72-userwishlist-buttons .s72-btn-wishlist {
51
59
  margin: 0;
52
60
  padding: 0;
53
- }
61
+ }
@@ -1,5 +1,3 @@
1
- @import '_functions';
2
-
3
1
  @import '_variables';
4
2
 
5
3
  @import '_bootstrap4';
@@ -14,6 +12,7 @@
14
12
  @import '_forms';
15
13
  @import '_card';
16
14
 
15
+ @import '_skip-link';
17
16
  @import '_nav';
18
17
 
19
18
  @import '_swiper';
@@ -53,4 +52,4 @@
53
52
  // @import local must be last in this file.
54
53
  @import 'local/local';
55
54
 
56
- // DO NOT PUT ANYTHING IN THIS FILE.
55
+ // DO NOT PUT ANYTHING IN THIS FILE.
@@ -3,8 +3,16 @@
3
3
  {{import "./nav/nav.jet"}}
4
4
  {{import "./google.jet" }}
5
5
  {{import "./footer/footer.jet" }}
6
+
6
7
  {{CDN := "//cdn.shift72.com/1.3"}}
7
8
  {*{CDN := "//localhost:3000"}*}
9
+
10
+ {{CSSFilename := ""}}
11
+ {{if isEnabled("self_service_css") && site.CSSFilename != "" }}
12
+ {{CSSFilename = site.CSSFilename}}
13
+ {{end}}
14
+ {*{CSSFilename = "local.css"}*}
15
+
8
16
  <!DOCTYPE html>
9
17
  <html lang="{{lang.Code}}">
10
18
  <head>
@@ -13,14 +21,20 @@
13
21
  <link rel="manifest" href="/manifest.json">
14
22
  <link rel="preload" href="/{{lang.DefinitionFilePath}}" as="fetch" crossorigin type="application/json">
15
23
  <link rel="preload" href="/classifications.all.json" as="fetch" crossorigin type="application/json">
16
- <!-- Kibble:{{ version }} -->
17
- <!-- Template:{{site.SiteConfig.Version}} -->
24
+ <!-- Kibble: {{version}} -->
25
+ {{if site.SiteConfig.CoreTemplateVersion != ""}}
26
+ <!-- Core-Template: {{site.SiteConfig.CoreTemplateVersion}} -->
27
+ {{end}}
28
+ <!-- Template: {{site.SiteConfig.Version}} -->
18
29
  <link rel="stylesheet" href="{{CDN}}/s72.ui.css">
19
30
  <link rel="stylesheet" href="{{CDN}}/s72.transactional.css">
20
31
  <link rel="stylesheet" href="/styles/swiper.css">
21
32
 
22
33
  {{yield font()}}
23
34
  <link rel="stylesheet" href="/styles/main.css">
35
+ {{if CSSFilename != "" }}
36
+ <link rel="stylesheet" href="/styles/{{CSSFilename}}">
37
+ {{end}}
24
38
 
25
39
  <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
26
40
  <link rel="icon" href="/favicon.ico" type="image/x-icon">
@@ -33,7 +47,7 @@
33
47
  <script src="{{CDN}}/s72.core.js" defer></script>
34
48
  <script src="{{CDN}}/s72.ui.js" defer></script>
35
49
 
36
- <script src="/scripts/main.js" defer></script>
50
+ <script src="/scripts/main.js" defer></script>
37
51
 
38
52
  <script src="{{CDN}}/s72.transactional.js" defer></script>
39
53
  <script src="https://js.stripe.com/v3/" defer></script>
@@ -51,21 +65,15 @@
51
65
  </script>
52
66
 
53
67
  <script type="text/javascript" src="/scripts/swiper.min.js"></script>
68
+
69
+ {{yield googleGa4Script()}}
54
70
  </head>
55
71
  <body>
56
- <s72-cookie-consent></s72-cookie-consent>
57
72
 
58
- <section class="sr-only">
59
- <h2>{{i18n("wcag_skip_links_header")}}</h2>
60
- <ul>
61
- <li>
62
- <a href="#main">{{i18n("wcag_skip_links_content")}}</a>
63
- </li>
64
- <li>
65
- <a href="#footer">{{i18n("wcag_skip_links_footer")}}</a>
66
- </li>
67
- </ul>
68
- </section>
73
+ <h2 class="sr-only">{{i18n("wcag_skip_links_header")}}</h2>
74
+ <a class="skip-link" href="#main">{{i18n("wcag_skip_links_content")}}</a>
75
+
76
+ <s72-cookie-consent></s72-cookie-consent>
69
77
 
70
78
  {{yield googleTagManagerNoScript()}}
71
79
 
@@ -78,5 +86,6 @@
78
86
  {{yield footer()}}
79
87
 
80
88
  {{yield googleScripts()}}
89
+ <s72-donate-button></s72-donate-button>
81
90
  </body>
82
91
  </html>
@@ -1,3 +1,10 @@
1
+ {{block googleGa4Script(analyticsId=config("google_analytics_id"))}}
2
+ {{if hasPrefix(analyticsId,"G")}}
3
+ <!-- GA4 script if G tracking code is provided -->
4
+ <script async src="https://www.googletagmanager.com/gtag/js?id={{analyticsId}}"></script>
5
+ {{end}}
6
+ {{end}}
7
+
1
8
  {{block googleScripts(tagManagerId=config("google_tag_manager_id"), analyticsId=config("google_analytics_id"))}}
2
9
  <!-- Google integration scripts -->
3
10
  <script>
@@ -9,17 +16,27 @@
9
16
  })(window,document,'script','dataLayer','{{ tagManagerId }}')
10
17
  }
11
18
 
19
+ <!-- GA4 code snippet if G tracking code is provided, else use legacy UA code snippet -->
20
+ {{if hasPrefix(analyticsId,"G")}}
21
+ function loadGoogleAnalytics() {
22
+ window.dataLayer = window.dataLayer || [];
23
+ function gtag(){dataLayer.push(arguments);}
24
+ gtag('js', new Date());
12
25
 
13
- function loadGoogleAnalytics() {
14
- (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
15
- (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
16
- m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
17
- })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
26
+ gtag('config', '{{analyticsId}}');
27
+ }
28
+ {{else}}
29
+ function loadGoogleAnalytics() {
30
+ (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
31
+ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
32
+ m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
33
+ })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
18
34
 
19
- ga('create', '{{analyticsId}}', 'auto');
20
- ga('require', 'ecommerce');
21
- ga('send', 'pageview');
22
- }
35
+ ga('create', '{{analyticsId}}', 'auto');
36
+ ga('require', 'ecommerce');
37
+ ga('send', 'pageview');
38
+ }
39
+ {{end}}
23
40
 
24
41
  // Only load Google Tag Manager if a/ the frontend cookie consent isn't required or b/ they've agreed to the cookie consent
25
42
  var googleTagManagerEnabled = {{ (len(tagManagerId) > 0) ? "true" : "false" }};
@@ -51,4 +68,3 @@
51
68
  <!-- End Google Tag Manager (noscript) -->
52
69
  {{end}}
53
70
  {{end}}
54
-
@@ -1,5 +1,6 @@
1
- {{block bundleButtons(class, slug, title)}}
1
+ {{block bundleButtons(class, slug, title, promoURL)}}
2
2
  <div class="{{class}}">
3
3
  <s72-pricing-buttons data-slug="{{slug}}" data-title="{{title}}"></s72-pricing-buttons>
4
+ {{yield bundleExtras(class="meta-detail-extras", slug=slug, promoURL=promoURL)}}
4
5
  </div>
5
6
  {{end}}
@@ -28,11 +28,10 @@
28
28
 
29
29
  {{yield bundleTagline(class="meta-detail-tagline") bundle}}
30
30
 
31
- {{yield bundleButtons(class="meta-detail-buttons", slug=bundle.Slug, title=bundle.Title)}}
31
+ {{yield bundleButtons(class="meta-detail-buttons", slug=bundle.Slug, title=bundle.Title, promoURL=bundle.PromoURL)}}
32
32
 
33
33
  {{yield bundleSynopsis(class="meta-detail-synopsis", synopsis=bundle.Description)}}
34
34
 
35
- {{yield bundleExtras(class="meta-detail-extras", slug=bundle.Slug, promoURL=bundle.PromoURL)}}
36
35
  </div>
37
36
 
38
37
  {{yield bundleList(items=bundle.Items)}}