callstack / callstack/react-native-paper
Elevation prop does not work for M2 theme
- Dominant language
- TypeScript
- Stars
- 14.5k
- Forks
- 2.2k
- Avg merge
- 5d 23h
- Merged PRs (30d)
- 12
Description
### Current behaviour
According to documentation
"In version 2 the `elevation` prop was accepted via `style` prop i.e. `style={{ elevation: 4 }}`.
It's no longer supported with theme version 3 and you should use `elevation` property instead."
But in reality, even if we use style with `elevation: 0`. it does not affect the button at all.
### Expected behaviour
After adding the style={{ elevation: 0 }} on M2 themed contained button it should not contain any shadows, and must behave like a flat button.
### How to reproduce?
- use Button component with `mode=contained`
- make sure to have theme version 2 enabled
- add `style={{ elevation: 0 }}` to the Button
Reproduced Snack
https://snack.expo.dev/@stanwar/react-native-paper-m2-button-issue
### Preview
### What have you tried so far?
### Your Environment
| software | version
| --------------------- | -------
| ios | N/A
| android | 14
| react-native | 0.73.6
| react-native-paper | 5.12.3
| node | 20.11.1
| npm or yarn | 1.22.22 (Yarn)
| expo sdk | None (bare project)
Contributor guide
Research direction
Start with the React Native Paper Button component and its theme-version-specific elevation handling, then reproduce the behavior using the linked Snack or the provided Android setup. Trace how a contained M2 button applies style elevation and verify that style={{ elevation: 0 }} removes its shadow without affecting other button modes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- react-native, typescript
- Domain
- frontend, mobile-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100