Change Proposal: Align Button and IconButton with the design (sizes, radius)
Les mainteneurs répondent en général sous 3 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- react, typescript
Piste de recherche
This is a design proposal; no implementation files or tests are named. Start by reading the Button and IconButton implementations and their stories, then compare their current sizing and radius with the stated Figma values. Done means both components use the specified 32/36/40px heights and matching radius, with stories, guidance, and changelog updated; first wait for maintainer review and acceptance.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
What is being proposed?
Bring Button and IconButton in line with the DiamondDS Figma design:
- Explicit, whole-pixel heights for
ButtonandIconButtonat eachsize, instead of sizes derived from MUI padding and line-height. - Square
IconButtonwith the same corner radius asButton(MUI default is round).
Text field sizing and an outlined IconButton are related but are out of scope here. Each will be proposed separately (see "Related, separate proposals").
Why is this needed?
-
Code and Figma disagree, and the code values are fractional:
Control Figma (S / M / L) sci-react-ui today (MUI) Button32 / 36 / 40 30.75 / 36.5 / 42.25 IconButton32 / 36 / 40 34 / 40 / 48 Fractional heights give blurry borders and misaligned rows.
IconButtonis up to 8px larger than the design at large. -
Small
Buttonand smallIconButtondo not line up in the same row (30.75 vs 34). -
A plain
IconButtonhas no border or fill until hover, so a standalone "+" next to a search field reads as decoration rather than as a control. -
A round
IconButtonnext to rectangular buttons, inputs and toggle buttons looks inconsistent.
What will change?
- Behaviour: none. Only appearance and dimensions change.
- Sizes:
ButtonandIconButtonget explicit heights (IconButtonis square: width = height), withbox-sizing: border-boxso outlined and contained variants stay the same height.Button: 32 / 36 / 40.IconButton: 32 / 36 / 40.
- Radius:
IconButtonuses the same radius asButton. - Stories, guidance and the changelog are updated.
Interface changes (if any)
None. No new props. The existing size values (small, medium, large) keep their names but map to the new dimensions.
<IconButton aria-label="New file" size="small"><Add /></IconButton> // now 32×32, square
No change to existing props. The existing size values (small, medium, large) keep their names but map to the new dimensions.
Breaking change?
- Yes
It is not an API break, but it is a visible change for apps already using these components:
IconButtonis smaller (small 34 → 32, medium 40 → 36, large 48 → 40) and square instead of round.Buttonchanges by about 1–2px (small 30.75 → 32, medium 36.5 → 36, large 42.25 → 40).- Apps that override
IconButtonsize or radius withsxshould check their overrides.
Mitigation: note it in the changelog and release notes, and tell teams with apps on the library before release so they can check their layouts.
Related, separate proposal: text field sizes
Not part of this change, but they affect it.
- Text field sizes: small (40) and medium (56) match Figma but not the 32 / 36 / 40 button scale, so a small field is 8px taller than a small
ButtonorIconButton. A separate proposal will cover smaller field sizes, the default size and floating labels in dense fields. Until then, a small field (40) pairs exactly with a largeButtonorIconButton(40). - Outlined
IconButton: a newvariant="outlined"so a standalone icon action (for example "new file" next to a search field) has a visible border at rest. It is not in Figma yet, so the design comes first.
Next steps
A maintainer will review this issue.
If accepted, it will be marked as accepted and a PR may then be opened.
- Langage dominant
- TypeScript
- Étoiles
- 9
- Forks
- 4
- Merge moyen
- 3 j 12 h
- PR mergées (30 j)
- 14
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de DiamondLightSource/sci-react-ui
-
accepted
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
DiamondLightSource/sci-react-ui#325 · 1 commentaire ·
Les mainteneurs répondent en général sous 3 jours
-
accepted
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
DiamondLightSource/sci-react-ui#283 · 1 commentaire ·
Les mainteneurs répondent en général sous 3 jours
-
accepted
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
DiamondLightSource/sci-react-ui#357 ·
Les mainteneurs répondent en général sous 3 jours
-
Spacing at the top of SidebarNav should be configurablePeut-être pris @swara030 l’a pris il y a 16 jours. Ouverteaccepted
Difficulté 3/5 1-2 jours Accessibilité débutants 65/100
DiamondLightSource/sci-react-ui#334 · 1 commentaire ·
Les mainteneurs répondent en général sous 3 jours
-
needs-triage
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 38/100
DiamondLightSource/sci-react-ui#332 ·
Les mainteneurs répondent en général sous 3 jours
Toutes les issues de DiamondLightSource/sci-react-ui
Issues similaires
-
community first-timers-only good first issue hacktoberfest help wanted low hanging fruit up-for-grabs
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
lingdojo/kana-dojo#33286 · 1 commentaire · 5 réactions ·
Les mainteneurs répondent en général sous 1 jour
-
friction
Difficulté 1/5 Moins d'une heure Accessibilité débutants 77/100
kentcdodds/kody#4499 ·
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
hemilabs/ui-monorepo#2605 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 6 jours
-
build.yml: macOS arm64 DMG fails, cargo missing on the macos-26 runner imagePeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
getopenscreen/openscreen#1423 ·
Les mainteneurs répondent en général sous 1 jour