Theme inheritance : default YAML settings inheritance?

Hi everyone,

I started developing some websites with Grav, with the idea to create a “base theme” and then inherit from it and customize it for my various websites.

But I have some troubles with the default theme settings (yaml files) and twig. It seems like my child theme doesn’t inherit the default settings defined by the parent theme.

For example, my base theme is A and my child theme is B.

The default file “a.yaml” has the option “color: red”. And the child settings “b.yaml” doesn’t override this value (color is not defined at all).

According to the Theme-Configuration page (https://learn.getgrav.org/themes/theme-configuration), I expect to get the “red” string when I use Twig like this :

{{ grav.theme.config.color }}

But I get nothing…

What’s the expected behavior regarding default settings when you inherit a theme ? Am I missing something ?

Remarks : I use grav v1.1.0-beta.5, so I think I can use {{ grav.theme.config.color }}, right ?

PS : Grav is awesome :wink:

I don’t think theme configuration inheritance has ever been in Grav. Mainly its for twig templates

Thanks for the reply,

Okay so the configuration isn’t inherited, but that’s confusing for me. Especially that configuration inheritance is used in a lot of place in grav.

More over with this non-heritence I’ll have to copy “a.yaml” to the “B” themes folder, and each time the base theme “A” will be updated I’ll need to revew “b.yaml” in order to include the new settings, seems complicated… But I can live with that :slight_smile:

Or maybe, do you have any plans to change this ?

Theme inheritence is not simply blueprint inheritance like most other areas of Grav, so it’s not really the same thing.

It might be possible that we support inheritance of the form portion of the blueprint for other themes. This would mean you could define a default set of default form fields and inherit that. We have no immediate plans for this though as most themes don’t even have configuration forms.