0
votes

I am new to drupal but have experience in creating themes for other CMS and application front end. I want to create a theme in drupal for one of our project. Not sure if I should start developing theme from scatch or use any theme as base theme and then create sub theme from it. can anyone tell me which would be better?

Most of the layouts and css have to be customized if I am using sub theme. Only benefit that i see is, we will get a working theme folder if I got with this approach. My concern with this approach is also that if we forgot to override base theme functionality in sub theme, it can cause issues when base theme updates in future.

Also, is it very difficult to create theme from scratch?

1
If you have base theme very similar to what you need and you don't have much time I would suggest to use base theme. Other way go for custom theme. It's not that difficult and you'll learn something new.MilanG

1 Answers

0
votes

Decision is usually project based.

Base theme subtheming will get you up and running quickly as lots of "components" are already themed for you and lots of other Drupal intricacies have already been built for you. If you start developing with subtheme you should look at the base theme and see what it offers that you might need. Sometimes using a base theme feels like you are UNDOING most or all defaults of the base theme and this is probably an indication to start from scratch.

Custom theme from scratch gives you greater control but requires deeper knowledge of twig and intricacies of Drupal 8 to achieve a functional theme. You will have to theme all used "components" yourself and you probably have to redo spend more time for a basic version but you will also not have any fear of any update breaking your theme.

Even your custom theme will probably need to use stable or classy as base theme which gives you appropriately named classes and minimal css. Here is a document on how to decide which to use

If you are not that experienced with twig and preprocessing functions you might want to consider a more advanced base theme first (i.e. bootstrap, omega, adaptive, zen or other).