├── .github
└── FUNDING.yml
├── .gitignore
├── .prettierrc
├── LICENSE
├── README.md
├── gatsby-browser.js
├── gatsby-config.js
├── gatsby-node.js
├── gatsby-ssr.js
├── package.json
├── src
├── assets
│ ├── css
│ │ ├── font-awesome.min.css
│ │ ├── ie9.css
│ │ └── noscript.css
│ ├── fonts
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.svg
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ └── fontawesome-webfont.woff2
│ └── scss
│ │ ├── base
│ │ ├── _page.scss
│ │ └── _typography.scss
│ │ ├── components
│ │ ├── _box.scss
│ │ ├── _button.scss
│ │ ├── _form.scss
│ │ ├── _icon.scss
│ │ ├── _image.scss
│ │ ├── _list.scss
│ │ └── _table.scss
│ │ ├── ie9.scss
│ │ ├── layout
│ │ ├── _bg.scss
│ │ ├── _footer.scss
│ │ ├── _header.scss
│ │ ├── _main.scss
│ │ └── _wrapper.scss
│ │ ├── libs
│ │ ├── _functions.scss
│ │ ├── _mixins.scss
│ │ ├── _skel.scss
│ │ └── _vars.scss
│ │ ├── main.scss
│ │ └── noscript.scss
├── components
│ ├── Footer.js
│ ├── Header.js
│ ├── Main.js
│ └── layout.js
├── images
│ ├── bg.jpg
│ ├── gatsby-icon.png
│ ├── overlay.png
│ ├── pic01.jpg
│ ├── pic02.jpg
│ └── pic03.jpg
└── pages
│ ├── 404.js
│ ├── index.js
│ └── page-2.js
└── yarn.lock
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
4 | ko_fi: codebushi
5 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Project dependencies
2 | .cache
3 | node_modules
4 | yarn-error.log
5 |
6 | # Build directory
7 | /public
8 | .DS_Store
9 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "trailingComma": "es5",
3 | "semi": false,
4 | "singleQuote": true
5 | }
6 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Creative Commons Attribution 3.0
2 |
3 | https://html5up.net/license
4 |
5 | All of the site templates I create for HTML5 UP are licensed under the Creative Commons Attribution 3.0 License, which means you can:
6 |
7 | Use them for personal stuff
8 | Use them for commercial stuff
9 | Change them however you like
10 | ... all for free, yo. In exchange, just give HTML5 UP credit for the design and tell your friends about it :)
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # gatsby-starter-dimension
2 |
3 | **This is a starter for Gatsby.js V2.**
4 |
5 | **The older V1 version of this starter can be found on the v1 branch:**
6 |
7 | Gatsby.js V2 starter based on the Dimension site template, designed by HTML5 UP. Check out https://codebushi.com/gatsby-starters-and-themes/ for more Gatsby starters and templates.
8 |
9 | ## Preview
10 |
11 | https://gatsby-dimension.surge.sh/
12 |
13 | ## Installation
14 |
15 | Install this starter (assuming Gatsby is installed) by running from your CLI:
16 |
17 | `gatsby new gatsby-starter-dimension https://github.com/codebushi/gatsby-starter-dimension`
18 |
19 | Run `gatsby develop` in the terminal to start the dev site.
20 |
--------------------------------------------------------------------------------
/gatsby-browser.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Implement Gatsby's Browser APIs in this file.
3 | *
4 | * See: https://www.gatsbyjs.org/docs/browser-apis/
5 | */
6 |
7 | // You can delete this file if you're not using it
8 |
--------------------------------------------------------------------------------
/gatsby-config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | siteMetadata: {
3 | title: 'Gatsby Starter - Dimension V2',
4 | author: 'Hunter Chang',
5 | description: 'A Gatsby.js V2 Starter based on Dimension by HTML5 UP',
6 | },
7 | plugins: [
8 | 'gatsby-plugin-react-helmet',
9 | {
10 | resolve: `gatsby-plugin-manifest`,
11 | options: {
12 | name: 'gatsby-starter-default',
13 | short_name: 'starter',
14 | start_url: '/',
15 | background_color: '#663399',
16 | theme_color: '#663399',
17 | display: 'minimal-ui',
18 | icon: 'src/images/gatsby-icon.png', // This path is relative to the root of the site.
19 | },
20 | },
21 | 'gatsby-plugin-sass',
22 | ],
23 | }
24 |
--------------------------------------------------------------------------------
/gatsby-node.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Implement Gatsby's Node APIs in this file.
3 | *
4 | * See: https://www.gatsbyjs.org/docs/node-apis/
5 | */
6 |
7 | // You can delete this file if you're not using it
8 |
--------------------------------------------------------------------------------
/gatsby-ssr.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Implement Gatsby's SSR (Server Side Rendering) APIs in this file.
3 | *
4 | * See: https://www.gatsbyjs.org/docs/ssr-apis/
5 | */
6 |
7 | // You can delete this file if you're not using it
8 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "gatsby-starter-dimension-v2",
3 | "description": "Gatsby Starter - Dimension V2",
4 | "version": "1.0.0",
5 | "author": "Hunter Chang",
6 | "dependencies": {
7 | "gatsby": "^2.19.5",
8 | "gatsby-plugin-manifest": "^2.2.38",
9 | "gatsby-plugin-react-helmet": "^3.1.21",
10 | "gatsby-plugin-sass": "^2.1.27",
11 | "node-sass": "^4.13.1",
12 | "react": "^16.12.0",
13 | "react-dom": "^16.12.0",
14 | "react-helmet": "^5.2.1"
15 | },
16 | "keywords": [
17 | "gatsby"
18 | ],
19 | "license": "MIT",
20 | "scripts": {
21 | "build": "gatsby build",
22 | "develop": "gatsby develop",
23 | "format": "prettier --write '**/*.js'",
24 | "test": "echo \"Error: no test specified\" && exit 1"
25 | },
26 | "devDependencies": {
27 | "prettier": "^1.19.1"
28 | },
29 | "repository": {
30 | "type": "git",
31 | "url": "https://github.com/gatsbyjs/gatsby-starter-default"
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/assets/css/font-awesome.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
5 |
--------------------------------------------------------------------------------
/src/assets/css/ie9.css:
--------------------------------------------------------------------------------
1 | /*
2 | Dimension by HTML5 UP
3 | html5up.net | @ajlkn
4 | Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | */
6 |
7 | /* BG */
8 |
9 | #bg:before {
10 | background: rgba(19, 21, 25, 0.5);
11 | }
12 |
13 | /* Header */
14 |
15 | #header .logo {
16 | margin: 0 auto;
17 | }
18 |
19 | #header .content {
20 | display: inline-block;
21 | }
22 |
23 | #header nav ul {
24 | display: inline-block;
25 | }
26 |
27 | #header nav ul li {
28 | display: inline-block;
29 | }
30 |
31 | /* Main */
32 |
33 | #main article {
34 | margin: 0 auto;
35 | }
--------------------------------------------------------------------------------
/src/assets/css/noscript.css:
--------------------------------------------------------------------------------
1 | /*
2 | Dimension by HTML5 UP
3 | html5up.net | @ajlkn
4 | Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | */
6 |
7 | /* Main */
8 |
9 | #main article {
10 | opacity: 1;
11 | margin: 4rem 0 0 0;
12 | }
--------------------------------------------------------------------------------
/src/assets/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codebushi/gatsby-starter-dimension/3808683884848b6fc0c89b94566f9a27cf151a1a/src/assets/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/src/assets/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codebushi/gatsby-starter-dimension/3808683884848b6fc0c89b94566f9a27cf151a1a/src/assets/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/src/assets/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codebushi/gatsby-starter-dimension/3808683884848b6fc0c89b94566f9a27cf151a1a/src/assets/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/src/assets/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codebushi/gatsby-starter-dimension/3808683884848b6fc0c89b94566f9a27cf151a1a/src/assets/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/src/assets/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codebushi/gatsby-starter-dimension/3808683884848b6fc0c89b94566f9a27cf151a1a/src/assets/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/src/assets/scss/base/_page.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* Basic */
8 |
9 | // MSIE: Required for IEMobile.
10 | @-ms-viewport {
11 | width: device-width;
12 | }
13 |
14 | // Ensures page width is always >=320px.
15 | @include breakpoint(xsmall) {
16 | html, body {
17 | min-width: 320px;
18 | }
19 | }
20 |
21 | body {
22 | background: _palette(bg);
23 |
24 | // Prevents animation/transition "flicker" on page load.
25 | // Automatically added/removed by js/main.js.
26 | &.is-loading,
27 | .body.is-loading,
28 | &.is-switching {
29 | *, *:before, *:after {
30 | @include vendor('animation', 'none !important');
31 | @include vendor('transition', 'none !important');
32 | @include vendor('transition-delay', 'none !important');
33 | }
34 | }
35 |
36 | }
--------------------------------------------------------------------------------
/src/assets/scss/base/_typography.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* Type */
8 |
9 | html {
10 | font-size: 16pt;
11 |
12 | @include breakpoint(xlarge) {
13 | font-size: 12pt;
14 | }
15 |
16 | @include breakpoint(small) {
17 | font-size: 11pt;
18 | }
19 |
20 | @include breakpoint(xxsmall) {
21 | font-size: 10pt;
22 | }
23 | }
24 |
25 | body, input, select, textarea {
26 | color: _palette(fg);
27 | font-family: _font(family);
28 | font-weight: _font(weight);
29 | font-size: 1rem;
30 | line-height: 1.65;
31 | }
32 |
33 | a {
34 | @include vendor('transition', (
35 | 'color #{_duration(transition)} ease-in-out',
36 | 'background-color #{_duration(transition)} ease-in-out',
37 | 'border-bottom-color #{_duration(transition)} ease-in-out'
38 | ));
39 | border-bottom: dotted 1px _palette(fg-light);
40 | text-decoration: none;
41 | color: inherit;
42 |
43 | &:hover {
44 | border-bottom-color: transparent;
45 | }
46 | }
47 |
48 | strong, b {
49 | color: _palette(fg-bold);
50 | font-weight: _font(weight-bold);
51 | }
52 |
53 | em, i {
54 | font-style: italic;
55 | }
56 |
57 | p {
58 | margin: 0 0 _size(element-margin) 0;
59 | }
60 |
61 | h1, h2, h3, h4, h5, h6 {
62 | color: _palette(fg-bold);
63 | font-weight: _font(weight-bold);
64 | line-height: 1.5;
65 | margin: 0 0 (_size(element-margin) * 0.5) 0;
66 | text-transform: uppercase;
67 | letter-spacing: _font(letter-spacing);
68 |
69 | a {
70 | color: inherit;
71 | text-decoration: none;
72 | }
73 |
74 | &.major {
75 | border-bottom: solid _size(border-width) _palette(border);
76 | width: -moz-max-content;
77 | width: -webkit-max-content;
78 | width: -ms-max-content;
79 | width: max-content;
80 | padding-bottom: 0.5rem;
81 | margin: 0 0 (_size(element-margin) * 1) 0;
82 | }
83 | }
84 |
85 | h1 {
86 | font-size: 2.25rem;
87 | line-height: 1.3;
88 | letter-spacing: _font(letter-spacing-heading);
89 | }
90 |
91 | h2 {
92 | font-size: 1.5rem;
93 | line-height: 1.4;
94 | letter-spacing: _font(letter-spacing-heading);
95 | }
96 |
97 | h3 {
98 | font-size: 1rem;
99 | }
100 |
101 | h4 {
102 | font-size: 0.8rem;
103 | }
104 |
105 | h5 {
106 | font-size: 0.7rem;
107 | }
108 |
109 | h6 {
110 | font-size: 0.6rem;
111 | }
112 |
113 | @include breakpoint(small) {
114 | h1 {
115 | font-size: 1.75rem;
116 | line-height: 1.4;
117 | }
118 |
119 | h2 {
120 | font-size: 1.25em;
121 | line-height: 1.5;
122 | }
123 | }
124 |
125 | sub {
126 | font-size: 0.8rem;
127 | position: relative;
128 | top: 0.5rem;
129 | }
130 |
131 | sup {
132 | font-size: 0.8rem;
133 | position: relative;
134 | top: -0.5rem;
135 | }
136 |
137 | blockquote {
138 | border-left: solid (_size(border-width) * 4) _palette(border);
139 | font-style: italic;
140 | margin: 0 0 _size(element-margin) 0;
141 | padding: (_size(element-margin) / 4) 0 (_size(element-margin) / 4) _size(element-margin);
142 | }
143 |
144 | code {
145 | background: _palette(border-bg);
146 | border-radius: _size(border-radius);
147 | font-family: _font(family-fixed);
148 | font-size: 0.9rem;
149 | margin: 0 0.25rem;
150 | padding: 0.25rem 0.65rem;
151 | }
152 |
153 | pre {
154 | -webkit-overflow-scrolling: touch;
155 | font-family: _font(family-fixed);
156 | font-size: 0.9rem;
157 | margin: 0 0 _size(element-margin) 0;
158 |
159 | code {
160 | display: block;
161 | line-height: 1.75;
162 | padding: 1rem 1.5rem;
163 | overflow-x: auto;
164 | }
165 | }
166 |
167 | hr {
168 | border: 0;
169 | border-bottom: solid _size(border-width) _palette(border);
170 | margin: (_size(element-margin) * 1.375) 0;
171 | }
172 |
173 | .align-left {
174 | text-align: left;
175 | }
176 |
177 | .align-center {
178 | text-align: center;
179 | }
180 |
181 | .align-right {
182 | text-align: right;
183 | }
--------------------------------------------------------------------------------
/src/assets/scss/components/_box.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* Box */
8 |
9 | .box {
10 | border-radius: _size(border-radius);
11 | border: solid _size(border-width) _palette(border);
12 | margin-bottom: _size(element-margin);
13 | padding: 1.5em;
14 |
15 | > :last-child,
16 | > :last-child > :last-child,
17 | > :last-child > :last-child > :last-child {
18 | margin-bottom: 0;
19 | }
20 |
21 | &.alt {
22 | border: 0;
23 | border-radius: 0;
24 | padding: 0;
25 | }
26 | }
--------------------------------------------------------------------------------
/src/assets/scss/components/_button.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* Button */
8 |
9 | input[type="submit"],
10 | input[type="reset"],
11 | input[type="button"],
12 | button,
13 | .button {
14 | @include vendor('appearance', 'none');
15 | @include vendor('transition', 'background-color #{_duration(transition)} ease-in-out, color #{_duration(transition)} ease-in-out');
16 | background-color: transparent;
17 | border-radius: _size(border-radius);
18 | border: 0;
19 | box-shadow: inset 0 0 0 _size(border-width) _palette(border);
20 | color: _palette(fg-bold) !important;
21 | cursor: pointer;
22 | display: inline-block;
23 | font-size: 0.8rem;
24 | font-weight: _font(weight);
25 | height: _size(element-height);
26 | letter-spacing: _font(letter-spacing);
27 | line-height: _size(element-height);
28 | outline: 0;
29 | padding: 0 1.25rem 0 (1.25rem + (_font(letter-spacing) * 0.5));
30 | text-align: center;
31 | text-decoration: none;
32 | text-transform: uppercase;
33 | white-space: nowrap;
34 |
35 | &:hover {
36 | background-color: _palette(border-bg);
37 | }
38 |
39 | &:active {
40 | background-color: _palette(border-bg-alt);
41 | }
42 |
43 | &.icon {
44 | &:before {
45 | margin-right: 0.5em;
46 | }
47 | }
48 |
49 | &.fit {
50 | display: block;
51 | margin: 0 0 (_size(element-margin) * 0.5) 0;
52 | width: 100%;
53 | }
54 |
55 | &.special {
56 | background-color: _palette(fg-bold);
57 | color: _palette(bg) !important;
58 | font-weight: _font(weight-bold);
59 |
60 | &:hover {
61 | }
62 |
63 | &:active {
64 | }
65 | }
66 |
67 | &.disabled,
68 | &:disabled {
69 | @include vendor('pointer-events', 'none');
70 | cursor: default;
71 | opacity: 0.25;
72 | }
73 | }
74 |
75 | input[type="submit"],
76 | input[type="reset"],
77 | input[type="button"],
78 | button {
79 | line-height: calc(#{_size(element-height)} - 2px);
80 | }
--------------------------------------------------------------------------------
/src/assets/scss/components/_form.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* Form */
8 |
9 | form {
10 | $gutter: _size(element-margin) * 0.75;
11 |
12 | margin: 0 0 (_size(element-margin) * 1.25) 0;
13 |
14 | .field {
15 | margin: 0 0 ($gutter * 1) 0;
16 |
17 | &.half {
18 | width: 50%;
19 | float: left;
20 | padding: 0 0 0 ($gutter * 1 * 0.5);
21 |
22 | &.first {
23 | padding: 0 ($gutter * 1 * 0.5) 0 0;
24 | }
25 | }
26 | }
27 |
28 | > .actions {
29 | margin: ($gutter * 1.25) 0 0 0 !important;
30 | }
31 |
32 | @include breakpoint(small) {
33 | .field {
34 | margin: 0 0 ($gutter * 0.75) 0;
35 |
36 | &.half {
37 | padding: 0 0 0 ($gutter * 0.75 * 0.5);
38 |
39 | &.first {
40 | padding: 0 ($gutter * 0.75 * 0.5) 0 0;
41 | }
42 | }
43 | }
44 |
45 | > .actions {
46 | margin: ($gutter * 1) 0 0 0 !important;
47 | }
48 | }
49 |
50 | @include breakpoint(xsmall) {
51 | .field {
52 | &.half {
53 | width: 100%;
54 | float: none;
55 | padding: 0;
56 |
57 | &.first {
58 | padding: 0;
59 | }
60 | }
61 | }
62 | }
63 | }
64 |
65 | label {
66 | color: _palette(fg-bold);
67 | display: block;
68 | font-size: 0.8rem;
69 | font-weight: _font(weight);
70 | letter-spacing: _font(letter-spacing);
71 | line-height: 1.5;
72 | margin: 0 0 (_size(element-margin) * 0.5) 0;
73 | text-transform: uppercase;
74 | }
75 |
76 | input[type="text"],
77 | input[type="password"],
78 | input[type="email"],
79 | input[type="tel"],
80 | select,
81 | textarea {
82 | @include vendor('appearance', 'none');
83 | @include vendor('transition', (
84 | 'border-color #{_duration(transition)} ease-in-out',
85 | 'box-shadow #{_duration(transition)} ease-in-out',
86 | 'background-color #{_duration(transition)} ease-in-out'
87 | ));
88 | background: transparent;
89 | border-radius: _size(border-radius);
90 | border: solid _size(border-width) _palette(border);
91 | color: inherit;
92 | display: block;
93 | outline: 0;
94 | padding: 0 1rem;
95 | text-decoration: none;
96 | width: 100%;
97 |
98 | &:invalid {
99 | box-shadow: none;
100 | }
101 |
102 | &:focus {
103 | background: _palette(border-bg);
104 | border-color: _palette(fg-bold);
105 | box-shadow: 0 0 0 _size(border-width) _palette(fg-bold);
106 | }
107 | }
108 |
109 | select {
110 | option {
111 | background: _palette(bg);
112 | color: _palette(fg);
113 | }
114 | }
115 |
116 | .select-wrapper {
117 | @include icon;
118 | display: block;
119 | position: relative;
120 |
121 | &:before {
122 | color: _palette(border);
123 | content: '\f107';
124 | display: block;
125 | height: _size(element-height);
126 | //line-height: _size(element-height);
127 | line-height: calc(#{_size(element-height)} + 0em);
128 | pointer-events: none;
129 | position: absolute;
130 | right: 0;
131 | text-align: center;
132 | top: 0;
133 | width: _size(element-height);
134 | }
135 |
136 | select::-ms-expand {
137 | display: none;
138 | }
139 | }
140 |
141 | input[type="text"],
142 | input[type="password"],
143 | input[type="email"],
144 | select {
145 | height: _size(element-height);
146 | }
147 |
148 | textarea {
149 | padding: 0.75rem 1rem;
150 | }
151 |
152 | input[type="checkbox"],
153 | input[type="radio"] {
154 | @include vendor('appearance', 'none');
155 | display: block;
156 | float: left;
157 | margin-right: -2rem;
158 | opacity: 0;
159 | width: 1rem;
160 | z-index: -1;
161 |
162 | & + label {
163 | @include icon;
164 | @include vendor('user-select', 'none');
165 | color: _palette(fg);
166 | cursor: pointer;
167 | display: inline-block;
168 | font-size: 0.8rem;
169 | font-weight: _font(weight);
170 | margin: 0 0 (_size(element-margin) * 0.25) 0;
171 | padding-left: (_size(element-height) * 0.6) + 1rem;
172 | padding-right: 0.75rem;
173 | position: relative;
174 |
175 | &:before {
176 | @include vendor('transition', (
177 | 'border-color #{_duration(transition)} ease-in-out',
178 | 'box-shadow #{_duration(transition)} ease-in-out',
179 | 'background-color #{_duration(transition)} ease-in-out'
180 | ));
181 | border-radius: _size(border-radius);
182 | border: solid _size(border-width) _palette(border);
183 | content: '';
184 | display: inline-block;
185 | height: (_size(element-height) * 0.6);
186 | left: 0;
187 | //line-height: (_size(element-height) * 0.575);
188 | line-height: calc(#{_size(element-height) * 0.575} + 0em);
189 | position: absolute;
190 | text-align: center;
191 | top: -0.125rem;
192 | width: (_size(element-height) * 0.6);
193 | }
194 | }
195 |
196 | &:checked + label {
197 | &:before {
198 | background: _palette(fg-bold) !important;
199 | border-color: _palette(fg-bold) !important;
200 | color: _palette(bg);
201 | content: '\f00c';
202 | }
203 | }
204 |
205 | &:focus + label {
206 | &:before {
207 | background: _palette(border-bg);
208 | border-color: _palette(fg-bold);
209 | box-shadow: 0 0 0 _size(border-width) _palette(fg-bold);
210 | }
211 | }
212 | }
213 |
214 | input[type="checkbox"] {
215 | & + label {
216 | &:before {
217 | border-radius: _size(border-radius);
218 | }
219 | }
220 | }
221 |
222 | input[type="radio"] {
223 | & + label {
224 | &:before {
225 | border-radius: 100%;
226 | }
227 | }
228 | }
229 |
230 | ::-webkit-input-placeholder {
231 | color: _palette(fg-light) !important;
232 | opacity: 1.0;
233 | }
234 |
235 | :-moz-placeholder {
236 | color: _palette(fg-light) !important;
237 | opacity: 1.0;
238 | }
239 |
240 | ::-moz-placeholder {
241 | color: _palette(fg-light) !important;
242 | opacity: 1.0;
243 | }
244 |
245 | :-ms-input-placeholder {
246 | color: _palette(fg-light) !important;
247 | opacity: 1.0;
248 | }
249 |
250 | .formerize-placeholder {
251 | color: _palette(fg-light) !important;
252 | opacity: 1.0;
253 | }
254 |
--------------------------------------------------------------------------------
/src/assets/scss/components/_icon.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* Icon */
8 |
9 | .icon {
10 | @include icon;
11 | border-bottom: none;
12 | position: relative;
13 |
14 | > .label {
15 | display: none;
16 | }
17 | }
--------------------------------------------------------------------------------
/src/assets/scss/components/_image.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* Image */
8 |
9 | .image {
10 | border-radius: _size(border-radius);
11 | border: 0;
12 | display: inline-block;
13 | position: relative;
14 |
15 | &:before {
16 | @include vendor('pointer-events', 'none');
17 | background-image: url('../../images/overlay.png');
18 | background-color: _palette(bg-overlay);
19 | border-radius: _size(border-radius);
20 | content: '';
21 | display: block;
22 | height: 100%;
23 | left: 0;
24 | opacity: 0.5;
25 | position: absolute;
26 | top: 0;
27 | width: 100%;
28 | }
29 |
30 | img {
31 | border-radius: _size(border-radius);
32 | display: block;
33 | }
34 |
35 | &.left,
36 | &.right {
37 | max-width: 40%;
38 |
39 | img {
40 | width: 100%;
41 | }
42 | }
43 |
44 | &.left {
45 | float: left;
46 | padding: 0 1.5em 1em 0;
47 | top: 0.25em;
48 | }
49 |
50 | &.right {
51 | float: right;
52 | padding: 0 0 1em 1.5em;
53 | top: 0.25em;
54 | }
55 |
56 | &.fit {
57 | display: block;
58 | margin: 0 0 _size(element-margin) 0;
59 | width: 100%;
60 |
61 | img {
62 | width: 100%;
63 | }
64 | }
65 |
66 | &.main {
67 | display: block;
68 | margin: (_size(element-margin) * 1.25) 0;
69 | width: 100%;
70 |
71 | img {
72 | width: 100%;
73 | }
74 | }
75 |
76 | @include breakpoint(small) {
77 | &.main {
78 | margin: (_size(element-margin) * 1) 0;
79 | }
80 | }
81 |
82 | @include breakpoint(xsmall) {
83 | &.main {
84 | margin: (_size(element-margin) * 0.75) 0;
85 | }
86 | }
87 | }
--------------------------------------------------------------------------------
/src/assets/scss/components/_list.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* List */
8 |
9 | ol {
10 | list-style: decimal;
11 | margin: 0 0 _size(element-margin) 0;
12 | padding-left: 1.25em;
13 |
14 | li {
15 | padding-left: 0.25em;
16 | }
17 | }
18 |
19 | ul {
20 | list-style: disc;
21 | margin: 0 0 _size(element-margin) 0;
22 | padding-left: 1em;
23 |
24 | li {
25 | padding-left: 0.5em;
26 | }
27 |
28 | &.alt {
29 | list-style: none;
30 | padding-left: 0;
31 |
32 | li {
33 | border-top: solid _size(border-width) _palette(border);
34 | padding: 0.5em 0;
35 |
36 | &:first-child {
37 | border-top: 0;
38 | padding-top: 0;
39 | }
40 | }
41 | }
42 |
43 | &.icons {
44 | cursor: default;
45 | list-style: none;
46 | padding-left: 0;
47 |
48 | li {
49 | display: inline-block;
50 | padding: 0 0.75em 0 0;
51 |
52 | &:last-child {
53 | padding-right: 0;
54 | }
55 |
56 | a {
57 | border-radius: 100%;
58 | box-shadow: inset 0 0 0 _size(border-width) _palette(border);
59 | display: inline-block;
60 | height: 2.25rem;
61 | line-height: 2.25rem;
62 | text-align: center;
63 | width: 2.25rem;
64 |
65 | &:hover {
66 | background-color: _palette(border-bg);
67 | }
68 |
69 | &:active {
70 | background-color: _palette(border-bg-alt);
71 | }
72 | }
73 | }
74 | }
75 |
76 | &.actions {
77 | cursor: default;
78 | list-style: none;
79 | padding-left: 0;
80 |
81 | li {
82 | display: inline-block;
83 | padding: 0 (_size(element-margin) * 0.5) 0 0;
84 | vertical-align: middle;
85 |
86 | &:last-child {
87 | padding-right: 0;
88 | }
89 | }
90 |
91 | &.small {
92 | li {
93 | padding: 0 (_size(element-margin) * 0.25) 0 0;
94 | }
95 | }
96 |
97 | &.vertical {
98 | li {
99 | display: block;
100 | padding: (_size(element-margin) * 0.5) 0 0 0;
101 |
102 | &:first-child {
103 | padding-top: 0;
104 | }
105 |
106 | > * {
107 | margin-bottom: 0;
108 | }
109 | }
110 |
111 | &.small {
112 | li {
113 | padding: (_size(element-margin) * 0.25) 0 0 0;
114 |
115 | &:first-child {
116 | padding-top: 0;
117 | }
118 | }
119 | }
120 | }
121 |
122 | &.fit {
123 | display: table;
124 | margin-left: (_size(element-margin) * -0.5);
125 | padding: 0;
126 | table-layout: fixed;
127 | width: calc(100% + #{(_size(element-margin) * 0.5)});
128 |
129 | li {
130 | display: table-cell;
131 | padding: 0 0 0 (_size(element-margin) * 0.5);
132 |
133 | > * {
134 | margin-bottom: 0;
135 | }
136 | }
137 |
138 | &.small {
139 | margin-left: (_size(element-margin) * -0.25);
140 | width: calc(100% + #{(_size(element-margin) * 0.25)});
141 |
142 | li {
143 | padding: 0 0 0 (_size(element-margin) * 0.25);
144 | }
145 | }
146 | }
147 |
148 | @include breakpoint(xsmall) {
149 | margin: 0 0 _size(element-margin) 0;
150 |
151 | li {
152 | padding: (_size(element-margin) * 0.5) 0 0 0;
153 | display: block;
154 | text-align: center;
155 | width: 100%;
156 |
157 | &:first-child {
158 | padding-top: 0;
159 | }
160 |
161 | > * {
162 | width: 100%;
163 | margin: 0 !important;
164 |
165 | &.icon {
166 | &:before {
167 | margin-left: -2em;
168 | }
169 | }
170 | }
171 | }
172 |
173 | &.small {
174 | li {
175 | padding: (_size(element-margin) * 0.25) 0 0 0;
176 |
177 | &:first-child {
178 | padding-top: 0;
179 | }
180 | }
181 | }
182 | }
183 | }
184 | }
185 |
186 | dl {
187 | margin: 0 0 _size(element-margin) 0;
188 |
189 | dt {
190 | display: block;
191 | font-weight: _font(weight-bold);
192 | margin: 0 0 (_size(element-margin) * 0.5) 0;
193 | }
194 |
195 | dd {
196 | margin-left: _size(element-margin);
197 | }
198 | }
--------------------------------------------------------------------------------
/src/assets/scss/components/_table.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* Table */
8 |
9 | .table-wrapper {
10 | -webkit-overflow-scrolling: touch;
11 | overflow-x: auto;
12 | }
13 |
14 | table {
15 | margin: 0 0 _size(element-margin) 0;
16 | width: 100%;
17 |
18 | tbody {
19 | tr {
20 | border: solid _size(border-width) _palette(border);
21 | border-left: 0;
22 | border-right: 0;
23 |
24 | &:nth-child(2n + 1) {
25 | background-color: _palette(border-bg);
26 | }
27 | }
28 | }
29 |
30 | td {
31 | padding: 0.75em 0.75em;
32 | }
33 |
34 | th {
35 | color: _palette(fg-bold);
36 | font-size: 0.9em;
37 | font-weight: _font(weight-bold);
38 | padding: 0 0.75em 0.75em 0.75em;
39 | text-align: left;
40 | }
41 |
42 | thead {
43 | border-bottom: solid (_size(border-width) * 2) _palette(border);
44 | }
45 |
46 | tfoot {
47 | border-top: solid (_size(border-width) * 2) _palette(border);
48 | }
49 |
50 | &.alt {
51 | border-collapse: separate;
52 |
53 | tbody {
54 | tr {
55 | td {
56 | border: solid _size(border-width) _palette(border);
57 | border-left-width: 0;
58 | border-top-width: 0;
59 |
60 | &:first-child {
61 | border-left-width: _size(border-width);
62 | }
63 | }
64 |
65 | &:first-child {
66 | td {
67 | border-top-width: _size(border-width);
68 | }
69 | }
70 | }
71 | }
72 |
73 | thead {
74 | border-bottom: 0;
75 | }
76 |
77 | tfoot {
78 | border-top: 0;
79 | }
80 | }
81 | }
--------------------------------------------------------------------------------
/src/assets/scss/ie9.scss:
--------------------------------------------------------------------------------
1 | @import 'libs/vars';
2 | @import 'libs/functions';
3 | @import 'libs/mixins';
4 | @import 'libs/skel';
5 |
6 | /*
7 | Dimension by HTML5 UP
8 | html5up.net | @ajlkn
9 | Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
10 | */
11 |
12 | /* BG */
13 |
14 | #bg {
15 | &:before {
16 | background: _palette(bg-overlay);
17 | }
18 | }
19 |
20 | /* Header */
21 |
22 | #header {
23 | .logo {
24 | margin: 0 auto;
25 | }
26 |
27 | .content {
28 | display: inline-block;
29 | }
30 |
31 | nav {
32 | ul {
33 | display: inline-block;
34 |
35 | li {
36 | display: inline-block;
37 | }
38 | }
39 | }
40 | }
41 |
42 | /* Main */
43 |
44 | #main {
45 | article {
46 | margin: 0 auto;
47 | }
48 | }
--------------------------------------------------------------------------------
/src/assets/scss/layout/_bg.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* BG */
8 |
9 | #bg {
10 | @include vendor('transform', 'scale(1.0)');
11 | -webkit-backface-visibility: hidden;
12 | position: fixed;
13 | top: 0;
14 | left: 0;
15 | width: 100%;
16 | height: 100vh;
17 | z-index: 1;
18 |
19 | &:before,
20 | &:after {
21 | content: '';
22 | display: block;
23 | position: absolute;
24 | top: 0;
25 | left: 0;
26 | width: 100%;
27 | height: 100%;
28 | }
29 |
30 | &:before {
31 | @include vendor(
32 | 'transition',
33 | 'background-color #{_duration(bg)} ease-in-out'
34 | );
35 | @include vendor('transition-delay', '#{_duration(intro)}');
36 | background-image: linear-gradient(
37 | to top,
38 | #{_palette(bg-overlay)},
39 | #{_palette(bg-overlay)}
40 | ),
41 | url('../../images/overlay.png');
42 | background-size: auto, 256px 256px;
43 | background-position: center, center;
44 | background-repeat: no-repeat, repeat;
45 | z-index: 2;
46 | }
47 |
48 | &:after {
49 | @include vendor('transform', 'scale(1.125)');
50 | @include vendor(
51 | 'transition',
52 | (
53 | 'transform #{_duration(article)} ease-in-out',
54 | 'filter #{_duration(article)} ease-in-out'
55 | )
56 | );
57 | background-image: url('../../images/bg.jpg');
58 | background-position: center;
59 | background-size: cover;
60 | background-repeat: no-repeat;
61 | z-index: 1;
62 | }
63 |
64 | .body.is-article-visible & {
65 | &:after {
66 | @include vendor('transform', 'scale(1.0825)');
67 | // @include vendor('filter', 'blur(0.2rem)');
68 | }
69 | }
70 |
71 | .body.is-loading & {
72 | &:before {
73 | background-color: _palette(bg-alt);
74 | }
75 | }
76 | }
77 |
--------------------------------------------------------------------------------
/src/assets/scss/layout/_footer.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* Footer */
8 |
9 | #footer {
10 | @include vendor(
11 | 'transition',
12 | (
13 | 'transform #{_duration(article)} ease-in-out',
14 | 'filter #{_duration(article)} ease-in-out',
15 | 'opacity #{_duration(article)} ease-in-out'
16 | )
17 | );
18 | width: 100%;
19 | max-width: 100%;
20 | margin-top: 2rem;
21 | text-align: center;
22 |
23 | .copyright {
24 | letter-spacing: _font(letter-spacing);
25 | font-size: 0.6rem;
26 | opacity: 0.75;
27 | margin-bottom: 0;
28 | text-transform: uppercase;
29 | }
30 |
31 | .body.is-article-visible & {
32 | @include vendor('transform', 'scale(0.95)');
33 | // @include vendor('filter', 'blur(0.1rem)');
34 | opacity: 0;
35 | }
36 |
37 | .body.is-loading & {
38 | opacity: 0;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/assets/scss/layout/_header.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* Header */
8 |
9 | #header {
10 | @include vendor('display', 'flex');
11 | @include vendor('flex-direction', 'column');
12 | @include vendor('align-items', 'center');
13 | @include vendor(
14 | 'transition',
15 | (
16 | 'transform #{_duration(article)} ease-in-out',
17 | 'filter #{_duration(article)} ease-in-out',
18 | 'opacity #{_duration(article)} ease-in-out'
19 | )
20 | );
21 | background-image: -moz-radial-gradient(
22 | rgba(0, 0, 0, 0.25) 25%,
23 | rgba(0, 0, 0, 0) 55%
24 | );
25 | background-image: -webkit-radial-gradient(
26 | rgba(0, 0, 0, 0.25) 25%,
27 | rgba(0, 0, 0, 0) 55%
28 | );
29 | background-image: -ms-radial-gradient(
30 | rgba(0, 0, 0, 0.25) 25%,
31 | rgba(0, 0, 0, 0) 55%
32 | );
33 | background-image: radial-gradient(
34 | rgba(0, 0, 0, 0.25) 25%,
35 | rgba(0, 0, 0, 0) 55%
36 | );
37 | max-width: 100%;
38 | text-align: center;
39 |
40 | > * {
41 | @include vendor('transition', 'opacity #{_duration(article)} ease-in-out');
42 | position: relative;
43 | margin-top: 3.5rem;
44 |
45 | &:before {
46 | content: '';
47 | display: block;
48 | position: absolute;
49 | top: calc(-3.5rem - 1px);
50 | left: calc(50% - #{_size(border-width) * 1});
51 | width: _size(border-width);
52 | height: calc(3.5rem + 1px);
53 | background: _palette(border);
54 | }
55 | }
56 |
57 | > :first-child {
58 | margin-top: 0;
59 |
60 | &:before {
61 | display: none;
62 | }
63 | }
64 |
65 | .logo {
66 | width: 5.5rem;
67 | height: 5.5rem;
68 | line-height: 5.5rem;
69 | border: solid _size(border-width) _palette(border);
70 | border-radius: 100%;
71 |
72 | .icon {
73 | &:before {
74 | font-size: 2rem;
75 | }
76 | }
77 | }
78 |
79 | .content {
80 | border-style: solid;
81 | border-color: _palette(border);
82 | border-top-width: _size(border-width);
83 | border-bottom-width: _size(border-width);
84 | max-width: 100%;
85 |
86 | .inner {
87 | @include vendor(
88 | 'transition',
89 | (
90 | 'max-height #{_duration(intro)} ease',
91 | 'padding #{_duration(intro)} ease',
92 | 'opacity #{_duration(article)} ease-in-out'
93 | )
94 | );
95 | @include vendor('transition-delay', '0.25s');
96 | padding: 3rem 2rem;
97 | max-height: 40rem;
98 | overflow: hidden;
99 |
100 | > :last-child {
101 | margin-bottom: 0;
102 | }
103 | }
104 |
105 | p {
106 | text-transform: uppercase;
107 | letter-spacing: _font(letter-spacing);
108 | font-size: 0.8rem;
109 | line-height: 2;
110 | }
111 | }
112 |
113 | nav {
114 | ul {
115 | @include vendor('display', 'flex');
116 | margin-bottom: 0;
117 | list-style: none;
118 | padding-left: 0;
119 | border: solid _size(border-width) _palette(border);
120 | border-radius: _size(border-radius);
121 |
122 | li {
123 | padding-left: 0;
124 | border-left: solid _size(border-width) _palette(border);
125 |
126 | &:first-child {
127 | border-left: 0;
128 | }
129 |
130 | button {
131 | display: block;
132 | min-width: 7.5rem;
133 | height: 2.75rem;
134 | line-height: 2.75rem;
135 | padding: 0 1.25rem 0 (1.25rem + _font(letter-spacing));
136 | text-transform: uppercase;
137 | letter-spacing: _font(letter-spacing);
138 | font-size: 0.8rem;
139 | font-family: _font(family);
140 | border: none;
141 | box-shadow: none;
142 |
143 | &:hover,
144 | &:focus {
145 | background-color: _palette(border-bg);
146 | }
147 |
148 | &:active {
149 | background-color: _palette(border-bg-alt);
150 | }
151 | }
152 | }
153 | }
154 |
155 | &.use-middle {
156 | &:after {
157 | content: '';
158 | display: block;
159 | position: absolute;
160 | top: 0;
161 | left: calc(50% - #{_size(border-width) * 1});
162 | width: _size(border-width);
163 | height: 100%;
164 | background: _palette(border);
165 | }
166 |
167 | ul {
168 | li {
169 | &.is-middle {
170 | border-left: 0;
171 | }
172 | }
173 | }
174 | }
175 | }
176 |
177 | .body.is-article-visible & {
178 | @include vendor('transform', 'scale(0.95)');
179 | // @include vendor('filter', 'blur(0.1rem)');
180 | opacity: 0;
181 | }
182 |
183 | .body.is-loading & {
184 | > * {
185 | opacity: 0;
186 | }
187 |
188 | // @include vendor('filter', 'blur(0.125rem)');
189 |
190 | .content {
191 | .inner {
192 | max-height: 0;
193 | padding-top: 0;
194 | padding-bottom: 0;
195 | opacity: 0;
196 | }
197 | }
198 | }
199 |
200 | @include breakpoint(medium) {
201 | .content {
202 | p {
203 | br {
204 | display: none;
205 | }
206 | }
207 | }
208 | }
209 |
210 | @include breakpoint(small) {
211 | > * {
212 | margin-top: 2rem;
213 |
214 | &:before {
215 | top: calc(-2rem - 1px);
216 | height: calc(2rem + 1px);
217 | }
218 | }
219 |
220 | .logo {
221 | width: 4.75rem;
222 | height: 4.75rem;
223 | line-height: 4.75rem;
224 |
225 | .icon {
226 | &:before {
227 | font-size: 1.75rem;
228 | }
229 | }
230 | }
231 |
232 | .content {
233 | .inner {
234 | padding: 2.5rem 1rem;
235 | }
236 |
237 | p {
238 | line-height: 1.875;
239 | }
240 | }
241 | }
242 |
243 | @include breakpoint(xsmall) {
244 | padding: 1.5rem 0;
245 |
246 | .content {
247 | .inner {
248 | padding: 2.5rem 0;
249 | }
250 | }
251 |
252 | nav {
253 | ul {
254 | @include vendor('flex-direction', 'column');
255 | min-width: 10rem;
256 | max-width: 100%;
257 |
258 | li {
259 | border-left: 0;
260 | border-top: solid _size(border-width) _palette(border);
261 |
262 | &:first-child {
263 | border-top: 0;
264 | }
265 |
266 | a {
267 | height: 3rem;
268 | line-height: 3rem;
269 | min-width: 0;
270 | width: 100%;
271 | }
272 | }
273 | }
274 |
275 | &.use-middle {
276 | &:after {
277 | display: none;
278 | }
279 | }
280 | }
281 | }
282 | }
283 |
--------------------------------------------------------------------------------
/src/assets/scss/layout/_main.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* Main */
8 |
9 | #main {
10 | @include vendor('flex-grow', '1');
11 | @include vendor('flex-shrink', '1');
12 | @include vendor('display', 'flex');
13 | @include vendor('align-items', 'center');
14 | @include vendor('justify-content', 'center');
15 | @include vendor('flex-direction', 'column');
16 | position: relative;
17 | max-width: 100%;
18 | z-index: 3;
19 | display: none;
20 |
21 | article {
22 | @include vendor('transform', 'translateY(0.25rem)');
23 | @include vendor('transition', (
24 | 'opacity #{_duration(article)} ease-in-out',
25 | 'transform #{_duration(article)} ease-in-out'
26 | ));
27 | @include padding(2.5rem, 2.5rem, (2rem, 0, 1rem, 0));
28 | position: relative;
29 | width: 40rem;
30 | max-width: 100%;
31 | background-color: transparentize(_palette(bg), 0.15);
32 | border-radius: _size(border-radius);
33 | opacity: 0;
34 |
35 | &.timeout {
36 | display: none;
37 | }
38 |
39 | &.active.timeout {
40 | @include vendor('transform', 'translateY(0)');
41 | opacity: 1;
42 | }
43 |
44 | &.active {
45 | display: block !important;
46 | }
47 |
48 | .close {
49 | display: block;
50 | position: absolute;
51 | top: 0;
52 | right: 0;
53 | width: 4rem;
54 | height: 4rem;
55 | cursor: pointer;
56 | text-indent: 4rem;
57 | overflow: hidden;
58 | white-space: nowrap;
59 |
60 | &:before {
61 | @include vendor('transition', 'background-color #{_duration(transition)} ease-in-out');
62 | content: '';
63 | display: block;
64 | position: absolute;
65 | top: 0.75rem;
66 | left: 0.75rem;
67 | width: 2.5rem;
68 | height: 2.5rem;
69 | border-radius: 100%;
70 | background-position: center;
71 | background-image: svg-url(' ');
72 | background-size: 20px 20px;
73 | background-repeat: no-repeat;
74 | }
75 |
76 | &:hover {
77 | &:before {
78 | background-color: _palette(border-bg);
79 | }
80 | }
81 |
82 | &:active {
83 | &:before {
84 | background-color: _palette(border-bg-alt);
85 | }
86 | }
87 | }
88 |
89 | }
90 |
91 | @include breakpoint(small) {
92 | article {
93 | @include padding(2rem, 2rem, (1.5rem, 0, 0.5rem, 0));
94 | .close {
95 | &:before {
96 | top: 0.875rem;
97 | left: 0.875rem;
98 | width: 2.25rem;
99 | height: 2.25rem;
100 | background-size: 14px 14px;
101 | }
102 | }
103 | }
104 | }
105 |
106 | @include breakpoint(xsmall) {
107 | article {
108 | @include padding(2rem, 1.5rem, (1rem, 0, 0.5rem, 0));
109 | }
110 | }
111 | }
--------------------------------------------------------------------------------
/src/assets/scss/layout/_wrapper.scss:
--------------------------------------------------------------------------------
1 | ///
2 | /// Dimension by HTML5 UP
3 | /// html5up.net | @ajlkn
4 | /// Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
5 | ///
6 |
7 | /* Wrapper */
8 |
9 | #wrapper {
10 | @include vendor('display', 'flex');
11 | @include vendor('flex-direction', 'column');
12 | @include vendor('align-items', 'center');
13 | @include vendor('justify-content', 'space-between');
14 | position: relative;
15 | min-height: 100vh;
16 | width: 100%;
17 | padding: 4rem 2rem;
18 | z-index: 3;
19 |
20 | &:before {
21 | content: '';
22 | display: block;
23 | }
24 |
25 | @include breakpoint(xlarge) {
26 | padding: 3rem 2rem;
27 | }
28 |
29 | @include breakpoint(small) {
30 | padding: 2rem 1rem;
31 | }
32 |
33 | @include breakpoint(xsmall) {
34 | padding: 1rem;
35 | }
36 |
37 | &.page {
38 | @include vendor('justify-content', 'flex-start');
39 | }
40 | }
--------------------------------------------------------------------------------
/src/assets/scss/libs/_functions.scss:
--------------------------------------------------------------------------------
1 | /// Gets a duration value.
2 | /// @param {string} $keys Key(s).
3 | /// @return {string} Value.
4 | @function _duration($keys...) {
5 | @return val($duration, $keys...);
6 | }
7 |
8 | /// Gets a font value.
9 | /// @param {string} $keys Key(s).
10 | /// @return {string} Value.
11 | @function _font($keys...) {
12 | @return val($font, $keys...);
13 | }
14 |
15 | /// Gets a misc value.
16 | /// @param {string} $keys Key(s).
17 | /// @return {string} Value.
18 | @function _misc($keys...) {
19 | @return val($misc, $keys...);
20 | }
21 |
22 | /// Gets a palette value.
23 | /// @param {string} $keys Key(s).
24 | /// @return {string} Value.
25 | @function _palette($keys...) {
26 | @return val($palette, $keys...);
27 | }
28 |
29 | /// Gets a size value.
30 | /// @param {string} $keys Key(s).
31 | /// @return {string} Value.
32 | @function _size($keys...) {
33 | @return val($size, $keys...);
34 | }
--------------------------------------------------------------------------------
/src/assets/scss/libs/_mixins.scss:
--------------------------------------------------------------------------------
1 | /// Makes an element's :before pseudoelement a FontAwesome icon.
2 | /// @param {string} $content Optional content value to use.
3 | /// @param {string} $where Optional pseudoelement to target (before or after).
4 | @mixin icon($content: false, $where: before) {
5 |
6 | text-decoration: none;
7 |
8 | &:#{$where} {
9 |
10 | @if $content {
11 | content: $content;
12 | }
13 |
14 | -moz-osx-font-smoothing: grayscale;
15 | -webkit-font-smoothing: antialiased;
16 | font-family: FontAwesome;
17 | font-style: normal;
18 | font-weight: normal;
19 | text-transform: none !important;
20 |
21 | }
22 |
23 | }
24 |
25 | /// Applies padding to an element, taking the current element-margin value into account.
26 | /// @param {mixed} $tb Top/bottom padding.
27 | /// @param {mixed} $lr Left/right padding.
28 | /// @param {list} $pad Optional extra padding (in the following order top, right, bottom, left)
29 | /// @param {bool} $important If true, adds !important.
30 | @mixin padding($tb, $lr, $pad: (0,0,0,0), $important: null) {
31 |
32 | @if $important {
33 | $important: '!important';
34 | }
35 |
36 | $x: 0.1em;
37 |
38 | @if unit(_size(element-margin)) == 'rem' {
39 | $x: 0.1rem;
40 | }
41 |
42 | padding: ($tb + nth($pad,1)) ($lr + nth($pad,2)) max($x, $tb - _size(element-margin) + nth($pad,3)) ($lr + nth($pad,4)) #{$important};
43 |
44 | }
45 |
46 | /// Encodes a SVG data URL so IE doesn't choke (via codepen.io/jakob-e/pen/YXXBrp).
47 | /// @param {string} $svg SVG data URL.
48 | /// @return {string} Encoded SVG data URL.
49 | @function svg-url($svg) {
50 |
51 | $svg: str-replace($svg, '"', '\'');
52 | $svg: str-replace($svg, '%', '%25');
53 | $svg: str-replace($svg, '<', '%3C');
54 | $svg: str-replace($svg, '>', '%3E');
55 | $svg: str-replace($svg, '&', '%26');
56 | $svg: str-replace($svg, '#', '%23');
57 | $svg: str-replace($svg, '{', '%7B');
58 | $svg: str-replace($svg, '}', '%7D');
59 | $svg: str-replace($svg, ';', '%3B');
60 |
61 | @return url("data:image/svg+xml;charset=utf8,#{$svg}");
62 |
63 | }
64 |
65 | /// Initializes base flexgrid classes.
66 | /// @param {string} $vertical-align Vertical alignment of cells.
67 | /// @param {string} $horizontal-align Horizontal alignment of cells.
68 | @mixin flexgrid-base($vertical-align: null, $horizontal-align: null) {
69 |
70 | // Grid.
71 | @include vendor('display', 'flex');
72 | @include vendor('flex-wrap', 'wrap');
73 |
74 | // Vertical alignment.
75 | @if ($vertical-align == top) {
76 | @include vendor('align-items', 'flex-start');
77 | }
78 | @else if ($vertical-align == bottom) {
79 | @include vendor('align-items', 'flex-end');
80 | }
81 | @else if ($vertical-align == center) {
82 | @include vendor('align-items', 'center');
83 | }
84 | @else {
85 | @include vendor('align-items', 'stretch');
86 | }
87 |
88 | // Horizontal alignment.
89 | @if ($horizontal-align != null) {
90 | text-align: $horizontal-align;
91 | }
92 |
93 | // Cells.
94 | > * {
95 | @include vendor('flex-shrink', '1');
96 | @include vendor('flex-grow', '0');
97 | }
98 |
99 | }
100 |
101 | /// Sets up flexgrid columns.
102 | /// @param {integer} $columns Columns.
103 | @mixin flexgrid-columns($columns) {
104 |
105 | > * {
106 | $cell-width: 100% / $columns;
107 | width: #{$cell-width};
108 | }
109 |
110 | }
111 |
112 | /// Sets up flexgrid gutters.
113 | /// @param {integer} $columns Columns.
114 | /// @param {number} $gutters Gutters.
115 | @mixin flexgrid-gutters($columns, $gutters) {
116 |
117 | // Apply padding.
118 | > * {
119 | $cell-width: 100% / $columns;
120 |
121 | padding: ($gutters * 0.5);
122 | width: $cell-width;
123 | }
124 |
125 | }
126 |
127 | /// Sets up flexgrid gutters (flush).
128 | /// @param {integer} $columns Columns.
129 | /// @param {number} $gutters Gutters.
130 | @mixin flexgrid-gutters-flush($columns, $gutters) {
131 |
132 | // Apply padding.
133 | > * {
134 | $cell-width: 100% / $columns;
135 | $cell-width-pad: $gutters / $columns;
136 |
137 | padding: ($gutters * 0.5);
138 | width: calc(#{$cell-width} + #{$cell-width-pad});
139 | }
140 |
141 | // Clear top/bottom gutters.
142 | > :nth-child(-n + #{$columns}) {
143 | padding-top: 0;
144 | }
145 |
146 | > :nth-last-child(-n + #{$columns}) {
147 | padding-bottom: 0;
148 | }
149 |
150 | // Clear left/right gutters.
151 | > :nth-child(#{$columns}n + 1) {
152 | padding-left: 0;
153 | }
154 |
155 | > :nth-child(#{$columns}n) {
156 | padding-right: 0;
157 | }
158 |
159 | // Adjust widths of leftmost and rightmost cells.
160 | > :nth-child(#{$columns}n + 1),
161 | > :nth-child(#{$columns}n) {
162 | $cell-width: 100% / $columns;
163 | $cell-width-pad: ($gutters / $columns) - ($gutters / 2);
164 |
165 | width: calc(#{$cell-width} + #{$cell-width-pad});
166 | }
167 |
168 | }
169 |
170 | /// Reset flexgrid gutters (flush only).
171 | /// Used to override a previous set of flexgrid gutter classes.
172 | /// @param {integer} $columns Columns.
173 | /// @param {number} $gutters Gutters.
174 | /// @param {integer} $prev-columns Previous columns.
175 | @mixin flexgrid-gutters-flush-reset($columns, $gutters, $prev-columns) {
176 |
177 | // Apply padding.
178 | > * {
179 | $cell-width: 100% / $prev-columns;
180 | $cell-width-pad: $gutters / $prev-columns;
181 |
182 | padding: ($gutters * 0.5);
183 | width: calc(#{$cell-width} + #{$cell-width-pad});
184 | }
185 |
186 | // Clear top/bottom gutters.
187 | > :nth-child(-n + #{$prev-columns}) {
188 | padding-top: ($gutters * 0.5);
189 | }
190 |
191 | > :nth-last-child(-n + #{$prev-columns}) {
192 | padding-bottom: ($gutters * 0.5);
193 | }
194 |
195 | // Clear left/right gutters.
196 | > :nth-child(#{$prev-columns}n + 1) {
197 | padding-left: ($gutters * 0.5);
198 | }
199 |
200 | > :nth-child(#{$prev-columns}n) {
201 | padding-right: ($gutters * 0.5);
202 | }
203 |
204 | // Adjust widths of leftmost and rightmost cells.
205 | > :nth-child(#{$prev-columns}n + 1),
206 | > :nth-child(#{$prev-columns}n) {
207 | $cell-width: 100% / $columns;
208 | $cell-width-pad: $gutters / $columns;
209 |
210 | padding: ($gutters * 0.5);
211 | width: calc(#{$cell-width} + #{$cell-width-pad});
212 | }
213 |
214 | }
215 |
216 | /// Adds debug styles to current flexgrid element.
217 | @mixin flexgrid-debug() {
218 |
219 | box-shadow: 0 0 0 1px red;
220 |
221 | > * {
222 | box-shadow: inset 0 0 0 1px blue;
223 | position: relative;
224 |
225 | > * {
226 | position: relative;
227 | box-shadow: inset 0 0 0 1px green;
228 | }
229 | }
230 |
231 | }
232 |
233 | /// Initializes the current element as a flexgrid.
234 | /// @param {integer} $columns Columns (optional).
235 | /// @param {number} $gutters Gutters (optional).
236 | /// @param {bool} $flush If true, clears padding around the very edge of the grid.
237 | @mixin flexgrid($settings: ()) {
238 |
239 | // Settings.
240 |
241 | // Debug.
242 | $debug: false;
243 |
244 | @if (map-has-key($settings, 'debug')) {
245 | $debug: map-get($settings, 'debug');
246 | }
247 |
248 | // Vertical align.
249 | $vertical-align: null;
250 |
251 | @if (map-has-key($settings, 'vertical-align')) {
252 | $vertical-align: map-get($settings, 'vertical-align');
253 | }
254 |
255 | // Horizontal align.
256 | $horizontal-align: null;
257 |
258 | @if (map-has-key($settings, 'horizontal-align')) {
259 | $horizontal-align: map-get($settings, 'horizontal-align');
260 | }
261 |
262 | // Columns.
263 | $columns: null;
264 |
265 | @if (map-has-key($settings, 'columns')) {
266 | $columns: map-get($settings, 'columns');
267 | }
268 |
269 | // Gutters.
270 | $gutters: 0;
271 |
272 | @if (map-has-key($settings, 'gutters')) {
273 | $gutters: map-get($settings, 'gutters');
274 | }
275 |
276 | // Flush.
277 | $flush: true;
278 |
279 | @if (map-has-key($settings, 'flush')) {
280 | $flush: map-get($settings, 'flush');
281 | }
282 |
283 | // Initialize base grid.
284 | @include flexgrid-base($vertical-align, $horizontal-align);
285 |
286 | // Debug?
287 | @if ($debug) {
288 | @include flexgrid-debug;
289 | }
290 |
291 | // Columns specified?
292 | @if ($columns != null) {
293 |
294 | // Initialize columns.
295 | @include flexgrid-columns($columns);
296 |
297 | // Gutters specified?
298 | @if ($gutters > 0) {
299 |
300 | // Flush gutters?
301 | @if ($flush) {
302 |
303 | // Initialize gutters (flush).
304 | @include flexgrid-gutters-flush($columns, $gutters);
305 |
306 | }
307 |
308 | // Otherwise ...
309 | @else {
310 |
311 | // Initialize gutters.
312 | @include flexgrid-gutters($columns, $gutters);
313 |
314 | }
315 |
316 | }
317 |
318 | }
319 |
320 | }
321 |
322 | /// Resizes a previously-initialized grid.
323 | /// @param {integer} $columns Columns.
324 | /// @param {number} $gutters Gutters (optional).
325 | /// @param {list} $reset A list of previously-initialized grid columns (only if $flush is true).
326 | /// @param {bool} $flush If true, clears padding around the very edge of the grid.
327 | @mixin flexgrid-resize($settings: ()) {
328 |
329 | // Settings.
330 |
331 | // Columns.
332 | $columns: 1;
333 |
334 | @if (map-has-key($settings, 'columns')) {
335 | $columns: map-get($settings, 'columns');
336 | }
337 |
338 | // Gutters.
339 | $gutters: 0;
340 |
341 | @if (map-has-key($settings, 'gutters')) {
342 | $gutters: map-get($settings, 'gutters');
343 | }
344 |
345 | // Previous columns.
346 | $prev-columns: false;
347 |
348 | @if (map-has-key($settings, 'prev-columns')) {
349 | $prev-columns: map-get($settings, 'prev-columns');
350 | }
351 |
352 | // Flush.
353 | $flush: true;
354 |
355 | @if (map-has-key($settings, 'flush')) {
356 | $flush: map-get($settings, 'flush');
357 | }
358 |
359 | // Resize columns.
360 | @include flexgrid-columns($columns);
361 |
362 | // Gutters specified?
363 | @if ($gutters > 0) {
364 |
365 | // Flush gutters?
366 | @if ($flush) {
367 |
368 | // Previous columns specified?
369 | @if ($prev-columns) {
370 |
371 | // Convert to list if it isn't one already.
372 | @if (type-of($prev-columns) != list) {
373 | $prev-columns: ($prev-columns);
374 | }
375 |
376 | // Step through list of previous columns and reset them.
377 | @each $x in $prev-columns {
378 | @include flexgrid-gutters-flush-reset($columns, $gutters, $x);
379 | }
380 |
381 | }
382 |
383 | // Resize gutters (flush).
384 | @include flexgrid-gutters-flush($columns, $gutters);
385 |
386 | }
387 |
388 | // Otherwise ...
389 | @else {
390 |
391 | // Resize gutters.
392 | @include flexgrid-gutters($columns, $gutters);
393 |
394 | }
395 |
396 | }
397 |
398 | }
--------------------------------------------------------------------------------
/src/assets/scss/libs/_skel.scss:
--------------------------------------------------------------------------------
1 | // skel.scss v3.0.2-dev | (c) skel.io | MIT licensed */
2 |
3 | // Vars.
4 |
5 | /// Breakpoints.
6 | /// @var {list}
7 | $breakpoints: () !global;
8 |
9 | /// Vendor prefixes.
10 | /// @var {list}
11 | $vendor-prefixes: (
12 | '-moz-',
13 | '-webkit-',
14 | '-ms-',
15 | ''
16 | );
17 |
18 | /// Properties that should be vendorized.
19 | /// @var {list}
20 | $vendor-properties: (
21 | 'align-content',
22 | 'align-items',
23 | 'align-self',
24 | 'animation',
25 | 'animation-delay',
26 | 'animation-direction',
27 | 'animation-duration',
28 | 'animation-fill-mode',
29 | 'animation-iteration-count',
30 | 'animation-name',
31 | 'animation-play-state',
32 | 'animation-timing-function',
33 | 'appearance',
34 | 'backface-visibility',
35 | 'box-sizing',
36 | 'filter',
37 | 'flex',
38 | 'flex-basis',
39 | 'flex-direction',
40 | 'flex-flow',
41 | 'flex-grow',
42 | 'flex-shrink',
43 | 'flex-wrap',
44 | 'justify-content',
45 | 'object-fit',
46 | 'object-position',
47 | 'order',
48 | 'perspective',
49 | 'pointer-events',
50 | 'transform',
51 | 'transform-origin',
52 | 'transform-style',
53 | 'transition',
54 | 'transition-delay',
55 | 'transition-duration',
56 | 'transition-property',
57 | 'transition-timing-function',
58 | 'user-select'
59 | );
60 |
61 | /// Values that should be vendorized.
62 | /// @var {list}
63 | $vendor-values: (
64 | 'filter',
65 | 'flex',
66 | 'linear-gradient',
67 | 'radial-gradient',
68 | 'transform'
69 | );
70 |
71 | // Functions.
72 |
73 | /// Removes a specific item from a list.
74 | /// @author Hugo Giraudel
75 | /// @param {list} $list List.
76 | /// @param {integer} $index Index.
77 | /// @return {list} Updated list.
78 | @function remove-nth($list, $index) {
79 |
80 | $result: null;
81 |
82 | @if type-of($index) != number {
83 | @warn "$index: #{quote($index)} is not a number for `remove-nth`.";
84 | }
85 | @else if $index == 0 {
86 | @warn "List index 0 must be a non-zero integer for `remove-nth`.";
87 | }
88 | @else if abs($index) > length($list) {
89 | @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
90 | }
91 | @else {
92 |
93 | $result: ();
94 | $index: if($index < 0, length($list) + $index + 1, $index);
95 |
96 | @for $i from 1 through length($list) {
97 |
98 | @if $i != $index {
99 | $result: append($result, nth($list, $i));
100 | }
101 |
102 | }
103 |
104 | }
105 |
106 | @return $result;
107 |
108 | }
109 |
110 | /// Replaces a substring within another string.
111 | /// @author Hugo Giraudel
112 | /// @param {string} $string String.
113 | /// @param {string} $search Substring.
114 | /// @param {string} $replace Replacement.
115 | /// @return {string} Updated string.
116 | @function str-replace($string, $search, $replace: '') {
117 |
118 | $index: str-index($string, $search);
119 |
120 | @if $index {
121 | @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
122 | }
123 |
124 | @return $string;
125 |
126 | }
127 |
128 | /// Replaces a substring within each string in a list.
129 | /// @param {list} $strings List of strings.
130 | /// @param {string} $search Substring.
131 | /// @param {string} $replace Replacement.
132 | /// @return {list} Updated list of strings.
133 | @function str-replace-all($strings, $search, $replace: '') {
134 |
135 | @each $string in $strings {
136 | $strings: set-nth($strings, index($strings, $string), str-replace($string, $search, $replace));
137 | }
138 |
139 | @return $strings;
140 |
141 | }
142 |
143 | /// Gets a value from a map.
144 | /// @author Hugo Giraudel
145 | /// @param {map} $map Map.
146 | /// @param {string} $keys Key(s).
147 | /// @return {string} Value.
148 | @function val($map, $keys...) {
149 |
150 | @if nth($keys, 1) == null {
151 | $keys: remove-nth($keys, 1);
152 | }
153 |
154 | @each $key in $keys {
155 | $map: map-get($map, $key);
156 | }
157 |
158 | @return $map;
159 |
160 | }
161 |
162 | // Mixins.
163 |
164 | /// Sets the global box model.
165 | /// @param {string} $model Model (default is content).
166 | @mixin boxModel($model: 'content') {
167 |
168 | $x: $model + '-box';
169 |
170 | *, *:before, *:after {
171 | -moz-box-sizing: #{$x};
172 | -webkit-box-sizing: #{$x};
173 | box-sizing: #{$x};
174 | }
175 |
176 | }
177 |
178 | /// Wraps @content in a @media block using a given breakpoint.
179 | /// @param {string} $breakpoint Breakpoint.
180 | /// @param {map} $queries Additional queries.
181 | @mixin breakpoint($breakpoint: null, $queries: null) {
182 |
183 | $query: 'screen';
184 |
185 | // Breakpoint.
186 | @if $breakpoint and map-has-key($breakpoints, $breakpoint) {
187 | $query: $query + ' and ' + map-get($breakpoints, $breakpoint);
188 | }
189 |
190 | // Queries.
191 | @if $queries {
192 | @each $k, $v in $queries {
193 | $query: $query + ' and (' + $k + ':' + $v + ')';
194 | }
195 | }
196 |
197 | @media #{$query} {
198 | @content;
199 | }
200 |
201 | }
202 |
203 | /// Wraps @content in a @media block targeting a specific orientation.
204 | /// @param {string} $orientation Orientation.
205 | @mixin orientation($orientation) {
206 | @media screen and (orientation: #{$orientation}) {
207 | @content;
208 | }
209 | }
210 |
211 | /// Utility mixin for containers.
212 | /// @param {mixed} $width Width.
213 | @mixin containers($width) {
214 |
215 | // Locked?
216 | $lock: false;
217 |
218 | @if length($width) == 2 {
219 | $width: nth($width, 1);
220 | $lock: true;
221 | }
222 |
223 | // Modifiers.
224 | .container.\31 25\25 { width: 100%; max-width: $width * 1.25; min-width: $width; }
225 | .container.\37 5\25 { width: $width * 0.75; }
226 | .container.\35 0\25 { width: $width * 0.5; }
227 | .container.\32 5\25 { width: $width * 0.25; }
228 |
229 | // Main class.
230 | .container {
231 | @if $lock {
232 | width: $width !important;
233 | }
234 | @else {
235 | width: $width;
236 | }
237 | }
238 |
239 | }
240 |
241 | /// Utility mixin for grid.
242 | /// @param {list} $gutters Column and row gutters (default is 40px).
243 | /// @param {string} $breakpointName Optional breakpoint name.
244 | @mixin grid($gutters: 40px, $breakpointName: null) {
245 |
246 | // Gutters.
247 | @include grid-gutters($gutters);
248 | @include grid-gutters($gutters, \32 00\25, 2);
249 | @include grid-gutters($gutters, \31 50\25, 1.5);
250 | @include grid-gutters($gutters, \35 0\25, 0.5);
251 | @include grid-gutters($gutters, \32 5\25, 0.25);
252 |
253 | // Cells.
254 | $x: '';
255 |
256 | @if $breakpointName {
257 | $x: '\\28' + $breakpointName + '\\29';
258 | }
259 |
260 | .\31 2u#{$x}, .\31 2u\24#{$x} { width: 100%; clear: none; margin-left: 0; }
261 | .\31 1u#{$x}, .\31 1u\24#{$x} { width: 91.6666666667%; clear: none; margin-left: 0; }
262 | .\31 0u#{$x}, .\31 0u\24#{$x} { width: 83.3333333333%; clear: none; margin-left: 0; }
263 | .\39 u#{$x}, .\39 u\24#{$x} { width: 75%; clear: none; margin-left: 0; }
264 | .\38 u#{$x}, .\38 u\24#{$x} { width: 66.6666666667%; clear: none; margin-left: 0; }
265 | .\37 u#{$x}, .\37 u\24#{$x} { width: 58.3333333333%; clear: none; margin-left: 0; }
266 | .\36 u#{$x}, .\36 u\24#{$x} { width: 50%; clear: none; margin-left: 0; }
267 | .\35 u#{$x}, .\35 u\24#{$x} { width: 41.6666666667%; clear: none; margin-left: 0; }
268 | .\34 u#{$x}, .\34 u\24#{$x} { width: 33.3333333333%; clear: none; margin-left: 0; }
269 | .\33 u#{$x}, .\33 u\24#{$x} { width: 25%; clear: none; margin-left: 0; }
270 | .\32 u#{$x}, .\32 u\24#{$x} { width: 16.6666666667%; clear: none; margin-left: 0; }
271 | .\31 u#{$x}, .\31 u\24#{$x} { width: 8.3333333333%; clear: none; margin-left: 0; }
272 |
273 | .\31 2u\24#{$x} + *,
274 | .\31 1u\24#{$x} + *,
275 | .\31 0u\24#{$x} + *,
276 | .\39 u\24#{$x} + *,
277 | .\38 u\24#{$x} + *,
278 | .\37 u\24#{$x} + *,
279 | .\36 u\24#{$x} + *,
280 | .\35 u\24#{$x} + *,
281 | .\34 u\24#{$x} + *,
282 | .\33 u\24#{$x} + *,
283 | .\32 u\24#{$x} + *,
284 | .\31 u\24#{$x} + * {
285 | clear: left;
286 | }
287 |
288 | .\-11u#{$x} { margin-left: 91.6666666667% }
289 | .\-10u#{$x} { margin-left: 83.3333333333% }
290 | .\-9u#{$x} { margin-left: 75% }
291 | .\-8u#{$x} { margin-left: 66.6666666667% }
292 | .\-7u#{$x} { margin-left: 58.3333333333% }
293 | .\-6u#{$x} { margin-left: 50% }
294 | .\-5u#{$x} { margin-left: 41.6666666667% }
295 | .\-4u#{$x} { margin-left: 33.3333333333% }
296 | .\-3u#{$x} { margin-left: 25% }
297 | .\-2u#{$x} { margin-left: 16.6666666667% }
298 | .\-1u#{$x} { margin-left: 8.3333333333% }
299 |
300 | }
301 |
302 | /// Utility mixin for grid.
303 | /// @param {list} $gutters Gutters.
304 | /// @param {string} $class Optional class name.
305 | /// @param {integer} $multiplier Multiplier (default is 1).
306 | @mixin grid-gutters($gutters, $class: null, $multiplier: 1) {
307 |
308 | // Expand gutters if it's not a list.
309 | @if length($gutters) == 1 {
310 | $gutters: ($gutters, 0);
311 | }
312 |
313 | // Get column and row gutter values.
314 | $c: nth($gutters, 1);
315 | $r: nth($gutters, 2);
316 |
317 | // Get class (if provided).
318 | $x: '';
319 |
320 | @if $class {
321 | $x: '.' + $class;
322 | }
323 |
324 | // Default.
325 | .row#{$x} > * { padding: ($r * $multiplier) 0 0 ($c * $multiplier); }
326 | .row#{$x} { margin: ($r * $multiplier * -1) 0 -1px ($c * $multiplier * -1); }
327 |
328 | // Uniform.
329 | .row.uniform#{$x} > * { padding: ($c * $multiplier) 0 0 ($c * $multiplier); }
330 | .row.uniform#{$x} { margin: ($c * $multiplier * -1) 0 -1px ($c * $multiplier * -1); }
331 |
332 | }
333 |
334 | /// Wraps @content in vendorized keyframe blocks.
335 | /// @param {string} $name Name.
336 | @mixin keyframes($name) {
337 |
338 | @-moz-keyframes #{$name} { @content; }
339 | @-webkit-keyframes #{$name} { @content; }
340 | @-ms-keyframes #{$name} { @content; }
341 | @keyframes #{$name} { @content; }
342 |
343 | }
344 |
345 | ///
346 | /// Sets breakpoints.
347 | /// @param {map} $x Breakpoints.
348 | ///
349 | @mixin skel-breakpoints($x: ()) {
350 | $breakpoints: $x !global;
351 | }
352 |
353 | ///
354 | /// Initializes layout module.
355 | /// @param {map} config Config.
356 | ///
357 | @mixin skel-layout($config: ()) {
358 |
359 | // Config.
360 | $configPerBreakpoint: ();
361 |
362 | $z: map-get($config, 'breakpoints');
363 |
364 | @if $z {
365 | $configPerBreakpoint: $z;
366 | }
367 |
368 | // Reset.
369 | $x: map-get($config, 'reset');
370 |
371 | @if $x {
372 |
373 | /* Reset */
374 |
375 | @include reset($x);
376 |
377 | }
378 |
379 | // Box model.
380 | $x: map-get($config, 'boxModel');
381 |
382 | @if $x {
383 |
384 | /* Box Model */
385 |
386 | @include boxModel($x);
387 |
388 | }
389 |
390 | // Containers.
391 | $containers: map-get($config, 'containers');
392 |
393 | @if $containers {
394 |
395 | /* Containers */
396 |
397 | .container {
398 | margin-left: auto;
399 | margin-right: auto;
400 | }
401 |
402 | // Use default is $containers is just "true".
403 | @if $containers == true {
404 | $containers: 960px;
405 | }
406 |
407 | // Apply base.
408 | @include containers($containers);
409 |
410 | // Apply per-breakpoint.
411 | @each $name in map-keys($breakpoints) {
412 |
413 | // Get/use breakpoint setting if it exists.
414 | $x: map-get($configPerBreakpoint, $name);
415 |
416 | // Per-breakpoint config exists?
417 | @if $x {
418 | $y: map-get($x, 'containers');
419 |
420 | // Setting exists? Use it.
421 | @if $y {
422 | $containers: $y;
423 | }
424 |
425 | }
426 |
427 | // Create @media block.
428 | @media screen and #{map-get($breakpoints, $name)} {
429 | @include containers($containers);
430 | }
431 |
432 | }
433 |
434 | }
435 |
436 | // Grid.
437 | $grid: map-get($config, 'grid');
438 |
439 | @if $grid {
440 |
441 | /* Grid */
442 |
443 | // Use defaults if $grid is just "true".
444 | @if $grid == true {
445 | $grid: ();
446 | }
447 |
448 | // Sub-setting: Gutters.
449 | $grid-gutters: 40px;
450 | $x: map-get($grid, 'gutters');
451 |
452 | @if $x {
453 | $grid-gutters: $x;
454 | }
455 |
456 | // Rows.
457 | .row {
458 | border-bottom: solid 1px transparent;
459 | -moz-box-sizing: border-box;
460 | -webkit-box-sizing: border-box;
461 | box-sizing: border-box;
462 | }
463 |
464 | .row > * {
465 | float: left;
466 | -moz-box-sizing: border-box;
467 | -webkit-box-sizing: border-box;
468 | box-sizing: border-box;
469 | }
470 |
471 | .row:after, .row:before {
472 | content: '';
473 | display: block;
474 | clear: both;
475 | height: 0;
476 | }
477 |
478 | .row.uniform > * > :first-child {
479 | margin-top: 0;
480 | }
481 |
482 | .row.uniform > * > :last-child {
483 | margin-bottom: 0;
484 | }
485 |
486 | // Gutters (0%).
487 | @include grid-gutters($grid-gutters, \30 \25, 0);
488 |
489 | // Apply base.
490 | @include grid($grid-gutters);
491 |
492 | // Apply per-breakpoint.
493 | @each $name in map-keys($breakpoints) {
494 |
495 | // Get/use breakpoint setting if it exists.
496 | $x: map-get($configPerBreakpoint, $name);
497 |
498 | // Per-breakpoint config exists?
499 | @if $x {
500 | $y: map-get($x, 'grid');
501 |
502 | // Setting exists?
503 | @if $y {
504 |
505 | // Sub-setting: Gutters.
506 | $x: map-get($y, 'gutters');
507 |
508 | @if $x {
509 | $grid-gutters: $x;
510 | }
511 |
512 | }
513 |
514 | }
515 |
516 | // Create @media block.
517 | @media screen and #{map-get($breakpoints, $name)} {
518 | @include grid($grid-gutters, $name);
519 | }
520 |
521 | }
522 |
523 | }
524 |
525 | }
526 |
527 | /// Resets browser styles.
528 | /// @param {string} $mode Mode (default is 'normalize').
529 | @mixin reset($mode: 'normalize') {
530 |
531 | @if $mode == 'normalize' {
532 |
533 | // normalize.css v3.0.2 | MIT License | git.io/normalize
534 | html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}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}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}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}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}
535 |
536 | }
537 | @else if $mode == 'full' {
538 |
539 | // meyerweb.com/eric/tools/css/reset v2.0 | 20110126 | License: none (public domain)
540 | 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;}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;}body{-webkit-text-size-adjust:none}
541 |
542 | }
543 |
544 | }
545 |
546 | /// Vendorizes a declaration's property and/or value(s).
547 | /// @param {string} $property Property.
548 | /// @param {mixed} $value String/list of value(s).
549 | @mixin vendor($property, $value) {
550 |
551 | // Determine if property should expand.
552 | $expandProperty: index($vendor-properties, $property);
553 |
554 | // Determine if value should expand (and if so, add '-prefix-' placeholder).
555 | $expandValue: false;
556 |
557 | @each $x in $value {
558 | @each $y in $vendor-values {
559 | @if $y == str-slice($x, 1, str-length($y)) {
560 |
561 | $value: set-nth($value, index($value, $x), '-prefix-' + $x);
562 | $expandValue: true;
563 |
564 | }
565 | }
566 | }
567 |
568 | // Expand property?
569 | @if $expandProperty {
570 | @each $vendor in $vendor-prefixes {
571 | #{$vendor}#{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
572 | }
573 | }
574 |
575 | // Expand just the value?
576 | @elseif $expandValue {
577 | @each $vendor in $vendor-prefixes {
578 | #{$property}: #{str-replace-all($value, '-prefix-', $vendor)};
579 | }
580 | }
581 |
582 | // Neither? Treat them as a normal declaration.
583 | @else {
584 | #{$property}: #{$value};
585 | }
586 |
587 | }
--------------------------------------------------------------------------------
/src/assets/scss/libs/_vars.scss:
--------------------------------------------------------------------------------
1 | // Misc.
2 | $misc: (
3 | z-index-base: 10000
4 | );
5 |
6 | // Duration.
7 | $duration: (
8 | transition: 0.2s,
9 | bg: 2.5s,
10 | intro: 0.75s,
11 | article: 0.325s
12 | );
13 |
14 | // Size.
15 | $size: (
16 | border-radius: 4px,
17 | border-width: 1px,
18 | element-height: 2.75rem,
19 | element-margin: 2rem
20 | );
21 |
22 | // Font.
23 | $font: (
24 | family: ('Source Sans Pro', sans-serif),
25 | family-fixed: ('Courier New', monospace),
26 | weight: 300,
27 | weight-bold: 600,
28 | letter-spacing: 0.2rem,
29 | letter-spacing-heading: 0.5rem
30 | );
31 |
32 | // Palette.
33 | $palette: (
34 | bg: #1b1f22,
35 | bg-alt: #000000,
36 | bg-overlay: rgba(19,21,25,0.5),
37 | fg: #ffffff,
38 | fg-bold: #ffffff,
39 | fg-light: rgba(255,255,255,0.5),
40 | border: #ffffff,
41 | border-bg: rgba(255,255,255,0.075),
42 | border-bg-alt: rgba(255,255,255,0.175)
43 | );
--------------------------------------------------------------------------------
/src/assets/scss/main.scss:
--------------------------------------------------------------------------------
1 | @import 'libs/vars';
2 | @import 'libs/functions';
3 | @import 'libs/mixins';
4 | @import 'libs/skel';
5 | @import '../css/font-awesome.min.css';
6 | @import url('https://fonts.googleapis.com/css?family=Source+Sans+Pro:300italic,600italic,300,600');
7 |
8 | /*
9 | Dimension by HTML5 UP
10 | html5up.net | @ajlkn
11 | Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
12 | */
13 |
14 | @include skel-breakpoints((
15 | xlarge: '(max-width: 1680px)',
16 | large: '(max-width: 1280px)',
17 | medium: '(max-width: 980px)',
18 | small: '(max-width: 736px)',
19 | xsmall: '(max-width: 480px)',
20 | xxsmall: '(max-width: 360px)'
21 | ));
22 |
23 | @include skel-layout((
24 | reset: 'full',
25 | boxModel: 'border'
26 | ));
27 |
28 | // Base.
29 |
30 | @import 'base/page';
31 | @import 'base/typography';
32 |
33 | // Component.
34 |
35 | @import 'components/form';
36 | @import 'components/box';
37 | @import 'components/icon';
38 | @import 'components/image';
39 | @import 'components/list';
40 | @import 'components/table';
41 | @import 'components/button';
42 |
43 | // Layout.
44 |
45 | @import 'layout/bg';
46 | @import 'layout/wrapper';
47 | @import 'layout/header';
48 | @import 'layout/main';
49 | @import 'layout/footer';
--------------------------------------------------------------------------------
/src/assets/scss/noscript.scss:
--------------------------------------------------------------------------------
1 | @import 'libs/vars';
2 | @import 'libs/functions';
3 | @import 'libs/mixins';
4 | @import 'libs/skel';
5 |
6 | /*
7 | Dimension by HTML5 UP
8 | html5up.net | @ajlkn
9 | Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
10 | */
11 |
12 | /* Main */
13 |
14 | #main {
15 | article {
16 | opacity: 1;
17 | margin: (_size(element-margin) * 2) 0 0 0;
18 | }
19 | }
--------------------------------------------------------------------------------
/src/components/Footer.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 |
4 | const Footer = (props) => (
5 |
8 | )
9 |
10 | Footer.propTypes = {
11 | timeout: PropTypes.bool
12 | }
13 |
14 | export default Footer
15 |
--------------------------------------------------------------------------------
/src/components/Header.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types'
2 | import React from 'react'
3 |
4 | const Header = props => (
5 |
62 | )
63 |
64 | Header.propTypes = {
65 | onOpenArticle: PropTypes.func,
66 | timeout: PropTypes.bool,
67 | }
68 |
69 | export default Header
70 |
--------------------------------------------------------------------------------
/src/components/Main.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types'
2 | import React from 'react'
3 | import pic01 from '../images/pic01.jpg'
4 | import pic02 from '../images/pic02.jpg'
5 | import pic03 from '../images/pic03.jpg'
6 |
7 | class Main extends React.Component {
8 | render() {
9 | let close = (
10 |
{
13 | this.props.onCloseArticle()
14 | }}
15 | >
16 | )
17 |
18 | return (
19 |
24 |
31 | Intro
32 |
33 |
34 |
35 |
36 | Aenean ornare velit lacus, ac varius enim ullamcorper eu. Proin
37 | aliquam facilisis ante interdum congue. Integer mollis, nisl amet
38 | convallis, porttitor magna ullamcorper, amet egestas mauris. Ut
39 | magna finibus nisi nec lacinia. Nam maximus erat id euismod egestas.
40 | By the way, check out my awesome work .
41 |
42 |
43 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis
44 | dapibus rutrum facilisis. Class aptent taciti sociosqu ad litora
45 | torquent per conubia nostra, per inceptos himenaeos. Etiam tristique
46 | libero eu nibh porttitor fermentum. Nullam venenatis erat id
47 | vehicula viverra. Nunc ultrices eros ut ultricies condimentum.
48 | Mauris risus lacus, blandit sit amet venenatis non, bibendum vitae
49 | dolor. Nunc lorem mauris, fringilla in aliquam at, euismod in
50 | lectus. Pellentesque habitant morbi tristique senectus et netus et
51 | malesuada fames ac turpis egestas. In non lorem sit amet elit
52 | placerat maximus. Pellentesque aliquam maximus risus, vel sed
53 | vehicula.
54 |
55 | {close}
56 |
57 |
58 |
65 | Work
66 |
67 |
68 |
69 |
70 | Adipiscing magna sed dolor elit. Praesent eleifend dignissim arcu,
71 | at eleifend sapien imperdiet ac. Aliquam erat volutpat. Praesent
72 | urna nisi, fringila lorem et vehicula lacinia quam. Integer
73 | sollicitudin mauris nec lorem luctus ultrices.
74 |
75 |
76 | Nullam et orci eu lorem consequat tincidunt vivamus et sagittis
77 | libero. Mauris aliquet magna magna sed nunc rhoncus pharetra.
78 | Pellentesque condimentum sem. In efficitur ligula tate urna.
79 | Maecenas laoreet massa vel lacinia pellentesque lorem ipsum dolor.
80 | Nullam et orci eu lorem consequat tincidunt. Vivamus et sagittis
81 | libero. Mauris aliquet magna magna sed nunc rhoncus amet feugiat
82 | tempus.
83 |
84 | {close}
85 |
86 |
87 |
94 | About
95 |
96 |
97 |
98 |
99 | Lorem ipsum dolor sit amet, consectetur et adipiscing elit. Praesent
100 | eleifend dignissim arcu, at eleifend sapien imperdiet ac. Aliquam
101 | erat volutpat. Praesent urna nisi, fringila lorem et vehicula
102 | lacinia quam. Integer sollicitudin mauris nec lorem luctus ultrices.
103 | Aliquam libero et malesuada fames ac ante ipsum primis in faucibus.
104 | Cras viverra ligula sit amet ex mollis mattis lorem ipsum dolor sit
105 | amet.
106 |
107 | {close}
108 |
109 |
110 |
117 | Contact
118 |
140 |
168 | {close}
169 |
170 |
171 | )
172 | }
173 | }
174 |
175 | Main.propTypes = {
176 | route: PropTypes.object,
177 | article: PropTypes.string,
178 | articleTimeout: PropTypes.bool,
179 | onCloseArticle: PropTypes.func,
180 | timeout: PropTypes.bool,
181 | setWrapperRef: PropTypes.func.isRequired,
182 | }
183 |
184 | export default Main
185 |
--------------------------------------------------------------------------------
/src/components/layout.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import PropTypes from 'prop-types'
3 | import Helmet from 'react-helmet'
4 | import { StaticQuery, graphql } from 'gatsby'
5 |
6 | import '../assets/scss/main.scss'
7 |
8 | const Layout = ({ children, location }) => {
9 |
10 | let content;
11 |
12 | if (location && location.pathname === '/') {
13 | content = (
14 |
15 | {children}
16 |
17 | )
18 | } else {
19 | content = (
20 |
21 |
22 | {children}
23 |
24 |
25 | )
26 | }
27 |
28 | return (
29 | (
40 | <>
41 |
48 |
49 |
50 | {content}
51 | >
52 | )}
53 | />
54 | )
55 | }
56 |
57 | Layout.propTypes = {
58 | children: PropTypes.node.isRequired,
59 | }
60 |
61 | export default Layout
62 |
--------------------------------------------------------------------------------
/src/images/bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codebushi/gatsby-starter-dimension/3808683884848b6fc0c89b94566f9a27cf151a1a/src/images/bg.jpg
--------------------------------------------------------------------------------
/src/images/gatsby-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codebushi/gatsby-starter-dimension/3808683884848b6fc0c89b94566f9a27cf151a1a/src/images/gatsby-icon.png
--------------------------------------------------------------------------------
/src/images/overlay.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codebushi/gatsby-starter-dimension/3808683884848b6fc0c89b94566f9a27cf151a1a/src/images/overlay.png
--------------------------------------------------------------------------------
/src/images/pic01.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codebushi/gatsby-starter-dimension/3808683884848b6fc0c89b94566f9a27cf151a1a/src/images/pic01.jpg
--------------------------------------------------------------------------------
/src/images/pic02.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codebushi/gatsby-starter-dimension/3808683884848b6fc0c89b94566f9a27cf151a1a/src/images/pic02.jpg
--------------------------------------------------------------------------------
/src/images/pic03.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/codebushi/gatsby-starter-dimension/3808683884848b6fc0c89b94566f9a27cf151a1a/src/images/pic03.jpg
--------------------------------------------------------------------------------
/src/pages/404.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Layout from '../components/layout'
3 |
4 | const NotFoundPage = () => (
5 |
6 | NOT FOUND
7 | You just hit a route that doesn't exist... the sadness.
8 |
9 | )
10 |
11 | export default NotFoundPage
12 |
--------------------------------------------------------------------------------
/src/pages/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import Layout from '../components/layout'
3 |
4 | import Header from '../components/Header'
5 | import Main from '../components/Main'
6 | import Footer from '../components/Footer'
7 |
8 | class IndexPage extends React.Component {
9 | constructor(props) {
10 | super(props)
11 | this.state = {
12 | isArticleVisible: false,
13 | timeout: false,
14 | articleTimeout: false,
15 | article: '',
16 | loading: 'is-loading'
17 | }
18 | this.handleOpenArticle = this.handleOpenArticle.bind(this)
19 | this.handleCloseArticle = this.handleCloseArticle.bind(this)
20 | this.setWrapperRef = this.setWrapperRef.bind(this);
21 | this.handleClickOutside = this.handleClickOutside.bind(this);
22 | }
23 |
24 | componentDidMount () {
25 | this.timeoutId = setTimeout(() => {
26 | this.setState({loading: ''});
27 | }, 100);
28 | document.addEventListener('mousedown', this.handleClickOutside);
29 | }
30 |
31 | componentWillUnmount () {
32 | if (this.timeoutId) {
33 | clearTimeout(this.timeoutId);
34 | }
35 | document.removeEventListener('mousedown', this.handleClickOutside);
36 | }
37 |
38 | setWrapperRef(node) {
39 | this.wrapperRef = node;
40 | }
41 |
42 | handleOpenArticle(article) {
43 |
44 | this.setState({
45 | isArticleVisible: !this.state.isArticleVisible,
46 | article
47 | })
48 |
49 | setTimeout(() => {
50 | this.setState({
51 | timeout: !this.state.timeout
52 | })
53 | }, 325)
54 |
55 | setTimeout(() => {
56 | this.setState({
57 | articleTimeout: !this.state.articleTimeout
58 | })
59 | }, 350)
60 |
61 | }
62 |
63 | handleCloseArticle() {
64 |
65 | this.setState({
66 | articleTimeout: !this.state.articleTimeout
67 | })
68 |
69 | setTimeout(() => {
70 | this.setState({
71 | timeout: !this.state.timeout
72 | })
73 | }, 325)
74 |
75 | setTimeout(() => {
76 | this.setState({
77 | isArticleVisible: !this.state.isArticleVisible,
78 | article: ''
79 | })
80 | }, 350)
81 |
82 | }
83 |
84 | handleClickOutside(event) {
85 | if (this.wrapperRef && !this.wrapperRef.contains(event.target)) {
86 | if (this.state.isArticleVisible) {
87 | this.handleCloseArticle();
88 | }
89 | }
90 | }
91 |
92 | render() {
93 | return (
94 |
95 |
96 |
97 |
98 |
106 |
107 |
108 |
109 |
110 |
111 | )
112 | }
113 | }
114 |
115 | export default IndexPage
116 |
--------------------------------------------------------------------------------
/src/pages/page-2.js:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import { Link } from 'gatsby'
3 |
4 | import Layout from '../components/layout'
5 |
6 | const SecondPage = () => (
7 |
8 | Hi from the second page
9 | Welcome to page 2
10 | Go back to the homepage
11 |
12 | )
13 |
14 | export default SecondPage
15 |
--------------------------------------------------------------------------------