From 771a958554562a2d173ee5bf730615f63d8f37c4 Mon Sep 17 00:00:00 2001 From: Mahnoor Afteb Date: Tue, 28 Jan 2020 10:39:11 -0500 Subject: [PATCH] added boilerplate --- .DS_Store | Bin 0 -> 10244 bytes .gitignore | 0 .../Screen Shot 2020-01-25 at 12.38.00 PM.png | Bin 0 -> 124776 bytes week-2/.DS_Store | Bin 0 -> 6148 bytes week-2/404.html | 62 ++ week-2/LICENSE.txt | 19 + week-2/browserconfig.xml | 12 + week-2/css/main.css | 265 ++++++++ week-2/css/normalize.css | 349 ++++++++++ week-2/doc/TOC.md | 34 + week-2/doc/css.md | 49 ++ week-2/doc/extend.md | 639 ++++++++++++++++++ week-2/doc/faq.md | 40 ++ week-2/doc/html.md | 205 ++++++ week-2/doc/js.md | 36 + week-2/doc/misc.md | 173 +++++ week-2/doc/usage.md | 130 ++++ week-2/favicon.ico | Bin 0 -> 766 bytes week-2/humans.txt | 15 + week-2/icon.png | Bin 0 -> 4029 bytes week-2/img/.gitignore | 0 week-2/index.html | 41 ++ week-2/js/main.js | 0 week-2/js/plugins.js | 24 + week-2/js/vendor/jquery-3.4.1.min.js | 2 + week-2/js/vendor/modernizr-3.8.0.min.js | 3 + week-2/robots.txt | 5 + week-2/site.webmanifest | 12 + week-2/tile-wide.png | Bin 0 -> 1854 bytes week-2/tile.png | Bin 0 -> 3482 bytes 30 files changed, 2115 insertions(+) create mode 100644 .DS_Store create mode 100644 .gitignore create mode 100644 week-1/Screen Shot 2020-01-25 at 12.38.00 PM.png create mode 100644 week-2/.DS_Store create mode 100755 week-2/404.html create mode 100755 week-2/LICENSE.txt create mode 100755 week-2/browserconfig.xml create mode 100755 week-2/css/main.css create mode 100755 week-2/css/normalize.css create mode 100755 week-2/doc/TOC.md create mode 100755 week-2/doc/css.md create mode 100755 week-2/doc/extend.md create mode 100755 week-2/doc/faq.md create mode 100755 week-2/doc/html.md create mode 100755 week-2/doc/js.md create mode 100755 week-2/doc/misc.md create mode 100755 week-2/doc/usage.md create mode 100755 week-2/favicon.ico create mode 100755 week-2/humans.txt create mode 100755 week-2/icon.png create mode 100755 week-2/img/.gitignore create mode 100755 week-2/index.html create mode 100755 week-2/js/main.js create mode 100755 week-2/js/plugins.js create mode 100755 week-2/js/vendor/jquery-3.4.1.min.js create mode 100755 week-2/js/vendor/modernizr-3.8.0.min.js create mode 100755 week-2/robots.txt create mode 100755 week-2/site.webmanifest create mode 100755 week-2/tile-wide.png create mode 100755 week-2/tile.png diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..d0529cd74ce741b686dcd9d8c407af0eae3225f5 GIT binary patch literal 10244 zcmeHMTWl0n82@b}LqCXu5^A6e+ViBORHYsXMb> zpj4|oXcYAc1)?vSm=JtIG4aU|U%+dkHQ3)MxTsN_@6nmr8}h(Uqs@ZWX^vs z|9>vu|IL~G&jJ9p=hY}c1ONnjn3NY$c8kRN*)uDJyq0Aok?a8+*aRb#XTg}I9W(?8 z1PBBO1PBBO1PJ^W5TI{1OTt1fgFHYWKp;S18Uc1bMCf5M?#W3m-J^ptHv}MAM$K-b zGQ|O|O~jLNPfl{_n$nm&dO*(vC%NS2fZQC=n;E?b1>M=nF5;>K z#<>jg0D%C3*$A-MT>=HtU_pLn{N80)nY3Z0sh_=4Tj^=I;U+3E8y!qgL4zYVV}75_ zIiHOPz0e5>NJ2NsO>|43mRewy&!QX(G=m0*=`@J?bdTTEy>WxeCA#T?J?gFgN_y1L zZKtW}Du(8j%`aad2$CQzmL5-yScR0MIC;BW$qlhukK&A^y>g#r8PjDYy;s)?!}9VD z%XAdo)N-z|u4<&Rzh5_1tI%%cP1SbCN%0Or5Cw5qt{xw6i8ePzqFbU9jgj%Twx-5N z^Zl(86QWR6AKl({Fnjda`0Wq&3{XAo-oM~9*AsU;ledZctKBxUa{p&f6W;rc3!)cfA zw9~4_$78M0#z;#G^VybIEBWk!**-f>`=K<;-6@FY7p+)bd+&y( zmIoh7PAy(iAxlf8<^5y2t)~rbPeE6mkwL}IXr`*0hxXB%U^@B}x|S0w@g=d(RI=KX zyt1l#RZTeT*Dj7SkWcGR<#p$%Tqg)q@{)?hYu1LP{VJ`l+fvzRs(eup-JZI&;qVaa z>Bwo6tDeEShOpFU(_Ur8Q*7KQNqvXuRh4a#n?_?&c#ol^HA7ZKK2K|#6z(76Tb3X5 z8nQ}7zR1?S;C_z*sZFW^h~3ciMG@FV;Tzr&vx!ZMtX z#1HTzyn>(Lr}!CugWuuze4U}6wsg%<8n0MBO4%~{eH4pEU zl6RD{-!5W2tz5cn`HD4l4I5)^+Y;0M^m%Y5m0bRCg1E#f62o<22^*(4p{3PD2K$-4 zhj^zQ5g2*o1zbB)Q!5Z(WPw-fYt{)wYB}UqrTc0~QxW8Oymzw{6^NwreBRqEwTeVz zxs3O2k+urNR=Ip?RaN!M?K>n%2KKgzT)Vy|DGDw^<*!*vt>yTspV; zz{PwYxYA_>wE%$tfdGL3fdGNK3xRojxe<2%-#PdH|997>g4G5H1PJ^i1h6cbO16_p zG34`Gv%B^PJqPJwiRn#p>6%dHUdNMkuj8r0uH)T^m)g9W1J^E2?aY3XODa+N*Z&L% P;{PE2_wIB4ukrt1jEyHc literal 0 HcmV?d00001 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 diff --git a/week-1/Screen Shot 2020-01-25 at 12.38.00 PM.png b/week-1/Screen Shot 2020-01-25 at 12.38.00 PM.png new file mode 100644 index 0000000000000000000000000000000000000000..5a999d8adbdb8db3fa342e1381ca9509c7a92c40 GIT binary patch literal 124776 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

7rr5 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 z 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 literal 0 HcmV?d00001 diff --git a/week-2/404.html b/week-2/404.html new file mode 100755 index 0000000..ce820da --- /dev/null +++ b/week-2/404.html @@ -0,0 +1,62 @@ + + + + + + Page Not Found + + + + + +

Page Not Found

+

Sorry, but the page you were trying to view does not exist.

