jekyll-theme-consulting 0.3.3 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 94e77bf5370dec8681cf1bdcf454f61f4ea5ef5ead2c57797b672e71dd16e654
4
- data.tar.gz: 798d30cc55b84fcbc398805136c6e9269b2a537c11415a37759085c4140619ab
3
+ metadata.gz: abad23a2c417ac2d9db0895c402ab9d5e855195d706536c6c7cf0aee18766cc6
4
+ data.tar.gz: 16b5c0e19359200f5c6e46037d3c0a6d985d562b2f1988b7b720603a3b8758d3
5
5
  SHA512:
6
- metadata.gz: 84d8859d898cc5a4985e79a13db6b2f9244abe401466d95e8bcc5bfa4de547ebc5d1446679c85faa03b70b7a43e864a24c8ab4c5ab76dc551195b28a05a02df5
7
- data.tar.gz: 25b4c143ceca28e5f49645f8c09ec31f63b93549d1bdcfdca313754810a893b0f73a66165bd169322256722b638f32605b4075fd1dd1f26bfd2f66e901cd67fd
6
+ metadata.gz: 47ff15e4c18c8a5fbc9acb6c3c5aa405f756a377688937dc48d9b27863f3b89a857c795c82a97ebf50b343ebe9b45bce003b13efe6aff3c6fec5a786cc6d78ea
7
+ data.tar.gz: 9c89bce055854b508232ecee64d66831de5d008916634bd1f9334367f0a97e9cdeb056d8b28fc372e5767af892a16584ffdc5324822ef26d7537229c07dfece7
data/README.md CHANGED
@@ -1,11 +1,23 @@
1
1
  # Consulting - Jekyll theme
2
2
 
3
- > A multilingual jekyll template for businesses.
3
+ > A sober, hassle-free, jekyll template for businesses.
4
4
 
