Change record status: 
Project: 
Introduced in branch: 
9.0.x
Introduced in version: 
9.0.0
Description: 

Classy will be moved to contrib prior to the release of Drupal 10.0.0. Before that, we have to remove dependencies on Classy from all core themes. Until now, Bartik, Claro, Seven, and Umami extend Classy. From Drupal 9.0.0 on, these themes will not extend Classy anymore. As part of the process, we're copying all templates and libraries not already overridden from Classy to these themes. As a result, the markup and CSS will remain the same.

Bartik, Claro, Seven, and Umami are part of the product rather than the API and therefore it is not officially supported to extend them. These themes can change as part of a minor release and cause regressions to any themes extending them. However, if you maintain a theme that is extending Bartik, Claro, Seven, or Umami and you are using libraries extend or override to make changes to libraries in Classy or Stable, you will have to move these libraries to target another library from one of these themes or from Drupal core modules. Any templates extending Classy or Stable will also have to be modified to target either template from the theme you are extending, or from Drupal core modules.

This doesn't impact themes that are directly extending Classy or Stable.

Impacts: 
Themers
Updates Done (doc team, etc.)
Online documentation: 
Not done
Theming guide: 
Not done
Module developer documentation: 
Not done
Examples project: 
Not done
Coder Review: 
Not done
Coder Upgrade: 
Not done
Other: 
Other updates done

Comments

gaboo’s picture

"These themes can change as part of a minor release and cause regressions to any themes extending them" that is not very developer friendly, and not the current state, and will complicate life of drupal users.

MacMladen’s picture

If I understood @lauriii everything will still be there, only Classy and Stable will move to Contrib space and core themes will not extend but be self-contained and therefore more independent from external changes (although every core theme maintainer will have to track changes by him/herself not relying on others work).

But developerly speaking, who is using core themes anyway for anything else than prototyping or learning? Of course, we are building our own stuff and for those inclined, there are a ton of contributed (along distributions).

So I personally applaud the change and hope effort will better be used to improve theme developer experience, tooling and workflow rather than frontend work.

As already many times stated, Bartik has been long in the tooth even in 2011 not to mention a decade later (a decade in IT terms!)

Therefore I wholeheartedly support an effort for the new Drupal 9 default theme Olivero https://www.drupal.org/project/ideas/issues/3088378

_______________
Use Brain. Use Mac.

Mladen Đurić
Koder, Professional Development School

Darren Oh’s picture

I don’t see anything about Stable moving to contrib.

minneapolisdan’s picture

It's confusing because the text above does reference Stable along with Classy:

However, if you maintain a theme that is extending one of these themes and you are using libraries extend or override to make changes to libraries in Classy or Stable, you will have to move these libraries to target another library from one of these themes or from Drupal core modules. Any templates extending Classy or Stable will also have to be modified to target either template from the theme you are extending, or from Drupal core modules.

Dan Moriarty
Creative Director and CEO, Electric Citizen
Twitter: @minneapolisdan

Begun’s picture

I am also a little confused by the wording in this announcement. Are Stable sub-themes affected by this?

jwilson3’s picture

As others have mentioned, the phrasing where Stable is mentioned is confusing, and needs to be elaborated on further.

Bartik, Claro, Seven, and Umami are part of the product rather than the API and therefore it is not officially supported to extend them. [...] If you maintain a theme that is extending one of these themes and you are using libraries extend or override to make changes to libraries in Classy or Stable, you will have to move these libraries to target another library from one of these themes or from Drupal core modules.

It is unclear what is meant by extending Bartik, Seven, Umami or Claro. Does it mean that my theme is a sub-theme of one of these themes?

// Pseudo code representation of this statement
X = my base theme is Bartik, Seven, Umami or Claro
Y = my theme uses libraries extend/overrides from libs defined in Classy 
Z = my theme uses libraries extend/overrides from libs defined in Stable
if X and (Y OR Z) then 
  change deps
endif

Although Stable is mentioned here, it is mentioned in reference in a logic block that makes it sound like it will only be impacted if your base theme is Bartik, Seven, Umami or Claro. The rest of the CR is exclusively about what to do if you use Classy, and there is no mention of Stable.

It sounds like in many people's cases, their base theme is Stable — then only Z may be true which makes the logic block false, and so as I understand it the people that sub-theme and/or extend/override libraries from Stable won't need to change anything. Correct?

lauriii’s picture

I updated the change record to specifically explain that only themes that extend Bartik, Seven, Umami or Claro are affected by this. Sorry for the confusion.

jwilson3’s picture

Thank you for the clarification and your continued dedication to the Drupal core frontend. Cheers.

For those following along here, Lauriii added the following statement above to clarify all this.

This doesn't impact themes that are directly extending Classy or Stable.

altrugon’s picture

The reason behind Stable it was to have a "blank canvas" right on core that we could use as base when creating our own themes. I personally asked to webchick back in the days when D8 was still in early stage at one of the DrupalCons, back then you always have to use a contrib theme as starter. Now Classy is just Stable with the class property values, which I consider it a huge time saver as I don't have to go and override every single template in order to get some classes for the styling.

Bartik, Claro, Seven, and Umami, are not "blank canvas", they all give you an style and it make sense they are part of the product rather than the API, however you don't get any style when you use Stable or Classy, and that is why it doesn't make sense they are not going to be part of core.

Are we regressing and we will have to use contrib themes again?

-------------------------------------------------
take a look -> www.altrugon.com

lauriii’s picture

Classy won't be moved to contrib until there is something to replace it in core. We still believe that providing default markup out of the box will remain valuable in future. However, we believe that a starterkit theme would be a better way to ship this. See this issue for more details on that and feel free to give feedback on that: https://www.drupal.org/project/drupal/issues/3050378.