├── .gitignore ├── CNAME ├── articles.html ├── demos.html ├── favicon.ico ├── images ├── browserify.png ├── browserify.svg ├── created_by_browserling_banner.png ├── created_by_browserling_banner.svg ├── fireball.png ├── fireball.svg ├── icons.svg ├── npm.png ├── octocat.png ├── star.png ├── testling_badge.png ├── tidelift.png ├── tidelift.svg ├── wizard-hat.png ├── wizard.png ├── wizard.svg ├── wizard_hat.png ├── wizard_hat.svg └── wizard_hat_blue.png ├── index.html ├── package.json ├── readme.md └── style.css /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | browserify.org -------------------------------------------------------------------------------- /articles.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Browserify 6 | 7 | 8 | 9 | 10 |
11 |
12 |

Browserify Articles

13 |

Resources for learning the ins and outs of using Browserify, written by the community.

14 | 15 | 18 | 19 | 20 | 23 | 24 |
25 |
26 |
27 |
28 |
29 |

30 | Introductions / Browserify basics

31 | 32 |

These articles give a great introduction to using Browserify.

33 | 34 | 35 |

36 | Browserify Handbook

37 | 38 |

github.com/substack/browserify-handbook 39 |

40 |

This document written by @substack covers how to use browserify to build modular applications. Recommended as a starting point.

41 | 42 |

43 | Introduction to Browserify

44 | 45 |

superbigtree.tumblr.com/post/54873453939/introduction-to-browserify 46 |

47 |

The basics of writing modules for the browser using node.js core modules 48 | and modules from npm.

49 | 50 | 51 |

52 | Frontend Dependency Management with Browserify from Bit.ly Engineering

53 | 54 |

http://word.bitly.com/post/101360133837/browserify 55 |

56 |

A great introductory article from Bit.ly engineering about Browserify and how they used it on a recent project.

57 | 58 |

59 | Untangle Your JavaScript with Browserify

60 | 61 |

http://lincolnloop.com/blog/untangle-your-javascript-browserify 62 |

63 |

A straightforward introduction to browserify, including integration with 64 | Grunt and Gulp.

65 | 66 |

67 | How Browserify Works

68 | 69 |

benclinkinbeard.com/posts/how-browserify-works/ 70 |

71 |

A basic introduction to how Browserify does what it does.

72 | 73 | 74 |

75 | Browserify: Unix In The Browser

76 | 77 |

thinkingonthinking.com/unix-in-the-browser 78 |

79 |

Another basic introduction to Browserify and NPM.

80 | 81 |

82 | Sharing code between Node.js and the browser

83 | 84 |

https://blog.codecentric.de/en/2014/02/cross-platform-javascript/ 85 |

86 |

A detailed introduction to Browserify and Grunt.js and how to leverage 87 | Browserify to write code that runs on Node.js and in the browser.

88 | 89 |

90 | Using npm on the client side

91 | 92 |

dontkry.com/posts/code/using-npm-on-the-client-side.html 93 |

94 |

A very thorough introduction to using npm, Browserify, and Grunt.js.

95 | 96 |

97 | NPM Everywhere (Slides)

98 | 99 |

NPM Everywhere 100 |

101 |

Slides for introducing front-end people NPM, Browserify and their benefits.

102 | 103 |

104 | Introduction to Browserify

105 | 106 |

blakeembrey.com/articles/2013/09/introduction-to-browserify/ 107 |

108 |

Another great look at the basics of Browserify.

109 | 110 |

111 | Node Packaged Modules, bringing npm modules to the web

112 | 113 |

maxogden.com/node-packaged-modules.html 114 |

115 |

A rundown of projects that have made developing with browserify more accessible 116 | and more interesting: requirebin.netlify.app, npmsearch.com, and Browserify CDN.

117 | 118 |

119 | Browserify and the Universal Module Definition

120 | 121 |

dontkry.com/posts/code/browserify-and-the-universal-module-definition.html 122 |

123 |

An awesome look at the possibilities for using Browserify to bundle modules 124 | written in AMD, CommonJS/node.js, UMD, ECMAscript 6, and global modules.

125 | 126 |

127 | Standalone Browserify Builds

128 | 129 |

www.forbeslindesay.co.uk/post/46324645400/standalone-browserify-builds 130 |

