├── README.md ├── css ├── btns.css └── btns.min.css ├── gulpfile.js ├── index.html ├── package.json ├── sass ├── _debug.scss ├── _styles.scss └── btns.scss └── svg ├── octocat.svg └── twitter.svg /README.md: -------------------------------------------------------------------------------- 1 | # What is BTNS 2 | 3 | A small css module that allows for nice-looking, fully-responsive buttons. 4 | 5 | ## Getting started 6 | 7 | You can just grab the css. 8 | 9 | If you want to customize btns it comes with a few handy gulp tasks for development. 10 | Set up the project by cloning the repo, navigating into it, then installing the necessary dependencies by running: 11 | 12 | *Note you might not need to install with sudo* 13 | ```bash 14 | git clone git@github:mrmrs/btns.git && cd btns 15 | sudo npm install -g gulp browser-sync 16 | sudo npm install . 17 | ``` 18 | 19 | ### To run the development environment 20 | 21 | Once you've run npm install just run this very complicated command in your terminal to start gulp 22 | 23 | npm start 24 | 25 | This will watch the sass directory and do the following on file change: 26 | • Compile scss files down to css/app.css 27 | • Run autoprefixer on css/app.css (this allows you to keep vendor prefixes out of your source files) 28 | • Run csslint and spit the output to your terminal window where you are running gulp 29 | • Run an instance of livereload. With the chrome and safari extensions, you can see 30 | changes in the browser without hitting refresh 31 | 32 | ### To minify assets for production 33 | 34 | ```gulp production``` 35 | 36 | or just to minify the css 37 | 38 | ```gulp minify-css``` 39 | 40 | This will 41 | • Compile scss files down to css/app.css 42 | • Run autoprefixer on css/app.css (this allows you to keep vendor prefixes out of your css) 43 | • Minify all css files in the ./css directory 44 | • Compress / minify all images in the ./img directory 45 | • Compress / minify all svg elements in the ./img/svg/ directory 46 | 47 | 48 | ## License 49 | 50 | The MIT License (MIT) 51 | 52 | Copyright (c) 2014 @mrmrs 53 | 54 | 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: 55 | 56 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 57 | 58 | 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. 59 | -------------------------------------------------------------------------------- /css/btns.css: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * btns.css 4 | * Simple css utilities for building responsive buttons 5 | * Author: mrmrs 6 | * License: MIT 7 | * 8 | * */ 9 | /* 10 | 11 | Base .btn class 12 | 13 | Code: 14 | Default button 15 | 16 | */ 17 | .btn, .btn:link, .btn:visited { 18 | border-radius: 0.25em; 19 | border-style: solid; 20 | border-width: 1px; 21 | color: #111; 22 | display: inline-block; 23 | font-family: avenir, helvetica, roboto, arial, sans-serif; 24 | letter-spacing: 0.15em; 25 | margin-bottom: 0.5em; 26 | padding: 1em 1.5em; 27 | text-decoration: none; 28 | text-transform: uppercase; 29 | -webkit-transition: color 0.4s, background-color 0.4s, border 0.4s; 30 | transition: color 0.4s, background-color 0.4s, border 0.4s; } 31 | 32 | .btn:hover, .btn:focus { 33 | color: #7FDBFF; 34 | border: 1px solid #7FDBFF; 35 | -webkit-transition: background-color 0.3s, color 0.3s, border 0.3s; 36 | transition: background-color 0.3s, color 0.3s, border 0.3s; } 37 | 38 | .btn:active { 39 | color: #0074D9; 40 | border: 1px solid #0074D9; 41 | -webkit-transition: background-color 0.3s, color 0.3s, border 0.3s; 42 | transition: background-color 0.3s, color 0.3s, border 0.3s; } 43 | 44 | /* 45 | 46 | Sizes 47 | 48 | Small = .btn--s 49 | Medium = .btn--m 50 | Large = .btn--l 51 | 52 | Code: 53 | 54 | 55 | 56 | 57 | */ 58 | .btn--s { 59 | font-size: 14px; } 60 | 61 | .btn--m { 62 | font-size: 16px; } 63 | 64 | .btn--l { 65 | font-size: 20px; 66 | border-radius: 0.25em !important; } 67 | 68 | /* 69 | 70 | Layout utility for responsive buttons 71 | 72 | Code: 73 | 74 | 75 | */ 76 | .btn--full, .btn--full:link { 77 | border-radius: 0.25em; 78 | display: block; 79 | margin-left: auto; 80 | margin-right: auto; 81 | text-align: center; 82 | width: 100%; } 83 | 84 | /* 85 | 86 | Skins 87 | 88 | * Black & White 89 | * Grays 90 | * Colors 91 | 92 | Code: 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | */ 101 | /* BLACK & WHITE */ 102 | .btn--black, .btn--black:link, .btn--black:visited { 103 | color: #fff; 104 | background-color: #111; } 105 | 106 | .btn--black:hover, .btn--black:focus { 107 | color: #fff; 108 | background-color: #444; 109 | border-color: #444; } 110 | 111 | .btn--black:active { 112 | color: #fff; 113 | background-color: #999; 114 | border-color: #999; } 115 | 116 | .btn--white, .btn--white:link, .btn--white:visited { 117 | color: #111; 118 | background-color: #fff; } 119 | 120 | .btn--white:hover, .btn--white:focus { 121 | color: #111; 122 | background-color: rgba(255, 255, 255, 0.7); 123 | border-color: rgba(255, 255, 255, 0.7); } 124 | 125 | .btn--white:active { 126 | color: #111; 127 | background-color: rgba(255, 255, 255, 0.9); 128 | border-color: rgba(255, 255, 255, 0.9); } 129 | 130 | /* Gray */ 131 | .btn--gray:link, .btn--gray:visited { 132 | background-color: #f0f0f0; 133 | border-color: #f0f0f0; 134 | color: #555; } 135 | 136 | .btn--gray:hover, .btn--gray:focus { 137 | background-color: #ddd; 138 | border-color: #ddd; 139 | color: #444; } 140 | 141 | .btn--gray:active { 142 | background-color: #ccc; 143 | border-color: #ccc; 144 | color: #444; } 145 | 146 | .btn--gray-border:link, .btn--gray-border:visited { 147 | background-color: #fff; 148 | border-color: #555; 149 | border-width: 2px; 150 | color: #555; } 151 | 152 | .btn--gray-border:hover, .btn--gray-border:focus { 153 | background-color: #fff; 154 | border-color: #ddd; 155 | color: #777; } 156 | 157 | .btn--gray-border:active { 158 | background-color: #ccc; 159 | border-color: #ccc; 160 | color: #444; } 161 | 162 | .btn--gray-dark:link, .btn--gray-dark:visited { 163 | background-color: #555; 164 | color: #eee; } 165 | 166 | .btn--gray-dark:hover, .btn--gray-dark:focus { 167 | background-color: #333; 168 | border-color: #333; 169 | color: #eee; } 170 | 171 | .btn--gray-dark:active { 172 | background-color: #777; 173 | border-color: #777; 174 | color: #eee; } 175 | 176 | /* BLUE */ 177 | .btn--blue:link, .btn--blue:visited { 178 | color: #fff; 179 | background-color: #0074D9; } 180 | 181 | .btn--blue:hover, .btn--blue:focus { 182 | color: #fff !important; 183 | background-color: #0063aa; 184 | border-color: #0063aa; } 185 | 186 | .btn--blue:active { 187 | color: #fff; 188 | background-color: #001F3F; 189 | border-color: #001F3F; } 190 | 191 | /* Keep it mobile-first and responsive */ 192 | @media screen and (min-width: 32em) { 193 | .btn--full { 194 | max-width: 16em !important; } } 195 | -------------------------------------------------------------------------------- /css/btns.min.css: -------------------------------------------------------------------------------- 1 | .btn,.btn:link,.btn:visited{border-radius:.25em;border-style:solid;border-width:1px;color:#111;display:inline-block;font-family:avenir,helvetica,roboto,arial,sans-serif;letter-spacing:.15em;margin-bottom:.5em;padding:1em 1.5em;text-decoration:none;text-transform:uppercase;-webkit-transition:color .4s,background-color .4s,border .4s;transition:color .4s,background-color .4s,border .4s}.btn:hover,.btn:focus{color:#7FDBFF;border:1px solid #7FDBFF;-webkit-transition:background-color .3s,color .3s,border .3s;transition:background-color .3s,color .3s,border .3s}.btn:active{color:#0074D9;border:1px solid #0074D9;-webkit-transition:background-color .3s,color .3s,border .3s;transition:background-color .3s,color .3s,border .3s}.btn--s{font-size:14px}.btn--m{font-size:16px}.btn--l{font-size:20px;border-radius:.25em!important}.btn--full,.btn--full:link{border-radius:.25em;display:block;margin-left:auto;margin-right:auto;text-align:center;width:100%}.btn--black,.btn--black:link,.btn--black:visited{color:#fff;background-color:#111}.btn--black:hover,.btn--black:focus{color:#fff;background-color:#444;border-color:#444}.btn--black:active{color:#fff;background-color:#999;border-color:#999}.btn--white,.btn--white:link,.btn--white:visited{color:#111;background-color:#fff}.btn--white:hover,.btn--white:focus{color:#111;background-color:rgba(255,255,255,.7);border-color:rgba(255,255,255,.7)}.btn--white:active{color:#111;background-color:rgba(255,255,255,.9);border-color:rgba(255,255,255,.9)}.btn--gray:link,.btn--gray:visited{background-color:#f0f0f0;border-color:#f0f0f0;color:#555}.btn--gray:hover,.btn--gray:focus{background-color:#ddd;border-color:#ddd;color:#444}.btn--gray:active{background-color:#ccc;border-color:#ccc;color:#444}.btn--gray-border:link,.btn--gray-border:visited{background-color:#fff;border-color:#555;border-width:2px;color:#555}.btn--gray-border:hover,.btn--gray-border:focus{background-color:#fff;border-color:#ddd;color:#777}.btn--gray-border:active{background-color:#ccc;border-color:#ccc;color:#444}.btn--gray-dark:link,.btn--gray-dark:visited{background-color:#555;color:#eee}.btn--gray-dark:hover,.btn--gray-dark:focus{background-color:#333;border-color:#333;color:#eee}.btn--gray-dark:active{background-color:#777;border-color:#777;color:#eee}.btn--blue:link,.btn--blue:visited{color:#fff;background-color:#0074D9}.btn--blue:hover,.btn--blue:focus{color:#fff!important;background-color:#0063aa;border-color:#0063aa}.btn--blue:active{color:#fff;background-color:#001F3F;border-color:#001F3F}@media screen and (min-width:32em){.btn--full{max-width:16em!important}} -------------------------------------------------------------------------------- /gulpfile.js: -------------------------------------------------------------------------------- 1 | // Load plugins 2 | 3 | var gulp = require('gulp'), 4 | gutil = require('gulp-util'), 5 | watch = require('gulp-watch'), 6 | prefix = require('gulp-autoprefixer'), 7 | minifyCSS = require('gulp-minify-css'), 8 | sass = require('gulp-sass'), 9 | imagemin = require('gulp-imagemin'), 10 | svgmin = require('gulp-svgmin'), 11 | csslint = require('gulp-csslint'), 12 | size = require('gulp-size'), 13 | rename = require('gulp-rename'), 14 | browserSync = require('browser-sync'), 15 | browserReload = browserSync.reload; 16 | 17 | 18 | 19 | // Minify all css files in the css directory 20 | // Run this in the root directory of the project with `gulp minify-css ` 21 | gulp.task('minify-css', function(){ 22 | gulp.src('./css/btns.css') 23 | .pipe(minifyCSS()) 24 | .pipe(size({gzip: true, showFiles: true, title:'minified css'})) 25 | .pipe(rename('btns.min.css')) 26 | .pipe(gulp.dest('./css/')); 27 | }); 28 | 29 | // Task to optimize and minify images 30 | gulp.task('minify-img', function() { 31 | return gulp.src('./img/**/*') 32 | .pipe((imagemin({ optimizationLevel: 5, progressive: true, interlaced: true }))) 33 | .pipe(gulp.dest('./img')); 34 | }); 35 | 36 | // Task to optimize and minify svg 37 | gulp.task('minify-svg', function(){ 38 | gulp.src('./img/svg') 39 | .pipe(svgmin()) 40 | .pipe(gulp.dest('./img/svg')); 41 | }); 42 | 43 | // Use csslint without box-sizing or compatible vendor prefixes (these 44 | // don't seem to be kept up to date on what to yell about) 45 | gulp.task('csslint', function(){ 46 | gulp.src('./css/*.css') 47 | .pipe(csslint({ 48 | 'compatible-vendor-prefixes': false, 49 | 'box-sizing': false, 50 | 'important': false 51 | })) 52 | .pipe(csslint.reporter()); 53 | 54 | }); 55 | 56 | gulp.task('pre-process', function(){ 57 | gulp.src('./sass/btns.scss') 58 | .pipe(watch(function(files) { 59 | return files.pipe(sass()) 60 | .pipe(size({gzip: false, showFiles: true, title:'PRE-prefixed uncompressed css'})) 61 | .pipe(size({gzip: true, showFiles: true, title:'PRE-prefixed uncompressed css'})) 62 | .pipe(prefix()) 63 | .pipe(size({gzip: false, showFiles: true, title:'Prefixed uncompressed css'})) 64 | .pipe(size({gzip: true, showFiles: true, title:'Prefixed uncompressed css'})) 65 | .pipe(gulp.dest('css')) 66 | .pipe(browserSync.reload({stream:true})); 67 | })); 68 | }); 69 | 70 | 71 | // Initialize browser-sync which starts a static server also allows for 72 | // browsers to reload on filesave 73 | gulp.task('browser-sync', function() { 74 | browserSync.init(null, { 75 | server: { 76 | baseDir: "./" 77 | } 78 | }); 79 | }); 80 | 81 | // Function to call for reloading browsers 82 | gulp.task('bs-reload', function () { 83 | browserSync.reload(); 84 | }); 85 | 86 | 87 | /* 88 | DEFAULT TASK 89 | 90 | • Process sass and lints outputted css 91 | • Outputted css is run through autoprefixer 92 | • Runs jshint on all js files in ./js/ 93 | • Sends updates to any files in directory to browser for 94 | automatic reloading 95 | 96 | */ 97 | 98 | gulp.task('default', ['pre-process', 'minify-css', 'bs-reload', 'browser-sync'], function(){ 99 | gulp.start('pre-process', 'csslint'); 100 | gulp.watch('sass/*.scss', ['pre-process', 'minify-css']); 101 | gulp.watch('css/btns.css', ['bs-reload']); 102 | gulp.watch('*.html', ['bs-reload']); 103 | }); 104 | 105 | gulp.task('production', function(){ 106 | gulp.run('minify-css', 'minify-img', 'minify-svg'); 107 | }); 108 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | btns.css - beautiful button styles 8 | 9 | 10 | 11 | 12 | 13 | 16 | 17 | 18 |
19 |

