
Design Systems — 2026 Week 7
This week's design systems category is dominated by the AI-in-UX conversation. The featured article from Smashing Magazine lays out six concrete UX patterns —… Compiled for immediate developer deployment.


Using Notion With Style Dictionary for Design Tokens Management
color.brand.primary), Value, Type, Category, Description, and a Status field (Draft / Review / Approved / Deprecated) that gates which tokens reach the build. A fetch-tokens.js script handles pagination from the Notion API, converts flat results into a nested JSON tree Style Dictionary can consume, and stores Notion metadata in the $extensions field for audit trails and back-linking. A companion push-tokens.js script enables bidirectional sync: developers can edit the JSON locally and push diffs back to Notion, with the live Notion database always acting as the single source of truth. The package.json scripts surface sync, push, build, sync:build, and watch commands.
How We Built Our shadcn Component Registry
dashboard, status-page, web) created a shared-component problem they solved with a public shadcn registry — without bundlers or webpack aliases. Three approaches failed: using a @/ alias (breaks when imported by apps), bundling with tsup (adds rebuild latency), and webpack alias remapping (creates @/ conflicts). The winning approach maps internal imports to @openstatus/ui/* via TypeScript path aliases, then transforms them to @/* at publish time with a regex in transform-imports.mjs. This lets npx shadcn add and npx shadcn diff work natively inside packages/ui, while a three-step registry:build script (transform → shadcn build → copy to apps/web/public/r/) publishes components that any user can install via npx shadcn@latest add https://openstatus.dev/r/status-banner.json.
Does your navigation need an ARIA menu? Probably not. - Pope Tech Resources
menu, menubar, and menuitem roles are designed to replicate OS application menus — think File/Edit/View dropdowns in Google Docs — not standard site navigation. Applying these roles to a nav element incorrectly signals to screen readers that arrow-key navigation is required, but without the 100+ lines of JavaScript needed to implement that behavior, users get broken keyboard interactions. A comparison table shows exactly how Tab, Arrow Keys, Home/End, and Escape behave differently between a true ARIA menu widget and a standard <nav> with links. WebAIM data shows roughly 7% of home pages use ARIA menu roles, and over a quarter of those produce detectable accessibility errors in WAVE scans.
Building Digital Trust: An Empathy-Centred UX Framework For Mental Health Apps — Smashing Magazine

10 Senior Designers Show how they Organize their Figma Files

Designing For Agentic AI: Practical UX Patterns For Control, Consent, And Accountability — Smashing Magazine
10 Senior Designers Show how they Organize their Figma Files
Using Notion With Style Dictionary for Design Tokens Management
color.brand.primary), Value, Type, Category, Description, and a Status field (Draft / Review / Approved / Deprecated) that gates which tokens reach the build. A fetch-tokens.js script handles pagination from the Notion API, converts flat results into a nested JSON tree Style Dictionary can consume, and stores Notion metadata in the $extensions field for audit trails and back-linking. A companion push-tokens.js script enables bidirectional sync: developers can edit the JSON locally and push diffs back to Notion, with the live Notion database always acting as the single source of truth. The package.json scripts surface sync, push, build, sync:build, and watch commands.How We Built Our shadcn Component Registry
dashboard, status-page, web) created a shared-component problem they solved with a public shadcn registry — without bundlers or webpack aliases. Three approaches failed: using a @/ alias (breaks when imported by apps), bundling with tsup (adds rebuild latency), and webpack alias remapping (creates @/ conflicts). The winning approach maps internal imports to @openstatus/ui/* via TypeScript path aliases, then transforms them to @/* at publish time with a regex in transform-imports.mjs. This lets npx shadcn add and npx shadcn diff work natively inside packages/ui, while a three-step registry:build script (transform → shadcn build → copy to apps/web/public/r/) publishes components that any user can install via npx shadcn@latest add https://openstatus.dev/r/status-banner.json.Does your navigation need an ARIA menu? Probably not. - Pope Tech Resources
menu, menubar, and menuitem roles are designed to replicate OS application menus — think File/Edit/View dropdowns in Google Docs — not standard site navigation. Applying these roles to a nav element incorrectly signals to screen readers that arrow-key navigation is required, but without the 100+ lines of JavaScript needed to implement that behavior, users get broken keyboard interactions. A comparison table shows exactly how Tab, Arrow Keys, Home/End, and Escape behave differently between a true ARIA menu widget and a standard <nav> with links. WebAIM data shows roughly 7% of home pages use ARIA menu roles, and over a quarter of those produce detectable accessibility errors in WAVE scans.Building Digital Trust: An Empathy-Centred UX Framework For Mental Health Apps — Smashing Magazine
This week's design systems category is dominated by the AI-in-UX conversation. The featured article from Smashing Magazine lays out six concrete UX patterns — Intent Preview, Autonomy Dial, Explainable Rationale, Confidence Signal, Action Audit and Undo, and Escalation Pathway — for designing trustworthy agentic AI interfaces, complete with success metric targets and a phased rollout roadmap. It is the most rigorous framework to date for treating AI agents not as features but as actors that users must be able to oversee and reverse.
Accessibility gets a sharp correction this week: the common practice of applying ARIA menu and menuitem roles to site navigation is exposed as actively harmful, producing broken keyboard interactions in over a quarter of the sites that use it. Mental health app UX gets equal attention, with a three-pillar empathy framework covering onboarding language, low-arousal palettes, and a replacement for punitive streak mechanics.
On the tooling side, a workflow tutorial shows how to wire Notion as a non-technical-friendly front end for Style Dictionary token pipelines, and OpenStatus shares a clever import-transform trick for publishing shadcn components from a monorepo without any bundler overhead. A video roundup of how senior designers at Figma, Slack, and Firefox organize their Figma files closes the week with practical file-hygiene conventions.
- The six agentic UX patterns from Smashing Magazine — especially Action Audit and Undo with a 5% reversion rate cap — offer the clearest published checklist yet for building trustworthy AI-driven product features.
- Applying ARIA menu roles to standard site navigation is a widespread mistake: it signals arrow-key behavior to screen readers that JavaScript never implements, breaking keyboard access for real users.
- Notion can serve as a non-developer-friendly token authoring interface in front of Style Dictionary by using a Status field to gate which tokens reach the build pipeline.