j3w1/theme implementation brief — fieldset theme: j3w1-theme 1.1.0 profile: default sourceDigest: sha256-C+iD5Q7l0XPU/boMj003wPbPLBOq3C3ZM7s4OfzJ6mc= pin: https://raw.githubusercontent.com/j3w1/theme/v1.1.0/exports/components/fieldset.json spec: spec/components/fieldset.md site: https://j3w1.github.io/theme/reference/#c-fieldset maturity: stable priority: R1 Summary: The native fieldset that groups related fields under a legend inside a 1px divider border; disabling it disables everything inside. Use the pinned approved default profile. Pending roles in that profile use-and-report their decision IDs; this does not approve them. Proposed profiles are preview-only and blocked for delivery. Heritage profiles are historical-only. Deprecated or heritage roles are blocked for new approved-profile mappings. Consume roles within their documented scope, never primitives. Release numbering does not approve profiles or tokens. Tokens (resolved): root.border #2b0e0d ({color.border.divider}) use-and-report (D-008) root.bg #100c0c ({color.surface.default}) use legend.text #ffa2a7 ({color.text.bright}) use body.text #e99499 ({color.text.default}) use legend.text-disabled #8a5559 ({color.text.disabled}) use field.bg #000000 ({color.surface.input}) use field.border #a3676b ({color.border.control}) use-and-report (D-007) field.bg-disabled #160b0b ({color.interaction.disabled.bg}) use field.border-disabled #7d1310 ({color.border.disabled}) use field.text-disabled #8a5559 ({color.text.disabled}) use help.text #bd787d ({color.text.muted}) use States: default, disabled default: 1px {color.border.divider} border; legend {color.text.bright}; fields as their own components [the border and the legend] disabled: legend and labels {color.text.disabled}; every control inside takes its own disabled treatment ({color.interaction.disabled.bg}, {color.border.disabled}); the border unchanged [`disabled` on the fieldset; cursor: not-allowed on the controls] Keyboard: Tab / Shift+Tab: Moves through the fields inside in document order; the legend is not a tab stop. ARIA: native
with (https://www.w3.org/WAI/ARIA/apg/practices/forms/) Responsive: Fills its container; fields inside stack at every width; the legend wraps rather than truncating at 320px. RTL keeps the legend at the inline start of the top border. Portability: native
and ; disabled on the fieldset disables every descendant control and is the only way a group is disabled; never a div with role="group" when the group holds form controls. native: GTK4 Frame with a label child; sensitivity propagates. native: Qt QGroupBox; the title styled as the legend, checkable off. native: Terminal UI: a box-drawing border with the legend in the top edge. Rules: use only these values; no invented colours; radius 0; borders 1px (2px emphasis); focus is a 1px dashed ring, selection is a fill; do not restyle unrelated elements; report deviations per agents/consume.md; record theme.lock.json at the pinned revision.