RRigdesign system
Inputs

Icon button

A button with an icon and no label, for toolbars, inline actions and compact density.

Examples

Large · Medium · Small
Primary · Secondary · Success · Neutral · Error
Outlined

States

Rendered states (visual reference; the live example above is the accessible one)
DefaultHoverFocus visiblePressedDisabled
Primary
Outlined
Neutral

Anatomy

Icon button anatomy
#PartDescriptionPresence
1ContainerCircle, 44 / 32 / 27pxRequired
2IconCentered 18 / 14px glyph, decorativeRequired
3TooltipShows the name on hover and focusOptional

Specifications

SizesLarge 44px · Medium 32px · Small 27px
VariantsPrimary · Secondary · Success · Neutral · Error
Outlined strokesDouble-layered gradient stroke (light and dark accent) to hold depth over images
Touch targetSmall sizes expand their hit area automatically

Interaction

Keyboard
KeyResult
Tab Shift+TabMoves focus to and from the control
EnterActivates
SpaceActivates on key up
Pointer and touch
TriggerResponse
HoverOverlay at 10% (hover-overlay-opacity); cursor stays default on non-links
PressScale to 0.97 in 100ms; released on pointer up
TouchTarget at least 44px, with a halo if the visual is smaller
Hover or focusTooltip after a short delay; Esc dismisses it

Accessibility

role · button

1.1.1Non-text Content2.4.7Focus Visible2.5.8Target Size (Minimum)4.1.2Name, Role, Value
Requirements
RequirementHow Rig meets it
Namearia-label is mandatory, describing the action (Delete), not the icon (Bin)
Iconaria-hidden on the SVG so it is not announced twice
TargetSmall is 27px, above the 24px WCAG minimum, with a 44px touch halo
TogglesIf it holds a state (Like), use aria-pressed and keep the label constant

Read the matching WAI pattern ↗

Usage

Do and don’t
DoDon’t
Add a tooltip with the same text as the nameDo not rely on the icon alone to explain the action
Group related icon buttons in a toolbarDo not change the aria-label when toggling aria-pressed

Notes from the Figma file

  • Always give an icon-only control an accessible name.