5
5
  You can preview the theme [here](https://moodule.github.io/jekyll-theme-consulting)
6
6
 
7
7
  ![Consulting Theme](assets/images/screenshot.jpg "Consulting Theme")
8
8
 
9
+ # Features
10
+
11
+ > **Responsive**: out of the box support for all screen sizes, be it smartphones, laptops, tablets...
12
+
13
+ > **Multilingual**: easily manage pages, menu, url, dates, sitemap in several languages
14
+
15
+ > **Customizable**: theme colors, menu, social items can be changed from a central config file
16
+
17
+ > **GDPR ready**: bundled with a cookie consent plugin and a boilerplate privacy policy compliant with GDPR
18
+
19
+ > **SEO ready**: sitemap, robots.txt and tags are automatically generated for the website
20
+
9
21
  # Installation
10
22
 
11
23
  Add this line to your Jekyll site's `Gemfile`:
@@ -39,32 +51,66 @@ and [creating pages](https://jekyllrb.com/docs/pages/).
39
51
  You can use the following custom parameters in `_config.yml`.
40
52
 
41
53
  ### Site
42
- - `subtitle` sets the text for the lighter colored text next to your site's title.
54
+ Both `title` and `subtitle` are displayed side by side :
55
+ - in the tab name
56
+ - at the top of the page, in the header
43
57
 
44
58
  ### Social
45
- - `500px_url`
46
- - `facebook_url`
47
- - `github_url`
48
- - `gitlab_url`
49
- - `googleplus_url`
50
- - `instagram_url`
51
- - `linkedin_url`
52
- - `pinterest_url`
53
- - `slack_url`
54
- - `twitter_url`
59
+ Social icons will appear for each url your fill in, among `facebook_url` etc.
55
60
 
56
61
  ### Contact
57
- - `street_address`
58
- - `city`
59
- - `state`
60
- - `zip_code`
61
- - `country`
62
- - `phone`
63
- - `email`
62
+ Your contact information can be used in contact forms, the footer or anywhere else.
64
63
 
65
64
  ## Publication
66
65
 
67
- To post your website as a Github page, fork this reposity and create a branch named `gh-pages`, then start editing the `_config.yml` file.
66
+ ### On Github Pages
67
+
68
+ In your own website's repository, edit the `_config.yml` file:
69
+
70
+ ```yaml
71
+ url: "https://<github-account-name>.github.io/<repository-name>"
72
+ ```
73
+
74
+ Build the website with:
75
+
76
+ $ JEKYLL_ENV=production bundle exec jekyll build
77
+
78
+ Commit all your work to the current branch.
79
+
80
+ Create a branch named `gh-pages`:
81
+
82
+ $ git checkout -b gh-pages
83
+
84
+ And finally replace the repository's content with the generated webpages:
85
+
86
+ $ mkdir ~/backup
87
+ $ mv ./* ~/backup/
88
+ $ mv ~/backup/.git ./
89
+ $ mv ~/backup/_site/* ./
90
+ $ git add .
91
+ $ git commit -m "First draft"
92
+
93
+ The repository's content is backup in the home directory of the user.
94
+
95
+ And finally push to github
96
+
97
+ $ git push --u origin gh-pages
98
+
99
+ ### On any server
100
+
101
+ In your own website's directory, edit the `_config.yml` file:
102
+
103
+ ```yaml
104
+ url: "https:<domain-name>"
105
+ ```
106
+
107
+ Build the website with:
108
+
109
+ $ JEKYLL_ENV=production bundle exec jekyll build
110
+
111
+ Copy the content of the folder `_site` to your server, most likely in `www`.
112
+
113
+ If necessary, configure your server to serve this directory.
68
114
 
69
115
  # Contributing
70
116
 
@@ -79,10 +125,14 @@ To test the theme, run `bundle exec jekyll serve` and open your browser at `http
79
125
  When the theme is released, only the files in `_layouts`, `_includes`, `_sass` and `assets` tracked with Git will be bundled.
80
126
  To add a custom directory to the theme-gem, please edit the regexp in `jekyll-theme-consulting.gemspec` accordingly.
81
127
 
82
- # Credits
128
+ # Credits
83
129
 
84
130
  Inspired by the work of [@ajlkn][ajlkn].
85
131
 
132
+ Uses the basic template from the [cookie consent plugin][cookieconsent].
133
+
134
+ Space image in the banner: the Pillars of Creation, courtesy of NASA.
135
+
86
136
  Repository [Jekyll logo][jekyll-logo] icon licensed under a [Creative Commons Attribution 4.0 International License][cc4-license].
87
137
 
88
138
  ## License
@@ -92,5 +142,6 @@ The theme is available as open source under the terms of the [CC-BY-4.0](LICENSE
92
142
  [ajlkn]: https://aj.lkn.io/
93
143
  [cc4-license]: http://choosealicense.com/licenses/cc-by-4.0/
94
144
  [contributor-covenant]: http://contributor-covenant.org
145
+ [cookieconsent]: https://github.com/osano/cookieconsent
95
146
  [html5up]: https://html5up.net/
96
147
  [jekyll-logo]: https://github.com/jekyll/brand
@@ -1,5 +1,5 @@
1
1
  <!-- Banner -->
2
- <section id="banner">
2
+ <section id="banner" {% if include.style %}class="{{ include.style.class | default: '' }}" style="background-image: url({{ include.style.image | absolute_url }});"{% endif %}>
3
3
  <div class="content">
4
4
  <header>
5
5
  <h1>{{ include.title }}</h1>
@@ -7,10 +7,7 @@
7
7
  </header>
8
8
  {% if include.description %}<p>{{ include.description }}</p>{% endif %}
9
9
  <ul class="actions">
10
- <li><a href="{{ include.button_url | default: '#' }}" class="button big">{{ include.button_label | default: 'Ask for advice!' }}</a></li>
10
+ <li><a href="{{ include.button.url | default: '#' }}" class="button big">{{ include.button.label | default: 'Ask for advice!' }}</a></li>
11
11
  </ul>
12
12
  </div>
13
- <span class="image object">
14
- <img src="{{ include.image_url | default: 'assets/images/pic01.jpg' | absolute_url }}" alt="" />
15
- </span>
16
13
  </section>
@@ -1,13 +1,38 @@
1
- <!-- Section -->
2
- <section>
3
- <header class="major">
4
- <h2>{{ include.title }}</h2>
5
- </header>
6
- <ul class="contact">
7
- <li class="fa-envelope-o"><a href="#">{{ site.email }}</a></li>
8
- <li class="fa-phone">{{ site.phone }}</li>
9
- <li class="fa-home">{{ site.street_address }}<br />
10
- {{ site.city }}, {{ site.state }} {{ site.zip_code }}<br />
11
- {{ site.country }}</li>
12
- </ul>
13
- </section>
1
+ <section id="contact" class="inverted" style="{{ include.style | default: nil }}">
2
+ <header class="major">
3
+ <h2>Contact Me</h2>
4
+ </header>
5
+ <div class="row gtr-200">
6
+ <div class="col-6 col-12-medium">
7
+ <form method="post" action="#">
8
+ <div class="row gtr-uniform">
9
+ <div class="col-6 col-12-xsmall">
10
+ <input type="text" name="cta-name" id="cta-name" value="" placeholder="Name" />
11
+ </div>
12
+ <div class="col-6 col-12-xsmall">
13
+ <input type="email" name="cta-email" id="cta-email" value="" placeholder="Email" />
14
+ </div>
15
+ <!-- Break -->
16
+ <div class="col-12">
17
+ <textarea name="cta-message" id="cta-message" placeholder="Enter your message" rows="6">Please get back to me!</textarea>
18
+ </div>
19
+ <!-- Break -->
20
+ <div class="col-12">
21
+ <ul class="actions">
22
+ <li><input type="submit" value="Send Message" class="primary button solid fa-envelope" /></li>
23
+ <li><input type="reset" value="Reset" class="icon button fa-undo" /></li>
24
+ </ul>
25
+ </div>
26
+ </div>
27
+ </form>
28
+ </div>
29
+ <div class="col-6 col-12-medium">
30
+ <ul class="contact">
31
+ <li class="icon solid fa-envelope"><a href="#">{{ site.email }}</a></li>
32
+ <li class="icon solid fa-phone">{{ site.phone }}</li>
33
+ <li class="icon solid fa-home">{{ site.street_address }}<br />
34
+ {{ site.zip_code }}, {{ site.city }}</li>
35
+ </ul>
36
+ </div>
37
+ </div>
38
+ </section>
@@ -1,6 +1,11 @@
1
1
  <!-- Footer -->
2
2
  <footer id="footer">
3
3
  <section class="inverted">
4
- <p class="copyright">&copy; {{ site.copyright_holder }}. All rights reserved. Design: <a href="https://github.com/moodule">MOODULE</a>.</p>
4
+ <p class="copyright">
5
+ &copy; {{ site.copyright_holder }}. All rights reserved.
6
+ Design: <a href="https://github.com/moodule">MOODULE</a>.
7
+ {% if site.privacy_policy_url %}<a href="{{ site.privacy_policy_url | absolute_url }}">Privacy policy</a>.{% endif %}
8
+ {% if site.legal_terms_url %}<a href="{{ site.legal_terms_url | absolute_url }}">Legal terms</a>.{% endif %}
9
+ </p>
5
10
  </section>
6
11
  </footer>
@@ -1,5 +1,5 @@
1
1
  <!-- Header -->
2
- <header id="header">
2
+ <header id="header" {% if include.style %}class="{{ include.style.class | default: '' }}" style="background-image: url({{ include.style.image | absolute_url }});"{% endif %}>
3
3
  <a href="{{ '' | absolute_url }}" class="logo">
4
4
  <strong>{{ include.title }}</strong> - {{ include.subtitle }}
5
5
  </a>
@@ -7,6 +7,6 @@
7
7
  <li>
8
8
  <a href="{{ page.url | absolute_url }}" class="{{ page.lang }}">{{ page.lang }}</a>
9
9
  </li>
10
- {% endif%}
10
+ {% endif %}
11
11
  {% endfor %}
12
- </ul>
12
+ </ul>
@@ -3,4 +3,17 @@
3
3
  <script src="{{ 'assets/js/browser.min.js' | absolute_url }}"></script>
4
4
  <script src="{{ 'assets/js/breakpoints.min.js' | absolute_url }}"></script>
5
5
  <script src="{{ 'assets/js/util.js' | absolute_url }}"></script>
6
- <script src="{{ 'assets/js/main.js' | absolute_url }}"></script>
6
+ <script src="{{ 'assets/js/main.js' | absolute_url }}"></script>
7
+ <script src="{{ 'assets/js/cookieconsent.min.js' | absolute_url }}" data-cfasync="false"></script>
8
+ <script>
9
+ window.cookieconsent.initialise({
10
+ "palette": {
11
+ "popup": {
12
+ "background": "#252e39"
13
+ },
14
+ "button": {
15
+ "background": "#14a7d0"
16
+ }
17
+ }
18
+ });
19
+ </script>
@@ -5,8 +5,14 @@
5
5
  {% assign title = page.title | default: site.title %}
6
6
  {% assign subtitle = page.subtitle | default: site.subtitle %}
7
7
  {% assign description = page.description | default: site.description %}
8
+ {% assign header = page.header | default: site.header %}
8
9
 
9
10
  <!DOCTYPE html>
11
+ <!--
12
+ Consulting theme by MOODULE
13
+ https://github.com/moodule
14
+ Free for personal and commercial use under the CCA 4.0 license
15
+ -->
10
16
  <html lang="{{ lang }}">
11
17
 
12
18
  {% include head.html title=title subtitle=subtitle %}
@@ -20,7 +26,7 @@
20
26
  <div id="main">
21
27
  <div class="inner">
22
28
 
23
- {% include header.html title=title subtitle=subtitle %}
29
+ {% include header.html title=title subtitle=subtitle style=header.style %}
24
30
 
25
31
  {{ content }}
26
32
 
data/_layouts/home.html CHANGED
@@ -1,8 +1,11 @@
1
1
  ---
2
2
  layout: default
3
3
  ---
4
- {% include banner.html title=page.title subtitle=page.subtitle description=page.description button_label=page.cta_label button_url=page.cta_destination %}
4
+ {% assign banner = page.banner | default: site.banner %}
5
+ {% assign title = banner.title | default: page.title | default: site.title %}
6
+ {% assign subtitle = banner.subtitle | default: page.subtitle | default: site.subtitle %}
7
+ {% assign description = banner.description | default: page.description | default: site.description %}
5
8
 
6
- {{ content }}
9
+ {% include banner.html title=title subtitle=subtitle description=description button=banner.button style=banner.style %}
7
10
 
8
- {% include thread.html %}
11
+ {{ content }}
data/_layouts/page.html CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  layout: default
3
3
  ---
4
- {{ content }}
4
+ {{ content }}
data/_layouts/post.html CHANGED
@@ -24,4 +24,4 @@ layout: default
24
24
  {% endif %}
25
25
 
26
26
  <a class="u-url" href="{{ page.url | absolute_url }}" hidden></a>
27
- </article>
27
+ </article>
File without changes
@@ -0,0 +1,402 @@
1
+ .cc-window {
2
+ opacity: 1;
3
+
4
+ -webkit-transition: opacity 1s ease;
5
+ -moz-transition: opacity 1s ease;
6
+ -ms-transition: opacity 1s ease;
7
+ -o-transition: opacity 1s ease;
8
+ transition: opacity 1s ease;
9
+ }
10
+
11
+ .cc-window.cc-invisible {
12
+ opacity: 0;
13
+ }
14
+
15
+ /* only animate ifhas class 'cc-animate' */
16
+ .cc-animate.cc-revoke {
17
+ -webkit-transition: transform 1s ease;
18
+ -moz-transition: transform 1s ease;
19
+ -ms-transition: transform 1s ease;
20
+ -o-transition: transform 1s ease;
21
+ transition: transform 1s ease;
22
+ }
23
+ .cc-animate.cc-revoke.cc-top {
24
+ transform: translateY(-2em);
25
+ }
26
+ .cc-animate.cc-revoke.cc-bottom {
27
+ transform: translateY(2em);
28
+ }
29
+ .cc-animate.cc-revoke.cc-active.cc-top {
30
+ transform: translateY(0);
31
+ }
32
+ .cc-animate.cc-revoke.cc-active.cc-bottom {
33
+ transform: translateY(0);
34
+ }
35
+ .cc-revoke:hover {
36
+ transform: translateY(0);
37
+ }
38
+
39
+ .cc-grower {
40
+ /* Initially we don't want any height, and we want the contents to be hidden */
41
+ max-height: 0;
42
+ overflow: hidden;
43
+
44
+ /* Set our transitions up. */
45
+ -webkit-transition: max-height 1s;
46
+ -moz-transition: max-height 1s;
47
+ -ms-transition: max-height 1s;
48
+ -o-transition: max-height 1s;
49
+ transition: max-height 1s;
50
+ }
51
+
52
+ /* the popup window */
53
+ .cc-window,
54
+ .cc-revoke {
55
+ position: fixed;
56
+ overflow: hidden;
57
+ box-sizing: border-box; /* exclude padding when dealing with width */
58
+
59
+ font-family: Helvetica, Calibri, Arial, sans-serif;
60
+ font-size: 16px; /* by setting the base font here, we can size the rest of the popup using CSS `em` */
61
+ line-height: 1.5em;
62
+
63
+ display: flex;
64
+ flex-wrap: nowrap;
65
+
66
+ /* the following are random unjustified styles - just because - should probably be removed */
67
+ z-index: 9998;
68
+ }
69
+
70
+ .cc-revoke {
71
+ z-index: 9999;
72
+ }
73
+
74
+ .cc-window.cc-static {
75
+ position: static;
76
+ }
77
+
78
+ /* 2 basic types of window - floating / banner */
79
+ .cc-window.cc-floating {
80
+ padding: 2em;
81
+ max-width: 24em; /* 1em == 16px therefore 24em == 384px */
82
+ flex-direction: column;
83
+ }
84
+ .cc-window.cc-banner {
85
+ padding: 1em 1.8em;
86
+ width: 100%;
87
+ flex-direction: row;
88
+ }
89
+
90
+ .cc-revoke {
91
+ padding: 0.5em;
92
+ }
93
+ .cc-revoke:hover {
94
+ text-decoration: underline;
95
+ }
96
+
97
+ .cc-header {
98
+ font-size: 18px;
99
+ font-weight: bold;
100
+ }
101
+
102
+ /* clickable things */
103
+ .cc-btn,
104
+ .cc-link,
105
+ .cc-close,
106
+ .cc-revoke {
107
+ cursor: pointer;
108
+ }
109
+
110
+ .cc-link {
111
+ opacity: 0.8;
112
+ display: inline-block;
113
+ border: none;
114
+ padding: 0.2em;
115
+ text-decoration: underline;
116
+ }
117
+ .cc-link:hover {
118
+ opacity: 1;
119
+ }
120
+ .cc-link:active,
121
+ .cc-link:visited {
122
+ color: initial;
123
+ }
124
+
125
+ .cc-btn {
126
+ display: block;
127
+ padding: 0.4em 0.8em;
128
+ font-size: 0.9em;
129
+ font-weight: bold;
130
+ border-width: 2px;
131
+ border-style: solid;
132
+ text-align: center;
133
+ white-space: nowrap;
134
+ }
135
+
136
+ .cc-highlight .cc-btn:first-child {
137
+ background-color: transparent;
138
+ border-color: transparent;
139
+ }
140
+
141
+ .cc-highlight .cc-btn:first-child:hover,
142
+ .cc-highlight .cc-btn:first-child:focus {
143
+ background-color: transparent;
144
+ text-decoration: underline;
145
+ }
146
+
147
+ .cc-close {
148
+ display: block;
149
+ position: absolute;
150
+ top: 0.5em;
151
+ right: 0.5em;
152
+ font-size: 1.6em;
153
+ opacity: 0.9;
154
+
155
+ /* seeing as this contains text and not an image, the element taller than it is wide (because it is text) */
156
+ /* - we want it to be a square, because it's acting as an icon */
157
+ /* - setting the line height normalizes the height */
158
+ line-height: 0.75;
159
+ }
160
+ .cc-close:hover,
161
+ .cc-close:focus {
162
+ opacity: 1;
163
+ }
164
+
165
+ /* This file should contain styles that modifies the popup layout. */
166
+ /* By layout, we mean the physical position of the elements on the popup window, and the margin / padding around those elements. */
167
+
168
+ .cc-revoke.cc-top {
169
+ top: 0;
170
+ left: 3em;
171
+ border-bottom-left-radius: 0.5em;
172
+ border-bottom-right-radius: 0.5em;
173
+ }
174
+ .cc-revoke.cc-bottom {
175
+ bottom: 0;
176
+ left: 3em;
177
+ border-top-left-radius: 0.5em;
178
+ border-top-right-radius: 0.5em;
179
+ }
180
+ .cc-revoke.cc-left {
181
+ left: 3em;
182
+ right: unset;
183
+ }
184
+ .cc-revoke.cc-right {
185
+ right: 3em;
186
+ left: unset;
187
+ }
188
+
189
+ /**************************************** FLOATING ****************************************/
190
+
191
+ /* these classes position the floating element */
192
+ .cc-top {
193
+ top: 1em;
194
+ }
195
+ .cc-left {
196
+ left: 1em;
197
+ }
198
+ .cc-right {
199
+ right: 1em;
200
+ }
201
+ .cc-bottom {
202
+ bottom: 1em;
203
+ }
204
+
205
+ /* links that are direct decendants should be displayed as block */
206
+ .cc-floating > .cc-link {
207
+ margin-bottom: 1em;
208
+ }
209
+
210
+ .cc-floating .cc-message {
211
+ display: block;
212
+ margin-bottom: 1em;
213
+ }
214
+
215
+ .cc-window.cc-floating .cc-compliance {
216
+ flex: 1 0 auto;
217
+ }
218
+
219
+ /**************************************** BANNER ****************************************/
220
+
221
+ .cc-window.cc-banner {
222
+ align-items: center;
223
+ }
224
+
225
+ .cc-banner.cc-top {
226
+ left: 0;
227
+ right: 0;
228
+ top: 0;
229
+ }
230
+ .cc-banner.cc-bottom {
231
+ left: 0;
232
+ right: 0;
233
+ bottom: 0;
234
+ }
235
+
236
+ .cc-banner .cc-message {
237
+ display: block;
238
+ flex: 1 1 auto;
239
+ max-width: 100%;
240
+ margin-right: 1em;
241
+ }
242
+
243
+ /* COMPLIANCE BOX */
244
+
245
+ .cc-compliance {
246
+ display: flex;
247
+ align-items: center;
248
+ justify-content: space-between;
249
+ }
250
+ .cc-floating .cc-compliance > .cc-btn {
251
+ flex: 1;
252
+ }
253
+
254
+ .cc-btn + .cc-btn {
255
+ margin-left: 0.5em;
256
+ }
257
+
258
+ /* Categories Layout */
259
+ .cc-window.cc-type-categories {
260
+ display : inline-flex;
261
+ flex-direction: column;
262
+ overflow : visible;
263
+ .form{
264
+ text-align: right;
265
+ }
266
+ .cc-btn {
267
+ margin: 0;
268
+ &.cc-save {
269
+ margin : 0;
270
+ display : inline-block;
271
+ }
272
+ }
273
+ }
274
+ .cc-categories {
275
+ display: inline-flex;
276
+ .cc-category{
277
+ display : flex;
278
+ max-width: 100%;
279
+ margin : 0 2px;
280
+ position : relative;
281
+ }
282
+ .cc-btn {
283
+ border-right: none;
284
+ outline : none;
285
+ input[type=checkbox]{
286
+ float: left;
287
+ height: 26px;
288
+ width: calc( 100% - 22px );
289
+ display: block;
290
+ position: absolute;
291
+ top: 0;
292
+ left: 2px;
293
+ cursor: pointer;
294
+ }
295
+ &:not(.cc-info):not(.cc-save){
296
+ padding-left: 26px;
297
+ }
298
+ }
299
+ .cc-info {
300
+ border-left : none;
301
+ border-right: 2px solid lightgrey;
302
+ padding : 4px;
303
+ font-variant: all-small-caps;
304
+ &:focus + .cc-tooltip{
305
+ display: block;
306
+ }
307
+ }
308
+ .cc-tooltip{
309
+ display : none;
310
+ position : absolute;
311
+ z-index : 3;
312
+ width : 190px;
313
+ bottom : 46px;
314
+ padding : 8px;
315
+ border : thin solid lightgrey;
316
+ box-shadow: 1px 1px 4px rgba( 150, 150, 150, .7 );
317
+ &:after{
318
+ content : "";
319
+ width : 10px;
320
+ height : 10px;
321
+ transform : rotate(45deg);
322
+ position : absolute;
323
+ bottom : -7px;
324
+ left : 10px;
325
+ box-shadow: 2px 1px 1px rgba( 200, 200, 200, .5 );
326
+ }
327
+ p {
328
+ margin: 0;
329
+ }
330
+ }
331
+ }
332
+
333
+ @media print {
334
+ .cc-window,
335
+ .cc-revoke {
336
+ display: none;
337
+ }
338
+ }
339
+
340
+ @media screen and (max-width: 900px) {
341
+ .cc-btn {
342
+ white-space: normal;
343
+ }
344
+ }
345
+
346
+ /* dimensions for 'iPhone6 Plus' and lower */
347
+ @media screen and (max-width: 414px) and (orientation: portrait),
348
+ screen and (max-width: 736px) and (orientation: landscape) {
349
+ .cc-window {
350
+ &.cc-top {
351
+ top: 0;
352
+ }
353
+ &.cc-bottom {
354
+ bottom: 0;
355
+ }
356
+ &.cc-banner,
357
+ &.cc-floating,
358
+ &.cc-right,
359
+ &.cc-left {
360
+ left: 0;
361
+ right: 0;
362
+ }
363
+
364
+ &.cc-banner {
365
+ flex-direction: column;
366
+ align-items: unset;
367
+ .cc-compliance {
368
+ flex: 1 1 auto;
369
+ }
370
+ .cc-message {
371
+ margin-right: 0;
372
+ margin-bottom: 1em;
373
+ }
374
+ }
375
+ &.cc-floating {
376
+ max-width: none;
377
+ }
378
+ &.cc-type-categories {
379
+ flex-direction: column;
380
+ }
381
+ .cc-message {
382
+ margin-bottom: 1em;
383
+ }
384
+ .cc-categories{
385
+ flex-direction: column;
386
+ width: 100%;
387
+ margin-right: 8px;
388
+ }
389
+ .cc-category {
390
+ margin: 4px 0;
391
+ .cc-btn:not(.cc-info){
392
+ width: calc( 100% - 16px);
393
+ min-width: 140px;
394
+ }
395
+ }
396
+ }
397
+ }
398
+ @media screen and (max-width: 854px) {
399
+ .cc-window.cc-type-categories .cc-btn.cc-save {
400
+ margin: 8px 0;
401
+ }
402
+ }
@@ -6,70 +6,73 @@
6
6
 
7
7
  /* Banner */
8
8
 
9
- #banner {
10
- @include padding(6em, 0);
11
- @include vendor('display', 'flex');
9
+ #banner {
10
+ @include padding(6em, 0);
11
+ @include vendor('display', 'flex');
12
+ background-size: 100% auto;
13
+ background-position: center -5em;
14
+ background-repeat: no-repeat;
15
+
16
+ h1 {
17
+ margin-top: -0.125em;
18
+ }
19
+
20
+ .content {
21
+ @include vendor('flex-grow', '1');
22
+ @include vendor('flex-shrink', '1');
23
+ width: 50%;
24
+ }
25
+
26
+ .image {
27
+ @include vendor('flex-grow', '0');
28
+ @include vendor('flex-shrink', '0');
29
+ display: block;
30
+ margin: 0 0 _size(element-margin) (_size(element-margin) * 2);
31
+ width: 50%;
32
+
33
+ img {
34
+ height: 100%;
35
+ -moz-object-fit: cover;
36
+ -webkit-object-fit: cover;
37
+ -ms-object-fit: cover;
38
+ object-fit: cover;
39
+ -moz-object-position: center;
40
+ -webkit-object-position: center;
41
+ -ms-object-position: center;
42
+ object-position: center;
43
+ width: 100%;
44
+ }
45
+ }
46
+
47
+ @include orientation(portrait) {
48
+ @include vendor('flex-direction', 'column-reverse');
12
49
 
13
50
  h1 {
14
- margin-top: -0.125em;
51
+ br {
52
+ display: none;
53
+ }
15
54
  }
16
55
 
17
56
  .content {
18
- @include vendor('flex-grow', '1');
19
- @include vendor('flex-shrink', '1');
20
- width: 50%;
57
+ @include vendor('flex-grow', '0');
58
+ @include vendor('flex-shrink', '0');
59
+ width: 100%;
21
60
  }
22
61
 
23
62
  .image {
24
63
  @include vendor('flex-grow', '0');
25
64
  @include vendor('flex-shrink', '0');
26
- display: block;
27
- margin: 0 0 _size(element-margin) (_size(element-margin) * 2);
28
- width: 50%;
29
-
30
- img {
31
- height: 100%;
32
- -moz-object-fit: cover;
33
- -webkit-object-fit: cover;
34
- -ms-object-fit: cover;
35
- object-fit: cover;
36
- -moz-object-position: center;
37
- -webkit-object-position: center;
38
- -ms-object-position: center;
39
- object-position: center;
40
- width: 100%;
41
- }
65
+ margin: 0 0 (_size(element-margin) * 2) 0;
66
+ height: 25em;
67
+ max-height: 50vh;
68
+ min-height: 18em;
69
+ width: 100%;
42
70
  }
43
71
 
44
- @include orientation(portrait) {
45
- @include vendor('flex-direction', 'column-reverse');
46
-
47
- h1 {
48
- br {
49
- display: none;
50
- }
51
- }
52
-
53
- .content {
54
- @include vendor('flex-grow', '0');
55
- @include vendor('flex-shrink', '0');
56
- width: 100%;
57
- }
58
-
72
+ @include breakpoint('<=xsmall') {
59
73
  .image {
60
- @include vendor('flex-grow', '0');
61
- @include vendor('flex-shrink', '0');
62
- margin: 0 0 (_size(element-margin) * 2) 0;
63
- height: 25em;
64
- max-height: 50vh;
65
- min-height: 18em;
66
- width: 100%;
67
- }
68
-
69
- @include breakpoint('<=xsmall') {
70
- .image {
71
- max-height: 35vh;
72
- }
74
+ max-height: 35vh;
73
75
  }
74
76
  }
75
- }
77
+ }
78
+ }
@@ -9,8 +9,10 @@
9
9
  #header {
10
10
  @include vendor('display', 'flex');
11
11
  border-bottom: solid 5px _palette(accent);
12
- padding: 2em 0 1em 0;
13
12
  position: relative;
13
+ background-size: 100% auto;
14
+ background-position: center top;
15
+ background-repeat: no-repeat;
14
16
 
15
17
  > * {
16
18
  margin-bottom: 0;
@@ -29,6 +31,7 @@
29
31
 
30
32
  .language {
31
33
  position: absolute;
34
+ padding: 0 1em 0 0;
32
35
  right: 0;
33
36
  text-align: right;
34
37
 
@@ -58,8 +61,11 @@
58
61
  font-weight: bold;
59
62
  }
60
63
  }
64
+ }
61
65
 
