Skip to content

Releases: Samyssmile/construct

v2.0.4 — Datum grammar in components

Choose a tag to compare

@Samyssmile Samyssmile released this 29 Jun 00:28

Added

  • Datum grammar — the signature, now spoken by components. The orange "datum"
    (Construct's reference line for focus / active / current state) was promoted from focus
    rings and bespoke docs CSS into reusable, opt-in component vocabulary in a new
    components/datum.css:
    • .ct-eyebrow — a mono kicker with a leading datum tick, for labelling sections.
    • .ct-datum-scale — a measured reference line (a ruler with minor/major ticks and an
      orange "origin" segment) for section headers.
    • .ct-specs / .ct-spec (+ .ct-spec--origin) — an engineering datasheet for key figures.
    • Card modifiers in card.css: .ct-card--datum (a corner registration mark) and an
      active state (.ct-card--active / [data-state="active"]) that carries the same orange
      leading edge as .ct-list__item and .ct-sidebar, so every active surface reads as one system.

Accessibility

  • Eyebrow and spec labels use --color-text-secondary (≥7:1 on every surface across light,
    dark and high-contrast); orange is reserved for non-text edges/ticks (--color-brand-accent,
    ≥3:1 as a graphic object). Default cards and existing aria-selected card behaviour are unchanged.

Also in this release (post-2.0.4 docs): branded README, community health files
(CODE_OF_CONDUCT, CONTRIBUTING, SECURITY, issue/PR templates), brand assets, and a
datum-grammar demo page.

v2.0.1

Choose a tag to compare

@Samyssmile Samyssmile released this 28 Jun 23:28

What's Changed

  • chore: design-sync to claude.ai/design + release 1.4.0 by @Samyssmile in #87
  • feat(design)!: new visual identity — Manrope + ink/safety-orange "datum" (v2.0.0) by @Samyssmile in #88

Full Changelog: v1.2.0...v2.0.1

v1.2.0 — Tree component

Choose a tag to compare

@Samyssmile Samyssmile released this 07 May 16:39

Added

  • Tree component (ct-tree) implementing the WAI-ARIA Tree View pattern: n-level nesting, roving tabindex on the <li role="treeitem"> itself, full keyboard navigation (↑/↓/→/←/Home/End/*/type-ahead), single & multi selection, async loading state via aria-busy, and an orphan-node modifier (.ct-tree__node--orphan) for hierarchies with missing parents. Modifiers: --guides, --dense, --bordered. Forced-colors and prefers-reduced-motion supported. (#86)

Accessibility highlights

  • Focus target is the <li role="treeitem"> — never the inner row <div> — so screen readers announce role, level, expanded and selected state on focus.
  • Controller sets/clears aria-multiselectable="true" when invoked with selection: 'multi'.
  • aria-disabled="true" nodes are skipped for activation, selection and toggle while staying reachable via arrow keys.
  • Action buttons in __actions use tabindex="-1" to preserve the single Tab stop of the tree.

Custom events

ct-tree:expand, :collapse, :select, :activate — bubbling CustomEvents on the focused treeitem so consumers can wire up application logic without re-implementing the keyboard model.

Out of scope (tracked separately)

Drag & drop reparenting, virtual scrolling, and tristate parent-derived checkboxes.


Full changelog: v1.1.6...v1.2.0

v1.1.6

Choose a tag to compare

@Samyssmile Samyssmile released this 28 Jun 23:28

What's Changed

Full Changelog: v1.1.2...v1.1.6

v1.1.2

Choose a tag to compare

@Samyssmile Samyssmile released this 28 Jun 23:28

What's Changed

  • fix(select): replace CSS-gradient chevron with SVG mask-image by @Samyssmile in #23
  • fix(table): replace CSS-triangle sort indicator with SVG mask-image by @Samyssmile in #22
  • feat: organize story sidebar with hierarchical grouping by @Samyssmile in #7
  • Add claude GitHub actions 1773334415174 by @Samyssmile in #28
  • fix(switch): add focus ring, size variants, use token for border-radius by @Samyssmile in #27
  • fix(tooltip): add max-width, allow text wrapping, and DRY up positioning by @Samyssmile in #26
  • fix(checkbox/radio): logical props, focus ring, indeterminate state by @Samyssmile in #25
  • fix(toast): use logical border property and add reduced-motion support by @Samyssmile in #24
  • fix: resolve #4 – Enable Controls addon for interactive component exploration by @github-actions[bot] in #29
  • fix: resolve #10 – docs: add MDX pages for tokens, theming, and getting started by @github-actions[bot] in #31
  • fix: resolve #11 – fix(datepicker): critical accessibility gaps — missing keyboard nav, wrong ARIA, no focus trap by @github-actions[bot] in #32
  • fix: resolve #12 – test: add missing play tests to CardAndTable, Icon, and DataTableSimple stories by @github-actions[bot] in #33
  • fix: resolve #9 – docs: add component descriptions to all story meta by @github-actions[bot] in #30
  • fix: resolve #15 – fix(card): missing base class definition, no focus state on interactive variant by @github-actions[bot] in #35
  • fix: resolve #14 – fix(dropdown): wrong ARIA role, no keyboard support, no focus management by @github-actions[bot] in #34
  • fix: resolve #17 – fix(sidebar): RTL broken on overlay mode, fragile sibling selector, hardcoded width by @github-actions[bot] in #36
  • docs: add comprehensive argTypes to 6 stories by @Samyssmile in #37
  • docs: resolve #2 – add MDX documentation pages by @Samyssmile in #38
  • docs: add Design Principles and Component Patterns MDX pages, fix MDX… by @Samyssmile in #41
  • fix(a11y): add hover states to checkbox, radio, and switch by @Samyssmile in #82
  • fix(a11y): use error color for focus ring on invalid form controls by @Samyssmile in #83

New Contributors

  • @github-actions[bot] made their first contribution in #29

Full Changelog: https://github.com/Samyssmile/construct/commits/v1.1.2