• Stars
    star
    2,037
  • Rank 22,608 (Top 0.5 %)
  • Language SCSS
  • License
    MIT License
  • Created almost 11 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A simple, beautiful Jekyll theme that's mobile first

Pixyll

pixyll.com

Pixyll screenshot

Pixyll is a simple, beautiful theme for Jekyll that emphasizes content rather than aesthetic fluff. It's mobile first, fluidly responsive, and delightfully lightweight.

It's pretty minimal, but leverages large type and drastic contrast to make a statement, on all devices.

This Jekyll theme was crafted with <3 by John Otander (@4lpine).

中文版 https://github.com/ee0703/pixyll-zh-cn.

Getting Started

If you're completely new to Jekyll, I recommend checking out the documentation at https://jekyllrb.com/ or there's a tutorial by Smashing Magazine.

$ git clone [email protected]:johno/pixyll.git
$ cd pixyll
$ gem install bundler # If you don't have bundler installed
$ bundle install

Verify your Jekyll version

It's important to also check your version of Jekyll since this project uses new baseurl features that are only supported in 3.3+.

Fork, then clone

Fork the repo, and then clone it so you've got the code locally.

Modify the _config.yml

The _config.yml located in the root of the Pixyll directory contains all of the configuration details for the Jekyll site. The defaults are:

# Site settings
title: Pixyll
email: [email protected]
author: John Otander
description: "A simple, beautiful theme for Jekyll that emphasizes content rather than aesthetic fluff."
baseurl: ""
url: "https://pixyll.com/"

# Build settings
markdown: kramdown
permalink: pretty
paginate: 3

Jekyll Serve

Then, start the Jekyll Server. I always like to give the --watch option so it updates the generated HTML when I make changes.

$ jekyll serve --watch

Now you can navigate to localhost:4000 in your browser to see the site.

Using Github Pages

You can host your Jekyll site for free with Github Pages. Click here for more information.

A configuration tweak if you're using a gh-pages sub-folder

In addition to your github-username.github.io repo that maps to the root url, you can serve up sites by using a gh-pages branch for other repos so they're available at github-username.github.io/repo-name.

This will require you to modify the _config.yml like so:

# Site settings
title: Repo Name
email: [email protected]
author: John Otander
description: "Repo description"
baseurl: "/repo-name"
url: "https://github-username.github.io"

# Build settings
markdown: kramdown
permalink: pretty
paginate: 3

This will ensure that the the correct relative path is constructed for your assets and posts. Also, in order to run the project locally, you will need to specify the blank string for the baseurl: $ jekyll serve --baseurl ''.

If you don't want the header to link back to the root url

You will also need to tweak the header include /{{ site.baseurl }}:

<header class="site-header px2 px-responsive">
  <div class="mt2 wrap">
    <div class="measure">
      <a href="{{ "/" | relative_url }}" class="site-title">{{ site.title }}</a>
      <nav class="site-nav">
        {% include navigation.html %}
      </nav>
    </div>
  </div>
</header>

A relevant Jekyll Github Issue: jekyll/jekyll#332

Contact Form

The contact form uses https://formspree.io/. It will require you to fill the form out and submit it once, before going live, to confirm your email.

More setup instructions and advanced options can be found at https://formspree.io

Disqus

To configure Disqus, set up a Disqus site with the same name as your site. Then, in _config.yml, edit the disqus_shortname value to enable Disqus.

Customizing the CSS

All variables can be found in the _sass/_variables.scss file, toggle these as you'd like to change the look and feel of Pixyll.

Page Animation

If you would like to add a fade-in-down effect, you can add animated: true to your _config.yml.

AnchorJS

AnchorJS: A JavaScript utility for adding deep anchor links to existing page content. AnchorJS is lightweight, accessible, and has no dependencies. You can turn it on by toggling enable_anchorjs. Because it offers many ways for customization, tweaks should be done in _includes/footer.html. Default settings after turning AnchorJS on are:

<script>
    anchors.options.visible = 'always';
    anchors.add('article h2, article h3, article h4, article h5, article h6');
</script>

See documentation for more options.

Put in a Pixyll Plug

If you want to give credit to the Pixyll theme with a link to https://pixyll.com/ or my personal website https://johno.com/ somewhere, that'd be awesome. No worries if you don't.

Web analytics and search engines

You can measure visits to your website either by using Google Analytics tracking embed or the more advanced Google Tag Manager container.

  • For Google Analytics set up the value for google_analytics, it should be something like google_analytics: UA-XXXXXXXX-X or google_analytics: G-XXXXXXX depending on whether you are using universal analytics or not.
  • For Google Tag Manager set up the value for google_tag_manager, it should be something like: google_tag_manager: GTM-XXXXX.
  • Do not set both of above methods because this will cause conflicts and skew your reporting data.
  • Remember that you need to properly configure the GTM container in its admin panel if you want it to work. More info is available in GTM's docs.

Your website is, by default, set to be allowed for crawling and indexing by search engines. (Unless you made yourself a custom robots.txt file). You can use front matter settings on each page to control how search engines will it. Sometimes you may want to exclude a particular page from indexing or forbid Google to store a copy of your page in its cache. It is up to you. Use the meta_robots frontmatter key and assign values based on this table. Some examples:

# exclude page from index
meta_robots: noindex

# allow indexing, disallow caching
meta_robots: noarchive

# allow indexing, disallow crawling links
meta_robots: nofollow

# disallow indexing, follow links
meta_robots: noindex,follow

In order to get more information about your website's status in search engines, you can register it in Google Search Console and/or Bing Webmaster Tools. Both these tools will ask you to authorize your website with them and there are couple of ways to do that. Pixyll supports verification via meta tags - just fill in values for google_verification and/or bing_verification in _config.yml, the verification strings and meta tags will then be added automatically.

If search engine optimization is your thing, you can also set up meta_description values for each page/post. By default Pixyll uses summary to populate the <meta name="description" content="..."> tag and falls back to description from _config.yml if summary is not present in page/post's front matter. The summary is also used for generating Open Graph tags. Why would you want to use a dedicated variable for meta description? Because character limit to properly display this description in search results (as a snippet) is way smaller than in Open Graph. It is recommended to keep it at 155-160 characters, for more in-depth info read this article.

And lastly - if you happen to write in language other than English be sure to change og_locale in _config.yml to reflect it.

Progressive Web App

Pixyll supports features of a progressive web app (PWA). As a PWA, your site's home page can be installed as a shortcut or an app icon on a mobile device. Also, certain assets are cached so the site can be accessed should the device be offline from the network.

