From bce8d326e5dac389439d1933d729c4654147bc44 Mon Sep 17 00:00:00 2001 From: Vadim Makeev Date: Fri, 24 Aug 2018 11:48:59 +0300 Subject: [PATCH] Moving from tabs to spaces --- .editorconfig | 6 +- README.md | 4 +- docs/features.md | 341 ++++++++++++++++++++++---------------------- gulpfile.js | 148 ++++++++++---------- index.html | 358 +++++++++++++++++++++++------------------------ 5 files changed, 427 insertions(+), 430 deletions(-) diff --git a/.editorconfig b/.editorconfig index cde0e92..2d14872 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,14 +1,12 @@ -# EditorConfig is awesome: http://EditorConfig.org root = true [*] -indent_style = tab +indent_style = space indent_size = 4 end_of_line = lf trim_trailing_whitespace = true insert_final_newline = true charset = utf-8 -[{bower.json,package.json,.travis.yml}] -indent_style = space +[{*.json,*.yml,*.toml}] indent_size = 2 diff --git a/README.md b/README.md index d6dc6d3..322b40e 100644 --- a/README.md +++ b/README.md @@ -37,11 +37,11 @@ By doing this you would get a GitHub repo linked with Netlify in a way any chang Once you’re done you can build a clean copy of your slides: - npm run prepare + npm run prepare And you’ll find your presentation in `prepared` folder with only needed files in it. You can also run `npm run archive` to get the same files in `archive.zip`. But there’s more! You can easily publish your presentation online by running: - npm run publish + npm run publish And you’ll have your slides published to `http://USER.github.io/REPO/`. diff --git a/docs/features.md b/docs/features.md index 676ec43..cc9d230 100644 --- a/docs/features.md +++ b/docs/features.md @@ -4,31 +4,31 @@ All theme’s features are demonstrated in the [index.html](index.html) file. Us - [Anatomy](#anatomy) - [Common](#common) - - [Language](#language) - - [Canvas](#canvas) - - [Title](#title) - - [Badge](#badge) - - [Progress](#progress) + - [Language](#language) + - [Canvas](#canvas) + - [Title](#title) + - [Badge](#badge) + - [Progress](#progress) - [Slide](#slide) - - [Number](#number) - - [Types](#types) - - [White](#white) - - [Black](#black) - - [Grid](#grid) - - [Content](#content) - - [Header](#header) - - [Paragraphs](#paragraphs) - - [Inline](#inline) - - [Quotes](#quotes) - - [Lists](#lists) - - [Columns](#columns) - - [Tables](#tables) - - [Code](#code) - - [Elements](#elements) - - [Cover](#cover) - - [Shout](#shout) - - [Place](#place) - - [Notes](#notes) + - [Number](#number) + - [Types](#types) + - [White](#white) + - [Black](#black) + - [Grid](#grid) + - [Content](#content) + - [Header](#header) + - [Paragraphs](#paragraphs) + - [Inline](#inline) + - [Quotes](#quotes) + - [Lists](#lists) + - [Columns](#columns) + - [Tables](#tables) + - [Code](#code) + - [Elements](#elements) + - [Cover](#cover) + - [Shout](#shout) + - [Place](#place) + - [Notes](#notes) ## Anatomy @@ -51,8 +51,8 @@ In addition to files theme’s repository contains source files: The main presentation language is set on the root element of the document, please note it and set the right one: - - + + Appropriate typography traditions are used based on this value. `lang` attribute could also be set on separate slides or elements. @@ -62,11 +62,11 @@ The root presentation element has the main `shower` class and additional mode cl List: - + Full: - + Theme’s architecture is based on agreement that all presentation elements are nested in `shower` element and mode classes are hiding or showing needed elements depending on current mode. @@ -74,10 +74,10 @@ Theme’s architecture is based on agreement that all presentation elements are Presentation title is marked with the `caption` element, which has following elements provided: `

` for the header, `