62
- @include breakpoint('<=small') {
63
- padding-left: 4em;
64
- }
66
+ /* Inverted */
67
+
68
+ #header.inverted {
69
+ background-color: _palette(bg-alt-inverted);
70
+ border-bottom: solid 5px _palette(accent-inverted);
65
71
  }
@@ -25,7 +25,8 @@
25
25
  }
26
26
 
27
27
  #header {
28
- margin: 0 6em 0 6em;
28
+ padding: 2em 6em 1em 6em;
29
+ margin: 0;
29
30
  }
30
31
 
31
32
  @include breakpoint('<=xlarge') {
@@ -34,7 +35,7 @@
34
35
  }
35
36
 
36
37
  #header {
37
- margin: 0 5em 0 5em;
38
+ padding: 2em 5em 1em 5em;
38
39
  }
39
40
  }
40
41
 
@@ -44,7 +45,7 @@
44
45
  }
45
46
 
46
47
  #header {
47
- margin: 0 4em 0 4em;
48
+ padding: 2em 4em 1em 4em;
48
49
  }
49
50
  }
50
51
 
@@ -52,10 +53,6 @@
52
53
  > .inner > section {
53
54
  @include padding(3em, 3em);
54
55
  }
55
-
56
- #header {
57
- margin: 0 3em 0 3em;
58
- }
59
56
  }
