tree 7d1ead5708e39f2111fcb9adc7262b46b9c10930
parent b27b3d744670bb9312824ec94353b93e7d0424ea
author Anthony <anthonyrobledo@gmail.com> 1556130224 -0400
committer GitHub <noreply@github.com> 1556130224 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJcwKmwCRBK7hj4Ov3rIwAAdHIIAHQ28RYdMXOf2xsfGbCHF67f
 Rn1BEwWavC7H2QFYE3szyB+GM43lmJU/fF+Xl4zHqCOP6tEKNGVmUcR6jXpnzU4N
 tl2XUtjmbKQHZFCJzFH/EVhWwciwfL6sBBnTrYm6AWz2NUsmoKbZ/bN4G3WehtPE
 FKzm8COnWoLsYEx5yBtFybol97t0cUu3+DQZXJJES6AxHK9ZiMjS6cOg2T/KZiH+
 vsb3N5xU1UPAWIN14p+poJGO/lsF8FSzunxr/WVXJDqT2U1+jqsw6tO/jiYuLBIV
 BBSOt12HuHcJx7pnKcwMJOvVFa6mHlppjgf7uNYZ1VDOScXrUz3m4MoX6gri3Ho=
 =BDMO
 -----END PGP SIGNATURE-----
 

[Material] Update slider and slider theme with new sizes, shapes, and color mappings (2nd attempt) (#31564)

#30390 was rolled back. This PR will re-roll it forward.

This PR makes a number of changes to the visual appearance of material sliders:

Sizes/Shapes
** enabled thumb radius from 6 to 10
** disabled thumb radius from 4 to 10 with no gap
** default track shape is a rounded rect rather than a rect
**
Colors
** all of the colors now use the new color scheme
** overlay opacity has been reduce from 16% to 12%
** value indicator text color now respects the indicator it is on by using onPrimary
** disabledThumb color no respects the surface it is on by using onSurface
The slider theme is also now constructed consistently with other theme objects within the ThemeData. By default, all values are null, and have default values that are resolved in the slider itself, rather than in the slider theme.