Choose between Blank & Luma
Knowing whether to override a Luma or Blank really comes down to what's included in both of these core themes. If we look at Luma, there is some base styling in the header and drop down menus, big background images, and additional elements and features such as hover events. And if we keep looking at this, there are just extra design elements that aren't prevalent in Blank.
Now if we take a look at the blank theme, we can see it's much cleaner and more streamlined and there's a lot less styling going on in the header. And if we check out one of these category pages, hover events do not trigger. The styling is very simplistic and basic, and this is on purpose. It’s because Magento created the blank theme under the intent that you will use it to build other custom themes.
Let's also check out the code of both of these themes. If we check out blank, we will see there are minimal files in these directories. And all of these sub directories of the modules just define very basic styles for each of these modules. And if we take a look at some of these files in
web/css, it's very streamlined. There are just email, print and base styles in this theme. And the source directory contains just a very basic styling for all of these component elements in Magento.
Now if we take a look at the Luma theme and find out what's going on, there is just the one
view.xml file that just sets various settings for Luma. But if we go in to this
web/css directory, and then in
source, there are additional files and variables in all of these LESS files. These are additional files that go above and beyond those basic styles in blank.
Because of this, it's actually really hard to extend the Luma theme when creating a custom theme. You would much much rather extend blank.
If we take a look at the
theme.xml file, you can see that even Luma extends blank. Luma is really just meant to be a default theme that sets some base styling and makes things look okay in a demo install of Magento, but it was really never intended to be overwritten. This is why you will always want to use the blank theme when creating your own custom theme.
You will rarely if ever choose to not inherit from a parent theme because the blank theme just sets up tons of default styling that will be very, very hard for you to set up in a completely custom theme.
So that's my advice; always use blank, always use the base styles that it provides you, and then override blank as necessary to customize the theme as you wish.
And now that this is all out of the way, let's go ahead and start creating our theme with a custom logo.