Browse Source

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
master
David Miller 9 years ago
parent
commit
7db1bc641a
  1. 3
      LICENSE
  2. 401
      css/agency.css
  3. 4
      css/agency.min.css
  4. 30
      gulpfile.js
  5. 160
      index.html
  6. 27
      js/agency.js
  7. 4
      js/agency.min.js
  8. 2
      js/contact_me.js
  9. 700
      less/agency.less
  10. 70
      less/mixins.less
  11. 13
      less/variables.less
  12. 7381
      lib/bootstrap/css/bootstrap-flex.css
  13. 7
      lib/bootstrap/css/bootstrap-flex.min.css
  14. 4
      lib/jquery/jquery.min.js
  15. 47
      package.json
  16. 19
      scss/_bootstrap-overrides.scss
  17. 52
      scss/_contact.scss
  18. 43
      scss/_footer.scss
  19. 75
      scss/_global.scss
  20. 51
      scss/_masthead.scss
  21. 75
      scss/_navbar.scss
  22. 152
      scss/_portfolio.scss
  23. 5
      scss/_services.scss
  24. 18
      scss/_team.scss
  25. 181
      scss/_timeline.scss
  26. 712
      scss/agency.scss
  27. 0
      vendor/bootstrap/css/bootstrap-grid.css
  28. 0
      vendor/bootstrap/css/bootstrap-grid.min.css
  29. 0
      vendor/bootstrap/css/bootstrap-reboot.css
  30. 0
      vendor/bootstrap/css/bootstrap-reboot.min.css
  31. 0
      vendor/bootstrap/css/bootstrap.css
  32. 0
      vendor/bootstrap/css/bootstrap.min.css
  33. 0
      vendor/bootstrap/js/bootstrap.js
  34. 0
      vendor/bootstrap/js/bootstrap.min.js
  35. 0
      vendor/font-awesome/css/font-awesome.css
  36. 0
      vendor/font-awesome/css/font-awesome.min.css
  37. 0
      vendor/font-awesome/fonts/FontAwesome.otf
  38. 0
      vendor/font-awesome/fonts/fontawesome-webfont.eot
  39. 0
      vendor/font-awesome/fonts/fontawesome-webfont.svg
  40. 0
      vendor/font-awesome/fonts/fontawesome-webfont.ttf
  41. 0
      vendor/font-awesome/fonts/fontawesome-webfont.woff
  42. 0
      vendor/font-awesome/fonts/fontawesome-webfont.woff2
  43. 0
      vendor/font-awesome/less/animated.less
  44. 0
      vendor/font-awesome/less/bordered-pulled.less
  45. 0
      vendor/font-awesome/less/core.less
  46. 0
      vendor/font-awesome/less/fixed-width.less
  47. 0
      vendor/font-awesome/less/font-awesome.less
  48. 0
      vendor/font-awesome/less/icons.less
  49. 0
      vendor/font-awesome/less/larger.less
  50. 0
      vendor/font-awesome/less/list.less
  51. 0
      vendor/font-awesome/less/mixins.less
  52. 0
      vendor/font-awesome/less/path.less
  53. 0
      vendor/font-awesome/less/rotated-flipped.less
  54. 0
      vendor/font-awesome/less/screen-reader.less
  55. 0
      vendor/font-awesome/less/stacked.less
  56. 0
      vendor/font-awesome/less/variables.less
  57. 0
      vendor/font-awesome/scss/_animated.scss
  58. 0
      vendor/font-awesome/scss/_bordered-pulled.scss
  59. 0
      vendor/font-awesome/scss/_core.scss
  60. 0
      vendor/font-awesome/scss/_fixed-width.scss
  61. 0
      vendor/font-awesome/scss/_icons.scss
  62. 0
      vendor/font-awesome/scss/_larger.scss
  63. 0
      vendor/font-awesome/scss/_list.scss
  64. 0
      vendor/font-awesome/scss/_mixins.scss
  65. 0
      vendor/font-awesome/scss/_path.scss
  66. 0
      vendor/font-awesome/scss/_rotated-flipped.scss
  67. 0
      vendor/font-awesome/scss/_screen-reader.scss
  68. 0
      vendor/font-awesome/scss/_stacked.scss
  69. 0
      vendor/font-awesome/scss/_variables.scss
  70. 0
      vendor/font-awesome/scss/font-awesome.scss
  71. 59
      vendor/jquery-easing/jquery.easing.compatibility.js
  72. 166
      vendor/jquery-easing/jquery.easing.js
  73. 1
      vendor/jquery-easing/jquery.easing.min.js
  74. 279
      vendor/jquery/jquery.js
  75. 4
      vendor/jquery/jquery.min.js
  76. 0
      vendor/tether/tether.js
  77. 0
      vendor/tether/tether.min.js

