Skip to content

feat: refactor icon button component - #5103

Open
alpharius-ck wants to merge 2 commits into
mainfrom
feat/refactor-icon-button-component
Open

feat: refactor icon button component#5103
alpharius-ck wants to merge 2 commits into
mainfrom
feat/refactor-icon-button-component

Conversation

@alpharius-ck

Copy link
Copy Markdown

Motivation

IconButton in v6 still used the older Material 3 API: a numeric size, contained / contained-tonal modes, and a single selected-color path. That does not match the current M3 Expressive icon button spec (or the androidx 14.1.0 tokens), and it is out of step with components that were already modernized (TextInput, Switch, Checkbox, FAB).

This change brings IconButton onto that spec: the XS–XL size scale, narrow / default / wide widths, round and square shapes with press and toggle morph, standard / filled / tonal / outlined color styles (including a distinct toggle-OFF set), and disabled filled/tonal container opacity of 0.10. Tokens live with the component and reuse the theme shape, color, and motion systems so the example app and generated docs stay aligned.

Related issue

https://app.notion.com/p/callstack/Modernize-IconButton-to-Material-3-Expressive-3ac5d027c0f880fcb083e5a909d4d82b?source=copy_link

Test plan

Screenshot 2026-09-03 at 11 36 06 Screenshot 2026-09-03 at 11 58 43

# Conflicts:
#	src/components/IconButton/IconButton.tsx
#	src/components/IconButton/utils.ts
#	src/components/TextInput/TextInputIcon.tsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant