Fanstatic packaging of CSS3 GitHub Buttons

fanstatic, css3, buttons, github
pip install css.css3githubbuttons==2.1




This library packages CSS3 GitHub Buttons for fanstatic. Check out a demo of this library - it's really nice. This library provides the default buttons and various extensions as per the demo. As a bonus, this library also packages up minified versions of the library's CSS.

There's a lot of versions of this CSS library floating around, so we're currently using the one provided by CodeFusion, a fork of the library originally provided by necolas, on GitHub.

If development moves elsewhere, we can adjust the library accordingly. If you're using this package and notice a change in development at https://github.com/CodeFusion/css3-github-buttons/network (such as someone has taken over development more than original author or is otherwise doing more work) before we do, let us know or send a pull request.


Install using your favourite method (pip, easy_install, buildout, etc) and then in your code do this:

import css.css3githubbuttons

This requires integration between your web framework and fanstatic, and making sure that the original resources (shipped in the resources directory in css.css3githubbuttons) are published to some URL.

For Pyramid, this can be as simple as installing and utilising pyramid_fanstatic.


CodeFusion has provided a number of improvements and extensions to the original library. This Fanstatic package provides access to these extensions like so:

from css.css3githubbuttons import buttons_ext_sizes, buttons_ext_icons, buttons_ext_all

For extra button sizes (see http://demo.codefusionlab.com/css3-github-buttons/ext_button_size/index.html):


For extra (larger) icons (see http://demo.codefusionlab.com/css3-github-buttons/ext_button_icons/index.html):


Or for everything, do this:


Keep in mind that extensions automatically depend on the original CSS so you don't need to need() that again!

Updating this package

Given this package uses the latest (at the time of writing) GitHub master of the CSS library, it may (will) need updating at some point.

This process requires installation of the package for development - the suggested method to do this is via the Buildout within this package:

cd css.css3githubbuttons
python boostrap.py

For minification of resources to succeed, you require a Java installation as this process uses the YUI Compressor library (via the minify and yuicompressor Python packages).

Do this at the base of the repository:

pushd css/css3githubbuttons/resources
wget https://github.com/CodeFusion/css3-github-buttons/archive/master.tar.gz
rm -rf css3-github-buttons
tar xf master.tar.gz
rm master.tar.gz
git mv css3-github-buttons-master css3-github-buttons
git add css3-github-buttons
#Minify the CSS
python setup.py minify_buttons
python setup.py minify_buttons_ext_icons
python setup.py minify_buttons_ext_size
git commit -a -m "Updated to latest version"
git push


We could use Git submodules but setuptools seems to hate them, setuptools-git really doesn't want to agree with them, zest.releaser doesn't support recursive cloning (yet; pull request sent), and so forth. Feel free to help improve this situation! Yikes!

So, let's resort to manually taking a copy of the files out of GitHub.