3
LICENSE

@ -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

401
css/agency.css

@ -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 {
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 .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; }
::-moz-selection {
text-shadow: none;
background: #fed136; }
::selection {
text-shadow: none;
background: #fed136; }
img::selection {
background: transparent; }
img::-moz-selection { .btn-primary {
background: transparent; } color: white;
background-color: #fed136;
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; }
body { .btn-xl {
webkit-tap-highlight-color: #fed136; } color: white;
background-color: #fed136;
border-color: #fed136;
font-family: "Montserrat", "Helvetica Neue", Helvetica, Arial, sans-serif;
text-transform: uppercase;
font-weight: 700;
border-radius: 3px;
font-size: 18px;
padding: 20px 40px; }
.btn-xl:focus, .btn-xl.focus {
color: white;
background-color: #fec503;
border-color: #b48b01; }
.btn-xl:hover {
color: white;
background-color: #fec503;
border-color: #f6bf01; }
.btn-xl:active, .btn-xl.active,
.open > .btn-xl.dropdown-toggle {
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; }

4
css/agency.min.css vendored

File diff suppressed because one or more lines are too long

30
gulpfile.js

@ -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
}))
});

160
index.html

@ -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>

27
js/agency.js

@ -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

@ -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);

2
js/contact_me.js

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

700
less/agency.less

@ -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;
}

70
less/mixins.less

@ -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;
}

13
less/variables.less

@ -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

7381
lib/bootstrap/css/bootstrap-flex.css vendored

File diff suppressed because it is too large Load Diff

7
lib/bootstrap/css/bootstrap-flex.min.css vendored

File diff suppressed because one or more lines are too long

4
lib/jquery/jquery.min.js vendored

File diff suppressed because one or more lines are too long

47
package.json

@ -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" ],
"repository": {
"type": "git",
"url": "https://github.com/BlackrockDigital/startbootstrap-agency.git"
}, },
"devDependencies": { "dependencies": {
"bootstrap": "^4.0.0-alpha.6", "bootstrap": "^4.0.0-alpha.6",
"browser-sync": "^2.13.0",
"font-awesome": "^4.6.3", "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": "^3.9.1",
"gulp-clean-css": "^2.0.10", "gulp-clean-css": "^3.0.4",
"gulp-header": "^1.8.7", "gulp-header": "^1.8.7",
"gulp-less": "^3.1.0",
"gulp-rename": "^1.2.2", "gulp-rename": "^1.2.2",
"gulp-sass": "^2.3.2", "gulp-sass": "^3.1.0",
"gulp-uglify": "^1.5.4", "gulp-uglify": "^2.1.2"
"jquery": "^3.1.1",
"tether": "^1.4.0"
},
"repository": {
"type": "git",
"url": "https://github.com/BlackrockDigital/startbootstrap-agency.git"
} }
} }

19
scss/_bootstrap-overrides.scss vendored

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

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

18
scss/_team.scss

@ -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

@ -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;
}
}
}
}

712
scss/agency.scss

@ -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;
}

0
lib/bootstrap/css/bootstrap-grid.css → vendor/bootstrap/css/bootstrap-grid.css vendored

0
lib/bootstrap/css/bootstrap-grid.min.css → vendor/bootstrap/css/bootstrap-grid.min.css vendored

0
lib/bootstrap/css/bootstrap-reboot.css → vendor/bootstrap/css/bootstrap-reboot.css vendored

0
lib/bootstrap/css/bootstrap-reboot.min.css → vendor/bootstrap/css/bootstrap-reboot.min.css vendored

0
lib/bootstrap/css/bootstrap.css → vendor/bootstrap/css/bootstrap.css vendored

0
lib/bootstrap/css/bootstrap.min.css → vendor/bootstrap/css/bootstrap.min.css vendored

0
lib/bootstrap/js/bootstrap.js → vendor/bootstrap/js/bootstrap.js vendored

0
lib/bootstrap/js/bootstrap.min.js → vendor/bootstrap/js/bootstrap.min.js vendored

0
lib/font-awesome/css/font-awesome.css → vendor/font-awesome/css/font-awesome.css vendored

0
lib/font-awesome/css/font-awesome.min.css → vendor/font-awesome/css/font-awesome.min.css vendored

