File structure

In this section we explain the role of each folder.

Html

In the html/ folder you'll find all of the html templates in the pages/ subfolder.

Images

img/ holds all of the images and SVG's. Inside this folder there are other folders such as /img/blog which hold images based on the name of the folder.

When running gulp build these images will be moved to the dist/assets/img folder and they will be optimized. Check out our Gulp section if you want to disable this feature.

JS

In the js/ folder you'll find two important files. One of the is spaces.js where you will find the custom Javascript written by the Themesberg team. Here you can write your custom Javascript. We have jQuery included as well.

Scss

scss/ is one of the most important files in our product. Here you'll find two folders and one important file:

scss/bootstrap is the scss code from Bootstrap 4. As our product is an extension of the Bootstrap 4 components, we made use of the variables and mixins provided by them.

scss/spaces holds the variables, mixins and custom components developed by Themesberg for Spaces.

spaces/mixins is where you can find the custom mixins developed by us similar to the ones from Bootstrap 4.

spaces/utilities has styles for custom helper classes for spacings, borders, shadows and many more.

spaces/vendor is the folder that holds styles for the external libraries we use for Spaces. We use them here so that there will be only one minified css file. This way the files will load faster.

*.scss The remaining files are the styles used for each component from Spaces.

spaces.scss is where all the other scss files are imported. This file is later used in gulpfile.js to compile the code in CSS.

Other files

gulpfile.js is where you'll find the Gulp functions that generate, compile and serve our code.

index.html is the main html template.

package.json holds the theme dependencies.

README.md can never miss from a project. Here you can find basic information regarding the software we've developed.

.gitignore is used to ignore folders such as node_modules or dist if you have a git instance.

Generated folders

These folders are generated by using Gulp commands. Check them out here.


Dist

The dist/ folder will be generated when running the gulp build:dist command. You'll find html, js and css code in a minified state. Ideally you shouldn't modify the content of these files, as they are supposed to be the generated code that you'll use to go live.

Html&Css

The html&css/ folder can be generated by running gulp build:dev. This folder will have all the necessary files, unminified files of the project. We recommend to use this folder if you want a copy of the theme without Sass, Gulp or npm.

.temp

You might be wondering what the .temp/ folder is all about. Long story short you don't have to worry about it, as you shouldn't modify files from there. It is dynamically generated by Gulp to serve the files to a local server through BrowserSync and show you how the product will look when it will finally get generated for production.

CSS

The css/ folder is generated by gulp as it holds the compiled scss files. These files are automatically included by our html templates.

We recommend you to use scss as it is a powerful language where you can change variables to update colors, shadows, font families to your liking. If you choose otherwise, you can modify the main spaces.css file by writing simple CSS.

Warning: if you write your own CSS in the spaces.css file and run gulp it will override your file based on what the scss files hold.

node_modules

The node_modules/ folder is generated based on the dependencies added in package.json.