word-games-theme 3.3.8 → 3.3.9

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.
@@ -0,0 +1,21 @@
1
+ {%- comment -%}One blog card. Expects `post`, authors/authors.html variables (authorName, image) and optional `i` for the colour band.{%- endcomment -%}
2
+ {%- assign tone = include.i | default: 0 | modulo: 6 -%}
3
+ <article class="wg-blog-card">
4
+ <a class="wg-blog-card__main" href="{{ post.url }}">
5
+ <span class="wg-blog-card__head wg-blog-card__head--{{ tone }}">
6
+ {%- if post.categories.first -%}<span class="wg-blog-card__tag">{{ post.categories.first }}</span>{%- endif -%}
7
+ <h2>{{ post.title }}</h2>
8
+ </span>
9
+ <span class="wg-blog-card__body">
10
+ {%- if post.description != blank -%}<p>{{ post.description }}</p>{%- endif -%}
11
+ <span class="wg-blog-card__more">Read article <span aria-hidden="true">&rarr;</span></span>
12
+ </span>
13
+ </a>
14
+ <div class="wg-blog-card__meta">
15
+ {%- if post.author -%}<img src="{{ image }}" alt="{{ authorName }}" width="36" height="36" loading="lazy">{%- endif -%}
16
+ <span>
17
+ <b>{{ authorName }}</b>
18
+ <time datetime="{{ post.date | date_to_xmlschema }}">{{ post.date | date_to_string }}</time>
19
+ </span>
20
+ </div>
21
+ </article>
@@ -1,4 +1,4 @@
1
- {%- assign lang = page.lang -%}
1
+ {%- assign lang = page.lang | default: "en" -%}
2
2
  {%- assign dataToShow = site.data.footer[lang].data -%}
3
3
  {%- assign networksitesData = site.data.footer.networksites -%}
4
4
  {%- assign ft = site.data.home_sections.labels.footer -%}
@@ -7,7 +7,7 @@
7
7
  <footer class="wg-footer">
8
8
  <div class="wg-footer__inner">
9
9
  <div class="wg-footer__brand">
10
- <a href="/" aria-label="{{ site.siteName }}">{%- include home/logo.html -%}</a>
10
+ <a href="/" aria-label="{{ site.siteName }}">{%- include home/logo.html uid="wgLogoTileFooter" -%}</a>
11
11
  <p>{{ ft.tagline }}</p>
12
12
  <div class="wg-footer__social">
13
13
  {%- for s in dataToShow.social -%}<a href="{{ s.url }}" rel="noopener" target="_blank" aria-label="{{ s.title }}"><img src="{{ s.icon }}" alt="" width="20" height="20" loading="lazy"></a>{%- endfor -%}
@@ -29,6 +29,10 @@
29
29
  <p class="mb-0">
30
30
  {{dataToShow.messege}}
31
31
  </p>
32
+ {%- comment -%}No language popup on the v2 blog, post and static pages.{%- endcomment -%}
33
+ {%- assign hideLangPopup = false -%}
34
+ {%- if page.layout == "wordgames-blog-v2" or page.layout == "wordgames-post-v2" or page.layout == "wordgames-static-v2" -%}{%- assign hideLangPopup = true -%}{%- endif -%}
35
+ {%- unless hideLangPopup -%}
32
36
  {%- if site.internationalization -%}
33
37
  <center>
34
38
  <button id="int-modal-btn" type="button" class="drop-down-btn" data-toggle="modal"
@@ -209,4 +213,5 @@
209
213
  </div>
210
214
  {%- endif -%}
211
215
  {%- endif -%}
216
+ {%- endunless -%}
212
217
  </div>
@@ -33,28 +33,21 @@
33
33
  </div>
34
34
  {%- when "links" -%}
35
35
  {%- for l in col.links -%}<a class="wg-mega__link" href="{{ l.url }}">{{ l.name }}</a>{%- endfor -%}
36
+ {%- for ex in col.extras -%}
37
+ <p class="wg-mega__title wg-mega__title--sub">{{ ex.title }}</p>
38
+ {%- for l in ex.links -%}<a class="wg-mega__link" href="{{ l.url }}">{{ l.name }}</a>{%- endfor -%}
39
+ {%- endfor -%}
36
40
  {%- when "nums" -%}
37
41
  <div class="wg-mega__nums">
38
42
  {%- for l in col.links -%}<a href="{{ l.url }}" aria-label="{{ l.n }} letter words"><b>{{ l.n }}</b><small>{{ col.unit }}</small></a>{%- endfor -%}
39
43
  </div>
40
44
  {%- if col.more -%}<a class="wg-mega__more" href="{{ col.more.url }}">{{ col.more.name }} &rarr;</a>{%- endif -%}
41
45
  {%- when "games" -%}
42
- <div class="wg-mega__games{% if col.grid %} wg-mega__games--{{ col.grid }}{% endif %}">
43
- {%- for l in col.links -%}
44
- {%- if l.sub -%}
45
- {%- assign sub = l.sub -%}
46
- {%- else -%}
47
- {%- assign sub = col.updated_label | append: " " | append: today -%}
48
- {%- endif -%}
49
- <a class="wg-mega__game" href="{{ l.url }}"{% if l.tab %} data-cross-tab="{{ l.tab }}"{% endif %}>
50
- {%- if l.icon -%}
51
- <span class="wg-mega__art wg-mega__art--ico" aria-hidden="true">{%- include home/icon.html name=l.icon -%}</span>
52
- {%- else -%}
53
- <span class="wg-mega__art" aria-hidden="true">{%- include home/game-art.html name=l.art -%}</span>
54
- {%- endif -%}
55
- <span><b>{{ l.name }}</b><small>{{ sub }}</small></span></a>
56
- {%- endfor -%}
57
- </div>
46
+ {%- include home/mega-games.html links=col.links grid=col.grid updated=col.updated_label -%}
47
+ {%- for ex in col.extras -%}
48
+ <p class="wg-mega__title wg-mega__title--sub">{{ ex.title }}</p>
49
+ {%- include home/mega-games.html links=ex.links grid=ex.grid updated=col.updated_label -%}
50
+ {%- endfor -%}
58
51
  {%- endcase -%}
