Repository: localtest-dot-me/localtest-dot-me.github.com Branch: master Commit: a67bf00142ad Files: 9 Total size: 55.0 KB Directory structure: gitextract_b1nhan3w/ ├── CNAME ├── README.md ├── index.html ├── javascripts/ │ └── respond.js ├── params.json └── stylesheets/ ├── ie.css ├── normalize.css ├── pygment_trac.css └── styles.css ================================================ FILE CONTENTS ================================================ ================================================ FILE: CNAME ================================================ readme.localtest.me ================================================ FILE: README.md ================================================ localtest.me ================ Credits: Scott Forsyth, Imar Spaanjaars, others Save this URL, memorize it, write it on a sticky note, tweet it, tell your colleagues about it! localtest.me (http://localtest.me) and *.localtest.me (http://something.localtest.me) If you do any testing on your local system you’ve probably created hosts file entries (c:\windows\system32\drivers\etc\hosts) for different testing domains and had them point back to 127.0.0.1. This works great but it requires just a bit of extra effort. This localtest.me trick is so obvious, so simple, and yet so powerful. I wouldn’t be surprised if there are other domain names like this out there, but I haven’t run across them yet so I just ordered the domain name localtest.me which I’ll keep available for the internet community to use. Here’s how it works. The entire domain name localtest.me—and all wildcard entries—point to 127.0.0.1. So without any changes to your host file you can immediate start testing with a local URL. Examples: http://localtest.me http://newyork.localtest.me http://mysite.localtest.me http://redirecttest.localtest.me http://sub1.sub2.sub3.localtest.me You name it, just use any *.localtest.me URL that you dream up and it will work for testing on your local system. Troubleshooting ================ Your network may have DNS rebinding protection enabled. If so then lookups to `localtest.me` will be unresolved. Quick check: Run `nslookup localtest.me`, if the output does not contain 127.0.0.1 then something in your network is filtering the domain resolution. Here's a few possible fixes 1. Check your router configuration for DNS rebinding protection. It may be possible to add an exception for `localtest.me`. 2. Configure your host to use an alternative DNS provider such as [Cloudflare 1.1.1.1](https://developers.cloudflare.com/1.1.1.1/setup/) or [Google 8.8.8.8](https://developers.google.com/speed/public-dns/docs/using). For more information, see the Wikipedia article on [DNS rebinding](https://en.wikipedia.org/wiki/DNS_rebinding). More details ================ Read the introduction by [Scott Forsyth](http://weblogs.asp.net/owscott/archive/2012/05/14/introducing-testing-domain-localtest-me.aspx) ================================================ FILE: index.html ================================================ localtest.me

*.localtest.me

localhost testing done right


localtest.me

Save this URL, memorize it, write it on a sticky note, tweet it, tell your colleagues about it!

localtest.me (http://localtest.me)

and

*.localtest.me (http://something.localtest.me)

If you do any testing on your local system you’ve probably created hosts file entries (c:\windows\system32\drivers\etc\hosts) for different testing domains and had them point back to 127.0.0.1. This works great but it requires just a bit of extra effort.

This localtest.me trick is so obvious, so simple, and yet so powerful. I wouldn’t be surprised if there are other domain names like this out there, but I haven’t run across them yet so I just ordered the domain name localtest.me which I’ll keep available for the internet community to use.

Here’s how it works. The entire domain name localtest.me—and all wildcard entries—point to 127.0.0.1 and ::1. So without any changes to your host file you can immediate start testing with a local URL.

Examples:

http://localtest.me 
http://newyork.localtest.me 
http://mysite.localtest.me 
http://redirecttest.localtest.me 
http://sub1.sub2.sub3.localtest.me

You name it, just use any *.localtest.me URL that you dream up and it will work for testing on your local system.

More details

Read the introduction by Scott Forsyth

Credits

Idea: Scott Forsyth, Imar Spaanjaars

Domain renewals: Scott Forsyth

DNS hosting: Tatham Oddie

Site: Brendan Forster, Aaron Powell

If you'd like to contribute to this site, fork us on GitHub.

================================================ FILE: javascripts/respond.js ================================================ if(typeof Object.create!=="function"){ Object.create=function(o){ function F(){ }; F.prototype=o; return new F(); }; } var ua={toString:function(){ return navigator.userAgent; },test:function(s){ return this.toString().toLowerCase().indexOf(s.toLowerCase())>-1; }}; ua.version=(ua.toString().toLowerCase().match(/[\s\S]+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1]; ua.webkit=ua.test("webkit"); ua.gecko=ua.test("gecko")&&!ua.webkit; ua.opera=ua.test("opera"); ua.ie=ua.test("msie")&&!ua.opera; ua.ie6=ua.ie&&document.compatMode&&typeof document.documentElement.style.maxHeight==="undefined"; ua.ie7=ua.ie&&document.documentElement&&typeof document.documentElement.style.maxHeight!=="undefined"&&typeof XDomainRequest==="undefined"; ua.ie8=ua.ie&&typeof XDomainRequest!=="undefined"; var domReady=function(){ var _1=[]; var _2=function(){ if(!arguments.callee.done){ arguments.callee.done=true; for(var i=0;i<_1.length;i++){ _1[i](); } } }; if(document.addEventListener){ document.addEventListener("DOMContentLoaded",_2,false); } if(ua.ie){ (function(){ try{ document.documentElement.doScroll("left"); } catch(e){ setTimeout(arguments.callee,50); return; } _2(); })(); document.onreadystatechange=function(){ if(document.readyState==="complete"){ document.onreadystatechange=null; _2(); } }; } if(ua.webkit&&document.readyState){ (function(){ if(document.readyState!=="loading"){ _2(); }else{ setTimeout(arguments.callee,10); } })(); } window.onload=_2; return function(fn){ if(typeof fn==="function"){ _1[_1.length]=fn; } return fn; }; }(); var cssHelper=function(){ var _3={BLOCKS:/[^\s{][^{]*\{(?:[^{}]*\{[^{}]*\}[^{}]*|[^{}]*)*\}/g,BLOCKS_INSIDE:/[^\s{][^{]*\{[^{}]*\}/g,DECLARATIONS:/[a-zA-Z\-]+[^;]*:[^;]+;/g,RELATIVE_URLS:/url\(['"]?([^\/\)'"][^:\)'"]+)['"]?\)/g,REDUNDANT_COMPONENTS:/(?:\/\*([^*\\\\]|\*(?!\/))+\*\/|@import[^;]+;)/g,REDUNDANT_WHITESPACE:/\s*(,|:|;|\{|\})\s*/g,MORE_WHITESPACE:/\s{2,}/g,FINAL_SEMICOLONS:/;\}/g,NOT_WHITESPACE:/\S+/g}; var _4,_5=false; var _6=[]; var _7=function(fn){ if(typeof fn==="function"){ _6[_6.length]=fn; } }; var _8=function(){ for(var i=0;i<_6.length;i++){ _6[i](_4); } }; var _9={}; var _a=function(n,v){ if(_9[n]){ var _b=_9[n].listeners; if(_b){ for(var i=0;i<_b.length;i++){ _b[i](v); } } } }; var _c=function(_d,_e,_f){ if(ua.ie&&!window.XMLHttpRequest){ window.XMLHttpRequest=function(){ return new ActiveXObject("Microsoft.XMLHTTP"); }; } if(!XMLHttpRequest){ return ""; } var r=new XMLHttpRequest(); try{ r.open("get",_d,true); r.setRequestHeader("X_REQUESTED_WITH","XMLHttpRequest"); } catch(e){ _f(); return; } var _10=false; setTimeout(function(){ _10=true; },5000); document.documentElement.style.cursor="progress"; r.onreadystatechange=function(){ if(r.readyState===4&&!_10){ if(!r.status&&location.protocol==="file:"||(r.status>=200&&r.status<300)||r.status===304||navigator.userAgent.indexOf("Safari")>-1&&typeof r.status==="undefined"){ _e(r.responseText); }else{ _f(); } document.documentElement.style.cursor=""; r=null; } }; r.send(""); }; var _11=function(_12){ _12=_12.replace(_3.REDUNDANT_COMPONENTS,""); _12=_12.replace(_3.REDUNDANT_WHITESPACE,"$1"); _12=_12.replace(_3.MORE_WHITESPACE," "); _12=_12.replace(_3.FINAL_SEMICOLONS,"}"); return _12; }; var _13={mediaQueryList:function(s){ var o={}; var idx=s.indexOf("{"); var lt=s.substring(0,idx); s=s.substring(idx+1,s.length-1); var mqs=[],rs=[]; var qts=lt.toLowerCase().substring(7).split(","); for(var i=0;i-1&&_23.href&&_23.href.length!==0&&!_23.disabled){ _1f[_1f.length]=_23; } } if(_1f.length>0){ var c=0; var _24=function(){ c++; if(c===_1f.length){ _20(); } }; var _25=function(_26){ var _27=_26.href; _c(_27,function(_28){ _28=_11(_28).replace(_3.RELATIVE_URLS,"url("+_27.substring(0,_27.lastIndexOf("/"))+"/$1)"); _26.cssHelperText=_28; _24(); },_24); }; for(i=0;i<_1f.length;i++){ _25(_1f[i]); } }else{ _20(); } }; var _29={mediaQueryLists:"array",rules:"array",selectors:"object",declarations:"array",properties:"object"}; var _2a={mediaQueryLists:null,rules:null,selectors:null,declarations:null,properties:null}; var _2b=function(_2c,v){ if(_2a[_2c]!==null){ if(_29[_2c]==="array"){ return (_2a[_2c]=_2a[_2c].concat(v)); }else{ var c=_2a[_2c]; for(var n in v){ if(v.hasOwnProperty(n)){ if(!c[n]){ c[n]=v[n]; }else{ c[n]=c[n].concat(v[n]); } } } return c; } } }; var _2d=function(_2e){ _2a[_2e]=(_29[_2e]==="array")?[]:{}; for(var i=0;i<_4.length;i++){ _2b(_2e,_4[i].cssHelperParsed[_2e]); } return _2a[_2e]; }; domReady(function(){ var els=document.body.getElementsByTagName("*"); for(var i=0;i=_44)||(max&&_46<_44)||(!min&&!max&&_46===_44)); }else{ return false; } }else{ return _46>0; } }else{ if("device-height"===_41.substring(l-13,l)){ _47=screen.height; if(_42!==null){ if(_43==="length"){ return ((min&&_47>=_44)||(max&&_47<_44)||(!min&&!max&&_47===_44)); }else{ return false; } }else{ return _47>0; } }else{ if("width"===_41.substring(l-5,l)){ _46=document.documentElement.clientWidth||document.body.clientWidth; if(_42!==null){ if(_43==="length"){ return ((min&&_46>=_44)||(max&&_46<_44)||(!min&&!max&&_46===_44)); }else{ return false; } }else{ return _46>0; } }else{ if("height"===_41.substring(l-6,l)){ _47=document.documentElement.clientHeight||document.body.clientHeight; if(_42!==null){ if(_43==="length"){ return ((min&&_47>=_44)||(max&&_47<_44)||(!min&&!max&&_47===_44)); }else{ return false; } }else{ return _47>0; } }else{ if("device-aspect-ratio"===_41.substring(l-19,l)){ return _43==="aspect-ratio"&&screen.width*_44[1]===screen.height*_44[0]; }else{ if("color-index"===_41.substring(l-11,l)){ var _48=Math.pow(2,screen.colorDepth); if(_42!==null){ if(_43==="absolute"){ return ((min&&_48>=_44)||(max&&_48<_44)||(!min&&!max&&_48===_44)); }else{ return false; } }else{ return _48>0; } }else{ if("color"===_41.substring(l-5,l)){ var _49=screen.colorDepth; if(_42!==null){ if(_43==="absolute"){ return ((min&&_49>=_44)||(max&&_49<_44)||(!min&&!max&&_49===_44)); }else{ return false; } }else{ return _49>0; } }else{ if("resolution"===_41.substring(l-10,l)){ var res; if(_45==="dpcm"){ res=_3d("1cm"); }else{ res=_3d("1in"); } if(_42!==null){ if(_43==="resolution"){ return ((min&&res>=_44)||(max&&res<_44)||(!min&&!max&&res===_44)); }else{ return false; } }else{ return res>0; } }else{ return false; } } } } } } } } }; var _4a=function(mq){ var _4b=mq.getValid(); var _4c=mq.getExpressions(); var l=_4c.length; if(l>0){ for(var i=0;i0){ s[c++]=","; } s[c++]=n; } } if(s.length>0){ _39[_39.length]=cssHelper.addStyle("@media "+s.join("")+"{"+mql.getCssText()+"}",false); } }; var _4e=function(_4f){ for(var i=0;i<_4f.length;i++){ _4d(_4f[i]); } if(ua.ie){ document.documentElement.style.display="block"; setTimeout(function(){ document.documentElement.style.display=""; },0); setTimeout(function(){ cssHelper.broadcast("cssMediaQueriesTested"); },100); }else{ cssHelper.broadcast("cssMediaQueriesTested"); } }; var _50=function(){ for(var i=0;i<_39.length;i++){ cssHelper.removeStyle(_39[i]); } _39=[]; cssHelper.mediaQueryLists(_4e); }; var _51=0; var _52=function(){ var _53=cssHelper.getViewportWidth(); var _54=cssHelper.getViewportHeight(); if(ua.ie){ var el=document.createElement("div"); el.style.position="absolute"; el.style.top="-9999em"; el.style.overflow="scroll"; document.body.appendChild(el); _51=el.offsetWidth-el.clientWidth; document.body.removeChild(el); } var _55; var _56=function(){ var vpw=cssHelper.getViewportWidth(); var vph=cssHelper.getViewportHeight(); if(Math.abs(vpw-_53)>_51||Math.abs(vph-_54)>_51){ _53=vpw; _54=vph; clearTimeout(_55); _55=setTimeout(function(){ if(!_3a()){ _50(); }else{ cssHelper.broadcast("cssMediaQueriesTested"); } },500); } }; window.onresize=function(){ var x=window.onresize||function(){ }; return function(){ x(); _56(); }; }(); }; var _57=document.documentElement; _57.style.marginLeft="-32767px"; setTimeout(function(){ _57.style.marginTop=""; },20000); return function(){ if(!_3a()){ cssHelper.addListener("newStyleParsed",function(el){ _4e(el.cssHelperParsed.mediaQueryLists); }); cssHelper.addListener("cssMediaQueriesTested",function(){ if(ua.ie){ _57.style.width="1px"; } setTimeout(function(){ _57.style.width=""; _57.style.marginLeft=""; },0); cssHelper.removeListener("cssMediaQueriesTested",arguments.callee); }); _3c(); _50(); }else{ _57.style.marginLeft=""; } _52(); }; }()); try{ document.execCommand("BackgroundImageCache",false,true); } catch(e){ } ================================================ FILE: params.json ================================================ {"name":"Localtest.me","body":"localtest.me\r\n================\r\n\r\nCredits: Scott Forsyth, Imar Spaanjaars, others\r\n\r\nSave this URL, memorize it, write it on a sticky note, tweet it, tell your colleagues about it! \r\n\r\nlocaltest.me (http://localtest.me)\r\n\r\nand\r\n\r\n*.localtest.me (http://something.localtest.me)\r\n\r\nIf you do any testing on your local system you’ve probably created hosts file entries (c:\\windows\\system32\\drivers\\etc\\hosts) for different testing domains and had them point back to 127.0.0.1. This works great but it requires just a bit of extra effort.\r\n\r\nThis localtest.me trick is so obvious, so simple, and yet so powerful. I wouldn’t be surprised if there are other domain names like this out there, but I haven’t run across them yet so I just ordered the domain name localtest.me which I’ll keep available for the internet community to use.\r\n\r\nHere’s how it works. The entire domain name localtest.me—and all wildcard entries—point to 127.0.0.1. So without any changes to your host file you can immediate start testing with a local URL.\r\n\r\nExamples:\r\n\r\n http://localtest.me \r\n http://newyork.localtest.me \r\n http://mysite.localtest.me \r\n http://redirecttest.localtest.me \r\n http://sub1.sub2.sub3.localtest.me\r\n\r\nYou name it, just use any *.localtest.me URL that you dream up and it will work for testing on your local system.\r\n\r\nMore details\r\n================\r\n\r\nRead the introduction by [Scott Forsyth](http://weblogs.asp.net/owscott/archive/2012/05/14/introducing-testing-domain-localtest-me.aspx)","tagline":"localhost testing done right","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} ================================================ FILE: stylesheets/ie.css ================================================ nav { display: none; } ================================================ FILE: stylesheets/normalize.css ================================================ /* normalize.css 2012-02-07T12:37 UTC - http://github.com/necolas/normalize.css */ /* ============================================================================= HTML5 display definitions ========================================================================== */ /* * Corrects block display not defined in IE6/7/8/9 & FF3 */ article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, summary { display: block; } /* * Corrects inline-block display not defined in IE6/7/8/9 & FF3 */ audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; } /* * Prevents modern browsers from displaying 'audio' without controls */ audio:not([controls]) { display: none; } /* * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4 * Known issue: no IE6 support */ [hidden] { display: none; } /* ============================================================================= Base ========================================================================== */ /* * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units * http://clagnut.com/blog/348/#c790 * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom * www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ */ html { font-size: 100%; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ -ms-text-size-adjust: 100%; /* 2 */ } /* * Addresses font-family inconsistency between 'textarea' and other form elements. */ html, button, input, select, textarea { font-family: sans-serif; } /* * Addresses margins handled incorrectly in IE6/7 */ body { margin: 0; } /* ============================================================================= Links ========================================================================== */ /* * Addresses outline displayed oddly in Chrome */ a:focus { outline: thin dotted; } /* * Improves readability when focused and also mouse hovered in all browsers * people.opera.com/patrickl/experiments/keyboard/test */ a:hover, a:active { outline: 0; } /* ============================================================================= Typography ========================================================================== */ /* * Addresses font sizes and margins set differently in IE6/7 * Addresses font sizes within 'section' and 'article' in FF4+, Chrome, S5 */ h1 { font-size: 2em; margin: 0.67em 0; } h2 { font-size: 1.5em; margin: 0.83em 0; } h3 { font-size: 1.17em; margin: 1em 0; } h4 { font-size: 1em; margin: 1.33em 0; } h5 { font-size: 0.83em; margin: 1.67em 0; } h6 { font-size: 0.75em; margin: 2.33em 0; } /* * Addresses styling not present in IE7/8/9, S5, Chrome */ abbr[title] { border-bottom: 1px dotted; } /* * Addresses style set to 'bolder' in FF3+, S4/5, Chrome */ b, strong { font-weight: bold; } blockquote { margin: 1em 40px; } /* * Addresses styling not present in S5, Chrome */ dfn { font-style: italic; } /* * Addresses styling not present in IE6/7/8/9 */ mark { background: #ff0; color: #000; } /* * Addresses margins set differently in IE6/7 */ p, pre { margin: 1em 0; } /* * Corrects font family set oddly in IE6, S4/5, Chrome * en.wikipedia.org/wiki/User:Davidgothberg/Test59 */ pre, code, kbd, samp { font-family: monospace, serif; _font-family: 'courier new', monospace; font-size: 1em; } /* * 1. Addresses CSS quotes not supported in IE6/7 * 2. Addresses quote property not supported in S4 */ /* 1 */ q { quotes: none; } /* 2 */ q:before, q:after { content: ''; content: none; } small { font-size: 75%; } /* * Prevents sub and sup affecting line-height in all browsers * gist.github.com/413930 */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } /* ============================================================================= Lists ========================================================================== */ /* * Addresses margins set differently in IE6/7 */ dl, menu, ol, ul { margin: 1em 0; } dd { margin: 0 0 0 40px; } /* * Addresses paddings set differently in IE6/7 */ menu, ol, ul { padding: 0 0 0 40px; } /* * Corrects list images handled incorrectly in IE7 */ nav ul, nav ol { list-style: none; list-style-image: none; } /* ============================================================================= Embedded content ========================================================================== */ /* * 1. Removes border when inside 'a' element in IE6/7/8/9, FF3 * 2. Improves image quality when scaled in IE7 * code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */ img { border: 0; /* 1 */ -ms-interpolation-mode: bicubic; /* 2 */ } /* * Corrects overflow displayed oddly in IE9 */ svg:not(:root) { overflow: hidden; } /* ============================================================================= Figures ========================================================================== */ /* * Addresses margin not present in IE6/7/8/9, S5, O11 */ figure { margin: 0; } /* ============================================================================= Forms ========================================================================== */ /* * Corrects margin displayed oddly in IE6/7 */ form { margin: 0; } /* * 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 IE6/7/8/9 * 2. Corrects text not wrapping in FF3 * 3. Corrects alignment displayed oddly in IE6/7 */ legend { border: 0; /* 1 */ padding: 0; white-space: normal; /* 2 */ *margin-left: -7px; /* 3 */ } /* * 1. Corrects font size not being inherited in all browsers * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome * 3. Improves appearance and consistency in all browsers */ button, input, select, textarea { font-size: 100%; /* 1 */ margin: 0; /* 2 */ vertical-align: baseline; /* 3 */ *vertical-align: middle; /* 3 */ } /* * Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet */ button, input { line-height: normal; /* 1 */ } /* * 1. Improves usability and consistency of cursor style between image-type 'input' and others * 2. Corrects inability to style clickable 'input' types in iOS * 3. Removes inner spacing in IE7 without affecting normal text inputs * Known issue: inner spacing remains in IE6 */ button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; /* 1 */ -webkit-appearance: button; /* 2 */ *overflow: visible; /* 3 */ } /* * Re-set default cursor for disabled elements */ button[disabled], input[disabled] { cursor: default; } /* * 1. Addresses box sizing set to content-box in IE8/9 * 2. Removes excess padding in IE8/9 * 3. Removes excess padding in IE7 Known issue: excess padding remains in IE6 */ input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ *height: 13px; /* 3 */ *width: 13px; /* 3 */ } /* * 1. Addresses appearance set to searchfield in S5, Chrome * 2. Addresses box-sizing set to border-box in S5, 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 S5, Chrome on OS X */ input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; } /* * Removes inner padding and border in FF3+ * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ */ button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } /* * 1. Removes default vertical scrollbar in IE6/7/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; } ================================================ FILE: stylesheets/pygment_trac.css ================================================ .highlight .hll { background-color: #404040 } .highlight { color: #d0d0d0 } .highlight .c { color: #999999; font-style: italic } /* Comment */ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */ .highlight .g { color: #d0d0d0 } /* Generic */ .highlight .k { color: #6ab825; font-weight: normal } /* Keyword */ .highlight .l { color: #d0d0d0 } /* Literal */ .highlight .n { color: #d0d0d0 } /* Name */ .highlight .o { color: #d0d0d0 } /* Operator */ .highlight .x { color: #d0d0d0 } /* Other */ .highlight .p { color: #d0d0d0 } /* Punctuation */ .highlight .cm { color: #999999; font-style: italic } /* Comment.Multiline */ .highlight .cp { color: #cd2828; font-weight: normal } /* Comment.Preproc */ .highlight .c1 { color: #999999; font-style: italic } /* Comment.Single */ .highlight .cs { color: #e50808; font-weight: normal; background-color: #520000 } /* Comment.Special */ .highlight .gd { color: #d22323 } /* Generic.Deleted */ .highlight .ge { color: #d0d0d0; font-style: italic } /* Generic.Emph */ .highlight .gr { color: #d22323 } /* Generic.Error */ .highlight .gh { color: #ffffff; font-weight: normal } /* Generic.Heading */ .highlight .gi { color: #589819 } /* Generic.Inserted */ .highlight .go { color: #cccccc } /* Generic.Output */ .highlight .gp { color: #aaaaaa } /* Generic.Prompt */ .highlight .gs { color: #d0d0d0; font-weight: normal } /* Generic.Strong */ .highlight .gu { color: #ffffff; text-decoration: underline } /* Generic.Subheading */ .highlight .gt { color: #d22323 } /* Generic.Traceback */ .highlight .kc { color: #6ab825; font-weight: normal } /* Keyword.Constant */ .highlight .kd { color: #6ab825; font-weight: normal } /* Keyword.Declaration */ .highlight .kn { color: #6ab825; font-weight: normal } /* Keyword.Namespace */ .highlight .kp { color: #6ab825 } /* Keyword.Pseudo */ .highlight .kr { color: #6ab825; font-weight: normal } /* Keyword.Reserved */ .highlight .kt { color: #6ab825; font-weight: normal } /* Keyword.Type */ .highlight .ld { color: #d0d0d0 } /* Literal.Date */ .highlight .m { color: #3677a9 } /* Literal.Number */ .highlight .s { color: #9dd5f1 } /* Literal.String */ .highlight .na { color: #bbbbbb } /* Name.Attribute */ .highlight .nb { color: #24909d } /* Name.Builtin */ .highlight .nc { color: #447fcf; text-decoration: underline } /* Name.Class */ .highlight .no { color: #40ffff } /* Name.Constant */ .highlight .nd { color: #ffa500 } /* Name.Decorator */ .highlight .ni { color: #d0d0d0 } /* Name.Entity */ .highlight .ne { color: #bbbbbb } /* Name.Exception */ .highlight .nf { color: #447fcf } /* Name.Function */ .highlight .nl { color: #d0d0d0 } /* Name.Label */ .highlight .nn { color: #447fcf; text-decoration: underline } /* Name.Namespace */ .highlight .nx { color: #d0d0d0 } /* Name.Other */ .highlight .py { color: #d0d0d0 } /* Name.Property */ .highlight .nt { color: #6ab825;} /* Name.Tag */ .highlight .nv { color: #40ffff } /* Name.Variable */ .highlight .ow { color: #6ab825; font-weight: normal } /* Operator.Word */ .highlight .w { color: #666666 } /* Text.Whitespace */ .highlight .mf { color: #3677a9 } /* Literal.Number.Float */ .highlight .mh { color: #3677a9 } /* Literal.Number.Hex */ .highlight .mi { color: #3677a9 } /* Literal.Number.Integer */ .highlight .mo { color: #3677a9 } /* Literal.Number.Oct */ .highlight .sb { color: #9dd5f1 } /* Literal.String.Backtick */ .highlight .sc { color: #9dd5f1 } /* Literal.String.Char */ .highlight .sd { color: #9dd5f1 } /* Literal.String.Doc */ .highlight .s2 { color: #9dd5f1 } /* Literal.String.Double */ .highlight .se { color: #9dd5f1 } /* Literal.String.Escape */ .highlight .sh { color: #9dd5f1 } /* Literal.String.Heredoc */ .highlight .si { color: #9dd5f1 } /* Literal.String.Interpol */ .highlight .sx { color: #ffa500 } /* Literal.String.Other */ .highlight .sr { color: #9dd5f1 } /* Literal.String.Regex */ .highlight .s1 { color: #9dd5f1 } /* Literal.String.Single */ .highlight .ss { color: #9dd5f1 } /* Literal.String.Symbol */ .highlight .bp { color: #24909d } /* Name.Builtin.Pseudo */ .highlight .vc { color: #40ffff } /* Name.Variable.Class */ .highlight .vg { color: #40ffff } /* Name.Variable.Global */ .highlight .vi { color: #40ffff } /* Name.Variable.Instance */ .highlight .il { color: #3677a9 } /* Literal.Number.Integer.Long */ ================================================ FILE: stylesheets/styles.css ================================================ @font-face { font-family: 'OpenSansLight'; src: url("../fonts/OpenSans-Light-webfont.eot"); src: url("../fonts/OpenSans-Light-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Light-webfont.woff") format("woff"), url("../fonts/OpenSans-Light-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Light-webfont.svg#OpenSansLight") format("svg"); font-weight: normal; font-style: normal; } @font-face { font-family: 'OpenSansLightItalic'; src: url("../fonts/OpenSans-LightItalic-webfont.eot"); src: url("../fonts/OpenSans-LightItalic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-LightItalic-webfont.woff") format("woff"), url("../fonts/OpenSans-LightItalic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-LightItalic-webfont.svg#OpenSansLightItalic") format("svg"); font-weight: normal; font-style: normal; } @font-face { font-family: 'OpenSansRegular'; src: url("../fonts/OpenSans-Regular-webfont.eot"); src: url("../fonts/OpenSans-Regular-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Regular-webfont.woff") format("woff"), url("../fonts/OpenSans-Regular-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Regular-webfont.svg#OpenSansRegular") format("svg"); font-weight: normal; font-style: normal; -webkit-font-smoothing: antialiased; } @font-face { font-family: 'OpenSansItalic'; src: url("../fonts/OpenSans-Italic-webfont.eot"); src: url("../fonts/OpenSans-Italic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Italic-webfont.woff") format("woff"), url("../fonts/OpenSans-Italic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Italic-webfont.svg#OpenSansItalic") format("svg"); font-weight: normal; font-style: normal; -webkit-font-smoothing: antialiased; } @font-face { font-family: 'OpenSansSemibold'; src: url("../fonts/OpenSans-Semibold-webfont.eot"); src: url("../fonts/OpenSans-Semibold-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Semibold-webfont.woff") format("woff"), url("../fonts/OpenSans-Semibold-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Semibold-webfont.svg#OpenSansSemibold") format("svg"); font-weight: normal; font-style: normal; -webkit-font-smoothing: antialiased; } @font-face { font-family: 'OpenSansSemiboldItalic'; src: url("../fonts/OpenSans-SemiboldItalic-webfont.eot"); src: url("../fonts/OpenSans-SemiboldItalic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-SemiboldItalic-webfont.woff") format("woff"), url("../fonts/OpenSans-SemiboldItalic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-SemiboldItalic-webfont.svg#OpenSansSemiboldItalic") format("svg"); font-weight: normal; font-style: normal; -webkit-font-smoothing: antialiased; } @font-face { font-family: 'OpenSansBold'; src: url("../fonts/OpenSans-Bold-webfont.eot"); src: url("../fonts/OpenSans-Bold-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-Bold-webfont.woff") format("woff"), url("../fonts/OpenSans-Bold-webfont.ttf") format("truetype"), url("../fonts/OpenSans-Bold-webfont.svg#OpenSansBold") format("svg"); font-weight: normal; font-style: normal; -webkit-font-smoothing: antialiased; } @font-face { font-family: 'OpenSansBoldItalic'; src: url("../fonts/OpenSans-BoldItalic-webfont.eot"); src: url("../fonts/OpenSans-BoldItalic-webfont.eot?#iefix") format("embedded-opentype"), url("../fonts/OpenSans-BoldItalic-webfont.woff") format("woff"), url("../fonts/OpenSans-BoldItalic-webfont.ttf") format("truetype"), url("../fonts/OpenSans-BoldItalic-webfont.svg#OpenSansBoldItalic") format("svg"); font-weight: normal; font-style: normal; -webkit-font-smoothing: antialiased; } /* normalize.css 2012-02-07T12:37 UTC - http://github.com/necolas/normalize.css */ /* ============================================================================= HTML5 display definitions ========================================================================== */ /* * Corrects block display not defined in IE6/7/8/9 & FF3 */ article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, summary { display: block; } /* * Corrects inline-block display not defined in IE6/7/8/9 & FF3 */ audio, canvas, video { display: inline-block; *display: inline; *zoom: 1; } /* * Prevents modern browsers from displaying 'audio' without controls */ audio:not([controls]) { display: none; } /* * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4 * Known issue: no IE6 support */ [hidden] { display: none; } /* ============================================================================= Base ========================================================================== */ /* * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units * http://clagnut.com/blog/348/#c790 * 2. Prevents iOS text size adjust after orientation change, without disabling user zoom * www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ */ html { font-size: 100%; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ -ms-text-size-adjust: 100%; /* 2 */ } /* * Addresses font-family inconsistency between 'textarea' and other form elements. */ html, button, input, select, textarea { font-family: sans-serif; } /* * Addresses margins handled incorrectly in IE6/7 */ body { margin: 0; } /* ============================================================================= Links ========================================================================== */ /* * Addresses outline displayed oddly in Chrome */ a:focus { outline: thin dotted; } /* * Improves readability when focused and also mouse hovered in all browsers * people.opera.com/patrickl/experiments/keyboard/test */ a:hover, a:active { outline: 0; } /* ============================================================================= Typography ========================================================================== */ /* * Addresses font sizes and margins set differently in IE6/7 * Addresses font sizes within 'section' and 'article' in FF4+, Chrome, S5 */ h1 { font-size: 2em; margin: 0.67em 0; } h2 { font-size: 1.5em; margin: 0.83em 0; } h3 { font-size: 1.17em; margin: 1em 0; } h4 { font-size: 1em; margin: 1.33em 0; } h5 { font-size: 0.83em; margin: 1.67em 0; } h6 { font-size: 0.75em; margin: 2.33em 0; } /* * Addresses styling not present in IE7/8/9, S5, Chrome */ abbr[title] { border-bottom: 1px dotted; } /* * Addresses style set to 'bolder' in FF3+, S4/5, Chrome */ b, strong { font-weight: bold; } blockquote { margin: 1em 40px; } /* * Addresses styling not present in S5, Chrome */ dfn { font-style: italic; } /* * Addresses styling not present in IE6/7/8/9 */ mark { background: #ff0; color: #000; } /* * Addresses margins set differently in IE6/7 */ p, pre { margin: 1em 0; } /* * Corrects font family set oddly in IE6, S4/5, Chrome * en.wikipedia.org/wiki/User:Davidgothberg/Test59 */ pre, code, kbd, samp { font-family: monospace, serif; _font-family: 'courier new', monospace; font-size: 1em; } /* * 1. Addresses CSS quotes not supported in IE6/7 * 2. Addresses quote property not supported in S4 */ /* 1 */ q { quotes: none; } /* 2 */ q:before, q:after { content: ''; content: none; } small { font-size: 75%; } /* * Prevents sub and sup affecting line-height in all browsers * gist.github.com/413930 */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } /* ============================================================================= Lists ========================================================================== */ /* * Addresses margins set differently in IE6/7 */ dl, menu, ol, ul { margin: 1em 0; } dd { margin: 0 0 0 40px; } /* * Addresses paddings set differently in IE6/7 */ menu, ol, ul { padding: 0 0 0 40px; } /* * Corrects list images handled incorrectly in IE7 */ nav ul, nav ol { list-style: none; list-style-image: none; } /* ============================================================================= Embedded content ========================================================================== */ /* * 1. Removes border when inside 'a' element in IE6/7/8/9, FF3 * 2. Improves image quality when scaled in IE7 * code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ */ img { border: 0; /* 1 */ -ms-interpolation-mode: bicubic; /* 2 */ } /* * Corrects overflow displayed oddly in IE9 */ svg:not(:root) { overflow: hidden; } /* ============================================================================= Figures ========================================================================== */ /* * Addresses margin not present in IE6/7/8/9, S5, O11 */ figure { margin: 0; } /* ============================================================================= Forms ========================================================================== */ /* * Corrects margin displayed oddly in IE6/7 */ form { margin: 0; } /* * 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 IE6/7/8/9 * 2. Corrects text not wrapping in FF3 * 3. Corrects alignment displayed oddly in IE6/7 */ legend { border: 0; /* 1 */ padding: 0; white-space: normal; /* 2 */ *margin-left: -7px; /* 3 */ } /* * 1. Corrects font size not being inherited in all browsers * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome * 3. Improves appearance and consistency in all browsers */ button, input, select, textarea { font-size: 100%; /* 1 */ margin: 0; /* 2 */ vertical-align: baseline; /* 3 */ *vertical-align: middle; /* 3 */ } /* * Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet */ button, input { line-height: normal; /* 1 */ } /* * 1. Improves usability and consistency of cursor style between image-type 'input' and others * 2. Corrects inability to style clickable 'input' types in iOS * 3. Removes inner spacing in IE7 without affecting normal text inputs * Known issue: inner spacing remains in IE6 */ button, input[type="button"], input[type="reset"], input[type="submit"] { cursor: pointer; /* 1 */ -webkit-appearance: button; /* 2 */ *overflow: visible; /* 3 */ } /* * Re-set default cursor for disabled elements */ button[disabled], input[disabled] { cursor: default; } /* * 1. Addresses box sizing set to content-box in IE8/9 * 2. Removes excess padding in IE8/9 * 3. Removes excess padding in IE7 Known issue: excess padding remains in IE6 */ input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ *height: 13px; /* 3 */ *width: 13px; /* 3 */ } /* * 1. Addresses appearance set to searchfield in S5, Chrome * 2. Addresses box-sizing set to border-box in S5, 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 S5, Chrome on OS X */ input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; } /* * Removes inner padding and border in FF3+ * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ */ button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } /* * 1. Removes default vertical scrollbar in IE6/7/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; } body { padding: 0px 0 20px 0px; margin: 0px; font: 14px/1.5 "OpenSansRegular", "Helvetica Neue", Helvetica, Arial, sans-serif; color: #f0e7d5; font-weight: normal; background: #252525; background-attachment: fixed !important; background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #2a2a29), color-stop(100%, #1c1c1c)); background: -webkit-linear-gradient(#2a2a29, #1c1c1c); background: -moz-linear-gradient(#2a2a29, #1c1c1c); background: -o-linear-gradient(#2a2a29, #1c1c1c); background: -ms-linear-gradient(#2a2a29, #1c1c1c); background: linear-gradient(#2a2a29, #1c1c1c); } h1, h2, h3, h4, h5, h6 { color: #e8e8e8; margin: 0 0 10px; font-family: 'OpenSansRegular', "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: normal; } p, ul, ol, table, pre, dl { margin: 0 0 20px; } h1, h2, h3 { line-height: 1.1; } h1 { font-size: 28px; } h2 { font-size: 24px; } h4, h5, h6 { color: #e8e8e8; } h3 { font-size: 18px; line-height: 24px; font-family: 'OpenSansRegular', "Helvetica Neue", Helvetica, Arial, sans-serif !important; font-weight: normal; color: #b6b6b6; } a { color: #ffcc00; font-weight: 400; text-decoration: none; } a:hover { color: #ffeb9b; } a small { font-size: 11px; color: #666; margin-top: -0.6em; display: block; } ul { list-style-image: url("../images/bullet.png"); } strong { font-family: 'OpenSansBold', "Helvetica Neue", Helvetica, Arial, sans-serif !important; font-weight: normal; } .wrapper { max-width: 650px; margin: 0 auto; position: relative; padding: 0 20px; } section img { max-width: 100%; } blockquote { border-left: 3px solid #ffcc00; margin: 0; padding: 0 0 0 20px; font-style: italic; } code { font-family: "Lucida Sans", Monaco, Bitstream Vera Sans Mono, Lucida Console, Terminal; color: #efefef; font-size: 13px; margin: 0 4px; padding: 4px 6px; -moz-border-radius: 2px; -webkit-border-radius: 2px; -o-border-radius: 2px; -ms-border-radius: 2px; -khtml-border-radius: 2px; border-radius: 2px; } pre { padding: 8px 15px; background: #191919; -moz-border-radius: 2px; -webkit-border-radius: 2px; -o-border-radius: 2px; -ms-border-radius: 2px; -khtml-border-radius: 2px; border-radius: 2px; border: 1px solid #121212; -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3); -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3); -o-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3); box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.3); overflow: auto; overflow-y: hidden; } pre code { color: #efefef; text-shadow: 0px 1px 0px #000; margin: 0; padding: 0; } table { width: 100%; border-collapse: collapse; } th { text-align: left; padding: 5px 10px; border-bottom: 1px solid #434343; color: #b6b6b6; font-family: 'OpenSansSemibold', "Helvetica Neue", Helvetica, Arial, sans-serif !important; font-weight: normal; } td { text-align: left; padding: 5px 10px; border-bottom: 1px solid #434343; } hr { border: 0; outline: none; height: 3px; background: transparent url("../images/hr.gif") center center repeat-x; margin: 0 0 20px; } dt { color: #F0E7D5; font-family: 'OpenSansSemibold', "Helvetica Neue", Helvetica, Arial, sans-serif !important; font-weight: normal; } #header { z-index: 100; left: 0; top: 0px; height: 60px; width: 100%; position: fixed; background: url(../images/nav-bg.gif) #353535; border-bottom: 4px solid #434343; -moz-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.25); -webkit-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.25); -o-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.25); box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.25); } #header nav { max-width: 650px; margin: 0 auto; padding: 0 10px; background: blue; margin: 6px auto; } #header nav li { font-family: 'OpenSansLight', "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: normal; list-style: none; display: inline; color: white; line-height: 50px; text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.2); font-size: 14px; } #header nav li a { color: white; border: 1px solid #5d910b; background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #93bd20), color-stop(100%, #659e10)); background: -webkit-linear-gradient(#93bd20, #659e10); background: -moz-linear-gradient(#93bd20, #659e10); background: -o-linear-gradient(#93bd20, #659e10); background: -ms-linear-gradient(#93bd20, #659e10); background: linear-gradient(#93bd20, #659e10); -moz-border-radius: 2px; -webkit-border-radius: 2px; -o-border-radius: 2px; -ms-border-radius: 2px; -khtml-border-radius: 2px; border-radius: 2px; -moz-box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.3), 0px 3px 7px rgba(0, 0, 0, 0.7); -webkit-box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.3), 0px 3px 7px rgba(0, 0, 0, 0.7); -o-box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.3), 0px 3px 7px rgba(0, 0, 0, 0.7); box-shadow: inset 0px 1px 0px rgba(255, 255, 255, 0.3), 0px 3px 7px rgba(0, 0, 0, 0.7); background-color: #93bd20; padding: 10px 12px; margin-top: 6px; line-height: 14px; font-size: 14px; display: inline-block; text-align: center; } #header nav li a:hover { background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #749619), color-stop(100%, #527f0e)); background: -webkit-linear-gradient(#749619, #527f0e); background: -moz-linear-gradient(#749619, #527f0e); background: -o-linear-gradient(#749619, #527f0e); background: -ms-linear-gradient(#749619, #527f0e); background: linear-gradient(#749619, #527f0e); background-color: #659e10; border: 1px solid #527f0e; -moz-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2), 0px 1px 0px rgba(0, 0, 0, 0); -webkit-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2), 0px 1px 0px rgba(0, 0, 0, 0); -o-box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2), 0px 1px 0px rgba(0, 0, 0, 0); box-shadow: inset 0px 1px 1px rgba(0, 0, 0, 0.2), 0px 1px 0px rgba(0, 0, 0, 0); } #header nav li.fork { float: left; margin-left: 0px; } #header nav li.downloads { float: right; margin-left: 6px; } #header nav li.title { float: right; margin-right: 10px; font-size: 11px; } section { max-width: 650px; padding: 30px 0px 50px 0px; margin: 20px 0; margin-top: 70px; } section #title { border: 0; outline: none; margin: 0 0 50px 0; padding: 0 0 5px 0; } section #title h1 { font-family: 'OpenSansLight', "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: normal; font-size: 40px; text-align: center; line-height: 36px; } section #title p { color: #d7cfbe; font-family: 'OpenSansLight', "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: normal; font-size: 18px; text-align: center; } section #title .credits { font-size: 11px; font-family: 'OpenSansRegular', "Helvetica Neue", Helvetica, Arial, sans-serif; font-weight: normal; color: #696969; margin-top: -10px; } section #title .credits.left { float: left; } section #title .credits.right { float: right; } @media print, screen and (max-width: 720px) { #title .credits { display: block; width: 100%; line-height: 30px; text-align: center; } #title .credits .left { float: none; display: block; } #title .credits .right { float: none; display: block; } } @media print, screen and (max-width: 480px) { #header { margin-top: -20px; } section { margin-top: 40px; } nav { display: none; } }