Pixyll supports these features because it provides a Javascript file that acts as a service worker in the browser and has a JSON file with a web manifest. By default, these are configured to the settings of Pixyll, but you should consider cutomizing them to your specific site:

  1. Provide a different version of splash-512x512.png which is the loading screen for your offline app.
  2. A favicon-192x192.png for the app icon (if you haven't already).
  3. In sw.js, list any other files or pages you want to add to the list of cached artifacts.

For more information on PWAs:

Enjoy

I hope you enjoy using Pixyll. If you encounter any issues, please feel free to let me know by creating an issue. I'd love to help.

Upgrading Pixyll

Pixyll is always being improved by its users, so sometimes one may need to upgrade.

Ensure there's an upstream remote

If git remote -v doesn't have an upstream listed, you can do the following to add it:

git remote add upstream https://github.com/johno/pixyll.git

Pull in the latest changes

git pull upstream master

There may be merge conflicts, so be sure to fix the files that git lists if they occur. That's it!

Thanks to the following

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Forking

There is a guide to forking Pixyll.

More Repositories

1

furtive

A forward-thinking, lightweight, css microframework
HTML
609
star
2

immutable-css

A css linter for immutable selectors
JavaScript
376
star
3

digital-garden

🌻[WIP] Gatsby Theme to build your own digital garden 🌻🥀🌸
JavaScript
216
star
4

gatsby-theme-documentation

A minimalist Gatsby Theme for documentation sites built with MDX and Theme UI
JavaScript
133
star
5

get-contrast

Get the contrast ratio and WCAG score between two colors in order to ensure accessibility
JavaScript
80
star
6

actions-push-subdirectories

Push subdirectories in a monorepo to separate, read-only repositories
Shell
61
star
7

deleted

A slightly different user experience for hard deletes.
JavaScript
58
star
8

random-a11y-combo

Get a random accessible color combination
JavaScript
50
star
9

ember-cli-gravatar

An Ember component for gravatar image tags
JavaScript
45
star
10

domain-regex

A regular expression for most valid domains (including the latest TLDs)
JavaScript
39
star
11

normalize-email

Normalize + and . emails -- [email protected] => [email protected]
JavaScript
36
star
12

ember-faker

Ember addon for including fake data in your app for testing or prototyping.
JavaScript
35
star
13

css-properties

List of all CSS properties
JavaScript
30
star
14

ember-remarkable

Ember addon for Remarkable markdown parsing helpers and components.
JavaScript
26
star
15

ruby_optimization_techniques

An Analysis of Ruby Optimization Techniques
CSS
23
star
16

scrutinize

Scrutinize a url by analyzing css, html, a11y, images, pagespeed, etc.
JavaScript
23
star
17

gatsby-theme-glossary

A minimalist Gatsby Theme for a glossary built with MDX and Theme UI
JavaScript
22
star
18

ember-linkify

Linkify urls in an Ember app with a fancy helper
JavaScript
22
star
19

gh-pinned-repos

Get the pinned repos for a github username
JavaScript
20
star
20

generator-p

A minimal yeoman generator for npm packages.
JavaScript
19
star
21

random-a11y-api

API for random-a11y
Ruby
19
star
22

rework-flex-grid

Rework CSS plugin for generating custom, lightweight flex grids.
JavaScript
19
star
23

postcss-remove-prefixes

Remove CSS vendor prefixes from your source.
JavaScript
19
star
24

gatsby-themes

[WIP] A collection of Gatsby themes
JavaScript
17
star
25

ember-cli-dates

Ember date helpers with locale support.
JavaScript
17
star
26

do-not-disturb

Turn on do not disturb mode for OS X
JavaScript
15
star
27

postcss-shorthand-expand

Remove shorthand properties in your CSS
JavaScript
14
star
28

ember-cli-loading

An Ember addon for SVG loading components.
Handlebars
14
star
29

ember-cli-material-design-icons

Components for Google's Material Design Icons library
JavaScript
13
star
30

clrs

A nicer color palette for Rails apps.
CSS
13
star
31

basscss-rails

Include BASSCSS in your Rails apps.
CSS
11
star
32

hypertosh

[WIP] HyperTerm theme with a nostalgic flair
JavaScript
11
star
33

gray

A grayscale color palette for prototyping the web.
CSS
11
star
34

nt

The minimal note taking script
Shell
11
star
35

egghead-lessons

HTML
10
star
36

mqify

Turn a css string and media query config into classes for each breakpoint
JavaScript
10
star
37

gulp-remarkable

A gulp wrapper for the remarkable markdown parser (CommonMark spec).
JavaScript
10
star
38

archivable

Archive your Rails models rather than delete them
Ruby
9
star
39

pundit

[WIP] Minimal authorization through a plain old JavaScript object
TypeScript
9
star
40

style-hooks

[WIP] Experimenting with pure JS styles using React Hooks
JavaScript
9
star
41

gatsby-theme-austere

A minimal blog theme built for those wanting to focus on their writing
JavaScript
9
star
42

ember-mailcheck

Suggest a domain when your users misspell it in an email address with mailcheck.js.
JavaScript
9
star
43

ruled

App to create debug grids using css and background properties
JavaScript
8
star
44

web-cannon

Useful information to reference while building websites for humans
8
star
45

fc

[WIP] A pleasurable snow tracking experience
JavaScript
8
star
46

ember-cli-pure

An Ember addon for including Pure CSS.
JavaScript
8
star
47

humanize-list

Comma delimit an array for human readability. The Oxford comma is optional.
JavaScript
8
star
48

shtml

[WIP] Style shell output in an html-like fashion
JavaScript
7
star
49

postcss-get-variables

PostCSS plugin to get an object containing CSS variables and their values.
JavaScript
7
star
50

coinr

Get latest ticker information for popular cryptocurrencies
JavaScript
7
star
51

gulp-css-scss

Gulp plugin for converting CSS to Scss.
JavaScript
7
star
52

urls_for_humans

Apply persistent, meaningful urls to your Rails app.
Ruby
7
star
53

random-hex-color

Generate a random hex color
JavaScript
7
star
54

jekyllsupply

A collection of the highest quality, open source Jekyll themes.
CSS
7
star
55

is-blank

Check whether a value is empty or blank, includes string whitespace support.
JavaScript
7
star
56

turn-it-off-and-on-again

A CLI tool to turn bower/npm off and on again.
Shell
6
star
57

johnotander.github.io

Where johnotander.com lives
6
star
58

draper_example

An example that uses the Draper gem for Rails Decorators.
Ruby
6
star
59

ember-flex-grid

Ember components for a responsive, mobile-first grid system based on flex.
JavaScript
6
star
60

get-classes-from-html

Get an array of classes from HTML
JavaScript
6
star
61

night-shift

Toggle OS X Night Shift
JavaScript
5
star
62

gulp-class-prefix

Add a class prefix to further sandbox CSS styling for third-party imports.
JavaScript
5
star
63

is-minified

Check whether a CSS or JS string is minified.
JavaScript
5
star
64

papyrus

[WIP] A minimalist browser built for readability
JavaScript
5
star
65

get-inline-styles

Get inlined CSS from an HTML string.
JavaScript
5
star
66

immutable-css-cli

CSS linter for immutable selectors.
JavaScript
5
star
67

css-variable

A CSS variable transformer, supports Less, Sass, stylus and custom properties
JavaScript
5
star
68

get-query-param

Get a particular query param from a url
JavaScript
4
star
69

browser.css

An awesome CSS and HTML browser window for debuting apps.
CSS
4
star
70

dot-com-jokes

Considerations from @dougwig and @nickbender
JavaScript
4
star
71

prettify-html

[WIP] Prettify your html
JavaScript
4
star
72

styled-api

[WIP] Constraint based styling api based on styled-system
JavaScript
4
star
73

movaxfc.com

[WIP] JAMStack website for Movax FC using Gatsby, Theme UI, and Airtable
JavaScript
4
star
74

is-present

Check whether a value is present (nonblank).
JavaScript
4
star
75

pseudo-elements

List of all CSS pseudo-elements.
JavaScript
4
star
76

chalk-rainbow

Get a colorful rainbow string using chalk
JavaScript
4
star
77

whois-cli

Node CLI to get WHOIS data for a given url
JavaScript
4
star
78

gatsby-starter-documentation-tomato

A minimalist starter for gatsby-theme-documentation
JavaScript
4
star
79

get-readme

Retrieve the readme contents from a directory
JavaScript
4
star
80

atom-underline-trailing-whitespace

An Atom package for providing a visual cue for trailing whitespace with a subtle underline.
CSS
4
star
81

emojiweather

Get the closest emoji representation of the weather
JavaScript
4
star
82

postcss-select

Filter CSS based on a given list of selectors
JavaScript
4
star
83

is-mac

Check whether a string is a valid MAC address.
JavaScript
3
star
84

css-color-list

Get a list of all named CSS colors.
JavaScript
3
star
85

dom-stats

Parse and return statistics for an html string
JavaScript
3
star
86

pseudo-classes

Get a list of all CSS pseudo-classes
JavaScript
3
star
87

gatsby-theme-example-component-extending

Gatsby Themes example using component extension via shadowing
JavaScript
3
star
88

email_format

Validates the email format with the email_regex gem.
Ruby
3
star
89

postcss-class-repeat

Repeat class selectors to increase specificity
JavaScript
3
star
90

gatsby-starter-digital-garden-dark

A Gatsby starter for your own dark-mode digital garden
JavaScript
3
star
91

normalize_url

Elixir package to normalize urls
Elixir
3
star
92

ember-cli-rework

Use Rework CSS postprocessing in your Ember app.
JavaScript
3
star
93

dotfiles

Dotfiles, ftw
Shell
3
star
94

updatr

[UNMAINTAINED] A script for updating all the things: node, npm, brew, rvm, jekyll, etc.
JavaScript
3
star
95

get-css-urls

Get CSS urls from a string.
JavaScript
3
star
96

tosh

[WIP] Build out your React UI with a nostalgic flair
JavaScript
3
star
97

rails_pg_restore

CLI to restore a Rails PostgresQL database from a backup. Infers db config from config/database.yml.
Ruby
3
star
98

actions-yarn

GitHub Actions for yarn with support for lerna
Dockerfile
3
star
99

svg-spin

Experiments with svg spinning
JavaScript
3
star
100

gatsby-starter-tosh

A blog starter for the Tosh Gatsby Theme
JavaScript
3
star