diff --git a/.bowerrc b/.bowerrc new file mode 100644 index 0000000..cc48978 --- /dev/null +++ b/.bowerrc @@ -0,0 +1,3 @@ +{ + "directory": "assets/vendor" +} diff --git a/.bumpedrc b/.bumpedrc new file mode 100644 index 0000000..e90942b --- /dev/null +++ b/.bumpedrc @@ -0,0 +1,6 @@ +files: [ + "package.json" +] +plugins: + prerelease: {} + postrelease: {} \ No newline at end of file diff --git a/.editorconfig b/.editorconfig new file mode 100755 index 0000000..0d8138e --- /dev/null +++ b/.editorconfig @@ -0,0 +1,22 @@ +# http://editorconfig.org + +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 80 +indent_brace_style = 1TBS +spaces_around_operators = true +quote_type = auto + +[package.json] +indent_style = space +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes new file mode 100755 index 0000000..176a458 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100755 index 0000000..308e453 --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ +############################ +# npm +############################ +node_modules +npm-debug.log + + +############################ +# tmp, editor & OS files +############################ +.tmp +*.swo +*.swp +*.swn +*.swm +.DS_STORE +*# +*~ +.idea +nbproject + + +############################ +# Tests +############################ +testApp +coverage + + +############################ +# Other +############################ +.node_history +.sass-cache/ +assets/vendor diff --git a/.jscsrc b/.jscsrc new file mode 100755 index 0000000..67ae845 --- /dev/null +++ b/.jscsrc @@ -0,0 +1,80 @@ + +{ + "disallowSpacesInNamedFunctionExpression": { + "beforeOpeningRoundBrace": true + }, + "disallowSpacesInFunctionExpression": { + "beforeOpeningRoundBrace": true + }, + "disallowSpacesInAnonymousFunctionExpression": { + "beforeOpeningRoundBrace": true + }, + "disallowSpacesInFunctionDeclaration": { + "beforeOpeningRoundBrace": true + }, + "disallowEmptyBlocks": true, + "disallowSpacesInsideArrayBrackets": true, + "disallowSpacesInsideParentheses": true, + "disallowQuotedKeysInObjects": true, + "disallowSpaceAfterObjectKeys": true, + "disallowSpaceAfterPrefixUnaryOperators": true, + "disallowSpaceBeforePostfixUnaryOperators": true, + "disallowSpaceBeforeBinaryOperators": [ + "," + ], + "disallowMixedSpacesAndTabs": true, + "disallowTrailingWhitespace": true, + "excludeFiles": ["node_modules/**"], + "maximumLineLength": 100, + "disallowTrailingComma": true, + "disallowYodaConditions": true, + "disallowKeywords": [ + "with" + ], + "disallowMultipleLineBreaks": true, + "disallowMultipleVarDecl": true, + "requireSpaceBeforeBlockStatements": true, + "requireSpacesInConditionalExpression": true, + "requireBlocksOnNewline": 1, + "requireCommaBeforeLineBreak": true, + "requireSpaceBeforeBinaryOperators": true, + "requireSpaceAfterBinaryOperators": true, + "requireCamelCaseOrUpperCaseIdentifiers": "ignoreProperties", + "requireLineFeedAtFileEnd": true, + "requireCapitalizedConstructors": true, + "requireDotNotation": true, + "requireSpacesInForStatement": true, + "requireSpaceBetweenArguments": true, + "requireCurlyBraces": [ + "do" + ], + "requireSpaceBeforeKeywords": [ + "else" + ], + "requireSpaceAfterKeywords": [ + "if", + "else", + "for", + "while", + "do", + "switch", + "case", + "return", + "try", + "catch", + "typeof" + ], + "requirePaddingNewLinesBeforeLineComments": { + "allExcept": "firstAfterCurly" + }, + "safeContextKeyword": [ + "self", + "_this" + ], + "validateLineBreaks": "LF", + "validateIndentation": 2, + "validateQuoteMarks": { + "mark": "'", + "escape": true + } +} diff --git a/.jshintrc b/.jshintrc new file mode 100755 index 0000000..7cf7831 --- /dev/null +++ b/.jshintrc @@ -0,0 +1,15 @@ +{ + "node": true, // Defines globals available when your code is running inside of the Node runtime environment + "esnext": true, // Tells JSHint that your code uses ECMAScript 6 specific syntax. + "bitwise": true, // Prohibits the use of bitwise operators such as ^ (XOR), | (OR) and others. + "curly": false, // Always put curly braces around blocks in loops and conditionals + "noarg": true, // Prohibits the use of arguments.caller and arguments.callee. + "undef": true, // Prohibits the use of explicitly undeclared variables. + "unused": "vars", // Warns when you define and never use your variables. + "strict": true, // Requires all functions to run in ECMAScript 5's strict mode. + "eqnull": true, // Suppresses warnings about == null comparisons + "eqeqeq": true, // Prohibits the use of == and != in favor of === and !==. + "browser": true, // This option defines globals exposed by modern browsers + "mootools": true, // This option defines globals exposed by the MooTools JavaScript framework. + "mocha": true // This option defines globals exposed by the "BDD" and "TDD" UIs of the Mocha unit testing framework. +} diff --git a/.npmignore b/.npmignore new file mode 100755 index 0000000..7ec7473 --- /dev/null +++ b/.npmignore @@ -0,0 +1,16 @@ +.idea +.project +*.sublime-* +.DS_Store +*.seed +*.log +*.csv +*.dat +*.out +*.pid +*.swp +*.swo +node_modules +coverage +*.tgz +*.xml diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000..4d936e8 --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +unsafe-perm=true diff --git a/.travis.yml b/.travis.yml new file mode 100755 index 0000000..1e33320 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,7 @@ +language: node_js +node_js: + - "stable" + - "0.12" + - "0.11" + - "0.10" + - "iojs" diff --git a/LICENSE.md b/LICENSE.md new file mode 100755 index 0000000..c0928ae --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,9 @@ +The MIT License (MIT) + +Copyright © 2015 Kiko Beats + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100755 index 0000000..fb95b18 --- /dev/null +++ b/README.md @@ -0,0 +1,56 @@ +# Itch + +

+
+ Itch +
+
+