BTNS

20 |

21 | A small css module for building beautiful, responsive buttons. 22 |

23 |

Get the code

24 |
View on github 25 | 26 | 27 | Tweet This 28 | 29 |

...or install with npm

30 | npm install --save-dev btns 31 |
32 |
33 |
34 |
35 |
36 |

37 | This light-weight* css module is a set simple utilities you can use to create a variety of button style links. Easily customize or extend btns.css to fit your sites styles. 38 | 39 |

40 | * 663B gzipped and minified. 41 |
42 | 43 |
44 |

The default button

45 |
 46 | 
 47 | <a href="#" class="btn">A Button<a>
 48 | 
 49 | 
50 | A Button 51 |
 52 |       
53 | 54 |
55 |
56 |

Button Sizes

57 |

58 | By default the base button class does not declare a font-size, so it is naturally set to 1em. 59 | Extensions to the .btn class are available for an additional three sizes: small, medium, and large. 60 |

61 |

62 | If you'd like to extend or customize the size of the buttons, it's incredibly easy. Just apply a new font-size to the button and watch it shrink/grow. 63 |

64 |
 65 |       
 66 | <a href="#" class="btn btn--l">A Button<a>
 67 | <a href="#" class="btn">A Button<a>
 68 | <a href="#" class="btn btn--m">A Button<a>
 69 | <a href="#" class="btn btn--s">A Button<a>
 70 |       
 71 |         
