What about setting the defaults to null on the constructor and use the theme on the build method? This is what the flutter widgets do and that's how your app is more maintainable.
For example, in your build method you would have something like:
final theme = Theme.of(context);
return MyChildWidget(color: color ?? theme.primaryColor, ...);
As for dimensions, you could also use a dimension theme. See https://pub.dev/packages/dimensions_theme
I never used this package, but I had a similar implementation on a project.