60
57
  }
61
58
  }
data/_sass/main.scss CHANGED
@@ -36,6 +36,7 @@
36
36
  @import 'components/section';
37
37
  @import 'components/form';
38
38
  @import 'components/box';
39
+ @import 'components/cookieconsent';
39
40
  @import 'components/icon';
40
41
  @import 'components/image';
41
42
  @import 'components/list';
@@ -0,0 +1 @@
1
+ !function(e){if(!e.hasInitialised){var t={escapeRegExp:function(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},hasClass:function(e,t){var i=" ";return 1===e.nodeType&&(i+e.className+i).replace(/[\n\t]/g,i).indexOf(i+t+i)>=0},addClass:function(e,t){e.className+=" "+t},removeClass:function(e,t){var i=new RegExp("\\b"+this.escapeRegExp(t)+"\\b");e.className=e.className.replace(i,"")},interpolateString:function(e,t){return e.replace(/{{([a-z][a-z0-9\-_]*)}}/gi,function(e){return t(arguments[1])||""})},getCookie:function(e){var t=("; "+document.cookie).split("; "+e+"=");return t.length<2?void 0:t.pop().split(";").shift()},setCookie:function(e,t,i,n,o,s){var r=new Date;r.setHours(r.getHours()+24*(i||365));var a=[e+"="+t,"expires="+r.toUTCString(),"path="+(o||"/")];n&&a.push("domain="+n),s&&a.push("secure"),document.cookie=a.join(";")},deepExtend:function(e,t){for(var i in t)t.hasOwnProperty(i)&&(i in e&&this.isPlainObject(e[i])&&this.isPlainObject(t[i])?this.deepExtend(e[i],t[i]):e[i]=t[i]);return e},throttle:function(e,t){var i=!1;return function(){i||(e.apply(this,arguments),i=!0,setTimeout(function(){i=!1},t))}},hash:function(e){var t,i,n=0;if(0===e.length)return n;for(t=0,i=e.length;t<i;++t)n=(n<<5)-n+e.charCodeAt(t),n|=0;return n},normaliseHex:function(e){return"#"==e[0]&&(e=e.substr(1)),3==e.length&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),e},getContrast:function(e){return e=this.normaliseHex(e),(299*parseInt(e.substr(0,2),16)+587*parseInt(e.substr(2,2),16)+114*parseInt(e.substr(4,2),16))/1e3>=128?"#000":"#fff"},getLuminance:function(e){var t=parseInt(this.normaliseHex(e),16),i=38+(t>>16),n=38+(t>>8&255),o=38+(255&t);return"#"+(16777216+65536*(i<255?i<1?0:i:255)+256*(n<255?n<1?0:n:255)+(o<255?o<1?0:o:255)).toString(16).slice(1)},isMobile:function(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)},isPlainObject:function(e){return"object"==typeof e&&null!==e&&e.constructor==Object},traverseDOMPath:function(e,i){return e&&e.parentNode?t.hasClass(e,i)?e:this.traverseDOMPath(e.parentNode,i):null}};e.status={deny:"deny",allow:"allow",dismiss:"dismiss"},e.transitionEnd=function(){var e=document.createElement("div"),t={t:"transitionend",OT:"oTransitionEnd",msT:"MSTransitionEnd",MozT:"transitionend",WebkitT:"webkitTransitionEnd"};for(var i in t)if(t.hasOwnProperty(i)&&void 0!==e.style[i+"ransition"])return t[i];return""}(),e.hasTransition=!!e.transitionEnd;var i=Object.keys(e.status).map(t.escapeRegExp);e.customStyles={},e.Popup=function(){var n={enabled:!0,container:null,cookie:{name:"cookieconsent_status",path:"/",domain:"",expiryDays:365,secure:!1},onPopupOpen:function(){},onPopupClose:function(){},onInitialise:function(e){},onStatusChange:function(e,t){},onRevokeChoice:function(){},onNoCookieLaw:function(e,t){},content:{header:"Cookies used on the website!",message:"This website uses cookies to ensure you get the best experience on our website.",dismiss:"Got it!",allow:"Allow cookies",deny:"Decline",link:"Learn more",href:"https://www.cookiesandyou.com",close:"&#x274c;",target:"_blank",policy:"Cookie Policy"},elements:{header:'<span class="cc-header">{{header}}</span>&nbsp;',message:'<span id="cookieconsent:desc" class="cc-message">{{message}}</span>',messagelink:'<span id="cookieconsent:desc" class="cc-message">{{message}} <a aria-label="learn more about cookies" role=button tabindex="0" class="cc-link" href="{{href}}" rel="noopener noreferrer nofollow" target="{{target}}">{{link}}</a></span>',dismiss:'<a aria-label="dismiss cookie message" role=button tabindex="0" class="cc-btn cc-dismiss">{{dismiss}}</a>',allow:'<a aria-label="allow cookies" role=button tabindex="0" class="cc-btn cc-allow">{{allow}}</a>',deny:'<a aria-label="deny cookies" role=button tabindex="0" class="cc-btn cc-deny">{{deny}}</a>',link:'<a aria-label="learn more about cookies" role=button tabindex="0" class="cc-link" href="{{href}}" rel="noopener noreferrer nofollow" target="{{target}}">{{link}}</a>',close:'<span aria-label="dismiss cookie message" role=button tabindex="0" class="cc-close">{{close}}</span>'},window:'<div role="dialog" aria-live="polite" aria-label="cookieconsent" aria-describedby="cookieconsent:desc" class="cc-window {{classes}}">\x3c!--googleoff: all--\x3e{{children}}\x3c!--googleon: all--\x3e</div>',revokeBtn:'<div class="cc-revoke {{classes}}">{{policy}}</div>',compliance:{info:'<div class="cc-compliance">{{dismiss}}</div>',"opt-in":'<div class="cc-compliance cc-highlight">{{deny}}{{allow}}</div>',"opt-out":'<div class="cc-compliance cc-highlight">{{deny}}{{allow}}</div>'},type:"info",layouts:{basic:"{{messagelink}}{{compliance}}","basic-close":"{{messagelink}}{{compliance}}{{close}}","basic-header":"{{header}}{{message}}{{link}}{{compliance}}"},layout:"basic",position:"bottom",theme:"block",static:!1,palette:null,revokable:!1,animateRevokable:!0,showLink:!0,dismissOnScroll:!1,dismissOnTimeout:!1,dismissOnWindowClick:!1,ignoreClicksFrom:["cc-revoke","cc-btn"],autoOpen:!0,autoAttach:!0,whitelistPage:[],blacklistPage:[],overrideHTML:null};function o(){this.initialise.apply(this,arguments)}function s(e){this.openingTimeout=null,t.removeClass(e,"cc-invisible")}function r(t){t.style.display="none",t.removeEventListener(e.transitionEnd,this.afterTransition),this.afterTransition=null}function a(){var e=this.options.position.split("-"),t=[];return e.forEach(function(e){t.push("cc-"+e)}),t}function c(n){var o=this.options,s=document.createElement("div"),r=o.container&&1===o.container.nodeType?o.container:document.body;s.innerHTML=n;var a=s.children[0];return a.style.display="none",t.hasClass(a,"cc-window")&&e.hasTransition&&t.addClass(a,"cc-invisible"),this.onButtonClick=function(n){var o=t.traverseDOMPath(n.target,"cc-btn")||n.target;if(t.hasClass(o,"cc-btn")){var s=o.className.match(new RegExp("\\bcc-("+i.join("|")+")\\b")),r=s&&s[1]||!1;r&&(this.setStatus(r),this.close(!0))}t.hasClass(o,"cc-close")&&(this.setStatus(e.status.dismiss),this.close(!0));t.hasClass(o,"cc-revoke")&&this.revokeChoice()}.bind(this),a.addEventListener("click",this.onButtonClick),o.autoAttach&&(r.firstChild?r.insertBefore(a,r.firstChild):r.appendChild(a)),a}function l(e){return"000000"==(e=t.normaliseHex(e))?"#222":t.getLuminance(e)}function u(e,t){for(var i=0,n=e.length;i<n;++i){var o=e[i];if(o instanceof RegExp&&o.test(t)||"string"==typeof o&&o.length&&o===t)return!0}return!1}return o.prototype.initialise=function(i){this.options&&this.destroy(),t.deepExtend(this.options={},n),t.isPlainObject(i)&&t.deepExtend(this.options,i),function(){var t=this.options.onInitialise.bind(this);if(!window.navigator.cookieEnabled)return t(e.status.deny),!0;if(window.CookiesOK||window.navigator.CookiesOK)return t(e.status.allow),!0;var i=Object.keys(e.status),n=this.getStatus(),o=i.indexOf(n)>=0;o&&t(n);return o}.call(this)&&(this.options.enabled=!1),u(this.options.blacklistPage,location.pathname)&&(this.options.enabled=!1),u(this.options.whitelistPage,location.pathname)&&(this.options.enabled=!0);var o=this.options.window.replace("{{classes}}",function(){var i=this.options,n="top"==i.position||"bottom"==i.position?"banner":"floating";t.isMobile()&&(n="floating");var o=["cc-"+n,"cc-type-"+i.type,"cc-theme-"+i.theme];i.static&&o.push("cc-static");o.push.apply(o,a.call(this));(function(i){var n=t.hash(JSON.stringify(i)),o="cc-color-override-"+n,s=t.isPlainObject(i);this.customStyleSelector=s?o:null,s&&function(i,n,o){if(e.customStyles[i])return void++e.customStyles[i].references;var s={},r=n.popup,a=n.button,c=n.highlight;r&&(r.text=r.text?r.text:t.getContrast(r.background),r.link=r.link?r.link:r.text,s[o+".cc-window"]=["color: "+r.text,"background-color: "+r.background],s[o+".cc-revoke"]=["color: "+r.text,"background-color: "+r.background],s[o+" .cc-link,"+o+" .cc-link:active,"+o+" .cc-link:visited"]=["color: "+r.link],a&&(a.text=a.text?a.text:t.getContrast(a.background),a.border=a.border?a.border:"transparent",s[o+" .cc-btn"]=["color: "+a.text,"border-color: "+a.border,"background-color: "+a.background],a.padding&&s[o+" .cc-btn"].push("padding: "+a.padding),"transparent"!=a.background&&(s[o+" .cc-btn:hover, "+o+" .cc-btn:focus"]=["background-color: "+(a.hover||l(a.background))]),c?(c.text=c.text?c.text:t.getContrast(c.background),c.border=c.border?c.border:"transparent",s[o+" .cc-highlight .cc-btn:first-child"]=["color: "+c.text,"border-color: "+c.border,"background-color: "+c.background]):s[o+" .cc-highlight .cc-btn:first-child"]=["color: "+r.text]));var u=document.createElement("style");document.head.appendChild(u),e.customStyles[i]={references:1,element:u.sheet};var h=-1;for(var p in s)s.hasOwnProperty(p)&&u.sheet.insertRule(p+"{"+s[p].join(";")+"}",++h)}(n,i,"."+o);return s}).call(this,this.options.palette);this.customStyleSelector&&o.push(this.customStyleSelector);return o}.call(this).join(" ")).replace("{{children}}",function(){var e={},i=this.options;i.showLink||(i.elements.link="",i.elements.messagelink=i.elements.message);Object.keys(i.elements).forEach(function(n){e[n]=t.interpolateString(i.elements[n],function(e){var t=i.content[e];return e&&"string"==typeof t&&t.length?t:""})});var n=i.compliance[i.type];n||(n=i.compliance.info);e.compliance=t.interpolateString(n,function(t){return e[t]});var o=i.layouts[i.layout];o||(o=i.layouts.basic);return t.interpolateString(o,function(t){return e[t]})}.call(this)),s=this.options.overrideHTML;if("string"==typeof s&&s.length&&(o=s),this.options.static){var r=c.call(this,'<div class="cc-grower">'+o+"</div>");r.style.display="",this.element=r.firstChild,this.element.style.display="none",t.addClass(this.element,"cc-invisible")}else this.element=c.call(this,o);(function(){var i=this.setStatus.bind(this),n=this.close.bind(this),o=this.options.dismissOnTimeout;"number"==typeof o&&o>=0&&(this.dismissTimeout=window.setTimeout(function(){i(e.status.dismiss),n(!0)},Math.floor(o)));var s=this.options.dismissOnScroll;if("number"==typeof s&&s>=0){var r=function(t){window.pageYOffset>Math.floor(s)&&(i(e.status.dismiss),n(!0),window.removeEventListener("scroll",r),this.onWindowScroll=null)};this.options.enabled&&(this.onWindowScroll=r,window.addEventListener("scroll",r))}var a=this.options.dismissOnWindowClick,c=this.options.ignoreClicksFrom;if(a){var l=function(o){for(var s=!1,r=o.path.length,a=c.length,u=0;u<r;u++)if(!s)for(var h=0;h<a;h++)s||(s=t.hasClass(o.path[u],c[h]));s||(i(e.status.dismiss),n(!0),window.removeEventListener("click",l),window.removeEventListener("touchend",l),this.onWindowClick=null)}.bind(this);this.options.enabled&&(this.onWindowClick=l,window.addEventListener("click",l),window.addEventListener("touchend",l))}}).call(this),function(){"info"!=this.options.type&&(this.options.revokable=!0);t.isMobile()&&(this.options.animateRevokable=!1);if(this.options.revokable){var e=a.call(this);this.options.animateRevokable&&e.push("cc-animate"),this.customStyleSelector&&e.push(this.customStyleSelector);var i=this.options.revokeBtn.replace("{{classes}}",e.join(" ")).replace("{{policy}}",this.options.content.policy);this.revokeBtn=c.call(this,i);var n=this.revokeBtn;if(this.options.animateRevokable){var o=t.throttle(function(e){var i=!1,o=window.innerHeight-20;t.hasClass(n,"cc-top")&&e.clientY<20&&(i=!0),t.hasClass(n,"cc-bottom")&&e.clientY>o&&(i=!0),i?t.hasClass(n,"cc-active")||t.addClass(n,"cc-active"):t.hasClass(n,"cc-active")&&t.removeClass(n,"cc-active")},200);this.onMouseMove=o,window.addEventListener("mousemove",o)}}}.call(this),this.options.autoOpen&&this.autoOpen()},o.prototype.destroy=function(){this.onButtonClick&&this.element&&(this.element.removeEventListener("click",this.onButtonClick),this.onButtonClick=null),this.dismissTimeout&&(clearTimeout(this.dismissTimeout),this.dismissTimeout=null),this.onWindowScroll&&(window.removeEventListener("scroll",this.onWindowScroll),this.onWindowScroll=null),this.onWindowClick&&(window.removeEventListener("click",this.onWindowClick),this.onWindowClick=null),this.onMouseMove&&(window.removeEventListener("mousemove",this.onMouseMove),this.onMouseMove=null),this.element&&this.element.parentNode&&this.element.parentNode.removeChild(this.element),this.element=null,this.revokeBtn&&this.revokeBtn.parentNode&&this.revokeBtn.parentNode.removeChild(this.revokeBtn),this.revokeBtn=null,function(i){if(t.isPlainObject(i)){var n=t.hash(JSON.stringify(i)),o=e.customStyles[n];if(o&&!--o.references){var s=o.element.ownerNode;s&&s.parentNode&&s.parentNode.removeChild(s),e.customStyles[n]=null}}}(this.options.palette),this.options=null},o.prototype.open=function(t){if(this.element)return this.isOpen()||(e.hasTransition?this.fadeIn():this.element.style.display="",this.options.revokable&&this.toggleRevokeButton(),this.options.onPopupOpen.call(this)),this},o.prototype.close=function(t){if(this.element)return this.isOpen()&&(e.hasTransition?this.fadeOut():this.element.style.display="none",t&&this.options.revokable&&this.toggleRevokeButton(!0),this.options.onPopupClose.call(this)),this},o.prototype.fadeIn=function(){var i=this.element;if(e.hasTransition&&i&&(this.afterTransition&&r.call(this,i),t.hasClass(i,"cc-invisible"))){if(i.style.display="",this.options.static){var n=this.element.clientHeight;this.element.parentNode.style.maxHeight=n+"px"}this.openingTimeout=setTimeout(s.bind(this,i),20)}},o.prototype.fadeOut=function(){var i=this.element;e.hasTransition&&i&&(this.openingTimeout&&(clearTimeout(this.openingTimeout),s.bind(this,i)),t.hasClass(i,"cc-invisible")||(this.options.static&&(this.element.parentNode.style.maxHeight=""),this.afterTransition=r.bind(this,i),i.addEventListener(e.transitionEnd,this.afterTransition),t.addClass(i,"cc-invisible")))},o.prototype.isOpen=function(){return this.element&&""==this.element.style.display&&(!e.hasTransition||!t.hasClass(this.element,"cc-invisible"))},o.prototype.toggleRevokeButton=function(e){this.revokeBtn&&(this.revokeBtn.style.display=e?"":"none")},o.prototype.revokeChoice=function(e){this.options.enabled=!0,this.clearStatus(),this.options.onRevokeChoice.call(this),e||this.autoOpen()},o.prototype.hasAnswered=function(t){return Object.keys(e.status).indexOf(this.getStatus())>=0},o.prototype.hasConsented=function(t){var i=this.getStatus();return i==e.status.allow||i==e.status.dismiss},o.prototype.autoOpen=function(e){!this.hasAnswered()&&this.options.enabled?this.open():this.hasAnswered()&&this.options.revokable&&this.toggleRevokeButton(!0)},o.prototype.setStatus=function(i){var n=this.options.cookie,o=t.getCookie(n.name),s=Object.keys(e.status).indexOf(o)>=0;Object.keys(e.status).indexOf(i)>=0?(t.setCookie(n.name,i,n.expiryDays,n.domain,n.path,n.secure),this.options.onStatusChange.call(this,i,s)):this.clearStatus()},o.prototype.getStatus=function(){return t.getCookie(this.options.cookie.name)},o.prototype.clearStatus=function(){var e=this.options.cookie;t.setCookie(e.name,"",-1,e.domain,e.path)},o}(),e.Location=function(){var e={timeout:5e3,services:["ipinfo"],serviceDefinitions:{ipinfo:function(){return{url:"//ipinfo.io",headers:["Accept: application/json"],callback:function(e,t){try{var i=JSON.parse(t);return i.error?s(i):{code:i.country}}catch(e){return s({error:"Invalid response ("+e+")"})}}}},ipinfodb:function(e){return{url:"//api.ipinfodb.com/v3/ip-country/?key={api_key}&format=json&callback={callback}",isScript:!0,callback:function(e,t){try{var i=JSON.parse(t);return"ERROR"==i.statusCode?s({error:i.statusMessage}):{code:i.countryCode}}catch(e){return s({error:"Invalid response ("+e+")"})}}}},maxmind:function(){return{url:"//js.maxmind.com/js/apis/geoip2/v2.1/geoip2.js",isScript:!0,callback:function(e){window.geoip2?geoip2.country(function(t){try{e({code:t.country.iso_code})}catch(t){e(s(t))}},function(t){e(s(t))}):e(new Error("Unexpected response format. The downloaded script should have exported `geoip2` to the global scope"))}}}}};function i(i){t.deepExtend(this.options={},e),t.isPlainObject(i)&&t.deepExtend(this.options,i),this.currentServiceIndex=-1}function n(e,t,i){var n,o=document.createElement("script");o.type="text/"+(e.type||"javascript"),o.src=e.src||e,o.async=!1,o.onreadystatechange=o.onload=function(){var e=o.readyState;clearTimeout(n),t.done||e&&!/loaded|complete/.test(e)||(t.done=!0,t(),o.onreadystatechange=o.onload=null)},document.body.appendChild(o),n=setTimeout(function(){t.done=!0,t(),o.onreadystatechange=o.onload=null},i)}function o(e,t,i,n,o){var s=new(window.XMLHttpRequest||window.ActiveXObject)("MSXML2.XMLHTTP.3.0");if(s.open(n?"POST":"GET",e,1),s.setRequestHeader("Content-type","application/x-www-form-urlencoded"),Array.isArray(o))for(var r=0,a=o.length;r<a;++r){var c=o[r].split(":",2);s.setRequestHeader(c[0].replace(/^\s+|\s+$/g,""),c[1].replace(/^\s+|\s+$/g,""))}"function"==typeof t&&(s.onreadystatechange=function(){s.readyState>3&&t(s)}),s.send(n)}function s(e){return new Error("Error ["+(e.code||"UNKNOWN")+"]: "+e.error)}return i.prototype.getNextService=function(){var e;do{e=this.getServiceByIdx(++this.currentServiceIndex)}while(this.currentServiceIndex<this.options.services.length&&!e);return e},i.prototype.getServiceByIdx=function(e){var i=this.options.services[e];if("function"==typeof i){var n=i();return n.name&&t.deepExtend(n,this.options.serviceDefinitions[n.name](n)),n}return"string"==typeof i?this.options.serviceDefinitions[i]():t.isPlainObject(i)?this.options.serviceDefinitions[i.name](i):null},i.prototype.locate=function(e,t){var i=this.getNextService();i?(this.callbackComplete=e,this.callbackError=t,this.runService(i,this.runNextServiceOnError.bind(this))):t(new Error("No services to run"))},i.prototype.setupUrl=function(e){var t=this.getCurrentServiceOpts();return e.url.replace(/\{(.*?)\}/g,function(i,n){if("callback"===n){var o="callback"+Date.now();return window[o]=function(t){e.__JSONP_DATA=JSON.stringify(t)},o}if(n in t.interpolateUrl)return t.interpolateUrl[n]})},i.prototype.runService=function(e,t){var i=this;e&&e.url&&e.callback&&(e.isScript?n:o)(this.setupUrl(e),function(n){var o=n?n.responseText:"";e.__JSONP_DATA&&(o=e.__JSONP_DATA,delete e.__JSONP_DATA),i.runServiceCallback.call(i,t,e,o)},this.options.timeout,e.data,e.headers)},i.prototype.runServiceCallback=function(e,t,i){var n=this,o=t.callback(function(t){o||n.onServiceResult.call(n,e,t)},i);o&&this.onServiceResult.call(this,e,o)},i.prototype.onServiceResult=function(e,t){t instanceof Error||t&&t.error?e.call(this,t,null):e.call(this,null,t)},i.prototype.runNextServiceOnError=function(e,t){if(e){this.logError(e);var i=this.getNextService();i?this.runService(i,this.runNextServiceOnError.bind(this)):this.completeService.call(this,this.callbackError,new Error("All services failed"))}else this.completeService.call(this,this.callbackComplete,t)},i.prototype.getCurrentServiceOpts=function(){var e=this.options.services[this.currentServiceIndex];return"string"==typeof e?{name:e}:"function"==typeof e?e():t.isPlainObject(e)?e:{}},i.prototype.completeService=function(e,t){this.currentServiceIndex=-1,e&&e(t)},i.prototype.logError=function(e){var t=this.currentServiceIndex,i=this.getServiceByIdx(t);console.warn("The service["+t+"] ("+i.url+") responded with the following error",e)},i}(),e.Law=function(){var e={regionalLaw:!0,hasLaw:["AT","BE","BG","HR","CZ","CY","DK","EE","FI","FR","DE","EL","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","SK","ES","SE","GB","UK","GR","EU"],revokable:["HR","CY","DK","EE","FR","DE","LV","LT","NL","PT","ES"],explicitAction:["HR","IT","ES"]};function i(e){this.initialise.apply(this,arguments)}return i.prototype.initialise=function(i){t.deepExtend(this.options={},e),t.isPlainObject(i)&&t.deepExtend(this.options,i)},i.prototype.get=function(e){var t=this.options;return{hasLaw:t.hasLaw.indexOf(e)>=0,revokable:t.revokable.indexOf(e)>=0,explicitAction:t.explicitAction.indexOf(e)>=0}},i.prototype.applyLaw=function(e,t){var i=this.get(t);return i.hasLaw||(e.enabled=!1,"function"==typeof e.onNoCookieLaw&&e.onNoCookieLaw(t,i)),this.options.regionalLaw&&(i.revokable&&(e.revokable=!0),i.explicitAction&&(e.dismissOnScroll=!1,e.dismissOnTimeout=!1)),e},i}(),e.initialise=function(i,n,o){var s=new e.Law(i.law);n||(n=function(){}),o||(o=function(){});var r=Object.keys(e.status),a=t.getCookie("cookieconsent_status");r.indexOf(a)>=0?n(new e.Popup(i)):e.getCountryCode(i,function(t){delete i.law,delete i.location,t.code&&(i=s.applyLaw(i,t.code)),n(new e.Popup(i))},function(t){delete i.law,delete i.location,o(t,new e.Popup(i))})},e.getCountryCode=function(t,i,n){t.law&&t.law.countryCode?i({code:t.law.countryCode}):t.location?new e.Location(t.location).locate(function(e){i(e||{})},n):i({})},e.utils=t,e.hasInitialised=!0,window.cookieconsent=e}}(window.cookieconsent||{});
data/sitemap.md ADDED
@@ -0,0 +1,4 @@
1
+ ---
2
+ layout: sitemap
3
+ permalink: /sitemap.xml
4
+ ---
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-consulting
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Mougeolle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-08-21 00:00:00.000000000 Z
11
+ date: 2019-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -62,7 +62,6 @@ files:
62
62
  - LICENSE
