jekyll-theme-centos 2.52.0.beta.91 → 2.52.0.beta.92

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 23bf21a6e35d2941d90d11a7aefac6c245c1e2811fa5945eccf8bca522c02b90
4
- data.tar.gz: 3f4e5a418e6a8e949b528bc4762899a351bebb05bd835c53df0945517d825e4b
3
+ metadata.gz: b215f97ff3780331a982089e5719dbe284707fef64a0a5f4abc2b30864f2023c
4
+ data.tar.gz: 612f7607e1ea34f937f9cd881be3c4e4df01d9f1eee172540eeca244096ee10b
5
5
  SHA512:
6
- metadata.gz: 02da80654ac1f33df8888665c3f562face66490047e0726437ad8ac56c501e16046f6b1b3d993678159483204bf3612fb2086de5fdee8ce2b608aa4fda176130
7
- data.tar.gz: 8d39190e6c26dc5c274933988326cbabe1152052e9f6e60f1eeeb2faacfbf472918f572b15c84122f77120f2d4e71d0b5385b1e5cd2981412b70f02bc6a21699
6
+ metadata.gz: 1c826018b0f8b10df68124dd00b13328953b70596297d390ad3bf05f1dc269261255b2d680cbc98a41ac9701fec11692d657d34cfd502210a50cf0ce874cf739
7
+ data.tar.gz: ac962acbdbaffa0f44397c21474866ce09ad5acf0564c52ee0ebcefc75629f86f887a82f3da25a0a873409dda7c2b6966d2cbdcc1c3315d37cebda6f3c7b583f
@@ -205,6 +205,20 @@ properties:
205
205
  properties:
206
206
  title: { type: string, default: "", description: "Visible link label." }
207
207
  link: { type: string, default: "", description: "Target URL." }
