@shift72/core-template 0.4.2 → 0.5.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 (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)}}