131 |

Particularly interesting for people using Browserify as part of the development 132 | workflow on a javascript library, check out this article for learning how 133 | to generate standalone Browserify builds.

134 | 135 |

136 | Browserify v2 adds source maps

137 | 138 |

thlorenz.com/blog/browserify-v2-adds-source-maps 139 |

140 |

Learn about using source maps with Browserify in this article.

141 | 142 |

143 | Browserify on Small.js

144 | 145 |

smalljs.org/package-managers/npm/browserify/

146 |

Yet another introductory article about Browserify. Covers basic workflow, transforms, source maps, automation, RequireBin, and how to play nice with popular frameworks.

147 | 148 |

149 | Browserify中文版使用指南

150 | 151 |

zhaoda.net/2015/10/16/browserify-guide/

152 |

Guide to the use of the Chinese version of the Browserify.

153 | 154 |

155 | Usage of browserify

156 | 157 |

For examples of using browserify with various javascript libraries, check 158 | out these articles.

159 | 160 | 161 |

162 | A Year With Browserify

163 | 164 |

aeflash.com/2014-03/a-year-with-browserify.html 165 |

166 |

"Along the way, I've learned a lot about the whole Browserify process, some tricks, and some pitfalls."

167 | 168 | 169 |

170 | Using angular and grunt with browserify

171 | 172 |

dontkry.com/posts/code/angular-browserify-grunt.html 173 |

174 |

Using angular.js with browserify is suprisingly straightforward as shown 175 | in this post.

176 | 177 |

178 | Basics of making maps with leaflet.js and browserify

179 | 180 |

learnjs.io/blog/2013/11/08/leaflet-basics 181 |

182 |

Leaflet.js is a great mapping library, and this tutorial shows how you 183 | can use it with browserify.

184 | 185 |

186 | Backbone & jQuery meet Browserify: easy.

187 | 188 |

learnjs.io/blog/2013/11/23/backbone-jquery-browserify 189 |

190 |

An introduction to using backbone and jquery with browserify.

191 | 192 |

193 | grunt+browserify+npm+application=success

194 | 195 |

codeofrob.com/entries/grunt+browserify+npm+application=success.html 196 |

197 |

A good rundown of using Grunt.js with Browserify.

198 | 199 |

200 | gulp browserify starter faq

201 | 202 |

http://viget.com/extend/gulp-browserify-starter-faq

203 |

How to start an application with gulp and browserify, including a 204 | starter repo

205 | 206 |

207 | Related tools

208 | 209 |

Browserify fits in well with other development tools. Check out some of 210 | the ones most commonly used with Browserify.

211 | 212 |

213 | Beefy

214 | 215 |

didact.us/beefy 216 |

217 |

Beefy is a great tool for running a development server that will automatically 218 | reload the browser and serve a newly generated bundle.js file each time 219 | you save a project file.

220 | 221 |

222 | grunt-browserify

223 | 224 |

github.com/jmreidy/grunt-browserify 225 |

226 |

A plugin for using browserify with grunt.

227 | 228 |

229 | chem

230 | 231 |

github.com/superjoe30/chem 232 |

233 |

Canvas-based game engine and toolchain optimized for rapid development. 234 | Chem uses browserify to compile your code. Check out some of the useful npm packages for games.

235 | 236 |

237 | Comparisons to similar tools

238 | 239 |

Browserify is used primarily with npm. Both of those tools have similar 240 | counterparts like Bower and RequireJS. These articles help explain some 241 | of the differences.

242 | 243 |

244 | Journey from RequireJS to Browserify

245 | 246 |

esa-matti.suuronen.org/blog/2013/03/22/journey-from-requirejs-to-browserify 247 |

248 |

A thorough explanation of switching from RequireJS to Browserify.

249 | 250 |

251 | 2013: A client side package manager oddyssey

252 | 253 |

calvinmetcalf.com/post/61957209713/2013-a-client-side-package-manager-oddyssey 254 |

255 |

A series of posts exploring package managers for client side code. Includes 256 | npm/Browserify.

257 | 258 |

259 | My strategy for client-side package managers (choosing between npm, bower, and component)

260 | 261 |

superbigtree.tumblr.com/post/58075340096/my-strategy-for-client-side-package-managers-choosing 262 |

263 |

