jekyll-theme-chirpy-g 1.0.3 → 1.0.4

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 (64) hide show
  1. checksums.yaml +4 -4
  2. data/_data/locales/ca-ES.yml +84 -0
  3. data/_data/locales/da-DK.yml +86 -0
  4. data/_data/locales/dv/342/200/221MV.yml +90 -0
  5. data/_data/locales/{fa-IR.yaml → fa-IR.yml} +8 -8
  6. data/_data/locales/ja-JP.yml +84 -0
  7. data/_data/locales/ku-IQ.yml +91 -0
  8. data/_data/locales/ps/342/200/221AF.yml +90 -0
  9. data/_data/locales/ur-PK.yml +90 -0
  10. data/_data/origin/cors.yml +8 -8
  11. data/_includes/embed/audio.html +1 -1
  12. data/_includes/embed/spotify.html +22 -0
  13. data/_includes/favicons.html +3 -8
  14. data/_includes/head.html +16 -3
  15. data/_includes/js-selector.html +1 -1
  16. data/_includes/pageviews/goatcounter.html +1 -1
  17. data/_includes/post-summary.html +39 -0
  18. data/_includes/refactor-content.html +39 -7
  19. data/_includes/related-posts.html +1 -1
  20. data/_includes/search-results.html +1 -1
  21. data/_includes/sidebar.html +9 -1
  22. data/_includes/topbar.html +1 -1
  23. data/_layouts/default.html +2 -2
  24. data/_layouts/home.html +28 -10
  25. data/_layouts/post.html +0 -1
  26. data/_sass/abstracts/_placeholders.scss +3 -0
  27. data/_sass/base/_base.scss +10 -3
  28. data/_sass/base/_syntax.scss +2 -3
  29. data/_sass/base/_typography.scss +2 -4
  30. data/_sass/components/_popups.scss +1 -1
  31. data/_sass/pages/_home.scss +1 -4
  32. data/_sass/pages/_post.scss +1 -3
  33. data/_sass/themes/_dark.scss +46 -46
  34. data/_sass/themes/_light.scss +21 -25
  35. data/_sass/vendors/_bootstrap.scss +3 -3
  36. data/assets/404.html +1 -6
  37. data/assets/css/jekyll-theme-chirpy-g.scss +1 -0
  38. data/assets/feed.xml +1 -1
  39. data/assets/img/favicons/apple-touch-icon.png +0 -0
  40. data/assets/img/favicons/favicon-96x96.png +0 -0
  41. data/assets/img/favicons/favicon.ico +0 -0
  42. data/assets/img/favicons/favicon.svg +3 -0
  43. data/assets/img/favicons/site.webmanifest +6 -4
  44. data/assets/img/favicons/web-app-manifest-192x192.png +0 -0
  45. data/assets/img/favicons/web-app-manifest-512x512.png +0 -0
  46. data/assets/js/data/search.json +3 -5
  47. data/assets/js/dist/app.min.js +1 -1
  48. data/assets/js/dist/categories.min.js +1 -1
  49. data/assets/js/dist/commons.min.js +1 -1
  50. data/assets/js/dist/graph.min.js +1 -1
  51. data/assets/js/dist/home.min.js +1 -1
  52. data/assets/js/dist/misc.min.js +1 -1
  53. data/assets/js/dist/page.min.js +1 -1
  54. data/assets/js/dist/post.min.js +1 -1
  55. data/assets/js/dist/sw.min.js +1 -1
  56. data/assets/js/dist/theme.min.js +1 -1
  57. metadata +16 -24
  58. data/_includes/post-description.html +0 -25
  59. data/assets/img/favicons/android-chrome-192x192.png +0 -0
  60. data/assets/img/favicons/android-chrome-512x512.png +0 -0
  61. data/assets/img/favicons/browserconfig.xml +0 -13
  62. data/assets/img/favicons/favicon-16x16.png +0 -0
  63. data/assets/img/favicons/favicon-32x32.png +0 -0
  64. data/assets/img/favicons/mstile-150x150.png +0 -0
@@ -9,7 +9,7 @@
9
9
  {% endunless %}
10
10
 
11
11
  <p>