0
lib/font-awesome/fonts/FontAwesome.otf → vendor/font-awesome/fonts/FontAwesome.otf vendored

0
lib/font-awesome/fonts/fontawesome-webfont.eot → vendor/font-awesome/fonts/fontawesome-webfont.eot vendored

0
lib/font-awesome/fonts/fontawesome-webfont.svg → vendor/font-awesome/fonts/fontawesome-webfont.svg vendored

Before

Width:  |  Height:  |  Size: 434 KiB

After

Width:  |  Height:  |  Size: 434 KiB

0
lib/font-awesome/fonts/fontawesome-webfont.ttf → vendor/font-awesome/fonts/fontawesome-webfont.ttf vendored

0
lib/font-awesome/fonts/fontawesome-webfont.woff → vendor/font-awesome/fonts/fontawesome-webfont.woff vendored

0
lib/font-awesome/fonts/fontawesome-webfont.woff2 → vendor/font-awesome/fonts/fontawesome-webfont.woff2 vendored

0
lib/font-awesome/less/animated.less → vendor/font-awesome/less/animated.less vendored

0
lib/font-awesome/less/bordered-pulled.less → vendor/font-awesome/less/bordered-pulled.less vendored

0
lib/font-awesome/less/core.less → vendor/font-awesome/less/core.less vendored

0
lib/font-awesome/less/fixed-width.less → vendor/font-awesome/less/fixed-width.less vendored

0
lib/font-awesome/less/font-awesome.less → vendor/font-awesome/less/font-awesome.less vendored

0
lib/font-awesome/less/icons.less → vendor/font-awesome/less/icons.less vendored

0
lib/font-awesome/less/larger.less → vendor/font-awesome/less/larger.less vendored

0
lib/font-awesome/less/list.less → vendor/font-awesome/less/list.less vendored

0
lib/font-awesome/less/mixins.less → vendor/font-awesome/less/mixins.less vendored

0
lib/font-awesome/less/path.less → vendor/font-awesome/less/path.less vendored

0
lib/font-awesome/less/rotated-flipped.less → vendor/font-awesome/less/rotated-flipped.less vendored

0
lib/font-awesome/less/screen-reader.less → vendor/font-awesome/less/screen-reader.less vendored

0
lib/font-awesome/less/stacked.less → vendor/font-awesome/less/stacked.less vendored

0
lib/font-awesome/less/variables.less → vendor/font-awesome/less/variables.less vendored

0
lib/font-awesome/scss/_animated.scss → vendor/font-awesome/scss/_animated.scss vendored

0
lib/font-awesome/scss/_bordered-pulled.scss → vendor/font-awesome/scss/_bordered-pulled.scss vendored

0
lib/font-awesome/scss/_core.scss → vendor/font-awesome/scss/_core.scss vendored

0
lib/font-awesome/scss/_fixed-width.scss → vendor/font-awesome/scss/_fixed-width.scss vendored

0
lib/font-awesome/scss/_icons.scss → vendor/font-awesome/scss/_icons.scss vendored

0
lib/font-awesome/scss/_larger.scss → vendor/font-awesome/scss/_larger.scss vendored

0
lib/font-awesome/scss/_list.scss → vendor/font-awesome/scss/_list.scss vendored

0
lib/font-awesome/scss/_mixins.scss → vendor/font-awesome/scss/_mixins.scss vendored

0
lib/font-awesome/scss/_path.scss → vendor/font-awesome/scss/_path.scss vendored

0
lib/font-awesome/scss/_rotated-flipped.scss → vendor/font-awesome/scss/_rotated-flipped.scss vendored

0
lib/font-awesome/scss/_screen-reader.scss → vendor/font-awesome/scss/_screen-reader.scss vendored

0
lib/font-awesome/scss/_stacked.scss → vendor/font-awesome/scss/_stacked.scss vendored

0
lib/font-awesome/scss/_variables.scss → vendor/font-awesome/scss/_variables.scss vendored

0
lib/font-awesome/scss/font-awesome.scss → vendor/font-awesome/scss/font-awesome.scss vendored

59
vendor/jquery-easing/jquery.easing.compatibility.js vendored

@ -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

@ -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

@ -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}})});

279
lib/jquery/jquery.js → vendor/jquery/jquery.js vendored

@ -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

File diff suppressed because one or more lines are too long

0
lib/tether/tether.js → vendor/tether/tether.js vendored

0
lib/tether/tether.min.js → vendor/tether/tether.min.js vendored

Loading…
Cancel
Save