Exploring the differences between npm, bower, and component.

264 | 265 |

266 | Browserify vs. Component

267 | 268 |

www.forbeslindesay.co.uk/post/44144487088/browserify-vs-component 269 |

270 |

A comparison of Browserify and Component.

271 | 272 |

273 | Resources

274 | 275 | 276 |

277 | Browserify documentation/github repository

278 | 279 |

github.com/browserify/browserify#browserify 280 |

281 |

Read the Browserify docs! Also check out the issues.

282 | 283 | 284 |

285 | Art Of Node - How Require Works

286 | 287 |

maxogden/art-of-node/#modular-development-workflow 288 |

289 |

Part of a larger Node tutorial. Explains how require works and gives examples of how to develop software using Node modules.

290 | 291 |

292 | node.js modules documentation

293 | 294 |

nodejs.org/docs/latest/api/modules.html#modules_modules 295 |

296 |

To write modules for the browser using Browserify, you'll use the node.js 297 | module system, and it's a good idea to check out the code node.js module 298 | documentation.

299 | 300 |

301 | Packages tagged with browserify on npm

302 | 303 |

npmjs.org/browse/keyword/browserify 304 |

305 |

Check out the modules tagged with browserify on npm.

306 | 307 |

308 | Browserify on StackOverflow

309 | 310 |

stackoverflow.com/questions/tagged/browserify 311 |

312 |

Check out the questions being asked about Browserify on StackOverflow.

313 | 314 |

315 | Videos

316 | 317 | 318 |

319 | Browserify V2 and you

320 | 321 |

vimeo.com/62988591 322 |

323 |

Creator of Browserify James Halliday (@substack) 324 | gives a rundown of the changes that came through in version 2 of the project.

325 | 326 |

327 | Modular JavaScript With Npm And Node Modules

328 | 329 |

ericleads.com/2014/03/modular-javascript-with-npm-and-node-modules 330 |

331 |

Eric Elliot recorded this screencast version of a talk he gave about using modules to write JS programs.

332 | 333 |

334 | Getting Started With Browserify

335 | 336 |

youtube.com/watch?v=CTAa8IcQh1U 337 |

338 |

A 10 minute screencast to quickly get you bundling with Browserify.

339 | 340 |

341 | Transform Your Bundles With Browserify

342 | 343 |

youtube.com/watch?v=Uk2bgp8OLT8 344 |

345 |

A 10 minute screencast about how to use and write Browserify transforms.

346 | 347 |

348 | Testing

349 | 350 |

351 | 352 | How I Write Tests for Node and the Browser 353 |

354 |

substack.net/how_I_write_tests_for_node_and_the_browser

355 |

356 | Write unit tests that work in node and the browser. 357 |

358 | 359 |
360 |
361 |
362 | 363 | 364 | 365 | -------------------------------------------------------------------------------- /demos.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Browserify 6 | 7 | 8 | 9 | 10 |
11 |

Browserify Demos

12 |

All demos on this page are self-contained and used Browserify to bundle the require()'d dependencies into a single JavaScript bundle

13 | 14 | 17 | 18 | 19 | 22 | 23 |
24 |
25 |
26 |

Canvas Splitter

27 |

This demo by @hughsk uses two modules, one that creates RGB lookup tables and another that slices the color table canvas element into smaller canvases. 28 | 29 |

Here is the above code running in an iframe

30 | 31 |
32 | 33 |

Exploding Dots

34 |

This demo by @anvaka uses the ngraph.generators and ngraph.vivasvg modules to create an animated exploding SVG dot cluster. 35 | 36 |

Here is the above code running in an iframe, click it to run the animation.

37 | 38 |
39 | 40 |

Infinite 2D Cave Generator

41 |

This demo by @hughsk uses 7 small modules to create an explorable 2D procedurally generated cave.

42 | 43 |

Click the canvas to give it focus and then use WSAD or Arrow keys to explore.

44 | 45 |
46 | 47 |

2D velocity control

48 |

This demo by @sethvincent uses some modules from his CRTRDG 2D game library.

49 | 50 |

Click the canvas to give it focus and then use WSAD keys to explore.

