Salt la conținutul principal

Prezentare generală

IconButton compune Buton cu o suprafață pătrată sau rotundă. Transmite pictograma ca element copil și furnizează un nume accesibil cu aria-label sau aria-labelledby. Conținutul pictogramei este decorativ și ascuns tehnologiilor asistive.

Utilizare

Dimensiunile sunt xs (20px), sm (24px) și md (32px). Valorile implicite sunt md, outline și neutral. Variantele și culorile corespund cu Button. Utilizați shape="round" pentru un buton circular; forma implicită este square.

Opțiuni vizuale

Comparați câte o opțiune vizuală pe rând. Folosiți exemplele cu tooltip denumit, cu elevație și grupate pentru compunere.

Nume accesibile

Utilizează aria-label pentru un nume furnizat direct pe control. Când textul vizibil denumește deja acțiunea, utilizează în schimb aria-labelledby pentru a face referire la acesta. Este necesară cel puțin o proprietate de denumire.

Indiciu

Adăugați tooltip pentru a afișa text la trecerea cursorului și la focalizarea cu tastatura. Păstrează aria-label sau aria-labelledby ca nume accesibil al acțiunii. Butoanele dezactivate și cele în încărcare păstrează indiciile la trecerea cursorului.
Indiciul este poziționat implicit jos, cu o întârziere de 1000ms și un decalaj de 5px. Folosiți tooltipPlace, tooltipDelay și tooltipOffset pentru a-l ajusta. Omiterea tooltip afișează butonul direct.

Gestionarea stării

Aplicația dvs. furnizează loading și disabled. Ambele împiedică activarea. Starea de încărcare păstrează dimensiunile pătrate și eticheta accesibilă. Butonul nu urmărește o valoare selectată și nu activează automat încărcarea după un clic. Focalizarea nativă cu tastatura urmează comportamentul browserului; folosiți aria-pressed atunci când aplicația dvs. gestionează o stare de comutare.

Acțiuni elevate

Utilizați elevated pentru a adăuga o umbră și o estompare a fundalului. Butonul cu contur neutru implicit capătă, de asemenea, o suprafață cu bordură, cu culori corespunzătoare pentru pictogramă și interacțiune. Alte variante și culori semantice își păstrează paleta existentă. elevated are valoarea implicită false. Nu modifică poziționarea, vizibilitatea sau dimensiunea. Dimensiunea rămâne implicit md (32px); setați size="sm" pentru un control de 24px.
Omiteți elevated sau setați-l la false pentru a restabili aspectul standard. Butoanele elevate acceptă aceleași sfaturi contextuale, stări de încărcare, linkuri și interacțiuni cu tastatura. Înlocuiți controalele FloatingIconButton existente cu IconButton elevated. Transmiteți pictograma ca elemente copil, utilizați aria-label nativ și mapați small la sm și medium la md. Furnizați size="sm" atunci când controlul anterior utiliza dimensiunea sa implicită. Focalizarea nativă și aria-pressed înlocuiesc focalizarea sintetică și indicatorii activi. FloatingIconButtonGroup este eliminat. Compuneți ButtonGroup cu IconButton pentru acțiuni grupate și păstrați orice suprafață flotantă partajată în aspectul dvs.

Acțiuni grupate

ButtonGroup furnizează valori implicite pentru dimensiune, variantă și culoare, plus colțuri adiacente. Proprietățile explicite ale elementelor copil au prioritate independent, inclusiv size="xs". Butoanele individuale nu au nevoie de o proprietate de poziție. Păstrați butoanele atașate la aceeași dimensiune, astfel încât marginile lor să fie aliniate. Setați dimensiunea pentru grup și lăsați fiecare buton să o moștenească.

Linkuri și formulare

Fără un render personalizat, href redă o ancoră, cu excepția cazului în care nativeButton este explicit adevărat. Pentru o ancoră de navigare personalizată sau un link de router, setează nativeButton={false} și role="link". Rendererul poate gestiona propria destinație fără un href pentru IconButton. Păstrează nativeButton ca adevărat pentru un buton nativ personalizat și utilizează fals pentru un element de acțiune nenativ. Proprietățile explicite nativeButton și role sunt păstrate. Linkurile dezactivate și cele în curs de încărcare nu se pot activa. Rutarea rămâne în aplicație. Atributele butoanelor native și ale ancorelor, gestionarii de evenimente, detaliile evenimentelor, referințele și compunerea render se transmit către Button. Referința primește elementul rădăcină efectiv. Compunerea Tooltip păstrează acea rădăcină și numele său accesibil. Valoarea implicită este type="button"; setați explicit type="submit" pentru trimiterea formularului.

Controale compacte și rotunde

Utilizați size="xs" pentru un control de 20px și shape="round" pentru colțuri circulare. Controalele RoundedIconButton existente devin IconButton cu shape="round", variant="solid" și color="accent". Asociați dimensiunea lor veche small cu xs și dimensiunea medium cu sm. Furnizați elemente copil de tip pictogramă și un nume accesibil.

Proprietăți

string
Accessible name describing the action. Required unless aria-labelledby supplies the name.
string
ID of the element supplying the accessible name. Can be used instead of aria-label.
ReactNode
obligatoriu
Icon content. Decorative and hidden from assistive technology.
string | ((state: ButtonState) => string | undefined)
CSS class applied to the element, or a function that returns a class based on the component’s state.
"accent" | "danger" | "inherit" | "neutral" | "success"
implicit:"neutral"
Semantic color of the button. inherit uses the surrounding text color for the label, icons, loader, and outline border, with translucent black interaction surfaces. It supports outline, ghost, soft, and link. Resolving solid with inherit throws, including appearance inherited from ButtonGroup and wrapper defaults.
boolean
Adds a shadow and backdrop blur. Neutral outline buttons also use elevated surface colors.
boolean
implicit:"false"
Whether the button should be focusable when disabled.
string
Destination URL. Renders a native anchor when render is omitted unless nativeButton is explicitly true. Custom renderers retain their own element contract.
boolean
Shows a loading indicator and disables activation.
boolean
implicit:"true (false for the built-in href anchor)"
Whether the rendered root is a native button. Defaults to true for custom renderers. The built-in href anchor defaults to false; an explicit value takes precedence.
ReactElement<unknown, string | JSXElementConstructor<any>> | ComponentRenderFn<HTMLProps, ButtonState>
Caller-supplied root element or renderer. Native attributes, handlers, event details, and refs reach the rendered root. Use nativeButton={false} and role="link" for a custom navigation anchor. Router integration belongs to the caller.
AriaRole
Role of the root element. Use link for custom navigation renderers.
"round" | "square"
implicit:"square"
Square or round icon control.
"md" | "sm" | "xs"
implicit:"md"
Button size: xs (20px), sm (24px), or md (32px).
CSSProperties | ((state: ButtonState) => CSSProperties | undefined)
Style applied to the element, or a function that returns a style object based on the component’s state.
string
Text displayed when hovering or focusing the button.
number
implicit:"1000"
Delay before showing the tooltip.
number
implicit:"5"
Distance in pixels between the button and the tooltip.
"bottom" | "inline-end" | "inline-start" | "left" | "right" | "top"
implicit:"bottom"
Preferred placement of the tooltip relative to the button.
"ghost" | "link" | "outline" | "soft" | "solid"
implicit:"outline"
Visual treatment of the button surface. link uses compact text styling without a filled surface or border; render composition determines native semantics.