@allxsmith/bestax-bulma 5.66.1 → 5.66.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allxsmith/bestax-bulma",
3
- "version": "5.66.1",
3
+ "version": "5.66.2",
4
4
  "description": "Component library based on React, Bulma, with Agent Skills and MCP",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.esm.js",
@@ -1,9 +1,10 @@
1
1
  # scss/ — styles for the bestax "extras"
2
2
 
3
- **Only extras get SCSS.** Components that are stock Bulma (Box, Card, Navbar, …) ship no CSS
3
+ **Only extras get SCSS.** Components that are stock Bulma (Box, Card, Modal, …) ship no CSS
4
4
  of their own — Bulma provides it. A partial exists only for components that extend beyond Bulma
5
5
  (Carousel, Collapse, Dialog, the extended form inputs, …) — or that extend a stock component
6
- (e.g. `_tabs.scss` adds vertical Tabs). The `_index.scss` files are the authoritative inventory.
6
+ (e.g. `_tabs.scss` adds vertical Tabs, `_navbar.scss` keeps the burger's bars in forced
7
+ colors). The `_index.scss` files are the authoritative inventory.
7
8
 
8
9
  ## Structure
9
10
 
@@ -76,3 +77,25 @@ Rules the pattern encodes:
76
77
  CSS & Sass Variables section, which is how LinkButton shipped its variables invisibly
77
78
  (#464). The orphan rule in `check:conformance` now fails on a partial that no component
78
79
  claims, so the miss is loud, but the fix is still yours to make.
80
+
81
+ ## A partial that adjusts stock Bulma
82
+
83
+ Some partials change a stock component rather than add one (`elements/_button.scss`,
84
+ `components/_pagination.scss`, `components/_menu.scss`). They follow the pattern above, plus:
85
+
86
+ - **Outrank Bulma whichever stylesheet loads first.** An app may load `extras.css` before or
87
+ after Bulma, so match Bulma's selector and add one class or ancestor (`.button.button`,
88
+ `.pagination .pagination-link`), and test both load orders.
89
+ - **Check every case the selector reaches.** A loop over Bulma's `$colors` also reaches `text`,
90
+ which `LinkButton` uses by default. A rule for one state can erase another state's only cue: a
91
+ border at rest in forced colors is the same border Bulma draws for focus. List the variants,
92
+ sizes and states the rule touches, and check each.
93
+ - **Forced colors:** scope the rule to `@media (forced-colors: active)`, paint with system colors
94
+ (`CanvasText`, `ButtonText`), and put `forced-color-adjust: none` only on the smallest element
95
+ that needs it, so everything else keeps the user's palette.
96
+ - **Name the `@use`.** Docs that show the partial beside the Bulma module it adjusts load it
97
+ `as bestax-<name>`, since Sass refuses two `@use` lines with the same name.
98
+ - `ORPHAN_EXEMPT` in `scripts/check-conformance.mjs` is for a partial no component can claim. Its
99
+ reason says why that stays true, not which issue added it.
100
+ - A new partial also means updating every page that lists the partials: see "Finishing a change"
101
+ in the root `CLAUDE.md`.
@@ -29,3 +29,4 @@
29
29
  @use 'datatable';
30
30
  @use 'pagination';
31
31
  @use 'affix';
32
+ @use 'navbar';
@@ -0,0 +1,20 @@
1
+ // Bestax Extras - Navbar Styles
2
+ // Bulma draws `.navbar-burger`'s bars as `background-color: currentColor`
3
+ // on a button with no background. Forced colors (Windows' contrast themes)
4
+ // replaces background colors, and Chromium paints the bars in the page's
5
+ // Canvas color, so the burger vanishes while it still works. This keeps
6
+ // the bars in ButtonText. Outside forced colors it changes nothing.
7
+ //
8
+ // Bulma's CSS can land on either side of this partial, as it can for
9
+ // `_delete.scss`, so the selector names its class twice to outrank Bulma's
10
+ // `.navbar-burger span`, wherever the two load.
11
+
12
+ @use 'bulma/sass/utilities/initial-variables' as iv;
13
+
14
+ @media (forced-colors: active) {
15
+ .#{iv.$class-prefix}navbar-burger.#{iv.$class-prefix}navbar-burger span {
16
+ // Opt out so Chromium keeps these bars in ButtonText, not Canvas.
17
+ forced-color-adjust: none;
18
+ background-color: ButtonText;
19
+ }
20
+ }