Make logo and favicon settings independent from a theme and move it into the context of basic site settings and branding

Created on 20 December 2023, 6 months ago
Updated 22 December 2023, 6 months ago

Problem/Motivation

If there is any logo (and favicon) required, which is not always the case, then these would rather be part of the branding (name and slogan) of a given project, company, organization or any other representative group on the given page or site. And not primary part of a theme.

Drupal's capacities stretch the boundaries of average website building tools by far over the default traditional use cases. And in times of decoupled or headless content management system installations, multiple sub projects or sub presentations in one installation are not rare. Rather more often the case. One of the simplest examples is a central city events grouping website where each event has its own sub-site and branding. Or you can take Drupal's projects pages as example. If there would not be the Drupal project itself as the "lead project" on top of them which presents the brand of all sub pages, it would make perfectly sense to have the individual project logos on each of the sub pages. Other example is when several departments share the same Drupal installation and share the same theme. Or you need to change parts of the logo under conditions on different pages. Many companies provide sub domain pages for their clients of deparmtents but with the same look (theme). The examples are countless.

From my impression the fixed coupling from a logo and a favicon (which mostly represents a minified version of the logo) to a theme setting is based on the idea of "how a logo fits best into a theme" which we perfectly can manage with other tools today and is rather a left over from times where we considered to be one project bound to one website and one theme. And that the logo always changes with the theme. Which is rarely the case today. Apart from that, a logo is part of SEO and we should prevent to have the same logo multiple times in the file path.

With contrib projects like domain (access) we can even manage multiple domains inside one Drupal installation. In many of such cases it is not required to use different themes but different basic site settings and logos.

Another reason for this issue is an inconsictency from the UI perspective. As stated above: a logo is part of the branding, not of the theme. And a theme has a different understanding and position today then 20 years ago. And the branding block already underlines this perfectly well by combining logo and basic site settings like site name and slogan into one block. So why is the logo setting on the theme level and not in the basic site settings form besides name and slogan? Or maybe in the branding block settings?

This would not only make far more sense but also make it easier for big contrib projects like domain to uncouple logo/favicon and branding from theming. Basic site settings are already domain agnostic if domain module is installed. And so would logo be too. Also the logo token core issue (which I have referenced to here) maybe is easier to solve when logo settings are placed by basic settings instead of theme settings.

Let me bring up one more example: There are cases where the logo and the branding of a site changes slidely by language. Especially when logos hold fixed text inside the design like slogan.

But let us not forget one of the main advantages of theme independent logo/favicon settings: if you need to change the theme for the same project, you do not need to re-upload the same logo again.

All in all, in the moment you have only 2 options if you are one the more and more raising group of website builders who need a theme decoupled logo setting: a) implement a custom branding block which animates the behaviour of the cores branding block but with custom logo placement (that's what we do here). But then you miss the great SEO implementation Drupal already provides by placing the logo and the home link in it perfectly rendered already in the correct way. Or b) you use the same theme multiple times but with different logos and need to find a way to show the themes under your given conditions. Which is kind of overload performance and cache wise. Both are not ideal. And it always feels weird to see a branding block combining logo and branding already correctly, while the settings are still split in UI into theme and basic site settings.

Steps to reproduce

Try to start a Drupal project which needs to switch themes under certain conditions but using the same logo. Or vis versa where you need one Drupal installation to manage multiple sites (projects) with different logos but with the same theme. Or try to implement a log which holds language specific elements. While there are always workarounds and steps to get it done, it is not ideal and partly confusing. You usually would assume to add branding informations of a company like name, slogan and logo on one place and not on 2 different places.

Proposed resolution

Make logo settings theme independent.

Remaining tasks

There is a huge list of logo issues in the core issue queue which partly can be solved far better under a theme independent logo settings concept.

User interface changes

Move logo settings from theme settings to a better place in context to site settings and branding or blocks.

API changes

None.

Data model changes

Not sure.

Release notes snippet

Depends on the final decisision where to best place logo settings independent from theme.

✨ Feature request
Status

Active

Version

11.0 πŸ”₯

Component
SystemΒ  β†’

Last updated 2 days ago

No maintainer
Created by

πŸ‡©πŸ‡ͺGermany diqidoq Berlin | Hamburg | New York | London | Paris

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.69.0 2024