aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLouise Crow <louise.crow@gmail.com>2014-07-08 12:28:10 +0100
committerLouise Crow <louise.crow@gmail.com>2014-07-08 12:28:10 +0100
commit8743372722bafff935c54d56250d292e9ddd8597 (patch)
tree0122fd821a5c902ccb5be48659f22c69ba34361f
parent341a078717c4048e094a3930de893e2cf88e4b68 (diff)
parent6a65faf2d3c65310f20d4be1df6cbed18b9b0290 (diff)
Merge branch 'gh-pages' of ssh://git.mysociety.org/data/git/public/alaveteli into gh-pages
-rw-r--r--.gitignore1
-rw-r--r--Gruntfile.js85
-rw-r--r--README.md66
-rw-r--r--_config.yml1
-rw-r--r--assets/css/alaveteli-org.css751
-rw-r--r--assets/css/global.css1187
-rw-r--r--assets/sass/alaveteli-org.scss1
-rw-r--r--docs/installing/manual_install.md88
-rw-r--r--package.json16
m---------theme0
10 files changed, 253 insertions, 1943 deletions
diff --git a/.gitignore b/.gitignore
index 49eac9d72..aa715b2b1 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
.sass-cache/
_site/
+node_modules/
diff --git a/Gruntfile.js b/Gruntfile.js
new file mode 100644
index 000000000..f3befd3f6
--- /dev/null
+++ b/Gruntfile.js
@@ -0,0 +1,85 @@
+module.exports = function(grunt) {
+
+ // Project configuration.
+ grunt.initConfig({
+ pkg: grunt.file.readJSON('package.json'),
+
+ jekyll: { site: {} },
+
+ connect: {
+ server: {
+ options: {
+ base: "_site",
+ port: 4000,
+ livereload: true
+ }
+ }
+ },
+
+ uglify: {
+ library: {
+ files: {
+ 'assets/scripts/lib.min.js': [
+ 'bower_components/jquery/jquery.js',
+ 'bower_components/jquery/jquery-migrate.js',
+ 'bower_components/owlcarousel/owl-carousel/owl.carousel.js'
+ ],
+ }
+ },
+ main: {
+ files: {
+ 'assets/scripts/app.min.js': 'assets/scripts/app.js'
+ }
+ },
+ },
+
+ sass: {
+ global: {
+ options: { style: 'compressed' },
+ files: {
+ 'assets/css/global.css': 'theme/sass/global.scss',
+ 'assets/css/alaveteli-org.css': 'assets/sass/alaveteli-org.scss'
+ }
+ }
+ },
+
+ watch: {
+ options: { atBegin: true, },
+ css: {
+ files: [
+ 'assets/**/*.scss',
+ 'theme/**/*.scss',
+ ],
+ tasks: [ 'sass' ],
+ },
+ js: {
+ files: [
+ 'assets/scripts/app.js'
+ ],
+ tasks: [ 'uglify' ],
+ },
+ jekyll: {
+ files: [ 'assets/**', '**/*.html', '**/*.md', '!node_modules/**', '!bower_components/**', '!_site/**' ],
+ tasks: [ 'jekyll' ],
+ },
+ livereload: {
+ options: { atBegin: false, livereload: true, },
+ // Look for Jekyll file changes, and changes to static assets
+ // Ignore SCSS so that live CSS update can work properly
+ files: [ 'assets/**', '**/*.html', '**/*.md', '!node_modules/**', '!bower_components/**', '!_site/**', '!assets/**/*.scss' ],
+ },
+ },
+
+ });
+
+ // Load plugins
+ grunt.loadNpmTasks('grunt-contrib-sass');
+ grunt.loadNpmTasks('grunt-contrib-uglify');
+ grunt.loadNpmTasks('grunt-jekyll');
+ grunt.loadNpmTasks('grunt-contrib-connect');
+ grunt.loadNpmTasks('grunt-contrib-watch');
+
+ // Default task(s).
+ grunt.registerTask('default', [ 'connect', 'watch' ]);
+
+};
diff --git a/README.md b/README.md
index e4b181b42..68051b49d 100644
--- a/README.md
+++ b/README.md
@@ -1,19 +1,77 @@
# Alaveteli documentation (github pages)
The `gh-branch` contains the Alaveteli documentation that is hosted
-as GitHub Pages, and available at code.alaveteli.org
+as GitHub Pages, and available at <http://www.alaveteli.org/docs>
-The styling comes from the
+The mySociety documentation "github pages" sites share the same styling.
+It comes from the
[mysociety-docs-theme](https://github.com/mysociety/mysociety-docs-theme)
repo, which is included as a submodule in the `theme/` directory.
+## Updating the CSS, manually
+
If you're building locally, and you change the theme, rebuild it with:
-`sass --update theme/sass/:assets/css/`
+ sass --update --style=compressed theme/sass/global.scss:assets/css/global.css
+
+There's also an Alaveteli-specific stylesheet, so do:
+
+ sass --update --style=compressed assets/sass/alaveteli-org.scss:assets/css/alaveteli-org.css
+
+
+## Viewing locally manually
To view the documentation locally using Jekyll, do something like:
-`jekyll serve --watch`
+ jekyll serve --watch
+
+
+## Using grunt to work locally
+
+If you run grunt (there's a Gruntfile in the repo for this branch) then the CSS
+will automagically update if you change it, *and* pages magically refresh whenever
+you change any of the files. It's like `--watch` on steroids.
+
+### Installation
+In the below you could of course run `sudo gem install` or `npm install -g` but
+I personally never think that's a good idea. You must already have gem and git
+installed (you probably do).
+
+```
+gem install --no-document --user-install github-pages
+# Add ~/.gem/ruby/2.0.0/bin/ or similar to your $PATH
+# Check you can run "jekyll"
+git clone --recursive -b gh-pages https://github.com/mysociety/alaveteli alaveteli-pages
+cd alaveteli-pages
+```
+
+If you only want to edit the *text* of the site, this is all you need. Run
+`jekyll serve --watch` to run a webserver of the static site, and make changes
+to the text you want.
+
+If you want to edit the CSS or JS, or you'd like live reloading of changes in
+your web browser, you might as well set up the thing that monitors it all for
+you. You will need npm already installed.
+
+```
+gem install --no-document --user-install sass
+npm install grunt-cli
+npm install
+node_modules/.bin/grunt
+```
+
+This will start up a watcher that monitors the files and automatically compiles
+SASS, JavaScript, and runs `jekyll build` when necessary. It also live reloads
+your web pages.
+
+Lastly, if you'd like to add more JavaScript *libraries* than the ones already,
+you'll additionally need to install bower and use it to fetch the libraries
+used:
+```
+npm install bower
+node_modules/.bin/bower install
+```
+Then use bower to install a new library and add it to the `Gruntfile.js`.
diff --git a/_config.yml b/_config.yml
index 37eefa1f8..ad5c74aeb 100644
--- a/_config.yml
+++ b/_config.yml
@@ -4,5 +4,6 @@ baseurl: /
permalink: pretty
markdown: kramdown
url: http://code.alaveteli.org
+exclude: [ node_modules ]
gems:
- jekyll-redirect-from
diff --git a/assets/css/alaveteli-org.css b/assets/css/alaveteli-org.css
index 47f870b20..4919a7569 100644
--- a/assets/css/alaveteli-org.css
+++ b/assets/css/alaveteli-org.css
@@ -1,724 +1,27 @@
-.image-replacement {
- text-indent: -1000%;
- white-space: nowrap;
- overflow: hidden; }
-
-.container {
- max-width: 63.333333333em;
- padding: 0 1em;
- margin: 0 auto;
- position: relative; }
-
-.unstyled-list, .unstyled, .site-nav ul {
- margin-left: 0;
- padding-left: 0;
- list-style: none outside none; }
-
-.inline-list {
- margin-left: -0.5em;
- margin-bottom: 0; }
- .inline-list li {
- display: inline-block;
- margin-left: 0.5em; }
-
-.text--center {
- text-align: center; }
-
-/* Alaveteli's purple */
-html {
- background-color: #333333;
- height: 100%;
- min-height: 100%; }
-
-body {
- background-color: transparent; }
-
-.no-svg .site-title {
- background-image: url("../img/alaveteli-logo.png"); }
-
-.hero, .what-is-alaveteli, .how-does-it-work, .features, .get-started, .about__intro, .deployments__intro {
- padding: 2em 0; }
- @media (min-width: 40em) {
- .hero, .what-is-alaveteli, .how-does-it-work, .features, .get-started, .about__intro, .deployments__intro {
- padding: 3.5em 0; } }
-
-.hero, .how-does-it-work, .get-started, .about__intro, .deployments__intro {
- background-color: #333333;
- color: #fff; }
- .hero a, .how-does-it-work a, .get-started a, .about__intro a, .deployments__intro a {
- color: #fff;
- border-bottom: 1px dotted rgba(255, 255, 255, 0.3); }
- .hero a:hover, .how-does-it-work a:hover, .get-started a:hover, .about__intro a:hover, .deployments__intro a:hover, .hero a:active, .how-does-it-work a:active, .get-started a:active, .about__intro a:active, .deployments__intro a:active, .hero a:focus, .how-does-it-work a:focus, .get-started a:focus, .about__intro a:focus, .deployments__intro a:focus {
- border-color: rgba(255, 255, 255, 0.6);
- background-color: #863c83;
- text-decoration: none; }
- .hero .button, .how-does-it-work .button, .get-started .button, .about__intro .button, .deployments__intro .button {
- color: #fff;
- border: 1px solid rgba(255, 255, 255, 0.3);
- width: 100%;
- margin-bottom: 1em; }
- @media (min-width: 30em) {
- .hero .button, .how-does-it-work .button, .get-started .button, .about__intro .button, .deployments__intro .button {
- width: auto;
- margin-bottom: 0; } }
- .hero .button:hover, .how-does-it-work .button:hover, .get-started .button:hover, .about__intro .button:hover, .deployments__intro .button:hover, .hero .button:active, .how-does-it-work .button:active, .get-started .button:active, .about__intro .button:active, .deployments__intro .button:active, .hero .button:focus, .how-does-it-work .button:focus, .get-started .button:focus, .about__intro .button:focus, .deployments__intro .button:focus {
- background-color: rgba(0, 0, 0, 0.1);
- border-color: rgba(0, 0, 0, 0.1); }
-
-.what-is-alaveteli__grid-unit, .features__grid-unit, .get-started__grid-unit {
- display: inline-block;
- vertical-align: top; }
-
-.grid-row {
- /**
- * For IE 6/7 only
- * Include this rule to trigger hasLayout and contain floats.
- */ }
- .grid-row:before, .grid-row:after {
- content: " ";
- /* 1 */
- display: table;
- /* 2 */ }
- .grid-row:after {
- clear: both; }
- .grid-row {
- *zoom: 1; }
-
-h1, h2, h4, h5, h6 {
- font-weight: 700; }
-
-h3 {
- font-weight: 600; }
-
-.button {
- display: inline-block;
- padding: 0.4em 2.4em;
- border: 1px solid #e4e3dd;
- vertical-align: middle;
- border-radius: 7px;
- text-align: center; }
- .button:hover, .button:active, .button:focus {
- background-color: #3a3a3a;
- border-color: rgba(255, 255, 255, 0.2);
- text-decoration: none; }
-
-@media (min-width: 47.5em) {
- .nav-position {
- position: absolute;
- top: 0.4em;
- left: 180px; } }
-@media (min-width: 56.88889em) {
- .nav-position {
- left: 240px;
- top: 0.35em; } }
-
-.site-nav ul {
- margin-top: 0;
- margin-bottom: 0; }
-@media (min-width: 47.5em) {
- .site-nav li {
- display: inline-block; } }
-.site-nav a {
- color: #fff;
- margin-right: 0.33em;
- display: block;
- padding: 0.33em;
- border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
- @media (min-width: 47.5em) {
- .site-nav a {
- display: inline-block;
- border-bottom: none; } }
- @media (min-width: 56.88889em) {
- .site-nav a {
- font-size: 1.125em;
- margin-right: 0.66em; } }
-
-/*! responsive-nav.js 1.0.32 by @viljamis */
-.js .nav-collapse {
- clip: rect(0 0 0 0);
- max-height: 0;
- position: absolute;
- display: block;
- overflow: hidden;
- zoom: 1; }
-
-.nav-collapse.opened {
- max-height: 9999px; }
-
-.disable-pointer-events {
- pointer-events: none !important; }
-
-.nav-toggle {
- -webkit-tap-highlight-color: transparent;
- -webkit-touch-callout: none;
- -webkit-user-select: none;
- -moz-user-select: none;
- -ms-user-select: none;
- -o-user-select: none;
- user-select: none;
- position: absolute;
- top: 0.4em;
- right: 5em;
- display: inline-block;
- padding: 0.3em 0.75em;
- border: 1px solid rgba(255, 255, 255, 0.1);
- border-radius: 5px;
- color: #fff;
- font-size: 0.875em; }
- @media (min-width: 30em) {
- .nav-toggle {
- right: 10em; } }
-
-@media screen and (min-width: 47.5em) {
- .js .nav-collapse {
- position: relative; }
-
- .js .nav-collapse.closed {
- max-height: none; }
-
- .nav-toggle {
- display: none; } }
-.hero {
- background-color: #974495; }
- .hero h1 {
- display: inline-block;
- font-weight: 600;
- width: auto;
- border-bottom: 1px solid rgba(255, 255, 255, 0.2);
- padding-bottom: 0.5em;
- margin-bottom: 0.25em;
- text-shadow: 0px 2px 1px rgba(0, 0, 0, 0.3); }
- @media (min-width: 56.88889em) {
- .hero h1 {
- font-size: 4em; } }
- .hero span {
- opacity: 0.7;
- display: block; }
- .hero p {
- font-size: 1.125em;
- max-width: 25em; }
-
-.action-buttons {
- margin-top: 2em; }
- .action-buttons .button {
- font-weight: 600;
- margin-right: 1em; }
-
-.what-is-alaveteli {
- position: relative; }
-
-@media (min-width: 56.88889em) {
- .what-is-alaveteli__items-grid {
- width: 66.666%; } }
-
-@media (min-width: 30em) {
- .what-is-alaveteli__grid-unit {
- width: 46%;
- margin-right: 4%; } }
-
-.what-is-alaveteli__item {
- padding-left: 3.625em;
- background-position: top left;
- background-size: 50px 50px;
- background-repeat: no-repeat; }
-
-.what-is-alaveteli__item--foi {
- background-image: url("../img/scales.svg"); }
-
-.no-svg .what-is-alaveteli__item--foi {
- background-image: url("../img/scales.png"); }
-
-.what-is-alaveteli__item--help {
- background-image: url("../img/pointer.svg"); }
-
-.no-svg .what-is-alaveteli__item--help {
- background-image: url("../img/pointer.png"); }
-
-.what-is-alaveteli__item--published {
- background-image: url("../img/binoculars.svg"); }
-
-.no-svg .what-is-alaveteli__item--published {
- background-image: url("../img/binoculars.png"); }
-
-.what-is-alaveteli__item--open {
- background-image: url("../img/open.svg"); }
-
-.no-svg .what-is-alaveteli__item--open {
- background-image: url("../img/open.png"); }
-
-@media (min-width: 56.88889em) {
- .what-is-alaveteli__international-reach-position {
- width: 33.3333%;
- position: absolute;
- top: -13em;
- right: 0; } }
-
-.what-is-alaveteli__international-reach {
- background-color: #f3f1eb;
- background-image: url("../img/worldmap.svg");
- background-position: center 1.5em;
- background-repeat: no-repeat;
- background-size: 280px 158px;
- padding: 10em 1.25em 1em; }
- @media (min-width: 30em) {
- .what-is-alaveteli__international-reach {
- background-size: 360px 204px;
- padding: 11.5em 2em 1em; } }
- @media (min-width: 40em) {
- .what-is-alaveteli__international-reach {
- background-size: 360px 204px;
- padding: 1em 2em 1em 22em;
- background-position: left center; } }
- @media (min-width: 56.88889em) {
- .what-is-alaveteli__international-reach {
- background-size: 360px 204px;
- padding: 12.5em 2em 1em;
- background-position: center 1.5em; } }
- .what-is-alaveteli__international-reach .message {
- font-size: 1.4em; }
- .what-is-alaveteli__international-reach strong {
- color: #a94ca6; }
- .what-is-alaveteli__international-reach a {
- color: #787774;
- border-bottom: 1px dotted #e4e3dd; }
- .what-is-alaveteli__international-reach a:hover, .what-is-alaveteli__international-reach a:active, .what-is-alaveteli__international-reach a:focus {
- text-decoration: none;
- border-color: #2b8cdb;
- color: #2b8cdb; }
-
-.no-svg .what-is-alaveteli__international-reach {
- background-image: url("../img/worldmap.png"); }
-
-.how-does-it-work {
- background-color: #974495;
- overflow: hidden; }
- .how-does-it-work img {
- position: relative; }
- @media (min-width: 56.88889em) {
- .how-does-it-work img {
- bottom: -1px; } }
- @media (min-width: 30em) {
- .how-does-it-work {
- padding-top: 0;
- padding-bottom: 0; }
- .how-does-it-work .how-does-it-work__slide {
- border-top: 4em solid #fff;
- padding-top: 4.7em; }
- .how-does-it-work h2, .how-does-it-work p {
- width: 50%; }
- .how-does-it-work img {
- float: right;
- width: 30em;
- margin-right: -15em;
- margin-top: -13em; } }
- @media (min-width: 43.5em) {
- .how-does-it-work .how-does-it-work__slide {
- border-top: 4em solid #fff;
- padding-top: 4.7em; }
- .how-does-it-work h2, .how-does-it-work p {
- width: 33.333%; }
- .how-does-it-work img {
- margin-right: -5em;
- margin-top: -15em; } }
- @media (min-width: 56.88889em) {
- .how-does-it-work h2, .how-does-it-work p, .how-does-it-work .how-does-it-work__slide__nav {
- width: 33.333%;
- margin-left: 66.666%; }
- .how-does-it-work img {
- float: left;
- width: 63.666%;
- margin-top: -15em; } }
-
-.how-does-it-work__slide {
- /**
- * For IE 6/7 only
- * Include this rule to trigger hasLayout and contain floats.
- */ }
- .how-does-it-work__slide:before, .how-does-it-work__slide:after {
- content: " ";
- /* 1 */
- display: table;
- /* 2 */ }
- .how-does-it-work__slide:after {
- clear: both; }
- .how-does-it-work__slide {
- *zoom: 1; }
-
-.how-does-it-work__slide__nav {
- margin-top: 0.5em;
- text-align: center; }
- @media (min-width: 30em) {
- .how-does-it-work__slide__nav {
- text-align: left; } }
-
-.how-does-it-work__slide__skip {
- display: inline-block;
- padding: 0.3em;
- cursor: pointer; }
- .how-does-it-work__slide__skip span {
- display: block;
- border-radius: 1em;
- width: 0.8em;
- height: 0.8em;
- background-color: rgba(0, 0, 0, 0.3); }
- .how-does-it-work__slide__skip.active span {
- background-color: rgba(255, 255, 255, 0.3); }
- .how-does-it-work__slide__skip:hover span, .how-does-it-work__slide__skip:focus span, .how-does-it-work__slide__skip:active span {
- background-color: rgba(0, 0, 0, 0.3); }
-
-@media (min-width: 40em) {
- .features__grid-unit {
- width: 48.5%; }
- .features__grid-unit:nth-child(n) {
- margin-right: 3%; }
- .features__grid-unit:nth-child(2n) {
- margin-right: 0; } }
-@media (min-width: 56.88889em) {
- .features__grid-unit {
- width: 22.75%; }
- .features__grid-unit:nth-child(n) {
- margin-right: 3%; }
- .features__grid-unit:nth-child(4n) {
- margin-right: 0; } }
-
-@media (min-width: 40em) {
- .features__grid-unit--wide {
- width: 48.5%; }
- .features__grid-unit--wide:nth-child(n) {
- margin-right: 3%; }
- .features__grid-unit--wide:last-child {
- margin-right: 0; } }
-
-.features__item {
- margin-top: 1em;
- margin-bottom: 1em; }
-
-.features__item--primary {
- background-position: center top;
- background-repeat: no-repeat;
- padding-top: 11.5em; }
- @media (min-width: 56.88889em) {
- .features__item--primary {
- background-position: left center;
- padding: 1em 0; }
- .features__item--primary h3, .features__item--primary p {
- padding-left: 63%; } }
- @media (min-width: 65em) {
- .features__item--primary h3, .features__item--primary p {
- padding-left: 53%; } }
- .features__item--primary h3 {
- font-size: 1.4em; }
-
-.features__item--devices {
- background-image: url("../img/devices.svg");
- background-size: 258px 188px; }
-
-.no-svg .features__item--devices {
- background-image: url("../img/devices.png"); }
-
-.features__item--messaging {
- background-image: url("../img/signs.svg");
- background-size: 200px 166px; }
- @media (min-width: 56.88889em) {
- .features__item--messaging {
- background-position: 3em center; } }
-
-.no-svg .features__item--messaging {
- background-image: url("../img/signs.png"); }
-
-.get-started {
- border-bottom: 1px solid rgba(255, 255, 255, 0.1); }
-
-@media (min-width: 30em) {
- .get-started__grid-unit {
- width: 48.5%;
- margin-right: 3%; }
- .get-started__grid-unit:last-child {
- margin-right: 0; } }
-@media (min-width: 56.88889em) {
- .get-started__grid-unit {
- width: 23.5%;
- margin-right: 3%; }
- .get-started__grid-unit:last-child {
- margin-right: 0; } }
-
-.get-started__grid-unit--wide {
- width: 100%;
- margin-right: 0; }
- @media (min-width: 56.88889em) {
- .get-started__grid-unit--wide {
- width: 47%;
- margin-right: 3%; } }
-
-.get-started__item--primary p {
- margin-top: 0;
- font-size: 1.25em;
- margin-bottom: 1.9em; }
-
-@media (min-width: 56.88889em) {
- .push-top {
- margin-top: 2.4em; } }
-
-/* AlaveteliCon 2012 bios*/
-.delegate-bio {
- clear: left;
- padding-bottom: 1em;
- border-top: 1px solid #e4e3dd;
- padding-top: 1.2em; }
-
-.about__intro {
- background-color: #974495;
- margin-bottom: 4em; }
- .about__intro h1 {
- font-weight: 600;
- color: #fff;
- text-shadow: 0px 2px 1px rgba(0, 0, 0, 0.3);
- margin-bottom: 0.25em; }
- @media (min-width: 56.88889em) {
- .about__intro h1 {
- font-size: 4em; } }
- .about__intro p {
- color: #fff; }
- @media (min-width: 40em) {
- .about__intro p {
- font-size: 1.25em; } }
-
-@media (min-width: 40em) {
- .about__column {
- /* Use for multi-column grids where all columns are equal width, it gives them equal spacing */
- float: left;
- padding-left: 1.5%;
- padding-right: 1.5%;
- width: 50%;
- padding: 0 3%; }
- .about__column:nth-child(odd), .about__column:first-child {
- padding-left: 0; }
- .about__column:nth-child(even), .about__column:last-child {
- padding-right: 0; } }
-
-.content-in-columns {
- margin-bottom: 1.5em;
- border-top: 3px dashed #f3f1eb;
- padding-top: 1.5em; }
- .content-in-columns:first-of-type {
- border-top: none;
- padding-top: 0; }
-
-.stamp-graphic {
- position: absolute;
- width: 24%;
- right: 2em;
- -webkit-transform: rotate(9deg);
- -moz-transform: rotate(9deg);
- -o-transform: rotate(9deg);
- transform: rotate(9deg); }
- @media (min-width: 45.4375em) {
- .stamp-graphic {
- top: 20em; } }
- @media (min-width: 50.6875em) {
- .stamp-graphic {
- top: 19em; } }
- @media (min-width: 66.875em) {
- .stamp-graphic {
- top: 9em; } }
-
-@media (min-width: 50.6875em) {
- .about__intro p {
- max-width: 27em; } }
-@media (min-width: 66.875em) {
- .about__intro p {
- max-width: 34em; } }
-
-.deployments__intro {
- background-color: #974495;
- margin-bottom: 4em;
- color: #fff;
- text-align: center;
- background-image: url("../img/worldmap-pale.svg");
- background-position: center center;
- background-repeat: no-repeat;
- background-size: 600px 325px; }
- @media (min-width: 30em) {
- .deployments__intro {
- padding: 8.1em 0;
- background-size: 1000px 541px; } }
- .deployments__intro h1 {
- font-size: 1.2em;
- font-weight: 600;
- text-shadow: 0px 2px 1px rgba(0, 0, 0, 0.3);
- margin-bottom: 1em; }
- @media (min-width: 30em) {
- .deployments__intro h1 {
- font-size: 1.666666667em; } }
- .deployments__intro h1 span {
- display: block;
- font-size: 1.5em;
- margin-top: 0.25em;
- font-weight: 700;
- line-height: 1em; }
- @media (min-width: 30em) {
- .deployments__intro h1 span {
- margin-top: 0.15em;
- font-size: 1.8em; } }
- @media (min-width: 56.88889em) {
- .deployments__intro h1 span {
- font-size: 2.4em; } }
- .deployments__intro p {
- font-size: 1em;
- max-width: 23em;
- margin: 0 auto; }
- @media (min-width: 30em) {
- .deployments__intro p {
- font-size: 1.666666667em; } }
-
-.no-svg .deployments__intro {
- background-image: url("../img/worldmap-pale.png"); }
-
-.deployments__content h2 {
- margin-bottom: 1.5em; }
-
-.deployments__list--minor {
- margin-bottom: 2em; }
- @media (min-width: 30em) {
- .deployments__list--minor {
- margin-bottom: 4em; } }
-
-@media (min-width: 40em) {
- .deployments__unit--major {
- display: inline-block;
- width: 48.5%;
- margin-right: 3%;
- vertical-align: top; } }
-.deployments__unit--major:nth-child(even) {
- margin-right: 0; }
-
-.deployments__unit--minor {
- display: inline-block;
- width: 47.5%;
- vertical-align: top; }
- .deployments__unit--minor:nth-child(n) {
- margin-right: 5%; }
- .deployments__unit--minor:nth-child(even) {
- margin-right: 0; }
- @media (min-width: 37.22222em) {
- .deployments__unit--minor {
- width: 30%; }
- .deployments__unit--minor:nth-child(n) {
- margin-right: 5%; }
- .deployments__unit--minor:nth-child(3n+3) {
- margin-right: 0; } }
- @media (min-width: 56.88889em) {
- .deployments__unit--minor {
- width: 22.25%; }
- .deployments__unit--minor:nth-child(n) {
- margin-right: 3%; }
- .deployments__unit--minor:nth-child(4n+4) {
- margin-right: 0; } }
- @media (min-width: 77.77778em) {
- .deployments__unit--minor {
- width: 14.166666667%; }
- .deployments__unit--minor:nth-child(n) {
- margin-right: 3%; }
- .deployments__unit--minor:nth-child(6n+6) {
- margin-right: 0; } }
-
-.deployment, .deployment--minor, .deployment--major {
- margin-bottom: 2em; }
- @media (min-width: 40em) {
- .deployment, .deployment--minor, .deployment--major {
- margin-bottom: 3em; } }
-
-.deployment__title {
- font-weight: 600;
- font-size: 1.3em;
- margin-bottom: 0.1em;
- padding-top: 0.2em; }
- @media (min-width: 56.88889em) {
- .deployment__title {
- font-size: 1.5em; } }
-
-.deployment__country {
- font-weight: 600;
- font-size: 1em;
- color: #787774;
- margin-top: 0;
- margin-bottom: 0.1em; }
- @media (min-width: 56.88889em) {
- .deployment__country {
- font-size: 1.1em; } }
-
-.deployment__link {
- margin-top: 0;
- margin-bottom: 0.5em;
- font-size: 0.888888889em; }
- .deployment__link a {
- display: block;
- text-overflow: ellipsis;
- text-overflow: ellipsis;
- /* Required for text-overflow to do anything */
- white-space: nowrap;
- overflow: hidden; }
- @media (min-width: 56.88889em) {
- .deployment__link {
- font-size: 1em; } }
-
-.deployment__description {
- font-size: 0.888888889em;
- clear: both; }
-
-.deployment__screenshot {
- border: 1px solid #e4e3dd; }
-
-.deployment--minor .deployment__title {
- padding-top: 0;
- font-size: 1.1em; }
-.deployment--minor .deployment__country {
- font-size: 1em; }
-.deployment--minor .deployment__link {
- font-size: 0.777777778em; }
-
-.deployment--major .deployment__screenshot {
- width: 33%;
- float: left;
- margin-bottom: 1em; }
-.deployment--major .deployment__title,
-.deployment--major .deployment__country,
-.deployment--major .deployment__link {
- margin-left: 37%; }
-
-.blog-title {
- line-height: 1.3em; }
-
-.clearfix {
- /**
- * For IE 6/7 only
- * Include this rule to trigger hasLayout and contain floats.
- */ }
- .clearfix:before, .clearfix:after {
- content: " ";
- /* 1 */
- display: table;
- /* 2 */ }
- .clearfix:after {
- clear: both; }
- .clearfix {
- *zoom: 1; }
-
-.header-link {
- padding-left: 0.2em;
- opacity: 0;
-
- -webkit-transition: opacity 0.2s ease-in-out 0.1s;
- -moz-transition: opacity 0.2s ease-in-out 0.1s;
- -ms-transition: opacity 0.2s ease-in-out 0.1s;
-}
-
-h1:hover .header-link,
-h2:hover .header-link,
-h3:hover .header-link,
-h4:hover .header-link,
-h5:hover .header-link,
-h6:hover .header-link {
- opacity: 1;
-}
-
+.image-replacement{text-indent:-1000%;white-space:nowrap;overflow:hidden}.container{max-width:63.333333333em;padding:0 1em;margin:0 auto;position:relative}.unstyled-list,.unstyled,.site-nav ul{margin-left:0;padding-left:0;list-style:none outside none}.inline-list{margin-left:-0.5em;margin-bottom:0}.inline-list li{display:inline-block;margin-left:0.5em}.text--center{text-align:center}html{background-color:#333;height:100%;min-height:100%}body{background-color:transparent}.no-svg .site-title{background-image:url("../img/alaveteli-logo.png")}.hero,.what-is-alaveteli,.how-does-it-work,.features,.get-started,.about__intro,.deployments__intro{padding:2em 0}@media (min-width: 40em){.hero,.what-is-alaveteli,.how-does-it-work,.features,.get-started,.about__intro,.deployments__intro{padding:3.5em 0}}
+.hero,.how-does-it-work,.get-started,.about__intro,.deployments__intro{background-color:#333;color:#fff}.hero a,.how-does-it-work a,.get-started a,.about__intro a,.deployments__intro a{color:#fff;border-bottom:1px dotted rgba(255,255,255,0.3)}.hero a:hover,.how-does-it-work a:hover,.get-started a:hover,.about__intro a:hover,.deployments__intro a:hover,.hero a:active,.how-does-it-work a:active,.get-started a:active,.about__intro a:active,.deployments__intro a:active,.hero a:focus,.how-does-it-work a:focus,.get-started a:focus,.about__intro a:focus,.deployments__intro a:focus{border-color:rgba(255,255,255,0.6);background-color:#863c83;text-decoration:none}.hero .button,.how-does-it-work .button,.get-started .button,.about__intro .button,.deployments__intro .button{color:#fff;border:1px solid rgba(255,255,255,0.3);width:100%;margin-bottom:1em}@media (min-width: 30em){.hero .button,.how-does-it-work .button,.get-started .button,.about__intro .button,.deployments__intro .button{width:auto;margin-bottom:0}}.hero .button:hover,.how-does-it-work .button:hover,.get-started .button:hover,.about__intro .button:hover,.deployments__intro .button:hover,.hero .button:active,.how-does-it-work .button:active,.get-started .button:active,.about__intro .button:active,.deployments__intro .button:active,.hero .button:focus,.how-does-it-work .button:focus,.get-started .button:focus,.about__intro .button:focus,.deployments__intro .button:focus{background-color:rgba(0,0,0,0.1);border-color:rgba(0,0,0,0.1)}.what-is-alaveteli__grid-unit,.features__grid-unit,.get-started__grid-unit{display:inline-block;vertical-align:top}.grid-row:before,.grid-row:after{content:" ";display:table}.grid-row:after{clear:both}.grid-row{*zoom:1}h1,h2,h4,h5,h6{font-weight:700}h3{font-weight:600}.button{display:inline-block;padding:0.4em 2.4em;border:1px solid #e4e3dd;vertical-align:middle;border-radius:7px;text-align:center}.button:hover,.button:active,.button:focus{background-color:#3a3a3a;border-color:rgba(255,255,255,0.2);text-decoration:none}@media (min-width: 47.5em){.nav-position{position:absolute;top:0.4em;left:180px}}@media (min-width: 56.88889em){.nav-position{left:240px;top:0.35em}}
+.site-nav ul{margin-top:0;margin-bottom:0}@media (min-width: 47.5em){.site-nav li{display:inline-block}}.site-nav a{color:#fff;margin-right:0.33em;display:block;padding:0.33em;border-bottom:1px solid rgba(255,255,255,0.1)}@media (min-width: 47.5em){.site-nav a{display:inline-block;border-bottom:none}}@media (min-width: 56.88889em){.site-nav a{font-size:1.125em;margin-right:0.66em}}
+/*! responsive-nav.js 1.0.32 by @viljamis */.js .nav-collapse{clip:rect(0 0 0 0);max-height:0;position:absolute;display:block;overflow:hidden;zoom:1}.nav-collapse.opened{max-height:9999px}.disable-pointer-events{pointer-events:none !important}.nav-toggle{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;position:absolute;top:0.4em;right:5em;display:inline-block;padding:0.3em 0.75em;border:1px solid rgba(255,255,255,0.1);border-radius:5px;color:#fff;font-size:0.875em}@media (min-width: 30em){.nav-toggle{right:10em}}
+@media screen and (min-width: 47.5em){.js .nav-collapse{position:relative}.js .nav-collapse.closed{max-height:none}.nav-toggle{display:none}}.hero{background-color:#974495}.hero h1{display:inline-block;font-weight:600;width:auto;border-bottom:1px solid rgba(255,255,255,0.2);padding-bottom:0.5em;margin-bottom:0.25em;text-shadow:0px 2px 1px rgba(0,0,0,0.3)}@media (min-width: 56.88889em){.hero h1{font-size:4em}}.hero span{opacity:0.7;display:block}.hero p{font-size:1.125em;max-width:25em}.action-buttons{margin-top:2em}.action-buttons .button{font-weight:600;margin-right:1em}.what-is-alaveteli{position:relative}@media (min-width: 56.88889em){.what-is-alaveteli__items-grid{width:66.666%}}
+@media (min-width: 30em){.what-is-alaveteli__grid-unit{width:46%;margin-right:4%}}
+.what-is-alaveteli__item{padding-left:3.625em;background-position:top left;background-size:50px 50px;background-repeat:no-repeat}.what-is-alaveteli__item--foi{background-image:url("../img/scales.svg")}.no-svg .what-is-alaveteli__item--foi{background-image:url("../img/scales.png")}.what-is-alaveteli__item--help{background-image:url("../img/pointer.svg")}.no-svg .what-is-alaveteli__item--help{background-image:url("../img/pointer.png")}.what-is-alaveteli__item--published{background-image:url("../img/binoculars.svg")}.no-svg .what-is-alaveteli__item--published{background-image:url("../img/binoculars.png")}.what-is-alaveteli__item--open{background-image:url("../img/open.svg")}.no-svg .what-is-alaveteli__item--open{background-image:url("../img/open.png")}@media (min-width: 56.88889em){.what-is-alaveteli__international-reach-position{width:33.3333%;position:absolute;top:-13em;right:0}}
+.what-is-alaveteli__international-reach{background-color:#f3f1eb;background-image:url("../img/worldmap.svg");background-position:center 1.5em;background-repeat:no-repeat;background-size:280px 158px;padding:10em 1.25em 1em}@media (min-width: 30em){.what-is-alaveteli__international-reach{background-size:360px 204px;padding:11.5em 2em 1em}}@media (min-width: 40em){.what-is-alaveteli__international-reach{background-size:360px 204px;padding:1em 2em 1em 22em;background-position:left center}}@media (min-width: 56.88889em){.what-is-alaveteli__international-reach{background-size:360px 204px;padding:12.5em 2em 1em;background-position:center 1.5em}}.what-is-alaveteli__international-reach .message{font-size:1.4em}.what-is-alaveteli__international-reach strong{color:#a94ca6}.what-is-alaveteli__international-reach a{color:#787774;border-bottom:1px dotted #e4e3dd}.what-is-alaveteli__international-reach a:hover,.what-is-alaveteli__international-reach a:active,.what-is-alaveteli__international-reach a:focus{text-decoration:none;border-color:#2b8cdb;color:#2b8cdb}.no-svg .what-is-alaveteli__international-reach{background-image:url("../img/worldmap.png")}.how-does-it-work{background-color:#974495;overflow:hidden}.how-does-it-work img{position:relative}@media (min-width: 56.88889em){.how-does-it-work img{bottom:-1px}}@media (min-width: 30em){.how-does-it-work{padding-top:0;padding-bottom:0}.how-does-it-work .how-does-it-work__slide{border-top:4em solid #fff;padding-top:4.7em}.how-does-it-work h2,.how-does-it-work p{width:50%}.how-does-it-work img{float:right;width:30em;margin-right:-15em;margin-top:-13em}}@media (min-width: 43.5em){.how-does-it-work .how-does-it-work__slide{border-top:4em solid #fff;padding-top:4.7em}.how-does-it-work h2,.how-does-it-work p{width:33.333%}.how-does-it-work img{margin-right:-5em;margin-top:-15em}}@media (min-width: 56.88889em){.how-does-it-work h2,.how-does-it-work p,.how-does-it-work .how-does-it-work__slide__nav{width:33.333%;margin-left:66.666%}.how-does-it-work img{float:left;width:63.666%;margin-top:-15em}}
+.how-does-it-work__slide:before,.how-does-it-work__slide:after{content:" ";display:table}.how-does-it-work__slide:after{clear:both}.how-does-it-work__slide{*zoom:1}.how-does-it-work__slide__nav{margin-top:0.5em;text-align:center}@media (min-width: 30em){.how-does-it-work__slide__nav{text-align:left}}
+.how-does-it-work__slide__skip{display:inline-block;padding:0.3em;cursor:pointer}.how-does-it-work__slide__skip span{display:block;border-radius:1em;width:0.8em;height:0.8em;background-color:rgba(0,0,0,0.3)}.how-does-it-work__slide__skip.active span{background-color:rgba(255,255,255,0.3)}.how-does-it-work__slide__skip:hover span,.how-does-it-work__slide__skip:focus span,.how-does-it-work__slide__skip:active span{background-color:rgba(0,0,0,0.3)}@media (min-width: 40em){.features__grid-unit{width:48.5%}.features__grid-unit:nth-child(n){margin-right:3%}.features__grid-unit:nth-child(2n){margin-right:0}}@media (min-width: 56.88889em){.features__grid-unit{width:22.75%}.features__grid-unit:nth-child(n){margin-right:3%}.features__grid-unit:nth-child(4n){margin-right:0}}
+@media (min-width: 40em){.features__grid-unit--wide{width:48.5%}.features__grid-unit--wide:nth-child(n){margin-right:3%}.features__grid-unit--wide:last-child{margin-right:0}}
+.features__item{margin-top:1em;margin-bottom:1em}.features__item--primary{background-position:center top;background-repeat:no-repeat;padding-top:11.5em}@media (min-width: 56.88889em){.features__item--primary{background-position:left center;padding:1em 0}.features__item--primary h3,.features__item--primary p{padding-left:63%}}@media (min-width: 65em){.features__item--primary h3,.features__item--primary p{padding-left:53%}}.features__item--primary h3{font-size:1.4em}.features__item--devices{background-image:url("../img/devices.svg");background-size:258px 188px}.no-svg .features__item--devices{background-image:url("../img/devices.png")}.features__item--messaging{background-image:url("../img/signs.svg");background-size:200px 166px}@media (min-width: 56.88889em){.features__item--messaging{background-position:3em center}}
+.no-svg .features__item--messaging{background-image:url("../img/signs.png")}.get-started{border-bottom:1px solid rgba(255,255,255,0.1)}@media (min-width: 30em){.get-started__grid-unit{width:48.5%;margin-right:3%}.get-started__grid-unit:last-child{margin-right:0}}@media (min-width: 56.88889em){.get-started__grid-unit{width:23.5%;margin-right:3%}.get-started__grid-unit:last-child{margin-right:0}}
+.get-started__grid-unit--wide{width:100%;margin-right:0}@media (min-width: 56.88889em){.get-started__grid-unit--wide{width:47%;margin-right:3%}}
+.get-started__item--primary p{margin-top:0;font-size:1.25em;margin-bottom:1.9em}@media (min-width: 56.88889em){.push-top{margin-top:2.4em}}
+.delegate-bio{clear:left;padding-bottom:1em;border-top:1px solid #e4e3dd;padding-top:1.2em}.about__intro{background-color:#974495;margin-bottom:4em}.about__intro h1{font-weight:600;color:#fff;text-shadow:0px 2px 1px rgba(0,0,0,0.3);margin-bottom:0.25em}@media (min-width: 56.88889em){.about__intro h1{font-size:4em}}.about__intro p{color:#fff}@media (min-width: 40em){.about__intro p{font-size:1.25em}}
+@media (min-width: 40em){.about__column{float:left;padding-left:1.5%;padding-right:1.5%;width:50%;padding:0 3%}.about__column:nth-child(odd),.about__column:first-child{padding-left:0}.about__column:nth-child(even),.about__column:last-child{padding-right:0}}
+.content-in-columns{margin-bottom:1.5em;border-top:3px dashed #f3f1eb;padding-top:1.5em}.content-in-columns:first-of-type{border-top:none;padding-top:0}.stamp-graphic{position:absolute;width:24%;right:2em;-webkit-transform:rotate(9deg);-moz-transform:rotate(9deg);-o-transform:rotate(9deg);transform:rotate(9deg)}@media (min-width: 45.4375em){.stamp-graphic{top:20em}}@media (min-width: 50.6875em){.stamp-graphic{top:19em}}@media (min-width: 66.875em){.stamp-graphic{top:9em}}
+@media (min-width: 50.6875em){.about__intro p{max-width:27em}}@media (min-width: 66.875em){.about__intro p{max-width:34em}}
+.deployments__intro{background-color:#974495;margin-bottom:4em;color:#fff;text-align:center;background-image:url("../img/worldmap-pale.svg");background-position:center center;background-repeat:no-repeat;background-size:600px 325px}@media (min-width: 30em){.deployments__intro{padding:8.1em 0;background-size:1000px 541px}}.deployments__intro h1{font-size:1.2em;font-weight:600;text-shadow:0px 2px 1px rgba(0,0,0,0.3);margin-bottom:1em}@media (min-width: 30em){.deployments__intro h1{font-size:1.666666667em}}.deployments__intro h1 span{display:block;font-size:1.5em;margin-top:0.25em;font-weight:700;line-height:1em}@media (min-width: 30em){.deployments__intro h1 span{margin-top:0.15em;font-size:1.8em}}@media (min-width: 56.88889em){.deployments__intro h1 span{font-size:2.4em}}.deployments__intro p{font-size:1em;max-width:23em;margin:0 auto}@media (min-width: 30em){.deployments__intro p{font-size:1.666666667em}}
+.no-svg .deployments__intro{background-image:url("../img/worldmap-pale.png")}.deployments__content h2{margin-bottom:1.5em}.deployments__list--minor{margin-bottom:2em}@media (min-width: 30em){.deployments__list--minor{margin-bottom:4em}}
+@media (min-width: 40em){.deployments__unit--major{display:inline-block;width:48.5%;margin-right:3%;vertical-align:top}}.deployments__unit--major:nth-child(even){margin-right:0}.deployments__unit--minor{display:inline-block;width:47.5%;vertical-align:top}.deployments__unit--minor:nth-child(n){margin-right:5%}.deployments__unit--minor:nth-child(even){margin-right:0}@media (min-width: 37.22222em){.deployments__unit--minor{width:30%}.deployments__unit--minor:nth-child(n){margin-right:5%}.deployments__unit--minor:nth-child(3n+3){margin-right:0}}@media (min-width: 56.88889em){.deployments__unit--minor{width:22.25%}.deployments__unit--minor:nth-child(n){margin-right:3%}.deployments__unit--minor:nth-child(4n+4){margin-right:0}}@media (min-width: 77.77778em){.deployments__unit--minor{width:14.166666667%}.deployments__unit--minor:nth-child(n){margin-right:3%}.deployments__unit--minor:nth-child(6n+6){margin-right:0}}
+.deployment,.deployment--minor,.deployment--major{margin-bottom:2em}@media (min-width: 40em){.deployment,.deployment--minor,.deployment--major{margin-bottom:3em}}
+.deployment__title{font-weight:600;font-size:1.3em;margin-bottom:0.1em;padding-top:0.2em}@media (min-width: 56.88889em){.deployment__title{font-size:1.5em}}
+.deployment__country{font-weight:600;font-size:1em;color:#787774;margin-top:0;margin-bottom:0.1em}@media (min-width: 56.88889em){.deployment__country{font-size:1.1em}}
+.deployment__link{margin-top:0;margin-bottom:0.5em;font-size:0.888888889em}.deployment__link a{display:block;text-overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}@media (min-width: 56.88889em){.deployment__link{font-size:1em}}
+.deployment__description{font-size:0.888888889em;clear:both}.deployment__screenshot{border:1px solid #e4e3dd}.deployment--minor .deployment__title{padding-top:0;font-size:1.1em}.deployment--minor .deployment__country{font-size:1em}.deployment--minor .deployment__link{font-size:0.777777778em}.deployment--major .deployment__screenshot{width:33%;float:left;margin-bottom:1em}.deployment--major .deployment__title,.deployment--major .deployment__country,.deployment--major .deployment__link{margin-left:37%}.blog-title{line-height:1.3em}.clearfix:before,.clearfix:after{content:" ";display:table}.clearfix:after{clear:both}.clearfix{*zoom:1}.header-link{padding-left:0.2em;opacity:0;-webkit-transition:opacity 0.2s ease-in-out 0.1s;-moz-transition:opacity 0.2s ease-in-out 0.1s;-ms-transition:opacity 0.2s ease-in-out 0.1s}h2:hover .header-link,h3:hover .header-link,h4:hover .header-link,h5:hover .header-link,h6:hover .header-link{opacity:1}
diff --git a/assets/css/global.css b/assets/css/global.css
index 4b6565a8c..8f47cb351 100644
--- a/assets/css/global.css
+++ b/assets/css/global.css
@@ -1,1183 +1,4 @@
-/*! normalize.css v2.1.3 | MIT License | git.io/normalize */
-/* ==========================================================================
- HTML5 display definitions
- ========================================================================== */
-/**
- * Correct `block` display not defined in IE 8/9.
- */
-article,
-aside,
-details,
-figcaption,
-figure,
-footer,
-header,
-hgroup,
-main,
-nav,
-section,
-summary {
- display: block; }
-
-/**
- * Correct `inline-block` display not defined in IE 8/9.
- */
-audio,
-canvas,
-video {
- display: inline-block; }
-
-/**
- * Prevent modern browsers from displaying `audio` without controls.
- * Remove excess height in iOS 5 devices.
- */
-audio:not([controls]) {
- display: none;
- height: 0; }
-
-/**
- * Address `[hidden]` styling not present in IE 8/9.
- * Hide the `template` element in IE, Safari, and Firefox < 22.
- */
-[hidden],
-template {
- display: none; }
-
-/* ==========================================================================
- Base
- ========================================================================== */
-/**
- * 1. Set default font family to sans-serif.
- * 2. Prevent iOS text size adjust after orientation change, without disabling
- * user zoom.
- */
-html {
- font-family: sans-serif;
- /* 1 */
- -ms-text-size-adjust: 100%;
- /* 2 */
- -webkit-text-size-adjust: 100%;
- /* 2 */ }
-
-/**
- * Remove default margin.
- */
-body {
- margin: 0; }
-
-/* ==========================================================================
- Links
- ========================================================================== */
-/**
- * Remove the gray background color from active links in IE 10.
- */
-a {
- background: transparent; }
-
-/**
- * Address `outline` inconsistency between Chrome and other browsers.
- */
-a:focus {
- outline: thin dotted; }
-
-/**
- * Improve readability when focused and also mouse hovered in all browsers.
- */
-a:active,
-a:hover {
- outline: 0; }
-
-/* ==========================================================================
- Typography
- ========================================================================== */
-/**
- * Address variable `h1` font-size and margin within `section` and `article`
- * contexts in Firefox 4+, Safari 5, and Chrome.
- */
-h1 {
- font-size: 2em;
- margin: 0.67em 0; }
-
-/**
- * Address styling not present in IE 8/9, Safari 5, and Chrome.
- */
-abbr[title] {
- border-bottom: 1px dotted; }
-
-/**
- * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
- */
-b,
-strong {
- font-weight: bold; }
-
-/**
- * Address styling not present in Safari 5 and Chrome.
- */
-dfn {
- font-style: italic; }
-
-/**
- * Address differences between Firefox and other browsers.
- */
-hr {
- -moz-box-sizing: content-box;
- box-sizing: content-box;
- height: 0; }
-
-/**
- * Address styling not present in IE 8/9.
- */
-mark {
- background: #ff0;
- color: #000; }
-
-/**
- * Correct font family set oddly in Safari 5 and Chrome.
- */
-code,
-kbd,
-pre,
-samp {
- font-family: monospace, serif;
- font-size: 1em; }
-
-/**
- * Improve readability of pre-formatted text in all browsers.
- */
-pre {
- white-space: pre-wrap; }
-
-/**
- * Set consistent quote types.
- */
-q {
- quotes: "\201C" "\201D" "\2018" "\2019"; }
-
-/**
- * Address inconsistent and variable font size in all browsers.
- */
-small {
- font-size: 80%; }
-
-/**
- * Prevent `sub` and `sup` affecting `line-height` in all browsers.
- */
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline; }
-
-sup {
- top: -0.5em; }
-
-sub {
- bottom: -0.25em; }
-
-/* ==========================================================================
- Embedded content
- ========================================================================== */
-/**
- * Remove border when inside `a` element in IE 8/9.
- */
-img {
- border: 0; }
-
-/**
- * Correct overflow displayed oddly in IE 9.
- */
-svg:not(:root) {
- overflow: hidden; }
-
-/* ==========================================================================
- Figures
- ========================================================================== */
-/**
- * Address margin not present in IE 8/9 and Safari 5.
- */
-figure {
- margin: 0; }
-
-/* ==========================================================================
- Forms
- ========================================================================== */
-/**
- * Define consistent border, margin, and padding.
- */
-fieldset {
- border: 1px solid #c0c0c0;
- margin: 0 2px;
- padding: 0.35em 0.625em 0.75em; }
-
-/**
- * 1. Correct `color` not being inherited in IE 8/9.
- * 2. Remove padding so people aren't caught out if they zero out fieldsets.
- */
-legend {
- border: 0;
- /* 1 */
- padding: 0;
- /* 2 */ }
-
-/**
- * 1. Correct font family not being inherited in all browsers.
- * 2. Correct font size not being inherited in all browsers.
- * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
- */
-button,
-input,
-select,
-textarea {
- font-family: inherit;
- /* 1 */
- font-size: 100%;
- /* 2 */
- margin: 0;
- /* 3 */ }
-
-/**
- * Address Firefox 4+ setting `line-height` on `input` using `!important` in
- * the UA stylesheet.
- */
-button,
-input {
- line-height: normal; }
-
-/**
- * Address inconsistent `text-transform` inheritance for `button` and `select`.
- * All other form control elements do not inherit `text-transform` values.
- * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
- * Correct `select` style inheritance in Firefox 4+ and Opera.
- */
-button,
-select {
- text-transform: none; }
-
-/**
- * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
- * and `video` controls.
- * 2. Correct inability to style clickable `input` types in iOS.
- * 3. Improve usability and consistency of cursor style between image-type
- * `input` and others.
- */
-button,
-html input[type="button"],
-input[type="reset"],
-input[type="submit"] {
- -webkit-appearance: button;
- /* 2 */
- cursor: pointer;
- /* 3 */ }
-
-/**
- * Re-set default cursor for disabled elements.
- */
-button[disabled],
-html input[disabled] {
- cursor: default; }
-
-/**
- * 1. Address box sizing set to `content-box` in IE 8/9/10.
- * 2. Remove excess padding in IE 8/9/10.
- */
-input[type="checkbox"],
-input[type="radio"] {
- box-sizing: border-box;
- /* 1 */
- padding: 0;
- /* 2 */ }
-
-/**
- * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
- * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
- * (include `-moz` to future-proof).
- */
-input[type="search"] {
- -webkit-appearance: textfield;
- /* 1 */
- -moz-box-sizing: content-box;
- -webkit-box-sizing: content-box;
- /* 2 */
- box-sizing: content-box; }
-
-/**
- * Remove inner padding and search cancel button in Safari 5 and Chrome
- * on OS X.
- */
-input[type="search"]::-webkit-search-cancel-button,
-input[type="search"]::-webkit-search-decoration {
- -webkit-appearance: none; }
-
-/**
- * Remove inner padding and border in Firefox 4+.
- */
-button::-moz-focus-inner,
-input::-moz-focus-inner {
- border: 0;
- padding: 0; }
-
-/**
- * 1. Remove default vertical scrollbar in IE 8/9.
- * 2. Improve readability and alignment in all browsers.
- */
-textarea {
- overflow: auto;
- /* 1 */
- vertical-align: top;
- /* 2 */ }
-
-/* ==========================================================================
- Tables
- ========================================================================== */
-/**
- * Remove most spacing between table cells.
- */
-table {
- border-collapse: collapse;
- border-spacing: 0; }
-
-.image-replacement, .ms-header__logo, .site-title {
- text-indent: -1000%;
- white-space: nowrap;
- overflow: hidden; }
-
-.container, .ms-header__row, .page {
- max-width: 63.333333333em;
- padding: 0 1em;
- margin: 0 auto;
- position: relative; }
-
-.unstyled-list, .unstyled, .site-footer ul, .breadcrumb, .sidebar ul, .list-of-blog-posts, .definitions {
- margin-left: 0;
- padding-left: 0;
- list-style: none outside none; }
-
-.inline-list, .definitions {
- margin-left: -0.5em;
- margin-bottom: 0; }
- .inline-list li, .definitions li {
- display: inline-block;
- margin-left: 0.5em; }
-
-.text--center {
- text-align: center; }
-
-.highlight {
- background: #ffffff; }
-
-.highlight .c {
- color: #999988;
- font-style: italic; }
-
-/* Comment */
-.highlight .err {
- color: #a61717;
- background-color: #e3d2d2; }
-
-/* Error */
-.highlight .k {
- font-weight: bold; }
-
-/* Keyword */
-.highlight .o {
- font-weight: bold; }
-
-/* Operator */
-.highlight .cm {
- color: #999988;
- font-style: italic; }
-
-/* Comment.Multiline */
-.highlight .cp {
- color: #999999;
- font-weight: bold; }
-
-/* Comment.Preproc */
-.highlight .c1 {
- color: #999988;
- font-style: italic; }
-
-/* Comment.Single */
-.highlight .cs {
- color: #999999;
- font-weight: bold;
- font-style: italic; }
-
-/* Comment.Special */
-.highlight .gd {
- color: #000000;
- background-color: #ffdddd; }
-
-/* Generic.Deleted */
-.highlight .gd .x {
- color: #000000;
- background-color: #ffaaaa; }
-
-/* Generic.Deleted.Specific */
-.highlight .ge {
- font-style: italic; }
-
-/* Generic.Emph */
-.highlight .gr {
- color: #aa0000; }
-
-/* Generic.Error */
-.highlight .gh {
- color: #999999; }
-
-/* Generic.Heading */
-.highlight .gi {
- color: #000000;
- background-color: #ddffdd; }
-
-/* Generic.Inserted */
-.highlight .gi .x {
- color: #000000;
- background-color: #aaffaa; }
-
-/* Generic.Inserted.Specific */
-.highlight .go {
- color: #888888; }
-
-/* Generic.Output */
-.highlight .gp {
- color: #555555; }
-
-/* Generic.Prompt */
-.highlight .gs {
- font-weight: bold; }
-
-/* Generic.Strong */
-.highlight .gu {
- color: #800080;
- font-weight: bold; }
-
-/* Generic.Subheading */
-.highlight .gt {
- color: #aa0000; }
-
-/* Generic.Traceback */
-.highlight .kc {
- font-weight: bold; }
-
-/* Keyword.Constant */
-.highlight .kd {
- font-weight: bold; }
-
-/* Keyword.Declaration */
-.highlight .kn {
- font-weight: bold; }
-
-/* Keyword.Namespace */
-.highlight .kp {
- font-weight: bold; }
-
-/* Keyword.Pseudo */
-.highlight .kr {
- font-weight: bold; }
-
-/* Keyword.Reserved */
-.highlight .kt {
- color: #445588;
- font-weight: bold; }
-
-/* Keyword.Type */
-.highlight .m {
- color: #009999; }
-
-/* Literal.Number */
-.highlight .s {
- color: #dd1144; }
-
-/* Literal.String */
-.highlight .na {
- color: teal; }
-
-/* Name.Attribute */
-.highlight .nb {
- color: #0086b3; }
-
-/* Name.Builtin */
-.highlight .nc {
- color: #445588;
- font-weight: bold; }
-
-/* Name.Class */
-.highlight .no {
- color: teal; }
-
-/* Name.Constant */
-.highlight .ni {
- color: purple; }
-
-/* Name.Entity */
-.highlight .ne {
- color: #990000;
- font-weight: bold; }
-
-/* Name.Exception */
-.highlight .nf {
- color: #990000;
- font-weight: bold; }
-
-/* Name.Function */
-.highlight .nn {
- color: #555555; }
-
-/* Name.Namespace */
-.highlight .nt {
- color: navy; }
-
-/* Name.Tag */
-.highlight .nv {
- color: teal; }
-
-/* Name.Variable */
-.highlight .ow {
- font-weight: bold; }
-
-/* Operator.Word */
-.highlight .w {
- color: #bbbbbb; }
-
-/* Text.Whitespace */
-.highlight .mf {
- color: #009999; }
-
-/* Literal.Number.Float */
-.highlight .mh {
- color: #009999; }
-
-/* Literal.Number.Hex */
-.highlight .mi {
- color: #009999; }
-
-/* Literal.Number.Integer */
-.highlight .mo {
- color: #009999; }
-
-/* Literal.Number.Oct */
-.highlight .sb {
- color: #dd1144; }
-
-/* Literal.String.Backtick */
-.highlight .sc {
- color: #dd1144; }
-
-/* Literal.String.Char */
-.highlight .sd {
- color: #dd1144; }
-
-/* Literal.String.Doc */
-.highlight .s2 {
- color: #dd1144; }
-
-/* Literal.String.Double */
-.highlight .se {
- color: #dd1144; }
-
-/* Literal.String.Escape */
-.highlight .sh {
- color: #dd1144; }
-
-/* Literal.String.Heredoc */
-.highlight .si {
- color: #dd1144; }
-
-/* Literal.String.Interpol */
-.highlight .sx {
- color: #dd1144; }
-
-/* Literal.String.Other */
-.highlight .sr {
- color: #009926; }
-
-/* Literal.String.Regex */
-.highlight .s1 {
- color: #dd1144; }
-
-/* Literal.String.Single */
-.highlight .ss {
- color: #990073; }
-
-/* Literal.String.Symbol */
-.highlight .bp {
- color: #999999; }
-
-/* Name.Builtin.Pseudo */
-.highlight .vc {
- color: teal; }
-
-/* Name.Variable.Class */
-.highlight .vg {
- color: teal; }
-
-/* Name.Variable.Global */
-.highlight .vi {
- color: teal; }
-
-/* Name.Variable.Instance */
-.highlight .il {
- color: #009999; }
-
-/* Literal.Number.Integer.Long */
-.type-csharp .highlight .k {
- color: blue; }
-
-.type-csharp .highlight .kt {
- color: blue; }
-
-.type-csharp .highlight .nf {
- color: #000000;
- font-weight: normal; }
-
-.type-csharp .highlight .nc {
- color: #2b91af; }
-
-.type-csharp .highlight .nn {
- color: black; }
-
-.type-csharp .highlight .s {
- color: #a31515; }
-
-.type-csharp .highlight .sc {
- color: #a31515; }
-
-/* Alaveteli's purple */
-*, *:before, *:after {
- -moz-box-sizing: border-box;
- -webkit-box-sizing: border-box;
- box-sizing: border-box; }
-
-html {
- height: 100%; }
-
-body {
- font-family: "Source Sans Pro", "Helvetica Neue", Arial, Helvetica, serif;
- background-color: #fff;
- color: #333333;
- font-size: 1.125em;
- line-height: 1.555555556em;
- height: 100%;
- min-height: 100%; }
-
-a {
- color: #2b8cdb;
- text-decoration: none; }
- a:hover, a:active, a:focus {
- text-decoration: underline; }
-
-h1, h2, h3, h4, h5, h6 {
- margin-top: 0;
- margin-bottom: 0.5em;
- text-rendering: optimizeLegibility; }
-
-h1,
-.primary-heading {
- font-size: 2.666666667em;
- line-height: 1.1em;
- font-weight: normal; }
-
-h2,
-.secondary-heading {
- font-size: 1.666666667em;
- font-weight: 600; }
-
-h3,
-.tertiary-heading {
- font-size: 1.166666667em;
- font-weight: 600; }
-
-h4,
-.quarternary-heading {
- font-size: 1em;
- text-transform: uppercase; }
-
-p {
- line-height: 1.4375em; }
-
-.lead {
- font-size: 1.1875em;
- color: #787774;
- border-bottom: 1px solid #e4e3dd;
- padding-bottom: 1em;
- margin-bottom: 1.2em;
- margin-top: 0; }
-
-.title {
- font-weight: normal; }
-
-pre, code, kbd, samp {
- font-family: Consolas, 'Liberation Mono', Courier, monospace; }
-
-code {
- border: 1px solid #e4e3dd;
- background: #f3f1eb;
- color: #dd4e4d;
- border-radius: 3px;
- padding: 0 0.2em; }
-
-a code {
- border-color: none;
- color: inherit; }
-
-pre {
- display: block;
- white-space: pre-wrap;
- background-color: #f3f1eb;
- border-top: 3px solid #e4e3dd;
- border-bottom: 3px solid #e4e3dd;
- padding: 1em;
- max-width: 100%;
- overflow-x: scroll;
- font-size: .9375em;
- line-height: 1.4375em; }
- pre code {
- border: none;
- padding: 0;
- background: none; }
-
-hr {
- border: none;
- border-top: 1px solid #e4e3dd;
- margin: 0; }
-
-img {
- max-width: 100%;
- height: auto; }
-
-ul {
- padding-left: 1.3em; }
-
-/* To avoid floaty footer, make background footer colour */
-.page-wrapper {
- background: #f3f1eb;
- float: left;
- width: 100%; }
-
-.page-wrapper--white {
- width: 100%;
- background: #fff; }
-
-/* mySociety header */
-.ms-header {
- background: transparent;
- border-top: 4px solid #424242; }
-
-.ms-header__logo {
- display: block;
- position: absolute;
- right: 0.75em;
- top: 0;
- background-color: #424242;
- background-repeat: no-repeat;
- height: 38px;
- width: 44px;
- border-radius: 0 0 0.75em 0.75em;
- background-size: 22px;
- background-position: 11px 7px;
- background-image: url("../../theme/img/mysociety-bloom.png"); }
- @media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {
- .ms-header__logo {
- background-image: url("../../theme/img/mysociety-bloom@2.png"); } }
- @media (min-width: 30em) {
- .ms-header__logo {
- border-radius: 0 0 1em 1em;
- background-position: 16px 10px;
- background-size: 93px 19px;
- background-repeat: no-repeat;
- background-image: url("../../theme/img/mysociety-logo.png");
- width: 125px;
- height: 39px; } }
- @media (min-width: 30em) and (-webkit-min-device-pixel-ratio: 1.5), (min-width: 30em) and (min-resolution: 144dpi) {
- .ms-header__logo {
- background-image: url("../../theme/img/mysociety-logo@2.png"); } }
-
-.site-title {
- height: 60px;
- width: 140px;
- max-width: 100%;
- display: block;
- background-position: top left;
- background-repeat: no-repeat;
- background-image: url("../img/alaveteli-logo.svg"); }
-
-.site-header {
- border-top: 0.375em solid #424242;
- padding: 1em 0;
- background-position: center;
- background-color: #a94ca6; }
-
-.main-content-column {
- padding-left: 0 !Important; }
- @media (min-width: 56.88889em) {
- .main-content-column {
- /* Use for grids where the columns are different widths */
- float: left;
- padding-left: 3%;
- width: 75%; }
- .main-content-column:first-child {
- padding-left: 0; } }
-
-.main-content-column-full-width {
- float: left;
- padding: 0;
- width: 100%; }
-
-.main-content {
- background: #fff;
- padding: 1.6em 5%;
- position: relative;
- margin-bottom: 32px; }
- .main-content h2 {
- border-top: 1px solid #e4e3dd;
- padding-top: 1.2em; }
- .main-content .lead + h2 {
- border-top: none;
- padding-top: 0; }
- .main-content .reveal-on-click + h2 {
- border-top: none; }
-
-@media (min-width: 56.88889em) {
- .secondary-content-column {
- /* Use for grids where the columns are different widths */
- float: left;
- padding-left: 3%;
- width: 25%; }
- .secondary-content-column:first-child {
- padding-left: 0; } }
-
-.breadcrumb {
- padding: 8px 0; }
- .breadcrumb li {
- display: inline;
- font-size: 0.75em; }
- .breadcrumb li:after {
- content: '/';
- margin: 0 0.33em;
- color: #e4e3dd; }
- .breadcrumb li a {
- color: #787774; }
-
-.sidebar ul {
- -webkit-column-count: 2;
- -moz-column-count: 2;
- -o-column-count: 2;
- column-count: 2; }
- @media (min-width: 56.88889em) {
- .sidebar ul {
- -webkit-column-count: 1;
- -moz-column-count: 1;
- -o-column-count: 1;
- column-count: 1; } }
- .sidebar ul ul {
- -webkit-column-count: 1;
- -moz-column-count: 1;
- -o-column-count: 1;
- column-count: 1; }
-.sidebar h2 {
- color: #333333;
- text-transform: uppercase;
- font-weight: 700;
- font-size: 0.875em;
- margin: 0; }
- .sidebar h2 a {
- color: #333333;
- font-size: 1em;
- text-decoration: underline; }
-.sidebar a {
- color: #787774;
- font-size: 0.875em; }
- .sidebar a:hover, .sidebar a:active, .sidebar a:focus {
- color: #2b8cdb; }
-.sidebar li li {
- line-height: 1.4em;
- margin-left: 1em; }
-
-.listed-blog-post {
- margin-bottom: 2em;
- padding-bottom: 1em; }
- .listed-blog-post .blog-title {
- font-weight: 700; }
- .listed-blog-post .blog-title .meta {
- font-weight: normal; }
-
-.blog-post-header .blog-title {
- margin-bottom: 0; }
-.blog-post-header .meta {
- margin-top: 0; }
-
-.meta {
- color: #787774; }
-
-.r, .l {
- margin-bottom: 1em;
- max-width: 50%; }
-
-.r {
- float: right;
- margin-left: 1em; }
-
-.l {
- float: left;
- margin-right: 1em; }
-
-.reveal-on-click {
- border: 1px solid #e4e3dd; }
- .reveal-on-click dt {
- border-top: 1px solid #e4e3dd;
- padding: 1em;
- cursor: pointer;
- position: relative; }
- .reveal-on-click dt:hover {
- text-decoration: underline; }
- .reveal-on-click dt:first-child {
- border-top: none; }
- .reveal-on-click dt:after {
- content: "+";
- position: absolute;
- top: 0.8em;
- right: 1em;
- display: inline-block;
- background: #f3f1eb;
- border-radius: 50%;
- height: 1.5em;
- width: 1.5em;
- text-align: center;
- color: #787774;
- -webkit-transition: -webkit-transform 0.2s ease-out;
- -moz-transition: -moz-transform 0.2s ease-out;
- -o-transition: -o-transform 0.2s ease-out;
- transition: transform 0.2s ease-out; }
- .reveal-on-click dt:hover:after {
- background: #2b8cdb;
- color: #fff; }
- .reveal-on-click dt.revealed:after {
- -webkit-transform: rotate(45deg);
- -moz-transform: rotate(45deg);
- -ms-transform: rotate(45deg);
- -o-transform: rotate(45deg);
- transform: rotate(45deg);
- -webkit-transition: -webkit-transform 0.2s ease-out;
- -moz-transition: -moz-transform 0.2s ease-out;
- -o-transition: -o-transform 0.2s ease-out;
- transition: transform 0.2s ease-out; }
- .reveal-on-click dd {
- margin-left: 0;
- padding: 0 1em 0;
- position: relative;
- top: -1em; }
-
-dl.dir-structure, dl.dir-structure dl {
- background: url(../../theme/img/tree-last.png) no-repeat;
- background-position: 0 -29px;
- padding: 0 0 0 21px;
- margin: 0.5em 0 0 0; }
-
-dl.dir-structure {
- margin-bottom: 1.5em; }
-
-dl.dir-structure dt {
- background: url(../../theme/img/tree-branch.png) no-repeat;
- background-position: 0 0;
- padding: 20px 0 0 28px;
- margin: 0; }
-
-dl.dir-structure dd {
- background: url(../../theme/img/tree-upright.png) repeat-y;
- padding: 0 0 0em 40px;
- margin: 0; }
-
-dl.dir-structure dd p {
- margin: 0;
- padding: 0 0 0.5em 0; }
-
-dl.dir-structure dt.last {
- background: url(../../theme/img/tree-last.png) no-repeat; }
-
-dl.dir-structure dd.last {
- background-image: none;
- padding-bottom: 0;
- /* gap at bottom of nested trees is big enough as it is */ }
-
-table.table {
- border: 1px solid #ccc;
- margin: 0.5em 0 1em;
- border-collapse: collapse; }
-
-table.table th {
- background-color: #f5f5f5; }
-
-table.table th,
-table.table td {
- border: 1px solid #ccc;
- padding: 0.666em; }
-
-.attention-box {
- padding: 1em;
- border: 1px solid #e4e3dd;
- margin-bottom: 1.2em; }
-
-.definitions li {
- margin-left: 0.25em; }
-.definitions a {
- display: inline-block;
- background-color: #f3f1eb;
- border-radius: 2em;
- padding: 0.33em 0.66em;
- color: #333333;
- font-size: 0.875em;
- margin-bottom: 1em; }
- .definitions a:hover, .definitions a:active, .definitions a:focus {
- color: #fff;
- background-color: #333333;
- text-decoration: none; }
-
-.glossary {
- margin: 2em 0 8em 0;
- /* big margin helps scroll-to #name at bottom of page */ }
-
-.glossary dt {
- background-color: #f3f1eb;
- padding: 0.66em 1em;
- margin-top: 3em;
- border: 1px solid #e4e3dd;
- border-bottom: none;
- color: #787774; }
- .glossary dt a {
- color: #333333;
- font-size: 1.5em;
- font-weight: 300; }
-
-.glossary dt a:hover {
- text-decoration: none; }
-
-.glossary dd {
- border: 1px solid #e4e3dd;
- border-top: none;
- padding: 1em 2em;
- margin: 0; }
-
-.glossary dd p {
- margin-top: 0.666em; }
-
-.glossary .more-info {
- margin: 1em 0 0 0; }
-
-.glossary .more-info > p {
- float: left;
- color: #787774;
- width: 8em;
- margin: 0; }
-
-.glossary .more-info ul {
- margin-top: 0.5em;
- margin-left: 10em; }
-
-/* examples benefit from full-width (because they're often code snippets) */
-.glossary .more-info ul.examples {
- clear: both;
- padding-top: 0.666em;
- margin-left: 0em; }
-
-.site-footer {
- width: 100%;
- clear: left;
- background: #333333;
- padding: 32px 0;
- /**
- * For IE 6/7 only
- * Include this rule to trigger hasLayout and contain floats.
- */ }
- .site-footer:before, .site-footer:after {
- content: " ";
- /* 1 */
- display: table;
- /* 2 */ }
- .site-footer:after {
- clear: both; }
- .site-footer {
- *zoom: 1; }
- .site-footer .column {
- /* Use for multi-column grids where all columns are equal width, it gives them equal spacing */
- float: left;
- padding-left: 1.5%;
- padding-right: 1.5%;
- width: 50%; }
- .site-footer .column:nth-child(odd), .site-footer .column:first-child {
- padding-left: 0; }
- .site-footer .column:nth-child(even), .site-footer .column:last-child {
- padding-right: 0; }
- @media (min-width: 30em) {
- .site-footer .column {
- /* Use for grids where the columns are different widths */
- float: left;
- padding-left: 3%;
- width: 25%; }
- .site-footer .column:first-child {
- padding-left: 0; } }
- @media (min-width: 56.88889em) {
- .site-footer .column {
- /* Use for grids where the columns are different widths */
- float: left;
- padding-left: 3%;
- width: 20%; }
- .site-footer .column:first-child {
- padding-left: 0; } }
- .site-footer .column:last-child h3 {
- margin-top: 1em; }
- @media (min-width: 30em) {
- .site-footer .column:last-child h3 {
- margin-top: 0; } }
- .site-footer .central {
- float: right; }
- @media (min-width: 30em) {
- .site-footer .central {
- /* Use for grids where the columns are different widths */
- float: left;
- padding-left: 3%;
- width: 50%; }
- .site-footer .central ul {
- -webkit-column-count: 1;
- -moz-column-count: 1;
- -o-column-count: 1;
- column-count: 1; }
- .site-footer .central:first-child {
- padding-left: 0; } }
- @media (min-width: 40em) {
- .site-footer .central {
- /* Use for grids where the columns are different widths */
- float: left;
- padding-left: 3%;
- width: 50%; }
- .site-footer .central ul {
- -webkit-column-count: 2;
- -moz-column-count: 2;
- -o-column-count: 2;
- column-count: 2; }
- .site-footer .central:first-child {
- padding-left: 0; } }
- @media (min-width: 56.88889em) {
- .site-footer .central {
- /* Use for grids where the columns are different widths */
- float: left;
- padding-left: 3%;
- width: 60%; }
- .site-footer .central ul {
- -webkit-column-count: 3;
- -moz-column-count: 3;
- -o-column-count: 3;
- column-count: 3; }
- .site-footer .central:first-child {
- padding-left: 0; } }
- .site-footer h3 {
- font-size: 1em;
- font-weight: normal;
- margin-bottom: 0;
- color: #888; }
- .site-footer ul {
- margin: 0; }
- .site-footer a {
- color: #eeeeee; }
+/*! normalize.css v2.1.3 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden],template{display:none}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}a{background:transparent}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:0.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace, serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.image-replacement,.ms-header__logo,.site-title{text-indent:-1000%;white-space:nowrap;overflow:hidden}.container,.ms-header__row,.page{max-width:63.333333333em;padding:0 1em;margin:0 auto;position:relative}.unstyled-list,.unstyled,.site-footer ul,.breadcrumb,.sidebar ul,.list-of-blog-posts,.definitions{margin-left:0;padding-left:0;list-style:none outside none}.inline-list,.definitions{margin-left:-0.5em;margin-bottom:0}.inline-list li,.definitions li{display:inline-block;margin-left:0.5em}.text--center{text-align:center}.highlight{background:#ffffff}.highlight .c{color:#999988;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .k{font-weight:bold}.highlight .o{font-weight:bold}.highlight .cm{color:#999988;font-style:italic}.highlight .cp{color:#999999;font-weight:bold}.highlight .c1{color:#999988;font-style:italic}.highlight .cs{color:#999999;font-weight:bold;font-style:italic}.highlight .gd{color:#000000;background-color:#fdd}.highlight .gd .x{color:#000000;background-color:#faa}.highlight .ge{font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000000;background-color:#dfd}.highlight .gi .x{color:#000000;background-color:#afa}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bold}.highlight .gu{color:#800080;font-weight:bold}.highlight .gt{color:#a00}.highlight .kc{font-weight:bold}.highlight .kd{font-weight:bold}.highlight .kn{font-weight:bold}.highlight .kp{font-weight:bold}.highlight .kr{font-weight:bold}.highlight .kt{color:#445588;font-weight:bold}.highlight .m{color:#099}.highlight .s{color:#d14}.highlight .na{color:teal}.highlight .nb{color:#0086b3}.highlight .nc{color:#445588;font-weight:bold}.highlight .no{color:teal}.highlight .ni{color:purple}.highlight .ne{color:#990000;font-weight:bold}.highlight .nf{color:#990000;font-weight:bold}.highlight .nn{color:#555}.highlight .nt{color:navy}.highlight .nv{color:teal}.highlight .ow{font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#d14}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .il{color:#099}.type-csharp .highlight .k{color:blue}.type-csharp .highlight .kt{color:blue}.type-csharp .highlight .nf{color:#000000;font-weight:normal}.type-csharp .highlight .nc{color:#2b91af}.type-csharp .highlight .nn{color:#000}.type-csharp .highlight .s{color:#a31515}.type-csharp .highlight .sc{color:#a31515}*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}html{height:100%}body{font-family:"Source Sans Pro","Helvetica Neue",Arial,Helvetica,serif;background-color:#fff;color:#333;font-size:1.125em;line-height:1.555555556em;height:100%;min-height:100%}a{color:#2b8cdb;text-decoration:none}a:hover,a:active,a:focus{text-decoration:underline}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:0.5em;text-rendering:optimizeLegibility}h1,.primary-heading{font-size:2.666666667em;line-height:1.1em;font-weight:normal}h2,.secondary-heading{font-size:1.666666667em;font-weight:600}h3,.tertiary-heading{font-size:1.166666667em;font-weight:600}h4,.quarternary-heading{font-size:1em;text-transform:uppercase}p{line-height:1.4375em}.lead{font-size:1.1875em;color:#787774;border-bottom:1px solid #e4e3dd;padding-bottom:1em;margin-bottom:1.2em;margin-top:0}.title{font-weight:normal}pre,code,kbd,samp{font-family:Consolas, 'Liberation Mono', Courier, monospace}code{border:1px solid #e4e3dd;background:#f3f1eb;color:#dd4e4d;border-radius:3px;padding:0 0.2em}a code{border-color:none;color:inherit}pre{display:block;white-space:pre-wrap;background-color:#f3f1eb;border-top:3px solid #e4e3dd;border-bottom:3px solid #e4e3dd;padding:1em;max-width:100%;overflow-x:scroll;font-size:.9375em;line-height:1.4375em}pre code{border:none;padding:0;background:none}hr{border:none;border-top:1px solid #e4e3dd;margin:0}img{max-width:100%;height:auto}ul{padding-left:1.3em}.page-wrapper{background:#f3f1eb;float:left;width:100%}.page-wrapper--white{width:100%;background:#fff}.ms-header{background:transparent;border-top:4px solid #424242}.ms-header__logo{display:block;position:absolute;right:0.75em;top:0;background-color:#424242;background-repeat:no-repeat;height:38px;width:44px;border-radius:0 0 0.75em 0.75em;background-size:22px;background-position:11px 7px;background-image:url("../../theme/img/mysociety-bloom.png")}@media (-webkit-min-device-pixel-ratio: 1.5), (min-resolution: 144dpi){.ms-header__logo{background-image:url("../../theme/img/mysociety-bloom@2.png")}}@media (min-width: 30em){.ms-header__logo{border-radius:0 0 1em 1em;background-position:16px 10px;background-size:93px 19px;background-repeat:no-repeat;background-image:url("../../theme/img/mysociety-logo.png");width:125px;height:39px}}@media (min-width: 30em) and (-webkit-min-device-pixel-ratio: 1.5), (min-width: 30em) and (min-resolution: 144dpi){.ms-header__logo{background-image:url("../../theme/img/mysociety-logo@2.png")}}
+.site-title{height:60px;width:140px;max-width:100%;display:block;background-position:top left;background-repeat:no-repeat;background-image:url("../img/alaveteli-logo.svg")}.site-header{border-top:0.375em solid #424242;padding:1em 0;background-position:center;background-color:#a94ca6}.main-content-column{padding-left:0 !Important}@media (min-width: 56.88889em){.main-content-column{float:left;padding-left:3%;width:75%}.main-content-column:first-child{padding-left:0}}
+.main-content-column-full-width{float:left;padding:0;width:100%}.main-content{background:#fff;padding:1.6em 5%;position:relative;margin-bottom:32px}.main-content h2{border-top:1px solid #e4e3dd;padding-top:1.2em}.main-content .lead+h2{border-top:none;padding-top:0}.main-content .reveal-on-click+h2{border-top:none}@media (min-width: 56.88889em){.secondary-content-column{float:left;padding-left:3%;width:25%}.secondary-content-column:first-child{padding-left:0}}
+.breadcrumb{padding:8px 0}.breadcrumb li{display:inline;font-size:0.75em}.breadcrumb li:after{content:'/';margin:0 0.33em;color:#e4e3dd}.breadcrumb li a{color:#787774}.sidebar ul{-webkit-column-count:2;-moz-column-count:2;-o-column-count:2;column-count:2}@media (min-width: 56.88889em){.sidebar ul{-webkit-column-count:1;-moz-column-count:1;-o-column-count:1;column-count:1}}.sidebar ul ul{-webkit-column-count:1;-moz-column-count:1;-o-column-count:1;column-count:1}.sidebar h2{color:#333;text-transform:uppercase;font-weight:700;font-size:0.875em;margin:0}.sidebar h2 a{color:#333;font-size:1em;text-decoration:underline}.sidebar a{color:#787774;font-size:0.875em}.sidebar a:hover,.sidebar a:active,.sidebar a:focus{color:#2b8cdb}.sidebar li li{line-height:1.4em;margin-left:1em}.listed-blog-post{margin-bottom:2em;padding-bottom:1em}.listed-blog-post .blog-title{font-weight:700}.listed-blog-post .blog-title .meta{font-weight:normal}.blog-post-header .blog-title{margin-bottom:0}.blog-post-header .meta{margin-top:0}.meta{color:#787774}.r,.l{margin-bottom:1em;max-width:50%}.r{float:right;margin-left:1em}.l{float:left;margin-right:1em}.reveal-all{display:inline-block;width:auto;position:relative;right:0;text-decoration:underline;cursor:pointer;color:#787774;padding-left:1em}.reveal-all:after{content:"+";position:absolute;top:0;left:0;display:inline-block;text-align:center;color:#787774;-webkit-transition:-webkit-transform 0.2s ease-out;-moz-transition:-moz-transform 0.2s ease-out;-o-transition:-o-transform 0.2s ease-out;transition:transform 0.2s ease-out}.reveal-all.revealed:after{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:-webkit-transform 0.2s ease-out;-moz-transition:-moz-transform 0.2s ease-out;-o-transition:-o-transform 0.2s ease-out;transition:transform 0.2s ease-out}.reveal-on-click{border:1px solid #e4e3dd}.reveal-on-click dt{border-top:1px solid #e4e3dd;padding:1em;cursor:pointer;position:relative}.reveal-on-click dt:hover{text-decoration:underline}.reveal-on-click dt:first-child{border-top:none}.reveal-on-click dt:after{content:"+";position:absolute;top:0.8em;right:1em;display:inline-block;background:#f3f1eb;border-radius:50%;height:1.5em;width:1.5em;text-align:center;color:#787774;-webkit-transition:-webkit-transform 0.2s ease-out;-moz-transition:-moz-transform 0.2s ease-out;-o-transition:-o-transform 0.2s ease-out;transition:transform 0.2s ease-out}.reveal-on-click dt:hover:after{background:#2b8cdb;color:#fff}.reveal-on-click dt.revealed:after{-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg);-webkit-transition:-webkit-transform 0.2s ease-out;-moz-transition:-moz-transform 0.2s ease-out;-o-transition:-o-transform 0.2s ease-out;transition:transform 0.2s ease-out}.reveal-on-click dd{margin-left:0;padding:0 1em 0;position:relative;top:-1em}dl.dir-structure,dl.dir-structure dl{background:url(../../theme/img/tree-last.png) no-repeat;background-position:0 -29px;padding:0 0 0 21px;margin:0.5em 0 0 0}dl.dir-structure{margin-bottom:1.5em}dl.dir-structure dt{background:url(../../theme/img/tree-branch.png) no-repeat;background-position:0 0;padding:20px 0 0 28px;margin:0}dl.dir-structure dd{background:url(../../theme/img/tree-upright.png) repeat-y;padding:0 0 0em 40px;margin:0}dl.dir-structure dd p{margin:0;padding:0 0 0.5em 0}dl.dir-structure dt.last{background:url(../../theme/img/tree-last.png) no-repeat}dl.dir-structure dd.last{background-image:none;padding-bottom:0}table.table{border:1px solid #ccc;margin:0.5em 0 1em;border-collapse:collapse}table.table th{background-color:#f5f5f5}table.table th,table.table td{border:1px solid #ccc;padding:0.666em}.attention-box{padding:1em;border:1px solid #e4e3dd;margin-bottom:1.2em}.definitions li{margin-left:0.25em}.definitions a{display:inline-block;background-color:#f3f1eb;border-radius:2em;padding:0.33em 0.66em;color:#333;font-size:0.875em;margin-bottom:1em}.definitions a:hover,.definitions a:active,.definitions a:focus{color:#fff;background-color:#333;text-decoration:none}.glossary{margin:2em 0 8em 0}.glossary dt{background-color:#f3f1eb;padding:0.66em 1em;margin-top:3em;border:1px solid #e4e3dd;border-bottom:none;color:#787774}.glossary dt a{color:#333;font-size:1.5em;font-weight:300}.glossary dt a:hover{text-decoration:none}.glossary dd{border:1px solid #e4e3dd;border-top:none;padding:1em 2em;margin:0}.glossary dd p{margin-top:0.666em}.glossary .more-info{margin:1em 0 0 0}.glossary .more-info>p{float:left;color:#787774;width:8em;margin:0}.glossary .more-info ul{margin-top:0.5em;margin-left:10em}.glossary .more-info ul.examples{clear:both;padding-top:0.666em;margin-left:0em}.glossary__link{display:inline-block;color:#787774;text-decoration:underline;position:relative;padding-left:.5em}.glossary__link:before{content:'#';opacity:0.5;text-decoration:none;position:absolute;left:0}.glossary__link:hover,.glossary__link:active,.glossary__link:focus{color:#333}.glossary__link:hover:before,.glossary__link:active:before,.glossary__link:focus:before{opacity:1}.site-footer{width:100%;clear:left;background:#333;padding:32px 0}.site-footer:before,.site-footer:after{content:" ";display:table}.site-footer:after{clear:both}.site-footer{*zoom:1}.site-footer .column{float:left;padding-left:1.5%;padding-right:1.5%;width:50%}.site-footer .column:nth-child(odd),.site-footer .column:first-child{padding-left:0}.site-footer .column:nth-child(even),.site-footer .column:last-child{padding-right:0}@media (min-width: 30em){.site-footer .column{float:left;padding-left:3%;width:25%}.site-footer .column:first-child{padding-left:0}}@media (min-width: 56.88889em){.site-footer .column{float:left;padding-left:3%;width:20%}.site-footer .column:first-child{padding-left:0}}.site-footer .column:last-child h3{margin-top:1em}@media (min-width: 30em){.site-footer .column:last-child h3{margin-top:0}}.site-footer .central{float:right}@media (min-width: 30em){.site-footer .central{float:left;padding-left:3%;width:50%}.site-footer .central ul{-webkit-column-count:1;-moz-column-count:1;-o-column-count:1;column-count:1}.site-footer .central:first-child{padding-left:0}}@media (min-width: 40em){.site-footer .central{float:left;padding-left:3%;width:50%}.site-footer .central ul{-webkit-column-count:2;-moz-column-count:2;-o-column-count:2;column-count:2}.site-footer .central:first-child{padding-left:0}}@media (min-width: 56.88889em){.site-footer .central{float:left;padding-left:3%;width:60%}.site-footer .central ul{-webkit-column-count:3;-moz-column-count:3;-o-column-count:3;column-count:3}.site-footer .central:first-child{padding-left:0}}.site-footer h3{font-size:1em;font-weight:normal;margin-bottom:0;color:#888}.site-footer ul{margin:0}.site-footer a{color:#eeeeee}
diff --git a/assets/sass/alaveteli-org.scss b/assets/sass/alaveteli-org.scss
index e7aa6a2a9..8a87f6bef 100644
--- a/assets/sass/alaveteli-org.scss
+++ b/assets/sass/alaveteli-org.scss
@@ -867,6 +867,7 @@ h3 {
.clearfix {
@include clearfix;
+}
.header-link {
padding-left: 0.2em;
opacity: 0;
diff --git a/docs/installing/manual_install.md b/docs/installing/manual_install.md
index 653c6e7f4..821188b85 100644
--- a/docs/installing/manual_install.md
+++ b/docs/installing/manual_install.md
@@ -405,56 +405,80 @@ site in action.
## Cron jobs and init scripts
-`config/crontab-example` contains the cronjobs run on WhatDoTheyKnow. It's in a
-strange templating format they use in mySociety. mySociety render the example
-file to reference absolute paths, and then drop it in `/etc/cron.d/` on the
-server.
+The crontab and init scripts use the `.ugly` file format, which is a strange
+templating format used by mySociety.
The `ugly` format uses simple variable substitution. A variable looks like
-`!!(*= $this *)!!`. The variables are:
-
-* `vhost`: part of the path to the directory where the software is
- served from. In the mySociety files, it usually comes as
- `/data/vhost/!!(*= $vhost *)!!` -- you should replace that whole
- port with a path to the directory where your Alaveteli software
- installation lives, e.g. `/var/www/`
-* `vhost_dir`: the entire path to the directory where the software is
- served from. -- you should replace this with a path to the
- directory where your Alaveteli software installation lives,
- e.g. `/var/www/`
-* `vcspath`: the name of the alaveteli checkout, e.g. `alaveteli`.
- Thus, `/data/vhost/!!(*= $vhost *)!!/!!(*= $vcspath *)!!` might be
- replaced with `/var/www/alaveteli` in your cron tab
+`!!(*= $this *)!!`.
+
+### Generate crontab
+
+`config/crontab-example` contains the cron jobs that run on
+WhatDoTheyKnow. mySociety render the example file to reference absolute paths,
+and then drop it in `/etc/cron.d/` on the server.
+
+**Template Variables:**
+
+* `vhost_dir`: the full path to the directory where alaveteli is checked out.
+ e.g. If your checkout is at `/var/www/alaveteli` then set this to `/var/www`
+* `vcspath`: the name of the directory that contains the alaveteli code.
+ e.g. `alaveteli`
* `user`: the user that the software runs as
* `site`: a string to identify your alaveteli instance
+* `mailto`: The email address that cron output will be sent to
There is a rake task that will help to rewrite this file into one that is
-useful to you, which can be invoked with:
+useful to you. Change the variables to suit your installation.
bundle exec rake config_files:convert_crontab \
DEPLOY_USER=deploy \
- VHOST_DIR=/dir/above/alaveteli \
- VCSPATH=alaveteli \
- SITE=alaveteli \
- CRONTAB=config/crontab-example > crontab
+ VHOST_DIR=/var/www \
+ VCSPATH=alaveteli \
+ SITE=alaveteli \
+ MAILTO=cron-alaveteli@example.org \
+ CRONTAB=config/crontab-example > /etc/cron.d/alaveteli
-You should change the `DEPLOY_USER`, `VHOST_DIR`, `VCSPATH` and `SITE`
-environment variables to match your server and installation. You should also
-edit the resulting `crontab` file to customize the `MAILTO` variable.
+### Generate alert daemon
One of the cron jobs refers to a script at `/etc/init.d/foi-alert-tracks`. This
-is an init script, a copy of which lives in `config/alert-tracks-debian.ugly`.
-As with the cron jobs above, replace the variables (and/or bits near the
-variables) with paths to your software. You can use the rake task `rake
-config_files:convert_init_script` to do this.
+is an init script, which can be generated from the
+`config/alert-tracks-debian.ugly` template.
+
+**Template Variables:**
+
+* `vhost_dir`: the full path to the directory where alaveteli is checked out.
+ e.g. If your checkout is at `/var/www/alaveteli` then set this to `/var/www`
+* `user`: the user that the software runs as
+
+There is a rake task that will help to rewrite this file into one that is
+useful to you. Change the variables to suit your installation.
+
+ bundle exec rake config_files:convert_init_script \
+ DEPLOY_USER=deploy \
+ VHOST_DIR=/var/www \
+ SCRIPT_FILE=config/alert-tracks-debian.ugly > /etc/init.d/foi-alert-tracks
+
+### Generate varnish purge daemon
`config/purge-varnish-debian.ugly` is a similar init script, which is optional
and not required if you choose not to run your site behind Varnish (see below).
+
+**Template Variables:**
+
+* `daemon_name`: The name of the daemon. Set this to `purge-varnish`.
+* `vhost_dir`: the full path to the directory where alaveteli is checked out.
+ e.g. If your checkout is at `/var/www/alaveteli` then set this to `/var/www`
+* `user`: the user that the software runs as
+
+This template does not yet have a rake task to generate it.
+
+### Init script permissions
+
Either tweak the file permissions to make the scripts executable by your deploy
user, or add the following line to your sudoers file to allow these to be run
-by your deploy user (named `deploy` in this case):
+by your deploy user (named `deploy` in this case).
- deploy ALL = NOPASSWD: /etc/init.d/foi-alert-tracks, /etc/init.d/foi-purge-varnish
+ deploy ALL = NOPASSWD: /etc/init.d/foi-alert-tracks, /etc/init.d/foi-purge-varnish
## Set up production web server
diff --git a/package.json b/package.json
new file mode 100644
index 000000000..ea5492dfd
--- /dev/null
+++ b/package.json
@@ -0,0 +1,16 @@
+{
+ "name": "fixmystreet-documentation",
+ "description": "Documentation for the FixMyStreet Platform",
+ "license": "AGPL-3.0",
+ "version": "1.0.0",
+ "homepage": "http://fixmystreet.org/",
+ "scripts": {},
+ "devDependencies": {
+ "grunt": "~0.4.1",
+ "grunt-contrib-uglify": "~0.2.5",
+ "grunt-contrib-watch": "~0.6.1",
+ "grunt-contrib-sass": "~0.7.3",
+ "grunt-jekyll": "~0.4.1",
+ "grunt-contrib-connect": "~0.7.1"
+ }
+}
diff --git a/theme b/theme
-Subproject 7be17a2e930b5671992380cf55c02b6b11e7317
+Subproject d3992d1877faf807db2799e333570fbbd7931d0