+ +![Last version](https://img.shields.io/github/tag/Kikobeats/itch.svg?style=flat-square) +[![Build Status](http://img.shields.io/travis/Kikobeats/itch/master.svg?style=flat-square)](https://travis-ci.org/Kikobeats/itch) +[![Coverage Status](http://img.shields.io/coveralls/Kikobeats/itch/master.svg?style=flat-square)](https://coveralls.io/r/Kikobeats/itch?branch=master) +[![Dependency status](http://img.shields.io/david/Kikobeats/itch.svg?style=flat-square)](https://david-dm.org/Kikobeats/itch) +[![Dev Dependencies Status](http://img.shields.io/david/dev/Kikobeats/itch.svg?style=flat-square)](https://david-dm.org/Kikobeats/itch#info=devDependencies) +[![NPM Status](http://img.shields.io/npm/dm/itch.svg?style=flat-square)](https://www.npmjs.org/package/itch) +[![Donate](https://img.shields.io/badge/donate-paypal-blue.svg?style=flat-square)](https://paypal.me/Kikobeats) + +**NOTE:** more badges availables in [shields.io](http://shields.io/) + +> Ghost theme for brands + +## Install + +```bash +npm install itch --save +``` + +## Usage + +```js +var Itch = require('itch'); +``` + +## API + +### Itch(input, [options]) + +#### input + +*Required* +Type: `string` + +Lorem ipsum. + +#### options + +##### foo + +Type: `boolean` +Default: `false` + +Lorem ipsum. + +## License + +MIT © [Kiko Beats](http://kikobeats.com) diff --git a/assets/css/itch.css b/assets/css/itch.css new file mode 100644 index 0000000..3199db2 --- /dev/null +++ b/assets/css/itch.css @@ -0,0 +1,8 @@ +/** + * Itch - Ghost theme for brands + * @version 0.0.0 + * @link https://github.com/Kikobeats/Itch + * @author Kiko Beats (https://github.com/Kikobeats) + * @license MIT + */ +@charset "UTF-8";h1,h2{line-height:1.2em}.blog-header,.vertical,.wrap{position:relative}.footnotes,.token.italic{font-style:italic}.blog-content{font-size:1.6rem}@media (max-width:500px){.blog-content{font-size:1.5rem}}h1,h2,h3,h4,h5,h6{margin:3.2em 0 0}h1{font-size:4rem;text-indent:-3px;letter-spacing:-2px}h2{padding-top:0;font-size:3rem;font-weight:700;text-indent:-2px;letter-spacing:-1px;border:none}h3{font-size:2.5rem}h4{font-size:2.2rem}@media (max-width:500px){h1{font-size:2.8rem}h2{font-size:2.3rem}h3,h4{font-size:2rem}}h5{font-size:2rem}h6{font-size:1.8rem}h1 a,h2 a,h3 a,h4 a,h5 a,h6 a{text-decoration:underline;color:#242628}.ghost-love:hover,.popular-posts a:hover,.post-meta a,.post-title a{text-decoration:none}h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{text-decoration:none;color:#5BA4E5;box-shadow:none}.vertical{top:-2%;display:table-cell;vertical-align:middle}.page-wrapper{padding:50px 60px;overflow:hidden}.blog-header{display:table;width:100%;height:300px;padding:0 60px;margin:-50px -60px 50px;text-align:center;color:#fff;background:center center no-repeat #303538;background-size:cover}@media (max-width:400px){.blog-header{width:100%;height:200px;padding:0 15px;margin:-15px -15px 15px}}@media (max-width:650px){.blog-header{width:114%;height:250px;padding:0 11%;margin:-11% 0 11% -18%}}@media (max-width:850px){.blog-header{width:114%;padding:0 11%;margin:-11% 0 11% -18%}}@media (max-width:1100px){.blog-header{padding:0 40px;margin:-30px -40px 30px}}.blog-header h1{max-width:640px;margin:0 auto;font-size:2.8rem;font-weight:200;letter-spacing:0;color:#fff}@media (max-width:500px){.blog-header h1{font-size:1.8rem}}@media (max-width:650px){.blog-header h1{font-size:2.2rem}}@media (max-width:850px){.blog-header h1{font-size:2.6rem}}.archive-template .blog-header{display:none}.blog-content{float:left;width:63.26531%}.blog-sidebar{float:right;width:30.61224%}.blog-sidebar h1,.blog-sidebar h2,.blog-sidebar h3,.blog-sidebar h4,.blog-sidebar h5,.blog-sidebar h6{margin-top:0}.blog-sidebar p{margin:0 0 15px;font-size:17px;font-weight:200;line-height:1.3em}.widget{padding:25px 30px 30px;margin-bottom:50px}@media (max-width:1100px){.page-wrapper{padding:30px 40px}}@media (max-width:850px){.page-wrapper{padding:8% 11%}.blog-content{margin-right:0}.blog-sidebar{position:static;width:100%;margin-top:30px}}@media (max-width:650px){.page-wrapper{padding:6% 9%}}@media (max-width:400px){.page-wrapper{padding:15px}}.ghost-love{display:block;text-align:center;color:#fff;background:#5BA4E5}.ghost-love h3{font-size:2rem;font-weight:700;line-height:1.1em;color:#fff}.ghost-love .highlight{display:block;margin:3rem 0 .5rem;color:#fff}@media (max-width:1000px){.blog-content,.blog-sidebar{float:none;width:100%}.ghost-love .highlight{display:inline;margin:0}.ghost-love .highlight:after,.ghost-love .highlight:before{display:none}}.ghost-love .highlight:after,.ghost-love .highlight:before{display:inline-block;font-weight:200;content:"—"}.ghost-love-button,.popular-posts h3{font-weight:700;text-transform:uppercase}.ghost-love .highlight:before{margin-right:5px}.ghost-love .highlight:after{margin-left:5px}.ghost-love h4{font-size:1.5rem;line-height:1.4em;color:rgba(255,255,255,.8)}.ghost-love-button{padding:15px 10px;margin:80px -30px -30px;font-size:1.5rem;text-align:center;color:#fff;background:#e25440}@media (max-width:1000px){.ghost-love-button{margin-top:30px}}.ghost-love:hover .ghost-love-button{background:#242628}.popular-posts{padding:0}.popular-posts h3{margin-bottom:2rem;font-size:1.8rem}.popular-posts mark{padding:0 4px;font-weight:400;color:#fff;background:#ffc336}.popular-posts ol{padding:0;margin:0;list-style:none}.popular-posts li{position:relative;display:block;margin:0 0 2px;font-size:1.4rem;line-height:1.4em;background:#f0f6f8}.popular-posts li:hover{background:#e2edf2}.popular-posts li:hover .number{background:#d4e4ec}.popular-posts li:nth-child(3n) .number{border-color:#35393b}.popular-posts li:nth-child(3n+2) .number{border-color:#e25440}.popular-posts a{display:block;min-height:38px;padding:15px 15px 15px 75px;color:rgba(0,0,0,.7)}.popular-posts .number{position:absolute;top:0;bottom:0;left:0;display:block;width:37px;padding:10px;font-size:2.8rem;font-weight:700;line-height:1.5em;text-align:center;color:rgba(0,0,0,.2);border-left:#5BA4E5 3px solid;background:#e2edf2}.blog-subscribe{padding:0;text-align:center}.blog-subscribe h3{font-weight:700;text-transform:uppercase}.blog-subscribe p{margin:1rem 0 2.5rem;font-size:1.6rem;font-weight:200;color:#aaa9a2}#blogsubscribe .modal-header{padding:50px 50px 0;text-align:center;border:none}#blogsubscribe .modal-title{font-size:2.8rem;font-weight:700;line-height:1.1em}@media (max-width:450px){#blogsubscribe .modal-header{padding:35px 20px 0}#blogsubscribe .modal-title{font-size:2.2rem}}#blogsubscribe .modal-body{padding:30px 50px 50px;text-align:center}@media (max-width:450px){#blogsubscribe .modal-body{padding:10px 20px 30px}}#blogsubscribe form{margin:0}#blogsubscribe input{width:100%;height:50px;padding:0 15px;margin-bottom:1rem}#blogsubscribe button{min-height:50px;font-size:1.8rem;line-height:1}@media (max-width:450px){#blogsubscribe button{font-size:1.3rem}}#blogsubscribe p{margin:1rem 0;color:#aaa9a2}.twitter-box{position:relative;padding:0}@media (max-width:1000px){.twitter-box{display:none}}.twitter-box img{width:100%}.twitter-box-profilepic{position:absolute;top:100px;left:50%;display:block;width:100px;height:100px;margin-left:-50px;text-align:center;border-radius:100%;background:#242628}.twitter-box-profilepic img{width:40px;height:auto;margin-top:30px}.twitter-box-dev .twitter-box-profilepic{background:#256097}.twitter-box-dev .twitter-box-profilepic img{width:70px;margin-top:15px}.twitter-box-content{padding:50px 10px 10px;text-align:center;border:1px solid #eee;border-top:none}.twitter-box-content h4{font-size:2rem;font-weight:700}.twitter-box-content p{margin:.8rem 0;font-size:1.4rem;line-height:1.5em;color:#35393b}.twitter-follow-button{margin:1rem 0}.facebook-box{min-height:280px;padding:3px 0 0;text-align:center;border:1px solid #eee;border-top:#5BA4E5 3px solid}.gplus-box{padding:0}@media (max-width:1000px){.facebook-box,.gplus-box{display:none}}.blog-text{color:#7d878a;border:1px solid #edece4;background:#f5f5f0}.pagination,.pagination a,.post-meta,.post-meta a{color:#9eabb3}.blog-text ul{padding:0 0 0 1.2em;margin:0}.post{margin-bottom:40px;border-bottom:#d0e2ea 1px dashed}@media (max-width:500px){.post{margin-bottom:25px}}.post-title{margin:0}.post-excerpt p{margin:2.6rem 0}@media (max-width:500px){.post-excerpt p{margin:2rem 0}.post-meta .author-img{display:none}}.post-meta{margin:5px 0;font-size:1.4rem}.post-meta .author-img{float:left;width:24px;height:24px;margin-right:9px}.author-img{border-radius:100%}.post-meta a:hover{text-decoration:underline}.pagination a:hover,.read-next-story,.read-next-story:hover{text-decoration:none}.more-links{margin:2em 0}.read-more{min-height:0;padding:.3em .5em;font-size:10px;line-height:12px;vertical-align:top}@media (max-width:500px){.more-links{margin:1.6em 0}.more-links .right{display:none}.read-more{padding:1em}}.post-template .post{margin-bottom:0;border-bottom:none}.post-content{margin-bottom:3.2em}.post-content img{display:block;height:auto;max-width:100%;margin:2.2em auto}@media (max-width:500px){.post-content img{margin:1.6em auto}}.post-content .full-img{width:calc(100% + 60px);max-width:none;margin-left:-60px}@media (max-width:400px){.post-content .full-img{width:100%;width:calc(100% + 30px);margin-right:-15px;margin-left:-15px}}@media (max-width:650px){.post-content .full-img{width:122%;margin-right:-11%;margin-left:-11%}}@media (max-width:850px){.post-content .full-img{width:130%;margin-right:-15%;margin-left:-15%}}@media (max-width:1100px){.post-content .full-img{width:calc(100% + 40px);margin-left:-40px}}.share{margin:1.6em 0}.post-template .fb-like,.twitter-share-button{margin-right:30px}@media (max-width:750px){.share{display:none}}.fb-like{line-height:1.2rem}.pocket-btn{display:inline-block;margin-right:-10px;vertical-align:top}[class^=PIN_]{-webkit-transition:none;transition:none}.author{position:relative;padding:30px;margin:1.6em 0;border:2px dashed #e2edf2;background:#f4f8fa}.author .author-img{position:absolute;top:30px;left:30px;width:80px;height:80px;border:5px solid #fff}.author-meta{margin-left:120px}.author-meta h4{margin-top:.25rem}.author-meta p{margin:1rem 0 0;font-size:1.4rem}@media (max-width:550px){.author{padding:20px;text-align:center}.author .author-img{position:static}.author-meta{margin-left:0}.author-meta p{font-size:1.3rem}}.footnotes{font-size:1.3rem}.footnotes li{margin:.6rem 0}.footnotes p{margin:0}.comments{margin-top:3.2em}.pagination{position:relative;margin:40px auto 20px;font-size:1.3rem;text-align:center}.newer-posts,.older-posts{position:absolute;display:inline-block;padding:5px 15px;-webkit-transition:border ease .3s;transition:border ease .3s;text-decoration:none;border:2px solid #ebf2f6;border-radius:30px}.older-posts{right:0}.page-number{display:inline-block;padding:5px 0}@media (max-width:500px){.newer-posts,.older-posts{position:static;margin:10px 0}.page-number{display:block}}.newer-posts{left:0}.newer-posts:hover,.older-posts:hover{border-color:#9eabb3}@media (min-width:768px){.navbar-collapse.closed{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}}.subscribe-banner{width:100%;padding:10px 0;font-size:1.6rem;font-weight:700;text-align:center;color:#fff;background:#e25440}.subscribe-banner .button{color:#fff;background:#242628}.subscribe-banner .button:hover{background:#111}@media (max-width:800px){.subscribe-banner{display:none}}.read-next{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin:4rem 0;overflow:hidden;border-radius:5px;-webkit-align-items:stretch;align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch}.read-next-story{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;min-width:50%;overflow:hidden;text-align:center;color:#fff;background:center center no-repeat #222;background-size:cover;-webkit-box-flex:1;-webkit-flex-grow:1;flex-grow:1;-ms-flex-positive:1}.read-next-story:hover:before{-webkit-transition:all .2s ease;transition:all .2s ease;background:rgba(0,0,0,.8)}.read-next-story:hover .post:before{-webkit-transition:all .2s ease;transition:all .2s ease;color:#222;background:#fff}.read-next-story:before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;content:"";-webkit-transition:all .5s ease;transition:all .5s ease;background:rgba(0,0,0,.7)}.read-next-story .post{position:relative;width:80%;padding-top:6rem;padding-bottom:6rem;margin:0 auto}.read-next-story .post:before{padding:4px 10px 5px;font-family:"Open Sans",sans-serif;font-size:1.1rem;content:"Read This Next";-webkit-transition:all .5s ease;transition:all .5s ease;text-transform:uppercase;color:rgba(255,255,255,.8);border:rgba(255,255,255,.5) solid;border-radius:4px}.read-next-story.prev .post:before{content:"You Might Enjoy"}.read-next-story h2{margin-top:1rem;color:#fff}.read-next-story p{margin:5px 0 0;font-weight:200;line-height:1.4em;color:rgba(255,255,255,.8)}.read-next-story.no-cover{background:#fff}.read-next-story.no-cover:before{display:none}.read-next-story.no-cover .post:before{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.2)}.read-next-story.no-cover:hover .post:before{color:#5BA4E5;border-color:#5BA4E5}.read-next-story.no-cover h2{color:rgba(0,0,0,.8)}.read-next-story.no-cover p{color:rgba(0,0,0,.5)}.read-next-story.no-cover+.read-next-story.no-cover{border-left:rgba(0,0,100,.04) 1px solid}code[class*=language-],pre[class*=language-]{font-family:Consolas,Monaco,"Andale Mono",monospace;line-height:1.5;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;hyphens:none;color:#f8f8f2;text-shadow:0 1px rgba(0,0,0,.3);direction:ltr;-ms-hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#f8f8f2}.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#a6e22e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.function{color:#e6db74}.token.keyword{color:#66d9ef}.token.important,.token.regex{color:#fd971f}.token.bold,.token.important{font-weight:700}.token.entity{cursor:help} \ No newline at end of file diff --git a/assets/images/ghostdev.png b/assets/images/ghostdev.png new file mode 100644 index 0000000..702b496 Binary files /dev/null and b/assets/images/ghostdev.png differ diff --git a/assets/images/twitterbg.jpg b/assets/images/twitterbg.jpg new file mode 100644 index 0000000..9b4af8c Binary files /dev/null and b/assets/images/twitterbg.jpg differ diff --git a/assets/images/twitterpic.png b/assets/images/twitterpic.png new file mode 100644 index 0000000..a07dff6 Binary files /dev/null and b/assets/images/twitterpic.png differ diff --git a/assets/js/itch.js b/assets/js/itch.js new file mode 100644 index 0000000..e5c69ff --- /dev/null +++ b/assets/js/itch.js @@ -0,0 +1,8 @@ +/** + * Itch - Ghost theme for brands + * @version 0.0.0 + * @link https://github.com/Kikobeats/Itch + * @author Kiko Beats (https://github.com/Kikobeats) + * @license MIT + */ +self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{};var Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content),e.alias):"Array"===t.util.type(e)?e.map(t.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(!(d instanceof a)){u.lastIndex=0;var m=u.exec(d);if(m){c&&(f=m[1].length);var y=m.index-1+f,m=m[0].slice(f),v=m.length,k=y+v,b=d.slice(0,y+1),w=d.slice(k+1),N=[p,1];b&&N.push(b);var O=new a(l,g?t.tokenize(m,g):m,h);N.push(O),w&&N.push(w),Array.prototype.splice.apply(r,N)}}}}}return r},hooks:{all:{},add:function(e,n){var a=t.hooks.all;a[e]=a[e]||[],a[e].push(n)},run:function(e,n){var a=t.hooks.all[e];if(a&&a.length)for(var r,i=0;r=a[i++];)r(n)}}},n=t.Token=function(e,t,n){this.type=e,this.content=t,this.alias=n};if(n.stringify=function(e,a,r){if("string"==typeof e)return e;if("Array"===t.util.type(e))return e.map(function(t){return n.stringify(t,a,e)}).join("");var i={type:e.type,content:n.stringify(e.content,a,r),tag:"span",classes:["token",e.type],attributes:{},language:a,parent:r};if("comment"==i.type&&(i.attributes.spellcheck="true"),e.alias){var l="Array"===t.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(i.classes,l)}t.hooks.run("wrap",i);var s="";for(var o in i.attributes)s+=o+'="'+(i.attributes[o]||"")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'" '+s+">"+i.content+""},!self.document)return self.addEventListener?(self.addEventListener("message",function(e){var n=JSON.parse(e.data),a=n.language,r=n.code;self.postMessage(JSON.stringify(t.util.encode(t.tokenize(r,t.languages[a])))),self.close()},!1),self.Prism):self.Prism;var a=document.getElementsByTagName("script");return a=a[a.length-1],a&&(t.filename=a.src,document.addEventListener&&!a.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)),self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),Prism.languages.markup={comment://,prolog:/<\?.+?\?>/,doctype://,cdata://i,tag:{pattern:/<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+))?\s*)*\/?>/i,inside:{tag:{pattern:/^<\/?[\w:-]+/i,inside:{punctuation:/^<\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/=|>|"/}},punctuation:/\/?>/,"attr-name":{pattern:/[\w:-]+/,inside:{namespace:/^[\w-]+?:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.hooks.add("wrap",function(t){"entity"===t.type&&(t.attributes.title=t.content.replace(/&/,"&"))}),Prism.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{punctuation:/[;:]/}},url:/url\((?:(["'])(\\\n|\\?.)*?\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*(?=\s*\{)/,string:/("|')(\\\n|\\?.)*?\1/,property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,punctuation:/[\{\};:]/,"function":/[-a-z0-9]+(?=\()/i},Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/[\w\W]*?<\/style>/i,inside:{tag:{pattern:/|<\/style>/i,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.css},alias:"language-css"}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').*?\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag)),Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.+/,lookbehind:!0}],string:/("|')(\\\n|\\?.)*?\1/,"class-name":{pattern:/((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(true|false)\b/,"function":{pattern:/[a-z0-9_]+\(/i,inside:{punctuation:/\(/}},number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/,operator:/[-+]{1,2}|!|<=?|>=?|={1,3}|&{1,2}|\|?\||\?|\*|\/|~|\^|%/,ignore:/&(lt|gt|amp);/i,punctuation:/[{}[\];(),.:]/},Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|get|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|-?Infinity)\b/,"function":/(?!\d)[a-z0-9_$]+(?=\()/i}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0}}),Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/[\w\W]*?<\/script>/i,inside:{tag:{pattern:/|<\/script>/i,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript},alias:"language-javascript"}}),Prism.languages.markdown=Prism.languages.extend("markup",{}),Prism.languages.insertBefore("markdown","prolog",{blockquote:{pattern:/(^|\n)>(?:[\t ]*>)*/,lookbehind:!0,alias:"punctuation"},code:[{pattern:/(^|\n)(?: {4}|\t).+/,lookbehind:!0,alias:"keyword"},{pattern:/``.+?``|`[^`\n]+`/,alias:"keyword"}],title:[{pattern:/\w+.*\n(?:==+|--+)/,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/((?:^|\n)\s*)#+.+/,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/((?:^|\n)\s*)([*-])([\t ]*\2){2,}(?=\s*(?:\n|$))/,lookbehind:!0,alias:"punctuation"},list:{pattern:/((?:^|\n)\s*)(?:[*+-]|\d+\.)(?=[\t ].)/,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:[^>]|\\>)+>)(?:[\t ]+(?:"(?:[^"]|\\")*"|'(?:[^']|\\')*'|\((?:[^)]|\\\))*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:[^"]|\\")*"|'(?:[^']|\\')*'|\((?:[^)]|\\\))*\))$/,punctuation:/[[\]\(\)<>:]/},alias:"url"},bold:{pattern:/(^|[^\\])(\*\*|__)(?:\n(?!\n)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^\*\*|^__|\*\*\s*$|__\s*$/}},italic:{pattern:/(^|[^\\])(?:\*(?:\n(?!\n)|.)+?\*|_(?:\n(?!\n)|.)+?_)/,lookbehind:!0,inside:{punctuation:/^[*_]|[*_]$/}},url:{pattern:/!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:[^"]|\\")*")?\)| ?\[[^\]\n]*\])/,inside:{variable:{pattern:/(!?\[)[^\]]+(?=\]$)/,lookbehind:!0},string:{pattern:/"(?:[^"]|\\")*"(?=\)$)/}}}}),Prism.languages.markdown.bold.inside.url=Prism.util.clone(Prism.languages.markdown.url),Prism.languages.markdown.italic.inside.url=Prism.util.clone(Prism.languages.markdown.url),Prism.languages.markdown.bold.inside.italic=Prism.util.clone(Prism.languages.markdown.italic),Prism.languages.markdown.italic.inside.bold=Prism.util.clone(Prism.languages.markdown.bold),function($){"use strict";$(document).ready(function(){$(".post-content").fitVids()}),$(window).load(function(){function casperFullImg(){$("img").each(function(){var contentWidth=$(".post-content").outerWidth(),imageWidth=$(this)[0].naturalWidth;imageWidth>=contentWidth?$(this).addClass("full-img"):$(this).removeClass("full-img")})}casperFullImg(),$(window).smartresize(casperFullImg)})}(jQuery),function($,sr){var debounce=function(func,threshold,execAsap){var timeout;return function(){function delayed(){execAsap||func.apply(obj,args),timeout=null}var obj=this,args=arguments;timeout?clearTimeout(timeout):execAsap&&func.apply(obj,args),timeout=setTimeout(delayed,threshold||100)}};jQuery.fn[sr]=function(fn){return fn?this.bind("resize",debounce(fn)):this.trigger(sr)}}(jQuery,"smartresize"),function($){"use strict";$.fn.fitVids=function(options){var settings={customSelector:null};if(!document.getElementById("fit-vids-style")){var head=document.head||document.getElementsByTagName("head")[0],css=".fluid-width-video-wrapper{width:100%;position:relative;padding:0;}.fluid-width-video-wrapper iframe,.fluid-width-video-wrapper object,.fluid-width-video-wrapper embed {position:absolute;top:0;left:0;width:100%;height:100%;}",div=document.createElement("div");div.innerHTML='

x

",head.appendChild(div.childNodes[1])}return options&&$.extend(settings,options),this.each(function(){var selectors=["iframe[src*='player.vimeo.com']","iframe[src*='youtube.com']","iframe[src*='youtube-nocookie.com']","iframe[src*='kickstarter.com'][src*='video.html']","object","embed"];settings.customSelector&&selectors.push(settings.customSelector);var $allVideos=$(this).find(selectors.join(","));$allVideos=$allVideos.not("object object"),$allVideos.each(function(){var $this=$(this);if(!("embed"===this.tagName.toLowerCase()&&$this.parent("object").length||$this.parent(".fluid-width-video-wrapper").length)){var height="object"===this.tagName.toLowerCase()||$this.attr("height")&&!isNaN(parseInt($this.attr("height"),10))?parseInt($this.attr("height"),10):$this.height(),width=isNaN(parseInt($this.attr("width"),10))?$this.width():parseInt($this.attr("width"),10),aspectRatio=height/width;if(!$this.attr("id")){var videoID="fitvid"+Math.floor(999999*Math.random());$this.attr("id",videoID)}$this.wrap('
').parent(".fluid-width-video-wrapper").css("padding-top",100*aspectRatio+"%"),$this.removeAttr("height").removeAttr("width")}})})}}(window.jQuery||window.Zepto); \ No newline at end of file diff --git a/assets/js/src/main.js b/assets/js/src/main.js new file mode 100644 index 0000000..990a92a --- /dev/null +++ b/assets/js/src/main.js @@ -0,0 +1,58 @@ +/*globals jQuery, document */ +(function ($) { + "use strict"; + + $(document).ready(function(){ + $(".post-content").fitVids(); + }); + + // When all content is loaded, resize dem images + $(window).load(function() { + + function casperFullImg() { + $("img").each( function() { + var contentWidth = $(".post-content").outerWidth(); // Width of the content + var imageWidth = $(this)[0].naturalWidth; // Original image resolution + + if (imageWidth >= contentWidth) { + $(this).addClass('full-img'); + } else { + $(this).removeClass('full-img'); + } + }); + }; + + casperFullImg(); + $(window).smartresize(casperFullImg); + }); + + +}(jQuery)); + +(function($,sr){ + + // debouncing function from John Hann + // http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/ + var debounce = function (func, threshold, execAsap) { + var timeout; + + return function debounced () { + var obj = this, args = arguments; + function delayed () { + if (!execAsap) + func.apply(obj, args); + timeout = null; + }; + + if (timeout) + clearTimeout(timeout); + else if (execAsap) + func.apply(obj, args); + + timeout = setTimeout(delayed, threshold || 100); + }; + } + // smartresize + jQuery.fn[sr] = function(fn){ return fn ? this.bind('resize', debounce(fn)) : this.trigger(sr); }; + +})(jQuery,'smartresize'); \ No newline at end of file diff --git a/assets/js/src/prism.js b/assets/js/src/prism.js new file mode 100644 index 0000000..9ea8551 --- /dev/null +++ b/assets/js/src/prism.js @@ -0,0 +1,7 @@ +/* http://prismjs.com/download.html?themes=prism-okaidia&languages=markup+css+clike+javascript+markdown */ +self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{};var Prism=function(){var e=/\blang(?:uage)?-(?!\*)(\w+)\b/i,t=self.Prism={util:{encode:function(e){return e instanceof n?new n(e.type,t.util.encode(e.content),e.alias):"Array"===t.util.type(e)?e.map(t.util.encode):e.replace(/&/g,"&").replace(/e.length)break e;if(!(d instanceof a)){u.lastIndex=0;var m=u.exec(d);if(m){c&&(f=m[1].length);var y=m.index-1+f,m=m[0].slice(f),v=m.length,k=y+v,b=d.slice(0,y+1),w=d.slice(k+1),N=[p,1];b&&N.push(b);var O=new a(l,g?t.tokenize(m,g):m,h);N.push(O),w&&N.push(w),Array.prototype.splice.apply(r,N)}}}}}return r},hooks:{all:{},add:function(e,n){var a=t.hooks.all;a[e]=a[e]||[],a[e].push(n)},run:function(e,n){var a=t.hooks.all[e];if(a&&a.length)for(var r,i=0;r=a[i++];)r(n)}}},n=t.Token=function(e,t,n){this.type=e,this.content=t,this.alias=n};if(n.stringify=function(e,a,r){if("string"==typeof e)return e;if("Array"===t.util.type(e))return e.map(function(t){return n.stringify(t,a,e)}).join("");var i={type:e.type,content:n.stringify(e.content,a,r),tag:"span",classes:["token",e.type],attributes:{},language:a,parent:r};if("comment"==i.type&&(i.attributes.spellcheck="true"),e.alias){var l="Array"===t.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(i.classes,l)}t.hooks.run("wrap",i);var s="";for(var o in i.attributes)s+=o+'="'+(i.attributes[o]||"")+'"';return"<"+i.tag+' class="'+i.classes.join(" ")+'" '+s+">"+i.content+""},!self.document)return self.addEventListener?(self.addEventListener("message",function(e){var n=JSON.parse(e.data),a=n.language,r=n.code;self.postMessage(JSON.stringify(t.util.encode(t.tokenize(r,t.languages[a])))),self.close()},!1),self.Prism):self.Prism;var a=document.getElementsByTagName("script");return a=a[a.length-1],a&&(t.filename=a.src,document.addEventListener&&!a.hasAttribute("data-manual")&&document.addEventListener("DOMContentLoaded",t.highlightAll)),self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism);; +Prism.languages.markup={comment://,prolog:/<\?.+?\?>/,doctype://,cdata://i,tag:{pattern:/<\/?[\w:-]+\s*(?:\s+[\w:-]+(?:=(?:("|')(\\?[\w\W])*?\1|[^\s'">=]+))?\s*)*\/?>/i,inside:{tag:{pattern:/^<\/?[\w:-]+/i,inside:{punctuation:/^<\/?/,namespace:/^[\w-]+?:/}},"attr-value":{pattern:/=(?:('|")[\w\W]*?(\1)|[^\s>]+)/i,inside:{punctuation:/=|>|"/}},punctuation:/\/?>/,"attr-name":{pattern:/[\w:-]+/,inside:{namespace:/^[\w-]+?:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.hooks.add("wrap",function(t){"entity"===t.type&&(t.attributes.title=t.content.replace(/&/,"&"))});; +Prism.languages.css={comment:/\/\*[\w\W]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(;|(?=\s*\{))/i,inside:{punctuation:/[;:]/}},url:/url\((?:(["'])(\\\n|\\?.)*?\1|.*?)\)/i,selector:/[^\{\}\s][^\{\};]*(?=\s*\{)/,string:/("|')(\\\n|\\?.)*?\1/,property:/(\b|\B)[\w-]+(?=\s*:)/i,important:/\B!important\b/i,punctuation:/[\{\};:]/,"function":/[-a-z0-9]+(?=\()/i},Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/[\w\W]*?<\/style>/i,inside:{tag:{pattern:/|<\/style>/i,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.css},alias:"language-css"}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|').*?\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag));; +Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\w\W]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.+/,lookbehind:!0}],string:/("|')(\\\n|\\?.)*?\1/,"class-name":{pattern:/((?:(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[a-z0-9_\.\\]+/i,lookbehind:!0,inside:{punctuation:/(\.|\\)/}},keyword:/\b(if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,"boolean":/\b(true|false)\b/,"function":{pattern:/[a-z0-9_]+\(/i,inside:{punctuation:/\(/}},number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee]-?\d+)?)\b/,operator:/[-+]{1,2}|!|<=?|>=?|={1,3}|&{1,2}|\|?\||\?|\*|\/|~|\^|%/,ignore:/&(lt|gt|amp);/i,punctuation:/[{}[\];(),.:]/};; +Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|get|if|implements|import|in|instanceof|interface|let|new|null|package|private|protected|public|return|set|static|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/,number:/\b-?(0x[\dA-Fa-f]+|\d*\.?\d+([Ee][+-]?\d+)?|NaN|-?Infinity)\b/,"function":/(?!\d)[a-z0-9_$]+(?=\()/i}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/(^|[^/])\/(?!\/)(\[.+?]|\\.|[^/\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0}}),Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/[\w\W]*?<\/script>/i,inside:{tag:{pattern:/|<\/script>/i,inside:Prism.languages.markup.tag.inside},rest:Prism.languages.javascript},alias:"language-javascript"}});; +Prism.languages.markdown=Prism.languages.extend("markup",{}),Prism.languages.insertBefore("markdown","prolog",{blockquote:{pattern:/(^|\n)>(?:[\t ]*>)*/,lookbehind:!0,alias:"punctuation"},code:[{pattern:/(^|\n)(?: {4}|\t).+/,lookbehind:!0,alias:"keyword"},{pattern:/``.+?``|`[^`\n]+`/,alias:"keyword"}],title:[{pattern:/\w+.*\n(?:==+|--+)/,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/((?:^|\n)\s*)#+.+/,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/((?:^|\n)\s*)([*-])([\t ]*\2){2,}(?=\s*(?:\n|$))/,lookbehind:!0,alias:"punctuation"},list:{pattern:/((?:^|\n)\s*)(?:[*+-]|\d+\.)(?=[\t ].)/,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:[^>]|\\>)+>)(?:[\t ]+(?:"(?:[^"]|\\")*"|'(?:[^']|\\')*'|\((?:[^)]|\\\))*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:[^"]|\\")*"|'(?:[^']|\\')*'|\((?:[^)]|\\\))*\))$/,punctuation:/[[\]\(\)<>:]/},alias:"url"},bold:{pattern:/(^|[^\\])(\*\*|__)(?:\n(?!\n)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^\*\*|^__|\*\*\s*$|__\s*$/}},italic:{pattern:/(^|[^\\])(?:\*(?:\n(?!\n)|.)+?\*|_(?:\n(?!\n)|.)+?_)/,lookbehind:!0,inside:{punctuation:/^[*_]|[*_]$/}},url:{pattern:/!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:[^"]|\\")*")?\)| ?\[[^\]\n]*\])/,inside:{variable:{pattern:/(!?\[)[^\]]+(?=\]$)/,lookbehind:!0},string:{pattern:/"(?:[^"]|\\")*"(?=\)$)/}}}}),Prism.languages.markdown.bold.inside.url=Prism.util.clone(Prism.languages.markdown.url),Prism.languages.markdown.italic.inside.url=Prism.util.clone(Prism.languages.markdown.url),Prism.languages.markdown.bold.inside.italic=Prism.util.clone(Prism.languages.markdown.italic),Prism.languages.markdown.italic.inside.bold=Prism.util.clone(Prism.languages.markdown.bold);; diff --git a/assets/scss/assets/vendor/bourbon/.bower.json b/assets/scss/assets/vendor/bourbon/.bower.json new file mode 100644 index 0000000..e89ee9b --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/.bower.json @@ -0,0 +1,46 @@ +{ + "name": "bourbon", + "description": "A simple and lightweight mixin library for Sass.", + "version": "4.2.4", + "main": "app/assets/stylesheets/_bourbon.scss", + "license": "MIT", + "ignore": [ + "**/.*", + "CONTRIBUTING.md", + "Gemfile", + "Gemfile.lock", + "Rakefile", + "_site", + "bin", + "bourbon.gemspec", + "features", + "lib", + "package.json", + "sache.json", + "spec" + ], + "keywords": [ + "css", + "mixins", + "sass", + "scss" + ], + "authors": [ + "thoughtbot (http://thoughtbot.com)" + ], + "homepage": "http://bourbon.io", + "repository": { + "type": "git", + "url": "https://github.com/thoughtbot/bourbon.git" + }, + "_release": "4.2.4", + "_resolution": { + "type": "version", + "tag": "v4.2.4", + "commit": "cd10da19ef750a10c1a8efe79f52ec3e357fd038" + }, + "_source": "git://github.com/thoughtbot/bourbon.git", + "_target": "~4.2.4", + "_originalSource": "bourbon", + "_direct": true +} \ No newline at end of file diff --git a/assets/scss/assets/vendor/bourbon/LICENSE.md b/assets/scss/assets/vendor/bourbon/LICENSE.md new file mode 100644 index 0000000..3dbc75d --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright © 2011–2015 [thoughtbot, inc.](http://thoughtbot.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the “Software”), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/assets/scss/assets/vendor/bourbon/README.md b/assets/scss/assets/vendor/bourbon/README.md new file mode 100644 index 0000000..0fedcec --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/README.md @@ -0,0 +1,140 @@ +[![Bourbon](http://images.thoughtbot.com/bourbon/bourbon-logo.svg)](http://bourbon.io) + +[![Gem Version](http://img.shields.io/gem/v/bourbon.svg?style=flat)](https://rubygems.org/gems/bourbon) +[![Code Climate](http://img.shields.io/codeclimate/github/thoughtbot/bourbon.svg?style=flat)](https://codeclimate.com/github/thoughtbot/bourbon) +[![Gitter chat](https://img.shields.io/badge/gitter-thoughtbot/bourbon-ae3dd2.svg?style=flat)](https://gitter.im/thoughtbot/bourbon) +[![Stack Overflow](http://img.shields.io/badge/stack%20overflow-bourbon-ae3dd2.svg?style=flat)](http://stackoverflow.com/questions/tagged/bourbon) + +## A simple and lightweight mixin library for Sass. + +Bourbon is a library of pure Sass mixins that are designed to be simple and easy to use. No configuration required. The mixins aim to be as vanilla as possible, meaning they should be as close to the original CSS syntax as possible. + +The mixins contain vendor specific prefixes for all CSS3 properties for support amongst modern browsers. The prefixes also ensure graceful degradation for older browsers that support only CSS3 prefixed properties. Bourbon uses SCSS syntax. + +- **[Documentation](http://bourbon.io/docs)** +- **[Changelog](https://github.com/thoughtbot/bourbon/releases)** +- **[Issues & Bugs](https://github.com/thoughtbot/bourbon/issues)** + +Follow the [@bourbonsass](https://twitter.com/bourbonsass) Twitter account +for updates. + +## Requirements + +- [Sass](https://github.com/sass/sass) 3.4+ or [LibSass](https://github.com/sass/libsass) 3.1+ + +## Installation + +For command line help, visit our wiki page on Bourbon’s [command line interface](https://github.com/thoughtbot/bourbon/wiki/Command-Line-Interface). + +1. Install the Bourbon gem using the [RubyGems](https://rubygems.org) package manager: + + ```bash + gem install bourbon + ``` + + Alternatively, you can install Bourbon with [Bower](http://bower.io). + +2. Install the Bourbon library into the current directory: + + ```bash + bourbon install + ``` + + **Pro Tip:** You can target installation into a specific directory using the `path` flag: + + ```bash + bourbon install --path my/custom/path/ + ``` + +3. Import Bourbon at the beginning of your stylesheet: + + ```scss + @import "bourbon/bourbon"; + ``` + + It’s not recommended to add or modify the Bourbon files so that you can update them easily. + +## Installation for Ruby on Rails 3.1+ + +1. Add Bourbon to your Gemfile: + + ```ruby + gem 'bourbon' + ``` + +2. Then run: + + ```bash + bundle install + ``` + +3. Restart your server and rename `application.css` to `application.scss`: + + ```bash + mv app/assets/stylesheets/application.css app/assets/stylesheets/application.scss + ``` + +4. Delete _all_ Sprockets directives in `application.scss` (`require`, `require_tree` and `require_self`) and use Sass’s native `@import` instead. ([why?](http://pivotallabs.com/structure-your-sass-files-with-import)) + +5. Import Bourbon at the beginning of `application.scss`. All additional stylesheets should be imported below Bourbon: + + ```scss + @import "bourbon"; + @import "home"; + @import "users"; + ``` + + [Help! I’m getting an undefined mixin error.](https://github.com/thoughtbot/bourbon/wiki/Rails-Help-%5C-Undefined-mixin) + +## Installing older versions of Bourbon + +1. Uninstall any Bourbon gem versions you already have: + + ```bash + gem uninstall bourbon + ``` + +2. Reinstall the Bourbon gem, using the `-v` flag to specify the version you need: + + ```bash + gem install bourbon -v 3.2.4 + ``` + +3. Follow the [instructions above](#installation) to install Bourbon into your project. + +## Browser support + +- Chrome 26+ +- Firefox 29+ +- Internet Explorer 9+ +- Opera 15+ +- Safari 6.1+ + +## The Bourbon family + +- [Bourbon](https://github.com/thoughtbot/bourbon): A simple and lightweight mixin library for Sass +- [Neat](https://github.com/thoughtbot/neat): A lightweight semantic grid framework for Sass and Bourbon +- [Bitters](https://github.com/thoughtbot/bitters): Scaffold styles, variables and structure for Bourbon projects +- [Refills](https://github.com/thoughtbot/refills): Prepackaged patterns and components built with Bourbon, Neat and Bitters + +Also check out [Proteus](https://github.com/thoughtbot/proteus), a collection of useful starter kits to help you prototype faster. Each kit comes with Bourbon, Neat and Bitters out-of-the-box. + +## License + +Copyright © 2011–2015 [thoughtbot, inc](http://thoughtbot.com). +Bourbon is free software, +and may be redistributed under the terms specified in the [license](LICENSE.md). + +## About thoughtbot + +[thoughtbot logo][hire] + +Bourbon is maintained and funded by thoughtbot, inc. +The names and logos for thoughtbot are trademarks of thoughtbot, inc. + +We love open source software! +See [our other projects][community] or +[hire us][hire] to design, develop, and grow your product. + +[community]: https://thoughtbot.com/community?utm_source=github +[hire]: https://thoughtbot.com/hire-us?utm_source=github diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/_bourbon-deprecated-upcoming.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/_bourbon-deprecated-upcoming.scss new file mode 100644 index 0000000..e6d1b8c --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/_bourbon-deprecated-upcoming.scss @@ -0,0 +1,411 @@ +// The following features have been deprecated and will be removed in the next MAJOR version release + +@mixin inline-block { + display: inline-block; + + @warn "The inline-block mixin is deprecated and will be removed in the next major version release"; +} + +@mixin button ($style: simple, $base-color: #4294f0, $text-size: inherit, $padding: 7px 18px) { + + @if type-of($style) == string and type-of($base-color) == color { + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == string and type-of($base-color) == number { + $padding: $text-size; + $text-size: $base-color; + $base-color: #4294f0; + + @if $padding == inherit { + $padding: 7px 18px; + } + + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == color and type-of($base-color) == color { + $base-color: $style; + $style: simple; + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == color and type-of($base-color) == number { + $padding: $text-size; + $text-size: $base-color; + $base-color: $style; + $style: simple; + + @if $padding == inherit { + $padding: 7px 18px; + } + + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + @if type-of($style) == number { + $padding: $base-color; + $text-size: $style; + $base-color: #4294f0; + $style: simple; + + @if $padding == #4294f0 { + $padding: 7px 18px; + } + + @include buttonstyle($style, $base-color, $text-size, $padding); + } + + &:disabled { + cursor: not-allowed; + opacity: 0.5; + } + + @warn "The button mixin is deprecated and will be removed in the next major version release"; +} + +// Selector Style Button +@mixin buttonstyle($type, $b-color, $t-size, $pad) { + // Grayscale button + @if $type == simple and $b-color == grayscale($b-color) { + @include simple($b-color, true, $t-size, $pad); + } + + @if $type == shiny and $b-color == grayscale($b-color) { + @include shiny($b-color, true, $t-size, $pad); + } + + @if $type == pill and $b-color == grayscale($b-color) { + @include pill($b-color, true, $t-size, $pad); + } + + @if $type == flat and $b-color == grayscale($b-color) { + @include flat($b-color, true, $t-size, $pad); + } + + // Colored button + @if $type == simple { + @include simple($b-color, false, $t-size, $pad); + } + + @else if $type == shiny { + @include shiny($b-color, false, $t-size, $pad); + } + + @else if $type == pill { + @include pill($b-color, false, $t-size, $pad); + } + + @else if $type == flat { + @include flat($b-color, false, $t-size, $pad); + } +} + +// Simple Button +@mixin simple($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + $border: adjust-color($base-color, $saturation: 9%, $lightness: -14%); + $inset-shadow: adjust-color($base-color, $saturation: -8%, $lightness: 15%); + $stop-gradient: adjust-color($base-color, $saturation: 9%, $lightness: -11%); + $text-shadow: adjust-color($base-color, $saturation: 15%, $lightness: -18%); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); + } + + @if $grayscale == true { + $border: grayscale($border); + $inset-shadow: grayscale($inset-shadow); + $stop-gradient: grayscale($stop-gradient); + $text-shadow: grayscale($text-shadow); + } + + border: 1px solid $border; + border-radius: 3px; + box-shadow: inset 0 1px 0 0 $inset-shadow; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: bold; + @include linear-gradient ($base-color, $stop-gradient); + padding: $padding; + text-decoration: none; + text-shadow: 0 1px 0 $text-shadow; + background-clip: padding-box; + + &:hover:not(:disabled) { + $base-color-hover: adjust-color($base-color, $saturation: -4%, $lightness: -5%); + $inset-shadow-hover: adjust-color($base-color, $saturation: -7%, $lightness: 5%); + $stop-gradient-hover: adjust-color($base-color, $saturation: 8%, $lightness: -14%); + + @if $grayscale == true { + $base-color-hover: grayscale($base-color-hover); + $inset-shadow-hover: grayscale($inset-shadow-hover); + $stop-gradient-hover: grayscale($stop-gradient-hover); + } + + @include linear-gradient ($base-color-hover, $stop-gradient-hover); + + box-shadow: inset 0 1px 0 0 $inset-shadow-hover; + cursor: pointer; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $border-active: adjust-color($base-color, $saturation: 9%, $lightness: -14%); + $inset-shadow-active: adjust-color($base-color, $saturation: 7%, $lightness: -17%); + + @if $grayscale == true { + $border-active: grayscale($border-active); + $inset-shadow-active: grayscale($inset-shadow-active); + } + + border: 1px solid $border-active; + box-shadow: inset 0 0 8px 4px $inset-shadow-active, inset 0 0 8px 4px $inset-shadow-active; + } +} + +// Shiny Button +@mixin shiny($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + $border: adjust-color($base-color, $red: -117, $green: -111, $blue: -81); + $border-bottom: adjust-color($base-color, $red: -126, $green: -127, $blue: -122); + $fourth-stop: adjust-color($base-color, $red: -79, $green: -70, $blue: -46); + $inset-shadow: adjust-color($base-color, $red: 37, $green: 29, $blue: 12); + $second-stop: adjust-color($base-color, $red: -56, $green: -50, $blue: -33); + $text-shadow: adjust-color($base-color, $red: -140, $green: -141, $blue: -114); + $third-stop: adjust-color($base-color, $red: -86, $green: -75, $blue: -48); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); + } + + @if $grayscale == true { + $border: grayscale($border); + $border-bottom: grayscale($border-bottom); + $fourth-stop: grayscale($fourth-stop); + $inset-shadow: grayscale($inset-shadow); + $second-stop: grayscale($second-stop); + $text-shadow: grayscale($text-shadow); + $third-stop: grayscale($third-stop); + } + + @include linear-gradient(top, $base-color 0%, $second-stop 50%, $third-stop 50%, $fourth-stop 100%); + + border: 1px solid $border; + border-bottom: 1px solid $border-bottom; + border-radius: 5px; + box-shadow: inset 0 1px 0 0 $inset-shadow; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: bold; + padding: $padding; + text-align: center; + text-decoration: none; + text-shadow: 0 -1px 1px $text-shadow; + + &:hover:not(:disabled) { + $first-stop-hover: adjust-color($base-color, $red: -13, $green: -15, $blue: -18); + $second-stop-hover: adjust-color($base-color, $red: -66, $green: -62, $blue: -51); + $third-stop-hover: adjust-color($base-color, $red: -93, $green: -85, $blue: -66); + $fourth-stop-hover: adjust-color($base-color, $red: -86, $green: -80, $blue: -63); + + @if $grayscale == true { + $first-stop-hover: grayscale($first-stop-hover); + $second-stop-hover: grayscale($second-stop-hover); + $third-stop-hover: grayscale($third-stop-hover); + $fourth-stop-hover: grayscale($fourth-stop-hover); + } + + @include linear-gradient(top, $first-stop-hover 0%, + $second-stop-hover 50%, + $third-stop-hover 50%, + $fourth-stop-hover 100%); + cursor: pointer; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $inset-shadow-active: adjust-color($base-color, $red: -111, $green: -116, $blue: -122); + + @if $grayscale == true { + $inset-shadow-active: grayscale($inset-shadow-active); + } + + box-shadow: inset 0 0 20px 0 $inset-shadow-active; + } +} + +// Pill Button +@mixin pill($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + $border-bottom: adjust-color($base-color, $hue: 8, $saturation: -11%, $lightness: -26%); + $border-sides: adjust-color($base-color, $hue: 4, $saturation: -21%, $lightness: -21%); + $border-top: adjust-color($base-color, $hue: -1, $saturation: -30%, $lightness: -15%); + $inset-shadow: adjust-color($base-color, $hue: -1, $saturation: -1%, $lightness: 7%); + $stop-gradient: adjust-color($base-color, $hue: 8, $saturation: 14%, $lightness: -10%); + $text-shadow: adjust-color($base-color, $hue: 5, $saturation: -19%, $lightness: -15%); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + $text-shadow: adjust-color($base-color, $saturation: 10%, $lightness: 4%); + } + + @if $grayscale == true { + $border-bottom: grayscale($border-bottom); + $border-sides: grayscale($border-sides); + $border-top: grayscale($border-top); + $inset-shadow: grayscale($inset-shadow); + $stop-gradient: grayscale($stop-gradient); + $text-shadow: grayscale($text-shadow); + } + + border: 1px solid $border-top; + border-color: $border-top $border-sides $border-bottom; + border-radius: 16px; + box-shadow: inset 0 1px 0 0 $inset-shadow; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: normal; + line-height: 1; + @include linear-gradient ($base-color, $stop-gradient); + padding: $padding; + text-align: center; + text-decoration: none; + text-shadow: 0 -1px 1px $text-shadow; + background-clip: padding-box; + + &:hover:not(:disabled) { + $base-color-hover: adjust-color($base-color, $lightness: -4.5%); + $border-bottom: adjust-color($base-color, $hue: 8, $saturation: 13.5%, $lightness: -32%); + $border-sides: adjust-color($base-color, $hue: 4, $saturation: -2%, $lightness: -27%); + $border-top: adjust-color($base-color, $hue: -1, $saturation: -17%, $lightness: -21%); + $inset-shadow-hover: adjust-color($base-color, $saturation: -1%, $lightness: 3%); + $stop-gradient-hover: adjust-color($base-color, $hue: 8, $saturation: -4%, $lightness: -15.5%); + $text-shadow-hover: adjust-color($base-color, $hue: 5, $saturation: -5%, $lightness: -22%); + + @if $grayscale == true { + $base-color-hover: grayscale($base-color-hover); + $border-bottom: grayscale($border-bottom); + $border-sides: grayscale($border-sides); + $border-top: grayscale($border-top); + $inset-shadow-hover: grayscale($inset-shadow-hover); + $stop-gradient-hover: grayscale($stop-gradient-hover); + $text-shadow-hover: grayscale($text-shadow-hover); + } + + @include linear-gradient ($base-color-hover, $stop-gradient-hover); + + background-clip: padding-box; + border: 1px solid $border-top; + border-color: $border-top $border-sides $border-bottom; + box-shadow: inset 0 1px 0 0 $inset-shadow-hover; + cursor: pointer; + text-shadow: 0 -1px 1px $text-shadow-hover; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $active-color: adjust-color($base-color, $hue: 4, $saturation: -12%, $lightness: -10%); + $border-active: adjust-color($base-color, $hue: 6, $saturation: -2.5%, $lightness: -30%); + $border-bottom-active: adjust-color($base-color, $hue: 11, $saturation: 6%, $lightness: -31%); + $inset-shadow-active: adjust-color($base-color, $hue: 9, $saturation: 2%, $lightness: -21.5%); + $text-shadow-active: adjust-color($base-color, $hue: 5, $saturation: -12%, $lightness: -21.5%); + + @if $grayscale == true { + $active-color: grayscale($active-color); + $border-active: grayscale($border-active); + $border-bottom-active: grayscale($border-bottom-active); + $inset-shadow-active: grayscale($inset-shadow-active); + $text-shadow-active: grayscale($text-shadow-active); + } + + background: $active-color; + border: 1px solid $border-active; + border-bottom: 1px solid $border-bottom-active; + box-shadow: inset 0 0 6px 3px $inset-shadow-active; + text-shadow: 0 -1px 1px $text-shadow-active; + } +} + +// Flat Button +@mixin flat($base-color, $grayscale: false, $textsize: inherit, $padding: 7px 18px) { + $color: hsl(0, 0, 100%); + + @if is-light($base-color) { + $color: hsl(0, 0, 20%); + } + + background-color: $base-color; + border-radius: 3px; + border: 0; + color: $color; + display: inline-block; + font-size: $textsize; + font-weight: bold; + padding: $padding; + text-decoration: none; + background-clip: padding-box; + + &:hover:not(:disabled){ + $base-color-hover: adjust-color($base-color, $saturation: 4%, $lightness: 5%); + + @if $grayscale == true { + $base-color-hover: grayscale($base-color-hover); + } + + background-color: $base-color-hover; + cursor: pointer; + } + + &:active:not(:disabled), + &:focus:not(:disabled) { + $base-color-active: adjust-color($base-color, $saturation: -4%, $lightness: -5%); + + @if $grayscale == true { + $base-color-active: grayscale($base-color-active); + } + + background-color: $base-color-active; + cursor: pointer; + } +} + +// Flexible grid +@function flex-grid($columns, $container-columns: $fg-max-columns) { + $width: $columns * $fg-column + ($columns - 1) * $fg-gutter; + $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + @return percentage($width / $container-width); + + @warn "The flex-grid function is deprecated and will be removed in the next major version release"; +} + +// Flexible gutter +@function flex-gutter($container-columns: $fg-max-columns, $gutter: $fg-gutter) { + $container-width: $container-columns * $fg-column + ($container-columns - 1) * $fg-gutter; + @return percentage($gutter / $container-width); + + @warn "The flex-gutter function is deprecated and will be removed in the next major version release"; +} + +@function grid-width($n) { + @return $n * $gw-column + ($n - 1) * $gw-gutter; + + @warn "The grid-width function is deprecated and will be removed in the next major version release"; +} + +@function golden-ratio($value, $increment) { + @return modular-scale($increment, $value, $ratio: $golden); + + @warn "The golden-ratio function is deprecated and will be removed in the next major version release. Please use the modular-scale function, instead."; +} + +@mixin box-sizing($box) { + @include prefixer(box-sizing, $box, webkit moz spec); + + @warn "The box-sizing mixin is deprecated and will be removed in the next major version release. This property can now be used un-prefixed."; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/_bourbon.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/_bourbon.scss new file mode 100644 index 0000000..71aa7df --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/_bourbon.scss @@ -0,0 +1,87 @@ +// Bourbon 4.2.4 +// http://bourbon.io +// Copyright 2011-2015 thoughtbot, inc. +// MIT License + +@import "settings/prefixer"; +@import "settings/px-to-em"; +@import "settings/asset-pipeline"; + +@import "functions/assign-inputs"; +@import "functions/contains"; +@import "functions/contains-falsy"; +@import "functions/is-length"; +@import "functions/is-light"; +@import "functions/is-number"; +@import "functions/is-size"; +@import "functions/px-to-em"; +@import "functions/px-to-rem"; +@import "functions/shade"; +@import "functions/strip-units"; +@import "functions/tint"; +@import "functions/transition-property-name"; +@import "functions/unpack"; +@import "functions/modular-scale"; + +@import "helpers/convert-units"; +@import "helpers/directional-values"; +@import "helpers/font-source-declaration"; +@import "helpers/gradient-positions-parser"; +@import "helpers/linear-angle-parser"; +@import "helpers/linear-gradient-parser"; +@import "helpers/linear-positions-parser"; +@import "helpers/linear-side-corner-parser"; +@import "helpers/radial-arg-parser"; +@import "helpers/radial-positions-parser"; +@import "helpers/radial-gradient-parser"; +@import "helpers/render-gradients"; +@import "helpers/shape-size-stripper"; +@import "helpers/str-to-num"; + +@import "css3/animation"; +@import "css3/appearance"; +@import "css3/backface-visibility"; +@import "css3/background"; +@import "css3/background-image"; +@import "css3/border-image"; +@import "css3/calc"; +@import "css3/columns"; +@import "css3/filter"; +@import "css3/flex-box"; +@import "css3/font-face"; +@import "css3/font-feature-settings"; +@import "css3/hidpi-media-query"; +@import "css3/hyphens"; +@import "css3/image-rendering"; +@import "css3/keyframes"; +@import "css3/linear-gradient"; +@import "css3/perspective"; +@import "css3/placeholder"; +@import "css3/radial-gradient"; +@import "css3/selection"; +@import "css3/text-decoration"; +@import "css3/transform"; +@import "css3/transition"; +@import "css3/user-select"; + +@import "addons/border-color"; +@import "addons/border-radius"; +@import "addons/border-style"; +@import "addons/border-width"; +@import "addons/buttons"; +@import "addons/clearfix"; +@import "addons/ellipsis"; +@import "addons/font-stacks"; +@import "addons/hide-text"; +@import "addons/margin"; +@import "addons/padding"; +@import "addons/position"; +@import "addons/prefixer"; +@import "addons/retina-image"; +@import "addons/size"; +@import "addons/text-inputs"; +@import "addons/timing-functions"; +@import "addons/triangle"; +@import "addons/word-wrap"; + +@import "bourbon-deprecated-upcoming"; diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_border-color.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_border-color.scss new file mode 100644 index 0000000..6f6ab36 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_border-color.scss @@ -0,0 +1,26 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `border-color` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include border-color(#a60b55 #76cd9c null #e8ae1a); +/// } +/// +/// @example css - CSS Output +/// .element { +/// border-left-color: #e8ae1a; +/// border-right-color: #76cd9c; +/// border-top-color: #a60b55; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `border-color` + +@mixin border-color($vals...) { + @include directional-property(border, color, $vals...); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_border-radius.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_border-radius.scss new file mode 100644 index 0000000..1f65863 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_border-radius.scss @@ -0,0 +1,48 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `border-radius` on both corners on the side of a box. +/// +/// @param {Number} $radii +/// List of arguments +/// +/// @example scss - Usage +/// .element-one { +/// @include border-top-radius(5px); +/// } +/// +/// .element-two { +/// @include border-left-radius(3px); +/// } +/// +/// @example css - CSS Output +/// .element-one { +/// border-top-left-radius: 5px; +/// border-top-right-radius: 5px; +/// } +/// +/// .element-two { +/// border-bottom-left-radius: 3px; +/// border-top-left-radius: 3px; +/// } +/// +/// @output `border-radius` + +@mixin border-top-radius($radii) { + border-top-left-radius: $radii; + border-top-right-radius: $radii; +} + +@mixin border-right-radius($radii) { + border-bottom-right-radius: $radii; + border-top-right-radius: $radii; +} + +@mixin border-bottom-radius($radii) { + border-bottom-left-radius: $radii; + border-bottom-right-radius: $radii; +} + +@mixin border-left-radius($radii) { + border-bottom-left-radius: $radii; + border-top-left-radius: $radii; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_border-style.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_border-style.scss new file mode 100644 index 0000000..d86ee79 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_border-style.scss @@ -0,0 +1,25 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `border-style` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include border-style(dashed null solid); +/// } +/// +/// @example css - CSS Output +/// .element { +/// border-bottom-style: solid; +/// border-top-style: dashed; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `border-style` + +@mixin border-style($vals...) { + @include directional-property(border, style, $vals...); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_border-width.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_border-width.scss new file mode 100644 index 0000000..0ea2d4b --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_border-width.scss @@ -0,0 +1,25 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `border-width` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include border-width(1em null 20px); +/// } +/// +/// @example css - CSS Output +/// .element { +/// border-bottom-width: 20px; +/// border-top-width: 1em; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `border-width` + +@mixin border-width($vals...) { + @include directional-property(border, width, $vals...); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_buttons.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_buttons.scss new file mode 100644 index 0000000..debeabc --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_buttons.scss @@ -0,0 +1,64 @@ +@charset "UTF-8"; + +/// Generates variables for all buttons. Please note that you must use interpolation on the variable: `#{$all-buttons}`. +/// +/// @example scss - Usage +/// #{$all-buttons} { +/// background-color: #f00; +/// } +/// +/// #{$all-buttons-focus}, +/// #{$all-buttons-hover} { +/// background-color: #0f0; +/// } +/// +/// #{$all-buttons-active} { +/// background-color: #00f; +/// } +/// +/// @example css - CSS Output +/// button, +/// input[type="button"], +/// input[type="reset"], +/// input[type="submit"] { +/// background-color: #f00; +/// } +/// +/// button:focus, +/// input[type="button"]:focus, +/// input[type="reset"]:focus, +/// input[type="submit"]:focus, +/// button:hover, +/// input[type="button"]:hover, +/// input[type="reset"]:hover, +/// input[type="submit"]:hover { +/// background-color: #0f0; +/// } +/// +/// button:active, +/// input[type="button"]:active, +/// input[type="reset"]:active, +/// input[type="submit"]:active { +/// background-color: #00f; +/// } +/// +/// @require assign-inputs +/// +/// @type List +/// +/// @todo Remove double assigned variables (Lines 59–62) in v5.0.0 + +$buttons-list: 'button', + 'input[type="button"]', + 'input[type="reset"]', + 'input[type="submit"]'; + +$all-buttons: assign-inputs($buttons-list); +$all-buttons-active: assign-inputs($buttons-list, active); +$all-buttons-focus: assign-inputs($buttons-list, focus); +$all-buttons-hover: assign-inputs($buttons-list, hover); + +$all-button-inputs: $all-buttons; +$all-button-inputs-active: $all-buttons-active; +$all-button-inputs-focus: $all-buttons-focus; +$all-button-inputs-hover: $all-buttons-hover; diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_clearfix.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_clearfix.scss new file mode 100644 index 0000000..11313d6 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_clearfix.scss @@ -0,0 +1,25 @@ +@charset "UTF-8"; + +/// Provides an easy way to include a clearfix for containing floats. +/// +/// @link http://cssmojo.com/latest_new_clearfix_so_far/ +/// +/// @example scss - Usage +/// .element { +/// @include clearfix; +/// } +/// +/// @example css - CSS Output +/// .element::after { +/// clear: both; +/// content: ""; +/// display: table; +/// } + +@mixin clearfix { + &::after { + clear: both; + content: ""; + display: table; + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_ellipsis.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_ellipsis.scss new file mode 100644 index 0000000..a367f65 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_ellipsis.scss @@ -0,0 +1,30 @@ +@charset "UTF-8"; + +/// Truncates text and adds an ellipsis to represent overflow. +/// +/// @param {Number} $width [100%] +/// Max-width for the string to respect before being truncated +/// +/// @example scss - Usage +/// .element { +/// @include ellipsis; +/// } +/// +/// @example css - CSS Output +/// .element { +/// display: inline-block; +/// max-width: 100%; +/// overflow: hidden; +/// text-overflow: ellipsis; +/// white-space: nowrap; +/// word-wrap: normal; +/// } + +@mixin ellipsis($width: 100%) { + display: inline-block; + max-width: $width; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + word-wrap: normal; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_font-stacks.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_font-stacks.scss new file mode 100644 index 0000000..57128f4 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_font-stacks.scss @@ -0,0 +1,31 @@ +@charset "UTF-8"; + +/// Georgia font stack. +/// +/// @type List + +$georgia: "Georgia", "Cambria", "Times New Roman", "Times", serif; + +/// Helvetica font stack. +/// +/// @type List + +$helvetica: "Helvetica Neue", "Helvetica", "Roboto", "Arial", sans-serif; + +/// Lucida Grande font stack. +/// +/// @type List + +$lucida-grande: "Lucida Grande", "Tahoma", "Verdana", "Arial", sans-serif; + +/// Monospace font stack. +/// +/// @type List + +$monospace: "Bitstream Vera Sans Mono", "Consolas", "Courier", monospace; + +/// Verdana font stack. +/// +/// @type List + +$verdana: "Verdana", "Geneva", sans-serif; diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_hide-text.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_hide-text.scss new file mode 100644 index 0000000..4caf20e --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_hide-text.scss @@ -0,0 +1,27 @@ +/// Hides the text in an element, commonly used to show an image. Some elements will need block-level styles applied. +/// +/// @link http://zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement +/// +/// @example scss - Usage +/// .element { +/// @include hide-text; +/// } +/// +/// @example css - CSS Output +/// .element { +/// overflow: hidden; +/// text-indent: 101%; +/// white-space: nowrap; +/// } +/// +/// @todo Remove height argument in v5.0.0 + +@mixin hide-text($height: null) { + overflow: hidden; + text-indent: 101%; + white-space: nowrap; + + @if $height { + @warn "The `hide-text` mixin has changed and no longer requires a height. The height argument will no longer be accepted in v5.0.0"; + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_margin.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_margin.scss new file mode 100644 index 0000000..674f4e5 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_margin.scss @@ -0,0 +1,26 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `margin` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include margin(null 10px 3em 20vh); +/// } +/// +/// @example css - CSS Output +/// .element { +/// margin-bottom: 3em; +/// margin-left: 20vh; +/// margin-right: 10px; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `margin` + +@mixin margin($vals...) { + @include directional-property(margin, false, $vals...); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_padding.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_padding.scss new file mode 100644 index 0000000..40a5f00 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_padding.scss @@ -0,0 +1,26 @@ +@charset "UTF-8"; + +/// Provides a quick method for targeting `padding` on specific sides of a box. Use a `null` value to “skip” a side. +/// +/// @param {Arglist} $vals +/// List of arguments +/// +/// @example scss - Usage +/// .element { +/// @include padding(12vh null 10px 5%); +/// } +/// +/// @example css - CSS Output +/// .element { +/// padding-bottom: 10px; +/// padding-left: 5%; +/// padding-top: 12vh; +/// } +/// +/// @require {mixin} directional-property +/// +/// @output `padding` + +@mixin padding($vals...) { + @include directional-property(padding, false, $vals...); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_position.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_position.scss new file mode 100644 index 0000000..e460f3f --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_position.scss @@ -0,0 +1,48 @@ +@charset "UTF-8"; + +/// Provides a quick method for setting an element’s position. Use a `null` value to “skip” a side. +/// +/// @param {Position} $position [relative] +/// A CSS position value +/// +/// @param {Arglist} $coordinates [null null null null] +/// List of values that correspond to the 4-value syntax for the edges of a box +/// +/// @example scss - Usage +/// .element { +/// @include position(absolute, 0 null null 10em); +/// } +/// +/// @example css - CSS Output +/// .element { +/// left: 10em; +/// position: absolute; +/// top: 0; +/// } +/// +/// @require {function} is-length +/// @require {function} unpack + +@mixin position($position: relative, $coordinates: null null null null) { + @if type-of($position) == list { + $coordinates: $position; + $position: relative; + } + + $coordinates: unpack($coordinates); + + $offsets: ( + top: nth($coordinates, 1), + right: nth($coordinates, 2), + bottom: nth($coordinates, 3), + left: nth($coordinates, 4) + ); + + position: $position; + + @each $offset, $value in $offsets { + @if is-length($value) { + #{$offset}: $value; + } + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_prefixer.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_prefixer.scss new file mode 100644 index 0000000..2b6f731 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_prefixer.scss @@ -0,0 +1,66 @@ +@charset "UTF-8"; + +/// A mixin for generating vendor prefixes on non-standardized properties. +/// +/// @param {String} $property +/// Property to prefix +/// +/// @param {*} $value +/// Value to use +/// +/// @param {List} $prefixes +/// Prefixes to define +/// +/// @example scss - Usage +/// .element { +/// @include prefixer(border-radius, 10px, webkit ms spec); +/// } +/// +/// @example css - CSS Output +/// .element { +/// -webkit-border-radius: 10px; +/// -moz-border-radius: 10px; +/// border-radius: 10px; +/// } +/// +/// @require {variable} $prefix-for-webkit +/// @require {variable} $prefix-for-mozilla +/// @require {variable} $prefix-for-microsoft +/// @require {variable} $prefix-for-opera +/// @require {variable} $prefix-for-spec + +@mixin prefixer($property, $value, $prefixes) { + @each $prefix in $prefixes { + @if $prefix == webkit { + @if $prefix-for-webkit { + -webkit-#{$property}: $value; + } + } @else if $prefix == moz { + @if $prefix-for-mozilla { + -moz-#{$property}: $value; + } + } @else if $prefix == ms { + @if $prefix-for-microsoft { + -ms-#{$property}: $value; + } + } @else if $prefix == o { + @if $prefix-for-opera { + -o-#{$property}: $value; + } + } @else if $prefix == spec { + @if $prefix-for-spec { + #{$property}: $value; + } + } @else { + @warn "Unrecognized prefix: #{$prefix}"; + } + } +} + +@mixin disable-prefix-for-all() { + $prefix-for-webkit: false !global; + $prefix-for-mozilla: false !global; + $prefix-for-microsoft: false !global; + $prefix-for-opera: false !global; + $prefix-for-spec: false !global; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_retina-image.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_retina-image.scss new file mode 100644 index 0000000..7febbd7 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_retina-image.scss @@ -0,0 +1,25 @@ +@mixin retina-image($filename, $background-size, $extension: png, $retina-filename: null, $retina-suffix: _2x, $asset-pipeline: $asset-pipeline) { + @if $asset-pipeline { + background-image: image-url("#{$filename}.#{$extension}"); + } @else { + background-image: url("#{$filename}.#{$extension}"); + } + + @include hidpi { + @if $asset-pipeline { + @if $retina-filename { + background-image: image-url("#{$retina-filename}.#{$extension}"); + } @else { + background-image: image-url("#{$filename}#{$retina-suffix}.#{$extension}"); + } + } @else { + @if $retina-filename { + background-image: url("#{$retina-filename}.#{$extension}"); + } @else { + background-image: url("#{$filename}#{$retina-suffix}.#{$extension}"); + } + } + + background-size: $background-size; + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_size.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_size.scss new file mode 100644 index 0000000..a2992a3 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_size.scss @@ -0,0 +1,51 @@ +@charset "UTF-8"; + +/// Sets the `width` and `height` of the element. +/// +/// @param {List} $size +/// A list of at most 2 size values. +/// +/// If there is only a single value in `$size` it is used for both width and height. All units are supported. +/// +/// @example scss - Usage +/// .first-element { +/// @include size(2em); +/// } +/// +/// .second-element { +/// @include size(auto 10em); +/// } +/// +/// @example css - CSS Output +/// .first-element { +/// width: 2em; +/// height: 2em; +/// } +/// +/// .second-element { +/// width: auto; +/// height: 10em; +/// } +/// +/// @todo Refactor in 5.0.0 to use a comma-separated argument + +@mixin size($value) { + $width: nth($value, 1); + $height: $width; + + @if length($value) > 1 { + $height: nth($value, 2); + } + + @if is-size($height) { + height: $height; + } @else { + @warn "`#{$height}` is not a valid length for the `$height` parameter in the `size` mixin."; + } + + @if is-size($width) { + width: $width; + } @else { + @warn "`#{$width}` is not a valid length for the `$width` parameter in the `size` mixin."; + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_text-inputs.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_text-inputs.scss new file mode 100644 index 0000000..1eb7a54 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_text-inputs.scss @@ -0,0 +1,113 @@ +@charset "UTF-8"; + +/// Generates variables for all text-based inputs. Please note that you must use interpolation on the variable: `#{$all-text-inputs}`. +/// +/// @example scss - Usage +/// #{$all-text-inputs} { +/// border: 1px solid #f00; +/// } +/// +/// #{$all-text-inputs-focus}, +/// #{$all-text-inputs-hover} { +/// border: 1px solid #0f0; +/// } +/// +/// #{$all-text-inputs-active} { +/// border: 1px solid #00f; +/// } +/// +/// @example css - CSS Output +/// input[type="color"], +/// input[type="date"], +/// input[type="datetime"], +/// input[type="datetime-local"], +/// input[type="email"], +/// input[type="month"], +/// input[type="number"], +/// input[type="password"], +/// input[type="search"], +/// input[type="tel"], +/// input[type="text"], +/// input[type="time"], +/// input[type="url"], +/// input[type="week"], +/// textarea { +/// border: 1px solid #f00; +/// } +/// +/// input[type="color"]:focus, +/// input[type="date"]:focus, +/// input[type="datetime"]:focus, +/// input[type="datetime-local"]:focus, +/// input[type="email"]:focus, +/// input[type="month"]:focus, +/// input[type="number"]:focus, +/// input[type="password"]:focus, +/// input[type="search"]:focus, +/// input[type="tel"]:focus, +/// input[type="text"]:focus, +/// input[type="time"]:focus, +/// input[type="url"]:focus, +/// input[type="week"]:focus, +/// textarea:focus, +/// input[type="color"]:hover, +/// input[type="date"]:hover, +/// input[type="datetime"]:hover, +/// input[type="datetime-local"]:hover, +/// input[type="email"]:hover, +/// input[type="month"]:hover, +/// input[type="number"]:hover, +/// input[type="password"]:hover, +/// input[type="search"]:hover, +/// input[type="tel"]:hover, +/// input[type="text"]:hover, +/// input[type="time"]:hover, +/// input[type="url"]:hover, +/// input[type="week"]:hover, +/// textarea:hover { +/// border: 1px solid #0f0; +/// } +/// +/// input[type="color"]:active, +/// input[type="date"]:active, +/// input[type="datetime"]:active, +/// input[type="datetime-local"]:active, +/// input[type="email"]:active, +/// input[type="month"]:active, +/// input[type="number"]:active, +/// input[type="password"]:active, +/// input[type="search"]:active, +/// input[type="tel"]:active, +/// input[type="text"]:active, +/// input[type="time"]:active, +/// input[type="url"]:active, +/// input[type="week"]:active, +/// textarea:active { +/// border: 1px solid #00f; +/// } +/// +/// @require assign-inputs +/// +/// @type List + +$text-inputs-list: 'input[type="color"]', + 'input[type="date"]', + 'input[type="datetime"]', + 'input[type="datetime-local"]', + 'input[type="email"]', + 'input[type="month"]', + 'input[type="number"]', + 'input[type="password"]', + 'input[type="search"]', + 'input[type="tel"]', + 'input[type="text"]', + 'input[type="time"]', + 'input[type="url"]', + 'input[type="week"]', + 'input:not([type])', + 'textarea'; + +$all-text-inputs: assign-inputs($text-inputs-list); +$all-text-inputs-active: assign-inputs($text-inputs-list, active); +$all-text-inputs-focus: assign-inputs($text-inputs-list, focus); +$all-text-inputs-hover: assign-inputs($text-inputs-list, hover); diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_timing-functions.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_timing-functions.scss new file mode 100644 index 0000000..20e5f1d --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_timing-functions.scss @@ -0,0 +1,34 @@ +@charset "UTF-8"; + +/// CSS cubic-bezier timing functions. Timing functions courtesy of jquery.easie (github.com/jaukia/easie) +/// +/// Timing functions are the same as demoed here: http://jqueryui.com/resources/demos/effect/easing.html +/// +/// @type cubic-bezier + +$ease-in-quad: cubic-bezier(0.550, 0.085, 0.680, 0.530); +$ease-in-cubic: cubic-bezier(0.550, 0.055, 0.675, 0.190); +$ease-in-quart: cubic-bezier(0.895, 0.030, 0.685, 0.220); +$ease-in-quint: cubic-bezier(0.755, 0.050, 0.855, 0.060); +$ease-in-sine: cubic-bezier(0.470, 0.000, 0.745, 0.715); +$ease-in-expo: cubic-bezier(0.950, 0.050, 0.795, 0.035); +$ease-in-circ: cubic-bezier(0.600, 0.040, 0.980, 0.335); +$ease-in-back: cubic-bezier(0.600, -0.280, 0.735, 0.045); + +$ease-out-quad: cubic-bezier(0.250, 0.460, 0.450, 0.940); +$ease-out-cubic: cubic-bezier(0.215, 0.610, 0.355, 1.000); +$ease-out-quart: cubic-bezier(0.165, 0.840, 0.440, 1.000); +$ease-out-quint: cubic-bezier(0.230, 1.000, 0.320, 1.000); +$ease-out-sine: cubic-bezier(0.390, 0.575, 0.565, 1.000); +$ease-out-expo: cubic-bezier(0.190, 1.000, 0.220, 1.000); +$ease-out-circ: cubic-bezier(0.075, 0.820, 0.165, 1.000); +$ease-out-back: cubic-bezier(0.175, 0.885, 0.320, 1.275); + +$ease-in-out-quad: cubic-bezier(0.455, 0.030, 0.515, 0.955); +$ease-in-out-cubic: cubic-bezier(0.645, 0.045, 0.355, 1.000); +$ease-in-out-quart: cubic-bezier(0.770, 0.000, 0.175, 1.000); +$ease-in-out-quint: cubic-bezier(0.860, 0.000, 0.070, 1.000); +$ease-in-out-sine: cubic-bezier(0.445, 0.050, 0.550, 0.950); +$ease-in-out-expo: cubic-bezier(1.000, 0.000, 0.000, 1.000); +$ease-in-out-circ: cubic-bezier(0.785, 0.135, 0.150, 0.860); +$ease-in-out-back: cubic-bezier(0.680, -0.550, 0.265, 1.550); diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_triangle.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_triangle.scss new file mode 100644 index 0000000..8a1ed9c --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_triangle.scss @@ -0,0 +1,63 @@ +@mixin triangle($size, $color, $direction) { + $width: nth($size, 1); + $height: nth($size, length($size)); + $foreground-color: nth($color, 1); + $background-color: if(length($color) == 2, nth($color, 2), transparent); + height: 0; + width: 0; + + @if ($direction == up) or ($direction == down) or ($direction == right) or ($direction == left) { + $width: $width / 2; + $height: if(length($size) > 1, $height, $height/2); + + @if $direction == up { + border-bottom: $height solid $foreground-color; + border-left: $width solid $background-color; + border-right: $width solid $background-color; + } @else if $direction == right { + border-bottom: $width solid $background-color; + border-left: $height solid $foreground-color; + border-top: $width solid $background-color; + } @else if $direction == down { + border-left: $width solid $background-color; + border-right: $width solid $background-color; + border-top: $height solid $foreground-color; + } @else if $direction == left { + border-bottom: $width solid $background-color; + border-right: $height solid $foreground-color; + border-top: $width solid $background-color; + } + } @else if ($direction == up-right) or ($direction == up-left) { + border-top: $height solid $foreground-color; + + @if $direction == up-right { + border-left: $width solid $background-color; + } @else if $direction == up-left { + border-right: $width solid $background-color; + } + } @else if ($direction == down-right) or ($direction == down-left) { + border-bottom: $height solid $foreground-color; + + @if $direction == down-right { + border-left: $width solid $background-color; + } @else if $direction == down-left { + border-right: $width solid $background-color; + } + } @else if ($direction == inset-up) { + border-color: $background-color $background-color $foreground-color; + border-style: solid; + border-width: $height $width; + } @else if ($direction == inset-down) { + border-color: $foreground-color $background-color $background-color; + border-style: solid; + border-width: $height $width; + } @else if ($direction == inset-right) { + border-color: $background-color $background-color $background-color $foreground-color; + border-style: solid; + border-width: $width $height; + } @else if ($direction == inset-left) { + border-color: $background-color $foreground-color $background-color $background-color; + border-style: solid; + border-width: $width $height; + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_word-wrap.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_word-wrap.scss new file mode 100644 index 0000000..64856a9 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/addons/_word-wrap.scss @@ -0,0 +1,29 @@ +@charset "UTF-8"; + +/// Provides an easy way to change the `word-wrap` property. +/// +/// @param {String} $wrap [break-word] +/// Value for the `word-break` property. +/// +/// @example scss - Usage +/// .wrapper { +/// @include word-wrap(break-word); +/// } +/// +/// @example css - CSS Output +/// .wrapper { +/// overflow-wrap: break-word; +/// word-break: break-all; +/// word-wrap: break-word; +/// } + +@mixin word-wrap($wrap: break-word) { + overflow-wrap: $wrap; + word-wrap: $wrap; + + @if $wrap == break-word { + word-break: break-all; + } @else { + word-break: $wrap; + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_animation.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_animation.scss new file mode 100644 index 0000000..aac675f --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_animation.scss @@ -0,0 +1,43 @@ +// http://www.w3.org/TR/css3-animations/#the-animation-name-property- +// Each of these mixins support comma separated lists of values, which allows different transitions for individual properties to be described in a single style rule. Each value in the list corresponds to the value at that same position in the other properties. + +@mixin animation($animations...) { + @include prefixer(animation, $animations, webkit moz spec); +} + +@mixin animation-name($names...) { + @include prefixer(animation-name, $names, webkit moz spec); +} + +@mixin animation-duration($times...) { + @include prefixer(animation-duration, $times, webkit moz spec); +} + +@mixin animation-timing-function($motions...) { + // ease | linear | ease-in | ease-out | ease-in-out + @include prefixer(animation-timing-function, $motions, webkit moz spec); +} + +@mixin animation-iteration-count($values...) { + // infinite | + @include prefixer(animation-iteration-count, $values, webkit moz spec); +} + +@mixin animation-direction($directions...) { + // normal | alternate + @include prefixer(animation-direction, $directions, webkit moz spec); +} + +@mixin animation-play-state($states...) { + // running | paused + @include prefixer(animation-play-state, $states, webkit moz spec); +} + +@mixin animation-delay($times...) { + @include prefixer(animation-delay, $times, webkit moz spec); +} + +@mixin animation-fill-mode($modes...) { + // none | forwards | backwards | both + @include prefixer(animation-fill-mode, $modes, webkit moz spec); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_appearance.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_appearance.scss new file mode 100644 index 0000000..abddc02 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_appearance.scss @@ -0,0 +1,3 @@ +@mixin appearance($value) { + @include prefixer(appearance, $value, webkit moz ms o spec); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_backface-visibility.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_backface-visibility.scss new file mode 100644 index 0000000..fc68e2d --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_backface-visibility.scss @@ -0,0 +1,3 @@ +@mixin backface-visibility($visibility) { + @include prefixer(backface-visibility, $visibility, webkit spec); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_background-image.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_background-image.scss new file mode 100644 index 0000000..6ed19ab --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_background-image.scss @@ -0,0 +1,42 @@ +//************************************************************************// +// Background-image property for adding multiple background images with +// gradients, or for stringing multiple gradients together. +//************************************************************************// + +@mixin background-image($images...) { + $webkit-images: (); + $spec-images: (); + + @each $image in $images { + $webkit-image: (); + $spec-image: (); + + @if (type-of($image) == string) { + $url-str: str-slice($image, 1, 3); + $gradient-type: str-slice($image, 1, 6); + + @if $url-str == "url" { + $webkit-image: $image; + $spec-image: $image; + } + + @else if $gradient-type == "linear" { + $gradients: _linear-gradient-parser($image); + $webkit-image: map-get($gradients, webkit-image); + $spec-image: map-get($gradients, spec-image); + } + + @else if $gradient-type == "radial" { + $gradients: _radial-gradient-parser($image); + $webkit-image: map-get($gradients, webkit-image); + $spec-image: map-get($gradients, spec-image); + } + } + + $webkit-images: append($webkit-images, $webkit-image, comma); + $spec-images: append($spec-images, $spec-image, comma); + } + + background-image: $webkit-images; + background-image: $spec-images; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_background.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_background.scss new file mode 100644 index 0000000..019db0e --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_background.scss @@ -0,0 +1,55 @@ +//************************************************************************// +// Background property for adding multiple backgrounds using shorthand +// notation. +//************************************************************************// + +@mixin background($backgrounds...) { + $webkit-backgrounds: (); + $spec-backgrounds: (); + + @each $background in $backgrounds { + $webkit-background: (); + $spec-background: (); + $background-type: type-of($background); + + @if $background-type == string or $background-type == list { + $background-str: if($background-type == list, nth($background, 1), $background); + + $url-str: str-slice($background-str, 1, 3); + $gradient-type: str-slice($background-str, 1, 6); + + @if $url-str == "url" { + $webkit-background: $background; + $spec-background: $background; + } + + @else if $gradient-type == "linear" { + $gradients: _linear-gradient-parser("#{$background}"); + $webkit-background: map-get($gradients, webkit-image); + $spec-background: map-get($gradients, spec-image); + } + + @else if $gradient-type == "radial" { + $gradients: _radial-gradient-parser("#{$background}"); + $webkit-background: map-get($gradients, webkit-image); + $spec-background: map-get($gradients, spec-image); + } + + @else { + $webkit-background: $background; + $spec-background: $background; + } + } + + @else { + $webkit-background: $background; + $spec-background: $background; + } + + $webkit-backgrounds: append($webkit-backgrounds, $webkit-background, comma); + $spec-backgrounds: append($spec-backgrounds, $spec-background, comma); + } + + background: $webkit-backgrounds; + background: $spec-backgrounds; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_border-image.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_border-image.scss new file mode 100644 index 0000000..cf568ce --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_border-image.scss @@ -0,0 +1,59 @@ +@mixin border-image($borders...) { + $webkit-borders: (); + $spec-borders: (); + + @each $border in $borders { + $webkit-border: (); + $spec-border: (); + $border-type: type-of($border); + + @if $border-type == string or list { + $border-str: if($border-type == list, nth($border, 1), $border); + + $url-str: str-slice($border-str, 1, 3); + $gradient-type: str-slice($border-str, 1, 6); + + @if $url-str == "url" { + $webkit-border: $border; + $spec-border: $border; + } + + @else if $gradient-type == "linear" { + $gradients: _linear-gradient-parser("#{$border}"); + $webkit-border: map-get($gradients, webkit-image); + $spec-border: map-get($gradients, spec-image); + } + + @else if $gradient-type == "radial" { + $gradients: _radial-gradient-parser("#{$border}"); + $webkit-border: map-get($gradients, webkit-image); + $spec-border: map-get($gradients, spec-image); + } + + @else { + $webkit-border: $border; + $spec-border: $border; + } + } + + @else { + $webkit-border: $border; + $spec-border: $border; + } + + $webkit-borders: append($webkit-borders, $webkit-border, comma); + $spec-borders: append($spec-borders, $spec-border, comma); + } + + -webkit-border-image: $webkit-borders; + border-image: $spec-borders; + border-style: solid; +} + +//Examples: +// @include border-image(url("image.png")); +// @include border-image(url("image.png") 20 stretch); +// @include border-image(linear-gradient(45deg, orange, yellow)); +// @include border-image(linear-gradient(45deg, orange, yellow) stretch); +// @include border-image(linear-gradient(45deg, orange, yellow) 20 30 40 50 stretch round); +// @include border-image(radial-gradient(top, cover, orange, yellow, orange)); diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_calc.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_calc.scss new file mode 100644 index 0000000..0bfc738 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_calc.scss @@ -0,0 +1,4 @@ +@mixin calc($property, $value) { + #{$property}: -webkit-calc(#{$value}); + #{$property}: calc(#{$value}); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_columns.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_columns.scss new file mode 100644 index 0000000..9611767 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_columns.scss @@ -0,0 +1,47 @@ +@mixin columns($arg: auto) { + // || + @include prefixer(columns, $arg, webkit moz spec); +} + +@mixin column-count($int: auto) { + // auto || integer + @include prefixer(column-count, $int, webkit moz spec); +} + +@mixin column-gap($length: normal) { + // normal || length + @include prefixer(column-gap, $length, webkit moz spec); +} + +@mixin column-fill($arg: auto) { + // auto || length + @include prefixer(column-fill, $arg, webkit moz spec); +} + +@mixin column-rule($arg) { + // || || + @include prefixer(column-rule, $arg, webkit moz spec); +} + +@mixin column-rule-color($color) { + @include prefixer(column-rule-color, $color, webkit moz spec); +} + +@mixin column-rule-style($style: none) { + // none | hidden | dashed | dotted | double | groove | inset | inset | outset | ridge | solid + @include prefixer(column-rule-style, $style, webkit moz spec); +} + +@mixin column-rule-width ($width: none) { + @include prefixer(column-rule-width, $width, webkit moz spec); +} + +@mixin column-span($arg: none) { + // none || all + @include prefixer(column-span, $arg, webkit moz spec); +} + +@mixin column-width($length: auto) { + // auto || length + @include prefixer(column-width, $length, webkit moz spec); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_filter.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_filter.scss new file mode 100644 index 0000000..b8f8ffb --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_filter.scss @@ -0,0 +1,4 @@ +@mixin filter($function: none) { + // [ + @include prefixer(perspective, $depth, webkit moz spec); +} + +@mixin perspective-origin($value: 50% 50%) { + @include prefixer(perspective-origin, $value, webkit moz spec); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_placeholder.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_placeholder.scss new file mode 100644 index 0000000..5682fd0 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_placeholder.scss @@ -0,0 +1,8 @@ +@mixin placeholder { + $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input"; + @each $placeholder in $placeholders { + &:#{$placeholder}-placeholder { + @content; + } + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_radial-gradient.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_radial-gradient.scss new file mode 100644 index 0000000..8da076e --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_radial-gradient.scss @@ -0,0 +1,39 @@ +// Requires Sass 3.1+ +@mixin radial-gradient($g1, $g2, + $g3: null, $g4: null, + $g5: null, $g6: null, + $g7: null, $g8: null, + $g9: null, $g10: null, + $pos: null, + $shape-size: null, + $fallback: null) { + + $data: _radial-arg-parser($g1, $g2, $pos, $shape-size); + $g1: nth($data, 1); + $g2: nth($data, 2); + $pos: nth($data, 3); + $shape-size: nth($data, 4); + + $full: $g1, $g2, $g3, $g4, $g5, $g6, $g7, $g8, $g9, $g10; + + // Strip deprecated cover/contain for spec + $shape-size-spec: _shape-size-stripper($shape-size); + + // Set $g1 as the default fallback color + $first-color: nth($full, 1); + $fallback-color: nth($first-color, 1); + + @if (type-of($fallback) == color) or ($fallback == "transparent") { + $fallback-color: $fallback; + } + + // Add Commas and spaces + $shape-size: if($shape-size, "#{$shape-size}, ", null); + $pos: if($pos, "#{$pos}, ", null); + $pos-spec: if($pos, "at #{$pos}", null); + $shape-size-spec: if(($shape-size-spec != " ") and ($pos == null), "#{$shape-size-spec}, ", "#{$shape-size-spec} "); + + background-color: $fallback-color; + background-image: -webkit-radial-gradient(unquote(#{$pos}#{$shape-size}#{$full})); + background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})"); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_selection.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_selection.scss new file mode 100644 index 0000000..23303ab --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_selection.scss @@ -0,0 +1,42 @@ +@charset "UTF-8"; + +/// Outputs the spec and prefixed versions of the `::selection` pseudo-element. +/// +/// @param {Bool} $current-selector [false] +/// If set to `true`, it takes the current element into consideration. +/// +/// @example scss - Usage +/// .element { +/// @include selection(true) { +/// background-color: #ffbb52; +/// } +/// } +/// +/// @example css - CSS Output +/// .element::-moz-selection { +/// background-color: #ffbb52; +/// } +/// +/// .element::selection { +/// background-color: #ffbb52; +/// } + +@mixin selection($current-selector: false) { + @if $current-selector { + &::-moz-selection { + @content; + } + + &::selection { + @content; + } + } @else { + ::-moz-selection { + @content; + } + + ::selection { + @content; + } + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_text-decoration.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_text-decoration.scss new file mode 100644 index 0000000..9222746 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_text-decoration.scss @@ -0,0 +1,19 @@ +@mixin text-decoration($value) { +// || || + @include prefixer(text-decoration, $value, moz); +} + +@mixin text-decoration-line($line: none) { +// none || underline || overline || line-through + @include prefixer(text-decoration-line, $line, moz); +} + +@mixin text-decoration-style($style: solid) { +// solid || double || dotted || dashed || wavy + @include prefixer(text-decoration-style, $style, moz webkit); +} + +@mixin text-decoration-color($color: currentColor) { +// currentColor || + @include prefixer(text-decoration-color, $color, moz); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_transform.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_transform.scss new file mode 100644 index 0000000..8ee6509 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_transform.scss @@ -0,0 +1,15 @@ +@mixin transform($property: none) { + // none | + @include prefixer(transform, $property, webkit moz ms o spec); +} + +@mixin transform-origin($axes: 50%) { + // x-axis - left | center | right | length | % + // y-axis - top | center | bottom | length | % + // z-axis - length + @include prefixer(transform-origin, $axes, webkit moz ms o spec); +} + +@mixin transform-style($style: flat) { + @include prefixer(transform-style, $style, webkit moz ms o spec); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_transition.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_transition.scss new file mode 100644 index 0000000..3c785ed --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_transition.scss @@ -0,0 +1,71 @@ +// Shorthand mixin. Supports multiple parentheses-deliminated values for each variable. +// Example: @include transition (all 2s ease-in-out); +// @include transition (opacity 1s ease-in 2s, width 2s ease-out); +// @include transition-property (transform, opacity); + +@mixin transition($properties...) { + // Fix for vendor-prefix transform property + $needs-prefixes: false; + $webkit: (); + $moz: (); + $spec: (); + + // Create lists for vendor-prefixed transform + @each $list in $properties { + @if nth($list, 1) == "transform" { + $needs-prefixes: true; + $list1: -webkit-transform; + $list2: -moz-transform; + $list3: (); + + @each $var in $list { + $list3: join($list3, $var); + + @if $var != "transform" { + $list1: join($list1, $var); + $list2: join($list2, $var); + } + } + + $webkit: append($webkit, $list1); + $moz: append($moz, $list2); + $spec: append($spec, $list3); + } @else { + $webkit: append($webkit, $list, comma); + $moz: append($moz, $list, comma); + $spec: append($spec, $list, comma); + } + } + + @if $needs-prefixes { + -webkit-transition: $webkit; + -moz-transition: $moz; + transition: $spec; + } @else { + @if length($properties) >= 1 { + @include prefixer(transition, $properties, webkit moz spec); + } @else { + $properties: all 0.15s ease-out 0s; + @include prefixer(transition, $properties, webkit moz spec); + } + } +} + +@mixin transition-property($properties...) { + -webkit-transition-property: transition-property-names($properties, "webkit"); + -moz-transition-property: transition-property-names($properties, "moz"); + transition-property: transition-property-names($properties, false); +} + +@mixin transition-duration($times...) { + @include prefixer(transition-duration, $times, webkit moz spec); +} + +@mixin transition-timing-function($motions...) { + // ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier() + @include prefixer(transition-timing-function, $motions, webkit moz spec); +} + +@mixin transition-delay($times...) { + @include prefixer(transition-delay, $times, webkit moz spec); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_user-select.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_user-select.scss new file mode 100644 index 0000000..d4e5551 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/css3/_user-select.scss @@ -0,0 +1,3 @@ +@mixin user-select($value: none) { + @include prefixer(user-select, $value, webkit moz ms spec); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_assign-inputs.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_assign-inputs.scss new file mode 100644 index 0000000..f8aba96 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_assign-inputs.scss @@ -0,0 +1,11 @@ +@function assign-inputs($inputs, $pseudo: null) { + $list: (); + + @each $input in $inputs { + $input: unquote($input); + $input: if($pseudo, $input + ":" + $pseudo, $input); + $list: append($list, $input, comma); + } + + @return $list; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_contains-falsy.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_contains-falsy.scss new file mode 100644 index 0000000..c096fdb --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_contains-falsy.scss @@ -0,0 +1,20 @@ +@charset "UTF-8"; + +/// Checks if a list does not contains a value. +/// +/// @access private +/// +/// @param {List} $list +/// The list to check against. +/// +/// @return {Bool} + +@function contains-falsy($list) { + @each $item in $list { + @if not $item { + @return true; + } + } + + @return false; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_contains.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_contains.scss new file mode 100644 index 0000000..3dec27d --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_contains.scss @@ -0,0 +1,26 @@ +@charset "UTF-8"; + +/// Checks if a list contains a value(s). +/// +/// @access private +/// +/// @param {List} $list +/// The list to check against. +/// +/// @param {List} $values +/// A single value or list of values to check for. +/// +/// @example scss - Usage +/// contains($list, $value) +/// +/// @return {Bool} + +@function contains($list, $values...) { + @each $value in $values { + @if type-of(index($list, $value)) != "number" { + @return false; + } + } + + @return true; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_is-length.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_is-length.scss new file mode 100644 index 0000000..5826e78 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_is-length.scss @@ -0,0 +1,11 @@ +@charset "UTF-8"; + +/// Checks for a valid CSS length. +/// +/// @param {String} $value + +@function is-length($value) { + @return type-of($value) != "null" and (str-slice($value + "", 1, 4) == "calc" + or index(auto inherit initial 0, $value) + or (type-of($value) == "number" and not(unitless($value)))); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_is-light.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_is-light.scss new file mode 100644 index 0000000..92d90ac --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_is-light.scss @@ -0,0 +1,21 @@ +@charset "UTF-8"; + +/// Programatically determines whether a color is light or dark. +/// +/// @link http://robots.thoughtbot.com/closer-look-color-lightness +/// +/// @param {Color (Hex)} $color +/// +/// @example scss - Usage +/// is-light($color) +/// +/// @return {Bool} + +@function is-light($hex-color) { + $-local-red: red(rgba($hex-color, 1)); + $-local-green: green(rgba($hex-color, 1)); + $-local-blue: blue(rgba($hex-color, 1)); + $-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255; + + @return $-local-lightness > 0.6; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_is-number.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_is-number.scss new file mode 100644 index 0000000..a64e0bf --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_is-number.scss @@ -0,0 +1,11 @@ +@charset "UTF-8"; + +/// Checks for a valid number. +/// +/// @param {Number} $value +/// +/// @require {function} contains + +@function is-number($value) { + @return contains("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" 0 1 2 3 4 5 6 7 8 9, $value); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_is-size.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_is-size.scss new file mode 100644 index 0000000..661789a --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_is-size.scss @@ -0,0 +1,13 @@ +@charset "UTF-8"; + +/// Checks for a valid CSS size. +/// +/// @param {String} $value +/// +/// @require {function} contains +/// @require {function} is-length + +@function is-size($value) { + @return is-length($value) + or contains("fill" "fit-content" "min-content" "max-content", $value); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_modular-scale.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_modular-scale.scss new file mode 100644 index 0000000..20fa388 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_modular-scale.scss @@ -0,0 +1,69 @@ +// Scaling Variables +$golden: 1.618; +$minor-second: 1.067; +$major-second: 1.125; +$minor-third: 1.2; +$major-third: 1.25; +$perfect-fourth: 1.333; +$augmented-fourth: 1.414; +$perfect-fifth: 1.5; +$minor-sixth: 1.6; +$major-sixth: 1.667; +$minor-seventh: 1.778; +$major-seventh: 1.875; +$octave: 2; +$major-tenth: 2.5; +$major-eleventh: 2.667; +$major-twelfth: 3; +$double-octave: 4; + +$modular-scale-ratio: $perfect-fourth !default; +$modular-scale-base: em($em-base) !default; + +@function modular-scale($increment, $value: $modular-scale-base, $ratio: $modular-scale-ratio) { + $v1: nth($value, 1); + $v2: nth($value, length($value)); + $value: $v1; + + // scale $v2 to just above $v1 + @while $v2 > $v1 { + $v2: ($v2 / $ratio); // will be off-by-1 + } + @while $v2 < $v1 { + $v2: ($v2 * $ratio); // will fix off-by-1 + } + + // check AFTER scaling $v2 to prevent double-counting corner-case + $double-stranded: $v2 > $v1; + + @if $increment > 0 { + @for $i from 1 through $increment { + @if $double-stranded and ($v1 * $ratio) > $v2 { + $value: $v2; + $v2: ($v2 * $ratio); + } @else { + $v1: ($v1 * $ratio); + $value: $v1; + } + } + } + + @if $increment < 0 { + // adjust $v2 to just below $v1 + @if $double-stranded { + $v2: ($v2 / $ratio); + } + + @for $i from $increment through -1 { + @if $double-stranded and ($v1 / $ratio) < $v2 { + $value: $v2; + $v2: ($v2 / $ratio); + } @else { + $v1: ($v1 / $ratio); + $value: $v1; + } + } + } + + @return $value; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_px-to-em.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_px-to-em.scss new file mode 100644 index 0000000..ae81a44 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_px-to-em.scss @@ -0,0 +1,13 @@ +// Convert pixels to ems +// eg. for a relational value of 12px write em(12) when the parent is 16px +// if the parent is another value say 24px write em(12, 24) + +@function em($pxval, $base: $em-base) { + @if not unitless($pxval) { + $pxval: strip-units($pxval); + } + @if not unitless($base) { + $base: strip-units($base); + } + @return ($pxval / $base) * 1em; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_px-to-rem.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_px-to-rem.scss new file mode 100644 index 0000000..0ac941e --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_px-to-rem.scss @@ -0,0 +1,15 @@ +// Convert pixels to rems +// eg. for a relational value of 12px write rem(12) +// Assumes $em-base is the font-size of + +@function rem($pxval) { + @if not unitless($pxval) { + $pxval: strip-units($pxval); + } + + $base: $em-base; + @if not unitless($base) { + $base: strip-units($base); + } + @return ($pxval / $base) * 1rem; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_shade.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_shade.scss new file mode 100644 index 0000000..8aaf2c6 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_shade.scss @@ -0,0 +1,24 @@ +@charset "UTF-8"; + +/// Mixes a color with black. +/// +/// @param {Color} $color +/// +/// @param {Number (Percentage)} $percent +/// The amount of black to be mixed in. +/// +/// @example scss - Usage +/// .element { +/// background-color: shade(#ffbb52, 60%); +/// } +/// +/// @example css - CSS Output +/// .element { +/// background-color: #664a20; +/// } +/// +/// @return {Color} + +@function shade($color, $percent) { + @return mix(#000, $color, $percent); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_strip-units.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_strip-units.scss new file mode 100644 index 0000000..6c5f3e8 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_strip-units.scss @@ -0,0 +1,17 @@ +@charset "UTF-8"; + +/// Strips the unit from a number. +/// +/// @param {Number (With Unit)} $value +/// +/// @example scss - Usage +/// $dimension: strip-units(10em); +/// +/// @example css - CSS Output +/// $dimension: 10; +/// +/// @return {Number (Unitless)} + +@function strip-units($value) { + @return ($value / ($value * 0 + 1)); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_tint.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_tint.scss new file mode 100644 index 0000000..2e33814 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_tint.scss @@ -0,0 +1,24 @@ +@charset "UTF-8"; + +/// Mixes a color with white. +/// +/// @param {Color} $color +/// +/// @param {Number (Percentage)} $percent +/// The amount of white to be mixed in. +/// +/// @example scss - Usage +/// .element { +/// background-color: tint(#6ecaa6, 40%); +/// } +/// +/// @example css - CSS Output +/// .element { +/// background-color: #a8dfc9; +/// } +/// +/// @return {Color} + +@function tint($color, $percent) { + @return mix(#fff, $color, $percent); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_transition-property-name.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_transition-property-name.scss new file mode 100644 index 0000000..18348b9 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_transition-property-name.scss @@ -0,0 +1,22 @@ +// Return vendor-prefixed property names if appropriate +// Example: transition-property-names((transform, color, background), moz) -> -moz-transform, color, background +//************************************************************************// +@function transition-property-names($props, $vendor: false) { + $new-props: (); + + @each $prop in $props { + $new-props: append($new-props, transition-property-name($prop, $vendor), comma); + } + + @return $new-props; +} + +@function transition-property-name($prop, $vendor: false) { + // put other properties that need to be prefixed here aswell + @if $vendor and $prop == transform { + @return unquote('-'+$vendor+'-'+$prop); + } + @else { + @return $prop; + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_unpack.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_unpack.scss new file mode 100644 index 0000000..4367935 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/functions/_unpack.scss @@ -0,0 +1,27 @@ +@charset "UTF-8"; + +/// Converts shorthand to the 4-value syntax. +/// +/// @param {List} $shorthand +/// +/// @example scss - Usage +/// .element { +/// margin: unpack(1em 2em); +/// } +/// +/// @example css - CSS Output +/// .element { +/// margin: 1em 2em 1em 2em; +/// } + +@function unpack($shorthand) { + @if length($shorthand) == 1 { + @return nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1) nth($shorthand, 1); + } @else if length($shorthand) == 2 { + @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 1) nth($shorthand, 2); + } @else if length($shorthand) == 3 { + @return nth($shorthand, 1) nth($shorthand, 2) nth($shorthand, 3) nth($shorthand, 2); + } @else { + @return $shorthand; + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_convert-units.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_convert-units.scss new file mode 100644 index 0000000..e0a65a0 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_convert-units.scss @@ -0,0 +1,21 @@ +//************************************************************************// +// Helper function for str-to-num fn. +// Source: http://sassmeister.com/gist/9647408 +//************************************************************************// +@function _convert-units($number, $unit) { + $strings: "px", "cm", "mm", "%", "ch", "pica", "in", "em", "rem", "pt", "pc", "ex", "vw", "vh", "vmin", "vmax", "deg", "rad", "grad", "turn"; + $units: 1px, 1cm, 1mm, 1%, 1ch, 1pica, 1in, 1em, 1rem, 1pt, 1pc, 1ex, 1vw, 1vh, 1vmin, 1vmax, 1deg, 1rad, 1grad, 1turn; + $index: index($strings, $unit); + + @if not $index { + @warn "Unknown unit `#{$unit}`."; + @return false; + } + + @if type-of($number) != "number" { + @warn "`#{$number} is not a number`"; + @return false; + } + + @return $number * nth($units, $index); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_directional-values.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_directional-values.scss new file mode 100644 index 0000000..6ee538d --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_directional-values.scss @@ -0,0 +1,96 @@ +@charset "UTF-8"; + +/// Directional-property mixins are shorthands for writing properties like the following +/// +/// @ignore You can also use `false` instead of `null`. +/// +/// @param {List} $vals +/// List of directional values +/// +/// @example scss - Usage +/// .element { +/// @include border-style(dotted null); +/// @include margin(null 0 10px); +/// } +/// +/// @example css - CSS Output +/// .element { +/// border-bottom-style: dotted; +/// border-top-style: dotted; +/// margin-bottom: 10px; +/// margin-left: 0; +/// margin-right: 0; +/// } +/// +/// @require {function} contains-falsy +/// +/// @return {List} + +@function collapse-directionals($vals) { + $output: null; + + $a: nth($vals, 1); + $b: if(length($vals) < 2, $a, nth($vals, 2)); + $c: if(length($vals) < 3, $a, nth($vals, 3)); + $d: if(length($vals) < 2, $a, nth($vals, if(length($vals) < 4, 2, 4))); + + @if $a == 0 { $a: 0; } + @if $b == 0 { $b: 0; } + @if $c == 0 { $c: 0; } + @if $d == 0 { $d: 0; } + + @if $a == $b and $a == $c and $a == $d { $output: $a; } + @else if $a == $c and $b == $d { $output: $a $b; } + @else if $b == $d { $output: $a $b $c; } + @else { $output: $a $b $c $d; } + + @return $output; +} + +/// Output directional properties, for instance `margin`. +/// +/// @access private +/// +/// @param {String} $pre +/// Prefix to use +/// @param {String} $suf +/// Suffix to use +/// @param {List} $vals +/// List of values +/// +/// @require {function} collapse-directionals +/// @require {function} contains-falsy + +@mixin directional-property($pre, $suf, $vals) { + // Property Names + $top: $pre + "-top" + if($suf, "-#{$suf}", ""); + $bottom: $pre + "-bottom" + if($suf, "-#{$suf}", ""); + $left: $pre + "-left" + if($suf, "-#{$suf}", ""); + $right: $pre + "-right" + if($suf, "-#{$suf}", ""); + $all: $pre + if($suf, "-#{$suf}", ""); + + $vals: collapse-directionals($vals); + + @if contains-falsy($vals) { + @if nth($vals, 1) { #{$top}: nth($vals, 1); } + + @if length($vals) == 1 { + @if nth($vals, 1) { #{$right}: nth($vals, 1); } + } @else { + @if nth($vals, 2) { #{$right}: nth($vals, 2); } + } + + @if length($vals) == 2 { + @if nth($vals, 1) { #{$bottom}: nth($vals, 1); } + @if nth($vals, 2) { #{$left}: nth($vals, 2); } + } @else if length($vals) == 3 { + @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } + @if nth($vals, 2) { #{$left}: nth($vals, 2); } + } @else if length($vals) == 4 { + @if nth($vals, 3) { #{$bottom}: nth($vals, 3); } + @if nth($vals, 4) { #{$left}: nth($vals, 4); } + } + } @else { + #{$all}: $vals; + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_font-source-declaration.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_font-source-declaration.scss new file mode 100644 index 0000000..7f17586 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_font-source-declaration.scss @@ -0,0 +1,43 @@ +// Used for creating the source string for fonts using @font-face +// Reference: http://goo.gl/Ru1bKP + +@function font-url-prefixer($asset-pipeline) { + @if $asset-pipeline == true { + @return font-url; + } @else { + @return url; + } +} + +@function font-source-declaration( + $font-family, + $file-path, + $asset-pipeline, + $file-formats, + $font-url) { + + $src: (); + + $formats-map: ( + eot: "#{$file-path}.eot?#iefix" format("embedded-opentype"), + woff2: "#{$file-path}.woff2" format("woff2"), + woff: "#{$file-path}.woff" format("woff"), + ttf: "#{$file-path}.ttf" format("truetype"), + svg: "#{$file-path}.svg##{$font-family}" format("svg") + ); + + @each $key, $values in $formats-map { + @if contains($file-formats, $key) { + $file-path: nth($values, 1); + $font-format: nth($values, 2); + + @if $asset-pipeline == true { + $src: append($src, font-url($file-path) $font-format, comma); + } @else { + $src: append($src, url($file-path) $font-format, comma); + } + } + } + + @return $src; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_gradient-positions-parser.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_gradient-positions-parser.scss new file mode 100644 index 0000000..07d30b6 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_gradient-positions-parser.scss @@ -0,0 +1,13 @@ +@function _gradient-positions-parser($gradient-type, $gradient-positions) { + @if $gradient-positions + and ($gradient-type == linear) + and (type-of($gradient-positions) != color) { + $gradient-positions: _linear-positions-parser($gradient-positions); + } + @else if $gradient-positions + and ($gradient-type == radial) + and (type-of($gradient-positions) != color) { + $gradient-positions: _radial-positions-parser($gradient-positions); + } + @return $gradient-positions; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_linear-angle-parser.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_linear-angle-parser.scss new file mode 100644 index 0000000..e0401ed --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_linear-angle-parser.scss @@ -0,0 +1,25 @@ +// Private function for linear-gradient-parser +@function _linear-angle-parser($image, $first-val, $prefix, $suffix) { + $offset: null; + $unit-short: str-slice($first-val, str-length($first-val) - 2, str-length($first-val)); + $unit-long: str-slice($first-val, str-length($first-val) - 3, str-length($first-val)); + + @if ($unit-long == "grad") or + ($unit-long == "turn") { + $offset: if($unit-long == "grad", -100grad * 3, -0.75turn); + } + + @else if ($unit-short == "deg") or + ($unit-short == "rad") { + $offset: if($unit-short == "deg", -90 * 3, 1.6rad); + } + + @if $offset { + $num: _str-to-num($first-val); + + @return ( + webkit-image: -webkit- + $prefix + ($offset - $num) + $suffix, + spec-image: $image + ); + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_linear-gradient-parser.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_linear-gradient-parser.scss new file mode 100644 index 0000000..48a8f77 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_linear-gradient-parser.scss @@ -0,0 +1,41 @@ +@function _linear-gradient-parser($image) { + $image: unquote($image); + $gradients: (); + $start: str-index($image, "("); + $end: str-index($image, ","); + $first-val: str-slice($image, $start + 1, $end - 1); + + $prefix: str-slice($image, 1, $start); + $suffix: str-slice($image, $end, str-length($image)); + + $has-multiple-vals: str-index($first-val, " "); + $has-single-position: unquote(_position-flipper($first-val) + ""); + $has-angle: is-number(str-slice($first-val, 1, 1)); + + @if $has-multiple-vals { + $gradients: _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals); + } + + @else if $has-single-position != "" { + $pos: unquote($has-single-position + ""); + + $gradients: ( + webkit-image: -webkit- + $image, + spec-image: $prefix + "to " + $pos + $suffix + ); + } + + @else if $has-angle { + // Rotate degree for webkit + $gradients: _linear-angle-parser($image, $first-val, $prefix, $suffix); + } + + @else { + $gradients: ( + webkit-image: -webkit- + $image, + spec-image: $image + ); + } + + @return $gradients; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_linear-positions-parser.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_linear-positions-parser.scss new file mode 100644 index 0000000..6d5cb6e --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_linear-positions-parser.scss @@ -0,0 +1,61 @@ +@function _linear-positions-parser($pos) { + $type: type-of(nth($pos, 1)); + $spec: null; + $degree: null; + $side: null; + $corner: null; + $length: length($pos); + // Parse Side and corner positions + @if ($length > 1) { + @if nth($pos, 1) == "to" { // Newer syntax + $side: nth($pos, 2); + + @if $length == 2 { // eg. to top + // Swap for backwards compatability + $degree: _position-flipper(nth($pos, 2)); + } + @else if $length == 3 { // eg. to top left + $corner: nth($pos, 3); + } + } + @else if $length == 2 { // Older syntax ("top left") + $side: _position-flipper(nth($pos, 1)); + $corner: _position-flipper(nth($pos, 2)); + } + + @if ("#{$side} #{$corner}" == "left top") or ("#{$side} #{$corner}" == "top left") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + @else if ("#{$side} #{$corner}" == "right top") or ("#{$side} #{$corner}" == "top right") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + @else if ("#{$side} #{$corner}" == "right bottom") or ("#{$side} #{$corner}" == "bottom right") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + @else if ("#{$side} #{$corner}" == "left bottom") or ("#{$side} #{$corner}" == "bottom left") { + $degree: _position-flipper(#{$side}) _position-flipper(#{$corner}); + } + $spec: to $side $corner; + } + @else if $length == 1 { + // Swap for backwards compatability + @if $type == string { + $degree: $pos; + $spec: to _position-flipper($pos); + } + @else { + $degree: -270 - $pos; //rotate the gradient opposite from spec + $spec: $pos; + } + } + $degree: unquote($degree + ","); + $spec: unquote($spec + ","); + @return $degree $spec; +} + +@function _position-flipper($pos) { + @return if($pos == left, right, null) + if($pos == right, left, null) + if($pos == top, bottom, null) + if($pos == bottom, top, null); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_linear-side-corner-parser.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_linear-side-corner-parser.scss new file mode 100644 index 0000000..7a69125 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_linear-side-corner-parser.scss @@ -0,0 +1,31 @@ +// Private function for linear-gradient-parser +@function _linear-side-corner-parser($image, $first-val, $prefix, $suffix, $has-multiple-vals) { + $val-1: str-slice($first-val, 1, $has-multiple-vals - 1); + $val-2: str-slice($first-val, $has-multiple-vals + 1, str-length($first-val)); + $val-3: null; + $has-val-3: str-index($val-2, " "); + + @if $has-val-3 { + $val-3: str-slice($val-2, $has-val-3 + 1, str-length($val-2)); + $val-2: str-slice($val-2, 1, $has-val-3 - 1); + } + + $pos: _position-flipper($val-1) _position-flipper($val-2) _position-flipper($val-3); + $pos: unquote($pos + ""); + + // Use old spec for webkit + @if $val-1 == "to" { + @return ( + webkit-image: -webkit- + $prefix + $pos + $suffix, + spec-image: $image + ); + } + + // Bring the code up to spec + @else { + @return ( + webkit-image: -webkit- + $image, + spec-image: $prefix + "to " + $pos + $suffix + ); + } +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_radial-arg-parser.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_radial-arg-parser.scss new file mode 100644 index 0000000..56c6030 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_radial-arg-parser.scss @@ -0,0 +1,69 @@ +@function _radial-arg-parser($g1, $g2, $pos, $shape-size) { + @each $value in $g1, $g2 { + $first-val: nth($value, 1); + $pos-type: type-of($first-val); + $spec-at-index: null; + + // Determine if spec was passed to mixin + @if type-of($value) == list { + $spec-at-index: if(index($value, at), index($value, at), false); + } + @if $spec-at-index { + @if $spec-at-index > 1 { + @for $i from 1 through ($spec-at-index - 1) { + $shape-size: $shape-size nth($value, $i); + } + @for $i from ($spec-at-index + 1) through length($value) { + $pos: $pos nth($value, $i); + } + } + @else if $spec-at-index == 1 { + @for $i from ($spec-at-index + 1) through length($value) { + $pos: $pos nth($value, $i); + } + } + $g1: null; + } + + // If not spec calculate correct values + @else { + @if ($pos-type != color) or ($first-val != "transparent") { + @if ($pos-type == number) + or ($first-val == "center") + or ($first-val == "top") + or ($first-val == "right") + or ($first-val == "bottom") + or ($first-val == "left") { + + $pos: $value; + + @if $pos == $g1 { + $g1: null; + } + } + + @else if + ($first-val == "ellipse") + or ($first-val == "circle") + or ($first-val == "closest-side") + or ($first-val == "closest-corner") + or ($first-val == "farthest-side") + or ($first-val == "farthest-corner") + or ($first-val == "contain") + or ($first-val == "cover") { + + $shape-size: $value; + + @if $value == $g1 { + $g1: null; + } + + @else if $value == $g2 { + $g2: null; + } + } + } + } + } + @return $g1, $g2, $pos, $shape-size; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_radial-gradient-parser.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_radial-gradient-parser.scss new file mode 100644 index 0000000..5444d80 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_radial-gradient-parser.scss @@ -0,0 +1,50 @@ +@function _radial-gradient-parser($image) { + $image: unquote($image); + $gradients: (); + $start: str-index($image, "("); + $end: str-index($image, ","); + $first-val: str-slice($image, $start + 1, $end - 1); + + $prefix: str-slice($image, 1, $start); + $suffix: str-slice($image, $end, str-length($image)); + + $is-spec-syntax: str-index($first-val, "at"); + + @if $is-spec-syntax and $is-spec-syntax > 1 { + $keyword: str-slice($first-val, 1, $is-spec-syntax - 2); + $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); + $pos: append($pos, $keyword, comma); + + $gradients: ( + webkit-image: -webkit- + $prefix + $pos + $suffix, + spec-image: $image + ); + } + + @else if $is-spec-syntax == 1 { + $pos: str-slice($first-val, $is-spec-syntax + 3, str-length($first-val)); + + $gradients: ( + webkit-image: -webkit- + $prefix + $pos + $suffix, + spec-image: $image + ); + } + + @else if str-index($image, "cover") or str-index($image, "contain") { + @warn "Radial-gradient needs to be updated to conform to latest spec."; + + $gradients: ( + webkit-image: null, + spec-image: $image + ); + } + + @else { + $gradients: ( + webkit-image: -webkit- + $image, + spec-image: $image + ); + } + + @return $gradients; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_radial-positions-parser.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_radial-positions-parser.scss new file mode 100644 index 0000000..3c552ad --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_radial-positions-parser.scss @@ -0,0 +1,18 @@ +@function _radial-positions-parser($gradient-pos) { + $shape-size: nth($gradient-pos, 1); + $pos: nth($gradient-pos, 2); + $shape-size-spec: _shape-size-stripper($shape-size); + + $pre-spec: unquote(if($pos, "#{$pos}, ", null)) + unquote(if($shape-size, "#{$shape-size},", null)); + $pos-spec: if($pos, "at #{$pos}", null); + + $spec: "#{$shape-size-spec} #{$pos-spec}"; + + // Add comma + @if ($spec != " ") { + $spec: "#{$spec},"; + } + + @return $pre-spec $spec; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_render-gradients.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_render-gradients.scss new file mode 100644 index 0000000..5765676 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_render-gradients.scss @@ -0,0 +1,26 @@ +// User for linear and radial gradients within background-image or border-image properties + +@function _render-gradients($gradient-positions, $gradients, $gradient-type, $vendor: false) { + $pre-spec: null; + $spec: null; + $vendor-gradients: null; + @if $gradient-type == linear { + @if $gradient-positions { + $pre-spec: nth($gradient-positions, 1); + $spec: nth($gradient-positions, 2); + } + } + @else if $gradient-type == radial { + $pre-spec: nth($gradient-positions, 1); + $spec: nth($gradient-positions, 2); + } + + @if $vendor { + $vendor-gradients: -#{$vendor}-#{$gradient-type}-gradient(#{$pre-spec} $gradients); + } + @else if $vendor == false { + $vendor-gradients: "#{$gradient-type}-gradient(#{$spec} #{$gradients})"; + $vendor-gradients: unquote($vendor-gradients); + } + @return $vendor-gradients; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_shape-size-stripper.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_shape-size-stripper.scss new file mode 100644 index 0000000..ee5eda4 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_shape-size-stripper.scss @@ -0,0 +1,10 @@ +@function _shape-size-stripper($shape-size) { + $shape-size-spec: null; + @each $value in $shape-size { + @if ($value == "cover") or ($value == "contain") { + $value: null; + } + $shape-size-spec: "#{$shape-size-spec} #{$value}"; + } + @return $shape-size-spec; +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_str-to-num.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_str-to-num.scss new file mode 100644 index 0000000..3ef1d87 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/helpers/_str-to-num.scss @@ -0,0 +1,50 @@ +//************************************************************************// +// Helper function for linear/radial-gradient-parsers. +// Source: http://sassmeister.com/gist/9647408 +//************************************************************************// +@function _str-to-num($string) { + // Matrices + $strings: "0" "1" "2" "3" "4" "5" "6" "7" "8" "9"; + $numbers: 0 1 2 3 4 5 6 7 8 9; + + // Result + $result: 0; + $divider: 0; + $minus: false; + + // Looping through all characters + @for $i from 1 through str-length($string) { + $character: str-slice($string, $i, $i); + $index: index($strings, $character); + + @if $character == "-" { + $minus: true; + } + + @else if $character == "." { + $divider: 1; + } + + @else { + @if not $index { + $result: if($minus, $result * -1, $result); + @return _convert-units($result, str-slice($string, $i)); + } + + $number: nth($numbers, $index); + + @if $divider == 0 { + $result: $result * 10; + } + + @else { + // Move the decimal dot to the left + $divider: $divider * 10; + $number: $number / $divider; + } + + $result: $result + $number; + } + } + @return if($minus, $result * -1, $result); +} diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/settings/_asset-pipeline.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/settings/_asset-pipeline.scss new file mode 100644 index 0000000..4c6afc5 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/settings/_asset-pipeline.scss @@ -0,0 +1,7 @@ +@charset "UTF-8"; + +/// A global setting to enable or disable the `$asset-pipeline` variable for all functions that accept it. +/// +/// @type Bool + +$asset-pipeline: false !default; diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/settings/_prefixer.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/settings/_prefixer.scss new file mode 100644 index 0000000..8c39051 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/settings/_prefixer.scss @@ -0,0 +1,9 @@ +@charset "UTF-8"; + +/// Global variables to enable or disable vendor prefixes + +$prefix-for-webkit: true !default; +$prefix-for-mozilla: true !default; +$prefix-for-microsoft: true !default; +$prefix-for-opera: true !default; +$prefix-for-spec: true !default; diff --git a/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/settings/_px-to-em.scss b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/settings/_px-to-em.scss new file mode 100644 index 0000000..f2f9a3e --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/app/assets/stylesheets/settings/_px-to-em.scss @@ -0,0 +1 @@ +$em-base: 16px !default; diff --git a/assets/scss/assets/vendor/bourbon/bower.json b/assets/scss/assets/vendor/bourbon/bower.json new file mode 100644 index 0000000..a54d2e8 --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/bower.json @@ -0,0 +1,36 @@ +{ + "name": "bourbon", + "description": "A simple and lightweight mixin library for Sass.", + "version": "4.2.4", + "main": "app/assets/stylesheets/_bourbon.scss", + "license": "MIT", + "ignore": [ + "**/.*", + "CONTRIBUTING.md", + "Gemfile", + "Gemfile.lock", + "Rakefile", + "_site", + "bin", + "bourbon.gemspec", + "features", + "lib", + "package.json", + "sache.json", + "spec" + ], + "keywords": [ + "css", + "mixins", + "sass", + "scss" + ], + "authors": [ + "thoughtbot (http://thoughtbot.com)" + ], + "homepage": "http://bourbon.io", + "repository": { + "type": "git", + "url": "https://github.com/thoughtbot/bourbon.git" + } +} diff --git a/assets/scss/assets/vendor/bourbon/index.js b/assets/scss/assets/vendor/bourbon/index.js new file mode 100644 index 0000000..efe6ebc --- /dev/null +++ b/assets/scss/assets/vendor/bourbon/index.js @@ -0,0 +1,7 @@ +var path = require('path'); + +module.exports = { + includePaths: [ + path.join(__dirname, 'app/assets/stylesheets') + ] +}; diff --git a/assets/scss/global.scss b/assets/scss/global.scss new file mode 100644 index 0000000..e96c107 --- /dev/null +++ b/assets/scss/global.scss @@ -0,0 +1,1232 @@ +/* ========================================================================== + Table of Contents + ========================================================================== */ + +/* + + 0. Includes + 1. Icons + 2. General + 3. Utilities + 4. General + 5. Single Post + 6. Third Party Elements + 7. Pagination + 8. Footer + 9. Media Queries (Tablet) + 10. Media Queries (Mobile) + + */ + +/* ========================================================================== + Global Content + ========================================================================== */ + +.blog-content { + font-size: 1.6rem; + + @include breakpoint(500px) { + font-size: 1.5rem; + } +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 3.2em 0 0 0; +} + +h1 { + font-size: 4rem; + line-height: 1.2em; + + text-indent: -3px; + letter-spacing: -2px; + + @include breakpoint(500px) { + font-size: 2.8rem; + } +} + +h2 { + padding-top: 0; + + font-size: 3rem; + font-weight: bold; + line-height: 1.2em; + + text-indent: -2px; + letter-spacing: -1px; + + border: none; + + @include breakpoint(500px) { + font-size: 2.3rem; + } +} + +h3 { + font-size: 2.5rem; + + @include breakpoint(500px) { + font-size: 2rem; + } +} + +h4 { + font-size: 2.2rem; + + @include breakpoint(500px) { + font-size: 2rem; + } +} + +h5 { + font-size: 2rem; +} + +h6 { + font-size: 1.8rem; +} + +h1 a, +h2 a, +h3 a, +h4 a, +h5 a, +h6 a { + text-decoration: underline; + + color: $darkgrey; + + &:hover { + text-decoration: none; + + color: $blue; + box-shadow: none; + } +} + +.wrap { + position: relative; +} + +.vertical { + position: relative; + top: -2%; + + display: table-cell; + + vertical-align: middle; +} + +/* ========================================================================== + Global Layout + ========================================================================== */ + +.page-wrapper { + padding: 50px 60px; + overflow: hidden; +} + +.blog-header { + position: relative; + + display: table; + width: 100%; + height: 300px; + padding: 0 60px; + margin: -50px -60px 50px; + + text-align: center; + + color: #fff; + background: #303538 no-repeat center center; + background-size: cover; + + @include breakpoint(400px) { + width: 100%; + height: 200px; + padding: 0 15px; + margin: -15px -15px 15px; + } + @include breakpoint(650px) { + width: 114%; + height: 250px; + padding: 0 11%; + margin: -11% 0 11% -18%; + } + @include breakpoint(850px) { + width: 114%; + padding: 0 11%; + margin: -11% 0 11% -18%; + } + @include breakpoint(1100px) { + padding: 0 40px; + margin: -30px -40px 30px; + } + + h1 { + max-width: 640px; + margin: 0 auto; + + font-size: 2.8rem; + font-weight: 200; + + letter-spacing: 0; + + color: #fff; + + @include breakpoint(500px) { + font-size: 1.8rem; + } + @include breakpoint(650px) { + font-size: 2.2rem; + } + @include breakpoint(850px) { + font-size: 2.6rem; + } + } +} +// Hide header on paginated pages +.archive-template .blog-header { + display: none; +} + +.blog-content { + float: left; + width: 63.26531%; +} + +.blog-sidebar { + float: right; + width: 30.61224%; + + h1, + h2, + h3, + h4, + h5, + h6 { + margin-top: 0; + } + + p { + margin: 0 0 15px 0; + + font-size: 17px; + font-weight: 200; + line-height: 1.3em; + } +} + +.widget { + padding: 25px 30px 30px; + margin-bottom: 50px; +} + +@include breakpoint(1100px) { + .page-wrapper { + padding: 30px 40px; + } +} +@include breakpoint(1000px) { + .blog-content, + .blog-sidebar { + float: none; + width: 100%; + } +} +@include breakpoint(850px) { + .page-wrapper { + padding: 8% 11%; + } + .blog-content { + margin-right: 0; + } + .blog-sidebar { + position: static; + + width: 100%; + margin-top: 30px; + } +} +@include breakpoint(650px) { + .page-wrapper { + padding: 6% 9%; + } +} +@include breakpoint(400px) { + .page-wrapper { + padding: 15px; + } +} + +.ghost-love { + display: block; + + text-align: center; + + color: #fff; + background: $blue; + + &:hover { + text-decoration: none; + } + + h3 { + font-size: 2rem; + font-weight: bold; + line-height: 1.1em; + + color: #fff; + } + .highlight { + display: block; + margin: 3rem 0 .5rem 0; + + color: #fff; + + @include breakpoint(1000px) { + display: inline; + margin: 0; + &:before, + &:after { + display: none; + } + } + + &:before, + &:after { + display: inline-block; + + font-weight: 200; + + content: "—"; + } + &:before { + margin-right: 5px; + } + &:after { + margin-left: 5px; + } + } + + h4 { + font-size: 1.5rem; + line-height: 1.4em; + + color: rgba(255,255,255,.8); + } +} + +.ghost-love-button { + padding: 15px 10px; + margin: 80px -30px -30px -30px; + + font-size: 1.5rem; + font-weight: bold; + + text-align: center; + text-transform: uppercase; + + color: #fff; + background: $red; + + @include breakpoint(1000px) { + margin-top: 30px; + } +} + +.ghost-love:hover .ghost-love-button { + background: $darkgrey; +} + +.popular-posts { + padding: 0; + + h3 { + margin-bottom: 2rem; + + font-size: 1.8rem; + font-weight: bold; + + text-transform: uppercase; + } + + mark { + padding: 0 4px; + + font-weight: normal; + + color: #fff; + background: #ffc336; + } + + ol { + padding: 0; + margin: 0; + + list-style: none; + } + + li { + position: relative; + + display: block; + margin: 0 0 2px 0; + + font-size: 1.4rem; + line-height: 1.4em; + + background: lighten($lightgrey, 4%); + + &:hover { + background: $lightgrey; + .number { + background: darken($lightgrey, 4%); + } + } + + &:nth-child(3n) .number { + border-color: $grey; + } + &:nth-child(3n+2) .number { + border-color: $red; + } + } + + a { + display: block; + min-height: 38px; + padding: 15px 15px 15px 75px; + + color: rgba(0,0,0,.7); + + &:hover { + text-decoration: none; + } + } + + .number { + position: absolute; + top: 0; + bottom: 0; + left: 0; + + display: block; + width: 37px; + padding: 10px; + + font-size: 2.8rem; + font-weight: bold; + line-height: 1.5em; + + text-align: center; + + color: rgba(0,0,0,.2); + border-left: $blue 3px solid; + background: $lightgrey; + } +} + +.blog-subscribe { + padding: 0; + + text-align: center; + + h3 { + font-weight: bold; + + text-transform: uppercase; + } + + p { + margin: 1rem 0 2.5rem; + + font-size: 1.6rem; + font-weight: 200; + + color: $brown; + } +}//.blog-subscribe + + +//the modal +#blogsubscribe { + .modal-header { + padding: 50px 50px 0 50px; + + text-align: center; + + border: none; + + @include breakpoint(450px) { + padding: 35px 20px 0 20px; + } + } + .modal-title { + font-size: 2.8rem; + font-weight: bold; + line-height: 1.1em; + + @include breakpoint(450px) { + font-size: 2.2rem; + } + } + .modal-body { + padding: 30px 50px 50px; + + text-align: center; + + @include breakpoint(450px) { + padding: 10px 20px 30px; + } + } + form { + margin: 0; + } + input { + width: 100%; + height: 50px; + padding: 0 15px; + margin-bottom: 1rem; + } + button { + min-height: 50px; + + font-size: 1.8rem; + line-height: 1; + + @include breakpoint(450px) { + font-size: 1.3rem; + } + } + p { + margin: 1rem 0; + + color: $brown; + } +}//#blogsubscribe + + +.twitter-box { + position: relative; + + padding: 0; + + @include breakpoint(1000px) { + display: none; + } + + img { + width: 100%; + } +} + +.twitter-box-profilepic { + position: absolute; + top: 100px; + left: 50%; + + display: block; + width: 100px; + height: 100px; + margin-left: -50px; + + text-align: center; + + border-radius: 100%; + background: $darkgrey; + + img { + width: 40px; + height: auto; + margin-top: 30px; + } +} + +.twitter-box-dev .twitter-box-profilepic { + background: #256097; + + img { + width: 70px; + margin-top: 15px; + } +} + +.twitter-box-content { + padding: 50px 10px 10px; + + text-align: center; + + border: #eee 1px solid; + border-top: none; + + h4 { + font-size: 2rem; + font-weight: bold; + } + p { + margin: .8rem 0; + + font-size: 1.4rem; + line-height: 1.5em; + + color: $grey; + } +} + +.twitter-follow-button { + margin: 1rem 0; +} + +.facebook-box { + min-height: 280px; + padding: 3px 0 0; + + text-align: center; + + border: #eee 1px solid; + border-top: $blue 3px solid; + + @include breakpoint(1000px) { + display: none; + } +} + +.gplus-box { + padding: 0; + + @include breakpoint(1000px) { + display: none; + } +} + +.blog-text { + color: $midgrey; + border: $lightbrown 1px solid; + background: lighten($lightbrown, 4%); + + ul { + padding: 0 0 0 1.2em; + margin: 0; + } +} + +.post { + margin-bottom: 40px; + + border-bottom: darken($lightgrey, 5%) 1px dashed; + + @include breakpoint(500px) { + margin-bottom: 25px; + } +} + +.post-title { + margin: 0; +} + +.post-title a { + text-decoration: none; +} + +.post-excerpt p { + margin: 2.6rem 0; + + @include breakpoint(500px) { + margin: 2rem 0; + } +} + +.post-meta { + margin: 5px 0; + + font-size: 1.4rem; + + color: #9eabb3; + + .author-img { + float: left; + width: 24px; + height: 24px; + margin-right: 9px; + + @include breakpoint(500px) { + display: none; + } + } +} + +.author-img { + border-radius: 100%; +} + +.post-meta a { + text-decoration: none; + + color: #9eabb3; +} + +.post-meta a:hover { + text-decoration: underline; +} + +.more-links { + margin: 2em 0; + + @include breakpoint(500px) { + margin: 1.6em 0; + .right { + display: none; + } + } +} + +.read-more { + min-height: 0; + padding: .3em .5em; + + font-size: 10px; + line-height: 12px; + + vertical-align: top; + + @include breakpoint(500px) { + padding: 1em; + } +} + +/* ========================================================================== + Single Post + ========================================================================== */ + +.post-template { + .post { + margin-bottom: 0; + + border-bottom: none; + } +} + +.post-content { + margin-bottom: 3.2em; +} + +.post-content img { + display: block; + height: auto; + max-width: 100%; + margin: 2.2em auto; + + @include breakpoint(500px) { + margin: 1.6em auto; + } +} + +.post-content .full-img { + width: calc(100% + 60px); + max-width: none; + margin-left: -60px; + + @include breakpoint(400px) { + width: 100%; + width: calc(100% + 30px); + margin-right: -15px; + margin-left: -15px; + } + @include breakpoint(650px) { + width: 122%; + margin-right: -11%; + margin-left: -11%; + } + @include breakpoint(850px) { + width: 130%; + margin-right: -15%; + margin-left: -15%; + } + @include breakpoint(1100px) { + width: calc(100% + 40px); + margin-left: -40px; + } +} + +.share { + margin: 1.6em 0; + + @include breakpoint(750px) { + display: none; + } +} + +.twitter-share-button { + margin-right: 30px; +} + +.fb-like { + line-height: 1.2rem; +} + +.post-template .fb-like { + margin-right: 30px; +} + +.pocket-btn { + display: inline-block; + margin-right: -10px; + + vertical-align: top; +} + +[class^="PIN_"] { + @include transition(none); +} + +.author { + position: relative; + + padding: 30px; + margin: 1.6em 0; + + border: $lightgrey 2px dashed; + background: lighten($lightgrey, 5%); + + .author-img { + position: absolute; + top: 30px; + left: 30px; + + width: 80px; + height: 80px; + + border: #fff 5px solid; + } +} + +.author-meta { + margin-left: 120px; + + h4 { + margin-top: .25rem; + } + + p { + margin: 1rem 0 0 0; + + font-size: 1.4rem; + } +} + +@include breakpoint(550px) { + .author { + padding: 20px; + + text-align: center; + } + .author .author-img { + position: static; + } + .author-meta { + margin-left: 0; + } + .author-meta p { + font-size: 1.3rem; + } +} + +.footnotes { + font-size: 1.3rem; + font-style: italic; + + li { + margin: .6rem 0; + } + + p { + margin: 0; + } +} + +.comments { + margin-top: 3.2em; +} + +/* ========================================================================== + Pagination - Tools to let you flick between pages + ========================================================================== */ + +/* The main wrapper for our pagination links */ +.pagination { + position: relative; + + margin: 40px auto 20px; + + font-size: 1.3rem; + + text-align: center; + + color: #9eabb3; +} + +.pagination a { + color: #9eabb3; + + &:hover { + text-decoration: none; + } +} + +/* Push the previous/next links out to the left/right */ +.older-posts, +.newer-posts { + position: absolute; + + display: inline-block; + padding: 5px 15px; + + transition: border ease .3s; + text-decoration: none; + + border: #ebf2f6 2px solid; + border-radius: 30px; + + @include breakpoint(500px) { + position: static; + + margin: 10px 0; + } +} + +.older-posts { + right: 0; +} + +.page-number { + display: inline-block; + padding: 5px 0; + + @include breakpoint(500px) { + display: block; + } +} + +.newer-posts { + left: 0; +} + +.older-posts:hover, +.newer-posts:hover { + border-color: #9eabb3; +} + +//misc hack - no idea why this is needed, but it is +@media (min-width: 768px) { + .navbar-collapse.closed { + display: block!important; + height: auto!important; + padding-bottom: 0; + overflow: visible!important; + } +} + +/* ========================================================================== + Subscriber Banner - Top of Blog + ========================================================================== */ + +.subscribe-banner { + width: 100%; + padding: 10px 0; + + font-size: 1.6rem; + font-weight: bold; + + text-align: center; + + color: #fff; + background: $red; + + .button { + color: #fff; + background: $darkgrey; + + &:hover { + background: #111; + } + } + + @media (max-width: 800px) { + display: none; + } +} + +/* ========================================================================== + 7. Read More - Next/Prev Post Links + ========================================================================== */ + +.read-next { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + margin: 4rem 0; + overflow: hidden; + + border-radius: 5px; + + -webkit-align-items: stretch; + align-items: stretch; + -webkit-box-align: stretch; + -ms-flex-align: stretch; +} + +.read-next-story { + position: relative; + + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + min-width: 50%; + overflow: hidden; + + text-align: center; + text-decoration: none; + + color: #fff; + background: #222 no-repeat center center; + background-size: cover; + + -webkit-box-flex: 1; + -webkit-flex-grow: 1; + flex-grow: 1; + -ms-flex-positive: 1; +} +.read-next-story:hover { + text-decoration: none; +} +.read-next-story:hover:before { + transition: all .2s ease; + + background: rgba(0,0,0,.8); +} +.read-next-story:hover .post:before { + transition: all .2s ease; + + color: #222; + background: #fff; +} + +.read-next-story:before { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + + display: block; + + content: ""; + transition: all .5s ease; + + background: rgba(0,0,0,.7); +} + +.read-next-story .post { + position: relative; + + width: 80%; + padding-top: 6rem; + padding-bottom: 6rem; + margin: 0 auto; +} + +.read-next-story .post:before { + padding: 4px 10px 5px; + + font-family: "Open Sans", sans-serif; + font-size: 1.1rem; + + content: "Read This Next"; + transition: all .5s ease; + text-transform: uppercase; + + color: rgba(255,255,255,.8); + border: rgba(255,255,255,.5) 1px solid; + border-radius: 4px; +} +.read-next-story.prev .post:before { + content: "You Might Enjoy"; +} + +.read-next-story h2 { + margin-top: 1rem; + + color: #fff; +} + +.read-next-story p { + margin: 5px 0 0 0; + + font-weight: 200; + line-height: 1.4em; + + color: rgba(255,255,255,.8); +} + +/* Special styles for posts with no cover images */ +.read-next-story.no-cover { + background: #fff; +} + +.read-next-story.no-cover:before { + display: none; +} + +.read-next-story.no-cover .post:before { + color: rgba(0,0,0,.5); + border-color: rgba(0,0,0,.2); +} + +.read-next-story.no-cover:hover .post:before { + color: $blue; + border-color: $blue; +} + +.read-next-story.no-cover h2 { + color: rgba(0,0,0,.8); +} + +.read-next-story.no-cover p { + color: rgba(0,0,0,.5); +} + +/* if there are two posts without covers, put a border between them */ +.read-next-story.no-cover + .read-next-story.no-cover { + border-left: rgba(0,0,100,.04) 1px solid; +} + + +/* ========================================================================== + Prism + ========================================================================== */ + +code[class*="language-"], +pre[class*="language-"] { + font-family: Consolas, Monaco, "Andale Mono", monospace; + line-height: 1.5; + + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + -webkit-hyphens: none; + -moz-hyphens: none; + hyphens: none; + + color: #f8f8f2; + text-shadow: 0 1px rgba(0, 0, 0, .3); + + direction: ltr; + -ms-hyphens: none; +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; + + border-radius: .3em; +} + +:not(pre) > code[class*="language-"], +pre[class*="language-"] { + background: #272822; +} + +/* Inline code */ +:not(pre) > code[class*="language-"] { + padding: .1em; + + border-radius: .3em; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #f8f8f2; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.constant, +.token.symbol, +.token.deleted { + color: #f92672; +} + +.token.boolean, +.token.number { + color: #ae81ff; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #a6e22e; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string, +.token.variable { + color: #f8f8f2; +} + +.token.atrule, +.token.attr-value, +.token.function { + color: #e6db74; +} + +.token.keyword { + color: #66d9ef; +} + +.token.regex, +.token.important { + color: #fd971f; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/assets/scss/itch.scss b/assets/scss/itch.scss new file mode 100644 index 0000000..8dab7d7 --- /dev/null +++ b/assets/scss/itch.scss @@ -0,0 +1,2 @@ +@import 'variables.scss'; +@import 'global.scss' diff --git a/assets/scss/variables.scss b/assets/scss/variables.scss new file mode 100644 index 0000000..fbbacf3 --- /dev/null +++ b/assets/scss/variables.scss @@ -0,0 +1,41 @@ +// Bourbon - http://bourbon.io/ +@import "assets/vendor/bourbon/app/assets/stylesheets/bourbon"; +$rounded : 2px; +$shadow : rgba(0,0,0,0.05) 0 1px 5px; +$default-transition-duration : 0.3s; + +// Breakpoint - http://breakpoint-sass.com/ +@import "../vendor/compass-breakpoint/stylesheets/breakpoint"; +$breakpoint-default-feature : max-width; + +// Max widths +$netbook : 1000px; +$tablet : 800px; +$mobile : 400px; + +// Min widths +$biggerthan-widescreen : min-width 1500px, min-width 1500px; +$biggerthan-netbook : min-width 1000px, min-width 1000px; +$biggerthan-tablet : min-width 800px, min-width 800px; +$biggerthan-mobile : min-width 401px, min-width 401px; + +// Heights +$letterbox : max-height 600px, max-height 600px; + +// Pixel Densities +$retina : min-resolution 1.5dppx; + +// Colors +$darkgrey : #242628; +$grey : #35393b; +$midgrey : #7d878a; +$lightgrey : #e2edf2; + +$brown : #aaa9a2; +$midbrown : #c0bfb6; +$lightbrown : #edece4; + +$blue : #5BA4E5; +$red : #e25440; +$orange : #F2A925; +$green : #9FBB58; diff --git a/author.hbs b/author.hbs new file mode 100644 index 0000000..b7fed6f --- /dev/null +++ b/author.hbs @@ -0,0 +1,45 @@ +{{!< default}} + +
+
+

Posts by {{author.name}}

+
+
+ +
+
+ + {{#foreach posts}} + +
+
+

{{{title}}}

+ +
+
+

{{excerpt words="55"}}…

+
+ +
+ + {{/foreach}} + + {{pagination}} + +
+ + {{> sidebar}} + +
\ No newline at end of file diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..36ac436 --- /dev/null +++ b/bower.json @@ -0,0 +1,40 @@ +{ + "name": "Itch", + "description": "Ghost theme for brands", + "homepage": "https://github.com/kikobeats/Itch", + "version": "0.0.0", + "authors": [ + "Kiko Beats " + ], + "repository": { + "type": "git", + "url": "https://github.com/kikobeats/Itch" + }, + "bugs": { + "url": "https://github.com/Kikobeats/Itch/issues" + }, + "keywords": [ + "ghost", + "theme", + "uno", + "zen", + "elegant", + "minimalism" + ], + "dependencies": { + "fitvids": "*" + }, + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "assets/vendor ", + "test", + "tests" + ], + "private": true, + "license": "MIT", + "devDependencies": { + "compass-breakpoint": "breakpoint-sass#~2.6.1" + } +} diff --git a/default.hbs b/default.hbs new file mode 100644 index 0000000..917c389 --- /dev/null +++ b/default.hbs @@ -0,0 +1,131 @@ + + + + {{! Document Settings }} + + + + {{! Page Meta }} + {{meta_title}} + + + + + + + + {{! Styles'n'Scripts }} + + + + + {{ghost_head}} + + +
+ + + +
+
+ {{{body}}} +
+
+
+ + + +
+ + + + {{ghost_foot}} + + + + + + + + {{! Twitter buttons }} + + {{! Facebook buttons }} + + {{! Google+ buttons }} + + + diff --git a/gulpfile.coffee b/gulpfile.coffee new file mode 100755 index 0000000..a723610 --- /dev/null +++ b/gulpfile.coffee @@ -0,0 +1,91 @@ +# -- Dependencies -------------------------------------------------------------- + +gulp = require 'gulp' +gutil = require 'gulp-util' +sass = require 'gulp-sass' +concat = require 'gulp-concat' +coffee = require 'gulp-coffee' +header = require 'gulp-header' +uglify = require 'gulp-uglify' +cssmin = require 'gulp-cssmin' +addsrc = require 'gulp-add-src' +changed = require 'gulp-changed' +pkg = require './package.json' +_s = require 'underscore.string' +prefix = require 'gulp-autoprefixer' +strip = require 'gulp-strip-css-comments' +browserSync = require 'browser-sync' +reload = browserSync.reload + +PORT = + GHOST: 2368 + BROWSERSYNC: 3000 + +# -- Files --------------------------------------------------------------------- + +dist = + name : _s.slugify(pkg.name) + css : 'assets/css' + js : 'assets/js' + +src = + sass: + main : 'assets/scss/itch.scss' + files : ['assets/scss/**/**'] + js : + main : ['assets/js/src/main.js'] + vendor : ['assets/js/src/prism.js' + 'assets/vendor/fitvids/jquery.fitvids.js'] + css : + main : 'assets/css/' + dist.name + '.css' + vendor : [] + +banner = [ "/**" + " * <%= pkg.name %> - <%= pkg.description %>" + " * @version <%= pkg.version %>" + " * @link <%= pkg.homepage %>" + " * @author <%= pkg.author.name %> (<%= pkg.author.url %>)" + " * @license <%= pkg.license %>" + " */" + "" ].join("\n") + +gulp.task 'css', -> + gulp.src src.css.vendor + .pipe changed dist.css + .pipe addsrc src.sass.main + .pipe sass().on "error", gutil.log + .pipe concat dist.name + '.css' + .pipe prefix() + .pipe strip + all: true + .pipe cssmin() + .pipe header banner, pkg: pkg + .pipe gulp.dest dist.css + return + +gulp.task 'js', -> + gulp.src src.js.main + .pipe changed dist.js + #.pipe coffee() + .pipe addsrc src.js.vendor + .pipe concat dist.name + '.js' + .pipe uglify mangle: false + .pipe header banner, pkg: pkg + .pipe gulp.dest dist.js + return + +gulp.task 'server', -> + browserSync.init null, + proxy: "http://127.0.0.1:#{PORT.GHOST}" + files: ["assets/**/*.*"] + reloadDelay: 300 + port: PORT.BROWSERSYNC + return + +gulp.task 'build', ['css', 'js'] + +gulp.task "default", -> + gulp.start ["build", "server"] + gulp.watch src.sass.files, ["css"] + gulp.watch src.js.main, ["js"] + gulp.watch src.js.vendor, ["js"] diff --git a/index.hbs b/index.hbs new file mode 100644 index 0000000..8b487eb --- /dev/null +++ b/index.hbs @@ -0,0 +1,45 @@ +{{!< default}} + +
+
+

{{@blog.description}}

+
+
+ +
+
+ + {{#foreach posts}} + +
+
+

{{{title}}}

+ +
+
+

{{excerpt words="55"}}…

+
+ +
+ + {{/foreach}} + + {{pagination}} + +
+ + {{> sidebar}} + +
\ No newline at end of file diff --git a/index.js b/index.js new file mode 100644 index 0000000..3eeb6d8 --- /dev/null +++ b/index.js @@ -0,0 +1,3 @@ +'use strict'; +require('coffee-script/register'); +module.exports = {}; diff --git a/package.json b/package.json new file mode 100644 index 0000000..28f1165 --- /dev/null +++ b/package.json @@ -0,0 +1,46 @@ +{ + "name": "Itch", + "description": "Ghost theme for brands", + "homepage": "https://github.com/Kikobeats/Itch", + "version": "0.0.0", + "main": "./index.js", + "author": { + "name": "Kiko Beats", + "email": "josefrancisco.verdu@gmail.com", + "url": "https://github.com/Kikobeats" + }, + "repository": "Kikobeats/Itch", + "bugs": { + "url": "https://github.com/Kikobeats/Itch/issues" + }, + "keywords": [], + "dependencies": { + "breakpoint-sass": "^2.6.1" + }, + "devDependencies": { + "browser-sync": "*", + "coffee-script": "^1.10.0", + "gulp": "*", + "gulp-add-src": "*", + "gulp-autoprefixer": "*", + "gulp-changed": "*", + "gulp-coffee": "*", + "gulp-concat": "*", + "gulp-cssmin": "*", + "gulp-header": "*", + "gulp-minify-css": "*", + "gulp-sass": "*", + "gulp-strip-css-comments": "*", + "gulp-uglify": "*", + "gulp-util": "*", + "underscore.string": "^3.2.2" + }, + "engines": { + "node": ">= 0.10.0", + "npm": ">= 1.4.0" + }, + "scripts": { + "test": "sh test/test.sh" + }, + "license": "MIT" +} diff --git a/page.hbs b/page.hbs new file mode 100644 index 0000000..3db861f --- /dev/null +++ b/page.hbs @@ -0,0 +1,25 @@ +{{!< default}} + +
+
+ + + +
+ + {{> sidebar}} + +
diff --git a/partials/sidebar.hbs b/partials/sidebar.hbs new file mode 100644 index 0000000..a6f3ab5 --- /dev/null +++ b/partials/sidebar.hbs @@ -0,0 +1,78 @@ + diff --git a/post.hbs b/post.hbs new file mode 100644 index 0000000..e9395c8 --- /dev/null +++ b/post.hbs @@ -0,0 +1,99 @@ +{{!< default}} + +
+
+ +
+ {{#post}} + + + +

{{{title}}}

+ + +
+ {{#if image}}Post image{{/if}} + {{content}} +
+ +
+ + + +
+ Author image +
+

{{author.name}}

+

{{author.bio}} {{author.website}}

+
+
+ + + + Subscribe to Weekly Posts + +
+ +
+
+ +
+ + {{/post}} +
+ +
+ + {{> sidebar}} + +
diff --git a/tag.hbs b/tag.hbs new file mode 100644 index 0000000..304fa6d --- /dev/null +++ b/tag.hbs @@ -0,0 +1,45 @@ +{{!< default}} + +
+
+

Posts on {{tag.name}}

+
+
+ +
+
+ + {{#foreach posts}} + +
+
+

{{{title}}}

+ +
+
+

{{excerpt words="55"}}…

+
+ +
+ + {{/foreach}} + + {{pagination}} + +
+ + {{> sidebar}} + +
\ No newline at end of file