` for the description and also links. -

-

Presentation Title

-

Yours Truly, Famous Inc.

-
+
+

Presentation Title

+

Yours Truly, Famous Inc.

+
Caption is visible only in the list mode. Don’t forget to also specify presentation title in document’s `` element. @@ -85,9 +85,9 @@ Caption is visible only in the list mode. Don’t forget to also specify present Badge with “Fork me on GitHub” link (or any other call to action) is marked with `badge` element. - <footer class="badge"> - <a href="…">Fork me on Github</a> - </footer> + <footer class="badge"> + <a href="…">Fork me on Github</a> + </footer> Badge is visible only in the list mode. @@ -95,7 +95,7 @@ Badge is visible only in the list mode. Progress bar shows how much is left until presentation end and marked with `progress` element visible only in full screen mode: - <div class="progress"></div> + <div class="progress"></div> To remove it from presentation just remove this element from document. There’s no way to hide it for specific slides. @@ -103,12 +103,12 @@ To remove it from presentation just remove this element from document. There’s Slides are marked with `slide` class. Please don’t nest slides and don’t forget closing tags, things could go wrong. - <section class="slide"> - … - </section> - <section class="slide"> - … - </section> + <section class="slide"> + … + </section> + <section class="slide"> + … + </section> There are two slide ratios supported: 16×10 and 4×3. To enable needed one include appropriate file `screen-4x3.css` or `screen-16x10.css`. Wide screen 16×10 format is included by default. @@ -120,13 +120,13 @@ Slide numbers help audience to remember slides for questions and open needed sli You can hide number manually: - <section class="slide" id="off"> - <style> - #off::after { - visibility: hidden; - } - </style> - </section> + <section class="slide" id="off"> + <style> + #off::after { + visibility: hidden; + } + </style> + </section> Slide type `clear` could also hide slide number. @@ -138,13 +138,13 @@ Types are changing slide’s look. You can set type by adding class to the main White type sets white background. - <section class="slide white"> + <section class="slide white"> #### Black Black type sets black background. - <section class="slide black"> + <section class="slide black"> Please note that black slide type doesn’t change text color. @@ -152,15 +152,15 @@ Please note that black slide type doesn’t change text color. Clear type turns off slide number. Use it when you need a pure slide. May be mixed with `white` or `black` type. - <section class="slide clear"> + <section class="slide clear"> #### Grid Grid set a background with two guide types: main magenta guides and additional cyan guides, setting margins, rows and columns. - <section class="slide grid"> - … - </section> + <section class="slide grid"> + … + </section> All theme elements are aligned by this grid and it’s recommended to follow it while changing or extending a theme. @@ -172,9 +172,9 @@ Simple content: headers, paragraphs, lists. Slide header is marked with `<h2>` element: - <section class="slide"> - <h2>Slide Header</h2> - </section> + <section class="slide"> + <h2>Slide Header</h2> + </section> We haven’t introduced next heading levels to not provoke slides complexity. @@ -182,10 +182,10 @@ We haven’t introduced next heading levels to not provoke slides complexity. Paragraphs are marked with `<p>` element. You could also make a note, less important part of a slide, by adding a `note` class to a paragraph: - <section class="slide"> - <p>Text</p> - <p class="note">Note</p> - </section> + <section class="slide"> + <p>Text</p> + <p class="note">Note</p> + </section> #### Inline @@ -202,116 +202,116 @@ There are following inline elements styled in the theme: Quotes are marked with `<blockquote>` element which contains one or more paragraphs: - <blockquote> - <p>Flannel bicycle rights locavore selfies.</p> - </blockquote> + <blockquote> + <p>Flannel bicycle rights locavore selfies.</p> + </blockquote> To add quote’s author wrap a quote to a `<figure>` element and put a caption in the `<figcaption>` right after: - <figure> - <blockquote> - <p>Post-ironic fashion axe flexitarian</p> - </blockquote> - <figcaption>Yours Truly</figcaption> - </figure> + <figure> + <blockquote> + <p>Post-ironic fashion axe flexitarian</p> + </blockquote> + <figcaption>Yours Truly</figcaption> + </figure> #### Lists For creating list you must use `ul` (`ol` for numerical list). - <ol> - <li>Literally viral vegan</li> - <li>Wes Anderson chillwave Marfa - <ul> - <li>Retro meh brunch aesthetic</li> - <li>Messenger bag retro cred</li> - </ul> - </li> - </ol> + <ol> + <li>Literally viral vegan</li> + <li>Wes Anderson chillwave Marfa + <ul> + <li>Retro meh brunch aesthetic</li> + <li>Messenger bag retro cred</li> + </ul> + </li> + </ol> You can also create list with inner navigation by adding `next` class to each elements following after element from each you want start navigation: - <h2>Inner navigation</h2> - <ol> - <li>I'll be seen right away.</li> - <li>Just navigate to next slide and you'll see others.</li> - <li class="next">Hey! It's all okay ?</li> - <li class="next"> ... </li> - </ol> + <h2>Inner navigation</h2> + <ol> + <li>I'll be seen right away.</li> + <li>Just navigate to next slide and you'll see others.</li> + <li class="next">Hey! It's all okay ?</li> + <li class="next"> ... </li> + </ol> And even so: - <h2>Benefits</h2> - <ol> - <li class="next">The most important advantage</li> - <li class="next">Less important advantage</li> - </ol> - <h2 class="next">Disadvantages</h2> - <ol class="next"> - <li class="next">There's nothing here</li> - <li class="next"> ... </li> - </ol> + <h2>Benefits</h2> + <ol> + <li class="next">The most important advantage</li> + <li class="next">Less important advantage</li> + </ol> + <h2 class="next">Disadvantages</h2> + <ol class="next"> + <li class="next">There's nothing here</li> + <li class="next"> ... </li> + </ol> #### Columns If you want to form text in two or three columns use `double` or `triple` class - <p class="double"> - Echo Park 8-bit sustainable umami deep v Kickstarter. - </p> + <p class="double"> + Echo Park 8-bit sustainable umami deep v Kickstarter. + </p> Also work with lists: - <ul class="triple"> - <li>Occupy locavore blog</li> - <li>Mustache you haven’t heard of</li> - <li>Something else</li> - </ul> + <ul class="triple"> + <li>Occupy locavore blog</li> + <li>Mustache you haven’t heard of</li> + <li>Something else</li> + </ul> #### Tables Create table by using usual `table`, `tr`, `th` - <table> - <tr> - <th scope="col">Gentrify</th> - <th>Twee</th> - </tr> - <tr> - <th scope="row">Messenger</th> - <td>Mixtape</td> - </tr> - </table> + <table> + <tr> + <th scope="col">Gentrify</th> + <th>Twee</th> + </tr> + <tr> + <th scope="row">Messenger</th> + <td>Mixtape</td> + </tr> + </table> Class `striped` stylizes your table: even rows will turn gray background - <table class="striped"> + <table class="striped"> #### Code `Code` tag define your program code - <pre><code>function action() { - // TODO - return true; - }</code></pre> + <pre><code>function action() { + // TODO + return true; + }</code></pre> If you want to add lines numbers use next construction: - <pre> - <code>function action() {</code> - <code> // TODO</code> - <code> return true;</code> - <code>}<code> - </pre> + <pre> + <code>function action() {</code> + <code> // TODO</code> + <code> return true;</code> + <code>}<code> + </pre> When neccessary emphasize that code is commented, you need to use span element with `comment` class; If you want to color part of code, wrap this part with `mark` to add yellow background and `mark` with `important` class to add red background; - <pre><code>function <mark>action()</mark> { - <span class="comment">// TODO<span> - return <mark class="important">true</mark>; - }</code></pre> + <pre><code>function <mark>action()</mark> { + <span class="comment">// TODO<span> + return <mark class="important">true</mark>; + }</code></pre> ### Elements @@ -321,82 +321,81 @@ If you want to color part of code, wrap this part with `mark` to add yellow back `Cover` class on img attribute indicates that picture will be background for slide - <section class="slide"> - <img class="cover" src="picture.png"> - </section> + <section class="slide"> + <img class="cover" src="picture.png"> + </section> To stretch the picture in width or height, you need to set a `width` or `height` class respectively; Use both classes `width height`, if you want to stretch the picture in width and height - <img class="cover width" src="picture.png"> - <img class="cover height" src="picture.png"> - <img class="cover width height" src="picture.png"> + <img class="cover width" src="picture.png"> + <img class="cover height" src="picture.png"> + <img class="cover width height" src="picture.png"> Shortcut for `width`, `height`: - <img class="cover w" src="picture.png"> - <img class="cover h" src="picture.png"> + <img class="cover w" src="picture.png"> + <img class="cover h" src="picture.png"> To insert an image description, links to the author's site or other information use `figure` tag with `figcaption` - <figure> - <img class="cover" src="picture.png"> - <figcaption class="white"> - © Yours Truly - </figcaption> - </figure> + <figure> + <img class="cover" src="picture.png"> + <figcaption class="white"> + © Yours Truly + </figcaption> + </figure> #### Shout There are slides, which need to be described in only a few words. Usually they display a call for action, define common themes, link to project or something else. To stylize this text, use the `shout` class. - <section class="slide"> - <h2 class="shout">Shout</h2> - </section> + <section class="slide"> + <h2 class="shout">Shout</h2> + </section> Add `grow` class to animate text from small to big size - <section class="slide"> - <h2 class="shout grow">Growing Shout</h2> - </section> + <section class="slide"> + <h2 class="shout grow">Growing Shout</h2> + </section> Or, on the contrary, for animate text size from big to small add `shrink` class. - <section class="slide"> - <h2 class="shout shrink">Shrinking Shout</h2> - </section> + <section class="slide"> + <h2 class="shout shrink">Shrinking Shout</h2> + </section> #### Place Use `place` class on img attribute give same effect as `cover` class - set background image - <section class="slide"> - <img class="place" src="picture.png"> - </section> + <section class="slide"> + <img class="place" src="picture.png"> + </section> If you want collocate picture at a certain side, you need to use `top` / `right` / `bottom` / `left` class as shown below - <img class="place top" src="picture.png"> - <img class="place right" src="picture.png"> - <img class="place bottom" src="picture.png"> - <img class="place left" src="picture.png"> + <img class="place top" src="picture.png"> + <img class="place right" src="picture.png"> + <img class="place bottom" src="picture.png"> + <img class="place left" src="picture.png"> You can also combine classes for location in corners: - <img class="place top left" src="picture.png"> - <img class="place top right" src="picture.png"> - <img class="place bottom left" src="picture.png"> - <img class="place bottom right" src="picture.png"> + <img class="place top left" src="picture.png"> + <img class="place top right" src="picture.png"> + <img class="place bottom left" src="picture.png"> + <img class="place bottom right" src="picture.png"> #### Notes When neccessary to add some notes for slide, you may use `footer` class, that hide your notes at all time and show them when you hover to slide: - <section class="slide"> - <p>Retro meh brunch aesthetic.</p> - <footer class="footer"> - <p>Cosby sweater Shoreditch.</p> - </footer> - </section> - + <section class="slide"> + <p>Retro meh brunch aesthetic.</p> + <footer class="footer"> + <p>Cosby sweater Shoreditch.</p> + </footer> + </section> diff --git a/gulpfile.js b/gulpfile.js index ee75c56..6984001 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -9,102 +9,102 @@ const sync = require('browser-sync').create(); gulp.task('prepare', () => { - const shower = gulp.src([ - '**', - '!docs{,/**}', - '!node_modules{,/**}', - '!prepared{,/**}', - '!CONTRIBUTING.md', - '!LICENSE.md', - '!README.md', - '!gulpfile.js', - '!netlify.toml', - '!package.json', - '!package-lock.json' - ]) - .pipe(replace( - /(<link rel="stylesheet" href=")(node_modules\/shower-)([^\/]*)\/(.*\.css">)/g, - '$1shower/themes/$3/$4', { skipBinary: true } - )) - .pipe(replace( - /(<script src=")(node_modules\/shower-core\/)(shower.min.js"><\/script>)/g, - '$1shower/$3', { skipBinary: true } - )); + const shower = gulp.src([ + '**', + '!docs{,/**}', + '!node_modules{,/**}', + '!prepared{,/**}', + '!CONTRIBUTING.md', + '!LICENSE.md', + '!README.md', + '!gulpfile.js', + '!netlify.toml', + '!package.json', + '!package-lock.json' + ]) + .pipe(replace( + /(<link rel="stylesheet" href=")(node_modules\/shower-)([^\/]*)\/(.*\.css">)/g, + '$1shower/themes/$3/$4', { skipBinary: true } + )) + .pipe(replace( + /(<script src=")(node_modules\/shower-core\/)(shower.min.js"><\/script>)/g, + '$1shower/$3', { skipBinary: true } + )); - const core = gulp.src([ - 'shower.min.js' - ], { - cwd: 'node_modules/shower-core' - }) - .pipe(rename( (path) => { - path.dirname = 'shower/' + path.dirname; - })); + const core = gulp.src([ + 'shower.min.js' + ], { + cwd: 'node_modules/shower-core' + }) + .pipe(rename( (path) => { + path.dirname = 'shower/' + path.dirname; + })); - const material = gulp.src([ - '**', '!package.json' - ], { - cwd: 'node_modules/shower-material' - }) - .pipe(rename( (path) => { - path.dirname = 'shower/themes/material/' + path.dirname; - })) + const material = gulp.src([ + '**', '!package.json' + ], { + cwd: 'node_modules/shower-material' + }) + .pipe(rename( (path) => { + path.dirname = 'shower/themes/material/' + path.dirname; + })) - const ribbon = gulp.src([ - '**', '!package.json' - ], { - cwd: 'node_modules/shower-ribbon' - }) - .pipe(rename( (path) => { - path.dirname = 'shower/themes/ribbon/' + path.dirname; - })); + const ribbon = gulp.src([ + '**', '!package.json' + ], { + cwd: 'node_modules/shower-ribbon' + }) + .pipe(rename( (path) => { + path.dirname = 'shower/themes/ribbon/' + path.dirname; + })); - const themes = merge(material, ribbon) - .pipe(replace( - /(<script src=")(\/shower-core\/)(shower.min.js"><\/script>)/, - '$1../../$3', { skipBinary: true } - )); + const themes = merge(material, ribbon) + .pipe(replace( + /(<script src=")(\/shower-core\/)(shower.min.js"><\/script>)/, + '$1../../$3', { skipBinary: true } + )); - return merge(shower, core, themes) - .pipe(gulp.dest('prepared')); + return merge(shower, core, themes) + .pipe(gulp.dest('prepared')); }); gulp.task('clean', () => { - return del('prepared/**'); + return del('prepared/**'); }); gulp.task('zip', () => { - return gulp.src('prepared/**') - .pipe(zip('archive.zip')) - .pipe(gulp.dest('.')); + return gulp.src('prepared/**') + .pipe(zip('archive.zip')) + .pipe(gulp.dest('.')); }); gulp.task('upload', () => { - return pages.publish('prepared') + return pages.publish('prepared') }); gulp.task('archive', gulp.series( - 'prepare', - 'zip', - 'clean' + 'prepare', + 'zip', + 'clean' )); gulp.task('publish', gulp.series( - 'prepare', - 'upload', - 'clean' + 'prepare', + 'upload', + 'clean' )); gulp.task('serve', () => { - sync.init({ - ui: false, - notify: false, - port: 3000, - server: { - baseDir: '.' - } - }); - gulp.watch('index.html').on('change', () => { - sync.reload(); - }); + sync.init({ + ui: false, + notify: false, + port: 3000, + server: { + baseDir: '.' + } + }); + gulp.watch('index.html').on('change', () => { + sync.reload(); + }); }); diff --git a/index.html b/index.html index 4277aa0..4945e5a 100644 --- a/index.html +++ b/index.html @@ -1,11 +1,11 @@ <!DOCTYPE html> <html lang="en"> <head> - <title>Shower Presentation Engine - - - - - + #cover p a { + color: white; + } + + -
-

Shower key features

-
    -
  1. Built on HTML, CSS and JavaScript
  2. -
  3. Works in all modern browsers
  4. -
  5. Themes are separated from engine
  6. -
  7. Fully keyboard accessible
  8. -
  9. Printable to PDF
  10. -
-

Shower ['ʃəuə] noun. A person or thing that shows.

-
+
+

Shower key features

+
    +
  1. Built on HTML, CSS and JavaScript
  2. +
  3. Works in all modern browsers
  4. +
  5. Themes are separated from engine
  6. +
  7. Fully keyboard accessible
  8. +
  9. Printable to PDF
  10. +
+

Shower ['ʃəuə] noun. A person or thing that shows.

+
-
-

Plain text on your slides

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in <culpa> qui officia deserunt mollit anim id est laborum.

-
+
+

Plain text on your slides

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in <culpa> qui officia deserunt mollit anim id est laborum.

+
-
-

Two columns if you like

-
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.

-

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia.

-
-
+
+

Two columns if you like

+
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation.

+

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia.

+
+
-
-

All kind of lists

-
    -
  1. Simple lists are marked with bullets
  2. -
  3. Ordered lists begin with a number
  4. -
  5. You can even nest lists one inside another -
      -
    • Or mix their types
    • -
    • But do not go too far
    • -
    • Otherwise audience will be bored
    • -
    -
  6. -
  7. Look, seven rows exactly!
  8. -
-
+
+

All kind of lists

+
    +
  1. Simple lists are marked with bullets
  2. +
  3. Ordered lists begin with a number
  4. +
  5. You can even nest lists one inside another +
      +
    • Or mix their types
    • +
    • But do not go too far
    • +
    • Otherwise audience will be bored
    • +
    +
  6. +
  7. Look, seven rows exactly!
  8. +
+
-
-

Serious citations

-
-
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia.

-
-
Marcus Tullius Cicero
-
-
+
+

Serious citations

+
+
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia.

+
+
Marcus Tullius Cicero
+
+
-
-

Code samples

-
-			<!DOCTYPE html>
-			<html lang="en">
-			<head> <!--Comment-->
-			    <title>Shower</title>
-			    <meta charset="UTF-8">
-			    <link rel="stylesheet" href="screen.css">
-			</head>
-		
-
+
+

Code samples

+
+            <!DOCTYPE html>
+            <html lang="en">
+            <head> <!--Comment-->
+                <title>Shower</title>
+                <meta charset="UTF-8">
+                <link rel="stylesheet" href="screen.css">
+            </head>
+        
+
-
-

Even tables

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
LocavoreUmamiHelveticaVegan
FingerstacheKaleChipsKeytar
SrirachaGluten-freeEnnuiKeffiyeh
ThundercatsJeanShortsBiodiesel
TerryRichardsonSwagBlog
-

It’s good to have information organized.

-
+
+

Even tables

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
LocavoreUmamiHelveticaVegan
FingerstacheKaleChipsKeytar
SrirachaGluten-freeEnnuiKeffiyeh
ThundercatsJeanShortsBiodiesel
TerryRichardsonSwagBlog
+

It’s good to have information organized.

+
-
-

Pictures

-
- Orange typewriter on a wooden table close-up - -
- -
+
+

Pictures

+
+ Orange typewriter on a wooden table close-up + +
+ +
-
-

You can even shout this way

-
+
+

You can even shout this way

+
-
-

Inner navigation

-
    -
  1. Lets you reveal list items one by one
  2. - - - - -
-
+
+

Inner navigation

+
    +
  1. Lets you reveal list items one by one
  2. + + + + +
+
-
-

- Shower logo - See more on GitHub -

- -
+ #see-more img { + width: 0.72em; + height: 0.72em; + } + + - + -
+
- - + +