Magento 2 themes are located in app/design/ and vendor folders. Each Magento 2 theme is connected to a certain area. Themes for admin panel are located at app/design/adminhtml folder, while app/design/frontend contains themes for frontend.
Themes in app/design are located at
<area>/<ThemeVendor>/<theme_name> folders, where
<ThemeVendor> is written with a capital letter in camelCase format,
<theme_name> in lowercase. For example:
Themes in /vendor are located at the following path
/vendor/redchamps/theme-frontend-my-theme, where redchamps/theme-frontend-my-theme is the composer package name. Similar to modules, there are no requirements to composer package name, but for simplicity, it is better to name them as
Further in the next, we will use <theme_dir> to define the theme root directory, for this directory can be located both in app/design and in the vendor.
A mandatory file that registers a theme in Magento.
A mandatory file with the theme configurations, like the name of the theme and its parent.
Contains theme configuration files.
Contains composer package configuration.
Contains RequireJS config.
Contains theme css/js/fonts files.
Contains theme media files.
Common template for override view module files. For example, RedChamps_CustomModule. Inside the directories and files, the structure is similar to view/<area>/ folder inside the module (for example, app/code/RedChamps/CustomModule/view/frontend)