diff --git a/.agents/rules/v2.mdc b/.agents/rules/v2.mdc index 6df6f8d23..e09a19e9d 100644 --- a/.agents/rules/v2.mdc +++ b/.agents/rules/v2.mdc @@ -23,11 +23,12 @@ Applies to every change on `v2-dev`. The plan, phases and open questions live in - Event names (`shown.bs.modal`), JavaScript plugin names and methods (`Modal.getInstance`, `show`, `hide`, `dispose`). - The **values** behind existing utilities: `$spacers`, `.rounded-N`, `.fs-N`, breakpoints and container widths do not change silently. -## Not adopted from v6 (decided 2026-09-06) +## Not adopted from v6 - The `md:` / `hover:` prefix syntax — infix names (`.col-md-6`) stay. Revisit no earlier than 3.0. - Renames: `.dialog`, `.drawer`, `.menu`, `.fg-*`, `.bg-1`…`.bg-4`, `.fs-xs`…`.fs-6xl`, `.max-w-*`, `.underline-*`, `data-bs-toggle="dialog|drawer|menu"`, `*.bs.dialog|drawer|menu` events, `Dialog`/`Drawer`/`Menu` exports. - The v6 remaps of `$spacers` (0–9) and `.rounded-*`. +- Removing `.form-select` — it stays untouched in 2.0. ## Adopted from v6 — the architecture @@ -36,6 +37,8 @@ Applies to every change on `v2-dev`. The plan, phases and open questions live in - Logical properties in spacing and border utilities (class names unchanged). - Native `` for modal/offcanvas, `
` for accordion, CSS scroll snap for carousel — under the v5 names, events and data attributes. - Floating UI instead of Popper; one `focus-ring()` mixin; the numeric `$radii` scale mapped so `.rounded-N` keeps its v5 values. +- ESM-only JavaScript: no UMD bundle, no `window.tabler` global in 2.0. +- Component parity with v6 for `.avatar`, `.chip`, `.stepper`, `.progress`, `.status`: Tabler's versions are reworked to match the v6 class names, modifiers and tokens; a Tabler-only name such as `.steps` stays as an alias for one major. This is the one agreed exception to "every 1.x class stays" — see phase 9 of the plan. - The internal Sass API (variable names, maps, mixins, file layout) is **not** promised and may change, as long as compiled output stays as intended. ## Proof per phase diff --git a/BOOTSTRAP-V6-MIGRATION.md b/BOOTSTRAP-V6-MIGRATION.md index 672a7218d..c348e9f47 100644 --- a/BOOTSTRAP-V6-MIGRATION.md +++ b/BOOTSTRAP-V6-MIGRATION.md @@ -1,6 +1,6 @@ # Bootstrap v5 → v6: analysis and a phased plan for Tabler 2.0 -**Status:** analysis only, nothing implemented. Written 2026-09-06. +**Status:** analysis, decisions and task board. Nothing implemented yet beyond the Floating UI branch. **Source of truth:** local Bootstrap checkout at `~/htdocs/bootstrap`, branch `v6-dev` (`6.0.0-alpha1`, 495 commits ahead of `main`/5.3.8, work from 2025-08-26 to 2026-07-22). @@ -198,10 +198,10 @@ class emission must go through `check-markup-classes`. No code. Settle the things that later phases cannot proceed without. -- Browser baseline: are `oklch()` and `color-mix()` in? This gates phases 2 and 3. -- ESM-only distribution: does 2.0 drop the UMD `tabler.js` bundle? This gates phase 5. +- Browser baseline: `oklch()` and `color-mix()` are in. Phases 2 and 3 can start. +- Distribution: ESM only, the UMD `tabler.js` bundle is dropped. Phase 5 can start. - Class-name policy: confirm v5 names stay, and write down the exceptions we are willing to make. -- Component namespace policy for `.avatar` / `.chip` / `.stepper` (see phase 9). +- Component namespace policy for `.avatar` / `.chip` / `.stepper`: unify with upstream (see phase 9). - Read `~/htdocs/bootstrap/skills/bootstrap-v5-v6-migration/SKILL.md` and lift anything reusable into our own migration notes. @@ -228,7 +228,8 @@ config bites, per the existing SCSS module notes. ### Phase 2 — Colour system on oklch and theme tokens -The point of no return for browser support. +The point of no return for browser support, and we take it. The 2.0 browser baseline is whatever +supports `oklch()` and `color-mix()`; write that baseline into the upgrade guide. - Convert colour variables to `oklch()`; generate tint/shade with `color-mix(in lab, …)`. - Introduce `--theme-bg` / `--theme-fg` / `--theme-border` / `--theme-contrast` and a `.theme-*` @@ -272,9 +273,11 @@ which validates the direction. ### Phase 5 — JavaScript runtime -- Decide ESM-only, then drop the UMD build from `core/package.json` (`js:build:standalone`, - `js:min:*`) or keep a compatibility bundle for one more major. -- Finish the Floating UI migration and rename `popperConfig` → `floatingConfig` in our API. +- ESM only. Drop the UMD build from `core/package.json` (`js:build:standalone`, `js:min:*`); no + compatibility bundle. `