big code cleanup

rename lib to vendor, remove deprecated LESS version, revise
package.json, load jQuery easing through npm, restructure SCSS
directory into modules, expanded code commenting and documentation
theme-wide
This commit is contained in:
David Miller 2017-03-31 17:05:07 -04:00
parent bf91fc05cd
commit 7db1bc641a
77 changed files with 1448 additions and 9353 deletions

View File

@ -1,7 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) 2013-2017 Blackrock Digital LLC. Copyright (c) 2013-2017 Blackrock Digital LLC
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -1,15 +1,12 @@
/*! /*!
* Start Bootstrap - Agency v4.0.0-alpha (http://startbootstrap.com/template-overviews/agency) * Start Bootstrap - Agency v4.0.0-alpha (http://startbootstrap.com/template-overviews/agency)
* Copyright 2013-2017 Start Bootstrap * Copyright 2013-2017 Start Bootstrap
* Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE) * Licensed under ()
*/ */
body { body {
overflow-x: hidden; overflow-x: hidden;
font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Arial, sans-serif; } font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Arial, sans-serif; }
.text-primary {
color: #fed136 !important; }
p { p {
line-height: 1.75; } line-height: 1.75; }
@ -18,93 +15,50 @@ a {
a:hover, a:focus, a:active, a.active { a:hover, a:focus, a:active, a.active {
color: #fec503; } color: #fec503; }
h1, h2, h3, h4, h5, h6 { h1,
h2,
h3,
h4,
h5,
h6 {
font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
text-transform: uppercase; text-transform: uppercase;
font-weight: 700; } font-weight: 700; }
.btn-primary { section {
color: white; padding: 100px 0; }
background-color: #fed136; section h2.section-heading {
border-color: #fed136; font-size: 40px;
font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif; margin-top: 0;
text-transform: uppercase; margin-bottom: 15px; }
font-weight: 700; } section h3.section-subheading {
.btn-primary:focus, .btn-primary.focus { font-size: 16px;
color: white; font-family: "Droid Serif", "Helvetica Neue", Helvetica, Arial, sans-serif;
background-color: #fec503; text-transform: none;
border-color: #b48b01; } font-style: italic;
.btn-primary:hover { font-weight: 400;
color: white; margin-bottom: 75px; }
background-color: #fec503;
border-color: #f6bf01; }
.btn-primary:active, .btn-primary.active,
.open > .btn-primary.dropdown-toggle {
color: white;
background-color: #fec503;
border-color: #f6bf01; }
.btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus,
.open > .btn-primary.dropdown-toggle:hover,
.open > .btn-primary.dropdown-toggle:focus,
.open > .btn-primary.dropdown-toggle.focus {
color: white;
background-color: #dcab01;
border-color: #b48b01; }
.btn-primary:active, .btn-primary.active,
.open > .btn-primary.dropdown-toggle {
background-image: none; }
.btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus,
fieldset[disabled] .btn-primary:hover,
fieldset[disabled] .btn-primary:focus,
fieldset[disabled] .btn-primary.focus {
background-color: #fed136;
border-color: #fed136; }
.btn-primary .badge {
color: #fed136;
background-color: white; }
.btn-xl { @media (min-width: 768px) {
color: white; section {
background-color: #fed136; padding: 150px 0; } }
border-color: #fed136;
font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif; ::-moz-selection {
text-transform: uppercase; text-shadow: none;
font-weight: 700; background: #fed136; }
border-radius: 3px;
font-size: 18px; ::selection {
padding: 20px 40px; } text-shadow: none;
.btn-xl:focus, .btn-xl.focus { background: #fed136; }
color: white;
background-color: #fec503; img::selection {
border-color: #b48b01; } background: transparent; }
.btn-xl:hover {
color: white; img::-moz-selection {
background-color: #fec503; background: transparent; }
border-color: #f6bf01; }
.btn-xl:active, .btn-xl.active, body {
.open > .btn-xl.dropdown-toggle { -webkit-tap-highlight-color: #fed136; }
color: white;
background-color: #fec503;
border-color: #f6bf01; }
.btn-xl:active:hover, .btn-xl:active:focus, .btn-xl:active.focus, .btn-xl.active:hover, .btn-xl.active:focus, .btn-xl.active.focus,
.open > .btn-xl.dropdown-toggle:hover,
.open > .btn-xl.dropdown-toggle:focus,
.open > .btn-xl.dropdown-toggle.focus {
color: white;
background-color: #dcab01;
border-color: #b48b01; }
.btn-xl:active, .btn-xl.active,
.open > .btn-xl.dropdown-toggle {
background-image: none; }
.btn-xl.disabled:hover, .btn-xl.disabled:focus, .btn-xl.disabled.focus, .btn-xl[disabled]:hover, .btn-xl[disabled]:focus, .btn-xl[disabled].focus,
fieldset[disabled] .btn-xl:hover,
fieldset[disabled] .btn-xl:focus,
fieldset[disabled] .btn-xl.focus {
background-color: #fed136;
border-color: #fed136; }
.btn-xl .badge {
color: #fed136;
background-color: white; }
#mainNav { #mainNav {
background-color: #222222; } background-color: #222222; }
@ -158,7 +112,7 @@ h1, h2, h3, h4, h5, h6 {
padding: 12px 0; padding: 12px 0;
font-size: 1.25em; } } font-size: 1.25em; } }
header { header.masthead {
background-image: url("../img/header-bg.jpg"); background-image: url("../img/header-bg.jpg");
background-repeat: no-repeat; background-repeat: no-repeat;
background-attachment: scroll; background-attachment: scroll;
@ -169,16 +123,16 @@ header {
-o-background-size: cover; -o-background-size: cover;
text-align: center; text-align: center;
color: white; } color: white; }
header .intro-text { header.masthead .intro-text {
padding-top: 100px; padding-top: 100px;
padding-bottom: 50px; } padding-bottom: 50px; }
header .intro-text .intro-lead-in { header.masthead .intro-text .intro-lead-in {
font-family: "Droid Serif", "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "Droid Serif", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: italic; font-style: italic;
font-size: 22px; font-size: 22px;
line-height: 22px; line-height: 22px;
margin-bottom: 25px; } margin-bottom: 25px; }
header .intro-text .intro-heading { header.masthead .intro-text .intro-heading {
font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
text-transform: uppercase; text-transform: uppercase;
font-weight: 700; font-weight: 700;
@ -187,16 +141,16 @@ header {
margin-bottom: 25px; } margin-bottom: 25px; }
@media (min-width: 768px) { @media (min-width: 768px) {
header .intro-text { header.masthead .intro-text {
padding-top: 300px; padding-top: 300px;
padding-bottom: 200px; } padding-bottom: 200px; }
header .intro-text .intro-lead-in { header.masthead .intro-text .intro-lead-in {
font-family: "Droid Serif", "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "Droid Serif", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: italic; font-style: italic;
font-size: 40px; font-size: 40px;
line-height: 40px; line-height: 40px;
margin-bottom: 25px; } margin-bottom: 25px; }
header .intro-text .intro-heading { header.masthead .intro-text .intro-heading {
font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif; font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
text-transform: uppercase; text-transform: uppercase;
font-weight: 700; font-weight: 700;
@ -204,24 +158,6 @@ header {
line-height: 75px; line-height: 75px;
margin-bottom: 50px; } } margin-bottom: 50px; } }
section {
padding: 100px 0; }
section h2.section-heading {
font-size: 40px;
margin-top: 0;
margin-bottom: 15px; }
section h3.section-subheading {
font-size: 16px;
font-family: "Droid Serif", "Helvetica Neue", Helvetica, Arial, sans-serif;
text-transform: none;
font-style: italic;
font-weight: 400;
margin-bottom: 75px; }
@media (min-width: 768px) {
section {
padding: 150px 0; } }
.service-heading { .service-heading {
margin: 15px 0; margin: 15px 0;
text-transform: none; } text-transform: none; }
@ -230,12 +166,13 @@ section {
margin: 0 0 15px; margin: 0 0 15px;
right: 0; } right: 0; }
#portfolio .portfolio-item .portfolio-link { #portfolio .portfolio-item .portfolio-link {
cursor: pointer;
display: block; display: block;
position: relative; position: relative;
max-width: 400px; max-width: 400px;
margin: 0 auto; } margin: 0 auto; }
#portfolio .portfolio-item .portfolio-link .portfolio-hover { #portfolio .portfolio-item .portfolio-link .portfolio-hover {
background: rgba(254, 209, 54, 0.1); background: rgba(254, 209, 54, 0.9);
position: absolute; position: absolute;
width: 100%; width: 100%;
height: 100%; height: 100%;
@ -281,6 +218,74 @@ section {
#portfolio .portfolio-item { #portfolio .portfolio-item {
margin: 0 0 30px; } } margin: 0 0 30px; } }
.portfolio-modal .modal-dialog {
margin: 0;
height: 100%;
max-width: none; }
.portfolio-modal .modal-content {
border-radius: 0;
background-clip: border-box;
-webkit-box-shadow: none;
box-shadow: none;
border: none;
min-height: 100%;
padding: 100px 0;
text-align: center; }
.portfolio-modal .modal-content h2 {
margin-bottom: 15px;
font-size: 3em; }
.portfolio-modal .modal-content p {
margin-bottom: 30px; }
.portfolio-modal .modal-content p.item-intro {
margin: 20px 0 30px;
font-family: "Droid Serif", "Helvetica Neue", Helvetica, Arial, sans-serif;
font-style: italic;
font-size: 16px; }
.portfolio-modal .modal-content ul.list-inline {
margin-bottom: 30px;
margin-top: 0; }
.portfolio-modal .modal-content img {
margin-bottom: 30px; }
.portfolio-modal .modal-content button {
cursor: pointer; }
.portfolio-modal .close-modal {
position: absolute;
width: 75px;
height: 75px;
background-color: transparent;
top: 25px;
right: 25px;
cursor: pointer; }
.portfolio-modal .close-modal:hover {
opacity: 0.3; }
.portfolio-modal .close-modal .lr {
height: 75px;
width: 1px;
margin-left: 35px;
background-color: #222222;
transform: rotate(45deg);
-ms-transform: rotate(45deg);
/* IE 9 */
-webkit-transform: rotate(45deg);
/* Safari and Chrome */
z-index: 1051; }
.portfolio-modal .close-modal .lr .rl {
height: 75px;
width: 1px;
background-color: #222222;
transform: rotate(90deg);
-ms-transform: rotate(90deg);
/* IE 9 */
-webkit-transform: rotate(90deg);
/* Safari and Chrome */
z-index: 1052; }
.portfolio-modal .modal-backdrop {
opacity: 0;
display: none; }
.timeline { .timeline {
list-style: none; list-style: none;
padding: 0; padding: 0;
@ -429,9 +434,6 @@ section {
.team-member p { .team-member p {
margin-top: 0; } margin-top: 0; }
aside.clients img {
margin: 50px auto; }
section#contact { section#contact {
background-color: #222222; background-color: #222222;
background-image: url("../img/map-image.png"); background-image: url("../img/map-image.png");
@ -511,91 +513,88 @@ ul.social-buttons {
ul.social-buttons li a:hover, ul.social-buttons li a:focus, ul.social-buttons li a:active { ul.social-buttons li a:hover, ul.social-buttons li a:focus, ul.social-buttons li a:active {
background-color: #fed136; } background-color: #fed136; }
.btn:focus, .text-primary {
.btn:active, color: #fed136 !important; }
.btn.active,
.btn:active:focus {
outline: none; }
.portfolio-modal .modal-dialog { .btn-primary {
margin: 0; color: white;
height: 100%; background-color: #fed136;
max-width: none; } border-color: #fed136;
font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
text-transform: uppercase;
font-weight: 700; }
.btn-primary:focus, .btn-primary.focus {
color: white;
background-color: #fec503;
border-color: #b48b01; }
.btn-primary:hover {
color: white;
background-color: #fec503;
border-color: #f6bf01; }
.btn-primary:active, .btn-primary.active,
.open > .btn-primary.dropdown-toggle {
color: white;
background-color: #fec503;
border-color: #f6bf01; }
.btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus,
.open > .btn-primary.dropdown-toggle:hover,
.open > .btn-primary.dropdown-toggle:focus,
.open > .btn-primary.dropdown-toggle.focus {
color: white;
background-color: #dcab01;
border-color: #b48b01; }
.btn-primary:active, .btn-primary.active,
.open > .btn-primary.dropdown-toggle {
background-image: none; }
.btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus,
fieldset[disabled] .btn-primary:hover,
fieldset[disabled] .btn-primary:focus,
fieldset[disabled] .btn-primary.focus {
background-color: #fed136;
border-color: #fed136; }
.btn-primary .badge {
color: #fed136;
background-color: white; }
.portfolio-modal .modal-content { .btn-xl {
border-radius: 0; color: white;
background-clip: border-box; background-color: #fed136;
-webkit-box-shadow: none; border-color: #fed136;
box-shadow: none; font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
border: none; text-transform: uppercase;
min-height: 100%; font-weight: 700;
padding: 100px 0; border-radius: 3px;
text-align: center; } font-size: 18px;
.portfolio-modal .modal-content h2 { padding: 20px 40px; }
margin-bottom: 15px; .btn-xl:focus, .btn-xl.focus {
font-size: 3em; } color: white;
.portfolio-modal .modal-content p { background-color: #fec503;
margin-bottom: 30px; } border-color: #b48b01; }
.portfolio-modal .modal-content p.item-intro { .btn-xl:hover {
margin: 20px 0 30px; color: white;
font-family: "Droid Serif", "Helvetica Neue", Helvetica, Arial, sans-serif; background-color: #fec503;
font-style: italic; border-color: #f6bf01; }
font-size: 16px; } .btn-xl:active, .btn-xl.active,
.portfolio-modal .modal-content ul.list-inline { .open > .btn-xl.dropdown-toggle {
margin-bottom: 30px; color: white;
margin-top: 0; } background-color: #fec503;
.portfolio-modal .modal-content img { border-color: #f6bf01; }
margin-bottom: 30px; } .btn-xl:active:hover, .btn-xl:active:focus, .btn-xl:active.focus, .btn-xl.active:hover, .btn-xl.active:focus, .btn-xl.active.focus,
.open > .btn-xl.dropdown-toggle:hover,
.portfolio-modal .close-modal { .open > .btn-xl.dropdown-toggle:focus,
position: absolute; .open > .btn-xl.dropdown-toggle.focus {
width: 75px; color: white;
height: 75px; background-color: #dcab01;
background-color: transparent; border-color: #b48b01; }
top: 25px; .btn-xl:active, .btn-xl.active,
right: 25px; .open > .btn-xl.dropdown-toggle {
cursor: pointer; } background-image: none; }
.portfolio-modal .close-modal:hover { .btn-xl.disabled:hover, .btn-xl.disabled:focus, .btn-xl.disabled.focus, .btn-xl[disabled]:hover, .btn-xl[disabled]:focus, .btn-xl[disabled].focus,
opacity: 0.3; } fieldset[disabled] .btn-xl:hover,
.portfolio-modal .close-modal .lr { fieldset[disabled] .btn-xl:focus,
height: 75px; fieldset[disabled] .btn-xl.focus {
width: 1px; background-color: #fed136;
margin-left: 35px; border-color: #fed136; }
background-color: #222222; .btn-xl .badge {
transform: rotate(45deg); color: #fed136;
-ms-transform: rotate(45deg); background-color: white; }
/* IE 9 */
-webkit-transform: rotate(45deg);
/* Safari and Chrome */
z-index: 1051; }
.portfolio-modal .close-modal .lr .rl {
height: 75px;
width: 1px;
background-color: #222222;
transform: rotate(90deg);
-ms-transform: rotate(90deg);
/* IE 9 */
-webkit-transform: rotate(90deg);
/* Safari and Chrome */
z-index: 1052; }
.portfolio-modal .modal-backdrop {
opacity: 0;
display: none; }
::-moz-selection {
text-shadow: none;
background: #fed136; }
::selection {
text-shadow: none;
background: #fed136; }
img::selection {
background: transparent; }
img::-moz-selection {
background: transparent; }
body {
webkit-tap-highlight-color: #fed136; }

4
css/agency.min.css vendored

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,4 @@
var gulp = require('gulp'); var gulp = require('gulp');
var less = require('gulp-less');
var sass = require('gulp-sass'); var sass = require('gulp-sass');
var browserSync = require('browser-sync').create(); var browserSync = require('browser-sync').create();
var header = require('gulp-header'); var header = require('gulp-header');
@ -39,7 +38,7 @@ gulp.task('minify-css', ['sass'], function() {
})) }))
}); });
// Minify JS // Minify custom JS
gulp.task('minify-js', function() { gulp.task('minify-js', function() {
return gulp.src('js/agency.js') return gulp.src('js/agency.js')
.pipe(uglify()) .pipe(uglify())
@ -51,16 +50,20 @@ gulp.task('minify-js', function() {
})) }))
}); });
// Copy vendor libraries from /node_modules into /vendor // Copy vendor files from /node_modules into /vendor
// NOTE: requires `npm install` before running!
gulp.task('copy', function() { gulp.task('copy', function() {
gulp.src(['node_modules/bootstrap/dist/**/*', '!**/npm.js', '!**/bootstrap-theme.*', '!**/*.map']) gulp.src(['node_modules/bootstrap/dist/**/*', '!**/npm.js', '!**/bootstrap-theme.*', '!**/*.map'])
.pipe(gulp.dest('lib/bootstrap')) .pipe(gulp.dest('vendor/bootstrap'))
gulp.src(['node_modules/jquery/dist/jquery.js', 'node_modules/jquery/dist/jquery.min.js']) gulp.src(['node_modules/jquery/dist/jquery.js', 'node_modules/jquery/dist/jquery.min.js'])
.pipe(gulp.dest('lib/jquery')) .pipe(gulp.dest('vendor/jquery'))
gulp.src(['node_modules/tether/dist/js/*.js']) gulp.src(['node_modules/tether/dist/js/*.js'])
.pipe(gulp.dest('lib/tether')) .pipe(gulp.dest('vendor/tether'))
gulp.src(['node_modules/jquery.easing/*.js'])
.pipe(gulp.dest('vendor/jquery-easing'))
gulp.src([ gulp.src([
'node_modules/font-awesome/**', 'node_modules/font-awesome/**',
@ -70,10 +73,10 @@ gulp.task('copy', function() {
'!node_modules/font-awesome/*.md', '!node_modules/font-awesome/*.md',
'!node_modules/font-awesome/*.json' '!node_modules/font-awesome/*.json'
]) ])
.pipe(gulp.dest('lib/font-awesome')) .pipe(gulp.dest('vendor/font-awesome'))
}) })
// Run everything // Default task
gulp.task('default', ['sass', 'minify-css', 'minify-js', 'copy']); gulp.task('default', ['sass', 'minify-css', 'minify-js', 'copy']);
// Configure the browserSync task // Configure the browserSync task
@ -94,14 +97,3 @@ gulp.task('dev', ['browserSync', 'sass', 'minify-css', 'minify-js'], function()
gulp.watch('*.html', browserSync.reload); gulp.watch('*.html', browserSync.reload);
gulp.watch('js/**/*.js', browserSync.reload); gulp.watch('js/**/*.js', browserSync.reload);
}); });
// OPTIONAL: LESS task if you prefer to use LESS over SASS
gulp.task('less', function() {
return gulp.src('less/agency.less')
.pipe(less())
.pipe(header(banner, { pkg: pkg }))
.pipe(gulp.dest('css'))
.pipe(browserSync.reload({
stream: true
}))
});

View File

@ -11,19 +11,19 @@
<title>Agency - Start Bootstrap Theme</title> <title>Agency - Start Bootstrap Theme</title>
<!-- Bootstrap core CSS --> <!-- Bootstrap core CSS -->
<link href="lib/bootstrap/css/bootstrap.min.css" rel="stylesheet"> <link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Additional fonts for this theme --> <!-- Custom fonts for this template -->
<link href="lib/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"> <link href="vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css"> <link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" type="text/css">
<link href='https://fonts.googleapis.com/css?family=Kaushan+Script' rel='stylesheet' type='text/css'> <link href='https://fonts.googleapis.com/css?family=Kaushan+Script' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic,700italic' rel='stylesheet' type='text/css'> <link href='https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Roboto+Slab:400,100,300,700' rel='stylesheet' type='text/css'> <link href='https://fonts.googleapis.com/css?family=Roboto+Slab:400,100,300,700' rel='stylesheet' type='text/css'>
<!-- Custom styles for this theme --> <!-- Custom styles for this template -->
<link href="css/agency.min.css" rel="stylesheet"> <link href="css/agency.min.css" rel="stylesheet">
<!-- Temporary navbar container fix until Bootstrap 4 is patched --> <!-- Temporary navbar container fix -->
<style> <style>
.navbar-toggler { .navbar-toggler {
z-index: 1; z-index: 1;
@ -46,23 +46,23 @@
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"> <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
Menu <i class="fa fa-bars"></i> Menu <i class="fa fa-bars"></i>
</button> </button>
<a class="navbar-brand page-scroll" href="#page-top">Start Bootstrap</a> <a class="navbar-brand" href="#page-top">Start Bootstrap</a>
<div class="collapse navbar-collapse" id="navbarResponsive"> <div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ml-auto"> <ul class="navbar-nav ml-auto">
<li class="nav-item"> <li class="nav-item">
<a class="nav-link page-scroll" href="#services">Services</a> <a class="nav-link" href="#services">Services</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link page-scroll" href="#portfolio">Portfolio</a> <a class="nav-link" href="#portfolio">Portfolio</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link page-scroll" href="#about">About</a> <a class="nav-link" href="#about">About</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link page-scroll" href="#team">Team</a> <a class="nav-link" href="#team">Team</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link page-scroll" href="#contact">Contact</a> <a class="nav-link" href="#contact">Contact</a>
</li> </li>
</ul> </ul>
</div> </div>
@ -70,12 +70,12 @@
</nav> </nav>
<!-- Header --> <!-- Header -->
<header> <header class="masthead">
<div class="container"> <div class="container">
<div class="intro-text"> <div class="intro-text">
<div class="intro-lead-in">Welcome To Our Studio!</div> <div class="intro-lead-in">Welcome To Our Studio!</div>
<div class="intro-heading">It's Nice To Meet You</div> <div class="intro-heading">It's Nice To Meet You</div>
<a href="#services" class="page-scroll btn btn-xl">Tell Me More</a> <a href="#services" class="btn btn-xl">Tell Me More</a>
</div> </div>
</div> </div>
</header> </header>
@ -119,7 +119,7 @@
</section> </section>
<!-- Portfolio Grid --> <!-- Portfolio Grid -->
<section id="portfolio" class="bg-faded"> <section class="bg-faded" id="portfolio">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-12 text-center"> <div class="col-lg-12 text-center">
@ -129,84 +129,84 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-md-4 col-sm-6 portfolio-item"> <div class="col-md-4 col-sm-6 portfolio-item">
<a href="#portfolioModal1" class="portfolio-link" data-toggle="modal"> <div class="portfolio-link" data-toggle="modal" href="#portfolioModal1">
<div class="portfolio-hover"> <div class="portfolio-hover">
<div class="portfolio-hover-content"> <div class="portfolio-hover-content">
<i class="fa fa-plus fa-3x"></i> <i class="fa fa-plus fa-3x"></i>
</div> </div>
</div> </div>
<img src="img/portfolio/01-thumbnail.jpg" class="img-fluid" alt=""> <img class="img-fluid" src="img/portfolio/01-thumbnail.jpg" alt="">
</a> </div>
<div class="portfolio-caption"> <div class="portfolio-caption">
<h4>Threads</h4> <h4>Threads</h4>
<p class="text-muted">Illustration</p> <p class="text-muted">Illustration</p>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6 portfolio-item"> <div class="col-md-4 col-sm-6 portfolio-item">
<a href="#portfolioModal2" class="portfolio-link" data-toggle="modal"> <div class="portfolio-link" data-toggle="modal" href="#portfolioModal2">
<div class="portfolio-hover"> <div class="portfolio-hover">
<div class="portfolio-hover-content"> <div class="portfolio-hover-content">
<i class="fa fa-plus fa-3x"></i> <i class="fa fa-plus fa-3x"></i>
</div> </div>
</div> </div>
<img src="img/portfolio/02-thumbnail.jpg" class="img-fluid" alt=""> <img class="img-fluid" src="img/portfolio/02-thumbnail.jpg" alt="">
</a> </div>
<div class="portfolio-caption"> <div class="portfolio-caption">
<h4>Explore</h4> <h4>Explore</h4>
<p class="text-muted">Graphic Design</p> <p class="text-muted">Graphic Design</p>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6 portfolio-item"> <div class="col-md-4 col-sm-6 portfolio-item">
<a href="#portfolioModal3" class="portfolio-link" data-toggle="modal"> <div class="portfolio-link" data-toggle="modal" href="#portfolioModal3">
<div class="portfolio-hover"> <div class="portfolio-hover">
<div class="portfolio-hover-content"> <div class="portfolio-hover-content">
<i class="fa fa-plus fa-3x"></i> <i class="fa fa-plus fa-3x"></i>
</div> </div>
</div> </div>
<img src="img/portfolio/03-thumbnail.jpg" class="img-fluid" alt=""> <img class="img-fluid" src="img/portfolio/03-thumbnail.jpg" alt="">
</a> </div>
<div class="portfolio-caption"> <div class="portfolio-caption">
<h4>Finish</h4> <h4>Finish</h4>
<p class="text-muted">Identity</p> <p class="text-muted">Identity</p>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6 portfolio-item"> <div class="col-md-4 col-sm-6 portfolio-item">
<a href="#portfolioModal4" class="portfolio-link" data-toggle="modal"> <div class="portfolio-link" data-toggle="modal" href="#portfolioModal4">
<div class="portfolio-hover"> <div class="portfolio-hover">
<div class="portfolio-hover-content"> <div class="portfolio-hover-content">
<i class="fa fa-plus fa-3x"></i> <i class="fa fa-plus fa-3x"></i>
</div> </div>
</div> </div>
<img src="img/portfolio/04-thumbnail.jpg" class="img-fluid" alt=""> <img class="img-fluid" src="img/portfolio/04-thumbnail.jpg" alt="">
</a> </div>
<div class="portfolio-caption"> <div class="portfolio-caption">
<h4>Lines</h4> <h4>Lines</h4>
<p class="text-muted">Branding</p> <p class="text-muted">Branding</p>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6 portfolio-item"> <div class="col-md-4 col-sm-6 portfolio-item">
<a href="#portfolioModal5" class="portfolio-link" data-toggle="modal"> <div class="portfolio-link" data-toggle="modal" href="#portfolioModal5">
<div class="portfolio-hover"> <div class="portfolio-hover">
<div class="portfolio-hover-content"> <div class="portfolio-hover-content">
<i class="fa fa-plus fa-3x"></i> <i class="fa fa-plus fa-3x"></i>
</div> </div>
</div> </div>
<img src="img/portfolio/05-thumbnail.jpg" class="img-fluid" alt=""> <img class="img-fluid" src="img/portfolio/05-thumbnail.jpg" alt="">
</a> </div>
<div class="portfolio-caption"> <div class="portfolio-caption">
<h4>Southwest</h4> <h4>Southwest</h4>
<p class="text-muted">Website Design</p> <p class="text-muted">Website Design</p>
</div> </div>
</div> </div>
<div class="col-md-4 col-sm-6 portfolio-item"> <div class="col-md-4 col-sm-6 portfolio-item">
<a href="#portfolioModal6" class="portfolio-link" data-toggle="modal"> <div class="portfolio-link" data-toggle="modal" href="#portfolioModal6">
<div class="portfolio-hover"> <div class="portfolio-hover">
<div class="portfolio-hover-content"> <div class="portfolio-hover-content">
<i class="fa fa-plus fa-3x"></i> <i class="fa fa-plus fa-3x"></i>
</div> </div>
</div> </div>
<img src="img/portfolio/06-thumbnail.jpg" class="img-fluid" alt=""> <img class="img-fluid" src="img/portfolio/06-thumbnail.jpg" alt="">
</a> </div>
<div class="portfolio-caption"> <div class="portfolio-caption">
<h4>Window</h4> <h4>Window</h4>
<p class="text-muted">Photography</p> <p class="text-muted">Photography</p>
@ -298,7 +298,7 @@
</section> </section>
<!-- Team --> <!-- Team -->
<section id="team" class="bg-faded"> <section class="bg-faded" id="team">
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-lg-12 text-center"> <div class="col-lg-12 text-center">
@ -309,45 +309,54 @@
<div class="row"> <div class="row">
<div class="col-sm-4"> <div class="col-sm-4">
<div class="team-member"> <div class="team-member">
<img src="img/team/1.jpg" class="mx-auto rounded-circle" alt=""> <img class="mx-auto rounded-circle" src="img/team/1.jpg" alt="">
<h4>Kay Garland</h4> <h4>Kay Garland</h4>
<p class="text-muted">Lead Designer</p> <p class="text-muted">Lead Designer</p>
<ul class="list-inline social-buttons"> <ul class="list-inline social-buttons">
<li class="list-inline-item"><a href="#"><i class="fa fa-twitter"></i></a> <li class="list-inline-item">
<a href="#"><i class="fa fa-twitter"></i></a>
</li> </li>
<li class="list-inline-item"><a href="#"><i class="fa fa-facebook"></i></a> <li class="list-inline-item">
<a href="#"><i class="fa fa-facebook"></i></a>
</li> </li>
<li class="list-inline-item"><a href="#"><i class="fa fa-linkedin"></i></a> <li class="list-inline-item">
<a href="#"><i class="fa fa-linkedin"></i></a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="team-member"> <div class="team-member">
<img src="img/team/2.jpg" class="mx-auto rounded-circle" alt=""> <img class="mx-auto rounded-circle" src="img/team/2.jpg" alt="">
<h4>Larry Parker</h4> <h4>Larry Parker</h4>
<p class="text-muted">Lead Marketer</p> <p class="text-muted">Lead Marketer</p>
<ul class="list-inline social-buttons"> <ul class="list-inline social-buttons">
<li class="list-inline-item"><a href="#"><i class="fa fa-twitter"></i></a> <li class="list-inline-item">
<a href="#"><i class="fa fa-twitter"></i></a>
</li> </li>
<li class="list-inline-item"><a href="#"><i class="fa fa-facebook"></i></a> <li class="list-inline-item">
<a href="#"><i class="fa fa-facebook"></i></a>
</li> </li>
<li class="list-inline-item"><a href="#"><i class="fa fa-linkedin"></i></a> <li class="list-inline-item">
<a href="#"><i class="fa fa-linkedin"></i></a>
</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
<div class="col-sm-4"> <div class="col-sm-4">
<div class="team-member"> <div class="team-member">
<img src="img/team/3.jpg" class="mx-auto rounded-circle" alt=""> <img class="mx-auto rounded-circle" src="img/team/3.jpg" alt="">
<h4>Diana Pertersen</h4> <h4>Diana Pertersen</h4>
<p class="text-muted">Lead Developer</p> <p class="text-muted">Lead Developer</p>
<ul class="list-inline social-buttons"> <ul class="list-inline social-buttons">
<li class="list-inline-item"><a href="#"><i class="fa fa-twitter"></i></a> <li class="list-inline-item">
<a href="#"><i class="fa fa-twitter"></i></a>
</li> </li>
<li class="list-inline-item"><a href="#"><i class="fa fa-facebook"></i></a> <li class="list-inline-item">
<a href="#"><i class="fa fa-facebook"></i></a>
</li> </li>
<li class="list-inline-item"><a href="#"><i class="fa fa-linkedin"></i></a> <li class="list-inline-item">
<a href="#"><i class="fa fa-linkedin"></i></a>
</li> </li>
</ul> </ul>
</div> </div>
@ -362,32 +371,32 @@
</section> </section>
<!-- Clients --> <!-- Clients -->
<aside class="clients"> <section>
<div class="container"> <div class="container">
<div class="row"> <div class="row">
<div class="col-md-3 col-sm-6"> <div class="col-md-3 col-sm-6">
<a href="#"> <a href="#">
<img src="img/logos/envato.jpg" class="img-fluid d-block mx-auto" alt=""> <img class="img-fluid d-block mx-auto" src="img/logos/envato.jpg" alt="">
</a> </a>
</div> </div>
<div class="col-md-3 col-sm-6"> <div class="col-md-3 col-sm-6">
<a href="#"> <a href="#">
<img src="img/logos/designmodo.jpg" class="img-fluid d-block mx-auto" alt=""> <img class="img-fluid d-block mx-auto" src="img/logos/designmodo.jpg" alt="">
</a> </a>
</div> </div>
<div class="col-md-3 col-sm-6"> <div class="col-md-3 col-sm-6">
<a href="#"> <a href="#">
<img src="img/logos/themeforest.jpg" class="img-fluid d-block mx-auto" alt=""> <img class="img-fluid d-block mx-auto" src="img/logos/themeforest.jpg" alt="">
</a> </a>
</div> </div>
<div class="col-md-3 col-sm-6"> <div class="col-md-3 col-sm-6">
<a href="#"> <a href="#">
<img src="img/logos/creative-market.jpg" class="img-fluid d-block mx-auto" alt=""> <img class="img-fluid d-block mx-auto" src="img/logos/creative-market.jpg" alt="">
</a> </a>
</div> </div>
</div> </div>
</div> </div>
</aside> </section>
<!-- Contact --> <!-- Contact -->
<section id="contact"> <section id="contact">
@ -400,32 +409,32 @@
</div> </div>
<div class="row"> <div class="row">
<div class="col-lg-12"> <div class="col-lg-12">
<form name="sentMessage" id="contactForm" novalidate> <form id="contactForm" name="sentMessage" novalidate>
<div class="row"> <div class="row">
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<input type="text" class="form-control" placeholder="Your Name *" id="name" required data-validation-required-message="Please enter your name."> <input class="form-control" id="name" type="text" placeholder="Your Name *" required data-validation-required-message="Please enter your name.">
<p class="help-block text-danger"></p> <p class="help-block text-danger"></p>
</div> </div>
<div class="form-group"> <div class="form-group">
<input type="email" class="form-control" placeholder="Your Email *" id="email" required data-validation-required-message="Please enter your email address."> <input class="form-control" id="email" type="email" placeholder="Your Email *" required data-validation-required-message="Please enter your email address.">
<p class="help-block text-danger"></p> <p class="help-block text-danger"></p>
</div> </div>
<div class="form-group"> <div class="form-group">
<input type="tel" class="form-control" placeholder="Your Phone *" id="phone" required data-validation-required-message="Please enter your phone number."> <input class="form-control" id="phone" type="tel" placeholder="Your Phone *" required data-validation-required-message="Please enter your phone number.">
<p class="help-block text-danger"></p> <p class="help-block text-danger"></p>
</div> </div>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<div class="form-group"> <div class="form-group">
<textarea class="form-control" placeholder="Your Message *" id="message" required data-validation-required-message="Please enter a message."></textarea> <textarea class="form-control" id="message" placeholder="Your Message *" required data-validation-required-message="Please enter a message."></textarea>
<p class="help-block text-danger"></p> <p class="help-block text-danger"></p>
</div> </div>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
<div class="col-lg-12 text-center"> <div class="col-lg-12 text-center">
<div id="success"></div> <div id="success"></div>
<button type="submit" class="btn btn-xl">Send Message</button> <button class="btn btn-xl" type="submit">Send Message</button>
</div> </div>
</div> </div>
</form> </form>
@ -443,19 +452,24 @@
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<ul class="list-inline social-buttons"> <ul class="list-inline social-buttons">
<li class="list-inline-item"><a href="#"><i class="fa fa-twitter"></i></a> <li class="list-inline-item">
<a href="#"><i class="fa fa-twitter"></i></a>
</li> </li>
<li class="list-inline-item"><a href="#"><i class="fa fa-facebook"></i></a> <li class="list-inline-item">
<a href="#"><i class="fa fa-facebook"></i></a>
</li> </li>
<li class="list-inline-item"><a href="#"><i class="fa fa-linkedin"></i></a> <li class="list-inline-item">
<a href="#"><i class="fa fa-linkedin"></i></a>
</li> </li>
</ul> </ul>
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<ul class="list-inline quicklinks"> <ul class="list-inline quicklinks">
<li class="list-inline-item"><a href="#">Privacy Policy</a> <li class="list-inline-item">
<a href="#">Privacy Policy</a>
</li> </li>
<li class="list-inline-item"><a href="#">Terms of Use</a> <li class="list-inline-item">
<a href="#">Terms of Use</a>
</li> </li>
</ul> </ul>
</div> </div>
@ -489,7 +503,7 @@
<li>Client: Threads</li> <li>Client: Threads</li>
<li>Category: Illustration</li> <li>Category: Illustration</li>
</ul> </ul>
<button type="button" class="btn btn-primary" data-dismiss="modal"><i class="fa fa-times"></i> Close Project</button> <button class="btn btn-primary" data-dismiss="modal" type="button"><i class="fa fa-times"></i> Close Project</button>
</div> </div>
</div> </div>
</div> </div>
@ -522,7 +536,7 @@
<li>Client: Explore</li> <li>Client: Explore</li>
<li>Category: Graphic Design</li> <li>Category: Graphic Design</li>
</ul> </ul>
<button type="button" class="btn btn-primary" data-dismiss="modal"><i class="fa fa-times"></i> Close Project</button> <button class="btn btn-primary" data-dismiss="modal" type="button"><i class="fa fa-times"></i> Close Project</button>
</div> </div>
</div> </div>
</div> </div>
@ -555,7 +569,7 @@
<li>Client: Finish</li> <li>Client: Finish</li>
<li>Category: Identity</li> <li>Category: Identity</li>
</ul> </ul>
<button type="button" class="btn btn-primary" data-dismiss="modal"><i class="fa fa-times"></i> Close Project</button> <button class="btn btn-primary" data-dismiss="modal" type="button"><i class="fa fa-times"></i> Close Project</button>
</div> </div>
</div> </div>
</div> </div>
@ -588,7 +602,7 @@
<li>Client: Lines</li> <li>Client: Lines</li>
<li>Category: Branding</li> <li>Category: Branding</li>
</ul> </ul>
<button type="button" class="btn btn-primary" data-dismiss="modal"><i class="fa fa-times"></i> Close Project</button> <button class="btn btn-primary" data-dismiss="modal" type="button"><i class="fa fa-times"></i> Close Project</button>
</div> </div>
</div> </div>
</div> </div>
@ -621,7 +635,7 @@
<li>Client: Southwest</li> <li>Client: Southwest</li>
<li>Category: Website Design</li> <li>Category: Website Design</li>
</ul> </ul>
<button type="button" class="btn btn-primary" data-dismiss="modal"><i class="fa fa-times"></i> Close Project</button> <button class="btn btn-primary" data-dismiss="modal" type="button"><i class="fa fa-times"></i> Close Project</button>
</div> </div>
</div> </div>
</div> </div>
@ -654,7 +668,7 @@
<li>Client: Window</li> <li>Client: Window</li>
<li>Category: Photography</li> <li>Category: Photography</li>
</ul> </ul>
<button type="button" class="btn btn-primary" data-dismiss="modal"><i class="fa fa-times"></i> Close Project</button> <button class="btn btn-primary" data-dismiss="modal" type="button"><i class="fa fa-times"></i> Close Project</button>
</div> </div>
</div> </div>
</div> </div>
@ -664,18 +678,18 @@
</div> </div>
<!-- Bootstrap core JavaScript --> <!-- Bootstrap core JavaScript -->
<script src="lib/jquery/jquery.min.js"></script> <script src="vendor/jquery/jquery.min.js"></script>
<script src="lib/tether/tether.min.js"></script> <script src="vendor/tether/tether.min.js"></script>
<script src="lib/bootstrap/js/bootstrap.min.js"></script> <script src="vendor/bootstrap/js/bootstrap.min.js"></script>
<!-- Plugin JavaScript --> <!-- Plugin JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"></script> <script src="vendor/jquery-easing/jquery.easing.min.js"></script>
<!-- Contact form JavaScript --> <!-- Contact form JavaScript -->
<script src="js/jqBootstrapValidation.js"></script> <script src="js/jqBootstrapValidation.js"></script>
<script src="js/contact_me.js"></script> <script src="js/contact_me.js"></script>
<!-- Custom JavaScript for this theme --> <!-- Custom scripts for this template -->
<script src="js/agency.min.js"></script> <script src="js/agency.min.js"></script>
</body> </body>

View File

@ -1,29 +1,32 @@
// Agency Theme JavaScript
(function($) { (function($) {
"use strict"; // Start of use strict "use strict"; // Start of use strict
// jQuery for page scrolling feature - requires jQuery Easing plugin // Smooth scrolling using jQuery Easing
$(document).on('click', 'a.page-scroll', function(event) { $('a[href*="#"]:not([href="#"])').click(function() {
var $anchor = $(this); if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
$('html, body').stop().animate({ var target = $(this.hash);
scrollTop: ($($anchor.attr('href')).offset().top - 54) target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
}, 1250, 'easeInOutExpo'); if (target.length) {
event.preventDefault(); $('html, body').animate({
scrollTop: (target.offset().top - 54)
}, 1000, "easeInOutExpo");
return false;
}
}
}); });
// Highlight the top nav as scrolling occurs // Activate scrollspy to add active class to navbar items on scroll
$('body').scrollspy({ $('body').scrollspy({
target: '#mainNav', target: '#mainNav',
offset: 54 offset: 54
}); });
// Closes the Responsive Menu on Menu Item Click // Closes responsive menu when a link is clicked
$('.navbar-collapse>ul>li>a').click(function() { $('.navbar-collapse>ul>li>a').click(function() {
$('.navbar-collapse').collapse('hide'); $('.navbar-collapse').collapse('hide');
}); });
// jQuery to collapse the navbar on scroll // Collapse the navbar when page is scrolled
$(window).scroll(function() { $(window).scroll(function() {
if ($("#mainNav").offset().top > 100) { if ($("#mainNav").offset().top > 100) {
$("#mainNav").addClass("navbar-shrink"); $("#mainNav").addClass("navbar-shrink");

4
js/agency.min.js vendored
View File

@ -1,6 +1,6 @@
/*! /*!
* Start Bootstrap - Agency v4.0.0-alpha (http://startbootstrap.com/template-overviews/agency) * Start Bootstrap - Agency v4.0.0-alpha (http://startbootstrap.com/template-overviews/agency)
* Copyright 2013-2017 Start Bootstrap * Copyright 2013-2017 Start Bootstrap
* Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE) * Licensed under ()
*/ */
!function(a){"use strict";a(document).on("click","a.page-scroll",function(o){var n=a(this);a("html, body").stop().animate({scrollTop:a(n.attr("href")).offset().top-54},1250,"easeInOutExpo"),o.preventDefault()}),a("body").scrollspy({target:"#mainNav",offset:54}),a(".navbar-collapse>ul>li>a").click(function(){a(".navbar-collapse").collapse("hide")}),a(window).scroll(function(){a("#mainNav").offset().top>100?a("#mainNav").addClass("navbar-shrink"):a("#mainNav").removeClass("navbar-shrink")})}(jQuery); !function(a){"use strict";a('a[href*="#"]:not([href="#"])').click(function(){if(location.pathname.replace(/^\//,"")==this.pathname.replace(/^\//,"")&&location.hostname==this.hostname){var n=a(this.hash);if(n=n.length?n:a("[name="+this.hash.slice(1)+"]"),n.length)return a("html, body").animate({scrollTop:n.offset().top-54},1e3,"easeInOutExpo"),!1}}),a("body").scrollspy({target:"#mainNav",offset:54}),a(".navbar-collapse>ul>li>a").click(function(){a(".navbar-collapse").collapse("hide")}),a(window).scroll(function(){a("#mainNav").offset().top>100?a("#mainNav").addClass("navbar-shrink"):a("#mainNav").removeClass("navbar-shrink")})}(jQuery);

View File

@ -1,5 +1,3 @@
// Contact Form Scripts
$(function() { $(function() {
$("#contactForm input,#contactForm textarea").jqBootstrapValidation({ $("#contactForm input,#contactForm textarea").jqBootstrapValidation({

View File

@ -1,700 +0,0 @@
@import "variables.less";
@import "mixins.less";
// Global Components
body {
overflow-x: hidden;
.body-font;
}
.text-primary {
color: @theme-primary !important;
}
p {
line-height: 1.75;
}
a {
color: @theme-primary;
&:hover,
&:focus,
&:active,
&.active {
color: darken(@theme-primary, 10%);
}
}
h1, h2, h3, h4, h5, h6 {
.heading-font;
font-weight: 700;
}
// Restyled Primary Buttons
.btn-primary {
.button-variant(white; @theme-primary; @theme-primary);
.heading-font;
font-weight: 700;
}
.btn-xl {
.button-variant(white; @theme-primary; @theme-primary);
.heading-font;
font-weight: 700;
border-radius: 3px;
font-size: 18px;
padding: 20px 40px;
}
// Custom Navigation Bar
#mainNav {
background-color: @gray-darker;
.navbar-toggler {
border: 0;
color: white;
background-color: @theme-primary;
font-size: 12px;
text-transform: uppercase;
.heading-font;
padding: 13px;
right: 0;
}
.container {
padding: 0;
.navbar-brand {
color: @theme-primary;
.script-font;
&:hover,
&:focus,
&:active,
&.active {
color: darken(@theme-primary, 10%);
}
}
.navbar-nav {
.nav-item {
.nav-link {
font-size: 90%;
padding: 0.75em 0;
.heading-font;
font-weight: 400;
letter-spacing: 1px;
color: white;
&:hover,
&.active {
color: @theme-primary;
}
}
}
}
}
}
@media(min-width:992px) {
#mainNav {
background-color: transparent;
padding: 25px 0;
-webkit-transition: padding 0.3s;
-moz-transition: padding 0.3s;
transition: padding 0.3s;
border: none;
.navbar-brand {
font-size: 1.75em;
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.3s;
}
.navbar-nav {
.nav-item {
.nav-link {
padding: 1.1em 1em !important;
}
}
}
&.navbar-shrink {
background-color: @gray-darker;
padding: 0;
.navbar-brand {
padding: 12px 0;
font-size: 1.25em;
}
}
}
}
header {
background-image: url('../img/header-bg.jpg');
background-repeat: no-repeat;
background-attachment: scroll;
background-position: center center;
.background-cover;
text-align: center;
color: white;
.intro-text {
padding-top: 100px;
padding-bottom: 50px;
.intro-lead-in {
.serif-font;
font-style: italic;
font-size: 22px;
line-height: 22px;
margin-bottom: 25px;
}
.intro-heading {
.heading-font;
font-weight: 700;
font-size: 50px;
line-height: 50px;
margin-bottom: 25px;
}
}
}
@media(min-width:768px) {
header {
.intro-text {
padding-top: 300px;
padding-bottom: 200px;
.intro-lead-in {
.serif-font;
font-style: italic;
font-size: 40px;
line-height: 40px;
margin-bottom: 25px;
}
.intro-heading {
.heading-font;
font-weight: 700;
font-size: 75px;
line-height: 75px;
margin-bottom: 50px;
}
}
}
}
// Global Section Styles
section {
padding: 100px 0;
h2.section-heading {
font-size: 40px;
margin-top: 0;
margin-bottom: 15px;
}
h3.section-subheading {
font-size: 16px;
.serif-font;
text-transform: none;
font-style: italic;
font-weight: 400;
margin-bottom: 75px;
}
}
@media(min-width:768px) {
section {
padding: 150px 0;
}
}
// Services Section
.service-heading {
margin: 15px 0;
text-transform: none;
}
// Portfolio Section
#portfolio {
.portfolio-item {
margin: 0 0 15px;
right: 0;
.portfolio-link {
display: block;
position: relative;
max-width: 400px;
margin: 0 auto;
.portfolio-hover {
background: fade(@theme-primary, 90%);
position: absolute;
width: 100%;
height: 100%;
opacity: 0;
transition: all ease 0.5s;
-webkit-transition: all ease 0.5s;
-moz-transition: all ease 0.5s;
&:hover {
opacity: 1;
}
.portfolio-hover-content {
position: absolute;
width: 100%;
height: 20px;
font-size: 20px;
text-align: center;
top: 50%;
margin-top: -12px;
color: white;
i {
margin-top: -12px;
}
h3,
h4 {
margin: 0;
}
}
}
}
.portfolio-caption {
max-width: 400px;
margin: 0 auto;
background-color: white;
text-align: center;
padding: 25px;
h4 {
text-transform: none;
margin: 0;
}
p {
.serif-font;
font-style: italic;
font-size: 16px;
margin: 0;
}
}
}
* {
z-index: 2;
}
}
@media(min-width:767px) {
#portfolio {
.portfolio-item {
margin: 0 0 30px;
}
}
}
// Timeline
.timeline {
list-style: none;
padding: 0;
position: relative;
&:before {
top: 0;
bottom: 0;
position: absolute;
content: "";
width: 2px;
background-color: #f1f1f1;
left: 40px;
margin-left: -1.5px;
}
> li {
margin-bottom: 50px;
position: relative;
min-height: 50px;
&:before,
&:after {
content: " ";
display: table;
}
&:after {
clear: both;
}
.timeline-panel {
width: 100%;
float: right;
padding: 0 20px 0 100px;
position: relative;
text-align: left;
&:before {
border-left-width: 0;
border-right-width: 15px;
left: -15px;
right: auto;
}
&:after {
border-left-width: 0;
border-right-width: 14px;
left: -14px;
right: auto;
}
}
.timeline-image {
left: 0;
margin-left: 0;
width: 80px;
height: 80px;
position: absolute;
z-index: 100;
background-color: @theme-primary;
color: white;
border-radius: 100%;
border: 7px solid #f1f1f1;
text-align: center;
h4 {
font-size: 10px;
margin-top: 12px;
line-height: 14px;
}
}
&.timeline-inverted > .timeline-panel {
float: right;
text-align: left;
padding: 0 20px 0 100px;
&:before {
border-left-width: 0;
border-right-width: 15px;
left: -15px;
right: auto;
}
&:after {
border-left-width: 0;
border-right-width: 14px;
left: -14px;
right: auto;
}
}
&:last-child {
margin-bottom: 0;
}
}
.timeline-heading {
h4 {
margin-top: 0;
color: inherit;
&.subheading {
text-transform: none;
}
}
}
.timeline-body {
> p,
> ul {
margin-bottom: 0;
}
}
}
@media(min-width:768px) {
.timeline {
&:before {
left: 50%;
}
> li {
margin-bottom: 100px;
min-height: 100px;
.timeline-panel {
width: 41%;
float: left;
padding: 0 20px 20px 30px;
text-align: right;
}
.timeline-image {
width: 100px;
height: 100px;
left: 50%;
margin-left: -50px;
h4 {
font-size: 13px;
margin-top: 16px;
line-height: 18px;
}
}
&.timeline-inverted > .timeline-panel {
float: right;
text-align: left;
padding: 0 30px 20px 20px;
}
}
}
}
@media(min-width:992px) {
.timeline {
> li {
min-height: 150px;
.timeline-panel {
padding: 0 20px 20px;
}
.timeline-image {
width: 150px;
height: 150px;
margin-left: -75px;
h4 {
font-size: 18px;
margin-top: 30px;
line-height: 26px;
}
}
&.timeline-inverted > .timeline-panel {
padding: 0 20px 20px;
}
}
}
}
@media(min-width:1200px) {
.timeline {
> li {
min-height: 170px;
.timeline-panel {
padding: 0 20px 20px 100px;
}
.timeline-image {
width: 170px;
height: 170px;
margin-left: -85px;
h4 {
margin-top: 40px;
}
}
&.timeline-inverted > .timeline-panel {
padding: 0 100px 20px 20px;
}
}
}
}
// Team Section
.team-member {
text-align: center;
margin-bottom: 50px;
img {
height: 225px;
width: 225px;
border: 7px solid white;
}
h4 {
margin-top: 25px;
margin-bottom: 0;
text-transform: none;
}
p {
margin-top: 0;
}
}
// Clients Aside
aside.clients {
img {
margin: 50px auto;
}
}
// Contact Section
section#contact {
background-color: @gray-darker;
background-image: url('../img/map-image.png');
background-position: center;
background-repeat: no-repeat;
.section-heading {
color: white;
}
.form-group {
margin-bottom: 25px;
input,
textarea {
padding: 20px;
}
input.form-control {
height: auto;
}
textarea.form-control {
height: 236px;
}
}
.form-control:focus {
border-color: @theme-primary;
box-shadow: none;
}
::-webkit-input-placeholder {
.heading-font;
font-weight: 700;
color: @gray-lighter;
}
:-moz-placeholder { /* Firefox 18- */
.heading-font;
font-weight: 700;
color: @gray-lighter;
}
::-moz-placeholder { /* Firefox 19+ */
.heading-font;
font-weight: 700;
color: @gray-lighter;
}
:-ms-input-placeholder {
.heading-font;
font-weight: 700;
color: @gray-lighter;
}
.text-danger {
color: @theme-danger;
}
}
// Footer
footer {
padding: 25px 0;
text-align: center;
span.copyright {
font-size: 90%;
line-height: 40px;
.heading-font;
text-transform: none;
}
ul.quicklinks {
font-size: 90%;
margin-bottom: 0;
line-height: 40px;
.heading-font;
text-transform: none;
}
}
// Social Buttons
ul.social-buttons {
margin-bottom: 0;
li {
a {
display: block;
background-color: @gray-darker;
height: 40px;
width: 40px;
border-radius: 100%;
font-size: 20px;
line-height: 40px;
color: white;
outline: none;
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.3s;
&:hover,
&:focus,
&:active {
background-color: @theme-primary;
}
}
}
}
.btn:focus,
.btn:active,
.btn.active,
.btn:active:focus {
outline: none;
}
.portfolio-modal {
.modal-dialog{
margin: 0;
height: 100%;
max-width: none;
}
.modal-content {
border-radius: 0;
background-clip: border-box;
-webkit-box-shadow: none;
box-shadow: none;
border: none;
min-height: 100%;
padding: 100px 0;
text-align: center;
h2 {
margin-bottom: 15px;
font-size: 3em;
}
p {
margin-bottom: 30px;
}
p.item-intro {
margin: 20px 0 30px;
.serif-font;
font-style: italic;
font-size: 16px;
}
ul.list-inline {
margin-bottom: 30px;
margin-top: 0;
}
img {
margin-bottom: 30px;
}
}
.close-modal {
position: absolute;
width:75px;
height:75px;
background-color:transparent;
top: 25px;
right: 25px;
cursor: pointer;
&:hover {
opacity: 0.3;
}
.lr {
height:75px;
width:1px;
margin-left:35px;
background-color:@gray-darker;
transform: rotate(45deg);
-ms-transform: rotate(45deg);
/* IE 9 */
-webkit-transform: rotate(45deg);
/* Safari and Chrome */
z-index:1051;
.rl {
height:75px;
width:1px;
background-color:@gray-darker;
transform: rotate(90deg);
-ms-transform: rotate(90deg);
/* IE 9 */
-webkit-transform: rotate(90deg);
/* Safari and Chrome */
z-index:1052;
}
}
}
.modal-backdrop {
opacity: 0;
display: none;
}
}
// Highlight Color Customization
::-moz-selection {
text-shadow: none;
background: @theme-primary;
}
::selection {
text-shadow: none;
background: @theme-primary;
}
img::selection {
background: transparent;
}
img::-moz-selection {
background: transparent;
}
body {
webkit-tap-highlight-color: @theme-primary;
}

View File

@ -1,70 +0,0 @@
// Mixins
// Bootstrap Button Variant
.button-variant(@color; @background; @border) {
color: @color;
background-color: @background;
border-color: @border;
&:hover,
&:focus,
&:active,
&.active,
&:active:focus,
.open .dropdown-toggle& {
color: @color;
background-color: darken(@background, 10%);
border-color: darken(@border, 12%);
}
&:active,
&.active,
.open .dropdown-toggle& {
background-image: none;
}
&.disabled,
&[disabled],
fieldset[disabled] & {
&,
&:hover,
&:focus,
&:active,
&.active {
background-color: @background;
border-color: @border;
}
}
.badge {
color: @background;
background-color: @color;
}
}
// Background Cover Mixin
.background-cover() {
-webkit-background-size: cover;
-moz-background-size: cover;
background-size: cover;
-o-background-size: cover;
}
// Font Mixins
.serif-font() {
font-family: "Droid Serif", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.script-font() {
font-family: "Kaushan Script", "Helvetica Neue", Helvetica, Arial, cursive;
}
.body-font() {
font-family: "Roboto Slab", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.heading-font() {
font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
text-transform: uppercase;
}

View File

@ -1,13 +0,0 @@
// Variables
// Gray and Brand Colors for use across theme
@theme-primary: #fed136;
@theme-danger: #e74c3c;
@gray-base: #000;
@gray-darker: lighten(@gray-base, 13.5%); // #222
@gray-dark: lighten(@gray-base, 20%); // #333
@gray: lighten(@gray-base, 33.5%); // #555
@gray-light: lighten(@gray-base, 46.7%); // #777
@gray-lighter: lighten(@gray-base, 93.5%); // #eee

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,29 +1,44 @@
{ {
"name": "startbootstrap-agency",
"title": "Agency", "title": "Agency",
"name": "startbootstrap-agency",
"version": "4.0.0-alpha", "version": "4.0.0-alpha",
"description": "Agency is a one page HTML theme for Bootstrap.",
"keywords": [
"css",
"sass",
"html",
"responsive",
"theme",
"template"
],
"homepage": "http://startbootstrap.com/template-overviews/agency", "homepage": "http://startbootstrap.com/template-overviews/agency",
"bugs": {
"url": "https://github.com/BlackrockDigital/startbootstrap-agency/issues",
"email": "feedback@startbootstrap.com"
},
"license": "MIT",
"author": "Start Bootstrap", "author": "Start Bootstrap",
"license": { "contributors": [
"type": "MIT", "David Miller (http://davidmiller.io/)"
"url": "https://github.com/BlackrockDigital/startbootstrap/blob/gh-pages/LICENSE" ],
},
"devDependencies": {
"bootstrap": "^4.0.0-alpha.6",
"browser-sync": "^2.13.0",
"font-awesome": "^4.6.3",
"gulp": "^3.9.1",
"gulp-clean-css": "^2.0.10",
"gulp-header": "^1.8.7",
"gulp-less": "^3.1.0",
"gulp-rename": "^1.2.2",
"gulp-sass": "^2.3.2",
"gulp-uglify": "^1.5.4",
"jquery": "^3.1.1",
"tether": "^1.4.0"
},
"repository": { "repository": {
"type": "git", "type": "git",
"url": "https://github.com/BlackrockDigital/startbootstrap-agency.git" "url": "https://github.com/BlackrockDigital/startbootstrap-agency.git"
},
"dependencies": {
"bootstrap": "^4.0.0-alpha.6",
"font-awesome": "^4.6.3",
"jquery": "^3.2.1",
"jquery.easing": "^1.4.1",
"tether": "^1.4.0"
},
"devDependencies": {
"browser-sync": "^2.18.8",
"gulp": "^3.9.1",
"gulp-clean-css": "^3.0.4",
"gulp-header": "^1.8.7",
"gulp-rename": "^1.2.2",
"gulp-sass": "^3.1.0",
"gulp-uglify": "^2.1.2"
} }
} }

View File

@ -0,0 +1,19 @@
// Bootstrap overrides for this template
.text-primary {
color: $theme-primary !important;
}
.btn-primary {
@include button-variant(white, $theme-primary, $theme-primary);
@include heading-font;
font-weight: 700;
}
.btn-xl {
@include button-variant(white, $theme-primary, $theme-primary);
@include heading-font;
font-weight: 700;
border-radius: 3px;
font-size: 18px;
padding: 20px 40px;
}

52
scss/_contact.scss Normal file
View File

@ -0,0 +1,52 @@
// Styling for the contact section
section#contact {
background-color: $gray-darker;
background-image: url('../img/map-image.png');
background-position: center;
background-repeat: no-repeat;
.section-heading {
color: white;
}
.form-group {
margin-bottom: 25px;
input,
textarea {
padding: 20px;
}
input.form-control {
height: auto;
}
textarea.form-control {
height: 236px;
}
}
.form-control:focus {
border-color: $theme-primary;
box-shadow: none;
}
::-webkit-input-placeholder {
@include heading-font;
font-weight: 700;
color: $gray-lighter;
}
:-moz-placeholder {
/* Firefox 18- */
@include heading-font;
font-weight: 700;
color: $gray-lighter;
}
::-moz-placeholder {
/* Firefox 19+ */
@include heading-font;
font-weight: 700;
color: $gray-lighter;
}
:-ms-input-placeholder {
@include heading-font;
font-weight: 700;
color: $gray-lighter;
}
.text-danger {
color: $theme-danger;
}
}

43
scss/_footer.scss Normal file
View File

@ -0,0 +1,43 @@
// Styling for the footer
footer {
padding: 25px 0;
text-align: center;
span.copyright {
font-size: 90%;
line-height: 40px;
@include heading-font;
text-transform: none;
}
ul.quicklinks {
font-size: 90%;
margin-bottom: 0;
line-height: 40px;
@include heading-font;
text-transform: none;
}
}
ul.social-buttons {
margin-bottom: 0;
li {
a {
display: block;
background-color: $gray-darker;
height: 40px;
width: 40px;
border-radius: 100%;
font-size: 20px;
line-height: 40px;
color: white;
outline: none;
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.3s;
&:hover,
&:focus,
&:active {
background-color: $theme-primary;
}
}
}
}

75
scss/_global.scss Normal file
View File

@ -0,0 +1,75 @@
// Global styling for this template
body {
overflow-x: hidden;
@include body-font;
}
p {
line-height: 1.75;
}
a {
color: $theme-primary;
&:hover,
&:focus,
&:active,
&.active {
color: darken($theme-primary, 10%);
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
@include heading-font;
font-weight: 700;
}
section {
padding: 100px 0;
h2.section-heading {
font-size: 40px;
margin-top: 0;
margin-bottom: 15px;
}
h3.section-subheading {
font-size: 16px;
@include serif-font;
text-transform: none;
font-style: italic;
font-weight: 400;
margin-bottom: 75px;
}
}
@media(min-width:768px) {
section {
padding: 150px 0;
}
}
// Highlight color customization
::-moz-selection {
text-shadow: none;
background: $theme-primary;
}
::selection {
text-shadow: none;
background: $theme-primary;
}
img::selection {
background: transparent;
}
img::-moz-selection {
background: transparent;
}
body {
-webkit-tap-highlight-color: $theme-primary;
}

51
scss/_masthead.scss Normal file
View File

@ -0,0 +1,51 @@
// Styling for the masthead
header.masthead {
background-image: url('../img/header-bg.jpg');
background-repeat: no-repeat;
background-attachment: scroll;
background-position: center center;
@include background-cover;
text-align: center;
color: white;
.intro-text {
padding-top: 100px;
padding-bottom: 50px;
.intro-lead-in {
@include serif-font;
font-style: italic;
font-size: 22px;
line-height: 22px;
margin-bottom: 25px;
}
.intro-heading {
@include heading-font;
font-weight: 700;
font-size: 50px;
line-height: 50px;
margin-bottom: 25px;
}
}
}
@media(min-width:768px) {
header.masthead {
.intro-text {
padding-top: 300px;
padding-bottom: 200px;
.intro-lead-in {
@include serif-font;
font-style: italic;
font-size: 40px;
line-height: 40px;
margin-bottom: 25px;
}
.intro-heading {
@include heading-font;
font-weight: 700;
font-size: 75px;
line-height: 75px;
margin-bottom: 50px;
}
}
}
}

75
scss/_navbar.scss Normal file
View File

@ -0,0 +1,75 @@
// Styling for the navbar
#mainNav {
background-color: $gray-darker;
.navbar-toggler {
border: 0;
color: white;
background-color: $theme-primary;
font-size: 12px;
text-transform: uppercase;
@include heading-font;
padding: 13px;
right: 0;
}
.container {
padding: 0;
.navbar-brand {
color: $theme-primary;
@include script-font;
&:hover,
&:focus,
&:active,
&.active {
color: darken($theme-primary, 10%);
}
}
.navbar-nav {
.nav-item {
.nav-link {
font-size: 90%;
padding: 0.75em 0;
@include heading-font;
font-weight: 400;
letter-spacing: 1px;
color: white;
&:hover,
&.active {
color: $theme-primary;
}
}
}
}
}
}
@media(min-width:992px) {
#mainNav {
background-color: transparent;
padding: 25px 0;
-webkit-transition: padding 0.3s;
-moz-transition: padding 0.3s;
transition: padding 0.3s;
border: none;
.navbar-brand {
font-size: 1.75em;
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.3s;
}
.navbar-nav {
.nav-item {
.nav-link {
padding: 1.1em 1em !important;
}
}
}
&.navbar-shrink {
background-color: $gray-darker;
padding: 0;
.navbar-brand {
padding: 12px 0;
font-size: 1.25em;
}
}
}
}

152
scss/_portfolio.scss Normal file
View File

@ -0,0 +1,152 @@
// Styling for the portfolio section
#portfolio {
.portfolio-item {
margin: 0 0 15px;
right: 0;
.portfolio-link {
cursor: pointer;
display: block;
position: relative;
max-width: 400px;
margin: 0 auto;
.portfolio-hover {
background: fade-out($theme-primary, .1);
position: absolute;
width: 100%;
height: 100%;
opacity: 0;
transition: all ease 0.5s;
-webkit-transition: all ease 0.5s;
-moz-transition: all ease 0.5s;
&:hover {
opacity: 1;
}
.portfolio-hover-content {
position: absolute;
width: 100%;
height: 20px;
font-size: 20px;
text-align: center;
top: 50%;
margin-top: -12px;
color: white;
i {
margin-top: -12px;
}
h3,
h4 {
margin: 0;
}
}
}
}
.portfolio-caption {
max-width: 400px;
margin: 0 auto;
background-color: white;
text-align: center;
padding: 25px;
h4 {
text-transform: none;
margin: 0;
}
p {
@include serif-font;
font-style: italic;
font-size: 16px;
margin: 0;
}
}
}
* {
z-index: 2;
}
}
@media(min-width:767px) {
#portfolio {
.portfolio-item {
margin: 0 0 30px;
}
}
}
.portfolio-modal {
.modal-dialog {
margin: 0;
height: 100%;
max-width: none;
}
.modal-content {
border-radius: 0;
background-clip: border-box;
-webkit-box-shadow: none;
box-shadow: none;
border: none;
min-height: 100%;
padding: 100px 0;
text-align: center;
h2 {
margin-bottom: 15px;
font-size: 3em;
}
p {
margin-bottom: 30px;
}
p.item-intro {
margin: 20px 0 30px;
@include serif-font;
font-style: italic;
font-size: 16px;
}
ul.list-inline {
margin-bottom: 30px;
margin-top: 0;
}
img {
margin-bottom: 30px;
}
button {
cursor: pointer;
}
}
.close-modal {
position: absolute;
width: 75px;
height: 75px;
background-color: transparent;
top: 25px;
right: 25px;
cursor: pointer;
&:hover {
opacity: 0.3;
}
.lr {
height: 75px;
width: 1px;
margin-left: 35px;
background-color: $gray-darker;
transform: rotate(45deg);
-ms-transform: rotate(45deg);
/* IE 9 */
-webkit-transform: rotate(45deg);
/* Safari and Chrome */
z-index: 1051;
.rl {
height: 75px;
width: 1px;
background-color: $gray-darker;
transform: rotate(90deg);
-ms-transform: rotate(90deg);
/* IE 9 */
-webkit-transform: rotate(90deg);
/* Safari and Chrome */
z-index: 1052;
}
}
}
.modal-backdrop {
opacity: 0;
display: none;
}
}

5
scss/_services.scss Normal file
View File

@ -0,0 +1,5 @@
// Styling for the services section
.service-heading {
margin: 15px 0;
text-transform: none;
}

18
scss/_team.scss Normal file
View File

@ -0,0 +1,18 @@
// Styling for the team section
.team-member {
text-align: center;
margin-bottom: 50px;
img {
height: 225px;
width: 225px;
border: 7px solid white;
}
h4 {
margin-top: 25px;
margin-bottom: 0;
text-transform: none;
}
p {
margin-top: 0;
}
}

181
scss/_timeline.scss Normal file
View File

@ -0,0 +1,181 @@
// Styling for the timeline section
.timeline {
list-style: none;
padding: 0;
position: relative;
&:before {
top: 0;
bottom: 0;
position: absolute;
content: "";
width: 2px;
background-color: #f1f1f1;
left: 40px;
margin-left: -1.5px;
}
> li {
margin-bottom: 50px;
position: relative;
min-height: 50px;
&:before,
&:after {
content: " ";
display: table;
}
&:after {
clear: both;
}
.timeline-panel {
width: 100%;
float: right;
padding: 0 20px 0 100px;
position: relative;
text-align: left;
&:before {
border-left-width: 0;
border-right-width: 15px;
left: -15px;
right: auto;
}
&:after {
border-left-width: 0;
border-right-width: 14px;
left: -14px;
right: auto;
}
}
.timeline-image {
left: 0;
margin-left: 0;
width: 80px;
height: 80px;
position: absolute;
z-index: 100;
background-color: $theme-primary;
color: white;
border-radius: 100%;
border: 7px solid #f1f1f1;
text-align: center;
h4 {
font-size: 10px;
margin-top: 12px;
line-height: 14px;
}
}
&.timeline-inverted > .timeline-panel {
float: right;
text-align: left;
padding: 0 20px 0 100px;
&:before {
border-left-width: 0;
border-right-width: 15px;
left: -15px;
right: auto;
}
&:after {
border-left-width: 0;
border-right-width: 14px;
left: -14px;
right: auto;
}
}
&:last-child {
margin-bottom: 0;
}
}
.timeline-heading {
h4 {
margin-top: 0;
color: inherit;
&.subheading {
text-transform: none;
}
}
}
.timeline-body {
> p,
> ul {
margin-bottom: 0;
}
}
}
@media(min-width:768px) {
.timeline {
&:before {
left: 50%;
}
> li {
margin-bottom: 100px;
min-height: 100px;
.timeline-panel {
width: 41%;
float: left;
padding: 0 20px 20px 30px;
text-align: right;
}
.timeline-image {
width: 100px;
height: 100px;
left: 50%;
margin-left: -50px;
h4 {
font-size: 13px;
margin-top: 16px;
line-height: 18px;
}
}
&.timeline-inverted > .timeline-panel {
float: right;
text-align: left;
padding: 0 30px 20px 20px;
}
}
}
}
@media(min-width:992px) {
.timeline {
> li {
min-height: 150px;
.timeline-panel {
padding: 0 20px 20px;
}
.timeline-image {
width: 150px;
height: 150px;
margin-left: -75px;
h4 {
font-size: 18px;
margin-top: 30px;
line-height: 26px;
}
}
&.timeline-inverted > .timeline-panel {
padding: 0 20px 20px;
}
}
}
}
@media(min-width:1200px) {
.timeline {
> li {
min-height: 170px;
.timeline-panel {
padding: 0 20px 20px 100px;
}
.timeline-image {
width: 170px;
height: 170px;
margin-left: -85px;
h4 {
margin-top: 40px;
}
}
&.timeline-inverted > .timeline-panel {
padding: 0 100px 20px 20px;
}
}
}
}

View File

@ -1,700 +1,16 @@
// Core variables and mixins
@import "variables.scss"; @import "variables.scss";
@import "mixins.scss"; @import "mixins.scss";
// Global CSS
// Global Components @import "global.scss";
// Components
body { @import "navbar.scss";
overflow-x: hidden; @import "masthead.scss";
@include body-font; @import "services.scss";
} @import "portfolio.scss";
@import "timeline.scss";
.text-primary { @import "team.scss";
color: $theme-primary !important; @import "contact.scss";
} @import "footer.scss";
// Bootstrap Overrides
p { @import "bootstrap-overrides.scss";
line-height: 1.75;
}
a {
color: $theme-primary;
&:hover,
&:focus,
&:active,
&.active {
color: darken($theme-primary, 10%);
}
}
h1, h2, h3, h4, h5, h6 {
@include heading-font;
font-weight: 700;
}
// Restyled Primary Buttons
.btn-primary {
@include button-variant(white, $theme-primary, $theme-primary);
@include heading-font;
font-weight: 700;
}
.btn-xl {
@include button-variant(white, $theme-primary, $theme-primary);
@include heading-font;
font-weight: 700;
border-radius: 3px;
font-size: 18px;
padding: 20px 40px;
}
// Custom Navigation Bar
#mainNav {
background-color: $gray-darker;
.navbar-toggler {
border: 0;
color: white;
background-color: $theme-primary;
font-size: 12px;
text-transform: uppercase;
@include heading-font;
padding: 13px;
right: 0;
}
.container {
padding: 0;
.navbar-brand {
color: $theme-primary;
@include script-font;
&:hover,
&:focus,
&:active,
&.active {
color: darken($theme-primary, 10%);
}
}
.navbar-nav {
.nav-item {
.nav-link {
font-size: 90%;
padding: 0.75em 0;
@include heading-font;
font-weight: 400;
letter-spacing: 1px;
color: white;
&:hover,
&.active {
color: $theme-primary;
}
}
}
}
}
}
@media(min-width:992px) {
#mainNav {
background-color: transparent;
padding: 25px 0;
-webkit-transition: padding 0.3s;
-moz-transition: padding 0.3s;
transition: padding 0.3s;
border: none;
.navbar-brand {
font-size: 1.75em;
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.3s;
}
.navbar-nav {
.nav-item {
.nav-link {
padding: 1.1em 1em !important;
}
}
}
&.navbar-shrink {
background-color: $gray-darker;
padding: 0;
.navbar-brand {
padding: 12px 0;
font-size: 1.25em;
}
}
}
}
header {
background-image: url('../img/header-bg.jpg');
background-repeat: no-repeat;
background-attachment: scroll;
background-position: center center;
@include background-cover;
text-align: center;
color: white;
.intro-text {
padding-top: 100px;
padding-bottom: 50px;
.intro-lead-in {
@include serif-font;
font-style: italic;
font-size: 22px;
line-height: 22px;
margin-bottom: 25px;
}
.intro-heading {
@include heading-font;
font-weight: 700;
font-size: 50px;
line-height: 50px;
margin-bottom: 25px;
}
}
}
@media(min-width:768px) {
header {
.intro-text {
padding-top: 300px;
padding-bottom: 200px;
.intro-lead-in {
@include serif-font;
font-style: italic;
font-size: 40px;
line-height: 40px;
margin-bottom: 25px;
}
.intro-heading {
@include heading-font;
font-weight: 700;
font-size: 75px;
line-height: 75px;
margin-bottom: 50px;
}
}
}
}
// Global Section Styles
section {
padding: 100px 0;
h2.section-heading {
font-size: 40px;
margin-top: 0;
margin-bottom: 15px;
}
h3.section-subheading {
font-size: 16px;
@include serif-font;
text-transform: none;
font-style: italic;
font-weight: 400;
margin-bottom: 75px;
}
}
@media(min-width:768px) {
section {
padding: 150px 0;
}
}
// Services Section
.service-heading {
margin: 15px 0;
text-transform: none;
}
// Portfolio Section
#portfolio {
.portfolio-item {
margin: 0 0 15px;
right: 0;
.portfolio-link {
display: block;
position: relative;
max-width: 400px;
margin: 0 auto;
.portfolio-hover {
background: fade-out($theme-primary, .9);
position: absolute;
width: 100%;
height: 100%;
opacity: 0;
transition: all ease 0.5s;
-webkit-transition: all ease 0.5s;
-moz-transition: all ease 0.5s;
&:hover {
opacity: 1;
}
.portfolio-hover-content {
position: absolute;
width: 100%;
height: 20px;
font-size: 20px;
text-align: center;
top: 50%;
margin-top: -12px;
color: white;
i {
margin-top: -12px;
}
h3,
h4 {
margin: 0;
}
}
}
}
.portfolio-caption {
max-width: 400px;
margin: 0 auto;
background-color: white;
text-align: center;
padding: 25px;
h4 {
text-transform: none;
margin: 0;
}
p {
@include serif-font;
font-style: italic;
font-size: 16px;
margin: 0;
}
}
}
* {
z-index: 2;
}
}
@media(min-width:767px) {
#portfolio {
.portfolio-item {
margin: 0 0 30px;
}
}
}
// Timeline
.timeline {
list-style: none;
padding: 0;
position: relative;
&:before {
top: 0;
bottom: 0;
position: absolute;
content: "";
width: 2px;
background-color: #f1f1f1;
left: 40px;
margin-left: -1.5px;
}
> li {
margin-bottom: 50px;
position: relative;
min-height: 50px;
&:before,
&:after {
content: " ";
display: table;
}
&:after {
clear: both;
}
.timeline-panel {
width: 100%;
float: right;
padding: 0 20px 0 100px;
position: relative;
text-align: left;
&:before {
border-left-width: 0;
border-right-width: 15px;
left: -15px;
right: auto;
}
&:after {
border-left-width: 0;
border-right-width: 14px;
left: -14px;
right: auto;
}
}
.timeline-image {
left: 0;
margin-left: 0;
width: 80px;
height: 80px;
position: absolute;
z-index: 100;
background-color: $theme-primary;
color: white;
border-radius: 100%;
border: 7px solid #f1f1f1;
text-align: center;
h4 {
font-size: 10px;
margin-top: 12px;
line-height: 14px;
}
}
&.timeline-inverted > .timeline-panel {
float: right;
text-align: left;
padding: 0 20px 0 100px;
&:before {
border-left-width: 0;
border-right-width: 15px;
left: -15px;
right: auto;
}
&:after {
border-left-width: 0;
border-right-width: 14px;
left: -14px;
right: auto;
}
}
&:last-child {
margin-bottom: 0;
}
}
.timeline-heading {
h4 {
margin-top: 0;
color: inherit;
&.subheading {
text-transform: none;
}
}
}
.timeline-body {
> p,
> ul {
margin-bottom: 0;
}
}
}
@media(min-width:768px) {
.timeline {
&:before {
left: 50%;
}
> li {
margin-bottom: 100px;
min-height: 100px;
.timeline-panel {
width: 41%;
float: left;
padding: 0 20px 20px 30px;
text-align: right;
}
.timeline-image {
width: 100px;
height: 100px;
left: 50%;
margin-left: -50px;
h4 {
font-size: 13px;
margin-top: 16px;
line-height: 18px;
}
}
&.timeline-inverted > .timeline-panel {
float: right;
text-align: left;
padding: 0 30px 20px 20px;
}
}
}
}
@media(min-width:992px) {
.timeline {
> li {
min-height: 150px;
.timeline-panel {
padding: 0 20px 20px;
}
.timeline-image {
width: 150px;
height: 150px;
margin-left: -75px;
h4 {
font-size: 18px;
margin-top: 30px;
line-height: 26px;
}
}
&.timeline-inverted > .timeline-panel {
padding: 0 20px 20px;
}
}
}
}
@media(min-width:1200px) {
.timeline {
> li {
min-height: 170px;
.timeline-panel {
padding: 0 20px 20px 100px;
}
.timeline-image {
width: 170px;
height: 170px;
margin-left: -85px;
h4 {
margin-top: 40px;
}
}
&.timeline-inverted > .timeline-panel {
padding: 0 100px 20px 20px;
}
}
}
}
// Team Section
.team-member {
text-align: center;
margin-bottom: 50px;
img {
height: 225px;
width: 225px;
border: 7px solid white;
}
h4 {
margin-top: 25px;
margin-bottom: 0;
text-transform: none;
}
p {
margin-top: 0;
}
}
// Clients Aside
aside.clients {
img {
margin: 50px auto;
}
}
// Contact Section
section#contact {
background-color: $gray-darker;
background-image: url('../img/map-image.png');
background-position: center;
background-repeat: no-repeat;
.section-heading {
color: white;
}
.form-group {
margin-bottom: 25px;
input,
textarea {
padding: 20px;
}
input.form-control {
height: auto;
}
textarea.form-control {
height: 236px;
}
}
.form-control:focus {
border-color: $theme-primary;
box-shadow: none;
}
::-webkit-input-placeholder {
@include heading-font;
font-weight: 700;
color: $gray-lighter;
}
:-moz-placeholder { /* Firefox 18- */
@include heading-font;
font-weight: 700;
color: $gray-lighter;
}
::-moz-placeholder { /* Firefox 19+ */
@include heading-font;
font-weight: 700;
color: $gray-lighter;
}
:-ms-input-placeholder {
@include heading-font;
font-weight: 700;
color: $gray-lighter;
}
.text-danger {
color: $theme-danger;
}
}
// Footer
footer {
padding: 25px 0;
text-align: center;
span.copyright {
font-size: 90%;
line-height: 40px;
@include heading-font;
text-transform: none;
}
ul.quicklinks {
font-size: 90%;
margin-bottom: 0;
line-height: 40px;
@include heading-font;
text-transform: none;
}
}
// Social Buttons
ul.social-buttons {
margin-bottom: 0;
li {
a {
display: block;
background-color: $gray-darker;
height: 40px;
width: 40px;
border-radius: 100%;
font-size: 20px;
line-height: 40px;
color: white;
outline: none;
-webkit-transition: all 0.3s;
-moz-transition: all 0.3s;
transition: all 0.3s;
&:hover,
&:focus,
&:active {
background-color: $theme-primary;
}
}
}
}
.btn:focus,
.btn:active,
.btn.active,
.btn:active:focus {
outline: none;
}
.portfolio-modal {
.modal-dialog{
margin: 0;
height: 100%;
max-width: none;
}
.modal-content {
border-radius: 0;
background-clip: border-box;
-webkit-box-shadow: none;
box-shadow: none;
border: none;
min-height: 100%;
padding: 100px 0;
text-align: center;
h2 {
margin-bottom: 15px;
font-size: 3em;
}
p {
margin-bottom: 30px;
}
p.item-intro {
margin: 20px 0 30px;
@include serif-font;
font-style: italic;
font-size: 16px;
}
ul.list-inline {
margin-bottom: 30px;
margin-top: 0;
}
img {
margin-bottom: 30px;
}
}
.close-modal {
position: absolute;
width:75px;
height:75px;
background-color:transparent;
top: 25px;
right: 25px;
cursor: pointer;
&:hover {
opacity: 0.3;
}
.lr {
height:75px;
width:1px;
margin-left:35px;
background-color:$gray-darker;
transform: rotate(45deg);
-ms-transform: rotate(45deg);
/* IE 9 */
-webkit-transform: rotate(45deg);
/* Safari and Chrome */
z-index:1051;
.rl {
height:75px;
width:1px;
background-color:$gray-darker;
transform: rotate(90deg);
-ms-transform: rotate(90deg);
/* IE 9 */
-webkit-transform: rotate(90deg);
/* Safari and Chrome */
z-index:1052;
}
}
}
.modal-backdrop {
opacity: 0;
display: none;
}
}
// Highlight Color Customization
::-moz-selection {
text-shadow: none;
background: $theme-primary;
}
::selection {
text-shadow: none;
background: $theme-primary;
}
img::selection {
background: transparent;
}
img::-moz-selection {
background: transparent;
}
body {
webkit-tap-highlight-color: $theme-primary;
}

View File

Before

Width:  |  Height:  |  Size: 434 KiB

After

Width:  |  Height:  |  Size: 434 KiB

View File

@ -0,0 +1,59 @@
/*
* Easing Compatibility v1 - http://gsgd.co.uk/sandbox/jquery/easing
*
* Adds compatibility for applications that use the pre 1.2 easing names
*
* Copyright (c) 2007 George Smith
* Licensed under the MIT License:
* http://www.opensource.org/licenses/mit-license.php
*/
(function($){
$.extend( $.easing,
{
easeIn: function (x, t, b, c, d) {
return $.easing.easeInQuad(x, t, b, c, d);
},
easeOut: function (x, t, b, c, d) {
return $.easing.easeOutQuad(x, t, b, c, d);
},
easeInOut: function (x, t, b, c, d) {
return $.easing.easeInOutQuad(x, t, b, c, d);
},
expoin: function(x, t, b, c, d) {
return $.easing.easeInExpo(x, t, b, c, d);
},
expoout: function(x, t, b, c, d) {
return $.easing.easeOutExpo(x, t, b, c, d);
},
expoinout: function(x, t, b, c, d) {
return $.easing.easeInOutExpo(x, t, b, c, d);
},
bouncein: function(x, t, b, c, d) {
return $.easing.easeInBounce(x, t, b, c, d);
},
bounceout: function(x, t, b, c, d) {
return $.easing.easeOutBounce(x, t, b, c, d);
},
bounceinout: function(x, t, b, c, d) {
return $.easing.easeInOutBounce(x, t, b, c, d);
},
elasin: function(x, t, b, c, d) {
return $.easing.easeInElastic(x, t, b, c, d);
},
elasout: function(x, t, b, c, d) {
return $.easing.easeOutElastic(x, t, b, c, d);
},
elasinout: function(x, t, b, c, d) {
return $.easing.easeInOutElastic(x, t, b, c, d);
},
backin: function(x, t, b, c, d) {
return $.easing.easeInBack(x, t, b, c, d);
},
backout: function(x, t, b, c, d) {
return $.easing.easeOutBack(x, t, b, c, d);
},
backinout: function(x, t, b, c, d) {
return $.easing.easeInOutBack(x, t, b, c, d);
}
});})(jQuery);

166
vendor/jquery-easing/jquery.easing.js vendored Executable file
View File

@ -0,0 +1,166 @@
/*
* jQuery Easing v1.4.1 - http://gsgd.co.uk/sandbox/jquery/easing/
* Open source under the BSD License.
* Copyright © 2008 George McGinley Smith
* All rights reserved.
* https://raw.github.com/gdsmith/jquery-easing/master/LICENSE
*/
(function (factory) {
if (typeof define === "function" && define.amd) {
define(['jquery'], function ($) {
return factory($);
});
} else if (typeof module === "object" && typeof module.exports === "object") {
exports = factory(require('jquery'));
} else {
factory(jQuery);
}
})(function($){
// Preserve the original jQuery "swing" easing as "jswing"
$.easing.jswing = $.easing.swing;
var pow = Math.pow,
sqrt = Math.sqrt,
sin = Math.sin,
cos = Math.cos,
PI = Math.PI,
c1 = 1.70158,
c2 = c1 * 1.525,
c3 = c1 + 1,
c4 = ( 2 * PI ) / 3,
c5 = ( 2 * PI ) / 4.5;
// x is the fraction of animation progress, in the range 0..1
function bounceOut(x) {
var n1 = 7.5625,
d1 = 2.75;
if ( x < 1/d1 ) {
return n1*x*x;
} else if ( x < 2/d1 ) {
return n1*(x-=(1.5/d1))*x + 0.75;
} else if ( x < 2.5/d1 ) {
return n1*(x-=(2.25/d1))*x + 0.9375;
} else {
return n1*(x-=(2.625/d1))*x + 0.984375;
}
}
$.extend( $.easing,
{
def: 'easeOutQuad',
swing: function (x) {
return $.easing[$.easing.def](x);
},
easeInQuad: function (x) {
return x * x;
},
easeOutQuad: function (x) {
return 1 - ( 1 - x ) * ( 1 - x );
},
easeInOutQuad: function (x) {
return x < 0.5 ?
2 * x * x :
1 - pow( -2 * x + 2, 2 ) / 2;
},
easeInCubic: function (x) {
return x * x * x;
},
easeOutCubic: function (x) {
return 1 - pow( 1 - x, 3 );
},
easeInOutCubic: function (x) {
return x < 0.5 ?
4 * x * x * x :
1 - pow( -2 * x + 2, 3 ) / 2;
},
easeInQuart: function (x) {
return x * x * x * x;
},
easeOutQuart: function (x) {
return 1 - pow( 1 - x, 4 );
},
easeInOutQuart: function (x) {
return x < 0.5 ?
8 * x * x * x * x :
1 - pow( -2 * x + 2, 4 ) / 2;
},
easeInQuint: function (x) {
return x * x * x * x * x;
},
easeOutQuint: function (x) {
return 1 - pow( 1 - x, 5 );
},
easeInOutQuint: function (x) {
return x < 0.5 ?
16 * x * x * x * x * x :
1 - pow( -2 * x + 2, 5 ) / 2;
},
easeInSine: function (x) {
return 1 - cos( x * PI/2 );
},
easeOutSine: function (x) {
return sin( x * PI/2 );
},
easeInOutSine: function (x) {
return -( cos( PI * x ) - 1 ) / 2;
},
easeInExpo: function (x) {
return x === 0 ? 0 : pow( 2, 10 * x - 10 );
},
easeOutExpo: function (x) {
return x === 1 ? 1 : 1 - pow( 2, -10 * x );
},
easeInOutExpo: function (x) {
return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ?
pow( 2, 20 * x - 10 ) / 2 :
( 2 - pow( 2, -20 * x + 10 ) ) / 2;
},
easeInCirc: function (x) {
return 1 - sqrt( 1 - pow( x, 2 ) );
},
easeOutCirc: function (x) {
return sqrt( 1 - pow( x - 1, 2 ) );
},
easeInOutCirc: function (x) {
return x < 0.5 ?
( 1 - sqrt( 1 - pow( 2 * x, 2 ) ) ) / 2 :
( sqrt( 1 - pow( -2 * x + 2, 2 ) ) + 1 ) / 2;
},
easeInElastic: function (x) {
return x === 0 ? 0 : x === 1 ? 1 :
-pow( 2, 10 * x - 10 ) * sin( ( x * 10 - 10.75 ) * c4 );
},
easeOutElastic: function (x) {
return x === 0 ? 0 : x === 1 ? 1 :
pow( 2, -10 * x ) * sin( ( x * 10 - 0.75 ) * c4 ) + 1;
},
easeInOutElastic: function (x) {
return x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ?
-( pow( 2, 20 * x - 10 ) * sin( ( 20 * x - 11.125 ) * c5 )) / 2 :
pow( 2, -20 * x + 10 ) * sin( ( 20 * x - 11.125 ) * c5 ) / 2 + 1;
},
easeInBack: function (x) {
return c3 * x * x * x - c1 * x * x;
},
easeOutBack: function (x) {
return 1 + c3 * pow( x - 1, 3 ) + c1 * pow( x - 1, 2 );
},
easeInOutBack: function (x) {
return x < 0.5 ?
( pow( 2 * x, 2 ) * ( ( c2 + 1 ) * 2 * x - c2 ) ) / 2 :
( pow( 2 * x - 2, 2 ) *( ( c2 + 1 ) * ( x * 2 - 2 ) + c2 ) + 2 ) / 2;
},
easeInBounce: function (x) {
return 1 - bounceOut( 1 - x );
},
easeOutBounce: bounceOut,
easeInOutBounce: function (x) {
return x < 0.5 ?
( 1 - bounceOut( 1 - 2 * x ) ) / 2 :
( 1 + bounceOut( 2 * x - 1 ) ) / 2;
}
});
});

1
vendor/jquery-easing/jquery.easing.min.js vendored Executable file
View File

@ -0,0 +1 @@
(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],function($){return factory($)})}else if(typeof module==="object"&&typeof module.exports==="object"){exports=factory(require("jquery"))}else{factory(jQuery)}})(function($){$.easing.jswing=$.easing.swing;var pow=Math.pow,sqrt=Math.sqrt,sin=Math.sin,cos=Math.cos,PI=Math.PI,c1=1.70158,c2=c1*1.525,c3=c1+1,c4=2*PI/3,c5=2*PI/4.5;function bounceOut(x){var n1=7.5625,d1=2.75;if(x<1/d1){return n1*x*x}else if(x<2/d1){return n1*(x-=1.5/d1)*x+.75}else if(x<2.5/d1){return n1*(x-=2.25/d1)*x+.9375}else{return n1*(x-=2.625/d1)*x+.984375}}$.extend($.easing,{def:"easeOutQuad",swing:function(x){return $.easing[$.easing.def](x)},easeInQuad:function(x){return x*x},easeOutQuad:function(x){return 1-(1-x)*(1-x)},easeInOutQuad:function(x){return x<.5?2*x*x:1-pow(-2*x+2,2)/2},easeInCubic:function(x){return x*x*x},easeOutCubic:function(x){return 1-pow(1-x,3)},easeInOutCubic:function(x){return x<.5?4*x*x*x:1-pow(-2*x+2,3)/2},easeInQuart:function(x){return x*x*x*x},easeOutQuart:function(x){return 1-pow(1-x,4)},easeInOutQuart:function(x){return x<.5?8*x*x*x*x:1-pow(-2*x+2,4)/2},easeInQuint:function(x){return x*x*x*x*x},easeOutQuint:function(x){return 1-pow(1-x,5)},easeInOutQuint:function(x){return x<.5?16*x*x*x*x*x:1-pow(-2*x+2,5)/2},easeInSine:function(x){return 1-cos(x*PI/2)},easeOutSine:function(x){return sin(x*PI/2)},easeInOutSine:function(x){return-(cos(PI*x)-1)/2},easeInExpo:function(x){return x===0?0:pow(2,10*x-10)},easeOutExpo:function(x){return x===1?1:1-pow(2,-10*x)},easeInOutExpo:function(x){return x===0?0:x===1?1:x<.5?pow(2,20*x-10)/2:(2-pow(2,-20*x+10))/2},easeInCirc:function(x){return 1-sqrt(1-pow(x,2))},easeOutCirc:function(x){return sqrt(1-pow(x-1,2))},easeInOutCirc:function(x){return x<.5?(1-sqrt(1-pow(2*x,2)))/2:(sqrt(1-pow(-2*x+2,2))+1)/2},easeInElastic:function(x){return x===0?0:x===1?1:-pow(2,10*x-10)*sin((x*10-10.75)*c4)},easeOutElastic:function(x){return x===0?0:x===1?1:pow(2,-10*x)*sin((x*10-.75)*c4)+1},easeInOutElastic:function(x){return x===0?0:x===1?1:x<.5?-(pow(2,20*x-10)*sin((20*x-11.125)*c5))/2:pow(2,-20*x+10)*sin((20*x-11.125)*c5)/2+1},easeInBack:function(x){return c3*x*x*x-c1*x*x},easeOutBack:function(x){return 1+c3*pow(x-1,3)+c1*pow(x-1,2)},easeInOutBack:function(x){return x<.5?pow(2*x,2)*((c2+1)*2*x-c2)/2:(pow(2*x-2,2)*((c2+1)*(x*2-2)+c2)+2)/2},easeInBounce:function(x){return 1-bounceOut(1-x)},easeOutBounce:bounceOut,easeInOutBounce:function(x){return x<.5?(1-bounceOut(1-2*x))/2:(1+bounceOut(2*x-1))/2}})});

View File

@ -1,15 +1,15 @@
/*! /*!
* jQuery JavaScript Library v3.1.1 * jQuery JavaScript Library v3.2.1
* https://jquery.com/ * https://jquery.com/
* *
* Includes Sizzle.js * Includes Sizzle.js
* https://sizzlejs.com/ * https://sizzlejs.com/
* *
* Copyright jQuery Foundation and other contributors * Copyright JS Foundation and other contributors
* Released under the MIT license * Released under the MIT license
* https://jquery.org/license * https://jquery.org/license
* *
* Date: 2016-09-22T22:30Z * Date: 2017-03-20T18:59Z
*/ */
( function( global, factory ) { ( function( global, factory ) {
@ -88,7 +88,7 @@ var support = {};
var var
version = "3.1.1", version = "3.2.1",
// Define a local copy of jQuery // Define a local copy of jQuery
jQuery = function( selector, context ) { jQuery = function( selector, context ) {
@ -236,11 +236,11 @@ jQuery.extend = jQuery.fn.extend = function() {
// Recurse if we're merging plain objects or arrays // Recurse if we're merging plain objects or arrays
if ( deep && copy && ( jQuery.isPlainObject( copy ) || if ( deep && copy && ( jQuery.isPlainObject( copy ) ||
( copyIsArray = jQuery.isArray( copy ) ) ) ) { ( copyIsArray = Array.isArray( copy ) ) ) ) {
if ( copyIsArray ) { if ( copyIsArray ) {
copyIsArray = false; copyIsArray = false;
clone = src && jQuery.isArray( src ) ? src : []; clone = src && Array.isArray( src ) ? src : [];
} else { } else {
clone = src && jQuery.isPlainObject( src ) ? src : {}; clone = src && jQuery.isPlainObject( src ) ? src : {};
@ -279,8 +279,6 @@ jQuery.extend( {
return jQuery.type( obj ) === "function"; return jQuery.type( obj ) === "function";
}, },
isArray: Array.isArray,
isWindow: function( obj ) { isWindow: function( obj ) {
return obj != null && obj === obj.window; return obj != null && obj === obj.window;
}, },
@ -355,10 +353,6 @@ jQuery.extend( {
return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase );
}, },
nodeName: function( elem, name ) {
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
},
each: function( obj, callback ) { each: function( obj, callback ) {
var length, i = 0; var length, i = 0;
@ -2843,6 +2837,13 @@ var siblings = function( n, elem ) {
var rneedsContext = jQuery.expr.match.needsContext; var rneedsContext = jQuery.expr.match.needsContext;
function nodeName( elem, name ) {
return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();
};
var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i );
@ -3194,7 +3195,18 @@ jQuery.each( {
return siblings( elem.firstChild ); return siblings( elem.firstChild );
}, },
contents: function( elem ) { contents: function( elem ) {
return elem.contentDocument || jQuery.merge( [], elem.childNodes ); if ( nodeName( elem, "iframe" ) ) {
return elem.contentDocument;
}
// Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only
// Treat the template element as a regular one in browsers that
// don't support it.
if ( nodeName( elem, "template" ) ) {
elem = elem.content || elem;
}
return jQuery.merge( [], elem.childNodes );
} }
}, function( name, fn ) { }, function( name, fn ) {
jQuery.fn[ name ] = function( until, selector ) { jQuery.fn[ name ] = function( until, selector ) {
@ -3292,7 +3304,7 @@ jQuery.Callbacks = function( options ) {
fire = function() { fire = function() {
// Enforce single-firing // Enforce single-firing
locked = options.once; locked = locked || options.once;
// Execute callbacks for all pending executions, // Execute callbacks for all pending executions,
// respecting firingIndex overrides and runtime changes // respecting firingIndex overrides and runtime changes
@ -3461,7 +3473,7 @@ function Thrower( ex ) {
throw ex; throw ex;
} }
function adoptValue( value, resolve, reject ) { function adoptValue( value, resolve, reject, noValue ) {
var method; var method;
try { try {
@ -3477,9 +3489,10 @@ function adoptValue( value, resolve, reject ) {
// Other non-thenables // Other non-thenables
} else { } else {
// Support: Android 4.0 only // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:
// Strict mode functions invoked without .call/.apply get global-object context // * false: [ value ].slice( 0 ) => resolve( value )
resolve.call( undefined, value ); // * true: [ value ].slice( 1 ) => resolve()
resolve.apply( undefined, [ value ].slice( noValue ) );
} }
// For Promises/A+, convert exceptions into rejections // For Promises/A+, convert exceptions into rejections
@ -3489,7 +3502,7 @@ function adoptValue( value, resolve, reject ) {
// Support: Android 4.0 only // Support: Android 4.0 only
// Strict mode functions invoked without .call/.apply get global-object context // Strict mode functions invoked without .call/.apply get global-object context
reject.call( undefined, value ); reject.apply( undefined, [ value ] );
} }
} }
@ -3814,7 +3827,8 @@ jQuery.extend( {
// Single- and empty arguments are adopted like Promise.resolve // Single- and empty arguments are adopted like Promise.resolve
if ( remaining <= 1 ) { if ( remaining <= 1 ) {
adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject ); adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,
!remaining );
// Use .then() to unwrap secondary thenables (cf. gh-3000) // Use .then() to unwrap secondary thenables (cf. gh-3000)
if ( master.state() === "pending" || if ( master.state() === "pending" ||
@ -3886,15 +3900,6 @@ jQuery.extend( {
// the ready event fires. See #6781 // the ready event fires. See #6781
readyWait: 1, readyWait: 1,
// Hold (or release) the ready event
holdReady: function( hold ) {
if ( hold ) {
jQuery.readyWait++;
} else {
jQuery.ready( true );
}
},
// Handle when the DOM is ready // Handle when the DOM is ready
ready: function( wait ) { ready: function( wait ) {
@ -4130,7 +4135,7 @@ Data.prototype = {
if ( key !== undefined ) { if ( key !== undefined ) {
// Support array or space separated string of keys // Support array or space separated string of keys
if ( jQuery.isArray( key ) ) { if ( Array.isArray( key ) ) {
// If key is an array of keys... // If key is an array of keys...
// We always set camelCase keys, so remove that. // We always set camelCase keys, so remove that.
@ -4356,7 +4361,7 @@ jQuery.extend( {
// Speed up dequeue by getting out quickly if this is just a lookup // Speed up dequeue by getting out quickly if this is just a lookup
if ( data ) { if ( data ) {
if ( !queue || jQuery.isArray( data ) ) { if ( !queue || Array.isArray( data ) ) {
queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); queue = dataPriv.access( elem, type, jQuery.makeArray( data ) );
} else { } else {
queue.push( data ); queue.push( data );
@ -4733,7 +4738,7 @@ function getAll( context, tag ) {
ret = []; ret = [];
} }
if ( tag === undefined || tag && jQuery.nodeName( context, tag ) ) { if ( tag === undefined || tag && nodeName( context, tag ) ) {
return jQuery.merge( [ context ], ret ); return jQuery.merge( [ context ], ret );
} }
@ -5340,7 +5345,7 @@ jQuery.event = {
// For checkbox, fire native event so checked state will be right // For checkbox, fire native event so checked state will be right
trigger: function() { trigger: function() {
if ( this.type === "checkbox" && this.click && jQuery.nodeName( this, "input" ) ) { if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) {
this.click(); this.click();
return false; return false;
} }
@ -5348,7 +5353,7 @@ jQuery.event = {
// For cross-browser consistency, don't fire native .click() on links // For cross-browser consistency, don't fire native .click() on links
_default: function( event ) { _default: function( event ) {
return jQuery.nodeName( event.target, "a" ); return nodeName( event.target, "a" );
} }
}, },
@ -5625,11 +5630,12 @@ var
rscriptTypeMasked = /^true\/(.*)/, rscriptTypeMasked = /^true\/(.*)/,
rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g; rcleanScript = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;
// Prefer a tbody over its parent table for containing new rows
function manipulationTarget( elem, content ) { function manipulationTarget( elem, content ) {
if ( jQuery.nodeName( elem, "table" ) && if ( nodeName( elem, "table" ) &&
jQuery.nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) {
return elem.getElementsByTagName( "tbody" )[ 0 ] || elem; return jQuery( ">tbody", elem )[ 0 ] || elem;
} }
return elem; return elem;
@ -6159,12 +6165,18 @@ var getStyles = function( elem ) {
function curCSS( elem, name, computed ) { function curCSS( elem, name, computed ) {
var width, minWidth, maxWidth, ret, var width, minWidth, maxWidth, ret,
// Support: Firefox 51+
// Retrieving style before computed somehow
// fixes an issue with getting wrong values
// on detached elements
style = elem.style; style = elem.style;
computed = computed || getStyles( elem ); computed = computed || getStyles( elem );
// Support: IE <=9 only // getPropertyValue is needed for:
// getPropertyValue is only needed for .css('filter') (#12537) // .css('filter') (IE 9 only, #12537)
// .css('--customProperty) (#3144)
if ( computed ) { if ( computed ) {
ret = computed.getPropertyValue( name ) || computed[ name ]; ret = computed.getPropertyValue( name ) || computed[ name ];
@ -6230,6 +6242,7 @@ var
// except "table", "table-cell", or "table-caption" // except "table", "table-cell", or "table-caption"
// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
rdisplayswap = /^(none|table(?!-c[ea]).+)/, rdisplayswap = /^(none|table(?!-c[ea]).+)/,
rcustomProp = /^--/,
cssShow = { position: "absolute", visibility: "hidden", display: "block" }, cssShow = { position: "absolute", visibility: "hidden", display: "block" },
cssNormalTransform = { cssNormalTransform = {
letterSpacing: "0", letterSpacing: "0",
@ -6259,6 +6272,16 @@ function vendorPropName( name ) {
} }
} }
// Return a property mapped along what jQuery.cssProps suggests or to
// a vendor prefixed property.
function finalPropName( name ) {
var ret = jQuery.cssProps[ name ];
if ( !ret ) {
ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
}
return ret;
}
function setPositiveNumber( elem, value, subtract ) { function setPositiveNumber( elem, value, subtract ) {
// Any relative (+/-) values have already been // Any relative (+/-) values have already been
@ -6319,30 +6342,12 @@ function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
function getWidthOrHeight( elem, name, extra ) { function getWidthOrHeight( elem, name, extra ) {
// Start with offset property, which is equivalent to the border-box value // Start with computed style
var val, var valueIsBorderBox,
valueIsBorderBox = true,
styles = getStyles( elem ), styles = getStyles( elem ),
val = curCSS( elem, name, styles ),
isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
// Support: IE <=11 only
// Running getBoundingClientRect on a disconnected node
// in IE throws an error.
if ( elem.getClientRects().length ) {
val = elem.getBoundingClientRect()[ name ];
}
// Some non-html elements return undefined for offsetWidth, so check for null/undefined
// svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285
// MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668
if ( val <= 0 || val == null ) {
// Fall back to computed then uncomputed css if necessary
val = curCSS( elem, name, styles );
if ( val < 0 || val == null ) {
val = elem.style[ name ];
}
// Computed unit is not pixels. Stop here and return. // Computed unit is not pixels. Stop here and return.
if ( rnumnonpx.test( val ) ) { if ( rnumnonpx.test( val ) ) {
return val; return val;
@ -6353,9 +6358,14 @@ function getWidthOrHeight( elem, name, extra ) {
valueIsBorderBox = isBorderBox && valueIsBorderBox = isBorderBox &&
( support.boxSizingReliable() || val === elem.style[ name ] ); ( support.boxSizingReliable() || val === elem.style[ name ] );
// Fall back to offsetWidth/Height when value is "auto"
// This happens for inline elements with no explicit setting (gh-3571)
if ( val === "auto" ) {
val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ];
}
// Normalize "", auto, and prepare for extra // Normalize "", auto, and prepare for extra
val = parseFloat( val ) || 0; val = parseFloat( val ) || 0;
}
// Use the active box-sizing model to add/subtract irrelevant styles // Use the active box-sizing model to add/subtract irrelevant styles
return ( val + return ( val +
@ -6420,10 +6430,15 @@ jQuery.extend( {
// Make sure that we're working with the right name // Make sure that we're working with the right name
var ret, type, hooks, var ret, type, hooks,
origName = jQuery.camelCase( name ), origName = jQuery.camelCase( name ),
isCustomProp = rcustomProp.test( name ),
style = elem.style; style = elem.style;
name = jQuery.cssProps[ origName ] || // Make sure that we're working with the right name. We don't
( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName ); // want to query the value if it is a CSS custom property
// since they are user-defined.
if ( !isCustomProp ) {
name = finalPropName( origName );
}
// Gets hook for the prefixed version, then unprefixed version // Gets hook for the prefixed version, then unprefixed version
hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
@ -6459,8 +6474,12 @@ jQuery.extend( {
if ( !hooks || !( "set" in hooks ) || if ( !hooks || !( "set" in hooks ) ||
( value = hooks.set( elem, value, extra ) ) !== undefined ) { ( value = hooks.set( elem, value, extra ) ) !== undefined ) {
if ( isCustomProp ) {
style.setProperty( name, value );
} else {
style[ name ] = value; style[ name ] = value;
} }
}
} else { } else {
@ -6478,11 +6497,15 @@ jQuery.extend( {
css: function( elem, name, extra, styles ) { css: function( elem, name, extra, styles ) {
var val, num, hooks, var val, num, hooks,
origName = jQuery.camelCase( name ); origName = jQuery.camelCase( name ),
isCustomProp = rcustomProp.test( name );
// Make sure that we're working with the right name // Make sure that we're working with the right name. We don't
name = jQuery.cssProps[ origName ] || // want to modify the value if it is a CSS custom property
( jQuery.cssProps[ origName ] = vendorPropName( origName ) || origName ); // since they are user-defined.
if ( !isCustomProp ) {
name = finalPropName( origName );
}
// Try prefixed name followed by the unprefixed name // Try prefixed name followed by the unprefixed name
hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
@ -6507,6 +6530,7 @@ jQuery.extend( {
num = parseFloat( val ); num = parseFloat( val );
return extra === true || isFinite( num ) ? num || 0 : val; return extra === true || isFinite( num ) ? num || 0 : val;
} }
return val; return val;
} }
} ); } );
@ -6606,7 +6630,7 @@ jQuery.fn.extend( {
map = {}, map = {},
i = 0; i = 0;
if ( jQuery.isArray( name ) ) { if ( Array.isArray( name ) ) {
styles = getStyles( elem ); styles = getStyles( elem );
len = name.length; len = name.length;
@ -6744,13 +6768,18 @@ jQuery.fx.step = {};
var var
fxNow, timerId, fxNow, inProgress,
rfxtypes = /^(?:toggle|show|hide)$/, rfxtypes = /^(?:toggle|show|hide)$/,
rrun = /queueHooks$/; rrun = /queueHooks$/;
function raf() { function schedule() {
if ( timerId ) { if ( inProgress ) {
window.requestAnimationFrame( raf ); if ( document.hidden === false && window.requestAnimationFrame ) {
window.requestAnimationFrame( schedule );
} else {
window.setTimeout( schedule, jQuery.fx.interval );
}
jQuery.fx.tick(); jQuery.fx.tick();
} }
} }
@ -6977,7 +7006,7 @@ function propFilter( props, specialEasing ) {
name = jQuery.camelCase( index ); name = jQuery.camelCase( index );
easing = specialEasing[ name ]; easing = specialEasing[ name ];
value = props[ index ]; value = props[ index ];
if ( jQuery.isArray( value ) ) { if ( Array.isArray( value ) ) {
easing = value[ 1 ]; easing = value[ 1 ];
value = props[ index ] = value[ 0 ]; value = props[ index ] = value[ 0 ];
} }
@ -7036,12 +7065,19 @@ function Animation( elem, properties, options ) {
deferred.notifyWith( elem, [ animation, percent, remaining ] ); deferred.notifyWith( elem, [ animation, percent, remaining ] );
// If there's more to do, yield
if ( percent < 1 && length ) { if ( percent < 1 && length ) {
return remaining; return remaining;
} else { }
// If this was an empty animation, synthesize a final progress notification
if ( !length ) {
deferred.notifyWith( elem, [ animation, 1, 0 ] );
}
// Resolve the animation and report its conclusion
deferred.resolveWith( elem, [ animation ] ); deferred.resolveWith( elem, [ animation ] );
return false; return false;
}
}, },
animation = deferred.promise( { animation = deferred.promise( {
elem: elem, elem: elem,
@ -7106,6 +7142,13 @@ function Animation( elem, properties, options ) {
animation.opts.start.call( elem, animation ); animation.opts.start.call( elem, animation );
} }
// Attach callbacks from options
animation
.progress( animation.opts.progress )
.done( animation.opts.done, animation.opts.complete )
.fail( animation.opts.fail )
.always( animation.opts.always );
jQuery.fx.timer( jQuery.fx.timer(
jQuery.extend( tick, { jQuery.extend( tick, {
elem: elem, elem: elem,
@ -7114,11 +7157,7 @@ function Animation( elem, properties, options ) {
} ) } )
); );
// attach callbacks from options return animation;
return animation.progress( animation.opts.progress )
.done( animation.opts.done, animation.opts.complete )
.fail( animation.opts.fail )
.always( animation.opts.always );
} }
jQuery.Animation = jQuery.extend( Animation, { jQuery.Animation = jQuery.extend( Animation, {
@ -7169,8 +7208,8 @@ jQuery.speed = function( speed, easing, fn ) {
easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
}; };
// Go to the end state if fx are off or if document is hidden // Go to the end state if fx are off
if ( jQuery.fx.off || document.hidden ) { if ( jQuery.fx.off ) {
opt.duration = 0; opt.duration = 0;
} else { } else {
@ -7362,7 +7401,7 @@ jQuery.fx.tick = function() {
for ( ; i < timers.length; i++ ) { for ( ; i < timers.length; i++ ) {
timer = timers[ i ]; timer = timers[ i ];
// Checks the timer has not already been removed // Run the timer and safely remove it when done (allowing for external removal)
if ( !timer() && timers[ i ] === timer ) { if ( !timer() && timers[ i ] === timer ) {
timers.splice( i--, 1 ); timers.splice( i--, 1 );
} }
@ -7376,30 +7415,21 @@ jQuery.fx.tick = function() {
jQuery.fx.timer = function( timer ) { jQuery.fx.timer = function( timer ) {
jQuery.timers.push( timer ); jQuery.timers.push( timer );
if ( timer() ) {
jQuery.fx.start(); jQuery.fx.start();
} else {
jQuery.timers.pop();
}
}; };
jQuery.fx.interval = 13; jQuery.fx.interval = 13;
jQuery.fx.start = function() { jQuery.fx.start = function() {
if ( !timerId ) { if ( inProgress ) {
timerId = window.requestAnimationFrame ? return;
window.requestAnimationFrame( raf ) :
window.setInterval( jQuery.fx.tick, jQuery.fx.interval );
} }
inProgress = true;
schedule();
}; };
jQuery.fx.stop = function() { jQuery.fx.stop = function() {
if ( window.cancelAnimationFrame ) { inProgress = null;
window.cancelAnimationFrame( timerId );
} else {
window.clearInterval( timerId );
}
timerId = null;
}; };
jQuery.fx.speeds = { jQuery.fx.speeds = {
@ -7516,7 +7546,7 @@ jQuery.extend( {
type: { type: {
set: function( elem, value ) { set: function( elem, value ) {
if ( !support.radioValue && value === "radio" && if ( !support.radioValue && value === "radio" &&
jQuery.nodeName( elem, "input" ) ) { nodeName( elem, "input" ) ) {
var val = elem.value; var val = elem.value;
elem.setAttribute( "type", value ); elem.setAttribute( "type", value );
if ( val ) { if ( val ) {
@ -7947,7 +7977,7 @@ jQuery.fn.extend( {
} else if ( typeof val === "number" ) { } else if ( typeof val === "number" ) {
val += ""; val += "";
} else if ( jQuery.isArray( val ) ) { } else if ( Array.isArray( val ) ) {
val = jQuery.map( val, function( value ) { val = jQuery.map( val, function( value ) {
return value == null ? "" : value + ""; return value == null ? "" : value + "";
} ); } );
@ -8006,7 +8036,7 @@ jQuery.extend( {
// Don't return options that are disabled or in a disabled optgroup // Don't return options that are disabled or in a disabled optgroup
!option.disabled && !option.disabled &&
( !option.parentNode.disabled || ( !option.parentNode.disabled ||
!jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { !nodeName( option.parentNode, "optgroup" ) ) ) {
// Get the specific value for the option // Get the specific value for the option
value = jQuery( option ).val(); value = jQuery( option ).val();
@ -8058,7 +8088,7 @@ jQuery.extend( {
jQuery.each( [ "radio", "checkbox" ], function() { jQuery.each( [ "radio", "checkbox" ], function() {
jQuery.valHooks[ this ] = { jQuery.valHooks[ this ] = {
set: function( elem, value ) { set: function( elem, value ) {
if ( jQuery.isArray( value ) ) { if ( Array.isArray( value ) ) {
return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );
} }
} }
@ -8353,7 +8383,7 @@ var
function buildParams( prefix, obj, traditional, add ) { function buildParams( prefix, obj, traditional, add ) {
var name; var name;
if ( jQuery.isArray( obj ) ) { if ( Array.isArray( obj ) ) {
// Serialize array item. // Serialize array item.
jQuery.each( obj, function( i, v ) { jQuery.each( obj, function( i, v ) {
@ -8405,7 +8435,7 @@ jQuery.param = function( a, traditional ) {
}; };
// If an array was passed in, assume that it is an array of form elements. // If an array was passed in, assume that it is an array of form elements.
if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
// Serialize the form elements // Serialize the form elements
jQuery.each( a, function() { jQuery.each( a, function() {
@ -8451,7 +8481,7 @@ jQuery.fn.extend( {
return null; return null;
} }
if ( jQuery.isArray( val ) ) { if ( Array.isArray( val ) ) {
return jQuery.map( val, function( val ) { return jQuery.map( val, function( val ) {
return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
} ); } );
@ -9876,13 +9906,6 @@ jQuery.expr.pseudos.animated = function( elem ) {
/**
* Gets a window from an element
*/
function getWindow( elem ) {
return jQuery.isWindow( elem ) ? elem : elem.nodeType === 9 && elem.defaultView;
}
jQuery.offset = { jQuery.offset = {
setOffset: function( elem, options, i ) { setOffset: function( elem, options, i ) {
var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition, var curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,
@ -9947,13 +9970,14 @@ jQuery.fn.extend( {
} ); } );
} }
var docElem, win, rect, doc, var doc, docElem, rect, win,
elem = this[ 0 ]; elem = this[ 0 ];
if ( !elem ) { if ( !elem ) {
return; return;
} }
// Return zeros for disconnected and hidden (display: none) elements (gh-2310)
// Support: IE <=11 only // Support: IE <=11 only
// Running getBoundingClientRect on a // Running getBoundingClientRect on a
// disconnected node in IE throws an error // disconnected node in IE throws an error
@ -9963,20 +9987,14 @@ jQuery.fn.extend( {
rect = elem.getBoundingClientRect(); rect = elem.getBoundingClientRect();
// Make sure element is not hidden (display: none)
if ( rect.width || rect.height ) {
doc = elem.ownerDocument; doc = elem.ownerDocument;
win = getWindow( doc );
docElem = doc.documentElement; docElem = doc.documentElement;
win = doc.defaultView;
return { return {
top: rect.top + win.pageYOffset - docElem.clientTop, top: rect.top + win.pageYOffset - docElem.clientTop,
left: rect.left + win.pageXOffset - docElem.clientLeft left: rect.left + win.pageXOffset - docElem.clientLeft
}; };
}
// Return zeros for disconnected and hidden elements (gh-2310)
return rect;
}, },
position: function() { position: function() {
@ -10002,7 +10020,7 @@ jQuery.fn.extend( {
// Get correct offsets // Get correct offsets
offset = this.offset(); offset = this.offset();
if ( !jQuery.nodeName( offsetParent[ 0 ], "html" ) ) { if ( !nodeName( offsetParent[ 0 ], "html" ) ) {
parentOffset = offsetParent.offset(); parentOffset = offsetParent.offset();
} }
@ -10049,7 +10067,14 @@ jQuery.each( { scrollLeft: "pageXOffset", scrollTop: "pageYOffset" }, function(
jQuery.fn[ method ] = function( val ) { jQuery.fn[ method ] = function( val ) {
return access( this, function( elem, method, val ) { return access( this, function( elem, method, val ) {
var win = getWindow( elem );
// Coalesce documents and windows
var win;
if ( jQuery.isWindow( elem ) ) {
win = elem;
} else if ( elem.nodeType === 9 ) {
win = elem.defaultView;
}
if ( val === undefined ) { if ( val === undefined ) {
return win ? win[ prop ] : elem[ method ]; return win ? win[ prop ] : elem[ method ];
@ -10158,7 +10183,16 @@ jQuery.fn.extend( {
} }
} ); } );
jQuery.holdReady = function( hold ) {
if ( hold ) {
jQuery.readyWait++;
} else {
jQuery.ready( true );
}
};
jQuery.isArray = Array.isArray;
jQuery.parseJSON = JSON.parse; jQuery.parseJSON = JSON.parse;
jQuery.nodeName = nodeName;
@ -10215,6 +10249,5 @@ if ( !noGlobal ) {
return jQuery; return jQuery;
} ); } );

4
vendor/jquery/jquery.min.js vendored Normal file

File diff suppressed because one or more lines are too long