59
52
  </div>
60
53
  {%- endfor -%}
@@ -1,84 +1,20 @@
1
- <svg class="wg-logo-svg" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 197.5 35" style="enable-background:new 0 0 197.5 35;" xml:space="preserve" width="200" height="36" aria-label="Words With Letters">
2
- <style type="text/css">
3
- .st0{fill:none;}
4
- .st1{fill:#ffffff;}
5
- .st2{fill:url(#SVGID_LOGO_1_);}
6
- </style>
7
- <path class="st0" d="M-281.9,0.9C-281.9,1-281.8,1-281.9,0.9"/>
8
- <path class="st1" d="M50.5,11.5c0.1,2.8-0.1,5.7-0.1,8.5c-0.1,2.3-0.8,6.2-3.8,6.2c-1.6,0-2.7-1.5-3.3-2.7c-0.6,1.3-2,2.6-3.5,2.6
9
- c-3.4,0-3.3-4.7-3.3-7c-0.1-2.7-0.2-4.8-0.2-7.4c0-0.9,0.6-1.5,1.5-1.5s1.5,0.6,1.6,1.5c0.1,1.3,0,5.3,0.1,8.2
10
- c0.2,4.3,1.3,3.3,1.8-0.2c0.2-1.5,0.2-3,0.3-3.9c0.1-0.8,0.7-1.5,1.6-1.5c0.9,0,1.6,0.5,1.7,1.5c0.1,1.7,0.2,2.9,0.5,4.1
11
- c0.6,2.8,1.9,3.9,2,0c0.1-2.8,0-5.6,0-8.4c0-0.9,0.7-1.5,1.6-1.5C49.9,10,50.5,10.6,50.5,11.5z"/>
12
- <path class="st1" d="M56.9,26.4c-3.3,0-5-3.7-5-6.5c0-8.2,9.9-8.7,9.9-0.2C61.9,22.8,60.6,26.4,56.9,26.4z M58.8,19.5
13
- c0-4.5-3.8-3.3-3.8,0.4c0,1.3,0.3,3.5,2,3.5S58.8,20.6,58.8,19.5z"/>
14
- <path class="st1" d="M71.3,14.4c0,2.1-2.2,0.9-3.9,2.7c-1.1,1.2-1,1.7-1,3.4c0,1.5,0,3,0,4.4c0,0.9-0.6,1.5-1.6,1.5
15
- c-1,0-1.5-0.6-1.5-1.5c-0.1-2.1,0-4.3,0-6.4V14c0-0.9,0.6-1.5,1.5-1.5c0.8,0,1.5,0.6,1.6,1.4c1-0.7,2.2-1.1,3.5-1.1
16
- C70.7,12.8,71.3,13.5,71.3,14.4z"/>
17
- <path class="st1" d="M77.2,11.4c0-0.9,0.7-1.4,1.6-1.4c0.9,0.1,1.5,0.7,1.4,1.6l-0.1,0.9c-0.3,4.4-0.1,7.9-0.3,12.2
18
- c0,0.9-0.7,1.5-1.6,1.4c-0.2,0-0.4-0.1-0.5-0.1c-0.9,0.3-1.8,0.5-2.7,0.4c-3.4-0.2-4.4-3.5-4.2-6.4c0.2-2.9,1.8-5.2,4.9-5
19
- c0.5,0,0.9,0.1,1.4,0.3C77,13.6,77.1,13,77.2,11.4z M75.2,23.4c0.46,0.03,1.12,0.03,1.37-0.44c0.22-0.42,0.14-0.99,0.12-1.44
20
- c-0.03-0.92,0.05-1.86,0.07-2.78c0-0.08,0-0.16-0.03-0.23c-0.06-0.12-0.2-0.17-0.33-0.21c-0.28-0.09-0.57-0.17-0.86-0.2
21
- c-0.36-0.04-0.73,0.01-1.04,0.21c-0.51,0.32-0.65,0.98-0.69,1.54c-0.01,0.19-0.02,0.37-0.02,0.56C73.7,21.5,73.7,23.3,75.2,23.4z"/>
22
- <path class="st1" d="M85.9,21.4c-1.9-1-4.8-2.1-4.8-4.7s2.7-3.8,4.9-3.8c1.2,0,4.1,0.4,4.1,2c0,0.8-0.7,1.6-1.5,1.6S87,16,86.1,16
23
- c-0.4,0-1.9,0.1-1.9,0.8c0,1.4,6.2,2.1,6.2,6.4c0,2.5-2.5,3.4-4.6,3.4c-1.4,0-4.1,0.1-4.1-1.8c0-0.9,0.7-1.5,1.6-1.5
24
- c0.8,0,1.5,0.3,2.3,0.3C87.6,23.4,87.9,22.4,85.9,21.4z"/>
25
- <path class="st1" d="M103.8,20.9c0,0.5-0.1,1.1-0.1,1.6c-0.1,0.8,0,2.1-0.1,2.9c0,0.5-0.4,0.9-0.9,0.9s-0.9-0.4-0.9-0.9
26
- c0-1.3,0-3.2,0.2-4.5c0.1-0.5,0.4-0.9,0.9-0.9S103.8,20.4,103.8,20.9z M103.9,18.6c0,0.5-0.4,0.9-0.9,0.9c-0.6,0-1-0.4-1-1
27
- c0-0.5,0.4-0.9,0.9-0.9C103.6,17.6,103.9,18,103.9,18.6z"/>
28
- <path class="st1" d="M109.5,24.4c0.5,0,0.9,0.5,0.9,1c0,0.9-1.2,0.9-1.8,0.9c-2.6,0-2.7-2.8-2.7-4.7c-0.7,0-1.3-0.1-1.2-0.9
29
- c0-0.8,0.6-0.9,1.3-0.9c0-1,0-1.3,0.1-2.3c0-0.5,0.4-0.9,1-0.9c0.5,0,0.9,0.4,0.9,0.9c0,1-0.1,1.2-0.1,2.2c0.8,0,2.2-0.4,2.2,0.8
30
- c0,1.2-1.4,1-2.2,1.1c0,0.47-0.07,1.44,0.1,2.15c0.09,0.39,0.46,0.65,0.86,0.65H109.5z"/>
31
- <path class="st1" d="M116,23.4c0,0.9,0.3,2.8-1.1,2.8c-0.4,0-0.9-0.3-0.9-0.7c0-0.8,0.1-1.3,0.1-2c0-0.4,0.1-1.9-0.5-1.9
32
- c-0.9,0-0.8,0.5-0.8,1.2c0,0.9,0,1.8,0,2.7c0,0.5-0.4,0.9-0.9,0.9s-0.9-0.3-0.9-0.9c0-2.7-0.2-5.3-0.2-8c0-0.5,0.3-0.9,0.9-0.9
33
- c0.5,0,0.9,0.4,1,0.9c0.1,0.9,0.1,1.6,0.1,2.5c0.3-0.1,0.6-0.1,0.9-0.1C115.9,19.7,116,21.8,116,23.4z"/>
34
- <path class="st1" d="M125.4,24.6c0,0.9-0.6,1.5-1.5,1.6c-1.3,0.1-2.6,0.1-3.8,0.1c-1.7,0-2.2-1.2-2.2-2.7c0-3.1,0.3-6.1,0.3-9.2
35
- c0-1.1-0.1-2.2-0.1-3.3c0-0.8,0.6-1.3,1.4-1.3c2.3,0,1.8,3.3,1.8,4.8c0,2.9-0.3,5.7-0.3,8.6c1,0,2-0.1,3-0.1
36
- C124.8,23.1,125.4,23.7,125.4,24.6z"/>
37
- <path class="st1" d="M132,26.5c-3.5,0-5.4-3.6-5.4-6.7c0-3.3,2-6.5,5.6-6.5c2.1,0,4,1.5,4,3.8c0,2.7-2.7,4.1-5.1,4.1
38
- c-0.4,0-0.9,0-1.3-0.1c0.1,1.3,0.8,2.5,2.3,2.5c1.7,0,1.6-1.9,3-1.9c0.8,0,1.6,0.7,1.6,1.5C136.7,25,133.7,26.5,132,26.5z
39
- M132.1,16.2c-0.8,0-1.9,1-2.2,1.7c0.4,0.1,0.8,0.1,1.1,0.1c0.6,0,2-0.3,2-1C133.1,16.5,132.6,16.2,132.1,16.2z"/>
40
- <path class="st1" d="M145.9,23.1c0.9,0,1.4,0.8,1.4,1.6c0,1.5-2,1.6-3.1,1.6c-4.4,0-4.5-4.6-4.5-7.9c-1.1,0-2.1-0.1-2.1-1.5
41
- s1-1.6,2.1-1.6c0-1.6,0-2.2,0.2-3.8c0.1-0.9,0.7-1.5,1.6-1.5s1.5,0.6,1.5,1.5c0,1.6-0.2,2.1-0.2,3.7c1.3,0,3.7-0.6,3.7,1.3
42
- c0,2-2.3,1.7-3.6,1.8c0,1.4-0.4,4.9,1.6,4.9C145,23.2,145.5,23.1,145.9,23.1z"/>
43
- <path class="st1" d="M156.7,23.1c0.9,0,1.4,0.8,1.4,1.6c0,1.5-2,1.6-3.1,1.6c-4.4,0-4.5-4.6-4.5-7.9c-1.1,0-2.1-0.1-2.1-1.5
44
- s1-1.6,2.1-1.6c0-1.6,0-2.2,0.2-3.8c0.1-0.9,0.7-1.5,1.6-1.5s1.5,0.6,1.5,1.5c0,1.6-0.2,2.1-0.2,3.7c1.3,0,3.7-0.6,3.7,1.3
45
- c0,2-2.3,1.7-3.6,1.8c0,1.4-0.4,4.9,1.6,4.9C155.7,23.2,156.2,23.1,156.7,23.1z"/>
46
- <path class="st1" d="M164.7,26.5c-3.5,0-5.4-3.6-5.4-6.7c0-3.3,2-6.5,5.6-6.5c2.1,0,4,1.5,4,3.8c0,2.7-2.7,4.1-5.1,4.1
47
- c-0.4,0-0.9,0-1.3-0.1c0.1,1.3,0.8,2.5,2.3,2.5c1.7,0,1.6-1.9,3-1.9c0.8,0,1.6,0.7,1.6,1.5C169.4,25,166.3,26.5,164.7,26.5z
48
- M164.8,16.2c-0.8,0-1.9,1-2.2,1.7c0.4,0.1,0.8,0.1,1.1,0.1c0.6,0,2-0.3,2-1C165.8,16.5,165.3,16.2,164.8,16.2z"/>
49
- <path class="st1" d="M178.6,14.4c0,2.1-2.2,0.9-3.9,2.7c-1.1,1.2-1,1.7-1,3.4c0,1.5,0,3,0,4.4c0,0.9-0.6,1.5-1.6,1.5
50
- s-1.5-0.6-1.5-1.5c-0.1-2.1,0-4.3,0-6.4V14c0-0.9,0.6-1.5,1.5-1.5c0.8,0,1.5,0.6,1.6,1.4c1-0.7,2.2-1.1,3.5-1.1
51
- C178,12.8,178.6,13.5,178.6,14.4z"/>
52
- <path class="st1" d="M184.4,21.4c-1.9-1-4.8-2.1-4.8-4.7s2.7-3.8,4.9-3.8c1.2,0,4.1,0.4,4.1,2c0,0.8-0.7,1.6-1.5,1.6
53
- s-1.6-0.5-2.5-0.5c-0.4,0-1.9,0.1-1.9,0.8c0,1.4,6.2,2.1,6.2,6.4c0,2.5-2.5,3.4-4.6,3.4c-1.4,0-4.1,0.1-4.1-1.8
54
- c0-0.9,0.7-1.5,1.6-1.5c0.8,0,1.5,0.3,2.3,0.3C186.1,23.4,186.4,22.4,184.4,21.4z"/>
55
- <g>
56
- <path class="st1" d="M98.21,26.2c-1.09,0.01-1.84-1.24-2.24-2.1c-0.45,0.92-1.38,2.21-2.5,2.22c-1.78,0.02-1.84-2.29-1.85-3.55
57
- c-0.01-0.96,0.04-1.92,0.15-2.88c0.06-0.48,0.3-0.87,0.83-0.87c0.41,0,0.88,0.33,0.88,0.76c0.01,0.98-0.15,1.98-0.13,2.99
58
- c0.02,2.03,0.44,2.03,1.25,0.19c0.22-0.49,0.37-1.01,0.43-1.48c0.05-0.5,0.3-0.84,0.85-0.85c0.41,0,0.69,0.23,0.82,0.6
59
- c0.1,0.28,0.33,0.92,0.59,1.57c0.95,2.33,1.56,1.43,1.33-0.42c-0.09-0.95-0.35-1.89-0.36-2.81c-0.01-1.13,1.49-1.23,1.66-0.31
60
- c0.22,1.16,0.41,2.41,0.42,3.59C100.36,24.16,99.88,26.18,98.21,26.2z"/>
61
- </g>
62
- <g>
63
- <path class="st1" d="M7.65,11.55c2.56-0.4,4.86-1.41,6.77-3.15c0.51-0.49,1.11-1.09,1.87-1.02c0.09,0-0.28,1.19-0.32,1.28
64
- c-0.21,0.51-0.49,0.96-0.77,1.41c-0.55,0.81-1.17,1.58-1.62,2.45c-0.53,1-0.79,2.15-0.32,3.22c0.85-1.87,1.7-3.73,2.56-5.6
65
- c0.3-0.66,0.62-1.36,1.11-1.9c0.47-0.55,1.19-0.96,1.92-0.92c1.06,0.06,1.85,1.02,2.9,1.28c1.11,0.28,2.22-0.28,3.34-0.34
66
- c1.24-0.06,2.47,0.45,3.41,1.28c0.94,0.83,1.58,1.94,2.02,3.11c1.15,3.02,1,6.52-0.43,9.39c-1.43,2.88-4.11,5.15-7.2,6.07
67
- c-3.19,0.96-6.79,0.45-9.65-1.26c-2.85-1.73-4.96-4.62-5.77-7.88c-0.23-1-0.17-2.07-0.38-3.07c-0.17-0.85-1.17-1.85-1.68-2.6
68
- c-0.13-0.19-0.26-0.38-0.28-0.62c-0.02-0.62,0.62-0.85,1.13-0.94C6.74,11.68,7.21,11.61,7.65,11.55z"/>
69
-
70
- <linearGradient id="SVGID_LOGO_1_" gradientUnits="userSpaceOnUse" x1="27.6594" y1="6.95" x2="10.728" y2="28.621" gradientTransform="matrix(1 0 0 -1 0 36)">
71
- <stop offset="1.491781e-07" style="stop-color:#7611CC"/>
72
- <stop offset="1" style="stop-color:#E17FFF"/>
73
- </linearGradient>
74
- <path class="st2" d="M27.4,29.23c-3.37,2.34-7.18,2.9-10.82,2.24c-3.64-0.55-7.01-2.24-10.27-4.2c-1.41-0.83-2.98-1.77-4.11-3.26
75
- c-1.21-1.49-1.96-3.64-1.68-5.88c0.19-1.49,0.94-2.98,1.87-4.11c1.41-1.49,3.37-2.62,5.22-1.3c0.55,0.38,0.94,0.83,1.21,1.41
76
- c0.28,0.66,0.28,1.41,0.28,2.15c0,2.51,0.19,5.49,2.04,7.37c0.83,0.83,1.77,1.21,2.79,1.21c1.41,0,2.79-0.83,3.26-2.24
77
- c0.83,1.49,2.62,2.34,4.2,2.34c1.13,0,2.15-0.38,2.79-1.3c2.04-2.9,2.62-7.28,1.58-12.42c-0.09-0.38-0.28-0.75-0.66-0.75h-2.17
78
- c-0.38,0-0.75,0.28-0.66,0.66c1.13,3.37,1.3,11.01-1.13,11.01s-2.6-7.6-1.38-11.05c0.19-0.38-0.28-0.66-0.66-0.66h-2.04
79
- c-0.38,0-0.55,0.28-0.66,0.75c-0.55,2.7-0.47,5.41-0.17,7.65c0.28,2.04-0.47,3.26-2.04,3.26c-0.66,0-1.02-0.55-1.3-1.13
80
- c-0.66-1.49-0.66-3.37-0.66-4.94c0-0.94,0.09-1.87,0.28-2.79c0.55-3.37,3.26-5.79,5.96-7.45c0.75-0.47,1.49-0.83,2.24-1.21
81
- c0.75-0.38,1.49-0.75,2.34-1.02c0.19-0.09,0.38-0.09,0.47-0.09c3.09-0.75,6.35,0.66,8.39,3.45c1.02,1.41,1.68,3.09,2.04,4.94
82
- C35.43,18.68,32.17,25.95,27.4,29.23z"/>
83
- </g>
1
+ {%- assign logoUid = include.uid | default: "wgLogoTile" -%}
2
+ <svg class="wg-logo-svg" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 228 40" width="228" height="40" overflow="visible" role="img" aria-label="Words With Letters">
3
+ <defs>
4
+ <linearGradient id="{{ logoUid }}" x1="0" y1="0" x2="1" y2="1">
5
+ <stop offset="0" stop-color="#4c1d95"/>
6
+ <stop offset=".55" stop-color="#7c3aed"/>
7
+ <stop offset="1" stop-color="#c026d3"/>
8
+ </linearGradient>
9
+ <linearGradient id="{{ logoUid }}Text" gradientUnits="userSpaceOnUse" x1="145" y1="0" x2="224" y2="0">
10
+ <stop offset="0" stop-color="#6d28d9"/>
11
+ <stop offset="1" stop-color="#c026d3"/>
12
+ </linearGradient>
13
+ </defs>
14
+ <!-- mark: same tiles as the favicon (assets/images/wordswithletters-favicon.svg) -->
15
+ <rect x="12.5" y="1.9" width="25" height="25" rx="6.3" fill="#ffb020" transform="rotate(12 25 14.4)"/>
16
+ <rect x="1.3" y="7.5" width="31.3" height="31.3" rx="8.1" fill="url(#{{ logoUid }})"/>
17
+ <path d="M7.8 15.6l4.1 13.8 5-10.3 5 10.3 4.1-13.8" fill="none" stroke="#fff" stroke-width="3.8" stroke-linecap="round" stroke-linejoin="round"/>
18
+ <!-- wordmark: natural width (~178 units in SF/Arial); overflow="visible" keeps wider fallback fonts from clipping -->
19
+ <text x="45" y="29" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif" font-size="22" font-weight="800" letter-spacing="-.5"><tspan class="st1" fill="#1e1b2e">Words</tspan><tspan class="wg-logo-with" fill="#8b84a3" font-weight="600" font-size="16" dx="5">with</tspan><tspan class="wg-logo-accent" fill="url(#{{ logoUid }}Text)" dx="5">Letters</tspan></text>
84
20
  </svg>
@@ -0,0 +1,16 @@
1
+ <div class="wg-mega__games{% if include.grid %} wg-mega__games--{{ include.grid }}{% endif %}">
2
+ {%- for l in include.links -%}
3
+ {%- if l.sub -%}
4
+ {%- assign sub = l.sub -%}
5
+ {%- else -%}
6
+ {%- assign sub = include.updated | append: " " | append: today -%}
7
+ {%- endif -%}
8
+ <a class="wg-mega__game" href="{{ l.url }}"{% if l.tab %} data-cross-tab="{{ l.tab }}"{% endif %}>
9
+ {%- if l.icon -%}
10
+ <span class="wg-mega__art wg-mega__art--ico" aria-hidden="true">{%- include home/icon.html name=l.icon -%}</span>
11
+ {%- else -%}
12
+ <span class="wg-mega__art" aria-hidden="true">{%- include home/game-art.html name=l.art -%}</span>
13
+ {%- endif -%}
14
+ <span><b>{{ l.name }}</b><small>{{ sub }}</small></span></a>
15
+ {%- endfor -%}
16
+ </div>
@@ -0,0 +1,19 @@
1
+ {%- comment -%}v2 "Recent posts" block for the home page: same coloured cards as the blog listing.{%- endcomment -%}
2
+ {%- assign recentPosts = site.posts | where_exp: "p", "p.url != page.url" -%}
3
+ {%- if recentPosts.size > 0 -%}
4
+ <link rel="stylesheet" href="/assets/css/wordgames-blog-v2.css" />
5
+ <section class="wg-blog wg-recent" aria-labelledby="wg-recent-title">
6
+ <div class="wg-page">
7
+ <div class="wg-section__head">
8
+ <div><h2 id="wg-recent-title">Recent posts</h2></div>
9
+ <a class="wg-btn wg-btn--ghost wg-recent__all" href="/blog">View all posts</a>
10
+ </div>
11
+ <div class="wg-blog__grid">
12
+ {%- for post in recentPosts limit: 6 -%}
13
+ {%- include authors/authors.html -%}
14
+ {%- include home/blog-card.html i=forloop.index0 -%}
15
+ {%- endfor -%}
16
+ </div>
17
+ </div>
18
+ </section>
19
+ {%- endif -%}
@@ -0,0 +1,45 @@
1
+ {%- comment -%}v2 "You might also like" block: posts sharing a category/tag with the page first, then other posts, up to 6. Same cards as the blog listing.{%- endcomment -%}
2
+ {%- assign maxRelated = 6 -%}
3
+ {%- assign relatedCount = 0 -%}
4
+ {%- assign file = page.fileName -%}
5
+ {%- assign folder = page.folderName -%}
6
+ {%- assign relData = site.data[folder]["en"][file] -%}
7
+ {%- assign categories = relData.categories | default: page.categories -%}
8
+ {%- assign tags = relData.tags | default: page.tags -%}
9
+ {%- assign candidates = site.posts | where_exp: "p", "p.url != page.url" -%}
10
+
11
+ {%- if candidates.size > 0 -%}
12
+ <link rel="stylesheet" href="/assets/css/wordgames-blog-v2.css" />
13
+ <section class="wg-blog wg-recent" aria-labelledby="wg-related-title">
14
+ <div class="wg-page">
15
+ <div class="wg-section__head">
16
+ <div><h2 id="wg-related-title">You might also like</h2></div>
17
+ <a class="wg-btn wg-btn--ghost wg-recent__all" href="/blog">View all posts</a>
18
+ </div>
19
+ <div class="wg-blog__grid">
20
+ {%- comment -%}pass 1: matching posts, pass 2: the rest{%- endcomment -%}
21
+ {%- for pass in (1..2) -%}
22
+ {%- for post in candidates -%}
23
+ {%- if relatedCount >= maxRelated -%}{%- break -%}{%- endif -%}
24
+ {%- assign isMatch = false -%}
25
+ {%- if categories -%}
26
+ {%- for category in post.categories -%}
27
+ {%- if categories contains category -%}{%- assign isMatch = true -%}{%- endif -%}
28
+ {%- endfor -%}
29
+ {%- endif -%}
30
+ {%- if tags -%}
31
+ {%- for tag in post.tags -%}
32
+ {%- if tags contains tag -%}{%- assign isMatch = true -%}{%- endif -%}
33
+ {%- endfor -%}
34
+ {%- endif -%}
35
+ {%- if pass == 1 and isMatch == false -%}{%- continue -%}{%- endif -%}
36
+ {%- if pass == 2 and isMatch == true -%}{%- continue -%}{%- endif -%}
37
+ {%- include authors/authors.html -%}
38
+ {%- include home/blog-card.html i=relatedCount -%}
39
+ {%- assign relatedCount = relatedCount | plus: 1 -%}
40
+ {%- endfor -%}
41
+ {%- endfor -%}
42
+ </div>
43
+ </div>
44
+ </section>
45
+ {%- endif -%}
@@ -0,0 +1,39 @@
1
+ {%- assign allPosts = site.posts -%}
2
+ {%- assign authorList = "" | split: "," -%}
3
+ {%- for p in allPosts -%}
4
+ {%- if p.author -%}{%- unless authorList contains p.author -%}{%- assign authorList = authorList | push: p.author -%}{%- endunless -%}{%- endif -%}
5
+ {%- endfor -%}
6
+ <p class="wg-static__lead">Welcome to {{ page.companyName }}. We are here to help you. Ping us your queries at <a href="mailto:care@{{ page.companyName }}.{{ page.domain }}">care@{{ page.companyName }}.{{ page.domain }}</a>.</p>
7
+ {%- if content != blank -%}<div class="wg-static__extra">{{ content }}</div>{%- endif -%}
8
+
9
+ <div class="wg-static__stats">
10
+ <a class="wg-static__stat" href="{{ site.url }}/sitemap.xml">
11
+ <span class="wg-static__stat-ico">{%- include home/icon.html name="grid" -%}</span>
12
+ <b>{{ site.pages | size }}</b>
13
+ <span>Features</span>
14
+ </a>
15
+ {%- if site.internationalizationall -%}
16
+ <div class="wg-static__stat">
17
+ <span class="wg-static__stat-ico">{%- include home/icon.html name="search" -%}</span>
18
+ <b>22</b>
19
+ <span>Languages supported</span>
20
+ </div>
21
+ {%- endif -%}
22
+ <a class="wg-static__stat" href="/blog">
23
+ <span class="wg-static__stat-ico">{%- include home/icon.html name="pencil" -%}</span>
24
+ <b>{{ site.posts | size }}</b>
25
+ <span>Blog posts</span>
26
+ </a>
27
+ <a class="wg-static__stat" href="/authors">
28
+ <span class="wg-static__stat-ico">{%- include home/icon.html name="crown" -%}</span>
29
+ <b>{{ authorList.size }}</b>
30
+ <span>Authors</span>
31
+ </a>
32
+ {%- if site.totalVisitors -%}
33
+ <div class="wg-static__stat">
34
+ <span class="wg-static__stat-ico">{%- include home/icon.html name="bolt" -%}</span>
35
+ <b id="visits">{{ site.totalVisitors }}</b>
36
+ <span>Total visitors</span>
37
+ </div>
38
+ {%- endif -%}
39
+ </div>
@@ -0,0 +1,19 @@
1
+ <p>Have a question, a suggestion or found something that looks wrong? Send us a message.</p>
2
+
3
+ <div class="wg-static__contact">
4
+ <div class="wg-static__contact-card">
5
+ <h3>Email us</h3>
6
+ <p>For questions, feedback, bug reports and anything else.</p>
7
+ <a class="wg-btn wg-btn--accent" href="mailto:care@{{ page.companyName }}.{{ page.domain }}">care@{{ page.companyName }}.{{ page.domain }}</a>
8
+ </div>
9
+ <div class="wg-static__contact-card">
10
+ <h3>Before you write</h3>
11
+ <p>Pages you may find useful.</p>
12
+ <ul>
13
+ <li><a href="/blog">Guides and tips on the blog</a></li>
14
+ <li><a href="/privacy-policy">Privacy Policy</a></li>
15
+ <li><a href="/terms-and-conditions">Terms of use</a></li>
16
+ <li><a href="/disclaimer">Disclaimer</a></li>
17
+ </ul>
18
+ </div>
19
+ </div>
@@ -0,0 +1,88 @@
1
+ <p>
2
+ We, <b>{{page.companyName}}</b> (hereinafter referred to as the
3
+ "FIRM," which expression shall, unless repugnant to the context
4
+ thereof, be deemed to include its respective legal heirs,
5
+ representatives, administrators, permitted successors and
6
+ assigns), provide this Disclaimer to explain the limits of Our
7
+ responsibility regarding Your use of the Platform.
8
+ </p>
9
+ <div class="py-3">
10
+ <p>
11
+ The Platform is a free-to-play word game website that does not
12
+ require registration, login, or the creation of an account. The
13
+ games, word lists, definitions, scores, and other results made
14
+ available on the Platform are generated algorithmically and are
15
+ provided for entertainment and educational purposes only.
16
+ </p>
17
+ <p>
18
+ The Firm will not be responsible for any damage suffered by You
19
+ from use of the Platform. This includes, but is not limited to,
20
+ loss of data, loss of saved game progress, or service
21
+ interruptions arising from any act or omission beyond Our
22
+ reasonable control. This disclaimer also applies to any damage
23
+ caused by any failure of performance, error, omission,
24
+ interruption, deletion, defect, delay in operation or
25
+ transmission, computer virus, communication line failure, or
26
+ unauthorized access to or alteration of any data, whether
27
+ arising from breach of contract, tortious behaviour, negligence,
28
+ or any other cause of action.
29
+ </p>
30
+ <p>
31
+ The services on the Platform are provided on an "as available"
32
+ basis, without any promise or guarantee by the Firm. While the
33
+ Firm endeavours to keep the information, word lists, and results
34
+ on the Platform accurate and up to date, the Firm makes no
35
+ representations or warranties of any kind, express or implied,
36
+ about the completeness, accuracy, reliability, suitability, or
37
+ availability of the Platform or the information, games, or
38
+ related graphics contained on it. Any reliance You place on such
39
+ information is therefore strictly at Your own risk.
40
+ </p>
41
+ <p>
42
+ Your use of the Platform and its games is entirely at Your own
43
+ discretion and risk. The Firm bears no responsibility for any
44
+ outcome, incidental, direct, indirect, or otherwise, arising
45
+ from Your use of the Platform. In no event will the Firm be
46
+ liable for any loss or damage, including without limitation
47
+ indirect or consequential loss or damage, or any loss of data
48
+ arising out of, or in connection with, Your use of the Platform.
49
+ </p>
50
+ <p>
51
+ The Platform may display advertisements or contain links to
52
+ other websites that are not under the control of the Firm. We
53
+ have no control over the nature, content, or availability of
54
+ those third-party websites, and the inclusion of any link or
55
+ advertisement does not imply a recommendation or endorsement of
56
+ the views, products, or services offered there. Any
57
+ advertisements appearing on the Platform relating to third-party
58
+ websites or services are for informational purposes only, and
59
+ Your interactions with any such third party are solely between
60
+ You and that third party.
61
+ </p>
62
+ <p>
63
+ Every effort is made to keep the Platform running smoothly.
64
+ However, the Firm takes no responsibility for, and will not be
65
+ liable for, the Platform being temporarily unavailable due to
66
+ technical issues, maintenance, or other causes beyond Our
67
+ reasonable control.
68
+ </p>
69
+ <p>
70
+ TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE FIRM
71
+ DISCLAIMS ALL LIABILITY FOR ANY LOSS OR DAMAGE ARISING FROM YOUR
72
+ USE OF THE PLATFORM, INCLUDING ANY LOSS OF SAVED GAME PROGRESS,
73
+ SCORES, OR PREFERENCES STORED ON YOUR DEVICE, WHETHER RESULTING
74
+ FROM CLEARED BROWSER DATA, DEVICE CHANGES, TECHNICAL FAILURES,
75
+ OR ANY OTHER CAUSE.
76
+ </p>
77
+ <p>
78
+ YOU UNDERSTAND AND AGREE THAT USE OF THE PLATFORM IS ENTIRELY AT
79
+ YOUR OWN DISCRETION AND RISK, AND THAT YOU ARE SOLELY
80
+ RESPONSIBLE FOR ANY DAMAGE TO YOUR DEVICE OR LOSS OF DATA
81
+ RESULTING FROM YOUR USE OF THE PLATFORM. THE FIRM IS NOT
82
+ RESPONSIBLE FOR ANY TYPOGRAPHICAL ERRORS ON THE PLATFORM AND
83
+ ACCEPTS NO LIABILITY FOR ANY ERRORS OR OMISSIONS WITH RESPECT TO
84
+ ANY INFORMATION PROVIDED ON THE PLATFORM, WHETHER PROVIDED BY
85
+ THE FIRM ITSELF OR BY THIRD PARTIES.
86
+ </p>
87
+ </div>
88
+
@@ -0,0 +1,141 @@
1
+ <p>This Privacy Policy ("Policy") describes how <b>{{ page.companyName }}</b> (hereinafter
2
+ referred to as the "Firm", "We", "Us" or "Our") collects, uses, discloses, and protects
3
+ information when You visit and play games on {{page.companyName}}.{{page.domain}}
4
+ (hereinafter referred to as the "Platform").</p>
5
+
6
+ <p>The Platform is a free-to-play word game website. You do not need to register, sign up, or
7
+ create an account to play any game on the Platform, and We do not require You to submit any
8
+ personal information in order to use the Platform. By accessing or using the Platform, You
9
+ consent to the practices described in this Policy. If You do not agree with this Policy,
10
+ please do not access or use the Platform.</p>
11
+
12
+ <div class="py-3">
13
+
14
+ <h3>1. NO REGISTRATION REQUIRED</h3>
15
+ <p>The Platform does not offer, and does not require, user registration, account creation,
16
+ sign-up, or login of any kind. You can access every game and feature on the Platform
17
+ without providing Your name, email address, phone number, or any other identifying
18
+ information.</p>
19
+
20
+ <h3>2. INFORMATION WE COLLECT</h3>
21
+ <p>Since there is no registration or account system, We do not knowingly collect Your name,
22
+ email address, phone number, or similar personal identifiers. However, in the ordinary
23
+ course of operating the Platform, We may automatically collect limited technical
24
+ information, such as:</p>
25
+ <p>a. Your IP address, approximate location (derived from IP address), browser type and
26
+ version, device type, and operating system.</p>
27
+ <p>b. Pages visited, games played, time spent on the Platform, referring/exit pages, and
28
+ similar usage and analytics data.</p>
29
+ <p>c. Cookies and locally stored data (such as browser local storage) used to remember Your
30
+ in-game progress, streaks, scores, or preferences (for example, Your daily word-game
31
+ results) on the device You are using, so that this information is available if You
32
+ return to the Platform on the same device and browser.</p>
33
+ <p>d. Information You voluntarily submit if You choose to contact Us directly, such as
34
+ through an email or a feedback/contact form (for example, Your email address and the
35
+ content of Your message).</p>
36
+
37
+ <h3>3. HOW WE USE INFORMATION</h3>
38
+ <p>Any information described above is used solely for the following purposes:</p>
39
+ <p>a. To operate, maintain, and improve the games and features on the Platform.</p>
40
+ <p>b. To remember Your game progress, scores, streaks, or preferences on Your device between
41
+ visits.</p>
42
+ <p>c. To understand, in aggregate, how visitors use the Platform, so that We can improve
43
+ performance, fix issues, and design better games.</p>
44
+ <p>d. To detect and prevent fraud, abuse, or security issues, and to protect the Platform and
45
+ its visitors.</p>
46
+ <p>e. To respond to You if You contact Us directly with a question, feedback, or complaint.
47
+ </p>
48
+ <p>f. To comply with applicable law or a valid legal request.</p>
49
+ <p>We do not use any information collected to build a profile of You for the purpose of
50
+ identifying You personally, since no account or identity is ever created on the
51
+ Platform.</p>
52
+
53
+ <h3>4. COOKIES AND LOCAL STORAGE</h3>
54
+ <p>The Platform uses cookies and/or browser local storage for the following purposes:</p>
55
+ <p>a. <b>Essential/Functional:</b> To save Your game progress, results, streaks, and
56
+ preferences (such as light/dark mode) directly on Your device, so the Platform works as
57
+ expected each time You visit.</p>
58
+ <p>b. <b>Analytics:</b> To understand overall visitor traffic and usage patterns using
59
+ analytics tools, in an aggregated and non-identifying manner.</p>
60
+ <p>c. <b>Advertising:</b> If the Platform displays advertisements, We and Our advertising
61
+ partners may use cookies or similar technologies to serve ads and measure their
62
+ performance, as described in Section 5 below.</p>
63
+ <p>You may control or disable cookies through Your browser settings at any time. Please note
64
+ that if You disable cookies or clear Your browser's local storage, Your saved game
65
+ progress, scores, and streaks on the Platform may be lost, and some features may not work
66
+ as intended.</p>
67
+
68
+ <h3>5. ADVERTISING AND THIRD-PARTY SERVICES</h3>
69
+ <p>The Platform may be supported, in whole or in part, by advertising and/or third-party
70
+ analytics services (such as Google Analytics or similar tools). These third parties may
71
+ use cookies, web beacons, or similar technologies to collect information about Your
72
+ visits to the Platform and other websites, in order to serve relevant advertisements and
73
+ measure their effectiveness.</p>
74
+ <p>We do not control the data collection practices of these third-party advertising or
75
+ analytics providers, and this Policy does not cover their practices. We encourage You to
76
+ review the privacy policies of any such third-party service, and, where available, to use
77
+ industry opt-out tools (such as the Network Advertising Initiative or Digital Advertising
78
+ Alliance opt-out pages) if You wish to limit interest-based advertising.</p>
79
+
80
+ <h3>6. DISCLOSURE OF INFORMATION</h3>
81
+ <p>We do not sell Your information. Since the Platform does not collect personal
82
+ identifiers through registration, there is very little information to disclose. However,
83
+ any technical or usage information We do collect may be shared:</p>
84
+ <p>a. With service providers (such as Our hosting provider or analytics/advertising partners)
85
+ who help Us operate the Platform, strictly for the purposes described in this Policy.</p>
86
+ <p>b. Where required to do so by law, regulation, court order, or a valid governmental or law
87
+ enforcement request.</p>
88
+ <p>c. In connection with a merger, acquisition, reorganization, or sale of all or part of Our
89
+ business, in which such information may be transferred as a business asset.</p>
90
+
91
+ <h3>7. DATA STORAGE AND SECURITY</h3>
92
+ <p>The Platform is hosted on Firebase. Any technical or usage information We collect is
93
+ stored on servers maintained by Our hosting and service providers. We take reasonable
94
+ technical and organizational measures to protect this information from unauthorized
95
+ access, alteration, or disclosure. However, no method of transmission over the internet
96
+ or electronic storage is completely secure, and We cannot guarantee absolute security.</p>
97
+
98
+ <h3>8. DATA RETENTION</h3>
99
+ <p>Game progress, scores, and preferences saved in Your browser's local storage remain on
100
+ Your device until You clear Your browser data or You do so yourself; We do not separately
101
+ store this information on Our servers tied to Your identity. Aggregated analytics and
102
+ technical log data are retained only for as long as reasonably necessary for the purposes
103
+ described in this Policy, or as required by applicable law.</p>
104
+
105
+ <h3>9. YOUR CHOICES</h3>
106
+ <p>Because the Platform does not require an account, there is no profile or account
107
+ information for You to access, correct, or delete with Us. You can, at any time:</p>
108
+ <p>a. Clear Your browser's cookies and local storage to remove any saved game progress,
109
+ scores, or preferences from Your device.</p>
110
+ <p>b. Adjust Your browser or device settings to block or limit cookies and tracking
111
+ technologies.</p>
112
+ <p>c. Use available opt-out mechanisms offered by third-party analytics or advertising
113
+ providers, where applicable.</p>
114
+
115
+ <h3>10. CHILDREN'S PRIVACY</h3>
116
+ <p>The Platform is a general-audience word game site and does not knowingly collect personal
117
+ information from anyone, including children, since no registration or account creation
118
+ is required or offered. If You believe a child has provided Us with personal information
119
+ through a direct communication (such as a contact email), please reach out to Us using
120
+ the details in Section 13, and We will take steps to delete such information.</p>
121
+
122
+ <h3>11. THIRD-PARTY LINKS</h3>
123
+ <p>The Platform may contain links to third-party websites, applications, or services that are
124
+ not owned or controlled by Us. This Policy does not apply to such third-party properties,
125
+ and We are not responsible for their privacy practices or content. We encourage You to
126
+ review the privacy policy of any third-party site You visit.</p>
127
+
128
+ <h3>12. CHANGES TO THIS POLICY</h3>
129
+ <p>The Firm reserves the right to amend or update this Policy at any time, at its sole
130
+ discretion, without prior notice. Any changes will be effective immediately upon posting
131
+ the revised Policy on the Platform. Your continued use of the Platform following any such
132
+ change constitutes Your acceptance of the revised Policy. We encourage You to review this
133
+ Policy periodically.</p>
134
+
135
+ <h3>13. CONTACT US</h3>
136
+ <p>If You have any questions, concerns, or feedback about this Privacy Policy or how the
137
+ Platform handles information, please contact Us at:</p>
138
+ <p>Email: care@{{page.companyName}}.{{page.domain}}</p>
139
+
140
+
141
+ </div>