├── .meteor ├── .gitignore ├── release ├── platforms ├── .id ├── .finished-upgraders ├── packages └── versions ├── client ├── partials │ ├── MainNav.js │ ├── MainNav.html │ ├── Header.html │ └── AppNav.html ├── pages │ ├── Dashboard.html │ └── Home.html └── layouts │ ├── HomeLayout.html │ ├── MainLayout.html │ └── AppLayout.html ├── public ├── topics.png ├── met-stars.png └── logo.svg ├── .gitignore ├── index.html ├── routes.js ├── README.md ├── sass ├── accounts.scss ├── _base.scss └── _normalize.scss └── style.scss /.meteor/.gitignore: -------------------------------------------------------------------------------- 1 | local 2 | -------------------------------------------------------------------------------- /client/partials/MainNav.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.meteor/release: -------------------------------------------------------------------------------- 1 | METEOR@1.3.1 2 | -------------------------------------------------------------------------------- /.meteor/platforms: -------------------------------------------------------------------------------- 1 | server 2 | browser 3 | -------------------------------------------------------------------------------- /public/topics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leveluptuts/Blaze-Base/HEAD/public/topics.png -------------------------------------------------------------------------------- /public/met-stars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leveluptuts/Blaze-Base/HEAD/public/met-stars.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | client/accounts 3 | client/accounts/* 4 | 5 | settings.json 6 | mup.json 7 | -------------------------------------------------------------------------------- /client/pages/Dashboard.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | Topics In Meteor 3 | 4 | -------------------------------------------------------------------------------- /client/layouts/HomeLayout.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /client/layouts/MainLayout.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /client/layouts/AppLayout.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/partials/MainNav.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/partials/Header.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /client/partials/AppNav.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.meteor/.id: -------------------------------------------------------------------------------- 1 | # This file contains a token that is unique to your project. 2 | # Check it into your repository along with the rest of this directory. 3 | # It can be used for purposes such as: 4 | # - ensuring you don't accidentally deploy one app on top of another 5 | # - providing package authors with aggregated statistics 6 | 7 | 1hmsr0i17jqlmawlcnap 8 | -------------------------------------------------------------------------------- /client/pages/Home.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /routes.js: -------------------------------------------------------------------------------- 1 | // Home Page 2 | FlowRouter.route('/', { 3 | name: 'home', 4 | action() { 5 | BlazeLayout.render("HomeLayout", {main: "Home"}); 6 | } 7 | }); 8 | 9 | // Home Page 10 | FlowRouter.route('/dashboard', { 11 | name: 'dashboard', 12 | action() { 13 | BlazeLayout.render("AppLayout", {main: "Dashboard"}); 14 | } 15 | }); -------------------------------------------------------------------------------- /.meteor/.finished-upgraders: -------------------------------------------------------------------------------- 1 | # This file contains information which helps Meteor properly upgrade your 2 | # app when you run 'meteor update'. You should check it into version control 3 | # with your project. 4 | 5 | notices-for-0.9.0 6 | notices-for-0.9.1 7 | 0.9.4-platform-file 8 | notices-for-facebook-graph-api-2 9 | 1.2.0-standard-minifiers-package 10 | 1.2.0-meteor-platform-split 11 | 1.2.0-cordova-changes 12 | 1.2.0-breaking-changes 13 | 1.3.0-split-minifiers-package 14 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Level Up Tutorials Meteor Blaze Base 2 | 3 | 4 | ## How To Use 5 | 6 | Clone or download this repo. Browse to wherever downloaded in your terminal. 7 | 8 | ``` 9 | cd base-blaze 10 | meteor 11 | ``` 12 | 13 | Open up http://localhost:3000 and see this. 14 | 15 | ![Topics In Meteor](/public/topics.png) 16 | 17 | ## What is this? 18 | 19 | This is the base repo for starting any of the Meteor Blaze Topics Tutorials 20 | 21 | ## What this is not 22 | 23 | This is not a starter theme, base theme, or UI framework. -------------------------------------------------------------------------------- /sass/accounts.scss: -------------------------------------------------------------------------------- 1 | @import '_base.scss'; 2 | 3 | .login-modal { 4 | position: fixed; 5 | border: solid 4px $dblue; 6 | top: 20%; 7 | left: 50%; 8 | padding: 20px; 9 | width: 50%; 10 | transform: translate3d(25%, -80%, 0) scale(0.5); 11 | background: #FFF; 12 | opacity: 0; 13 | @include trans(); 14 | @include card(4); 15 | &.open { 16 | opacity: 1; 17 | transform: translateX(-50%) scale(1); 18 | } 19 | h3 { 20 | margin-top: 0; 21 | } 22 | .close-login { 23 | position: absolute; 24 | top: 0; 25 | right: 0; 26 | display: block; 27 | cursor: pointer; 28 | font-size: 2em; 29 | padding: 10px 15px; 30 | opacity: 0.2; 31 | } 32 | } 33 | 34 | .at-input { 35 | margin-bottom: 10px; 36 | } 37 | -------------------------------------------------------------------------------- /.meteor/packages: -------------------------------------------------------------------------------- 1 | # Meteor packages used by this project, one per line. 2 | # Check this file (and the other files in this directory) into your repository. 3 | # 4 | # 'meteor add' and 'meteor remove' will edit this file for you, 5 | # but you can also edit it by hand. 6 | 7 | meteor-base # Packages every Meteor app needs to have 8 | mobile-experience # Packages for a great mobile UX 9 | mongo # The database Meteor supports right now 10 | blaze-html-templates # Compile .html files into Meteor Blaze views 11 | session # Client-side reactive dictionary for your app 12 | jquery # Helpful client-side library 13 | tracker # Meteor's client-side reactive programming library 14 | 15 | es5-shim # ECMAScript 5 compatibility for older browsers. 16 | ecmascript # Enable ECMAScript2015+ syntax in app code 17 | 18 | 19 | meteortoys:allthings 20 | kadira:flow-router 21 | kadira:blaze-layout 22 | 23 | fourseven:scss 24 | fortawesome:fontawesome 25 | standard-minifier-css 26 | standard-minifier-js 27 | -------------------------------------------------------------------------------- /sass/_base.scss: -------------------------------------------------------------------------------- 1 | @mixin trans($sec: 0.2s) { 2 | -webkit-transition: all $sec ease-out; 3 | -moz-transition: all $sec ease-out; 4 | -ms-transition: all $sec ease-out; 5 | -o-transition: all $sec ease-out; 6 | transition: all $sec ease-out; 7 | } 8 | 9 | @function top-shadow($depth) { 10 | $primary-offset: nth(1.5 3 10 14 19, $depth) * 1px; 11 | $blur: nth(1.5 3 10 14 19, $depth) * 4px; 12 | $color: rgba(black, nth(.12 .16 .19 .25 .30, $depth)); 13 | 14 | @return 0 $primary-offset $blur $color; 15 | } 16 | @function bottom-shadow($depth) { 17 | $primary-offset: nth(1.5 3 6 10 15, $depth) * 1px; 18 | $blur: nth(1 3 3 5 6, $depth) * 4px; 19 | $color: rgba(black, nth(.24 .23 .23 .22 .22, $depth)); 20 | 21 | @return 0 $primary-offset $blur $color; 22 | } 23 | @mixin card($depth) { 24 | @if $depth < 1 { 25 | box-shadow: none; 26 | } @else if $depth > 5 { 27 | @warn "Invalid $depth `#{$depth}` for mixin `card`."; 28 | } @else { 29 | box-shadow: bottom-shadow($depth), top-shadow($depth); 30 | } 31 | } 32 | 33 | // Base Colors 34 | $red: #de4f4f; 35 | $blue: #1b66ff; 36 | $dblue: #19283f; 37 | $grey: #f7f7f7; 38 | $dgrey: #CCC; 39 | $black: #27272b; 40 | 41 | 42 | 43 | // Interface Colors 44 | $text: $black; 45 | $action: $red; 46 | $accent: $blue; 47 | $nav: $dblue; -------------------------------------------------------------------------------- /.meteor/versions: -------------------------------------------------------------------------------- 1 | accounts-base@1.2.5 2 | allow-deny@1.0.3 3 | autoupdate@1.2.7 4 | babel-compiler@6.6.1 5 | babel-runtime@0.1.7 6 | base64@1.0.7 7 | binary-heap@1.0.7 8 | blaze@2.1.6 9 | blaze-html-templates@1.0.3 10 | blaze-tools@1.0.7 11 | boilerplate-generator@1.0.7 12 | caching-compiler@1.0.3 13 | caching-html-compiler@1.0.5 14 | callback-hook@1.0.7 15 | check@1.1.3 16 | dburles:mongo-collection-instances@0.3.4 17 | ddp@1.2.4 18 | ddp-client@1.2.4 19 | ddp-common@1.2.4 20 | ddp-rate-limiter@1.0.3 21 | ddp-server@1.2.5 22 | deps@1.0.11 23 | diff-sequence@1.0.4 24 | ecmascript@0.4.2 25 | ecmascript-runtime@0.2.9 26 | ejson@1.0.10 27 | email@1.0.11 28 | es5-shim@4.5.9 29 | fastclick@1.0.10 30 | fortawesome:fontawesome@4.5.0 31 | fourseven:scss@3.4.1 32 | geojson-utils@1.0.7 33 | gwendall:body-events@0.1.6 34 | hot-code-push@1.0.3 35 | html-tools@1.0.8 36 | htmljs@1.0.8 37 | http@1.1.4 38 | id-map@1.0.6 39 | jquery@1.11.7 40 | kadira:blaze-layout@2.3.0 41 | kadira:flow-router@2.11.0 42 | lai:collection-extensions@0.1.4 43 | launch-screen@1.0.10 44 | livedata@1.0.17 45 | localstorage@1.0.8 46 | logging@1.0.11 47 | meteor@1.1.13 48 | meteor-base@1.0.3 49 | meteortoys:allthings@2.3.1 50 | meteortoys:authenticate@2.1.0 51 | meteortoys:autopub@2.1.0 52 | meteortoys:blueprint@2.1.0 53 | meteortoys:email@2.1.0 54 | meteortoys:hotreload@2.1.0 55 | meteortoys:listen@2.1.0 56 | meteortoys:method@3.0.2 57 | meteortoys:pub@3.0.2 58 | meteortoys:result@2.1.0 59 | meteortoys:shell@2.1.0 60 | meteortoys:status@2.1.0 61 | meteortoys:sub@2.1.0 62 | meteortoys:throttle@2.1.0 63 | meteortoys:toykit@2.2.1 64 | minifier-css@1.1.10 65 | minifier-js@1.1.10 66 | minimongo@1.0.13 67 | mobile-experience@1.0.3 68 | mobile-status-bar@1.0.11 69 | modules@0.5.2 70 | modules-runtime@0.6.2 71 | mongo@1.1.6 72 | mongo-id@1.0.3 73 | msavin:jetsetter@1.5.2 74 | msavin:mongol@1.6.2 75 | npm-mongo@1.4.42 76 | observe-sequence@1.0.10 77 | ordered-dict@1.0.6 78 | promise@0.6.6 79 | random@1.0.8 80 | rate-limit@1.0.3 81 | reactive-dict@1.1.6 82 | reactive-var@1.0.8 83 | reload@1.1.7 84 | retry@1.0.6 85 | routepolicy@1.0.9 86 | service-configuration@1.0.8 87 | session@1.1.4 88 | spacebars@1.0.10 89 | spacebars-compiler@1.0.10 90 | standard-minifier-css@1.0.5 91 | standard-minifier-js@1.0.5 92 | templating@1.1.8 93 | templating-tools@1.0.3 94 | tracker@1.0.12 95 | ui@1.0.10 96 | underscore@1.0.7 97 | url@1.0.8 98 | webapp@1.2.7 99 | webapp-hashing@1.0.8 100 | -------------------------------------------------------------------------------- /style.scss: -------------------------------------------------------------------------------- 1 | @import 'sass/_normalize.scss'; 2 | @import 'sass/_base.scss'; 3 | 4 | html { 5 | box-sizing: border-box; 6 | } 7 | 8 | *, *:before, *:after { 9 | box-sizing: inherit; 10 | } 11 | 12 | body { 13 | color: $text; 14 | font-family: 'Open Sans', sans-serif; 15 | } 16 | 17 | h1 { 18 | font-weight: 100; 19 | font-size: 3.998em; 20 | } 21 | 22 | h2 { 23 | font-weight: 100; 24 | font-size: 3.157em; 25 | } 26 | 27 | h3 { 28 | font-size: 1.777em; 29 | font-weight: 100; 30 | } 31 | 32 | p { 33 | font-size: 1em; 34 | } 35 | 36 | a { 37 | color: $accent; 38 | } 39 | 40 | input[type="text"], 41 | input[type="email"], 42 | input[type="password"] { 43 | padding: 10px 10px 7px; 44 | } 45 | 46 | .btn, button { 47 | background: $action; 48 | text-transform: uppercase; 49 | text-decoration: none; 50 | display: inline-block; 51 | font-weight: 800; 52 | padding: 10px 51px 7px; 53 | color: #FFF; 54 | letter-spacing: 1px; 55 | border: solid 2px $action; 56 | @include trans(); 57 | &:hover { 58 | background: $action - 30; 59 | border-color: $action - 30; 60 | } 61 | } 62 | 63 | .btn-text { 64 | @extend .btn; 65 | background: transparent; 66 | } 67 | 68 | .btn-primary { 69 | @extend .btn; 70 | background: $accent; 71 | border: solid 2px $accent; 72 | &:hover { 73 | background: $accent - 30; 74 | border-color: $accent - 30; 75 | } 76 | } 77 | 78 | 79 | .header { 80 | background: white; 81 | border-bottom: 1px solid $dgrey; 82 | color: $text; 83 | position: relative; 84 | z-index: 10; 85 | height: 60px; 86 | padding: 5px 5%; 87 | display: flex; 88 | justify-content: space-between; 89 | @include card(1); 90 | a { 91 | color: $text; 92 | } 93 | .site-title { 94 | line-height: 0; 95 | margin: 0; 96 | } 97 | } 98 | 99 | .main-nav { 100 | ul { 101 | list-style: none; 102 | display: flex; 103 | padding: 0; 104 | } 105 | li + li { 106 | margin-left: 20px; 107 | } 108 | a { 109 | text-decoration: none; 110 | border-bottom: 2px solid transparent; 111 | } 112 | } 113 | 114 | .login-toggle { 115 | cursor: pointer; 116 | } 117 | 118 | 119 | // Homepage 120 | .billboard { 121 | background-image: url('/met-stars.png'), linear-gradient(#202023, #19283f); 122 | color: #FFF; 123 | text-align: center; 124 | border-bottom: 1px solid $dgrey; 125 | padding: 40px 5%; 126 | } 127 | 128 | 129 | .app-layout { 130 | margin-left: 80px; 131 | min-height: 100vh; 132 | padding: 40px 60px; 133 | } 134 | 135 | .app-nav { 136 | z-index: 9; 137 | position: fixed; 138 | width: 80px; 139 | left: 0; 140 | top: 0; 141 | height: 100vh; 142 | background: white; 143 | overflow: hidden; 144 | color: $text; 145 | padding-top: 100px; 146 | transition: all 0.3s ease; 147 | border-right: solid 1px $dgrey; 148 | &:hover { 149 | width: 300px; 150 | a > span { 151 | opacity: 1; 152 | transform: translate3d(0, 0,0); 153 | } 154 | } 155 | a { 156 | width: 100%; 157 | padding: 10px 25px; 158 | color: $text; 159 | display: block; 160 | white-space: nowrap; 161 | font-size: 1em; 162 | text-decoration: none; 163 | border-bottom: 2px solid transparent; 164 | transition: all 0.3s ease; 165 | i { 166 | font-size: 2em; 167 | margin-right: 20px; 168 | } 169 | > span { 170 | transform: translate3d(20px, 0,0); 171 | opacity: 0; 172 | transition: background 0.3s ease; 173 | } 174 | &:hover { 175 | color: #FFF; 176 | border-color: $action; 177 | background: $nav - 20; 178 | } 179 | } 180 | ul { 181 | padding: 0; 182 | margin: 0; 183 | list-style: none; 184 | } 185 | } 186 | 187 | .page-title { 188 | margin-top: 0; 189 | } 190 | 191 | table { 192 | font-size: 0.8em; 193 | width: 100%; 194 | position: relative; 195 | transition: all 0.4s cubic-bezier(0.68, -0.65, 0.265, 1.20); 196 | @include card(2); 197 | tr:nth-child(even) { 198 | background: #EEE 199 | } 200 | td, th { 201 | text-align: left; 202 | padding: 10px 5px; 203 | } 204 | th { 205 | text-transform: uppercase; 206 | background: $dblue; 207 | color: #fff; 208 | } 209 | &.edit-mode { 210 | transform: translate3d(300px, 0, 0); 211 | } 212 | } 213 | 214 | .user_id { 215 | color: $blue; 216 | cursor: pointer; 217 | } 218 | -------------------------------------------------------------------------------- /sass/_normalize.scss: -------------------------------------------------------------------------------- 1 | $legacy_browser_support: false !default; 2 | 3 | html { 4 | font-family: sans-serif; /* 1 */ 5 | -ms-text-size-adjust: 100%; /* 2 */ 6 | -webkit-text-size-adjust: 100%; /* 2 */ 7 | @if $legacy_browser_support { 8 | *font-size: 100%; /* 3 */ 9 | } 10 | } 11 | 12 | /** 13 | * Remove default margin. 14 | */ 15 | 16 | body { 17 | margin: 0; 18 | } 19 | 20 | /* HTML5 display definitions 21 | ========================================================================== */ 22 | 23 | /** 24 | * Correct `block` display not defined for any HTML5 element in IE 8/9. 25 | * Correct `block` display not defined for `details` or `summary` in IE 10/11 26 | * and Firefox. 27 | * Correct `block` display not defined for `main` in IE 11. 28 | */ 29 | 30 | article, 31 | aside, 32 | details, 33 | figcaption, 34 | figure, 35 | footer, 36 | header, 37 | hgroup, 38 | main, 39 | menu, 40 | nav, 41 | section, 42 | summary { 43 | display: block; 44 | } 45 | 46 | /** 47 | * 1. Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3. 48 | * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. 49 | */ 50 | 51 | audio, 52 | canvas, 53 | progress, 54 | video { 55 | display: inline-block; /* 1 */ 56 | vertical-align: baseline; /* 2 */ 57 | @if $legacy_browser_support { 58 | *display: inline; 59 | *zoom: 1; 60 | } 61 | } 62 | 63 | /** 64 | * Prevents modern browsers from displaying `audio` without controls. 65 | * Remove excess height in iOS 5 devices. 66 | */ 67 | 68 | audio:not([controls]) { 69 | display: none; 70 | height: 0; 71 | } 72 | 73 | /** 74 | * Address `[hidden]` styling not present in IE 8/9/10. 75 | * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22. 76 | */ 77 | 78 | [hidden], 79 | template { 80 | display: none; 81 | } 82 | 83 | /* Links 84 | ========================================================================== */ 85 | 86 | /** 87 | * Remove the gray background color from active links in IE 10. 88 | */ 89 | 90 | a { 91 | background-color: transparent; 92 | } 93 | 94 | /** 95 | * Improve readability of focused elements when they are also in an 96 | * active/hover state. 97 | */ 98 | 99 | a { 100 | &:active, &:hover { 101 | outline: 0; 102 | }; 103 | } 104 | 105 | /* Text-level semantics 106 | ========================================================================== */ 107 | 108 | /** 109 | * Address styling not present in IE 8/9/10/11, Safari, and Chrome. 110 | */ 111 | 112 | abbr[title] { 113 | border-bottom: 1px dotted; 114 | } 115 | 116 | /** 117 | * Address style set to `bolder` in Firefox 4+, Safari, and Chrome. 118 | */ 119 | 120 | b, 121 | strong { 122 | font-weight: bold; 123 | } 124 | 125 | @if $legacy_browser_support { 126 | blockquote { 127 | margin: 1em 40px; 128 | } 129 | } 130 | 131 | /** 132 | * Address styling not present in Safari and Chrome. 133 | */ 134 | 135 | dfn { 136 | font-style: italic; 137 | } 138 | 139 | /** 140 | * Address variable `h1` font-size and margin within `section` and `article` 141 | * contexts in Firefox 4+, Safari, and Chrome. 142 | */ 143 | 144 | h1 { 145 | font-size: 2em; 146 | margin: 0.67em 0; 147 | } 148 | 149 | @if $legacy_browser_support { 150 | h2 { 151 | font-size: 1.5em; 152 | margin: 0.83em 0; 153 | } 154 | 155 | h3 { 156 | font-size: 1.17em; 157 | margin: 1em 0; 158 | } 159 | 160 | h4 { 161 | font-size: 1em; 162 | margin: 1.33em 0; 163 | } 164 | 165 | h5 { 166 | font-size: 0.83em; 167 | margin: 1.67em 0; 168 | } 169 | 170 | h6 { 171 | font-size: 0.67em; 172 | margin: 2.33em 0; 173 | } 174 | } 175 | 176 | /** 177 | * Addresses styling not present in IE 8/9. 178 | */ 179 | 180 | mark { 181 | background: #ff0; 182 | color: #000; 183 | } 184 | 185 | @if $legacy_browser_support { 186 | 187 | /** 188 | * Addresses margins set differently in IE 6/7. 189 | */ 190 | 191 | p, 192 | pre { 193 | *margin: 1em 0; 194 | } 195 | 196 | /* 197 | * Addresses CSS quotes not supported in IE 6/7. 198 | */ 199 | 200 | q { 201 | *quotes: none; 202 | } 203 | 204 | /* 205 | * Addresses `quotes` property not supported in Safari 4. 206 | */ 207 | 208 | q:before, 209 | q:after { 210 | content: ''; 211 | content: none; 212 | } 213 | } 214 | 215 | /** 216 | * Address inconsistent and variable font size in all browsers. 217 | */ 218 | 219 | small { 220 | font-size: 80%; 221 | } 222 | 223 | /** 224 | * Prevent `sub` and `sup` affecting `line-height` in all browsers. 225 | */ 226 | 227 | sub, 228 | sup { 229 | font-size: 75%; 230 | line-height: 0; 231 | position: relative; 232 | vertical-align: baseline; 233 | } 234 | 235 | sup { 236 | top: -0.5em; 237 | } 238 | 239 | sub { 240 | bottom: -0.25em; 241 | } 242 | 243 | @if $legacy_browser_support { 244 | 245 | /* ========================================================================== 246 | Lists 247 | ========================================================================== */ 248 | 249 | /* 250 | * Addresses margins set differently in IE 6/7. 251 | */ 252 | 253 | dl, 254 | menu, 255 | ol, 256 | ul { 257 | *margin: 1em 0; 258 | } 259 | 260 | dd { 261 | *margin: 0 0 0 40px; 262 | } 263 | 264 | /* 265 | * Addresses paddings set differently in IE 6/7. 266 | */ 267 | 268 | menu, 269 | ol, 270 | ul { 271 | *padding: 0 0 0 40px; 272 | } 273 | 274 | /* 275 | * Corrects list images handled incorrectly in IE 7. 276 | */ 277 | 278 | nav ul, 279 | nav ol { 280 | *list-style: none; 281 | *list-style-image: none; 282 | } 283 | 284 | } 285 | 286 | /* Embedded content 287 | ========================================================================== */ 288 | 289 | /** 290 | * 1. Remove border when inside `a` element in IE 8/9/10. 291 | * 2. Improves image quality when scaled in IE 7. 292 | */ 293 | 294 | img { 295 | border: 0; 296 | @if $legacy_browser_support { 297 | *-ms-interpolation-mode: bicubic; /* 2 */ 298 | } 299 | } 300 | 301 | /** 302 | * Correct overflow not hidden in IE 9/10/11. 303 | */ 304 | 305 | svg:not(:root) { 306 | overflow: hidden; 307 | } 308 | 309 | /* Grouping content 310 | ========================================================================== */ 311 | 312 | /** 313 | * Address margin not present in IE 8/9 and Safari. 314 | */ 315 | 316 | figure { 317 | margin: 1em 40px; 318 | } 319 | 320 | /** 321 | * Address differences between Firefox and other browsers. 322 | */ 323 | 324 | hr { 325 | box-sizing: content-box; 326 | height: 0; 327 | } 328 | 329 | /** 330 | * Contain overflow in all browsers. 331 | */ 332 | 333 | pre { 334 | overflow: auto; 335 | } 336 | 337 | /** 338 | * Address odd `em`-unit font size rendering in all browsers. 339 | * Correct font family set oddly in IE 6, Safari 4/5, and Chrome. 340 | */ 341 | 342 | code, 343 | kbd, 344 | pre, 345 | samp { 346 | font-family: monospace, monospace; 347 | @if $legacy_browser_support { 348 | _font-family: 'courier new', monospace; 349 | } 350 | font-size: 1em; 351 | } 352 | 353 | /* Forms 354 | ========================================================================== */ 355 | 356 | /** 357 | * Known limitation: by default, Chrome and Safari on OS X allow very limited 358 | * styling of `select`, unless a `border` property is set. 359 | */ 360 | 361 | /** 362 | * 1. Correct color not being inherited. 363 | * Known issue: affects color of disabled elements. 364 | * 2. Correct font properties not being inherited. 365 | * 3. Address margins set differently in Firefox 4+, Safari, and Chrome. 366 | * 4. Improves appearance and consistency in all browsers. 367 | */ 368 | 369 | button, 370 | input, 371 | optgroup, 372 | select, 373 | textarea { 374 | color: inherit; /* 1 */ 375 | font: inherit; /* 2 */ 376 | margin: 0; /* 3 */ 377 | @if $legacy_browser_support { 378 | vertical-align: baseline; /* 3 */ 379 | *vertical-align: middle; /* 3 */ 380 | } 381 | } 382 | 383 | /** 384 | * Address `overflow` set to `hidden` in IE 8/9/10/11. 385 | */ 386 | 387 | button { 388 | overflow: visible; 389 | } 390 | 391 | /** 392 | * Address inconsistent `text-transform` inheritance for `button` and `select`. 393 | * All other form control elements do not inherit `text-transform` values. 394 | * Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. 395 | * Correct `select` style inheritance in Firefox. 396 | */ 397 | 398 | button, 399 | select { 400 | text-transform: none; 401 | } 402 | 403 | /** 404 | * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` 405 | * and `video` controls. 406 | * 2. Correct inability to style clickable `input` types in iOS. 407 | * 3. Improve usability and consistency of cursor style between image-type 408 | * `input` and others. 409 | * 4. Removes inner spacing in IE 7 without affecting normal text inputs. 410 | * Known issue: inner spacing remains in IE 6. 411 | */ 412 | 413 | button, 414 | html input[type="button"], /* 1 */ 415 | input[type="reset"], 416 | input[type="submit"] { 417 | -webkit-appearance: button; /* 2 */ 418 | cursor: pointer; /* 3 */ 419 | @if $legacy_browser_support { 420 | *overflow: visible; /* 4 */ 421 | } 422 | } 423 | 424 | /** 425 | * Re-set default cursor for disabled elements. 426 | */ 427 | 428 | button[disabled], 429 | html input[disabled] { 430 | cursor: default; 431 | } 432 | 433 | /** 434 | * Remove inner padding and border in Firefox 4+. 435 | */ 436 | 437 | button::-moz-focus-inner, 438 | input::-moz-focus-inner { 439 | border: 0; 440 | padding: 0; 441 | } 442 | 443 | /** 444 | * Address Firefox 4+ setting `line-height` on `input` using `!important` in 445 | * the UA stylesheet. 446 | */ 447 | 448 | input { 449 | line-height: normal; 450 | } 451 | 452 | /** 453 | * 1. Address box sizing set to `content-box` in IE 8/9/10. 454 | * 2. Remove excess padding in IE 8/9/10. 455 | * Known issue: excess padding remains in IE 6. 456 | */ 457 | 458 | input[type="checkbox"], 459 | input[type="radio"] { 460 | box-sizing: border-box; /* 1 */ 461 | padding: 0; /* 2 */ 462 | @if $legacy_browser_support { 463 | *height: 13px; /* 3 */ 464 | *width: 13px; /* 3 */ 465 | } 466 | } 467 | 468 | /** 469 | * Fix the cursor style for Chrome's increment/decrement buttons. For certain 470 | * `font-size` values of the `input`, it causes the cursor style of the 471 | * decrement button to change from `default` to `text`. 472 | */ 473 | 474 | input[type="number"]::-webkit-inner-spin-button, 475 | input[type="number"]::-webkit-outer-spin-button { 476 | height: auto; 477 | } 478 | 479 | /** 480 | * 1. Address `appearance` set to `searchfield` in Safari and Chrome. 481 | * 2. Address `box-sizing` set to `border-box` in Safari and Chrome. 482 | */ 483 | 484 | input[type="search"] { 485 | -webkit-appearance: textfield; /* 1 */ 486 | box-sizing: content-box; /* 2 */ 487 | } 488 | 489 | /** 490 | * Remove inner padding and search cancel button in Safari and Chrome on OS X. 491 | * Safari (but not Chrome) clips the cancel button when the search input has 492 | * padding (and `textfield` appearance). 493 | */ 494 | 495 | input[type="search"]::-webkit-search-cancel-button, 496 | input[type="search"]::-webkit-search-decoration { 497 | -webkit-appearance: none; 498 | } 499 | 500 | /** 501 | * Define consistent border, margin, and padding. 502 | */ 503 | 504 | fieldset { 505 | border: 1px solid #c0c0c0; 506 | margin: 0 2px; 507 | padding: 0.35em 0.625em 0.75em; 508 | } 509 | 510 | /** 511 | * 1. Correct `color` not being inherited in IE 8/9/10/11. 512 | * 2. Remove padding so people aren't caught out if they zero out fieldsets. 513 | * 3. Corrects text not wrapping in Firefox 3. 514 | * 4. Corrects alignment displayed oddly in IE 6/7. 515 | */ 516 | 517 | legend { 518 | border: 0; /* 1 */ 519 | padding: 0; /* 2 */ 520 | @if $legacy_browser_support { 521 | white-space: normal; /* 3 */ 522 | *margin-left: -7px; /* 4 */ 523 | } 524 | } 525 | 526 | /** 527 | * Remove default vertical scrollbar in IE 8/9/10/11. 528 | */ 529 | 530 | textarea { 531 | overflow: auto; 532 | } 533 | 534 | /** 535 | * Don't inherit the `font-weight` (applied by a rule above). 536 | * NOTE: the default cannot safely be changed in Chrome and Safari on OS X. 537 | */ 538 | 539 | optgroup { 540 | font-weight: bold; 541 | } 542 | 543 | /* Tables 544 | ========================================================================== */ 545 | 546 | /** 547 | * Remove most spacing between table cells. 548 | */ 549 | 550 | table { 551 | border-collapse: collapse; 552 | border-spacing: 0; 553 | } 554 | 555 | td, 556 | th { 557 | padding: 0; 558 | } 559 | -------------------------------------------------------------------------------- /public/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | --------------------------------------------------------------------------------