51 | 52 |
53 |
54 | 55 | 56 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/browserify/browserify-website/8a2ee055596d7877a34feb2d4bbadd4717cf9f1d/favicon.ico -------------------------------------------------------------------------------- /images/browserify.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/browserify/browserify-website/8a2ee055596d7877a34feb2d4bbadd4717cf9f1d/images/browserify.png -------------------------------------------------------------------------------- /images/browserify.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 42 | 44 | 45 | 47 | image/svg+xml 48 | 50 | 51 | 52 | 53 | 54 | 59 | 67 | 75 | 83 | 91 | 99 | 107 | 115 | 123 | 131 | 139 | 147 | 155 | 163 | 171 | 179 | 187 | 195 | 203 | 211 | 219 | 227 | 235 | 243 | 244 | 245 | -------------------------------------------------------------------------------- /images/created_by_browserling_banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/browserify/browserify-website/8a2ee055596d7877a34feb2d4bbadd4717cf9f1d/images/created_by_browserling_banner.png -------------------------------------------------------------------------------- /images/fireball.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/browserify/browserify-website/8a2ee055596d7877a34feb2d4bbadd4717cf9f1d/images/fireball.png -------------------------------------------------------------------------------- /images/fireball.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 21 | 23 | 41 | 43 | 44 | 46 | image/svg+xml 47 | 49 | 50 | 51 | 52 | 53 | 58 | 65 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /images/icons.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 27 | 28 | 47 | 49 | 50 | 52 | image/svg+xml 53 | 55 | 56 | 57 | 58 | 59 | 64 | 72 | 80 | 88 | 96 | 104 | 112 | 120 | 128 | 136 | 144 | 152 | 160 | 168 | 176 | 185 | 193 | 194 | 195 | -------------------------------------------------------------------------------- /images/npm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/browserify/browserify-website/8a2ee055596d7877a34feb2d4bbadd4717cf9f1d/images/npm.png -------------------------------------------------------------------------------- /images/octocat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/browserify/browserify-website/8a2ee055596d7877a34feb2d4bbadd4717cf9f1d/images/octocat.png -------------------------------------------------------------------------------- /images/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/browserify/browserify-website/8a2ee055596d7877a34feb2d4bbadd4717cf9f1d/images/star.png -------------------------------------------------------------------------------- /images/testling_badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/browserify/browserify-website/8a2ee055596d7877a34feb2d4bbadd4717cf9f1d/images/testling_badge.png -------------------------------------------------------------------------------- /images/tidelift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/browserify/browserify-website/8a2ee055596d7877a34feb2d4bbadd4717cf9f1d/images/tidelift.png -------------------------------------------------------------------------------- /images/tidelift.svg: -------------------------------------------------------------------------------- 1 | Asset 1 -------------------------------------------------------------------------------- /images/wizard-hat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/browserify/browserify-website/8a2ee055596d7877a34feb2d4bbadd4717cf9f1d/images/wizard-hat.png -------------------------------------------------------------------------------- /images/wizard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/browserify/browserify-website/8a2ee055596d7877a34feb2d4bbadd4717cf9f1d/images/wizard.png -------------------------------------------------------------------------------- /images/wizard_hat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/browserify/browserify-website/8a2ee055596d7877a34feb2d4bbadd4717cf9f1d/images/wizard_hat.png -------------------------------------------------------------------------------- /images/wizard_hat.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 38 | 40 | 41 | 43 | image/svg+xml 44 | 46 | 47 | 48 | 49 | 50 | 55 | 63 | 70 | 77 | 84 | 91 | 98 | 105 | 113 | 122 | 130 | 138 | 146 | 154 | 162 | 171 | 179 | 187 | 195 | 196 | 197 | -------------------------------------------------------------------------------- /images/wizard_hat_blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/browserify/browserify-website/8a2ee055596d7877a34feb2d4bbadd4717cf9f1d/images/wizard_hat_blue.png -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Browserify 6 | 7 | 8 | 9 | 10 |
11 |
12 |

13 | 14 |

15 |

Browserify lets you require('modules') in the browser by bundling up all of your dependencies.

16 | 43 |
44 | 52 |
53 |
54 |

Install

55 | 56 |

use Browserify from the Command Line

57 |
58 |
59 | 60 |
61 | First install node, 62 | which ships with npm. 63 | Then do: 64 |
65 | 66 |
npm install -g browserify
67 |
68 |
69 |
70 |
71 |

Hello World With Browserify