72 |
73 | Large Button 74 |
75 |
76 | Default Button 77 |
78 |
79 | Medium Button 80 |
81 |
82 | Small Button 83 |
84 |
85 |
86 |

Button Skins

87 |
88 |

Black & White

89 |
 90 | 
 91 | <a href="#" class="btn btn--m btn--black">A button link</a>
 92 | <a href="#" class="btn btn--m btn--white">A button link</a>
 93 | 
 94 | 
95 | 96 | A button link 97 | View on github 98 | Download .zip 99 | Sign Up ▸ 100 |
101 |
102 | A button link 103 | View on github 104 | Download a .zip 105 | View more ▸ 106 |
107 |
108 |
109 |

The grays

110 |
111 | 
112 | <a href="#" class="btn btn--m btn--gray">A button link</a>
113 | <a href="#" class="btn btn--m btn--gray-dark">A button link</a>
114 | <a href="#" class="btn btn--m btn--gray-border">A button link</a>
115 | 
116 | 
117 |
118 | A button link 119 | View on github 120 | Download a .zip 121 | View more ▸ 122 |
123 |
124 | A button link 125 | View on github 126 | Download a .zip 127 | View more ▸ 128 |
129 |
130 | A button link 131 | View on github 132 | Download a .zip 133 | View more ▸ 134 |
135 | 136 |
137 |
138 |

