Skip to content

docs(spec): Calendar weekday headers show the abbreviated names - #9072

Open
imdreamrunner wants to merge 1 commit into
mainfrom
spec/calendar-weekday-abbreviated
Open

imdreamrunner wants to merge 1 commit into
mainfrom
spec/calendar-weekday-abbreviated

Conversation

@imdreamrunner

@imdreamrunner imdreamrunner commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Exact decision needed

Which form of the weekday name Calendar's column headers show.

Existing authority searched

  • component:Calendar (current, docs/specs/components/Calendar/Calendar.spec.md): FR1 says only that weekday names come from the provider locale. architecture:internationalization covers locale data but not name width. No current record settles the form.
  • Code: Calendar's headers use the CLDR stand-alone short width from a generated table (Su–Sa in English). The touch date field's sheet already uses the abbreviated width (Sun–Sat).
  • Open PRs: none edits the Calendar record or the weekday headers (the open Calendar fixes touch initial focus and the date-field sheets).

Decision

component:Calendar DD1: each weekday column header shows the provider locale's stand-alone abbreviated weekday name (the CLDR abbreviated width) in full, so Sun–Sat in English. FR1 points to DD1. The headers still render the short names today, so the DD1 row, Current-state impact, and a verification-map evidence gap record that as an implementation gap. This PR changes no code.

Rejected alternatives

  • Cutting each name to three characters. That misnames days in locales whose abbreviations differ. It is kept as one Rejected: line in DD1.

Claim scope and non-goals

  • Covers the visible header text only. The header's accessible name, typography, column width, and how an over-wide locale name lays out stay uncontracted.
  • Switching the header to the abbreviated width and updating the day-name tests is a separate implementation PR.

Evidence and implementation relationship

  • This is a design request. In English, two-letter names make Tu and Th, or Sa and Su, easy to confuse.
  • In some catalog locales the abbreviated names are longer than three letters (from Intl/CLDR): ar and pt-PT use full words (الثلاثاء, segunda), and he (יום א׳), pl (niedz.), vi (Thứ 2), da, fr, pt, and ro also run longer.

Question for design review

@rubyycheung, could you review this? It's the 3-letter weekday change you asked for. One call is yours: in Arabic and European Portuguese the abbreviated name is a full word, and DD1 shows it in full in the narrow day column. Should those locales keep the shorter form instead?

Writing rubric results

  • R1 narration: none; DD1, its implementation gap, and the Current-state impact line are in the present tense.
  • R2 research in the record: none; the locale-length check stays in this description.
  • R3 evidence naming a change: none; the DD1 verification row names the test cases.
  • R4 rejected alternatives over one line or outside a decision: one, inside DD1, one line.
  • R5 pull request or issue references remaining: none.
  • R6 ruled open questions still listing options: none; no open question added.

Scope

  • This PR contains specification records only.
  • It records observable behavior and preserves equivalent internal implementations.
  • Any named internal mechanism is intentionally public, names its dependent caller/system, and explains why an equivalent implementation would not satisfy the contract: none named.
  • Verification states the evidence layer and failure signal without prescribing CI job/workflow topology.
  • It records one intentional durable decision, not a rescue for a separable tagalong.
  • The canonical knowledge owner, affected current claims, and overlapping open work are named; no ownership collision.
  • Adjacent API, visual, accessibility, composition, and implementation facts remain outside scope unless this exact decision depends on them.
  • Public text and artifacts contain no internal Meta context.

Validation

  • pnpm check:knowledge: aligned
  • Prettier: clean
  • git diff --check: clean
  • Approval groups for this change: spec and design (the Design decisions block and the record body both change)
  • Rebased onto main after the Calendar record became current and moved under docs/specs/components/.

@vercel

vercel Bot commented Oct 30, 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 Nov 1, 2026 5:09pm UTC

Request Review

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Meta Open Source bot. label Oct 30, 2026
@astracat-bot

astracat-bot Bot commented Oct 30, 2026 •

Copy link
Copy Markdown

AI review status for this pull request.

Review status Updated
❓ Needs maintainer input (for maintainers only) Nov 1, 2026, 5:20 PM UTC

@github-actions

github-actions Bot commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

PR Analysis Report

Current run: The current change has no visual or preview-producing scope. Visual checks are not applicable; preview links are not shown.


Generated by PR Enrichment workflow | View current CI run

@astracat-bot astracat-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Approval waits on an owner decision. DD1 adds a weekday-header rule that no current spec on main states yet: whole abbreviated names, including full words in Arabic and European Portuguese. An engineering owner records that decision by commenting /approve-spec 986546d4aabca741c217874492d0537e4ccab3ba on this pull request, and the author may do so if they are an engineering owner. Two record fixes are needed whatever the decision:

  • Calendar.spec.md line 59 still says the released default is preserved, although DD1 changes every Calendar's header text.
  • The DD1 verification row tests English and one other locale, but English and the Spanish locale the current tests use both have three-letter abbreviations, so a header cut to three characters would still pass; name a locale with longer abbreviations, such as pl or pt-PT.