72 |

Bundle up your first module

73 |
74 |
75 |

Browsers don't have the require method defined, but Node.js does. With Browserify you can write code that uses require in the same way that you would use it in Node.

76 |

Here is a tutorial on how to use Browserify on the command line to bundle up a simple file called main.js along with all of its dependencies:

77 |
main.js
78 |
var unique = require('uniq');
 79 | 
 80 | var data = [1, 2, 2, 3, 4, 5, 5, 5, 6];
 81 | 
 82 | console.log(unique(data));
 83 | 
84 |
85 | Install the uniq module with npm: 86 |
87 | 88 |
npm install uniq
89 | 90 |
91 | Now recursively bundle up all the required modules starting at main.js into a single file called bundle.js with the browserify command: 92 |
93 | 94 |
browserify main.js -o bundle.js
95 | 96 |
97 | Browserify parses the AST for require() calls to traverse the entire dependency graph of your project. 98 |
99 | 100 |
101 | Drop a single <script> tag into your html and you're done! 102 |
103 | 104 |
<script src="bundle.js"></script>
105 | 106 |

More

107 | 108 |
109 |
    110 |
  • Read the Browserify Handbook
  • 111 |
  • 112 | Use many of the tens of thousands of modules on NPM in the browser 113 |
  • 114 |
  • Use watchify, a browserify compatible caching bundler, for super-fast bundle rebuilds as you develop.
  • 115 |
  • Use tinyify for optimized, tree-shaked bundles in production environments.
  • 116 |
  • Use --debug when creating bundles to have Browserify automatically include Source Maps for easy debugging.
  • 117 |
  • Check out tools like Beefy or run-browser which make automating browserify development easier.
  • 118 |
  • 119 | process.nextTick(), 120 | __dirname, 121 | and __filename 122 | node-isms work 123 |
  • 124 |
  • 125 | Get browser versions of the node core libraries 126 | events, 127 | stream, 128 | path, 129 | url, 130 | assert, 131 | buffer, 132 | util, 133 | querystring, 134 | http, 135 | vm, 136 | and 137 | crypto 138 | when you require() them 139 |
  • 140 |
141 |
142 | 143 |
144 |

Community

145 | 146 |
147 | Join irc.freenode.net/#browserify for help, or tweet @browserify. 148 |
149 |
150 |
151 |
152 | 153 |
154 |
155 |

Who Uses Browserify

156 |

here are some things people have said

