About 2 months ago I released this theme you're seeing for ghost. A few people asked me how to cosmosize fonts, css, etc. so I thought I'd write a brief summary of how to edit this theme.

I suggest creating a fork of phantom on GitHub and clone your fork into your ghost installations theme directory: ghost/content/themes

First and most importantly open partials/analytics.hbs, swap the UA-XXXXX-X code with your Google Analytics code. If you don't use Analytics remove the partial inclusion from default.hbs.
Open partials/disqus.hbs and swap the shortcode with your Disqus shortcode. Again if you don't want to use comments on your blog remove the partial inclusion from post.hbs.
Change the links in partials/sidebar.hbs to your social media profiles.

This should be enough to use the theme as it is. If you need to change it furhter read ahead.
You need Node with NPM (required for Ghost anyway), Grunt and the ruby gem SASS installed on your system to build the theme. From this point on I assume that you know what npm and Grunt is.
In the fresh cloned repo run

npm install
grunt dev

In another terminal window start the ghost server, login and change the theme to phantom. You can now make your changes, reload the page or use Livereload to see them.


Say you want to add or change some social media icons. Open assets/scss/_fonts.scss The first 3 @font-face declarations are for typography, everything below belongs to the font icons. Go to fontello.com press the settings button and choose Import. Select the config file located in assets/fonts/config.json. This imports all the icons I used. You can now edit them or just roll your own icon set. You can then download the now icon pack copy the fonts from font/ to fonts/ in the repo. Open css/phantom.css from the zip and paste it below the typography @font-face declaration. You need to change the urls from font to fonts. You can now use the now font icons.


If you're done with your editing and want to publish it kill the grunt dev command und run

grunt build

This compiles the scss to css and checks your Javascript (if you've written some) for jshint errors. If the build succeeded you're good to go to take the whole directory and publish it to your production ghost server.

I use rsync to upload it via ssh. Take a look at the rsync and release task in my Gruntfile.js.