12
- <audio class="embed-audio" controls>
12
+ <audio class="embed-audio file" controls>
13
13
  {% assign extension = src | split: '.' | last %}
14
14
  {% assign types = extension | concat: types %}
15
15
 
@@ -0,0 +1,22 @@
1
+ {% assign size = 352 %}
2
+ {% assign theme = '' %}
3
+
4
+ {% if include.compact %}
5
+ {% assign size = 152 %}
6
+ {% endif %}
7
+
8
+ {% if include.dark %}
9
+ {% assign theme = '?theme=0' %}
10
+ {% endif %}
11
+
12
+ <iframe
13
+ class="embed-audio spotify"
14
+ src="https://open.spotify.com/embed/track/{{ include.id | append: theme }}"
15
+ height="{{ size }}"
16
+ frameBorder="0"
17
+ allowfullscreen=""
18
+ allowtransparency="true"
19
+ allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture"
20
+ loading="lazy"
21
+ >
22
+ </iframe>
@@ -5,15 +5,10 @@
5
5
 
6
6
  {% capture favicon_path %}{{ '/assets/img/favicons' | relative_url }}{% endcapture %}
7
7
 
8
+ <link rel="icon" type="image/png" href="{{ favicon_path }}/favicon-96x96.png" sizes="96x96">
9
+ <link rel="icon" type="image/svg+xml" href="{{ favicon_path }}/favicon.svg">
10
+ <link rel="shortcut icon" href="{{ favicon_path }}/favicon.ico">
8
11
  <link rel="apple-touch-icon" sizes="180x180" href="{{ favicon_path }}/apple-touch-icon.png">
9
- <link rel="icon" type="image/png" sizes="32x32" href="{{ favicon_path }}/favicon-32x32.png">
10
- <link rel="icon" type="image/png" sizes="16x16" href="{{ favicon_path }}/favicon-16x16.png">
11
12
  {% if site.pwa.enabled %}
12
13
  <link rel="manifest" href="{{ favicon_path }}/site.webmanifest">
13
14
  {% endif %}
14
- <link rel="shortcut icon" href="{{ favicon_path }}/favicon.ico">
15
- <meta name="apple-mobile-web-app-title" content="{{ site.title }}">
16
- <meta name="application-name" content="{{ site.title }}">
17
- <meta name="msapplication-TileColor" content="#da532c">
18
- <meta name="msapplication-config" content="{{ favicon_path }}/browserconfig.xml">
19
- <meta name="theme-color" content="#ffffff">
data/_includes/head.html CHANGED
@@ -50,11 +50,24 @@
50
50
 
51
51
  {{ seo_tags }}
52
52
 
53
+ {%- if site.social.fediverse_handle %}
54
+ <!-- Fediverse handle/creator -->
55
+ <meta name="fediverse:creator" content="{{ site.social.fediverse_handle }}">
56
+ {% endif %}
57
+
53
58
  <title>
54
59
  {%- unless page.layout == 'home' -%}
55
- {{ page.title | append: ' | ' }}
60
+ {%- capture title -%}
61
+ {%- if page.collection == 'tabs' -%}
62
+ {%- assign tab_key = page.title | downcase -%}
63
+ {{- site.data.locales[include.lang].tabs[tab_key] -}}
64
+ {%- else -%}
65
+ {{- page.title -}}
66
+ {%- endif -%}
67
+ {%- endcapture -%}
68
+ {{- title | append: ' | ' -}}
56
69
  {%- endunless -%}
57
- {{ site.title }}
70
+ {{- site.title -}}
58
71
  </title>
59
72
 
60
73
  {% include_cached favicons.html %}
@@ -70,7 +83,7 @@
70
83
 
71
84
  <!-- Bootstrap -->
72
85
  {% unless jekyll.environment == 'production' %}
73
- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
86
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css">
74
87
  {% endunless %}
75
88
 
76
89
  <!-- Theme style -->
@@ -66,7 +66,7 @@
66
66
 
67
67
  {% if page.math %}
68
68
  <!-- MathJax -->
69
- <script async src="{{ '/assets/js/data/mathjax.js' | relative_url }}"></script>
69
+ <script src="{{ '/assets/js/data/mathjax.js' | relative_url }}"></script>
70
70
  <script async src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=es6"></script>
