ultimate-jekyll-manager 1.6.8 → 1.6.9
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.
- package/CHANGELOG.md +12 -0
- package/CLAUDE.md +4 -0
- package/dist/assets/js/core/auth.js +1 -1
- package/dist/defaults/CLAUDE.md +20 -0
- package/docs/themes.md +50 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
|
14
14
|
- `Fixed` for any bug fixes.
|
|
15
15
|
- `Security` in case of vulnerabilities.
|
|
16
16
|
|
|
17
|
+
---
|
|
18
|
+
## [1.6.9] - 2026-06-08
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- **Bootstrap-first theming convention.** Added comprehensive guidance to `docs/themes.md` and the default consumer `CLAUDE.md` — themes must restyle Bootstrap classes, not create parallel design systems.
|
|
23
|
+
- **Dev workflow documentation.** Added explicit instructions to `CLAUDE.md` and consumer defaults to check `logs/dev.log` instead of running `npm start`/`npm test` in consumer projects.
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- **Signup metadata failure notification timeout.** Changed dev-only notification from permanent (`timeout: 0`) to 1 second (`timeout: 1000`) so it doesn't block the screen during development.
|
|
28
|
+
|
|
17
29
|
---
|
|
18
30
|
## [1.6.8] - 2026-06-07
|
|
19
31
|
|
package/CLAUDE.md
CHANGED
|
@@ -158,6 +158,10 @@ Same `{ layer, description, run(ctx) }` contract as EM/BXM. JSON-line reporter p
|
|
|
158
158
|
|
|
159
159
|
Note: `-t` short alias belongs to `translation`. The `test` command uses `--test` flag + `test` positional only. See [docs/cli.md](docs/cli.md) (planned).
|
|
160
160
|
|
|
161
|
+
## Development Workflow
|
|
162
|
+
|
|
163
|
+
- **🚫 NEVER run `npm start` / `npm run build` / `npm test` in a consumer project** unless the user explicitly asks. The user runs the dev server — running it again kills theirs. Instead, **check `logs/dev.log`** after editing files to confirm the watcher recompiled successfully (`Reloading Browsers...` = success; `errored` = fix the error). If editing multiple files, check the log once after the last edit. A change that breaks the build is not a completed change.
|
|
164
|
+
|
|
161
165
|
## File Conventions
|
|
162
166
|
|
|
163
167
|
- **CommonJS** in build-time / Node files (gulp tasks, commands, lib/). **ESM** in `src/index.js` (frontend Manager — webpack-bundled).
|
|
@@ -316,7 +316,7 @@ async function sendUserSignupMetadata(account) {
|
|
|
316
316
|
/* @dev-only:start */
|
|
317
317
|
webManager.utilities().showNotification(
|
|
318
318
|
`[DEV] Failed to send signup metadata. Will retry on next page load (flags.signupProcessed is still false).`,
|
|
319
|
-
{ type: 'warning', timeout:
|
|
319
|
+
{ type: 'warning', timeout: 1000 }
|
|
320
320
|
);
|
|
321
321
|
/* @dev-only:end */
|
|
322
322
|
}
|
package/dist/defaults/CLAUDE.md
CHANGED
|
@@ -38,6 +38,26 @@ npx mgr install live # restore the published ultimate-jekyll-manager from npm
|
|
|
38
38
|
|
|
39
39
|
> Editing the UJM framework source while working here? Run `npx mgr install dev` so this project picks up your uncommitted framework changes (it otherwise uses its installed `node_modules/ultimate-jekyll-manager`). Run `npx mgr install live` to switch back.
|
|
40
40
|
|
|
41
|
+
## 🚨 BOOTSTRAP-FIRST — NEVER reinvent the wheel
|
|
42
|
+
|
|
43
|
+
**UJM is built on Bootstrap 5.** Every page MUST use Bootstrap classes for layout, spacing, typography, buttons, cards, grid, flex, and all standard components. Custom CSS exists ONLY to override how Bootstrap classes LOOK (via theme SCSS), NOT to replace them with parallel classes.
|
|
44
|
+
|
|
45
|
+
- **DO:** Use `.btn .btn-primary`, `.container`, `.row`, `.col-*`, `.d-flex`, `.gap-*`, `.py-5`, `.text-center`, `.card`, `.lead`, `.shadow`, `.rounded-*`, etc.
|
|
46
|
+
- **DO NOT:** Create custom `.my-btn`, `.my-wrap`, `.my-section` classes when Bootstrap already has equivalents. Don't write `padding`, `display: flex`, `gap`, `margin`, `text-align`, `font-weight` in custom CSS when a Bootstrap utility does the same thing.
|
|
47
|
+
- **Theme SCSS overrides appearance:** `.btn { border-radius: 50px; box-shadow: ... }` changes ALL buttons site-wide. You don't need `.lm-btn` — just restyle `.btn`.
|
|
48
|
+
- **Custom CSS is for genuinely novel components only:** animated hero illustrations, grain overlays, marquee strips — things with no Bootstrap equivalent.
|
|
49
|
+
|
|
50
|
+
See `node_modules/ultimate-jekyll-manager/docs/themes.md` for the full "Bootstrap-first" convention.
|
|
51
|
+
|
|
52
|
+
## 🚨 Development workflow — MUST follow
|
|
53
|
+
|
|
54
|
+
- **🚫 NEVER run `npm start`, `npm run build`, or `npm test`** unless the user explicitly asks. Assume the user is already running the dev server. Running these commands kills the user's process and wastes time.
|
|
55
|
+
- **✅ ALWAYS check `logs/dev.log`** after editing source files (SCSS, JS, HTML, config) to confirm the build succeeded. The dev server's gulp watcher recompiles on file change — check the log for errors.
|
|
56
|
+
- Success: `Reloading Browsers...`
|
|
57
|
+
- Failure: `'sass' errored`, `'webpack' errored`, `'build-error'`, `'jekyll' errored`
|
|
58
|
+
- If editing multiple files in a batch, check the log once after the last edit. Wait a few seconds for the watcher to recompile before reading the log.
|
|
59
|
+
- **If the log shows an error, fix it immediately.** A change that breaks the build is not a completed change.
|
|
60
|
+
|
|
41
61
|
## Where things live
|
|
42
62
|
|
|
43
63
|
- `src/_config.yml` — Jekyll config: brand, theme, meta, web_manager (Firebase). `Manager.getConfig('project')` reads this. **`brand.id` + `theme.id` are required.**
|
package/docs/themes.md
CHANGED
|
@@ -345,6 +345,56 @@ their own (frozen) text color. Nav/dropdown/footer links already win on specific
|
|
|
345
345
|
|
|
346
346
|
---
|
|
347
347
|
|
|
348
|
+
## 🚨 BOOTSTRAP-FIRST — NEVER reinvent the wheel
|
|
349
|
+
|
|
350
|
+
**This is the #1 theme authoring mistake.** A theme's job is to RESTYLE Bootstrap — not to build a parallel design system alongside it.
|
|
351
|
+
|
|
352
|
+
### The rule
|
|
353
|
+
|
|
354
|
+
Every HTML element must use **Bootstrap classes first**. Custom CSS exists ONLY to override how those Bootstrap classes look (colors, shadows, borders, radii, typography) via the theme's SCSS. You should NEVER:
|
|
355
|
+
|
|
356
|
+
- Invent custom layout classes when Bootstrap grid/flex utilities exist (`.row`, `.col-*`, `.d-flex`, `.gap-*`, `.justify-content-*`, `.align-items-*`, `.text-center`, `.mx-auto`, etc.)
|
|
357
|
+
- Create custom button classes (`.my-btn`, `.lm-btn`) when `.btn .btn-primary`, `.btn .btn-outline-dark`, etc. already exist — restyle `.btn` in theme SCSS instead
|
|
358
|
+
- Create custom spacing/sizing classes when Bootstrap has `p-*`, `m-*`, `w-*`, `rounded-*`, `shadow-*`
|
|
359
|
+
- Create custom text utilities when Bootstrap has `.text-muted`, `.lead`, `.display-*`, `.fw-*`, `.fs-*`
|
|
360
|
+
- Create custom card/container classes when `.card`, `.card-body`, `.container`, `.lh-*` exist
|
|
361
|
+
- Write `position`, `display`, `flex`, `gap`, `padding`, `margin`, `border-radius`, `text-align`, `font-weight`, `font-size` in custom CSS when a Bootstrap utility class does the same thing
|
|
362
|
+
|
|
363
|
+
### What theme CSS IS for
|
|
364
|
+
|
|
365
|
+
- Overriding Bootstrap component appearance: `.btn { border-radius: 50px; box-shadow: ... }` — changes how ALL buttons look
|
|
366
|
+
- Setting design tokens: `$primary`, `$border-radius`, `$font-family-sans-serif` — passed to Bootstrap's `@forward`
|
|
367
|
+
- CSS custom properties for the theme palette: `--lm-accent`, `--lm-ink`, etc.
|
|
368
|
+
- Dark mode overrides via `[data-bs-theme="dark"]` variable remapping
|
|
369
|
+
- Truly novel components with no Bootstrap equivalent (grain overlays, animated hero cards, marquee strips)
|
|
370
|
+
- Mixins/utilities that compose Bootstrap patterns, not replace them
|
|
371
|
+
|
|
372
|
+
### How to check yourself
|
|
373
|
+
|
|
374
|
+
Before writing ANY custom CSS class, ask: "Does Bootstrap already have a class for this?" If yes, use it. If the Bootstrap class doesn't look right, override its appearance in theme SCSS — don't create a parallel class. The HTML should be 90%+ Bootstrap classes with custom classes only for genuinely novel UI patterns.
|
|
375
|
+
|
|
376
|
+
### Anti-pattern example
|
|
377
|
+
|
|
378
|
+
```html
|
|
379
|
+
<!-- BAD: parallel design system -->
|
|
380
|
+
<div class="lm-wrap">
|
|
381
|
+
<div class="lm-section">
|
|
382
|
+
<a class="lm-btn lm-btn-primary">Click</a>
|
|
383
|
+
</div>
|
|
384
|
+
</div>
|
|
385
|
+
|
|
386
|
+
<!-- GOOD: Bootstrap classes, theme restyled -->
|
|
387
|
+
<div class="container">
|
|
388
|
+
<section class="py-5">
|
|
389
|
+
<a class="btn btn-primary">Click</a>
|
|
390
|
+
</section>
|
|
391
|
+
</div>
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
The GOOD version uses zero custom CSS for layout/buttons — the theme's `_buttons.scss` restyled `.btn` and `.btn-primary` to look however it wants. The page `main.scss` only adds styles for genuinely novel components.
|
|
395
|
+
|
|
396
|
+
---
|
|
397
|
+
|
|
348
398
|
## Authoring conventions (both paths)
|
|
349
399
|
|
|
350
400
|
1. **Every token is `!default`** so consumers can override without forking.
|