208
+ description:
209
+ type: string
210
+ default: ""
211
+ description: >-
212
+ Optional supporting text or HTML explaining why
213
+ this link is worth revisiting, not just what it's
214
+ called. Empty renders this entry as a plain button
215
+ (most entries need only `title`/`link`); set,
216
+ renders as one prose sentence instead — `title` as
217
+ the inline link, this text continuing the sentence
218
+ grammatically right after it (e.g. a `title` of
219
+ "Release Notes" and a `description` of "are
220
+ continuously updated..." reads as "Release Notes
221
+ are continuously updated...").
208
222
  additionalProperties: false
209
223
  eol:
210
224
  type: array
@@ -22,8 +22,14 @@ Data Source Hierarchy (in priority order):
22
22
  4. site.data.base.download - Theme defaults
23
23
 
24
24
  Optional Inputs (from include):
25
- - title: Render only the entry whose title matches exactly.
26
- - id: HTML id prefix for the nav-pills tab selector (default: DownloadsCard-1).
25
+ - title: Render only the entry whose title matches exactly.
26
+ - id: HTML id prefix for the nav-pills tab selector (default: DownloadsCard-1).
27
+ - with_title: Set to false to skip the entry's own title heading, e.g. when
28
+ the calling page already presents it as a real markdown
29
+ heading immediately above the include (for TOC/anchor
30
+ navigation). Default: true.
31
+ - with_description: Set to false to skip the entry's own description text for the
32
+ same reason. Default: true.
27
33
  ================================================================================
28
34
  {% endcomment %}
29
35
 
@@ -76,13 +82,13 @@ Optional Inputs (from include):
76
82
  {%- assign single_release = entry.releases | first %}
77
83
  {%- endif %}
78
84
 
79
- {%- if entry.title and entry.title != "" %}
85
+ {%- if entry.title and entry.title != "" and include.with_title != false %}
80
86
  <div class="h2">
81
87
  {{ entry.title | escape }}{% if single_release %} {{ single_release[0] | escape }}{% endif %}
82
88
  </div>
83
89
  {%- endif %}
84
90
 
85
- {%- if entry.description and entry.description != "" %}
91
+ {%- if entry.description and entry.description != "" and include.with_description != false %}
86
92
  {{ entry.description | strip_newlines | markdownify }}
87
93
  {%- endif %}
88
94
 
@@ -102,7 +108,7 @@ Optional Inputs (from include):
102
108
  </div>
103
109
  {%- endfor %}
104
110
  {%- elsif entry.releases.size > 1 %}
105
- <ul class="nav nav-pills my-3 justify-content-start" id="{{ card_id }}-pills-tab" role="tablist">
111
+ <ul class="nav nav-pills mb-3 justify-content-start" id="{{ card_id }}-pills-tab" role="tablist">
106
112
  {%- for release in entry.releases %}
107
113
  <li class="nav-item" role="presentation">
108
114
  <button class="nav-link{% if forloop.first %} active{% endif %} fw-bold"
@@ -154,10 +154,10 @@ content — see examples/components/download-alternative-images.md.
154
154
  {%- assign arch_name_id_safe = arch_name | remove: '"' | remove: "'" | remove: '<' | remove: '>' | remove: '&' | remove: '#' | remove: '?' | remove: '/' %}
155
155
  {%- assign arch_id_prefix = include.release_id | default: "download" | append: "-" | append: arch_name_id_safe | downcase | replace: " ", "-" %}
156
156
  <div class="{{ arch_col_class }}"{% if arch_orphan_style != "" %} style="{{ arch_orphan_style }}"{% endif %}>
157
- <div class="d-flex flex-column align-items-start p-3">
158
- <div class="mb-2">
159
- <div class="fs-2"><i class="fa-solid fa-microchip"></i></div>
160
- <div class="h3">{{ arch_name | escape }}</div>
157
+ <div class="d-flex flex-column align-items-start p-3 pt-1">
158
+ <div class="mb-2 d-flex align-items-center gap-2">
159
+ <i class="fa-solid fa-microchip fs-2"></i>
160
+ <span class="h3 mb-0">{{ arch_name | escape }}</span>
161
161
  </div>
162
162
 
163
163
  {%- assign has_download_button = false %}
@@ -213,24 +213,31 @@ content — see examples/components/download-alternative-images.md.
213
213
  {%- endif %}
214
214
 
215
215
  {%- if has_mirrors %}
216
+ {%- comment %} These are outbound links to a mirror/registry, not
217
+ in-page navigation, so each opens in a new tab (target="_blank") with
218
+ the same trailing external-link icon as the Documentation section's
219
+ buttons (base/download_documentation.html.liquid), rather than the
220
+ Download button's leading icon above — the leading icon there signals
221
+ the primary action; the trailing external icon here signals "leaves
222
+ the site". {% endcomment %}
216
223
  <div class="d-flex flex-wrap gap-2">
217
224
  {%- if arch_data.mirrors.iso and arch_data.mirrors.iso != "" %}
218
- {%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="ISO Mirrors" link=arch_data.mirrors.iso icon="fa-solid fa-compact-disc" icon_position="start" -%}
225
+ {%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="ISO Mirrors" link=arch_data.mirrors.iso target="_blank" icon="fa-solid fa-up-right-from-square" icon_position="end" -%}
219
226
  {%- endif %}
220
227
  {%- if arch_data.mirrors.rpm and arch_data.mirrors.rpm != "" %}
221
- {%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="RPM Mirrors" link=arch_data.mirrors.rpm icon="fa-solid fa-box" icon_position="start" -%}
228
+ {%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="RPM Mirrors" link=arch_data.mirrors.rpm target="_blank" icon="fa-solid fa-up-right-from-square" icon_position="end" -%}
222
229
  {%- endif %}
223
230
  {%- if arch_data.mirrors.cloud and arch_data.mirrors.cloud != "" %}
224
- {%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="Cloud Images" link=arch_data.mirrors.cloud icon="fa-solid fa-cloud" icon_position="start" -%}
231
+ {%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="Cloud Images" link=arch_data.mirrors.cloud target="_blank" icon="fa-solid fa-up-right-from-square" icon_position="end" -%}
225
232
  {%- endif %}
226
233
  {%- if arch_data.mirrors.containers and arch_data.mirrors.containers != "" %}
227
- {%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="Container Images" link=arch_data.mirrors.containers icon="fa-solid fa-cubes" icon_position="start" -%}
234
+ {%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="Container Images" link=arch_data.mirrors.containers target="_blank" icon="fa-solid fa-up-right-from-square" icon_position="end" -%}
228
235
  {%- endif %}
229
236
  {%- if arch_data.mirrors.vagrant and arch_data.mirrors.vagrant != "" %}
230
- {%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="Vagrant Boxes" link=arch_data.mirrors.vagrant icon="fa-solid fa-box-archive" icon_position="start" -%}
237
+ {%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="Vagrant Boxes" link=arch_data.mirrors.vagrant target="_blank" icon="fa-solid fa-up-right-from-square" icon_position="end" -%}
231
238
  {%- endif %}
232
239
  {%- if arch_data.mirrors.torrent and arch_data.mirrors.torrent != "" %}
233
- {%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="Torrent" link=arch_data.mirrors.torrent icon="fa-solid fa-magnet" icon_position="start" -%}
240
+ {%- include base/link.html.liquid class="btn btn-outline-primary flex-fill text-start" role="button" name="Torrent" link=arch_data.mirrors.torrent target="_blank" icon="fa-solid fa-up-right-from-square" icon_position="end" -%}
234
241
  {%- endif %}
235
242
  </div>
236
243
  {%- endif %}
@@ -7,18 +7,52 @@ eol/screenshots accordion — release-wide metadata that applies in common to
7
7
  every architecture above. Called from download_sections.html.liquid.
8
8
 
9
9
  Required Inputs:
10
- - documentation: Array of {title, link}
10
+ - documentation: Array of {title, link, description}
11
11
  - accordion_id: Parent accordion's id, for data-bs-parent scoping
12
12
  - item_id: This item's unique collapse id
13
13
  - expanded: true starts this item open; false starts it closed. Passed
14
14
  through from the caller (see download_sections.html.liquid).
15
+
16
+ An entry's optional `description` switches its own presentation rather than
17
+ attaching a caption to a button: a bare button reads as a call to action
18
+ ("do this now"), a mismatched signifier for a full explanatory sentence
19
+ sitting next to it — so once there's a sentence to say, the entry renders as
20
+ one prose paragraph with `title` as the inline link and `description`
21
+ continuing the sentence grammatically (e.g. "Release Notes are continuously
22
+ updated..."), the standard, immediately-recognizable convention for
23
+ referencing a resource from explanatory text. Entries without a description
24
+ still render as a bare button, identical to before this field existed —
25
+ prose and buttons render as two separate groups (prose first, since it's the
26
+ richer content) rather than interleaved, so a documentation list mixing both
27
+ kinds doesn't end up with paragraphs breaking up a button row.
15
28
  ================================================================================
16
29
  {% endcomment %}
17
- {%- capture download_documentation_body -%}
30
+ {%- capture download_documentation_prose -%}
18
31
  {%- for row in include.documentation %}
19
- {%- if row.title and row.title != "" %}
20
- {%- include base/link.html.liquid class="btn btn-outline-primary" role="button" name=row.title link=row.link icon="fa-solid fa-up-right-from-square" icon_position="start" -%}
21
- {%- endif %}
32
+ {%- assign has_description = false %}
33
+ {%- if row.description and row.description != "" %}
34
+ {%- assign has_description = true %}
35
+ {%- endif %}
36
+ {%- if row.title and row.title != "" and has_description %}
37
+ <p class="mb-2">{%- include base/link.html.liquid name=row.title link=row.link target="_blank" icon="fa-solid fa-up-right-from-square" icon_position="end" %} {{ row.description }}</p>
38
+ {%- endif %}
22
39
  {%- endfor %}
23
40
  {%- endcapture -%}
24
- {%- include base/download_accordion_item.html.liquid icon="fa-solid fa-book" title="Documentation" item_id=include.item_id accordion_id=include.accordion_id expanded=include.expanded body_class="d-flex flex-wrap gap-2" body=download_documentation_body -%}
41
+ {%- capture download_documentation_buttons -%}
42
+ {%- for row in include.documentation %}
43
+ {%- assign has_description = false %}
44
+ {%- if row.description and row.description != "" %}
45
+ {%- assign has_description = true %}
46
+ {%- endif %}
47
+ {%- if row.title and row.title != "" and has_description == false %}
48
+ {%- include base/link.html.liquid class="btn btn-outline-primary text-start" role="button" name=row.title link=row.link target="_blank" icon="fa-solid fa-up-right-from-square" icon_position="end" -%}
49
+ {%- endif %}
50
+ {%- endfor %}
51
+ {%- endcapture -%}
52
+ {%- assign download_documentation_prose_stripped = download_documentation_prose | strip %}
53
+ {%- assign download_documentation_buttons_stripped = download_documentation_buttons | strip %}
54
+ {%- capture download_documentation_body -%}
55
+ {%- if download_documentation_prose_stripped != "" %}{{ download_documentation_prose }}{%- endif %}
56
+ {%- if download_documentation_buttons_stripped != "" %}<div class="d-flex flex-wrap gap-2">{{ download_documentation_buttons }}</div>{%- endif %}
57
+ {%- endcapture -%}
58
+ {%- include base/download_accordion_item.html.liquid icon="fa-solid fa-book" title="Documentation" item_id=include.item_id accordion_id=include.accordion_id expanded=include.expanded body=download_documentation_body -%}
@@ -24,18 +24,77 @@ Required Inputs:
24
24
  - expanded: true starts this item open; false starts it closed. Passed
25
25
  through from the caller (see download_sections.html.liquid).
26
26
 
27
- Each slide is wrapped in Bootstrap's `ratio ratio-16x9` utility, the same
28
- ratio artwork.html.liquid uses for its own image presentation
27
+ Each slide is wrapped in Bootstrap's `.ratio` utility, set to a fixed 16:10
28
+ box (`--bs-aspect-ratio: 62.5%` 800 / 1280) so screenshots of any native
29
+ size crop to a consistent box instead of each slide having its own height.
30
+ 16:10 matches actual OS screenshot captures (e.g. 1280x800, a common
31
+ display resolution) — deliberately not the 16:9 `ratio-16x9` modifier class
32
+ artwork.html.liquid uses for its own image presentation
29
33
  (artwork_schema.yml's image_class default: `ratio ratio-16x9 rounded
30
- bg-dark bg-artwork`), so screenshots of any native size crop to a
31
- consistent 16:9 box instead of each slide having its own height.
34
+ bg-dark bg-artwork`); real screen captures are rarely 16:9 natively, so
35
+ matching artwork's ratio here would crop more than necessary. Bootstrap
36
+ ships no `ratio-16x10` modifier class, hence the inline `--bs-aspect-ratio`
37
+ override on the base `.ratio` class instead of a second modifier class.
32
38
  `object-fit-cover` on the `<img>` itself does the actual cropping — `.ratio`
33
39
  alone only stretches its child to fill the box.
40
+
41
+ The carousel skips Bootstrap's `.carousel-dark` modifier: its indicator/
42
+ caption colors are meant to react to whether the underlying image is
43
+ generally light or dark, which fits calm banner photography but not real OS
44
+ screenshots — a single release's slides span stark-white installer screens
45
+ to busy desktop/app-grid content, no single color choice reads clearly
46
+ against all of them. `.download-screenshots-carousel` (see
47
+ src/SASS/_download.scss) instead gives the prev/next icons their own fixed
48
+ dark scrim and the caption its own dark backdrop, so both stay legible over
49
+ any screenshot regardless of image content.
50
+
51
+ `.carousel-inner` and the two control buttons are wrapped in their own
52
+ `.position-relative` div, separate from `.carousel-indicators` — Bootstrap's
53
+ default markup puts indicators inside that same positioned box, overlaid on
54
+ the image (`.carousel-indicators` is `position: absolute; bottom: 0`), which
55
+ is illegible over screenshot content no scrim reliably fixes since a slide's
56
+ content near the bottom edge varies per screenshot. Moving indicators
57
+ outside the wrapper and resetting them to `position: static` in
58
+ _download.scss instead renders them in normal flow below the image — plain
59
+ dots on the page's own background, not an overlay — where they don't need a
60
+ scrim at all. `.position-relative` also keeps the prev/next buttons
61
+ (`top: 0; bottom: 0`, relative to the nearest positioned ancestor) scoped to
62
+ the image's own height instead of stretching down to cover the indicator
63
+ row too.
34
64
  ================================================================================
35
65
  {% endcomment %}
36
66
  {%- capture download_screenshots_body -%}
37
67
  <div class="p-3">
38
- <div id="carouselScreenshotsIndicators-{{ include.release_id }}" class="carousel carousel-dark slide" data-bs-ride="true">
68
+ <div id="carouselScreenshotsIndicators-{{ include.release_id }}" class="carousel slide download-screenshots-carousel" data-bs-ride="true">
69
+ <div class="position-relative">
70
+ <div class="carousel-inner">
71
+ {%- for row in include.screenshots %}
72
+ <div class="carousel-item{% if forloop.first %} active{% endif %}">
73
+ <div class="ratio" style="--bs-aspect-ratio: 62.5%;">
74
+ <img class="object-fit-cover" src="{{ site.baseurl }}{{ include.image_base_path }}{{ row.src | escape }}" alt="{{ row.alt | escape }}" />
75
+ </div>
76
+ {%- if row.title and row.title != "" or row.description and row.description != "" %}
77
+ <div class="carousel-caption d-none d-md-block">
78
+ {%- if row.title and row.title != "" %}
79
+ <div class="h5">{{ row.title }}</div>
80
+ {%- endif %}
81
+ {%- if row.description and row.description != "" %}
82
+ <p>{{ row.description }}</p>
83
+ {%- endif %}
84
+ </div>
85
+ {%- endif %}
86
+ </div>
87
+ {%- endfor %}
88
+ </div>
89
+ <button class="carousel-control-prev" type="button" data-bs-target="#carouselScreenshotsIndicators-{{ include.release_id }}" data-bs-slide="prev">
90
+ <span class="carousel-control-prev-icon" aria-hidden="true"></span>
91
+ <span class="visually-hidden">Previous</span>
92
+ </button>
93
+ <button class="carousel-control-next" type="button" data-bs-target="#carouselScreenshotsIndicators-{{ include.release_id }}" data-bs-slide="next">
94
+ <span class="carousel-control-next-icon" aria-hidden="true"></span>
95
+ <span class="visually-hidden">Next</span>
96
+ </button>
97
+ </div>
39
98
  <div class="carousel-indicators">
40
99
  {%- for row in include.screenshots %}
41
100
  <button
@@ -46,33 +105,6 @@ alone only stretches its child to fill the box.
46
105
  aria-label="Screenshot {{ forloop.index }}"></button>
47
106
  {%- endfor %}
48
107
  </div>
49
- <div class="carousel-inner">
50
- {%- for row in include.screenshots %}
51
- <div class="carousel-item{% if forloop.first %} active{% endif %}">
52
- <div class="ratio ratio-16x9">
53
- <img class="object-fit-cover" src="{{ site.baseurl }}{{ include.image_base_path }}{{ row.src | escape }}" alt="{{ row.alt | escape }}" />
54
- </div>
55
- {%- if row.title and row.title != "" or row.description and row.description != "" %}
56
- <div class="carousel-caption d-none d-md-block">
57
- {%- if row.title and row.title != "" %}
58
- <div class="h5">{{ row.title }}</div>
59
- {%- endif %}
60
- {%- if row.description and row.description != "" %}
61
- <p>{{ row.description }}</p>
62
- {%- endif %}
63
- </div>
64
- {%- endif %}
65
- </div>
66
- {%- endfor %}
67
- </div>
68
- <button class="carousel-control-prev" type="button" data-bs-target="#carouselScreenshotsIndicators-{{ include.release_id }}" data-bs-slide="prev">
69
- <span class="carousel-control-prev-icon" aria-hidden="true"></span>
70
- <span class="visually-hidden">Previous</span>
71
- </button>
72
- <button class="carousel-control-next" type="button" data-bs-target="#carouselScreenshotsIndicators-{{ include.release_id }}" data-bs-slide="next">
73
- <span class="carousel-control-next-icon" aria-hidden="true"></span>
74
- <span class="visually-hidden">Next</span>
75
- </button>
76
108
  </div>
77
109
  </div>
78
110
  {%- endcapture -%}
@@ -71,7 +71,7 @@ Data Object Properties:
71
71
  {% assign show_page_filename = include.show_page_filename | default: "false" %}
72
72
  <div class="row g-3 mb-3 pt-1">
73
73
  {%- for item in data %}
74
- {%- if item.title != page.title %}
74
+ {%- if item.url != page.url %}
75
75
  <div class="col-12 col-md-6">
76
76
  <div class="p-3 pb-1 bg-light border rounded">
77
77
  <div class="h5">
@@ -98,7 +98,7 @@ Data Object Properties:
98
98
  {% assign show_page_filename = include.show_page_filename | default: "false" %}
99
99
  <div class="row g-3 mb-3 pt-1">
100
100
  {%- for item in data %}
101
- {%- if item.title != page.title %}
101
+ {%- if item.url != page.url %}
102
102
  <div class="col-12 col-md-6">
103
103
  {%- if show_page_filename == "true" %}
104
104
  {%- assign item_name = item.name | remove: '.md' %}
@@ -116,7 +116,7 @@ Data Object Properties:
116
116
  {% assign show_page_filename = include.show_page_filename | default: "false" %}
117
117
  <ul>
118
118
  {%- for item in data %}
119
- {%- if item.title != page.title %}
119
+ {%- if item.url != page.url %}
120
120
  {%- if show_page_filename == "true" %}
121
121
  {%- assign item_name = item.name | remove: '.md' %}
122
122
  <li>{% include base/link.html.liquid name=item_name link=item.url %}{% if item.title_lead != nil %} &mdash; {{ item.title_lead | strip_newlines | markdownify | remove: "<p>" | remove: "</p>" | strip }}{% endif %}</li>
@@ -140,7 +140,7 @@ Data Object Properties:
140
140
  <tbody>
141
141
  {%- for item in data %}
142
142
  <tr>
143
- {%- if item.title != page.title %}
143
+ {%- if item.url != page.url %}
144
144
  {%- if show_page_filename == "true" %}
145
145
  {%- assign item_name = item.name | remove: '.md' %}
146
146
  <td>{% include base/link.html.liquid name=item_name link=item.url %}</td>
@@ -68,3 +68,82 @@
68
68
  width: var(--download-arch-orphan-lg-width);
69
69
  }
70
70
  }