71
71
  <script id="MathJax-script" async src="{{ site.data.origin[type].mathjax.js | relative_url }}"></script>
72
72
  {% endif %}
@@ -10,7 +10,7 @@
10
10
  fetch(url)
11
11
  .then((response) => response.json())
12
12
  .then((data) => {
13
- const count = data.count.replace(/\s/g, '');
13
+ const count = data.count.replace(/\D/g, '');
14
14
  pv.innerText = new Intl.NumberFormat().format(count);
15
15
  })
16
16
  .catch((error) => {
@@ -0,0 +1,39 @@
1
+ {%- comment -%}
2
+ Get the post's description or body content.
3
+
4
+ Arguments:
5
+ full_text: If true, return the full content. Default is false.
6
+ max_length: The maximum length of the returned content. Default is 200.
7
+ {%- endcomment -%}
8
+
9
+ {%- if post.description and include.full_text != true -%}
10
+ {{- post.description -}}
11
+ {%- else -%}
12
+ {%- comment -%} Remove the line numbers from the code snippet. {%- endcomment -%}
13
+
14
+ {%- assign content = post.content -%}
15
+
16
+ {%- if content contains '<td class="rouge-gutter gl"><pre class="lineno">' -%}
17
+ {%- assign content = content
18
+ | replace: '<td class="rouge-gutter gl"><pre class="lineno">',
19
+ '<!-- <td class="rouge-gutter gl"><pre class="lineno">'
20
+ -%}
21
+ {%- assign content = content | replace: '</td><td class="rouge-code">', '</td> --><td class="rouge-code">' -%}
22
+ {%- endif -%}
23
+
24
+ {%- assign content = content
25
+ | markdownify
26
+ | strip_html
27
+ | newline_to_br
28
+ | replace: '<br />', ' '
29
+ | strip_newlines
30
+ | strip
31
+ -%}
32
+
33
+ {%- unless include.full_text -%}
34
+ {%- assign max_length = include.max_length | default: 200 -%}
35
+ {%- assign content = content | truncate: max_length -%}
36
+ {%- endunless -%}
37
+
38
+ {{- content -}}
39
+ {%- endif -%}
@@ -88,9 +88,41 @@
88
88
  {% endfor %}
89
89
 
90
90
  <!-- take out classes -->
91
+ {% assign _wrapper_class = '' %}
92
+
91
93
  {% if _class %}
92
- {% capture _old_class %}class="{{ _class }}"{% endcapture %}
93
- {% assign _left = _left | remove: _old_class %}
94
+ {% assign _remain = _class %}
95
+ {% assign _class_array = _class | split: ' ' %}
96
+
97
+ {% for c in _class_array %}
98
+ {% assign _pick = false %}
99
+
100
+ {% case c %}
101
+ {% when 'preview-img', 'normal', 'left', 'right', 'light', 'dark' %}
102
+ {% assign _pick = true %}
103
+ {% else %}
104
+ {% if c contains '-' %}
105
+ {% assign start = c | split: '-' | first %}
106
+ {% if start == 'w' %}
107
+ {% assign _pick = true %}
108
+ {% endif %}
109
+ {% endif %}
110
+ {% endcase %}
111
+
112
+ {% if _pick %}
113
+ {% assign _remain = _remain | remove: c | strip %}
114
+ {% assign _wrapper_class = _wrapper_class | append: ' ' | append: c %}
115
+ {% endif %}
116
+ {% endfor %}
117
+
118
+ {% unless _wrapper_class == '' %}
119
+ {% capture _old_class %}class="{{ _class }}"{% endcapture %}
120
+ {% assign _left = _left | remove: _old_class %}
121
+ {% unless _remain == '' %}
122
+ {% capture _new_class %}class="{{ _remain }}"{% endcapture %}
123
+ {% assign _left = _left | append: _new_class %}
124
+ {% endunless %}
125
+ {% endunless %}
94
126
  {% endif %}
95
127
 
96
128
  {% assign _final_src = null %}
@@ -110,7 +142,7 @@
110
142
 
111
143
  {% if _lqip %}
112
144
  {% assign _lazyload = false %}
113
- {% assign _class = _class | append: ' blur' %}
145
+ {% assign _wrapper_class = _wrapper_class | append: ' blur' %}
114
146
 
115
147
  {% unless _lqip contains 'data:' %}
116
148
  {% assign _lqip_alt = 'lqip="' | append: _path_prefix %}
@@ -121,7 +153,7 @@
121
153
  {% assign _left = _left | replace: 'src=', 'data-src=' | replace: ' lqip=', ' data-lqip="true" src=' %}
122
154
 
123
155
  {% else %}
124
- {% assign _class = _class | append: ' shimmer' %}
156
+ {% assign _wrapper_class = _wrapper_class | append: ' shimmer' %}
125
157
  {% endif %}
126
158
 
127
159
  <!-- lazy-load images -->
@@ -131,7 +163,7 @@
131
163
 
132
164
  {% if page.layout == 'home' %}
133
165
  <!-- create the image wrapper -->
134
- {% assign _wrapper_start = '<div class="preview-img ' | append: _class | append: '">' %}
166
+ {% assign _wrapper_start = '<div class="preview-img ' | append: _wrapper_class | append: '">' %}
135
167
 
136
168
  {% assign _img_content = _img_content | append: _wrapper_start %}
137
169
  {% assign _right = _right | prepend: '></div' %}
@@ -153,8 +185,8 @@
153
185
  {% assign _wrapper_start = _final_src
154
186
  | default: _src
155
187
  | prepend: '<a href="'
156
- | append: '" class="popup img-link '
157
- | append: _class
188
+ | append: '" class="popup img-link'
189
+ | append: _wrapper_class
158
190
  | append: '">'
159
191
  %}
160
192
 
@@ -82,7 +82,7 @@
82
82
  {% include datetime.html date=post.date lang=include.lang %}
83
83
  <h4 class="pt-0 my-2">{{ post.title }}</h4>
84
84
  <div class="text-muted">
85
- <p>{% include post-description.html %}</p>
85
+ <p>{% include post-summary.html %}</p>
86
86
  </div>
87
87
  </div>
88
88
  </a>
@@ -3,7 +3,7 @@
3
3
  <div id="search-result-wrapper" class="d-flex justify-content-center d-none">
4
4
  <div class="col-11 content">
5
5
  <div id="search-hints">
6
- {% include_cached trending-tags.html %}
6
+ {% include_cached trending-tags.html lang=include.lang %}
7
7
  </div>
8
8
  <div id="search-results" class="d-flex flex-wrap justify-content-center text-muted mt-3"></div>
9
9
  </div>
@@ -52,13 +52,21 @@
52
52
  {% endunless %}
53
53
 
54
54
  {% for entry in site.data.contact %}
55
+ {%- assign url = null -%}
56
+
55
57
  {% case entry.type %}
56
58
  {% when 'github', 'twitter' %}
59
+ {%- unless site[entry.type].username -%}
60
+ {%- continue -%}
61
+ {%- endunless -%}
57
62
  {%- capture url -%}
58
63
  https://{{ entry.type }}.com/{{ site[entry.type].username }}
59
64
  {%- endcapture -%}
60
65
  {% when 'email' %}
61
- {% assign email = site.social.email | split: '@' %}
66
+ {%- unless site.social.email -%}
67
+ {%- continue -%}
68
+ {%- endunless -%}
69
+ {%- assign email = site.social.email | split: '@' -%}
62
70
  {%- capture url -%}
63
71
  javascript:location.href = 'mailto:' + ['{{ email[0] }}','{{ email[1] }}'].join('@')
64
72
  {%- endcapture -%}
@@ -1,6 +1,6 @@
1
1
  <!-- The Top Bar -->
2
2
 
3
- <header id="topbar-wrapper" aria-label="Top Bar">
3
+ <header id="topbar-wrapper" class="flex-shrink-0" aria-label="Top Bar">
4
4
  <div
5
5
  id="topbar"
6
6
  class="d-flex align-items-center justify-content-between px-lg-3 h-100"
@@ -14,7 +14,7 @@ layout: compress
14
14
 
15
15
  <!-- `site.alt_lang` can specify a language different from the UI -->
16
16
  <html lang="{{ page.lang | default: site.alt_lang | default: site.lang }}" {{ prefer_mode }}>
17
- {% include head.html %}
17
+ {% include head.html lang=lang %}
18
18
 
19
19
  <body>
20
20
  {% include sidebar.html lang=lang %}
@@ -25,7 +25,7 @@ layout: compress
25
25
 
26
26
  <div class="row flex-grow-1">
27
27
  <main aria-label="Main Content" class="col-12 col-lg-11 col-xl-9 px-md-4">
28
- {% if layout.refactor or layout.layout == 'default' %}
28
+ {% if layout.layout == 'default' %}
29
29
  {% include refactor-content.html content=content lang=lang %}
30
30
  {% else %}
31
31
  {{ content }}
data/_layouts/home.html CHANGED
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  layout: default
3
- refactor: true
4
3
  ---
5
4
 
6
5
  {% include lang.html %}
@@ -55,20 +54,39 @@ refactor: true
55
54
 
56
55
  {% if post.image %}
57
56
  {% assign src = post.image.path | default: post.image %}
58
- {% unless src contains '//' %}
59
- {% assign src = post.media_subpath | append: '/' | append: src | replace: '//', '/' %}
60
- {% endunless %}
61
57
 
62
- {% assign alt = post.image.alt | xml_escape | default: 'Preview Image' %}
63
-
64
- {% assign lqip = null %}
58
+ {% if post.media_subpath %}
59
+ {% unless src contains '://' %}
60
+ {% assign src = post.media_subpath
61
+ | append: '/'
62
+ | append: src
63
+ | replace: '///', '/'
64
+ | replace: '//', '/'
65
+ %}
66
+ {% endunless %}
67
+ {% endif %}
65
68
 
66
69
  {% if post.image.lqip %}
67
- {% capture lqip %}lqip="{{ post.image.lqip }}"{% endcapture %}
70
+ {% assign lqip = post.image.lqip %}
71
+
72
+ {% if post.media_subpath %}
73
+ {% unless lqip contains 'data:' %}
74
+ {% assign lqip = post.media_subpath
75
+ | append: '/'
76
+ | append: lqip
77
+ | replace: '///', '/'
78
+ | replace: '//', '/'
79
+ %}
80
+ {% endunless %}
81
+ {% endif %}
82
+
83
+ {% assign lqip_attr = 'lqip="' | append: lqip | append: '"' %}
68
84
  {% endif %}
69
85
 
86
+ {% assign alt = post.image.alt | xml_escape | default: 'Preview Image' %}
87
+
70
88
  <div class="col-md-5">
71
- <img src="{{ src }}" alt="{{ alt }}" {{ lqip }}>
89
+ <img src="{{ src }}" alt="{{ alt }}" {{ lqip_attr }}>
72
90
  </div>
73
91
 
74
92
  {% assign card_body_col = '7' %}
@@ -79,7 +97,7 @@ refactor: true
79
97
  <h1 class="card-title my-2 mt-md-0">{{ post.title }}</h1>
80
98
 
81
99
  <div class="card-text content mt-0 mb-3">
82
- <p>{% include post-description.html %}</p>
100
+ <p>{% include post-summary.html %}</p>
83
101
  </div>
84
102
 
85
103
  <div class="post-meta flex-grow-1 d-flex align-items-end">
data/_layouts/post.html CHANGED
@@ -1,6 +1,5 @@
1
1
  ---
2
2
  layout: default
3
- refactor: true
4
3
  panel_includes:
5
4
  - toc
6
5
  tail_includes:
@@ -31,7 +31,10 @@
31
31
  }
32
32
 
33
33
  %tag-hover {
34
+ @extend %link-color;
35
+
34
36
  background: var(--tag-hover);
37
+ border-color: var(--tag-hover);
35
38
  transition: background 0.35s ease-in-out;
36
39
  }
37
40
 
@@ -103,7 +103,7 @@ main {
103
103
  width: 100%;
104
104
  height: 100%;
105
105
  position: absolute;
106
- background-color: var(--card-hovor-bg);
106
+ background-color: var(--card-hover-bg);
107
107
  opacity: 0;
108
108
  transition: opacity 0.35s ease-in-out;
109
109
  }
@@ -314,7 +314,14 @@ main {
314
314
 
315
315
  .embed-audio {
316
316
  width: 100%;
317
- display: block;
317
+
318
+ &.file {
319
+ display: block;
320
+ }
321
+
322
+ &.spotify {
323
+ border-radius: 14px;
324
+ }
318
325
 
319
326
  @extend %img-caption;
320
327
  }
@@ -349,7 +356,7 @@ main {
349
356
  }
350
357
 
351
358
  .disabled {
352
- color: rgb(206, 196, 196);
359
+ color: rgb(206 196 196);
353
360
  pointer-events: auto;
354
361
  cursor: not-allowed;
355
362
  }
@@ -24,7 +24,6 @@
24
24
  margin-bottom: 0;
25
25
  font-size: v.$code-font-size;
26
26
  line-height: 1.4rem;
27
- word-wrap: normal; /* Fixed Safari overflow-x */
28
27
  }
29
28
 
30
29
  table {
@@ -66,7 +65,7 @@ code {
66
65
  &.highlighter-rouge {
67
66
  font-size: v.$code-font-size;
68
67
  padding: 3px 5px;
69
- word-break: break-word;
68
+ overflow-wrap: break-word;
70
69
  border-radius: v.$radius-sm;
71
70
  background-color: var(--inline-code-bg);
72
71
  }
@@ -243,7 +242,7 @@ div {
243
242
  }
244
243
 
245
244
  &:not([timeout]):hover {
246
- background-color: rgba(128, 128, 128, 0.37);
245
+ background-color: rgb(128 128 128 / 37%);
247
246
 
248
247
  i {
249
248
  color: white;
@@ -26,9 +26,7 @@
26
26
  }
27
27
  }
28
28
 
29
- & {
30
- font-size: 1rem + (5 - $i) * $size-factor;
31
- }
29
+ font-size: 1rem + (5 - $i) * $size-factor;
32
30
  } @else {
33
31
  font-size: 1.05rem;
34
32
  }
@@ -238,7 +236,7 @@ main {
238
236
  border-spacing: 0;
239
237
 
240
238
  thead {
241
- border-bottom: solid 2px rgba(210, 215, 217, 0.75);
239
+ border-bottom: solid 2px rgb(210 215 217 / 75%);
242
240
 
243
241
  th {
244
242
  @extend %table-cell;
@@ -41,7 +41,7 @@
41
41
  border-radius: 0.5rem;
42
42
  -webkit-backdrop-filter: blur(10px);
43
43
  backdrop-filter: blur(10px);
44
- background-color: rgba(255, 255, 255, 0.5);
44
+ background-color: rgb(255 255 255 / 50%);
45
45
  color: #1b1b1eba;
46
46
  position: fixed;
47
47
  left: 50%;
@@ -134,9 +134,6 @@
134
134
  .page-link {
135
135
  color: var(--btn-patinator-text-color);
136
136
  padding: 0 0.6rem;
137
- display: -webkit-box;
138
- -webkit-box-pack: center;
139
- -webkit-box-align: center;
140
137
  border-radius: 0.5rem;
141
138
  border: 0;
142
139
  background-color: inherit;
@@ -160,7 +157,7 @@
160
157
  cursor: not-allowed;
161
158
 
162
159
  .page-link {
163
- color: rgba(108, 117, 125, 0.57);
160
+ color: rgb(108 117 125 / 57%);
164
161
  }
165
162
  }
166
163
  } /* .page-item */
@@ -127,7 +127,7 @@ header {
127
127
 
128
128
  .share-mastodon {
129
129
  /* See: https://github.com/justinribeiro/share-to-mastodon#properties */
130
- --wc-stm-font-family: v.$font-family-base;
130
+ --wc-stm-font-family: #{v.$font-family-base};
131
131
  --wc-stm-dialog-background-color: var(--card-bg);
132
132
  --wc-stm-form-button-border: 1px solid var(--btn-border-color);
133
133
  --wc-stm-form-submit-background-color: var(--sidebar-btn-bg);
@@ -143,9 +143,7 @@ header {
143
143
 
144
144
  .post-tag {
145
145
  &:hover {
146
- @extend %link-hover;
147
146
  @extend %tag-hover;
148
- @extend %no-bottom-border;
149
147
  }
150
148
  }
151
149
  }