9 Months Ago
Turn BaseStyles members into a table containing type, default value, and inheritance state, generate BaseStyles.Defaults Auto-generate layout cascading based on inheritance state Use BaseStyles.Default instead of hardcoding defaults Similar to `css-defaults` branch but this does it better - so I'm deleting that in favour of this. Rather than hard-coding the default value every time we fetch it: ```cs var value = Styles.BackgroundColor ?? Color.White; ``` We should be doing something like: ```cs var value = Styles.BackgroundColor ?? Default.BackgroundColor; ``` Provide default values as fallbacks for style transitions, use LerpProperty inside BaseStyles.FromLerp In FromLerp, check if the property we're trying to change is actually changing Prevents us from stomping property changes when a transition is running with `transition: all` if you have an animation running simulataneously Move default styles into `DefaultStyles`, make everything readonly VirtualScrollPanel uses DefaultStyles Only use fallback inside Lerp functions if from/to are null Move null checks into Lerp functions, remove logs Tidy up, use same code path for lerps Refer to default values in docstrings, inherited/cascading values lerp to their initial `from` values if `to` is unset Merge fixes, Name -> TypeName