Target bootstrap
Coverage
- native629%first-class slot, lossless
- derived48968%synthesized by derivation, then mapped natively
- approximated416%mapped, but the meaning changed
- dropped7310%your system has it, this target can’t say it
- unsupported568%the target has it, Transtyle doesn’t cover it yet
As the terminal prints itbootstrap 9% native · 68% derived · 6% approximated · 10% dropped · 8% unsupported
721 rows. A percentage measures this target’s own surface; it doesn’t rank targets against each other (why).
Diagnostics 9
The whole build’s diagnostics, not only this target’s: one an exporter raised starts with its target’s name.
Warnings · 7
-
warning TST2101
primary.on-solid vs primary.solid is 4.9:1 in light+comfortable+more+full, light+comfortable+more+reduced, light+compact+more+full, light+compact+more+reduced, dark+comfortable+more+full, dark+comfortable+more+reduced, dark+compact+more+full and dark+compact+more+reduced modes (< 7:1 wcag21-aaa, contrast: more)
↳ primary.on-solid is already the better of white and near-black, so only a darker (light scheme) or lighter (dark scheme) primary.solid reaches it: author primary.solid for contrast: more.
-
warning TST2101
secondary.on-solid vs secondary.solid is 4.6:1 in light+comfortable+more+full, light+comfortable+more+reduced, light+compact+more+full, light+compact+more+reduced, dark+comfortable+more+full, dark+comfortable+more+reduced, dark+compact+more+full and dark+compact+more+reduced modes (< 7:1 wcag21-aaa, contrast: more)
↳ secondary.on-solid is already the better of white and near-black, so only a darker (light scheme) or lighter (dark scheme) secondary.solid reaches it: author secondary.solid for contrast: more.
-
warning TST2101
accent.on-solid vs accent.solid is 4.9:1 in light+comfortable+more+full, light+comfortable+more+reduced, light+compact+more+full, light+compact+more+reduced, dark+comfortable+more+full, dark+comfortable+more+reduced, dark+compact+more+full and dark+compact+more+reduced modes (< 7:1 wcag21-aaa, contrast: more)
↳ accent.on-solid is already the better of white and near-black, so only a darker (light scheme) or lighter (dark scheme) accent.solid reaches it: author accent.solid for contrast: more.
-
warning TST2101
success.on-solid vs success.solid is 5.3:1 in light+comfortable+more+full, light+comfortable+more+reduced, light+compact+more+full, light+compact+more+reduced, dark+comfortable+more+full, dark+comfortable+more+reduced, dark+compact+more+full and dark+compact+more+reduced modes (< 7:1 wcag21-aaa, contrast: more)
↳ success.on-solid is already the better of white and near-black, so only a darker (light scheme) or lighter (dark scheme) success.solid reaches it: author success.solid for contrast: more.
-
warning TST2101
danger.on-solid vs danger.solid is 5.3:1 in light+comfortable+more+full, light+comfortable+more+reduced, light+compact+more+full, light+compact+more+reduced, dark+comfortable+more+full, dark+comfortable+more+reduced, dark+compact+more+full and dark+compact+more+reduced modes (< 7:1 wcag21-aaa, contrast: more)
↳ danger.on-solid is already the better of white and near-black, so only a darker (light scheme) or lighter (dark scheme) danger.solid reaches it: author danger.solid for contrast: more.
-
warning TST2101
info.on-solid vs info.solid is 4.9:1 in light+comfortable+more+full, light+comfortable+more+reduced, light+compact+more+full, light+compact+more+reduced, dark+comfortable+more+full, dark+comfortable+more+reduced, dark+compact+more+full and dark+compact+more+reduced modes (< 7:1 wcag21-aaa, contrast: more)
↳ info.on-solid is already the better of white and near-black, so only a darker (light scheme) or lighter (dark scheme) info.solid reaches it: author info.solid for contrast: more.
-
warning TST2101
neutral.on-solid vs neutral.solid is 4.8:1 in light+comfortable+more+full, light+comfortable+more+reduced, light+compact+more+full, light+compact+more+reduced, dark+comfortable+more+full, dark+comfortable+more+reduced, dark+compact+more+full and dark+compact+more+reduced modes (< 7:1 wcag21-aaa, contrast: more)
↳ neutral.on-solid is already the better of white and near-black, so only a darker (light scheme) or lighter (dark scheme) neutral.solid reaches it: author neutral.solid for contrast: more.
Info · 2
-
info TST1204
tokens/semantic.tokens.json:6:9semantic.color.primary.solid has no authored value for color-scheme=dark — the light-mode value carries over unchanged, and so does its whole derived grid
↳ Author semantic.color.primary.solid for color-scheme=dark if this role should differ in that mode. This is default behavior — nothing is broken.
-
info TST1114
4 option tokens are never referenced: option.color.blue.500, option.color.blue.700, option.color.gray.100, …
↳ Alias them from a semantic or component token, or delete them. Nothing reads an option token directly.
Suppressed 0
Warnings and infos silenced by check.suppress in the config, each with the reason its entry gives.
None.
Rows
One row per target variable. Open a variable for the command that traces it back to what was authored.
| Variable | Class | Provenance | Slot | Note |
|---|---|---|---|---|
| native | not given | semantic.color.primary.solid | |
| derived | not given | semantic.color.primary.on-tint | |
| derived | not given | semantic.color.primary.tint | |
| derived | not given | semantic.color.primary.outline | promoted from a private mix to a first-class grid cell (F10) |
| derived | not given | semantic.color.secondary.solid | |
| derived | not given | semantic.color.secondary.on-tint | |
| derived | not given | semantic.color.secondary.tint | |
| derived | not given | semantic.color.secondary.outline | promoted from a private mix to a first-class grid cell (F10) |
| derived | not given | semantic.color.success.solid | |
| derived | not given | semantic.color.success.on-tint | |
| derived | not given | semantic.color.success.tint | |
| derived | not given | semantic.color.success.outline | promoted from a private mix to a first-class grid cell (F10) |
| approximated | not given | semantic.color.info.solid | sRGB gamut clamp during oklch → hex |
| approximated | not given | semantic.color.info.on-tint | sRGB gamut clamp during oklch → hex |
| derived | not given | semantic.color.info.tint | |
| derived | not given | semantic.color.info.outline | promoted from a private mix to a first-class grid cell (F10) |
| derived | not given | semantic.color.warning.solid | |
| approximated | not given | semantic.color.warning.on-tint | sRGB gamut clamp during oklch → hex |
| derived | not given | semantic.color.warning.tint | |
| derived | not given | semantic.color.warning.outline | promoted from a private mix to a first-class grid cell (F10) |
| derived | not given | semantic.color.danger.solid | |
| derived | not given | semantic.color.danger.on-tint | |
| derived | not given | semantic.color.danger.tint | |
| derived | not given | semantic.color.danger.outline | promoted from a private mix to a first-class grid cell (F10) |
| derived | not given | semantic.color.neutral.tint | exporter convention: $light/$dark map from the neutral role (F12) |
| derived | not given | semantic.color.neutral.text-strong | exporter convention (F12) |
| native | not given | semantic.color.elevation.0.surface | |
| native | not given | semantic.color.text.base | |
| derived | not given | semantic.color.neutral.text-strong | |
| native | not given | semantic.color.text.muted | |
| derived | not given | semantic.color.neutral.tint | |
| native | not given | semantic.color.elevation.1.surface | |
| native | not given | semantic.color.border.base | |
| native | not given | semantic.color.primary.solid | exporter convention: link ← primary.solid (matches Bootstrap default) |
| approximated | not given | semantic.color.primary.solid-hover | replaces Bootstrap sRGB shade-color(20%); sRGB gamut clamp during oklch → hex |
| derived | not given | semantic.color.ring | ring ← primary (F3) at Bootstrap conventional alpha .25 |
| dropped | not given | semantic.ring.width | not authored: Bootstrap's own .25rem spread stands — author semantic.ring.width (or border-width.medium, which it defaults from) and it is driven |
(focus ring offset) | dropped | not given | semantic.ring.offset | Bootstrap's ring is a box-shadow spread with no gap between the element and the halo: there is no offset to set |
| derived | not given | semantic.color.scrim | composed from scrim alpha ramp (F2) |
| derived | not given | semantic.color.scrim | composed from scrim alpha ramp (F2) |
| derived | not given | semantic.color.scrim | composed from scrim alpha ramp (F2) |
| unsupported | not given | — | no IR inset-shadow concept; Bootstrap default keptmeaning shadow.inset |
| native | not given | semantic.radius.md | |
| derived | not given | semantic.radius.sm | |
| derived | not given | semantic.radius.lg | |
| derived | not given | semantic.radius.xl | |
| approximated | not given | semantic.radius.xl | exporter convention: xl × 2 — no IR 2xl slot (F8 watch item) |
| approximated | not given | semantic.radius.full | meaning maps exactly (fully rounded); the value is Bootstrap's own 50rem idiom, emitted unconditionally rather than read from the slot |
| native | not given | semantic.font.sans | |
| native | not given | semantic.font.mono | |
| derived | not given | semantic.type.size.md | defaulted modular scale (base 1rem, ratio 1.25) — no authored type tokens |
| derived | not given | semantic.type.leading.normal | defaulted line height (1.5) — no authored leading token |
| derived | not given | semantic.type.size.{4xl…md}reads semantic.type.size.4xl, semantic.type.size.3xl, semantic.type.size.2xl, semantic.type.size.xl, semantic.type.size.lg, semantic.type.size.md | defaulted modular scale (base 1rem, ratio 1.25) — no authored type tokens |
| unsupported | not given | — | the IR does have this concept — `semantic.type.role.display.{sm,md,lg}` — but the two ladders disagree: Bootstrap runs 6 rungs from 2.5rem to 5rem, the type-role scale 3 from 1.953rem to 3.052rem, so mapping either onto the other invents rungs or drops them. Same shape as AL2's size-ladder deferral; Bootstrap defaults keptmeaning type.display-ladder |
| native | not given | semantic.space.4 | |
| native | not given | semantic.space.{0,1,2,4,6,12}reads semantic.space.0, semantic.space.1, semantic.space.2, semantic.space.4, semantic.space.6, semantic.space.12 | |
| unsupported | not given | — | `semantic.breakpoint.*` ships (6 rungs), but only `md` (768px) agrees: Bootstrap's sm/lg/xl/xxl are 576/992/1200/1400 against the catalog's 640/1024/1280/1536, and its `xs` is `0` — the unqueried mobile-first base, not a boundary at all, where the catalog's is 480px. Rebinding would move every responsive boundary in the framework: a behavioral change, not a theming one. `$container-max-widths` has no IR counterpart at all. Bootstrap defaults keptmeaning breakpoint.ladder |
motion ($transition-*) | dropped | not given | — | the global $transition-base/-fade stay Bootstrap defaults; per-component transitions are driven — see the component-tier rows |
| derived | not given | semantic.color.primary.on-solid | review pickup (AL1.2 findings): Bootstrap hardcodes $white; $component-active-bg already chains from $primary |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (caret glyph geometry) |
| derived | not given | via driven rootsfollows $caret-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $caret-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $font-size-base | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $gray-600 | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $small-font-size | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the body text color (driven) — the divider is currentColor at $hr-opacity |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from currentColor via $hr-color, so it follows the driven body color per mode |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| unsupported | not given | — | opacity value with no shared meaning: AL2 promoted `semantic.opacity.disabled` (the one both reference targets needed) but this slot is a different concept — a veil strength, a shimmer range, or a glyph-specific alpha. Growth signal only if a second target needs the identical one.meaning opacity.component |
| native | not given | semantic.space.2 | |
| approximated | not given | semantic.type.size.xl | 1.5rem vs the 1.563rem scale rung — nearest meaning |
| derived | not given | semantic.type.role.title.md (fontWeight)reads semantic.type.role.title.md | |
| derived | not given | via driven rootsfollows $font-weight-bold | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| approximated | not given | semantic.space.1 | em-relative in Bootstrap (proportional to local font size); bound to the nearest rem rung — proportional intent is approximated, not preserved. |
| derived | not given | via driven rootsfollows $body-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $yellow-100 | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | semantic.space.2 | |
| native | not given | semantic.space.2 | |
| native | not given | semantic.space.1 | |
| native | not given | semantic.space.1 | |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| derived | not given | via global --bs-* varsfollows $body-emphasis-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| dropped | not given | — | Bootstrap null marker with no non-null meaning to bind |
| derived | not given | via driven rootsfollows $table-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| derived | not given | via driven rootsfollows $table-striped-bg-factor | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $table-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| derived | not given | via driven rootsfollows $table-active-bg-factor | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $table-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| derived | not given | via driven rootsfollows $table-hover-bg-factor | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-color | aliases a global custom property the semantic tier drives |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from currentColor — the driven table text color |
| derived | not given | via global --bs-* varsfollows $body-secondary-color | aliases a global custom property the semantic tier drives |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| derived | not given | via driven rootsfollows $primary, $table-bg-scale, $secondary, $success, $info, $warning, $danger, $light, $dark | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | component.control.padding-y | |
| derived | not given | component.control.padding-x | |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven body font stack |
| derived | not given | via driven rootsfollows $font-size-base | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $line-height-base | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $focus-ring-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $focus-ring-opacity | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $focus-ring-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $focus-ring-blur | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $focus-ring-box-shadow | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | semantic.space.1 | |
| native | not given | semantic.space.2 | |
| derived | not given | via driven rootsfollows $font-size-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | semantic.space.2 | |
| native | not given | semantic.space.4 | |
| derived | not given | via driven rootsfollows $font-size-lg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| native | not given | component.button.padding-y | |
| native | not given | component.button.padding-x | |
| derived | not given | via driven rootsfollows $input-btn-font-family | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-font-size | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-line-height | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| derived | not given | via driven rootsfollows $input-btn-padding-y-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-padding-x-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-font-size-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-padding-y-lg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-padding-x-lg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-font-size-lg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-border-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $font-weight-normal | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $white, $black | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-focus-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-focus-box-shadow | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| approximated | not given | semantic.opacity.disabled | Bootstrap's own default is .65; the promoted catalog slot is the shared disabled-state opacity (AL2) |
| derived | not given | via driven rootsfollows $black | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $link-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $link-hover-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $gray-600 | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $link-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | component.button.radius | |
| derived | not given | via global --bs-* varsfollows $border-radius-sm | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius-lg | aliases a global custom property the semantic tier drives |
| approximated | not given | semantic.duration.fast + easing.standardreads semantic.duration.fast, semantic.easing.standard | timing from the motion scale; property list kept from Bootstrap's default |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| native | not given | semantic.space.1 | |
| derived | not given | via driven rootsfollows $small-font-size | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven body type |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven body type |
| derived | not given | via global --bs-* varsfollows $body-secondary-color | aliases a global custom property the semantic tier drives |
| native | not given | semantic.space.2 | |
| derived | not given | semantic.type.role.label.md (fontSize)reads semantic.type.role.label.md | |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven body type |
| derived | not given | semantic.type.role.label.md (fontWeight)reads semantic.type.role.label.md | |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven body text color |
| derived | not given | via driven rootsfollows $input-btn-padding-y | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-font-family | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-font-size | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $font-weight-base | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-line-height | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-padding-y-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-padding-x-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-font-size-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-padding-y-lg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-padding-x-lg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-font-size-lg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven $input-color (Bootstrap keeps the enabled color when disabled) |
| derived | not given | via global --bs-* varsfollows $body-secondary-bg | aliases a global custom property the semantic tier drives |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $input-btn-border-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $box-shadow-inset | aliases a global custom property the semantic tier drives |
| derived | not given | component.control.radius | |
| derived | not given | via global --bs-* varsfollows $border-radius-sm | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius-lg | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $input-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $component-active-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-focus-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-btn-focus-box-shadow | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-secondary-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $input-border-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-line-height, $input-padding-y | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-line-height, $input-padding-y | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-line-height, $input-padding-y | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-line-height, $input-padding-y, $input-height-border | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-line-height, $input-padding-y-sm, $input-height-border | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-line-height, $input-padding-y-lg, $input-height-border | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| approximated | not given | semantic.duration.fast + easing.standardreads semantic.duration.fast, semantic.easing.standard | timing from the motion scale; property list kept from Bootstrap's default |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal.meaning geometry.component |
| unsupported | not given | — | both reference targets have this concept and model it differently, so no single authored value satisfies both: Bootstrap sizes it in `em` (proportional to local font size, one dimension), PrimeNG in absolute `rem` with independent width/height and an sm/md/lg ladder. The disagreement is the finding (proposal 0004) — same shape as the size ladder AL2 rejected. (checkbox/radio box)meaning geometry.indicator |
| derived | not given | via driven rootsfollows $font-size-base, $line-height-base | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-check-input-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| approximated | not given | semantic.space.1 | .125rem — sub-rung; nearest meaning |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven body text color |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| dropped | not given | — | CSS filter trick — presentation mechanics, not a token meaning. |
| derived | not given | via driven rootsfollows $input-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $border-width, $border-color | aliases a global custom property the semantic tier drives |
| approximated | not given | semantic.radius.sm | em-relative in Bootstrap (proportional to local font size); bound to the nearest rem rung — proportional intent is approximated, not preserved. |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (50% is the radio shape identity, not a radius token) |
| derived | not given | via driven rootsfollows $input-focus-border-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $focus-ring-box-shadow | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $component-active-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $component-active-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-check-input-checked-bg-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| derived | not given | via driven rootsfollows $component-active-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $component-active-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-check-input-indeterminate-bg-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| approximated | not given | semantic.opacity.disabled | Bootstrap's own default is .5; unified onto the shared disabled-state opacity (AL2) |
| derived | not given | via driven rootsfollows $form-check-input-disabled-opacity | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $btn-disabled-opacity | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | semantic.space.4 | |
| derived | not given | via driven rootsfollows $black | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | both reference targets have this concept and model it differently, so no single authored value satisfies both: Bootstrap sizes it in `em` (proportional to local font size, one dimension), PrimeNG in absolute `rem` with independent width/height and an sm/md/lg ladder. The disagreement is the finding (proposal 0004) — same shape as the size ladder AL2 rejected. (switch track)meaning geometry.indicator |
| derived | not given | via driven rootsfollows $form-switch-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| derived | not given | via driven rootsfollows $form-switch-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| approximated | not given | semantic.duration.fast + easing.standardreads semantic.duration.fast, semantic.easing.standard | timing from the motion scale; property list kept from Bootstrap's default |
| derived | not given | via driven rootsfollows $input-focus-border-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| derived | not given | via driven rootsfollows $component-active-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| derived | not given | via driven rootsfollows $input-padding-y | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-font-weight | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-tertiary-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $input-border-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-padding-y | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-font-family | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-font-size | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-select-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-font-weight | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-line-height | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven $form-select-color |
| derived | not given | via driven rootsfollows $input-disabled-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-disabled-border-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-select-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (indicator geometry) |
| native | not given | semantic.color.text.base (opaque)reads semantic.color.text.base | Sass path only (baked into the indicator's SVG data URI); the dark chevron follows the driven $body-color-dark through Bootstrap's own default |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| derived | not given | via driven rootsfollows $form-select-padding-x, $form-select-indicator-padding | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-select-indicator-padding | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-height-inner-half | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-border-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-border-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-border-radius | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $box-shadow-inset | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $input-focus-border-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-focus-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-select-focus-width, $input-btn-focus-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-padding-y-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-padding-x-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-font-size-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-border-radius-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-padding-y-lg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-padding-x-lg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-font-size-lg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-border-radius-lg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-transition | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| native | not given | semantic.space.2 | |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| derived | not given | via global --bs-* varsfollows $body-secondary-bg | aliases a global custom property the semantic tier drives |
| approximated | not given | semantic.radius.full | Bootstrap says 1rem; the intent (pill track) maps to radius.full |
| derived | not given | via global --bs-* varsfollows $box-shadow-inset | aliases a global custom property the semantic tier drives |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal. (thumb size)meaning geometry.component |
| derived | not given | via driven rootsfollows $form-range-thumb-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $component-active-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| approximated | not given | semantic.radius.full | pill/circular thumb intent |
| derived | not given | via driven rootsfollows $black | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $body-bg, $input-focus-box-shadow | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $input-focus-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $component-active-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-secondary-color | aliases a global custom property the semantic tier drives |
| approximated | not given | semantic.duration.fast + easing.standardreads semantic.duration.fast, semantic.easing.standard | timing from the motion scale; property list kept from Bootstrap's default |
| derived | not given | via driven rootsfollows $input-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-tertiary-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-secondary-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $input-height-border | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | semantic.type.leading.tight | |
| derived | not given | via driven rootsfollows $input-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | semantic.space.4 | |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (float-label mechanics: padding split is coupled to the transform math) |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (float-label mechanics) |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (float-label mechanics) |
| unsupported | not given | — | opacity value with no shared meaning: AL2 promoted `semantic.opacity.disabled` (the one both reference targets needed) but this slot is a different concept — a veil strength, a shimmer range, or a glyph-specific alpha. Growth signal only if a second target needs the identical one.meaning opacity.component |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| derived | not given | via driven rootsfollows $gray-600 | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| approximated | not given | semantic.duration.fast + easing.standardreads semantic.duration.fast, semantic.easing.standard | timing from the motion scale; property list kept from Bootstrap's default |
| derived | not given | via driven rootsfollows $form-text-margin-top | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-text-font-size | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-text-font-style | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $success | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $danger | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-feedback-valid-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| derived | not given | via driven rootsfollows $form-feedback-invalid-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| derived | not given | via driven rootsfollows $form-feedback-valid-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-feedback-valid-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-feedback-invalid-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-feedback-invalid-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $form-feedback-icon-valid, $input-btn-focus-blur, $input-focus-width, $input-btn-focus-color-opacity, $form-feedback-icon-invalid | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | semantic.space.2 | |
| native | not given | semantic.space.4 | |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven body type |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven body type |
| derived | not given | via global --bs-* varsfollows $link-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $link-hover-color | aliases a global custom property the semantic tier drives |
| approximated | not given | semantic.duration.fast + easing.standardreads semantic.duration.fast, semantic.easing.standard | timing from the motion scale; property list kept from Bootstrap's default |
| derived | not given | via global --bs-* varsfollows $body-secondary-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $focus-ring-box-shadow | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $border-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $nav-tabs-border-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-emphasis-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $nav-tabs-link-active-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $border-radius | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $component-active-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $component-active-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | semantic.space.4 | |
| approximated | not given | semantic.border-width.medium | medium rung (2px) ≡ Bootstrap’s .125rem at a 16px root; unit semantics differ (px vs rem-relative) |
| derived | not given | via global --bs-* varsfollows $body-emphasis-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| native | not given | semantic.space.2 | |
| derived | not given | via driven rootsfollows $font-size-lg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $font-size-base, $line-height-base, $nav-link-padding-y | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $navbar-brand-font-size, $line-height-base | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $nav-link-height, $navbar-brand-height | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | semantic.space.4 | |
| native | not given | semantic.space.1 | |
| native | not given | semantic.space.3 | |
| derived | not given | via driven rootsfollows $font-size-lg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $btn-border-radius | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $btn-focus-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| approximated | not given | semantic.duration.fast + easing.standardreads semantic.duration.fast, semantic.easing.standard | timing from the motion scale; property list kept from Bootstrap's default |
| derived | not given | via global --bs-* varsfollows $body-emphasis-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-emphasis-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-emphasis-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-emphasis-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $body-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| derived | not given | via global --bs-* varsfollows $body-emphasis-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $navbar-light-active-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $navbar-light-active-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $white | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $white | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $white | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $white | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $navbar-dark-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| derived | not given | via driven rootsfollows $white | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $navbar-dark-active-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $navbar-dark-active-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal.meaning geometry.component |
| native | not given | semantic.space.0 | |
| native | not given | semantic.space.2 | |
| approximated | not given | semantic.space.1 | .125rem — sub-rung; nearest meaning |
| derived | not given | via driven rootsfollows $font-size-base | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-color-translucent | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $dropdown-border-radius, $dropdown-border-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $dropdown-border-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $box-shadow | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $dropdown-link-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-tertiary-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $component-active-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $component-active-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-tertiary-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $gray-600 | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $dropdown-item-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $dropdown-padding-y | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $dropdown-header-padding-y, $dropdown-header-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $gray-300 | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $gray-800 | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $dropdown-border-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $dropdown-divider-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| derived | not given | via driven rootsfollows $dropdown-dark-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $white | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $white | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $dropdown-link-active-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $dropdown-link-active-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $gray-500 | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $gray-500 | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| approximated | not given | semantic.space.2 | .375rem — between rungs; matches the button/field padding intent |
| native | not given | semantic.space.3 | |
| native | not given | semantic.space.1 | |
| native | not given | semantic.space.2 | |
| native | not given | semantic.space.3 | |
| native | not given | semantic.space.6 | |
| derived | not given | via driven rootsfollows $font-size-base | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $link-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $pagination-border-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $border-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $link-hover-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-secondary-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $focus-ring-box-shadow | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (focus handled by focus-ring, driven semantically) |
| derived | not given | via global --bs-* varsfollows $link-hover-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-tertiary-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $component-active-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $component-active-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $component-active-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-secondary-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-secondary-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-color | aliases a global custom property the semantic tier drives |
| approximated | not given | semantic.duration.fast + easing.standardreads semantic.duration.fast, semantic.easing.standard | timing from the motion scale; property list kept from Bootstrap's default |
| derived | not given | via global --bs-* varsfollows $border-radius-sm | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius-lg | aliases a global custom property the semantic tier drives |
| unsupported | not given | — | opacity value with no shared meaning: AL2 promoted `semantic.opacity.disabled` (the one both reference targets needed) but this slot is a different concept — a veil strength, a shimmer range, or a glyph-specific alpha. Growth signal only if a second target needs the identical one.meaning opacity.component |
| unsupported | not given | — | opacity value with no shared meaning: AL2 promoted `semantic.opacity.disabled` (the one both reference targets needed) but this slot is a different concept — a veil strength, a shimmer range, or a glyph-specific alpha. Growth signal only if a second target needs the identical one.meaning opacity.component |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven card/body text color |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven card/body text color |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-color-translucent | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius | aliases a global custom property the semantic tier drives |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| derived | not given | via driven rootsfollows $card-border-radius, $card-border-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $card-spacer-y | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $card-spacer-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven card/body text color |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven body text color |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $grid-gutter-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | semantic.space.4 | |
| native | not given | semantic.space.5 | |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $accordion-border-radius, $accordion-border-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $accordion-padding-y | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $accordion-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $accordion-padding-y | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $accordion-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $accordion-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $btn-transition | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $primary-bg-subtle | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $primary-text-emphasis | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $input-focus-border-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $btn-focus-box-shadow | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | component icon size. The strongest open catalog-growth signal, and still one-sided: PrimeNG models this systematically (50 `icon.size` slots across 31 families, with a shared value set), Bootstrap has three ad-hoc ones with no common root. Promoting today would export one target’s architecture into the catalog — revisit when a third target arrives with a systematic icon-size concept (proposal 0004). (chevron)meaning icon.size |
| derived | not given | via driven rootsfollows $body-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $primary-text-emphasis | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| approximated | not given | semantic.duration.normal + easing.standardreads semantic.duration.normal, semantic.easing.standard | timing from the motion scale; property list kept from Bootstrap's default |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| derived | not given | via driven rootsfollows $font-size-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | component.tooltip.max-width | |
| derived | not given | semantic.color.inverse.text | nothing emitted: Bootstrap's own var(--bs-body-bg (elevation.0.surface)) already carries this slot's default in each mode |
| derived | not given | semantic.color.inverse.surface | nothing emitted: Bootstrap's own var(--bs-emphasis-color (neutral.text-strong)) already carries this slot's default in each mode |
| derived | not given | via global --bs-* varsfollows $border-radius | aliases a global custom property the semantic tier drives |
| unsupported | not given | — | opacity value with no shared meaning: AL2 promoted `semantic.opacity.disabled` (the one both reference targets needed) but this slot is a different concept — a veil strength, a shimmer range, or a glyph-specific alpha. Growth signal only if a second target needs the identical one.meaning opacity.component |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (arrow geometry) |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (arrow geometry) |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven --bs-tooltip-bg (Bootstrap points the arrow at the bubble color) |
| derived | not given | via driven rootsfollows $tooltip-padding-y | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $tooltip-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $tooltip-font-size | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven body line height |
| derived | not given | via driven rootsfollows $tooltip-opacity | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $tooltip-border-radius | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $font-size-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal.meaning geometry.component |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-color-translucent | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius-lg | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $popover-border-radius, $popover-border-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $box-shadow | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $font-size-base | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-secondary-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $headings-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | semantic.space.2 | |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (arrow geometry) |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (arrow geometry) |
| derived | not given | via driven rootsfollows $popover-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $border-color-translucent | aliases a global custom property the semantic tier drives |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal.meaning geometry.component |
| native | not given | semantic.space.3 | |
| native | not given | semantic.space.2 | |
| approximated | not given | semantic.type.size.sm | .875rem vs the 0.8rem scale rung — nearest meaning |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven body text color |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-color-translucent | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $box-shadow | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $container-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-secondary-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $toast-border-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| approximated | not given | semantic.type.size.xs | em-relative in Bootstrap (proportional to local font size); bound to the nearest rem rung — proportional intent is approximated, not preserved. |
| derived | not given | via driven rootsfollows $font-weight-bold | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $white | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| approximated | not given | semantic.space.1 | em-relative in Bootstrap (proportional to local font size); bound to the nearest rem rung — proportional intent is approximated, not preserved. |
| approximated | not given | semantic.space.2 | em-relative in Bootstrap (proportional to local font size); bound to the nearest rem rung — proportional intent is approximated, not preserved. |
| derived | not given | via global --bs-* varsfollows $border-radius | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | semantic.space.2 | |
| native | not given | semantic.space.2 | |
| approximated | not given | semantic.space.6 | 1.75rem — between rungs; nearest meaning |
| derived | not given | via driven rootsfollows $line-height-base | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-color-translucent | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius-lg | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $modal-content-border-radius, $modal-content-border-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $box-shadow-sm | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $box-shadow | aliases a global custom property the semantic tier drives |
| derived | not given | semantic.color.scrim (opaque)reads semantic.color.scrim | |
| derived | not given | semantic.color.scrim (alpha)reads semantic.color.scrim | |
| derived | not given | via global --bs-* varsfollows $border-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $modal-content-border-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $modal-inner-padding | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $modal-inner-padding | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $modal-header-padding-y, $modal-header-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| derived | not given | via driven rootsfollows $modal-header-border-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $modal-header-border-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal. (dialog width steps)meaning geometry.component |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal. (dialog width steps)meaning geometry.component |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal. (dialog width steps)meaning geometry.component |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal. (dialog width steps)meaning geometry.component |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| approximated | not given | semantic.duration.normal + easing.enterreads semantic.duration.normal, semantic.easing.enter | timing from the motion scale; property list kept from Bootstrap's default |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | semantic.space.4 | |
| derived | not given | via global --bs-* varsfollows $border-radius | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $font-weight-bold | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $alert-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| native | not given | semantic.space.4 | |
| derived | not given | via driven rootsfollows $font-size-base | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-secondary-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $box-shadow-inset | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $white | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $primary | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (stripe animation mechanics) |
| approximated | not given | semantic.duration.slower + easing.standardreads semantic.duration.slower, semantic.easing.standard | timing from the motion scale; property list kept from Bootstrap's default |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $spacer | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| dropped | not given | — | Bootstrap state/subtle-color derivation knob (shade/tint/scale %). Transtyle derives those result colors directly (grid -hover/-active cells, tint/outline prominences); the percentage itself has no token meaning — the derived colors reach the target via the CSS-variable path (AL1.4). |
| derived | not given | via global --bs-* varsfollows $body-tertiary-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $component-active-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $component-active-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $list-group-active-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-secondary-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $list-group-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-secondary-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-emphasis-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-secondary-bg | aliases a global custom property the semantic tier drives |
| native | not given | semantic.space.1 | |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-width | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $border-radius | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $box-shadow-sm | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $small-font-size | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-secondary-color | aliases a global custom property the semantic tier drives |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven body type |
| native | not given | semantic.space.0 | |
| native | not given | semantic.space.0 | |
| native | not given | semantic.space.2 | |
| native | not given | semantic.space.4 | |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| derived | not given | via global --bs-* varsfollows $body-secondary-color | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-secondary-color | aliases a global custom property the semantic tier drives |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (divider glyph) |
| derived | not given | via driven rootsfollows $breadcrumb-divider | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| derived | not given | via driven rootsfollows $white | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| unsupported | not given | — | opacity value with no shared meaning: AL2 promoted `semantic.opacity.disabled` (the one both reference targets needed) but this slot is a different concept — a veil strength, a shimmer range, or a glyph-specific alpha. Growth signal only if a second target needs the identical one.meaning opacity.component |
| unsupported | not given | — | opacity value with no shared meaning: AL2 promoted `semantic.opacity.disabled` (the one both reference targets needed) but this slot is a different concept — a veil strength, a shimmer range, or a glyph-specific alpha. Growth signal only if a second target needs the identical one.meaning opacity.component |
| approximated | not given | semantic.duration.fast + easing.standardreads semantic.duration.fast, semantic.easing.standard | timing from the motion scale; property list kept from Bootstrap's default |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| unsupported | not given | — | both reference targets have this concept and model it differently, so no single authored value satisfies both: Bootstrap sizes it in `em` (proportional to local font size, one dimension), PrimeNG in absolute `rem` with independent width/height and an sm/md/lg ladder. The disagreement is the finding (proposal 0004) — same shape as the size ladder AL2 rejected. (PrimeNG has indicator width+height too, but 28x8 rounded vs Bootstrap 30x3 hairline — one value would give two differently-wrong carousels)meaning geometry.indicator |
| unsupported | not given | — | both reference targets have this concept and model it differently, so no single authored value satisfies both: Bootstrap sizes it in `em` (proportional to local font size, one dimension), PrimeNG in absolute `rem` with independent width/height and an sm/md/lg ladder. The disagreement is the finding (proposal 0004) — same shape as the size ladder AL2 rejected. (indicator, height axis)meaning geometry.indicator |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. (touch target mechanics) |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal. (gap between indicators — PrimeNG has no counterpart at all)meaning geometry.component |
| unsupported | not given | — | opacity value with no shared meaning: AL2 promoted `semantic.opacity.disabled` (the one both reference targets needed) but this slot is a different concept — a veil strength, a shimmer range, or a glyph-specific alpha. Growth signal only if a second target needs the identical one.meaning opacity.component |
| derived | not given | via driven rootsfollows $white | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | opacity value with no shared meaning: AL2 promoted `semantic.opacity.disabled` (the one both reference targets needed) but this slot is a different concept — a veil strength, a shimmer range, or a glyph-specific alpha. Growth signal only if a second target needs the identical one.meaning opacity.component |
| approximated | not given | semantic.duration.slower + easing.standardreads semantic.duration.slower, semantic.easing.standard | timing from the motion scale; property list kept from Bootstrap's default |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| derived | not given | via driven rootsfollows $white | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| native | not given | semantic.space.5 | |
| native | not given | semantic.space.5 | |
| unsupported | not given | — | component icon size. The strongest open catalog-growth signal, and still one-sided: PrimeNG models this systematically (50 `icon.size` slots across 31 families, with a shared value set), Bootstrap has three ad-hoc ones with no common root. Promoting today would export one target’s architecture into the catalog — revisit when a third target arrives with a systematic icon-size concept (proposal 0004). (prev/next control)meaning icon.size |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| derived | not given | semantic.duration.slower | |
| derived | not given | via driven rootsfollows $carousel-transition-duration | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $black | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $black | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | CSS filter trick — presentation mechanics, not a token meaning. |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal.meaning geometry.component |
| derived | not given | via driven rootsfollows $spinner-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| dropped | not given | — | structural/behavioral option (layout, cursor, transform, ordering, animation mechanics), not a theme value. |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal. (em-relative ring thickness)meaning geometry.component |
| approximated | not given | semantic.duration.slower | .75s rotation period vs 600ms — nearest rung |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal.meaning geometry.component |
| derived | not given | via driven rootsfollows $spinner-width-sm | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal. (em-relative ring thickness)meaning geometry.component |
| unsupported | not given | — | component icon size. The strongest open catalog-growth signal, and still one-sided: PrimeNG models this systematically (50 `icon.size` slots across 31 families, with a shared value set), Bootstrap has three ad-hoc ones with no common root. Promoting today would export one target’s architecture into the catalog — revisit when a third target arrives with a systematic icon-size concept (proposal 0004). (close glyph)meaning icon.size |
| derived | not given | via driven rootsfollows $btn-close-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal. em-relative in Bootstrap (proportional to local font size); bound to the nearest rem rung — proportional intent is approximated, not preserved.meaning geometry.component |
| derived | not given | via driven rootsfollows $btn-close-padding-x | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| approximated | not given | semantic.color.text.base (opaque)reads semantic.color.text.base | Sass path only (baked into the glyph's SVG data URI); in dark mode Bootstrap inverts the light glyph with $btn-close-filter-dark instead of reading a dark colour |
| unsupported | not given | — | embedded SVG asset (icon/glyph) — the IR has no asset/icon vocabulary yet. AL2 growth signal: component icon slots.meaning icon.asset |
| derived | not given | via driven rootsfollows $focus-ring-box-shadow | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | opacity value with no shared meaning: AL2 promoted `semantic.opacity.disabled` (the one both reference targets needed) but this slot is a different concept — a veil strength, a shimmer range, or a glyph-specific alpha. Growth signal only if a second target needs the identical one.meaning opacity.component |
| unsupported | not given | — | opacity value with no shared meaning: AL2 promoted `semantic.opacity.disabled` (the one both reference targets needed) but this slot is a different concept — a veil strength, a shimmer range, or a glyph-specific alpha. Growth signal only if a second target needs the identical one.meaning opacity.component |
| unsupported | not given | — | opacity value with no shared meaning: AL2 promoted `semantic.opacity.disabled` (the one both reference targets needed) but this slot is a different concept — a veil strength, a shimmer range, or a glyph-specific alpha. Growth signal only if a second target needs the identical one.meaning opacity.component |
| unsupported | not given | — | the same concept as `semantic.opacity.disabled`, but not bindable to it: Bootstrap composes this against the glyph's own resting alpha ($btn-close-opacity: .5), so writing the catalog value (0.6) here would make the disabled close button MORE visible than the enabled one. Needs a compositional recipe (catalog factor x the target's resting alpha) the cross-walk has no form for yet — a real AL2-style growth signal, unlike the other -opacity rows in this family.meaning opacity.compositional |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| dropped | not given | — | CSS filter trick — presentation mechanics, not a token meaning. |
| derived | not given | via driven rootsfollows $modal-inner-padding | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $modal-inner-padding | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal. (panel width)meaning geometry.component |
| unsupported | not given | — | bespoke component geometry with no shared meaning — measured against the second reference target (proposal 0004), this is a slot PrimeNG either hard-codes or models differently, not a gap in the IR. Not a growth signal. (panel height)meaning geometry.component |
| approximated | not given | semantic.duration.normal | .3s vs 250ms — nearest rung |
| derived | not given | via driven rootsfollows $modal-content-border-color | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $modal-content-border-width | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $modal-title-line-height | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| derived | not given | via driven rootsfollows $modal-content-box-shadow-xs | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $modal-backdrop-bg | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $modal-backdrop-opacity | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $small-font-size | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via driven rootsfollows $pink | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| approximated | not given | semantic.space.1 | .1875rem — sub-rung; nearest meaning |
| approximated | not given | semantic.space.1 | .375rem — between rungs; nearest meaning |
| derived | not given | via driven rootsfollows $code-font-size | follows Bootstrap's own !default chain from roots this exporter drives (refs recorded in surface-inventory.json) |
| derived | not given | via global --bs-* varsfollows $body-bg | aliases a global custom property the semantic tier drives |
| derived | not given | via global --bs-* varsfollows $body-color | aliases a global custom property the semantic tier drives |
| dropped | not given | — | Bootstrap cascade no-op marker (null/inherit/transparent/currentcolor) left untouched — overriding would change inheritance behavior, not theme values |
| derived | not given | via the cascade | left at Bootstrap's cascade no-op so the value reaches it by inheritance from the driven body text color |
--bs-* component structure (37 slots, CSS path) | derived | not given | see the per-$variable rows | selector-scoped overrides of the values Bootstrap baked into component rules — reaches part of what F13 said the token tier alone could not |
--bs-btn-* variant state colors (CSS path) | derived | not given | semantic.color.<role>.{solid,solid-hover,solid-active,on-solid}reads semantic.color.primary.solid, semantic.color.primary.solid-hover, semantic.color.primary.solid-active, semantic.color.primary.on-solid, semantic.color.secondary.solid, semantic.color.secondary.solid-hover, semantic.color.secondary.solid-active, semantic.color.secondary.on-solid, semantic.color.success.solid, semantic.color.success.solid-hover, semantic.color.success.solid-active, semantic.color.success.on-solid, semantic.color.info.solid, semantic.color.info.solid-hover, semantic.color.info.solid-active, semantic.color.info.on-solid, semantic.color.warning.solid, semantic.color.warning.solid-hover, semantic.color.warning.solid-active, semantic.color.warning.on-solid, semantic.color.danger.solid, semantic.color.danger.solid-hover, semantic.color.danger.solid-active, semantic.color.danger.on-solid | grid state cells replace Bootstrap's shade/tint derivation for stock-CSS users; .btn-light/.btn-dark keep defaults (pseudo-roles have no grid) |
(mode:density) | dropped | not given | — | density mode dimension not expressed by this target |
(mode:contrast) | approximated | not given | — | the CSS path (bootstrap-theme.css) carries the contrast blocks; the Sass path compiles the standard-contrast values, so load bootstrap-theme.css after a Sass build to get them |
(mode:motion) | native | not given | semantic.duration.* | Bootstrap's own $enable-reduced-motion turns every transition off under prefers-reduced-motion: reduce, which is what this design system's reduced durations (all 0ms) ask for |