63
63
  - README.md
64
64
  - _includes/banner.html
65
- - _includes/bouncing.svg
66
65
  - _includes/contact.html
67
66
  - _includes/date.html
68
67
  - _includes/footer.html
@@ -82,7 +81,7 @@ files:
82
81
  - _layouts/page.html
83
82
  - _layouts/post.html
84
83
  - _layouts/redirect.html
85
- - _layouts/sitemap.xml
84
+ - _layouts/sitemap.html
86
85
  - _sass/base/_page.scss
87
86
  - _sass/base/_reset.scss
88
87
  - _sass/base/_typography.scss
@@ -90,6 +89,7 @@ files:
90
89
  - _sass/components/_box.scss
91
90
  - _sass/components/_button.scss
92
91
  - _sass/components/_contact.scss
92
+ - _sass/components/_cookieconsent.scss
93
93
  - _sass/components/_facts.scss
94
94
  - _sass/components/_features.scss
95
95
  - _sass/components/_form.scss
@@ -152,6 +152,7 @@ files:
152
152
  - assets/images/pic09.jpg
153
153
  - assets/images/pic10.jpg
154
154
  - assets/images/pic11.jpg
155
+ - assets/images/pillars-of-creation.jpg
155
156
  - assets/images/screenshot.jpg
156
157
  - assets/images/thumbs/01.jpg
