Merge pull request #164 from coreywagehoft/master

adding Foundation CSS Framework, thx @coreywagehoft
This commit is contained in:
Ben Word
2011-11-02 18:31:41 -07:00
18 changed files with 2109 additions and 0 deletions

33
css/foundation/app.css Normal file
View File

@@ -0,0 +1,33 @@
/* Artfully masterminded by ZURB */
/* --------------------------------------------------
Table of Contents
-----------------------------------------------------
:: Shared Styles
:: Page Name 1
:: Page Name 2
*/
/* -----------------------------------------
Shared Styles
----------------------------------------- */
/* -----------------------------------------
Page Name 1
----------------------------------------- */
/* -----------------------------------------
Page Name 2
----------------------------------------- */

83
css/foundation/forms.css Normal file
View File

@@ -0,0 +1,83 @@
/* Artfully masterminded by ZURB
Make sure to include the app.js if you are going to use inline label inputs
*/
/* -----------------------------------------
Standard Forms
----------------------------------------- */
form { margin: 0 0 18px; }
form label { display: block; font-size: 13px; line-height: 18px; cursor: pointer; margin-bottom: 9px; }
input.input-text, textarea { border-right: 1px solid #bbb; border-bottom: 1px solid #bbb; }
input.input-text, textarea, select { display: block; margin-bottom: 9px; }
label + input.input-text, label + textarea, label + select, label + div.dropdown, select + div.dropdown { margin-top: -9px; }
/* Text input and textarea font and padding */
input.input-text, textarea { font-size: 13px; padding: 4px 3px 2px; outline: none !important; background: #fff; }
input.input-text.oversize, textarea.oversize { font-size: 18px !important; padding: 4px 5px !important; }
input.input-text:focus, textarea:focus { background: #f9f9f9; }
/* Inlined Label Style */
input.placeholder, textarea.placeholder { color: #888; }
/* Text input and textarea sizes */
input.input-text, textarea { width: 254px; }
input.small, textarea.small { width: 134px; }
input.medium, textarea.medium { width: 254px; }
input.large, textarea.large { width: 434px; }
/* Fieldsets */
form fieldset { padding: 9px 9px 2px 9px; border: solid 1px #ddd; margin: 18px 0; }
/* Errors */
input.input-text.red { border-color: red; background-color: rgba(255,0,0,0.15); }
label.red { color: red; }
small.error { margin-top: -6px; display: block; margin-bottom: 9px; font-size: 11px; color: red; width: 260px; }
.small + .error { width: 140px; }
.medium + .error { width: 260px; }
.large + .error { width: 440px; }
/* -----------------------------------------
Nicer Forms
----------------------------------------- */
form.nice input.input-text, form.nice textarea { border: solid 1px #bbb; border-radius: 2px; -webkit-border-radius: 2px; -moz-border-radius: 2px; }
form.nice input.input-text, form.nice textarea { font-size: 13px; padding: 6px 3px 4px; outline: none !important; background: url(../images/misc/input-bg.png) #fff; }
form.nice input.input-text:focus, form.nice textarea:focus { background-color: #f9f9f9; }
form.nice fieldset { border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; }
form.nice small.error { padding: 6px 4px; border: solid 0px red; border-width: 0px 1px 1px 1px; margin-top: -10px; background: red; color: #fff; font-size: 12px; font-weight: bold; border-bottom-left-radius: 2px; border-bottom-right-radius: 2px; -webkit-border-bottom-left-radius: 2px; -webkit-border-bottom-right-radius: 2px; -moz-border-radius-bottomleft: 2px; -moz-border-radius-bottomright: 2px; }
form.nice .small + .error { width: 132px; }
form.nice .medium + .error { width: 252px; }
form.nice .large + .error { width: 432px; }
/* -----------------------------------------
Custom Forms
----------------------------------------- */
form.custom span.custom { display: inline-block; width: 14px; height: 14px; position: relative; top: 2px; border: solid 1px #ccc; background: url(../images/misc/custom-form-sprites.png) 0 0 no-repeat; }
form.custom span.custom.radio { border-radius: 7px; -webkit-border-radius: 7px; -moz-border-radius: 7px; }
form.custom span.custom.radio.checked { background-position: 0px -14px; }
form.custom span.custom.checkbox.checked { background-position: 0px -28px; }
form.custom div.custom.dropdown { position: relative; display: inline-block; width: auto; height: 28px; margin-bottom: 9px; }
form.custom div.custom.dropdown a.current { display: block; width: auto; line-height: 26px; padding: 0 38px 0 6px; border: solid 1px #ddd; color: #141414; }
form.custom div.custom.dropdown a.selector { position: absolute; width: 26px; height: 26px; display: block; background: url(../images/misc/custom-form-sprites.png) -14px 0 no-repeat; right: 0px; top: 0px; border: solid 1px #ddd; }
form.custom div.custom.dropdown:hover a.selector,
form.custom div.custom.dropdown.open a.selector { background-position: -14px -26px; }
form.custom div.custom.dropdown ul { position: absolute; width: auto; display: none; margin: 0; left: 0px; top: 27px; margin: 0; padding: 0; background: rgba(255,255,255,0.9); border: solid 1px #ddd; z-index: 10; }
form.custom div.custom.dropdown ul li { cursor: pointer; padding: 3px 38px 3px 6px; margin: 0; }
form.custom div.custom.dropdown ul li.selected { background: url(../images/misc/custom-form-sprites.png) right -52px no-repeat; }
form.custom div.custom.dropdown ul li:hover { background-color: #2a85e8; color: #fff; }
form.custom div.custom.dropdown ul li.selected:hover { background: url(../images/misc/custom-form-sprites.png) #2a85e8 right -78px no-repeat; }
form.custom div.custom.dropdown ul.show { display: block; }
form.custom div.custom.dropdown.open ul { display: block; }

127
css/foundation/globals.css Normal file
View File

@@ -0,0 +1,127 @@
/* Arfully Masterminded by ZURB */
/* --------------------------------------------------
Table of Contents
-----------------------------------------------------
:: Reset & Standards
:: Links
:: Lists
:: Tables
:: Misc
*/
/* --------------------------------------------------
:: Global Reset & Standards
-------------------------------------------------- */
/*
Eric Meyer's CSS Reset
http://meyerweb.com/eric/tools/css/reset/
v2.0 | 20110126
License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
font: inherit;
vertical-align: baseline;
}
html {
font-size: 62.5%;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
body { background: #fff; font-family: "Helvetica Neue", "HelveticaNeue", Helvetica, Arial, "Lucida Grande", sans-serif; font-size: 13px; line-height: 18px; color: #555; position: relative; -webkit-font-smoothing: antialiased; }
/* --------------------------------------------------
:: Links
-------------------------------------------------- */
a { color: #2a85e8; text-decoration: none; outline: 0; line-height: inherit; }
a:hover { color: #11639d; }
p a, p a:visited { line-height: inherit; }
/* --------------------------------------------------
:: Lists
-------------------------------------------------- */
ul, ol { margin-bottom: 18px; }
ul { list-style: none outside; }
ol { list-style: decimal; }
ol, ul.square, ul.circle, ul.disc { margin-left: 30px; }
ul.square { list-style: square outside; }
ul.circle { list-style: circle outside; }
ul.disc { list-style: disc outside; }
ul ul, ol ol { margin: 4px 0 5px 30px; }
li { margin-bottom: 12px; }
ul.large li { line-height: 21px; }
/* --------------------------------------------------
:: Tables
-------------------------------------------------- */
table { background: #fff; -moz-border-radius: 3px; -webkit-border-radius: 3px; width: 100%; margin: 0 0 18px; border: 1px solid #ddd; }
table thead { background: #f5f5f5; }
table thead tr th,
table tbody tr td { font-size: 12px; line-height: 18px; text-align: left; }
table thead tr th { padding: 8px 10px 9px; font-size: 14px; font-weight: bold; color: #222; }
table thead tr th:first-child { border-left: none; }
table thead tr th:last-child { border-right: none; }
table thead tr { }
table tbody { }
table tbody tr { }
table tbody tr.even,
table tbody tr.alt { background: #f9f9f9; }
table tbody tr:nth-child(even) { background: #f9f9f9; }
table tbody tr td { color: #333; padding: 9px 10px; vertical-align: top; border: none; }
/* --------------------------------------------------
:: Misc
---------------------------------------------------*/
.left { float: left; }
.right { float: right; }
.hide { display: none; }
.highlight { background: #ff0; }

103
css/foundation/grid.css Normal file
View File

@@ -0,0 +1,103 @@
/* Arfully Masterminded by ZURB */
/* --------------------------------------------------
:: Grid
This is the mobile-friendly, responsive grid that
lets Foundation work much of its magic.
-------------------------------------------------- */
.container { padding: 0px 20px; }
.row { width: 100%; max-width: 980px; min-width: 727px; margin: 0 auto; }
/* To fix the grid into a certain size, set max-width to width */
.row .row { min-width: 0px; }
.column, .columns { margin-left: 4.4%; float: left; min-height: 1px; position: relative; }
.column:first-child, .columns:first-child { margin-left: 0px; }
.row .one.columns { width: 4.3%; }
.row .two.columns { width: 13%; }
.row .three.columns { width: 21.68%; }
.row .four.columns { width: 30.4%; }
.row .five.columns { width: 39.1%; }
.row .six.columns { width: 47.8%; }
.row .seven.columns { width: 56.5%; }
.row .eight.columns { width: 65.2%; }
.row .nine.columns { width: 73.9%; }
.row .ten.columns { width: 82.6%; }
.row .eleven.columns { width: 91.3%; }
.row .twelve.columns { width: 100%; }
.row .offset-by-one { margin-left: 13.1%; }
.row .offset-by-two { margin-left: 21.8%; }
.row .offset-by-three { margin-left: 30.5%; }
.row .offset-by-four { margin-left: 39.2%; }
.row .offset-by-five { margin-left: 47.9%; }
.row .offset-by-six { margin-left: 56.6%; }
.row .offset-by-seven { margin-left: 65.3%; }
.row .offset-by-eight { margin-left: 74.0%; }
.row .offset-by-nine { margin-left: 82.7%; }
.row .offset-by-ten { margin-left: 91.4%; }
/*.row .offset-by-eleven { margin-left: 95.7%; }*/
.row .one.centered { margin-left: 47.9%; }
.row .two.centered { margin-left: 43.5%; }
.row .three.centered { margin-left: 39.2%; }
.row .four.centered { margin-left: 34.8%; }
.row .five.centered { margin-left: 30.5%; }
.row .six.centered { margin-left: 26.1%; }
.row .seven.centered { margin-left: 21.8%; }
.row .eight.centered { margin-left: 17.4%; }
.row .nine.centered { margin-left: 13.1%; }
.row .ten.centered { margin-left: 8.7%; }
.row .eleven.centered { margin-left: 4.3%; }
.row .offset-by-one:first-child { margin-left: 8.7%; }
.row .offset-by-two:first-child { margin-left: 17.4%; }
.row .offset-by-three:first-child { margin-left: 26.1%; }
.row .offset-by-four:first-child { margin-left: 34.8%; }
.row .offset-by-five:first-child { margin-left: 43.5%; }
.row .offset-by-six:first-child { margin-left: 52.2%; }
.row .offset-by-seven:first-child { margin-left: 60.9%; }
.row .offset-by-eight:first-child { margin-left: 69.6%; }
.row .offset-by-nine:first-child { margin-left: 78.3%; }
.row .offset-by-ten:first-child { margin-left: 87%; }
.row .offset-by-eleven:first-child { margin-left: 95.7%; }
img, object, embed { max-width: 100%; }
img { -ms-interpolation-mode: bicubic; }
/* Nicolas Gallagher's micro clearfix */
.row:before, .row:after, .clearfix:before, .clearfix:after { content:""; display:table; }
.row:after, .clearfix:after { clear: both; }
.row, .clearfix { zoom: 1; }
/* --------------------------------------------------
:: Block grids
These are 2-up, 3-up, 4-up and 5-up ULs, suited
for repeating blocks of content. Add 'mobile' to
them to switch them just like the layout grid
(one item per line) on phones
-------------------------------------------------- */
.block-grid { display: block; overflow: hidden; }
.block-grid>li { display: block; height: auto; float: left; }
.block-grid.two-up { margin-left: -4% }
.block-grid.two-up>li { margin-left: 4%; width: 46%; }
.block-grid.three-up { margin-left: -2% }
.block-grid.three-up>li { margin-left: 2%; width: 31.3%; }
.block-grid.four-up { margin-left: -2% }
.block-grid.four-up>li { margin-left: 2%; width: 23%; }
.block-grid.five-up { margin-left: -1.5% }
.block-grid.five-up>li { margin-left: 1.5%; width: 18.5%; }

4
css/foundation/ie.css Normal file
View File

@@ -0,0 +1,4 @@
/* This is for all IE specfific style less than IE9 and
we make IE 8 render like 7. We hate IE. */
div.panel { border: 1px solid #ccc; }

112
css/foundation/mobile.css Normal file
View File

@@ -0,0 +1,112 @@
/* --------------------------------------------------
:: Grid
-------------------------------------------------- */
/* Tablet screens */
@media only screen and (device-width: 768px), (device-width: 800px) {
/* Currently unused */
}
/* Mobile */
@media only screen and (max-width: 767px) {
body { -webkit-text-size-adjust: none; }
.row, body, .container { width: 100%; min-width: 0; margin-left: 0px; margin-right: 0px; padding-left: 0px; padding-right: 0px; }
.row .row .column, .row .row .columns { padding: 0; }
.column, .columns { width: auto !important; float: none; margin-left: 0px; margin-right: 0px; padding-left: 20px; padding-right: 20px; }
.column:last-child, .columns:last-child { margin-right: 0px; }
.offset-by-one, .offset-by-two, .offset-by-three, .offset-by-four, .offset-by-five, .offset-by-six, .offset-by-seven, .offset-by-eight, .offset-by-nine, .offset-by-ten, .offset-by-eleven { margin-left: 0% !important; }
}
/* --------------------------------------------------
:: Block Grids
-------------------------------------------------- */
@media only screen and (max-width: 767px) {
.block-grid.mobile li { float: none; width: 100%; }
}
/* --------------------------------------------------
:: Mobile Visibility Affordances
---------------------------------------------------*/
.show-on-phones { display: none !important; }
.show-on-tablets { display: none !important; }
.show-on-desktops { display: block; }
.hide-on-phones { display: block !important; }
.hide-on-tablets { display: block !important; }
.hide-on-desktops { display: none; }
@media only screen and (device-width: 768px), only screen and (device-width: 1280px), only screen and (device-width: 800px) {
.hide-on-phones { display: block !important; }
.hide-on-tablets { display: none !important; }
.hide-on-desktops { display: block !important; }
.show-on-phones { display: none !important; }
.show-on-tablets { display: block !important; }
.show-on-desktops { display: none !important; }
}
@media only screen and (max-width: 767px) {
.hide-on-phones { display: none !important; }
.hide-on-tablets { display: block !important; }
.hide-on-desktops { display: block !important; }
.show-on-phones { display: block !important; }
.show-on-tablets { display: none !important; }
.show-on-desktops { display: none !important; }
}
/* --------------------------------------------------
:: Forms
---------------------------------------------------*/
@media only screen and (max-width: 767px) {
input.input-text, input.input-text.oversize, textarea,
form.nice input.input-text, form.nice input.input-text.oversize, form.nice textarea { display: block; width: 96%; padding: 6px 2% 4px; font-size: 18px; }
form.nice input.input-text, form.nice input.input-text.oversize, form.nice textarea { -webkit-border-radius: 2px; -moz-border-radius: 2px; }
form.nice small.error { padding: 6px 2%; display: block; }
form.nice .small + .error { width: auto; }
form.nice .medium + .error { width: auto; }
form.nice .large + .error { width: auto; }
}
/* --------------------------------------------------
:: UI
---------------------------------------------------*/
/* Buttons */
@media only screen and (max-width: 767px) {
.button { display: block; }
button.button { width: 100%; padding-left: 0px; padding-right: 0px; }
}
/* Tabs */
@media only screen and (max-width: 767px) {
dl.tabs.mobile, dl.nice.tabs.mobile { width: auto; margin: 20px -20px 40px; height: auto; }
dl.tabs.mobile dt, dl.tabs.mobile dd, dl.nice.tabs.mobile dt, dl.nice.tabs.mobile dd { float: none; height: auto; }
dl.tabs.mobile dd a { display: block; width: auto; height: auto; padding: 18px 20px; line-height: 1; border: solid 0px #ccc; border-width: 1px 0px 0px; margin: 0; color: #555; background: #eee; font-size: 15px; font-size: 1.5rem; }
dl.tabs.mobile dd a.active { height: auto; margin: 0; border-width: 1px 0px 0px; }
.nice.tabs.mobile { border-bottom: solid 1px #ccc; height: auto; }
.nice.tabs.mobile dd a { padding: 18px 20px; border: none; border-left: none; border-right: none; border-top: 1px solid #ccc; background: #fff; }
.nice.tabs.mobile dd a.active { border: none; background: #00a6fc; color: #fff; margin: 0; position: static; top: 0px; height: auto; }
.nice.tabs.mobile dd:first-child a.active { margin: 0; }
dl.contained.mobile, dl.nice.contained.mobile { margin-bottom: 0px; }
dl.contained.tabs.mobile dd a { padding: 18px 20px; }
dl.nice.contained.tabs.mobile dd a { padding: 18px 20px; }
}

210
css/foundation/orbit.css Normal file
View File

@@ -0,0 +1,210 @@
/* CSS for jQuery Orbit Plugin 1.2.3
* www.ZURB.com/playground
* Copyright 2010, ZURB
* Free to use under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
/* PUT IN YOUR SLIDER ID AND SIZE TO MAKE LOAD BEAUTIFULLY
================================================== */
#caseStudies {
width: 1000px;
height: 210px;
background: #fff url('../images/orbit/loading.gif') no-repeat center center;
overflow: hidden; }
#caseStudies>img,
#caseStudies>div,
#caseStudies>a { display: none; }
/* CONTAINER
================================================== */
div.orbit-wrapper {
width: 1px;
height: 1px;
position: relative; }
div.orbit {
width: 1px;
height: 1px;
position: relative;
overflow: hidden }
div.orbit>img {
position: absolute;
top: 0;
left: 0;
/* display: none; */ }
div.orbit>a {
border: none;
position: absolute;
top: 0;
left: 0;
line-height: 0;
display: none; }
.orbit>div {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%; }
/* Note: If your slider only uses content or anchors, you're going to want to put the width and height declarations on the ".orbit>div" and "div.orbit>a" tags in addition to just the .orbit-wrapper */
/* TIMER
================================================== */
div.timer {
width: 40px;
height: 40px;
overflow: hidden;
position: absolute;
top: 10px;
right: 10px;
opacity: .6;
cursor: pointer;
z-index: 1001; }
span.rotator {
display: block;
width: 40px;
height: 40px;
position: absolute;
top: 0;
left: -20px;
background: url(../images/orbit/rotator-black.png) no-repeat;
z-index: 3; }
span.mask {
display: block;
width: 20px;
height: 40px;
position: absolute;
top: 0;
right: 0;
z-index: 2;
overflow: hidden; }
span.rotator.move {
left: 0 }
span.mask.move {
width: 40px;
left: 0;
background: url(../images/orbit/timer-black.png) repeat 0 0; }
span.pause {
display: block;
width: 40px;
height: 40px;
position: absolute;
top: 0;
left: 0;
background: url(../images/orbit/pause-black.png) no-repeat;
z-index: 4;
opacity: 0; }
span.pause.active {
background: url(../images/orbit/pause-black.png) no-repeat 0 -40px }
div.timer:hover span.pause,
span.pause.active {
opacity: 1 }
/* CAPTIONS
================================================== */
.orbit-caption {
display: none;
font-family: "HelveticaNeue", "Helvetica-Neue", Helvetica, Arial, sans-serif; }
.orbit-wrapper .orbit-caption {
background: #000;
background: rgba(0,0,0,.6);
z-index: 1000;
color: #fff;
text-align: center;
padding: 7px 0;
font-size: 13px;
position: absolute;
right: 0;
bottom: 0;
width: 100%; }
/* DIRECTIONAL NAV
================================================== */
div.slider-nav {
display: block }
div.slider-nav span {
width: 78px;
height: 100px;
text-indent: -9999px;
position: absolute;
z-index: 1000;
top: 50%;
margin-top: -50px;
cursor: pointer; }
div.slider-nav span.right {
background: url(../images/orbit/right-arrow.png);
right: 0; }
div.slider-nav span.left {
background: url(../images/orbit/left-arrow.png);
left: 0; }
/* BULLET NAV
================================================== */
.orbit-bullets {
position: absolute;
z-index: 1000;
list-style: none;
bottom: -40px;
left: 50%;
margin-left: -50px;
padding: 0; }
.orbit-bullets li {
float: left;
margin-left: 5px;
cursor: pointer;
color: #999;
text-indent: -9999px;
background: url(../images/orbit/bullets.jpg) no-repeat 4px 0;
width: 13px;
height: 12px;
overflow: hidden; }
.orbit-bullets li.active {
color: #222;
background-position: -8px 0; }
.orbit-bullets li.has-thumb {
background: none;
width: 100px;
height: 75px; }
.orbit-bullets li.active.has-thumb {
background-position: 0 0;
border-top: 2px solid #000; }
/* FLUID LAYOUT
================================================== */
.orbit .fluid-placeholder {
visibility: hidden;
position: static;
display: block;
width: 100%;
}

91
css/foundation/reveal.css Normal file
View File

@@ -0,0 +1,91 @@
/* --------------------------------------------------
Reveal Modals
-------------------------------------------------- */
.reveal-modal-bg {
position: fixed;
height: 100%;
width: 100%;
background: #000;
background: rgba(0,0,0,.8);
z-index: 2000;
display: none;
top: 0;
left: 0;
}
.reveal-modal {
visibility: hidden;
top: 100px;
left: 50%;
margin-left: -300px;
width: 520px;
background: #eee url(../images/misc/modal-gloss.png) no-repeat -200px -80px;
position: absolute;
z-index: 2001;
padding: 30px 40px 34px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 0 0 10px rgba(0,0,0,.4);
-webkit-box-shadow: 0 0 10px rgba(0,0,0,.4);
box-shadow: 0 0 10px rgba(0,0,0,.4);
}
.reveal-modal.small { width: 200px; margin-left: -140px;}
.reveal-modal.medium { width: 400px; margin-left: -240px;}
.reveal-modal.large { width: 600px; margin-left: -340px;}
.reveal-modal.xlarge { width: 800px; margin-left: -440px;}
.reveal-modal .close-reveal-modal {
font-size: 22px;
line-height: .5;
position: absolute;
top: 8px;
right: 11px;
color: #aaa;
text-shadow: 0 -1px 1px rbga(0,0,0,.6);
font-weight: bold;
cursor: pointer;
}
/* Mobile */
@media handheld, only screen and (device-width: 768px), (device-width: 800px) {
.reveal-modal-bg { position: absolute; }
.reveal-modal,
.reveal-modal.small,
.reveal-modal.medium,
.reveal-modal.large,
.reveal-modal.xlarge { width: 60%; top: 30%; left: 15%; margin-left: 0px; padding: 5%; height: auto; }
}
@media handheld, only screen and (max-width: 767px) {
.reveal-modal-bg { position: absolute; }
.reveal-modal,
.reveal-modal.small,
.reveal-modal.medium,
.reveal-modal.large,
.reveal-modal.xlarge { width: 80%; top: 15%; left: 5%; margin-left: 0px; padding: 5%; height: auto; }
}
/*
NOTES
Close button entity is ×
Example markup
<div id="myModal" class="reveal-modal">
<h2>Awesome. I have it.</h2>
<p class="lead">Your couch. I it's mine.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ultrices aliquet placerat. Duis pulvinar orci et nisi euismod vitae tempus lorem consectetur. Duis at magna quis turpis mattis venenatis eget id diam. </p>
<a class="close-reveal-modal">&#215;</a>
</div>
*/

View File

@@ -0,0 +1,64 @@
/* Arfully Masterminded by ZURB */
/* --------------------------------------------------
:: Typography
-------------------------------------------------- */
h1, h2, h3, h4, h5, h6 { color: #181818; font-weight: bold; line-height: 1.25 }
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { font-weight: inherit; }
h1 { font-size: 46px; font-size: 4.6rem; margin-bottom: 12px;}
h2 { font-size: 35px; font-size: 3.5rem; margin-bottom: 9px; }
h3 { font-size: 28px; font-size: 2.8rem; margin-bottom: 9px; }
h4 { font-size: 21px; font-size: 2.1rem; margin-bottom: 3px; }
h5 { font-size: 18px; font-size: 1.8rem; font-weight: normal; margin-bottom: 3px; }
h6 { font-size: 15px; font-size: 1.5rem; font-weight: normal; }
.subheader { color: #777; font-weight: 300; margin-bottom: 24px; }
p { line-height: 17px; margin: 0 0 18px; }
p img { margin: 0; }
p.lead { font-size: 18px; font-size: 1.8rem; line-height: 24px; }
/* Mobile */
@media handheld, only screen and (max-width: 767px) {
body, p { font-size: 15px; font-size: 1.5rem; line-height: 1.4; }
}
em { font-style: italic; line-height: inherit; }
strong { font-weight: bold; line-height: inherit; }
small { font-size: 60%; line-height: inherit; }
h1 small, h2 small, h3 small, h4 small, h5 small { color: #777; }
/* Blockquotes */
blockquote, blockquote p { line-height: 20px; color: #777; }
blockquote { margin: 0 0 18px; padding: 9px 20px 0 19px; border-left: 1px solid #ddd; }
blockquote cite { display: block; font-size: 12px; font-size: 1.2rem; color: #555; }
blockquote cite:before { content: "\2014 \0020"; }
blockquote cite a, blockquote cite a:visited { color: #555; }
hr { border: solid #ddd; border-width: 1px 0 0; clear: both; margin: 12px 0 18px; height: 0; }
abbr, acronym { text-transform: uppercase; font-size: 90%; color: #222; border-bottom: 1px solid #ddd; cursor: help; }
abbr { text-transform: none; }
/**
* Print styles.
*
* Inlined to avoid required HTTP connection: www.phpied.com/delay-loading-your-print-css/
* Credit to Paul Irish and HTML5 Boilerplate (html5boilerplate.com)
*/
@media print {
* { background: transparent !important; color: black !important; text-shadow: none !important; filter:none !important;
-ms-filter: none !important; } /* Black prints faster: sanbeiji.com/archives/953 */
p a, p a:visited { color: #444 !important; text-decoration: underline; }
p a[href]:after { content: " (" attr(href) ")"; }
abbr[title]:after { content: " (" attr(title) ")"; }
.ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { content: ""; } /* Don't show links for images, or javascript/internal links */
pre, blockquote { border: 1px solid #999; page-break-inside: avoid; }
thead { display: table-header-group; } /* css-discuss.incutio.com/wiki/Printing_Tables */
tr, img { page-break-inside: avoid; }
@page { margin: 0.5cm; }
p, h2, h3 { orphans: 3; widows: 3; }
h2, h3{ page-break-after: avoid; }
}

227
css/foundation/ui.css Normal file
View File

@@ -0,0 +1,227 @@
/* Artfully masterminded by ZURB */
/* --------------------------------------------------
Table of Contents
-----------------------------------------------------
:: Buttons
:: Alerts
:: Notices/Alerts
:: Tabs
:: Pagination
:: Lists
:: Panels
*/
/* --------------------------------------------------
Buttons
-------------------------------------------------- */
.button {
background: #00a6fc;
display: inline-block;
text-align: center;
padding: 9px 34px 11px;
color: #fff;
text-decoration: none;
font-weight: bold;
line-height: 1;
position: relative;
cursor: pointer;
}
.button.nice {
background: #00a6fc url(../images/misc/button-gloss.png) repeat-x 0 -34px;
-moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.5);
-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.5);
text-shadow: 0 -1px 1px rgba(0,0,0,0.28);
background: #00a6fc url(../images/misc/button-gloss.png) repeat-x 0 -34px, -moz-linear-gradient(top, rgba(255,255,255,.4) 0%, transparent 100%);
background: #00a6fc url(../images/misc/button-gloss.png) repeat-x 0 -34px, -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,.4)), color-stop(100%,transparent));
border: 1px solid #0593dc;
-webkit-transition: background-color .15s ease-in-out;
-moz-transition: background-color .15s ease-in-out;
-o-transition: background-color .15s ease-in-out;
}
.button.radius {
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
}
.button.round {
-moz-border-radius: 1000px;
-webkit-border-radius: 1000px;
border-radius: 1000px;
}
.button.full-width {
width: 100%;
padding-left: 0 !important;
padding-right: 0 !important;
text-align: center;
}
.button.left-align {
text-align: left;
text-indent: 12px;
}
.button:active {}
/* Sizes ---------- */
.small.button { font-size: 11px; padding: 8px 20px 10px; }
.medium.button { font-size: 13px; }
.large.button { font-size: 18px; padding: 11px 48px 13px; }
/* Nice Sizes ---------- */
.nice.small.button { background-position: 0 -36px; }
.nice.large.button { background-position: 0 -30px; }
/* Colors ---------- */
.blue.button { background-color: #00a6fc; }
.red.button { background-color: #e91c21; }
.white.button { background-color: #e9e9e9; color: #333; }
.charcoal.button { background-color: #141414; }
/* Nice Colors ---------- */
.nice.blue.button { border: 1px solid #0593dc; }
.nice.red.button { border: 1px solid #b90b0b; }
.nice.white.button { border: 1px solid #cacaca; text-shadow: none !important; }
.nice.charcoal.button { border: 1px solid #000; }
/* Hovers ---------- */
.button:hover { background-color: #0192dd; color: #fff; }
.blue.button:hover { background-color: #0192dd; }
.red.button:hover { background-color: #d01217; }
.white.button:hover { background-color: #dadada; color: #333; }
.charcoal.button:hover { background-color: #000; }
/* --------------------------------------------------
Alerts
-------------------------------------------------- */
div.alert-box { display: block; padding: 6px 7px; font-weight: bold; font-size: 13px; background: #eee; border: 1px solid rgba(0,0,0,0.1); margin-bottom: 12px; border-radius: 3px; -webkit-border-radius: 3px; -moz-border-radius: 3px; text-shadow: 0px 1px rgba(255,255,255,0.9); position: relative; }
.alert-box.success { background-color: #7fae00; color: #fff; text-shadow: 0px -1px rgba(0,0,0,0.3); }
.alert-box.warning { background-color: #c08c00; color: #fff; text-shadow: 0px -1px rgba(0,0,0,0.3); }
.alert-box.error { background-color: #c00000; color: #fff; text-shadow: 0px -1px rgba(0,0,0,0.3); }
.alert-box a.close { color: #000; position: absolute; right: 4px; top: 0px; font-size: 18px; opacity: 0.2; padding: 4px; }
.alert-box a.close:hover { opacity: 0.4; }
/* --------------------------------------------------
Tabs
-------------------------------------------------- */
dl.tabs { display: block; margin: 0 0 20px 0; padding: 0; height: 30px; border-bottom: solid 1px #ddd; }
dl.tabs dt { display: block; width: auto; height: 30px; padding: 0px 9px 0 20px; line-height: 30px; float: left; color: #999; font-size: 11px; text-transform: uppercase; cursor: default; }
dl.tabs dt:first-child { padding: 0 9px 0 0px; }
dl.tabs dd { display: block; width: auto; height: 30px; padding: 0; float: left; }
dl.tabs dd a { display: block; width: auto; height: 29px; padding: 0px 9px; line-height: 30px; border: solid 1px #ddd; margin: 0 -1px 0 0; color: #555; background: #eee; }
dl.tabs dd a.active { background: #fff; border-width: 1px 1px 0px 1px; height: 30px; }
.nice.tabs { border-bottom: solid 1px #eee; margin: 0 0 30px 0; height:43px; }
.nice.tabs dd a { padding: 7px 18px 9px; font-size: 15px; font-size: 1.5rem; color: #555555; background: none; border: none; }
.nice.tabs dd a.active { font-weight: bold; color: #333; background: #fff; border-left: 1px solid #eee; border-right: 1px solid #eee; border-top: 3px solid #00a6fc; margin: 0 10px; position: relative; top: -5px; }
.nice.tabs dd:first-child a.active { margin-left: 0; }
ul.tabs-content { margin: 0; display: block; }
ul.tabs-content > li { display:none; }
ul.tabs-content > li.active { display: block; }
dl.contained, dl.nice.contained { margin-bottom: 0px; }
dl.contained.tabs dd a { padding: 0px 14px; }
dl.nice.contained.tabs dd a { padding: 7px 18px 9px; }
ul.contained.tabs-content { padding: 0; }
ul.contained.tabs-content li { padding: 20px; border: solid 0px #ddd; border-width: 0px 1px 1px 1px; }
ul.nice.contained.tabs-content li { border-color: #eee; }
/* --------------------------------------------------
Pagination
-------------------------------------------------- */
ul.pagination { display: block; height: 24px; margin-left: -5px; }
ul.pagination li { float: left; display: block; height: 24px; color: #999; font-size: 15px; margin-left: 5px; }
ul.pagination li a { display: block; padding: 6px 7px 4px; color: #555; }
ul.pagination li.current a, ul.pagination li:hover a { border-bottom: solid 2px #00a6fc; color: #141414; }
ul.pagination li.unavailable a { cursor: default; color: #999; }
ul.pagination li.unavailable:hover a { border-bottom: none; }
/* --------------------------------------------------
Lists
-------------------------------------------------- */
ul.nice, ol.nice { list-style: none; margin: 0; }
ul.nice li, ol.nice li { padding-left: 13px; position: relative }
ul.nice li span.bullet, ol.nice li span.number { position: absolute; left: 0px; top: 0px; color: #ccc; }
/* --------------------------------------------------
Notices/Alerts
---------------------------------------------------*/
/* Alerts cannot be closed and notices can */
.notice, .alert {
position: relative;
background: #222 url(../images/misc/button-overlay.png) repeat-x bottom;
width: 100%;
margin: 10px 0;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
color: #fff;
text-shadow: 0 -1px 1px rgba(0,0,0,0.25);
font-weight: bold;
}
.notice>span, .alert>span {
display: block;
padding: 5px 10px 6px;
}
.notice a.close {
font-size: 20px;
line-height: .5;
color: #fff;
text-shadow: 0 -1px 1px rbga(0,0,0,.25);
font-weight: bold;
cursor: pointer;
position: absolute;
right: 10px;
top: 6px;
}
/* NOTES
Close button entity is &#215;
Sample Markup:
<div class="notice"><span>
This is awesome
<a class="close" href="#">&#215;</a>
</span></div>
*/
/* --------------------------------------------------
Panels
-------------------------------------------------- */
div.panel {
padding: 20px 20px 2px 20px;
background: #efefef;
background: -moz-linear-gradient(top, #FFFFFF 0%, #F4F4F4 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FFFFFF), color-stop(100%,#F4F4F4));
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FFFFFF', endColorstr='#F4F4F4',GradientType=0 );
box-shadow: 0px 2px 5px rgba(0,0,0,0.15);
-webkit-box-shadow: 0px 2px 5px rgba(0,0,0,0.15);
-moz-box-shadow: 0px 2px 5px rgba(0,0,0,0.25);
margin: 0 0 20px 0;
}

View File

@@ -4,6 +4,7 @@ add_action('roots_head', 'roots_google_analytics');
add_action('roots_head', 'roots_fout_b_gone');
add_action('roots_head', 'roots_1140_head');
add_action('roots_head', 'roots_adapt_head');
add_action('roots_head', 'roots_foundation_head');
add_action('roots_stylesheets', 'roots_get_stylesheets');
add_action('roots_header_before', 'roots_1140_header_before');
add_action('roots_header_after', 'roots_1140_header_after');
@@ -69,6 +70,26 @@ function roots_adapt_head() {
}
}
function roots_foundation_head() {
global $roots_options;
$roots_css_framework = $roots_options['css_framework'];
$template_uri = get_template_directory_uri();
if ($roots_css_framework === 'foundation') {
echo "\t<!-- Combine and Compress These Javascript Files -->\n";
echo "\t<script src=\"$template_uri/js/foundation/jquery.reveal.js\"></script>\n";
echo "\t<script src=\"$template_uri/js/foundation/jquery.orbit-1.3.0.js\"></script>\n";
echo "\t<script src=\"$template_uri/js/foundation/forms.jquery.js\"></script>\n";
echo "\t<script src=\"$template_uri/js/foundation/jquery.customforms.js\"></script>\n";
echo "\t<script src=\"$template_uri/js/foundation/jquery.placeholder.min.js\"></script>\n";
echo "\t<!-- End Combine and Compress Javascript Files -->\n";
echo "\t<script src=\"$template_uri/js/foundation/app.js\"></script>\n";
echo "\t<!-- IE Fix for HTML 5 Tags -->\n";
echo "\t<!--[if lt IE 9]>\n";
echo "\t\t<script src=\"http://html5shiv.googlecode.com/svn/trunk/html5.js\"></script>\n";
echo "\t<![endif]-->\n";
}
}
function roots_get_stylesheets() {
global $roots_options;
$roots_css_framework = $roots_options['css_framework'];
@@ -99,6 +120,17 @@ function roots_get_stylesheets() {
$styles .= stylesheet_link_tag('/adapt/mobile.css', 1);
$styles .= "\t</noscript>\n";
break;
case 'foundation' :
$styles .= stylesheet_link_tag('/foundation/globals.css');
$styles .= stylesheet_link_tag('/foundation/typography.css', 1);
$styles .= stylesheet_link_tag('/foundation/grid.css', 1);
$styles .= stylesheet_link_tag('/foundation/ui.css', 1);
$styles .= stylesheet_link_tag('/foundation/forms.css', 1);
$styles .= stylesheet_link_tag('/foundation/orbit.css', 1);
$styles .= stylesheet_link_tag('/foundation/reveal.css', 1);
$styles .= stylesheet_link_tag('/foundation/mobile.css', 1);
$styles .= stylesheet_link_tag('/foundation/app.css', 1);
break;
case 'less' :
$styles .= stylesheet_link_tag('/less/less.css');
break;
@@ -122,6 +154,9 @@ function roots_get_stylesheets() {
case '1140' :
$styles .= "\t<!--[if lt IE 8]>" . stylesheet_link_tag('/1140/ie.css', 0, false) . "<![endif]-->\n";
break;
case 'foundation' :
$styles .= "\t<!--[if lt IE 9]>" . stylesheet_link_tag('/foundation/ie.css', 0, false) . "<![endif]-->\n";
break;
}
echo $styles;

View File

@@ -117,6 +117,15 @@ $roots_css_frameworks = array(
'sidebar' => ''
)
),
'foundation' => array(
'name' => 'foundation',
'label' => __('Foundation', 'roots'),
'classes' => array(
'container' => 'row',
'main' => 'eight columns',
'sidebar' => 'four columns'
)
),
'none' => array(
'name' => 'none',
'label' => __('None', 'roots'),

43
js/foundation/app.js Normal file
View File

@@ -0,0 +1,43 @@
$(document).ready(function() {
/* Use this js doc for all application specific JS */
/* TABS --------------------------------- */
/* Remove if you don't need :) */
var tabs = $('dl.tabs');
tabsContent = $('ul.tabs-content')
tabs.each(function(i) {
//Get all tabs
var tab = $(this).children('dd').children('a');
tab.click(function(e) {
//Get Location of tab's content
var contentLocation = $(this).attr("href")
contentLocation = contentLocation + "Tab";
//Let go if not a hashed one
if(contentLocation.charAt(0)=="#") {
e.preventDefault();
//Make Tab Active
tab.removeClass('active');
$(this).addClass('active');
//Show Tab Content
$(contentLocation).parent('.tabs-content').children('li').css({"display":"none"});
$(contentLocation).css({"display":"block"});
}
});
});
/* PLACEHOLDER FOR FORMS ------------- */
/* Remove this and jquery.placeholder.min.js if you don't need :) */
$('input, textarea').placeholder();
});

View File

@@ -0,0 +1,58 @@
/**
* jQuery.placeholder - Placeholder plugin for input fields
* Written by Blair Mitchelmore (blair DOT mitchelmore AT gmail DOT com)
* Licensed under the WTFPL (http://sam.zoy.org/wtfpl/).
* Date: 2008/10/14
*
* @author Blair Mitchelmore
* @version 1.0.1
*
**/
new function($) {
$.fn.placeholder = function(settings) {
settings = settings || {};
var key = settings.dataKey || "placeholderValue";
var attr = settings.attr || "placeholder";
var className = settings.className || "placeholder";
var values = settings.values || [];
var block = settings.blockSubmit || false;
var blank = settings.blankSubmit || false;
var submit = settings.onSubmit || false;
var value = settings.value || "";
var position = settings.cursor_position || 0;
return this.filter(":input").each(function(index) {
$.data(this, key, values[index] || $(this).attr(attr));
}).each(function() {
if ($.trim($(this).val()) === "")
$(this).addClass(className).val($.data(this, key));
}).focus(function() {
if ($.trim($(this).val()) === $.data(this, key))
$(this).removeClass(className).val(value)
if ($.fn.setCursorPosition) {
$(this).setCursorPosition(position);
}
}).blur(function() {
if ($.trim($(this).val()) === value)
$(this).addClass(className).val($.data(this, key));
}).each(function(index, elem) {
if (block)
new function(e) {
$(e.form).submit(function() {
return $.trim($(e).val()) != $.data(e, key)
});
}(elem);
else if (blank)
new function(e) {
$(e.form).submit(function() {
if ($.trim($(e).val()) == $.data(e, key))
$(e).removeClass(className).val("");
return true;
});
}(elem);
else if (submit)
new function(e) { $(e.form).submit(submit); }(elem);
});
};
}(jQuery);

View File

@@ -0,0 +1,162 @@
/*
* jQuery Custom Forms Plugin 1.0
* www.ZURB.com
* Copyright 2010, ZURB
* Free to use under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
jQuery(document).ready(function ($) {
function appendCustomMarkup(type) {
$('form.custom input:' + type).each(function () {
var $span = $('<span class="custom ' + type + '"></span>');
if ($(this).next('span.custom.' + type).length === 0) {
if (this.checked) {
$span.addClass('checked');
}
$(this)
.hide()
.after($span);
}
});
}
appendCustomMarkup('checkbox');
appendCustomMarkup('radio');
$('form.custom select').each(function () {
var $this = $(this),
$customSelect = $this.next('div.custom.dropdown'),
$options = $this.find('option'),
maxWidth = 0,
$li;
if ($customSelect.length === 0) {
$customSelect = $('<div class="custom dropdown"><a href="#" class="selector"></a><ul></ul></div>"');
$options.each(function () {
$li = $('<li>' + $(this).html() + '</li>');
$customSelect.find('ul').append($li);
});
$customSelect.prepend('<a href="#" class="current">' + $options.first().html() + '</a>');
$this.after($customSelect);
$this.hide();
}
$options.each(function (index) {
if (this.selected) {
$customSelect.find('li').eq(index).addClass('selected');
$customSelect.find('.current').html($(this).html());
}
});
$customSelect.find('li').each(function () {
$customSelect.addClass('open');
if ($(this).outerWidth() > maxWidth) {
maxWidth = $(this).outerWidth();
}
$customSelect.removeClass('open');
});
$customSelect.css('width', maxWidth + 18 + 'px');
$customSelect.find('ul').css('width', maxWidth + 16 + 'px');
});
});
(function ($) {
function toggleCheckbox($element) {
var $input = $element.prev(),
input = $input[0];
input.checked = ((input.checked) ? false : true);
$element.toggleClass('checked');
}
function toggleRadio($element) {
var $input = $element.prev(),
input = $input[0];
$('input:radio[name=' + $input.attr('name') + ']').each(function () {
$(this).next().removeClass('checked');
});
input.checked = ((input.checked) ? false : true);
$element.toggleClass('checked');
}
$('form.custom span.custom.checkbox').live('click', function (event) {
event.preventDefault();
event.stopPropagation();
toggleCheckbox($(this));
});
$('form.custom span.custom.radio').live('click', function (event) {
event.preventDefault();
event.stopPropagation();
toggleRadio($(this));
});
$('form.custom label').live('click', function (event) {
var $associatedElement = $('#' + $(this).attr('for')),
$customCheckbox,
$customRadio;
if ($associatedElement.length !== 0) {
if ($associatedElement.attr('type') === 'checkbox') {
event.preventDefault();
$customCheckbox = $(this).find('span.custom.checkbox');
toggleCheckbox($customCheckbox);
} else if ($associatedElement.attr('type') === 'radio') {
event.preventDefault();
$customRadio = $(this).find('span.custom.radio');
toggleRadio($customRadio);
}
}
});
$('form.custom div.custom.dropdown a.current, form.custom div.custom.dropdown a.selector').live('click', function (event) {
var $this = $(this),
$dropdown = $this.closest('div.custom.dropdown');
event.preventDefault();
$dropdown.toggleClass('open');
if ($dropdown.hasClass('open')) {
$(document).bind('click.customdropdown', function (event) {
$dropdown.removeClass('open');
$(document).unbind('.customdropdown');
});
} else {
$(document).unbind('.customdropdown');
}
});
$('form.custom div.custom.dropdown li').live('click', function (event) {
var $this = $(this),
$customDropdown = $this.closest('div.custom.dropdown'),
$select = $customDropdown.prev(),
selectedIndex = 0;
event.preventDefault();
event.stopPropagation();
$this
.closest('ul')
.find('li')
.removeClass('selected');
$this.addClass('selected');
$customDropdown
.removeClass('open')
.find('a.current')
.html($this.html());
$this.closest('ul').find('li').each(function (index) {
if ($this[0] == this) {
selectedIndex = index;
}
});
$select[0].selectedIndex = selectedIndex;
});
})(jQuery);

View File

@@ -0,0 +1,596 @@
/*
* jQuery Orbit Plugin 1.3.0
* www.ZURB.com/playground
* Copyright 2010, ZURB
* Free to use under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function($) {
var ORBIT = {
defaults: {
animation: 'horizontal-push', // fade, horizontal-slide, vertical-slide, horizontal-push, vertical-push
animationSpeed: 600, // how fast animtions are
timer: true, // true or false to have the timer
advanceSpeed: 4000, // if timer is enabled, time between transitions
pauseOnHover: false, // if you hover pauses the slider
startClockOnMouseOut: false, // if clock should start on MouseOut
startClockOnMouseOutAfter: 1000, // how long after MouseOut should the timer start again
directionalNav: true, // manual advancing directional navs
captions: true, // do you want captions?
captionAnimation: 'fade', // fade, slideOpen, none
captionAnimationSpeed: 600, // if so how quickly should they animate in
bullets: false, // true or false to activate the bullet navigation
bulletThumbs: false, // thumbnails for the bullets
bulletThumbLocation: '', // location from this file where thumbs will be
afterSlideChange: $.noop, // empty function
fluid: true,
centerBullets: true // center bullet nav with js, turn this off if you want to position the bullet nav manually
},
activeSlide: 0,
numberSlides: 0,
orbitWidth: null,
orbitHeight: null,
locked: null,
timerRunning: null,
degrees: 0,
wrapperHTML: '<div class="orbit-wrapper" />',
timerHTML: '<div class="timer"><span class="mask"><span class="rotator"></span></span><span class="pause"></span></div>',
captionHTML: '<div class="orbit-caption"></div>',
directionalNavHTML: '<div class="slider-nav"><span class="right">Right</span><span class="left">Left</span></div>',
bulletHTML: '<ul class="orbit-bullets"></ul>',
init: function (element, options) {
var $imageSlides,
imagesLoadedCount = 0,
self = this;
// Bind functions to correct context
this.clickTimer = $.proxy(this.clickTimer, this);
this.addBullet = $.proxy(this.addBullet, this);
this.resetAndUnlock = $.proxy(this.resetAndUnlock, this);
this.stopClock = $.proxy(this.stopClock, this);
this.startTimerAfterMouseLeave = $.proxy(this.startTimerAfterMouseLeave, this);
this.clearClockMouseLeaveTimer = $.proxy(this.clearClockMouseLeaveTimer, this);
this.rotateTimer = $.proxy(this.rotateTimer, this);
this.options = $.extend({}, this.defaults, options);
if (this.options.timer === 'false') this.options.timer = false;
if (this.options.captions === 'false') this.options.captions = false;
if (this.options.directionalNav === 'false') this.options.directionalNav = false;
this.$element = $(element);
this.$wrapper = this.$element.wrap(this.wrapperHTML).parent();
this.$slides = this.$element.children('img, a, div');
this.$element.bind('orbit.next', function () {
self.shift('next');
});
this.$element.bind('orbit.prev', function () {
self.shift('prev');
});
this.$element.bind('orbit.goto', function (event, index) {
self.shift(index);
});
this.$element.bind('orbit.start', function (event, index) {
self.startClock();
});
this.$element.bind('orbit.stop', function (event, index) {
self.stopClock();
});
$imageSlides = this.$slides.filter('img');
if ($imageSlides.length === 0) {
this.loaded();
} else {
$imageSlides.bind('imageready', function () {
imagesLoadedCount += 1;
if (imagesLoadedCount === $imageSlides.length) {
self.loaded();
}
});
}
},
loaded: function () {
this.$element
.addClass('orbit')
.css({width: '1px', height: '1px'});
this.setDimentionsFromLargestSlide();
this.updateOptionsIfOnlyOneSlide();
this.setupFirstSlide();
if (this.options.timer) {
this.setupTimer();
this.startClock();
}
if (this.options.captions) {
this.setupCaptions();
}
if (this.options.directionalNav) {
this.setupDirectionalNav();
}
if (this.options.bullets) {
this.setupBulletNav();
this.setActiveBullet();
}
},
currentSlide: function () {
return this.$slides.eq(this.activeSlide);
},
setDimentionsFromLargestSlide: function () {
//Collect all slides and set slider size of largest image
var self = this,
$fluidPlaceholder;
self.$element.add(self.$wrapper).width(this.$slides.first().width());
self.$element.add(self.$wrapper).height(this.$slides.first().height());
self.orbitWidth = this.$slides.first().width();
self.orbitHeight = this.$slides.first().height();
$fluidPlaceholder = this.$slides.first().clone();
this.$slides.each(function () {
var slide = $(this),
slideWidth = slide.width(),
slideHeight = slide.height();
if (slideWidth > self.$element.width()) {
self.$element.add(self.$wrapper).width(slideWidth);
self.orbitWidth = self.$element.width();
}
if (slideHeight > self.$element.height()) {
self.$element.add(self.$wrapper).height(slideHeight);
self.orbitHeight = self.$element.height();
$fluidPlaceholder = $(this).clone();
}
self.numberSlides += 1;
});
if (this.options.fluid) {
if (typeof this.options.fluid === "string") {
$fluidPlaceholder = $('<img src="http://placehold.it/' + this.options.fluid + '" />')
}
self.$element.prepend($fluidPlaceholder);
$fluidPlaceholder.addClass('fluid-placeholder');
self.$element.add(self.$wrapper).css({width: 'inherit'});
self.$element.add(self.$wrapper).css({height: 'inherit'});
$(window).bind('resize', function () {
self.orbitWidth = self.$element.width();
self.orbitHeight = self.$element.height();
});
}
},
//Animation locking functions
lock: function () {
this.locked = true;
},
unlock: function () {
this.locked = false;
},
updateOptionsIfOnlyOneSlide: function () {
if(this.$slides.length === 1) {
this.options.directionalNav = false;
this.options.timer = false;
this.options.bullets = false;
}
},
setupFirstSlide: function () {
//Set initial front photo z-index and fades it in
var self = this;
this.$slides.first()
.css({"z-index" : 3})
.fadeIn(function() {
//brings in all other slides IF css declares a display: none
self.$slides.css({"display":"block"})
});
},
startClock: function () {
var self = this;
if(!this.options.timer) {
return false;
}
if (this.$timer.is(':hidden')) {
this.clock = setInterval(function () {
this.$element.trigger('orbit.next');
}, this.options.advanceSpeed);
} else {
this.timerRunning = true;
this.$pause.removeClass('active')
this.clock = setInterval(this.rotateTimer, this.options.advanceSpeed / 180);
}
},
rotateTimer: function () {
var degreeCSS = "rotate(" + this.degrees + "deg)"
this.degrees += 2;
this.$rotator.css({
"-webkit-transform": degreeCSS,
"-moz-transform": degreeCSS,
"-o-transform": degreeCSS
});
if(this.degrees > 180) {
this.$rotator.addClass('move');
this.$mask.addClass('move');
}
if(this.degrees > 360) {
this.$rotator.removeClass('move');
this.$mask.removeClass('move');
this.degrees = 0;
this.$element.trigger('orbit.next');
}
},
stopClock: function () {
if (!this.options.timer) {
return false;
} else {
this.timerRunning = false;
clearInterval(this.clock);
this.$pause.addClass('active');
}
},
setupTimer: function () {
this.$timer = $(this.timerHTML);
this.$wrapper.append(this.$timer);
this.$rotator = this.$timer.find('.rotator');
this.$mask = this.$timer.find('.mask');
this.$pause = this.$timer.find('.pause');
this.$timer.click(this.clickTimer);
if (this.options.startClockOnMouseOut) {
this.$wrapper.mouseleave(this.startTimerAfterMouseLeave);
this.$wrapper.mouseenter(this.clearClockMouseLeaveTimer);
}
if (this.options.pauseOnHover) {
this.$wrapper.mouseenter(this.stopClock);
}
},
startTimerAfterMouseLeave: function () {
var self = this;
this.outTimer = setTimeout(function() {
if(!self.timerRunning){
self.startClock();
}
}, this.options.startClockOnMouseOutAfter)
},
clearClockMouseLeaveTimer: function () {
clearTimeout(this.outTimer);
},
clickTimer: function () {
if(!this.timerRunning) {
this.startClock();
} else {
this.stopClock();
}
},
setupCaptions: function () {
this.$caption = $(this.captionHTML);
this.$wrapper.append(this.$caption);
this.setCaption();
},
setCaption: function () {
var captionLocation = this.currentSlide().attr('data-caption'),
captionHTML;
if (!this.options.captions) {
return false;
}
//Set HTML for the caption if it exists
if (captionLocation) {
captionHTML = $(captionLocation).html(); //get HTML from the matching HTML entity
this.$caption
.attr('id', captionLocation) // Add ID caption TODO why is the id being set?
.html(captionHTML); // Change HTML in Caption
//Animations for Caption entrances
switch (this.options.captionAnimation) {
case 'none':
this.$caption.show();
break;
case 'fade':
this.$caption.fadeIn(this.options.captionAnimationSpeed);
break;
case 'slideOpen':
this.$caption.slideDown(this.options.captionAnimationSpeed);
break;
}
} else {
//Animations for Caption exits
switch (this.options.captionAnimation) {
case 'none':
this.$caption.hide();
break;
case 'fade':
this.$caption.fadeOut(this.options.captionAnimationSpeed);
break;
case 'slideOpen':
this.$caption.slideUp(this.options.captionAnimationSpeed);
break;
}
}
},
setupDirectionalNav: function () {
var self = this;
this.$wrapper.append(this.directionalNavHTML);
this.$wrapper.find('.left').click(function () {
self.stopClock();
self.$element.trigger('orbit.prev');
});
this.$wrapper.find('.right').click(function () {
self.stopClock();
self.$element.trigger('orbit.next');
});
},
setupBulletNav: function () {
this.$bullets = $(this.bulletHTML);
this.$wrapper.append(this.$bullets);
this.$slides.each(this.addBullet);
if (this.options.centerBullets) this.$bullets.css('margin-left', -this.$bullets.width() / 2);
},
addBullet: function (index, slide) {
var position = index + 1,
$li = $('<li>' + (position) + '</li>'),
thumbName,
self = this;
if (this.options.bulletThumbs) {
thumbName = $(slide).attr('data-thumb');
if (thumbName) {
$li
.addClass('has-thumb')
.css({background: "url(" + this.options.bulletThumbLocation + thumbName + ") no-repeat"});;
}
}
this.$bullets.append($li);
$li.data('index', index);
$li.click(function () {
self.stopClock();
self.$element.trigger('orbit.goto', [$li.data('index')])
});
},
setActiveBullet: function () {
if(!this.options.bullets) { return false; } else {
this.$bullets.find('li')
.removeClass('active')
.eq(this.activeSlide)
.addClass('active');
}
},
resetAndUnlock: function () {
this.$slides
.eq(this.prevActiveSlide)
.css({"z-index" : 1});
this.unlock();
this.options.afterSlideChange.call(this, this.$slides.eq(this.prevActiveSlide), this.$slides.eq(this.activeSlide));
},
shift: function (direction) {
var slideDirection = direction;
//remember previous activeSlide
this.prevActiveSlide = this.activeSlide;
//exit function if bullet clicked is same as the current image
if (this.prevActiveSlide == slideDirection) { return false; }
if (this.$slides.length == "1") { return false; }
if (!this.locked) {
this.lock();
//deduce the proper activeImage
if (direction == "next") {
this.activeSlide++;
if (this.activeSlide == this.numberSlides) {
this.activeSlide = 0;
}
} else if (direction == "prev") {
this.activeSlide--
if (this.activeSlide < 0) {
this.activeSlide = this.numberSlides - 1;
}
} else {
this.activeSlide = direction;
if (this.prevActiveSlide < this.activeSlide) {
slideDirection = "next";
} else if (this.prevActiveSlide > this.activeSlide) {
slideDirection = "prev"
}
}
//set to correct bullet
this.setActiveBullet();
//set previous slide z-index to one below what new activeSlide will be
this.$slides
.eq(this.prevActiveSlide)
.css({"z-index" : 2});
//fade
if (this.options.animation == "fade") {
this.$slides
.eq(this.activeSlide)
.css({"opacity" : 0, "z-index" : 3})
.animate({"opacity" : 1}, this.options.animationSpeed, this.resetAndUnlock);
}
//horizontal-slide
if (this.options.animation == "horizontal-slide") {
if (slideDirection == "next") {
this.$slides
.eq(this.activeSlide)
.css({"left": this.orbitWidth, "z-index" : 3})
.animate({"left" : 0}, this.options.animationSpeed, this.resetAndUnlock);
}
if (slideDirection == "prev") {
this.$slides
.eq(this.activeSlide)
.css({"left": -this.orbitWidth, "z-index" : 3})
.animate({"left" : 0}, this.options.animationSpeed, this.resetAndUnlock);
}
}
//vertical-slide
if (this.options.animation == "vertical-slide") {
if (slideDirection == "prev") {
this.$slides
.eq(this.activeSlide)
.css({"top": this.orbitHeight, "z-index" : 3})
.animate({"top" : 0}, this.options.animationSpeed, this.resetAndUnlock);
}
if (slideDirection == "next") {
this.$slides
.eq(this.activeSlide)
.css({"top": -this.orbitHeight, "z-index" : 3})
.animate({"top" : 0}, this.options.animationSpeed, this.resetAndUnlock);
}
}
//horizontal-push
if (this.options.animation == "horizontal-push") {
if (slideDirection == "next") {
this.$slides
.eq(this.activeSlide)
.css({"left": this.orbitWidth, "z-index" : 3})
.animate({"left" : 0}, this.options.animationSpeed, this.resetAndUnlock);
this.$slides
.eq(this.prevActiveSlide)
.animate({"left" : -this.orbitWidth}, this.options.animationSpeed);
}
if (slideDirection == "prev") {
this.$slides
.eq(this.activeSlide)
.css({"left": -this.orbitWidth, "z-index" : 3})
.animate({"left" : 0}, this.options.animationSpeed, this.resetAndUnlock);
this.$slides
.eq(this.prevActiveSlide)
.animate({"left" : this.orbitWidth}, this.options.animationSpeed);
}
}
//vertical-push
if (this.options.animation == "vertical-push") {
if (slideDirection == "next") {
this.$slides
.eq(this.activeSlide)
.css({top: -this.orbitHeight, "z-index" : 3})
.animate({top : 0}, this.options.animationSpeed, this.resetAndUnlock);
this.$slides
.eq(this.prevActiveSlide)
.animate({top : this.orbitHeight}, this.options.animationSpeed);
}
if (slideDirection == "prev") {
this.$slides
.eq(this.activeSlide)
.css({top: this.orbitHeight, "z-index" : 3})
.animate({top : 0}, this.options.animationSpeed, this.resetAndUnlock);
this.$slides
.eq(this.prevActiveSlide)
.animate({top : -this.orbitHeight}, this.options.animationSpeed);
}
}
this.setCaption();
}
}
};
$.fn.orbit = function (options) {
return this.each(function () {
var orbit = $.extend({}, ORBIT);
orbit.init(this, options);
});
};
})(jQuery);
/*!
* jQuery imageready Plugin
* http://www.zurb.com/playground/
*
* Copyright 2011, ZURB
* Released under the MIT License
*/
(function ($) {
var options = {};
$.event.special.imageready = {
setup: function (data, namespaces, eventHandle) {
options = data || options;
},
add: function (handleObj) {
var $this = $(this),
src;
if ( this.nodeType === 1 && this.tagName.toLowerCase() === 'img' && this.src !== '' ) {
if (options.forceLoad) {
src = $this.attr('src');
$this.attr('src', '');
bindToLoad(this, handleObj.handler);
$this.attr('src', src);
} else if ( this.complete || this.readyState === 4 ) {
handleObj.handler.apply(this, arguments);
} else {
bindToLoad(this, handleObj.handler);
}
}
},
teardown: function (namespaces) {
$(this).unbind('.imageready');
}
};
function bindToLoad(element, callback) {
var $this = $(element);
$this.bind('load.imageready', function () {
callback.apply(element, arguments);
$this.unbind('load.imageready');
});
}
}(jQuery));

View File

@@ -0,0 +1,2 @@
/*! http://mths.be/placeholder v1.8.5 by @mathias */
(function(g,a,$){var f='placeholder' in a.createElement('input'),b='placeholder' in a.createElement('textarea');if(f&&b){$.fn.placeholder=function(){return this};$.fn.placeholder.input=$.fn.placeholder.textarea=true}else{$.fn.placeholder=function(){return this.filter((f?'textarea':':input')+'[placeholder]').bind('focus.placeholder',c).bind('blur.placeholder',e).trigger('blur.placeholder').end()};$.fn.placeholder.input=f;$.fn.placeholder.textarea=b;$(function(){$('form').bind('submit.placeholder',function(){var h=$('.placeholder',this).each(c);setTimeout(function(){h.each(e)},10)})});$(g).bind('unload.placeholder',function(){$('.placeholder').val('')})}function d(i){var h={},j=/^jQuery\d+$/;$.each(i.attributes,function(l,k){if(k.specified&&!j.test(k.name)){h[k.name]=k.value}});return h}function c(){var h=$(this);if(h.val()===h.attr('placeholder')&&h.hasClass('placeholder')){if(h.data('placeholder-password')){h.hide().next().show().focus().attr('id',h.removeAttr('id').data('placeholder-id'))}else{h.val('').removeClass('placeholder')}}}function e(){var l,k=$(this),h=k,j=this.id;if(k.val()===''){if(k.is(':password')){if(!k.data('placeholder-textinput')){try{l=k.clone().attr({type:'text'})}catch(i){l=$('<input>').attr($.extend(d(this),{type:'text'}))}l.removeAttr('name').data('placeholder-password',true).data('placeholder-id',j).bind('focus.placeholder',c);k.data('placeholder-textinput',l).data('placeholder-id',j).before(l)}k=k.removeAttr('id').hide().prev().attr('id',j).show()}k.addClass('placeholder').val(k.attr('placeholder'))}else{k.removeClass('placeholder')}}}(this,document,jQuery));

View File

@@ -0,0 +1,150 @@
/*
* jQuery Reveal Plugin 1.0
* www.ZURB.com
* Copyright 2010, ZURB
* Free to use under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*/
(function($) {
/*---------------------------
Defaults for Reveal
----------------------------*/
/*---------------------------
Listener for data-reveal-id attributes
----------------------------*/
$('a[data-reveal-id]').live('click', function(e) {
e.preventDefault();
var modalLocation = $(this).attr('data-reveal-id');
$('#'+modalLocation).reveal($(this).data());
});
/*---------------------------
Extend and Execute
----------------------------*/
$.fn.reveal = function(options) {
var defaults = {
animation: 'fadeAndPop', //fade, fadeAndPop, none
animationspeed: 300, //how fast animtions are
closeonbackgroundclick: true, //if you click background will modal close?
dismissmodalclass: 'close-reveal-modal' //the class of a button or element that will close an open modal
};
//Extend dem' options
var options = $.extend({}, defaults, options);
return this.each(function() {
/*---------------------------
Global Variables
----------------------------*/
var modal = $(this),
topMeasure = parseInt(modal.css('top')),
topOffset = modal.height() + topMeasure,
locked = false,
modalBG = $('.reveal-modal-bg');
/*---------------------------
Create Modal BG
----------------------------*/
if(modalBG.length == 0) {
modalBG = $('<div class="reveal-modal-bg" />').insertAfter(modal);
}
/*---------------------------
Open and add Closing Listeners
----------------------------*/
//Open Modal Immediately
openModal();
//Close Modal Listeners
var closeButton = $('.' + options.dismissmodalclass).bind('click.modalEvent',closeModal)
if(options.closeonbackgroundclick) {
modalBG.css({"cursor":"pointer"})
modalBG.bind('click.modalEvent',closeModal)
}
/*---------------------------
Open & Close Animations
----------------------------*/
//Entrance Animations
function openModal() {
modalBG.unbind('click.modalEvent');
$('.' + options.dismissmodalclass).unbind('click.modalEvent');
if(!locked) {
lockModal();
if(options.animation == "fadeAndPop") {
modal.css({'top': $(document).scrollTop()-topOffset, 'opacity' : 0, 'visibility' : 'visible'});
modalBG.fadeIn(options.animationspeed/2);
modal.delay(options.animationspeed/2).animate({
"top": $(document).scrollTop()+topMeasure,
"opacity" : 1
}, options.animationspeed,unlockModal());
}
if(options.animation == "fade") {
modal.css({'opacity' : 0, 'visibility' : 'visible', 'top': $(document).scrollTop()+topMeasure});
modalBG.fadeIn(options.animationspeed/2);
modal.delay(options.animationspeed/2).animate({
"opacity" : 1
}, options.animationspeed,unlockModal());
}
if(options.animation == "none") {
modal.css({'visibility' : 'visible', 'top':$(document).scrollTop()+topMeasure});
modalBG.css({"display":"block"});
unlockModal()
}
}
}
//Closing Animation
function closeModal() {
if(!locked) {
lockModal();
if(options.animation == "fadeAndPop") {
modalBG.delay(options.animationspeed).fadeOut(options.animationspeed);
modal.animate({
"top": $(document).scrollTop()-topOffset,
"opacity" : 0
}, options.animationspeed/2, function() {
modal.css({'top':topMeasure, 'opacity' : 1, 'visibility' : 'hidden'});
unlockModal();
});
}
if(options.animation == "fade") {
modalBG.delay(options.animationspeed).fadeOut(options.animationspeed);
modal.animate({
"opacity" : 0
}, options.animationspeed, function() {
modal.css({'opacity' : 1, 'visibility' : 'hidden', 'top' : topMeasure});
unlockModal();
});
}
if(options.animation == "none") {
modal.css({'visibility' : 'hidden', 'top' : topMeasure});
modalBG.css({'display' : 'none'});
}
}
}
/*---------------------------
Animations Locks
----------------------------*/
function unlockModal() {
locked = false;
}
function lockModal() {
locked = true;
}
});//each call
}//orbit plugin call
})(jQuery);