71
+
72
+ // ================================================================================
73
+ // Download component: screenshot carousel control legibility
74
+ // ================================================================================
75
+ // Purpose: Bootstrap's carousel controls are built for calm banner
76
+ // photography — prev/next icons get only a faint 25%-opacity edge gradient,
77
+ // and captions get no backdrop at all, just white text on the bare image
78
+ // (download_screenshots.html.liquid drops `.carousel-dark` for this same
79
+ // reason — see that file's own comment). Against real OS screenshots
80
+ // (stark-white installer screens through busy desktop/app-grid content),
81
+ // that's not enough separation: the arrows and caption text read as part of
82
+ // the screenshot rather than as clickable/readable UI chrome, so each gets
83
+ // its own fixed dark scrim here instead — legibility no longer depends on
84
+ // what happens to be under it.
85
+ //
86
+ // Indicators get a different fix, not a scrim: a solid backdrop dark/light
87
+ // enough for every screenshot doesn't exist (slides range from near-white
88
+ // to near-black), so download_screenshots.html.liquid moves
89
+ // `.carousel-indicators` outside the image's positioned wrapper entirely —
90
+ // this resets it from Bootstrap's default absolute overlay to normal
91
+ // in-flow content below the image, on the page's own background, where a
92
+ // single theme-adaptive dot color (not a scrim) is all that's needed.
93
+ // Dots are also reshaped from Bootstrap's default 30x3px bars into circles,
94
+ // and recolored with the theme's own primary shades (var(--bs-border-color)
95
+ // is centos-purple-100, var(--bs-primary) is centos-purple — see
96
+ // _variables.scss) instead of Bootstrap's opacity-based active/inactive
97
+ // distinction, so the color contrast itself signals "clickable", not just a
98
+ // subtle 50%-vs-100%-opacity difference easy to miss.
99
+ // ================================================================================
100
+
101
+ .download-screenshots-carousel {
102
+ .carousel-control-prev,
103
+ .carousel-control-next {
104
+ opacity: .9;
105
+
106
+ &:hover,
107
+ &:focus {
108
+ opacity: 1;
109
+ }
110
+ }
111
+
112
+ .carousel-control-prev-icon,
113
+ .carousel-control-next-icon {
114
+ width: 2.5rem;
115
+ height: 2.5rem;
116
+ background-color: rgba(0, 0, 0, .55);
117
+ background-size: 55% 55%;
118
+ border-radius: 50%;
119
+ }
120
+
121
+ .carousel-indicators {
122
+ position: static;
123
+ margin: .75rem 0 0;
124
+ padding: 0;
125
+
126
+ [data-bs-target] {
127
+ width: .625rem;
128
+ height: .625rem;
129
+ margin-right: .375rem;
130
+ margin-left: .375rem;
131
+ background-color: var(--bs-border-color); // primary-100, see _variables.scss
132
+ border-radius: 50%;
133
+ opacity: 1;
134
+ }
135
+
136
+ .active {
137
+ background-color: var(--bs-primary);
138
+ }
139
+ }
140
+
141
+ .carousel-caption {
142
+ right: .75rem;
143
+ bottom: .75rem;
144
+ left: .75rem;
145
+ padding: .5rem .75rem;
146
+ background-color: rgba(0, 0, 0, .55);
147
+ border-radius: var(--bs-border-radius);
148
+ }
149
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-centos
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.52.0.beta.91
4
+ version: 2.52.0.beta.92
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alain Reguera Delgado