Introducing two new colors:
- ColorTheme::color_dim, for dimmed/disabled primary colors
- SurfaceTheme::opaque_widget, for buttons.
In material design, a button's background color uses the Highest
Container role, which seems incorrect because then buttons wouldn't have
a different color when placed inside of the highest level container.
Rather than remove a container level, I added one more tone using the
neutral variant.
Other changes are just gut feelings to have a slightly richer dark
theme. I feel like material is a little muddy in dark mode.
measure() now is layout(). LayoutContext can either persist layout
information or be used temporarily for measurement. While this caching
is constantly thrown out currently, this is a step towards being able to
only re-layout widgets if they've been invalidated.