howdy-jekyll-theme 1.0.0 → 1.0.1

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: 3e5fe3f63665dc591e58b9ff6a57b5656b2a538ea7ff26eb2a575514d2a1db1b
4
- data.tar.gz: 5a2a87e1f35d519013abe2e6c1dc722574c71bec65039a6c953f3db911629434
3
+ metadata.gz: 150d69091ff8829a9e24c5bc73f0282aef6c5db38a1c18a1742298590d6f9835
4
+ data.tar.gz: fcbad23e1de46813631361f3420b5209394c173b00d21daaed743cbb52c86e75
5
5
  SHA512:
6
- metadata.gz: 96872e77ddd36759fa876672c4be696bc1763f84cf8ed8da91ddfae4286a2f2ea53c1c74af21fbbe07c17661a216600e8018e634a9765c762ffef4de148ec523
7
- data.tar.gz: 202609b75773017be7e56f38117732d96cf80e9fd5a44f8e4fcdc70bb6bc23a210abbc48ab334cbe603ec2bb7922f1ee5cecf4cb7fd1b145bb6fe9f40bfe5202
6
+ metadata.gz: e0c43f100c390da27f739a9a3d8e41354721612fdc3c660960ca252795b65572875c004063bf7577d34dc32fd2b51d7b6638708db5197806db0a106e9c59c615
7
+ data.tar.gz: 42a1944d392f500fbc708216d78b0b24205e36486f506214f480881a1f0b4c83999ec1003bf7b4f9139df85330b6f7465da7f0ed1ddc0115f4d0d625b55bfe0c
data/AGENTS.md CHANGED
@@ -11,7 +11,9 @@ A gem-based Jekyll theme (`howdy-jekyll-theme`, v1.0.0) for personal sites and p
11
11
  | Setup | `bundle config --local path .bundle && bundle install` |
12
12
  | Dev server | `bundle exec jekyll serve` → http://localhost:4000 |
13
13
  | Build gem | `gem build howdy-jekyll-theme.gemspec` |
14
- | Install local gem | `gem install ./howdy-jekyll-theme-1.0.0.gem` |
14
+ | Push gem | `gem push howdy-jekyll-theme-1.0.0.gem` (requires API key) |
15
+ | Playwright tests | `npm test` |
16
+ | Install npm deps | `npm install` |
15
17
 
16
18
  ## Architecture
17
19
 
@@ -42,8 +44,19 @@ blog/ — Blog index page (pagination entry)
42
44
  lib/ — Gem entry point (Jekyll hook)
