bulma-turbo-themes 0.5.0

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 (6) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +409 -0
  3. data/LICENSE +21 -0
  4. data/README.md +323 -0
  5. data/lib/bulma-turbo-themes.rb +8 -0
  6. metadata +69 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6030bde47c69b18740775a31fd0fba64c9fcfb14bb09a97ec05f0154ebfa8961
4
+ data.tar.gz: 4edb7dd40621d67af5d8d8970459a8e0a9373fe96c1618cbaa1411cd3192210f
5
+ SHA512:
6
+ metadata.gz: 5b54a84786a9c5b43ad36b348080cb8a24f2a1e1f014b7d9366b1a7da11dc854351523f7560b853ac4747735130e7087e9a408d6a1de0b24d49cdec8d3498c65
7
+ data.tar.gz: 97b1ee60bcac1e13768978282e32e48a666afc5646bc8a7c9e9cb1c4d7d0da2ad368bf33dd336bea4d0ce6775777bd0fae71ab0514926710b1e508c91c0cf589
data/CHANGELOG.md ADDED
@@ -0,0 +1,409 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on Keep a Changelog and this project adheres to SemVer.
6
+
7
+ ## [Unreleased]
8
+
9
+ ### Added
10
+
11
+ - TBD
12
+
13
+ ## [0.10.8] - 2025-12-05
14
+
15
+ ### 🐛 Fixed
16
+
17
+ - update react monorepo to v19 (#165)
18
+
19
+ ## [0.10.7] - 2025-12-05
20
+
21
+ ### 🐛 Fixed
22
+
23
+ - update renovatebot/github-action digest to 4ebebab (#141)
24
+
25
+ ## [0.10.6] - 2025-12-05
26
+
27
+ ### 🐛 Fixed
28
+
29
+ - update actions/create-github-app-token action to v2 (#162)
30
+
31
+ ## [0.10.5] - 2025-12-05
32
+
33
+ ### 🐛 Fixed
34
+
35
+ - update actions/checkout action to v6 (#160)
36
+
37
+ ## [0.10.4] - 2025-12-05
38
+
39
+ ### 🐛 Fixed
40
+
41
+ - update softprops/action-gh-release digest to a06a81a (#142)
42
+
43
+ ## [0.10.3] - 2025-12-05
44
+
45
+ ### 🐛 Fixed
46
+
47
+ - update actions/checkout action to v5.0.1 (#144)
48
+
49
+ ## [0.10.2] - 2025-12-05
50
+
51
+ ### 🐛 Fixed
52
+
53
+ - update astral-sh/setup-uv action to v7.1.4 (#145)
54
+
55
+ ## [0.10.1] - 2025-12-05
56
+
57
+ ### 🐛 Fixed
58
+
59
+ - update actions/create-github-app-token action to v1.12.0 (#153)
60
+
61
+ ## [0.10.0] - 2025-12-05
62
+
63
+ ### ✨ Added
64
+
65
+ - add full theming solution with context and hooks (#151)
66
+
67
+ ### 🐛 Fixed
68
+
69
+ - recognize scoped conventional commits in version bump (#154)
70
+ - update peter-evans/create-pull-request action to v7.0.11 (#148)
71
+ - add missing egress endpoints for Bun CDN downloads
72
+
73
+ ## [0.9.0] - 2025-12-05
74
+
75
+ ### ✨ Added
76
+
77
+ - migrate theme system to SASS (#143)
78
+
79
+ ### 🐛 Fixed
80
+
81
+ - enable platformCommit for Renovate to sign commits
82
+ - correct JavaScript reference in gem layout (#106)
83
+
84
+ ### 🔧 Changed
85
+
86
+ - add missing egress endpoints for Bun download (#149)
87
+ - update actions/setup-node digest to 633bb92 (#110)
88
+ - update peter-evans/create-pull-request digest to 271a8d0 (#109)
89
+ - update actions/setup-node digest to 2028fbc (#108)
90
+
91
+ ## [0.8.1] - 2025-11-16
92
+
93
+ ### 🐛 Fixed
94
+
95
+ - update OpenSSF badge to Best Practices (#104)
96
+
97
+ ## [0.8.0] - 2025-11-16
98
+
99
+ ### ✨ Added
100
+
101
+ - include layouts and data files in gem
102
+
103
+ ## [0.7.4] - 2025-11-16
104
+
105
+ ### 🐛 Fixed
106
+
107
+ - add missing RubyGems endpoints to build job egress policy
108
+
109
+ ## [0.7.3] - 2025-11-16
110
+
111
+ ### 🐛 Fixed
112
+
113
+ - allow bundler download cdn
114
+
115
+ ## [0.7.2] - 2025-11-16
116
+
117
+ ### 🐛 Fixed
118
+
119
+ - allow release assets for gem publish
120
+
121
+ ## [0.7.1] - 2025-11-16
122
+
123
+ ### 🐛 Fixed
124
+
125
+ - add cache.ruby-lang.org to publish job egress policy
126
+
127
+ ## [0.7.0] - 2025-11-16
128
+
129
+ ### ✨ Added
130
+
131
+ - implement enterprise-level build/publish separation
132
+
133
+ ## [0.6.5] - 2025-11-16
134
+
135
+ ### 🐛 Fixed
136
+
137
+ - add Rakefile and build-gem.sh documentation
138
+ - improve Rakefile with best practices
139
+ - add Rakefile and use release-gem action for trusted publishing
140
+
141
+ ## [0.6.4] - 2025-11-16
142
+
143
+ ### 🐛 Fixed
144
+
145
+ - use configure-rubygems-credentials for OIDC auth
146
+
147
+ ## [0.6.3] - 2025-11-16
148
+
149
+ ### 🐛 Fixed
150
+
151
+ - use OIDC trusted publisher for RubyGems release
152
+
153
+ ### 🔧 Changed
154
+
155
+ - resolve workflow failures in gem publishing and release creation
156
+
157
+ ## [0.6.2] - 2025-11-16
158
+
159
+ ### 🐛 Fixed
160
+
161
+ - add missing network endpoints for publish workflows
162
+ - Lighthouse reports not appearing on site and deploy-pages Ruby version
163
+
164
+ ## [0.6.2] - 2025-11-16
165
+
166
+ ### 🐛 Fixed
167
+
168
+ - add missing network endpoints for publish workflows
169
+ - Lighthouse reports not appearing on site and deploy-pages Ruby version
170
+
171
+ ## [0.6.1] - 2025-11-16
172
+
173
+ ### 🐛 Fixed
174
+
175
+ - add missing id-token permission and correct Ruby version
176
+
177
+ ## [0.6.0] - 2025-11-16
178
+
179
+ ### ✨ Added
180
+
181
+ - use GitHub App for release automation matching py-lintro pattern
182
+
183
+ ### 🐛 Fixed
184
+
185
+ - prevent version PR infinite loop and add download retry logic
186
+
187
+ ## [0.5.2] - 2025-11-15
188
+
189
+ ### 🐛 Fixed
190
+
191
+ - handle existing PR gracefully in version bump workflow
192
+ - add actions:write permission for workflow_dispatch triggers
193
+
194
+ ## [0.5.2] - 2025-11-15
195
+
196
+ ### 🐛 Fixed
197
+
198
+ - add actions:write permission for workflow_dispatch triggers
199
+
200
+ ## [0.5.2] - 2025-11-15
201
+
202
+ ### 🐛 Fixed
203
+
204
+ - trigger publish workflows directly after tag creation
205
+
206
+ ## [0.5.1] - 2025-11-15
207
+
208
+ ### 🐛 Fixed
209
+
210
+ - trigger publish workflows directly after tag creation
211
+
212
+ ## [0.5.0] - 2025-11-15
213
+
214
+ ### ✨ Added
215
+
216
+ - implement Jekyll gem wrapper for bulma-turbo-themes (#80)
217
+ - add comprehensive Playwright E2E test suite with accessibility checks (#44)
218
+ - implement PR-based release workflow system (#31)
219
+
220
+ ### 🐛 Fixed
221
+
222
+ - skip pre-commit hooks in automated version PR creation
223
+ - optimize complete release train workflow pipeline (#86)
224
+ - separate CI build script from local development build (#84)
225
+ - fix version PR branch checkout failure (#85)
226
+ - add CI environment detection and explicit --no-serve flag (#82)
227
+ - add checkout step to deployment workflows (#81)
228
+ - add Playwright browser caching and skip E2E tests in build workflow (#79)
229
+ - resolve hadolint binary naming and checksum verification issues (#78)
230
+ - remove monitoring uptime workflow (#30)
231
+
232
+ ### 🔧 Changed
233
+
234
+ - update dependency ruby to v3.4.7 (#83)
235
+ - update ossf/scorecard-action digest to 4eaacf0 (#72)
236
+ - update softprops/action-gh-release digest to 5be0e66 (#76)
237
+ - update turbocoder13/py-lintro digest to b3fb40d (#77)
238
+ - update actions/download-artifact digest (#71)
239
+ - update actions/checkout digest to 08c6903 (#70)
240
+ - update dependency ruby (#68)
241
+ - update dependency jsdom to v27.1.0 (#67)
242
+ - update dependency eslint to v9.39.1 (#65)
243
+ - update dependency html-proofer to v5.1.0 (#66)
244
+ - update dependency happy-dom to v20.0.10 (#57)
245
+ - update softprops/action-gh-release digest to 00362be (#55)
246
+ - update github artifact actions (#60)
247
+ - update turbocoder13/py-lintro digest to 1e25709 (#56)
248
+ - update actions/setup-node action to v6 (#58)
249
+ - update actions/upload-pages-artifact action to v4 (#59)
250
+ - update github/codeql-action digest to 71d0a56 (#61)
251
+ - update peter-evans/create-or-update-comment action to v5 (#62)
252
+ - update peter-evans/find-comment action to v4 (#63)
253
+ - update sigstore/cosign-installer action to v4 (#64)
254
+ - update ruby/setup-ruby digest to d5126b9 (#54)
255
+ - update ossf/scorecard-action digest to ee561a8 (#53)
256
+ - update actions/checkout digest to ff7abcd (#45)
257
+ - update actions/github-script digest to ed59741 (#48)
258
+ - update actions/upload-artifact digest to 330a01c (#52)
259
+ - update actions/setup-node digest to dda4788 (#51)
260
+ - update github/codeql-action digest to ae78991 (#50)
261
+ - update actions/download-artifact digest to 018cc2c (#49)
262
+ - update actions/github-script action to v8 (#47)
263
+ - update actions/checkout action to v5 (#46)
264
+ - update sigstore/cosign-installer action to v3.10.1 (#43)
265
+ - update dependency happy-dom to v20.0.8 (#42)
266
+ - update codecov/codecov-action action to v5.5.1 (#41)
267
+ - update actions/upload-artifact action to v4.6.2 (#40)
268
+ - update actions/setup-node action to v4.4.0 (#39)
269
+ - update actions/upload-artifact digest to 2848b2c (#38)
270
+ - check for existing remote branch before creating local one (#36)
271
+ - update actions/github-script digest to ed59741 (#33)
272
+ - update actions/checkout digest to ff7abcd (#32)
273
+ - update dependency stylelint-config-standard to v39 (#29)
274
+ - update dependency lint-staged to v16 (#28)
275
+ - update typescript-eslint monorepo to v8.46.1 (#27)
276
+ - update dependency ruby to v3.4.7 (#26)
277
+ - update dependency eslint to v9.38.0 (#25)
278
+
279
+ ## [0.4.0] - 2025-10-21
280
+
281
+ ### ✨ Added
282
+
283
+ - implement PR-based release workflow system (#31)
284
+
285
+ ### 🐛 Fixed
286
+
287
+ - remove monitoring uptime workflow (#30)
288
+
289
+ ### 🔧 Changed
290
+
291
+ - update actions/setup-node action to v4.4.0 (#39)
292
+ - update actions/upload-artifact digest to 2848b2c (#38)
293
+ - check for existing remote branch before creating local one (#36)
294
+ - update actions/github-script digest to ed59741 (#33)
295
+ - update actions/checkout digest to ff7abcd (#32)
296
+ - update dependency stylelint-config-standard to v39 (#29)
297
+ - update dependency lint-staged to v16 (#28)
298
+ - update typescript-eslint monorepo to v8.46.1 (#27)
299
+ - update dependency ruby to v3.4.7 (#26)
300
+ - update dependency eslint to v9.38.0 (#25)
301
+
302
+ ## [0.4.0] - 2025-10-21
303
+
304
+ ### ✨ Added
305
+
306
+ - implement PR-based release workflow system (#31)
307
+
308
+ ### 🐛 Fixed
309
+
310
+ - remove monitoring uptime workflow (#30)
311
+
312
+ ### 🔧 Changed
313
+
314
+ - update actions/upload-artifact digest to 2848b2c (#38)
315
+ - check for existing remote branch before creating local one (#36)
316
+ - update actions/github-script digest to ed59741 (#33)
317
+ - update actions/checkout digest to ff7abcd (#32)
318
+ - update dependency stylelint-config-standard to v39 (#29)
319
+ - update dependency lint-staged to v16 (#28)
320
+ - update typescript-eslint monorepo to v8.46.1 (#27)
321
+ - update dependency ruby to v3.4.7 (#26)
322
+ - update dependency eslint to v9.38.0 (#25)
323
+
324
+ ## [0.4.0] - 2025-10-19
325
+
326
+ ### ✨ Added
327
+
328
+ - implement PR-based release workflow system (#31)
329
+
330
+ ### 🐛 Fixed
331
+
332
+ - remove monitoring uptime workflow (#30)
333
+
334
+ ### 🔧 Changed
335
+
336
+ - check for existing remote branch before creating local one (#36)
337
+ - update actions/github-script digest to ed59741 (#33)
338
+ - update actions/checkout digest to ff7abcd (#32)
339
+ - update dependency stylelint-config-standard to v39 (#29)
340
+ - update dependency lint-staged to v16 (#28)
341
+ - update typescript-eslint monorepo to v8.46.1 (#27)
342
+ - update dependency ruby to v3.4.7 (#26)
343
+ - update dependency eslint to v9.38.0 (#25)
344
+
345
+ ## [0.4.0] - 2025-10-19
346
+
347
+ ### ✨ Added
348
+
349
+ - implement PR-based release workflow system (#31)
350
+
351
+ ### 🐛 Fixed
352
+
353
+ - remove monitoring uptime workflow (#30)
354
+
355
+ ### 🔧 Changed
356
+
357
+ - update actions/github-script digest to ed59741 (#33)
358
+ - update actions/checkout digest to ff7abcd (#32)
359
+ - update dependency stylelint-config-standard to v39 (#29)
360
+ - update dependency lint-staged to v16 (#28)
361
+ - update typescript-eslint monorepo to v8.46.1 (#27)
362
+ - update dependency ruby to v3.4.7 (#26)
363
+ - update dependency eslint to v9.38.0 (#25)
364
+
365
+ ## [0.3.0] - 2025-10-19
366
+
367
+ ### ✨ Added
368
+
369
+ - implement PR-based release workflow system (#31)
370
+
371
+ ### 🐛 Fixed
372
+
373
+ - remove monitoring uptime workflow (#30)
374
+
375
+ ### 🔧 Changed
376
+
377
+ - update actions/github-script digest to ed59741 (#33)
378
+ - update actions/checkout digest to ff7abcd (#32)
379
+ - update dependency stylelint-config-standard to v39 (#29)
380
+ - update dependency lint-staged to v16 (#28)
381
+ - update typescript-eslint monorepo to v8.46.1 (#27)
382
+ - update dependency ruby to v3.4.7 (#26)
383
+ - update dependency eslint to v9.38.0 (#25)
384
+
385
+ ## [0.2.0] - 2025-10-19
386
+
387
+ ### ✨ Added
388
+
389
+ - implement PR-based release workflow system (#31)
390
+
391
+ ### 🐛 Fixed
392
+
393
+ - remove monitoring uptime workflow (#30)
394
+
395
+ ### 🔧 Changed
396
+
397
+ - update actions/github-script digest to ed59741 (#33)
398
+ - update actions/checkout digest to ff7abcd (#32)
399
+ - update dependency stylelint-config-standard to v39 (#29)
400
+ - update dependency lint-staged to v16 (#28)
401
+ - update typescript-eslint monorepo to v8.46.1 (#27)
402
+ - update dependency ruby to v3.4.7 (#26)
403
+ - update dependency eslint to v9.38.0 (#25)
404
+
405
+ ## [0.1.0] - 2025-10-04
406
+
407
+ ### Added
408
+
409
+ - Initial project setup, demo site, themes, and selector
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Turbo Coder
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,323 @@
1
+ # turbo-themes
2
+
3
+ Universal, accessible theme packs and a drop-in theme selector.
4
+
5
+ [![Bun](https://img.shields.io/badge/bun-1.3+-black?logo=bun)](https://bun.sh/)
6
+ [![Node.js](https://img.shields.io/badge/node.js-22-green)](https://nodejs.org/)
7
+ [![Coverage](https://codecov.io/gh/TurboCoder13/turbo-themes/branch/main/graph/badge.svg)](https://codecov.io/gh/TurboCoder13/turbo-themes)
8
+ [![License](https://img.shields.io/badge/License-MIT-green)](LICENSE)
9
+ [![Tests](https://img.shields.io/github/actions/workflow/status/TurboCoder13/turbo-themes/quality-ci-main.yml?label=tests&branch=main&logo=githubactions&logoColor=white)](https://github.com/TurboCoder13/turbo-themes/actions/workflows/quality-ci-main.yml?query=branch%3Amain)
10
+ [![CI](https://img.shields.io/github/actions/workflow/status/TurboCoder13/turbo-themes/quality-ci-main.yml?label=ci&branch=main&logo=githubactions&logoColor=white)](https://github.com/TurboCoder13/turbo-themes/actions/workflows/quality-ci-main.yml?query=branch%3Amain)
11
+ [![Lighthouse](https://img.shields.io/github/actions/workflow/status/TurboCoder13/turbo-themes/reporting-lighthouse-ci.yml?label=lighthouse&branch=main)](https://github.com/TurboCoder13/turbo-themes/actions/workflows/reporting-lighthouse-ci.yml?query=branch%3Amain)
12
+
13
+ [![CodeQL](https://github.com/TurboCoder13/turbo-themes/actions/workflows/security-codeql.yml/badge.svg?branch=main)](https://github.com/TurboCoder13/turbo-themes/actions/workflows/security-codeql.yml?query=branch%3Amain)
14
+ [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/11471/badge)](https://www.bestpractices.dev/projects/11471)
15
+ [![SBOM](https://img.shields.io/badge/SBOM-enabled-brightgreen)](SECURITY.md)
16
+ [![Download SBOM](https://img.shields.io/badge/SBOM-download_latest-blue?logo=github)](https://github.com/TurboCoder13/turbo-themes/actions/workflows/security-sbom.yml)
17
+
18
+ [![npm](https://img.shields.io/npm/v/%40turbocoder13%2Fturbo-themes)](https://www.npmjs.com/package/@turbocoder13/turbo-themes)
19
+ [![RubyGems](https://img.shields.io/gem/v/turbo-themes.svg)](https://rubygems.org/gems/turbo-themes)
20
+
21
+ ## Features
22
+
23
+ - Catppuccin, Dracula, GitHub (light/dark) flavor packs
24
+ - Accessible theme selector with keyboard and screen reader support
25
+ - Inline or link-based CSS delivery; CSP-friendly
26
+ - Tested with coverage, Lighthouse CI, and stylelint
27
+ - Advanced Bulma customization (breakpoints, spacing, shadows, mixins)
28
+ - Lazy-loaded themes with performance optimizations
29
+ - Full Bulma Sass variable integration
30
+
31
+ ## Installation
32
+
33
+ ### For Jekyll Sites (Recommended)
34
+
35
+ Install as a Ruby gem:
36
+
37
+ ```ruby
38
+ # Gemfile
39
+ gem "turbo-themes", "~> 0.10"
40
+ ```
41
+
42
+ ```yaml
43
+ # _config.yml
44
+ theme: turbo-themes
45
+ ```
46
+
47
+ Then run:
48
+
49
+ ```bash
50
+ bundle install
51
+ bundle exec jekyll serve
52
+ ```
53
+
54
+ Assets are automatically available - no copying needed!
55
+
56
+ ### Advanced Theming
57
+
58
+ For advanced customization options including custom breakpoints, spacing, shadows, and Bulma mixins, see the [Advanced Theming Guide](docs/ADVANCED-THEMING.md).
59
+
60
+ ### For Non-Jekyll Projects
61
+
62
+ Install via Bun (recommended) or npm:
63
+
64
+ ```bash
65
+ # Using Bun (recommended - 5-10x faster)
66
+ bun add @turbocoder13/turbo-themes
67
+
68
+ # Using npm
69
+ npm install @turbocoder13/turbo-themes
70
+ ```
71
+
72
+ ## Quick start
73
+
74
+ ### Jekyll Sites
75
+
76
+ 1. Install the gem (see above)
77
+ 2. Include CSS links in your layout:
78
+
79
+ ```html
80
+ <link
81
+ id="theme-global-css"
82
+ rel="stylesheet"
83
+ href="{{ '/assets/css/themes/global.css' | relative_url }}"
84
+ />
85
+ <link id="theme-flavor-css" rel="stylesheet" href="#" />
86
+ ```
87
+
88
+ 1. Add selector markup and initialize:
89
+
90
+ ```html
91
+ <div class="navbar-item has-dropdown is-hoverable">
92
+ <button
93
+ class="navbar-link"
94
+ id="theme-flavor-trigger"
95
+ type="button"
96
+ aria-haspopup="true"
97
+ aria-expanded="false"
98
+ aria-controls="theme-flavor-menu"
99
+ >
100
+ <span class="icon is-small" id="theme-flavor-trigger-icon"></span>
101
+ Theme
102
+ </button>
103
+ <div class="navbar-dropdown" id="theme-flavor-menu" aria-labelledby="theme-flavor-trigger">
104
+ <div class="dropdown-content" id="theme-flavor-items"></div>
105
+ </div>
106
+ </div>
107
+ <div class="select is-rounded is-small is-hidden">
108
+ <select id="theme-flavor-select" aria-label="Theme flavor" disabled></select>
109
+ </div>
110
+ ```
111
+
112
+ ```html
113
+ <script src="{{ '/assets/js/theme-selector.js' | relative_url }}"></script>
114
+ ```
115
+
116
+ ### Non-Jekyll Projects
117
+
118
+ 1. Copy CSS files from `node_modules/@turbocoder13/turbo-themes/assets/css/themes/` to your project:
119
+ - `global.css` (required)
120
+ - Flavor CSS files (e.g., `catppuccin-mocha.css`, `dracula.css`, `github-dark.css`) - copy the ones you want to use
121
+ 2. Include CSS links (adjust paths to match your project structure):
122
+
123
+ ```html
124
+ <link id="theme-global-css" rel="stylesheet" href="/assets/css/themes/global.css" />
125
+ <link id="theme-flavor-css" rel="stylesheet" href="#" />
126
+ ```
127
+
128
+ 1. Add selector markup and initialize:
129
+
130
+ ```html
131
+ <div class="navbar-item has-dropdown is-hoverable">
132
+ <button
133
+ class="navbar-link"
134
+ id="theme-flavor-trigger"
135
+ type="button"
136
+ aria-haspopup="true"
137
+ aria-expanded="false"
138
+ aria-controls="theme-flavor-menu"
139
+ >
140
+ <span class="icon is-small" id="theme-flavor-trigger-icon"></span>
141
+ Theme
142
+ </button>
143
+ <div class="navbar-dropdown" id="theme-flavor-menu" aria-labelledby="theme-flavor-trigger">
144
+ <div class="dropdown-content" id="theme-flavor-items"></div>
145
+ </div>
146
+ </div>
147
+ <div class="select is-rounded is-small is-hidden">
148
+ <select id="theme-flavor-select" aria-label="Theme flavor" disabled></select>
149
+ </div>
150
+ ```
151
+
152
+ ```ts
153
+ import { initTheme, wireFlavorSelector } from '@turbocoder13/turbo-themes';
154
+
155
+ document.addEventListener('DOMContentLoaded', () => {
156
+ initTheme(document, window);
157
+ wireFlavorSelector(document, window);
158
+ });
159
+ ```
160
+
161
+ ### React Native / Cross-Platform
162
+
163
+ This package provides platform-agnostic design tokens that work in React Native, Expo, and other non-web environments.
164
+
165
+ #### Installation
166
+
167
+ ```bash
168
+ bun add @turbocoder13/turbo-themes
169
+ # or
170
+ npm install @turbocoder13/turbo-themes
171
+ ```
172
+
173
+ #### Basic Usage (Without Context)
174
+
175
+ ```tsx
176
+ import { useTheme, useThemeColors } from '@turbocoder13/turbo-themes/tokens/react-native';
177
+
178
+ function MyComponent() {
179
+ const { colors, styles, theme } = useTheme('catppuccin-mocha');
180
+
181
+ return (
182
+ <View style={styles.container}>
183
+ <Text style={styles.h1}>{theme.label}</Text>
184
+ <Text style={[styles.text, { color: colors.brandPrimary }]}>
185
+ Primary color text
186
+ </Text>
187
+ </View>
188
+ );
189
+ }
190
+ ```
191
+
192
+ #### With ThemeProvider (Recommended)
193
+
194
+ ```tsx
195
+ import { ThemeProvider, useThemeContext } from '@turbocoder13/turbo-themes/tokens/react-native';
196
+ import { useColorScheme } from 'react-native';
197
+
198
+ // Wrap your app with ThemeProvider
199
+ function App() {
200
+ return (
201
+ <ThemeProvider
202
+ useColorScheme={useColorScheme}
203
+ followSystem
204
+ lightTheme="catppuccin-latte"
205
+ darkTheme="catppuccin-mocha"
206
+ >
207
+ <MyApp />
208
+ </ThemeProvider>
209
+ );
210
+ }
211
+
212
+ // Use the theme in any component
213
+ function MyApp() {
214
+ const { colors, styles, setTheme, toggleAppearance, appearance } = useThemeContext();
215
+
216
+ return (
217
+ <View style={styles.container}>
218
+ <Text style={styles.h1}>Welcome!</Text>
219
+ <Button
220
+ title={`Switch to ${appearance === 'dark' ? 'light' : 'dark'}`}
221
+ onPress={toggleAppearance}
222
+ />
223
+ </View>
224
+ );
225
+ }
226
+ ```
227
+
228
+ #### Available Exports
229
+
230
+ | Import Path | Use Case |
231
+ |-------------|----------|
232
+ | `@turbocoder13/turbo-themes/tokens` | Platform-agnostic tokens (pure data) |
233
+ | `@turbocoder13/turbo-themes/tokens/react-native` | React Native utilities, hooks, and context |
234
+ | `@turbocoder13/turbo-themes/tokens.json` | JSON tokens for Flutter, Swift, Kotlin |
235
+ | `@turbocoder13/turbo-themes/css/*` | CSS files for web |
236
+
237
+ #### Pre-built Styles
238
+
239
+ The React Native module includes pre-built styles for common components:
240
+
241
+ - **Layout**: `container`, `safeArea`, `centered`, `row`
242
+ - **Typography**: `h1`-`h6`, `text`, `textSecondary`, `caption`, `label`, `link`
243
+ - **Components**: `card`, `cardElevated`, `button`, `buttonOutline`, `input`, `listItem`, `badge`, `tag`, `divider`
244
+ - **State Colors**: `success`, `warning`, `danger`, `info`
245
+
246
+ Plus design tokens for `spacing`, `typography`, `borderRadius`, and `shadows`.
247
+
248
+ ## Testing
249
+
250
+ This project includes comprehensive testing:
251
+
252
+ - **Unit Tests**: Vitest with coverage reporting
253
+ - **E2E Tests**: Playwright with Page Object Model pattern
254
+ - **Accessibility Tests**: axe-core integration for WCAG compliance
255
+ - **Visual Regression**: Playwright screenshots and snapshots
256
+
257
+ Run tests:
258
+
259
+ ```bash
260
+ # Using Bun (recommended)
261
+ bun run test # Unit tests with coverage
262
+ bun run e2e # All E2E tests
263
+ bun run e2e:smoke # Smoke tests only
264
+ bun run e2e:visual # Visual regression tests
265
+ bun run e2e:a11y # Accessibility tests
266
+ bun run e2e:ui # Playwright UI mode
267
+
268
+ # Using npm (also works)
269
+ npm test # Unit tests with coverage
270
+ npm run e2e # All E2E tests
271
+ ```
272
+
273
+ For detailed E2E testing documentation, see `docs/E2E-TESTING.md`.
274
+
275
+ ## Development Setup
276
+
277
+ ### Prerequisites
278
+
279
+ - **Bun** 1.3+ (recommended) - [Install Bun](https://bun.sh/docs/installation)
280
+ - **Node.js** 22+ (alternative)
281
+ - **Ruby** 3.3+ with Bundler (for Jekyll demo site)
282
+
283
+ ### Quick Start
284
+
285
+ ```bash
286
+ # Clone and install
287
+ git clone https://github.com/TurboCoder13/turbo-themes.git
288
+ cd turbo-themes
289
+ bun install
290
+ bundle install
291
+
292
+ # Build and serve
293
+ bun run build
294
+ bun run build:themes
295
+ bun run serve
296
+ ```
297
+
298
+ ### Why Bun?
299
+
300
+ This project uses [Bun](https://bun.sh/) as its primary JavaScript runtime for:
301
+
302
+ - **5-10x faster** package installation
303
+ - **10x faster** script startup time
304
+ - **~40% reduction** in CI build times
305
+ - Full npm compatibility (works with all existing packages)
306
+
307
+ ## Documentation
308
+
309
+ - Code of Conduct: see `CODE_OF_CONDUCT.md`
310
+ - Contributing Guide: see `CONTRIBUTING.md`
311
+ - Security Policy: see `SECURITY.md`
312
+ - Release process: see `docs/RELEASE-TRAIN.md`
313
+ - E2E Testing: see `docs/E2E-TESTING.md`
314
+ - Workflows & Actions: see `.github/workflows/README.md` and `.github/actions/README.md`
315
+ - Scripts: see `scripts/README.md`
316
+
317
+ ## Governance
318
+
319
+ See `GOVERNANCE.md` and `MAINTAINERS.md`.
320
+
321
+ ## License
322
+
323
+ MIT © Turbo Coder
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BulmaTurboThemes
4
+ VERSION = "0.5.0"
5
+ end
6
+
7
+ require "turbo-themes"
8
+
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bulma-turbo-themes
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.5.0
5
+ platform: ruby
6
+ authors:
7
+ - Turbo Coder
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: turbo-themes
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.0'
26
+ description: This gem has been renamed to 'turbo-themes'. Please update your Gemfile
27
+ to `gem "turbo-themes"`.
28
+ email:
29
+ - turbocoder13@users.noreply.github.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - CHANGELOG.md
35
+ - LICENSE
36
+ - README.md
37
+ - lib/bulma-turbo-themes.rb
38
+ homepage: https://github.com/TurboCoder13/turbo-themes
39
+ licenses:
40
+ - MIT
41
+ metadata:
42
+ bug_tracker_uri: https://github.com/TurboCoder13/turbo-themes/issues
43
+ changelog_uri: https://github.com/TurboCoder13/turbo-themes/blob/main/CHANGELOG.md
44
+ documentation_uri: https://turbocoder13.github.io/turbo-themes/
45
+ homepage_uri: https://github.com/TurboCoder13/turbo-themes
46
+ source_code_uri: https://github.com/TurboCoder13/turbo-themes
47
+ post_install_message: |
48
+ ⚠️ DEPRECATION WARNING ⚠️
49
+ The 'bulma-turbo-themes' gem has been renamed to 'turbo-themes'.
50
+ Please update your Gemfile:
51
+ gem "turbo-themes"
52
+ rdoc_options: []
53
+ require_paths:
54
+ - lib
55
+ required_ruby_version: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 2.6.0
60
+ required_rubygems_version: !ruby/object:Gem::Requirement
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: '0'
65
+ requirements: []
66
+ rubygems_version: 3.6.9
67
+ specification_version: 4
68
+ summary: 'DEPRECATED: Use ''turbo-themes'' gem instead.'
69
+ test_files: []