157 |
158 | 159 |
160 |
161 |
Browserify is elegant and fast. It makes frontend development fun again! That's why we used it to build Yahoo's new HTML5 video player. 162 | - feross, developer on the Video team at Yahoo. 163 |
164 |
165 | 166 |
167 |
At Mapbox we build our website and JavaScript API with Browserify. It makes the structure and modularity of our code rock. 168 | - tmcw, developer at Mapbox. 169 |
170 | 171 |
172 | 173 |
174 |
Browserify does exactly what it says it does and it does it well. I'm glad it exists. 175 | - zpao, developer on the React team at Facebook. 176 |
177 |
178 | 179 |
180 |
Browserify radically sped up builds, simplified builds and encouraged modularity. 181 | - terinjokes, developer at CloudFlare. 182 |
183 |
184 | 185 |
View more at the Browserify in the wild page.
186 | 187 |
188 |
189 | 190 | 200 | 201 | 210 | 211 | 212 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "browserify-website", 3 | "version" : "1.0.0" 4 | } 5 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # browserify-website 2 | 3 | the static site that is http://browserify.org 4 | 5 | CSS forked from https://github.com/the-gss/the-gss.github.io 6 | Articles are hand updated every once in a while from [this markdown file](https://github.com/learn-js/learn-js.github.com/blob/master/_posts/posts/2013-11-24-browserify-resources.md) 7 | 8 | ## contributing 9 | 10 | we like pull requests that: 11 | 12 | - add meaningful new content 13 | - fix bugs in modern browsers 14 | - improve visual design 15 | - make browserify easier to understand/use/get started with 16 | 17 | please don't send pull requests that do the following: 18 | 19 | - reorganize css 20 | - optimize images 21 | - refactor without making any substantive changes to the website 22 | 23 | the browserify website currently does its job well and doesn't have any scaling problems. the overhead of merging in small pull requests often just isn't worth it for us. sorry! 24 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | *, *:after, *:before { 2 | -webkit-box-sizing: border-box; 3 | -moz-box-sizing: border-box; 4 | box-sizing: border-box; 5 | } 6 | 7 | html, body { 8 | margin: 0px; 9 | height: 100%; 10 | } 11 | 12 | pre { 13 | width: 100%; 14 | line-height: 1.6; 15 | background-color: #fffdae; 16 | padding: 1em 1em 1em 1em; 17 | border-left: solid 3px #3C6991; 18 | margin-right: -1em; 19 | overflow-x: auto; 20 | } 21 | 22 | .string { 23 | color: #3C6991; 24 | } 25 | 26 | .gold, .yellow, .blue { 27 | padding: .2em; 28 | margin: none; 29 | font-family: monospace; 30 | } 31 | 32 | .gold { 33 | color: #ffffaa; 34 | } 35 | 36 | .yellow { 37 | color: #e6b35a; 38 | } 39 | 40 | .lightblue { 41 | color: #9Cc9f1; 42 | } 43 | 44 | .blue { 45 | color: #4C6991; 46 | } 47 | 48 | .content .quote { 49 | padding-bottom: 40px; 50 | } 51 | 52 | .content blockquote { 53 | text-align: left; 54 | } 55 | 56 | .attrib { 57 | display: block; 58 | text-align: left; 59 | max-width: 550px; 60 | font-size: 16px; 61 | font-style: normal; 62 | margin-top: 10px; 63 | } 64 | 65 | .filename { 66 | text-align: right; 67 | font-size: 14px; 68 | margin: auto; 69 | margin-bottom: -4px; 70 | margin-top: -15px; 71 | } 72 | 73 | body { 74 | text-decoration: none; 75 | font-family: sans-serif; 76 | font-style: normal; 77 | font-weight: 300; 78 | } 79 | 80 | body { 81 | overflow-x: hidden; 82 | } 83 | 84 | em { 85 | font-family: sans-serif; 86 | font-style: italic; 87 | font-weight: 500; 88 | } 89 | header, h1 { 90 | text-align: center; 91 | font-family: georgia,serif; 92 | font-style: normal; 93 | font-weight: 400; 94 | } 95 | h1, h2, h3, h4, h5 { 96 | margin: 0; 97 | font-weight: normal; 98 | } 99 | h2 { 100 | font-family: georgia,serif; 101 | font-weight: 400; 102 | } 103 | .subtitle { 104 | font-size: 18px; 105 | text-transform: uppercase; 106 | letter-spacing: .16em; 107 | } 108 | .content h2 { 109 | font-style: normal; 110 | text-align: center; 111 | } 112 | 113 | div, p, blockquote, button { 114 | margin: 0; 115 | } 116 | 117 | #footer .content { 118 | color: white; 119 | padding: 20px; 120 | font-size: 14px; 121 | overflow: hidden; 122 | } 123 | #banner { text-align: center; } 124 | #footer a { color: #e6b35a; } 125 | 126 | @media only screen and (max-width: 548px) { 127 | #banner-img { 128 | width: 100%; 129 | } 130 | } 131 | 132 | blockquote { 133 | font-family: georgia, serif; 134 | font-style: italic; 135 | font-weight: 400; 136 | font-size: 1.2em; 137 | line-height: 1.6em; 138 | padding: 36px; 139 | border: solid 8px #e6b35a; 140 | font-style: italic; 141 | } 142 | 143 | ul, ol, li { 144 | margin: 14px 0; 145 | } 146 | 147 | small { 148 | font-size: .6em; 149 | } 150 | 151 | button { 152 | padding: .2em .5em .2em .6em; 153 | outline: none; 154 | box-shadow: none; 155 | background: none; 156 | border: 2px solid; 157 | font-family: georgia, serif; 158 | text-transform: uppercase; 159 | letter-spacing: 0.1em; 160 | margin-bottom: 5px; 161 | } 162 | 163 | .trans { 164 | -webkit-transition: -webkit-transform .3s; 165 | -moz-transition: -moz-transform .3s; 166 | transition: transform .3s; 167 | } 168 | 169 | a { 170 | color: inherit; 171 | text-decoration: none; 172 | } 173 | 174 | p a { 175 | font-weight: inherit; 176 | } 177 | 178 | article { overflow: hidden; } 179 | 180 | .articles h2 { font-size: 40px; } 181 | .articles section { padding: 50px; } 182 | .articles #middle-section, .articles #bottom-section { padding: 50px 0; } 183 | 184 | #install a { color: white;} 185 | #install .code { 186 | background: #111; 187 | box-shadow: 0 0 10px #08c, inset 0 0 10px #000; 188 | border: 0; 189 | border-radius: 9px; 190 | color: #fff !important; 191 | } 192 | 193 | .entry-content a, .content a { color: #3C6991;} 194 | .review-section a { color: #e6b35a;} 195 | 196 | .entry-content h2 { 197 | margin: 1em 0 15px; 198 | padding: 0; 199 | font-weight: bold; 200 | line-height: 1.7; 201 | cursor: text; 202 | position: relative; 203 | text-align: left; 204 | } 205 | 206 | .entry-content h3 { 207 | margin: 1em 0 15px; 208 | padding: 0; 209 | font-weight: bold; 210 | line-height: 1.7; 211 | cursor: text; 212 | position: relative; 213 | } 214 | 215 | /* Color Schemes 216 | ============================================================= */ 217 | 218 | button { 219 | color: #3C6991; 220 | background-color: #f0f0f0; 221 | margin-right: 10px; 222 | } 223 | 224 | button.transparent { 225 | background-color: transparent; 226 | } 227 | 228 | button:hover, button.transparent:hover { 229 | border-color: #3C6991; 230 | background-color: #3C6991 !important; 231 | color: #F2F4FF; 232 | } 233 | 234 | .badge g { 235 | fill: #6f019e; 236 | } 237 | 238 | .color-d { 239 | color: #e6b35a; 240 | } 241 | 242 | .color-a { 243 | background-color: #f0f0f0; 244 | color: #3C6991; 245 | } 246 | 247 | 248 | .color-c { 249 | background-color: #222; 250 | color: #F2F4FF; 251 | } 252 | 253 | #top-home-section { 254 | text-align: center; 255 | overflow: auto; 256 | } 257 | #top-home-image { 258 | width: 200px; height: 150px; 259 | background-image: url('images/wizard_hat_blue.png'); 260 | background-position: center center; 261 | background-repeat: no-repeat; 262 | background-size: contain; 263 | margin: 20px auto 0 auto; 264 | } 265 | #top-home-section > a:last-of-type button { 266 | margin-right: 0; 267 | } 268 | 269 | h1, h2, h3, p, div { padding: 0 5px; } 270 | 271 | #top-title { 272 | font-size: 50px; 273 | margin-top: -20px; 274 | margin-bottom: -10px; 275 | } 276 | #top-title img { 277 | width: 300px; 278 | max-width: 100%; 279 | } 280 | #top-subtitle { 281 | font-size: 16px; 282 | line-height: 24px; 283 | max-width: 720px; 284 | padding: 0 20px 30px 20px; 285 | margin: 0 auto; 286 | } 287 | #top-nav { 288 | padding: 0 20px; 289 | } 290 | .top-button { font-size: 14px; } 291 | h1 { font-size: 30px; } 292 | 293 | .community { margin: 20px; } 294 | #bottom-section, .review-section { padding: 30px 0; } 295 | #middle-section h1 { margin-bottom: 15px; padding: 20px 0 10px 0; } 296 | #middle-section h3 { padding: 10px 0; font-size: 25px; text-align: center; } 297 | #bottom-section .code { color: black; } 298 | 299 | #middle-section { padding: 20px 0; } 300 | section { padding: 0 0 30px 0; } 301 | 302 | .content { 303 | font-size: 14px; 304 | max-width: 450px; 305 | margin: 0 auto; 306 | line-height: 20px; 307 | } 308 | 309 | .content blockquote { 310 | background-color: #fffdae; 311 | } 312 | 313 | pre { font-size: 14px; } 314 | iframe { width: 450px; } 315 | 316 | .content p { margin: 15px 0; } 317 | 318 | a:hover, button:hover { cursor: pointer; cursor: hand;} 319 | 320 | .content iframe { 321 | margin-bottom: 15px; 322 | border: 1px solid #ddd; 323 | } 324 | 325 | .badge img { width: 200px;} 326 | 327 | .content hr { 328 | margin-bottom: 15px; 329 | } 330 | 331 | .title { margin-bottom: 10px; } 332 | .subtitle { margin-bottom: 20px; } 333 | 334 | #sponsor { 335 | padding: 0; 336 | margin: 0; 337 | } 338 | .tidelift-banner { 339 | background-color: #626980; 340 | color: #ffffff; 341 | font: 14px "Avenir Next", Avenir, "Helvetica Neue", Helvetica, Arial, 342 | sans-serif; 343 | padding: 6px 10px; 344 | display: inline-block; 345 | width: 100%; 346 | } 347 | .tidelift-banner img { 348 | display: inline-block; 349 | height: 1.428em; 350 | width: 1.428em; 351 | margin-right: 10px; 352 | vertical-align: middle; 353 | } 354 | @media (min-width: 900px) { 355 | #sponsor { 356 | position: absolute; 357 | top: 16px; 358 | right: 0; 359 | } 360 | .tidelift-banner { width: auto; } 361 | } 362 | 363 | #bottom-section header, #bottom-section .step { 364 | text-shadow: 0px 0px 30px #08c, 0px 0px 30px #08c,0px 0px 30px #08c; 365 | } 366 | 367 | #bottom-section { 368 | background-image: url(images/wizard.png); 369 | background-repeat: no-repeat; 370 | background-position: bottom 30px center; 371 | background-size: 150px; 372 | padding-bottom: 230px; 373 | } 374 | 375 | @media only screen and (min-width : 900px) { 376 | #bottom-section { 377 | background-position: 20px 20px; 378 | padding-bottom: 30px; 379 | } 380 | } 381 | 382 | @media only screen and (min-height : 500px) { 383 | h1 { font-size: 40px; } 384 | #top-home-image { height: 250px; } 385 | #top-title { padding-bottom: 15px; font-size: 65px; margin-top: -80px;} 386 | #top-title img { width: 450px; } 387 | #top-subtitle { font-size: 20px; line-height: 24px; padding-bottom: 30px; } 388 | .top-button { font-size: 18px; } 389 | section { padding: 0 0 70px 0; } 390 | #bottom-section { background-size: 225px; } 391 | #bottom-section, .review-section { padding: 60px 0; } 392 | #middle-section { padding: 30px 0; } 393 | #middle-section h1 { padding: 35px 0 15px 0; } 394 | #middle-section h3 { padding: 20px 0; font-size: 30px; } 395 | pre { font-size: 16px; } 396 | .content { font-size: 16px; line-height: 24px; max-width: 600px; } 397 | .content p { margin-top: 25px; } 398 | .content iframe, .content hr { margin-bottom: 25px; } 399 | iframe { width: 600px; } 400 | .title { margin-bottom: 20px; } 401 | .subtitle { margin-bottom: 30px; } 402 | .community { margin: 30px; } 403 | .badge img { width: 300px;} 404 | } 405 | 406 | @media only screen and (min-height : 750px) { 407 | button { border: 5px solid;} 408 | h1 { font-size: 50px; } 409 | #top-home-image { height: 350px; width: 300px; } 410 | #top-title { padding-bottom: 30px; font-size: 84.5px; margin-top: -80px; } 411 | #top-title img { width: 650px; } 412 | #top-subtitle { font-size: 24px; line-height: 36px; padding-bottom: 30px; } 413 | .top-button { font-size: 22px; } 414 | section { padding: 0 0 100px 0; } 415 | #bottom-section { background-size: 300px; background-position: 20px 40px; } 416 | #bottom-section, .review-section { padding: 100px 0; } 417 | #middle-section { padding: 50px 0; } 418 | #middle-section h1 { padding: 50px 0 20px 0; } 419 | #middle-section h3 { padding: 30px 0; font-size: 45px; } 420 | .content { font-size: 20px; line-height: 30px; max-width: 720px; } 421 | iframe { width: 720px; } 422 | pre { font-size: 20px; } 423 | .content p { margin-top: 40px; } 424 | .content iframe, .content hr { margin-bottom: 40px; } 425 | .subtitle { margin-bottom: 40px; } 426 | .community { margin: 40px; } 427 | .badge img { width: 400px;} 428 | } 429 | --------------------------------------------------------------------------------