43
45
  ```
44
46
 
47
+ ## CI/CD
48
+
49
+ - **Workflow**: `.github/workflows/ci.yml` — validate → test → lighthouse + playwright (parallel) → deploy
50
+ - **Playwright** runs inside `mcr.microsoft.com/playwright:v1.60.0` Docker container — browsers pre-installed, no CDN download needed
51
+ - **Ruby native gems** in the Playwright container need `apt-get install -y build-essential ruby-dev libyaml-0-2` before `ruby/setup-ruby`
52
+ - **Deploy** builds with `JEKYLL_ENV=production bundle exec jekyll build --baseurl "/howdy-jekyll-theme"` (repo name is the base path)
53
+ - **GitHub Pages** is enabled with "Deploy from workflow" (not the default Jekyll builder)
54
+ - **GitHub secret** `GEM_HOST_API_KEY` is set for CI gem publishing
55
+
45
56
  ## Gotchas
46
57
 
47
58
  - The `_config.yml` excludes `Gemfile`, `Gemfile.lock`, `*.gemspec`, `README.md`, `LICENSE` from the Jekyll build — do not put content there expecting it to render.
48
59
  - Font files (Inter, Chaumont Script, Fragment Mono) in `assets/fonts/` are licensed; verify licensing before redistributing.
49
60
  - The `.bundle/` directory contains vendored gems — do not edit files inside it.
61
+ - When deploying to a GitHub Pages project site, build with `--baseurl "/repository-name"` so asset paths resolve correctly.
62
+ - The Playwright Docker container is based on Ubuntu 22.04 — Ruby native gems that need C compilation require `build-essential` and `ruby-dev`.
data/README.md CHANGED
@@ -2,7 +2,8 @@
2
2
 
3
3
  > A clean, modern, and minimalist Jekyll theme for personal websites and portfolios.
4
4
 
5
- [![Gem Version](https://img.shields.io/badge/gem-v1.0.0-blue)](https://rubygems.org/gems/howdy-jekyll-theme)
5
+ [![Gem Version](https://badge.fury.io/rb/howdy-jekyll-theme.svg)](https://rubygems.org/gems/howdy-jekyll-theme)
6
+ [![Gem Downloads](https://img.shields.io/gem/dt/howdy-jekyll-theme)](https://rubygems.org/gems/howdy-jekyll-theme)
6
7
  [![CI](https://github.com/howdyitskyle/howdy-jekyll-theme/actions/workflows/ci.yml/badge.svg)](https://github.com/howdyitskyle/howdy-jekyll-theme/actions/workflows/ci.yml)
7
8
  [![Jekyll](https://img.shields.io/badge/jekyll-%E2%89%A53.9-008a1e)](https://jekyllrb.com/)
8
9
  [![Ruby](https://img.shields.io/badge/ruby-%E2%89%A53.0-red)](https://www.ruby-lang.org/)
data/_includes/head.html CHANGED
@@ -122,7 +122,6 @@
122
122
  .hero-content,
123
123
  .content-area > *,
124
124
  .company-logos,
125
- .stats,
126
125
  .hero-carousel,
127
126
  .logo-overlay {
128
127
  opacity: 0;
@@ -77,4 +77,6 @@
77
77
  </div>
78
78
  <div class="hero-carousel__dots"></div>
79
79
  </div>
80
+ <script src="{{ '/assets/js/swiper-bundle.min.js' | relative_url }}"></script>
81
+ <script src="{{ '/assets/js/hero-carousel.js' | relative_url }}"></script>
80
82
  {% endif %}
@@ -11,8 +11,6 @@
11
11
 
12
12
  <script src="{{ '/assets/js/theme-toggle.js' | relative_url }}"></script>
13
13
  <script src="{{ '/assets/js/mobile-nav.js' | relative_url }}"></script>
14
- <script src="{{ '/assets/js/swiper-bundle.min.js' | relative_url }}"></script>
15
- <script src="{{ '/assets/js/hero-carousel.js' | relative_url }}"></script>
16
14
 
17
15
  <!-- Analytics -->
18
16
  {% include analytics.html %}
data/_sass/_base.scss CHANGED
@@ -156,14 +156,6 @@ select:focus-visible {
156
156
  }
157
157
  }
158
158
 
159
- // Container fills the main wrapper
160
- .container {
161
- width: 100%;
162
- height: 100%;
163
- padding: 0;
164
- margin: 0;
165
- }
166
-
167
159
  // Accessibility: Reduced motion support
168
160
  @media (prefers-reduced-motion: reduce) {
169
161
  *,
@@ -19,16 +19,6 @@
19
19
  border: 2px solid transparent;
20
20
  min-height: 44px;
21
21
 
22
- &.btn-primary {
23
- background-color: var(--howdy-text-primary);
24
- color: var(--howdy-bg-white);
25
-
26
- &:hover {
27
- background-color: var(--howdy-accent-green);
28
- color: var(--howdy-bg-white);
29
- }
30
- }
31
-
32
22
  &.btn-secondary {
33
23
  background-color: transparent;
34
24
  color: var(--howdy-text-primary);
data/_sass/_layout.scss CHANGED
@@ -564,40 +564,6 @@ body.loaded .projects-grid {
564
564
  }
565
565
  }
566
566
 
567
- // Header (navigation area)
568
- .site-header {
569
- display: flex;
570
- flex-flow: row;
571
- flex: none;
572
- place-content: center space-between;
573
- align-items: center;
574
- width: 100%;
575
- height: min-content;
576
- padding: 0 0 0 var(--howdy-spacing-sm);
577
- position: relative;
578
- transition: var(--howdy-transition);
579
-
580
- @media (max-width: $howdy-xl) {
581
- justify-content: space-between;
582
- gap: 0;
583
- padding: 0;
584
- }
585
-
586
- @media (max-width: $howdy-lg) {
587
- flex-wrap: wrap;
588
- justify-content: flex-start;
589
- gap: var(--howdy-header-gap-lg);
590
- }
591
-
592
- @media (max-width: $howdy-md) {
593
- gap: var(--howdy-header-gap-md);
594
- }
595
-
596
- @media (max-width: $howdy-sm) {
597
- gap: var(--howdy-header-gap-sm);
598
- }
599
- }
600
-
601
567
  // Logo
602
568
  .site-logo {
603
569
  text-decoration: none;
@@ -830,24 +796,6 @@ html.nav-open .nav-overlay {
830
796
  transition: var(--howdy-transition);
831
797
  }
832
798
 
833
- // Badge (Now booking)
834
- .badge {
835
- display: inline-block;
836
- padding: 8px 16px;
837
- background-color: var(--howdy-bg-green-tint);
838
- color: var(--howdy-accent-green);
839
- border-radius: var(--howdy-radius-full);
840
- font-weight: 500;
841
- font-size: 14px;
842
- letter-spacing: 0.01em;
843
- transition: var(--howdy-transition);
844
-
845
- @media (max-width: $howdy-sm) {
846
- font-size: 12px;
847
- padding: 6px 12px;
848
- }
849
- }
850
-
851
799
  // Company logos section
852
800
  .company-logos {
853
801
  width: 100%;
@@ -906,16 +854,6 @@ html.nav-open .nav-overlay {
906
854
  }
907
855
  }
908
856
 
909
- .logo-item {
910
- flex-shrink: 0;
911
- font-family: var(--howdy-font-primary);
912
- font-size: 14px;
913
- font-weight: 500;
914
- color: var(--howdy-text-muted);
915
- letter-spacing: 0.06em;
916
- text-transform: uppercase;
917
- }
918
-
919
857
  @keyframes scroll {
920
858
  0% {
921
859
  transform: translateX(0);
@@ -925,33 +863,6 @@ html.nav-open .nav-overlay {
925
863
  }
926
864
  }
927
865
 
928
- // Stats section
929
- .stats {
930
- text-align: center;
931
- padding: var(--howdy-spacing-lg) 0;
932
-
933
- .stat-number {
934
- font-family: var(--howdy-font-primary);
935
- font-weight: 900;
936
- font-size: 48px;
937
- color: var(--howdy-text-primary);
938
- transition: var(--howdy-transition);
939
-
940
- @media (max-width: $howdy-md) {
941
- font-size: 36px;
942
- }
943
-
944
- @media (max-width: $howdy-sm) {
945
- font-size: 28px;
946
- }
947
- }
948
-
949
- .stat-label {
950
- @extend .body-large !optional;
951
- color: var(--howdy-text-secondary);
952
- }
953
- }
954
-
955
866
  // Hero carousel
956
867
  .hero-carousel {
957
868
  position: relative;
@@ -3,7 +3,7 @@
3
3
  @use "variables" as *;
4
4
 
5
5
  // Heading 1 — fluid responsive sizing
6
- h1, .h1 {
6
+ h1 {
7
7
  font-family: var(--howdy-font-primary);
8
8
  font-weight: 600;
9
9
  line-height: 1.2;
@@ -196,42 +196,11 @@ p, .body-regular {
196
196
  letter-spacing: 0.01em; // Required for small text (11-13px range)
197
197
  }
198
198
 
199
- // Button/Label text
200
- .label-text {
201
- font-family: var(--howdy-font-primary);
202
- font-weight: 600;
203
- font-size: 15px;
204
- line-height: 1.2em;
205
- letter-spacing: 0.02em; // Required for UI labels/buttons
206
- transition: var(--howdy-transition);
207
- }
208
-
209
- // Centered text
210
- .text-center {
211
- text-align: center;
212
- }
213
-
214
199
  // Muted text (gray)
215
200
  .text-muted {
216
201
  color: var(--howdy-text-muted);
217
202
  }
218
203
 
219
- // Script font for logo
220
- .script-text {
221
- font-family: 'Chaumont Script', 'Style Script', cursive;
222
- font-weight: 400;
223
- font-size: 32px;
224
- letter-spacing: 0.02em;
225
-
226
- @media (max-width: $howdy-md) {
227
- font-size: 28px;
228
- }
229
-
230
- @media (max-width: $howdy-sm) {
231
- font-size: 24px;
232
- }
233
- }
234
-
235
204
  // Code
236
205
  code {
237
206
  font-family: var(--howdy-font-mono);
@@ -26,11 +26,6 @@ document.addEventListener('DOMContentLoaded', () => {
26
26
  prevSlideMessage: 'Previous slide',
27
27
  nextSlideMessage: 'Next slide',
28
28
  },
29
- on: {
30
- slideChange: () => {
31
- document.body.classList.add('loaded');
32
- },
33
- },
34
29
  });
35
30
  });
36
31
  });
@@ -53,10 +53,5 @@
53
53
  window.howdyNavIsClosing = function() {
54
54
  return navClosing;
55
55
  };
56
-
57
- window.howdyNavIsOpen = function() {
58
- return root.classList.contains('nav-open');
59
- };
60
-
61
56
  updateNav();
62
57
  })();
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "howdy-jekyll-theme"
3
- spec.version = "1.0.0"
3
+ spec.version = "1.0.1"
4
4
  spec.authors = ["Kyle Greenan"]
5
5
  spec.email = ["kyle@howdyitskyle.com"]
6
6
 
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.require_paths = ["lib"]
15
15
 
16
16
  spec.add_runtime_dependency "jekyll", ">= 3.9"
17
- spec.add_runtime_dependency "jekyll-seo-tag", "~> 2.8.0"
17
+ spec.add_runtime_dependency "jekyll-seo-tag", ">= 2.8", "< 2.10"
18
18
  spec.add_runtime_dependency "jekyll-feed", "~> 0.17"
19
19
  spec.add_runtime_dependency "jekyll-sitemap", "~> 1.4"
20
20
  spec.add_runtime_dependency "jekyll-paginate-v2", "~> 3.0"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: howdy-jekyll-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Greenan
@@ -27,16 +27,22 @@ dependencies:
27
27
  name: jekyll-seo-tag
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - "~>"
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '2.8'
33
+ - - "<"
31
34
  - !ruby/object:Gem::Version
32
- version: 2.8.0
35
+ version: '2.10'
33
36
  type: :runtime
34
37
  prerelease: false
35
38
  version_requirements: !ruby/object:Gem::Requirement
36
39
  requirements:
37
- - - "~>"
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '2.8'
43
+ - - "<"
38
44
  - !ruby/object:Gem::Version
39
- version: 2.8.0
45
+ version: '2.10'
40
46
  - !ruby/object:Gem::Dependency
41
47
  name: jekyll-feed
42
48
  requirement: !ruby/object:Gem::Requirement