cvless

Cvless is a theme for static websites built with Jekyll. It aims for simplicity and readability by following best practices of graphic design, like the use of high contrast, law of proximity, and responsive layout. Its typography is based on the Piazzolla system, which performs extremely well over a wide range of font sizes.

The main aesthetic feature of the theme is the use of particles.js in the home and the 404 pages. In addition, the theme includes a well-designed CV page. Printing this from browser automatically adapts the layout for a more traditional appearance, so you no longer have to maintain a separate CV for offline distribution. Finally, the theme offers a simple and easily extensible blog.

Light and dark modes are available. The theme initializes based on system preferences and stores the user's preference for the duration of the session.

See the demo to get a better sense of what the theme looks like.

Installation

The theme can be installed as usual by cloning this repository and editing the files. However, it is far more convenient to install it as a gem, in which case all the files you do not want or need to customize remain hidden from view, but will still be read and processed during build.

If you choose to install the theme as a gem, your site should include at a minimum the following files:

.
├── 404.md
├── _config.yml
├── Gemfile
├── cv.md
└── index.md

To install the theme, you can then add this line to your Gemfile:

gem "cvless"

And this line to _config.yml:

theme: cvless

The easiest way to set up a new website in this way is to clone the contents of the demo folder. This provides a working set of files to get you started. You can remove what you will not use, such as the contents of the _posts folder.

After you are done creating the basic files, run bundler:

$ bundle

Or install the gem yourself as:

$ gem install jekyll-nagymaros

To customize hidden files, you can create new files with the same names and paths. For example, to change the layout of the index page, you can create a _layouts folder and a file index.html within this folder that contains your custom code. During build, Jekyll will give priority to your files over the theme's.

Usage

Basic configuration occurs in _config.yml. This contains site variables such as title, tagline, url, and repository address, as well as the author's name and email address for inclusion in blog posts. You can specify the path to an avatar for inclusion in the home (optional).

More advanced configuration requires altering some files that are not included in the demo template and are hidden in the original theme. There are three files you might want to customize. First, you could change icon links in _includes/particles-home.html and add/remove icons as needed. You may add icons that are not included in the theme by default. For more information on how to do this, see this post.

Second, you might want to edit the style variables specified in _sass/_variables.scss. These allow you to customize the theme's color scheme and typefaces. There are many resources on the web to learn the principles of good web design. I personally recommend Matthew Butterick's Practical Typography.

In addition to these files, you can customize favicons in the assets folder. For that, favicon.io is an excellent tool. You can also change the particles.js configurations in assets/js/particles.json. The library homepage features an interactive tool from which you can export a new configuration.

Local development

The demo folder includes a docker-compose file that allows you to quickly setup a container running Jekyll. If you don't already have Docker and Docker Compose installed, you can install them using the following guides:

To start the container simply run:

docker-compose up

Alternatively, you can run the container without Docker Compose using this command on iOS/Linux:

docker run -p 4000:4000 -v $(pwd):/site bretfisher/jekyll-serve

Credits

The theme draws in one way or another from the following projects:

Bugs

If you find any problem using this theme, please open an issue.