+ + + + diff --git a/week-2/LICENSE.txt b/week-2/LICENSE.txt new file mode 100755 index 0000000..294e91d --- /dev/null +++ b/week-2/LICENSE.txt @@ -0,0 +1,19 @@ +Copyright (c) HTML5 Boilerplate + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/week-2/browserconfig.xml b/week-2/browserconfig.xml new file mode 100755 index 0000000..e5a529d --- /dev/null +++ b/week-2/browserconfig.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/week-2/css/main.css b/week-2/css/main.css new file mode 100755 index 0000000..c1316d4 --- /dev/null +++ b/week-2/css/main.css @@ -0,0 +1,265 @@ +/*! HTML5 Boilerplate v7.3.0 | MIT License | https://html5boilerplate.com/ */ + +/* main.css 2.0.0 | MIT License | https://github.com/h5bp/main.css#readme */ +/* + * What follows is the result of much research on cross-browser styling. + * Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal, + * Kroc Camen, and the H5BP dev community and team. + */ + +/* ========================================================================== + Base styles: opinionated defaults + ========================================================================== */ + +html { + color: #222; + font-size: 1em; + line-height: 1.4; +} + +/* + * Remove text-shadow in selection highlight: + * https://twitter.com/miketaylr/status/12228805301 + * + * Vendor-prefixed and regular ::selection selectors cannot be combined: + * https://stackoverflow.com/a/16982510/7133471 + * + * Customize the background color to match your design. + */ + +::-moz-selection { + background: #b3d4fc; + text-shadow: none; +} + +::selection { + background: #b3d4fc; + text-shadow: none; +} + +/* + * A better looking default horizontal rule + */ + +hr { + display: block; + height: 1px; + border: 0; + border-top: 1px solid #ccc; + margin: 1em 0; + padding: 0; +} + +/* + * Remove the gap between audio, canvas, iframes, + * images, videos and the bottom of their containers: + * https://github.com/h5bp/html5-boilerplate/issues/440 + */ + +audio, +canvas, +iframe, +img, +svg, +video { + vertical-align: middle; +} + +/* + * Remove default fieldset styles. + */ + +fieldset { + border: 0; + margin: 0; + padding: 0; +} + +/* + * Allow only vertical resizing of textareas. + */ + +textarea { + resize: vertical; +} + +/* ========================================================================== + Browser Upgrade Prompt + ========================================================================== */ + +.browserupgrade { + margin: 0.2em 0; + background: #ccc; + color: #000; + padding: 0.2em 0; +} + +/* ========================================================================== + Author's custom styles + ========================================================================== */ + +/* ========================================================================== + Helper classes + ========================================================================== */ + +/* + * Hide visually and from screen readers + */ + +.hidden { + display: none !important; +} + +/* +* Hide only visually, but have it available for screen readers: +* https://snook.ca/archives/html_and_css/hiding-content-for-accessibility +* +* 1. For long content, line feeds are not interpreted as spaces and small width +* causes content to wrap 1 word per line: +* https://medium.com/@jessebeach/beware-smushed-off-screen-accessible-text-5952a4c2cbfe +*/ + +.sr-only { + border: 0; + clip: rect(0, 0, 0, 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + white-space: nowrap; + width: 1px; + /* 1 */ +} + +/* +* Extends the .sr-only class to allow the element +* to be focusable when navigated to via the keyboard: +* https://www.drupal.org/node/897638 +*/ + +.sr-only.focusable:active, +.sr-only.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + white-space: inherit; + width: auto; +} + +/* +* Hide visually and from screen readers, but maintain layout +*/ + +.invisible { + visibility: hidden; +} + +/* +* Clearfix: contain floats +* +* For modern browsers +* 1. The space content is one way to avoid an Opera bug when the +* `contenteditable` attribute is included anywhere else in the document. +* Otherwise it causes space to appear at the top and bottom of elements +* that receive the `clearfix` class. +* 2. The use of `table` rather than `block` is only necessary if using +* `:before` to contain the top-margins of child elements. +*/ + +.clearfix:before, +.clearfix:after { + content: " "; + /* 1 */ + display: table; + /* 2 */ +} + +.clearfix:after { + clear: both; +} + +/* ========================================================================== + EXAMPLE Media Queries for Responsive Design. + These examples override the primary ('mobile first') styles. + Modify as content requires. + ========================================================================== */ + +@media only screen and (min-width: 35em) { + /* Style adjustments for viewports that meet the condition */ +} + +@media print, + (-webkit-min-device-pixel-ratio: 1.25), + (min-resolution: 1.25dppx), + (min-resolution: 120dpi) { + /* Style adjustments for high resolution devices */ +} + +/* ========================================================================== + Print styles. + Inlined to avoid the additional HTTP request: + https://www.phpied.com/delay-loading-your-print-css/ + ========================================================================== */ + +@media print { + *, + *:before, + *:after { + background: transparent !important; + color: #000 !important; + /* Black prints faster */ + box-shadow: none !important; + text-shadow: none !important; + } + a, + a:visited { + text-decoration: underline; + } + a[href]:after { + content: " (" attr(href) ")"; + } + abbr[title]:after { + content: " (" attr(title) ")"; + } + /* + * Don't show links that are fragment identifiers, + * or use the `javascript:` pseudo protocol + */ + a[href^="#"]:after, + a[href^="javascript:"]:after { + content: ""; + } + pre { + white-space: pre-wrap !important; + } + pre, + blockquote { + border: 1px solid #999; + page-break-inside: avoid; + } + /* + * Printing Tables: + * https://web.archive.org/web/20180815150934/http://css-discuss.incutio.com/wiki/Printing_Tables + */ + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } +} + diff --git a/week-2/css/normalize.css b/week-2/css/normalize.css new file mode 100755 index 0000000..192eb9c --- /dev/null +++ b/week-2/css/normalize.css @@ -0,0 +1,349 @@ +/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ + +/* Document + ========================================================================== */ + +/** + * 1. Correct the line height in all browsers. + * 2. Prevent adjustments of font size after orientation changes in iOS. + */ + +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} + +/* Sections + ========================================================================== */ + +/** + * Remove the margin in all browsers. + */ + +body { + margin: 0; +} + +/** + * Render the `main` element consistently in IE. + */ + +main { + display: block; +} + +/** + * Correct the font size and margin on `h1` elements within `section` and + * `article` contexts in Chrome, Firefox, and Safari. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +/* Grouping content + ========================================================================== */ + +/** + * 1. Add the correct box sizing in Firefox. + * 2. Show the overflow in Edge and IE. + */ + +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/* Text-level semantics + ========================================================================== */ + +/** + * Remove the gray background on active links in IE 10. + */ + +a { + background-color: transparent; +} + +/** + * 1. Remove the bottom border in Chrome 57- + * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. + */ + +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} + +/** + * Add the correct font weight in Chrome, Edge, and Safari. + */ + +b, +strong { + font-weight: bolder; +} + +/** + * 1. Correct the inheritance and scaling of font size in all browsers. + * 2. Correct the odd `em` font sizing in all browsers. + */ + +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} + +/** + * Add the correct font size in all browsers. + */ + +small { + font-size: 80%; +} + +/** + * Prevent `sub` and `sup` elements from affecting the line height in + * all browsers. + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sub { + bottom: -0.25em; +} + +sup { + top: -0.5em; +} + +/* Embedded content + ========================================================================== */ + +/** + * Remove the border on images inside links in IE 10. + */ + +img { + border-style: none; +} + +/* Forms + ========================================================================== */ + +/** + * 1. Change the font styles in all browsers. + * 2. Remove the margin in Firefox and Safari. + */ + +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} + +/** + * Show the overflow in IE. + * 1. Show the overflow in Edge. + */ + +button, +input { /* 1 */ + overflow: visible; +} + +/** + * Remove the inheritance of text transform in Edge, Firefox, and IE. + * 1. Remove the inheritance of text transform in Firefox. + */ + +button, +select { /* 1 */ + text-transform: none; +} + +/** + * Correct the inability to style clickable types in iOS and Safari. + */ + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +/** + * Remove the inner border and padding in Firefox. + */ + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + border-style: none; + padding: 0; +} + +/** + * Restore the focus styles unset by the previous rule. + */ + +button:-moz-focusring, +[type="button"]:-moz-focusring, +[type="reset"]:-moz-focusring, +[type="submit"]:-moz-focusring { + outline: 1px dotted ButtonText; +} + +/** + * Correct the padding in Firefox. + */ + +fieldset { + padding: 0.35em 0.75em 0.625em; +} + +/** + * 1. Correct the text wrapping in Edge and IE. + * 2. Correct the color inheritance from `fieldset` elements in IE. + * 3. Remove the padding so developers are not caught out when they zero out + * `fieldset` elements in all browsers. + */ + +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} + +/** + * Add the correct vertical alignment in Chrome, Firefox, and Opera. + */ + +progress { + vertical-align: baseline; +} + +/** + * Remove the default vertical scrollbar in IE 10+. + */ + +textarea { + overflow: auto; +} + +/** + * 1. Add the correct box sizing in IE 10. + * 2. Remove the padding in IE 10. + */ + +[type="checkbox"], +[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/** + * Correct the cursor style of increment and decrement buttons in Chrome. + */ + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +/** + * 1. Correct the odd appearance in Chrome and Safari. + * 2. Correct the outline style in Safari. + */ + +[type="search"] { + -webkit-appearance: textfield; /* 1 */ + outline-offset: -2px; /* 2 */ +} + +/** + * Remove the inner padding in Chrome and Safari on macOS. + */ + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/** + * 1. Correct the inability to style clickable types in iOS and Safari. + * 2. Change font properties to `inherit` in Safari. + */ + +::-webkit-file-upload-button { + -webkit-appearance: button; /* 1 */ + font: inherit; /* 2 */ +} + +/* Interactive + ========================================================================== */ + +/* + * Add the correct display in Edge, IE 10+, and Firefox. + */ + +details { + display: block; +} + +/* + * Add the correct display in all browsers. + */ + +summary { + display: list-item; +} + +/* Misc + ========================================================================== */ + +/** + * Add the correct display in IE 10+. + */ + +template { + display: none; +} + +/** + * Add the correct display in IE 10. + */ + +[hidden] { + display: none; +} diff --git a/week-2/doc/TOC.md b/week-2/doc/TOC.md new file mode 100755 index 0000000..6a74c77 --- /dev/null +++ b/week-2/doc/TOC.md @@ -0,0 +1,34 @@ +[HTML5 Boilerplate homepage](https://html5boilerplate.com/) + +## Getting started + +* [Usage](usage.md) — Overview of the project contents. +* [FAQ](faq.md) — Frequently asked questions along with their answers. + +## HTML5 Boilerplate core + +* [HTML](html.md) — Guide to the default HTML. +* [CSS](css.md) — Guide to the default CSS. +* [JavaScript](js.md) — Guide to the default JavaScript. +* [Everything else](misc.md). + +## Development + +* [Extending and customizing HTML5 Boilerplate](extend.md) — Going further + with the boilerplate. + +## Related projects + +The [H5BP organization](https://github.com/h5bp) maintains several projects +that complement HTML5 Boilerplate, projects that can help you improve different +aspects of your website/web app (e.g.: the performance, security, etc.). + +* [Server Configs](https://github.com/h5bp/server-configs) — Fast and + smart configurations for web servers such as Apache and Nginx. + * [Apache](https://github.com/h5bp/server-configs-apache) + * [Google App Engine (GAE)](https://github.com/h5bp/server-configs-gae) + * [Internet Information Services (IIS)](https://github.com/h5bp/server-configs-iis) + * [lighttpd](https://github.com/h5bp/server-configs-lighttpd) + * [Nginx](https://github.com/h5bp/server-configs-nginx) + * [Node.js](https://github.com/h5bp/server-configs-node) +* [Front-end Developer Interview Questions](https://github.com/h5bp/Front-end-Developer-Interview-Questions) diff --git a/week-2/doc/css.md b/week-2/doc/css.md new file mode 100755 index 0000000..beea512 --- /dev/null +++ b/week-2/doc/css.md @@ -0,0 +1,49 @@ +[HTML5 Boilerplate homepage](https://html5boilerplate.com/) | [Documentation +table of contents](TOC.md) + +# The CSS + +HTML5 Boilerplate's CSS includes: + +* [Normalize.css](#normalizecss) +* [main.css](#maincss) + +This starting CSS does not rely on the presence of +[conditional class names](https://www.paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/), +[conditional style sheets](https://css-tricks.com/how-to-create-an-ie-only-stylesheet/), +or [Modernizr](https://modernizr.com/), and it is ready to use no matter what +your development preferences happen to be. + + +## Normalize.css + +In order to make browsers render all elements more consistently and in line +with modern standards, we include Normalize.css — a modern, HTML5-ready +alternative to CSS resets. + +As opposed to CSS resets, Normalize.css: + +* targets only the styles that need normalizing +* preserves useful browser defaults rather than erasing them +* corrects bugs and common browser inconsistencies +* improves usability with subtle improvements +* doesn't clutter the debugging tools +* has better documentation + +For more information about Normalize.css, please refer to its [project +page](https://necolas.github.io/normalize.css/). + + +## main.css + +Several base styles are included that build upon `Normalize.css`. These +styles: + +* provide basic typography settings that improve text readability +* protect against unwanted `text-shadow` during text highlighting +* tweak the default alignment of some elements (e.g.: `img`, `video`, + `fieldset`, `textarea`) +* style the prompt that is displayed to users using an outdated browser +* and more... + +These styles are included in [main.css](https://github.com/h5bp/html5-boilerplate/blob/master/dist/css/main.css). See the [main.css](https://github.com/h5bp/main.css) project [documentation](https://github.com/h5bp/main.css/blob/master/README.md#features) for a full discussion of these styles. diff --git a/week-2/doc/extend.md b/week-2/doc/extend.md new file mode 100755 index 0000000..9a9ce2f --- /dev/null +++ b/week-2/doc/extend.md @@ -0,0 +1,639 @@ +[HTML5 Boilerplate homepage](https://html5boilerplate.com) | [Documentation +table of contents](TOC.md) + +# Extend and customise HTML5 Boilerplate + +Here is some useful advice for how you can make your project with HTML5 +Boilerplate even better. We don't want to include it all by default, as +not everything fits with everyone's needs. + + +* [App Stores](#app-stores) +* [DNS prefetching](#dns-prefetching) +* [Google Universal Analytics](#google-universal-analytics) +* [Internet Explorer](#internet-explorer) +* [Miscellaneous](#miscellaneous) +* [News Feeds](#news-feeds) +* [Search](#search) +* [Social Networks](#social-networks) +* [URLs](#urls) +* [Web Apps](#web-apps) +* [security.txt](#security.txt) + +## App Stores + +### Smart App Banners in iOS 6+ Safari + +Stop bothering everyone with gross modals advertising your entry in the +App Store. Including the following [meta tag](https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariWebContent/PromotingAppswithAppBanners/PromotingAppswithAppBanners.html) will unobtrusively give the user the option to download your iOS app, or open it with some data about the user's current state on the website. + +```html + +``` + +## DNS prefetching + +In short, DNS Prefetching is a method of informing the browser of domain names +referenced on a site so that the client can resolve the DNS for those hosts, +cache them, and when it comes time to use them, have a faster turn around on +the request. + +### Implicit prefetches + +There is a lot of prefetching done for you automatically by the browser. When +the browser encounters an anchor in your html that does not share the same +domain name as the current location the browser requests, from the client OS, +the IP address for this new domain. The client first checks its cache and +then, lacking a cached copy, makes a request from a DNS server. These requests +happen in the background and are not meant to block the rendering of the +page. + +The goal of this is that when the foreign IP address is finally needed it will +already be in the client cache and will not block the loading of the foreign +content. Fewer requests result in faster page load times. The perception of this +is increased on a mobile platform where DNS latency can be greater. + +#### Disable implicit prefetching + +```html + +``` + +Even with X-DNS-Prefetch-Control meta tag (or http header) browsers will still +prefetch any explicit dns-prefetch links. + +**_WARNING:_** THIS MAY MAKE YOUR SITE SLOWER IF YOU RELY ON RESOURCES FROM +FOREIGN DOMAINS. + +### Explicit prefetches + +Typically the browser only scans the HTML for foreign domains. If you have +resources that are outside of your HTML (a javascript request to a remote +server or a CDN that hosts content that may not be present on every page of +your site, for example) then you can queue up a domain name to be prefetched. + +```html + + +``` + +You can use as many of these as you need, but it's best if they are all +immediately after the [Meta +Charset](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta#attr-charset) +element (which should go right at the top of the `head`), so the browser can +act on them ASAP. + +#### Common Prefetch Links + +Amazon S3: + +```html + +``` + +Google APIs: + +```html + +``` + +Microsoft Ajax Content Delivery Network: + +```html + + +``` + +### Further reading about DNS prefetching + +* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-DNS-Prefetch-Control +* https://dev.chromium.org/developers/design-documents/dns-prefetching +* https://blogs.msdn.microsoft.com/ie/2011/03/17/internet-explorer-9-network-performance-improvements/ + + +## Google Universal Analytics + +### More tracking settings + +The [optimized Google Universal Analytics +snippet](https://mathiasbynens.be/notes/async-analytics-snippet#universal-analytics) +included with HTML5 Boilerplate includes something like this: + +```js +ga('create', 'UA-XXXXX-X', 'auto'); ga('send', 'pageview'); +``` + +To customize further, see Google's [Advanced +Setup](https://developers.google.com/analytics/devguides/collection/analyticsjs/), +[Pageview](https://developers.google.com/analytics/devguides/collection/analyticsjs/pages), +and [Event](https://developers.google.com/analytics/devguides/collection/analyticsjs/events) Docs. + +### Anonymize IP addresses + +In some countries, no personal data may be transferred outside jurisdictions +that do not have similarly strict laws (i.e. from Germany to outside the EU). +Thus a webmaster using the Google Universal Analytics may have to ensure that +no personal (trackable) data is transferred to the US. You can do that with +[the `ga('set', 'anonymizeIp', true);` +parameter](https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#anonymizeip) +before sending any events/pageviews. In use it looks like this: + +```js +ga('create', 'UA-XXXXX-X', 'auto'); +ga('set', 'anonymizeIp', true); +ga('send', 'pageview'); +``` + +### Track jQuery AJAX requests in Google Analytics + +An article by @JangoSteve explains how to [track jQuery AJAX requests in Google +Analytics](https://www.alfajango.com/blog/track-jquery-ajax-requests-in-google-analytics/). + +Add this to `plugins.js`: + +```js +/* + * Log all jQuery AJAX requests to Google Analytics + * See: https://www.alfajango.com/blog/track-jquery-ajax-requests-in-google-analytics/ + */ +if (typeof ga !== "undefined" && ga !== null) { + $(document).ajaxSend(function(event, xhr, settings){ + ga('send', 'pageview', settings.url); + }); +} +``` + +### Track JavaScript errors in Google Analytics + +Add this function after `ga` is defined: + +```js +(function(window){ + var undefined, + link = function (href) { + var a = window.document.createElement('a'); + a.href = href; + return a; + }; + window.onerror = function (message, file, line, column) { + var host = link(file).hostname; + ga('send', { + 'hitType': 'event', + 'eventCategory': (host == window.location.hostname || host == undefined || host == '' ? '' : 'external ') + 'error', + 'eventAction': message, + 'eventLabel': (file + ' LINE: ' + line + (column ? ' COLUMN: ' + column : '')).trim(), + 'nonInteraction': 1 + }); + }; +}(window)); +``` + +### Track page scroll + +Add this function after `ga` is defined: + +```js +$(function(){ + var isDuplicateScrollEvent, + scrollTimeStart = new Date, + $window = $(window), + $document = $(document), + scrollPercent; + + $window.scroll(function() { + scrollPercent = Math.round(100 * ($window.height() + $window.scrollTop())/$document.height()); + if (scrollPercent > 90 && !isDuplicateScrollEvent) { //page scrolled to 90% + isDuplicateScrollEvent = 1; + ga('send', 'event', 'scroll', + 'Window: ' + $window.height() + 'px; Document: ' + $document.height() + 'px; Time: ' + Math.round((new Date - scrollTimeStart )/1000,1) + 's' + ); + } + }); +}); +``` + +## Internet Explorer + +### IE Pinned Sites + +Enabling your application for pinning will allow IE users to add it to their +Windows Taskbar and Start Menu. This comes with a range of new tools that you +can easily configure with the elements below. See more [documentation on IE +Pinned Sites](https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/samples/gg491731(v%3dvs.85)). + +### Name the Pinned Site for Windows + +Without this rule, Windows will use the page title as the name for your +application. + +```html + +``` + +### Give your Pinned Site a tooltip + +You know — a tooltip. A little textbox that appears when the user holds their +mouse over your Pinned Site's icon. + +```html + +``` + +### Set a default page for your Pinned Site + +If the site should go to a specific URL when it is pinned (such as the +homepage), enter it here. One idea is to send it to a special URL so you can +track the number of pinned users, like so: +`https://www.example.com/index.html?pinned=true` + +```html + +``` + +### Recolor IE's controls manually for a Pinned Site + +IE will automatically use the overall color of your Pinned Site's favicon to +shade its browser buttons. UNLESS you give it another color here. Only use +named colors (`red`) or hex colors (`#ff0000`). + +```html + +``` + +### Manually set the window size of a Pinned Site + +If the site should open at a certain window size once pinned, you can specify +the dimensions here. It only supports static pixel dimensions. 800x600 +minimum. + +```html + +``` + +### Jump List "Tasks" for Pinned Sites + +Add Jump List Tasks that will appear when the Pinned Site's icon gets a +right-click. Each Task goes to the specified URL, and gets its own mini icon +(essentially a favicon, a 16x16 .ICO). You can add as many of these as you +need. + +```html + + +``` + +### (Windows 8) High quality visuals for Pinned Sites + +Windows 8 adds the ability for you to provide a PNG tile image and specify the +tile's background color. [Full details on the IE +blog](https://blogs.msdn.microsoft.com/ie/2012/06/08/high-quality-visuals-for-pinned-sites-in-windows-8/). + +* Create a 144x144 image of your site icon, filling all of the canvas, and + using a transparent background. +* Save this image as a 32-bit PNG and optimize it without reducing + colour-depth. It can be named whatever you want (e.g. `metro-tile.png`). +* To reference the tile and its color, add the HTML `meta` elements described + in the IE Blog post. + +### (Windows 8) Badges for Pinned Sites + +IE will poll an XML document for badge information to display on your app's +tile in the Start screen. The user will be able to receive these badge updates +even when your app isn't actively running. The badge's value can be a number, +or one of a predefined list of glyphs. + +* [Tutorial on IEBlog with link to badge XML schema](https://blogs.msdn.microsoft.com/ie/2012/04/03/pinned-sites-in-windows-8/) +* [Available badge values](https://docs.microsoft.com/en-us/uwp/schemas/tiles/badgeschema/element-badge) + +```html + +``` + +### Disable link highlighting upon tap in IE10 + +Similar to [-webkit-tap-highlight-color](https://davidwalsh.name/mobile-highlight-color) +in iOS Safari. Unlike that CSS property, this is an HTML meta element, and its +value is boolean rather than a color. It's all or nothing. + +```html + +``` + +You can read about this useful element and more techniques in +[Microsoft's documentation on adapting WebKit-oriented apps for IE10](https://blogs.windows.com/buildingapps/2012/11/15/adapting-your-webkit-optimized-site-for-internet-explorer-10/) + +## Search + +### Direct search spiders to your sitemap + +After creating a [sitemap](https://www.sitemaps.org/protocol.html) + +Submit it to search engine tool: +* [Google](https://www.google.com/webmasters/tools/sitemap-list) +* [Bing](https://www.bing.com/toolbox/webmaster) +* [Yandex](https://webmaster.yandex.com/) +* [Baidu](https://zhanzhang.baidu.com/) +OR +Insert the following line anywhere in your robots.txt file, specifying the path to your sitemap: +``` +Sitemap: https://example.com/sitemap_location.xml +``` + +### Hide pages from search engines + +According to Heather Champ, former community manager at Flickr, you should not +allow search engines to index your "Contact Us" or "Complaints" page if you +value your sanity. This is an HTML-centric way of achieving that. + +```html + +``` + +**_WARNING:_** DO NOT INCLUDE ON PAGES THAT SHOULD APPEAR IN SEARCH ENGINES. + +### Firefox and IE Search Plugins + +Sites with in-site search functionality should be strongly considered for a +browser search plugin. A "search plugin" is an XML file which defines how your +plugin behaves in the browser. [How to make a browser search +plugin](https://www.google.com/search?ie=UTF-8&q=how+to+make+browser+search+plugin). + +```html + +``` + + +## Miscellaneous + +* Use [polyfills](https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills). + +* Use [Microformats](http://microformats.org/wiki/Main_Page) (via + [microdata](http://microformats.org/wiki/microdata)) for optimum search + results + [visibility](https://webmasters.googleblog.com/2009/05/introducing-rich-snippets.html). + +* If you're building a web app you may want [native style momentum scrolling in + iOS 5+](https://www.johanbrook.com/writings/native-style-momentum-scrolling-to-arrive-in-ios-5/) + using `-webkit-overflow-scrolling: touch`. + +* If you want to disable the translation prompt in Chrome or block Google + Translate from translating your web page, use [``](https://support.google.com/webmasters/answer/79812). + To disable translation for a particular section of the web page, add + [`class="notranslate"`](https://support.google.com/translate/?hl=en#2641276). + +* If you want to disable the automatic detection and formatting of possible + phone numbers in Safari on iOS, use [``](https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html). + +* Avoid development/stage websites "leaking" into SERPs (search engine results + page) by [implementing X-Robots-tag + headers](https://github.com/h5bp/html5-boilerplate/issues/804). + + +## News Feeds + +### RSS + +Have an RSS feed? Link to it here. Want to [learn how to write an RSS feed from +scratch](http://www.rssboard.org/rss-specification)? + +```html + +``` + +### Atom + +Atom is similar to RSS, and you might prefer to use it instead of or in +addition to it. [See what Atom's all +about](https://en.wikipedia.org/wiki/Atom_(Web_standard)). + +```html + +``` + +### Pingbacks + +Your server may be notified when another site links to yours. The href +attribute should contain the location of your pingback service. + +```html + +``` + +* High-level explanation: https://codex.wordpress.org/Introduction_to_Blogging#Pingbacks +* Step-by-step example case: https://www.hixie.ch/specs/pingback/pingback-1.0#TOC5 +* PHP pingback service: https://web.archive.org/web/20131211032834/http://blog.perplexedlabs.com/2009/07/15/xmlrpc-pingbacks-using-php/ + + + +## Social Networks + +### Facebook Open Graph data + +You can control the information that Facebook and others display when users +share your site. Below are just the most basic data points you might need. For +specific content types (including "website"), see [Facebook's built-in Open +Graph content +templates](https://developers.facebook.com/docs/sharing/opengraph/using-objects). +Take full advantage of Facebook's support for complex data and activity by +following the [Open Graph +tutorial](https://developers.facebook.com/docs/sharing/webmasters/getting-started). + +For a reference of Open Graph's markup and properties, you may check +[Facebook's Open Graph Protocol reference](https://ogp.me). Finally, +you can validate your markup with the [Facebook Object +Debugger](https://developers.facebook.com/tools/debug/) (needs +registration to Facebook). + +```html + + + + + + + + +``` + +### Twitter Cards + +Twitter provides a snippet specification that serves a similar purpose to Open +Graph. In fact, Twitter will use Open Graph when Cards is not available. You +can read more about the various snippet formats and application process in the +[official Twitter Cards documentation](https://developer.twitter.com/en/docs/tweets/optimize-with-cards/overview/abouts-cards), +and you can validate your markup with the [Card validator](https://cards-dev.twitter.com/validator) +(needs registration to Twitter). + +```html + + + + + + + +``` + +### Schema.org + +Google also provides a snippet specification that serves a similar +purpose to Facebook's Open Graph or Twitter Cards. This metadata is a subset +of [schema.org's microdata vocabulary](https://schema.org/), which +covers many other schemas that can describe the content of your pages +to search engines. For this reason, this metadata is more generic for +SEO, notably for Google's search-engine, although this vocabulary is +also used by Microsoft, Pinterest and Yandex. + +You can validate your markup with the [Structured Data Testing +Tool](https://developers.google.com/structured-data/testing-tool/). +Also, please note that this markup requires to add attributes to your +top `html` tag. + +```html + + + + + + + + +``` + +## URLs + +### Canonical URL + +Signal to search engines and others "Use this URL for this page!" Useful when +parameters after a `#` or `?` is used to control the display state of a page. +`https://www.example.com/cart.html?shopping-cart-open=true` can be indexed as +the cleaner, more accurate `https://www.example.com/cart.html`. + +```html + +``` + +### Separate mobile URLs + +If you use separate URLs for desktop and mobile users, you should consider +helping search engine algorithms better understand the configuration on your +web site. + +This can be done by adding the following annotations in your HTML pages: + +* on the desktop page, add the `link rel="alternate"` tag pointing to the + corresponding mobile URL, e.g.: + + `` + +* on the mobile page, add the `link rel="canonical"` tag pointing to the + corresponding desktop URL, e.g.: + + `` + +For more information please see: + +* https://developers.google.com/search/mobile-sites/mobile-seo/separate-urls + + +## Web Apps + +There are a couple of meta tags that provide information about a web app when +added to the Home Screen on iOS: + +* Adding `apple-mobile-web-app-capable` will make your web app chrome-less and +provide the default iOS app view. You can control the color scheme of the +default view by adding `apple-mobile-web-app-status-bar-style`. + +```html + + +``` + +* You can use `apple-mobile-web-app-title` to add a specific sites name for the +Home Screen icon. This works since iOS 6. + +```html + +``` + +For further information please read the [official +documentation](https://developer.apple.com/library/safari/#documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html) +on Apple's site. + + +### Apple Touch Icons + +Apple touch icons are used as icons when a user adds your webapp to the home +screen of aniOS devices. + +Though the dimensions of the icon can vary between iOS devices and versions +one `180×180px` touch icon named `icon.png` and including the following in +the `` of the page is enough: + +```html + +``` + +For a more comprehensive overview, please refer to Mathias' [article on Touch +Icons](https://mathiasbynens.be/notes/touch-icons). + + +### Apple Touch Startup Image + +Apart from that it is possible to add start-up screens for web apps on iOS. This +basically works by defining `apple-touch-startup-image` with an according link +to the image. Since iOS devices have different screen resolutions it maybe +necessary to add media queries to detect which image to load. Here is an +example for an iPhone: + +```html + +``` + + +### Chrome Mobile web apps + +Chrome Mobile has a specific meta tag for making apps [installable to the +homescreen](https://developer.chrome.com/multidevice/android/installtohomescreen) +which tries to be a more generic replacement to Apple's proprietary meta tag: + +```html + +``` + +Same applies to the touch icons: + +```html + +``` + +### Theme Color + +You can add the [`theme-color` meta extension](https://html.spec.whatwg.org/multipage/semantics.html#meta-theme-color) +in the `` of your pages to suggest the color that browsers and +OSes should use if they customize the display of individual pages in +their UIs with varying colors. + +```html + +``` + +The `content` attribute extension can take any valid CSS color. + +Currently, the `theme-color` meta extension is supported by [Chrome 39+ +for Android Lollipop](https://developers.google.com/web/updates/2014/11/Support-for-theme-color-in-Chrome-39-for-Android). + + +## security.txt + +When security risks in web services are discovered by users they often lack the +channels to disclose them properly. As a result, security issues may be left unreported. + +Security.txt defines a standard to help organizations define the process for +users to disclose security vulnerabilities securely. Include a text +file on your server at `.well-known/security.txt` with the relevant contact details. + +Check [https://securitytxt.org/](https://securitytxt.org/) for more details. diff --git a/week-2/doc/faq.md b/week-2/doc/faq.md new file mode 100755 index 0000000..69ea6d3 --- /dev/null +++ b/week-2/doc/faq.md @@ -0,0 +1,40 @@ +[HTML5 Boilerplate homepage](https://html5boilerplate.com/) | [Documentation +table of contents](TOC.md) + +# Frequently asked questions + +* [Why is the Google Analytics code at the bottom? Google recommends it be + placed in the ``.](#why-is-the-google-analytics-code-at-the-bottom-google-recommends-it-be-placed-in-the-head) +* [Do I need to upgrade my site each time a new version of HTML5 Boilerplate is + released?](#do-i-need-to-upgrade-my-site-each-time-a-new-version-of-html5-boilerplate-is-released) +* [Where can I get help with support + questions?](#where-can-i-get-help-with-support-questions) + +--- + +### Why is the Google Analytics code at the bottom? Google recommends it be placed in the ``. + +The main advantage of placing it in the `` is that you will track the +user's `pageview` even if they leave the page before it has been fully loaded. + +Here's a handy quote from [Mathias Bynens](https://mathiasbynens.be/notes/async-analytics-snippet#comment-50) about our placement choice. +>I should point out that it’s Google — not me — recommending to place this +script before all other scripts in the document. The only real advantage is to +catch a pageView call if your page fails to load completely (for example, if +the user aborts loading, or quickly closes the page, etc.). Personally, I +wouldn’t count that as a page view, so I actually prefer to place this script +at the bottom, after all other scripts. This keeps all the scripts together and +reinforces that scripts at the bottom are the right move. (Usually I +concatenate and minify all my scripts into one .js file — the GA snippet being +the suffix.) + +### Do I need to upgrade my site each time a new version of HTML5 Boilerplate is released? + +No, just as you don't normally replace the foundation of a house once it +was built. However, there is nothing stopping you from trying to work in the +latest changes, but you'll have to assess the costs/benefits of doing so. + +### Where can I get help with support questions? + +Please ask for help on +[StackOverflow](https://stackoverflow.com/questions/tagged/html5boilerplate). diff --git a/week-2/doc/html.md b/week-2/doc/html.md new file mode 100755 index 0000000..c1a5c37 --- /dev/null +++ b/week-2/doc/html.md @@ -0,0 +1,205 @@ +[HTML5 Boilerplate homepage](https://html5boilerplate.com/) | [Documentation +table of contents](TOC.md) + +# The HTML + +By default, HTML5 Boilerplate provides two `html` pages: + +* [`index.html`](#indexhtml) - a default HTML skeleton that should form the + basis of all pages on your website +* `404.html` - a placeholder 404 error page + + +## `index.html` + + +### The `no-js` Class + +The `no-js` class is provided in order to allow you to more easily and +explicitly add custom styles based on whether JavaScript is disabled +(`.no-js`) or enabled (`.js`). Using this technique also helps [avoid the +FOUC](https://www.paulirish.com/2009/avoiding-the-fouc-v3/). + + +## Language Attribute + +Please consider specifying the language of your content by adding a [value](https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry) to the `lang` +attribute in the `` as in this example: + +```html + +``` + +### The order of the `` and `<meta>` tags + +The charset declaration (`<meta charset="utf-8">`) must be included completely +within the [first 1024 bytes of the document](https://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset) +and should be specified as early as possible (before any content that could +be controlled by an attacker, such as a `<title>` element) in order to avoid a +potential [encoding-related security issue](https://code.google.com/archive/p/doctype-mirror/wikis/ArticleUtf7.wiki) +in Internet Explorer + +## Meta Description + +The `description` meta tag provides a short description of the page. +In some situations this description is used as a part of the snippet +shown in the search results. + +```html +<meta name="description" content="This is a description"> +``` + +Google's [Create good meta descriptions](https://support.google.com/webmasters/answer/35624?hl=en#meta-descriptions) +documentation has useful tips on creating an effective description. + +## Mobile Viewport + +There are a few different options that you can use with the [`viewport` meta +tag](https://docs.google.com/present/view?id=dkx3qtm_22dxsrgcf4 "Viewport and +Media Queries - The Complete Idiot's Guide"). You can find out more in [the +MDN Web Docs](https://developer.mozilla.org/en-US/docs/Mozilla/Mobile/Viewport_meta_tag). +HTML5 Boilerplate comes with a simple setup that strikes a good balance for general use cases. + +```html +<meta name="viewport" content="width=device-width, initial-scale=1"> +``` + +If you want to take advantage of edge-to-edge displays of iPhone X/XS/XR you can do +so with additional viewport parameters. [Check the WebKit blog](https://webkit.org/blog/7929/designing-websites-for-iphone-x/) +for details. + +## Web App Manifest + +HTML5 Boilerplate includes a simple web app manifest file. + +The web app manifest is a simple JSON file that allows you to control how your +app appears on a device's home screen, what it looks like when it launches +in that context and what happens when it is launched. This allows for much greater +control over the UI of a saved site or web app on a mobile device. + +It's linked to from the HTML as follows: + +```html +<link rel="manifest" href="site.webmanifest"> +``` +Our [site.webmanifest](https://github.com/h5bp/html5-boilerplate/blob/master/src/site.webmanifest) contains a very skeletal "app" definition, just to show the basic usage. +You should fill this file out with [more information about your site or application](https://developer.mozilla.org/en-US/docs/Web/Manifest) + +## Favicons and Touch Icon + +The shortcut icons should be put in the root directory of your site. `favicon.ico` +is automatically picked up by browsers if it's placed in the root. HTML5 +Boilerplate comes with a default set of icons (include favicon and one Apple +Touch Icon) that you can use as a baseline to create your own. + +Please refer to the more detailed description in the [Extend section](extend.md) +of these docs. + +## The Content Area + +The central part of the boilerplate template is pretty much empty. This is +intentional, in order to make the boilerplate suitable for both web page and +web app development. + +### Browser Upgrade Prompt + +The main content area of the boilerplate includes a prompt to install an up to +date browser for users of IE 9 and lower. If you intended to support IE, then you +should edit or remove the snippet of code. + +## Modernizr + +HTML5 Boilerplate uses a custom build of Modernizr. + +[Modernizr](https://modernizr.com/) is a JavaScript library which adds classes to +the `html` element based on the results of feature test and which ensures that +all browsers can make use of HTML5 elements (as it includes the HTML5 Shiv). +This allows you to target parts of your CSS and JavaScript based on the +features supported by a browser. + +Starting with version 3 Modernizr can be customized using the [modernizr-config.json](https://github.com/h5bp/html5-boilerplate/blob/master/modernizr-config.json) and the +[Modernizr command line utility](https://www.npmjs.com/package/modernizr-cli). + +## What About Polyfills? + +If you need to include [polyfills](https://remysharp.com/2010/10/08/what-is-a-polyfill) +in your project, you must make sure those load before any other JavaScript. If you're +using a polyfill CDN service, like [cdn.polyfill.io](https://cdn.polyfill.io/), +just put it before the other scripts in the bottom of the page: + +```html + <script src="js/vendor/modernizr-3.8.0.min.js"></script> + <script src="https://cdn.polyfill.io/v3/polyfill.min.js"></script> + <script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script> + <script>window.jQuery || document.write('<script src="js/vendor/jquery-3.4.1.min.js"><\/script>')</script> + <script src="js/plugins.js"></script> + <script src="js/main.js"></script> +</body> +``` + +If you like to just include the polyfills yourself, you could include them in +`js/plugins.js`. When you have a bunch of polyfills to load in, you could +also create a `polyfills.js` file in the `js/vendor` directory or include the files +individually and combine them using a build tool. Always ensure that the polyfills +are all loaded before any other JavaScript. + +There are some misconceptions about Modernizr and polyfills. It's important +to understand that Modernizr just handles feature checking, not polyfilling +itself. The only thing Modernizr does regarding polyfills is that the team +maintains [a huge list of cross Browser polyfills](https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-Browser-Polyfills). + +### jQuery CDN for jQuery + +The jQuery CDN version of the jQuery JavaScript library is referenced towards +the bottom of the page. A local fallback of jQuery is included for rare instances +when the CDN version might not be available, and to facilitate offline +development. + +The jQuery CDN version was chosen over other potential candidates +([like Google's Hosted Libraries](https://developers.google.com/speed/libraries/)) +because it's fast ([comparable or faster than Google by some +measures](https://www.cdnperf.com/#jsdelivr,cdnjs,google,yandex,microsoft,jquery,bootstrapcdn/https/90)) +and, (unlike Google's CDN) is available to China's hundreds of millions of internet users. +For many years we [chose](https://github.com/h5bp/html5-boilerplate/issues/1191) +the Google Hosted version over the jQuery CDN because it was available +over HTTPS (the jQuery CDN was not,) and it offered a better chance of +hitting the cache lottery owing to the popularity of the Google CDN. +The first issue is no longer valid and the second is far outweighed by +being able to serve jQuery to users in China. + +While the jQuery CDN is a strong default solution your site or application may +require a different configuration. Testing your site with services like +[WebPageTest](https://www.webpagetest.org/) and browser tools like +[PageSpeed Insights](https://developers.google.com/speed/pagespeed/insights/) will help you examine the real +world performance of your site and can show where you can optimize your specific +site or application. + +### Google Universal Analytics Tracking Code + +Finally, an optimized version of the Google Universal Analytics tracking code is +included. + +We use `analytics.js` rather than the newer `gtag.js` as +[it's faster and supports tasks and plugins](https://github.com/philipwalton/analyticsjs-boilerplate/issues/19#issuecomment-333714370) + +The beacon transport mechanism is used to send all hits [which saves HTTP requests and improves performance](https://philipwalton.com/articles/the-google-analytics-setup-i-use-on-every-site-i-build/#loading-analytics.js). + +Google recommends that this script be placed at the top of the page. +Factors to consider: if you place this script at the top of the page, you’ll +be able to count users who don’t fully load the page, and you’ll incur the max +number of simultaneous connections of the browser. + +Further information: + +- [Introduction to + Analytics.js](https://developers.google.com/analytics/devguides/collection/analyticsjs/) +- [Google Analytics Demos & Tools](https://ga-dev-tools.appspot.com/) + +**N.B.** The Google Analytics snippet is included by default mainly +because Google Analytics is [currently one of the most popular tracking +solutions](https://trends.builtwith.com/analytics/Google-Analytics) out there. +However, its usage isn't set in stone, and you SHOULD consider exploring the +[alternatives](https://en.wikipedia.org/wiki/List_of_web_analytics_software) +and use whatever suits your needs best. + + diff --git a/week-2/doc/js.md b/week-2/doc/js.md new file mode 100755 index 0000000..a9f5487 --- /dev/null +++ b/week-2/doc/js.md @@ -0,0 +1,36 @@ +[HTML5 Boilerplate homepage](https://html5boilerplate.com/) | [Documentation +table of contents](TOC.md) + +# The JavaScript + +Information about the default JavaScript included in the project. + +## main.js + +This file can be used to contain or reference your site/app JavaScript code. +If you're working on something more advanced you might replace this file +entirely. That's cool. + +## plugins.js + +This file can be used to contain all your plugins, such as jQuery plugins and +other 3rd party scripts for a simple site. + +One approach is to put jQuery plugins inside of a `(function($){ ... +})(jQuery);` closure to make sure they're in the jQuery namespace safety +blanket. Read more about [jQuery plugin +authoring](https://learn.jquery.com/plugins/#Getting_Started). + +By default the `plugins.js` file contains a small script to avoid `console` +errors in browsers that lack a `console`. The script will make sure that, if +a console method isn't available, that method will have the value of empty +function, thus, preventing the browser from throwing an error. + +## vendor + +This directory can be used to contain all 3rd party library code. + +Minified versions of the latest jQuery and Modernizr libraries are included by +default. You may wish to create your own [custom Modernizr +build with the online builder](https://modernizr.com/download/) or [command +line tool](https://modernizr.com/docs#command-line-config). diff --git a/week-2/doc/misc.md b/week-2/doc/misc.md new file mode 100755 index 0000000..810fa60 --- /dev/null +++ b/week-2/doc/misc.md @@ -0,0 +1,173 @@ +[HTML5 Boilerplate homepage](https://html5boilerplate.com/) | [Documentation +table of contents](TOC.md) + +# Miscellaneous + +* [.gitignore](#gitignore) +* [.editorconfig](#editorconfig) +* [Server Configuration](#server-configuration) +* [robots.txt](#robotstxt) +* [humans.txt](#humanstxt) +* [browserconfig.xml](#browserconfigxml) + +-- + +## .gitignore + +HTML5 Boilerplate includes a basic project-level `.gitignore`. This should +primarily be used to avoid certain project-level files and directories from +being kept under source control. Different development-environments will +benefit from different collections of ignores. + +OS-specific and editor-specific files should be ignored using a "global +ignore" that applies to all repositories on your system. + +For example, add the following to your `~/.gitconfig`, where the `.gitignore` +in your HOME directory contains the files and directories you'd like to +globally ignore: + +```gitignore +[core] + excludesfile = ~/.gitignore +``` + +* More on global ignores: https://help.github.com/articles/ignoring-files/ +* Comprehensive set of ignores on GitHub: https://github.com/github/gitignore + + +## .editorconfig + +The `.editorconfig` file is provided in order to encourage and help you and +your team define and maintain consistent coding styles between different +editors and IDEs. + +By default, `.editorconfig` includes some basic +[properties](https://editorconfig.org/#supported-properties) that reflect the +coding styles from the files provided by default, but you can easily change +them to better suit your needs. + +In order for your editor/IDE to apply the +[properties](https://editorconfig.org/#supported-properties) from the +`.editorconfig` file, you may need to [install a +plugin]( https://editorconfig.org/#download). + +__N.B.__ If you aren't using the server configurations provided by HTML5 +Boilerplate, we highly encourage you to configure your server to block +access to `.editorconfig` files, as they can disclose sensitive information! + +For more details, please refer to the [EditorConfig +project](https://editorconfig.org/). + + +## Server Configuration + +H5BP includes a [`.htaccess`](#htaccess) file for the [Apache HTTP +server](https://httpd.apache.org/docs/). If you are not using Apache +as your web server, then you are encouraged to download a +[server configuration](https://github.com/h5bp/server-configs) that +corresponds to your web server and environment. + +A `.htaccess` (hypertext access) file is an [Apache HTTP server +configuration file](https://github.com/h5bp/server-configs-apache). +The `.htaccess` file is mostly used for: + +* Rewriting URLs +* Controlling cache +* Authentication +* Server-side includes +* Redirects +* Gzipping + +If you have access to the main server configuration file (usually called +`httpd.conf`), you should add the logic from the `.htaccess` file in, for +example, a <Directory> section in the main configuration file. This is usually +the recommended way, as using .htaccess files slows down Apache! + +To enable Apache modules locally, please see: +https://github.com/h5bp/server-configs-apache#enable-apache-httpd-modules. + +In the repo the `.htaccess` is used for: + +* Allowing cross-origin access to web fonts +* CORS header for images when browsers request it +* Enable `404.html` as 404 error document +* Making the website experience better for IE users better +* Media UTF-8 as character encoding for `text/html` and `text/plain` +* Enabling the rewrite URLs engine +* Forcing or removing the `www.` at the begin of a URL +* It blocks access to directories without a default document +* It blocks access to files that can expose sensitive information. +* It reduces MIME type security risks +* It forces compressing (gzipping) +* It tells the browser whether they should request a specific file from the + server or whether they should grab it from the browser's cache + +When using `.htaccess` we recommend reading all inline comments (the rules after +a `#`) in the file once. There is a bunch of optional stuff in it. + +If you want to know more about the `.htaccess` file check out the +[Apache HTTP server docs](https://httpd.apache.org/docs/) or more +specifically the [htaccess +section](https://httpd.apache.org/docs/current/howto/htaccess.html). + +Notice that the original repo for the `.htaccess` file is [this +one](https://github.com/h5bp/server-configs-apache). + + +## robots.txt + +The `robots.txt` file is used to give instructions to web robots on what can +be crawled from the website. + +By default, the file provided by this project includes the next two lines: + + * `User-agent: *` - the following rules apply to all web robots + * `Disallow:` - everything on the website is allowed to be crawled + +If you want to disallow certain pages you will need to specify the path in a +`Disallow` directive (e.g.: `Disallow: /path`) or, if you want to disallow +crawling of all content, use `Disallow: /`. + +The `/robots.txt` file is not intended for access control, so don't try to +use it as such. Think of it as a "No Entry" sign, rather than a locked door. +URLs disallowed by the `robots.txt` file might still be indexed without being +crawled, and the content from within the `robots.txt` file can be viewed by +anyone, potentially disclosing the location of your private content! So, if +you want to block access to private content, use proper authentication instead. + +For more information about `robots.txt`, please see: + + * [robotstxt.org](https://www.robotstxt.org/) + * [How Google handles the `robots.txt` file](https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt) + +## humans.txt + +The `humans.txt` file is used to provide information about people involved with +the website. + +The provided file contains three sections: + + * `TEAM` - this is intended to list the group of people responsible for the website + * `THANKS` - this is intended to list the group of people that have contributed + to the website + * `TECHNOLOGY COLOPHON` - the section lists technologies used to make the website + +For more information about `humans.txt`, please see: http://humanstxt.org/ + + +## browserconfig.xml + +The `browserconfig.xml` file is used to customize the tile displayed when users +pin your site to the Windows 8.1 start screen. In there you can define custom +tile colors, custom images or even [live tiles](https://msdn.microsoft.com/library/dn455106.aspx#CreatingLiveTiles). + +By default, the file points to 2 placeholder tile images: + +* `tile.png` (558x558px): used for `Small`, `Medium` and `Large` tiles. + This image resizes automatically when necessary. +* `tile-wide.png` (558x270px): user for `Wide` tiles. + +Notice that IE11 uses the same images when adding a site to the `favorites`. + +For more in-depth information about the `browserconfig.xml` file, please +see [MSDN](https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/dn320426(v=vs.85)). diff --git a/week-2/doc/usage.md b/week-2/doc/usage.md new file mode 100755 index 0000000..0493e29 --- /dev/null +++ b/week-2/doc/usage.md @@ -0,0 +1,130 @@ +[HTML5 Boilerplate homepage](https://html5boilerplate.com/) | [Documentation +table of contents](TOC.md) + +# Usage + +The most basic usage of HTML5 Boilerplate is to create a static site or simple +app. Once you've downloaded or cloned the project, that process looks something +like this: + +1. Set up the basic structure of the site. +2. Add some content, style, and functionality. +3. Run your site locally to see how it looks. +4. Deploy your site. + +Cool, right? _It is_. That said, the smart defaults, baseline elements, default +attribute values and various other utilities that HTML5 Boilerplate offers can +serve as the foundation for whatever you're interested in building. + +Even the basic use-case of a simple static site can be enhanced by manipulating +the code through an automated build process. Moving up in complexity HTML5 +Boilerplate can be integrated with whatever front-end framework, CMS or +e-commerce platform you're working with. Mix-and-match to your heart's content. +Use what you need (toss it in a blender if you need to) and discard the rest. +HTML5 Boilerplate is a starting point, not a destination. + +## Basic structure + +A basic HTML5 Boilerplate site initially looks something like this: + +``` +. +├── css +│ ├── main.css +│ └── normalize.css +├── doc +├── img +├── js +│ ├── main.js +│ ├── plugins.js +│ └── vendor +│ ├── jquery.min.js +│ └── modernizr.min.js +├── .editorconfig +├── .htaccess +├── 404.html +├── browserconfig.xml +├── favicon.ico +├── humans.txt +├── icon.png +├── index.html +├── robots.txt +├── site.webmanifest +├── tile.png +└── tile-wide.png +``` + +What follows is a general overview of each major part and how to use them. + +### css + +This directory should contain all your project's CSS files. It includes some +initial CSS to help get you started from a solid foundation. [About the +CSS](css.md). + +### doc + +This directory contains all the HTML5 Boilerplate documentation. You can use it +as the location and basis for your own project's documentation. + +### js + +This directory should contain all your project's JS files. Libraries, plugins, +and custom code can all be included here. It includes some initial JS to help +get you started. [About the JavaScript](js.md). + +### .htaccess + +The default web server configs are for Apache. For more information, please +refer to the [Apache Server Configs +repository](https://github.com/h5bp/server-configs-apache). + +Host your site on a server other than Apache? You're likely to find the +corresponding server configs project listed in our [Server Configs +](https://github.com/h5bp/server-configs/blob/master/README.md) repository. + +### 404.html + +A helpful custom 404 to get you started. + +### browserconfig.xml + +This file contains all settings regarding custom tiles for IE11 and Edge. + +For more info on this topic, please refer to +[Microsoft's Docs](https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/platform-apis/dn320426(v=vs.85)). + +### .editorconfig + +The `.editorconfig` file is provided in order to encourage and help you and +your team to maintain consistent coding styles between different +editors and IDEs. [Read more about the `.editorconfig` file](misc.md#editorconfig). + +### index.html + +This is the default HTML skeleton that should form the basis of all pages on +your site. If you are using a server-side templating framework, then you will +need to integrate this starting HTML with your setup. + +Make sure that you update the URLs for the referenced CSS and JavaScript if you +modify the directory structure at all. + +If you are using Google Universal Analytics, make sure that you edit the +corresponding snippet at the bottom to include your analytics ID. + +### humans.txt + +Edit this file to include the team that worked on your site/app, and the +technology powering it. + +### robots.txt + +Edit this file to include any pages you need hidden from search engines. + +### Icons + +Replace the default `favicon.ico`, `tile.png`, `tile-wide.png` and Apple +Touch Icon with your own. + +If you want to use different Apple Touch Icons for different resolutions please +refer to the [according documentation](extend.md#apple-touch-icons). diff --git a/week-2/favicon.ico b/week-2/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..be74abd69ad6a32de7375df13cab9354798e328f GIT binary patch literal 766 zcmc(dze~eV5XUd2fg&jH87YDYDQKxq1{4b-_ydP-wqS9vgGh17QXQQAwOE{VaBvi* zmu^z9t({y-&1ey<?*19x`_a%0;^>8Y_x;?x+`BviV9;aRjMgZ8M*!jgkRrFqSI9;F zHyfX@Az|AvVmn~YWWZP`0&JWEY~BFm?*Vq}VD7&_%x%MP$p`D`4JMC!K|B7pt?Mmp zUJAB7rxMXS6=!P+AtLU9V)J#61WPxwipRXCHO{BJ`l{m53#=t97a!znv~vfmr|AaP zRGIT7#0FyJy3Z*hL{GQp-0TRhX8UzZ)+>%?mK0^goaX4Q;x<h|7I8a@t8#9Z`A~@1 zIx{#+`h7(7bA0+s7#-k=_?cTQZjqG{+al%<xj`*i0llsi@&x*V=JS=7GQ@hVV0w`- td#$W2=*99o&LFePcYQf3%L?7WGUv;WVIDdObG#I0%L#Kp!H@7y;s@Y5ipBr{ literal 0 HcmV?d00001 diff --git a/week-2/humans.txt b/week-2/humans.txt new file mode 100755 index 0000000..8d2330f --- /dev/null +++ b/week-2/humans.txt @@ -0,0 +1,15 @@ +# humanstxt.org/ +# The humans responsible & technology colophon + +# TEAM + + <name> -- <role> -- <twitter> + +# THANKS + + <name> + +# TECHNOLOGY COLOPHON + + CSS3, HTML5 + Apache Server Configs, jQuery, Modernizr, Normalize.css diff --git a/week-2/icon.png b/week-2/icon.png new file mode 100755 index 0000000000000000000000000000000000000000..8a42581d4a2a2a28bee1888835d21ffe4d6378d0 GIT binary patch literal 4029 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 literal 0 HcmV?d00001 diff --git a/week-2/img/.gitignore b/week-2/img/.gitignore new file mode 100755 index 0000000..e69de29 diff --git a/week-2/index.html b/week-2/index.html new file mode 100755 index 0000000..cbbcb03 --- /dev/null +++ b/week-2/index.html @@ -0,0 +1,41 @@ +<!doctype html> +<html class="no-js" lang=""> + +<head> + <meta charset="utf-8"> + <title> + + + + + + + + + + + + + + + + + +

Hello world! This is HTML5 Boilerplate.

+ + + + + + + + + + + + diff --git a/week-2/js/main.js b/week-2/js/main.js new file mode 100755 index 0000000..e69de29 diff --git a/week-2/js/plugins.js b/week-2/js/plugins.js new file mode 100755 index 0000000..feb7d19 --- /dev/null +++ b/week-2/js/plugins.js @@ -0,0 +1,24 @@ +// Avoid `console` errors in browsers that lack a console. +(function() { + var method; + var noop = function () {}; + var methods = [ + 'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error', + 'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log', + 'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd', + 'timeline', 'timelineEnd', 'timeStamp', 'trace', 'warn' + ]; + var length = methods.length; + var console = (window.console = window.console || {}); + + while (length--) { + method = methods[length]; + + // Only stub undefined methods. + if (!console[method]) { + console[method] = noop; + } + } +}()); + +// Place any jQuery/helper plugins in here. diff --git a/week-2/js/vendor/jquery-3.4.1.min.js b/week-2/js/vendor/jquery-3.4.1.min.js new file mode 100755 index 0000000..a1c07fd --- /dev/null +++ b/week-2/js/vendor/jquery-3.4.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.4.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="
",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){A(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 00&&(t+=" "+n+e.join(" "+n)),S?b.className.baseVal=t:b.className=t)}function i(e,t){if("object"==typeof e)for(var n in e)P(e,n)&&i(n,e[n]);else{e=e.toLowerCase();var r=e.split("."),s=Modernizr[r[0]];if(2===r.length&&(s=s[r[1]]),void 0!==s)return Modernizr;t="function"==typeof t?t():t,1===r.length?Modernizr[r[0]]=t:(!Modernizr[r[0]]||Modernizr[r[0]]instanceof Boolean||(Modernizr[r[0]]=new Boolean(Modernizr[r[0]])),Modernizr[r[0]][r[1]]=t),o([(t&&!1!==t?"":"no-")+r.join("-")]),Modernizr._trigger(e,t)}return Modernizr}function s(){return"function"!=typeof t.createElement?t.createElement(arguments[0]):S?t.createElementNS.call(t,"http://www.w3.org/2000/svg",arguments[0]):t.createElement.apply(t,arguments)}function a(){var e=t.body;return e||(e=s(S?"svg":"body"),e.fake=!0),e}function l(e,n,r,o){var i,l,u,f,c="modernizr",d=s("div"),p=a();if(parseInt(r,10))for(;r--;)u=s("div"),u.id=o?o[r]:c+(r+1),d.appendChild(u);return i=s("style"),i.type="text/css",i.id="s"+c,(p.fake?p:d).appendChild(i),p.appendChild(d),i.styleSheet?i.styleSheet.cssText=e:i.appendChild(t.createTextNode(e)),d.id=c,p.fake&&(p.style.background="",p.style.overflow="hidden",f=b.style.overflow,b.style.overflow="hidden",b.appendChild(p)),l=n(d,e),p.fake?(p.parentNode.removeChild(p),b.style.overflow=f,b.offsetHeight):d.parentNode.removeChild(d),!!l}function u(e,t){return!!~(""+e).indexOf(t)}function f(e){return e.replace(/([A-Z])/g,function(e,t){return"-"+t.toLowerCase()}).replace(/^ms-/,"-ms-")}function c(t,n,r){var o;if("getComputedStyle"in e){o=getComputedStyle.call(e,t,n);var i=e.console;if(null!==o)r&&(o=o.getPropertyValue(r));else if(i){var s=i.error?"error":"log";i[s].call(i,"getComputedStyle returning null, its possible modernizr test results are inaccurate")}}else o=!n&&t.currentStyle&&t.currentStyle[r];return o}function d(t,r){var o=t.length;if("CSS"in e&&"supports"in e.CSS){for(;o--;)if(e.CSS.supports(f(t[o]),r))return!0;return!1}if("CSSSupportsRule"in e){for(var i=[];o--;)i.push("("+f(t[o])+":"+r+")");return i=i.join(" or "),l("@supports ("+i+") { #modernizr { position: absolute; } }",function(e){return"absolute"===c(e,null,"position")})}return n}function p(e){return e.replace(/([a-z])-([a-z])/g,function(e,t,n){return t+n.toUpperCase()}).replace(/^-/,"")}function m(e,t,o,i){function a(){f&&(delete L.style,delete L.modElem)}if(i=!r(i,"undefined")&&i,!r(o,"undefined")){var l=d(e,o);if(!r(l,"undefined"))return l}for(var f,c,m,h,A,v=["modernizr","tspan","samp"];!L.style&&v.length;)f=!0,L.modElem=s(v.shift()),L.style=L.modElem.style;for(m=e.length,c=0;cgj^wgz*#KsaL{dN)HT+y> z945;bC}d*rW`HmhG>^mF!U@z zU0jzNJN`H|kCHgI@e__1b!V>cz2rNe|~K!jU7}>hz&fJTy-ISoHarB)dMH;p#;gYZTJz ziUP;y60>d2h}OZ35EM9VBr5KpN|nnD8YGA=;6XsRNf_&2iLY1&U}APjK;&F`@F69V z&1WKm5(pbJdoB<2Di;RZUAdRtzo*B^_+2WNHo$GE=OIl&ac*)nsI^zFjg5d`PD^eT zoJiBkJ+q~KFH<)b(scW0=w*;5E;y+fZGYm}J-uPz8_ZL~mU;%GinAJ^o9oS$_n^DU z*|ut977ixgU>48_@zM!U1pK(DN(^YL*c=#Qd6<9JA565s(}%jRTSm0@ihi}allXp1 z8;dQ@MX`xfs~Z5?>tLabX_#8g9ISceZ^B*J%1bzD^?bCz78NUu zPI91_b$(ETz)y0>lspJLEbu3RuBj>sphRRt;A~Bj1RWeXf&H2+(D#RUzp-wgp7cM1 zLj$hcd%SBGfg*ckP_qata%^YW9--vm)ULp~3`rb>zpeM*t4AlXM1c|jt%{%b8c2u& zh-Bf!^D%N>vN7c`+p+i)`T1DSxR~yQo;3RU`SoCKhJeSG$M{{_a1~rg_gY$L@@9@= z*qR<4?SAs4?SK{-!#g!zu+!gUGv#IyHL7W)>3%DT&WT zM)|7XIvix)7_4+R=tqBLiSRl{2Olg+X{6psqiu%eg7+?S1NTk#?AB9TzIgt)0bVu& z#xkb{dYk%%oiSrh8YS^XuMHDQpxn@+M@A4A4ou#X$+9u1rtB|W$-UFBxjeM2Pjp3?Ko7h9f1 z=S!-1pNr5Fvz;~7vje?C-X?;;e5xZv*;)s%B~dY5f!Jw!o zT@c~<>rcX|19q33zxQoET;i+Mxo-qgkpg(<7IW_WdS7JX>;jC!js#?PQj< zDDtc^%BMj=y(~Uj?v6Y=ibEziO>q|Ymm^B!|6SbGPuLkRs>^PG+pket6*^b{Jl8^H zH{BvIQ7>TA1GHR04&59g^rvNjP3Vp)nvE1$c{8N;K(1V>{uRBkvUnC#DAM~)w8dJ>;*v{dWy>0RzDuqWKHdltkfKQj= zdsGx{KS&dEM!n)uy5mmJ&Ks0|6Pu;$@XaGm(v_dKHmU+HZyfT)3^q9Xg6KM8=L># zG_mH$>VP2hZ2yOJTCI?n%*r<~KkG6A=?7ksXbcm*JnBW%U;jAD%C1V-O&(spc;(if NjOOA_X(Y4w{{!#vJbVBE literal 0 HcmV?d00001 diff --git a/week-2/tile.png b/week-2/tile.png new file mode 100755 index 0000000000000000000000000000000000000000..f820f61a0b95dd42dca6cbd06ca08ed4e1ef098a GIT binary patch literal 3482 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 literal 0 HcmV?d00001