From d2264ad3f3d1d1ca1693d2ac245e6d26e6d76dba Mon Sep 17 00:00:00 2001 From: Nishanth Shanmugham Date: Mon, 24 Aug 2015 18:28:03 -0500 Subject: [PATCH] Add all files --- .gitignore | 1 + LICENSE | 21 + README.md | 0 archetypes/default.md | 0 flexbox-prefixes.less | 130 ++++++ layouts/404.html | 11 + layouts/_default/list.html | 13 + layouts/_default/single.html | 9 + layouts/fixed/single.html | 12 + layouts/index.html | 15 + layouts/partials/footer.html | 4 + layouts/partials/footer_scripts.html | 13 + layouts/partials/head.html | 14 + layouts/partials/head_includes.html | 18 + layouts/partials/header.html | 66 +++ layouts/partials/li.html | 4 + layouts/partials/meta.html | 6 + layouts/partials/page-heading.html | 8 + layouts/posts/single.html | 30 ++ less-watcher.js | 11 + main.less | 497 ++++++++++++++++++++++ markdown.less | 181 ++++++++ static/css/main.css | 599 +++++++++++++++++++++++++++ static/css/navlist.css | 9 + static/css/pygments.css | 61 +++ static/css/reset.css | 48 +++ static/css/skeleton.css | 418 +++++++++++++++++++ static/img/favicon.ico | Bin 0 -> 370070 bytes theme.toml | 11 + 29 files changed, 2210 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100644 archetypes/default.md create mode 100644 flexbox-prefixes.less create mode 100644 layouts/404.html create mode 100644 layouts/_default/list.html create mode 100644 layouts/_default/single.html create mode 100644 layouts/fixed/single.html create mode 100644 layouts/index.html create mode 100644 layouts/partials/footer.html create mode 100644 layouts/partials/footer_scripts.html create mode 100644 layouts/partials/head.html create mode 100644 layouts/partials/head_includes.html create mode 100644 layouts/partials/header.html create mode 100644 layouts/partials/li.html create mode 100644 layouts/partials/meta.html create mode 100644 layouts/partials/page-heading.html create mode 100644 layouts/posts/single.html create mode 100644 less-watcher.js create mode 100644 main.less create mode 100644 markdown.less create mode 100644 static/css/main.css create mode 100644 static/css/navlist.css create mode 100644 static/css/pygments.css create mode 100644 static/css/reset.css create mode 100644 static/css/skeleton.css create mode 100644 static/img/favicon.ico create mode 100644 theme.toml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e43b0f9 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..33afc40 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Nishanth Shanmugham + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..e69de29 diff --git a/flexbox-prefixes.less b/flexbox-prefixes.less new file mode 100644 index 0000000..897fe1c --- /dev/null +++ b/flexbox-prefixes.less @@ -0,0 +1,130 @@ +// Flexbox display +// flex or inline-flex +.flex-display(@display: flex) { + display: ~"-webkit-@{display}"; + display: ~"-moz-@{display}"; + display: ~"-ms-@{display}box"; // IE10 uses -ms-flexbox + display: ~"-ms-@{display}"; // IE11 + display: @display; +} + +// The 'flex' shorthand +// - applies to: flex items +// , initial, auto, or none +.flex(@columns: initial) { + -webkit-flex: @columns; + -moz-flex: @columns; + -ms-flex: @columns; + flex: @columns; +} + +// Flex Flow Direction +// - applies to: flex containers +// row | row-reverse | column | column-reverse +.flex-direction(@direction: row) { + -webkit-flex-direction: @direction; + -moz-flex-direction: @direction; + -ms-flex-direction: @direction; + flex-direction: @direction; +} + +// Flex Line Wrapping +// - applies to: flex containers +// nowrap | wrap | wrap-reverse +.flex-wrap(@wrap: nowrap) { + -webkit-flex-wrap: @wrap; + -moz-flex-wrap: @wrap; + -ms-flex-wrap: @wrap; + flex-wrap: @wrap; +} + +// Flex Direction and Wrap +// - applies to: flex containers +// || +.flex-flow(@flow) { + -webkit-flex-flow: @flow; + -moz-flex-flow: @flow; + -ms-flex-flow: @flow; + flex-flow: @flow; +} + +// Display Order +// - applies to: flex items +// +.flex-order(@order: 0) { + -webkit-order: @order; + -moz-order: @order; + -ms-order: @order; + order: @order; +} + +// Flex grow factor +// - applies to: flex items +// +.flex-grow(@grow: 0) { + -webkit-flex-grow: @grow; + -moz-flex-grow: @grow; + -ms-flex-grow: @grow; + flex-grow: @grow; +} + +// Flex shrink +// - applies to: flex item shrink factor +// +.flex-shrink(@shrink: 1) { + -webkit-flex-shrink: @shrink; + -moz-flex-shrink: @shrink; + -ms-flex-shrink: @shrink; + flex-shrink: @shrink; +} + +// Flex basis +// - the initial main size of the flex item +// - applies to: flex itemsnitial main size of the flex item +// +.flex-basis(@width: auto) { + -webkit-flex-basis: @width; + -moz-flex-basis: @width; + -ms-flex-basis: @width; + flex-basis: @width; +} + +// Axis Alignment +// - applies to: flex containers +// flex-start | flex-end | center | space-between | space-around +.justify-content(@justify: flex-start) { + -webkit-justify-content: @justify; + -moz-justify-content: @justify; + -ms-justify-content: @justify; + justify-content: @justify; +} + +// Packing Flex Lines +// - applies to: multi-line flex containers +// flex-start | flex-end | center | space-between | space-around | stretch +.align-content(@align: stretch) { + -webkit-align-content: @align; + -moz-align-content: @align; + -ms-align-content: @align; + align-content: @align; +} + +// Cross-axis Alignment +// - applies to: flex containers +// flex-start | flex-end | center | baseline | stretch +.align-items(@align: stretch) { + -webkit-align-items: @align; + -moz-align-items: @align; + -ms-align-items: @align; + align-items: @align; +} + +// Cross-axis Alignment +// - applies to: flex items +// auto | flex-start | flex-end | center | baseline | stretch +.align-self(@align: auto) { + -webkit-align-self: @align; + -moz-align-self: @align; + -ms-align-self: @align; + align-self: @align; +} diff --git a/layouts/404.html b/layouts/404.html new file mode 100644 index 0000000..af98f52 --- /dev/null +++ b/layouts/404.html @@ -0,0 +1,11 @@ +{{ partial "header.html" . }} +
+
+
+
404
+
Sorry, this page does not exist.
+ +
+
+
+{{ partial "footer.html" . }} diff --git a/layouts/_default/list.html b/layouts/_default/list.html new file mode 100644 index 0000000..aa92046 --- /dev/null +++ b/layouts/_default/list.html @@ -0,0 +1,13 @@ +{{ partial "header.html" . }} +
+
+
+ {{ partial "page-heading" . }} + {{ range .Data.Pages.ByPublishDate }} + {{ partial "li.html" . }} + {{ end }} +
+
+
+{{ partial "footer.html" . }} + diff --git a/layouts/_default/single.html b/layouts/_default/single.html new file mode 100644 index 0000000..a7016df --- /dev/null +++ b/layouts/_default/single.html @@ -0,0 +1,9 @@ +{{ partial "header.html" . }} +
+
+
+ {{ .Content }} +
+
+
+{{ partial "footer.html" . }} diff --git a/layouts/fixed/single.html b/layouts/fixed/single.html new file mode 100644 index 0000000..afaa2df --- /dev/null +++ b/layouts/fixed/single.html @@ -0,0 +1,12 @@ +{{ partial "header.html" . }} +
+
+
+ {{ partial "page-heading.html" . }} +
+ {{ .Content }} +
+
+
+
+{{ partial "footer.html" . }} diff --git a/layouts/index.html b/layouts/index.html new file mode 100644 index 0000000..e489a67 --- /dev/null +++ b/layouts/index.html @@ -0,0 +1,15 @@ +{{ partial "header.html" . }} +
+
+
+
Posts
+ {{ range .Data.Pages.ByPublishDate }} + {{ if eq .Section "posts" }} + {{ partial "li.html" . }} + {{ end }} + {{ end }} +
+
+
+{{ partial "footer.html" . }} + diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html new file mode 100644 index 0000000..7ad7717 --- /dev/null +++ b/layouts/partials/footer.html @@ -0,0 +1,4 @@ +{{ partial "footer_scripts" . }} + + + diff --git a/layouts/partials/footer_scripts.html b/layouts/partials/footer_scripts.html new file mode 100644 index 0000000..2864a41 --- /dev/null +++ b/layouts/partials/footer_scripts.html @@ -0,0 +1,13 @@ + +{{ if .Site.Params.GATracker }} + + +{{ end }} diff --git a/layouts/partials/head.html b/layouts/partials/head.html new file mode 100644 index 0000000..537f29e --- /dev/null +++ b/layouts/partials/head.html @@ -0,0 +1,14 @@ + +{{ partial "meta.html" . }} + + +{{ $URL := "/" }} +{{ if eq $URL "/" }} + {{ .Site.Title }} +{{ else }} + {{ .Title }} · {{ .Site.Title }} +{{ end }} + + +{{ partial "head_includes.html" . }} + diff --git a/layouts/partials/head_includes.html b/layouts/partials/head_includes.html new file mode 100644 index 0000000..615fc2c --- /dev/null +++ b/layouts/partials/head_includes.html @@ -0,0 +1,18 @@ + + + + + + + + + + diff --git a/layouts/partials/header.html b/layouts/partials/header.html new file mode 100644 index 0000000..e09a41b --- /dev/null +++ b/layouts/partials/header.html @@ -0,0 +1,66 @@ + + + +{{ partial "head.html" . }} + + + +{{ $url := replace .Permalink ( printf "%s" .Site.BaseUrl) "" }} + +
+
+ +
+
+ +
+
+
+ + {{ if .Site.Params.GitHub }} + + + + {{ end }} + + {{ if .Site.Params.Twitter }} + + + + {{ end }} + + {{ if .Site.Params.LinkedIn }} + + + + {{ end }} + + {{ if .Site.Params.Facebook }} + + + + {{ end }} + + {{ if .Site.Params.SoundCloud }} + + + + {{ end }} + + {{ if .Site.Params.Email }} + + + + {{ end }} +
+
+
diff --git a/layouts/partials/li.html b/layouts/partials/li.html new file mode 100644 index 0000000..d6e13a7 --- /dev/null +++ b/layouts/partials/li.html @@ -0,0 +1,4 @@ +
  • +
    {{ .Date.Format .Site.Params.DateForm }}
    +
    {{ .Title }}
    +
  • diff --git a/layouts/partials/meta.html b/layouts/partials/meta.html new file mode 100644 index 0000000..5e63dec --- /dev/null +++ b/layouts/partials/meta.html @@ -0,0 +1,6 @@ + + + + + +{{ if .Site.Params.Description }}{{ end }} diff --git a/layouts/partials/page-heading.html b/layouts/partials/page-heading.html new file mode 100644 index 0000000..b1fcd61 --- /dev/null +++ b/layouts/partials/page-heading.html @@ -0,0 +1,8 @@ +
    +{{ if .Params.heading }} + {{ .Params.heading }} +{{ else }} + {{ .Title }} +{{ end }} +
    + diff --git a/layouts/posts/single.html b/layouts/posts/single.html new file mode 100644 index 0000000..52446fe --- /dev/null +++ b/layouts/posts/single.html @@ -0,0 +1,30 @@ + + + +{{ partial "head.html" . }} + + + +{{ $url := replace .Permalink ( printf "%s" .Site.BaseUrl) "" }} + +
    +
    +
    +
    + {{ partial "page-heading.html" . }} +
    +
    {{ .Date.Format .Site.Params.DateForm }}
    +
    {{ if eq 1 .FuzzyWordCount }}{{ .FuzzyWordCount }} word{{ else }}{{ .FuzzyWordCount }} words{{ end }}
    +
    {{ if eq 1 .ReadingTime }}{{ .ReadingTime }} minute read{{ else }}{{ .ReadingTime }} minutes read{{ end }}
    +
    +
    +
    + {{ .Content }} +
    +

    Back home

    +
    +
    +
    +
    + +{{ partial "footer.html" . }} diff --git a/less-watcher.js b/less-watcher.js new file mode 100644 index 0000000..074beec --- /dev/null +++ b/less-watcher.js @@ -0,0 +1,11 @@ +const fs = require('fs'); +const spawn = require('child_process').spawn; + +process.argv.slice(2).forEach(function(file) { + fs.watch(file, function(e) { + if (e === 'change') { + spawn('lessc', ['main.less', 'static/css/main.css']); + } + }); +}); + diff --git a/main.less b/main.less new file mode 100644 index 0000000..4bec9a5 --- /dev/null +++ b/main.less @@ -0,0 +1,497 @@ +// Font imports: + +@import url(http://fonts.googleapis.com/css?family=Raleway:200); +@import url(http://fonts.googleapis.com/css?family=Ubuntu+Mono:400,400italic,700,700italic); +@import url(http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css); + +// Less variables + +@base-font-size: 16px; +@vspacing: @base-font-size*2; + +@monospace-font-stack: ~"'Ubuntu Mono', 'Menlo', monospace"; +@body-font-stack: ~"'Proxima Nova', 'Helvetica Neue', 'Arial' sans-serif"; +@heading-font-stack: ~"'Proxima Nova', 'Helvetica Neue', 'Arial' sans-serif"; +@special-font-stack-1: ~"'Raleway', 'Helvetica Neue', 'Arial', sans-serif"; + +@black: #333; +@gray: #b7b7b7; +@accent: #21bB5b; // green +@white: #fefefe; +@milk: #fefefe; + +@transition-speed-1: .1s; +@transition-speed-2: .25s; +@in-sine: cubic-bezier(0.47, 0, 0.75, 0.72); + +// Utils and prefixing + +@import 'flexbox-prefixes'; + +.heading(@font-size: 18px) { + font-size: @font-size; + font-family: @heading-font-stack; + letter-spacing: -0.005rem; + text-transform: uppercase; + font-weight: 700; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-smoothing: antialiased; + color: @black; +} + +.transition (@transition) { + -webkit-transition: @transition; + -moz-transition: @transition; + -ms-transition: @transition; + -o-transition: @transition; +} + +.user-select(@user-select) { + -webkit-user-select: @user-select; + -moz-user-select: @user-select; + -ms-user-select: @user-select; + user-select: @user-select; +} + +.meta() { + font-size: 14px; + color: @gray; +} + + +// Slap-on utils + +.dark { + color: @black !important; +} + +.light { + color: @gray !important; +} + +.accent { + color: @accent !important; +} + +// General styles + +*, *:before, *:after { + box-sizing: border-box; +} + +a, a:visited, a:focus, a:active { + text-decoration: none; +} + +html { + height: 100%; + font-size: @base-font-size; +} + +body { + .flex-display(); + .flex-direction(column); // vertically stack sections + .align-items(center); // horizontally center all sections + .justify-content(flex-start); // start sections at the top + width: 100%; + min-height: 100%; + font-weight: 400; + font-family: @body-font-stack; + color: @black; + line-height: 1.6; + text-rendering: optimizeLegibility !important; + // TODO: Uncomment when moz supports at subpixel level + // -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: subpixel-antialiased; + font-smoothing: subpixel-antialiased; +} + +@media (min-width: 550px) { + body { + .justify-content(center); // vertically center all sections + } +} + +// Ionicon classes + +.icon { + // INFO: Comment out if you see performance issues, especially on mobile + text-rendering: geometricPrecision !important; +} + +// * Sections – the cornerstone of page elements +// * Container – contains section contents +// +// Both classes are flex elements + +.section { + .flex-display(); + // Sections position their containers centrally, with spacing to the sides + // The containers can then move their children around as needed. + .justify-content(center); + .align-items(center); + width: 100%; +} + +.container { + .flex-display(); + width: 100%; +} + +@media (min-width: 550px) { + .section { + padding: 0 20px; + margin-left: 100px; + margin-right: 100px; + max-width: 900px; + } +} + +// Sections order + +.section.header { + .flex-order(0); +} +.section.icons { + .flex-order(1); +} +.section.main { + .flex-order(2); +} + +@media (min-width: 550px) { + .section.header { + .flex-order(0); + } + .section.icons { + .flex-order(2); + } + .section.main { + .flex-order(1); + } +} + +// Styles for sections and contents +// Header section + +.section.header { + background-color: @accent; + + .container { + .align-items(center); + .justify-content(center); + } + + .content { + .flex-display(); + .flex-direction(column); + .align-items(center); + } + + .name { + .heading(); + color: @white; + } + + nav { + font-size: 14px; + margin-bottom: floor(@vspacing/2); + // font-weight: 600; + + ul { + list-style: none; + text-align: center; + .flex-display(inline-flex); + } + + ul a { + margin-right: 12px; + + &:last-child { + margin-right: 0; + } + } + + ul li { + color: @milk; + .transition(~'color @{transition-speed-1} @{in-sine}'); + + &:hover { + color: @white + } + } + } +} + +@media (min-width: 550px) { + .section.header { + background-color: transparent; + + .container { + .justify-content(flex-start); + } + + .content { + .align-items(flex-start); + } + + .name { + color: @black; + } + + nav { + margin-bottom: 0; + + ul { + text-align: left; + } + + ul li { + color: @gray; + + &:hover { + color: @black; + } + } + } + } +} + +// Icons + +.section.icons { + background-color: @accent; + + .container { + .align-items(center); + .justify-content(center); + } + + .content { + a { + margin-right: 4px; + color: @milk; + .transition(~'color @{transition-speed-1} @{in-sine}'); + + &:last-child { + margin-right: 0; + } + + &:hover { + color: @white; + } + + .icon { + font-size: 16px; + + + + &.larger { + font-size: 18px; + } + } + } + } +} + +@media (min-width: 550px) { + .section.icons { + background-color: transparent; + + .container { + .justify-content(flex-start); + } + + .content { + a { + color: @gray; + + &:hover { + color: @black; + } + } + + } + } +} + +// Main section + +.section.main { + .container { + .align-items(center); + .justify-content(flex-start); + } + + .content { + color: @black; + font-size: 16px; + + .page-heading { + .heading(); + margin-bottom: floor(@vspacing/2); + } + + .front-matter { + .page-heading { + margin-bottom: 0; + } + + .meta { + .meta(); + .flex-display(); + margin-bottom: @vspacing; + } + + .date, .word-count, .reading-time .middot { + display: none; + } + + .middot { + font-size: 6px; + margin: 0 6px; + display: inline; + vertical-align: middle; + + &:before { + content: "•"; + } + } + } + } +} + +@media (min-width: 550px) { + .section.main { + .content { + .front-matter { + .date, .word-count, .reading-time .middot { + display: initial; + } + } + } + } +} + +// 404 page + +.section.main { + .container.f04 { + .justify-content(center); + + .content { + .flex-display(); + .flex-direction(column); + .align-items(center); + + .num { + margin: 30px 0px 30px 0; + font-weight: 200; + font-family: @special-font-stack-1; + font-size: 50px; + } + + .detail { + margin-bottom: 40px; + } + } + } +} + +@media (min-width: 550px) { + .section.main { + .container.f04 { + .justify-content(flex-start); + + .content { + .align-items(flex-start); + + .num { + margin: 0 0 10px 0; + font-size: 32px; + } + + .detail { + margin-bottom: 30px; + } + } + } + } +} + +// Post item + +.section.main { + .container { + .content { + .post-item { + .flex-display(); + .align-items(center); + list-style: none; + + .meta { + .meta(); + min-width: 100px; + text-align: right; + margin-right: 20px; + } + } + } + } +} + +// Spacing + +.section { + padding: 0 20px; +} + +.section.header { + padding-top: @vspacing; + padding-bottom: floor(@vspacing/2); +} + +.section.icons { + padding-top: 0; + padding-bottom: @vspacing; +} + +.section.main { + padding-top: @vspacing; + padding-bottom: @vspacing; +} + +@media (min-width: 550px) { + @vspacing: 60px; + + .container { + margin: 0 20px; + } + + .section.header { + padding-top: @vspacing; + padding-bottom: @vspacing; + } + + .section.icons { + padding-top: @vspacing; + padding-bottom: @vspacing; + } + + .section.main { + padding-top: 0; + padding-bottom: 0; + } + + .section.main.post { + padding-top: @vspacing; + padding-bottom: @vspacing; + } +} + +a { + color: @accent; +} + +@import 'markdown'; diff --git a/markdown.less b/markdown.less new file mode 100644 index 0000000..403fd52 --- /dev/null +++ b/markdown.less @@ -0,0 +1,181 @@ +.section.main .content { +.markdown { + +@background-gray: #f9f9f9; + +// +// Heading +// + +h1, h2, h3, h4, h5, h6 { + .heading(); +} + +h1 { + font-size: 1.75rem; + margin-bottom: 2rem; +} + +h2 { + font-size: 1.5rem; + margin-bottom: 1.5rem; +} + +h3 { + font-size: 1em; + margin-bottom: 1rem; +} + +h4, h5, h6 { + font-size: 1rem; + margin-bottom: 1rem; + letter-spacing: none; + text-transform: none; +} + +// +// Code +// + +code, pre { + font-family: @monospace-font-stack; + font-size: 15px; + background-color: @background-gray; +} + +code { + /* enclosed by single backtick (`) */ + padding: .15em .5em; + color: darken(#d01040, 10%); + border-radius: 2px; +} + +pre { + /* Hugo specific: consider using the 'highlight' shortcode */ + display: block; + margin-top: 1rem; + margin-bottom: 2rem; + padding: 1rem; + line-height: 1.5em; + white-space: pre; + white-space: pre-wrap; + word-break: break-all; + word-wrap: break-word; +} + +pre code { + /* enclosed by 4 backticks (````) */ + padding: 0; + font-size: 15px; +} + +// +// Body text +// + + +p { + /* Invoked by line break */ + font-size: 1rem; + margin-top: 0; + margin-bottom: 1em; +} + + +// TODO: Try out and adjust properties for selectors below + +// Lists + +ul, ol, dl { + margin-top: 1rem; + margin-bottom: 2rem; +} + +dt { + font-weight: bold; +} + +dd { + margin-bottom: .5rem; +} + +ul { + margin-bottom: 1.25rem; +} + +li { + list-style-type: disc; + list-style-position: inside; +} + +// Miscenllaneous + +hr { + position: relative; + margin: 1.75rem 0; + border: 0; + border-top: 1px solid lighten(@gray, 10%); + border-top: 1px solid lighten(@gray, 20%); +} + +abbr { + font-size: 0.85rem; + font-weight: bold; + color: lighten(@black, 20%); + text-transform: uppercase; +} + +abbr[title] { + cursor: help; + border-bottom: 1px dotted lighten(@gray, 10%); +} + + +// Quotes + +blockquote { + padding: .5rem 1rem; + margin: .8rem 0; + color: #7a7a7a; + border-left: .25rem solid #e5e5e5; +} + +blockquote p:last-child { + margin-bottom: 0; +} + +@media (min-width: 550px) { + blockquote { + padding-right: 5rem; + padding-left: 1.25rem; + } +} + +// Images and tables + +img { + display: block; + margin: 0 0 1rem; + max-width: 100%; +} + +table { + margin-bottom: 1rem; + width: 100%; + border: 1px solid #e5e5e5; + border-collapse: collapse; +} + +td, +th { + padding: .25rem .5rem; + border: 1px solid #e5e5e5; +} + +tbody tr:nth-child(odd) td, +tbody tr:nth-child(odd) th { + background-color: @background-gray; +} + +} // end .markdown +} // end .section.main .content diff --git a/static/css/main.css b/static/css/main.css new file mode 100644 index 0000000..9c76aec --- /dev/null +++ b/static/css/main.css @@ -0,0 +1,599 @@ +@import url(http://fonts.googleapis.com/css?family=Raleway:200); +@import url(http://fonts.googleapis.com/css?family=Ubuntu+Mono:400,400italic,700,700italic); +@import url(http://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css); +.dark { + color: #333333 !important; +} +.light { + color: #b7b7b7 !important; +} +.accent { + color: #21bb5b !important; +} +*, +*:before, +*:after { + box-sizing: border-box; +} +a, +a:visited, +a:focus, +a:active { + text-decoration: none; +} +html { + height: 100%; + font-size: 16px; +} +body { + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: -ms-flex; + display: flex; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-align-items: center; + -moz-align-items: center; + -ms-align-items: center; + align-items: center; + -webkit-justify-content: flex-start; + -moz-justify-content: flex-start; + -ms-justify-content: flex-start; + justify-content: flex-start; + width: 100%; + min-height: 100%; + font-weight: 400; + font-family: 'Proxima Nova', 'Helvetica Neue', 'Arial' sans-serif; + color: #333333; + line-height: 1.6; + text-rendering: optimizeLegibility !important; + -webkit-font-smoothing: subpixel-antialiased; + font-smoothing: subpixel-antialiased; +} +@media (min-width: 550px) { + body { + -webkit-justify-content: center; + -moz-justify-content: center; + -ms-justify-content: center; + justify-content: center; + } +} +.icon { + text-rendering: geometricPrecision !important; +} +.section { + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: -ms-flex; + display: flex; + -webkit-justify-content: center; + -moz-justify-content: center; + -ms-justify-content: center; + justify-content: center; + -webkit-align-items: center; + -moz-align-items: center; + -ms-align-items: center; + align-items: center; + width: 100%; +} +.container { + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: -ms-flex; + display: flex; + width: 100%; +} +@media (min-width: 550px) { + .section { + padding: 0 20px; + margin-left: 100px; + margin-right: 100px; + max-width: 900px; + } +} +.section.header { + -webkit-order: 0; + -moz-order: 0; + -ms-order: 0; + order: 0; +} +.section.icons { + -webkit-order: 1; + -moz-order: 1; + -ms-order: 1; + order: 1; +} +.section.main { + -webkit-order: 2; + -moz-order: 2; + -ms-order: 2; + order: 2; +} +@media (min-width: 550px) { + .section.header { + -webkit-order: 0; + -moz-order: 0; + -ms-order: 0; + order: 0; + } + .section.icons { + -webkit-order: 2; + -moz-order: 2; + -ms-order: 2; + order: 2; + } + .section.main { + -webkit-order: 1; + -moz-order: 1; + -ms-order: 1; + order: 1; + } +} +.section.header { + background-color: #21bb5b; +} +.section.header .container { + -webkit-align-items: center; + -moz-align-items: center; + -ms-align-items: center; + align-items: center; + -webkit-justify-content: center; + -moz-justify-content: center; + -ms-justify-content: center; + justify-content: center; +} +.section.header .content { + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: -ms-flex; + display: flex; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-align-items: center; + -moz-align-items: center; + -ms-align-items: center; + align-items: center; +} +.section.header .name { + font-size: 18px; + font-family: 'Proxima Nova', 'Helvetica Neue', 'Arial' sans-serif; + letter-spacing: -0.005rem; + text-transform: uppercase; + font-weight: 700; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-smoothing: antialiased; + color: #333333; + color: #fefefe; +} +.section.header nav { + font-size: 14px; + margin-bottom: 16px; +} +.section.header nav ul { + list-style: none; + text-align: center; + display: -webkit-inline-flex; + display: -moz-inline-flex; + display: -ms-inline-flexbox; + display: -ms-inline-flex; + display: inline-flex; +} +.section.header nav ul a { + margin-right: 12px; +} +.section.header nav ul a:last-child { + margin-right: 0; +} +.section.header nav ul li { + color: #fefefe; + -webkit-transition: color 0.1s cubic-bezier(0.47, 0, 0.75, 0.72); + -moz-transition: color 0.1s cubic-bezier(0.47, 0, 0.75, 0.72); + -ms-transition: color 0.1s cubic-bezier(0.47, 0, 0.75, 0.72); + -o-transition: color 0.1s cubic-bezier(0.47, 0, 0.75, 0.72); +} +.section.header nav ul li:hover { + color: #fefefe; +} +@media (min-width: 550px) { + .section.header { + background-color: transparent; + } + .section.header .container { + -webkit-justify-content: flex-start; + -moz-justify-content: flex-start; + -ms-justify-content: flex-start; + justify-content: flex-start; + } + .section.header .content { + -webkit-align-items: flex-start; + -moz-align-items: flex-start; + -ms-align-items: flex-start; + align-items: flex-start; + } + .section.header .name { + color: #333333; + } + .section.header nav { + margin-bottom: 0; + } + .section.header nav ul { + text-align: left; + } + .section.header nav ul li { + color: #b7b7b7; + } + .section.header nav ul li:hover { + color: #333333; + } +} +.section.icons { + background-color: #21bb5b; +} +.section.icons .container { + -webkit-align-items: center; + -moz-align-items: center; + -ms-align-items: center; + align-items: center; + -webkit-justify-content: center; + -moz-justify-content: center; + -ms-justify-content: center; + justify-content: center; +} +.section.icons .content a { + margin-right: 4px; + color: #fefefe; + -webkit-transition: color 0.1s cubic-bezier(0.47, 0, 0.75, 0.72); + -moz-transition: color 0.1s cubic-bezier(0.47, 0, 0.75, 0.72); + -ms-transition: color 0.1s cubic-bezier(0.47, 0, 0.75, 0.72); + -o-transition: color 0.1s cubic-bezier(0.47, 0, 0.75, 0.72); +} +.section.icons .content a:last-child { + margin-right: 0; +} +.section.icons .content a:hover { + color: #fefefe; +} +.section.icons .content a .icon { + font-size: 16px; +} +.section.icons .content a .icon.larger { + font-size: 18px; +} +@media (min-width: 550px) { + .section.icons { + background-color: transparent; + } + .section.icons .container { + -webkit-justify-content: flex-start; + -moz-justify-content: flex-start; + -ms-justify-content: flex-start; + justify-content: flex-start; + } + .section.icons .content a { + color: #b7b7b7; + } + .section.icons .content a:hover { + color: #333333; + } +} +.section.main .container { + -webkit-align-items: center; + -moz-align-items: center; + -ms-align-items: center; + align-items: center; + -webkit-justify-content: flex-start; + -moz-justify-content: flex-start; + -ms-justify-content: flex-start; + justify-content: flex-start; +} +.section.main .content { + color: #333333; + font-size: 16px; +} +.section.main .content .page-heading { + font-size: 18px; + font-family: 'Proxima Nova', 'Helvetica Neue', 'Arial' sans-serif; + letter-spacing: -0.005rem; + text-transform: uppercase; + font-weight: 700; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-smoothing: antialiased; + color: #333333; + margin-bottom: 16px; +} +.section.main .content .front-matter .page-heading { + margin-bottom: 0; +} +.section.main .content .front-matter .meta { + font-size: 14px; + color: #b7b7b7; + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: -ms-flex; + display: flex; + margin-bottom: 32px; +} +.section.main .content .front-matter .date, +.section.main .content .front-matter .word-count, +.section.main .content .front-matter .reading-time .middot { + display: none; +} +.section.main .content .front-matter .middot { + font-size: 6px; + margin: 0 6px; + display: inline; + vertical-align: middle; +} +.section.main .content .front-matter .middot:before { + content: "•"; +} +@media (min-width: 550px) { + .section.main .content .front-matter .date, + .section.main .content .front-matter .word-count, + .section.main .content .front-matter .reading-time .middot { + display: initial; + } +} +.section.main .container.f04 { + -webkit-justify-content: center; + -moz-justify-content: center; + -ms-justify-content: center; + justify-content: center; +} +.section.main .container.f04 .content { + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: -ms-flex; + display: flex; + -webkit-flex-direction: column; + -moz-flex-direction: column; + -ms-flex-direction: column; + flex-direction: column; + -webkit-align-items: center; + -moz-align-items: center; + -ms-align-items: center; + align-items: center; +} +.section.main .container.f04 .content .num { + margin: 30px 0px 30px 0; + font-weight: 200; + font-family: 'Raleway', 'Helvetica Neue', 'Arial', sans-serif; + font-size: 50px; +} +.section.main .container.f04 .content .detail { + margin-bottom: 40px; +} +@media (min-width: 550px) { + .section.main .container.f04 { + -webkit-justify-content: flex-start; + -moz-justify-content: flex-start; + -ms-justify-content: flex-start; + justify-content: flex-start; + } + .section.main .container.f04 .content { + -webkit-align-items: flex-start; + -moz-align-items: flex-start; + -ms-align-items: flex-start; + align-items: flex-start; + } + .section.main .container.f04 .content .num { + margin: 0 0 10px 0; + font-size: 32px; + } + .section.main .container.f04 .content .detail { + margin-bottom: 30px; + } +} +.section.main .container .content .post-item { + display: -webkit-flex; + display: -moz-flex; + display: -ms-flexbox; + display: -ms-flex; + display: flex; + -webkit-align-items: center; + -moz-align-items: center; + -ms-align-items: center; + align-items: center; + list-style: none; +} +.section.main .container .content .post-item .meta { + font-size: 14px; + color: #b7b7b7; + min-width: 100px; + text-align: right; + margin-right: 20px; +} +.section { + padding: 0 20px; +} +.section.header { + padding-top: 32px; + padding-bottom: 16px; +} +.section.icons { + padding-top: 0; + padding-bottom: 32px; +} +.section.main { + padding-top: 32px; + padding-bottom: 32px; +} +@media (min-width: 550px) { + .container { + margin: 0 20px; + } + .section.header { + padding-top: 60px; + padding-bottom: 60px; + } + .section.icons { + padding-top: 60px; + padding-bottom: 60px; + } + .section.main { + padding-top: 0; + padding-bottom: 0; + } + .section.main.post { + padding-top: 60px; + padding-bottom: 60px; + } +} +a { + color: #21bb5b; +} +.section.main .content .markdown h1, +.section.main .content .markdown h2, +.section.main .content .markdown h3, +.section.main .content .markdown h4, +.section.main .content .markdown h5, +.section.main .content .markdown h6 { + /* Heading size corresponds on number of #s used */ + font-size: 18px; + font-family: 'Proxima Nova', 'Helvetica Neue', 'Arial' sans-serif; + letter-spacing: -0.005rem; + text-transform: uppercase; + font-weight: 700; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + font-smoothing: antialiased; + color: #333333; +} +.section.main .content .markdown h1 { + font-size: 1.75rem; + margin-bottom: 2rem; +} +.section.main .content .markdown h2 { + font-size: 1.5rem; + margin-bottom: 1.5rem; +} +.section.main .content .markdown h3 { + font-size: 1em; + margin-bottom: 1rem; +} +.section.main .content .markdown h4, +.section.main .content .markdown h5, +.section.main .content .markdown h6 { + font-size: 1rem; + margin-bottom: 1rem; + letter-spacing: none; + text-transform: none; +} +.section.main .content .markdown code, +.section.main .content .markdown pre { + font-family: 'Ubuntu Mono', 'Menlo', monospace; + font-size: 15px; + background-color: #f9f9f9; +} +.section.main .content .markdown code { + /* enclosed by single backtick (`) */ + padding: .15em .5em; + color: #a10c31; + border-radius: 2px; +} +.section.main .content .markdown pre { + /* Hugo specific: consider using the 'highlight' shortcode */ + display: block; + margin-top: 1rem; + margin-bottom: 2rem; + padding: 1rem; + line-height: 1.5em; + white-space: pre; + white-space: pre-wrap; + word-break: break-all; + word-wrap: break-word; +} +.section.main .content .markdown pre code { + /* enclosed by 4 backticks (````) */ + padding: 0; + font-size: 15px; +} +.section.main .content .markdown p { + /* Invoked by line break */ + font-size: 1rem; + margin-top: 0; + margin-bottom: 1em; +} +.section.main .content .markdown ul, +.section.main .content .markdown ol, +.section.main .content .markdown dl { + margin-top: 1rem; + margin-bottom: 2rem; +} +.section.main .content .markdown dt { + font-weight: bold; +} +.section.main .content .markdown dd { + margin-bottom: .5rem; +} +.section.main .content .markdown ul { + margin-bottom: 1.25rem; +} +.section.main .content .markdown li { + list-style-type: disc; + list-style-position: inside; +} +.section.main .content .markdown hr { + position: relative; + margin: 1.75rem 0; + border: 0; + border-top: 1px solid #d1d1d1; + border-top: 1px solid #eaeaea; +} +.section.main .content .markdown abbr { + font-size: 0.85rem; + font-weight: bold; + color: #666666; + text-transform: uppercase; +} +.section.main .content .markdown abbr[title] { + cursor: help; + border-bottom: 1px dotted #d1d1d1; +} +.section.main .content .markdown blockquote { + padding: .5rem 1rem; + margin: .8rem 0; + color: #7a7a7a; + border-left: .25rem solid #e5e5e5; +} +.section.main .content .markdown blockquote p:last-child { + margin-bottom: 0; +} +@media (min-width: 550px) { + .section.main .content .markdown blockquote { + padding-right: 5rem; + padding-left: 1.25rem; + } +} +.section.main .content .markdown img { + display: block; + margin: 0 0 1rem; + max-width: 100%; +} +.section.main .content .markdown table { + margin-bottom: 1rem; + width: 100%; + border: 1px solid #e5e5e5; + border-collapse: collapse; +} +.section.main .content .markdown td, +.section.main .content .markdown th { + padding: .25rem .5rem; + border: 1px solid #e5e5e5; +} +.section.main .content .markdown tbody tr:nth-child(odd) td, +.section.main .content .markdown tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} diff --git a/static/css/navlist.css b/static/css/navlist.css new file mode 100644 index 0000000..b185754 --- /dev/null +++ b/static/css/navlist.css @@ -0,0 +1,9 @@ +.section.header nav ul li[data-switch-original]::after { + content: attr(data-switch-original); +} + +@media (min-width: 550px) { + .section.header nav ul li[data-switch-change]::after { + content: attr(data-switch-change); + } +} diff --git a/static/css/pygments.css b/static/css/pygments.css new file mode 100644 index 0000000..dc60655 --- /dev/null +++ b/static/css/pygments.css @@ -0,0 +1,61 @@ +.hll { background-color: #ffffcc } +.c { color: #999988; font-style: italic } /* Comment */ +.err { color: #a61717; background-color: #e3d2d2 } /* Error */ +.k { color: #000000; font-weight: bold } /* Keyword */ +.o { color: #000000; font-weight: bold } /* Operator */ +.cm { color: #999988; font-style: italic } /* Comment.Multiline */ +.cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */ +.c1 { color: #999988; font-style: italic } /* Comment.Single */ +.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */ +.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ +.ge { color: #000000; font-style: italic } /* Generic.Emph */ +.gr { color: #aa0000 } /* Generic.Error */ +.gh { color: #999999 } /* Generic.Heading */ +.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ +.go { color: #888888 } /* Generic.Output */ +.gp { color: #555555 } /* Generic.Prompt */ +.gs { font-weight: bold } /* Generic.Strong */ +.gu { color: #aaaaaa } /* Generic.Subheading */ +.gt { color: #aa0000 } /* Generic.Traceback */ +.kc { color: #000000; font-weight: bold } /* Keyword.Constant */ +.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */ +.kn { color: #000000; font-weight: bold } /* Keyword.Namespace */ +.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */ +.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */ +.kt { color: #445588; font-weight: bold } /* Keyword.Type */ +.m { color: #009999 } /* Literal.Number */ +.s { color: #d01040 } /* Literal.String */ +.na { color: #008080 } /* Name.Attribute */ +.nb { color: #0086B3 } /* Name.Builtin */ +.nc { color: #445588; font-weight: bold } /* Name.Class */ +.no { color: #008080 } /* Name.Constant */ +.nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */ +.ni { color: #800080 } /* Name.Entity */ +.ne { color: #990000; font-weight: bold } /* Name.Exception */ +.nf { color: #990000; font-weight: bold } /* Name.Function */ +.nl { color: #990000; font-weight: bold } /* Name.Label */ +.nn { color: #555555 } /* Name.Namespace */ +.nt { color: #000080 } /* Name.Tag */ +.nv { color: #008080 } /* Name.Variable */ +.ow { color: #000000; font-weight: bold } /* Operator.Word */ +.w { color: #bbbbbb } /* Text.Whitespace */ +.mf { color: #009999 } /* Literal.Number.Float */ +.mh { color: #009999 } /* Literal.Number.Hex */ +.mi { color: #009999 } /* Literal.Number.Integer */ +.mo { color: #009999 } /* Literal.Number.Oct */ +.sb { color: #d01040 } /* Literal.String.Backtick */ +.sc { color: #d01040 } /* Literal.String.Char */ +.sd { color: #d01040 } /* Literal.String.Doc */ +.s2 { color: #d01040 } /* Literal.String.Double */ +.se { color: #d01040 } /* Literal.String.Escape */ +.sh { color: #d01040 } /* Literal.String.Heredoc */ +.si { color: #d01040 } /* Literal.String.Interpol */ +.sx { color: #d01040 } /* Literal.String.Other */ +.sr { color: #009926 } /* Literal.String.Regex */ +.s1 { color: #d01040 } /* Literal.String.Single */ +.ss { color: #990073 } /* Literal.String.Symbol */ +.bp { color: #999999 } /* Name.Builtin.Pseudo */ +.vc { color: #008080 } /* Name.Variable.Class */ +.vg { color: #008080 } /* Name.Variable.Global */ +.vi { color: #008080 } /* Name.Variable.Instance */ +.il { color: #009999 } /* Literal.Number.Integer.Long */ diff --git a/static/css/reset.css b/static/css/reset.css new file mode 100644 index 0000000..87df836 --- /dev/null +++ b/static/css/reset.css @@ -0,0 +1,48 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} +body { + line-height: 1; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/static/css/skeleton.css b/static/css/skeleton.css new file mode 100644 index 0000000..f28bf6c --- /dev/null +++ b/static/css/skeleton.css @@ -0,0 +1,418 @@ +/* +* Skeleton V2.0.4 +* Copyright 2014, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 12/29/2014 +*/ + + +/* Table of contents +–––––––––––––––––––––––––––––––––––––––––––––––––– +- Grid +- Base Styles +- Typography +- Links +- Buttons +- Forms +- Lists +- Code +- Tables +- Spacing +- Utilities +- Clearing +- Media Queries +*/ + + +/* Grid +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.container { + position: relative; + width: 100%; + max-width: 960px; + margin: 0 auto; + padding: 0 20px; + box-sizing: border-box; } +.column, +.columns { + width: 100%; + float: left; + box-sizing: border-box; } + +/* For devices larger than 400px */ +@media (min-width: 400px) { + .container { + width: 85%; + padding: 0; } +} + +/* For devices larger than 550px */ +@media (min-width: 550px) { + .container { + width: 80%; } + .column, + .columns { + margin-left: 4%; } + .column:first-child, + .columns:first-child { + margin-left: 0; } + + .one.column, + .one.columns { width: 4.66666666667%; } + .two.columns { width: 13.3333333333%; } + .three.columns { width: 22%; } + .four.columns { width: 30.6666666667%; } + .five.columns { width: 39.3333333333%; } + .six.columns { width: 48%; } + .seven.columns { width: 56.6666666667%; } + .eight.columns { width: 65.3333333333%; } + .nine.columns { width: 74.0%; } + .ten.columns { width: 82.6666666667%; } + .eleven.columns { width: 91.3333333333%; } + .twelve.columns { width: 100%; margin-left: 0; } + + .one-third.column { width: 30.6666666667%; } + .two-thirds.column { width: 65.3333333333%; } + + .one-half.column { width: 48%; } + + /* Offsets */ + .offset-by-one.column, + .offset-by-one.columns { margin-left: 8.66666666667%; } + .offset-by-two.column, + .offset-by-two.columns { margin-left: 17.3333333333%; } + .offset-by-three.column, + .offset-by-three.columns { margin-left: 26%; } + .offset-by-four.column, + .offset-by-four.columns { margin-left: 34.6666666667%; } + .offset-by-five.column, + .offset-by-five.columns { margin-left: 43.3333333333%; } + .offset-by-six.column, + .offset-by-six.columns { margin-left: 52%; } + .offset-by-seven.column, + .offset-by-seven.columns { margin-left: 60.6666666667%; } + .offset-by-eight.column, + .offset-by-eight.columns { margin-left: 69.3333333333%; } + .offset-by-nine.column, + .offset-by-nine.columns { margin-left: 78.0%; } + .offset-by-ten.column, + .offset-by-ten.columns { margin-left: 86.6666666667%; } + .offset-by-eleven.column, + .offset-by-eleven.columns { margin-left: 95.3333333333%; } + + .offset-by-one-third.column, + .offset-by-one-third.columns { margin-left: 34.6666666667%; } + .offset-by-two-thirds.column, + .offset-by-two-thirds.columns { margin-left: 69.3333333333%; } + + .offset-by-one-half.column, + .offset-by-one-half.columns { margin-left: 52%; } + +} + + +/* Base Styles +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +/* NOTE +html is set to 62.5% so that all the REM measurements throughout Skeleton +are based on 10px sizing. So basically 1.5rem = 15px :) */ +html { + font-size: 62.5%; } +body { + font-size: 1.5em; /* currently ems cause chrome bug misinterpreting rems on body element */ + line-height: 1.6; + font-weight: 400; + font-family: "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #222; } + + +/* Typography +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 2rem; + font-weight: 300; } +h1 { font-size: 4.0rem; line-height: 1.2; letter-spacing: -.1rem;} +h2 { font-size: 3.6rem; line-height: 1.25; letter-spacing: -.1rem; } +h3 { font-size: 3.0rem; line-height: 1.3; letter-spacing: -.1rem; } +h4 { font-size: 2.4rem; line-height: 1.35; letter-spacing: -.08rem; } +h5 { font-size: 1.8rem; line-height: 1.5; letter-spacing: -.05rem; } +h6 { font-size: 1.5rem; line-height: 1.6; letter-spacing: 0; } + +/* Larger than phablet */ +@media (min-width: 550px) { + h1 { font-size: 5.0rem; } + h2 { font-size: 4.2rem; } + h3 { font-size: 3.6rem; } + h4 { font-size: 3.0rem; } + h5 { font-size: 2.4rem; } + h6 { font-size: 1.5rem; } +} + +p { + margin-top: 0; } + + +/* Links +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +a { + color: #1EAEDB; } +a:hover { + color: #0FA0CE; } + + +/* Buttons +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.button, +button, +input[type="submit"], +input[type="reset"], +input[type="button"] { + display: inline-block; + height: 38px; + padding: 0 30px; + color: #555; + text-align: center; + font-size: 11px; + font-weight: 600; + line-height: 38px; + letter-spacing: .1rem; + text-transform: uppercase; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border-radius: 4px; + border: 1px solid #bbb; + cursor: pointer; + box-sizing: border-box; } +.button:hover, +button:hover, +input[type="submit"]:hover, +input[type="reset"]:hover, +input[type="button"]:hover, +.button:focus, +button:focus, +input[type="submit"]:focus, +input[type="reset"]:focus, +input[type="button"]:focus { + color: #333; + border-color: #888; + outline: 0; } +.button.button-primary, +button.button-primary, +input[type="submit"].button-primary, +input[type="reset"].button-primary, +input[type="button"].button-primary { + color: #FFF; + background-color: #33C3F0; + border-color: #33C3F0; } +.button.button-primary:hover, +button.button-primary:hover, +input[type="submit"].button-primary:hover, +input[type="reset"].button-primary:hover, +input[type="button"].button-primary:hover, +.button.button-primary:focus, +button.button-primary:focus, +input[type="submit"].button-primary:focus, +input[type="reset"].button-primary:focus, +input[type="button"].button-primary:focus { + color: #FFF; + background-color: #1EAEDB; + border-color: #1EAEDB; } + + +/* Forms +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +input[type="email"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea, +select { + height: 38px; + padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ + background-color: #fff; + border: 1px solid #D1D1D1; + border-radius: 4px; + box-shadow: none; + box-sizing: border-box; } +/* Removes awkward default styles on some inputs for iOS */ +input[type="email"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } +textarea { + min-height: 65px; + padding-top: 6px; + padding-bottom: 6px; } +input[type="email"]:focus, +input[type="number"]:focus, +input[type="search"]:focus, +input[type="text"]:focus, +input[type="tel"]:focus, +input[type="url"]:focus, +input[type="password"]:focus, +textarea:focus, +select:focus { + border: 1px solid #33C3F0; + outline: 0; } +label, +legend { + display: block; + margin-bottom: .5rem; + font-weight: 600; } +fieldset { + padding: 0; + border-width: 0; } +input[type="checkbox"], +input[type="radio"] { + display: inline; } +label > .label-body { + display: inline-block; + margin-left: .5rem; + font-weight: normal; } + + +/* Lists +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +ul { + list-style: circle inside; } +ol { + list-style: decimal inside; } +ol, ul { + padding-left: 0; + margin-top: 0; } +ul ul, +ul ol, +ol ol, +ol ul { + margin: 1.5rem 0 1.5rem 3rem; + font-size: 90%; } +li { + margin-bottom: 1rem; } + + +/* Code +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +code { + padding: .2rem .5rem; + margin: 0 .2rem; + font-size: 90%; + white-space: nowrap; + background: #F1F1F1; + border: 1px solid #E1E1E1; + border-radius: 4px; } +pre > code { + display: block; + padding: 1rem 1.5rem; + white-space: pre; } + + +/* Tables +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +th, +td { + padding: 12px 15px; + text-align: left; + border-bottom: 1px solid #E1E1E1; } +th:first-child, +td:first-child { + padding-left: 0; } +th:last-child, +td:last-child { + padding-right: 0; } + + +/* Spacing +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +button, +.button { + margin-bottom: 1rem; } +input, +textarea, +select, +fieldset { + margin-bottom: 1.5rem; } +pre, +blockquote, +dl, +figure, +table, +p, +ul, +ol, +form { + margin-bottom: 2.5rem; } + + +/* Utilities +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +.u-full-width { + width: 100%; + box-sizing: border-box; } +.u-max-full-width { + max-width: 100%; + box-sizing: border-box; } +.u-pull-right { + float: right; } +.u-pull-left { + float: left; } + + +/* Misc +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +hr { + margin-top: 3rem; + margin-bottom: 3.5rem; + border-width: 0; + border-top: 1px solid #E1E1E1; } + + +/* Clearing +–––––––––––––––––––––––––––––––––––––––––––––––––– */ + +/* Self Clearing Goodness */ +.container:after, +.row:after, +.u-cf { + content: ""; + display: table; + clear: both; } + + +/* Media Queries +–––––––––––––––––––––––––––––––––––––––––––––––––– */ +/* +Note: The best way to structure the use of media queries is to create the queries +near the relevant code. For example, if you wanted to change the styles for buttons +on small devices, paste the mobile query code up in the buttons section and style it +there. +*/ + + +/* Larger than mobile */ +@media (min-width: 400px) {} + +/* Larger than phablet (also point when grid becomes active) */ +@media (min-width: 550px) {} + +/* Larger than tablet */ +@media (min-width: 750px) {} + +/* Larger than desktop */ +@media (min-width: 1000px) {} + +/* Larger than Desktop HD */ +@media (min-width: 1200px) {} diff --git a/static/img/favicon.ico b/static/img/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..63d51a5c7068e90cfcfc56a0395b2c96e1e7fde3 GIT binary patch literal 370070 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 literal 0 HcmV?d00001 diff --git a/theme.toml b/theme.toml new file mode 100644 index 0000000..96bd46e --- /dev/null +++ b/theme.toml @@ -0,0 +1,11 @@ +name = "Cocoa" +license = "MIT" +description = "Clear typography and disturbance-free reading" +homepage = "https://github.com/nishanths" +tags = ["proxima-nova", "minimal", "clear"] +features = ["blog", "themes", "responsive", "404"] +min_version = 0.1 + +[author] + name = "Nishanth Shanmugham" + homepage = "https://github.com/nishanths"