Create a Theme Package

As stated previously, rather than using the default starter theme that we selected during the setup process (i.e. @frontity/mars-theme) we are instead going to develop a custom theme from scratch. To do this we need to create a new package for our theme's code. As it's our first ever theme let's call our theme "my-first-theme".

NOTE: Before continuing you may need to stop the dev server process that we ran previously with CONTROL+C.

To create a package run the following command in the terminal:

> npx frontity create-package my-first-theme

You will be prompted to specify the namespace to use. Since you are creating a theme you can use the default theme, so you can just press Enter at this point.

Creating a package

When the process is complete you will have a new directory called /packages/my-first-theme. This is where we will be doing most of our work to build the theme.

Structure of a newly created package

The first thing we'll do is to remove @frontity/mars-theme from our settings and replace it with my-first-theme.

Remove the following from the file frontity.settings.js:

// File: /frontity.settings.js
name: "@frontity/mars-theme",
state: {
theme: {
menu: [
["Home", "/"],
["Nature", "/category/nature/"],
["Travel", "/category/travel/"],
["Japan", "/tag/japan/"],
["About Us", "/about-us/"]
featured: {
showOnList: false,
showOnPost: false

And replace it with:

// File: /frontity.settings.js
name: "my-first-theme"

We've now told Frontity to use our new theme rather than "mars-theme". Save the file and then run this command again:

> npx frontity dev

If you see this in your browser then everything is working. Hooray! 🙌

Frontity in the browser

Check you're on the right track by comparing your changes with the ones in this commit.