Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Initial structure.

  • Loading branch information...
commit bca04d32e770f921823c5aa4560bce45c29c03ec 1 parent e705346
@datapimp authored
View
14 .gitignore
@@ -0,0 +1,14 @@
+# See http://help.github.com/ignore-files/ for more about ignoring files.
+#
+# If you find yourself ignoring temporary files generated by your text editor
+# or operating system, you probably want to add a global ignore instead:
+# git config --global core.excludesfile ~/.gitignore_global
+
+# Ignore bundler config
+/.bundle
+
+# Ignore the build directory
+/build
+
+# Ignore Sass' cache
+/.sass-cache
View
5 Gemfile
@@ -0,0 +1,5 @@
+# If you have OpenSSL installed, we recommend updating
+# the following line to use "https"
+source 'http://rubygems.org'
+
+gem "middleman", "~>3.0.13"
View
100 Gemfile.lock
@@ -0,0 +1,100 @@
+GEM
+ remote: http://rubygems.org/
+ specs:
+ activesupport (3.2.13)
+ i18n (= 0.6.1)
+ multi_json (~> 1.0)
+ chunky_png (1.2.8)
+ coffee-script (2.2.0)
+ coffee-script-source
+ execjs
+ coffee-script-source (1.3.3)
+ compass (0.12.2)
+ chunky_png (~> 1.2)
+ fssm (>= 0.2.7)
+ sass (~> 3.1)
+ execjs (1.4.0)
+ multi_json (~> 1.0)
+ fssm (0.2.10)
+ haml (4.0.1)
+ tilt
+ hike (1.2.1)
+ http_router (0.10.2)
+ rack (>= 1.0.0)
+ url_mount (~> 0.2.1)
+ i18n (0.6.1)
+ listen (0.7.3)
+ maruku (0.6.1)
+ syntax (>= 1.0.0)
+ middleman (3.0.13)
+ middleman-core (= 3.0.13)
+ middleman-more (= 3.0.13)
+ middleman-sprockets (~> 3.0.8)
+ middleman-core (3.0.13)
+ activesupport (~> 3.2.6)
+ bundler (~> 1.1)
+ listen (~> 0.7.3)
+ rack (~> 1.4.1)
+ rack-test (~> 0.6.1)
+ rb-fsevent (~> 0.9.3)
+ thor (~> 0.15.4)
+ tilt (~> 1.3.6)
+ middleman-more (3.0.13)
+ coffee-script (~> 2.2.0)
+ coffee-script-source (~> 1.3.3)
+ compass (>= 0.12.2)
+ execjs (~> 1.4.0)
+ haml (>= 3.1.6)
+ i18n (~> 0.6.0, < 0.6.2)
+ maruku (~> 0.6.0)
+ middleman-core (= 3.0.13)
+ padrino-helpers (= 0.10.7)
+ sass (>= 3.1.20)
+ uglifier (~> 1.2.6)
+ middleman-sprockets (3.0.10)
+ middleman-more (>= 3.0.11)
+ sprockets (~> 2.1, < 2.5)
+ sprockets-sass (~> 0.9.1)
+ multi_json (1.7.2)
+ padrino-core (0.10.7)
+ activesupport (~> 3.2.0)
+ http_router (~> 0.10.2)
+ sinatra (~> 1.3.1)
+ thor (~> 0.15.2)
+ tilt (~> 1.3.0)
+ padrino-helpers (0.10.7)
+ i18n (~> 0.6)
+ padrino-core (= 0.10.7)
+ rack (1.4.5)
+ rack-protection (1.5.0)
+ rack
+ rack-test (0.6.2)
+ rack (>= 1.0)
+ rb-fsevent (0.9.3)
+ sass (3.2.7)
+ sinatra (1.3.6)
+ rack (~> 1.4)
+ rack-protection (~> 1.3)
+ tilt (~> 1.3, >= 1.3.3)
+ sprockets (2.4.5)
+ hike (~> 1.2)
+ multi_json (~> 1.0)
+ rack (~> 1.0)
+ tilt (~> 1.1, != 1.3.0)
+ sprockets-sass (0.9.1)
+ sprockets (~> 2.0)
+ tilt (~> 1.1)
+ syntax (1.0.0)
+ thor (0.15.4)
+ tilt (1.3.6)
+ uglifier (1.2.7)
+ execjs (>= 0.3.0)
+ multi_json (~> 1.3)
+ url_mount (0.2.1)
+ rack
+
+PLATFORMS
+ ruby
+
+DEPENDENCIES
+ middleman (~> 3.0.13)
View
77 config.rb
@@ -0,0 +1,77 @@
+###
+# Compass
+###
+
+# Susy grids in Compass
+# First: gem install susy
+# require 'susy'
+
+# Change Compass configuration
+# compass_config do |config|
+# config.output_style = :compact
+# end
+
+###
+# Page options, layouts, aliases and proxies
+###
+
+# Per-page layout changes:
+#
+# With no layout
+# page "/path/to/file.html", :layout => false
+#
+# With alternative layout
+# page "/path/to/file.html", :layout => :otherlayout
+#
+# A path which all have the same layout
+# with_layout :admin do
+# page "/admin/*"
+# end
+
+# Proxy (fake) files
+# page "/this-page-has-no-template.html", :proxy => "/template-file.html" do
+# @which_fake_page = "Rendering a fake page with a variable"
+# end
+
+###
+# Helpers
+###
+
+# Automatic image dimensions on image_tag helper
+# activate :automatic_image_sizes
+
+# Methods defined in the helpers block are available in templates
+# helpers do
+# def some_helper
+# "Helping"
+# end
+# end
+
+set :css_dir, 'stylesheets'
+
+set :js_dir, 'javascripts'
+
+set :images_dir, 'images'
+
+# Build-specific configuration
+configure :build do
+ # For example, change the Compass output style for deployment
+ # activate :minify_css
+
+ # Minify Javascript on build
+ # activate :minify_javascript
+
+ # Enable cache buster
+ # activate :cache_buster
+
+ # Use relative URLs
+ # activate :relative_assets
+
+ # Compress PNGs after build
+ # First: gem install middleman-smusher
+ # require "middleman-smusher"
+ # activate :smusher
+
+ # Or use a different image path
+ # set :http_path, "/Content/images/"
+end
View
BIN  source/images/background.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN  source/images/middleman.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
10 source/index.html.erb
@@ -0,0 +1,10 @@
+---
+title: Welcome to Middleman
+---
+
+<div class="welcome">
+ <h1>Middleman is Watching</h1>
+ <p class="doc">
+ <%= link_to "Read Online Documentation", "http://middlemanapp.com/" %>
+ </p><!-- .doc -->
+</div><!-- .welcome -->
View
17 source/javascripts/keylauncher.coffee
@@ -0,0 +1,17 @@
+#= require ./keylauncher/domready.js
+#= require ./keylauncher/keymaster.js
+#= require ./keylauncher/loader.js
+#= require ./keylauncher/launcher.js
+#= require_self
+
+KeyLauncher.VERSION = "0.0.1"
+
+KeyLauncher.on = (keycommand, launchFn=->, options={})->
+ throw "Must specify a valid key command" unless keycommand?
+
+ launcher = new KeyLauncher.Launcher
+ command: keycommand
+ fn: launchFn || ->
+ requires: options.requires || []
+
+ key(keycommand, launcher.run)
View
146 source/javascripts/keylauncher/domready.js
@@ -0,0 +1,146 @@
+(function(){
+
+ var DomReady = window.DomReady = {};
+
+ // Everything that has to do with properly supporting our document ready event. Brought over from the most awesome jQuery.
+
+ var userAgent = navigator.userAgent.toLowerCase();
+
+ // Figure out what browser is being used
+ var browser = {
+ version: (userAgent.match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [])[1],
+ safari: /webkit/.test(userAgent),
+ opera: /opera/.test(userAgent),
+ msie: (/msie/.test(userAgent)) && (!/opera/.test( userAgent )),
+ mozilla: (/mozilla/.test(userAgent)) && (!/(compatible|webkit)/.test(userAgent))
+ };
+
+ var readyBound = false;
+ var isReady = false;
+ var readyList = [];
+
+ // Handle when the DOM is ready
+ function domReady() {
+ // Make sure that the DOM is not already loaded
+ if(!isReady) {
+ // Remember that the DOM is ready
+ isReady = true;
+
+ if(readyList) {
+ for(var fn = 0; fn < readyList.length; fn++) {
+ readyList[fn].call(window, []);
+ }
+
+ readyList = [];
+ }
+ }
+ };
+
+ // From Simon Willison. A safe way to fire onload w/o screwing up everyone else.
+ function addLoadEvent(func) {
+ var oldonload = window.onload;
+ if (typeof window.onload != 'function') {
+ window.onload = func;
+ } else {
+ window.onload = function() {
+ if (oldonload) {
+ oldonload();
+ }
+ func();
+ }
+ }
+ };
+
+ // does the heavy work of working through the browsers idiosyncracies (let's call them that) to hook onload.
+ function bindReady() {
+ if(readyBound) {
+ return;
+ }
+
+ readyBound = true;
+
+ // Mozilla, Opera (see further below for it) and webkit nightlies currently support this event
+ if (document.addEventListener && !browser.opera) {
+ // Use the handy event callback
+ document.addEventListener("DOMContentLoaded", domReady, false);
+ }
+
+ // If IE is used and is not in a frame
+ // Continually check to see if the document is ready
+ if (browser.msie && window == top) (function(){
+ if (isReady) return;
+ try {
+ // If IE is used, use the trick by Diego Perini
+ // http://javascript.nwbox.com/IEContentLoaded/
+ document.documentElement.doScroll("left");
+ } catch(error) {
+ setTimeout(arguments.callee, 0);
+ return;
+ }
+ // and execute any waiting functions
+ domReady();
+ })();
+
+ if(browser.opera) {
+ document.addEventListener( "DOMContentLoaded", function () {
+ if (isReady) return;
+ for (var i = 0; i < document.styleSheets.length; i++)
+ if (document.styleSheets[i].disabled) {
+ setTimeout( arguments.callee, 0 );
+ return;
+ }
+ // and execute any waiting functions
+ domReady();
+ }, false);
+ }
+
+ if(browser.safari) {
+ var numStyles;
+ (function(){
+ if (isReady) return;
+ if (document.readyState != "loaded" && document.readyState != "complete") {
+ setTimeout( arguments.callee, 0 );
+ return;
+ }
+ if (numStyles === undefined) {
+ var links = document.getElementsByTagName("link");
+ for (var i=0; i < links.length; i++) {
+ if(links[i].getAttribute('rel') == 'stylesheet') {
+ numStyles++;
+ }
+ }
+ var styles = document.getElementsByTagName("style");
+ numStyles += styles.length;
+ }
+ if (document.styleSheets.length != numStyles) {
+ setTimeout( arguments.callee, 0 );
+ return;
+ }
+
+ // and execute any waiting functions
+ domReady();
+ })();
+ }
+
+ // A fallback to window.onload, that will always work
+ addLoadEvent(domReady);
+ };
+
+ // This is the public function that people can use to hook up ready.
+ DomReady.ready = function(fn, args) {
+ // Attach the listeners
+ bindReady();
+
+ // If the DOM is already ready
+ if (isReady) {
+ // Execute the function immediately
+ fn.call(window, []);
+ } else {
+ // Add the function to the wait list
+ readyList.push( function() { return fn.call(window, []); } );
+ }
+ };
+
+ bindReady();
+
+})();
View
4 source/javascripts/keylauncher/keymaster.js
@@ -0,0 +1,4 @@
+// keymaster.js
+// (c) 2011-2012 Thomas Fuchs
+// keymaster.js may be freely distributed under the MIT license.
+(function(e){function a(e,t){var n=e.length;while(n--)if(e[n]===t)return n;return-1}function f(e,t){var i,o,f,l,c;i=e.keyCode,a(u,i)==-1&&u.push(i);if(i==93||i==224)i=91;if(i in r){r[i]=!0;for(f in s)s[f]==i&&(h[f]=!0);return}if(!h.filter.call(this,e))return;if(!(i in n))return;for(l=0;l<n[i].length;l++){o=n[i][l];if(o.scope==t||o.scope=="all"){c=o.mods.length>0;for(f in r)if(!r[f]&&a(o.mods,+f)>-1||r[f]&&a(o.mods,+f)==-1)c=!1;(o.mods.length==0&&!r[16]&&!r[18]&&!r[17]&&!r[91]||c)&&o.method(e,o)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}}function l(e){var t=e.keyCode,n,i=a(u,t);i>=0&&u.splice(i,1);if(t==93||t==224)t=91;if(t in r){r[t]=!1;for(n in s)s[n]==t&&(h[n]=!1)}}function c(){for(t in r)r[t]=!1;for(t in s)h[t]=!1}function h(e,t,r){var i,u,a,f;r===undefined&&(r=t,t="all"),e=e.replace(/\s/g,""),i=e.split(","),i[i.length-1]==""&&(i[i.length-2]+=",");for(a=0;a<i.length;a++){u=[],e=i[a].split("+");if(e.length>1){u=e.slice(0,e.length-1);for(f=0;f<u.length;f++)u[f]=s[u[f]];e=[e[e.length-1]]}e=e[0],e=o[e]||e.toUpperCase().charCodeAt(0),e in n||(n[e]=[]),n[e].push({shortcut:i[a],scope:t,method:r,key:i[a],mods:u})}}function p(e){if(typeof e=="string"){if(e.length!=1)return!1;e=e.toUpperCase().charCodeAt(0)}return a(u,e)!=-1}function d(){return u}function v(e){var t=(e.target||e.srcElement).tagName;return t!="INPUT"&&t!="SELECT"&&t!="TEXTAREA"}function m(e){i=e||"all"}function g(){return i||"all"}function y(e){var t,r,i;for(t in n){r=n[t];for(i=0;i<r.length;)r[i].scope===e?r.splice(i,1):i++}}function b(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on"+t,function(){n(window.event)})}function E(){var t=e.key;return e.key=w,t}var t,n={},r={16:!1,18:!1,17:!1,91:!1},i="all",s={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,command:91},o={backspace:8,tab:9,clear:12,enter:13,"return":13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,"delete":46,home:36,end:35,pageup:33,pagedown:34,",":188,".":190,"/":191,"`":192,"-":189,"=":187,";":186,"'":222,"[":219,"]":221,"\\":220},u=[];for(t=1;t<20;t++)s["f"+t]=111+t;for(t in s)h[t]=!1;b(document,"keydown",function(e){f(e,i)}),b(document,"keyup",l),b(window,"focus",c);var w=e.key;e.key=h,e.key.setScope=m,e.key.getScope=g,e.key.deleteScope=y,e.key.filter=v,e.key.isPressed=p,e.key.getPressedKeyCodes=d,e.key.noConflict=E,typeof module!="undefined"&&(module.exports=key)})(this);
View
28 source/javascripts/keylauncher/launcher.coffee
@@ -0,0 +1,28 @@
+class window.KeyLauncher.Launcher
+ _dependencies: {}
+
+ constructor: (@options={})->
+ @fn = options.fn
+ @command = options.command
+
+ for dependency in @options.requires
+ @_dependencies[dependency] = loaded: false
+
+ requires: (dependency)->
+ @_dependencies[dependency] =
+ loaded: false
+
+ isReady: ()->
+ ready = true
+
+ for dependency, status of @_dependencies
+ if status.loaded is false
+ ready = false
+
+ ready
+
+ onDependencyLoad: (dependency)->
+ @onReady() if @isReady()
+
+ onReady: ()->
+ @fn.call(window, @)
View
47 source/javascripts/keylauncher/loader.coffee
@@ -0,0 +1,47 @@
+window.KeyLauncher ||= {}
+window.KeyLauncher.util ||= {}
+
+loadedScripts = {}
+scriptTimers = {}
+
+KeyLauncher.util.loadScript = (url, options={}, callback) ->
+ loaded = loadedScripts
+ timers = scriptTimers
+
+ if _.isFunction(options) and !callback?
+ callback = options
+ options = {}
+
+ head= document.getElementsByTagName('head')[0];
+ script = document.createElement("script")
+ script.src = url
+ script.type = "text/javascript"
+
+ that = @
+ onLoad = ()->
+ if typeof(callback) is "function"
+ callback.call(that, url, options, script)
+
+ try
+ head.removeChild(script)
+ catch e
+ true
+
+ loaded[url] = true
+
+ if options.once is true && loaded[url]
+ return false
+
+ head.appendChild(script)
+
+ script.onreadystatechange = ()->
+ if script.readyState is "loaded" or script.readyState is "complete"
+ onLoad()
+
+ script.onload = onLoad
+
+ if navigator?.userAgent.match(/WebKit/)
+ timers[url] = setInterval ()->
+ onLoad()
+ clearInterval(timers[url])
+ , 10
View
19 source/layouts/layout.erb
@@ -0,0 +1,19 @@
+<!doctype html>
+<html>
+ <head>
+ <meta charset="utf-8">
+
+ <!-- Always force latest IE rendering engine or request Chrome Frame -->
+ <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
+
+ <!-- Use title if it's in the page YAML frontmatter -->
+ <title><%= data.page.title || "The Middleman" %></title>
+
+ <%= stylesheet_link_tag "normalize", "all" %>
+ <%= javascript_include_tag "all" %>
+ </head>
+
+ <body class="<%= page_classes %>">
+ <%= yield %>
+ </body>
+</html>
View
55 source/stylesheets/all.css
@@ -0,0 +1,55 @@
+@charset "utf-8";
+
+body {
+ background: #d4d4d4 url("../images/background.png");
+ text-align: center;
+ font-family: sans-serif; }
+
+h1 {
+ color: rgba(0, 0, 0, .3);
+ font-weight: bold;
+ font-size: 32px;
+ letter-spacing: -1px;
+ text-transform: uppercase;
+ text-shadow: 0 1px 0 rgba(255, 255, 255, .5);
+ background: url("../images/middleman.png") no-repeat center 100px;
+ padding: 350px 0 10px;
+ margin: 0; }
+
+.doc {
+ font-size: 14px;
+ margin: 0; }
+ .doc:before,
+ .doc:after {
+ opacity: .2;
+ padding: 6px;
+ font-style: normal;
+ position: relative;
+ content: ""; }
+ .doc a {
+ color: rgba(0, 0, 0, 0.3); }
+ .doc a:hover {
+ color: #666; }
+
+.welcome {
+ -webkit-animation-name: welcome;
+ -webkit-animation-duration: .9s; }
+
+@-webkit-keyframes welcome {
+ from {
+ -webkit-transform: scale(0);
+ opacity: 0;
+ }
+ 50% {
+ -webkit-transform: scale(0);
+ opacity: 0;
+ }
+ 82.5% {
+ -webkit-transform: scale(1.03);
+ -webkit-animation-timing-function: ease-out;
+ opacity: 1;
+ }
+ to {
+ -webkit-transform: scale(1);
+ }
+}
View
375 source/stylesheets/normalize.css
@@ -0,0 +1,375 @@
+/*! normalize.css v2.0.1 | MIT License | git.io/normalize */
+
+/* ==========================================================================
+ HTML5 display definitions
+ ========================================================================== */
+
+/*
+ * Corrects `block` display not defined in IE 8/9.
+ */
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+nav,
+section,
+summary {
+ display: block;
+}
+
+/*
+ * Corrects `inline-block` display not defined in IE 8/9.
+ */
+
+audio,
+canvas,
+video {
+ display: inline-block;
+}
+
+/*
+ * Prevents modern browsers from displaying `audio` without controls.
+ * Remove excess height in iOS 5 devices.
+ */
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+/*
+ * Addresses styling for `hidden` attribute not present in IE 8/9.
+ */
+
+[hidden] {
+ display: none;
+}
+
+/* ==========================================================================
+ Base
+ ========================================================================== */
+
+/*
+ * 1. Sets default font family to sans-serif.
+ * 2. Prevents iOS text size adjust after orientation change, without disabling
+ * user zoom.
+ */
+
+html {
+ font-family: sans-serif; /* 1 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+ -ms-text-size-adjust: 100%; /* 2 */
+}
+
+/*
+ * Removes default margin.
+ */
+
+body {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Links
+ ========================================================================== */
+
+/*
+ * Addresses `outline` inconsistency between Chrome and other browsers.
+ */
+
+a:focus {
+ outline: thin dotted;
+}
+
+/*
+ * Improves readability when focused and also mouse hovered in all browsers.
+ */
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+/* ==========================================================================
+ Typography
+ ========================================================================== */
+
+/*
+ * Addresses `h1` font sizes within `section` and `article` in Firefox 4+,
+ * Safari 5, and Chrome.
+ */
+
+h1 {
+ font-size: 2em;
+}
+
+/*
+ * Addresses styling not present in IE 8/9, Safari 5, and Chrome.
+ */
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+/*
+ * Addresses style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
+ */
+
+b,
+strong {
+ font-weight: bold;
+}
+
+/*
+ * Addresses styling not present in Safari 5 and Chrome.
+ */
+
+dfn {
+ font-style: italic;
+}
+
+/*
+ * Addresses styling not present in IE 8/9.
+ */
+
+mark {
+ background: #ff0;
+ color: #000;
+}
+
+
+/*
+ * Corrects font family set oddly in Safari 5 and Chrome.
+ */
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, serif;
+ font-size: 1em;
+}
+
+/*
+ * Improves readability of pre-formatted text in all browsers.
+ */
+
+pre {
+ white-space: pre;
+ white-space: pre-wrap;
+ word-wrap: break-word;
+}
+
+/*
+ * Sets consistent quote types.
+ */
+
+q {
+ quotes: "\201C" "\201D" "\2018" "\2019";
+}
+
+/*
+ * Addresses inconsistent and variable font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/*
+ * Prevents `sub` and `sup` affecting `line-height` in all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -0.5em;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+/* ==========================================================================
+ Embedded content
+ ========================================================================== */
+
+/*
+ * Removes border when inside `a` element in IE 8/9.
+ */
+
+img {
+ border: 0;
+}
+
+/*
+ * Corrects overflow displayed oddly in IE 9.
+ */
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+/* ==========================================================================
+ Figures
+ ========================================================================== */
+
+/*
+ * Addresses margin not present in IE 8/9 and Safari 5.
+ */
+
+figure {
+ margin: 0;
+}
+
+/* ==========================================================================
+ Forms
+ ========================================================================== */
+
+/*
+ * Define consistent border, margin, and padding.
+ */
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+
+/*
+ * 1. Corrects color not being inherited in IE 8/9.
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
+ */
+
+legend {
+ border: 0; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/*
+ * 1. Corrects font family not being inherited in all browsers.
+ * 2. Corrects font size not being inherited in all browsers.
+ * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome
+ */
+
+button,
+input,
+select,
+textarea {
+ font-family: inherit; /* 1 */
+ font-size: 100%; /* 2 */
+ margin: 0; /* 3 */
+}
+
+/*
+ * Addresses Firefox 4+ setting `line-height` on `input` using `!important` in
+ * the UA stylesheet.
+ */
+
+button,
+input {
+ line-height: normal;
+}
+
+/*
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
+ * and `video` controls.
+ * 2. Corrects inability to style clickable `input` types in iOS.
+ * 3. Improves usability and consistency of cursor style between image-type
+ * `input` and others.
+ */
+
+button,
+html input[type="button"], /* 1 */
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button; /* 2 */
+ cursor: pointer; /* 3 */
+}
+
+/*
+ * Re-set default cursor for disabled elements.
+ */
+
+button[disabled],
+input[disabled] {
+ cursor: default;
+}
+
+/*
+ * 1. Addresses box sizing set to `content-box` in IE 8/9.
+ * 2. Removes excess padding in IE 8/9.
+ */
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/*
+ * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome.
+ * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome
+ * (include `-moz` to future-proof).
+ */
+
+input[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box; /* 2 */
+ box-sizing: content-box;
+}
+
+/*
+ * Removes inner padding and search cancel button in Safari 5 and Chrome
+ * on OS X.
+ */
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/*
+ * Removes inner padding and border in Firefox 4+.
+ */
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+
+/*
+ * 1. Removes default vertical scrollbar in IE 8/9.
+ * 2. Improves readability and alignment in all browsers.
+ */
+
+textarea {
+ overflow: auto; /* 1 */
+ vertical-align: top; /* 2 */
+}
+
+/* ==========================================================================
+ Tables
+ ========================================================================== */
+
+/*
+ * Remove most spacing between table cells.
+ */
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
Please sign in to comment.
Something went wrong with that request. Please try again.