The blues

139 |
140 | 
141 | <a href="#" class="btn btn--m btn--blue">A button link</a>
142 | 
143 | 
144 | A button link 145 | View on github 146 | Download a .zip 147 | View more ▸ 148 |
149 | 150 |
151 |

Block buttons

152 |

Avoid having buttons that are obscenely large on tablets and desktop with the .btn--full extension.

153 |

Centered, full-width on mobile, with a max-width of 16em on larger screens.

154 | Save 155 | Submit 156 | Cancel 157 | Sign Up 158 |
159 |
160 | 170 | 171 | 172 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "btns", 3 | "version": "1.1.1", 4 | "homepage": "http://mrmrs.io/btns", 5 | "description": "A small css module for building responsive buttons", 6 | "keywords": [ 7 | "gulp", 8 | "performance", 9 | "css", 10 | "sass", 11 | "buttons", 12 | "animations", 13 | "front-end", 14 | "html5", 15 | "template" 16 | ], 17 | "repository": { 18 | "type": "git", 19 | "url": "http://github.com/mrmrs/btns.git" 20 | }, 21 | "bugs": { 22 | "url": "https://github.com/mrmrs/btns/issues" 23 | }, 24 | "devDependencies": { 25 | "browser-sync": "^2.23.6", 26 | "gulp": "~3.9.1", 27 | "gulp-autoprefixer": "5.0.0", 28 | "gulp-csslint": "~1.0.1", 29 | "gulp-imagemin": "~4.1.0", 30 | "gulp-minify-css": "~1.2.4", 31 | "gulp-rename": "^1.2.2", 32 | "gulp-ruby-sass": "~3.0.0", 33 | "gulp-sass": "^3.1.0", 34 | "gulp-size": "^3.0.0", 35 | "gulp-svgmin": "~1.2.4", 36 | "gulp-util": "~3.0.8", 37 | "gulp-watch": "~5.0.0" 38 | }, 39 | "author": { 40 | "name": "@mrmrs", 41 | "email": "hi@mrmrs.cc", 42 | "url": "http://mrmrs.cc" 43 | }, 44 | "contributors": [ 45 | { 46 | "name": "@mrmrs", 47 | "email": "hi@mrmrs.cc" 48 | } 49 | ], 50 | "engines": { 51 | "node": ">=0.10.22" 52 | }, 53 | "license": "MIT", 54 | "scripts": { 55 | "start": "gulp" 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /sass/_debug.scss: -------------------------------------------------------------------------------- 1 | $layout-debug: false; 2 | 3 | @if $layout-debug == true { 4 | 5 | body { outline: 1px solid #2980B9!important; } 6 | article { outline: 1px solid #3498DB!important; } 7 | nav { outline: 1px solid #0088C3!important; } 8 | aside { outline: 1px solid #33A0CE!important; } 9 | section { outline: 1px solid #66B8DA!important; } 10 | header { outline: 1px solid #99CFE7!important; } 11 | footer { outline: 1px solid #CCE7F3!important; } 12 | h1 { outline: 1px solid #162544!important; } 13 | h2 { outline: 1px solid #314E6E!important; } 14 | h3 { outline: 1px solid #3E5E85!important; } 15 | h4 { outline: 1px solid #449BAF!important; } 16 | h5 { outline: 1px solid #C7D1CB!important; } 17 | h6 { outline: 1px solid #4371D0!important; } 18 | main { outline: 1px solid #2F4F90!important; } 19 | address { outline: 1px solid #1A2C51!important; } 20 | div { outline: 1px solid #036CDB!important; } 21 | 22 | 23 | p { outline: 1px solid #AC050B!important; } 24 | hr { outline: 1px solid #FF063F!important; } 25 | pre { outline: 1px solid #850440!important; } 26 | blockquote { outline: 1px solid #F1B8E7!important; } 27 | ol { outline: 1px solid #FF050C!important; } 28 | ul { outline: 1px solid #D90416!important; } 29 | li { outline: 1px solid #D90416!important; } 30 | dl { outline: 1px solid #FD3427!important; } 31 | dt { outline: 1px solid #FF0043!important; } 32 | dd { outline: 1px solid #E80174!important; } 33 | figure { outline: 1px solid #FF00BB!important; } 34 | figcaption { outline: 1px solid #BF0032!important; } 35 | 36 | 37 | 38 | table { outline: 1px solid #00CC99!important; } 39 | caption { outline: 1px solid #37FFC4!important; } 40 | thead { outline: 1px solid #98DACA!important; } 41 | tbody { outline: 1px solid #64A7A0!important; } 42 | tfoot { outline: 1px solid #22746B!important; } 43 | tr { outline: 1px solid #86C0B2!important; } 44 | th { outline: 1px solid #A1E7D6!important; } 45 | td { outline: 1px solid #3F5A54!important; } 46 | col { outline: 1px solid #6C9A8F!important; } 47 | colgroup { outline: 1px solid #6C9A9D!important; } 48 | 49 | 50 | button { outline: 1px solid #DA8301!important; } 51 | datalist { outline: 1px solid #C06000!important; } 52 | fieldset { outline: 1px solid #D95100!important; } 53 | form { outline: 1px solid #D23600!important; } 54 | input { outline: 1px solid #FCA600!important; } 55 | keygen { outline: 1px solid #B31E00!important; } 56 | label { outline: 1px solid #EE8900!important; } 57 | legend { outline: 1px solid #DE6D00!important; } 58 | meter { outline: 1px solid #E8630C!important; } 59 | optgroup { outline: 1px solid #B33600!important; } 60 | option { outline: 1px solid #FF8A00!important; } 61 | output { outline: 1px solid #FF9619!important; } 62 | progress { outline: 1px solid #E57C00!important; } 63 | select { outline: 1px solid #E26E0F!important; } 64 | textarea { outline: 1px solid #CC5400!important; } 65 | 66 | 67 | 68 | details { outline: 1px solid #33848F!important; } 69 | summary { outline: 1px solid #60A1A6!important; } 70 | command { outline: 1px solid #438DA1!important; } 71 | menu { outline: 1px solid #449DA6!important; } 72 | 73 | 74 | 75 | del { outline: 1px solid #BF0000!important; } 76 | ins { outline: 1px solid #400000!important; } 77 | 78 | 79 | 80 | img { outline: 1px solid #22746B!important; } 81 | iframe { outline: 1px solid #64A7A0!important; } 82 | embed { outline: 1px solid #98DACA!important; } 83 | object { outline: 1px solid #00CC99!important; } 84 | param { outline: 1px solid #37FFC4!important; } 85 | video { outline: 1px solid #6EE866!important; } 86 | audio { outline: 1px solid #027353!important; } 87 | source { outline: 1px solid #012426!important; } 88 | canvas { outline: 1px solid #A2F570!important; } 89 | track { outline: 1px solid #59A600!important; } 90 | map { outline: 1px solid #7BE500!important; } 91 | area { outline: 1px solid #305900!important; } 92 | 93 | 94 | 95 | a { outline: 1px solid #FF62AB!important; } 96 | em { outline: 1px solid #800B41!important; } 97 | strong { outline: 1px solid #FF1583!important; } 98 | i { outline: 1px solid #803156!important; } 99 | b { outline: 1px solid #CC1169!important; } 100 | u { outline: 1px solid #FF0430!important; } 101 | s { outline: 1px solid #F805E3!important; } 102 | small { outline: 1px solid #D107B2!important; } 103 | abbr { outline: 1px solid #4A0263!important; } 104 | q { outline: 1px solid #240018!important; } 105 | cite { outline: 1px solid #64003C!important; } 106 | dfn { outline: 1px solid #B4005A!important; } 107 | sub { outline: 1px solid #DBA0C8!important; } 108 | sup { outline: 1px solid #CC0256!important; } 109 | time { outline: 1px solid #D6606D!important; } 110 | code { outline: 1px solid #E04251!important; } 111 | kbd { outline: 1px solid #5E001F!important; } 112 | samp { outline: 1px solid #9C0033!important; } 113 | var { outline: 1px solid #D90047!important; } 114 | mark { outline: 1px solid #FF0053!important; } 115 | bdi { outline: 1px solid #BF3668!important; } 116 | bdo { outline: 1px solid #6F1400!important; } 117 | ruby { outline: 1px solid #FF7B93!important; } 118 | rt { outline: 1px solid #FF2F54!important; } 119 | rp { outline: 1px solid #803E49!important; } 120 | span { outline: 1px solid #CC2643!important; } 121 | br { outline: 1px solid #DB687D!important; } 122 | wbr { outline: 1px solid #DB175B!important; } 123 | 124 | } 125 | 126 | -------------------------------------------------------------------------------- /sass/_styles.scss: -------------------------------------------------------------------------------- 1 | /* 2 | * 3 | * btns.css 4 | * Simple css utilities for building responsive buttons 5 | * Author: mrmrs 6 | * License: MIT 7 | * 8 | * */ 9 | 10 | /* 11 | 12 | Base .btn class 13 | 14 | Code: 15 | Default button 16 | 17 | */ 18 | 19 | .btn, 20 | .btn:link, 21 | .btn:visited { 22 | border-radius: .25em; 23 | border-style: solid; 24 | border-width: 1px; 25 | color: #111; 26 | display: inline-block; 27 | font-family: avenir, helvetica, roboto, arial, sans-serif; 28 | letter-spacing: .15em; 29 | margin-bottom: .5em; 30 | padding: 1em 1.5em; 31 | text-decoration: none; 32 | text-transform: uppercase; 33 | transition: color .4s, background-color .4s, border .4s; 34 | } 35 | 36 | .btn:hover, 37 | .btn:focus { 38 | color: #7FDBFF; 39 | border: 1px solid #7FDBFF; 40 | transition: background-color .3s, color .3s, border .3s; 41 | } 42 | 43 | .btn:active { 44 | color: #0074D9; 45 | border: 1px solid #0074D9; 46 | transition: background-color .3s, color .3s, border .3s; 47 | } 48 | 49 | 50 | /* 51 | 52 | Sizes 53 | 54 | Small = .btn--s 55 | Medium = .btn--m 56 | Large = .btn--l 57 | 58 | Code: 59 | 60 | 61 | 62 | 63 | */ 64 | 65 | .btn--s { font-size: 14px; } 66 | .btn--m { font-size: 16px; } 67 | .btn--l { font-size: 20px; border-radius: .25em!important; } 68 | 69 | 70 | /* 71 | 72 | Layout utility for responsive buttons 73 | 74 | Code: 75 | 76 | 77 | */ 78 | 79 | .btn--full, 80 | .btn--full:link { 81 | border-radius: .25em; 82 | display: block; 83 | margin-left: auto; 84 | margin-right: auto; 85 | text-align: center; 86 | width: 100%; 87 | } 88 | 89 | 90 | /* 91 | 92 | Skins 93 | 94 | * Black & White 95 | * Grays 96 | * Colors 97 | 98 | Code: 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | */ 107 | 108 | /* BLACK & WHITE */ 109 | 110 | .btn--black, 111 | .btn--black:link, 112 | .btn--black:visited { 113 | color: #fff; 114 | background-color: #111; 115 | } 116 | 117 | .btn--black:hover, 118 | .btn--black:focus { 119 | color: #fff; 120 | background-color: #444; 121 | border-color: #444; 122 | } 123 | 124 | .btn--black:active { 125 | color: #fff; 126 | background-color: #999; 127 | border-color: #999; 128 | } 129 | 130 | 131 | .btn--white, 132 | .btn--white:link, 133 | .btn--white:visited { 134 | color: #111; 135 | background-color: #fff; 136 | } 137 | 138 | .btn--white:hover, 139 | .btn--white:focus { 140 | color: #111; 141 | background-color: rgba(255,255,255,.7); 142 | border-color: rgba(255,255,255,.7); 143 | } 144 | 145 | .btn--white:active { 146 | color: #111; 147 | background-color: rgba(255,255,255,.9); 148 | border-color: rgba(255,255,255,.9); 149 | } 150 | 151 | 152 | 153 | /* Gray */ 154 | 155 | .btn--gray:link, 156 | .btn--gray:visited { 157 | background-color: #f0f0f0; 158 | border-color: #f0f0f0; 159 | color: #555; 160 | } 161 | 162 | .btn--gray:hover, 163 | .btn--gray:focus { 164 | background-color: #ddd; 165 | border-color: #ddd; 166 | color: #444; 167 | } 168 | 169 | .btn--gray:active { 170 | background-color: #ccc; 171 | border-color: #ccc; 172 | color: #444; 173 | } 174 | 175 | .btn--gray-border:link, 176 | .btn--gray-border:visited { 177 | background-color: #fff; 178 | border-color: #555; 179 | border-width: 2px; 180 | color: #555; 181 | } 182 | 183 | .btn--gray-border:hover, 184 | .btn--gray-border:focus { 185 | background-color: #fff; 186 | border-color: #ddd; 187 | color: #777; 188 | } 189 | 190 | .btn--gray-border:active { 191 | background-color: #ccc; 192 | border-color: #ccc; 193 | color: #444; 194 | } 195 | 196 | .btn--gray-dark:link, 197 | .btn--gray-dark:visited { 198 | background-color: #555; 199 | color: #eee; 200 | } 201 | 202 | .btn--gray-dark:hover, 203 | .btn--gray-dark:focus { 204 | background-color: #333; 205 | border-color: #333; 206 | color: #eee; 207 | } 208 | 209 | .btn--gray-dark:active { 210 | background-color: #777; 211 | border-color: #777; 212 | color: #eee; 213 | } 214 | 215 | 216 | /* BLUE */ 217 | 218 | .btn--blue:link, 219 | .btn--blue:visited { 220 | color: #fff; 221 | background-color: #0074D9; 222 | } 223 | 224 | .btn--blue:hover, 225 | .btn--blue:focus { 226 | color: #fff!important; 227 | background-color: #0063aa; 228 | border-color: #0063aa; 229 | } 230 | 231 | .btn--blue:active { 232 | color: #fff; 233 | background-color: #001F3F; 234 | border-color: #001F3F; 235 | } 236 | 237 | /* Keep it mobile-first and responsive */ 238 | 239 | @media screen and (min-width: 32em) { 240 | .btn--full { 241 | max-width: 16em!important; 242 | } 243 | } 244 | -------------------------------------------------------------------------------- /sass/btns.scss: -------------------------------------------------------------------------------- 1 | // Include sass modules/partials here. 2 | 3 | @import "styles"; 4 | 5 | // Can always be included as it only renders css if the 6 | // variable $layout-debug is set to "true" 7 | @import "debug"; 8 | 9 | -------------------------------------------------------------------------------- /svg/octocat.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 18 | 19 | -------------------------------------------------------------------------------- /svg/twitter.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | --------------------------------------------------------------------------------