[Automated review]

@@ -57,8 +57,8 @@ keyboard model that moves through days; date fields compose it.
## Compatibility and migration

- Released default preserved: `yes`

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

DD1 changes every Calendar's weekday headers from the short to the abbreviated names, with no prop to keep the short form, and line 45 already says the record departs from shipped behavior for that. This line should say so too, for example "yes, except DD1: no", naming the header change.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in fd7a6ba: the row now requires a locale whose abbreviated names run past three characters, such as pl or pt-PT.

| FR6 | `Calendar.test.tsx` navigation, bound, theming-target ("renders the astryx-calendar-nav target on both month-nav buttons", "reflects the disabled nav state as a data attribute at the range edges", "keeps the default nav rendering unchanged (still a ghost icon button)"), and RTL month-navigation cases | Previous and Next; at `min` and `max`; `dir="rtl"` | A button enabled past a bound, a missing `calendar-nav` target or state attribute, or a lost shared chevron wrapper fails. Evidence gap: no test asserts focus kept at a bound (the FR6 gap), the mirrored chevron pixels, or the press under reduced motion. | `audit:Calendar/behavior` |
| FR7 | `Calendar.test.tsx` month-change announcement cases ("does not announce on initial render", "announces the new month politely when clicking next", "announces the next month when paging the grid with PageDown", "announces both months in a two-month view", "does not announce when selecting a date leaves the visible month unchanged") and range announcement cases ("announces the start pick and prompts for an end date", "announces the completed range in chronological order for a reverse pick") | Month buttons, Page keys, handle; single and two months; range start, complete, cleared | A missing, extra, or out-of-order announcement fails. Evidence gap: no test reaches the cleared-start announcement (the cleared-range case sets no `minRangeSpan`). | `audit:Calendar/accessibility` |
| FR2 (size) | Evidence gap: no test asserts day-button size or text growth | — | — | `audit:Calendar/layout` |
| DD1 | Evidence gap: the `Calendar.test.tsx` day-name cases ("displays day names", "uses the provider locale for stand-alone short day names", "rotates localized day names by numeric weekday index") assert the short names | English and one other locale; `weekStartsOn` rotation; with week numbers | A header showing a short name, or a name cut to three characters, fails. | `audit:Calendar/layout` |

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

English and es-ES (the locale the existing day-name cases use) both have three-letter abbreviated names, so a header cut to three characters would pass this row. Naming a second locale with longer abbreviations, such as pl or pt-PT, makes the stated failure detectable.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Fixed in fd7a6ba: the row now requires a locale whose abbreviated names run past three characters, such as pl or pt-PT.

@github-actions github-actions Bot added the needs:spec-owner-review Current knowledge records await owner approval label Oct 30, 2026

@astracat-bot astracat-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Approval waits on a spec owner deciding DD1 as the governing spec for Calendar's weekday headers: no current spec on main states that rule yet, and it shows whole abbreviated names, including full words in Arabic and European Portuguese that overrun the 32px day column. To settle it, an engineering owner comments /approve-spec fd7a6bae09fa026c2d5f78bf8f1604a87e714465 on this pull request (the author may do so as an engineering owner), or the owners ask for a shorter form in those locales; the repository's design-decision routing also asks for a design owner's review. The two record fixes from the earlier review are in, and nothing else needs to change.

[Automated review]

@github-actions
github-actions Bot deleted the branch spec-backfill/Calendar October 31, 2026 06:09
@imdreamrunner
imdreamrunner changed the base branch from spec-backfill/Calendar to main November 1, 2026 17:00
@imdreamrunner
imdreamrunner force-pushed the spec/calendar-weekday-abbreviated branch from fd7a6ba to c740152 Compare November 1, 2026 17:00

@astracat-bot astracat-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Approval waits on a spec owner deciding DD1 as the governing spec for Calendar's weekday headers: no current spec states the abbreviated-width rule yet, and it shows whole names, including full words in Arabic and European Portuguese that are wider than the 32px day column. To settle it, an engineering owner comments /approve-spec c74015220a9aa3e3ce184fc8e500fdb196f01d8a on this pull request (the author may do so as an engineering owner), or the owners ask for a shorter form in those locales; the repository's design-decision routing also asks for a design owner's review. Nothing else in the record needs to change.

[Automated review]

This branch was successfully deployed

1 active deployment
Preview — c7401522 Deployed Nov 1, 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. needs:spec-owner-review Current knowledge records await owner approval

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant