GitShow/facebook/astryx
facebook

astryx

An open source design system that's fully customizable and agent ready

by facebook
Star on GitHubForkWebsitenpm

TypeScript

12.3k stars1.1k forks78 contributorsActive · 1m agoSince 2026v0.5.0MIT

Meet the team

See all 78 on GitHub →
cixzhang
cixzhang1.6k contributions
josephfarina
josephfarina296 contributions
rubyycheung
rubyycheung267 contributions
kentonquatman
kentonquatman150 contributions
czarandy
czarandy126 contributions
ernestt
ernestt102 contributions
bhamodi
bhamodi86 contributions
ejhammond
ejhammond80 contributions

Languages

View on GitHub →
TypeScript73.3%
JavaScript26.3%
CSS0.2%
Shell0.1%
Python0.1%
HTML0%

Commit activity

Last 12 weeks · 1745 commits

Full graph →

Community health

4 of 6 standards met

Community profile →
75
✓README✓License✓Contributing✓Code of Conduct○Issue Template○PR Template

Recent PRs & issues

Active · Last activity 1m ago
See all on GitHub →
rubyycheung
ci: build Core before inspecting downloaded themesOpenPR

Summary rebuild in after dependency installation let the downloaded theme artifacts resolve their imports preserve #5477's downloaded-theme optimization without repeating the full workspace build Why #5477 began shipping built theme artifacts to , but those artifacts import Core's consumer-facing files. The downstream job starts from a fresh checkout, installs dependencies without building packages, and therefore still fails before taking a screenshot: This currently affects #5466 and #5475. Test plan removed and reproduced the exact import failure from ran imported the same Butter theme build successfully afterward parsed the workflow and verified the Core build step runs after install and before the visual gate

rubyycheung · 5m ago
nynexman4464
chore(i18n): translations update from CrowdinOpenPR

Automated translations pulled from Crowdin. Source: https://crowdin.com/project/astryx Locale JSON has been normalized with . Review the diff for any strings that shifted meaning or formatting, then merge when ready.

nynexman4464 · 11m ago
rubyycheung
Give NumberInput steppers a dedicated icon slotOpenPR

Summary resolve both stepper buttons through the component-owned extension key keep the shared semantic unchanged provide a compact, mathematically centered Core fallback preserve downstream compatibility: and the required keys do not change add focused fallback and override coverage plus a Core patch changeset Dependency Depends on #5475 for typed namespaced icon keys. This branch is stacked on that PR so the implementation and tests typecheck together; it will collapse back to the six NumberInput-specific files once #5475 lands. #5477 separately shipped the built theme artifacts. #5482 completes that infrastructure fix by rebuilding their Core dependency in ; neither workflow change is included here. Test plan focused Icon registry and NumberInput suites — 142 passed Core source and docs typechecks changeset validation Prettier on all changed files strict ESLint with on all changed source files Visual behavior The fallback remains the approved compact chevron at (12×12px). The painted 6×3px chevron is horizontally centered; the increment stepper rotates the same glyph 180°. No horizontal translation is applied.

rubyycheung · 17m ago

Recent fixes

View closed PRs →
MeGaurav4
fix(Citation): only show pointer cursor when source has a url (#4134)MergedPR

A non-interactive Citation (no url in source, renders as a ) shows a pointer cursor on hover, implying it can be clicked. Root cause: cursor: pointer is hardcoded in both base style objects (label and number) regardless of whether the source has a url. Fix: remove cursor: pointer from the base styles. Add labelInteractive and numberInteractive styles with cursor: pointer that are only applied when href is present. The tag gets pointer cursor from the browser default anyway; the conditional styles ensure it stays explicit even if a global CSS reset removes the default. Only Citation.tsx is changed. Closes #4134 Verification A Citation with source.url renders with pointer cursor (interactive) A Citation without source.url renders with default cursor (non-interactive) Existing tests pass

MeGaurav4 · 2m ago
athz
fix(field): pass shade="inherit" to Spinner in input components and SwitchMergedPR

Summary Pass to `SwitchthemeTokens["--color-accent"]useTheme()context.strokeStylecomponents!importantshade="inherit"getComputedStyle(canvas).colorcolorButtonshade="inherit"color--color-accent` JS token, which is not per-component configurable.

athz · 17m ago
cixzhang
ci: ship the built themes to the PR visual gateMergedPR

has failed on every PR since it landed in #5396 — #5468 and #5466 both fail at the identical step with: reads each theme's built , because a theme's component map is the product of rather than a literal in its source. The job downloads the Storybook artifact, which does not carry it, and never builds anything. The job is , so nothing was blocked — the signal was just dead. Why not in the job That is what does, and it works, but it costs a full build (~1 min locally, longer on a 2-core runner) on every component PR — which destroys the thing that makes a per-PR gate defensible: a median PR is ~16 shots, about 10 seconds. already runs , so the artifact is free. Filtering () does not work: themes take as a peer dependency, so the filter cannot reach it and the build fails on a missing . Verified The upload glob's common ancestor is , so entries are and the download restores them in place. Simulated the round trip locally: with the dists removed throws exactly the CI error, and after restoring the artifact it returns all seven themes. Suggested by the session that owns .

cixzhang · 18m ago
Structured data for AI agents

Repository: facebook/astryx. Description: An open source design system that's fully customizable and agent ready Stars: 12343, Forks: 1061. Primary language: TypeScript. Languages: TypeScript (73.3%), JavaScript (26.3%), CSS (0.2%), Shell (0.1%), Python (0.1%). License: MIT. Homepage: http://astryx.atmeta.com Latest release: v0.5.0 (12h ago). Open PRs: 100, open issues: 317. Last activity: 1m ago. Community health: 75%. Top contributors: cixzhang, josephfarina, rubyycheung, kentonquatman, czarandy, ernestt, bhamodi, ejhammond, nynexman4464, dependabot[bot] and others.

·@ofershap

Replace github.com with gitshow.dev