bulma-turbo-themes 0.7.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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +319 -0
- data/LICENSE +21 -0
- data/README.md +175 -0
- data/assets/css/custom.css +32 -0
- data/assets/css/themes/bulma-dark.css +96 -0
- data/assets/css/themes/bulma-light.css +96 -0
- data/assets/css/themes/catppuccin-frappe.css +99 -0
- data/assets/css/themes/catppuccin-latte.css +99 -0
- data/assets/css/themes/catppuccin-macchiato.css +99 -0
- data/assets/css/themes/catppuccin-mocha.css +99 -0
- data/assets/css/themes/dracula.css +212 -0
- data/assets/css/themes/github-dark.css +103 -0
- data/assets/css/themes/github-light.css +103 -0
- data/assets/css/themes/global.css +460 -0
- data/assets/img/bulma-logo-dark.png +0 -0
- data/assets/img/bulma-logo.png +0 -0
- data/assets/img/catppuccin-logo-latte.png +0 -0
- data/assets/img/catppuccin-logo-macchiato.png +0 -0
- data/assets/img/dracula-logo.png +0 -0
- data/assets/img/github-logo-dark.png +0 -0
- data/assets/img/github-logo-light.png +0 -0
- data/assets/js/theme-selector.js +489 -0
- data/lib/bulma-turbo-themes/version.rb +6 -0
- data/lib/bulma-turbo-themes.rb +9 -0
- metadata +93 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: fc14469edd28baf049584d2a55a95eb9c9fb2557b2c45e4094e61143c3365365
|
|
4
|
+
data.tar.gz: 5b1876e12f8d2dbb9909864a4f9a8fecb5dbcd346aff30c2339bd9ba8492c9e4
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 31e01ee527f28119539015d7b1bdb84db00f9262598a4ab865e8ce27efba4ab257996cbc81e1f6daac7b7c12ef8201dd6b55febd7dc010075848826b683ee663
|
|
7
|
+
data.tar.gz: dd86155aa276b294b1a44bbe31456e5d05acc2e7e1698e34fad1cf90a2c9b8764816591ae7765a4899899abce315ff8547eef575af57b4030dacda46486ae1f2
|
data/CHANGELOG.md
ADDED
|
@@ -0,0 +1,319 @@
|
|
|
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.7.4] - 2025-11-16
|
|
14
|
+
|
|
15
|
+
### 🐛 Fixed
|
|
16
|
+
|
|
17
|
+
- add missing RubyGems endpoints to build job egress policy
|
|
18
|
+
|
|
19
|
+
## [0.7.3] - 2025-11-16
|
|
20
|
+
|
|
21
|
+
### 🐛 Fixed
|
|
22
|
+
|
|
23
|
+
- allow bundler download cdn
|
|
24
|
+
|
|
25
|
+
## [0.7.2] - 2025-11-16
|
|
26
|
+
|
|
27
|
+
### 🐛 Fixed
|
|
28
|
+
|
|
29
|
+
- allow release assets for gem publish
|
|
30
|
+
|
|
31
|
+
## [0.7.1] - 2025-11-16
|
|
32
|
+
|
|
33
|
+
### 🐛 Fixed
|
|
34
|
+
|
|
35
|
+
- add cache.ruby-lang.org to publish job egress policy
|
|
36
|
+
|
|
37
|
+
## [0.7.0] - 2025-11-16
|
|
38
|
+
|
|
39
|
+
### ✨ Added
|
|
40
|
+
|
|
41
|
+
- implement enterprise-level build/publish separation
|
|
42
|
+
|
|
43
|
+
## [0.6.5] - 2025-11-16
|
|
44
|
+
|
|
45
|
+
### 🐛 Fixed
|
|
46
|
+
|
|
47
|
+
- add Rakefile and build-gem.sh documentation
|
|
48
|
+
- improve Rakefile with best practices
|
|
49
|
+
- add Rakefile and use release-gem action for trusted publishing
|
|
50
|
+
|
|
51
|
+
## [0.6.4] - 2025-11-16
|
|
52
|
+
|
|
53
|
+
### 🐛 Fixed
|
|
54
|
+
|
|
55
|
+
- use configure-rubygems-credentials for OIDC auth
|
|
56
|
+
|
|
57
|
+
## [0.6.3] - 2025-11-16
|
|
58
|
+
|
|
59
|
+
### 🐛 Fixed
|
|
60
|
+
|
|
61
|
+
- use OIDC trusted publisher for RubyGems release
|
|
62
|
+
|
|
63
|
+
### 🔧 Changed
|
|
64
|
+
|
|
65
|
+
- resolve workflow failures in gem publishing and release creation
|
|
66
|
+
|
|
67
|
+
## [0.6.2] - 2025-11-16
|
|
68
|
+
|
|
69
|
+
### 🐛 Fixed
|
|
70
|
+
|
|
71
|
+
- add missing network endpoints for publish workflows
|
|
72
|
+
- Lighthouse reports not appearing on site and deploy-pages Ruby version
|
|
73
|
+
|
|
74
|
+
## [0.6.2] - 2025-11-16
|
|
75
|
+
|
|
76
|
+
### 🐛 Fixed
|
|
77
|
+
|
|
78
|
+
- add missing network endpoints for publish workflows
|
|
79
|
+
- Lighthouse reports not appearing on site and deploy-pages Ruby version
|
|
80
|
+
|
|
81
|
+
## [0.6.1] - 2025-11-16
|
|
82
|
+
|
|
83
|
+
### 🐛 Fixed
|
|
84
|
+
|
|
85
|
+
- add missing id-token permission and correct Ruby version
|
|
86
|
+
|
|
87
|
+
## [0.6.0] - 2025-11-16
|
|
88
|
+
|
|
89
|
+
### ✨ Added
|
|
90
|
+
|
|
91
|
+
- use GitHub App for release automation matching py-lintro pattern
|
|
92
|
+
|
|
93
|
+
### 🐛 Fixed
|
|
94
|
+
|
|
95
|
+
- prevent version PR infinite loop and add download retry logic
|
|
96
|
+
|
|
97
|
+
## [0.5.2] - 2025-11-15
|
|
98
|
+
|
|
99
|
+
### 🐛 Fixed
|
|
100
|
+
|
|
101
|
+
- handle existing PR gracefully in version bump workflow
|
|
102
|
+
- add actions:write permission for workflow_dispatch triggers
|
|
103
|
+
|
|
104
|
+
## [0.5.2] - 2025-11-15
|
|
105
|
+
|
|
106
|
+
### 🐛 Fixed
|
|
107
|
+
|
|
108
|
+
- add actions:write permission for workflow_dispatch triggers
|
|
109
|
+
|
|
110
|
+
## [0.5.2] - 2025-11-15
|
|
111
|
+
|
|
112
|
+
### 🐛 Fixed
|
|
113
|
+
|
|
114
|
+
- trigger publish workflows directly after tag creation
|
|
115
|
+
|
|
116
|
+
## [0.5.1] - 2025-11-15
|
|
117
|
+
|
|
118
|
+
### 🐛 Fixed
|
|
119
|
+
|
|
120
|
+
- trigger publish workflows directly after tag creation
|
|
121
|
+
|
|
122
|
+
## [0.5.0] - 2025-11-15
|
|
123
|
+
|
|
124
|
+
### ✨ Added
|
|
125
|
+
|
|
126
|
+
- implement Jekyll gem wrapper for bulma-turbo-themes (#80)
|
|
127
|
+
- add comprehensive Playwright E2E test suite with accessibility checks (#44)
|
|
128
|
+
- implement PR-based release workflow system (#31)
|
|
129
|
+
|
|
130
|
+
### 🐛 Fixed
|
|
131
|
+
|
|
132
|
+
- skip pre-commit hooks in automated version PR creation
|
|
133
|
+
- optimize complete release train workflow pipeline (#86)
|
|
134
|
+
- separate CI build script from local development build (#84)
|
|
135
|
+
- fix version PR branch checkout failure (#85)
|
|
136
|
+
- add CI environment detection and explicit --no-serve flag (#82)
|
|
137
|
+
- add checkout step to deployment workflows (#81)
|
|
138
|
+
- add Playwright browser caching and skip E2E tests in build workflow (#79)
|
|
139
|
+
- resolve hadolint binary naming and checksum verification issues (#78)
|
|
140
|
+
- remove monitoring uptime workflow (#30)
|
|
141
|
+
|
|
142
|
+
### 🔧 Changed
|
|
143
|
+
|
|
144
|
+
- update dependency ruby to v3.4.7 (#83)
|
|
145
|
+
- update ossf/scorecard-action digest to 4eaacf0 (#72)
|
|
146
|
+
- update softprops/action-gh-release digest to 5be0e66 (#76)
|
|
147
|
+
- update turbocoder13/py-lintro digest to b3fb40d (#77)
|
|
148
|
+
- update actions/download-artifact digest (#71)
|
|
149
|
+
- update actions/checkout digest to 08c6903 (#70)
|
|
150
|
+
- update dependency ruby (#68)
|
|
151
|
+
- update dependency jsdom to v27.1.0 (#67)
|
|
152
|
+
- update dependency eslint to v9.39.1 (#65)
|
|
153
|
+
- update dependency html-proofer to v5.1.0 (#66)
|
|
154
|
+
- update dependency happy-dom to v20.0.10 (#57)
|
|
155
|
+
- update softprops/action-gh-release digest to 00362be (#55)
|
|
156
|
+
- update github artifact actions (#60)
|
|
157
|
+
- update turbocoder13/py-lintro digest to 1e25709 (#56)
|
|
158
|
+
- update actions/setup-node action to v6 (#58)
|
|
159
|
+
- update actions/upload-pages-artifact action to v4 (#59)
|
|
160
|
+
- update github/codeql-action digest to 71d0a56 (#61)
|
|
161
|
+
- update peter-evans/create-or-update-comment action to v5 (#62)
|
|
162
|
+
- update peter-evans/find-comment action to v4 (#63)
|
|
163
|
+
- update sigstore/cosign-installer action to v4 (#64)
|
|
164
|
+
- update ruby/setup-ruby digest to d5126b9 (#54)
|
|
165
|
+
- update ossf/scorecard-action digest to ee561a8 (#53)
|
|
166
|
+
- update actions/checkout digest to ff7abcd (#45)
|
|
167
|
+
- update actions/github-script digest to ed59741 (#48)
|
|
168
|
+
- update actions/upload-artifact digest to 330a01c (#52)
|
|
169
|
+
- update actions/setup-node digest to dda4788 (#51)
|
|
170
|
+
- update github/codeql-action digest to ae78991 (#50)
|
|
171
|
+
- update actions/download-artifact digest to 018cc2c (#49)
|
|
172
|
+
- update actions/github-script action to v8 (#47)
|
|
173
|
+
- update actions/checkout action to v5 (#46)
|
|
174
|
+
- update sigstore/cosign-installer action to v3.10.1 (#43)
|
|
175
|
+
- update dependency happy-dom to v20.0.8 (#42)
|
|
176
|
+
- update codecov/codecov-action action to v5.5.1 (#41)
|
|
177
|
+
- update actions/upload-artifact action to v4.6.2 (#40)
|
|
178
|
+
- update actions/setup-node action to v4.4.0 (#39)
|
|
179
|
+
- update actions/upload-artifact digest to 2848b2c (#38)
|
|
180
|
+
- check for existing remote branch before creating local one (#36)
|
|
181
|
+
- update actions/github-script digest to ed59741 (#33)
|
|
182
|
+
- update actions/checkout digest to ff7abcd (#32)
|
|
183
|
+
- update dependency stylelint-config-standard to v39 (#29)
|
|
184
|
+
- update dependency lint-staged to v16 (#28)
|
|
185
|
+
- update typescript-eslint monorepo to v8.46.1 (#27)
|
|
186
|
+
- update dependency ruby to v3.4.7 (#26)
|
|
187
|
+
- update dependency eslint to v9.38.0 (#25)
|
|
188
|
+
|
|
189
|
+
## [0.4.0] - 2025-10-21
|
|
190
|
+
|
|
191
|
+
### ✨ Added
|
|
192
|
+
|
|
193
|
+
- implement PR-based release workflow system (#31)
|
|
194
|
+
|
|
195
|
+
### 🐛 Fixed
|
|
196
|
+
|
|
197
|
+
- remove monitoring uptime workflow (#30)
|
|
198
|
+
|
|
199
|
+
### 🔧 Changed
|
|
200
|
+
|
|
201
|
+
- update actions/setup-node action to v4.4.0 (#39)
|
|
202
|
+
- update actions/upload-artifact digest to 2848b2c (#38)
|
|
203
|
+
- check for existing remote branch before creating local one (#36)
|
|
204
|
+
- update actions/github-script digest to ed59741 (#33)
|
|
205
|
+
- update actions/checkout digest to ff7abcd (#32)
|
|
206
|
+
- update dependency stylelint-config-standard to v39 (#29)
|
|
207
|
+
- update dependency lint-staged to v16 (#28)
|
|
208
|
+
- update typescript-eslint monorepo to v8.46.1 (#27)
|
|
209
|
+
- update dependency ruby to v3.4.7 (#26)
|
|
210
|
+
- update dependency eslint to v9.38.0 (#25)
|
|
211
|
+
|
|
212
|
+
## [0.4.0] - 2025-10-21
|
|
213
|
+
|
|
214
|
+
### ✨ Added
|
|
215
|
+
|
|
216
|
+
- implement PR-based release workflow system (#31)
|
|
217
|
+
|
|
218
|
+
### 🐛 Fixed
|
|
219
|
+
|
|
220
|
+
- remove monitoring uptime workflow (#30)
|
|
221
|
+
|
|
222
|
+
### 🔧 Changed
|
|
223
|
+
|
|
224
|
+
- update actions/upload-artifact digest to 2848b2c (#38)
|
|
225
|
+
- check for existing remote branch before creating local one (#36)
|
|
226
|
+
- update actions/github-script digest to ed59741 (#33)
|
|
227
|
+
- update actions/checkout digest to ff7abcd (#32)
|
|
228
|
+
- update dependency stylelint-config-standard to v39 (#29)
|
|
229
|
+
- update dependency lint-staged to v16 (#28)
|
|
230
|
+
- update typescript-eslint monorepo to v8.46.1 (#27)
|
|
231
|
+
- update dependency ruby to v3.4.7 (#26)
|
|
232
|
+
- update dependency eslint to v9.38.0 (#25)
|
|
233
|
+
|
|
234
|
+
## [0.4.0] - 2025-10-19
|
|
235
|
+
|
|
236
|
+
### ✨ Added
|
|
237
|
+
|
|
238
|
+
- implement PR-based release workflow system (#31)
|
|
239
|
+
|
|
240
|
+
### 🐛 Fixed
|
|
241
|
+
|
|
242
|
+
- remove monitoring uptime workflow (#30)
|
|
243
|
+
|
|
244
|
+
### 🔧 Changed
|
|
245
|
+
|
|
246
|
+
- check for existing remote branch before creating local one (#36)
|
|
247
|
+
- update actions/github-script digest to ed59741 (#33)
|
|
248
|
+
- update actions/checkout digest to ff7abcd (#32)
|
|
249
|
+
- update dependency stylelint-config-standard to v39 (#29)
|
|
250
|
+
- update dependency lint-staged to v16 (#28)
|
|
251
|
+
- update typescript-eslint monorepo to v8.46.1 (#27)
|
|
252
|
+
- update dependency ruby to v3.4.7 (#26)
|
|
253
|
+
- update dependency eslint to v9.38.0 (#25)
|
|
254
|
+
|
|
255
|
+
## [0.4.0] - 2025-10-19
|
|
256
|
+
|
|
257
|
+
### ✨ Added
|
|
258
|
+
|
|
259
|
+
- implement PR-based release workflow system (#31)
|
|
260
|
+
|
|
261
|
+
### 🐛 Fixed
|
|
262
|
+
|
|
263
|
+
- remove monitoring uptime workflow (#30)
|
|
264
|
+
|
|
265
|
+
### 🔧 Changed
|
|
266
|
+
|
|
267
|
+
- update actions/github-script digest to ed59741 (#33)
|
|
268
|
+
- update actions/checkout digest to ff7abcd (#32)
|
|
269
|
+
- update dependency stylelint-config-standard to v39 (#29)
|
|
270
|
+
- update dependency lint-staged to v16 (#28)
|
|
271
|
+
- update typescript-eslint monorepo to v8.46.1 (#27)
|
|
272
|
+
- update dependency ruby to v3.4.7 (#26)
|
|
273
|
+
- update dependency eslint to v9.38.0 (#25)
|
|
274
|
+
|
|
275
|
+
## [0.3.0] - 2025-10-19
|
|
276
|
+
|
|
277
|
+
### ✨ Added
|
|
278
|
+
|
|
279
|
+
- implement PR-based release workflow system (#31)
|
|
280
|
+
|
|
281
|
+
### 🐛 Fixed
|
|
282
|
+
|
|
283
|
+
- remove monitoring uptime workflow (#30)
|
|
284
|
+
|
|
285
|
+
### 🔧 Changed
|
|
286
|
+
|
|
287
|
+
- update actions/github-script digest to ed59741 (#33)
|
|
288
|
+
- update actions/checkout digest to ff7abcd (#32)
|
|
289
|
+
- update dependency stylelint-config-standard to v39 (#29)
|
|
290
|
+
- update dependency lint-staged to v16 (#28)
|
|
291
|
+
- update typescript-eslint monorepo to v8.46.1 (#27)
|
|
292
|
+
- update dependency ruby to v3.4.7 (#26)
|
|
293
|
+
- update dependency eslint to v9.38.0 (#25)
|
|
294
|
+
|
|
295
|
+
## [0.2.0] - 2025-10-19
|
|
296
|
+
|
|
297
|
+
### ✨ Added
|
|
298
|
+
|
|
299
|
+
- implement PR-based release workflow system (#31)
|
|
300
|
+
|
|
301
|
+
### 🐛 Fixed
|
|
302
|
+
|
|
303
|
+
- remove monitoring uptime workflow (#30)
|
|
304
|
+
|
|
305
|
+
### 🔧 Changed
|
|
306
|
+
|
|
307
|
+
- update actions/github-script digest to ed59741 (#33)
|
|
308
|
+
- update actions/checkout digest to ff7abcd (#32)
|
|
309
|
+
- update dependency stylelint-config-standard to v39 (#29)
|
|
310
|
+
- update dependency lint-staged to v16 (#28)
|
|
311
|
+
- update typescript-eslint monorepo to v8.46.1 (#27)
|
|
312
|
+
- update dependency ruby to v3.4.7 (#26)
|
|
313
|
+
- update dependency eslint to v9.38.0 (#25)
|
|
314
|
+
|
|
315
|
+
## [0.1.0] - 2025-10-04
|
|
316
|
+
|
|
317
|
+
### Added
|
|
318
|
+
|
|
319
|
+
- 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,175 @@
|
|
|
1
|
+
# bulma-turbo-themes
|
|
2
|
+
|
|
3
|
+
Modern, accessible theme packs and a drop-in theme selector for Bulma 1.x.
|
|
4
|
+
|
|
5
|
+
[](https://nodejs.org/)
|
|
6
|
+
[](https://codecov.io/gh/TurboCoder13/bulma-turbo-themes)
|
|
7
|
+
[](LICENSE)
|
|
8
|
+
[](https://github.com/TurboCoder13/bulma-turbo-themes/actions/workflows/quality-ci-main.yml?query=branch%3Amain)
|
|
9
|
+
[](https://github.com/TurboCoder13/bulma-turbo-themes/actions/workflows/quality-ci-main.yml?query=branch%3Amain)
|
|
10
|
+
[](https://github.com/TurboCoder13/bulma-turbo-themes/actions/workflows/reporting-lighthouse-ci.yml?query=branch%3Amain)
|
|
11
|
+
|
|
12
|
+
[](https://github.com/TurboCoder13/bulma-turbo-themes/actions/workflows/security-codeql.yml?query=branch%3Amain)
|
|
13
|
+
[](https://scorecard.dev/viewer/?uri=github.com/TurboCoder13/bulma-turbo-themes)
|
|
14
|
+
[](SECURITY.md)
|
|
15
|
+
[](https://github.com/TurboCoder13/bulma-turbo-themes/actions/workflows/security-sbom.yml)
|
|
16
|
+
|
|
17
|
+
[](https://www.npmjs.com/package/@turbocoder13/bulma-turbo-themes)
|
|
18
|
+
[](https://rubygems.org/gems/bulma-turbo-themes)
|
|
19
|
+
|
|
20
|
+
## Features
|
|
21
|
+
|
|
22
|
+
- Catppuccin, Dracula, GitHub (light/dark) flavor packs
|
|
23
|
+
- Accessible theme selector with keyboard and screen reader support
|
|
24
|
+
- Inline or link-based CSS delivery; CSP-friendly
|
|
25
|
+
- Tested with coverage, Lighthouse CI, and stylelint
|
|
26
|
+
|
|
27
|
+
## Installation
|
|
28
|
+
|
|
29
|
+
### For Jekyll Sites (Recommended)
|
|
30
|
+
|
|
31
|
+
Install as a Ruby gem:
|
|
32
|
+
|
|
33
|
+
```ruby
|
|
34
|
+
# Gemfile
|
|
35
|
+
gem "bulma-turbo-themes", "~> 0.4"
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```yaml
|
|
39
|
+
# _config.yml
|
|
40
|
+
theme: bulma-turbo-themes
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Then run:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
bundle install
|
|
47
|
+
bundle exec jekyll serve
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Assets are automatically available - no copying needed!
|
|
51
|
+
|
|
52
|
+
### For Non-Jekyll Projects
|
|
53
|
+
|
|
54
|
+
Install via npm:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npm install @turbocoder13/bulma-turbo-themes
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Quick start
|
|
61
|
+
|
|
62
|
+
### Jekyll Sites
|
|
63
|
+
|
|
64
|
+
1. Install the gem (see above)
|
|
65
|
+
2. Include CSS links in your layout:
|
|
66
|
+
|
|
67
|
+
```html
|
|
68
|
+
<link
|
|
69
|
+
id="theme-global-css"
|
|
70
|
+
rel="stylesheet"
|
|
71
|
+
href="{{ '/assets/css/themes/global.css' | relative_url }}"
|
|
72
|
+
/>
|
|
73
|
+
<link id="theme-flavor-css" rel="stylesheet" href="#" />
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
1. Add selector markup and initialize:
|
|
77
|
+
|
|
78
|
+
```html
|
|
79
|
+
<div class="dropdown is-right is-theme" id="theme-flavor-dd">
|
|
80
|
+
<div class="dropdown-trigger">
|
|
81
|
+
<button id="theme-flavor-trigger" aria-haspopup="true">
|
|
82
|
+
<span id="theme-flavor-trigger-icon"></span>
|
|
83
|
+
<span id="theme-flavor-trigger-label"></span>
|
|
84
|
+
</button>
|
|
85
|
+
</div>
|
|
86
|
+
<div class="dropdown-menu" id="theme-flavor-menu" role="menu">
|
|
87
|
+
<div class="dropdown-content" id="theme-flavor-items"></div>
|
|
88
|
+
</div>
|
|
89
|
+
<div class="select is-hidden"><select id="theme-flavor-select"></select></div>
|
|
90
|
+
<span id="theme-flavor-icon"></span>
|
|
91
|
+
</div>
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
```html
|
|
95
|
+
<script src="{{ '/assets/js/theme-selector.js' | relative_url }}"></script>
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Non-Jekyll Projects
|
|
99
|
+
|
|
100
|
+
1. Copy CSS files from `node_modules/@turbocoder13/bulma-turbo-themes/assets/css/themes/` to your project:
|
|
101
|
+
- `global.css` (required)
|
|
102
|
+
- Flavor CSS files (e.g., `catppuccin-mocha.css`, `dracula.css`, `github-dark.css`) - copy the ones you want to use
|
|
103
|
+
2. Include CSS links (adjust paths to match your project structure):
|
|
104
|
+
|
|
105
|
+
```html
|
|
106
|
+
<link id="theme-global-css" rel="stylesheet" href="/assets/css/themes/global.css" />
|
|
107
|
+
<link id="theme-flavor-css" rel="stylesheet" href="#" />
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
1. Add selector markup and initialize:
|
|
111
|
+
|
|
112
|
+
```html
|
|
113
|
+
<div class="dropdown is-right is-theme" id="theme-flavor-dd">
|
|
114
|
+
<div class="dropdown-trigger">
|
|
115
|
+
<button id="theme-flavor-trigger" aria-haspopup="true">
|
|
116
|
+
<span id="theme-flavor-trigger-icon"></span>
|
|
117
|
+
<span id="theme-flavor-trigger-label"></span>
|
|
118
|
+
</button>
|
|
119
|
+
</div>
|
|
120
|
+
<div class="dropdown-menu" id="theme-flavor-menu" role="menu">
|
|
121
|
+
<div class="dropdown-content" id="theme-flavor-items"></div>
|
|
122
|
+
</div>
|
|
123
|
+
<div class="select is-hidden"><select id="theme-flavor-select"></select></div>
|
|
124
|
+
<span id="theme-flavor-icon"></span>
|
|
125
|
+
</div>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
```ts
|
|
129
|
+
import { initTheme, wireFlavorSelector } from '@turbocoder13/bulma-turbo-themes';
|
|
130
|
+
|
|
131
|
+
document.addEventListener('DOMContentLoaded', () => {
|
|
132
|
+
initTheme(document, window);
|
|
133
|
+
wireFlavorSelector(document, window);
|
|
134
|
+
});
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Testing
|
|
138
|
+
|
|
139
|
+
This project includes comprehensive testing:
|
|
140
|
+
|
|
141
|
+
- **Unit Tests**: Vitest with coverage reporting
|
|
142
|
+
- **E2E Tests**: Playwright with Page Object Model pattern
|
|
143
|
+
- **Accessibility Tests**: axe-core integration for WCAG compliance
|
|
144
|
+
- **Visual Regression**: Playwright screenshots and snapshots
|
|
145
|
+
|
|
146
|
+
Run tests:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
npm test # Unit tests with coverage
|
|
150
|
+
npm run e2e # All E2E tests
|
|
151
|
+
npm run e2e:smoke # Smoke tests only
|
|
152
|
+
npm run e2e:visual # Visual regression tests
|
|
153
|
+
npm run e2e:a11y # Accessibility tests
|
|
154
|
+
npm run e2e:ui # Playwright UI mode
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
For detailed E2E testing documentation, see `docs/E2E-TESTING.md`.
|
|
158
|
+
|
|
159
|
+
## Documentation
|
|
160
|
+
|
|
161
|
+
- Code of Conduct: see `CODE_OF_CONDUCT.md`
|
|
162
|
+
- Contributing Guide: see `CONTRIBUTING.md`
|
|
163
|
+
- Security Policy: see `SECURITY.md`
|
|
164
|
+
- Release process: see `docs/RELEASE-TRAIN.md`
|
|
165
|
+
- E2E Testing: see `docs/E2E-TESTING.md`
|
|
166
|
+
- Workflows & Actions: see `.github/workflows/README.md` and `.github/actions/README.md`
|
|
167
|
+
- Scripts: see `scripts/README.md`
|
|
168
|
+
|
|
169
|
+
## Governance
|
|
170
|
+
|
|
171
|
+
See `GOVERNANCE.md` and `MAINTAINERS.md`.
|
|
172
|
+
|
|
173
|
+
## License
|
|
174
|
+
|
|
175
|
+
MIT © Turbo Coder
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* SPDX-License-Identifier: MIT */
|
|
2
|
+
|
|
3
|
+
/* Custom tweaks and dark mode helpers */
|
|
4
|
+
|
|
5
|
+
:root {
|
|
6
|
+
color-scheme: light dark;
|
|
7
|
+
|
|
8
|
+
--bulma-primary-h: 171;
|
|
9
|
+
--bulma-primary-s: 100%;
|
|
10
|
+
--bulma-primary-l: 41%;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/* Keep buttons readable across themes */
|
|
14
|
+
|
|
15
|
+
/* Toggle buttons */
|
|
16
|
+
|
|
17
|
+
.buttons.has-addons .button.is-rounded {
|
|
18
|
+
background: transparent;
|
|
19
|
+
border: 1px solid rgb(0 0 0 / 15%);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.buttons.has-addons .button.is-rounded[aria-pressed='true'],
|
|
23
|
+
.buttons.has-addons .button.is-rounded.is-active {
|
|
24
|
+
border-color: transparent;
|
|
25
|
+
background-color: #00d1b2;
|
|
26
|
+
color: #fff;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.buttons.has-addons .button img {
|
|
30
|
+
width: 1rem;
|
|
31
|
+
height: 1rem;
|
|
32
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/* SPDX-License-Identifier: MIT */
|
|
2
|
+
html[data-flavor='bulma-dark'] .highlight {
|
|
3
|
+
background: var(--syntax-bg);
|
|
4
|
+
color: var(--syntax-fg);
|
|
5
|
+
}
|
|
6
|
+
html[data-flavor='bulma-dark'] .highlight pre,
|
|
7
|
+
html[data-flavor='bulma-dark'] pre.highlight {
|
|
8
|
+
background: transparent;
|
|
9
|
+
color: var(--syntax-fg);
|
|
10
|
+
}
|
|
11
|
+
html[data-flavor='bulma-dark'] .highlight code {
|
|
12
|
+
background: transparent;
|
|
13
|
+
color: var(--syntax-fg);
|
|
14
|
+
}
|
|
15
|
+
html[data-flavor='bulma-dark'] .highlight .c,
|
|
16
|
+
html[data-flavor='bulma-dark'] .highlight .cm,
|
|
17
|
+
html[data-flavor='bulma-dark'] .highlight .c1 {
|
|
18
|
+
color: var(--syntax-comment);
|
|
19
|
+
}
|
|
20
|
+
html[data-flavor='bulma-dark'] .highlight .k,
|
|
21
|
+
html[data-flavor='bulma-dark'] .highlight .kc,
|
|
22
|
+
html[data-flavor='bulma-dark'] .highlight .kd {
|
|
23
|
+
color: var(--syntax-keyword);
|
|
24
|
+
}
|
|
25
|
+
html[data-flavor='bulma-dark'] .highlight .s,
|
|
26
|
+
html[data-flavor='bulma-dark'] .highlight .s1,
|
|
27
|
+
html[data-flavor='bulma-dark'] .highlight .sb,
|
|
28
|
+
html[data-flavor='bulma-dark'] .highlight .sd,
|
|
29
|
+
html[data-flavor='bulma-dark'] .highlight .s2 {
|
|
30
|
+
color: var(--syntax-string);
|
|
31
|
+
}
|
|
32
|
+
html[data-flavor='bulma-dark'] .highlight .m,
|
|
33
|
+
html[data-flavor='bulma-dark'] .highlight .mi,
|
|
34
|
+
html[data-flavor='bulma-dark'] .highlight .mf,
|
|
35
|
+
html[data-flavor='bulma-dark'] .highlight .mh {
|
|
36
|
+
color: var(--syntax-number);
|
|
37
|
+
}
|
|
38
|
+
html[data-flavor='bulma-dark'] .highlight .nt,
|
|
39
|
+
html[data-flavor='bulma-dark'] .highlight .na {
|
|
40
|
+
color: var(--syntax-attr);
|
|
41
|
+
}
|
|
42
|
+
html[data-flavor='bulma-dark'] .highlight .nn,
|
|
43
|
+
html[data-flavor='bulma-dark'] .highlight .nc,
|
|
44
|
+
html[data-flavor='bulma-dark'] .highlight .no,
|
|
45
|
+
html[data-flavor='bulma-dark'] .highlight .nf {
|
|
46
|
+
color: var(--syntax-title);
|
|
47
|
+
}
|
|
48
|
+
html[data-flavor='bulma-dark'] {
|
|
49
|
+
--bulma-body-background-color: #0f1115;
|
|
50
|
+
--bulma-body-color: #e5e7eb;
|
|
51
|
+
--bulma-primary-h: 171;
|
|
52
|
+
--bulma-primary-s: 100%;
|
|
53
|
+
--bulma-primary-l: 41%;
|
|
54
|
+
--bulma-link: #93c5fd;
|
|
55
|
+
--bulma-info: #38bdf8;
|
|
56
|
+
--bulma-success: #22c55e;
|
|
57
|
+
--bulma-warning: #facc15;
|
|
58
|
+
--bulma-danger: #ef4444;
|
|
59
|
+
--bulma-border: #374151;
|
|
60
|
+
--theme-font-sans:
|
|
61
|
+
system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, 'Apple Color Emoji',
|
|
62
|
+
'Segoe UI Emoji';
|
|
63
|
+
--theme-font-mono:
|
|
64
|
+
ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
|
|
65
|
+
monospace;
|
|
66
|
+
--theme-text: #e5e7eb;
|
|
67
|
+
--theme-text-muted: #9ca3af;
|
|
68
|
+
--theme-link: #93c5fd;
|
|
69
|
+
--theme-code-fg: #e5e7eb;
|
|
70
|
+
--theme-code-bg: #1f2937;
|
|
71
|
+
--theme-pre-fg: #e5e7eb;
|
|
72
|
+
--theme-pre-bg: #111827;
|
|
73
|
+
--theme-pre-border: #374151;
|
|
74
|
+
--theme-table-border: #374151;
|
|
75
|
+
--theme-table-stripe: #111827;
|
|
76
|
+
--theme-table-thead-bg: #1f2937;
|
|
77
|
+
--theme-label-color: #e5e7eb;
|
|
78
|
+
--theme-h1: #22c55e;
|
|
79
|
+
--theme-h2: #93c5fd;
|
|
80
|
+
--theme-h3: #38bdf8;
|
|
81
|
+
--theme-h4: #facc15;
|
|
82
|
+
--theme-h5: #00d1b2;
|
|
83
|
+
--theme-h6: #ef4444;
|
|
84
|
+
--syntax-fg: #e5e7eb;
|
|
85
|
+
--syntax-bg: #111827;
|
|
86
|
+
--syntax-keyword: #facc15;
|
|
87
|
+
--syntax-string: #22c55e;
|
|
88
|
+
--syntax-number: #facc15;
|
|
89
|
+
--syntax-comment: #9ca3af;
|
|
90
|
+
--syntax-title: #38bdf8;
|
|
91
|
+
--syntax-attr: #93c5fd;
|
|
92
|
+
--theme-surface-0: #0f1115;
|
|
93
|
+
--theme-surface-1: #111827;
|
|
94
|
+
--theme-surface-2: #111827;
|
|
95
|
+
color-scheme: dark;
|
|
96
|
+
}
|