157
158
  - assets/images/thumbs/02.jpg
@@ -163,6 +164,7 @@ files:
163
164
  - assets/images/thumbs/08.jpg
164
165
  - assets/js/breakpoints.min.js
165
166
  - assets/js/browser.min.js
167
+ - assets/js/cookieconsent.min.js
166
168
  - assets/js/jquery.min.js
167
169
  - assets/js/main.js
168
170
  - assets/js/util.js
@@ -181,6 +183,7 @@ files:
181
183
  - assets/webfonts/fa-solid-900.ttf
182
184
  - assets/webfonts/fa-solid-900.woff
183
185
  - assets/webfonts/fa-solid-900.woff2
186
+ - sitemap.md
184
187
  homepage: https://github.com/moodule/jekyll-theme-consulting
185
188
  licenses:
186
189
  - CC-BY-4.0
@@ -204,5 +207,5 @@ rubyforge_project:
204
207
  rubygems_version: 2.7.6.2
205
208
  signing_key:
206
209
  specification_version: 4
207
- summary: A sober Jekyll template for businesses, with multilingual support.
210
+ summary: A sober, hassle-free, full-featured, Jekyll template for businesses.
208
211
  test_files: []
@@ -1,53 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
- <svg
3
- xmlns:dc="http://purl.org/dc/elements/1.1/"
4
- xmlns:cc="http://creativecommons.org/ns#"
5
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
6
- xmlns:svg="http://www.w3.org/2000/svg"
7
- xmlns="http://www.w3.org/2000/svg"
8
- id="svg4709"
9
- version="1.1"
10
- preserveAspectRatio="{{ include.alignment }} meet"
11
- width="{{ include.width }}"
12
- height="{{ include.height }}"
13
- viewBox="{{ include.view-box }}"
14
- fill="{{ include.fill }}"
15
- fill-opacity="{{ include.opacity }}">
16
- <defs
17
- id="defs4703" />
18
- <metadata
19
- id="metadata4706">
20
- <rdf:RDF>
21
- <cc:Work
22
- rdf:about="">
23
- <dc:format>image/svg+xml</dc:format>
24
- <dc:type
25
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
26
- <dc:title></dc:title>
27
- </cc:Work>
28
- </rdf:RDF>
29
- </metadata>
30
- <g
31
- transform="translate(0,-177)"
32
- id="layer1">
33
- <path
34
- id="path4079"
35
- d="M 180,252.99343 A 161.29763,18.552469 0 0 0 18.702358,271.54579 161.29763,18.552469 0 0 0 180,290.09815 161.29763,18.552469 0 0 0 341.29764,271.54579 161.29763,18.552469 0 0 0 180,252.99343 Z m -4.29225,3.04943 A 143.84518,15.756892 0 0 1 319.5527,271.80004 143.84518,15.756892 0 0 1 175.70775,287.5567 143.84518,15.756892 0 0 1 31.862794,271.80004 143.84518,15.756892 0 0 1 175.70775,256.04286 Z"
36
- style="display:inline;" />
37
- <path
38
- id="path4897"
39
- d="M 180.00026,259.01994 A 119.52375,12.80648 0 0 0 60.476291,271.82691 119.52375,12.80648 0 0 0 180.00026,284.63336 119.52375,12.80648 0 0 0 299.52371,271.82691 119.52375,12.80648 0 0 0 180.00026,259.01994 Z m 0.45734,1.88464 a 93.001042,10.715625 0 0 1 93.00104,10.71563 93.001042,10.715625 0 0 1 -93.00104,10.71562 93.001042,10.715625 0 0 1 -93.001043,-10.71562 93.001042,10.715625 0 0 1 93.001043,-10.71563 z"
40
- style="display:inline;" />
41
- <path
42
- id="rect4865"
43
- d="m 179.57318,201.90247 a 4.1010414,5.9247762 0 0 0 -3.83077,5.51853 h -0.0465 a 53.652364,173.78127 0 0 1 1.66915,40.10507 94.634349,28.224152 0 0 1 0.0806,0.67851 94.634349,28.224152 0 0 1 -53.27271,25.36228 v 0.007 a 60.589583,3.5915198 0 0 0 -4.7625,1.40043 60.589583,3.5915198 0 0 0 60.63454,3.58634 60.589583,3.5915198 0 0 0 60.54462,-3.59151 h -60.58958 l 60.58905,-0.0109 a 60.589583,3.5915198 0 0 0 -5.29113,-1.44591 v -0.0124 a 94.634341,28.224152 0 0 1 -52.91667,-25.29509 52.545509,173.78127 0 0 1 1.57406,-40.78359 h -0.0336 a 4.1010414,5.9247762 0 0 0 -3.83336,-5.51852 z"
44
- style="display:inline;" />
45
- <ellipse
46
- ry="5.1877427"
47
- rx="5.5455174"
48
- cy="191.16115"
49
- cx="180"
50
- id="path4105"
51
- style="display:inline;" />
52
- </g>
53
- </svg>