Skip to content

docs: define bidirectionality design intent - #6047

Merged
nynexman4464 merged 4 commits into
nynexman4464/docs/rtl-audit-evidencefrom
nynexman4464/docs/bidirectionality-contract
Oct 15, 2026
Merged

nynexman4464 merged 4 commits into
nynexman4464/docs/rtl-audit-evidencefrom
nynexman4464/docs/bidirectionality-contract

Conversation

@nynexman4464

@nynexman4464 nynexman4464 commented Sep 4, 2026 •

Copy link
Copy Markdown
Contributor

Stack

  1. docs(core): define the internationalization contract #6048 — internationalization architecture and provider contract
  2. docs: define RTL audit evidence policy #6046 — RTL audit evidence policy
  3. docs: define bidirectionality design intent #6047 — bidirectionality design intent

Intent

Clarify the existing semantic distinction between directional artwork and raw caller-supplied glyph geometry.

Authority

The record is promoted to authority: current with approved_by: nynexman4464 and approved_at: 2026-10-15, with a DEC-1 entry recording that DR1–DR14 are the shared bidirectional relationships. The exact-head /approve-spec command on this pull request records that decision for the final head. It is promoted after the two architecture records it links. Open questions OQ1, OQ3, and OQ4 stay undecided.

Existing authority searched

Authority and ownership

Keep design:bidirectionality as the canonical design owner, with nynexman4464 first and cixzhang/rubyycheung retained. Internationalization architecture owns the provider/DOM direction boundary; RTL audit architecture owns applicability and evidence. No repository membership change is included.

Cross-cutting component contract

Selected DRs now route globally by visual, styling, layout, navigation, interaction, layering, scrolling, responsive, runtime, and accessibility triggers. A visual change receives artwork meaning/exceptions rather than every keyboard or audit clause; a layer change receives the logical trigger relationship. Interaction, navigation, and scrolling carry the semantic-exception rule alongside their directional outcomes, so current LTR behavior or convenience cannot authorize a physical-direction exemption. No backlink is required merely to receive matched current globals.

Component/module/family records still own which artwork is a cue versus data, leading/trailing parts, local actions/states, sizes, and evidence. They link specific DRs when recording a local relationship or exception, without repeating a universal RTL checklist. The shared rules are not copied into a new component-facing record; existing owners already cover this fact boundary.

The routes do not imply every glyph mirrors and do not settle the remaining open questions. No schema, runtime, or changelog change is included.

Clarification

DR5 explicitly states that a reference sample preserves left/right glyph geometry when it is data. The same glyph used as previous, next, or progression artwork still follows DR4 and must receive exactly one directional treatment. A raw-registry example makes the distinction concrete without declaring all SVG icons exempt from RTL behavior.

The record delegates target-size numbers and exceptions to AST-020 and component/composition owners. It does not claim that alignment proves size or add a universal pixel minimum.

Validation

Knowledge validation, repository guardrails, formatting, and git diff --check pass. The global-route checks verify selective artwork/layer/interaction claims; all 121 knowledge tests pass on current main, and all four records validate as current at this head. The stack preserves the architecture-before-design dependency order. No runtime, product visual, or API change is included here.

Writing rubric results

R1 narration: replaced the shipped-direction migration story with the scope of DR1–DR14 and their separate evidence owners. Promotion removed draft-readiness wording rather than narrating the approval.
R2 research: no experiment, scorecard, or external survey is standing content.
R3 evidence: no historical PR stands in for the directional meaning of an example.
R4 rejected alternatives: none.
R5 change references: removed the direction-foundation and target-centering PR references from the decision section.
R6 open questions: minimum target-size ownership is delegated rather than an approval blocker; unresolved physical-exception vocabulary, mixed-content fixtures, and direction-change animation questions remain visible.

@vercel

vercel Bot commented Sep 4, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
astryx Ready Ready Preview Oct 15, 2026 6:05pm UTC

Request Review

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Meta Open Source bot. label Sep 4, 2026
@cixzhang

cixzhang commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

/approve-spec e406a84

@cixzhang cixzhang left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for consolidating the shared bidirectionality design intent. Approved at exact head e406a8402eb4b94e719b3ccea91bb4038c23f3c2.

@astracat-bot

astracat-bot Bot commented Sep 9, 2026 •

Copy link
Copy Markdown

AI review status for this pull request.

Review status Updated
🔄 In progress (for maintainers only) Oct 15, 2026, 5:58 PM UTC

@nynexman4464
nynexman4464 force-pushed the nynexman4464/docs/bidirectionality-contract branch from e406a84 to 732d227 Compare September 21, 2026 19:37
@nynexman4464
nynexman4464 changed the base branch from main to nynexman4464/docs/rtl-audit-evidence September 21, 2026 19:37
@nynexman4464
nynexman4464 force-pushed the nynexman4464/docs/bidirectionality-contract branch from 732d227 to 940b751 Compare September 29, 2026 20:04
@nynexman4464
nynexman4464 force-pushed the nynexman4464/docs/bidirectionality-contract branch 2 times, most recently from 940b751 to 74cc14a Compare September 30, 2026 15:42
@nynexman4464
nynexman4464 force-pushed the nynexman4464/docs/bidirectionality-contract branch from 74cc14a to bf30bdf Compare September 30, 2026 15:50
@nynexman4464
nynexman4464 force-pushed the nynexman4464/docs/bidirectionality-contract branch from bf30bdf to 432c62c Compare September 30, 2026 15:57
@nynexman4464
nynexman4464 force-pushed the nynexman4464/docs/bidirectionality-contract branch from 432c62c to 817674e Compare October 14, 2026 18:51
@nynexman4464
nynexman4464 force-pushed the nynexman4464/docs/bidirectionality-contract branch from fc4b038 to 981e81f Compare October 15, 2026 17:58
@nynexman4464
nynexman4464 marked this pull request as ready for review October 15, 2026 17:58
@nynexman4464

Copy link
Copy Markdown
Contributor Author

/approve-spec 981e81f

@github-actions

github-actions Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

PR Analysis Report

📚 Storybook Preview

View Storybook for this PR

🧪 Sandbox Preview

View Sandbox for this PR

No new or modified components detected.

Bundle Size Summary

Package Size (ESM) Size (CJS) Gzipped
@astryxdesign/core N/A 4.9KB 1.2KB

Accessibility Audit

Status: No accessibility violations detected.

Visual Regression

38 of 474 shot(s) changed.

A change here is a question, not a failure: check whether the after is the
picture you intended. Record that review on the PR. Baseline maintenance is an
explicit dispatch of CI; this report never rewrites the baseline or adds a release gate.

component story theme mode pixels
Selector Indicator Space Bottom Sheet Narrow End RTL neutral light 754,077
Selector Indicator Space Bottom Sheet Wide Start neutral light 740,188
Chat Full AI Chat probe light 238,087
Chat Full AI Chat probe dark 237,060
Collapsible Dividers probe dark 66,445
Collapsible Dividers probe light 66,445
Chat Default neutral dark 33,205
Chat Default neutral light 32,876
Chat Empty State probe light 23,531
Chat Empty State probe dark 22,622
ChatAutoScroll Scroll Behavior Comparison neutral dark 15,378
ChatAutoScroll Scroll Behavior Comparison neutral light 14,107
Chat With Attachments probe light 13,406
Chat With Attachments probe dark 11,232
ProgressBar With Target Mark probe dark 7,895
ProgressBar With Target Mark probe light 7,895
TableRowExpansion Detail Panel neutral dark 5,150
TableRowExpansion Detail Panel neutral light 4,068
SideNav Resizable in AppShell probe light 3,846
TableGroupedRows Default neutral light 2,133

and 18 more.


Generated by PR Enrichment workflow | Storybook | Sandbox | View full report

@nynexman4464
nynexman4464 merged commit 10dbc9d into main Oct 15, 2026
62 of 92 checks passed
@github-actions
github-actions Bot deleted the nynexman4464/docs/bidirectionality-contract branch October 16, 2026 06:22

This branch was successfully deployed

1 active deployment
Preview — 981e81f1 Deployed Oct 15, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Meta Open Source bot.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants