commit df6315b220d6be4f8b351ce54f58cdade2a7c3dc Author: Omar Date: Tue Feb 26 23:39:25 2019 +1100 added cube portfolio as a jquery plugin diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..599c3ad Binary files /dev/null and b/.DS_Store differ diff --git a/cubeportfolio/css/cubeportfolio.css b/cubeportfolio/css/cubeportfolio.css new file mode 100644 index 0000000..d3203ba --- /dev/null +++ b/cubeportfolio/css/cubeportfolio.css @@ -0,0 +1,3919 @@ +/*! + * Cube Portfolio - Responsive jQuery Grid Plugin + * + * version: 4.4.0 (1 August, 2018) + * require: jQuery v1.8+ + * + * Copyright 2013-2018, Mihai Buricea (http://scriptpie.com/cubeportfolio/live-preview/) + * Licensed under CodeCanyon License (http://codecanyon.net/licenses) + * + */ +.cbp-l-filters-alignCenter .cbp-filter-counter:after, .cbp-l-filters-alignRight .cbp-filter-counter:after, .cbp-l-filters-button .cbp-filter-counter:after, .cbp-l-filters-buttonCenter .cbp-filter-counter:after, .cbp-l-filters-text .cbp-filter-counter:after, .cbp, .cbp *, +.cbp *:after, .cbp:after, .cbp-l-filters-dropdownHeader:after, .cbp-popup-wrap, .cbp-popup-wrap *, .cbp-popup-wrap:before, .cbp-popup-loadingBox:after, .cbp-search *, .cbp-l-direction:after { + box-sizing: border-box; } + +.cbp-l-grid-agency-title, .cbp-l-grid-agency-desc, .cbp-l-grid-work-title, .cbp-l-grid-work-desc, .cbp-l-grid-blog-title, .cbp-l-grid-projects-title, .cbp-l-grid-projects-desc, .cbp-l-grid-masonry-projects-title, .cbp-l-grid-masonry-projects-desc { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + +.cbp-l-filters-alignCenter, .cbp-l-filters-alignCenter *, .cbp-l-filters-alignLeft, .cbp-l-filters-alignLeft *, .cbp-l-filters-alignRight, .cbp-l-filters-alignRight *, .cbp-l-filters-button, .cbp-l-filters-button *, .cbp-l-filters-buttonCenter, .cbp-l-filters-buttonCenter *, .cbp-l-filters-dropdown, .cbp-l-filters-dropdown *, .cbp-l-filters-list, .cbp-l-filters-list *, .cbp-l-filters-work, .cbp-l-filters-work *, .cbp-l-filters-big, .cbp-l-filters-big *, .cbp-l-filters-text, .cbp-l-filters-text *, .cbp-l-filters-underline, .cbp-l-filters-underline *, .cbp-l-filters-holder, .cbp-l-filters-holder *, .cbp-l-loadMore-bgbutton, .cbp-l-loadMore-bgbutton *, .cbp-l-loadMore-button, .cbp-l-loadMore-button *, .cbp-l-loadMore-text, .cbp-l-loadMore-text *, .cbp-search, .cbp-l-dropdown, .cbp-l-dropdown * { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-tap-highlight-color: transparent; + box-sizing: border-box; } + +.cbp:after, .cbp-lazyload:after, .cbp-popup-loadingBox:after, .cbp-popup-singlePageInline:after { + content: ''; + position: absolute; + width: 34px; + height: 34px; + left: 0; + right: 0; + top: 0; + bottom: 0; + margin: auto; + -webkit-animation: cbp-rotation .8s infinite linear; + animation: cbp-rotation .8s infinite linear; + border-left: 3px solid rgba(114, 144, 182, 0.15); + border-right: 3px solid rgba(114, 144, 182, 0.15); + border-bottom: 3px solid rgba(114, 144, 182, 0.15); + border-top: 3px solid rgba(114, 144, 182, 0.8); + border-radius: 100%; } + +.cbp-l-filters-alignCenter .cbp-filter-item:hover .cbp-filter-counter, .cbp-l-filters-alignRight .cbp-filter-item:hover .cbp-filter-counter, .cbp-l-filters-button .cbp-filter-item:hover .cbp-filter-counter, .cbp-l-filters-buttonCenter .cbp-filter-item:hover .cbp-filter-counter, .cbp-l-filters-text .cbp-filter-item:hover .cbp-filter-counter { + opacity: 1; + -webkit-transform: translateY(-44px); + transform: translateY(-44px); } + +.cbp-l-filters-alignCenter .cbp-filter-counter, .cbp-l-filters-alignRight .cbp-filter-counter, .cbp-l-filters-button .cbp-filter-counter, .cbp-l-filters-buttonCenter .cbp-filter-counter, .cbp-l-filters-text .cbp-filter-counter { + font: 400 11px/18px "Open Sans", sans-serif; + border-radius: 3px; + color: #FFFFFF; + margin: 0 auto; + padding: 4px 0; + text-align: center; + width: 34px; + position: absolute; + bottom: 0; + left: 0; + right: 0; + opacity: 0; + -webkit-transition: -webkit-transform .25s, opacity .25s; + transition: transform .25s, opacity .25s; } + .cbp-l-filters-alignCenter .cbp-filter-counter:after, .cbp-l-filters-alignRight .cbp-filter-counter:after, .cbp-l-filters-button .cbp-filter-counter:after, .cbp-l-filters-buttonCenter .cbp-filter-counter:after, .cbp-l-filters-text .cbp-filter-counter:after { + content: ""; + position: absolute; + bottom: -4px; + left: 0; + right: 0; + margin: 0 auto; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; } + +/* --------------------------------------------------------------- + Default style for plugin. Please change them carefully! + --------------------------------------------------------------- */ +.cbp-item { + display: inline-block; + margin: 0 10px 20px 0; } + +.cbp { + position: relative; + margin: 0 auto; + z-index: 1; + height: 400px; } + .cbp > * { + visibility: hidden; } + .cbp .cbp-item { + list-style-type: none; + margin: 0; + padding: 0; + overflow: hidden; } + .cbp img { + display: block; + border: 0; + width: 100%; + height: auto; } + .cbp a, + .cbp a:hover, + .cbp a:active { + text-decoration: none; + outline: 0; } + +.cbp-lazyload { + position: relative; + background: #fff; + display: block; } + .cbp-lazyload img { + opacity: 1; } + .cbp-lazyload img[data-cbp-src] { + opacity: 0; } + .cbp-lazyload img:not([data-cbp-src]) { + -webkit-transition: opacity .7s ease-in-out; + transition: opacity .7s ease-in-out; } + .cbp-lazyload:after { + z-index: 0; } + +.cbp-wrapper-outer { + overflow: hidden; + position: relative; + margin: 0 auto; } + +.cbp-wrapper-outer, +.cbp-wrapper, +.cbp-wrapper-helper { + list-style-type: none; + padding: 0; + width: 100%; + height: 100%; + z-index: 1; } + +.cbp-wrapper, +.cbp-wrapper-helper { + margin: 0; } + +.cbp-ready > * { + visibility: visible; } + +.cbp-ready:after { + display: none; + visibility: hidden; } + +.cbp-ready .cbp-item { + position: absolute; + top: 0; + left: 0; } + +.cbp-ready .cbp-wrapper, +.cbp-ready .cbp-wrapper-helper { + position: absolute; + top: 0; + left: 0; } + +.cbp-item-off { + z-index: -1; + pointer-events: none; + visibility: hidden; } + +.cbp-item-on2off { + z-index: 0; } + +.cbp-item-off2on { + z-index: 1; } + +.cbp-item-on2on { + z-index: 2; } + +.cbp-item-wrapper { + width: 100%; + height: 100%; + position: relative; + top: 0; + left: 0; } + +.cbp-l-project-related-wrap img, +.cbp-l-inline img { + display: block; + width: 100%; + height: auto; + border: 0; } + +.cbp-updateItems { + -webkit-transition: height .5s ease-in-out !important; + transition: height .5s ease-in-out !important; + will-change: height; } + .cbp-updateItems .cbp-item { + -webkit-transition: top .5s ease-in-out, left .5s ease-in-out; + transition: top .5s ease-in-out, left .5s ease-in-out; } + .cbp-updateItems .cbp-item-loading { + -webkit-animation: fadeIn .5s ease-in-out; + animation: fadeIn .5s ease-in-out; + -webkit-transition: none; + transition: none; } + +.cbp-removeItem { + -webkit-animation: fadeOut .5s ease-in-out; + animation: fadeOut .5s ease-in-out; } + +/* END - Default style for plugin. Please change them carefully! */ +.cbp-panel { + width: 94%; + max-width: 1170px; + margin: 0 auto; } + +.cbp-misc-video { + position: relative; + height: 0; + padding-bottom: 56.25%; + background: #000; + text-align: center; } + +.cbp-misc-video iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; } + +@-webkit-keyframes cbp-rotation { + 0% { + -webkit-transform: rotate(0deg); } + 100% { + -webkit-transform: rotate(360deg); } } + +@keyframes cbp-rotation { + 0% { + transform: rotate(0deg); } + 100% { + transform: rotate(360deg); } } + +@-webkit-keyframes fadeOut { + 0% { + opacity: 1; } + 100% { + opacity: 0; } } + +@keyframes fadeOut { + 0% { + opacity: 1; } + 100% { + opacity: 0; } } + +.clearfix:after { + content: " "; + display: block; + height: 0; + clear: both; } + +.cbp-l-filters-left { + float: left; } + +.cbp-l-filters-right { + float: right; } + +.cbp-l-center { + display: flex; + justify-content: center; + align-items: center; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-left, + .cbp-l-filters-right { + width: 100%; } } + +@media only screen and (max-width: 800px) { + .cbp-l-center { + flex-direction: column; } } + +/* general caption style */ +.cbp-caption, +.cbp-caption-defaultWrap, +.cbp-caption-activeWrap { + display: block; } + +.cbp-caption-activeWrap { + background-color: #282727; } + +.cbp-caption-active .cbp-caption, +.cbp-caption-active .cbp-caption-defaultWrap, +.cbp-caption-active .cbp-caption-activeWrap { + overflow: hidden; + position: relative; + z-index: 1; } + +.cbp-caption-active .cbp-caption-defaultWrap { + top: 0; } + +.cbp-caption-active .cbp-caption-activeWrap { + width: 100%; + position: absolute; + z-index: 2; + height: 100%; } + +/* --------------------------------------------------------------- + caption miscellaneous style + --------------------------------------------------------------- */ +.cbp-l-caption-title { + color: #fff; + font: 400 16px/21px "Open Sans", sans-serif; } + +.cbp-l-caption-desc { + color: #aaa; + font: 400 12px/16px "Open Sans", sans-serif; } + +.cbp-l-caption-text { + font: 400 14px/21px "Open Sans", sans-serif; + color: #fff; + letter-spacing: 3px; + padding: 0 6px; } + +.cbp-l-caption-buttonLeft, +.cbp-l-caption-buttonRight { + background-color: #547EB1; + color: #FFFFFF; + display: inline-block; + font: 400 12px/30px "Open Sans", sans-serif; + min-width: 90px; + text-align: center; + margin: 4px; + padding: 0 6px; } + +.cbp-l-caption-buttonLeft:hover, +.cbp-l-caption-buttonRight:hover { + opacity: 0.9; } + +/* END - caption miscellaneous style */ +/* --------------------------------------------------------------- + none caption + --------------------------------------------------------------- */ +.cbp-caption-none .cbp-caption-activeWrap { + display: none; } + +/* END - none caption */ +/* --------------------------------------------------------------- + caption layout align left + --------------------------------------------------------------- */ +.cbp-l-caption-alignLeft .cbp-l-caption-body { + padding: 12px 30px; } + +.cbp-caption-fadeIn .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-minimal .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-moveRight .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-overlayRightAlong .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-pushDown .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-pushTop .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-revealBottom .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-revealLeft .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-revealTop .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-zoom .cbp-l-caption-alignLeft .cbp-l-caption-body, .cbp-caption-opacity .cbp-l-caption-alignLeft .cbp-l-caption-body { + padding-top: 30px; } + +/* END - caption layout left */ +/* --------------------------------------------------------------- + caption layout center vertically and horizontally + --------------------------------------------------------------- */ +.cbp-l-caption-alignCenter { + display: table; + width: 100%; + height: 100%; } + +.cbp-l-caption-alignCenter .cbp-l-caption-body { + display: table-cell; + vertical-align: middle; + text-align: center; + padding: 15px 0; } + +.cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft, +.cbp-l-caption-alignCenter .cbp-l-caption-buttonRight { + position: relative; + -webkit-transition: -webkit-transform .25s; + transition: transform .25s; } + +.cbp-caption-overlayBottom .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft, +.cbp-caption-overlayBottomPush .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft, +.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft { + -webkit-transform: translateX(-20px); + transform: translateX(-20px); } + +.cbp-caption-overlayBottom .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight, +.cbp-caption-overlayBottomPush .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight, +.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight { + -webkit-transform: translateX(20px); + transform: translateX(20px); } + +.cbp-caption:hover .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft, +.cbp-caption:hover .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight { + -webkit-transform: translateX(0); + transform: translateX(0); } + +/* END - caption layout center vertically and horizontally */ +@media only screen and (max-width: 480px) { + .cbp-l-caption-alignLeft .cbp-l-caption-body { + padding: 9px 11px; } + .cbp-l-caption-title { + font-size: 14px; + line-height: 21px; } + .cbp-l-caption-desc { + font-size: 11px; + line-height: 14px; } + .cbp-l-caption-buttonLeft, + .cbp-l-caption-buttonRight { + font-size: 11px; + line-height: 28px; + min-width: 69px; + margin: 3px; + padding: 0 4px; } + .cbp-l-caption-text { + font-size: 13px; + letter-spacing: 1px; } } + +@media only screen and (max-width: 374px) { + .cbp-l-caption-alignLeft .cbp-l-caption-body { + padding: 8px 10px; } + .cbp-l-caption-title { + font-size: 13px; + line-height: 20px; } + .cbp-l-caption-desc { + font-size: 11px; + line-height: 14px; } + .cbp-l-caption-buttonLeft, + .cbp-l-caption-buttonRight { + font-size: 10px; + line-height: 28px; + min-width: 62px; + margin: 1px; + padding: 0 4px; } } + +.cbp-caption-fadeIn .cbp-caption-activeWrap { + opacity: 0; + top: 0; + background-color: rgba(0, 0, 0, 0.85); + -webkit-transition: opacity .5s; + transition: opacity .5s; } + +.cbp-caption-fadeIn .cbp-caption:hover .cbp-caption-activeWrap { + opacity: 1; } + +.cbp-caption-minimal .cbp-l-caption-title, +.cbp-caption-minimal .cbp-l-caption-desc { + position: relative; + left: 0; + opacity: 0; + -webkit-transition: -webkit-transform .35s ease-out; + transition: transform .35s ease-out; } + +.cbp-caption-minimal .cbp-l-caption-title { + -webkit-transform: translateY(-50%); + transform: translateY(-50%); } + +.cbp-caption-minimal .cbp-l-caption-desc { + -webkit-transform: translateY(70%); + transform: translateY(70%); } + +.cbp-caption-minimal .cbp-caption:hover .cbp-l-caption-title, +.cbp-caption-minimal .cbp-caption:hover .cbp-l-caption-desc { + opacity: 1; + -webkit-transform: translateY(0); + transform: translateY(0); } + +.cbp-caption-minimal .cbp-caption-activeWrap { + top: 0; + background-color: black; + background-color: rgba(0, 0, 0, 0.8); + opacity: 0; } + +.cbp-caption-minimal .cbp-caption:hover .cbp-caption-activeWrap { + opacity: 1; } + +.cbp-caption-moveRight .cbp-caption-activeWrap { + left: -100%; + top: 0; + -webkit-transition: -webkit-transform .35s; + transition: transform .35s; } + +.cbp-caption-moveRight .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateX(100%); + transform: translateX(100%); } + +.cbp-caption-overlayBottom .cbp-caption-activeWrap { + height: 60px; + background-color: #181616; + background-color: rgba(24, 22, 22, 0.7); + -webkit-transition: -webkit-transform .25s; + transition: transform .25s; } + +.cbp-caption-overlayBottom .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); } + +.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft, +.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight { + -webkit-transition-duration: .35s; + transition-duration: .35s; } + +.cbp-caption-overlayBottomAlong .cbp-caption-defaultWrap, +.cbp-caption-overlayBottomAlong .cbp-caption-activeWrap { + -webkit-transition: -webkit-transform .35s; + transition: transform .35s; } + +.cbp-caption-overlayBottomAlong .cbp-caption-activeWrap { + height: auto; } + +.cbp-caption-overlayBottomAlong .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateY(-34px); + transform: translateY(-34px); } + +.cbp-caption-overlayBottomAlong .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); } + +.cbp-caption-overlayBottomPush .cbp-caption-defaultWrap, +.cbp-caption-overlayBottomPush .cbp-caption-activeWrap { + -webkit-transition: -webkit-transform .25s; + transition: transform .25s; } + +.cbp-caption-overlayBottomPush .cbp-caption-activeWrap { + height: 69px; + -webkit-transform: translateY(0); + transform: translateY(0); } + +.cbp-caption-overlayBottomPush .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateY(-68px); + transform: translateY(-68px); } + +.cbp-caption-overlayBottomPush .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateY(-69px); + transform: translateY(-69px); } + +.cbp-caption-overlayBottomReveal .cbp-caption-defaultWrap { + z-index: 2; + -webkit-transition: -webkit-transform .25s; + transition: transform .25s; } + +.cbp-caption-overlayBottomReveal .cbp-caption-activeWrap { + bottom: 0; + z-index: 1; + height: auto; } + +.cbp-caption-overlayBottomReveal .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateY(-68px); + transform: translateY(-68px); } + +.cbp-caption-overlayRightAlong .cbp-caption-defaultWrap, +.cbp-caption-overlayRightAlong .cbp-caption-activeWrap { + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; } + +.cbp-caption-overlayRightAlong .cbp-caption-activeWrap { + top: 0; + left: -50%; + width: 50%; } + +.cbp-caption-overlayRightAlong .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateX(25%); + transform: translateX(25%); } + +.cbp-caption-overlayRightAlong .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateX(100%); + transform: translateX(100%); } + +.cbp-caption-pushDown .cbp-caption-defaultWrap, +.cbp-caption-pushDown .cbp-caption-activeWrap { + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; } + +.cbp-caption-pushDown .cbp-caption-activeWrap { + top: -100%; } + +.cbp-caption-pushDown .cbp-caption:hover .cbp-caption-defaultWrap, +.cbp-caption-pushDown .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateY(100%); + transform: translateY(100%); } + +.cbp-caption-pushTop .cbp-caption-activeWrap, +.cbp-caption-pushTop .cbp-caption-defaultWrap { + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; } + +.cbp-caption-pushTop .cbp-caption-activeWrap { + height: 102%; } + +.cbp-caption-pushTop .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); } + +.cbp-caption-pushTop .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateY(-99%); + transform: translateY(-99%); } + +.cbp-caption-revealBottom .cbp-caption-defaultWrap { + z-index: 2; + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; } + +.cbp-caption-revealBottom .cbp-caption-activeWrap { + top: 0; + z-index: 1; } + +.cbp-caption-revealBottom .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateY(-100%); + transform: translateY(-100%); } + +.cbp-caption-revealLeft .cbp-caption-activeWrap { + left: 100%; + top: 0; + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; } + +.cbp-caption-revealLeft .cbp-caption:hover .cbp-caption-activeWrap { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); } + +.cbp-caption-revealTop .cbp-caption-defaultWrap { + z-index: 2; + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; } + +.cbp-caption-revealTop .cbp-caption-activeWrap { + top: 0; + z-index: 1; } + +.cbp-caption-revealTop .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: translateY(100%); + transform: translateY(100%); } + +.cbp-caption-zoom .cbp-caption-defaultWrap { + -webkit-transition: -webkit-transform .35s ease-out; + transition: transform .35s ease-out; } + +.cbp-caption-zoom .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: scale(1.25); + transform: scale(1.25); } + +.cbp-caption-zoom .cbp-caption-activeWrap { + opacity: 0; + top: 0; + background-color: rgba(0, 0, 0, 0.9); + -webkit-transition: opacity .4s; + transition: opacity .4s; } + +.cbp-caption-zoom .cbp-caption:hover .cbp-caption-activeWrap { + opacity: 1; } + +.cbp-caption-opacity .cbp-item { + padding: 1px; } + +.cbp-caption-opacity .cbp-caption, +.cbp-caption-opacity .cbp-caption-activeWrap, +.cbp-caption-opacity .cbp-caption-defaultWrap { + background-color: transparent; } + +.cbp-caption-opacity .cbp-caption { + border: 1px solid transparent; } + +.cbp-caption-opacity .cbp-caption:hover { + border-color: #EDEDED; } + +.cbp-caption-opacity .cbp-caption-defaultWrap { + opacity: 1; + -webkit-transition: opacity .4s; + transition: opacity .4s; } + +.cbp-caption-opacity .cbp-caption:hover .cbp-caption-defaultWrap { + opacity: .8; } + +.cbp-caption-opacity .cbp-caption:hover .cbp-caption-activeWrap { + top: 0; } + +.cbp-caption-expand .cbp-caption { + border-bottom: 1px dotted #eaeaea; } + +.cbp-caption-expand .cbp-caption-activeWrap { + height: auto; + background-color: transparent; } + +.cbp-caption-expand .cbp-caption-defaultWrap { + cursor: pointer; + font: 500 15px/23px "Roboto", sans-serif; + color: #474747; + padding: 12px 0 11px 26px; } + +.cbp-caption-expand .cbp-caption-defaultWrap svg { + position: absolute; + top: 16px; + left: 0; } + +.cbp-caption-expand .cbp-l-caption-body { + font: 400 13px/21px "Roboto", sans-serif; + color: #888; + padding: 0 0 20px 26px; } + +.cbp-caption-expand-active { + -webkit-transition: height .4s !important; + transition: height .4s !important; } + +.cbp-caption-expand-active .cbp-item { + -webkit-transition: left .4s, top .4s !important; + transition: left .4s, top .4s !important; } + +.cbp-caption-expand-open .cbp-caption-activeWrap { + -webkit-transition: height .4s; + transition: height .4s; } + +.cbp-l-filters-alignCenter { + margin-bottom: 30px; + text-align: center; + font: 400 12px/21px sans-serif; + color: #DADADA; } + .cbp-l-filters-alignCenter .cbp-filter-item { + color: #949494; + cursor: pointer; + font: 400 13px/21px "Open Sans", sans-serif; + padding: 0 12px; + position: relative; + overflow: visible; + margin: 0 0 10px; + display: inline-block; + -webkit-transition: color .3s ease-in-out; + transition: color .3s ease-in-out; } + .cbp-l-filters-alignCenter .cbp-filter-item:hover { + color: #2D2C2C; } + .cbp-l-filters-alignCenter .cbp-filter-item:hover .cbp-filter-counter { + -webkit-transform: translateY(-30px); + transform: translateY(-30px); } + .cbp-l-filters-alignCenter .cbp-filter-item.cbp-filter-item-active { + color: #2D2C2C; + cursor: default; } + .cbp-l-filters-alignCenter .cbp-filter-counter { + background-color: #626161; } + .cbp-l-filters-alignCenter .cbp-filter-counter:after { + border-top: 4px solid #626161; } + +.cbp-l-filters-alignLeft { + margin-bottom: 30px; } + .cbp-l-filters-alignLeft .cbp-filter-item { + background-color: #fff; + border: 1px solid #cdcdcd; + cursor: pointer; + font: 400 12px/30px "Open Sans", sans-serif; + padding: 0 13px; + position: relative; + overflow: visible; + margin: 0 4px 10px 4px; + display: inline-block; + color: #888888; + -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out; + transition: color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out; } + .cbp-l-filters-alignLeft .cbp-filter-item:hover { + color: #111; } + .cbp-l-filters-alignLeft .cbp-filter-item.cbp-filter-item-active { + background-color: #6C7A89; + border: 1px solid #6C7A89; + color: #fff; + cursor: default; } + .cbp-l-filters-alignLeft .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-alignLeft .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-alignLeft .cbp-filter-counter { + display: inline; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-alignLeft { + text-align: center; } } + +.cbp-l-filters-alignRight { + margin-bottom: 30px; + text-align: right; } + .cbp-l-filters-alignRight .cbp-filter-item { + background-color: transparent; + color: #8B8B8B; + cursor: pointer; + font: 400 11px/31px "Open Sans", sans-serif; + padding: 0 14px; + position: relative; + overflow: visible; + margin: 0 3px 10px 3px; + border: 1px solid #E4E2E2; + text-transform: uppercase; + display: inline-block; + -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out; + transition: color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out; } + .cbp-l-filters-alignRight .cbp-filter-item:hover { + color: #2B3444; } + .cbp-l-filters-alignRight .cbp-filter-item.cbp-filter-item-active { + color: #FFFFFF; + background-color: #049372; + border-color: #049372; + cursor: default; } + .cbp-l-filters-alignRight .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-alignRight .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-alignRight .cbp-filter-counter { + background-color: #049372; } + .cbp-l-filters-alignRight .cbp-filter-counter:after { + border-top: 4px solid #049372; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-alignRight { + text-align: center; } } + +.cbp-l-filters-button { + margin-bottom: 30px; } + .cbp-l-filters-button .cbp-filter-item { + background-color: #FFFFFF; + border: 1px solid #ECECEC; + color: #888888; + cursor: pointer; + font: 400 12px/32px "Open Sans", sans-serif; + margin: 0 5px 10px 5px; + overflow: visible; + padding: 0 17px; + position: relative; + display: inline-block; + -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out, border-color .3s ease-in-out; + transition: color .3s ease-in-out, background-color .3s ease-in-out, border-color .3s ease-in-out; } + .cbp-l-filters-button .cbp-filter-item:hover { + color: #545454; + border-color: #DADADA; } + .cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active { + background-color: #545454; + color: #fff; + border-color: #5d5d5d; + cursor: default; } + .cbp-l-filters-button .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-button .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-button .cbp-filter-counter { + background-color: #545454; } + .cbp-l-filters-button .cbp-filter-counter:after { + border-top: 4px solid #545454; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-button { + text-align: center; } } + +.cbp-l-filters-buttonCenter { + margin-bottom: 30px; + text-align: center; } + .cbp-l-filters-buttonCenter .cbp-filter-item { + background-color: #FFFFFF; + border: 1px solid #ECECEC; + color: #888888; + cursor: pointer; + font: 400 12px/32px "Roboto", sans-serif; + margin: 0 5px 10px 5px; + overflow: visible; + padding: 0 17px; + position: relative; + display: inline-block; + -webkit-transition: color .3s ease-in-out, border-color .3s ease-in-out; + transition: color .3s ease-in-out, border-color .3s ease-in-out; } + .cbp-l-filters-buttonCenter .cbp-filter-item:hover { + color: #5d5d5d; } + .cbp-l-filters-buttonCenter .cbp-filter-item.cbp-filter-item-active { + color: #3B9CB3; + border-color: #8CD2E5; + cursor: default; } + .cbp-l-filters-buttonCenter .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-buttonCenter .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-buttonCenter .cbp-filter-counter { + background-color: #68ABBC; } + .cbp-l-filters-buttonCenter .cbp-filter-counter:after { + border-top: 4px solid #68ABBC; } + +.cbp-l-filters-dropdown { + margin-bottom: 40px; + height: 38px; + position: relative; + z-index: 5; } + +.cbp-l-filters-dropdownWrap { + width: 200px; + position: absolute; + right: 0; + background: #4d4c4d; } + +.cbp-l-filters-dropdownHeader { + font: 400 12px/38px "Open Sans", sans-serif; + margin: 0 17px; + color: #FFF; + cursor: default; + position: relative; } + +.cbp-l-filters-dropdownHeader:after { + border-color: #FFFFFF rgba(0, 0, 0, 0); + border-style: solid; + border-width: 5px 5px 0; + content: ""; + height: 0; + position: absolute; + right: 0; + top: 50%; + width: 0; + margin-top: -1px; } + +.cbp-l-filters-dropdownWrap.cbp-l-filters-dropdownWrap-open .cbp-l-filters-dropdownHeader:after { + border-width: 0 5px 5px; } + +.cbp-l-filters-dropdownList { + display: none; + list-style: none outside none; + margin: 0; + padding: 0; } + +.cbp-l-filters-dropdownList > li { + margin: 0; + list-style: none; } + +.cbp-l-filters-dropdownWrap.cbp-l-filters-dropdownWrap-open .cbp-l-filters-dropdownList { + display: block; + margin: 0; } + +.cbp-l-filters-dropdownList .cbp-filter-item { + background: transparent; + color: #b3b3b3; + width: 100%; + text-align: left; + font: 400 12px/40px "Open Sans", sans-serif; + margin: 0; + padding: 0 17px; + cursor: pointer; + border: none; + border-top: 1px solid #595959; } + +.cbp-l-filters-dropdownList .cbp-filter-item:hover { + color: #e6e6e6; } + +.cbp-l-filters-dropdownList .cbp-filter-item-active { + color: #fff; + cursor: default; } + +.cbp-l-filters-dropdownWrap .cbp-filter-counter { + display: inline; } + +.cbp-l-filters-dropdown-floated { + float: right; + margin-top: -2px; + margin-left: 20px; + width: 200px; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-dropdown-floated { + width: 100%; + margin-top: 0; + margin-left: 0; } + .cbp-l-filters-dropdownWrap { + right: 0; + left: 0; + margin: 0 auto; } } + +.cbp-l-filters-list { + margin-bottom: 30px; + /* clearfix */ + content: ""; + display: table; + clear: both; } + +.cbp-l-filters-list .cbp-filter-item { + background-color: transparent; + color: #585252; + cursor: pointer; + font: 400 12px/35px "Open Sans", sans-serif; + padding: 0 18px; + position: relative; + overflow: visible; + margin: 0 0 10px; + float: left; + border: 1px solid #3288C4; + border-right-width: 0; + -webkit-transition: left .3s ease-in-out; + transition: left .3s ease-in-out; } + +.cbp-l-filters-list .cbp-filter-item:hover { + color: #000; } + +.cbp-l-filters-list .cbp-filter-item.cbp-filter-item-active { + cursor: default; + color: #FFFFFF; + background-color: #3288C4; } + +.cbp-l-filters-list-first { + border-radius: 6px 0 0 6px; } + +.cbp-l-filters-list-last { + border-radius: 0 6px 6px 0; + border-right-width: 1px !important; } + +.cbp-l-filters-list .cbp-filter-counter { + display: inline; } + +@media only screen and (max-width: 600px) { + .cbp-l-filters-list .cbp-filter-item { + margin-right: 5px; + border-radius: 6px; + border-right-width: 1px; } } + +.cbp-l-filters-work { + margin-bottom: 30px; + text-align: center; } + .cbp-l-filters-work .cbp-filter-item { + background-color: #FFFFFF; + color: #888; + cursor: pointer; + font: 600 11px/37px "Open Sans", sans-serif; + margin: 0 3px 15px 3px; + overflow: visible; + padding: 0 16px; + position: relative; + display: inline-block; + text-transform: uppercase; + -webkit-transition: color .3s ease-in-out, background-color .3s ease-in-out; + transition: color .3s ease-in-out, background-color .3s ease-in-out; } + .cbp-l-filters-work .cbp-filter-item:hover { + color: #fff; + background: #607D8B; } + .cbp-l-filters-work .cbp-filter-item.cbp-filter-item-active { + background-color: #607D8B; + color: #fff; + cursor: default; } + .cbp-l-filters-work .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-work .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-work .cbp-filter-counter { + font: 600 11px/37px "Open Sans", sans-serif; + text-align: center; + display: inline-block; + margin-left: 8px; } + .cbp-l-filters-work .cbp-filter-counter:before { + content: '('; } + .cbp-l-filters-work .cbp-filter-counter:after { + content: ')'; } + +.cbp-l-filters-big { + margin-bottom: 30px; + text-align: center; } + .cbp-l-filters-big .cbp-filter-item { + color: #444; + cursor: pointer; + font: 400 15px/22px "Roboto", sans-serif; + margin: 0 8px 10px 8px; + padding: 10px 23px; + position: relative; + display: inline-block; + border: 1px solid transparent; + text-transform: uppercase; + -webkit-transition: color .3s ease-in-out, border .3s ease-in-out; + transition: color .3s ease-in-out, border .3s ease-in-out; } + .cbp-l-filters-big .cbp-filter-item:hover { + color: #888; } + .cbp-l-filters-big .cbp-filter-item.cbp-filter-item-active { + border-color: #d5d5d5; + color: #444; + cursor: default; } + .cbp-l-filters-big .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-big .cbp-filter-item:last-child { + margin-right: 0; } + +.cbp-l-filters-text { + margin-bottom: 30px; + text-align: center; + font: 400 12px/36px "Lato", sans-serif; + color: #DADADA; + padding: 0 15px; } + .cbp-l-filters-text .cbp-filter-item { + color: #949494; + cursor: pointer; + font: 400 13px/21px "Lato", sans-serif; + padding: 0 12px; + position: relative; + overflow: visible; + margin: 0 0 10px; + display: inline-block; + -webkit-transition: color .3s ease-in-out; + transition: color .3s ease-in-out; } + .cbp-l-filters-text .cbp-filter-item:hover { + color: #2D2C2C; } + .cbp-l-filters-text .cbp-filter-item:hover .cbp-filter-counter { + -webkit-transform: translateY(-30px); + transform: translateY(-30px); } + .cbp-l-filters-text .cbp-filter-item.cbp-filter-item-active { + color: #2D2C2C; + cursor: default; } + .cbp-l-filters-text .cbp-filter-counter { + background-color: #626161; + font: 400 11px/18px "Lato", sans-serif; } + .cbp-l-filters-text .cbp-filter-counter:after { + border-top: 4px solid #626161; } + +.cbp-l-filters-text-sort { + display: inline-block; + font: 400 13px/21px "Lato", sans-serif; + color: #949494; + margin-right: 15px; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-text-sort { + display: block; + margin-bottom: 10px; } } + +.cbp-l-filters-underline { + margin-bottom: 30px; } + .cbp-l-filters-underline .cbp-filter-item { + border-bottom: 3px solid transparent; + cursor: pointer; + font: 600 14px/21px "Open Sans", sans-serif; + padding: 8px 10px; + position: relative; + overflow: visible; + margin: 0 10px 10px 10px; + display: inline-block; + color: #787878; + -webkit-transition: color .25s ease-in-out, border-color .25s ease-in-out; + transition: color .25s ease-in-out, border-color .25s ease-in-out; } + .cbp-l-filters-underline .cbp-filter-item:hover { + color: #111; } + .cbp-l-filters-underline .cbp-filter-item.cbp-filter-item-active { + border-bottom-color: #666; + color: #444; + cursor: default; } + .cbp-l-filters-underline .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-underline .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-underline .cbp-filter-counter { + display: inline; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-underline { + text-align: center; } } + +.cbp-l-filters-holder { + text-align: center; } + .cbp-l-filters-holder .cbp-filter-item { + cursor: pointer; + font: 600 16px/21px "Open Sans", sans-serif; + padding: 8px 10px; + position: relative; + overflow: visible; + margin: 0 10px 10px 10px; + display: inline-block; + color: #555; + -webkit-transition: color .25s ease-in-out; + transition: color .25s ease-in-out; + letter-spacing: 0.3px; } + .cbp-l-filters-holder .cbp-filter-item:hover { + color: #d8b345; } + .cbp-l-filters-holder .cbp-filter-item.cbp-filter-item-active { + color: #d8b345; + cursor: default; } + .cbp-l-filters-holder .cbp-filter-item:first-child { + margin-left: 0; } + .cbp-l-filters-holder .cbp-filter-item:last-child { + margin-right: 0; } + .cbp-l-filters-holder .cbp-filter-counter { + display: inline; } + +@media only screen and (max-width: 480px) { + .cbp-l-filters-holder { + text-align: center; } } + +.cbp-l-subfilters { + display: none; + opacity: 0; + margin-bottom: 40px; + text-align: center; } + .cbp-l-subfilters .cbp-filter-item { + position: relative; + font: 13px "Open Sans", sans-serif; + display: inline-block; + color: #9e9e9e; + margin: 0 15px; + cursor: pointer; + margin: 0 10px 10px 10px; + letter-spacing: 0.3px; } + .cbp-l-subfilters .cbp-filter-item:hover { + color: #555; } + .cbp-l-subfilters .cbp-filter-item:after { + content: ''; + background-color: #dfb947; + width: 0; + height: 2px; + position: absolute; + left: 50%; + bottom: -6px; + -webkit-transform: translateX(-50%); + transform: translateX(-50%); + -webkit-transition: width .3s; + transition: width .3s; } + .cbp-l-subfilters .cbp-filter-item-active { + color: #555; } + .cbp-l-subfilters .cbp-filter-item-active:after { + width: 100%; } + +.cbp-l-subfilters--active { + display: block; + -webkit-animation: fadeIn .5s ease both; + animation: fadeIn .5s ease both; } + +.cbp-animation-quicksand { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-quicksand .cbp-item { + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; } + +.cbp-animation-quicksand .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-quicksand .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-quicksand .cbp-item-on2off .cbp-item-wrapper { + -webkit-animation: quicksand-off .6s ease-out both; + animation: quicksand-off .6s ease-out both; } + +.cbp-animation-quicksand .cbp-item-off2on .cbp-item-wrapper { + -webkit-animation: quicksand-on .6s ease-out both; + animation: quicksand-on .6s ease-out both; } + +/* in */ +@-webkit-keyframes quicksand-off { + 100% { + opacity: 0; + -webkit-transform: scale3d(0, 0, 0); } } + +@keyframes quicksand-off { + 100% { + opacity: 0; + transform: scale3d(0, 0, 0); } } + +/* out */ +@-webkit-keyframes quicksand-on { + 0% { + opacity: 0; + -webkit-transform: scale3d(0, 0, 0); } } + +@keyframes quicksand-on { + 0% { + opacity: 0; + transform: scale3d(0, 0, 0); } } + +.cbp-animation-fadeOut, +.cbp-animation-boxShadow { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-fadeOut .cbp-item, +.cbp-animation-boxShadow .cbp-item { + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; } + +.cbp-animation-fadeOut .cbp-item, +.cbp-animation-boxShadow .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-fadeOut .cbp-item-wrapper, +.cbp-animation-boxShadow .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-fadeOut .cbp-item-on2off .cbp-item-wrapper, +.cbp-animation-boxShadow .cbp-item-on2off .cbp-item-wrapper { + -webkit-animation: fadeOut-off .6s ease-in-out both; + animation: fadeOut-off .6s ease-in-out both; } + +.cbp-animation-fadeOut .cbp-item-off2on .cbp-item-wrapper, +.cbp-animation-boxShadow .cbp-item-off2on .cbp-item-wrapper { + -webkit-animation: fadeOut-on .6s ease-in-out both; + animation: fadeOut-on .6s ease-in-out both; } + +/* in */ +@-webkit-keyframes fadeOut-off { + 0% { + opacity: 1; } + 80%, 100% { + opacity: 0; } } + +@keyframes fadeOut-off { + 0% { + opacity: 1; } + 80%, 100% { + opacity: 0; } } + +/* out */ +@-webkit-keyframes fadeOut-on { + 0% { + opacity: 0; } + 100% { + opacity: 1; } } + +@keyframes fadeOut-on { + 0% { + opacity: 0; } + 100% { + opacity: 1; } } + +.cbp-animation-flipOut { + -webkit-transition: height .7s ease-in-out; + transition: height .7s ease-in-out; + will-change: height; } + +.cbp-animation-flipOut .cbp-item { + -webkit-transition: -webkit-transform .7s ease-in-out; + transition: transform .7s ease-in-out; } + +.cbp-animation-flipOut .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-flipOut .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-flipOut .cbp-item-on2off .cbp-item-wrapper { + -webkit-animation: flipOut-out .7s both ease-in; + animation: flipOut-out .7s both ease-in; } + +.cbp-animation-flipOut .cbp-item-off2on .cbp-item-wrapper { + -webkit-animation: flipOut-in .7s ease-out both; + animation: flipOut-in .7s ease-out both; } + +/* out */ +@-webkit-keyframes flipOut-out { + 50%, 100% { + -webkit-transform: translateZ(-1000px) rotateY(-90deg); + opacity: 0.2; } } + +@keyframes flipOut-out { + 50%, 100% { + transform: translateZ(-1000px) rotateY(-90deg); + opacity: 0.2; } } + +/* in */ +@-webkit-keyframes flipOut-in { + 0%, 50% { + -webkit-transform: translateZ(-1000px) rotateY(90deg); + opacity: 0.2; } } + +@keyframes flipOut-in { + 0%, 50% { + transform: translateZ(-1000px) rotateY(90deg); + opacity: 0.2; } } + +.cbp-animation-flipBottom { + -webkit-transition: height .7s ease-in-out; + transition: height .7s ease-in-out; + will-change: height; } + +.cbp-animation-flipBottom .cbp-item { + -webkit-transition: -webkit-transform .7s ease-in-out; + transition: transform .7s ease-in-out; } + +.cbp-animation-flipBottom .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-flipBottom .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-flipBottom .cbp-item-on2off .cbp-item-wrapper { + -webkit-animation: flipBottom-out .7s both ease-in; + animation: flipBottom-out .7s both ease-in; } + +.cbp-animation-flipBottom .cbp-item-off2on .cbp-item-wrapper { + -webkit-animation: flipBottom-in .7s ease-out both; + animation: flipBottom-in .7s ease-out both; } + +/* out */ +@-webkit-keyframes flipBottom-out { + 50%, 100% { + -webkit-transform: translateZ(-1000px) rotateX(-90deg); + opacity: 0.2; } } + +@keyframes flipBottom-out { + 50%, 100% { + transform: translateZ(-1000px) rotateX(-90deg); + opacity: 0.2; } } + +/* in */ +@-webkit-keyframes flipBottom-in { + 0%, 50% { + -webkit-transform: translateZ(-1000px) rotateX(90deg); + opacity: 0.2; } } + +@keyframes flipBottom-in { + 0%, 50% { + transform: translateZ(-1000px) rotateX(90deg); + opacity: 0.2; } } + +.cbp-animation-scaleSides { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-scaleSides .cbp-item { + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; } + +.cbp-animation-scaleSides .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-scaleSides .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-scaleSides .cbp-item-on2off .cbp-item-wrapper { + -webkit-animation: scaleSides-out .9s both; + animation: scaleSides-out .9s both; } + +.cbp-animation-scaleSides .cbp-item-off2on .cbp-item-wrapper { + -webkit-animation: scaleSides-in .9s both; + animation: scaleSides-in .9s both; } + +/* out */ +@-webkit-keyframes scaleSides-out { + 50%, 100% { + -webkit-transform: scale(0.6); + opacity: 0; } } + +@keyframes scaleSides-out { + 50%, 100% { + transform: scale(0.6); + opacity: 0; } } + +/* in */ +@-webkit-keyframes scaleSides-in { + 0%, 50% { + -webkit-transform: scale(0.6); + opacity: 0; } } + +@keyframes scaleSides-in { + 0%, 50% { + transform: scale(0.6); + opacity: 0; } } + +.cbp-animation-skew { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-skew .cbp-item { + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; } + +.cbp-animation-skew .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-skew .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-skew .cbp-item-on2off .cbp-item-wrapper { + -webkit-animation: skew-off .6s ease-out both; + animation: skew-off .6s ease-out both; } + +.cbp-animation-skew .cbp-item-off2on .cbp-item-wrapper { + -webkit-animation: skew-on .6s ease-out both; + animation: skew-on .6s ease-out both; } + +/* in */ +@-webkit-keyframes skew-off { + 100% { + opacity: 0; + -webkit-transform: scale3d(0, 0, 0) skew(20deg, 0); } } + +@keyframes skew-off { + 100% { + opacity: 0; + transform: scale3d(0, 0, 0) skew(20deg, 0); } } + +/* out */ +@-webkit-keyframes skew-on { + 0% { + opacity: 0; + -webkit-transform: scale3d(0, 0, 0) skew(0, 20deg); } } + +@keyframes skew-on { + 0% { + opacity: 0; + transform: scale3d(0, 0, 0) skew(0, 20deg); } } + +.cbp-animation-fadeOutTop { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-fadeOutTop .cbp-wrapper-outer { + overflow: visible; } + +.cbp-animation-fadeOutTop .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; + overflow: visible; } + +.cbp-animation-fadeOutTop .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-fadeOutTop .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: fadeOutTop-out .6s both ease-in-out; + animation: fadeOutTop-out .6s both ease-in-out; } + +.cbp-animation-fadeOutTop .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: fadeOutTop-in .6s both ease-in-out; + animation: fadeOutTop-in .6s both ease-in-out; } + +/* out */ +@-webkit-keyframes fadeOutTop-out { + 0% { + -webkit-transform: translateY(0); + opacity: 1; } + 50%, 100% { + -webkit-transform: translateY(-30px); + opacity: 0; } } + +@keyframes fadeOutTop-out { + 0% { + transform: translateY(0); + opacity: 1; } + 50%, 100% { + transform: translateY(-30px); + opacity: 0; } } + +/* out */ +@-webkit-keyframes fadeOutTop-in { + 0%, 50% { + -webkit-transform: translateY(-30px); + opacity: 0; } + 100% { + -webkit-transform: translateY(0); + opacity: 1; } } + +@keyframes fadeOutTop-in { + 0%, 50% { + transform: translateY(-30px); + opacity: 0; } + 100% { + transform: translateY(0); + opacity: 1; } } + +.cbp-animation-slideLeft { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-slideLeft .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-slideLeft .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-slideLeft .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: slideLeft-out .8s both ease-in-out; + animation: slideLeft-out .8s both ease-in-out; } + +.cbp-animation-slideLeft .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: slideLeft-in .8s both ease-in-out; + animation: slideLeft-in .8s both ease-in-out; } + +/* out */ +@-webkit-keyframes slideLeft-out { + 0% { + opacity: 1; + transform: scale(1); } + 25% { + opacity: .75; + -webkit-transform: scale(0.8); } + 75% { + opacity: .75; + -webkit-transform: scale(0.8) translateX(-200%); } + 100% { + opacity: .75; + -webkit-transform: scale(0.8) translateX(-200%); } } + +@keyframes slideLeft-out { + 0% { + opacity: 1; + transform: scale(1); } + 25% { + opacity: .75; + transform: scale(0.8); } + 75% { + opacity: .75; + transform: scale(0.8) translateX(-200%); } + 100% { + opacity: .75; + transform: scale(0.8) translateX(-200%); } } + +/* in */ +@-webkit-keyframes slideLeft-in { + 0%, 25% { + opacity: .75; + -webkit-transform: scale(0.8) translateX(200%); } + 75% { + opacity: .75; + -webkit-transform: scale(0.8); } + 100% { + opacity: 1; + -webkit-transform: scale(1) translateX(0); } } + +@keyframes slideLeft-in { + 0%, 25% { + opacity: .75; + transform: scale(0.8) translateX(200%); } + 75% { + opacity: .75; + transform: scale(0.8); } + 100% { + opacity: 1; + transform: scale(1) translateX(0); } } + +.cbp-animation-sequentially { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-sequentially .cbp-wrapper-outer { + overflow: visible; } + +.cbp-animation-sequentially .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; + overflow: visible; } + +.cbp-animation-sequentially .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-sequentially .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: fadeOutTop-out .6s both ease; + animation: fadeOutTop-out .6s both ease; } + +.cbp-animation-sequentially .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: fadeOutTop-in .6s both ease-out; + animation: fadeOutTop-in .6s both ease-out; } + +.cbp-animation-3dflip { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-3dflip .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-3dflip .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-3dflip .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-transform-origin: 0% 50%; + transform-origin: 0% 50%; + -webkit-animation: flip-out 0.6s both ease-in-out; + animation: flip-out 0.6s both ease-in-out; } + +.cbp-animation-3dflip .cbp-wrapper .cbp-item-wrapper { + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; + -webkit-animation: flip-in 0.6s both ease-in-out; + animation: flip-in 0.6s both ease-in-out; } + +@-webkit-keyframes flip-out { + 100% { + opacity: 0; + -webkit-transform: rotateY(90deg); } } + +@keyframes flip-out { + 100% { + opacity: 0; + transform: rotateY(90deg); } } + +@-webkit-keyframes flip-in { + 0% { + opacity: 0; + -webkit-transform: rotateY(-90deg); } + 100% { + opacity: 1; + -webkit-transform: rotateY(0deg); } } + +@keyframes flip-in { + 0% { + opacity: 0; + transform: rotateY(-90deg); } + 100% { + opacity: 1; + transform: rotateY(0deg); } } + +.cbp-animation-flipOutDelay { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-flipOutDelay .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-flipOutDelay .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-flipOutDelay .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: flipOut-out 1s both ease-in; + animation: flipOut-out 1s both ease-in; } + +.cbp-animation-flipOutDelay .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: flipOut-in 1s both ease-out; + animation: flipOut-in 1s both ease-out; } + +.cbp-animation-slideDelay { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-slideDelay .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-slideDelay .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-slideDelay .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: slideDelay-out 0.5s both ease-in-out; + animation: slideDelay-out 0.5s both ease-in-out; } + +.cbp-animation-slideDelay .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: slideDelay-in 0.5s both ease-in-out; + animation: slideDelay-in 0.5s both ease-in-out; } + +/* out */ +@-webkit-keyframes slideDelay-out { + 100% { + -webkit-transform: translateX(-100%); } } + +@keyframes slideDelay-out { + 100% { + transform: translateX(-100%); } } + +@-webkit-keyframes slideDelay-in { + 0% { + -webkit-transform: translateX(100%); } + 100% { + -webkit-transform: translateX(0); } } + +@keyframes slideDelay-in { + 0% { + transform: translateX(100%); } + 100% { + transform: translateX(0); } } + +.cbp-animation-rotateSides { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-rotateSides .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-rotateSides .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-rotateSides .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-transform-origin: -50% 50%; + -webkit-animation: rotateSides-out .5s both ease-in; + transform-origin: -50% 50%; + animation: rotateSides-out .5s both ease-in; } + +.cbp-animation-rotateSides .cbp-wrapper .cbp-item-wrapper { + -webkit-transform-origin: 150% 50%; + -webkit-animation: rotateSides-in .6s both ease-out; + transform-origin: 150% 50%; + animation: rotateSides-in .6s both ease-out; } + +/* out */ +@-webkit-keyframes rotateSides-out { + 100% { + opacity: 0; + -webkit-transform: translateZ(-500px) rotateY(90deg); } } + +@keyframes rotateSides-out { + 100% { + opacity: 0; + transform: translateZ(-500px) rotateY(90deg); } } + +/* in */ +@-webkit-keyframes rotateSides-in { + 0% { + opacity: 0; + -webkit-transform: translateZ(-500px) rotateY(-90deg); } + 40% { + opacity: 0; + -webkit-transform: translateZ(-500px) rotateY(-90deg); } } + +@keyframes rotateSides-in { + 0% { + opacity: 0; + transform: translateZ(-500px) rotateY(-90deg); } + 40% { + opacity: 0; + transform: translateZ(-500px) rotateY(-90deg); } } + +.cbp-animation-foldLeft { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-foldLeft .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-foldLeft .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-foldLeft .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; + -webkit-animation: foldLeft-out .7s both; + animation: foldLeft-out .7s both; } + +.cbp-animation-foldLeft .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: foldLeft-in .7s both; + animation: foldLeft-in .7s both; } + +/* out */ +@-webkit-keyframes foldLeft-out { + 100% { + opacity: 0; + -webkit-transform: translateX(-100%) rotateY(-90deg); } } + +@keyframes foldLeft-out { + 100% { + opacity: 0; + transform: translateX(-100%) rotateY(-90deg); } } + +/* in */ +@-webkit-keyframes foldLeft-in { + 0% { + opacity: 0.3; + -webkit-transform: translateX(100%); } } + +@keyframes foldLeft-in { + 0% { + opacity: 0.3; + transform: translateX(100%); } } + +.cbp-animation-unfold { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-unfold .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-unfold .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-unfold .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: unfold-out .8s both; + animation: unfold-out .8s both; } + +.cbp-animation-unfold .cbp-wrapper .cbp-item-wrapper { + -webkit-transform-origin: 0% 50%; + -webkit-animation: unfold-in .8s both; + transform-origin: 0% 50%; + animation: unfold-in .8s both; } + +/* out */ +@-webkit-keyframes unfold-out { + 90% { + opacity: 0.3; } + 100% { + opacity: 0; + -webkit-transform: translateX(-100%); } } + +@keyframes unfold-out { + 90% { + opacity: 0.3; } + 100% { + opacity: 0; + transform: translateX(-100%); } } + +/* in */ +@-webkit-keyframes unfold-in { + 0% { + opacity: 0; + -webkit-transform: translateX(100%) rotateY(90deg); } } + +@keyframes unfold-in { + 0% { + opacity: 0; + transform: translateX(100%) rotateY(90deg); } } + +.cbp-animation-scaleDown { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-scaleDown .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-scaleDown .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-scaleDown .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: scaleDown-out .7s both; + animation: scaleDown-out .7s both; } + +.cbp-animation-scaleDown .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: scaleDown-in .6s both; + animation: scaleDown-in .6s both; } + +/* out */ +@-webkit-keyframes scaleDown-out { + 100% { + opacity: 0; + -webkit-transform: scale(0.8); } } + +@keyframes scaleDown-out { + 100% { + opacity: 0; + transform: scale(0.8); } } + +/* in */ +@-webkit-keyframes scaleDown-in { + 0% { + -webkit-transform: translateX(100%); } } + +@keyframes scaleDown-in { + 0% { + transform: translateX(100%); } } + +.cbp-animation-frontRow { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-frontRow .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-frontRow .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-frontRow .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-animation: frontRow-out .7s both ease; + animation: frontRow-out .7s both ease; } + +.cbp-animation-frontRow .cbp-wrapper .cbp-item-wrapper { + -webkit-animation: frontRow-in .6s both ease; + animation: frontRow-in .6s both ease; } + +/* out */ +@-webkit-keyframes frontRow-out { + 100% { + -webkit-transform: translateX(-60%) scale(0.8); + opacity: 0; } } + +@keyframes frontRow-out { + 100% { + transform: translateX(-60%) scale(0.8); + opacity: 0; } } + +/* in */ +@-webkit-keyframes frontRow-in { + 0% { + -webkit-transform: translateX(100%) scale(0.8); } + 100% { + opacity: 1; + -webkit-transform: translateX(0%) scale(1); } } + +@keyframes frontRow-in { + 0% { + transform: translateX(100%) scale(0.8); } + 100% { + opacity: 1; + transform: translateX(0%) scale(1); } } + +.cbp-animation-rotateRoom { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-rotateRoom .cbp-item { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-animation-rotateRoom .cbp-item-wrapper { + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; } + +.cbp-animation-rotateRoom .cbp-wrapper-helper .cbp-item-wrapper { + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; + -webkit-animation: rotateRoom-out .8s both ease; + animation: rotateRoom-out .8s both ease; } + +.cbp-animation-rotateRoom .cbp-wrapper .cbp-item-wrapper { + -webkit-transform-origin: 0% 50%; + transform-origin: 0% 50%; + -webkit-animation: rotateRoom-in .8s both ease; + animation: rotateRoom-in .8s both ease; } + +/* out */ +@-webkit-keyframes rotateRoom-out { + 90% { + opacity: .3; } + 100% { + opacity: 0; + -webkit-transform: translateX(-100%) rotateY(90deg); } } + +@keyframes rotateRoom-out { + 90% { + opacity: .3; } + 100% { + opacity: 0; + transform: translateX(-100%) rotateY(90deg); } } + +/* in */ +@-webkit-keyframes rotateRoom-in { + 0% { + opacity: .3; + -webkit-transform: translateX(100%) rotateY(-90deg); } } + +@keyframes rotateRoom-in { + 0% { + opacity: .3; + transform: translateX(100%) rotateY(-90deg); } } + +.cbp-animation-bounceBottom { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-bounceBottom .cbp-wrapper-helper { + -webkit-animation: bounceBottom-out .6s both ease-in-out; + animation: bounceBottom-out .6s both ease-in-out; } + +.cbp-animation-bounceBottom .cbp-wrapper { + -webkit-animation: bounceBottom-in .6s both ease-in-out; + animation: bounceBottom-in .6s both ease-in-out; } + +/* out */ +@-webkit-keyframes bounceBottom-out { + 100% { + -webkit-transform: translateY(100%); + opacity: 0; } } + +@keyframes bounceBottom-out { + 100% { + transform: translateY(100%); + opacity: 0; } } + +/* in */ +@-webkit-keyframes bounceBottom-in { + 0% { + -webkit-transform: translateY(100%); + opacity: 0; } + 100% { + -webkit-transform: translateY(0); + opacity: 1; } } + +@keyframes bounceBottom-in { + 0% { + transform: translateY(100%); + opacity: 0; } + 100% { + transform: translateY(0); + opacity: 1; } } + +.cbp-animation-bounceLeft { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-bounceLeft .cbp-wrapper-helper { + -webkit-animation: bounceLeft-out .6s both ease-in-out; + animation: bounceLeft-out .6s both ease-in-out; } + +.cbp-animation-bounceLeft .cbp-wrapper { + -webkit-animation: bounceLeft-in .6s both ease-in-out; + animation: bounceLeft-in .6s both ease-in-out; } + +/* out */ +@-webkit-keyframes bounceLeft-out { + 100% { + -webkit-transform: translateX(-100%); + opacity: 0; } } + +@keyframes bounceLeft-out { + 100% { + transform: translateX(-100%); + opacity: 0; } } + +/* in */ +@-webkit-keyframes bounceLeft-in { + 0% { + -webkit-transform: translateX(-100%); + opacity: 0; } + 100% { + -webkit-transform: translateX(0); + opacity: 1; } } + +@keyframes bounceLeft-in { + 0% { + transform: translateX(-100%); + opacity: 0; } + 100% { + transform: translateX(0); + opacity: 1; } } + +.cbp-animation-bounceTop { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-bounceTop .cbp-wrapper-helper { + -webkit-animation: bounceTop-out .6s both ease-in-out; + animation: bounceTop-out .6s both ease-in-out; } + +.cbp-animation-bounceTop .cbp-wrapper { + -webkit-animation: bounceTop-in .6s both ease-in-out; + animation: bounceTop-in .6s both ease-in-out; } + +/* out */ +@-webkit-keyframes bounceTop-out { + 100% { + -webkit-transform: translateY(-100%); + opacity: 0; } } + +@keyframes bounceTop-out { + 100% { + transform: translateY(-100%); + opacity: 0; } } + +/* in */ +@-webkit-keyframes bounceTop-in { + 0% { + -webkit-transform: translateY(-100%); + opacity: 0; } + 100% { + -webkit-transform: translateY(0); + opacity: 1; } } + +@keyframes bounceTop-in { + 0% { + transform: translateY(-100%); + opacity: 0; } + 100% { + transform: translateY(0); + opacity: 1; } } + +.cbp-animation-moveLeft { + -webkit-transition: height .6s ease-in-out; + transition: height .6s ease-in-out; + will-change: height; } + +.cbp-animation-moveLeft .cbp-wrapper-helper { + -webkit-animation: moveLeft-out .6s both ease-in-out; + animation: moveLeft-out .6s both ease-in-out; } + +.cbp-animation-moveLeft .cbp-wrapper { + -webkit-animation: moveLeft-in .6s both ease-in-out; + animation: moveLeft-in .6s both ease-in-out; } + +/* out */ +@-webkit-keyframes moveLeft-out { + 100% { + -webkit-transform: translateX(-100%); + opacity: 0; } } + +@keyframes moveLeft-out { + 100% { + transform: translateX(-100%); + opacity: 0; } } + +/* in */ +@-webkit-keyframes moveLeft-in { + 0% { + -webkit-transform: translateX(100%); + opacity: 0; } + 100% { + -webkit-transform: translateX(0); + opacity: 1; } } + +@keyframes moveLeft-in { + 0% { + transform: translateX(100%); + opacity: 0; } + 100% { + transform: translateX(0); + opacity: 1; } } + +.cbp-displayType-bottomToTop { + -webkit-perspective: 1000px; + perspective: 1000px; } + +.cbp-displayType-bottomToTop .cbp-item { + -webkit-animation: fadeInBottomToTop .3s both ease-in; + animation: fadeInBottomToTop .3s both ease-in; } + +@-webkit-keyframes fadeInBottomToTop { + 0% { + opacity: 0; + -webkit-transform: translateY(50px); } + 100% { + opacity: 1; + -webkit-transform: translateY(0); } } + +@keyframes fadeInBottomToTop { + 0% { + opacity: 0; + transform: translateY(50px); } + 100% { + opacity: 1; + transform: translateY(0); } } + +.cbp-displayType-fadeIn { + -webkit-animation: fadeIn .5s both ease-in; + animation: fadeIn .5s both ease-in; } + +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; } + 100% { + opacity: 1; } } + +@keyframes fadeIn { + 0% { + opacity: 0; } + 100% { + opacity: 1; } } + +.cbp-displayType-fadeInToTop { + -webkit-perspective: 1000px; + perspective: 1000px; + -webkit-animation: fadeInToTop .5s both ease-in; + animation: fadeInToTop .5s both ease-in; } + +@-webkit-keyframes fadeInToTop { + 0% { + opacity: 0; + -webkit-transform: translateY(30px); } + 100% { + opacity: 1; + -webkit-transform: translateY(0); } } + +@keyframes fadeInToTop { + 0% { + opacity: 0; + transform: translateY(30px); } + 100% { + opacity: 1; + transform: translateY(0); } } + +.cbp-displayType-sequentially .cbp-item { + -webkit-animation: fadeIn .5s both ease-in; + animation: fadeIn .5s both ease-in; } + +.cbp-lightbox img { + display: block; + border: 0; + width: 100%; + height: auto; } + +.cbp-popup-ie8bg { + position: absolute; + width: 100%; + height: 100%; + min-height: 100%; + top: 0; + left: 0; + z-index: -1; + background: #000; } + +.cbp-popup-wrap { + height: 100%; + text-align: center; + position: fixed; + width: 100%; + left: 0; + top: 0; + display: none; + z-index: 99990; + padding: 0 10px; } + .cbp-popup-wrap video { + outline: 0 none; } + +.cbp-popup-lightbox { + background: rgba(0, 0, 0, 0.8); + display: flex; + justify-content: center; + align-items: center; } + +.cbp-popup-singlePage { + background: white; + padding: 0; } + +.cbp-popup-wrap:before { + content: ""; + display: inline-block; + height: 100%; + vertical-align: middle; } + +.cbp-popup-content-wrap { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + overflow-y: hidden; + overflow-x: hidden; + -webkit-overflow-scrolling: touch; } + +.cbp-popup-content { + position: relative; + display: inline-block; + vertical-align: middle; + text-align: left; + max-width: 100%; } + +.cbp-popup-lightbox .cbp-popup-content { + display: flex; } + +.cbp-popup-singlePage .cbp-popup-content { + position: relative; + z-index: 1; + margin-top: 145px; + max-width: 1024px; + vertical-align: top; + width: 94%; } + +.cbp-popup-singlePage .cbp-popup-content-basic { + position: relative; + z-index: 1; + margin-top: 104px; + vertical-align: top; + width: 100%; + display: inline-block; + text-align: left; } + +.cbp-popup-lightbox-figure { + width: 100%; + position: relative; + padding: 20px 0; } + +.cbp-popup-lightbox-bottom { + position: relative; + margin-top: 3px; } + +.cbp-popup-lightbox-title { + padding-right: 50px; + font: 400 12px/18px "Open Sans", sans-serif; + color: #eee; } + +.cbp-popup-lightbox-counter { + position: absolute; + top: 0; + right: 0; + font: 400 12px/18px "Open Sans", sans-serif; + color: #eee; } + +.cbp-popup-lightbox-img { + width: auto; + max-width: 100%; + height: auto; + display: block; + box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); } + +.cbp-popup-lightbox-img[data-action] { + cursor: pointer; } + +.cbp-popup-lightbox-isIframe .cbp-popup-content { + width: 75%; + display: inline-block; } + +@media only screen and (max-width: 768px) { + .cbp-popup-lightbox-isIframe .cbp-popup-content { + width: 95%; } } + +.cbp-popup-lightbox-isIframe .cbp-lightbox-bottom { + left: 0; + position: absolute; + top: 100%; + width: 100%; + margin-top: 3px; } + +.cbp-popup-lightbox-iframe { + position: relative; + height: 0; + padding-bottom: 56.25%; + /* 16/9 ratio */ + background: #000; } + +.cbp-popup-lightbox-iframe iframe { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); } + +.cbp-popup-lightbox-iframe audio { + margin-top: 27%; } + +.cbp-popup-lightbox-iframe .cbp-popup-lightbox-bottom { + position: absolute; + left: 0; + top: 100%; + width: 100%; } + +/* NAVIGATION BUTTONS */ +.cbp-popup-singlePage .cbp-popup-navigation-wrap { + position: absolute; + top: 0; + left: 0; + width: 100%; + z-index: 10; + height: 104px; + background-color: #3D4750; } + +.cbp-popup-singlePage .cbp-popup-navigation { + position: relative; + width: 100%; + height: 100%; } + +.cbp-popup-singlePage-sticky .cbp-popup-navigation-wrap { + position: fixed; } + +.cbp-popup-singlePage-counter { + color: #fff; + position: absolute; + margin: auto; + right: 40px; + top: 0; + bottom: 0; + font: 400 13px/30px "Open Sans", sans-serif; + height: 30px; } + +@media only screen and (max-width: 768px) { + .cbp-popup-singlePage-counter { + right: 3%; } } + +.cbp-popup-next, +.cbp-popup-prev, +.cbp-popup-close { + padding: 0; + border: medium none; + position: absolute; + cursor: pointer; + outline: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.cbp-popup-lightbox .cbp-popup-prev, +.cbp-popup-lightbox .cbp-popup-next, +.cbp-popup-lightbox .cbp-popup-close { + visibility: hidden; } + +/* NAVOGATION BUTTONS */ +.cbp-popup-ready.cbp-popup-lightbox .cbp-popup-next, +.cbp-popup-ready.cbp-popup-lightbox .cbp-popup-prev, +.cbp-popup-ready.cbp-popup-lightbox .cbp-popup-close { + visibility: visible; } + +/* PREVIOUS BUTTON LIGHBOX */ +.cbp-popup-lightbox .cbp-popup-prev { + background: url("../img/cbp-sprite.png") no-repeat scroll 0 0 transparent; + width: 44px; + height: 44px; + top: 0; + bottom: 0; + left: 20px; + margin: auto; } + +.cbp-popup-lightbox .cbp-popup-prev:hover { + background-position: 0 -46px; } + +/* PREVIOUS BUTTON SINGLEPAGE */ +.cbp-popup-singlePage .cbp-popup-prev { + background: url("../img/cbp-sprite.png") no-repeat scroll 0 -92px transparent; + width: 44px; + height: 44px; + margin: auto; + top: 0; + right: 108px; + bottom: 0; + left: 0; } + +.cbp-popup-singlePage .cbp-popup-prev:hover { + background-position: 0 -138px; } + +/* NEXT BUTTON LIGHTBOX */ +.cbp-popup-lightbox .cbp-popup-next { + background: url("../img/cbp-sprite.png") no-repeat scroll -46px 0 transparent; + width: 44px; + height: 44px; + top: 0; + bottom: 0; + right: 20px; + margin: auto; } + +.cbp-popup-lightbox .cbp-popup-next:hover { + background-position: -46px -46px; } + +/* NEXT BUTTON SINGLEPAGE */ +.cbp-popup-singlePage .cbp-popup-next { + background: url("../img/cbp-sprite.png") no-repeat scroll -46px -92px transparent; + width: 44px; + height: 44px; + margin: auto; + top: 0; + right: 0; + bottom: 0; + left: 108px; } + +.cbp-popup-singlePage .cbp-popup-next:hover { + background-position: -46px -138px; } + +/* CLOSE BUTTON LIGTHBOX */ +.cbp-popup-lightbox .cbp-popup-close { + background: url("../img/cbp-sprite.png") no-repeat scroll -92px 0 transparent; + height: 40px; + width: 40px; + right: 20px; + top: 20px; } + +.cbp-popup-lightbox .cbp-popup-close:hover { + background-position: -92px -46px; } + +/* CLOSE BUTTON SINGLEPAGE */ +.cbp-popup-singlePage .cbp-popup-close { + background: url("../img/cbp-sprite.png") no-repeat scroll -92px -92px transparent; + height: 44px; + width: 44px; + margin: auto; + top: 0; + right: 0; + bottom: 0; + left: 0; } + +.cbp-popup-singlePage .cbp-popup-close:hover { + background-position: -92px -138px; } + +.cbp-popup-singlePage .cbp-popup-ie8bg { + background-color: #fff; } + +@media only screen and (max-width: 360px), (max-height: 600px) { + .cbp-popup-next, + .cbp-popup-prev, + .cbp-popup-close { + -webkit-transform: scale(0.8); + transform: scale(0.8); } + .cbp-popup-lightbox .cbp-popup-close { + right: 10px; + top: 10px; } + .cbp-popup-lightbox .cbp-popup-next { + right: 10px; } + .cbp-popup-lightbox .cbp-popup-prev { + left: 10px; } + .cbp-popup-singlePage .cbp-popup-navigation-wrap { + height: 84px; } + .cbp-popup-singlePage .cbp-popup-content { + margin-top: 120px; } } + +.cbp-popup-loadingBox { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; } + +.cbp-popup-lightbox .cbp-popup-loadingBox:after { + border-left: 3px solid rgba(255, 255, 255, 0.3); + border-right: 3px solid rgba(255, 255, 255, 0.3); + border-bottom: 3px solid rgba(255, 255, 255, 0.3); + border-top: 3px solid rgba(255, 255, 255, 0.85); } + +.cbp-popup-ready .cbp-popup-loadingBox { + visibility: hidden; + display: none; } + +.cbp-popup-loading .cbp-popup-loadingBox { + visibility: visible; + display: block; } + +.cbp-popup-transitionend .cbp-popup-content-wrap { + overflow-y: scroll; } + +.cbp-popup-singlePage { + -webkit-transform: translateX(100%); + transform: translateX(100%); + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; } + +.cbp-popup-singlePage.cbp-popup-loading .cbp-popup-content { + opacity: 0; } + +.cbp-popup-singlePage-fade { + -webkit-transform: translateX(0); + transform: translateX(0); + opacity: 0; + -webkit-transition: opacity .25s ease-in-out; + transition: opacity .25s ease-in-out; } + +.cbp-popup-singlePage-open.cbp-popup-singlePage-fade { + opacity: 1; } + +.cbp-popup-singlePage-right { + -webkit-transform: translateX(-100%); + transform: translateX(-100%); + -webkit-transition: -webkit-transform .6s ease-in-out; + transition: transform .6s ease-in-out; } + +.cbp-popup-singlePage-open { + -webkit-transform: none; + transform: none; } + +.cbp-l-project-title { + color: #454444; + font: 600 42px/46px "Open Sans", sans-serif; + letter-spacing: 2px; + margin-bottom: 15px; + text-align: center; + text-transform: uppercase; } + +.cbp-l-project-subtitle { + color: #787878; + font: 400 14px/21px "Open Sans", sans-serif; + margin: 0 auto 50px; + max-width: 500px; + text-align: center; } + +.cbp-popup-singlePage .cbp-popup-content .cbp-l-project-img { + display: block; + margin: 0 auto; + max-width: 100%; } + +.cbp-l-project-container { + overflow: hidden; + margin: 40px auto 0; + clear: both; } + +.cbp-l-project-desc { + float: left; + width: 62%; } + +.cbp-l-project-details { + float: right; + width: 38%; + padding-left: 60px; + margin-bottom: 15px; } + +@media only screen and (max-width: 768px) { + .cbp-l-project-title { + font-size: 30px; + line-height: 34px; } + .cbp-l-project-desc { + width: 100%; } + .cbp-l-project-details { + width: 100%; + margin-top: 20px; + padding-left: 0; } } + +.cbp-l-project-desc-title { + border-bottom: 1px solid #cdcdcd; + margin-bottom: 22px; + color: #444; } + +.cbp-l-project-desc-title span, +.cbp-l-project-details-title span { + border-bottom: 1px solid #747474; + display: inline-block; + margin: 0 0 -1px 0; + font: 400 16px/36px "Open Sans", sans-serif; + padding: 0 5px 0 0; } + +.cbp-l-project-desc-text { + font: 400 13px/20px "Open Sans", sans-serif; + color: #555; + margin-bottom: 20px; } + +.cbp-l-project-details-title { + border-bottom: 1px solid #cdcdcd; + margin-bottom: 19px; + color: #444; } + +.cbp-l-project-details-list { + margin: 0; + padding: 0; + list-style: none; } + +.cbp-l-project-details-list > li, +.cbp-l-project-details-list > div { + border-bottom: 1px dotted #DFDFDF; + padding: inherit; + color: #666; + font: 400 12px/30px "Open Sans", sans-serif; } + +.cbp-l-project-details-list > li:last-child, +.cbp-l-project-details-list > div:last-child { + border: none; } + +.cbp-l-project-details-list strong { + display: inline-block; + color: #696969; + font-weight: 600; + min-width: 100px; } + +.cbp-l-project-details-item { + display: flex; } + +.cbp-l-project-details-name { + color: #696969; + font-weight: 600; + min-width: 80px; + margin-right: 20px; } + +.cbp-l-project-details-visit { + color: #FFFFFF; + float: right; + clear: both; + text-decoration: none; + font: 400 11px/18px "Open Sans", sans-serif; + margin-top: 25px; + background-color: #62B57B; + padding: 8px 19px; + text-transform: uppercase; + letter-spacing: .5px; } + +.cbp-l-project-details-visit:hover { + opacity: 0.9; + color: #fff; } + +.cbp-l-project-related-wrap { + font-size: 0; + margin: 0; + padding: 0; } + +.cbp-l-project-related-item { + margin-left: 5%; + max-width: 30%; + float: left; } + +.cbp-l-project-related-item:first-child { + margin-left: 0; } + +.cbp-l-project-related-title { + font: 700 14px/18px "Open Sans", sans-serif; + color: #474747; + margin-top: 20px; } + +.cbp-l-project-related-link { + text-decoration: none; } + +.cbp-l-project-related-link:hover { + opacity: 0.9; } + +.cbp-l-member-img { + float: left; + width: 40%; + margin-top: 20px; } + +.cbp-l-member-img img { + border: 1px solid #e2e2e2; + width: auto; + max-width: 100%; + height: auto; + display: inline-block; + border: 0; } + +.cbp-l-member-info { + margin-top: 20px; + padding-left: 25px; + float: left; + width: 60%; } + +@media only screen and (max-width: 768px) { + .cbp-l-member-img { + width: 100%; + text-align: center; } + .cbp-l-member-info { + width: 100%; + padding-left: 0; } } + +.cbp-l-member-name { + font: 400 28px/28px "Open Sans", sans-serif; + color: #474747; } + +.cbp-l-member-position { + font: 400 13px/21px "Open Sans", sans-serif; + color: #888; + margin-top: 6px; } + +.cbp-l-member-desc { + font: 400 12px/18px "Open Sans", sans-serif; + margin-top: 25px; + color: #474747; } + +/* SINGLE PAGE INLINE */ +.cbp-popup-singlePageInline-open { + -webkit-transition: height .5s 0s !important; + transition: height .5s 0s !important; } + .cbp-popup-singlePageInline-open .cbp-item { + -webkit-transition: -webkit-transform .5s 0s !important; + transition: transform .5s 0s !important; } + +.cbp-popup-singlePageInline-close .cbp-popup-singlePageInline:after { + display: none; + visibility: hidden; } + +.cbp-popup-singlePageInline-close .cbp-popup-singlePageInline .cbp-popup-content, +.cbp-popup-singlePageInline-close .cbp-popup-singlePageInline .cbp-popup-navigation { + -webkit-transition-delay: 0; + transition-delay: 0; } + +.cbp-popup-singlePageInline { + width: 100%; + position: absolute; + top: 0; + left: 0; + z-index: 0; + overflow: hidden; + /* CLOSE BUTTON singlePageInline */ } + .cbp-popup-singlePageInline .cbp-popup-content { + opacity: 0; + width: 100%; + z-index: 1; + min-height: 300px; } + .cbp-popup-singlePageInline .cbp-popup-content, + .cbp-popup-singlePageInline .cbp-popup-navigation { + -webkit-transition: opacity .4s ease-in .2s; + transition: opacity .4s ease-in .2s; } + .cbp-popup-singlePageInline .cbp-popup-navigation { + opacity: 0; + position: absolute; + top: 0; + right: 0; + z-index: 2; + width: 40px; + height: 40px; } + .cbp-popup-singlePageInline .cbp-popup-close { + background: url("../img/cbp-sprite.png") no-repeat scroll -92px 0 transparent; + height: 40px; + width: 40px; + right: 20px; + top: 30px; } + .cbp-popup-singlePageInline .cbp-popup-close:hover { + opacity: 0.7; } + +.cbp-popup-singlePageInline-ready { + z-index: 4; } + .cbp-popup-singlePageInline-ready .cbp-popup-content, + .cbp-popup-singlePageInline-ready .cbp-popup-navigation { + opacity: 1; } + .cbp-popup-singlePageInline-ready:after { + display: none; + visibility: hidden; } + +.cbp-singlePageInline-active { + opacity: 0.6 !important; } + +.cbp-l-inline { + margin: 20px 0; + overflow: hidden; + background: #FAFAFA; + padding: 30px; } + +.cbp-l-inline-left { + float: left; + width: 44%; } + +.cbp-l-project-img { + max-width: 100%; } + +.cbp-l-inline-right { + float: right; + width: 56%; + padding-left: inherit; } + +@media only screen and (max-width: 768px) { + .cbp-l-inline-left { + width: 100%; + text-align: center; + margin-top: 40px; } + .cbp-l-inline-right { + width: 100%; + padding-left: 0; + margin-top: 20px; } } + +.cbp-l-inline-title { + font: 400 28px/30px "Open Sans", sans-serif; + color: #474747; } + +.cbp-l-inline-subtitle { + font: 400 13px/21px "Open Sans", sans-serif; + color: #888; + margin-top: 7px; } + +.cbp-l-inline-desc { + font: 400 13px/20px "Open Sans", sans-serif; + color: #474747; + margin-top: 25px; + margin-bottom: 20px; } + +.cbp-l-inline-view-wrap { + text-align: right; } + +.cbp-l-inline-view { + font: 400 13px/35px "Open Sans", sans-serif; + color: #9C9C9C; + margin-top: 40px; + display: inline-block; + padding: 0 20px; + border: 1px solid #ccc; + text-decoration: none; } + +.cbp-l-inline-view:hover { + color: #757575; } + +.cbp-l-inline-details { + margin-bottom: 15px; + font: 13px/22px "Open Sans", sans-serif; } + +/* default state */ +.cbp-l-loadMore-defaultText, +.cbp-l-loadMore-button-defaultText { + display: block; } + +.cbp-l-loadMore-loadingText, +.cbp-l-loadMore-noMoreLoading, +.cbp-l-loadMore-button-loadingText, +.cbp-l-loadMore-button-noMoreLoading { + display: none; } + +/* loading state */ +.cbp-l-loadMore-loading .cbp-l-loadMore-loadingText, +.cbp-l-loadMore-loading .cbp-l-loadMore-button-loadingText { + display: block; } + +.cbp-l-loadMore-loading .cbp-l-loadMore-defaultText, +.cbp-l-loadMore-loading .cbp-l-loadMore-noMoreLoading, +.cbp-l-loadMore-loading .cbp-l-loadMore-button-defaultText, +.cbp-l-loadMore-loading .cbp-l-loadMore-button-noMoreLoading { + display: none; } + +/* no more loading */ +.cbp-l-loadMore-stop .cbp-l-loadMore-noMoreLoading, +.cbp-l-loadMore-stop .cbp-l-loadMore-button-noMoreLoading { + display: block; } + +.cbp-l-loadMore-stop .cbp-l-loadMore-defaultText, +.cbp-l-loadMore-stop .cbp-l-loadMore-loadingText, +.cbp-l-loadMore-stop .cbp-l-loadMore-button-defaultText, +.cbp-l-loadMore-stop .cbp-l-loadMore-button-loadingText { + display: none; } + +.cbp-l-loadMore-bgbutton { + text-align: center; } + .cbp-l-loadMore-bgbutton .cbp-l-loadMore-link { + border: 1px solid #DEDEDE; + color: #7E7B7B; + display: inline-block; + font: 400 13px/40px "Lato", sans-serif; + min-width: 80px; + text-decoration: none; + padding: 0 50px; + margin-top: 50px; + outline: 0; + box-shadow: none; + letter-spacing: 1px; + -webkit-transition: color .25s; + transition: color .25s; } + .cbp-l-loadMore-bgbutton .cbp-l-loadMore-link:hover, .cbp-l-loadMore-bgbutton .cbp-l-loadMore-link.cbp-l-loadMore-loading { + color: #B0B0B0; } + .cbp-l-loadMore-bgbutton .cbp-l-loadMore-link.cbp-l-loadMore-stop { + color: #B0B0B0; + cursor: default; } + +.cbp-l-loadMore-button { + text-align: center; } + .cbp-l-loadMore-button .cbp-l-loadMore-link, + .cbp-l-loadMore-button .cbp-l-loadMore-button-link { + border: 1px solid #DEDEDE; + color: #7E7B7B; + display: inline-block; + font: 400 12px/36px "Open Sans", sans-serif; + min-width: 80px; + text-decoration: none; + padding: 0 30px; + outline: 0; + margin-top: 40px; + box-shadow: none; + -webkit-transition: color .25s; + transition: color .25s; } + .cbp-l-loadMore-button .cbp-l-loadMore-link:hover, .cbp-l-loadMore-button .cbp-l-loadMore-link.cbp-l-loadMore-loading, + .cbp-l-loadMore-button .cbp-l-loadMore-button-link:hover, + .cbp-l-loadMore-button .cbp-l-loadMore-button-link.cbp-l-loadMore-loading { + color: #B0B0B0; } + .cbp-l-loadMore-button .cbp-l-loadMore-link.cbp-l-loadMore-stop, .cbp-l-loadMore-button .cbp-l-loadMore-link.cbp-l-loadMore-button-stop, + .cbp-l-loadMore-button .cbp-l-loadMore-button-link.cbp-l-loadMore-stop, + .cbp-l-loadMore-button .cbp-l-loadMore-button-link.cbp-l-loadMore-button-stop { + cursor: default; + color: #B0B0B0; } + +.cbp-l-loadMore-text { + text-align: center; } + .cbp-l-loadMore-text .cbp-l-loadMore-link, + .cbp-l-loadMore-text .cbp-l-loadMore-text-link { + font: 400 15px "Open Sans", sans-serif; + color: #7E7B7B; + text-decoration: none; + cursor: pointer; + margin-top: 50px; + display: block; } + .cbp-l-loadMore-text .cbp-l-loadMore-stop, + .cbp-l-loadMore-text .cbp-l-loadMore-text-stop { + color: #B0B0B0; + cursor: default; } + +.cbp-mode-slider { + -webkit-transition: height .35s; + transition: height .35s; } + +.cbp-mode-slider .cbp-wrapper, +.cbp-mode-slider .cbp-item { + -webkit-transition: -webkit-transform .35s; + transition: transform .35s; } + +.cbp-mode-slider .cbp-wrapper { + cursor: -webkit-grab; + cursor: -o-grab; + cursor: -ms-grab; + cursor: grab; } + +.cbp-mode-slider-dragStart * { + cursor: move !important; + cursor: -ms-grabbing !important; + cursor: -webkit-grabbing !important; + cursor: -moz-grabbing !important; + cursor: grabbing !important; } + +.cbp-mode-slider-dragStart .cbp-wrapper { + -webkit-transition: none; + transition: none; } + +.cbp-nav-next, +.cbp-nav-prev { + position: relative; + background: #7c8b90; + cursor: pointer; + display: inline-block; + margin-left: 1px; + height: 22px; + width: 21px; } + +.cbp-nav-next { + border-radius: 0 2px 2px 0; } + +.cbp-nav-prev { + border-radius: 2px 0 0 2px; } + +.cbp-nav-next:hover, +.cbp-nav-prev:hover { + opacity: 0.8; } + +.cbp-nav-next:after, +.cbp-nav-prev:after { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + background: url("../img/cbp-sprite.png") no-repeat; + height: 10px; + width: 7px; } + +.cbp-nav-next:after { + background-position: -134px 0; } + +.cbp-nav-prev:after { + background-position: -134px -12px; } + +.cbp-nav-stop { + opacity: 0.5 !important; + cursor: default !important; } + +.cbp-nav { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.cbp-nav-controls { + position: absolute; + top: -51px; + right: 0; + z-index: 100; } + +.cbp-nav-pagination { + position: absolute; + bottom: -30px; + right: 0; + z-index: 100; + left: 0; + text-align: center; } + +.cbp-nav-pagination-item { + position: relative; + width: 10px; + height: 10px; + border-radius: 50%; + margin: 0 4px; + display: inline-block; + cursor: pointer; + background: #c2c2c2; + -webkit-transition: background 0.5s; + transition: background 0.5s; } + +.cbp-nav-pagination-active { + background: #797979; } + +.cbp-pagination-item { + max-width: 100px; + display: inline-block; + cursor: pointer; + margin-top: 10px; + margin-right: 5px; + position: relative; } + .cbp-pagination-item img { + display: block; + width: 100%; + height: auto; + border: 0; } + .cbp-pagination-item:after { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.5); + -webkit-transition: background .5s ease-in-out; + transition: background .5s ease-in-out; } + +.cbp-pagination-active:after { + background: rgba(0, 0, 0, 0); } + +.cbp-slider-wrap, +.cbp-slider-item { + margin: 0; + padding: 0; + list-style-type: none; } + +.cbp-slider .cbp-nav-controls { + position: static; } + +.cbp-slider .cbp-nav-next, +.cbp-slider .cbp-nav-prev { + background: transparent; + position: absolute; + margin: auto; + top: 0; + bottom: 0; + z-index: 100; + width: 44px; + height: 44px; } + +.cbp-slider .cbp-nav-next { + right: 25px; + left: auto; } + +.cbp-slider .cbp-nav-prev { + left: 25px; + right: auto; } + +.cbp-slider .cbp-nav-next:after, +.cbp-slider .cbp-nav-prev:after { + background: url("../img/cbp-sprite.png") no-repeat; + width: 44px; + height: 44px; } + +.cbp-slider .cbp-nav-next:after { + background-position: -46px -92px; } + +.cbp-slider .cbp-nav-next:hover:after { + background-position: -46px -46px; } + +.cbp-slider .cbp-nav-prev:after { + background-position: 0 -92px; } + +.cbp-slider .cbp-nav-prev:hover:after { + background-position: 0 -46px; } + +.cbp-slider .cbp-nav-pagination { + text-align: right; + bottom: 20px; + right: 25px; + left: auto; } + +.cbp-slider-edge .cbp-nav-controls { + position: static; } + +.cbp-slider-edge .cbp-nav-next, +.cbp-slider-edge .cbp-nav-prev { + background: transparent; + position: absolute; + margin: auto; + top: 0; + bottom: 0; + z-index: 100; + width: 44px; + height: 44px; } + +.cbp-slider-edge .cbp-nav-next { + right: 0; + left: auto; } + +.cbp-slider-edge .cbp-nav-prev { + left: 0; + right: auto; } + +.cbp-slider-edge .cbp-nav-next:after, +.cbp-slider-edge .cbp-nav-prev:after { + background: url("../img/cbp-sprite.png") no-repeat; + width: 9px; + height: 16px; } + +.cbp-slider-edge .cbp-nav-next:after { + background-position: -134px -24px; } + +.cbp-slider-edge .cbp-nav-prev:after { + background-position: -134px -42px; } + +.cbp-slider-edge .cbp-nav-pagination { + bottom: -50px; } + +.cbp-slider-edge .cbp-nav-pagination-item { + border: 2px solid #0f0f0f; + opacity: 0.4; + background: transparent; } + +.cbp-slider-edge .cbp-nav-pagination-active { + background: #000; } + +.cbp-slider-inline { + position: relative; } + .cbp-slider-inline .cbp-slider-item { + position: absolute; + width: 100%; + top: 0; + -webkit-transition: left .5s; + transition: left .5s; } + .cbp-slider-inline .cbp-slider-item--active { + position: relative; + z-index: 2; } + +.cbp-slider-wrapper { + position: relative; + overflow: hidden; } + +.cbp-slider-controls { + position: absolute; + top: 0; + right: 0; + z-index: 100; + opacity: 0; + -webkit-transition: opacity .7s ease-in-out; + transition: opacity .7s ease-in-out; } + +.cbp-slider-inline-ready .cbp-slider-controls { + opacity: 1; } + +.cbp-slider-next, +.cbp-slider-prev { + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + float: left; + cursor: pointer; + position: relative; + width: 36px; + height: 36px; + background: #547EB1; } + +.cbp-slider-next { + margin-left: 1px; } + +.cbp-slider-next:after, +.cbp-slider-prev:after { + content: ''; + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + margin: auto; + background: url("../img/cbp-sprite.png") no-repeat; + width: 9px; + height: 16px; } + +.cbp-slider-next:after { + background-position: -134px -60px; } + +.cbp-slider-prev:after { + background-position: -134px -78px; } + +.cbp-l-grid-agency .cbp-caption:after { + position: absolute; + content: ''; + width: 0; + height: 0; + border-bottom: 10px solid #fff; + border-right: 10px solid transparent; + border-left: 10px solid transparent; + bottom: 0px; + left: 50%; + margin-left: -5px; + z-index: 1; } + +.cbp-l-grid-agency.cbp-caption-zoom .cbp-caption:hover .cbp-caption-defaultWrap { + -webkit-transform: scale(1.15); + transform: scale(1.15); } + +.cbp-l-grid-agency-title { + margin-top: 18px; + font: 700 17px/24px "Lato", sans-serif; + color: #666; + text-align: center; + padding: 0 4px; } + +.cbp-item:hover .cbp-l-grid-agency-title { + color: #222; } + +.cbp-l-grid-agency-desc { + font: 400 12px/21px "Open Sans", sans-serif; + color: #aaa; + text-align: center; } + +@media only screen and (max-width: 480px) { + .cbp-l-grid-agency-title { + font-size: 15px; + line-height: 21px; } } + +.cbp-l-grid-work.cbp-caption-zoom .cbp-caption-activeWrap { + background-color: rgba(0, 0, 0, 0.7); } + +.cbp-l-grid-work .cbp-item { + padding: 3px; } + +.cbp-l-grid-work .cbp-item-wrapper { + background-color: #fff; + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); + padding: 7px 7px 27px; + border-top: 1px solid #F4F4F4; } + +.cbp-l-grid-work-title { + margin-top: 17px; + font: 400 17px/25px "Roboto Condensed", sans-serif; + color: #607D8B; + text-align: center; + text-transform: uppercase; + display: block; } + +.cbp-l-grid-work-title:hover { + color: #365D67; } + +.cbp-l-grid-work-desc { + font: 400 11px/16px "Open Sans", sans-serif; + color: #888888; + text-align: center; + text-transform: uppercase; } + +@media only screen and (max-width: 480px) { + .cbp-l-grid-work-title { + font-size: 15px; + line-height: 21px; + margin-top: 15px; } + .cbp-l-grid-work .cbp-item-wrapper { + padding-bottom: 18px; } } + +.cbp-l-grid-blog-title { + font: 400 18px/30px "Open Sans", sans-serif; + color: #444; + display: block; + margin-top: 17px; } + +.cbp-l-grid-blog-title:hover { + color: #787878; } + +.cbp-l-grid-blog-date { + font: 400 12px/18px "Open Sans", sans-serif; + color: #787878; + display: inline-block; } + +.cbp-l-grid-blog-comments { + font: 400 12px/18px "Open Sans", sans-serif; + color: #3C6FBB; + display: inline-block; } + +.cbp-l-grid-blog-comments:hover { + opacity: .8; } + +.cbp-l-grid-blog-desc { + font: 400 13px/18px "Open Sans", sans-serif; + color: #9B9B9B; + margin-top: 9px; } + +.cbp-l-grid-blog-split { + margin: 0 4px; + font: 400 13px/16px "Open Sans", sans-serif; + color: #787878; + display: inline-block; } + +.cbp-l-grid-clients { + height: 180px; } + +.cbp-l-clients-title-block { + font: 400 32px/53px "Roboto", sans-serif; + color: #666464; + text-align: center; + margin-bottom: 40px; } + +.cbp-l-grid-faq .cbp-item { + width: 100%; } + +.cbp-l-grid-projects-title { + font: 700 14px/21px "Open Sans", sans-serif; + color: #474747; + margin-top: 15px; } + +.cbp-l-grid-projects-desc { + font: 400 12px/18px "Open Sans", sans-serif; + color: #888888; + margin-top: 5px; } + +@media only screen and (max-width: 480px) { + .cbp-l-grid-projects-title { + margin-top: 12px; } + .cbp-l-grid-projects-desc { + margin-top: 3px; } } + +.cbp-l-grid-masonry-projects .cbp-caption-activeWrap { + background-color: #59a3b6; + background-color: rgba(89, 163, 182, 0.95); } + +.cbp-l-grid-masonry-projects .cbp-l-caption-buttonLeft, +.cbp-l-grid-masonry-projects .cbp-l-caption-buttonRight { + background-color: #545454; } + +.cbp-l-grid-masonry-projects-title { + font: 500 15px/22px "Roboto", sans-serif; + color: #59a3b6; + text-align: center; + display: block; + margin-top: 12px; } + +.cbp-l-grid-masonry-projects-title:hover { + color: #457C8B; } + +.cbp-l-grid-masonry-projects-desc { + font: 400 12px/18px "Roboto", sans-serif; + color: #b2b2b2; + text-align: center; } + +.cbp-l-grid-team-name { + font: 400 17px/24px "Open Sans", sans-serif; + color: #456297; + display: block; + text-align: center; + margin-top: 18px; } + +.cbp-l-grid-team-name:hover { + color: #34425C; } + +.cbp-l-grid-team-position { + font: italic 400 13px/21px "Open Sans", sans-serif; + color: #999; + text-align: center; } + +@media only screen and (max-width: 480px) { + .cbp-l-grid-team-name { + font-size: 15px; + line-height: 22px; + margin-top: 13px; } + .cbp-l-grid-team-position { + font-size: 12px; + line-height: 18px; } } + +.cbp-l-grid-mosaic-flat .cbp-caption-activeWrap { + background-color: #64C28E; + background-color: rgba(101, 199, 150, 0.95); } + +.cbp-l-grid-mosaic-flat .cbp-l-caption-title { + color: #FFFFFF; + font: 400 14px/21px "Lato", sans-serif; + text-transform: uppercase; + letter-spacing: 2px; + display: inline-block; } + +.cbp-l-grid-mosaic-flat .cbp-l-caption-title:after { + content: ''; + display: block; + width: 40%; + height: 1px; + background-color: #fff; + margin: 8px auto 0; } + +@media only screen and (max-width: 800px) { + .cbp-l-grid-mosaic-flat .cbp-l-caption-title:after { + display: none; } } + +.cbp-l-grid-mosaic-projects .cbp-caption-activeWrap { + background-color: #59a3b6; + background-color: rgba(89, 163, 182, 0.97); } + +.cbp-l-grid-mosaic .cbp-caption-activeWrap { + background-color: #FFEA71; + background-color: rgba(255, 234, 113, 0.95); } + +.cbp-l-grid-mosaic .cbp-l-caption-title { + color: #5A5A5A; + font: 500 18px/22px "Roboto", sans-serif; + text-transform: uppercase; + margin-bottom: 5px; } + +.cbp-l-grid-mosaic .cbp-l-caption-desc { + color: #585858; + font: 400 13px/20px "Roboto", sans-serif; } + +@media only screen and (max-width: 480px) { + .cbp-l-grid-mosaic .cbp-l-caption-title { + font-size: 16px; + line-height: 22px; + margin-bottom: 0px; } + .cbp-l-grid-mosaic .cbp-l-caption-desc { + font-size: 12px; + line-height: 18px; } } + +.cbp-l-slider-title-block { + border-bottom: 1px solid #cdcdcd; + margin-bottom: 22px; } + +.cbp-l-slider-title-block div { + padding: 0 2px 6px 0; + display: inline-block; + border-bottom: 1px solid #a9a5a5; + color: #5e5e5e; + margin-bottom: -1px; + font: 15px/21px "Roboto", sans-serif; } + +.cbp-l-grid-slider-team-name { + float: left; + font: 20px/30px "Roboto", sans-serif; + color: #494949; + margin-top: 16px; } + +.cbp-l-grid-slider-team-position { + clear: both; + font: 14px/21px "Roboto", sans-serif; + color: #A6A6A6; } + +.cbp-l-grid-slider-team-desc { + font: 13px/20px "Roboto", sans-serif; + color: #969696; + margin-top: 15px; } + +.cbp-l-grid-slider-team-social { + float: right; + margin-top: 22px; } + .cbp-l-grid-slider-team-social a { + margin-left: 4px; } + .cbp-l-grid-slider-team-social a:hover { + opacity: 0.8; } + +@media only screen and (max-width: 600px) { + .cbp-l-grid-slider-team-wrap { + float: left; + width: 100%; + margin-bottom: 10px; } + .cbp-l-grid-slider-team-name { + font-size: 17px; + line-height: 26px; + width: 100%; + margin-top: 12px; + text-align: center; } + .cbp-l-grid-slider-team-social { + width: 100%; + text-align: center; + margin-top: 8px; } + .cbp-l-grid-slider-team-position { + font-size: 13px; + line-height: 20px; + text-align: center; } + .cbp-l-grid-slider-team-desc { + font-size: 12px; + line-height: 18px; + margin-top: 10px; + text-align: center; } } + +.cbp-l-slider-testimonials-wrap { + background: #f8f9f9; + padding: 80px 0 110px; + border-width: 1px 0; + border-style: solid; + border-color: #dce1e2; } + +.cbp-l-grid-slider-testimonials-body { + color: #424242; + max-width: 800px; + margin: 0 auto; + font: 20px/32px sans-serif; + text-align: center; + padding: 0 40px; } + +.cbp-l-grid-slider-testimonials-footer { + font: 12px/19px "Roboto", sans-serif; + color: #777; + text-align: center; + margin-bottom: 10px; + margin-top: 30px; } + +.cbp-l-grid-tabs { + height: 100px; } + +.cbp-l-grid-tabs .cbp-item { + font: 14px/24px "Lato", sans-serif; + max-width: 700px; + width: 100%; + margin: 0 auto; + right: 0; + text-align: center; + color: #5a5a5a; } + +.cbp-l-testimonials-title-block { + position: relative; + text-align: center; + font: 26px/36px "Roboto", sans-serif; + color: #E7E7E7; + margin-bottom: 60px; } + .cbp-l-testimonials-title-block:after { + content: ''; + position: absolute; + margin: 0 auto; + width: 23px; + height: 2px; + bottom: -6px; + background-color: #C2C2C2; + left: 0; + right: 0; } + +.cbp-l-testimonials-wrap { + background: #2D2D2D; + padding: 60px 0 110px; } + +.cbp-l-grid-testimonials-body { + color: #e7e7e7; + max-width: 800px; + margin: 0 auto; + font: 20px/32px "Roboto", sans-serif; + text-align: center; + padding: 0 20px; } + +.cbp-l-grid-testimonials-footer { + font: 12px/19px "Roboto", sans-serif; + color: #C2C2C2; + text-align: center; + margin-bottom: 40px; + margin-top: 35px; } + +.cbp-search { + position: relative; + width: 220px; + margin-bottom: 40px; } + .cbp-search .cbp-search-nothing { + display: none; } + +.cbp-search-icon { + position: absolute; + width: 32px; + height: 100%; + top: 0; + right: 0; + text-align: center; + cursor: pointer; + pointer-events: none; } + +.cbp-search-icon:after { + content: ''; + display: block; + background: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzczNzM3MyIgZD0iTTEyMTYgODMycTAtMTg1LTEzMS41LTMxNi41VDc2OCAzODQgNDUxLjUgNTE1LjUgMzIwIDgzMnQxMzEuNSAzMTYuNVQ3NjggMTI4MHQzMTYuNS0xMzEuNVQxMjE2IDgzMnptNTEyIDgzMnEwIDUyLTM4IDkwdC05MCAzOHEtNTQgMC05MC0zOGwtMzQzLTM0MnEtMTc5IDEyNC0zOTkgMTI0LTE0MyAwLTI3My41LTU1LjV0LTIyNS0xNTAtMTUwLTIyNVQ2NCA4MzJ0NTUuNS0yNzMuNSAxNTAtMjI1IDIyNS0xNTBUNzY4IDEyOHQyNzMuNSA1NS41IDIyNSAxNTAgMTUwIDIyNVQxNDcyIDgzMnEwIDIyMC0xMjQgMzk5bDM0MyAzNDNxMzcgMzcgMzcgOTB6Ii8+PC9zdmc+") no-repeat scroll center center; + width: 100%; + height: 100%; + pointer-events: none; } + +.cbp-search-input { + height: 36px; + padding: 0 32px 0 12px; + margin: 0; + border-radius: 1px; + border: 1px solid #c6c3c4; + font: 400 12px "Open Sans", sans-serif; + width: 100%; } + +.cbp-search-input[value] + .cbp-search-icon { + pointer-events: auto; } + +.cbp-search-input[value] + .cbp-search-icon:after { + background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzczNzM3MyIgZD0iTTE0OTAgMTMyMnEwIDQwLTI4IDY4bC0xMzYgMTM2cS0yOCAyOC02OCAyOHQtNjgtMjhsLTI5NC0yOTQtMjk0IDI5NHEtMjggMjgtNjggMjh0LTY4LTI4bC0xMzYtMTM2cS0yOC0yOC0yOC02OHQyOC02OGwyOTQtMjk0LTI5NC0yOTRxLTI4LTI4LTI4LTY4dDI4LTY4bDEzNi0xMzZxMjgtMjggNjgtMjh0NjggMjhsMjk0IDI5NCAyOTQtMjk0cTI4LTI4IDY4LTI4dDY4IDI4bDEzNiAxMzZxMjggMjggMjggNjh0LTI4IDY4bC0yOTQgMjk0IDI5NCAyOTRxMjggMjggMjggNjh6Ii8+PC9zdmc+"); } + +.cbp-search-nothing { + position: absolute; + top: 0; + padding: 0 0 30px; + text-align: center; + width: 100%; + font: 13px "Open Sans", sans-serif; } + +@media only screen and (max-width: 600px) { + .cbp-search { + width: 100%; } } + +.cbp-l-project-social { + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + +.cbp-social-fb, +.cbp-social-twitter, +.cbp-social-googleplus, +.cbp-social-pinterest { + margin-right: 9px; + display: -webkit-box; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; } + .cbp-social-fb:hover, + .cbp-social-twitter:hover, + .cbp-social-googleplus:hover, + .cbp-social-pinterest:hover { + opacity: .8; } + .cbp-social-fb:focus, + .cbp-social-twitter:focus, + .cbp-social-googleplus:focus, + .cbp-social-pinterest:focus { + outline: none; } + +.cbp-social-fb path { + fill: #415C9B; } + +.cbp-social-twitter path { + fill: #55acee; } + +.cbp-social-googleplus path { + fill: #E57371; } + +.cbp-social-pinterest path { + fill: #cb2027; } + +.cbp-l-sort { + margin-bottom: 30px; + display: flex; + justify-content: center; } + +.cbp-l-direction { + display: inline-block; + background: #4d4c4d; + float: left; + height: 38px; + width: 38px; + position: relative; + border-left: 1px solid #6b6a6a; } + .cbp-l-direction:hover { + opacity: .9; } + +.cbp-l-direction-item { + height: 100%; + width: 100%; + cursor: pointer; + display: none; + z-index: 1; + background: transparent; + position: relative; } + +.cbp-l-direction:after { + border-color: #FFFFFF rgba(0, 0, 0, 0); + border-style: solid; + border-width: 5px 5px 0; + content: ""; + height: 0; + position: absolute; + right: 0; + left: 0; + top: 50%; + width: 0; + margin: -3px auto 0; + cursor: pointer; + z-index: 0; } + +.cbp-l-direction--second:after { + border-width: 0 5px 5px; } + +.cbp-l-direction--first div:first-child { + display: block; } + +.cbp-l-direction--second div:nth-child(2) { + display: block; } + +.cbp-l-sort--simple { + margin-left: 70px; } + .cbp-l-sort--simple .cbp-l-dropdown-wrap { + background: transparent; } + .cbp-l-sort--simple .cbp-l-dropdown-header { + font: 400 13px/36px "Lato", sans-serif; + color: #787878; + margin: 0; } + .cbp-l-sort--simple .cbp-l-dropdown-list { + background: white; + box-shadow: 0 0 2px 0px #e2e2e2; + border: 1px solid #ddd; } + .cbp-l-sort--simple .cbp-l-dropdown-list .cbp-l-dropdown-item { + border-top: 0; + color: #787878; } + .cbp-l-sort--simple .cbp-l-dropdown-list .cbp-l-dropdown-item:hover { + color: #b3b3b3; } + .cbp-l-sort--simple .cbp-l-dropdown-list .cbp-l-dropdown-item--active { + color: #b3b3b3; } + +.cbp-l-text-sort { + font: 400 13px/36px "Lato", sans-serif; + color: #949494; + margin-right: 15px; } + +.cbp-l-dropdown { + height: 38px; + position: relative; + z-index: 5; + width: 170px; + float: left; } + +.cbp-l-dropdown-wrap { + width: 100%; + position: absolute; + background: #4d4c4d; } + +.cbp-l-dropdown-header { + font: 400 12px/38px "Open Sans", sans-serif; + margin: 0 17px; + color: #FFF; + cursor: default; + position: relative; } + +.cbp-l-dropdown-list { + display: none; } + +.cbp-l-dropdown-wrap.cbp-l-dropdown-wrap--open .cbp-l-dropdown-list { + display: block; + margin: 0; } + +.cbp-l-dropdown-list .cbp-l-dropdown-item { + background: transparent; + color: #b3b3b3; + width: 100%; + text-align: left; + font: 400 12px/40px "Open Sans", sans-serif; + margin: 0; + padding: 0 17px; + cursor: pointer; + border: none; + border-top: 1px solid #595959; } + +.cbp-l-dropdown-list .cbp-l-dropdown-item:hover { + color: #e6e6e6; } + +.cbp-l-dropdown-list .cbp-l-dropdown-item--active { + color: #fff; + cursor: default; } + +.cbp-l-dropdown-floated { + float: right; + margin-top: -2px; + margin-left: 20px; + width: 200px; } + +@media only screen and (max-width: 480px) { + .cbp-l-dropdown-floated { + width: 100%; + margin-top: 0; + margin-left: 0; } + .cbp-l-dropdown-wrap { + right: 0; + left: 0; + margin: 0 auto; } } diff --git a/cubeportfolio/css/cubeportfolio.min.css b/cubeportfolio/css/cubeportfolio.min.css new file mode 100644 index 0000000..669be12 --- /dev/null +++ b/cubeportfolio/css/cubeportfolio.min.css @@ -0,0 +1,10 @@ +/*! + * Cube Portfolio - Responsive jQuery Grid Plugin + * + * version: 4.4.0 (1 August, 2018) + * require: jQuery v1.8+ + * + * Copyright 2013-2018, Mihai Buricea (http://scriptpie.com/cubeportfolio/live-preview/) + * Licensed under CodeCanyon License (http://codecanyon.net/licenses) + * + */.cbp-l-filters-alignCenter .cbp-filter-counter:after,.cbp-l-filters-alignRight .cbp-filter-counter:after,.cbp-l-filters-button .cbp-filter-counter:after,.cbp-l-filters-buttonCenter .cbp-filter-counter:after,.cbp-l-filters-text .cbp-filter-counter:after,.cbp,.cbp *,.cbp *:after,.cbp:after,.cbp-l-filters-dropdownHeader:after,.cbp-popup-wrap,.cbp-popup-wrap *,.cbp-popup-wrap:before,.cbp-popup-loadingBox:after,.cbp-search *,.cbp-l-direction:after{box-sizing:border-box}.cbp-l-grid-agency-title,.cbp-l-grid-agency-desc,.cbp-l-grid-work-title,.cbp-l-grid-work-desc,.cbp-l-grid-blog-title,.cbp-l-grid-projects-title,.cbp-l-grid-projects-desc,.cbp-l-grid-masonry-projects-title,.cbp-l-grid-masonry-projects-desc{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cbp-l-filters-alignCenter,.cbp-l-filters-alignCenter *,.cbp-l-filters-alignLeft,.cbp-l-filters-alignLeft *,.cbp-l-filters-alignRight,.cbp-l-filters-alignRight *,.cbp-l-filters-button,.cbp-l-filters-button *,.cbp-l-filters-buttonCenter,.cbp-l-filters-buttonCenter *,.cbp-l-filters-dropdown,.cbp-l-filters-dropdown *,.cbp-l-filters-list,.cbp-l-filters-list *,.cbp-l-filters-work,.cbp-l-filters-work *,.cbp-l-filters-big,.cbp-l-filters-big *,.cbp-l-filters-text,.cbp-l-filters-text *,.cbp-l-filters-underline,.cbp-l-filters-underline *,.cbp-l-filters-holder,.cbp-l-filters-holder *,.cbp-l-loadMore-bgbutton,.cbp-l-loadMore-bgbutton *,.cbp-l-loadMore-button,.cbp-l-loadMore-button *,.cbp-l-loadMore-text,.cbp-l-loadMore-text *,.cbp-search,.cbp-l-dropdown,.cbp-l-dropdown *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;box-sizing:border-box}.cbp:after,.cbp-lazyload:after,.cbp-popup-loadingBox:after,.cbp-popup-singlePageInline:after{content:'';position:absolute;width:34px;height:34px;left:0;right:0;top:0;bottom:0;margin:auto;-webkit-animation:cbp-rotation .8s infinite linear;animation:cbp-rotation .8s infinite linear;border-left:3px solid rgba(114,144,182,0.15);border-right:3px solid rgba(114,144,182,0.15);border-bottom:3px solid rgba(114,144,182,0.15);border-top:3px solid rgba(114,144,182,0.8);border-radius:100%}.cbp-l-filters-alignCenter .cbp-filter-item:hover .cbp-filter-counter,.cbp-l-filters-alignRight .cbp-filter-item:hover .cbp-filter-counter,.cbp-l-filters-button .cbp-filter-item:hover .cbp-filter-counter,.cbp-l-filters-buttonCenter .cbp-filter-item:hover .cbp-filter-counter,.cbp-l-filters-text .cbp-filter-item:hover .cbp-filter-counter{opacity:1;-webkit-transform:translateY(-44px);transform:translateY(-44px)}.cbp-l-filters-alignCenter .cbp-filter-counter,.cbp-l-filters-alignRight .cbp-filter-counter,.cbp-l-filters-button .cbp-filter-counter,.cbp-l-filters-buttonCenter .cbp-filter-counter,.cbp-l-filters-text .cbp-filter-counter{font:400 11px/18px "Open Sans", sans-serif;border-radius:3px;color:#FFFFFF;margin:0 auto;padding:4px 0;text-align:center;width:34px;position:absolute;bottom:0;left:0;right:0;opacity:0;-webkit-transition:-webkit-transform .25s, opacity .25s;transition:transform .25s, opacity .25s}.cbp-l-filters-alignCenter .cbp-filter-counter:after,.cbp-l-filters-alignRight .cbp-filter-counter:after,.cbp-l-filters-button .cbp-filter-counter:after,.cbp-l-filters-buttonCenter .cbp-filter-counter:after,.cbp-l-filters-text .cbp-filter-counter:after{content:"";position:absolute;bottom:-4px;left:0;right:0;margin:0 auto;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent}.cbp-item{display:inline-block;margin:0 10px 20px 0}.cbp{position:relative;margin:0 auto;z-index:1;height:400px}.cbp>*{visibility:hidden}.cbp .cbp-item{list-style-type:none;margin:0;padding:0;overflow:hidden}.cbp img{display:block;border:0;width:100%;height:auto}.cbp a,.cbp a:hover,.cbp a:active{text-decoration:none;outline:0}.cbp-lazyload{position:relative;background:#fff;display:block}.cbp-lazyload img{opacity:1}.cbp-lazyload img[data-cbp-src]{opacity:0}.cbp-lazyload img:not([data-cbp-src]){-webkit-transition:opacity .7s ease-in-out;transition:opacity .7s ease-in-out}.cbp-lazyload:after{z-index:0}.cbp-wrapper-outer{overflow:hidden;position:relative;margin:0 auto}.cbp-wrapper-outer,.cbp-wrapper,.cbp-wrapper-helper{list-style-type:none;padding:0;width:100%;height:100%;z-index:1}.cbp-wrapper,.cbp-wrapper-helper{margin:0}.cbp-ready>*{visibility:visible}.cbp-ready:after{display:none;visibility:hidden}.cbp-ready .cbp-item{position:absolute;top:0;left:0}.cbp-ready .cbp-wrapper,.cbp-ready .cbp-wrapper-helper{position:absolute;top:0;left:0}.cbp-item-off{z-index:-1;pointer-events:none;visibility:hidden}.cbp-item-on2off{z-index:0}.cbp-item-off2on{z-index:1}.cbp-item-on2on{z-index:2}.cbp-item-wrapper{width:100%;height:100%;position:relative;top:0;left:0}.cbp-l-project-related-wrap img,.cbp-l-inline img{display:block;width:100%;height:auto;border:0}.cbp-updateItems{-webkit-transition:height .5s ease-in-out !important;transition:height .5s ease-in-out !important;will-change:height}.cbp-updateItems .cbp-item{-webkit-transition:top .5s ease-in-out, left .5s ease-in-out;transition:top .5s ease-in-out, left .5s ease-in-out}.cbp-updateItems .cbp-item-loading{-webkit-animation:fadeIn .5s ease-in-out;animation:fadeIn .5s ease-in-out;-webkit-transition:none;transition:none}.cbp-removeItem{-webkit-animation:fadeOut .5s ease-in-out;animation:fadeOut .5s ease-in-out}.cbp-panel{width:94%;max-width:1170px;margin:0 auto}.cbp-misc-video{position:relative;height:0;padding-bottom:56.25%;background:#000;text-align:center}.cbp-misc-video iframe{position:absolute;top:0;left:0;width:100%;height:100%}@-webkit-keyframes cbp-rotation{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes cbp-rotation{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@-webkit-keyframes fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes fadeOut{0%{opacity:1}100%{opacity:0}}.clearfix:after{content:" ";display:block;height:0;clear:both}.cbp-l-filters-left{float:left}.cbp-l-filters-right{float:right}.cbp-l-center{display:flex;justify-content:center;align-items:center}@media only screen and (max-width: 480px){.cbp-l-filters-left,.cbp-l-filters-right{width:100%}}@media only screen and (max-width: 800px){.cbp-l-center{flex-direction:column}}.cbp-caption,.cbp-caption-defaultWrap,.cbp-caption-activeWrap{display:block}.cbp-caption-activeWrap{background-color:#282727}.cbp-caption-active .cbp-caption,.cbp-caption-active .cbp-caption-defaultWrap,.cbp-caption-active .cbp-caption-activeWrap{overflow:hidden;position:relative;z-index:1}.cbp-caption-active .cbp-caption-defaultWrap{top:0}.cbp-caption-active .cbp-caption-activeWrap{width:100%;position:absolute;z-index:2;height:100%}.cbp-l-caption-title{color:#fff;font:400 16px/21px "Open Sans", sans-serif}.cbp-l-caption-desc{color:#aaa;font:400 12px/16px "Open Sans", sans-serif}.cbp-l-caption-text{font:400 14px/21px "Open Sans", sans-serif;color:#fff;letter-spacing:3px;padding:0 6px}.cbp-l-caption-buttonLeft,.cbp-l-caption-buttonRight{background-color:#547EB1;color:#FFFFFF;display:inline-block;font:400 12px/30px "Open Sans", sans-serif;min-width:90px;text-align:center;margin:4px;padding:0 6px}.cbp-l-caption-buttonLeft:hover,.cbp-l-caption-buttonRight:hover{opacity:0.9}.cbp-caption-none .cbp-caption-activeWrap{display:none}.cbp-l-caption-alignLeft .cbp-l-caption-body{padding:12px 30px}.cbp-caption-fadeIn .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-minimal .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-moveRight .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-overlayRightAlong .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-pushDown .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-pushTop .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-revealBottom .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-revealLeft .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-revealTop .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-zoom .cbp-l-caption-alignLeft .cbp-l-caption-body,.cbp-caption-opacity .cbp-l-caption-alignLeft .cbp-l-caption-body{padding-top:30px}.cbp-l-caption-alignCenter{display:table;width:100%;height:100%}.cbp-l-caption-alignCenter .cbp-l-caption-body{display:table-cell;vertical-align:middle;text-align:center;padding:15px 0}.cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft,.cbp-l-caption-alignCenter .cbp-l-caption-buttonRight{position:relative;-webkit-transition:-webkit-transform .25s;transition:transform .25s}.cbp-caption-overlayBottom .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft,.cbp-caption-overlayBottomPush .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft,.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft{-webkit-transform:translateX(-20px);transform:translateX(-20px)}.cbp-caption-overlayBottom .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight,.cbp-caption-overlayBottomPush .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight,.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight{-webkit-transform:translateX(20px);transform:translateX(20px)}.cbp-caption:hover .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft,.cbp-caption:hover .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight{-webkit-transform:translateX(0);transform:translateX(0)}@media only screen and (max-width: 480px){.cbp-l-caption-alignLeft .cbp-l-caption-body{padding:9px 11px}.cbp-l-caption-title{font-size:14px;line-height:21px}.cbp-l-caption-desc{font-size:11px;line-height:14px}.cbp-l-caption-buttonLeft,.cbp-l-caption-buttonRight{font-size:11px;line-height:28px;min-width:69px;margin:3px;padding:0 4px}.cbp-l-caption-text{font-size:13px;letter-spacing:1px}}@media only screen and (max-width: 374px){.cbp-l-caption-alignLeft .cbp-l-caption-body{padding:8px 10px}.cbp-l-caption-title{font-size:13px;line-height:20px}.cbp-l-caption-desc{font-size:11px;line-height:14px}.cbp-l-caption-buttonLeft,.cbp-l-caption-buttonRight{font-size:10px;line-height:28px;min-width:62px;margin:1px;padding:0 4px}}.cbp-caption-fadeIn .cbp-caption-activeWrap{opacity:0;top:0;background-color:rgba(0,0,0,0.85);-webkit-transition:opacity .5s;transition:opacity .5s}.cbp-caption-fadeIn .cbp-caption:hover .cbp-caption-activeWrap{opacity:1}.cbp-caption-minimal .cbp-l-caption-title,.cbp-caption-minimal .cbp-l-caption-desc{position:relative;left:0;opacity:0;-webkit-transition:-webkit-transform .35s ease-out;transition:transform .35s ease-out}.cbp-caption-minimal .cbp-l-caption-title{-webkit-transform:translateY(-50%);transform:translateY(-50%)}.cbp-caption-minimal .cbp-l-caption-desc{-webkit-transform:translateY(70%);transform:translateY(70%)}.cbp-caption-minimal .cbp-caption:hover .cbp-l-caption-title,.cbp-caption-minimal .cbp-caption:hover .cbp-l-caption-desc{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}.cbp-caption-minimal .cbp-caption-activeWrap{top:0;background-color:#000;background-color:rgba(0,0,0,0.8);opacity:0}.cbp-caption-minimal .cbp-caption:hover .cbp-caption-activeWrap{opacity:1}.cbp-caption-moveRight .cbp-caption-activeWrap{left:-100%;top:0;-webkit-transition:-webkit-transform .35s;transition:transform .35s}.cbp-caption-moveRight .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateX(100%);transform:translateX(100%)}.cbp-caption-overlayBottom .cbp-caption-activeWrap{height:60px;background-color:#181616;background-color:rgba(24,22,22,0.7);-webkit-transition:-webkit-transform .25s;transition:transform .25s}.cbp-caption-overlayBottom .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonLeft,.cbp-caption-overlayBottomAlong .cbp-l-caption-alignCenter .cbp-l-caption-buttonRight{-webkit-transition-duration:.35s;transition-duration:.35s}.cbp-caption-overlayBottomAlong .cbp-caption-defaultWrap,.cbp-caption-overlayBottomAlong .cbp-caption-activeWrap{-webkit-transition:-webkit-transform .35s;transition:transform .35s}.cbp-caption-overlayBottomAlong .cbp-caption-activeWrap{height:auto}.cbp-caption-overlayBottomAlong .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateY(-34px);transform:translateY(-34px)}.cbp-caption-overlayBottomAlong .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.cbp-caption-overlayBottomPush .cbp-caption-defaultWrap,.cbp-caption-overlayBottomPush .cbp-caption-activeWrap{-webkit-transition:-webkit-transform .25s;transition:transform .25s}.cbp-caption-overlayBottomPush .cbp-caption-activeWrap{height:69px;-webkit-transform:translateY(0);transform:translateY(0)}.cbp-caption-overlayBottomPush .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateY(-68px);transform:translateY(-68px)}.cbp-caption-overlayBottomPush .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateY(-69px);transform:translateY(-69px)}.cbp-caption-overlayBottomReveal .cbp-caption-defaultWrap{z-index:2;-webkit-transition:-webkit-transform .25s;transition:transform .25s}.cbp-caption-overlayBottomReveal .cbp-caption-activeWrap{bottom:0;z-index:1;height:auto}.cbp-caption-overlayBottomReveal .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateY(-68px);transform:translateY(-68px)}.cbp-caption-overlayRightAlong .cbp-caption-defaultWrap,.cbp-caption-overlayRightAlong .cbp-caption-activeWrap{-webkit-transition:-webkit-transform .4s;transition:transform .4s}.cbp-caption-overlayRightAlong .cbp-caption-activeWrap{top:0;left:-50%;width:50%}.cbp-caption-overlayRightAlong .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateX(25%);transform:translateX(25%)}.cbp-caption-overlayRightAlong .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateX(100%);transform:translateX(100%)}.cbp-caption-pushDown .cbp-caption-defaultWrap,.cbp-caption-pushDown .cbp-caption-activeWrap{-webkit-transition:-webkit-transform .4s;transition:transform .4s}.cbp-caption-pushDown .cbp-caption-activeWrap{top:-100%}.cbp-caption-pushDown .cbp-caption:hover .cbp-caption-defaultWrap,.cbp-caption-pushDown .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateY(100%);transform:translateY(100%)}.cbp-caption-pushTop .cbp-caption-activeWrap,.cbp-caption-pushTop .cbp-caption-defaultWrap{-webkit-transition:-webkit-transform .4s;transition:transform .4s}.cbp-caption-pushTop .cbp-caption-activeWrap{height:102%}.cbp-caption-pushTop .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.cbp-caption-pushTop .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateY(-99%);transform:translateY(-99%)}.cbp-caption-revealBottom .cbp-caption-defaultWrap{z-index:2;-webkit-transition:-webkit-transform .4s;transition:transform .4s}.cbp-caption-revealBottom .cbp-caption-activeWrap{top:0;z-index:1}.cbp-caption-revealBottom .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateY(-100%);transform:translateY(-100%)}.cbp-caption-revealLeft .cbp-caption-activeWrap{left:100%;top:0;-webkit-transition:-webkit-transform .4s;transition:transform .4s}.cbp-caption-revealLeft .cbp-caption:hover .cbp-caption-activeWrap{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.cbp-caption-revealTop .cbp-caption-defaultWrap{z-index:2;-webkit-transition:-webkit-transform .4s;transition:transform .4s}.cbp-caption-revealTop .cbp-caption-activeWrap{top:0;z-index:1}.cbp-caption-revealTop .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:translateY(100%);transform:translateY(100%)}.cbp-caption-zoom .cbp-caption-defaultWrap{-webkit-transition:-webkit-transform .35s ease-out;transition:transform .35s ease-out}.cbp-caption-zoom .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:scale(1.25);transform:scale(1.25)}.cbp-caption-zoom .cbp-caption-activeWrap{opacity:0;top:0;background-color:rgba(0,0,0,0.9);-webkit-transition:opacity .4s;transition:opacity .4s}.cbp-caption-zoom .cbp-caption:hover .cbp-caption-activeWrap{opacity:1}.cbp-caption-opacity .cbp-item{padding:1px}.cbp-caption-opacity .cbp-caption,.cbp-caption-opacity .cbp-caption-activeWrap,.cbp-caption-opacity .cbp-caption-defaultWrap{background-color:transparent}.cbp-caption-opacity .cbp-caption{border:1px solid transparent}.cbp-caption-opacity .cbp-caption:hover{border-color:#EDEDED}.cbp-caption-opacity .cbp-caption-defaultWrap{opacity:1;-webkit-transition:opacity .4s;transition:opacity .4s}.cbp-caption-opacity .cbp-caption:hover .cbp-caption-defaultWrap{opacity:.8}.cbp-caption-opacity .cbp-caption:hover .cbp-caption-activeWrap{top:0}.cbp-caption-expand .cbp-caption{border-bottom:1px dotted #eaeaea}.cbp-caption-expand .cbp-caption-activeWrap{height:auto;background-color:transparent}.cbp-caption-expand .cbp-caption-defaultWrap{cursor:pointer;font:500 15px/23px "Roboto", sans-serif;color:#474747;padding:12px 0 11px 26px}.cbp-caption-expand .cbp-caption-defaultWrap svg{position:absolute;top:16px;left:0}.cbp-caption-expand .cbp-l-caption-body{font:400 13px/21px "Roboto", sans-serif;color:#888;padding:0 0 20px 26px}.cbp-caption-expand-active{-webkit-transition:height .4s !important;transition:height .4s !important}.cbp-caption-expand-active .cbp-item{-webkit-transition:left .4s, top .4s !important;transition:left .4s, top .4s !important}.cbp-caption-expand-open .cbp-caption-activeWrap{-webkit-transition:height .4s;transition:height .4s}.cbp-l-filters-alignCenter{margin-bottom:30px;text-align:center;font:400 12px/21px sans-serif;color:#DADADA}.cbp-l-filters-alignCenter .cbp-filter-item{color:#949494;cursor:pointer;font:400 13px/21px "Open Sans", sans-serif;padding:0 12px;position:relative;overflow:visible;margin:0 0 10px;display:inline-block;-webkit-transition:color .3s ease-in-out;transition:color .3s ease-in-out}.cbp-l-filters-alignCenter .cbp-filter-item:hover{color:#2D2C2C}.cbp-l-filters-alignCenter .cbp-filter-item:hover .cbp-filter-counter{-webkit-transform:translateY(-30px);transform:translateY(-30px)}.cbp-l-filters-alignCenter .cbp-filter-item.cbp-filter-item-active{color:#2D2C2C;cursor:default}.cbp-l-filters-alignCenter .cbp-filter-counter{background-color:#626161}.cbp-l-filters-alignCenter .cbp-filter-counter:after{border-top:4px solid #626161}.cbp-l-filters-alignLeft{margin-bottom:30px}.cbp-l-filters-alignLeft .cbp-filter-item{background-color:#fff;border:1px solid #cdcdcd;cursor:pointer;font:400 12px/30px "Open Sans", sans-serif;padding:0 13px;position:relative;overflow:visible;margin:0 4px 10px 4px;display:inline-block;color:#888888;-webkit-transition:color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out;transition:color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out}.cbp-l-filters-alignLeft .cbp-filter-item:hover{color:#111}.cbp-l-filters-alignLeft .cbp-filter-item.cbp-filter-item-active{background-color:#6C7A89;border:1px solid #6C7A89;color:#fff;cursor:default}.cbp-l-filters-alignLeft .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-alignLeft .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-alignLeft .cbp-filter-counter{display:inline}@media only screen and (max-width: 480px){.cbp-l-filters-alignLeft{text-align:center}}.cbp-l-filters-alignRight{margin-bottom:30px;text-align:right}.cbp-l-filters-alignRight .cbp-filter-item{background-color:transparent;color:#8B8B8B;cursor:pointer;font:400 11px/31px "Open Sans", sans-serif;padding:0 14px;position:relative;overflow:visible;margin:0 3px 10px 3px;border:1px solid #E4E2E2;text-transform:uppercase;display:inline-block;-webkit-transition:color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out;transition:color .3s ease-in-out, background-color .3s ease-in-out, border .3s ease-in-out}.cbp-l-filters-alignRight .cbp-filter-item:hover{color:#2B3444}.cbp-l-filters-alignRight .cbp-filter-item.cbp-filter-item-active{color:#FFFFFF;background-color:#049372;border-color:#049372;cursor:default}.cbp-l-filters-alignRight .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-alignRight .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-alignRight .cbp-filter-counter{background-color:#049372}.cbp-l-filters-alignRight .cbp-filter-counter:after{border-top:4px solid #049372}@media only screen and (max-width: 480px){.cbp-l-filters-alignRight{text-align:center}}.cbp-l-filters-button{margin-bottom:30px}.cbp-l-filters-button .cbp-filter-item{background-color:#FFFFFF;border:1px solid #ECECEC;color:#888888;cursor:pointer;font:400 12px/32px "Open Sans", sans-serif;margin:0 5px 10px 5px;overflow:visible;padding:0 17px;position:relative;display:inline-block;-webkit-transition:color .3s ease-in-out, background-color .3s ease-in-out, border-color .3s ease-in-out;transition:color .3s ease-in-out, background-color .3s ease-in-out, border-color .3s ease-in-out}.cbp-l-filters-button .cbp-filter-item:hover{color:#545454;border-color:#DADADA}.cbp-l-filters-button .cbp-filter-item.cbp-filter-item-active{background-color:#545454;color:#fff;border-color:#5d5d5d;cursor:default}.cbp-l-filters-button .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-button .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-button .cbp-filter-counter{background-color:#545454}.cbp-l-filters-button .cbp-filter-counter:after{border-top:4px solid #545454}@media only screen and (max-width: 480px){.cbp-l-filters-button{text-align:center}}.cbp-l-filters-buttonCenter{margin-bottom:30px;text-align:center}.cbp-l-filters-buttonCenter .cbp-filter-item{background-color:#FFFFFF;border:1px solid #ECECEC;color:#888888;cursor:pointer;font:400 12px/32px "Roboto", sans-serif;margin:0 5px 10px 5px;overflow:visible;padding:0 17px;position:relative;display:inline-block;-webkit-transition:color .3s ease-in-out, border-color .3s ease-in-out;transition:color .3s ease-in-out, border-color .3s ease-in-out}.cbp-l-filters-buttonCenter .cbp-filter-item:hover{color:#5d5d5d}.cbp-l-filters-buttonCenter .cbp-filter-item.cbp-filter-item-active{color:#3B9CB3;border-color:#8CD2E5;cursor:default}.cbp-l-filters-buttonCenter .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-buttonCenter .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-buttonCenter .cbp-filter-counter{background-color:#68ABBC}.cbp-l-filters-buttonCenter .cbp-filter-counter:after{border-top:4px solid #68ABBC}.cbp-l-filters-dropdown{margin-bottom:40px;height:38px;position:relative;z-index:5}.cbp-l-filters-dropdownWrap{width:200px;position:absolute;right:0;background:#4d4c4d}.cbp-l-filters-dropdownHeader{font:400 12px/38px "Open Sans", sans-serif;margin:0 17px;color:#FFF;cursor:default;position:relative}.cbp-l-filters-dropdownHeader:after{border-color:#fff rgba(0,0,0,0);border-style:solid;border-width:5px 5px 0;content:"";height:0;position:absolute;right:0;top:50%;width:0;margin-top:-1px}.cbp-l-filters-dropdownWrap.cbp-l-filters-dropdownWrap-open .cbp-l-filters-dropdownHeader:after{border-width:0 5px 5px}.cbp-l-filters-dropdownList{display:none;list-style:none outside none;margin:0;padding:0}.cbp-l-filters-dropdownList>li{margin:0;list-style:none}.cbp-l-filters-dropdownWrap.cbp-l-filters-dropdownWrap-open .cbp-l-filters-dropdownList{display:block;margin:0}.cbp-l-filters-dropdownList .cbp-filter-item{background:transparent;color:#b3b3b3;width:100%;text-align:left;font:400 12px/40px "Open Sans", sans-serif;margin:0;padding:0 17px;cursor:pointer;border:none;border-top:1px solid #595959}.cbp-l-filters-dropdownList .cbp-filter-item:hover{color:#e6e6e6}.cbp-l-filters-dropdownList .cbp-filter-item-active{color:#fff;cursor:default}.cbp-l-filters-dropdownWrap .cbp-filter-counter{display:inline}.cbp-l-filters-dropdown-floated{float:right;margin-top:-2px;margin-left:20px;width:200px}@media only screen and (max-width: 480px){.cbp-l-filters-dropdown-floated{width:100%;margin-top:0;margin-left:0}.cbp-l-filters-dropdownWrap{right:0;left:0;margin:0 auto}}.cbp-l-filters-list{margin-bottom:30px;content:"";display:table;clear:both}.cbp-l-filters-list .cbp-filter-item{background-color:transparent;color:#585252;cursor:pointer;font:400 12px/35px "Open Sans", sans-serif;padding:0 18px;position:relative;overflow:visible;margin:0 0 10px;float:left;border:1px solid #3288C4;border-right-width:0;-webkit-transition:left .3s ease-in-out;transition:left .3s ease-in-out}.cbp-l-filters-list .cbp-filter-item:hover{color:#000}.cbp-l-filters-list .cbp-filter-item.cbp-filter-item-active{cursor:default;color:#FFFFFF;background-color:#3288C4}.cbp-l-filters-list-first{border-radius:6px 0 0 6px}.cbp-l-filters-list-last{border-radius:0 6px 6px 0;border-right-width:1px !important}.cbp-l-filters-list .cbp-filter-counter{display:inline}@media only screen and (max-width: 600px){.cbp-l-filters-list .cbp-filter-item{margin-right:5px;border-radius:6px;border-right-width:1px}}.cbp-l-filters-work{margin-bottom:30px;text-align:center}.cbp-l-filters-work .cbp-filter-item{background-color:#FFFFFF;color:#888;cursor:pointer;font:600 11px/37px "Open Sans", sans-serif;margin:0 3px 15px 3px;overflow:visible;padding:0 16px;position:relative;display:inline-block;text-transform:uppercase;-webkit-transition:color .3s ease-in-out, background-color .3s ease-in-out;transition:color .3s ease-in-out, background-color .3s ease-in-out}.cbp-l-filters-work .cbp-filter-item:hover{color:#fff;background:#607D8B}.cbp-l-filters-work .cbp-filter-item.cbp-filter-item-active{background-color:#607D8B;color:#fff;cursor:default}.cbp-l-filters-work .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-work .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-work .cbp-filter-counter{font:600 11px/37px "Open Sans", sans-serif;text-align:center;display:inline-block;margin-left:8px}.cbp-l-filters-work .cbp-filter-counter:before{content:'('}.cbp-l-filters-work .cbp-filter-counter:after{content:')'}.cbp-l-filters-big{margin-bottom:30px;text-align:center}.cbp-l-filters-big .cbp-filter-item{color:#444;cursor:pointer;font:400 15px/22px "Roboto", sans-serif;margin:0 8px 10px 8px;padding:10px 23px;position:relative;display:inline-block;border:1px solid transparent;text-transform:uppercase;-webkit-transition:color .3s ease-in-out, border .3s ease-in-out;transition:color .3s ease-in-out, border .3s ease-in-out}.cbp-l-filters-big .cbp-filter-item:hover{color:#888}.cbp-l-filters-big .cbp-filter-item.cbp-filter-item-active{border-color:#d5d5d5;color:#444;cursor:default}.cbp-l-filters-big .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-big .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-text{margin-bottom:30px;text-align:center;font:400 12px/36px "Lato", sans-serif;color:#DADADA;padding:0 15px}.cbp-l-filters-text .cbp-filter-item{color:#949494;cursor:pointer;font:400 13px/21px "Lato", sans-serif;padding:0 12px;position:relative;overflow:visible;margin:0 0 10px;display:inline-block;-webkit-transition:color .3s ease-in-out;transition:color .3s ease-in-out}.cbp-l-filters-text .cbp-filter-item:hover{color:#2D2C2C}.cbp-l-filters-text .cbp-filter-item:hover .cbp-filter-counter{-webkit-transform:translateY(-30px);transform:translateY(-30px)}.cbp-l-filters-text .cbp-filter-item.cbp-filter-item-active{color:#2D2C2C;cursor:default}.cbp-l-filters-text .cbp-filter-counter{background-color:#626161;font:400 11px/18px "Lato", sans-serif}.cbp-l-filters-text .cbp-filter-counter:after{border-top:4px solid #626161}.cbp-l-filters-text-sort{display:inline-block;font:400 13px/21px "Lato", sans-serif;color:#949494;margin-right:15px}@media only screen and (max-width: 480px){.cbp-l-filters-text-sort{display:block;margin-bottom:10px}}.cbp-l-filters-underline{margin-bottom:30px}.cbp-l-filters-underline .cbp-filter-item{border-bottom:3px solid transparent;cursor:pointer;font:600 14px/21px "Open Sans", sans-serif;padding:8px 10px;position:relative;overflow:visible;margin:0 10px 10px 10px;display:inline-block;color:#787878;-webkit-transition:color .25s ease-in-out, border-color .25s ease-in-out;transition:color .25s ease-in-out, border-color .25s ease-in-out}.cbp-l-filters-underline .cbp-filter-item:hover{color:#111}.cbp-l-filters-underline .cbp-filter-item.cbp-filter-item-active{border-bottom-color:#666;color:#444;cursor:default}.cbp-l-filters-underline .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-underline .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-underline .cbp-filter-counter{display:inline}@media only screen and (max-width: 480px){.cbp-l-filters-underline{text-align:center}}.cbp-l-filters-holder{text-align:center}.cbp-l-filters-holder .cbp-filter-item{cursor:pointer;font:600 16px/21px "Open Sans", sans-serif;padding:8px 10px;position:relative;overflow:visible;margin:0 10px 10px 10px;display:inline-block;color:#555;-webkit-transition:color .25s ease-in-out;transition:color .25s ease-in-out;letter-spacing:0.3px}.cbp-l-filters-holder .cbp-filter-item:hover{color:#d8b345}.cbp-l-filters-holder .cbp-filter-item.cbp-filter-item-active{color:#d8b345;cursor:default}.cbp-l-filters-holder .cbp-filter-item:first-child{margin-left:0}.cbp-l-filters-holder .cbp-filter-item:last-child{margin-right:0}.cbp-l-filters-holder .cbp-filter-counter{display:inline}@media only screen and (max-width: 480px){.cbp-l-filters-holder{text-align:center}}.cbp-l-subfilters{display:none;opacity:0;margin-bottom:40px;text-align:center}.cbp-l-subfilters .cbp-filter-item{position:relative;font:13px "Open Sans", sans-serif;display:inline-block;color:#9e9e9e;margin:0 15px;cursor:pointer;margin:0 10px 10px 10px;letter-spacing:0.3px}.cbp-l-subfilters .cbp-filter-item:hover{color:#555}.cbp-l-subfilters .cbp-filter-item:after{content:'';background-color:#dfb947;width:0;height:2px;position:absolute;left:50%;bottom:-6px;-webkit-transform:translateX(-50%);transform:translateX(-50%);-webkit-transition:width .3s;transition:width .3s}.cbp-l-subfilters .cbp-filter-item-active{color:#555}.cbp-l-subfilters .cbp-filter-item-active:after{width:100%}.cbp-l-subfilters--active{display:block;-webkit-animation:fadeIn .5s ease both;animation:fadeIn .5s ease both}.cbp-animation-quicksand{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-quicksand .cbp-item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out}.cbp-animation-quicksand .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-quicksand .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-quicksand .cbp-item-on2off .cbp-item-wrapper{-webkit-animation:quicksand-off .6s ease-out both;animation:quicksand-off .6s ease-out both}.cbp-animation-quicksand .cbp-item-off2on .cbp-item-wrapper{-webkit-animation:quicksand-on .6s ease-out both;animation:quicksand-on .6s ease-out both}@-webkit-keyframes quicksand-off{100%{opacity:0;-webkit-transform:scale3d(0, 0, 0)}}@keyframes quicksand-off{100%{opacity:0;transform:scale3d(0, 0, 0)}}@-webkit-keyframes quicksand-on{0%{opacity:0;-webkit-transform:scale3d(0, 0, 0)}}@keyframes quicksand-on{0%{opacity:0;transform:scale3d(0, 0, 0)}}.cbp-animation-fadeOut,.cbp-animation-boxShadow{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-fadeOut .cbp-item,.cbp-animation-boxShadow .cbp-item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out}.cbp-animation-fadeOut .cbp-item,.cbp-animation-boxShadow .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-fadeOut .cbp-item-wrapper,.cbp-animation-boxShadow .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-fadeOut .cbp-item-on2off .cbp-item-wrapper,.cbp-animation-boxShadow .cbp-item-on2off .cbp-item-wrapper{-webkit-animation:fadeOut-off .6s ease-in-out both;animation:fadeOut-off .6s ease-in-out both}.cbp-animation-fadeOut .cbp-item-off2on .cbp-item-wrapper,.cbp-animation-boxShadow .cbp-item-off2on .cbp-item-wrapper{-webkit-animation:fadeOut-on .6s ease-in-out both;animation:fadeOut-on .6s ease-in-out both}@-webkit-keyframes fadeOut-off{0%{opacity:1}80%,100%{opacity:0}}@keyframes fadeOut-off{0%{opacity:1}80%,100%{opacity:0}}@-webkit-keyframes fadeOut-on{0%{opacity:0}100%{opacity:1}}@keyframes fadeOut-on{0%{opacity:0}100%{opacity:1}}.cbp-animation-flipOut{-webkit-transition:height .7s ease-in-out;transition:height .7s ease-in-out;will-change:height}.cbp-animation-flipOut .cbp-item{-webkit-transition:-webkit-transform .7s ease-in-out;transition:transform .7s ease-in-out}.cbp-animation-flipOut .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-flipOut .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-flipOut .cbp-item-on2off .cbp-item-wrapper{-webkit-animation:flipOut-out .7s both ease-in;animation:flipOut-out .7s both ease-in}.cbp-animation-flipOut .cbp-item-off2on .cbp-item-wrapper{-webkit-animation:flipOut-in .7s ease-out both;animation:flipOut-in .7s ease-out both}@-webkit-keyframes flipOut-out{50%,100%{-webkit-transform:translateZ(-1000px) rotateY(-90deg);opacity:0.2}}@keyframes flipOut-out{50%,100%{transform:translateZ(-1000px) rotateY(-90deg);opacity:0.2}}@-webkit-keyframes flipOut-in{0%,50%{-webkit-transform:translateZ(-1000px) rotateY(90deg);opacity:0.2}}@keyframes flipOut-in{0%,50%{transform:translateZ(-1000px) rotateY(90deg);opacity:0.2}}.cbp-animation-flipBottom{-webkit-transition:height .7s ease-in-out;transition:height .7s ease-in-out;will-change:height}.cbp-animation-flipBottom .cbp-item{-webkit-transition:-webkit-transform .7s ease-in-out;transition:transform .7s ease-in-out}.cbp-animation-flipBottom .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-flipBottom .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-flipBottom .cbp-item-on2off .cbp-item-wrapper{-webkit-animation:flipBottom-out .7s both ease-in;animation:flipBottom-out .7s both ease-in}.cbp-animation-flipBottom .cbp-item-off2on .cbp-item-wrapper{-webkit-animation:flipBottom-in .7s ease-out both;animation:flipBottom-in .7s ease-out both}@-webkit-keyframes flipBottom-out{50%,100%{-webkit-transform:translateZ(-1000px) rotateX(-90deg);opacity:0.2}}@keyframes flipBottom-out{50%,100%{transform:translateZ(-1000px) rotateX(-90deg);opacity:0.2}}@-webkit-keyframes flipBottom-in{0%,50%{-webkit-transform:translateZ(-1000px) rotateX(90deg);opacity:0.2}}@keyframes flipBottom-in{0%,50%{transform:translateZ(-1000px) rotateX(90deg);opacity:0.2}}.cbp-animation-scaleSides{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-scaleSides .cbp-item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out}.cbp-animation-scaleSides .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-scaleSides .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-scaleSides .cbp-item-on2off .cbp-item-wrapper{-webkit-animation:scaleSides-out .9s both;animation:scaleSides-out .9s both}.cbp-animation-scaleSides .cbp-item-off2on .cbp-item-wrapper{-webkit-animation:scaleSides-in .9s both;animation:scaleSides-in .9s both}@-webkit-keyframes scaleSides-out{50%,100%{-webkit-transform:scale(0.6);opacity:0}}@keyframes scaleSides-out{50%,100%{transform:scale(0.6);opacity:0}}@-webkit-keyframes scaleSides-in{0%,50%{-webkit-transform:scale(0.6);opacity:0}}@keyframes scaleSides-in{0%,50%{transform:scale(0.6);opacity:0}}.cbp-animation-skew{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-skew .cbp-item{-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out}.cbp-animation-skew .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-skew .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-skew .cbp-item-on2off .cbp-item-wrapper{-webkit-animation:skew-off .6s ease-out both;animation:skew-off .6s ease-out both}.cbp-animation-skew .cbp-item-off2on .cbp-item-wrapper{-webkit-animation:skew-on .6s ease-out both;animation:skew-on .6s ease-out both}@-webkit-keyframes skew-off{100%{opacity:0;-webkit-transform:scale3d(0, 0, 0) skew(20deg, 0)}}@keyframes skew-off{100%{opacity:0;transform:scale3d(0, 0, 0) skew(20deg, 0)}}@-webkit-keyframes skew-on{0%{opacity:0;-webkit-transform:scale3d(0, 0, 0) skew(0, 20deg)}}@keyframes skew-on{0%{opacity:0;transform:scale3d(0, 0, 0) skew(0, 20deg)}}.cbp-animation-fadeOutTop{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-fadeOutTop .cbp-wrapper-outer{overflow:visible}.cbp-animation-fadeOutTop .cbp-item{-webkit-perspective:1000px;perspective:1000px;overflow:visible}.cbp-animation-fadeOutTop .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-fadeOutTop .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:fadeOutTop-out .6s both ease-in-out;animation:fadeOutTop-out .6s both ease-in-out}.cbp-animation-fadeOutTop .cbp-wrapper .cbp-item-wrapper{-webkit-animation:fadeOutTop-in .6s both ease-in-out;animation:fadeOutTop-in .6s both ease-in-out}@-webkit-keyframes fadeOutTop-out{0%{-webkit-transform:translateY(0);opacity:1}50%,100%{-webkit-transform:translateY(-30px);opacity:0}}@keyframes fadeOutTop-out{0%{transform:translateY(0);opacity:1}50%,100%{transform:translateY(-30px);opacity:0}}@-webkit-keyframes fadeOutTop-in{0%,50%{-webkit-transform:translateY(-30px);opacity:0}100%{-webkit-transform:translateY(0);opacity:1}}@keyframes fadeOutTop-in{0%,50%{transform:translateY(-30px);opacity:0}100%{transform:translateY(0);opacity:1}}.cbp-animation-slideLeft{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-slideLeft .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-slideLeft .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-slideLeft .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:slideLeft-out .8s both ease-in-out;animation:slideLeft-out .8s both ease-in-out}.cbp-animation-slideLeft .cbp-wrapper .cbp-item-wrapper{-webkit-animation:slideLeft-in .8s both ease-in-out;animation:slideLeft-in .8s both ease-in-out}@-webkit-keyframes slideLeft-out{0%{opacity:1;transform:scale(1)}25%{opacity:.75;-webkit-transform:scale(0.8)}75%{opacity:.75;-webkit-transform:scale(0.8) translateX(-200%)}100%{opacity:.75;-webkit-transform:scale(0.8) translateX(-200%)}}@keyframes slideLeft-out{0%{opacity:1;transform:scale(1)}25%{opacity:.75;transform:scale(0.8)}75%{opacity:.75;transform:scale(0.8) translateX(-200%)}100%{opacity:.75;transform:scale(0.8) translateX(-200%)}}@-webkit-keyframes slideLeft-in{0%,25%{opacity:.75;-webkit-transform:scale(0.8) translateX(200%)}75%{opacity:.75;-webkit-transform:scale(0.8)}100%{opacity:1;-webkit-transform:scale(1) translateX(0)}}@keyframes slideLeft-in{0%,25%{opacity:.75;transform:scale(0.8) translateX(200%)}75%{opacity:.75;transform:scale(0.8)}100%{opacity:1;transform:scale(1) translateX(0)}}.cbp-animation-sequentially{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-sequentially .cbp-wrapper-outer{overflow:visible}.cbp-animation-sequentially .cbp-item{-webkit-perspective:1000px;perspective:1000px;overflow:visible}.cbp-animation-sequentially .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-sequentially .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:fadeOutTop-out .6s both ease;animation:fadeOutTop-out .6s both ease}.cbp-animation-sequentially .cbp-wrapper .cbp-item-wrapper{-webkit-animation:fadeOutTop-in .6s both ease-out;animation:fadeOutTop-in .6s both ease-out}.cbp-animation-3dflip{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-3dflip .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-3dflip .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-3dflip .cbp-wrapper-helper .cbp-item-wrapper{-webkit-transform-origin:0% 50%;transform-origin:0% 50%;-webkit-animation:flip-out 0.6s both ease-in-out;animation:flip-out 0.6s both ease-in-out}.cbp-animation-3dflip .cbp-wrapper .cbp-item-wrapper{-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-animation:flip-in 0.6s both ease-in-out;animation:flip-in 0.6s both ease-in-out}@-webkit-keyframes flip-out{100%{opacity:0;-webkit-transform:rotateY(90deg)}}@keyframes flip-out{100%{opacity:0;transform:rotateY(90deg)}}@-webkit-keyframes flip-in{0%{opacity:0;-webkit-transform:rotateY(-90deg)}100%{opacity:1;-webkit-transform:rotateY(0deg)}}@keyframes flip-in{0%{opacity:0;transform:rotateY(-90deg)}100%{opacity:1;transform:rotateY(0deg)}}.cbp-animation-flipOutDelay{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-flipOutDelay .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-flipOutDelay .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-flipOutDelay .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:flipOut-out 1s both ease-in;animation:flipOut-out 1s both ease-in}.cbp-animation-flipOutDelay .cbp-wrapper .cbp-item-wrapper{-webkit-animation:flipOut-in 1s both ease-out;animation:flipOut-in 1s both ease-out}.cbp-animation-slideDelay{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-slideDelay .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-slideDelay .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-slideDelay .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:slideDelay-out 0.5s both ease-in-out;animation:slideDelay-out 0.5s both ease-in-out}.cbp-animation-slideDelay .cbp-wrapper .cbp-item-wrapper{-webkit-animation:slideDelay-in 0.5s both ease-in-out;animation:slideDelay-in 0.5s both ease-in-out}@-webkit-keyframes slideDelay-out{100%{-webkit-transform:translateX(-100%)}}@keyframes slideDelay-out{100%{transform:translateX(-100%)}}@-webkit-keyframes slideDelay-in{0%{-webkit-transform:translateX(100%)}100%{-webkit-transform:translateX(0)}}@keyframes slideDelay-in{0%{transform:translateX(100%)}100%{transform:translateX(0)}}.cbp-animation-rotateSides{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-rotateSides .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-rotateSides .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-rotateSides .cbp-wrapper-helper .cbp-item-wrapper{-webkit-transform-origin:-50% 50%;-webkit-animation:rotateSides-out .5s both ease-in;transform-origin:-50% 50%;animation:rotateSides-out .5s both ease-in}.cbp-animation-rotateSides .cbp-wrapper .cbp-item-wrapper{-webkit-transform-origin:150% 50%;-webkit-animation:rotateSides-in .6s both ease-out;transform-origin:150% 50%;animation:rotateSides-in .6s both ease-out}@-webkit-keyframes rotateSides-out{100%{opacity:0;-webkit-transform:translateZ(-500px) rotateY(90deg)}}@keyframes rotateSides-out{100%{opacity:0;transform:translateZ(-500px) rotateY(90deg)}}@-webkit-keyframes rotateSides-in{0%{opacity:0;-webkit-transform:translateZ(-500px) rotateY(-90deg)}40%{opacity:0;-webkit-transform:translateZ(-500px) rotateY(-90deg)}}@keyframes rotateSides-in{0%{opacity:0;transform:translateZ(-500px) rotateY(-90deg)}40%{opacity:0;transform:translateZ(-500px) rotateY(-90deg)}}.cbp-animation-foldLeft{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-foldLeft .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-foldLeft .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-foldLeft .cbp-wrapper-helper .cbp-item-wrapper{-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-animation:foldLeft-out .7s both;animation:foldLeft-out .7s both}.cbp-animation-foldLeft .cbp-wrapper .cbp-item-wrapper{-webkit-animation:foldLeft-in .7s both;animation:foldLeft-in .7s both}@-webkit-keyframes foldLeft-out{100%{opacity:0;-webkit-transform:translateX(-100%) rotateY(-90deg)}}@keyframes foldLeft-out{100%{opacity:0;transform:translateX(-100%) rotateY(-90deg)}}@-webkit-keyframes foldLeft-in{0%{opacity:0.3;-webkit-transform:translateX(100%)}}@keyframes foldLeft-in{0%{opacity:0.3;transform:translateX(100%)}}.cbp-animation-unfold{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-unfold .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-unfold .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-unfold .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:unfold-out .8s both;animation:unfold-out .8s both}.cbp-animation-unfold .cbp-wrapper .cbp-item-wrapper{-webkit-transform-origin:0% 50%;-webkit-animation:unfold-in .8s both;transform-origin:0% 50%;animation:unfold-in .8s both}@-webkit-keyframes unfold-out{90%{opacity:0.3}100%{opacity:0;-webkit-transform:translateX(-100%)}}@keyframes unfold-out{90%{opacity:0.3}100%{opacity:0;transform:translateX(-100%)}}@-webkit-keyframes unfold-in{0%{opacity:0;-webkit-transform:translateX(100%) rotateY(90deg)}}@keyframes unfold-in{0%{opacity:0;transform:translateX(100%) rotateY(90deg)}}.cbp-animation-scaleDown{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-scaleDown .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-scaleDown .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-scaleDown .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:scaleDown-out .7s both;animation:scaleDown-out .7s both}.cbp-animation-scaleDown .cbp-wrapper .cbp-item-wrapper{-webkit-animation:scaleDown-in .6s both;animation:scaleDown-in .6s both}@-webkit-keyframes scaleDown-out{100%{opacity:0;-webkit-transform:scale(0.8)}}@keyframes scaleDown-out{100%{opacity:0;transform:scale(0.8)}}@-webkit-keyframes scaleDown-in{0%{-webkit-transform:translateX(100%)}}@keyframes scaleDown-in{0%{transform:translateX(100%)}}.cbp-animation-frontRow{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-frontRow .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-frontRow .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-frontRow .cbp-wrapper-helper .cbp-item-wrapper{-webkit-animation:frontRow-out .7s both ease;animation:frontRow-out .7s both ease}.cbp-animation-frontRow .cbp-wrapper .cbp-item-wrapper{-webkit-animation:frontRow-in .6s both ease;animation:frontRow-in .6s both ease}@-webkit-keyframes frontRow-out{100%{-webkit-transform:translateX(-60%) scale(0.8);opacity:0}}@keyframes frontRow-out{100%{transform:translateX(-60%) scale(0.8);opacity:0}}@-webkit-keyframes frontRow-in{0%{-webkit-transform:translateX(100%) scale(0.8)}100%{opacity:1;-webkit-transform:translateX(0%) scale(1)}}@keyframes frontRow-in{0%{transform:translateX(100%) scale(0.8)}100%{opacity:1;transform:translateX(0%) scale(1)}}.cbp-animation-rotateRoom{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-rotateRoom .cbp-item{-webkit-perspective:1000px;perspective:1000px}.cbp-animation-rotateRoom .cbp-item-wrapper{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.cbp-animation-rotateRoom .cbp-wrapper-helper .cbp-item-wrapper{-webkit-transform-origin:100% 50%;transform-origin:100% 50%;-webkit-animation:rotateRoom-out .8s both ease;animation:rotateRoom-out .8s both ease}.cbp-animation-rotateRoom .cbp-wrapper .cbp-item-wrapper{-webkit-transform-origin:0% 50%;transform-origin:0% 50%;-webkit-animation:rotateRoom-in .8s both ease;animation:rotateRoom-in .8s both ease}@-webkit-keyframes rotateRoom-out{90%{opacity:.3}100%{opacity:0;-webkit-transform:translateX(-100%) rotateY(90deg)}}@keyframes rotateRoom-out{90%{opacity:.3}100%{opacity:0;transform:translateX(-100%) rotateY(90deg)}}@-webkit-keyframes rotateRoom-in{0%{opacity:.3;-webkit-transform:translateX(100%) rotateY(-90deg)}}@keyframes rotateRoom-in{0%{opacity:.3;transform:translateX(100%) rotateY(-90deg)}}.cbp-animation-bounceBottom{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-bounceBottom .cbp-wrapper-helper{-webkit-animation:bounceBottom-out .6s both ease-in-out;animation:bounceBottom-out .6s both ease-in-out}.cbp-animation-bounceBottom .cbp-wrapper{-webkit-animation:bounceBottom-in .6s both ease-in-out;animation:bounceBottom-in .6s both ease-in-out}@-webkit-keyframes bounceBottom-out{100%{-webkit-transform:translateY(100%);opacity:0}}@keyframes bounceBottom-out{100%{transform:translateY(100%);opacity:0}}@-webkit-keyframes bounceBottom-in{0%{-webkit-transform:translateY(100%);opacity:0}100%{-webkit-transform:translateY(0);opacity:1}}@keyframes bounceBottom-in{0%{transform:translateY(100%);opacity:0}100%{transform:translateY(0);opacity:1}}.cbp-animation-bounceLeft{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-bounceLeft .cbp-wrapper-helper{-webkit-animation:bounceLeft-out .6s both ease-in-out;animation:bounceLeft-out .6s both ease-in-out}.cbp-animation-bounceLeft .cbp-wrapper{-webkit-animation:bounceLeft-in .6s both ease-in-out;animation:bounceLeft-in .6s both ease-in-out}@-webkit-keyframes bounceLeft-out{100%{-webkit-transform:translateX(-100%);opacity:0}}@keyframes bounceLeft-out{100%{transform:translateX(-100%);opacity:0}}@-webkit-keyframes bounceLeft-in{0%{-webkit-transform:translateX(-100%);opacity:0}100%{-webkit-transform:translateX(0);opacity:1}}@keyframes bounceLeft-in{0%{transform:translateX(-100%);opacity:0}100%{transform:translateX(0);opacity:1}}.cbp-animation-bounceTop{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-bounceTop .cbp-wrapper-helper{-webkit-animation:bounceTop-out .6s both ease-in-out;animation:bounceTop-out .6s both ease-in-out}.cbp-animation-bounceTop .cbp-wrapper{-webkit-animation:bounceTop-in .6s both ease-in-out;animation:bounceTop-in .6s both ease-in-out}@-webkit-keyframes bounceTop-out{100%{-webkit-transform:translateY(-100%);opacity:0}}@keyframes bounceTop-out{100%{transform:translateY(-100%);opacity:0}}@-webkit-keyframes bounceTop-in{0%{-webkit-transform:translateY(-100%);opacity:0}100%{-webkit-transform:translateY(0);opacity:1}}@keyframes bounceTop-in{0%{transform:translateY(-100%);opacity:0}100%{transform:translateY(0);opacity:1}}.cbp-animation-moveLeft{-webkit-transition:height .6s ease-in-out;transition:height .6s ease-in-out;will-change:height}.cbp-animation-moveLeft .cbp-wrapper-helper{-webkit-animation:moveLeft-out .6s both ease-in-out;animation:moveLeft-out .6s both ease-in-out}.cbp-animation-moveLeft .cbp-wrapper{-webkit-animation:moveLeft-in .6s both ease-in-out;animation:moveLeft-in .6s both ease-in-out}@-webkit-keyframes moveLeft-out{100%{-webkit-transform:translateX(-100%);opacity:0}}@keyframes moveLeft-out{100%{transform:translateX(-100%);opacity:0}}@-webkit-keyframes moveLeft-in{0%{-webkit-transform:translateX(100%);opacity:0}100%{-webkit-transform:translateX(0);opacity:1}}@keyframes moveLeft-in{0%{transform:translateX(100%);opacity:0}100%{transform:translateX(0);opacity:1}}.cbp-displayType-bottomToTop{-webkit-perspective:1000px;perspective:1000px}.cbp-displayType-bottomToTop .cbp-item{-webkit-animation:fadeInBottomToTop .3s both ease-in;animation:fadeInBottomToTop .3s both ease-in}@-webkit-keyframes fadeInBottomToTop{0%{opacity:0;-webkit-transform:translateY(50px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInBottomToTop{0%{opacity:0;transform:translateY(50px)}100%{opacity:1;transform:translateY(0)}}.cbp-displayType-fadeIn{-webkit-animation:fadeIn .5s both ease-in;animation:fadeIn .5s both ease-in}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.cbp-displayType-fadeInToTop{-webkit-perspective:1000px;perspective:1000px;-webkit-animation:fadeInToTop .5s both ease-in;animation:fadeInToTop .5s both ease-in}@-webkit-keyframes fadeInToTop{0%{opacity:0;-webkit-transform:translateY(30px)}100%{opacity:1;-webkit-transform:translateY(0)}}@keyframes fadeInToTop{0%{opacity:0;transform:translateY(30px)}100%{opacity:1;transform:translateY(0)}}.cbp-displayType-sequentially .cbp-item{-webkit-animation:fadeIn .5s both ease-in;animation:fadeIn .5s both ease-in}.cbp-lightbox img{display:block;border:0;width:100%;height:auto}.cbp-popup-ie8bg{position:absolute;width:100%;height:100%;min-height:100%;top:0;left:0;z-index:-1;background:#000}.cbp-popup-wrap{height:100%;text-align:center;position:fixed;width:100%;left:0;top:0;display:none;z-index:99990;padding:0 10px}.cbp-popup-wrap video{outline:0 none}.cbp-popup-lightbox{background:rgba(0,0,0,0.8);display:flex;justify-content:center;align-items:center}.cbp-popup-singlePage{background:#fff;padding:0}.cbp-popup-wrap:before{content:"";display:inline-block;height:100%;vertical-align:middle}.cbp-popup-content-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:hidden;overflow-x:hidden;-webkit-overflow-scrolling:touch}.cbp-popup-content{position:relative;display:inline-block;vertical-align:middle;text-align:left;max-width:100%}.cbp-popup-lightbox .cbp-popup-content{display:flex}.cbp-popup-singlePage .cbp-popup-content{position:relative;z-index:1;margin-top:145px;max-width:1024px;vertical-align:top;width:94%}.cbp-popup-singlePage .cbp-popup-content-basic{position:relative;z-index:1;margin-top:104px;vertical-align:top;width:100%;display:inline-block;text-align:left}.cbp-popup-lightbox-figure{width:100%;position:relative;padding:20px 0}.cbp-popup-lightbox-bottom{position:relative;margin-top:3px}.cbp-popup-lightbox-title{padding-right:50px;font:400 12px/18px "Open Sans", sans-serif;color:#eee}.cbp-popup-lightbox-counter{position:absolute;top:0;right:0;font:400 12px/18px "Open Sans", sans-serif;color:#eee}.cbp-popup-lightbox-img{width:auto;max-width:100%;height:auto;display:block;box-shadow:0 0 8px rgba(0,0,0,0.6)}.cbp-popup-lightbox-img[data-action]{cursor:pointer}.cbp-popup-lightbox-isIframe .cbp-popup-content{width:75%;display:inline-block}@media only screen and (max-width: 768px){.cbp-popup-lightbox-isIframe .cbp-popup-content{width:95%}}.cbp-popup-lightbox-isIframe .cbp-lightbox-bottom{left:0;position:absolute;top:100%;width:100%;margin-top:3px}.cbp-popup-lightbox-iframe{position:relative;height:0;padding-bottom:56.25%;background:#000}.cbp-popup-lightbox-iframe iframe{position:absolute;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,0.6)}.cbp-popup-lightbox-iframe audio{margin-top:27%}.cbp-popup-lightbox-iframe .cbp-popup-lightbox-bottom{position:absolute;left:0;top:100%;width:100%}.cbp-popup-singlePage .cbp-popup-navigation-wrap{position:absolute;top:0;left:0;width:100%;z-index:10;height:104px;background-color:#3D4750}.cbp-popup-singlePage .cbp-popup-navigation{position:relative;width:100%;height:100%}.cbp-popup-singlePage-sticky .cbp-popup-navigation-wrap{position:fixed}.cbp-popup-singlePage-counter{color:#fff;position:absolute;margin:auto;right:40px;top:0;bottom:0;font:400 13px/30px "Open Sans", sans-serif;height:30px}@media only screen and (max-width: 768px){.cbp-popup-singlePage-counter{right:3%}}.cbp-popup-next,.cbp-popup-prev,.cbp-popup-close{padding:0;border:medium none;position:absolute;cursor:pointer;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cbp-popup-lightbox .cbp-popup-prev,.cbp-popup-lightbox .cbp-popup-next,.cbp-popup-lightbox .cbp-popup-close{visibility:hidden}.cbp-popup-ready.cbp-popup-lightbox .cbp-popup-next,.cbp-popup-ready.cbp-popup-lightbox .cbp-popup-prev,.cbp-popup-ready.cbp-popup-lightbox .cbp-popup-close{visibility:visible}.cbp-popup-lightbox .cbp-popup-prev{background:url("../img/cbp-sprite.png") no-repeat scroll 0 0 transparent;width:44px;height:44px;top:0;bottom:0;left:20px;margin:auto}.cbp-popup-lightbox .cbp-popup-prev:hover{background-position:0 -46px}.cbp-popup-singlePage .cbp-popup-prev{background:url("../img/cbp-sprite.png") no-repeat scroll 0 -92px transparent;width:44px;height:44px;margin:auto;top:0;right:108px;bottom:0;left:0}.cbp-popup-singlePage .cbp-popup-prev:hover{background-position:0 -138px}.cbp-popup-lightbox .cbp-popup-next{background:url("../img/cbp-sprite.png") no-repeat scroll -46px 0 transparent;width:44px;height:44px;top:0;bottom:0;right:20px;margin:auto}.cbp-popup-lightbox .cbp-popup-next:hover{background-position:-46px -46px}.cbp-popup-singlePage .cbp-popup-next{background:url("../img/cbp-sprite.png") no-repeat scroll -46px -92px transparent;width:44px;height:44px;margin:auto;top:0;right:0;bottom:0;left:108px}.cbp-popup-singlePage .cbp-popup-next:hover{background-position:-46px -138px}.cbp-popup-lightbox .cbp-popup-close{background:url("../img/cbp-sprite.png") no-repeat scroll -92px 0 transparent;height:40px;width:40px;right:20px;top:20px}.cbp-popup-lightbox .cbp-popup-close:hover{background-position:-92px -46px}.cbp-popup-singlePage .cbp-popup-close{background:url("../img/cbp-sprite.png") no-repeat scroll -92px -92px transparent;height:44px;width:44px;margin:auto;top:0;right:0;bottom:0;left:0}.cbp-popup-singlePage .cbp-popup-close:hover{background-position:-92px -138px}.cbp-popup-singlePage .cbp-popup-ie8bg{background-color:#fff}@media only screen and (max-width: 360px), (max-height: 600px){.cbp-popup-next,.cbp-popup-prev,.cbp-popup-close{-webkit-transform:scale(0.8);transform:scale(0.8)}.cbp-popup-lightbox .cbp-popup-close{right:10px;top:10px}.cbp-popup-lightbox .cbp-popup-next{right:10px}.cbp-popup-lightbox .cbp-popup-prev{left:10px}.cbp-popup-singlePage .cbp-popup-navigation-wrap{height:84px}.cbp-popup-singlePage .cbp-popup-content{margin-top:120px}}.cbp-popup-loadingBox{width:100%;height:100%;position:absolute;top:0;left:0}.cbp-popup-lightbox .cbp-popup-loadingBox:after{border-left:3px solid rgba(255,255,255,0.3);border-right:3px solid rgba(255,255,255,0.3);border-bottom:3px solid rgba(255,255,255,0.3);border-top:3px solid rgba(255,255,255,0.85)}.cbp-popup-ready .cbp-popup-loadingBox{visibility:hidden;display:none}.cbp-popup-loading .cbp-popup-loadingBox{visibility:visible;display:block}.cbp-popup-transitionend .cbp-popup-content-wrap{overflow-y:scroll}.cbp-popup-singlePage{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out}.cbp-popup-singlePage.cbp-popup-loading .cbp-popup-content{opacity:0}.cbp-popup-singlePage-fade{-webkit-transform:translateX(0);transform:translateX(0);opacity:0;-webkit-transition:opacity .25s ease-in-out;transition:opacity .25s ease-in-out}.cbp-popup-singlePage-open.cbp-popup-singlePage-fade{opacity:1}.cbp-popup-singlePage-right{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out}.cbp-popup-singlePage-open{-webkit-transform:none;transform:none}.cbp-l-project-title{color:#454444;font:600 42px/46px "Open Sans", sans-serif;letter-spacing:2px;margin-bottom:15px;text-align:center;text-transform:uppercase}.cbp-l-project-subtitle{color:#787878;font:400 14px/21px "Open Sans", sans-serif;margin:0 auto 50px;max-width:500px;text-align:center}.cbp-popup-singlePage .cbp-popup-content .cbp-l-project-img{display:block;margin:0 auto;max-width:100%}.cbp-l-project-container{overflow:hidden;margin:40px auto 0;clear:both}.cbp-l-project-desc{float:left;width:62%}.cbp-l-project-details{float:right;width:38%;padding-left:60px;margin-bottom:15px}@media only screen and (max-width: 768px){.cbp-l-project-title{font-size:30px;line-height:34px}.cbp-l-project-desc{width:100%}.cbp-l-project-details{width:100%;margin-top:20px;padding-left:0}}.cbp-l-project-desc-title{border-bottom:1px solid #cdcdcd;margin-bottom:22px;color:#444}.cbp-l-project-desc-title span,.cbp-l-project-details-title span{border-bottom:1px solid #747474;display:inline-block;margin:0 0 -1px 0;font:400 16px/36px "Open Sans", sans-serif;padding:0 5px 0 0}.cbp-l-project-desc-text{font:400 13px/20px "Open Sans", sans-serif;color:#555;margin-bottom:20px}.cbp-l-project-details-title{border-bottom:1px solid #cdcdcd;margin-bottom:19px;color:#444}.cbp-l-project-details-list{margin:0;padding:0;list-style:none}.cbp-l-project-details-list>li,.cbp-l-project-details-list>div{border-bottom:1px dotted #DFDFDF;padding:inherit;color:#666;font:400 12px/30px "Open Sans", sans-serif}.cbp-l-project-details-list>li:last-child,.cbp-l-project-details-list>div:last-child{border:none}.cbp-l-project-details-list strong{display:inline-block;color:#696969;font-weight:600;min-width:100px}.cbp-l-project-details-item{display:flex}.cbp-l-project-details-name{color:#696969;font-weight:600;min-width:80px;margin-right:20px}.cbp-l-project-details-visit{color:#FFFFFF;float:right;clear:both;text-decoration:none;font:400 11px/18px "Open Sans", sans-serif;margin-top:25px;background-color:#62B57B;padding:8px 19px;text-transform:uppercase;letter-spacing:.5px}.cbp-l-project-details-visit:hover{opacity:0.9;color:#fff}.cbp-l-project-related-wrap{font-size:0;margin:0;padding:0}.cbp-l-project-related-item{margin-left:5%;max-width:30%;float:left}.cbp-l-project-related-item:first-child{margin-left:0}.cbp-l-project-related-title{font:700 14px/18px "Open Sans", sans-serif;color:#474747;margin-top:20px}.cbp-l-project-related-link{text-decoration:none}.cbp-l-project-related-link:hover{opacity:0.9}.cbp-l-member-img{float:left;width:40%;margin-top:20px}.cbp-l-member-img img{border:1px solid #e2e2e2;width:auto;max-width:100%;height:auto;display:inline-block;border:0}.cbp-l-member-info{margin-top:20px;padding-left:25px;float:left;width:60%}@media only screen and (max-width: 768px){.cbp-l-member-img{width:100%;text-align:center}.cbp-l-member-info{width:100%;padding-left:0}}.cbp-l-member-name{font:400 28px/28px "Open Sans", sans-serif;color:#474747}.cbp-l-member-position{font:400 13px/21px "Open Sans", sans-serif;color:#888;margin-top:6px}.cbp-l-member-desc{font:400 12px/18px "Open Sans", sans-serif;margin-top:25px;color:#474747}.cbp-popup-singlePageInline-open{-webkit-transition:height .5s 0s !important;transition:height .5s 0s !important}.cbp-popup-singlePageInline-open .cbp-item{-webkit-transition:-webkit-transform .5s 0s !important;transition:transform .5s 0s !important}.cbp-popup-singlePageInline-close .cbp-popup-singlePageInline:after{display:none;visibility:hidden}.cbp-popup-singlePageInline-close .cbp-popup-singlePageInline .cbp-popup-content,.cbp-popup-singlePageInline-close .cbp-popup-singlePageInline .cbp-popup-navigation{-webkit-transition-delay:0;transition-delay:0}.cbp-popup-singlePageInline{width:100%;position:absolute;top:0;left:0;z-index:0;overflow:hidden}.cbp-popup-singlePageInline .cbp-popup-content{opacity:0;width:100%;z-index:1;min-height:300px}.cbp-popup-singlePageInline .cbp-popup-content,.cbp-popup-singlePageInline .cbp-popup-navigation{-webkit-transition:opacity .4s ease-in .2s;transition:opacity .4s ease-in .2s}.cbp-popup-singlePageInline .cbp-popup-navigation{opacity:0;position:absolute;top:0;right:0;z-index:2;width:40px;height:40px}.cbp-popup-singlePageInline .cbp-popup-close{background:url("../img/cbp-sprite.png") no-repeat scroll -92px 0 transparent;height:40px;width:40px;right:20px;top:30px}.cbp-popup-singlePageInline .cbp-popup-close:hover{opacity:0.7}.cbp-popup-singlePageInline-ready{z-index:4}.cbp-popup-singlePageInline-ready .cbp-popup-content,.cbp-popup-singlePageInline-ready .cbp-popup-navigation{opacity:1}.cbp-popup-singlePageInline-ready:after{display:none;visibility:hidden}.cbp-singlePageInline-active{opacity:0.6 !important}.cbp-l-inline{margin:20px 0;overflow:hidden;background:#FAFAFA;padding:30px}.cbp-l-inline-left{float:left;width:44%}.cbp-l-project-img{max-width:100%}.cbp-l-inline-right{float:right;width:56%;padding-left:inherit}@media only screen and (max-width: 768px){.cbp-l-inline-left{width:100%;text-align:center;margin-top:40px}.cbp-l-inline-right{width:100%;padding-left:0;margin-top:20px}}.cbp-l-inline-title{font:400 28px/30px "Open Sans", sans-serif;color:#474747}.cbp-l-inline-subtitle{font:400 13px/21px "Open Sans", sans-serif;color:#888;margin-top:7px}.cbp-l-inline-desc{font:400 13px/20px "Open Sans", sans-serif;color:#474747;margin-top:25px;margin-bottom:20px}.cbp-l-inline-view-wrap{text-align:right}.cbp-l-inline-view{font:400 13px/35px "Open Sans", sans-serif;color:#9C9C9C;margin-top:40px;display:inline-block;padding:0 20px;border:1px solid #ccc;text-decoration:none}.cbp-l-inline-view:hover{color:#757575}.cbp-l-inline-details{margin-bottom:15px;font:13px/22px "Open Sans", sans-serif}.cbp-l-loadMore-defaultText,.cbp-l-loadMore-button-defaultText{display:block}.cbp-l-loadMore-loadingText,.cbp-l-loadMore-noMoreLoading,.cbp-l-loadMore-button-loadingText,.cbp-l-loadMore-button-noMoreLoading{display:none}.cbp-l-loadMore-loading .cbp-l-loadMore-loadingText,.cbp-l-loadMore-loading .cbp-l-loadMore-button-loadingText{display:block}.cbp-l-loadMore-loading .cbp-l-loadMore-defaultText,.cbp-l-loadMore-loading .cbp-l-loadMore-noMoreLoading,.cbp-l-loadMore-loading .cbp-l-loadMore-button-defaultText,.cbp-l-loadMore-loading .cbp-l-loadMore-button-noMoreLoading{display:none}.cbp-l-loadMore-stop .cbp-l-loadMore-noMoreLoading,.cbp-l-loadMore-stop .cbp-l-loadMore-button-noMoreLoading{display:block}.cbp-l-loadMore-stop .cbp-l-loadMore-defaultText,.cbp-l-loadMore-stop .cbp-l-loadMore-loadingText,.cbp-l-loadMore-stop .cbp-l-loadMore-button-defaultText,.cbp-l-loadMore-stop .cbp-l-loadMore-button-loadingText{display:none}.cbp-l-loadMore-bgbutton{text-align:center}.cbp-l-loadMore-bgbutton .cbp-l-loadMore-link{border:1px solid #DEDEDE;color:#7E7B7B;display:inline-block;font:400 13px/40px "Lato", sans-serif;min-width:80px;text-decoration:none;padding:0 50px;margin-top:50px;outline:0;box-shadow:none;letter-spacing:1px;-webkit-transition:color .25s;transition:color .25s}.cbp-l-loadMore-bgbutton .cbp-l-loadMore-link:hover,.cbp-l-loadMore-bgbutton .cbp-l-loadMore-link.cbp-l-loadMore-loading{color:#B0B0B0}.cbp-l-loadMore-bgbutton .cbp-l-loadMore-link.cbp-l-loadMore-stop{color:#B0B0B0;cursor:default}.cbp-l-loadMore-button{text-align:center}.cbp-l-loadMore-button .cbp-l-loadMore-link,.cbp-l-loadMore-button .cbp-l-loadMore-button-link{border:1px solid #DEDEDE;color:#7E7B7B;display:inline-block;font:400 12px/36px "Open Sans", sans-serif;min-width:80px;text-decoration:none;padding:0 30px;outline:0;margin-top:40px;box-shadow:none;-webkit-transition:color .25s;transition:color .25s}.cbp-l-loadMore-button .cbp-l-loadMore-link:hover,.cbp-l-loadMore-button .cbp-l-loadMore-link.cbp-l-loadMore-loading,.cbp-l-loadMore-button .cbp-l-loadMore-button-link:hover,.cbp-l-loadMore-button .cbp-l-loadMore-button-link.cbp-l-loadMore-loading{color:#B0B0B0}.cbp-l-loadMore-button .cbp-l-loadMore-link.cbp-l-loadMore-stop,.cbp-l-loadMore-button .cbp-l-loadMore-link.cbp-l-loadMore-button-stop,.cbp-l-loadMore-button .cbp-l-loadMore-button-link.cbp-l-loadMore-stop,.cbp-l-loadMore-button .cbp-l-loadMore-button-link.cbp-l-loadMore-button-stop{cursor:default;color:#B0B0B0}.cbp-l-loadMore-text{text-align:center}.cbp-l-loadMore-text .cbp-l-loadMore-link,.cbp-l-loadMore-text .cbp-l-loadMore-text-link{font:400 15px "Open Sans", sans-serif;color:#7E7B7B;text-decoration:none;cursor:pointer;margin-top:50px;display:block}.cbp-l-loadMore-text .cbp-l-loadMore-stop,.cbp-l-loadMore-text .cbp-l-loadMore-text-stop{color:#B0B0B0;cursor:default}.cbp-mode-slider{-webkit-transition:height .35s;transition:height .35s}.cbp-mode-slider .cbp-wrapper,.cbp-mode-slider .cbp-item{-webkit-transition:-webkit-transform .35s;transition:transform .35s}.cbp-mode-slider .cbp-wrapper{cursor:-webkit-grab;cursor:-o-grab;cursor:-ms-grab;cursor:grab}.cbp-mode-slider-dragStart *{cursor:move !important;cursor:-ms-grabbing !important;cursor:-webkit-grabbing !important;cursor:-moz-grabbing !important;cursor:grabbing !important}.cbp-mode-slider-dragStart .cbp-wrapper{-webkit-transition:none;transition:none}.cbp-nav-next,.cbp-nav-prev{position:relative;background:#7c8b90;cursor:pointer;display:inline-block;margin-left:1px;height:22px;width:21px}.cbp-nav-next{border-radius:0 2px 2px 0}.cbp-nav-prev{border-radius:2px 0 0 2px}.cbp-nav-next:hover,.cbp-nav-prev:hover{opacity:0.8}.cbp-nav-next:after,.cbp-nav-prev:after{content:'';position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;background:url("../img/cbp-sprite.png") no-repeat;height:10px;width:7px}.cbp-nav-next:after{background-position:-134px 0}.cbp-nav-prev:after{background-position:-134px -12px}.cbp-nav-stop{opacity:0.5 !important;cursor:default !important}.cbp-nav{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cbp-nav-controls{position:absolute;top:-51px;right:0;z-index:100}.cbp-nav-pagination{position:absolute;bottom:-30px;right:0;z-index:100;left:0;text-align:center}.cbp-nav-pagination-item{position:relative;width:10px;height:10px;border-radius:50%;margin:0 4px;display:inline-block;cursor:pointer;background:#c2c2c2;-webkit-transition:background 0.5s;transition:background 0.5s}.cbp-nav-pagination-active{background:#797979}.cbp-pagination-item{max-width:100px;display:inline-block;cursor:pointer;margin-top:10px;margin-right:5px;position:relative}.cbp-pagination-item img{display:block;width:100%;height:auto;border:0}.cbp-pagination-item:after{content:'';position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.5);-webkit-transition:background .5s ease-in-out;transition:background .5s ease-in-out}.cbp-pagination-active:after{background:rgba(0,0,0,0)}.cbp-slider-wrap,.cbp-slider-item{margin:0;padding:0;list-style-type:none}.cbp-slider .cbp-nav-controls{position:static}.cbp-slider .cbp-nav-next,.cbp-slider .cbp-nav-prev{background:transparent;position:absolute;margin:auto;top:0;bottom:0;z-index:100;width:44px;height:44px}.cbp-slider .cbp-nav-next{right:25px;left:auto}.cbp-slider .cbp-nav-prev{left:25px;right:auto}.cbp-slider .cbp-nav-next:after,.cbp-slider .cbp-nav-prev:after{background:url("../img/cbp-sprite.png") no-repeat;width:44px;height:44px}.cbp-slider .cbp-nav-next:after{background-position:-46px -92px}.cbp-slider .cbp-nav-next:hover:after{background-position:-46px -46px}.cbp-slider .cbp-nav-prev:after{background-position:0 -92px}.cbp-slider .cbp-nav-prev:hover:after{background-position:0 -46px}.cbp-slider .cbp-nav-pagination{text-align:right;bottom:20px;right:25px;left:auto}.cbp-slider-edge .cbp-nav-controls{position:static}.cbp-slider-edge .cbp-nav-next,.cbp-slider-edge .cbp-nav-prev{background:transparent;position:absolute;margin:auto;top:0;bottom:0;z-index:100;width:44px;height:44px}.cbp-slider-edge .cbp-nav-next{right:0;left:auto}.cbp-slider-edge .cbp-nav-prev{left:0;right:auto}.cbp-slider-edge .cbp-nav-next:after,.cbp-slider-edge .cbp-nav-prev:after{background:url("../img/cbp-sprite.png") no-repeat;width:9px;height:16px}.cbp-slider-edge .cbp-nav-next:after{background-position:-134px -24px}.cbp-slider-edge .cbp-nav-prev:after{background-position:-134px -42px}.cbp-slider-edge .cbp-nav-pagination{bottom:-50px}.cbp-slider-edge .cbp-nav-pagination-item{border:2px solid #0f0f0f;opacity:0.4;background:transparent}.cbp-slider-edge .cbp-nav-pagination-active{background:#000}.cbp-slider-inline{position:relative}.cbp-slider-inline .cbp-slider-item{position:absolute;width:100%;top:0;-webkit-transition:left .5s;transition:left .5s}.cbp-slider-inline .cbp-slider-item--active{position:relative;z-index:2}.cbp-slider-wrapper{position:relative;overflow:hidden}.cbp-slider-controls{position:absolute;top:0;right:0;z-index:100;opacity:0;-webkit-transition:opacity .7s ease-in-out;transition:opacity .7s ease-in-out}.cbp-slider-inline-ready .cbp-slider-controls{opacity:1}.cbp-slider-next,.cbp-slider-prev{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;float:left;cursor:pointer;position:relative;width:36px;height:36px;background:#547EB1}.cbp-slider-next{margin-left:1px}.cbp-slider-next:after,.cbp-slider-prev:after{content:'';position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;background:url("../img/cbp-sprite.png") no-repeat;width:9px;height:16px}.cbp-slider-next:after{background-position:-134px -60px}.cbp-slider-prev:after{background-position:-134px -78px}.cbp-l-grid-agency .cbp-caption:after{position:absolute;content:'';width:0;height:0;border-bottom:10px solid #fff;border-right:10px solid transparent;border-left:10px solid transparent;bottom:0px;left:50%;margin-left:-5px;z-index:1}.cbp-l-grid-agency.cbp-caption-zoom .cbp-caption:hover .cbp-caption-defaultWrap{-webkit-transform:scale(1.15);transform:scale(1.15)}.cbp-l-grid-agency-title{margin-top:18px;font:700 17px/24px "Lato", sans-serif;color:#666;text-align:center;padding:0 4px}.cbp-item:hover .cbp-l-grid-agency-title{color:#222}.cbp-l-grid-agency-desc{font:400 12px/21px "Open Sans", sans-serif;color:#aaa;text-align:center}@media only screen and (max-width: 480px){.cbp-l-grid-agency-title{font-size:15px;line-height:21px}}.cbp-l-grid-work.cbp-caption-zoom .cbp-caption-activeWrap{background-color:rgba(0,0,0,0.7)}.cbp-l-grid-work .cbp-item{padding:3px}.cbp-l-grid-work .cbp-item-wrapper{background-color:#fff;box-shadow:0 1px 1px rgba(0,0,0,0.2);padding:7px 7px 27px;border-top:1px solid #F4F4F4}.cbp-l-grid-work-title{margin-top:17px;font:400 17px/25px "Roboto Condensed", sans-serif;color:#607D8B;text-align:center;text-transform:uppercase;display:block}.cbp-l-grid-work-title:hover{color:#365D67}.cbp-l-grid-work-desc{font:400 11px/16px "Open Sans", sans-serif;color:#888888;text-align:center;text-transform:uppercase}@media only screen and (max-width: 480px){.cbp-l-grid-work-title{font-size:15px;line-height:21px;margin-top:15px}.cbp-l-grid-work .cbp-item-wrapper{padding-bottom:18px}}.cbp-l-grid-blog-title{font:400 18px/30px "Open Sans", sans-serif;color:#444;display:block;margin-top:17px}.cbp-l-grid-blog-title:hover{color:#787878}.cbp-l-grid-blog-date{font:400 12px/18px "Open Sans", sans-serif;color:#787878;display:inline-block}.cbp-l-grid-blog-comments{font:400 12px/18px "Open Sans", sans-serif;color:#3C6FBB;display:inline-block}.cbp-l-grid-blog-comments:hover{opacity:.8}.cbp-l-grid-blog-desc{font:400 13px/18px "Open Sans", sans-serif;color:#9B9B9B;margin-top:9px}.cbp-l-grid-blog-split{margin:0 4px;font:400 13px/16px "Open Sans", sans-serif;color:#787878;display:inline-block}.cbp-l-grid-clients{height:180px}.cbp-l-clients-title-block{font:400 32px/53px "Roboto", sans-serif;color:#666464;text-align:center;margin-bottom:40px}.cbp-l-grid-faq .cbp-item{width:100%}.cbp-l-grid-projects-title{font:700 14px/21px "Open Sans", sans-serif;color:#474747;margin-top:15px}.cbp-l-grid-projects-desc{font:400 12px/18px "Open Sans", sans-serif;color:#888888;margin-top:5px}@media only screen and (max-width: 480px){.cbp-l-grid-projects-title{margin-top:12px}.cbp-l-grid-projects-desc{margin-top:3px}}.cbp-l-grid-masonry-projects .cbp-caption-activeWrap{background-color:#59a3b6;background-color:rgba(89,163,182,0.95)}.cbp-l-grid-masonry-projects .cbp-l-caption-buttonLeft,.cbp-l-grid-masonry-projects .cbp-l-caption-buttonRight{background-color:#545454}.cbp-l-grid-masonry-projects-title{font:500 15px/22px "Roboto", sans-serif;color:#59a3b6;text-align:center;display:block;margin-top:12px}.cbp-l-grid-masonry-projects-title:hover{color:#457C8B}.cbp-l-grid-masonry-projects-desc{font:400 12px/18px "Roboto", sans-serif;color:#b2b2b2;text-align:center}.cbp-l-grid-team-name{font:400 17px/24px "Open Sans", sans-serif;color:#456297;display:block;text-align:center;margin-top:18px}.cbp-l-grid-team-name:hover{color:#34425C}.cbp-l-grid-team-position{font:italic 400 13px/21px "Open Sans", sans-serif;color:#999;text-align:center}@media only screen and (max-width: 480px){.cbp-l-grid-team-name{font-size:15px;line-height:22px;margin-top:13px}.cbp-l-grid-team-position{font-size:12px;line-height:18px}}.cbp-l-grid-mosaic-flat .cbp-caption-activeWrap{background-color:#64C28E;background-color:rgba(101,199,150,0.95)}.cbp-l-grid-mosaic-flat .cbp-l-caption-title{color:#FFFFFF;font:400 14px/21px "Lato", sans-serif;text-transform:uppercase;letter-spacing:2px;display:inline-block}.cbp-l-grid-mosaic-flat .cbp-l-caption-title:after{content:'';display:block;width:40%;height:1px;background-color:#fff;margin:8px auto 0}@media only screen and (max-width: 800px){.cbp-l-grid-mosaic-flat .cbp-l-caption-title:after{display:none}}.cbp-l-grid-mosaic-projects .cbp-caption-activeWrap{background-color:#59a3b6;background-color:rgba(89,163,182,0.97)}.cbp-l-grid-mosaic .cbp-caption-activeWrap{background-color:#FFEA71;background-color:rgba(255,234,113,0.95)}.cbp-l-grid-mosaic .cbp-l-caption-title{color:#5A5A5A;font:500 18px/22px "Roboto", sans-serif;text-transform:uppercase;margin-bottom:5px}.cbp-l-grid-mosaic .cbp-l-caption-desc{color:#585858;font:400 13px/20px "Roboto", sans-serif}@media only screen and (max-width: 480px){.cbp-l-grid-mosaic .cbp-l-caption-title{font-size:16px;line-height:22px;margin-bottom:0px}.cbp-l-grid-mosaic .cbp-l-caption-desc{font-size:12px;line-height:18px}}.cbp-l-slider-title-block{border-bottom:1px solid #cdcdcd;margin-bottom:22px}.cbp-l-slider-title-block div{padding:0 2px 6px 0;display:inline-block;border-bottom:1px solid #a9a5a5;color:#5e5e5e;margin-bottom:-1px;font:15px/21px "Roboto", sans-serif}.cbp-l-grid-slider-team-name{float:left;font:20px/30px "Roboto", sans-serif;color:#494949;margin-top:16px}.cbp-l-grid-slider-team-position{clear:both;font:14px/21px "Roboto", sans-serif;color:#A6A6A6}.cbp-l-grid-slider-team-desc{font:13px/20px "Roboto", sans-serif;color:#969696;margin-top:15px}.cbp-l-grid-slider-team-social{float:right;margin-top:22px}.cbp-l-grid-slider-team-social a{margin-left:4px}.cbp-l-grid-slider-team-social a:hover{opacity:0.8}@media only screen and (max-width: 600px){.cbp-l-grid-slider-team-wrap{float:left;width:100%;margin-bottom:10px}.cbp-l-grid-slider-team-name{font-size:17px;line-height:26px;width:100%;margin-top:12px;text-align:center}.cbp-l-grid-slider-team-social{width:100%;text-align:center;margin-top:8px}.cbp-l-grid-slider-team-position{font-size:13px;line-height:20px;text-align:center}.cbp-l-grid-slider-team-desc{font-size:12px;line-height:18px;margin-top:10px;text-align:center}}.cbp-l-slider-testimonials-wrap{background:#f8f9f9;padding:80px 0 110px;border-width:1px 0;border-style:solid;border-color:#dce1e2}.cbp-l-grid-slider-testimonials-body{color:#424242;max-width:800px;margin:0 auto;font:20px/32px sans-serif;text-align:center;padding:0 40px}.cbp-l-grid-slider-testimonials-footer{font:12px/19px "Roboto", sans-serif;color:#777;text-align:center;margin-bottom:10px;margin-top:30px}.cbp-l-grid-tabs{height:100px}.cbp-l-grid-tabs .cbp-item{font:14px/24px "Lato", sans-serif;max-width:700px;width:100%;margin:0 auto;right:0;text-align:center;color:#5a5a5a}.cbp-l-testimonials-title-block{position:relative;text-align:center;font:26px/36px "Roboto", sans-serif;color:#E7E7E7;margin-bottom:60px}.cbp-l-testimonials-title-block:after{content:'';position:absolute;margin:0 auto;width:23px;height:2px;bottom:-6px;background-color:#C2C2C2;left:0;right:0}.cbp-l-testimonials-wrap{background:#2D2D2D;padding:60px 0 110px}.cbp-l-grid-testimonials-body{color:#e7e7e7;max-width:800px;margin:0 auto;font:20px/32px "Roboto", sans-serif;text-align:center;padding:0 20px}.cbp-l-grid-testimonials-footer{font:12px/19px "Roboto", sans-serif;color:#C2C2C2;text-align:center;margin-bottom:40px;margin-top:35px}.cbp-search{position:relative;width:220px;margin-bottom:40px}.cbp-search .cbp-search-nothing{display:none}.cbp-search-icon{position:absolute;width:32px;height:100%;top:0;right:0;text-align:center;cursor:pointer;pointer-events:none}.cbp-search-icon:after{content:'';display:block;background:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzczNzM3MyIgZD0iTTEyMTYgODMycTAtMTg1LTEzMS41LTMxNi41VDc2OCAzODQgNDUxLjUgNTE1LjUgMzIwIDgzMnQxMzEuNSAzMTYuNVQ3NjggMTI4MHQzMTYuNS0xMzEuNVQxMjE2IDgzMnptNTEyIDgzMnEwIDUyLTM4IDkwdC05MCAzOHEtNTQgMC05MC0zOGwtMzQzLTM0MnEtMTc5IDEyNC0zOTkgMTI0LTE0MyAwLTI3My41LTU1LjV0LTIyNS0xNTAtMTUwLTIyNVQ2NCA4MzJ0NTUuNS0yNzMuNSAxNTAtMjI1IDIyNS0xNTBUNzY4IDEyOHQyNzMuNSA1NS41IDIyNSAxNTAgMTUwIDIyNVQxNDcyIDgzMnEwIDIyMC0xMjQgMzk5bDM0MyAzNDNxMzcgMzcgMzcgOTB6Ii8+PC9zdmc+") no-repeat scroll center center;width:100%;height:100%;pointer-events:none}.cbp-search-input{height:36px;padding:0 32px 0 12px;margin:0;border-radius:1px;border:1px solid #c6c3c4;font:400 12px "Open Sans", sans-serif;width:100%}.cbp-search-input[value]+.cbp-search-icon{pointer-events:auto}.cbp-search-input[value]+.cbp-search-icon:after{background-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNzkyIDE3OTIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbD0iIzczNzM3MyIgZD0iTTE0OTAgMTMyMnEwIDQwLTI4IDY4bC0xMzYgMTM2cS0yOCAyOC02OCAyOHQtNjgtMjhsLTI5NC0yOTQtMjk0IDI5NHEtMjggMjgtNjggMjh0LTY4LTI4bC0xMzYtMTM2cS0yOC0yOC0yOC02OHQyOC02OGwyOTQtMjk0LTI5NC0yOTRxLTI4LTI4LTI4LTY4dDI4LTY4bDEzNi0xMzZxMjgtMjggNjgtMjh0NjggMjhsMjk0IDI5NCAyOTQtMjk0cTI4LTI4IDY4LTI4dDY4IDI4bDEzNiAxMzZxMjggMjggMjggNjh0LTI4IDY4bC0yOTQgMjk0IDI5NCAyOTRxMjggMjggMjggNjh6Ii8+PC9zdmc+")}.cbp-search-nothing{position:absolute;top:0;padding:0 0 30px;text-align:center;width:100%;font:13px "Open Sans", sans-serif}@media only screen and (max-width: 600px){.cbp-search{width:100%}}.cbp-l-project-social{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.cbp-social-fb,.cbp-social-twitter,.cbp-social-googleplus,.cbp-social-pinterest{margin-right:9px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.cbp-social-fb:hover,.cbp-social-twitter:hover,.cbp-social-googleplus:hover,.cbp-social-pinterest:hover{opacity:.8}.cbp-social-fb:focus,.cbp-social-twitter:focus,.cbp-social-googleplus:focus,.cbp-social-pinterest:focus{outline:none}.cbp-social-fb path{fill:#415C9B}.cbp-social-twitter path{fill:#55acee}.cbp-social-googleplus path{fill:#E57371}.cbp-social-pinterest path{fill:#cb2027}.cbp-l-sort{margin-bottom:30px;display:flex;justify-content:center}.cbp-l-direction{display:inline-block;background:#4d4c4d;float:left;height:38px;width:38px;position:relative;border-left:1px solid #6b6a6a}.cbp-l-direction:hover{opacity:.9}.cbp-l-direction-item{height:100%;width:100%;cursor:pointer;display:none;z-index:1;background:transparent;position:relative}.cbp-l-direction:after{border-color:#fff rgba(0,0,0,0);border-style:solid;border-width:5px 5px 0;content:"";height:0;position:absolute;right:0;left:0;top:50%;width:0;margin:-3px auto 0;cursor:pointer;z-index:0}.cbp-l-direction--second:after{border-width:0 5px 5px}.cbp-l-direction--first div:first-child{display:block}.cbp-l-direction--second div:nth-child(2){display:block}.cbp-l-sort--simple{margin-left:70px}.cbp-l-sort--simple .cbp-l-dropdown-wrap{background:transparent}.cbp-l-sort--simple .cbp-l-dropdown-header{font:400 13px/36px "Lato", sans-serif;color:#787878;margin:0}.cbp-l-sort--simple .cbp-l-dropdown-list{background:white;box-shadow:0 0 2px 0px #e2e2e2;border:1px solid #ddd}.cbp-l-sort--simple .cbp-l-dropdown-list .cbp-l-dropdown-item{border-top:0;color:#787878}.cbp-l-sort--simple .cbp-l-dropdown-list .cbp-l-dropdown-item:hover{color:#b3b3b3}.cbp-l-sort--simple .cbp-l-dropdown-list .cbp-l-dropdown-item--active{color:#b3b3b3}.cbp-l-text-sort{font:400 13px/36px "Lato", sans-serif;color:#949494;margin-right:15px}.cbp-l-dropdown{height:38px;position:relative;z-index:5;width:170px;float:left}.cbp-l-dropdown-wrap{width:100%;position:absolute;background:#4d4c4d}.cbp-l-dropdown-header{font:400 12px/38px "Open Sans", sans-serif;margin:0 17px;color:#FFF;cursor:default;position:relative}.cbp-l-dropdown-list{display:none}.cbp-l-dropdown-wrap.cbp-l-dropdown-wrap--open .cbp-l-dropdown-list{display:block;margin:0}.cbp-l-dropdown-list .cbp-l-dropdown-item{background:transparent;color:#b3b3b3;width:100%;text-align:left;font:400 12px/40px "Open Sans", sans-serif;margin:0;padding:0 17px;cursor:pointer;border:none;border-top:1px solid #595959}.cbp-l-dropdown-list .cbp-l-dropdown-item:hover{color:#e6e6e6}.cbp-l-dropdown-list .cbp-l-dropdown-item--active{color:#fff;cursor:default}.cbp-l-dropdown-floated{float:right;margin-top:-2px;margin-left:20px;width:200px}@media only screen and (max-width: 480px){.cbp-l-dropdown-floated{width:100%;margin-top:0;margin-left:0}.cbp-l-dropdown-wrap{right:0;left:0;margin:0 auto}} diff --git a/cubeportfolio/img/cbp-sprite.png b/cubeportfolio/img/cbp-sprite.png new file mode 100644 index 0000000..1802880 Binary files /dev/null and b/cubeportfolio/img/cbp-sprite.png differ diff --git a/cubeportfolio/img/cbp-sprite.psd b/cubeportfolio/img/cbp-sprite.psd new file mode 100644 index 0000000..22415f0 Binary files /dev/null and b/cubeportfolio/img/cbp-sprite.psd differ diff --git a/cubeportfolio/js/jquery.cubeportfolio.js b/cubeportfolio/js/jquery.cubeportfolio.js new file mode 100644 index 0000000..504b23c --- /dev/null +++ b/cubeportfolio/js/jquery.cubeportfolio.js @@ -0,0 +1,6357 @@ +(function($, window, document, undefined) { + 'use strict'; + + function CubePortfolio(obj, options, callback) { + /*jshint validthis: true */ + var t = this; + + if ($.data(obj, 'cubeportfolio')) { + throw new Error('cubeportfolio is already initialized. Destroy it before initialize again!'); + } + + // js element + t.obj = obj; + + // jquery element + t.$obj = $(obj); + + // attached this instance to obj + $.data(t.obj, 'cubeportfolio', t); + + // rename options + if (options && (options.sortToPreventGaps !== undefined)) { + options.sortByDimension = options.sortToPreventGaps; + delete options.sortToPreventGaps; + } + + // extend options + t.options = $.extend({}, $.fn.cubeportfolio.options, options, t.$obj.data('cbp-options')); + + // store the state of the animation used for filters + t.isAnimating = true; + + // default filter for plugin + t.defaultFilter = t.options.defaultFilter; + + // registered events (observator & publisher pattern) + t.registeredEvents = []; + + // queue for this plugin + t.queue = []; + + // has wrapper + t.addedWrapp = false; + + // register callback function + if ($.isFunction(callback)) { + t.registerEvent('initFinish', callback, true); + } + + // when there are no .cbp-item + var children = t.$obj.children(); + + t.$obj.addClass('cbp'); + + if (children.length === 0 || children.first().hasClass('cbp-item')) { + t.wrapInner(t.obj, 'cbp-wrapper'); + t.addedWrapp = true; + } + + // jquery wrapper element + t.$ul = t.$obj.children().addClass('cbp-wrapper'); + + // wrap the $ul in a outside wrapper + t.wrapInner(t.obj, 'cbp-wrapper-outer'); + + t.wrapper = t.$obj.children('.cbp-wrapper-outer'); + + t.blocks = t.$ul.children('.cbp-item'); + t.blocksOn = t.blocks; + + // wrap .cbp-item-wrap div inside .cbp-item + t.wrapInner(t.blocks, 'cbp-item-wrapper'); + + // register and initialize plugins + t.plugins = {}; + $.each(CubePortfolio.plugins, function(key, value) { + var fn = value(t); + + if (fn) { + t.plugins[key] = fn; + } + }); + + // used by the filters plugin. @todo - remove from here and create proper API with position for plugins + t.triggerEvent('afterPlugins'); + + // usful when width & height is defined for an image and to keep the same aspect ratio on all devices + // on resize. e.g. from mobile to desktop + t.removeAttrAfterStoreData = $.Deferred(); + + // wait to load all images and then go further + t.loadImages(t.$obj, t.display); + } + + + $.extend(CubePortfolio.prototype, { + storeData: function(blocks, indexStart) { + var t = this; + + indexStart = indexStart || 0; // used by loadMore + + blocks.each(function(index, el) { + var item = $(el), + width = item.width(), + height = item.height(); + + item.data('cbp', { + index: indexStart + index, // used when I sort the items and I need them to revert that sorting + indexInitial: indexStart + index, // used for sort.js @todo - move this to sort.js but be carefoul when I add new items to grid + wrapper: item.children('.cbp-item-wrapper'), + + widthInitial: width, + heightInitial: height, + + width: width, // used by drag & drop wp @todo - maybe I will use widthAndGap + height: height, + + widthAndGap: width + t.options.gapVertical, + heightAndGap: height + t.options.gapHorizontal, + + left: null, + leftNew: null, + top: null, + topNew: null, + + pack: false, + }); + }); + + this.removeAttrAfterStoreData.resolve(); + }, + + + // http://bit.ly/pure-js-wrap + wrapInner: function(items, classAttr) { + var t = this, + item, i, div; + + classAttr = classAttr || ''; + + if (items.length && items.length < 1) { + return; // there are no .cbp-item + } else if (items.length === undefined) { + items = [items]; + } + + for (i = items.length - 1; i >= 0; i--) { + item = items[i]; + + div = document.createElement('div'); + + div.setAttribute('class', classAttr); + + while (item.childNodes.length) { + div.appendChild(item.childNodes[0]); + } + + item.appendChild(div); + } + }, + + removeAttrImage: function(img) { + this.removeAttrAfterStoreData.then(function() { + img.removeAttribute('width'); + img.removeAttribute('height'); + img.removeAttribute('style'); + }); + }, + + + /** + * Wait to load all images + */ + loadImages: function(elems, callback) { + var t = this; + + // wait a frame (Safari bug) + requestAnimationFrame(function() { + var imgs = elems.find('img').map(function(index, el) { + // don't wait for images that have a width & height defined + if (el.hasAttribute('width') && el.hasAttribute('height')) { + el.style.width = el.getAttribute('width') + 'px'; + el.style.height = el.getAttribute('height') + 'px'; + + if (el.hasAttribute('data-cbp-src')) { + return null; + } + + if (t.checkSrc(el) === null) { + t.removeAttrImage(el); + } else { + var img = $(''); + + img.on('load.cbp error.cbp', function() { + $(this).off('load.cbp error.cbp'); + t.removeAttrImage(el); + }); + + if (el.srcset) { + img.attr('sizes', el.sizes || '100vw'); + img.attr('srcset', el.srcset); + } else { + img.attr('src', el.src); + } + } + + return null; + } else { + return t.checkSrc(el); + } + }); + + var imgsLength = imgs.length; + + if (imgsLength === 0) { + callback.call(t); + return; + } + + $.each(imgs, function(i, el) { + var img = $(''); + + img.on('load.cbp error.cbp', function() { + $(this).off('load.cbp error.cbp'); + + imgsLength--; + + if (imgsLength === 0) { + callback.call(t); + } + }); + + // ie8 compatibility + if (el.srcset) { + img.attr('sizes', el.sizes); + img.attr('srcset', el.srcset); + } else { + img.attr('src', el.src); + } + }); + }); + }, + + + checkSrc: function(el) { + var srcset = el.srcset; + var src = el.src; + + if (src === '') { + return null; + } + + var img = $(''); + + if (srcset) { + img.attr('sizes', el.sizes || '100vw'); + img.attr('srcset', srcset); + } else { + img.attr('src', src); + } + + var node = img[0]; + + if (node.complete && node.naturalWidth !== undefined && node.naturalWidth !== 0) { + return null; + } + + return node; + }, + + + /** + * Show the plugin + */ + display: function() { + var t = this; + + // update the current grid width + t.width = t.$obj.outerWidth(); + + t.triggerEvent('initStartRead'); + t.triggerEvent('initStartWrite'); + + if (t.width > 0) { + // store to data values of t.blocks + t.storeData(t.blocks); + + // make layout + t.layoutAndAdjustment(); + } + + t.triggerEvent('initEndRead'); + t.triggerEvent('initEndWrite'); + + // plugin is ready to show and interact + t.$obj.addClass('cbp-ready'); + + t.runQueue('delayFrame', t.delayFrame); + }, + + + delayFrame: function() { + var t = this; + + requestAnimationFrame(function() { + t.resizeEvent(); + + t.triggerEvent('initFinish'); + + // animating is now false + t.isAnimating = false; + + // trigger public event initComplete + t.$obj.trigger('initComplete.cbp'); + }); + }, + + + /** + * Add resize event when browser width changes + */ + resizeEvent: function() { + var t = this; + + CubePortfolio.private.resize.initEvent({ + instance: t, + fn: function() { + // used by wp fullWidth force option + t.triggerEvent('beforeResizeGrid'); + + var newWidth = t.$obj.outerWidth(); + + if (newWidth && (t.width !== newWidth)) { + // update the current grid width + t.width = newWidth; + + if (t.options.gridAdjustment === 'alignCenter') { + t.wrapper[0].style.maxWidth = ''; + } + + // reposition the blocks with gridAdjustment set to true + t.layoutAndAdjustment(); + + t.triggerEvent('resizeGrid'); + } + + t.triggerEvent('resizeWindow'); + } + }); + }, + + + gridAdjust: function() { + var t = this; + + // if responsive + if (t.options.gridAdjustment === 'responsive') { + t.responsiveLayout(); + } else { + // reset the style attribute for all blocks so I can read a new width & height + // for the current grid width. This is usefull for the styles defined in css + // to create a custom responsive system. + // Note: reset height if it was set for addHeightToBlocks + t.blocks.removeAttr('style'); + + t.blocks.each(function(index, el) { + var data = $(el).data('cbp'), + bound = el.getBoundingClientRect(), + width = t.columnWidthTruncate(bound.right - bound.left), + height = Math.round(bound.bottom - bound.top); + + data.height = height; + data.heightAndGap = height + t.options.gapHorizontal; + + data.width = width; + data.widthAndGap = width + t.options.gapVertical; + }); + + t.widthAvailable = t.width + t.options.gapVertical; + } + + // used by slider layoutMode + t.triggerEvent('gridAdjust'); + }, + + + layoutAndAdjustment: function(updateWidth) { + var t = this; + + if (updateWidth) { + // update the current grid width + t.width = t.$obj.outerWidth(); + } + + t.gridAdjust(); + + t.layout(); + }, + + + /** + * Build the layout + */ + layout: function() { + var t = this; + + t.computeBlocks(t.filterConcat(t.defaultFilter)); + + if (t.options.layoutMode === 'slider') { + t.sliderLayoutReset(); + t.sliderLayout(); + } else { + t.mosaicLayoutReset(); + t.mosaicLayout(); + } + + // positionate the blocks + t.blocksOff.addClass('cbp-item-off'); + t.blocksOn.removeClass('cbp-item-off') + .each(function(index, el) { + var data = $(el).data('cbp'); + + data.left = data.leftNew; + data.top = data.topNew; + + el.style.left = data.left + 'px'; + el.style.top = data.top + 'px'; + }); + + // resize main container height + t.resizeMainContainer(); + }, + + + computeFilter: function(expression) { + var t = this; + + t.computeBlocks(expression); + + t.mosaicLayoutReset(); + t.mosaicLayout(); + + // filter call layout + // this method is override by animation{PluginName} + t.filterLayout(); + }, + + + /** + * Default filter layout if nothing overrides + */ + filterLayout: function() { + var t = this; + + t.blocksOff.addClass('cbp-item-off'); + + t.blocksOn.removeClass('cbp-item-off') + .each(function(index, el) { + var data = $(el).data('cbp'); + + data.left = data.leftNew; + data.top = data.topNew; + + el.style.left = data.left + 'px'; + el.style.top = data.top + 'px'; + }); + + // resize main container height + t.resizeMainContainer(); + + t.filterFinish(); + }, + + + /** + * Trigger when a filter is finished + */ + filterFinish: function() { + var t = this; + + t.isAnimating = false; + + t.$obj.trigger('filterComplete.cbp'); + t.triggerEvent('filterFinish'); + }, + + + computeBlocks: function(expression) { + var t = this; + + // blocks that are visible before applying the filter + t.blocksOnInitial = t.blocksOn; + + // blocks visible after applying the filter + t.blocksOn = t.blocks.filter(expression); + + // blocks off after applying the filter + t.blocksOff = t.blocks.not(expression); + + t.triggerEvent('computeBlocksFinish', expression); + }, + + + /** + * Make this plugin responsive + */ + responsiveLayout: function() { + var t = this; + + // calculate numbers of cols + t.cols = t[($.isArray(t.options.mediaQueries) ? 'getColumnsBreakpoints' : 'getColumnsAuto')](); + + t.columnWidth = t.columnWidthTruncate((t.width + t.options.gapVertical) / t.cols); + + t.widthAvailable = t.columnWidth * t.cols; + + if (t.options.layoutMode === 'mosaic') { + t.getMosaicWidthReference(); + } + + t.blocks.each(function(index, el) { + var data = $(el).data('cbp'), + cols = 1, // grid & slider layoutMode must be 1 + width; + + if (t.options.layoutMode === 'mosaic') { + cols = t.getColsMosaic(data.widthInitial); + } + + width = t.columnWidth * cols - t.options.gapVertical; + + el.style.width = width + 'px'; + data.width = width; + data.widthAndGap = width + t.options.gapVertical; + + // reset height if it was set for addHeightToBlocks + el.style.height = ''; + }); + + var imgs = []; + + t.blocks.each(function(index, el) { + $.each($(el).find('img').filter('[width][height]'), function(index, el) { + var width = 0; + + $(el).parentsUntil('.cbp-item').each(function(index, el) { + var currentWidth = $(el).width(); + + if (currentWidth > 0) { + width = currentWidth; + return false; + } + }); + + var imgWidth = parseInt(el.getAttribute('width'), 10); + var imgHeight = parseInt(el.getAttribute('height'), 10); + var ratio = parseFloat((imgWidth / imgHeight).toFixed(10)); + + imgs.push({ + el: el, + width: width, + height: Math.round(width / ratio), + }); + }); + }); + + $.each(imgs, function(index, item) { + item.el.width = item.width; + item.el.height = item.height; + item.el.style.width = item.width + 'px'; + item.el.style.height = item.height + 'px'; + }); + + t.blocks.each(function(index, el) { + var data = $(el).data('cbp'), + bound = el.getBoundingClientRect(), + height = Math.round(bound.bottom - bound.top); + + data.height = height; + data.heightAndGap = height + t.options.gapHorizontal; + }); + }, + + + getMosaicWidthReference: function() { + var t = this, + arrWidth = []; + + t.blocks.each(function(index, el) { + var data = $(el).data('cbp'); + arrWidth.push(data.widthInitial); + }); + + arrWidth.sort(function(a, b) { + return a - b; + }); + + if (arrWidth[0]) { + t.mosaicWidthReference = arrWidth[0]; + } else { + t.mosaicWidthReference = t.columnWidth; + } + }, + + + getColsMosaic: function(widthInitial) { + var t = this; + + if (widthInitial === t.width) { + return t.cols; + } + + var ratio = widthInitial / t.mosaicWidthReference; + + if (ratio % 1 >= 0.79) { + ratio = Math.ceil(ratio); + } else { + ratio = Math.floor(ratio); + } + + return Math.min(Math.max(ratio, 1), t.cols); + }, + + + /** + * Get numbers of columns when t.options.mediaQueries is not an array + */ + getColumnsAuto: function() { + var t = this; + + if (t.blocks.length === 0) { + return 1; + } + + var columnWidth = t.blocks.first().data('cbp').widthInitial + t.options.gapVertical; + + return Math.max(Math.round(t.width / columnWidth), 1); + }, + + + /** + * Get numbers of columns if t.options.mediaQueries is an array + */ + getColumnsBreakpoints: function() { + var t = this, + gridWidth = t.width, + mediaQuery; + + $.each(t.options.mediaQueries, function(index, obj) { + if (gridWidth >= obj.width) { + mediaQuery = obj; + return false; + } + }); + + if (!mediaQuery) { + mediaQuery = t.options.mediaQueries[t.options.mediaQueries.length - 1]; + } + + // the columns breakpoints is triggered + t.triggerEvent('onMediaQueries', mediaQuery.options); + + return mediaQuery.cols; + }, + + + /** + * Defines how the columns dimension & position (width, left) will be truncated + * + * If you use `Math.*` there could be some issues with the items on the right side + * that can have some pixels hidden(1 or 2, depends on the number of columns) + * but this is a known limitation. + * + * If you don't use the built-in captions effects (overlay at hover over an item) returning + * the possibly floated values may be a solution for the pixels hidden on the right side. + * + * The column width must be an integer because browsers have some visual issues + * with transform properties for caption effects. + * + * The initial behaviour was return Math.floor + * + */ + columnWidthTruncate: function(value) { + return Math.floor(value); + }, + + + /** + * Resize main container vertically + */ + resizeMainContainer: function() { + var t = this, + height = Math.max(t.freeSpaces.slice(-1)[0].topStart - t.options.gapHorizontal, 0), + maxWidth; + + // set max-width to center the grid if I need to + if (t.options.gridAdjustment === 'alignCenter') { + maxWidth = 0; + + t.blocksOn.each(function(index, el) { + var data = $(el).data('cbp'), + rightEdge = data.left + data.width; + + if (rightEdge > maxWidth) { + maxWidth = rightEdge; + } + }); + + t.wrapper[0].style.maxWidth = maxWidth + 'px'; + } + + // set container height for `overflow: hidden` to be applied + if (height === t.height) { + t.triggerEvent('resizeMainContainer'); + return; + } + + t.obj.style.height = height + 'px'; + + // if resizeMainContainer is called for the first time skip this event trigger + if (t.height !== undefined) { + if (CubePortfolio.private.modernBrowser) { + t.$obj.one(CubePortfolio.private.transitionend, function() { + t.$obj.trigger('pluginResize.cbp'); + }); + } else { + t.$obj.trigger('pluginResize.cbp'); + } + } + + t.height = height; + + t.triggerEvent('resizeMainContainer'); + }, + + + filterConcat: function(filter) { + return filter.replace(/\|/gi, ''); + }, + + + pushQueue: function(name, deferred) { + var t = this; + + t.queue[name] = t.queue[name] || []; + t.queue[name].push(deferred); + }, + + + runQueue: function(name, fn) { + var t = this, + queue = t.queue[name] || []; + + $.when.apply($, queue).then($.proxy(fn, t)); + }, + + + clearQueue: function(name) { + var t = this; + + t.queue[name] = []; + }, + + + /** + * Register event + */ + registerEvent: function(name, callbackFunction, oneTime) { + var t = this; + + if (!t.registeredEvents[name]) { + t.registeredEvents[name] = []; + } + + t.registeredEvents[name].push({ + func: callbackFunction, + oneTime: oneTime || false + }); + }, + + + /** + * Trigger event + */ + triggerEvent: function(name, param) { + var t = this, + i, len; + + if (t.registeredEvents[name]) { + for (i = 0, len = t.registeredEvents[name].length; i < len; i++) { + t.registeredEvents[name][i].func.call(t, param); + + if (t.registeredEvents[name][i].oneTime) { + t.registeredEvents[name].splice(i, 1); + // function splice change the t.registeredEvents[name] array + // if event is one time you must set the i to the same value + // next time and set the length lower + i--; + len--; + } + } + } + }, + + + addItems: function(items, callback, position) { + var t = this; + + // wrap .cbp-item-wrap div inside .cbp-item + t.wrapInner(items, 'cbp-item-wrapper'); + + t.$ul[position](items.addClass('cbp-item-loading').css({ + top: '100%', + left: 0 + })); + + if (CubePortfolio.private.modernBrowser) { + items.last().one(CubePortfolio.private.animationend, function() { + t.addItemsFinish(items, callback); + }); + } else { + t.addItemsFinish(items, callback); // @todo - on ie8 & ie9 callback triggers to early + } + + t.loadImages(items, function() { + t.$obj.addClass('cbp-updateItems'); + + if (position === 'append') { + // push to data values of items + t.storeData(items, t.blocks.length); + $.merge(t.blocks, items); + } else { + // push to data values of items + t.storeData(items); + + var itemsLen = items.length; + t.blocks.each(function(index, el) { + $(el).data('cbp').index = itemsLen + index; + }); + + // push the new items to t.blocks + t.blocks = $.merge(items, t.blocks); + } + + t.triggerEvent('addItemsToDOM', items); + + // trigger a sort before layout + t.triggerEvent('triggerSort'); + + t.layoutAndAdjustment(true); + + // if show count was actived, call show count function again + if (t.elems) { + CubePortfolio.public.showCounter.call(t.obj, t.elems); + } + }); + }, + + + addItemsFinish: function(items, callback) { + var t = this; + + t.isAnimating = false; + + t.$obj.removeClass('cbp-updateItems'); + items.removeClass('cbp-item-loading'); + + if ($.isFunction(callback)) { + callback.call(t, items); + } + + // trigger public event onAfterLoadMore + t.$obj.trigger('onAfterLoadMore.cbp', [items]); + }, + + removeItems: function(items, callback) { + var t = this; + + t.$obj.addClass('cbp-updateItems'); + + if (CubePortfolio.private.modernBrowser) { + items.last().one(CubePortfolio.private.animationend, function() { + t.removeItemsFinish(items, callback); + }); + } else { + t.removeItemsFinish(items, callback); // @todo - on ie8 & ie9 callback triggers to early + } + + items.each(function(index, el) { + t.blocks.each(function(index2, el2) { + if (el === el2) { + var removeEl = $(el2); + + // remove element from blocks + t.blocks.splice(index2, 1); + + if (CubePortfolio.private.modernBrowser) { + removeEl.one(CubePortfolio.private.animationend, function() { + removeEl.remove(); + }); + removeEl.addClass('cbp-removeItem'); + } else { + removeEl.remove(); + } + } + }); + }); + + t.blocks.each(function(index, el) { + $(el).data('cbp').index = index; + }); + + // trigger a sort before layout + t.triggerEvent('triggerSort'); + + t.layoutAndAdjustment(true); + + // if show count was actived, call show count function again + if (t.elems) { + CubePortfolio.public.showCounter.call(t.obj, t.elems); + } + }, + + + removeItemsFinish: function(items, callback) { + var t = this; + + t.isAnimating = false; + + t.$obj.removeClass('cbp-updateItems'); + + if ($.isFunction(callback)) { + callback.call(t, items); + } + }, + }); + + + /** + * jQuery plugin initializer + */ + $.fn.cubeportfolio = function(method, options, callback) { + return this.each(function() { + if (typeof method === 'object' || !method) { + return CubePortfolio.public.init.call(this, method, options); + } else if (CubePortfolio.public[method]) { + return CubePortfolio.public[method].call(this, options, callback); + } + + throw new Error('Method ' + method + ' does not exist on jquery.cubeportfolio.js'); + }); + }; + + CubePortfolio.plugins = {}; + $.fn.cubeportfolio.constructor = CubePortfolio; +})(jQuery, window, document); + +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + $.extend(CubePortfolio.prototype, { + mosaicLayoutReset: function() { + var t = this; + + // flag to be set after the blocks sorting is done + t.blocksAreSorted = false; + + // when I start the layout again all blocks must not be positionated + // reset height if it was set for addHeightToBlocks + t.blocksOn.each(function(index, el) { + $(el).data('cbp').pack = false; + + if (t.options.sortByDimension) { + el.style.height = ''; + } + }); + + // array of objects where I keep the spaces available in the grid + t.freeSpaces = [{ + leftStart: 0, + leftEnd: t.widthAvailable, + topStart: 0, + topEnd: Math.pow(2, 18) // @todo - optimize + }]; + }, + + + mosaicLayout: function() { + var t = this; + + for (var i = 0, blocksLen = t.blocksOn.length; i < blocksLen; i++) { + var spaceIndexAndBlock = t.getSpaceIndexAndBlock(); + + // if space or block are null then start sorting + if (spaceIndexAndBlock === null) { + t.mosaicLayoutReset(); + + // sort blocks to prevent gaps set to true + t.blocksAreSorted = true; + + // sort by the longer width first, followed by a comparison of the shorter height in descending order + t.sortBlocks(t.blocksOn, 'widthAndGap', 'heightAndGap', true); + + // after the sort is finished start the layout again + t.mosaicLayout(); + + return; + } + + t.generateF1F2(spaceIndexAndBlock.spaceIndex, spaceIndexAndBlock.dataBlock); + + t.generateG1G2G3G4(spaceIndexAndBlock.dataBlock); + + t.cleanFreeSpaces(); + + t.addHeightToBlocks(); + } + + // sort blocksOn from top to bottom to add properly delay from animationType and displayType options + if (t.blocksAreSorted) { + t.sortBlocks(t.blocksOn, 'topNew', 'leftNew'); + } + }, + + + /** + * Chose from freeSpaces the best space available + * Find block by verifying if it can fit in bestSpace(top-left space available) + * If block doesn't fit in the first space available & t.options.sortByDimension + * is set to true then sort the blocks and start the layout once again + * Decide the free rectangle Fi from F to pack the rectangle R into. + */ + getSpaceIndexAndBlock: function() { + var t = this, + spaceIndexAndBlock = null; + + $.each(t.freeSpaces, function(index1, space) { + var widthSpace = space.leftEnd - space.leftStart, + heightSpace = space.topEnd - space.topStart; + + t.blocksOn.each(function(index2, block) { + var data = $(block).data('cbp'); + + if (data.pack === true) { + return; + } + + if (data.widthAndGap <= widthSpace && data.heightAndGap <= heightSpace) { + // now the rectagle can be positioned + data.pack = true; + + spaceIndexAndBlock = { + spaceIndex: index1, + dataBlock: data + }; + + data.leftNew = space.leftStart; + data.topNew = space.topStart; + + // if the block is founded => return from this loop + return false; + } + }); + + // if first space don't have a block and sortByDimension is true => return from loop + if (!t.blocksAreSorted && t.options.sortByDimension && index1 > 0) { + spaceIndexAndBlock = null; + + return false; + } + + // if space & block is founded => return from loop + if (spaceIndexAndBlock !== null) { + return false; + } + }); + + return spaceIndexAndBlock; + }, + + + /** + * Use the MAXRECTS split scheme to subdivide Fi(space) into F1 and F2 and + * then remove that space from spaces + * Insert F1 & F2 in F in place of Fi + */ + generateF1F2: function(spaceIndex, block) { + var t = this, + space = t.freeSpaces[spaceIndex]; + + var F1 = { + leftStart: space.leftStart + block.widthAndGap, + leftEnd: space.leftEnd, + topStart: space.topStart, + topEnd: space.topEnd + }; + + var F2 = { + leftStart: space.leftStart, + leftEnd: space.leftEnd, + topStart: space.topStart + block.heightAndGap, + topEnd: space.topEnd + }; + + // remove Fi from F + t.freeSpaces.splice(spaceIndex, 1); + + if (F1.leftEnd > F1.leftStart && F1.topEnd > F1.topStart) { + t.freeSpaces.splice(spaceIndex, 0, F1); + spaceIndex++; + } + + if (F2.leftEnd > F2.leftStart && F2.topEnd > F2.topStart) { + t.freeSpaces.splice(spaceIndex, 0, F2); + } + }, + + + /** + * Generate G1, G2, G3, G4 from intersaction of t.freeSpaces with block + */ + generateG1G2G3G4: function(block) { + var t = this; + + var spaces = []; + + $.each(t.freeSpaces, function(index, space) { + var intersectSpace = t.intersectSpaces(space, block); + + // if block & space are the same push space in spaces and return + if (intersectSpace === null) { + spaces.push(space); + return; + } + + t.generateG1(space, intersectSpace, spaces); + t.generateG2(space, intersectSpace, spaces); + t.generateG3(space, intersectSpace, spaces); + t.generateG4(space, intersectSpace, spaces); + }); + + t.freeSpaces = spaces; + }, + + + /** + * Return the intersected rectagle of Fi and block + * If the two spaces don't intersect or are the same return null + */ + intersectSpaces: function(space1, block) { + var t = this, + space2 = { + leftStart: block.leftNew, + leftEnd: block.leftNew + block.widthAndGap, + topStart: block.topNew, + topEnd: block.topNew + block.heightAndGap, + }; + + if (space1.leftStart === space2.leftStart && + space1.leftEnd === space2.leftEnd && + space1.topStart === space2.topStart && + space1.topEnd === space2.topEnd) { + return null; + } + + var leftStart = Math.max(space1.leftStart, space2.leftStart), + leftEnd = Math.min(space1.leftEnd, space2.leftEnd), + topStart = Math.max(space1.topStart, space2.topStart), + topEnd = Math.min(space1.topEnd, space2.topEnd); + + if (leftEnd <= leftStart || topEnd <= topStart) { + return null; + } + + return { + leftStart: leftStart, + leftEnd: leftEnd, + topStart: topStart, + topEnd: topEnd + }; + }, + + + /** + * The top subdivide space + */ + generateG1: function(space, intersectSpace, spaces) { + if (space.topStart === intersectSpace.topStart) { + return; + } + + spaces.push({ + leftStart: space.leftStart, + leftEnd: space.leftEnd, + topStart: space.topStart, + topEnd: intersectSpace.topStart + }); + }, + + + /** + * The right subdivide space + */ + generateG2: function(space, intersectSpace, spaces) { + if (space.leftEnd === intersectSpace.leftEnd) { + return; + } + + spaces.push({ + leftStart: intersectSpace.leftEnd, + leftEnd: space.leftEnd, + topStart: space.topStart, + topEnd: space.topEnd + }); + }, + + + /** + * The bottom subdivide space + */ + generateG3: function(space, intersectSpace, spaces) { + if (space.topEnd === intersectSpace.topEnd) { + return; + } + + spaces.push({ + leftStart: space.leftStart, + leftEnd: space.leftEnd, + topStart: intersectSpace.topEnd, + topEnd: space.topEnd + }); + }, + + + /** + * The left subdivide space + */ + generateG4: function(space, intersectSpace, spaces) { + if (space.leftStart === intersectSpace.leftStart) { + return; + } + + spaces.push({ + leftStart: space.leftStart, + leftEnd: intersectSpace.leftStart, + topStart: space.topStart, + topEnd: space.topEnd + }); + }, + + + /** + * For every Fi check if is another Fj so Fj contains Fi + * @todo - refactor + */ + cleanFreeSpaces: function() { + var t = this; + + // sort space from top to bottom and left to right + t.freeSpaces.sort(function(space1, space2) { + if (space1.topStart > space2.topStart) { + return 1; + } else if (space1.topStart < space2.topStart) { + return -1; + } else { + if (space1.leftStart > space2.leftStart) { + return 1; + } else if (space1.leftStart < space2.leftStart) { + return -1; + } else { + return 0; + } + } + }); + + t.correctSubPixelValues(); + + t.removeNonMaximalFreeSpaces(); + }, + + + /** + * If topStart values for spaces are <= 1px then align those spaces + */ + correctSubPixelValues: function() { + var t = this, + i, len, diff, space1, space2; + + for (i = 0, len = t.freeSpaces.length - 1; i < len; i++) { + space1 = t.freeSpaces[i]; + space2 = t.freeSpaces[i + 1]; + + if ((space2.topStart - space1.topStart) <= 1) { + space2.topStart = space1.topStart; + } + } + }, + + + /** + * Remove spaces that are not maximal + * If Fi contains Fj then remove Fj from F + */ + removeNonMaximalFreeSpaces: function() { + var t = this; + + t.uniqueFreeSpaces(); + + t.freeSpaces = $.map(t.freeSpaces, function(space1, index1) { + $.each(t.freeSpaces, function(index2, space2) { + // don't compare the same free spaces + if (index1 === index2) { + return; + } + + if (space2.leftStart <= space1.leftStart && + space2.leftEnd >= space1.leftEnd && + space2.topStart <= space1.topStart && + space2.topEnd >= space1.topEnd) { + + space1 = null; + return false; + } + }); + + return space1; + }); + }, + + + /** + * Remove duplicates spaces from freeSpaces + */ + uniqueFreeSpaces: function() { + var t = this, + result = []; + + $.each(t.freeSpaces, function(index1, space1) { + $.each(result, function(index2, space2) { + if (space2.leftStart === space1.leftStart && + space2.leftEnd === space1.leftEnd && + space2.topStart === space1.topStart && + space2.topEnd === space1.topEnd) { + + space1 = null; + return false; + } + }); + + if (space1 !== null) { + result.push(space1); + } + }); + + t.freeSpaces = result; + }, + + + /** + * If freeSpaces arrray has only one space and that space overlap the + * height of the bottom blocks with 1px cut those blocks + */ + addHeightToBlocks: function() { + var t = this; + + $.each(t.freeSpaces, function(indexSpace, space) { + t.blocksOn.each(function(indexBlock, block) { + var data = $(block).data('cbp'); + + if (data.pack !== true) { + return; + } + + if (!t.intersectSpaces(space, data)) { + return; + } + + var diff = space.topStart - data.topNew - data.heightAndGap; + + if (diff === -1) { + block.style.height = (data.height - 1) + 'px'; + } + }); + }); + }, + + /** + * Generic sort blocks + */ + sortBlocks: function(blocks, compare1, compare2, order) { + compare2 = (compare2 === undefined)? 'leftNew' : compare2; + order = (order === undefined)? 1 : -1; + + blocks.sort(function(block1, block2) { + var data1 = $(block1).data('cbp'), + data2 = $(block2).data('cbp'); + + if (data1[compare1] > data2[compare1]) { + return order; + } else if (data1[compare1] < data2[compare1]) { + return -order; + } else { + if (data1[compare2] > data2[compare2]) { + return order; + } else if (data1[compare2] < data2[compare2]) { + return -order; + } else { + // order asc by index + if (data1.index > data2.index) { + return order; + } else if (data1.index < data2.index) { + return -order; + } + } + } + }); + } + }); +})(jQuery, window, document); +// Plugin default options +jQuery.fn.cubeportfolio.options = { + /** + * Define the wrapper for filters + * Values: strings that represent the elements in the document (DOM selector). + */ + filters: '', + + + /** + * Define the search input element + * Values: strings that represent the element in the document (DOM selector). + */ + search: '', + + /** + * Layout Mode for this instance + * Values: 'grid', 'mosaic' or 'slider' + */ + layoutMode: 'grid', + + /** + * Sort the items by dimension (bigger to smallest) if there are gaps in grid + * Option available only for `layoutMode: 'mosaic'` + * Values: true or false + */ + sortByDimension: false, + + /** + * Mouse and touch drag support + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + drag: true, + + /** + * Autoplay the slider + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + auto: false, + + /** + * Autoplay interval timeout. Time is set in milisecconds + * 1000 milliseconds equals 1 second. + * Option available only for `layoutMode: 'slider'` + * Values: only integers (ex: 1000, 2000, 5000) + */ + autoTimeout: 5000, + + /** + * Stops autoplay when user hover the slider + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + autoPauseOnHover: true, + + /** + * Show `next` and `prev` buttons for slider + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + showNavigation: true, + + /** + * Show pagination for slider + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + showPagination: true, + + /** + * Enable slide to first item (last item) + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + rewindNav: true, + + /** + * Scroll by page and not by item. This option affect next/prev buttons and drag support + * Option available only for `layoutMode: 'slider'` + * Values: true or false + */ + scrollByPage: false, + + /** + * Default filter for plugin + * Option available only for `layoutMode: 'grid'` + * Values: strings that represent the filter name(ex: *, .logo, .web-design, .design) + */ + defaultFilter: '*', + + /** + * Enable / disable the deeplinking feature when you click on filters + * Option available only for `layoutMode: 'grid'` + * Values: true or false + */ + filterDeeplinking: false, + + /** + * Defines which animation to use for items that will be shown or hidden after a filter has been activated. + * Option available only for `layoutMode: 'grid'` + * The plugin use the best browser features available (css3 transitions and transform, GPU acceleration). + * Values: - fadeOut + * - quicksand + * - bounceLeft + * - bounceTop + * - bounceBottom + * - moveLeft + * - slideLeft + * - fadeOutTop + * - sequentially + * - skew + * - slideDelay + * - rotateSides + * - flipOutDelay + * - flipOut + * - unfold + * - foldLeft + * - scaleDown + * - scaleSides + * - frontRow + * - flipBottom + * - rotateRoom + */ + animationType: 'fadeOut', + + /** + * Adjust the layout grid + * Values: - default (no adjustment applied) + * - alignCenter (align the grid on center of the page) + * - responsive (use a fluid algorithm to resize the grid) + */ + gridAdjustment: 'responsive', + + /** + * Define `media queries` for columns layout. + * Format: [{width: a, cols: d}, {width: b, cols: e}, {width: c, cols: f}], + * where a, b, c are the grid width and d, e, f are the columns displayed. + * e.g. [{width: 1100, cols: 4}, {width: 800, cols: 3}, {width: 480, cols: 2}] means + * if (gridWidth >= 1100) => show 4 columns, + * if (gridWidth >= 800 && gridWidth < 1100) => show 3 columns, + * if (gridWidth >= 480 && gridWidth < 800) => show 2 columns, + * if (gridWidth < 480) => show 2 columns + * Keep in mind that a > b > c + * This option is available only when `gridAdjustment: 'responsive'` + * Values: - array of objects of format: [{width: a, cols: d}, {width: b, cols: e}] + * - you can define as many objects as you want + * - if this option is `false` Cube Portfolio will adjust the items + * width automatically (default option for backward compatibility) + */ + mediaQueries: false, + + /** + * Horizontal gap between items + * Values: only integers (ex: 1, 5, 10) + */ + gapHorizontal: 10, + + /** + * Vertical gap between items + * Values: only integers (ex: 1, 5, 10) + */ + gapVertical: 10, + + /** + * Caption - the overlay that is shown when you put the mouse over an item + * NOTE: If you don't want to have captions set this option to an empty string ( caption: '') + * Values: - pushTop + * - pushDown + * - revealBottom + * - revealTop + * - revealLeft + * - moveRight + * - overlayBottom + * - overlayBottomPush + * - overlayBottomReveal + * - overlayBottomAlong + * - overlayRightAlong + * - minimal + * - fadeIn + * - zoom + * - opacity + * - '' + */ + caption: 'pushTop', + + /** + * The plugin will display his content based on the following values. + * Values: - default (the content will be displayed without any animation) + * - fadeIn (the plugin will fully preload the images before displaying the items with a fadeIn effect) + * - fadeInToTop (the plugin will fully preload the images before displaying the items with a fadeIn effect from bottom to top) + * - sequentially (the plugin will fully preload the images before displaying the items with a sequentially effect) + * - bottomToTop (the plugin will fully preload the images before displaying the items with an animation from bottom to top) + */ + displayType: 'fadeIn', + + /** + * Defines the speed of displaying the items (when `displayType: 'default'` this option will have no effect) + * Values: only integers, values in ms (ex: 200, 300, 500) + */ + displayTypeSpeed: 400, + + /** + * This is used to define any clickable elements you wish to use to trigger lightbox popup on click. + * Values: strings that represent the elements in the document (DOM selector) + */ + lightboxDelegate: '.cbp-lightbox', + + /** + * Enable / disable gallery mode + * Values: true or false + */ + lightboxGallery: true, + + /** + * Attribute of the delegate item that contains caption for lightbox + * Values: html atributte + */ + lightboxTitleSrc: 'data-title', + + /** + * Markup of the lightbox counter + * Values: html markup + */ + lightboxCounter: '
{{current}} of {{total}}
', + + /** + * This is used to define any clickable elements you wish to use to trigger singlePage popup on click. + * Values: strings that represent the elements in the document (DOM selector) + */ + singlePageDelegate: '.cbp-singlePage', + + /** + * Enable / disable the deeplinking feature for singlePage popup + * Values: true or false + */ + singlePageDeeplinking: true, + + /** + * Enable / disable the sticky navigation for singlePage popup + * Values: true or false + */ + singlePageStickyNavigation: true, + + /** + * Markup of the singlePage counter + * Values: html markup + */ + singlePageCounter: '
{{current}} of {{total}}
', + + /** + * Defines which animation to use when singlePage appear + * Values: - left + * - fade + * - right + */ + singlePageAnimation: 'left', + + /** + * Use this callback to update singlePage content. + * The callback will trigger after the singlePage popup is open. + * Values: function + */ + singlePageCallback: null, + + /** + * This is used to define any clickable elements you wish to use to trigger singlePageInline on click. + * Values: strings that represent the elements in the document (DOM selector) + */ + singlePageInlineDelegate: '.cbp-singlePageInline', + + /** + * Enable / disable the deeplinking feature for singlePageInline + * Values: true or false + */ + singlePageInlineDeeplinking: false, + + /** + * This is used to define the position of singlePageInline block + * Values: - above ( above current element ) + * - below ( below current elemnet) + * - top ( positon top ) + * - bottom ( positon bottom ) + */ + singlePageInlinePosition: 'top', + + /** + * Push the open panel in focus and at close go back to the former stage + * Values: true or false + */ + singlePageInlineInFocus: true, + + /** + * Use this callback to update singlePageInline content. + * The callback will trigger after the singlePageInline is open. + * Values: function + */ + singlePageInlineCallback: null, + + /** + * Used by the plugins registered to set local options for the current instance + * Values: object + */ + plugins: {}, +}; +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + var $window = $(window); + + CubePortfolio.private = { + publicEvents: function(eventName, time, beforeEventCallback) { + var t = this; + + // array of objects: {instance: instance, fn: fn} + t.events = []; + + t.initEvent = function(obj) { + if (t.events.length === 0) { + t.scrollEvent(); + } + + t.events.push(obj); + }; + + t.destroyEvent = function(instance) { + t.events = $.map(t.events, function(val, index) { + if (val.instance !== instance) { + return val; + } + }); + + if (t.events.length === 0) { + // remove scroll event + $window.off(eventName); + } + }; + + t.scrollEvent = function() { + var timeout; + + // resize + $window.on(eventName, function() { + clearTimeout(timeout); + + timeout = setTimeout(function() { + if ($.isFunction(beforeEventCallback) && beforeEventCallback.call(t)) { + return; + } + + $.each(t.events, function(index, val) { + val.fn.call(val.instance); + }); + }, time); + }); + }; + }, + + /** + * Check if cubeportfolio instance exists on current element + */ + checkInstance: function(method) { + var t = $.data(this, 'cubeportfolio'); + + if (!t) { + throw new Error('cubeportfolio is not initialized. Initialize it before calling ' + method + ' method!'); + } + + t.triggerEvent('publicMethod'); + + return t; + }, + + /** + * Get info about client browser + */ + browserInfo: function() { + var t = CubePortfolio.private, + appVersion = navigator.appVersion, + transition, animation, perspective; + + if (appVersion.indexOf('MSIE 8.') !== -1) { // ie8 + t.browser = 'ie8'; + } else if (appVersion.indexOf('MSIE 9.') !== -1) { // ie9 + t.browser = 'ie9'; + } else if (appVersion.indexOf('MSIE 10.') !== -1) { // ie10 + t.browser = 'ie10'; + } else if (window.ActiveXObject || 'ActiveXObject' in window) { // ie11 + t.browser = 'ie11'; + } else if ((/android/gi).test(appVersion)) { // android + t.browser = 'android'; + } else if ((/iphone|ipad|ipod/gi).test(appVersion)) { // ios + t.browser = 'ios'; + } else if ((/chrome/gi).test(appVersion)) { + t.browser = 'chrome'; + } else { + t.browser = ''; + } + + // check if perspective is available + perspective = t.styleSupport('perspective'); + + // if perspective is not available => no modern browser + if (typeof perspective === undefined) { + return; + } + + transition = t.styleSupport('transition'); + + t.transitionend = { + WebkitTransition: 'webkitTransitionEnd', + transition: 'transitionend' + }[transition]; + + animation = t.styleSupport('animation'); + + t.animationend = { + WebkitAnimation: 'webkitAnimationEnd', + animation: 'animationend' + }[animation]; + + t.animationDuration = { + WebkitAnimation: 'webkitAnimationDuration', + animation: 'animationDuration' + }[animation]; + + t.animationDelay = { + WebkitAnimation: 'webkitAnimationDelay', + animation: 'animationDelay' + }[animation]; + + t.transform = t.styleSupport('transform'); + + if (transition && animation && t.transform) { + t.modernBrowser = true; + } + }, + + + /** + * Feature testing for css3 + */ + styleSupport: function(prop) { + var supportedProp, + // capitalize first character of the prop to test vendor prefix + webkitProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1), + div = document.createElement('div'); + + // browser supports standard CSS property name + if (prop in div.style) { + supportedProp = prop; + } else if (webkitProp in div.style) { + supportedProp = webkitProp; + } + + // avoid memory leak in IE + div = null; + + return supportedProp; + }, + }; + + CubePortfolio.private.browserInfo(); + + CubePortfolio.private.resize = new CubePortfolio.private.publicEvents('resize.cbp', 50, function() { + if (window.innerHeight == screen.height) { + // this is fulll screen mode. don't need to trigger a resize + return true; + } + }); +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + CubePortfolio.public = { + + /* + * Init the plugin + */ + init: function(options, callback) { + new CubePortfolio(this, options, callback); + }, + + /* + * Destroy the plugin + */ + destroy: function(callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'destroy'); + + t.triggerEvent('beforeDestroy'); + + // remove data + $.removeData(this, 'cubeportfolio'); + + // remove data from blocks + t.blocks.removeData('cbp'); + + // remove loading class and .cbp on container + t.$obj.removeClass('cbp-ready').removeAttr('style'); + + // remove class from ul + t.$ul.removeClass('cbp-wrapper'); + + // remove resize event + CubePortfolio.private.resize.destroyEvent(t); + + t.$obj.off('.cbp'); + + // reset blocks + t.blocks.removeClass('cbp-item-off').removeAttr('style'); + + t.blocks.find('.cbp-item-wrapper').each(function(index, el) { + var elem = $(el), + children = elem.children(); + + if (children.length) { + children.unwrap(); + } else { + elem.remove(); + } + }); + + if (t.destroySlider) { + t.destroySlider(); + } + + // remove .cbp-wrapper-outer + t.$ul.unwrap(); + + // remove .cbp-wrapper + if (t.addedWrapp) { + t.blocks.unwrap(); + } + + if (t.blocks.length === 0) { + t.$ul.remove(); + } + + $.each(t.plugins, function(key, value) { + if (typeof value.destroy === 'function') { + value.destroy(); + } + }); + + if ($.isFunction(callback)) { + callback.call(t); + } + + t.triggerEvent('afterDestroy'); + }, + + /* + * Filter the plugin by filterName + */ + filter: function(param, callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'filter'), + expression; + + if (t.isAnimating) { + return; + } + + t.isAnimating = true; + + // register callback function + if ($.isFunction(callback)) { + t.registerEvent('filterFinish', callback, true); + } + + if ($.isFunction(param)) { + expression = param.call(t, t.blocks); + + if(expression === undefined) { + throw new Error('When you call cubeportfolio API `filter` method with a param of type function you must return the blocks that will be visible.'); + } + } else { + if (t.options.filterDeeplinking) { + var url = location.href.replace(/#cbpf=(.*?)([#\?&]|$)/gi, ''); + location.href = url + '#cbpf=' + encodeURIComponent(param); + + if (t.singlePage && t.singlePage.url) { + t.singlePage.url = location.href; + } + } + + t.defaultFilter = param; + expression = t.filterConcat(t.defaultFilter); + } + + t.triggerEvent('filterStart', expression); + + if (t.singlePageInline && t.singlePageInline.isOpen) { + t.singlePageInline.close('promise', { + callback: function() { + t.computeFilter(expression); + } + }); + } else { + t.computeFilter(expression); + } + }, + + /* + * Show counter for filters + */ + showCounter: function(elems, callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'showCounter'); + + // register callback function + if ($.isFunction(callback)) { + t.registerEvent('showCounterFinish', callback, true); + } + + t.elems = elems; + + elems.each(function() { + var el = $(this); + + var count = t.blocks.filter(el.data('filter')).length; + el.find('.cbp-filter-counter').text(count); + }); + + t.triggerEvent('showCounterFinish', elems); + }, + + // alias for append public method + appendItems: function(els, callback) { + CubePortfolio.public.append.call(this, els, callback); + }, + + /* + * Append elements + */ + append: function(els, callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'append'), + items = $(els).filter('.cbp-item'); + + if (t.isAnimating || items.length < 1) { + if ($.isFunction(callback)) { + callback.call(t, items); + } + + return; + } + + t.isAnimating = true; + + if (t.singlePageInline && t.singlePageInline.isOpen) { + t.singlePageInline.close('promise', { + callback: function() { + t.addItems(items, callback, 'append'); + } + }); + } else { + t.addItems(items, callback, 'append'); + } + }, + + /* + * Prepend elements + */ + prepend: function(els, callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'prepend'), + items = $(els).filter('.cbp-item'); + + if (t.isAnimating || items.length < 1) { + if ($.isFunction(callback)) { + callback.call(t, items); + } + + return; + } + + t.isAnimating = true; + + if (t.singlePageInline && t.singlePageInline.isOpen) { + t.singlePageInline.close('promise', { + callback: function() { + t.addItems(items, callback, 'prepend'); + } + }); + } else { + t.addItems(items, callback, 'prepend'); + } + }, + + /* + * Remove elements from the instance and DOM. + * els - jQuery DOM Object + */ + remove: function(els, callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'remove'), + items = $(els).filter('.cbp-item'); + + if (t.isAnimating || items.length < 1) { + if ($.isFunction(callback)) { + callback.call(t, items); + } + + return; + } + + t.isAnimating = true; + + if (t.singlePageInline && t.singlePageInline.isOpen) { + t.singlePageInline.close('promise', { + callback: function() { + t.removeItems(items, callback); + } + }); + } else { + t.removeItems(items, callback); + } + }, + + /* + * Relayout all elements in the current grid. + * Useful when all/some items need to be laid out again, or grid width is changed. + */ + layout: function(callback) { + var t = CubePortfolio.private.checkInstance.call(this, 'layout'); + + // update the current grid width + t.width = t.$obj.outerWidth(); + + if (t.isAnimating || (t.width <= 0)) { + if ($.isFunction(callback)) { + callback.call(t); + } + + return; + } + + if (t.options.gridAdjustment === 'alignCenter') { + t.wrapper[0].style.maxWidth = ''; + } + + // store to data values of t.blocks + t.storeData(t.blocks); + + // reposition the blocks + t.layoutAndAdjustment(); + + if ($.isFunction(callback)) { + callback.call(t); + } + }, + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + // @todo - gandit cum ar trebui sa fac aici ca nu prea ar merge un plugin + // pt slider ca as extinde pe CubePortfolio.prototype la fiecare initializare + $.extend(CubePortfolio.prototype, { + updateSliderPagination: function() { + var t = this, + pages, + i; + + if (t.options.showPagination) { + // get number of pages + pages = Math.ceil(t.blocksOn.length / t.cols); + t.navPagination.empty(); + + for (i = pages - 1; i >= 0; i--) { + $('
', { + 'class': 'cbp-nav-pagination-item', + 'data-slider-action': 'jumpTo' + }).appendTo(t.navPagination); + } + + t.navPaginationItems = t.navPagination.children(); + } + + // enable disable the nav + t.enableDisableNavSlider(); + }, + + destroySlider: function() { + var t = this; + + if (t.options.layoutMode !== 'slider') { + return; + } + + t.$obj.removeClass('cbp-mode-slider'); + + t.$ul.removeAttr('style'); + + t.$ul.off('.cbp'); + + $(document).off('.cbp'); // @todo - don't interfer with the lightbox + + if (t.options.auto) { + t.stopSliderAuto(); + } + }, + + nextSlider: function(el) { + var t = this; + + if (t.isEndSlider()) { + if (t.isRewindNav()) { + t.sliderActive = 0; + } else { + return; + } + } else { + if (t.options.scrollByPage) { + t.sliderActive = Math.min(t.sliderActive + t.cols, t.blocksOn.length - t.cols); + } else { + t.sliderActive += 1; + } + } + + t.goToSlider(); + }, + + prevSlider: function(el) { + var t = this; + + if (t.isStartSlider()) { + if (t.isRewindNav()) { + t.sliderActive = t.blocksOn.length - t.cols; + } else { + return; + } + } else { + if (t.options.scrollByPage) { + t.sliderActive = Math.max(0, t.sliderActive - t.cols); + } else { + t.sliderActive -= 1; + } + } + + t.goToSlider(); + }, + + jumpToSlider: function(el) { + var t = this, + index = Math.min(el.index() * t.cols, t.blocksOn.length - t.cols); + + if (index === t.sliderActive) { + return; + } + + t.sliderActive = index; + + t.goToSlider(); + }, + + jumpDragToSlider: function(pos) { + var t = this, + jumpWidth, + offset, + condition, + index, + dragLeft = (pos > 0) ? true : false; + + if (t.options.scrollByPage) { + jumpWidth = t.cols * t.columnWidth; + offset = t.cols; + } else { + jumpWidth = t.columnWidth; + offset = 1; + } + + pos = Math.abs(pos); + index = Math.floor(pos / jumpWidth) * offset; + + if (pos % jumpWidth > 20) { + index += offset; + } + + if (dragLeft) { // drag to left + t.sliderActive = Math.min(t.sliderActive + index, t.blocksOn.length - t.cols); + } else { // drag to right + t.sliderActive = Math.max(0, t.sliderActive - index); + } + + t.goToSlider(); + }, + + isStartSlider: function() { + return this.sliderActive === 0; + }, + + isEndSlider: function() { + var t = this; + return (t.sliderActive + t.cols) > t.blocksOn.length - 1; + }, + + goToSlider: function() { + var t = this; + + // enable disable the nav + t.enableDisableNavSlider(); + + t.updateSliderPosition(); + }, + + startSliderAuto: function() { + var t = this; + + if (t.isDrag) { + t.stopSliderAuto(); + return; + } + + t.timeout = setTimeout(function() { + // go to next slide + t.nextSlider(); + + // start auto + t.startSliderAuto(); + + }, t.options.autoTimeout); + }, + + stopSliderAuto: function() { + clearTimeout(this.timeout); + }, + + enableDisableNavSlider: function() { + var t = this, + page, + method; + + if (!t.isRewindNav()) { + method = (t.isStartSlider()) ? 'addClass' : 'removeClass'; + t.navPrev[method]('cbp-nav-stop'); + + method = (t.isEndSlider()) ? 'addClass' : 'removeClass'; + t.navNext[method]('cbp-nav-stop'); + } + + if (t.options.showPagination) { + if (t.options.scrollByPage) { + page = Math.ceil(t.sliderActive / t.cols); + } else { + if (t.isEndSlider()) { + page = t.navPaginationItems.length - 1; + } else { + page = Math.floor(t.sliderActive / t.cols); + } + } + + // add class active on pagination's items + t.navPaginationItems.removeClass('cbp-nav-pagination-active') + .eq(page) + .addClass('cbp-nav-pagination-active'); + } + + if (t.customPagination) { + if (t.options.scrollByPage) { + page = Math.ceil(t.sliderActive / t.cols); + } else { + if (t.isEndSlider()) { + page = t.customPaginationItems.length - 1; + } else { + page = Math.floor(t.sliderActive / t.cols); + } + } + + // add class active on pagination's items + t.customPaginationItems.removeClass(t.customPaginationClass) + .eq(page) + .addClass(t.customPaginationClass); + } + }, + + /** + * If slider loop is enabled don't add classes to `next` and `prev` buttons + */ + isRewindNav: function() { + var t = this; + + if (!t.options.showNavigation) { + return true; + } + + if (t.blocksOn.length <= t.cols) { + return false; + } + + if (t.options.rewindNav) { + return true; + } + + return false; + }, + + sliderItemsLength: function() { + return this.blocksOn.length <= this.cols; + }, + + /** + * Arrange the items in a slider layout + */ + sliderLayout: function() { + var t = this; + + t.blocksOn.each(function(index, el) { + var data = $(el).data('cbp'); + + // update the values with the new ones + data.leftNew = t.columnWidth * index; + data.topNew = 0; + + t.sliderFreeSpaces.push({ + topStart: data.heightAndGap + }); + }); + + t.getFreeSpacesForSlider(); + + t.$ul.width(t.columnWidth * t.blocksOn.length - t.options.gapVertical); + }, + + getFreeSpacesForSlider: function() { + var t = this; + + t.freeSpaces = t.sliderFreeSpaces.slice(t.sliderActive, t.sliderActive + t.cols); + + t.freeSpaces.sort(function(space1, space2) { + if (space1.topStart > space2.topStart) { + return 1; + } else if (space1.topStart < space2.topStart) { + return -1; + } + }); + }, + + updateSliderPosition: function() { + var t = this, + value = -t.sliderActive * t.columnWidth; + + if (CubePortfolio.private.modernBrowser) { + t.$ul[0].style[CubePortfolio.private.transform] = 'translate3d(' + value + 'px, 0px, 0)'; + } else { + t.$ul[0].style.left = value + 'px'; + } + + t.getFreeSpacesForSlider(); + + t.resizeMainContainer(); + }, + + dragSlider: function() { + var t = this, + $document = $(document), + posInitial, + pos, + target, + ulPosition, + ulMaxWidth, + isAnimating = false, + events = {}, + isTouch = false, + touchStartEvent, + isHover = false; + + t.isDrag = false; + + if (('ontouchstart' in window) || + (navigator.maxTouchPoints > 0) || + (navigator.msMaxTouchPoints > 0)) { + + events = { + start: 'touchstart.cbp', + move: 'touchmove.cbp', + end: 'touchend.cbp' + }; + + isTouch = true; + } else { + events = { + start: 'mousedown.cbp', + move: 'mousemove.cbp', + end: 'mouseup.cbp' + }; + } + + function dragStart(e) { + if (t.sliderItemsLength()) { + return; + } + + if (!isTouch) { + e.preventDefault(); + } else { + touchStartEvent = e; + } + + if (t.options.auto) { + t.stopSliderAuto(); + } + + if (isAnimating) { + $(target).one('click.cbp', function() { + return false; + }); + return; + } + + target = $(e.target); + posInitial = pointerEventToXY(e).x; + pos = 0; + ulPosition = -t.sliderActive * t.columnWidth; + ulMaxWidth = t.columnWidth * (t.blocksOn.length - t.cols); + + $document.on(events.move, dragMove); + $document.on(events.end, dragEnd); + + t.$obj.addClass('cbp-mode-slider-dragStart'); + } + + function dragEnd(e) { + t.$obj.removeClass('cbp-mode-slider-dragStart'); + + // put the state to animate + isAnimating = true; + + if (pos !== 0) { + target.one('click.cbp', function(e) { + return false; + }); + + // wait a frame to be sure the .cbp-mode-slider-dragStart is removed from the dom + requestAnimationFrame(function() { + t.jumpDragToSlider(pos); + t.$ul.one(CubePortfolio.private.transitionend, afterDragEnd); + }); + } else { + afterDragEnd.call(t); + } + + $document.off(events.move); + $document.off(events.end); + } + + function dragMove(e) { + pos = posInitial - pointerEventToXY(e).x; + + if (pos > 8 || pos < -8) { + e.preventDefault(); + } + + t.isDrag = true; + + var value = ulPosition - pos; + + if (pos < 0 && pos < ulPosition) { // to right + value = (ulPosition - pos) / 5; + } else if (pos > 0 && (ulPosition - pos) < -ulMaxWidth) { // to left + value = -ulMaxWidth + (ulMaxWidth + ulPosition - pos) / 5; + } + + if (CubePortfolio.private.modernBrowser) { + t.$ul[0].style[CubePortfolio.private.transform] = 'translate3d(' + value + 'px, 0px, 0)'; + } else { + t.$ul[0].style.left = value + 'px'; + } + } + + function afterDragEnd() { + isAnimating = false; + t.isDrag = false; + + if (t.options.auto) { + if (t.mouseIsEntered) { + return; + } + + t.startSliderAuto(); + } + } + + function pointerEventToXY(e) { + if (e.originalEvent !== undefined && e.originalEvent.touches !== undefined) { + e = e.originalEvent.touches[0]; + } + + return { + x: e.pageX, + y: e.pageY + }; + } + + t.$ul.on(events.start, dragStart); + }, + + /** + * Reset the slider layout + */ + sliderLayoutReset: function() { + var t = this; + + t.freeSpaces = []; + + t.sliderFreeSpaces = []; + }, + }); +})(jQuery, window, document); +if (typeof Object.create !== 'function') { + Object.create = function(obj) { + function F() {} + F.prototype = obj; + return new F(); + }; +} + +// http://paulirish.com/2011/requestanimationframe-for-smart-animating/ +// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating +// requestAnimationFrame polyfill by Erik M�ller. fixes from Paul Irish and Tino Zijdel +// MIT license +(function() { + var lastTime = 0; + var vendors = ['moz', 'webkit']; + + for (var x = 0; x < vendors.length && !window.requestAnimationFrame; x++) { + window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']; + window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame']; + } + + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = function(callback, element) { + var currTime = new Date().getTime(); + var timeToCall = Math.max(0, 16 - (currTime - lastTime)); + var id = window.setTimeout(function() { + callback(currTime + timeToCall); + }, + timeToCall); + lastTime = currTime + timeToCall; + return id; + }; + } + + if (!window.cancelAnimationFrame) { + window.cancelAnimationFrame = function(id) { + clearTimeout(id); + }; + } +}()); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + parent.filterLayout = t.filterLayout; + + parent.registerEvent('computeBlocksFinish', function(expression) { + parent.blocksOn2On = parent.blocksOnInitial.filter(expression); + parent.blocksOn2Off = parent.blocksOnInitial.not(expression); + }); + } + + // here this value point to parent grid + Plugin.prototype.filterLayout = function() { + var t = this; + + t.$obj.addClass('cbp-animation-' + t.options.animationType); + + // [1] - blocks that are only moving with translate + t.blocksOn2On.addClass('cbp-item-on2on') + .each(function(index, el) { + var data = $(el).data('cbp'); + el.style[CubePortfolio.private.transform] = 'translate3d(' + (data.leftNew - data.left) + 'px, ' + (data.topNew - data.top) + 'px, 0)'; + }); + + // [2] - blocks than intialy are on but after applying the filter are off + t.blocksOn2Off.addClass('cbp-item-on2off'); + + // [3] - blocks that are off and it will be on + t.blocksOff2On = t.blocksOn + .filter('.cbp-item-off') + .removeClass('cbp-item-off') + .addClass('cbp-item-off2on') + .each(function(index, el) { + var data = $(el).data('cbp'); + + el.style.left = data.leftNew + 'px'; + el.style.top = data.topNew + 'px'; + }); + + if (t.blocksOn2Off.length) { + t.blocksOn2Off.last().data('cbp').wrapper.one(CubePortfolio.private.animationend, animationend); + } else if (t.blocksOff2On.length) { + t.blocksOff2On.last().data('cbp').wrapper.one(CubePortfolio.private.animationend, animationend); + } else if (t.blocksOn2On.length) { // this is used for sort feature to animate the items when sort API is triggered + t.blocksOn2On.last().one(CubePortfolio.private.transitionend, animationend); + } else { + animationend(); + } + + // resize main container height + t.resizeMainContainer(); + + function animationend() { + t.blocks.removeClass('cbp-item-on2off cbp-item-off2on cbp-item-on2on') + .each(function(index, el) { + var data = $(el).data('cbp'); + + data.left = data.leftNew; + data.top = data.topNew; + + el.style.left = data.left + 'px'; + el.style.top = data.top + 'px'; + + el.style[CubePortfolio.private.transform] = ''; + }); + + t.blocksOff.addClass('cbp-item-off'); + + t.$obj.removeClass('cbp-animation-' + t.options.animationType); + + t.filterFinish(); + } + }; + + Plugin.prototype.destroy = function() { + var parent = this.parent; + parent.$obj.removeClass('cbp-animation-' + parent.options.animationType); + }; + + CubePortfolio.plugins.animationClassic = function(parent) { + if (!CubePortfolio.private.modernBrowser || $.inArray(parent.options.animationType, ['boxShadow', 'fadeOut', 'flipBottom', 'flipOut', 'quicksand', 'scaleSides', 'skew']) < 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + parent.filterLayout = t.filterLayout; + } + + // here this value point to parent grid + Plugin.prototype.filterLayout = function() { + var t = this, + ulClone = t.$ul[0].cloneNode(true); + + ulClone.setAttribute('class', 'cbp-wrapper-helper'); + t.wrapper[0].insertBefore(ulClone, t.$ul[0]); + + requestAnimationFrame(function() { + t.$obj.addClass('cbp-animation-' + t.options.animationType); + + t.blocksOff.addClass('cbp-item-off'); + + t.blocksOn.removeClass('cbp-item-off') + .each(function(index, el) { + var data = $(el).data('cbp'); + + data.left = data.leftNew; + data.top = data.topNew; + + el.style.left = data.left + 'px'; + el.style.top = data.top + 'px'; + + if (t.options.animationType === 'sequentially') { + data.wrapper[0].style[CubePortfolio.private.animationDelay] = (index * 60) + 'ms'; + } + }); + + if (t.blocksOn.length) { + t.blocksOn.last().data('cbp').wrapper.one(CubePortfolio.private.animationend, animationend); + } else if (t.blocksOnInitial.length) { + t.blocksOnInitial.last().data('cbp').wrapper.one(CubePortfolio.private.animationend, animationend); + } else { + animationend(); + } + + // resize main container height + t.resizeMainContainer(); + }); + + function animationend() { + t.wrapper[0].removeChild(ulClone); + + if (t.options.animationType === 'sequentially') { + t.blocksOn.each(function(index, el) { + $(el).data('cbp').wrapper[0].style[CubePortfolio.private.animationDelay] = ''; + }); + } + + t.$obj.removeClass('cbp-animation-' + t.options.animationType); + + t.filterFinish(); + } + }; + + Plugin.prototype.destroy = function() { + var parent = this.parent; + parent.$obj.removeClass('cbp-animation-' + parent.options.animationType); + }; + + CubePortfolio.plugins.animationClone = function(parent) { + if (!CubePortfolio.private.modernBrowser || $.inArray(parent.options.animationType, ['fadeOutTop', 'slideLeft', 'sequentially']) < 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + parent.filterLayout = t.filterLayout; + } + + // here this value point to parent grid + Plugin.prototype.filterLayout = function() { + var t = this, + ulCloned = t.$ul.clone(true, true); + + ulCloned[0].setAttribute('class', 'cbp-wrapper-helper'); + t.wrapper[0].insertBefore(ulCloned[0], t.$ul[0]); + + // hack for safari osx because it doesn't want to work if I set animationDelay + // on cbp-item-wrapper before I clone the t.$ul + var itemsCloned = ulCloned.find('.cbp-item').not('.cbp-item-off'); + + if (t.blocksAreSorted) { + t.sortBlocks(itemsCloned, 'top', 'left'); + } + + itemsCloned.children('.cbp-item-wrapper').each(function(index, el) { + el.style[CubePortfolio.private.animationDelay] = (index * 50) + 'ms'; + }); + + requestAnimationFrame(function() { + t.$obj.addClass('cbp-animation-' + t.options.animationType); + + t.blocksOff.addClass('cbp-item-off'); + + t.blocksOn.removeClass('cbp-item-off') + .each(function(index, el) { + var data = $(el).data('cbp'); + + data.left = data.leftNew; + data.top = data.topNew; + + el.style.left = data.left + 'px'; + el.style.top = data.top + 'px'; + + data.wrapper[0].style[CubePortfolio.private.animationDelay] = (index * 50) + 'ms'; + }); + + var onLength = t.blocksOn.length, + offLength = itemsCloned.length; + + if (onLength === 0 && offLength === 0) { + animationend(); + } else if (onLength < offLength) { + itemsCloned.last().children('.cbp-item-wrapper').one(CubePortfolio.private.animationend, animationend); + } else { + t.blocksOn.last().data('cbp').wrapper.one(CubePortfolio.private.animationend, animationend); + } + + // resize main container height + t.resizeMainContainer(); + }); + + function animationend() { + t.wrapper[0].removeChild(ulCloned[0]); + + t.$obj.removeClass('cbp-animation-' + t.options.animationType); + + t.blocks.each(function(index, el) { + $(el).data('cbp').wrapper[0].style[CubePortfolio.private.animationDelay] = ''; + }); + + t.filterFinish(); + } + }; + + Plugin.prototype.destroy = function() { + var parent = this.parent; + parent.$obj.removeClass('cbp-animation-' + parent.options.animationType); + }; + + CubePortfolio.plugins.animationCloneDelay = function(parent) { + if (!CubePortfolio.private.modernBrowser || $.inArray(parent.options.animationType, ['3dflip', 'flipOutDelay', 'foldLeft', 'frontRow', 'rotateRoom', 'rotateSides', 'scaleDown', 'slideDelay', 'unfold']) < 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + parent.filterLayout = t.filterLayout; + } + + // here this value point to parent grid + Plugin.prototype.filterLayout = function() { + var t = this, + ulCloned = t.$ul[0].cloneNode(true); + + ulCloned.setAttribute('class', 'cbp-wrapper-helper'); + t.wrapper[0].insertBefore(ulCloned, t.$ul[0]); + + requestAnimationFrame(function() { + t.$obj.addClass('cbp-animation-' + t.options.animationType); + + t.blocksOff.addClass('cbp-item-off'); + + t.blocksOn.removeClass('cbp-item-off') + .each(function(index, el) { + var data = $(el).data('cbp'); + + data.left = data.leftNew; + data.top = data.topNew; + + el.style.left = data.left + 'px'; + el.style.top = data.top + 'px'; + }); + + if (t.blocksOn.length) { + t.$ul.one(CubePortfolio.private.animationend, animationend); + } else if (t.blocksOnInitial.length) { + $(ulCloned).one(CubePortfolio.private.animationend, animationend); + } else { + animationend(); + } + + // resize main container height + t.resizeMainContainer(); + }); + + function animationend() { + t.wrapper[0].removeChild(ulCloned); + + t.$obj.removeClass('cbp-animation-' + t.options.animationType); + + t.filterFinish(); + } + }; + + Plugin.prototype.destroy = function() { + var parent = this.parent; + parent.$obj.removeClass('cbp-animation-' + parent.options.animationType); + }; + + CubePortfolio.plugins.animationWrapper = function(parent) { + if (!CubePortfolio.private.modernBrowser || $.inArray(parent.options.animationType, ['bounceBottom', 'bounceLeft', 'bounceTop', 'moveLeft']) < 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + var options = parent.options; + + t.parent = parent; + + t.captionOn = options.caption; + + parent.registerEvent('onMediaQueries', function(opt) { + if (opt && opt.hasOwnProperty('caption')) { + if (t.captionOn !== opt.caption) { + t.destroy(); + t.captionOn = opt.caption; + t.init(); + } + } else if (t.captionOn !== options.caption) { + t.destroy(); + t.captionOn = options.caption; + t.init(); + } + }); + + t.init(); + } + + Plugin.prototype.init = function() { + var t = this; + + // if caption is active + if (t.captionOn == '') { + return; + } + + if (t.captionOn !== 'expand' && !CubePortfolio.private.modernBrowser) { + t.parent.options.caption = t.captionOn = 'minimal'; + } + + // .cbp-caption-active is used only for css + // so it will not generate a big css from sass if a caption is set + t.parent.$obj.addClass('cbp-caption-active cbp-caption-' + t.captionOn); + }; + + Plugin.prototype.destroy = function() { + this.parent.$obj.removeClass('cbp-caption-active cbp-caption-' + this.captionOn); + }; + + CubePortfolio.plugins.caption = function(parent) { + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + parent.registerEvent('initFinish', function() { + parent.$obj.on('click.cbp', '.cbp-caption-defaultWrap', function(e) { + e.preventDefault(); + + if (parent.isAnimating) { + return; + } + + parent.isAnimating = true; + + var defaultWrap = $(this), + activeWrap = defaultWrap.next(), + caption = defaultWrap.parent(), + endStyle = { + position: 'relative', + height: activeWrap.outerHeight(true) + }, + startStyle = { + position: 'relative', + height: 0 + }; + + parent.$obj.addClass('cbp-caption-expand-active'); + + // swap endStyle & startStyle + if (caption.hasClass('cbp-caption-expand-open')) { + var temp = startStyle; + startStyle = endStyle; + endStyle = temp; + caption.removeClass('cbp-caption-expand-open'); + } + + activeWrap.css(endStyle); + + parent.$obj.one('pluginResize.cbp', function() { + parent.isAnimating = false; + parent.$obj.removeClass('cbp-caption-expand-active'); + + if (endStyle.height === 0) { + caption.removeClass('cbp-caption-expand-open'); + activeWrap.attr('style', ''); + } + }); + + // reposition the blocks and set param to update width of grid + parent.layoutAndAdjustment(true); + + // set activeWrap to 0 so I can start animation in the next frame + activeWrap.css(startStyle); + + // delay animation + requestAnimationFrame(function() { + caption.addClass('cbp-caption-expand-open'); + + activeWrap.css(endStyle); + + // used by slider layoutMode + parent.triggerEvent('gridAdjust'); + + parent.triggerEvent('resizeGrid'); + }); + }); + }, true); + } + + Plugin.prototype.destroy = function() { + this.parent.$obj.find('.cbp-caption-defaultWrap').off('click.cbp').parent().removeClass('cbp-caption-expand-active'); + }; + + CubePortfolio.plugins.captionExpand = function(parent) { + if (parent.options.caption !== 'expand') { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + parent.registerEvent('initEndWrite', function() { + if (parent.width <= 0) { + return; + } + + var deferred = $.Deferred(); + + parent.pushQueue('delayFrame', deferred); + + parent.blocksOn.each(function(index, el) { + el.style[CubePortfolio.private.animationDelay] = (index * parent.options.displayTypeSpeed) + 'ms'; + }); + + parent.$obj.addClass('cbp-displayType-bottomToTop'); + + // get last element + parent.blocksOn.last().one(CubePortfolio.private.animationend, function() { + parent.$obj.removeClass('cbp-displayType-bottomToTop'); + + parent.blocksOn.each(function(index, el) { + el.style[CubePortfolio.private.animationDelay] = ''; + }); + + // resolve event after the animation is finished + deferred.resolve(); + }); + }, true); + } + + CubePortfolio.plugins.displayBottomToTop = function(parent) { + if (!CubePortfolio.private.modernBrowser || parent.options.displayType !== 'bottomToTop' || parent.blocksOn.length === 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + parent.registerEvent('initEndWrite', function() { + if (parent.width <= 0) { + return; + } + + var deferred = $.Deferred(); + + parent.pushQueue('delayFrame', deferred); + + parent.obj.style[CubePortfolio.private.animationDuration] = parent.options.displayTypeSpeed + 'ms'; + + parent.$obj.addClass('cbp-displayType-fadeIn'); + + parent.$obj.one(CubePortfolio.private.animationend, function() { + parent.$obj.removeClass('cbp-displayType-fadeIn'); + + parent.obj.style[CubePortfolio.private.animationDuration] = ''; + + // resolve event after the animation is finished + deferred.resolve(); + }); + }, true); + } + + CubePortfolio.plugins.displayFadeIn = function(parent) { + if (!CubePortfolio.private.modernBrowser || (parent.options.displayType !== 'lazyLoading' && parent.options.displayType !== 'fadeIn') || parent.blocksOn.length === 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + parent.registerEvent('initEndWrite', function() { + if (parent.width <= 0) { + return; + } + + var deferred = $.Deferred(); + + parent.pushQueue('delayFrame', deferred); + + parent.obj.style[CubePortfolio.private.animationDuration] = parent.options.displayTypeSpeed + 'ms'; + + parent.$obj.addClass('cbp-displayType-fadeInToTop'); + + parent.$obj.one(CubePortfolio.private.animationend, function() { + parent.$obj.removeClass('cbp-displayType-fadeInToTop'); + + parent.obj.style[CubePortfolio.private.animationDuration] = ''; + + // resolve event after the animation is finished + deferred.resolve(); + }); + }, true); + } + + CubePortfolio.plugins.displayFadeInToTop = function(parent) { + if (!CubePortfolio.private.modernBrowser || parent.options.displayType !== 'fadeInToTop' || parent.blocksOn.length === 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + parent.registerEvent('initEndWrite', function() { + if (parent.width <= 0) { + return; + } + + var deferred = $.Deferred(); + + parent.pushQueue('delayFrame', deferred); + + parent.blocksOn.each(function(index, el) { + el.style[CubePortfolio.private.animationDelay] = (index * parent.options.displayTypeSpeed) + 'ms'; + }); + + parent.$obj.addClass('cbp-displayType-sequentially'); + + // get last element + parent.blocksOn.last().one(CubePortfolio.private.animationend, function() { + parent.$obj.removeClass('cbp-displayType-sequentially'); + + parent.blocksOn.each(function(index, el) { + el.style[CubePortfolio.private.animationDelay] = ''; + }); + + // resolve event after the animation is finished + deferred.resolve(); + }); + }, true); + } + + CubePortfolio.plugins.displaySequentially = function(parent) { + if (!CubePortfolio.private.modernBrowser || parent.options.displayType !== 'sequentially' || parent.blocksOn.length === 0) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.filters = $(parent.options.filters); + t.filterData = []; + + parent.registerEvent('afterPlugins', function(elems) { + // set default filter if it's present in url + t.filterFromUrl(); + t.registerFilter(); + }); + + // reset filters active class after the search is used + parent.registerEvent('resetFiltersVisual', function() { + var arr = parent.options.defaultFilter.split('|'); + + t.filters.each(function(index, el) { + var items = $(el).find('.cbp-filter-item'); + items.removeClass('cbp-filter-item-active'); + + $.each(arr, function(index, val) { + var item = items.filter('[data-filter="' + val + '"]'); + if (item.length) { + item.addClass('cbp-filter-item-active'); + arr.splice(index, 1); + return false; + } + }); + }); + + parent.defaultFilter = parent.options.defaultFilter; + }); + } + + Plugin.prototype.registerFilter = function() { + var t = this, + parent = t.parent, + arr = parent.defaultFilter.split('|'); + + t.wrap = t.filters.find('.cbp-l-filters-dropdownWrap') + .on({ + 'mouseover.cbp': function() { + $(this).addClass('cbp-l-filters-dropdownWrap-open'); + }, + 'mouseleave.cbp': function() { + $(this).removeClass('cbp-l-filters-dropdownWrap-open'); + } + }); + + t.filters.each(function(index, el) { + var filter = $(el), + filterName = '*', + items = filter.find('.cbp-filter-item'), + dropdown = {}; + + if (filter.hasClass('cbp-l-filters-dropdown')) { + dropdown.wrap = filter.find('.cbp-l-filters-dropdownWrap'); + dropdown.header = filter.find('.cbp-l-filters-dropdownHeader'); + dropdown.headerText = dropdown.header.text(); + } + + // activate counter for filters + parent.$obj.cubeportfolio('showCounter', items); + + $.each(arr, function(index, val) { + if (items.filter('[data-filter="' + val + '"]').length) { + filterName = val; + arr.splice(index, 1); + return false; + } + }); + + $.data(el, 'filterName', filterName); + t.filterData.push(el); + + t.filtersCallback(dropdown, items.filter('[data-filter="' + filterName + '"]'), items); + + var subFilterParent = el.getAttribute('data-filter-parent'); + if (subFilterParent) { + filter.removeClass('cbp-l-subfilters--active'); + + if (subFilterParent === t.parent.defaultFilter) { + filter.addClass('cbp-l-subfilters--active'); + } + } + + items.on('click.cbp', function() { + var item = $(this); + + if (item.hasClass('cbp-filter-item-active') || parent.isAnimating) { + return; + } + + t.filtersCallback(dropdown, item, items); + + $.data(el, 'filterName', item.data('filter')); + + var name = $.map(t.filterData, function(el, index) { + var $el = $(el); + + var isSubfilter = el.getAttribute('data-filter-parent'); + if (isSubfilter) { + if (isSubfilter === $.data(t.filterData[0], 'filterName')) { + $el.addClass('cbp-l-subfilters--active'); + } else { + $el.removeClass('cbp-l-subfilters--active'); + $.data(el, 'filterName', '*'); + $el.find('.cbp-filter-item').removeClass('cbp-filter-item-active'); + } + } + + var f = $.data(el, 'filterName'); + return (f !== "" && f !== '*') ? f : null; + }); + + if (name.length < 1) { + name = ['*']; + } + + var filterJoin = name.join('|'); + + if (parent.defaultFilter !== filterJoin) { + // filter the items + parent.$obj.cubeportfolio('filter', filterJoin); + } + }); + }); + }; + + Plugin.prototype.filtersCallback = function(dropdown, item, items) { + if (!$.isEmptyObject(dropdown)) { + dropdown.wrap.trigger('mouseleave.cbp'); + + if (dropdown.headerText) { + dropdown.headerText = ''; + } else { + dropdown.header.html(item.html()); + } + } + + items.removeClass('cbp-filter-item-active'); + item.addClass('cbp-filter-item-active'); + }; + + /** + * Check if filters are present in url + */ + Plugin.prototype.filterFromUrl = function() { + var match = /#cbpf=(.*?)([#\?&]|$)/gi.exec(location.href); + + if (match !== null) { + this.parent.defaultFilter = decodeURIComponent(match[1]); + } + }; + + Plugin.prototype.destroy = function() { + var t = this; + + t.filters.find('.cbp-filter-item').off('.cbp'); + t.wrap.off('.cbp'); + }; + + CubePortfolio.plugins.filters = function(parent) { + if (parent.options.filters === '') { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); + +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var gapVerticalInitial = parent.options.gapVertical; + var gapHorizontalInitial = parent.options.gapHorizontal; + + parent.registerEvent('onMediaQueries', function(opt) { + parent.options.gapVertical = (opt && opt.hasOwnProperty('gapVertical'))? opt.gapVertical : gapVerticalInitial; + parent.options.gapHorizontal = (opt && opt.hasOwnProperty('gapHorizontal'))? opt.gapHorizontal : gapHorizontalInitial; + + parent.blocks.each(function(index, el) { + var data = $(el).data('cbp'); + + data.widthAndGap = data.width + parent.options.gapVertical; + data.heightAndGap = data.height + parent.options.gapHorizontal; + }); + }); + } + + CubePortfolio.plugins.changeGapOnMediaQueries = function(parent) { + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var options = {}; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.options = $.extend({}, options, t.parent.options.plugins.inlineSlider); + + t.runInit(); + + parent.registerEvent('addItemsToDOM', function() { + t.runInit(); + }); + + } + + function InitSlider(slider) { + var t = this; + + if (slider.hasClass('cbp-slider-inline-ready')) { + return; + } + + slider.addClass('cbp-slider-inline-ready'); + + t.items = slider.find('.cbp-slider-wrapper').children('.cbp-slider-item'); + + t.active = t.items.filter('.cbp-slider-item--active').index(); + t.total = t.items.length - 1; + + t.updateLeft(); + + slider.find('.cbp-slider-next').on('click.cbp', function(e) { + e.preventDefault(); + + if (t.active < t.total) { + t.active++; + t.updateLeft(); + } else if (t.active === t.total) { + t.active = 0; + t.updateLeft(); + } + }); + + slider.find('.cbp-slider-prev').on('click.cbp', function(e) { + e.preventDefault(); + + if (t.active > 0) { + t.active--; + t.updateLeft(); + } else if (t.active === 0) { + t.active = t.total; + t.updateLeft(); + } + }); + }; + + InitSlider.prototype.updateLeft = function() { + var t = this; + + t.items.removeClass('cbp-slider-item--active'); + t.items.eq(t.active).addClass('cbp-slider-item--active'); + + t.items.each(function(index, el) { + el.style.left = (index - t.active) + '00%'; + }); + }; + + Plugin.prototype.runInit = function() { + var t = this; + + t.parent.$obj.find('.cbp-slider-inline').not('.cbp-slider-inline-ready').each(function(index, el) { + var slider = $(el); + var activeImage = slider.find('.cbp-slider-item--active').find('img')[0]; + + if (activeImage.hasAttribute('data-cbp-src')) { + t.parent.$obj.on('lazyLoad.cbp', function(e, image) { + if (image.src === activeImage.src) { + new InitSlider(slider); + } + }); + } else { + new InitSlider(slider); + } + }); + }; + + Plugin.prototype.destroy = function() { + var t = this; + + t.parent.$obj.find('.cbp-slider-next').off('click.cbp'); + t.parent.$obj.find('.cbp-slider-prev').off('click.cbp'); + + t.parent.$obj.off('lazyLoad.cbp'); + + t.parent.$obj.find('.cbp-slider-inline').each(function(index, el) { + var slider = $(el); + + slider.removeClass('cbp-slider-inline-ready'); + + var items = slider.find('.cbp-slider-item'); + items.removeClass('cbp-slider-item--active'); + + items.removeAttr('style'); + + items.eq(0).addClass('cbp-slider-item--active'); + }); + }; + + CubePortfolio.plugins.inlineSlider = function(parent) { + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var options = { + loadingClass: 'cbp-lazyload', + threshold: 400, // loads images 150px before they're visible + }; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + var $window = $(window); + + // add scroll event to page for lazyLoad + CubePortfolio.private.lazyLoadScroll = new CubePortfolio.private.publicEvents('scroll.cbplazyLoad', 50); + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.options = $.extend({}, options, t.parent.options.plugins.lazyLoad); + + parent.registerEvent('initFinish', function() { + t.loadImages(); + + parent.registerEvent('resizeMainContainer', function() { + t.loadImages(); + }); + + parent.registerEvent('filterFinish', function() { + t.loadImages(); + }); + + CubePortfolio.private.lazyLoadScroll.initEvent({ + instance: t, + fn: t.loadImages + }); + }, true); + + } + + Plugin.prototype.loadImages = function() { + var t = this; + + var imgs = t.parent.$obj.find('img').filter('[data-cbp-src]'); + + if (imgs.length === 0) { + return; + } + + t.screenHeight = $window.height(); + + imgs.each(function(index, el) { + var parentNode = $(el.parentNode); + + if (!t.isElementInScreen(el)) { + parentNode.addClass(t.options.loadingClass); + return; + } + + var dataSrc = el.getAttribute('data-cbp-src'); + + if (t.parent.checkSrc($('').attr('src', dataSrc)) === null) { + t.removeLazyLoad(el, dataSrc); + parentNode.removeClass(t.options.loadingClass); + } else { + parentNode.addClass(t.options.loadingClass); + $('').on('load.cbp error.cbp', function() { + t.removeLazyLoad(el, dataSrc, parentNode); + }).attr('src', dataSrc); // for ie8 + } + }); + }; + + Plugin.prototype.removeLazyLoad = function(el, dataSrc, parentNode) { + var t = this; + + el.src = dataSrc; + el.removeAttribute('data-cbp-src'); + t.parent.removeAttrImage(el); + + // trigger public event + t.parent.$obj.trigger('lazyLoad.cbp', el); + + if (parentNode) { + if (CubePortfolio.private.modernBrowser) { + $(el).one(CubePortfolio.private.transitionend, function() { + parentNode.removeClass(t.options.loadingClass); + }); + } else { + parentNode.removeClass(t.options.loadingClass); + } + } + }; + + Plugin.prototype.isElementInScreen = function(el) { + var t = this; + + var bound = el.getBoundingClientRect(); + var bottom = bound.bottom + t.options.threshold; + var screenHeight = t.screenHeight + bottom - (bound.top - t.options.threshold); + + return bottom >= 0 && bottom <= screenHeight; + }; + + Plugin.prototype.destroy = function() { + CubePortfolio.private.lazyLoadScroll.destroyEvent(this); + }; + + CubePortfolio.plugins.lazyLoad = function(parent) { + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var options = { + /** + * Define the wrapper for loadMore + * Values: strings that represent the elements in the document (DOM selector). + */ + element: '', + + /** + * How the loadMore functionality should behave. Load on click on the button or + * automatically when you scroll the page + * Values: - click + * - auto + */ + action: 'click', + /** + * How many items to load when you click on the loadMore button + * Values: positive integer + */ + loadItems: 3, + }; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.options = $.extend({}, options, t.parent.options.plugins.loadMore); + + t.loadMore = $(t.options.element).find('.cbp-l-loadMore-link'); + + // load click or auto action + if (t.loadMore.length === 0) { + return; + } + + t.loadItems = t.loadMore.find('.cbp-l-loadMore-loadItems'); + + if (t.loadItems.text() === '0') { + t.loadMore.addClass('cbp-l-loadMore-stop'); + } + + parent.registerEvent('filterStart', function(filter) { + t.populateItems().then(function() { + var itemsLen = t.items.filter(t.parent.filterConcat(filter)).length; + + if (itemsLen > 0) { + t.loadMore.removeClass('cbp-l-loadMore-stop'); + t.loadItems.html(itemsLen); + } else { + t.loadMore.addClass('cbp-l-loadMore-stop'); + } + }); + }); + + t[t.options.action](); + } + + Plugin.prototype.populateItems = function() { + var t = this; + + if (t.items) { + return $.Deferred().resolve(); + } + + t.items = $(); + + // perform ajax request + return $.ajax({ + url: t.loadMore.attr('href'), + type: 'GET', + dataType: 'HTML' + }).done(function(result) { + var resultFlat = $.map(result.split(/\r?\n/), function(item, index) { + return $.trim(item); + }).join(''); + + if (resultFlat.length === 0) { + return; + } + + $.each($.parseHTML(resultFlat), function(index, el) { + if ($(el).hasClass('cbp-item')) { + t.items = t.items.add(el); + } else { + $.each(el.children, function(index, el2) { + if ($(el2).hasClass('cbp-item')) { + t.items = t.items.add(el2); + } + }); + } + }); + }).fail(function() { + t.items = null; + t.loadMore.removeClass('cbp-l-loadMore-loading'); + }); + }; + + Plugin.prototype.populateInsertItems = function(callback) { + var t = this; + var insertItems = []; + var filter = t.parent.defaultFilter; + + var foundItem = 0; + t.items.each(function(index, el) { + if (foundItem === t.options.loadItems) { + return false; + } + + if (!filter || (filter === '*')) { + insertItems.push(el); + t.items[index] = null; + + foundItem++; + } else { + if ($(el).filter(t.parent.filterConcat(filter)).length) { + insertItems.push(el); + t.items[index] = null; + + foundItem++; + } + } + }); + + t.items = t.items.map(function(index, el) { + return el; + }); + + // stop the loadMore + if (insertItems.length === 0) { + t.loadMore.removeClass('cbp-l-loadMore-loading').addClass('cbp-l-loadMore-stop'); + return; + } + + t.parent.$obj.cubeportfolio('append', insertItems, callback); + } + + Plugin.prototype.click = function() { + var t = this; + + t.loadMore.on('click.cbp', function(e) { + e.preventDefault(); + + if (t.parent.isAnimating || t.loadMore.hasClass('cbp-l-loadMore-stop')) { + return; + } + + // set loading status + t.loadMore.addClass('cbp-l-loadMore-loading'); + + t.populateItems().then(function() { + t.populateInsertItems(appendCallback); + }); + }); + + function appendCallback() { + // remove class from t.loadMore + t.loadMore.removeClass('cbp-l-loadMore-loading'); + + var filter = t.parent.defaultFilter; + var itemsInLoadMore; + + if (!filter || (filter === '*')) { + itemsInLoadMore = t.items.length; + } else { + itemsInLoadMore = t.items.filter(t.parent.filterConcat(filter)).length; + } + + // check if we have more loadMore + if (itemsInLoadMore === 0) { + t.loadMore.addClass('cbp-l-loadMore-stop'); + } else { + t.loadItems.html(itemsInLoadMore); + } + } + }; + + Plugin.prototype.auto = function() { + var t = this; + var $window = $(window); + var isActive = false; + + // add scroll event to page for loadMore + CubePortfolio.private.loadMoreScroll = new CubePortfolio.private.publicEvents('scroll.loadMore', 100); + + t.parent.$obj.one('initComplete.cbp', function() { + // add events for scroll + t.loadMore + .addClass('cbp-l-loadMore-loading') + .on('click.cbp', function(e) { + e.preventDefault(); + }); + + CubePortfolio.private.loadMoreScroll.initEvent({ + instance: t, + fn: function() { + if (!t.parent.isAnimating) { + // get new items on scroll + getNewItems(); + } + } + }); + + // when the filter is completed + t.parent.$obj.on('filterComplete.cbp', function() { + getNewItems(); + }); + + // trigger method + getNewItems(); + }); + + function getNewItems() { + if (isActive || t.loadMore.hasClass('cbp-l-loadMore-stop')) { + return; + } + + // add a treshold + var topLoadMore = t.loadMore.offset().top - 200; + var topWindow = $window.scrollTop() + $window.height(); + + if (topLoadMore > topWindow) { + return; + } + + // this job is now busy + isActive = true; + + t.populateItems().then(function() { + t.populateInsertItems(appendCallback); + }).fail(function() { + // make the job inactive + isActive = false; + }); + } + + function appendCallback() { + var itemsInLoadMore; + var filter = t.parent.defaultFilter; + + if (!filter || (filter === '*')) { + itemsInLoadMore = t.items.length; + } else { + itemsInLoadMore = t.items.filter(t.parent.filterConcat(filter)).length; + } + + // check if we have more loadMore + if (itemsInLoadMore === 0) { + t.loadMore.removeClass('cbp-l-loadMore-loading').addClass('cbp-l-loadMore-stop'); + } else { + t.loadItems.html(itemsInLoadMore); + + $window.trigger('scroll.loadMore'); + } + + // make the job inactive + isActive = false; + + // remove events + if (t.items.length === 0) { + CubePortfolio.private.loadMoreScroll.destroyEvent(t); + t.parent.$obj.off('filterComplete.cbp'); + } + } + }; + + Plugin.prototype.destroy = function() { + this.loadMore.off('.cbp'); + + if (CubePortfolio.private.loadMoreScroll) { + CubePortfolio.private.loadMoreScroll.destroyEvent(this); + } + }; + + CubePortfolio.plugins.loadMore = function(parent) { + var plugins = parent.options.plugins; + + // backward compatibility + if (parent.options.loadMore) { + if (!plugins.loadMore) { + plugins.loadMore = {}; + } + + plugins.loadMore.element = parent.options.loadMore; + } + + // backward compatibility + if (parent.options.loadMoreAction) { + if (!plugins.loadMore) { + plugins.loadMore = {}; + } + + plugins.loadMore.action = parent.options.loadMoreAction; + } + + // rename options + if (plugins.loadMore && plugins.loadMore.selector !== undefined) { + plugins.loadMore.element = plugins.loadMore.selector; + delete plugins.loadMore.selector; + } + + if (!plugins.loadMore || !plugins.loadMore.element) { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + var options = { + delay: 0, + }; + + var popup = { + /** + * init function for popup + * @param cubeportfolio = cubeportfolio instance + * @param type = 'lightbox' or 'singlePage' + */ + init: function(cubeportfolio, type) { + var t = this, + currentBlock; + + // remember cubeportfolio instance + t.cubeportfolio = cubeportfolio; + + // remember if this instance is for lightbox or for singlePage + t.type = type; + + // remember if the popup is open or not + t.isOpen = false; + + t.options = t.cubeportfolio.options; + + if (type === 'lightbox') { + t.cubeportfolio.registerEvent('resizeWindow', function() { + t.resizeImage(); + }); + + t.localOptions = $.extend({}, options, t.cubeportfolio.options.plugins.lightbox); + } + + if (type === 'singlePageInline') { + t.height = 0; + + // create markup, css and add events for SinglePageInline + t.createMarkupSinglePageInline(); + + t.cubeportfolio.registerEvent('resizeGrid', function() { + if (t.isOpen) { + // @todo must add support for this features in the future + t.close(); // workaround + } + }); + + if (t.options.singlePageInlineDeeplinking) { + t.url = location.href; + + if (t.url.slice(-1) === '#') { + t.url = t.url.slice(0, -1); + } + + var links = t.url.split('#cbpi='); + var url = links.shift(); // remove first item + + $.each(links, function(index, link) { + t.cubeportfolio.blocksOn.each(function(index1, el) { + var singlePageInline = $(el).find(t.options.singlePageInlineDelegate + '[href="' + link + '"]'); + + if (singlePageInline.length) { + currentBlock = singlePageInline; + return false; + } + }); + + if (currentBlock) { + return false; + } + }); + + if (currentBlock) { + t.cubeportfolio.registerEvent('initFinish', function() { + t.openSinglePageInline(t.cubeportfolio.blocksOn, currentBlock[0]); + }, true); + } + } + + t.localOptions = $.extend({}, options, t.cubeportfolio.options.plugins.singlePageInline); + + return; + } + + // create markup, css and add events for lightbox and singlePage + t.createMarkup(); + + if (type === 'singlePage') { + t.cubeportfolio.registerEvent('resizeWindow', function() { + if (t.options.singlePageStickyNavigation) { + + var width = t.contentWrap[0].clientWidth; + + if (width > 0) { + t.navigationWrap.width(width); + + // set navigation width='window width' to center the divs + t.navigation.width(width); + } + + } + }); + + if (t.options.singlePageDeeplinking) { + t.url = location.href; + + if (t.url.slice(-1) === '#') { + t.url = t.url.slice(0, -1); + } + + var links = t.url.split('#cbp='); + var url = links.shift(); // remove first item + + $.each(links, function(index, link) { + t.cubeportfolio.blocksOn.each(function(index1, el) { + var singlePage = $(el).find(t.options.singlePageDelegate + '[href="' + link + '"]'); + + if (singlePage.length) { + currentBlock = singlePage; + return false; + } + }); + + if (currentBlock) { + return false; + } + }); + + if (currentBlock) { + t.url = url; + + var self = currentBlock, + gallery = self.attr('data-cbp-singlePage'), + blocks = []; + + if (gallery) { + blocks = self.closest($('.cbp-item')).find('[data-cbp-singlePage="' + gallery + '"]'); + } else { + t.cubeportfolio.blocksOn.each(function(index, el) { + var item = $(el); + + if (item.not('.cbp-item-off')) { + item.find(t.options.singlePageDelegate).each(function(index2, el2) { + if (!$(el2).attr('data-cbp-singlePage')) { + blocks.push(el2); + } + }); + } + }); + } + + t.openSinglePage(blocks, currentBlock[0]); + } else if (links.length) { // @todo - hack to load items from loadMore + var fakeLink = document.createElement('a'); + fakeLink.setAttribute('href', links[0]); + t.openSinglePage([fakeLink], fakeLink); + } + } + + t.localOptions = $.extend({}, options, t.cubeportfolio.options.plugins.singlePage); + } + }, + + /** + * Create markup, css and add events + */ + createMarkup: function() { + var t = this, + animationCls = ''; + + if (t.type === 'singlePage') { + if (t.options.singlePageAnimation !== 'left') { + animationCls = ' cbp-popup-singlePage-' + t.options.singlePageAnimation; + } + } + + // wrap element + t.wrap = $('
', { + 'class': 'cbp-popup-wrap cbp-popup-' + t.type + animationCls, + 'data-action': (t.type === 'lightbox') ? 'close' : '' + }).on('click.cbp', function(e) { + if (t.stopEvents) { + return; + } + + var action = $(e.target).attr('data-action'); + + if (t[action]) { + t[action](); + e.preventDefault(); + } + }); + + if (t.type === 'singlePage') { + t.contentWrap = $('
', { + 'class': 'cbp-popup-content-wrap' + }).appendTo(t.wrap); + + if (CubePortfolio.private.browser === 'ios') { + t.contentWrap.css('overflow', 'auto'); + } + + // content element + t.content = $('
', { + 'class': 'cbp-popup-content' + }).appendTo(t.contentWrap); + } else { + // content element + t.content = $('
', { + 'class': 'cbp-popup-content' + }).appendTo(t.wrap); + } + + // append loading div + $('
', { + 'class': 'cbp-popup-loadingBox' + }).appendTo(t.wrap); + + // add background only for ie8 + if (CubePortfolio.private.browser === 'ie8') { + t.bg = $('
', { + 'class': 'cbp-popup-ie8bg', + 'data-action': (t.type === 'lightbox') ? 'close' : '' + }).appendTo(t.wrap); + } + + if (t.type === 'singlePage') { + if (t.options.singlePageStickyNavigation === false) { + // create navigation wrap + t.navigationWrap = $('
', { + 'class': 'cbp-popup-navigation-wrap' + }).appendTo(t.contentWrap); + } else { + // create navigation wrap + t.navigationWrap = $('
', { + 'class': 'cbp-popup-navigation-wrap' + }).appendTo(t.wrap); + } + } else { + // create navigation wrap + t.navigationWrap = $('
', { + 'class': 'cbp-popup-navigation-wrap' + }).appendTo(t.wrap); + } + + // create navigation block + t.navigation = $('
', { + 'class': 'cbp-popup-navigation' + }).appendTo(t.navigationWrap); + + // close + t.closeButton = $('
', { + 'class': 'cbp-popup-close', + 'title': 'Close (Esc arrow key)', + 'data-action': 'close' + }).appendTo(t.navigation); + + // next + t.nextButton = $('
', { + 'class': 'cbp-popup-next', + 'title': 'Next (Right arrow key)', + 'data-action': 'next' + }).appendTo(t.navigation); + + + // prev + t.prevButton = $('
', { + 'class': 'cbp-popup-prev', + 'title': 'Previous (Left arrow key)', + 'data-action': 'prev' + }).appendTo(t.navigation); + + + if (t.type === 'singlePage') { + if (t.options.singlePageCounter) { + // counter for singlePage + t.counter = $(t.options.singlePageCounter).appendTo(t.navigation); + t.counter.text(''); + } + + t.content.on('click.cbp', t.options.singlePageDelegate, function(e) { + e.preventDefault(); + + var i, + len = t.dataArray.length, + href = this.getAttribute('href'), + indexFound; + + for (i = 0; i < len; i++) { + if (t.dataArray[i].url === href) { + indexFound = i; + break; + } + } + + if (indexFound === undefined) { + var fakeLink = document.createElement('a'); + fakeLink.setAttribute('href', href); + + t.dataArray = [{ + url: href, + element: fakeLink + }]; + + // total numbers of elements + t.counterTotal = 1; + + t.nextButton.hide(); + t.prevButton.hide(); + + t.singlePageJumpTo(0); + } else { + t.singlePageJumpTo(indexFound - t.current); + } + + }); + + // Test via a getter in the options object to see if the passive property is accessed + // https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md + var supportsOpts = false; + try { + var opts = Object.defineProperty({}, 'passive', { + get: function() { + supportsOpts = { passive: true }; + } + }); + window.addEventListener('testPassive', null, opts); + window.removeEventListener('testPassive', null, opts); + } catch (e) {} + + // if there are some events than overrides the default wheel behaviour don't go to them + // https://developer.mozilla.org/en-US/docs/Web/Events/wheel + var wheel = 'onwheel' in document.createElement('div') ? 'wheel' : 'mousewheel'; + t.contentWrap[0].addEventListener(wheel, function(e) { + e.stopImmediatePropagation(); + }, supportsOpts); + } + + $(document).on('keydown.cbp', function(e) { + // if is not open => return + if (!t.isOpen) { + return; + } + + // if all events are stopped => return + if (t.stopEvents) { + return; + } + + if (lightboxIsOpen) { + e.stopImmediatePropagation(); + } + + if (e.keyCode === 37) { // prev key + t.prev(); + } else if (e.keyCode === 39) { // next key + t.next(); + } else if (e.keyCode === 27) { //esc key + t.close(); + } + }); + }, + + createMarkupSinglePageInline: function() { + var t = this; + + // wrap element + t.wrap = $('
', { + 'class': 'cbp-popup-singlePageInline' + }).on('click.cbp', function(e) { + if (t.stopEvents) { + return; + } + + var action = $(e.target).attr('data-action'); + + if (action && t[action]) { + t[action](); + e.preventDefault(); + } + }); + + // content element + t.content = $('
', { + 'class': 'cbp-popup-content' + }).appendTo(t.wrap); + + // append loading div + // $('
', { + // 'class': 'cbp-popup-loadingBox' + // }).appendTo(t.wrap); + + // create navigation block + t.navigation = $('
', { + 'class': 'cbp-popup-navigation' + }).appendTo(t.wrap); + + // close + t.closeButton = $('
', { + 'class': 'cbp-popup-close', + 'title': 'Close (Esc arrow key)', + 'data-action': 'close' + }).appendTo(t.navigation); + }, + + destroy: function() { + var t = this, + body = $('body'); + + // remove off key down + $(document).off('keydown.cbp'); + + // external lightbox and singlePageInline + body.off('click.cbp', t.options.lightboxDelegate); + body.off('click.cbp', t.options.singlePageDelegate); + + t.content.off('click.cbp', t.options.singlePageDelegate); + + t.cubeportfolio.$obj.off('click.cbp', t.options.singlePageInlineDelegate); + t.cubeportfolio.$obj.off('click.cbp', t.options.lightboxDelegate); + t.cubeportfolio.$obj.off('click.cbp', t.options.singlePageDelegate); + + t.cubeportfolio.$obj.removeClass('cbp-popup-isOpening'); + + t.cubeportfolio.$obj.find('.cbp-item').removeClass('cbp-singlePageInline-active'); + + t.wrap.remove(); + }, + + openLightbox: function(blocks, currentBlock) { + var t = this, + i = 0, + currentBlockHref, tempHref = [], + element; + + if (t.isOpen) { + return; + } + + lightboxIsOpen = true; + + // remember that the lightbox is open now + t.isOpen = true; + + // remember to stop all events after the lightbox has been shown + t.stopEvents = false; + + // array with elements + t.dataArray = []; + + // reset current + t.current = null; + + currentBlockHref = currentBlock.getAttribute('href'); + if (currentBlockHref === null) { + throw new Error('HEI! Your clicked element doesn\'t have a href attribute.'); + } + + $.each(blocks, function(index, item) { + var href = item.getAttribute('href'), + src = href, // default if element is image + type = 'isImage', // default if element is image + videoLink; + + if ($.inArray(href, tempHref) === -1) { + if (currentBlockHref === href) { + t.current = i; + } else if (!t.options.lightboxGallery) { + return; + } + + if (/youtu\.?be/i.test(href)) { + var indexVideo = href.lastIndexOf('v=') + 2; + + if (indexVideo === 1) { + indexVideo = href.lastIndexOf('/') + 1; + } + + videoLink = href.substring(indexVideo); + + if (!(/autoplay=/i.test(videoLink))) { + videoLink += '&autoplay=1'; + } + + videoLink = videoLink.replace(/\?|&/, '?'); + + // create new href + src = '//www.youtube.com/embed/' + videoLink; + + type = 'isYoutube'; + } else if (/vimeo\.com/i.test(href)) { + videoLink = href.substring(href.lastIndexOf('/') + 1); + + if (!(/autoplay=/i.test(videoLink))) { + videoLink += '&autoplay=1'; + } + + videoLink = videoLink.replace(/\?|&/, '?'); + + // create new href + src = '//player.vimeo.com/video/' + videoLink; + + type = 'isVimeo'; + } else if (/www\.ted\.com/i.test(href)) { + // create new href + src = 'http://embed.ted.com/talks/' + href.substring(href.lastIndexOf('/') + 1) + '.html'; + + type = 'isTed'; + } else if (/soundcloud\.com/i.test(href)) { + // create new href + src = href; + + type = 'isSoundCloud'; + } else if (/(\.mp4)|(\.ogg)|(\.ogv)|(\.webm)/i.test(href)) { + if (href.indexOf('|') !== -1) { + // create new href + src = href.split('|'); + } else { + // create new href + src = href.split('%7C'); + } + + type = 'isSelfHostedVideo'; + } else if (/\.mp3$/i.test(href)) { + src = href; + type = 'isSelfHostedAudio'; + } + + t.dataArray.push({ + src: src, + title: item.getAttribute(t.options.lightboxTitleSrc), + type: type + }); + + i++; + } + + tempHref.push(href); + }); + + // total numbers of elements + t.counterTotal = t.dataArray.length; + + if (t.counterTotal === 1) { + t.nextButton.hide(); + t.prevButton.hide(); + t.dataActionImg = ''; + } else { + t.nextButton.show(); + t.prevButton.show(); + t.dataActionImg = 'data-action="next"'; + } + + // append to body + t.wrap.appendTo(document.body); + + t.scrollTop = $(window).scrollTop(); + + t.originalStyle = $('html').attr('style'); + + $('html').css({ + overflow: 'hidden', + marginRight: window.innerWidth - $(document).width() + }); + + t.wrap.addClass('cbp-popup-transitionend'); + + // show the wrapper (lightbox box) + t.wrap.show(); + + // get the current element + element = t.dataArray[t.current]; + + // call function if current element is image or video (iframe) + t[element.type](element); + }, + + openSinglePage: function(blocks, currentBlock) { + var t = this, + i = 0, + currentBlockHref, tempHref = []; + + if (t.isOpen) { + return; + } + + // check singlePageInline and close it + if (t.cubeportfolio.singlePageInline && t.cubeportfolio.singlePageInline.isOpen) { + t.cubeportfolio.singlePageInline.close(); + } + + // remember that the lightbox is open now + t.isOpen = true; + + // remember to stop all events after the popup has been showing + t.stopEvents = false; + + // array with elements + t.dataArray = []; + + // reset current + t.current = null; + + currentBlockHref = currentBlock.getAttribute('href'); + if (currentBlockHref === null) { + throw new Error('HEI! Your clicked element doesn\'t have a href attribute.'); + } + + $.each(blocks, function(index, item) { + var href = item.getAttribute('href'); + + if ($.inArray(href, tempHref) === -1) { + if (currentBlockHref === href) { + t.current = i; + } + + t.dataArray.push({ + url: href, + element: item + }); + + i++; + } + + tempHref.push(href); + }); + + // total numbers of elements + t.counterTotal = t.dataArray.length; + + if (t.counterTotal === 1) { + t.nextButton.hide(); + t.prevButton.hide(); + } else { + t.nextButton.show(); + t.prevButton.show(); + } + + // append to body + t.wrap.appendTo(document.body); + + t.scrollTop = $(window).scrollTop(); + + // go to top of the page (reset scroll) + t.contentWrap.scrollTop(0); + + // show the wrapper + t.wrap.show(); + + // finish the open animation + t.finishOpen = 2; + + // if transitionend is not fulfilled + t.navigationMobile = $(); + t.wrap.one(CubePortfolio.private.transitionend, function() { + $('html').css({ + overflow: 'hidden', + marginRight: window.innerWidth - $(document).width() + }); + + t.wrap.addClass('cbp-popup-transitionend'); + + // make the navigation sticky + if (t.options.singlePageStickyNavigation) { + + t.wrap.addClass('cbp-popup-singlePage-sticky'); + t.navigationWrap.width(t.contentWrap[0].clientWidth); + } + + t.finishOpen--; + + if (t.finishOpen <= 0) { + t.updateSinglePageIsOpen.call(t); + } + }); + + if (CubePortfolio.private.browser === 'ie8' || CubePortfolio.private.browser === 'ie9') { + $('html').css({ + overflow: 'hidden', + marginRight: window.innerWidth - $(document).width() + }); + + t.wrap.addClass('cbp-popup-transitionend'); + + // make the navigation sticky + if (t.options.singlePageStickyNavigation) { + t.navigationWrap.width(t.contentWrap[0].clientWidth); + + setTimeout(function() { + t.wrap.addClass('cbp-popup-singlePage-sticky'); + }, 1000); + } + + t.finishOpen--; + } + + t.wrap.addClass('cbp-popup-loading'); + + // force reflow and then add class + t.wrap.offset(); + t.wrap.addClass('cbp-popup-singlePage-open'); + + // change link + if (t.options.singlePageDeeplinking) { + // ignore old #cbp from href + t.url = t.url.split('#cbp=')[0]; + location.href = t.url + '#cbp=' + t.dataArray[t.current].url; + } + + // run callback function + if ($.isFunction(t.options.singlePageCallback)) { + t.options.singlePageCallback.call(t, t.dataArray[t.current].url, t.dataArray[t.current].element); + } + + // ios bug to prevent + // http://stackoverflow.com/questions/9280258/prevent-body-scrolling-but-allow-overlay-scrolling + if (CubePortfolio.private.browser === 'ios') { + var element = t.contentWrap[0]; + + element.addEventListener('touchstart', function() { + var top = element.scrollTop, + totalScroll = element.scrollHeight, + currentScroll = top + element.offsetHeight; + + if (top === 0) { + element.scrollTop = 1; + } else if (currentScroll === totalScroll) { + element.scrollTop = top - 1; + } + }); + } + }, + + openSinglePageInline: function(blocks, currentBlock, fromOpen) { + var t = this, + start = 0, + currentBlockHref, + tempCurrent, + cbpitem, + parentElement; + + fromOpen = fromOpen || false; + + t.fromOpen = fromOpen; + + t.storeBlocks = blocks; + t.storeCurrentBlock = currentBlock; + + // check singlePageInline and close it + if (t.isOpen) { + tempCurrent = t.cubeportfolio.blocksOn.index($(currentBlock).closest('.cbp-item')); + + if ((t.dataArray[t.current].url !== currentBlock.getAttribute('href')) || (t.current !== tempCurrent)) { + t.cubeportfolio.singlePageInline.close('open', { + blocks: blocks, + currentBlock: currentBlock, + fromOpen: true + }); + } else { + t.close(); + } + + return; + } + + // remember that the lightbox is open now + t.isOpen = true; + + // remember to stop all events after the popup has been showing + t.stopEvents = false; + + // array with elements + t.dataArray = []; + + // reset current + t.current = null; + + currentBlockHref = currentBlock.getAttribute('href'); + if (currentBlockHref === null) { + throw new Error('HEI! Your clicked element doesn\'t have a href attribute.'); + } + + cbpitem = $(currentBlock).closest('.cbp-item')[0]; + + blocks.each(function(index, el) { + if (cbpitem === el) { + t.current = index; + } + }); + + t.dataArray[t.current] = { + url: currentBlockHref, + element: currentBlock + }; + + parentElement = $(t.dataArray[t.current].element).parents('.cbp-item').addClass('cbp-singlePageInline-active'); + + // total numbers of elements + t.counterTotal = blocks.length; + + t.wrap.insertBefore(t.cubeportfolio.wrapper); + + t.topDifference = 0; + + if (t.options.singlePageInlinePosition === 'top') { + t.blocksToMove = blocks; + t.top = 0; + } else if (t.options.singlePageInlinePosition === 'bottom') { + t.blocksToMove = $(); + t.top = t.cubeportfolio.height; + } else if (t.options.singlePageInlinePosition === 'above') { + var top = $(blocks[t.current]).data('cbp').top; + t.top = top; + + // set the top value + blocks.each(function(index, block) { + var data = $(block).data('cbp'); + var topBlock = data.top; + var bottomBlock = topBlock + data.heightAndGap; + + if (topBlock >= top) { + return; + } + + if (bottomBlock > t.top) { + t.top = bottomBlock; + t.topDifference = t.top - top; + } + }); + + // set moving blocks + t.blocksToMove = $(); + blocks.each(function(index, block) { + if (index === t.current) { + t.blocksToMove = t.blocksToMove.add(block); + return; + } + + var data = $(block).data('cbp'); + var bottomBlock = data.top + data.heightAndGap; + + if (bottomBlock > t.top) { + t.blocksToMove = t.blocksToMove.add(block); + } + }); + + t.top = Math.max(t.top - t.options.gapHorizontal, 0); + } else { // below + var currentEl = $(blocks[t.current]); + var data = currentEl.data('cbp'); + var end = data.top + data.heightAndGap; + + t.top = end; + + t.blocksToMove = $(); + + blocks.each(function(index, block) { + var data = $(block).data('cbp'); + var topEl = data.top; + var endEl = topEl + data.height; + + if (endEl <= end) { + return; + } + + if (topEl >= (end - data.height / 2)) { + t.blocksToMove = t.blocksToMove.add(block); + return; + } + + if ((endEl > end) && (topEl < end)) { + if (endEl > t.top) { + t.top = endEl; + } + + if ((endEl - end) > t.topDifference) { + t.topDifference = endEl - end; + } + } + }); + } + + t.wrap[0].style.height = t.wrap.outerHeight(true) + 'px'; + + // debouncer for inline content + t.deferredInline = $.Deferred(); + + if (t.options.singlePageInlineInFocus) { + t.scrollTop = $(window).scrollTop(); + + var goToScroll = t.cubeportfolio.$obj.offset().top + t.top - 100; + + if (t.scrollTop !== goToScroll) { + $('html,body').animate({ + scrollTop: goToScroll + }, 350) + .promise() + .then(function() { + t.resizeSinglePageInline(); + t.deferredInline.resolve(); + }); + } else { + t.resizeSinglePageInline(); + t.deferredInline.resolve(); + } + } else { + t.resizeSinglePageInline(); + t.deferredInline.resolve(); + } + + t.cubeportfolio.$obj.addClass('cbp-popup-singlePageInline-open'); + + t.wrap.css({ + top: t.top + }); + + // change link + if (t.options.singlePageInlineDeeplinking) { + // ignore old #cbpi from href + t.url = t.url.split('#cbpi=')[0]; + location.href = t.url + '#cbpi=' + t.dataArray[t.current].url; + } + + // register callback function + if ($.isFunction(t.options.singlePageInlineCallback)) { + t.options.singlePageInlineCallback.call(t, t.dataArray[t.current].url, t.dataArray[t.current].element); + } + }, + + resizeSinglePageInline: function() { + var t = this; + + t.height = ((t.top === 0) || (t.top === t.cubeportfolio.height)) ? t.wrap.outerHeight(true) : t.wrap.outerHeight(true) - t.options.gapHorizontal; + + t.height += t.topDifference; + + t.storeBlocks.each(function(index, el) { + if (CubePortfolio.private.modernBrowser) { + el.style[CubePortfolio.private.transform] = ''; + } else { + el.style.marginTop = ''; + } + }); + + t.blocksToMove.each(function(index, el) { + if (CubePortfolio.private.modernBrowser) { + el.style[CubePortfolio.private.transform] = 'translate3d(0px, ' + t.height + 'px, 0)'; + } else { + el.style.marginTop = t.height + 'px'; + } + }); + + t.cubeportfolio.obj.style.height = t.cubeportfolio.height + t.height + 'px'; + }, + + revertResizeSinglePageInline: function() { + var t = this; + + // reset deferred object + t.deferredInline = $.Deferred(); + + t.storeBlocks.each(function(index, el) { + if (CubePortfolio.private.modernBrowser) { + el.style[CubePortfolio.private.transform] = ''; + } else { + el.style.marginTop = ''; + } + }); + + t.cubeportfolio.obj.style.height = t.cubeportfolio.height + 'px'; + }, + + appendScriptsToWrap: function(scripts) { + var t = this, + index = 0, + loadScripts = function(item) { + var script = document.createElement('script'), + src = item.src; + + script.type = 'text/javascript'; + + if (script.readyState) { // ie + script.onreadystatechange = function() { + if (script.readyState == 'loaded' || script.readyState == 'complete') { + script.onreadystatechange = null; + index++; + if (scripts[index]) { + loadScripts(scripts[index]); + } + } + }; + } else { + script.onload = function() { + index++; + if (scripts[index]) { + loadScripts(scripts[index]); + } + }; + } + + if (src) { + script.src = src; + } else { + script.text = item.text; + } + + t.content[0].appendChild(script); + + }; + + loadScripts(scripts[0]); + }, + + updateSinglePage: function(html, scripts, isWrap) { + var t = this, + counterMarkup, + animationFinish; + + t.content.addClass('cbp-popup-content').removeClass('cbp-popup-content-basic'); + + if (isWrap === false) { + t.content.removeClass('cbp-popup-content').addClass('cbp-popup-content-basic'); + } + + // update counter navigation + if (t.counter) { + counterMarkup = $(t.getCounterMarkup(t.options.singlePageCounter, t.current + 1, t.counterTotal)); + t.counter.text(counterMarkup.text()); + } + + t.fromAJAX = { + html: html, + scripts: scripts + }; + + t.finishOpen--; + + if (t.finishOpen <= 0) { + t.updateSinglePageIsOpen.call(t); + } + }, + + updateSinglePageIsOpen: function() { + var t = this, + selectorSlider; + + t.wrap.addClass('cbp-popup-ready'); + t.wrap.removeClass('cbp-popup-loading'); + + t.content.html(t.fromAJAX.html); + + if (t.fromAJAX.scripts) { + t.appendScriptsToWrap(t.fromAJAX.scripts); + } + + t.fromAJAX = {}; + + + // trigger public event + t.cubeportfolio.$obj.trigger('updateSinglePageStart.cbp'); + + // instantiate slider if exists + selectorSlider = t.content.find('.cbp-slider'); + if (selectorSlider.length) { + selectorSlider.find('.cbp-slider-item').addClass('cbp-item'); + t.slider = selectorSlider.cubeportfolio({ + layoutMode: 'slider', + mediaQueries: [{ + width: 1, + cols: 1 + }], + gapHorizontal: 0, + gapVertical: 0, + caption: '', + coverRatio: '', // wp version only + }); + } else { + t.slider = null; + } + + // check for social share icons + t.checkForSocialLinks(t.content); + + // trigger public event + t.cubeportfolio.$obj.trigger('updateSinglePageComplete.cbp'); + }, + + checkForSocialLinks: function(content) { + var t = this; + + t.createFacebookShare(content.find('.cbp-social-fb')); + t.createTwitterShare(content.find('.cbp-social-twitter')); + t.createGooglePlusShare(content.find('.cbp-social-googleplus')); + t.createPinterestShare(content.find('.cbp-social-pinterest')); + }, + + createFacebookShare: function(item) { + if (item.length && !item.attr('onclick')) { + item.attr('onclick', "window.open('http://www.facebook.com/sharer.php?u=" + encodeURIComponent(window.location.href) + "', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=400'); return false;"); + } + }, + + createTwitterShare: function(item) { + if (item.length && !item.attr('onclick')) { + item.attr('onclick', "window.open('https://twitter.com/intent/tweet?source=" + encodeURIComponent(window.location.href) + "&text=" + encodeURIComponent(document.title) + "', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=300'); return false;"); + } + }, + + createGooglePlusShare: function(item) { + if (item.length && !item.attr('onclick')) { + item.attr('onclick', "window.open('https://plus.google.com/share?url=" + encodeURIComponent(window.location.href) + "', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=450'); return false;"); + } + }, + + createPinterestShare: function(item) { + if (item.length && !item.attr('onclick')) { + var media = ''; + var firstImg = this.content.find('img')[0]; + + if (firstImg) { + media = firstImg.src; + } + + item.attr('onclick', "window.open('http://pinterest.com/pin/create/button/?url=" + encodeURIComponent(window.location.href) + "&media=" + media + "', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=400'); return false;"); + } + }, + + updateSinglePageInline: function(html, scripts) { + var t = this; + + t.content.html(html); + + if (scripts) { + t.appendScriptsToWrap(scripts); + } + + // trigger public event + t.cubeportfolio.$obj.trigger('updateSinglePageInlineStart.cbp'); + + if (t.localOptions.delay !== 0) { + setTimeout(function() { + t.singlePageInlineIsOpen.call(t); + }, t.localOptions.delay) + } else { + t.singlePageInlineIsOpen.call(t); + } + }, + + singlePageInlineIsOpen: function() { + var t = this; + + function finishLoading() { + t.wrap.addClass('cbp-popup-singlePageInline-ready'); + t.wrap[0].style.height = ''; + + t.resizeSinglePageInline(); + + // trigger public event + t.cubeportfolio.$obj.trigger('updateSinglePageInlineComplete.cbp'); + } + + // wait to load all images + t.cubeportfolio.loadImages(t.wrap, function() { + // instantiate slider if exists + var selectorSlider = t.content.find('.cbp-slider'); + + if (selectorSlider.length) { + selectorSlider.find('.cbp-slider-item').addClass('cbp-item'); + + selectorSlider.one('initComplete.cbp', function() { + t.deferredInline.done(finishLoading); + }); + + selectorSlider.on('pluginResize.cbp', function() { + t.deferredInline.done(finishLoading); + }); + + t.slider = selectorSlider.cubeportfolio({ + layoutMode: 'slider', + displayType: 'default', + mediaQueries: [{ + width: 1, + cols: 1 + }], + gapHorizontal: 0, + gapVertical: 0, + caption: '', + coverRatio: '', // wp version only + }); + } else { + t.slider = null; + t.deferredInline.done(finishLoading); + } + + // check for social share icons + t.checkForSocialLinks(t.content); + }); + }, + + isImage: function(el) { + var t = this, + img = new Image(); + + t.tooggleLoading(true); + + t.cubeportfolio.loadImages($('
'), function() { + t.updateImagesMarkup(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + + t.tooggleLoading(false); + }); + }, + + isVimeo: function(el) { + var t = this; + t.updateVideoMarkup(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + }, + + isYoutube: function(el) { + var t = this; + t.updateVideoMarkup(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + }, + + isTed: function(el) { + var t = this; + t.updateVideoMarkup(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + }, + + isSoundCloud: function(el) { + var t = this; + t.updateVideoMarkup(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + }, + + isSelfHostedVideo: function(el) { + var t = this; + t.updateSelfHostedVideo(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + }, + + isSelfHostedAudio: function(el) { + var t = this; + t.updateSelfHostedAudio(el.src, el.title, t.getCounterMarkup(t.options.lightboxCounter, t.current + 1, t.counterTotal)); + }, + + getCounterMarkup: function(markup, current, total) { + if (!markup.length) { + return ''; + } + + var mapObj = { + current: current, + total: total + }; + + return markup.replace(/\{\{current}}|\{\{total}}/gi, function(matched) { + return mapObj[matched.slice(2, -2)]; + }); + }, + + updateSelfHostedVideo: function(src, title, counter) { + var t = this, + i; + + t.wrap.addClass('cbp-popup-lightbox-isIframe'); + + var markup = '
' + + '' + + '
' + + ((title) ? '
' + title + '
' : '') + + counter + + '
' + + '
'; + + t.content.html(markup); + t.wrap.addClass('cbp-popup-ready'); + t.preloadNearbyImages(); + }, + + updateSelfHostedAudio: function(src, title, counter) { + var t = this, + i; + + t.wrap.addClass('cbp-popup-lightbox-isIframe'); + + var markup = '
' + + '
' + + '
' + + ((title) ? '
' + title + '
' : '') + + counter + + '
' + + '
'; + + t.content.html(markup); + t.wrap.addClass('cbp-popup-ready'); + t.preloadNearbyImages(); + }, + + updateVideoMarkup: function(src, title, counter) { + var t = this; + t.wrap.addClass('cbp-popup-lightbox-isIframe'); + + var markup = '
' + + '' + + '
' + + ((title) ? '
' + title + '
' : '') + + counter + + '
' + + '
'; + + t.content.html(markup); + t.wrap.addClass('cbp-popup-ready'); + t.preloadNearbyImages(); + }, + + updateImagesMarkup: function(src, title, counter) { + var t = this; + + t.wrap.removeClass('cbp-popup-lightbox-isIframe'); + + var markup = '
' + + '' + + '
' + + ((title) ? '
' + title + '
' : '') + + counter + + '
' + + '
'; + + t.content.html(markup); + t.wrap.addClass('cbp-popup-ready'); + t.resizeImage(); + t.preloadNearbyImages(); + }, + + next: function() { + var t = this; + t[t.type + 'JumpTo'](1); + }, + + prev: function() { + var t = this; + t[t.type + 'JumpTo'](-1); + }, + + lightboxJumpTo: function(index) { + var t = this, + el; + + t.current = t.getIndex(t.current + index); + + // get the current element + el = t.dataArray[t.current]; + + // call function if current element is image or video (iframe) + t[el.type](el); + }, + + singlePageJumpTo: function(index) { + var t = this; + + t.current = t.getIndex(t.current + index); + + // register singlePageCallback function + if ($.isFunction(t.options.singlePageCallback)) { + t.resetWrap(); + + // go to top of the page (reset scroll) + t.contentWrap.scrollTop(0); + + t.wrap.addClass('cbp-popup-loading'); + + if (t.slider) { + CubePortfolio.private.resize.destroyEvent($.data(t.slider[0], 'cubeportfolio')); + } + + t.options.singlePageCallback.call(t, t.dataArray[t.current].url, t.dataArray[t.current].element); + + if (t.options.singlePageDeeplinking) { + location.href = t.url + '#cbp=' + t.dataArray[t.current].url; + } + } + }, + + resetWrap: function() { + var t = this; + + if (t.type === 'singlePage' && t.options.singlePageDeeplinking) { + location.href = t.url + '#'; + } + + if (t.type === 'singlePageInline' && t.options.singlePageInlineDeeplinking) { + location.href = t.url + '#'; + } + }, + + getIndex: function(index) { + var t = this; + + // go to interval [0, (+ or -)this.counterTotal.length - 1] + index = index % t.counterTotal; + + // if index is less then 0 then go to interval (0, this.counterTotal - 1] + if (index < 0) { + index = t.counterTotal + index; + } + + return index; + }, + + close: function(method, data) { + var t = this; + + function finishClose() { + // remove resize event + if (t.slider) { + CubePortfolio.private.resize.destroyEvent($.data(t.slider[0], 'cubeportfolio')); + } + + // reset content + t.content.html(''); + + // hide the wrap + t.wrap.detach(); + + t.cubeportfolio.$obj.removeClass('cbp-popup-singlePageInline-open cbp-popup-singlePageInline-close'); + + // now the popup is closed + t.isOpen = false; + + if (method === 'promise') { + if ($.isFunction(data.callback)) { + data.callback.call(t.cubeportfolio); + } + } + } + + function checkFocusInline() { + // add this to prevent the page to jump after the resetWrap + var scrollTop = $(window).scrollTop(); + t.resetWrap(); + $(window).scrollTop(scrollTop); + + if (t.options.singlePageInlineInFocus && method !== 'promise') { + $('html,body').animate({ + scrollTop: t.scrollTop + }, 350) + .promise() + .then(function() { + finishClose(); + }); + } else { + finishClose(); + } + } + + if (t.type === 'singlePageInline') { + if (method === 'open') { + t.wrap.removeClass('cbp-popup-singlePageInline-ready'); + $(t.dataArray[t.current].element).closest('.cbp-item').removeClass('cbp-singlePageInline-active'); + + // now the popup is closed + t.isOpen = false; + + t.openSinglePageInline(data.blocks, data.currentBlock, data.fromOpen); + } else { + t.height = 0; + + t.revertResizeSinglePageInline(); + t.wrap.removeClass('cbp-popup-singlePageInline-ready'); + t.cubeportfolio.$obj.addClass('cbp-popup-singlePageInline-close'); + t.cubeportfolio.$obj.find('.cbp-item').removeClass('cbp-singlePageInline-active'); + + if (CubePortfolio.private.modernBrowser) { + t.wrap.one(CubePortfolio.private.transitionend, function() { + checkFocusInline(); + }); + } else { + checkFocusInline(); + } + } + + } else if (t.type === 'singlePage') { + t.resetWrap(); + + t.stopScroll = true; + + t.wrap.removeClass('cbp-popup-ready cbp-popup-transitionend cbp-popup-singlePage-open cbp-popup-singlePage-sticky'); + + $('html').css({ + overflow: '', + marginRight: '', + position: '' + }); + + $(window).scrollTop(t.scrollTop); + + if (CubePortfolio.private.browser === 'ie8' || CubePortfolio.private.browser === 'ie9') { + // remove resize event + if (t.slider) { + CubePortfolio.private.resize.destroyEvent($.data(t.slider[0], 'cubeportfolio')); + } + + // reset content + t.content.html(''); + + // hide the wrap + t.wrap.detach(); + + // now the popup is closed + t.isOpen = false; + } + + t.wrap.one(CubePortfolio.private.transitionend, function() { + // remove resize event + if (t.slider) { + CubePortfolio.private.resize.destroyEvent($.data(t.slider[0], 'cubeportfolio')); + } + + // reset content + t.content.html(''); + + // hide the wrap + t.wrap.detach(); + + // now the popup is closed + t.isOpen = false; + }); + } else { + lightboxIsOpen = false; + + if (t.originalStyle) { + $('html').attr('style', t.originalStyle); + } else { + $('html').css({ + overflow: '', + marginRight: '' + }); + } + + $(window).scrollTop(t.scrollTop); + + // remove resize event + if (t.slider) { + CubePortfolio.private.resize.destroyEvent($.data(t.slider[0], 'cubeportfolio')); + } + + // reset content + t.content.html(''); + + // hide the wrap + t.wrap.detach(); + + // now the popup is closed + t.isOpen = false; + } + }, + + tooggleLoading: function(state) { + var t = this; + + t.stopEvents = state; + t.wrap[(state) ? 'addClass' : 'removeClass']('cbp-popup-loading'); + }, + + resizeImage: function() { + // if lightbox is not open go out + if (!this.isOpen) { + return; + } + + var img = this.content.find('img'); + var figure = img.parent(); + var height = $(window).height() - (figure.outerHeight(true) - figure.height()) - this.content.find('.cbp-popup-lightbox-bottom').outerHeight(true); + + img.css('max-height', height + 'px'); + }, + + preloadNearbyImages: function() { + var t = this; + var arr = [ + t.getIndex(t.current + 1), + t.getIndex(t.current + 2), + t.getIndex(t.current + 3), + t.getIndex(t.current - 1), + t.getIndex(t.current - 2), + t.getIndex(t.current - 3), + ]; + + for (var i = arr.length - 1; i >= 0; i--) { + if (t.dataArray[arr[i]].type === 'isImage') { + t.cubeportfolio.checkSrc(t.dataArray[arr[i]]); + } + } + } + }; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + // if lightboxShowCounter is false, put lightboxCounter to '' + if (parent.options.lightboxShowCounter === false) { + parent.options.lightboxCounter = ''; + } + + // if singlePageShowCounter is false, put singlePageCounter to '' + if (parent.options.singlePageShowCounter === false) { + parent.options.singlePageCounter = ''; + } + + // @todo - schedule this in future + parent.registerEvent('initStartRead', function() { + t.run(); + }, true); + } + + // little hack for keydown issue when lightbox & singlePage is open + var lightboxIsOpen = false; + var lightboxInit = false; + var singlePageInit = false; + + Plugin.prototype.run = function() { + var t = this, + p = t.parent, + body = $(document.body); + + // default value for lightbox + p.lightbox = null; + + // LIGHTBOX + if (p.options.lightboxDelegate && !lightboxInit) { + // init only one time @todo + lightboxInit = true; + + p.lightbox = Object.create(popup); + p.lightbox.init(p, 'lightbox'); + + body.on('click.cbp', p.options.lightboxDelegate, function(e) { + e.preventDefault(); + + var self = $(this), + gallery = self.attr('data-cbp-lightbox'), + scope = t.detectScope(self), + cbp = scope.data('cubeportfolio'), + blocks = []; + + // is inside a cbp + if (cbp) { + cbp.blocksOn.each(function(index, el) { + var item = $(el); + + if (item.not('.cbp-item-off')) { + item.find(p.options.lightboxDelegate).each(function(index2, el2) { + if (gallery) { + if ($(el2).attr('data-cbp-lightbox') === gallery) { + blocks.push(el2); + } + } else { + blocks.push(el2); + } + }); + } + }); + } else { + if (gallery) { + blocks = scope.find(p.options.lightboxDelegate + '[data-cbp-lightbox=' + gallery + ']'); + } else { + blocks = scope.find(p.options.lightboxDelegate); + } + } + + p.lightbox.openLightbox(blocks, self[0]); + }); + } + + // default value for singlePage + p.singlePage = null; + + // SINGLEPAGE + if (p.options.singlePageDelegate && !singlePageInit) { + // init only one time @todo + singlePageInit = true; + + p.singlePage = Object.create(popup); + p.singlePage.init(p, 'singlePage'); + + body.on('click.cbp', p.options.singlePageDelegate, function(e) { + e.preventDefault(); + + var self = $(this), + gallery = self.attr('data-cbp-singlePage'), + scope = t.detectScope(self), + cbp = scope.data('cubeportfolio'), + blocks = []; + + // is inside a cbp + if (cbp) { + cbp.blocksOn.each(function(index, el) { + var item = $(el); + + if (item.not('.cbp-item-off')) { + item.find(p.options.singlePageDelegate).each(function(index2, el2) { + if (gallery) { + if ($(el2).attr('data-cbp-singlePage') === gallery) { + blocks.push(el2); + } + } else { + blocks.push(el2); + } + }); + } + }); + } else { + if (gallery) { + blocks = scope.find(p.options.singlePageDelegate + '[data-cbp-singlePage=' + gallery + ']'); + } else { + blocks = scope.find(p.options.singlePageDelegate); + } + } + + p.singlePage.openSinglePage(blocks, self[0]); + }); + } + + // default value for singlePageInline + p.singlePageInline = null; + + // SINGLEPAGEINLINE + if (p.options.singlePageInlineDelegate) { + p.singlePageInline = Object.create(popup); + + p.singlePageInline.init(p, 'singlePageInline'); + + p.$obj.on('click.cbp', p.options.singlePageInlineDelegate, function(e) { + e.preventDefault(); + + var oldDate = $.data(this, 'cbp-locked'), + newDate = $.data(this, 'cbp-locked', +new Date()); + + if (!oldDate || ((newDate - oldDate) > 300)) { + p.singlePageInline.openSinglePageInline(p.blocksOn, this); + } + }); + } + }; + + Plugin.prototype.detectScope = function(item) { + var singlePageInline, + singlePage, + cbp; + + singlePageInline = item.closest('.cbp-popup-singlePageInline'); + if (singlePageInline.length) { + cbp = item.closest('.cbp', singlePageInline[0]); + return (cbp.length) ? cbp : singlePageInline; + } + + singlePage = item.closest('.cbp-popup-singlePage'); + if (singlePage.length) { + cbp = item.closest('.cbp', singlePage[0]); + return (cbp.length) ? cbp : singlePage; + } + + cbp = item.closest('.cbp'); + return (cbp.length) ? cbp : $(document.body); + + }; + + Plugin.prototype.destroy = function() { + var p = this.parent; + + $(document.body).off('click.cbp'); + + // @todo - remove these from here + lightboxInit = false; + singlePageInit = false; + + // destroy lightbox if enabled + if (p.lightbox) { + p.lightbox.destroy(); + } + + // destroy singlePage if enabled + if (p.singlePage) { + p.singlePage.destroy(); + } + + // destroy singlePage inline if enabled + if (p.singlePageInline) { + p.singlePageInline.destroy(); + } + }; + + CubePortfolio.plugins.popUp = function(parent) { + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.searchInput = $(parent.options.search); + + t.searchInput.each(function(index, el) { + var selector = el.getAttribute('data-search'); + + if (!selector) { + selector = '*'; + } + + $.data(el, 'searchData', { + value: el.value, + el: selector + }); + }); + + var timeout = null; + + t.searchInput.on('keyup.cbp paste.cbp', function(e) { + e.preventDefault(); + + var el = $(this); + + clearTimeout(timeout); + timeout = setTimeout(function() { + t.runEvent.call(t, el); + }, 350); + }); + + t.searchNothing = t.searchInput.siblings('.cbp-search-nothing').detach(); + t.searchNothingHeight = null; + t.searchNothingHTML = t.searchNothing.html(); + + t.searchInput.siblings('.cbp-search-icon').on('click.cbp', function(e) { + e.preventDefault(); + + t.runEvent.call(t, $(this).prev().val('')); + }); + } + + Plugin.prototype.runEvent = function(el) { + var t = this, + value = el.val(), + searchData = el.data('searchData'), + reg = new RegExp(value, 'i'); + + if (searchData.value === value || t.parent.isAnimating) { + return; + } + + searchData.value = value; + + if (value.length > 0) { + el.attr('value', value); + } else { + el.removeAttr('value'); + } + + t.parent.$obj.cubeportfolio('filter', function(blocks) { + var blocksNew = blocks.filter(function(index, block) { + var text = $(block).find(searchData.el).text(); + + if (text.search(reg) > -1) { + return true; + } + }); + + if (blocksNew.length === 0 && t.searchNothing.length) { + var innerText = t.searchNothingHTML.replace('{{query}}', value); + t.searchNothing.html(innerText); + + t.searchNothing.appendTo(t.parent.$obj); + + if (t.searchNothingHeight === null) { + t.searchNothingHeight = t.searchNothing.outerHeight(true); + } + + t.parent.registerEvent('resizeMainContainer', function() { + t.parent.height = t.parent.height + t.searchNothingHeight; + t.parent.obj.style.height = t.parent.height + 'px'; + }, true); + } else { + t.searchNothing.detach(); + } + + // reset filters active class after the search is used + t.parent.triggerEvent('resetFiltersVisual'); + + return blocksNew; + }, function() { + el.trigger('keyup.cbp'); + }); + }; + + Plugin.prototype.destroy = function() { + var t = this; + + t.searchInput.off('.cbp'); + t.searchInput.next('.cbp-search-icon').off('.cbp'); + + t.searchInput.each(function(index, el) { + $.removeData(el); + }); + }; + + CubePortfolio.plugins.search = function(parent) { + if (parent.options.search === '') { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var options = { + /** + * Pagination custom selector + * Values: strings that represent the elements in the document (DOM selector). + */ + pagination: '', + paginationClass: 'cbp-pagination-active', + }; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.options = $.extend({}, options, t.parent.options.plugins.slider); + + var customPagination = $(t.options.pagination); + + if (customPagination.length > 0) { + t.parent.customPagination = customPagination; + t.parent.customPaginationItems = customPagination.children(); + t.parent.customPaginationClass = t.options.paginationClass; + + t.parent.customPaginationItems.on('click.cbp', function(e) { + e.preventDefault(); + e.stopImmediatePropagation(); + e.stopPropagation(); + + if (t.parent.sliderStopEvents) { + return; + } + + t.parent.jumpToSlider($(this)); + }); + } + + t.parent.registerEvent('gridAdjust', function() { + t.sliderMarkup.call(t.parent); + + t.parent.registerEvent('gridAdjust', function() { + t.updateSlider.call(t.parent); + }); + }, true); + } + + /** + * Create mark-up for slider layout + */ + Plugin.prototype.sliderMarkup = function() { + var t = this; + + t.sliderStopEvents = false; + + t.sliderActive = 0; + + t.$obj.one('initComplete.cbp', function() { + t.$obj.addClass('cbp-mode-slider'); + }); + + t.nav = $('
', { + 'class': 'cbp-nav' + }); + + t.nav.on('click.cbp', '[data-slider-action]', function(e) { + e.preventDefault(); + e.stopImmediatePropagation(); + e.stopPropagation(); + + if (t.sliderStopEvents) { + return; + } + + var el = $(this), + action = el.attr('data-slider-action'); + + if (t[action + 'Slider']) { + t[action + 'Slider'](el); + } + }); + + if (t.options.showNavigation) { + t.controls = $('
', { + 'class': 'cbp-nav-controls' + }); + + t.navPrev = $('
', { + 'class': 'cbp-nav-prev', + 'data-slider-action': 'prev' + }).appendTo(t.controls); + + t.navNext = $('
', { + 'class': 'cbp-nav-next', + 'data-slider-action': 'next' + }).appendTo(t.controls); + + t.controls.appendTo(t.nav); + } + + if (t.options.showPagination) { + t.navPagination = $('
', { + 'class': 'cbp-nav-pagination' + }).appendTo(t.nav); + } + + if (t.controls || t.navPagination) { + t.nav.appendTo(t.$obj); + } + + t.updateSliderPagination(); + + if (t.options.auto) { + if (t.options.autoPauseOnHover) { + t.mouseIsEntered = false; + t.$obj.on('mouseenter.cbp', function(e) { + t.mouseIsEntered = true; + t.stopSliderAuto(); + }).on('mouseleave.cbp', function(e) { + t.mouseIsEntered = false; + t.startSliderAuto(); + }); + } + + t.startSliderAuto(); + } + + if (t.options.drag && CubePortfolio.private.modernBrowser) { + t.dragSlider(); + } + }; + + Plugin.prototype.updateSlider = function() { + var t = this; + + t.updateSliderPosition(); + + t.updateSliderPagination(); + }; + + Plugin.prototype.destroy = function() { + var t = this; + + if (t.parent.customPaginationItems) { + t.parent.customPaginationItems.off('.cbp'); + } + + if (t.parent.controls || t.parent.navPagination) { + t.parent.nav.off('.cbp'); + t.parent.nav.remove(); + } + }; + + CubePortfolio.plugins.slider = function(parent) { + if (parent.options.layoutMode !== 'slider') { + return null; + } + + return new Plugin(parent); + }; +})(jQuery, window, document); +(function($, window, document, undefined) { + 'use strict'; + + var options = { + /** + * Define the wrapper for sort + * Values: strings that represent the elements in the document (DOM selector). + */ + element: '', + }; + + var CubePortfolio = $.fn.cubeportfolio.constructor; + + function Plugin(parent) { + var t = this; + + t.parent = parent; + + t.options = $.extend({}, options, t.parent.options.plugins.sort); + + t.element = $(t.options.element); + + if (t.element.length === 0) { + return; + } + + t.sort = ''; + t.sortBy = 'string:asc'; + + t.element.on('click.cbp', '.cbp-sort-item', function(event) { + event.preventDefault(); + + t.target = event.target; + + if ($(t.target).hasClass('cbp-l-dropdown-item--active') || parent.isAnimating) { + return; + } + + t.processSort(); + parent.$obj.cubeportfolio('filter', parent.defaultFilter); + }); + + // reset filters active class after the search is used + parent.registerEvent('triggerSort', function() { + if (t.target) { + t.processSort(); + parent.$obj.cubeportfolio('filter', parent.defaultFilter); + } + }); + + t.dropdownWrap = t.element.find('.cbp-l-dropdown-wrap') + .on({ + 'mouseover.cbp': function() { + $(this).addClass('cbp-l-dropdown-wrap--open'); + }, + 'mouseleave.cbp': function() { + $(this).removeClass('cbp-l-dropdown-wrap--open'); + } + }); + + t.dropdownHeader = t.element.find('.cbp-l-dropdown-header'); + } + + Plugin.prototype.processSort = function() { + var t = this; + var parent = t.parent; + + var target = t.target; + var hasSort = target.hasAttribute('data-sort'); + var hasSortBy = target.hasAttribute('data-sortBy'); + + if (hasSort && hasSortBy) { + t.sort = target.getAttribute('data-sort'); + t.sortBy = target.getAttribute('data-sortBy'); + } else if (hasSort) { + t.sort = target.getAttribute('data-sort'); + } else if (hasSortBy) { + t.sortBy = target.getAttribute('data-sortBy'); + } else { + return; + } + + var sortByArr = t.sortBy.split(':'); + var sortByType = 'string'; + var sortByDirection = 1; + + if (sortByArr[0] === 'int') { + sortByType = 'int'; + } else if (sortByArr[0] === 'float') { + sortByType = 'float'; + } + + if (sortByArr[1] === 'desc') { + sortByDirection = -1; + } + + if (t.sort) { + var obj = []; + + parent.blocks.each(function(index, el) { + var block = $(el); + + var sortText = block.find(t.sort).text(); + + if (sortByType === 'int') { + sortText = parseInt(sortText, 10); + } + + if (sortByType === 'float') { + sortText = parseFloat(sortText, 10); + } + + obj.push({ + sortText: sortText, + data: block.data('cbp'), + }); + }); + + obj.sort(function(obj1, obj2) { + var sortText1 = obj1.sortText; + var sortText2 = obj2.sortText; + + if (sortByType === 'string') { + sortText1 = sortText1.toUpperCase(); // ignore upper and lowercase + sortText2 = sortText2.toUpperCase(); // ignore upper and lowercase + } + + if (sortText1 < sortText2) { + return -sortByDirection; + } else if (sortText1 > sortText2) { + return sortByDirection; + } + + // names must be equal + return 0; + }); + + $.each(obj, function(index, val) { + val.data.index = index; + }); + } else { + var sortInvers = []; + + if (sortByDirection === -1) { + parent.blocks.each(function(index, el) { + sortInvers.push($(el).data('cbp').indexInitial); + }); + + // put sortInvers in inverse order + sortInvers.sort(function(a, b) { + return b - a; + }); + } + + parent.blocks.each(function(index, el) { + var data = $(el).data('cbp'); + + if (sortByDirection === -1) { + data.index = sortInvers[data.indexInitial]; + } else { + data.index = data.indexInitial; + } + }); + } + + parent.sortBlocks(parent.blocks, 'index'); + + t.dropdownWrap.trigger('mouseleave.cbp'); + + var target = $(t.target); + var targetParent = $(t.target).parent(); + + if (targetParent.hasClass('cbp-l-dropdown-list')) { + t.dropdownHeader.html(target.html()); + target.addClass('cbp-l-dropdown-item--active').siblings('.cbp-l-dropdown-item').removeClass('cbp-l-dropdown-item--active'); + } else if (targetParent.hasClass('cbp-l-direction')) { + var index = target.index(); + + if (index === 0) { + targetParent.addClass('cbp-l-direction--second').removeClass('cbp-l-direction--first'); + } else { + targetParent.addClass('cbp-l-direction--first').removeClass('cbp-l-direction--second'); + } + } + + }; + + Plugin.prototype.destroy = function() { + this.element.off('click.cbp'); + }; + + CubePortfolio.plugins.sort = function(parent) { + return new Plugin(parent); + }; +})(jQuery, window, document); diff --git a/cubeportfolio/js/jquery.cubeportfolio.min.js b/cubeportfolio/js/jquery.cubeportfolio.min.js new file mode 100644 index 0000000..cad562f --- /dev/null +++ b/cubeportfolio/js/jquery.cubeportfolio.min.js @@ -0,0 +1,12 @@ +/* +* Cube Portfolio - Responsive jQuery Grid Plugin +* +* version: 4.4.0 (1 August, 2018) +* require: jQuery v1.8+ +* +* Copyright 2013-2018, Mihai Buricea (http://scriptpie.com/cubeportfolio/live-preview/) +* Licensed under CodeCanyon License (http://codecanyon.net/licenses) +* +*/ + +!function(s,t,a,r){"use strict";function l(t,e,n){var i=this;if(s.data(t,"cubeportfolio"))throw new Error("cubeportfolio is already initialized. Destroy it before initialize again!");i.obj=t,i.$obj=s(t),s.data(i.obj,"cubeportfolio",i),e&&e.sortToPreventGaps!==r&&(e.sortByDimension=e.sortToPreventGaps,delete e.sortToPreventGaps),i.options=s.extend({},s.fn.cubeportfolio.options,e,i.$obj.data("cbp-options")),i.isAnimating=!0,i.defaultFilter=i.options.defaultFilter,i.registeredEvents=[],i.queue=[],i.addedWrapp=!1,s.isFunction(n)&&i.registerEvent("initFinish",n,!0);var o=i.$obj.children();i.$obj.addClass("cbp"),(0===o.length||o.first().hasClass("cbp-item"))&&(i.wrapInner(i.obj,"cbp-wrapper"),i.addedWrapp=!0),i.$ul=i.$obj.children().addClass("cbp-wrapper"),i.wrapInner(i.obj,"cbp-wrapper-outer"),i.wrapper=i.$obj.children(".cbp-wrapper-outer"),i.blocks=i.$ul.children(".cbp-item"),i.blocksOn=i.blocks,i.wrapInner(i.blocks,"cbp-item-wrapper"),i.plugins={},s.each(l.plugins,function(t,e){var n=e(i);n&&(i.plugins[t]=n)}),i.triggerEvent("afterPlugins"),i.removeAttrAfterStoreData=s.Deferred(),i.loadImages(i.$obj,i.display)}s.extend(l.prototype,{storeData:function(t,a){var r=this;a=a||0,t.each(function(t,e){var n=s(e),i=n.width(),o=n.height();n.data("cbp",{index:a+t,indexInitial:a+t,wrapper:n.children(".cbp-item-wrapper"),widthInitial:i,heightInitial:o,width:i,height:o,widthAndGap:i+r.options.gapVertical,heightAndGap:o+r.options.gapHorizontal,left:null,leftNew:null,top:null,topNew:null,pack:!1})}),this.removeAttrAfterStoreData.resolve()},wrapInner:function(t,e){var n,i,o;if(e=e||"",!(t.length&&t.length<1))for(t.length===r&&(t=[t]),i=t.length-1;0<=i;i--){for(n=t[i],(o=a.createElement("div")).setAttribute("class",e);n.childNodes.length;)o.appendChild(n.childNodes[0]);n.appendChild(o)}},removeAttrImage:function(t){this.removeAttrAfterStoreData.then(function(){t.removeAttribute("width"),t.removeAttribute("height"),t.removeAttribute("style")})},loadImages:function(e,o){var a=this;requestAnimationFrame(function(){var t=e.find("img").map(function(t,e){if(e.hasAttribute("width")&&e.hasAttribute("height")){if(e.style.width=e.getAttribute("width")+"px",e.style.height=e.getAttribute("height")+"px",e.hasAttribute("data-cbp-src"))return null;if(null===a.checkSrc(e))a.removeAttrImage(e);else{var n=s("");n.on("load.cbp error.cbp",function(){s(this).off("load.cbp error.cbp"),a.removeAttrImage(e)}),e.srcset?(n.attr("sizes",e.sizes||"100vw"),n.attr("srcset",e.srcset)):n.attr("src",e.src)}return null}return a.checkSrc(e)}),i=t.length;0!==i?s.each(t,function(t,e){var n=s("");n.on("load.cbp error.cbp",function(){s(this).off("load.cbp error.cbp"),0===--i&&o.call(a)}),e.srcset?(n.attr("sizes",e.sizes),n.attr("srcset",e.srcset)):n.attr("src",e.src)}):o.call(a)})},checkSrc:function(t){var e=t.srcset,n=t.src;if(""===n)return null;var i=s("");e?(i.attr("sizes",t.sizes||"100vw"),i.attr("srcset",e)):i.attr("src",n);var o=i[0];return o.complete&&o.naturalWidth!==r&&0!==o.naturalWidth?null:o},display:function(){var t=this;t.width=t.$obj.outerWidth(),t.triggerEvent("initStartRead"),t.triggerEvent("initStartWrite"),0=e.width)return n=e,!1}),n||(n=t.options.mediaQueries[t.options.mediaQueries.length-1]),t.triggerEvent("onMediaQueries",n.options),n.cols},columnWidthTruncate:function(t){return Math.floor(t)},resizeMainContainer:function(){var o,t=this,e=Math.max(t.freeSpaces.slice(-1)[0].topStart-t.options.gapHorizontal,0);"alignCenter"===t.options.gridAdjustment&&(o=0,t.blocksOn.each(function(t,e){var n=s(e).data("cbp"),i=n.left+n.width;oe.topStart?1:t.topStarte.leftStart?1:t.leftStart=n.leftEnd&&e.topStart<=n.topStart&&e.topEnd>=n.topEnd?(n=null,!1):void 0}),n})},uniqueFreeSpaces:function(){var e=[];l.each(this.freeSpaces,function(t,n){l.each(e,function(t,e){if(e.leftStart===n.leftStart&&e.leftEnd===n.leftEnd&&e.topStart===n.topStart&&e.topEnd===n.topEnd)return n=null,!1}),null!==n&&e.push(n)}),this.freeSpaces=e},addHeightToBlocks:function(){var o=this;l.each(o.freeSpaces,function(t,i){o.blocksOn.each(function(t,e){var n=l(e).data("cbp");!0===n.pack&&(o.intersectSpaces(i,n)&&-1===i.topStart-n.topNew-n.heightAndGap&&(e.style.height=n.height-1+"px"))})})},sortBlocks:function(t,o,a,r){a=void 0===a?"leftNew":a,r=void 0===r?1:-1,t.sort(function(t,e){var n=l(t).data("cbp"),i=l(e).data("cbp");return n[o]>i[o]?r:n[o]i[a]?r:n[a]i.index?r:n.index{{current}} of {{total}}
',singlePageDelegate:".cbp-singlePage",singlePageDeeplinking:!0,singlePageStickyNavigation:!0,singlePageCounter:'
{{current}} of {{total}}
',singlePageAnimation:"left",singlePageCallback:null,singlePageInlineDelegate:".cbp-singlePageInline",singlePageInlineDeeplinking:!1,singlePageInlinePosition:"top",singlePageInlineInFocus:!0,singlePageInlineCallback:null,plugins:{}},function(a,o,r,t){"use strict";var s=a.fn.cubeportfolio.constructor,l=a(o);s["private"]={publicEvents:function(e,n,i){var o=this;o.events=[],o.initEvent=function(t){0===o.events.length&&o.scrollEvent(),o.events.push(t)},o.destroyEvent=function(n){o.events=a.map(o.events,function(t,e){if(t.instance!==n)return t}),0===o.events.length&&l.off(e)},o.scrollEvent=function(){var t;l.on(e,function(){clearTimeout(t),t=setTimeout(function(){a.isFunction(i)&&i.call(o)||a.each(o.events,function(t,e){e.fn.call(e.instance)})},n)})}},checkInstance:function(t){var e=a.data(this,"cubeportfolio");if(!e)throw new Error("cubeportfolio is not initialized. Initialize it before calling "+t+" method!");return e.triggerEvent("publicMethod"),e},browserInfo:function(){var t,e,n=s["private"],i=navigator.appVersion;-1!==i.indexOf("MSIE 8.")?n.browser="ie8":-1!==i.indexOf("MSIE 9.")?n.browser="ie9":-1!==i.indexOf("MSIE 10.")?n.browser="ie10":o.ActiveXObject||"ActiveXObject"in o?n.browser="ie11":/android/gi.test(i)?n.browser="android":/iphone|ipad|ipod/gi.test(i)?n.browser="ios":/chrome/gi.test(i)?n.browser="chrome":n.browser="",void 0!==typeof n.styleSupport("perspective")&&(t=n.styleSupport("transition"),n.transitionend={WebkitTransition:"webkitTransitionEnd",transition:"transitionend"}[t],e=n.styleSupport("animation"),n.animationend={WebkitAnimation:"webkitAnimationEnd",animation:"animationend"}[e],n.animationDuration={WebkitAnimation:"webkitAnimationDuration",animation:"animationDuration"}[e],n.animationDelay={WebkitAnimation:"webkitAnimationDelay",animation:"animationDelay"}[e],n.transform=n.styleSupport("transform"),t&&e&&n.transform&&(n.modernBrowser=!0))},styleSupport:function(t){var e,n="Webkit"+t.charAt(0).toUpperCase()+t.slice(1),i=r.createElement("div");return t in i.style?e=t:n in i.style&&(e=n),i=null,e}},s["private"].browserInfo(),s["private"].resize=new s["private"].publicEvents("resize.cbp",50,function(){if(o.innerHeight==screen.height)return!0})}(jQuery,window,document),function(a,t,e,n){"use strict";var r=a.fn.cubeportfolio.constructor;r["public"]={init:function(t,e){new r(this,t,e)},destroy:function(t){var e=r["private"].checkInstance.call(this,"destroy");e.triggerEvent("beforeDestroy"),a.removeData(this,"cubeportfolio"),e.blocks.removeData("cbp"),e.$obj.removeClass("cbp-ready").removeAttr("style"),e.$ul.removeClass("cbp-wrapper"),r["private"].resize.destroyEvent(e),e.$obj.off(".cbp"),e.blocks.removeClass("cbp-item-off").removeAttr("style"),e.blocks.find(".cbp-item-wrapper").each(function(t,e){var n=a(e),i=n.children();i.length?i.unwrap():n.remove()}),e.destroySlider&&e.destroySlider(),e.$ul.unwrap(),e.addedWrapp&&e.blocks.unwrap(),0===e.blocks.length&&e.$ul.remove(),a.each(e.plugins,function(t,e){"function"==typeof e.destroy&&e.destroy()}),a.isFunction(t)&&t.call(e),e.triggerEvent("afterDestroy")},filter:function(t,e){var n,i=r["private"].checkInstance.call(this,"filter");if(!i.isAnimating){if(i.isAnimating=!0,a.isFunction(e)&&i.registerEvent("filterFinish",e,!0),a.isFunction(t)){if(void 0===(n=t.call(i,i.blocks)))throw new Error("When you call cubeportfolio API `filter` method with a param of type function you must return the blocks that will be visible.")}else{if(i.options.filterDeeplinking){var o=location.href.replace(/#cbpf=(.*?)([#\?&]|$)/gi,"");location.href=o+"#cbpf="+encodeURIComponent(t),i.singlePage&&i.singlePage.url&&(i.singlePage.url=location.href)}i.defaultFilter=t,n=i.filterConcat(i.defaultFilter)}i.triggerEvent("filterStart",n),i.singlePageInline&&i.singlePageInline.isOpen?i.singlePageInline.close("promise",{callback:function(){i.computeFilter(n)}}):i.computeFilter(n)}},showCounter:function(t,e){var n=r["private"].checkInstance.call(this,"showCounter");a.isFunction(e)&&n.registerEvent("showCounterFinish",e,!0),(n.elems=t).each(function(){var t=a(this),e=n.blocks.filter(t.data("filter")).length;t.find(".cbp-filter-counter").text(e)}),n.triggerEvent("showCounterFinish",t)},appendItems:function(t,e){r["public"].append.call(this,t,e)},append:function(t,e){var n=r["private"].checkInstance.call(this,"append"),i=a(t).filter(".cbp-item");n.isAnimating||i.length<1?a.isFunction(e)&&e.call(n,i):(n.isAnimating=!0,n.singlePageInline&&n.singlePageInline.isOpen?n.singlePageInline.close("promise",{callback:function(){n.addItems(i,e,"append")}}):n.addItems(i,e,"append"))},prepend:function(t,e){var n=r["private"].checkInstance.call(this,"prepend"),i=a(t).filter(".cbp-item");n.isAnimating||i.length<1?a.isFunction(e)&&e.call(n,i):(n.isAnimating=!0,n.singlePageInline&&n.singlePageInline.isOpen?n.singlePageInline.close("promise",{callback:function(){n.addItems(i,e,"prepend")}}):n.addItems(i,e,"prepend"))},remove:function(t,e){var n=r["private"].checkInstance.call(this,"remove"),i=a(t).filter(".cbp-item");n.isAnimating||i.length<1?a.isFunction(e)&&e.call(n,i):(n.isAnimating=!0,n.singlePageInline&&n.singlePageInline.isOpen?n.singlePageInline.close("promise",{callback:function(){n.removeItems(i,e)}}):n.removeItems(i,e))},layout:function(t){var e=r["private"].checkInstance.call(this,"layout");e.width=e.$obj.outerWidth(),e.isAnimating||e.width<=0||("alignCenter"===e.options.gridAdjustment&&(e.wrapper[0].style.maxWidth=""),e.storeData(e.blocks),e.layoutAndAdjustment()),a.isFunction(t)&&t.call(e)}}}(jQuery,window,document),function(h,t,b,e){"use strict";var v=h.fn.cubeportfolio.constructor;h.extend(v.prototype,{updateSliderPagination:function(){var t,e,n=this;if(n.options.showPagination){for(t=Math.ceil(n.blocksOn.length/n.cols),n.navPagination.empty(),e=t-1;0<=e;e--)h("
",{"class":"cbp-nav-pagination-item","data-slider-action":"jumpTo"}).appendTo(n.navPagination);n.navPaginationItems=n.navPagination.children()}n.enableDisableNavSlider()},destroySlider:function(){var t=this;"slider"===t.options.layoutMode&&(t.$obj.removeClass("cbp-mode-slider"),t.$ul.removeAttr("style"),t.$ul.off(".cbp"),h(b).off(".cbp"),t.options.auto&&t.stopSliderAuto())},nextSlider:function(t){var e=this;if(e.isEndSlider()){if(!e.isRewindNav())return;e.sliderActive=0}else e.options.scrollByPage?e.sliderActive=Math.min(e.sliderActive+e.cols,e.blocksOn.length-e.cols):e.sliderActive+=1;e.goToSlider()},prevSlider:function(t){var e=this;if(e.isStartSlider()){if(!e.isRewindNav())return;e.sliderActive=e.blocksOn.length-e.cols}else e.options.scrollByPage?e.sliderActive=Math.max(0,e.sliderActive-e.cols):e.sliderActive-=1;e.goToSlider()},jumpToSlider:function(t){var e=this,n=Math.min(t.index()*e.cols,e.blocksOn.length-e.cols);n!==e.sliderActive&&(e.sliderActive=n,e.goToSlider())},jumpDragToSlider:function(t){var e,n,i,o=this,a=0this.blocksOn.length-1},goToSlider:function(){this.enableDisableNavSlider(),this.updateSliderPosition()},startSliderAuto:function(){var t=this;t.isDrag?t.stopSliderAuto():t.timeout=setTimeout(function(){t.nextSlider(),t.startSliderAuto()},t.options.autoTimeout)},stopSliderAuto:function(){clearTimeout(this.timeout)},enableDisableNavSlider:function(){var t,e,n=this;n.isRewindNav()||(e=n.isStartSlider()?"addClass":"removeClass",n.navPrev[e]("cbp-nav-stop"),e=n.isEndSlider()?"addClass":"removeClass",n.navNext[e]("cbp-nav-stop")),n.options.showPagination&&(t=n.options.scrollByPage?Math.ceil(n.sliderActive/n.cols):n.isEndSlider()?n.navPaginationItems.length-1:Math.floor(n.sliderActive/n.cols),n.navPaginationItems.removeClass("cbp-nav-pagination-active").eq(t).addClass("cbp-nav-pagination-active")),n.customPagination&&(t=n.options.scrollByPage?Math.ceil(n.sliderActive/n.cols):n.isEndSlider()?n.customPaginationItems.length-1:Math.floor(n.sliderActive/n.cols),n.customPaginationItems.removeClass(n.customPaginationClass).eq(t).addClass(n.customPaginationClass))},isRewindNav:function(){return!this.options.showNavigation||!(this.blocksOn.length<=this.cols)&&!!this.options.rewindNav},sliderItemsLength:function(){return this.blocksOn.length<=this.cols},sliderLayout:function(){var i=this;i.blocksOn.each(function(t,e){var n=h(e).data("cbp");n.leftNew=i.columnWidth*t,n.topNew=0,i.sliderFreeSpaces.push({topStart:n.heightAndGap})}),i.getFreeSpacesForSlider(),i.$ul.width(i.columnWidth*i.blocksOn.length-i.options.gapVertical)},getFreeSpacesForSlider:function(){var t=this;t.freeSpaces=t.sliderFreeSpaces.slice(t.sliderActive,t.sliderActive+t.cols),t.freeSpaces.sort(function(t,e){return t.topStart>e.topStart?1:t.topStart").attr("src",i))?(o.removeLazyLoad(e,i),n.removeClass(o.options.loadingClass)):(n.addClass(o.options.loadingClass),a("").on("load.cbp error.cbp",function(){o.removeLazyLoad(e,i,n)}).attr("src",i))}else n.addClass(o.options.loadingClass)}))},s.prototype.removeLazyLoad=function(t,e,n){var i=this;t.src=e,t.removeAttribute("data-cbp-src"),i.parent.removeAttrImage(t),i.parent.$obj.trigger("lazyLoad.cbp",t),n&&(o["private"].modernBrowser?a(t).one(o["private"].transitionend,function(){n.removeClass(i.options.loadingClass)}):n.removeClass(i.options.loadingClass))},s.prototype.isElementInScreen=function(t){var e=t.getBoundingClientRect(),n=e.bottom+this.options.threshold,i=this.screenHeight+n-(e.top-this.options.threshold);return 0<=n&&n<=i},s.prototype.destroy=function(){o["private"].lazyLoadScroll.destroyEvent(this)},o.plugins.lazyLoad=function(t){return new s(t)}}(jQuery,window,document),function(r,a,t,e){"use strict";var i={element:"",action:"click",loadItems:3},s=r.fn.cubeportfolio.constructor;function n(t){var n=this;n.parent=t,n.options=r.extend({},i,n.parent.options.plugins.loadMore),n.loadMore=r(n.options.element).find(".cbp-l-loadMore-link"),0!==n.loadMore.length&&(n.loadItems=n.loadMore.find(".cbp-l-loadMore-loadItems"),"0"===n.loadItems.text()&&n.loadMore.addClass("cbp-l-loadMore-stop"),t.registerEvent("filterStart",function(e){n.populateItems().then(function(){var t=n.items.filter(n.parent.filterConcat(e)).length;0",{"class":"cbp-popup-wrap cbp-popup-"+r.type+t,"data-action":"lightbox"===r.type?"close":""}).on("click.cbp",function(t){if(!r.stopEvents){var e=u(t.target).attr("data-action");r[e]&&(r[e](),t.preventDefault())}}),"singlePage"===r.type?(r.contentWrap=u("
",{"class":"cbp-popup-content-wrap"}).appendTo(r.wrap),"ios"===l["private"].browser&&r.contentWrap.css("overflow","auto"),r.content=u("
",{"class":"cbp-popup-content"}).appendTo(r.contentWrap)):r.content=u("
",{"class":"cbp-popup-content"}).appendTo(r.wrap),u("
",{"class":"cbp-popup-loadingBox"}).appendTo(r.wrap),"ie8"===l["private"].browser&&(r.bg=u("
",{"class":"cbp-popup-ie8bg","data-action":"lightbox"===r.type?"close":""}).appendTo(r.wrap)),"singlePage"===r.type&&!1===r.options.singlePageStickyNavigation?r.navigationWrap=u("
",{"class":"cbp-popup-navigation-wrap"}).appendTo(r.contentWrap):r.navigationWrap=u("
",{"class":"cbp-popup-navigation-wrap"}).appendTo(r.wrap),r.navigation=u("
",{"class":"cbp-popup-navigation"}).appendTo(r.navigationWrap),r.closeButton=u("
",{"class":"cbp-popup-close",title:"Close (Esc arrow key)","data-action":"close"}).appendTo(r.navigation),r.nextButton=u("
",{"class":"cbp-popup-next",title:"Next (Right arrow key)","data-action":"next"}).appendTo(r.navigation),r.prevButton=u("
",{"class":"cbp-popup-prev",title:"Previous (Left arrow key)","data-action":"prev"}).appendTo(r.navigation),"singlePage"===r.type){r.options.singlePageCounter&&(r.counter=u(r.options.singlePageCounter).appendTo(r.navigation),r.counter.text("")),r.content.on("click.cbp",r.options.singlePageDelegate,function(t){t.preventDefault();var e,n,i=r.dataArray.length,o=this.getAttribute("href");for(e=0;e",{"class":"cbp-popup-singlePageInline"}).on("click.cbp",function(t){if(!n.stopEvents){var e=u(t.target).attr("data-action");e&&n[e]&&(n[e](),t.preventDefault())}}),n.content=u("
",{"class":"cbp-popup-content"}).appendTo(n.wrap),n.navigation=u("
",{"class":"cbp-popup-navigation"}).appendTo(n.wrap),n.closeButton=u("
",{"class":"cbp-popup-close",title:"Close (Esc arrow key)","data-action":"close"}).appendTo(n.navigation)},destroy:function(){var t=this,e=u("body");u(f).off("keydown.cbp"),e.off("click.cbp",t.options.lightboxDelegate),e.off("click.cbp",t.options.singlePageDelegate),t.content.off("click.cbp",t.options.singlePageDelegate),t.cubeportfolio.$obj.off("click.cbp",t.options.singlePageInlineDelegate),t.cubeportfolio.$obj.off("click.cbp",t.options.lightboxDelegate),t.cubeportfolio.$obj.off("click.cbp",t.options.singlePageDelegate),t.cubeportfolio.$obj.removeClass("cbp-popup-isOpening"),t.cubeportfolio.$obj.find(".cbp-item").removeClass("cbp-singlePageInline-active"),t.wrap.remove()},openLightbox:function(t,e){var s,n,l=this,p=0,c=[];if(!l.isOpen){if(a=!0,l.isOpen=!0,l.stopEvents=!1,l.dataArray=[],(l.current=null)===(s=e.getAttribute("href")))throw new Error("HEI! Your clicked element doesn't have a href attribute.");u.each(t,function(t,e){var n,i=e.getAttribute("href"),o=i,a="isImage";if(-1===u.inArray(i,c)){if(s===i)l.current=p;else if(!l.options.lightboxGallery)return;if(/youtu\.?be/i.test(i)){var r=i.lastIndexOf("v=")+2;1===r&&(r=i.lastIndexOf("/")+1),n=i.substring(r),/autoplay=/i.test(n)||(n+="&autoplay=1"),o="//www.youtube.com/embed/"+(n=n.replace(/\?|&/,"?")),a="isYoutube"}else/vimeo\.com/i.test(i)?(n=i.substring(i.lastIndexOf("/")+1),/autoplay=/i.test(n)||(n+="&autoplay=1"),o="//player.vimeo.com/video/"+(n=n.replace(/\?|&/,"?")),a="isVimeo"):/www\.ted\.com/i.test(i)?(o="http://embed.ted.com/talks/"+i.substring(i.lastIndexOf("/")+1)+".html",a="isTed"):/soundcloud\.com/i.test(i)?(o=i,a="isSoundCloud"):/(\.mp4)|(\.ogg)|(\.ogv)|(\.webm)/i.test(i)?(o=-1!==i.indexOf("|")?i.split("|"):i.split("%7C"),a="isSelfHostedVideo"):/\.mp3$/i.test(i)&&(o=i,a="isSelfHostedAudio");l.dataArray.push({src:o,title:e.getAttribute(l.options.lightboxTitleSrc),type:a}),p++}c.push(i)}),l.counterTotal=l.dataArray.length,1===l.counterTotal?(l.nextButton.hide(),l.prevButton.hide(),l.dataActionImg=""):(l.nextButton.show(),l.prevButton.show(),l.dataActionImg='data-action="next"'),l.wrap.appendTo(f.body),l.scrollTop=u(d).scrollTop(),l.originalStyle=u("html").attr("style"),u("html").css({overflow:"hidden",marginRight:d.innerWidth-u(f).width()}),l.wrap.addClass("cbp-popup-transitionend"),l.wrap.show(),n=l.dataArray[l.current],l[n.type](n)}},openSinglePage:function(t,e){var i,o=this,a=0,r=[];if(!o.isOpen){if(o.cubeportfolio.singlePageInline&&o.cubeportfolio.singlePageInline.isOpen&&o.cubeportfolio.singlePageInline.close(),o.isOpen=!0,o.stopEvents=!1,o.dataArray=[],(o.current=null)===(i=e.getAttribute("href")))throw new Error("HEI! Your clicked element doesn't have a href attribute.");if(u.each(t,function(t,e){var n=e.getAttribute("href");-1===u.inArray(n,r)&&(i===n&&(o.current=a),o.dataArray.push({url:n,element:e}),a++),r.push(n)}),o.counterTotal=o.dataArray.length,1===o.counterTotal?(o.nextButton.hide(),o.prevButton.hide()):(o.nextButton.show(),o.prevButton.show()),o.wrap.appendTo(f.body),o.scrollTop=u(d).scrollTop(),o.contentWrap.scrollTop(0),o.wrap.show(),o.finishOpen=2,o.navigationMobile=u(),o.wrap.one(l["private"].transitionend,function(){u("html").css({overflow:"hidden",marginRight:d.innerWidth-u(f).width()}),o.wrap.addClass("cbp-popup-transitionend"),o.options.singlePageStickyNavigation&&(o.wrap.addClass("cbp-popup-singlePage-sticky"),o.navigationWrap.width(o.contentWrap[0].clientWidth)),o.finishOpen--,o.finishOpen<=0&&o.updateSinglePageIsOpen.call(o)}),"ie8"!==l["private"].browser&&"ie9"!==l["private"].browser||(u("html").css({overflow:"hidden",marginRight:d.innerWidth-u(f).width()}),o.wrap.addClass("cbp-popup-transitionend"),o.options.singlePageStickyNavigation&&(o.navigationWrap.width(o.contentWrap[0].clientWidth),setTimeout(function(){o.wrap.addClass("cbp-popup-singlePage-sticky")},1e3)),o.finishOpen--),o.wrap.addClass("cbp-popup-loading"),o.wrap.offset(),o.wrap.addClass("cbp-popup-singlePage-open"),o.options.singlePageDeeplinking&&(o.url=o.url.split("#cbp=")[0],location.href=o.url+"#cbp="+o.dataArray[o.current].url),u.isFunction(o.options.singlePageCallback)&&o.options.singlePageCallback.call(o,o.dataArray[o.current].url,o.dataArray[o.current].element),"ios"===l["private"].browser){var s=o.contentWrap[0];s.addEventListener("touchstart",function(){var t=s.scrollTop,e=s.scrollHeight,n=t+s.offsetHeight;0===t?s.scrollTop=1:n===e&&(s.scrollTop=t-1)})}}},openSinglePageInline:function(t,e,n){var i,o,a,r=this;if(n=n||!1,r.fromOpen=n,r.storeBlocks=t,r.storeCurrentBlock=e,r.isOpen)return o=r.cubeportfolio.blocksOn.index(u(e).closest(".cbp-item")),void(r.dataArray[r.current].url!==e.getAttribute("href")||r.current!==o?r.cubeportfolio.singlePageInline.close("open",{blocks:t,currentBlock:e,fromOpen:!0}):r.close());if(r.isOpen=!0,r.stopEvents=!1,r.dataArray=[],(r.current=null)===(i=e.getAttribute("href")))throw new Error("HEI! Your clicked element doesn't have a href attribute.");if(a=u(e).closest(".cbp-item")[0],t.each(function(t,e){a===e&&(r.current=t)}),r.dataArray[r.current]={url:i,element:e},u(r.dataArray[r.current].element).parents(".cbp-item").addClass("cbp-singlePageInline-active"),r.counterTotal=t.length,r.wrap.insertBefore(r.cubeportfolio.wrapper),r.topDifference=0,"top"===r.options.singlePageInlinePosition)r.blocksToMove=t,r.top=0;else if("bottom"===r.options.singlePageInlinePosition)r.blocksToMove=u(),r.top=r.cubeportfolio.height;else if("above"===r.options.singlePageInlinePosition){var s=u(t[r.current]).data("cbp").top;r.top=s,t.each(function(t,e){var n=u(e).data("cbp"),i=n.top,o=i+n.heightAndGap;s<=i||o>r.top&&(r.top=o,r.topDifference=r.top-s)}),r.blocksToMove=u(),t.each(function(t,e){if(t!==r.current){var n=u(e).data("cbp");n.top+n.heightAndGap>r.top&&(r.blocksToMove=r.blocksToMove.add(e))}else r.blocksToMove=r.blocksToMove.add(e)}),r.top=Math.max(r.top-r.options.gapHorizontal,0)}else{var l=u(t[r.current]).data("cbp"),p=l.top+l.heightAndGap;r.top=p,r.blocksToMove=u(),t.each(function(t,e){var n=u(e).data("cbp"),i=n.top,o=i+n.height;o<=p||(i>=p-n.height/2?r.blocksToMove=r.blocksToMove.add(e):pr.top&&(r.top=o),o-p>r.topDifference&&(r.topDifference=o-p)))})}if(r.wrap[0].style.height=r.wrap.outerHeight(!0)+"px",r.deferredInline=u.Deferred(),r.options.singlePageInlineInFocus){r.scrollTop=u(d).scrollTop();var c=r.cubeportfolio.$obj.offset().top+r.top-100;r.scrollTop!==c?u("html,body").animate({scrollTop:c},350).promise().then(function(){r.resizeSinglePageInline(),r.deferredInline.resolve()}):(r.resizeSinglePageInline(),r.deferredInline.resolve())}else r.resizeSinglePageInline(),r.deferredInline.resolve();r.cubeportfolio.$obj.addClass("cbp-popup-singlePageInline-open"),r.wrap.css({top:r.top}),r.options.singlePageInlineDeeplinking&&(r.url=r.url.split("#cbpi=")[0],location.href=r.url+"#cbpi="+r.dataArray[r.current].url),u.isFunction(r.options.singlePageInlineCallback)&&r.options.singlePageInlineCallback.call(r,r.dataArray[r.current].url,r.dataArray[r.current].element)},resizeSinglePageInline:function(){var n=this;n.height=0===n.top||n.top===n.cubeportfolio.height?n.wrap.outerHeight(!0):n.wrap.outerHeight(!0)-n.options.gapHorizontal,n.height+=n.topDifference,n.storeBlocks.each(function(t,e){l["private"].modernBrowser?e.style[l["private"].transform]="":e.style.marginTop=""}),n.blocksToMove.each(function(t,e){l["private"].modernBrowser?e.style[l["private"].transform]="translate3d(0px, "+n.height+"px, 0)":e.style.marginTop=n.height+"px"}),n.cubeportfolio.obj.style.height=n.cubeportfolio.height+n.height+"px"},revertResizeSinglePageInline:function(){this.deferredInline=u.Deferred(),this.storeBlocks.each(function(t,e){l["private"].modernBrowser?e.style[l["private"].transform]="":e.style.marginTop=""}),this.cubeportfolio.obj.style.height=this.cubeportfolio.height+"px"},appendScriptsToWrap:function(i){var o=this,a=0,r=function(t){var e=f.createElement("script"),n=t.src;e.type="text/javascript",e.readyState?e.onreadystatechange=function(){"loaded"!=e.readyState&&"complete"!=e.readyState||(e.onreadystatechange=null,i[++a]&&r(i[a]))}:e.onload=function(){i[++a]&&r(i[a])},n?e.src=n:e.text=t.text,o.content[0].appendChild(e)};r(i[0])},updateSinglePage:function(t,e,n){var i,o=this;o.content.addClass("cbp-popup-content").removeClass("cbp-popup-content-basic"),!1===n&&o.content.removeClass("cbp-popup-content").addClass("cbp-popup-content-basic"),o.counter&&(i=u(o.getCounterMarkup(o.options.singlePageCounter,o.current+1,o.counterTotal)),o.counter.text(i.text())),o.fromAJAX={html:t,scripts:e},o.finishOpen--,o.finishOpen<=0&&o.updateSinglePageIsOpen.call(o)},updateSinglePageIsOpen:function(){var t,e=this;e.wrap.addClass("cbp-popup-ready"),e.wrap.removeClass("cbp-popup-loading"),e.content.html(e.fromAJAX.html),e.fromAJAX.scripts&&e.appendScriptsToWrap(e.fromAJAX.scripts),e.fromAJAX={},e.cubeportfolio.$obj.trigger("updateSinglePageStart.cbp"),(t=e.content.find(".cbp-slider")).length?(t.find(".cbp-slider-item").addClass("cbp-item"),e.slider=t.cubeportfolio({layoutMode:"slider",mediaQueries:[{width:1,cols:1}],gapHorizontal:0,gapVertical:0,caption:"",coverRatio:""})):e.slider=null,e.checkForSocialLinks(e.content),e.cubeportfolio.$obj.trigger("updateSinglePageComplete.cbp")},checkForSocialLinks:function(t){this.createFacebookShare(t.find(".cbp-social-fb")),this.createTwitterShare(t.find(".cbp-social-twitter")),this.createGooglePlusShare(t.find(".cbp-social-googleplus")),this.createPinterestShare(t.find(".cbp-social-pinterest"))},createFacebookShare:function(t){t.length&&!t.attr("onclick")&&t.attr("onclick","window.open('http://www.facebook.com/sharer.php?u="+encodeURIComponent(d.location.href)+"', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=400'); return false;")},createTwitterShare:function(t){t.length&&!t.attr("onclick")&&t.attr("onclick","window.open('https://twitter.com/intent/tweet?source="+encodeURIComponent(d.location.href)+"&text="+encodeURIComponent(f.title)+"', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=300'); return false;")},createGooglePlusShare:function(t){t.length&&!t.attr("onclick")&&t.attr("onclick","window.open('https://plus.google.com/share?url="+encodeURIComponent(d.location.href)+"', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=450'); return false;")},createPinterestShare:function(t){if(t.length&&!t.attr("onclick")){var e="",n=this.content.find("img")[0];n&&(e=n.src),t.attr("onclick","window.open('http://pinterest.com/pin/create/button/?url="+encodeURIComponent(d.location.href)+"&media="+e+"', '_blank', 'top=100,left=100,toolbar=0,status=0,width=620,height=400'); return false;")}},updateSinglePageInline:function(t,e){var n=this;n.content.html(t),e&&n.appendScriptsToWrap(e),n.cubeportfolio.$obj.trigger("updateSinglePageInlineStart.cbp"),0!==n.localOptions.delay?setTimeout(function(){n.singlePageInlineIsOpen.call(n)},n.localOptions.delay):n.singlePageInlineIsOpen.call(n)},singlePageInlineIsOpen:function(){var e=this;function n(){e.wrap.addClass("cbp-popup-singlePageInline-ready"),e.wrap[0].style.height="",e.resizeSinglePageInline(),e.cubeportfolio.$obj.trigger("updateSinglePageInlineComplete.cbp")}e.cubeportfolio.loadImages(e.wrap,function(){var t=e.content.find(".cbp-slider");t.length?(t.find(".cbp-slider-item").addClass("cbp-item"),t.one("initComplete.cbp",function(){e.deferredInline.done(n)}),t.on("pluginResize.cbp",function(){e.deferredInline.done(n)}),e.slider=t.cubeportfolio({layoutMode:"slider",displayType:"default",mediaQueries:[{width:1,cols:1}],gapHorizontal:0,gapVertical:0,caption:"",coverRatio:""})):(e.slider=null,e.deferredInline.done(n)),e.checkForSocialLinks(e.content)})},isImage:function(t){var e=this;new Image;e.tooggleLoading(!0),e.cubeportfolio.loadImages(u('
'),function(){e.updateImagesMarkup(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal)),e.tooggleLoading(!1)})},isVimeo:function(t){var e=this;e.updateVideoMarkup(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal))},isYoutube:function(t){var e=this;e.updateVideoMarkup(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal))},isTed:function(t){var e=this;e.updateVideoMarkup(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal))},isSoundCloud:function(t){var e=this;e.updateVideoMarkup(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal))},isSelfHostedVideo:function(t){var e=this;e.updateSelfHostedVideo(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal))},isSelfHostedAudio:function(t){var e=this;e.updateSelfHostedAudio(t.src,t.title,e.getCounterMarkup(e.options.lightboxCounter,e.current+1,e.counterTotal))},getCounterMarkup:function(t,e,n){if(!t.length)return"";var i={current:e,total:n};return t.replace(/\{\{current}}|\{\{total}}/gi,function(t){return i[t.slice(2,-2)]})},updateSelfHostedVideo:function(t,e,n){var i;this.wrap.addClass("cbp-popup-lightbox-isIframe");var o='
'+(e?'
'+e+"
":"")+n+"
",this.content.html(o),this.wrap.addClass("cbp-popup-ready"),this.preloadNearbyImages()},updateSelfHostedAudio:function(t,e,n){this.wrap.addClass("cbp-popup-lightbox-isIframe");var i='
'+(e?'
'+e+"
":"")+n+"
";this.content.html(i),this.wrap.addClass("cbp-popup-ready"),this.preloadNearbyImages()},updateVideoMarkup:function(t,e,n){this.wrap.addClass("cbp-popup-lightbox-isIframe");var i='
'+(e?'
'+e+"
":"")+n+"
";this.content.html(i),this.wrap.addClass("cbp-popup-ready"),this.preloadNearbyImages()},updateImagesMarkup:function(t,e,n){var i=this;i.wrap.removeClass("cbp-popup-lightbox-isIframe");var o='
'+(e?'
'+e+"
":"")+n+"
";i.content.html(o),i.wrap.addClass("cbp-popup-ready"),i.resizeImage(),i.preloadNearbyImages()},next:function(){this[this.type+"JumpTo"](1)},prev:function(){this[this.type+"JumpTo"](-1)},lightboxJumpTo:function(t){var e,n=this;n.current=n.getIndex(n.current+t),n[(e=n.dataArray[n.current]).type](e)},singlePageJumpTo:function(t){var e=this;e.current=e.getIndex(e.current+t),u.isFunction(e.options.singlePageCallback)&&(e.resetWrap(),e.contentWrap.scrollTop(0),e.wrap.addClass("cbp-popup-loading"),e.slider&&l["private"].resize.destroyEvent(u.data(e.slider[0],"cubeportfolio")),e.options.singlePageCallback.call(e,e.dataArray[e.current].url,e.dataArray[e.current].element),e.options.singlePageDeeplinking&&(location.href=e.url+"#cbp="+e.dataArray[e.current].url))},resetWrap:function(){var t=this;"singlePage"===t.type&&t.options.singlePageDeeplinking&&(location.href=t.url+"#"),"singlePageInline"===t.type&&t.options.singlePageInlineDeeplinking&&(location.href=t.url+"#")},getIndex:function(t){return(t%=this.counterTotal)<0&&(t=this.counterTotal+t),t},close:function(e,t){var n=this;function i(){n.slider&&l["private"].resize.destroyEvent(u.data(n.slider[0],"cubeportfolio")),n.content.html(""),n.wrap.detach(),n.cubeportfolio.$obj.removeClass("cbp-popup-singlePageInline-open cbp-popup-singlePageInline-close"),n.isOpen=!1,"promise"===e&&u.isFunction(t.callback)&&t.callback.call(n.cubeportfolio)}function o(){var t=u(d).scrollTop();n.resetWrap(),u(d).scrollTop(t),n.options.singlePageInlineInFocus&&"promise"!==e?u("html,body").animate({scrollTop:n.scrollTop},350).promise().then(function(){i()}):i()}"singlePageInline"===n.type?"open"===e?(n.wrap.removeClass("cbp-popup-singlePageInline-ready"),u(n.dataArray[n.current].element).closest(".cbp-item").removeClass("cbp-singlePageInline-active"),n.isOpen=!1,n.openSinglePageInline(t.blocks,t.currentBlock,t.fromOpen)):(n.height=0,n.revertResizeSinglePageInline(),n.wrap.removeClass("cbp-popup-singlePageInline-ready"),n.cubeportfolio.$obj.addClass("cbp-popup-singlePageInline-close"),n.cubeportfolio.$obj.find(".cbp-item").removeClass("cbp-singlePageInline-active"),l["private"].modernBrowser?n.wrap.one(l["private"].transitionend,function(){o()}):o()):"singlePage"===n.type?(n.resetWrap(),n.stopScroll=!0,n.wrap.removeClass("cbp-popup-ready cbp-popup-transitionend cbp-popup-singlePage-open cbp-popup-singlePage-sticky"),u("html").css({overflow:"",marginRight:"",position:""}),u(d).scrollTop(n.scrollTop),"ie8"!==l["private"].browser&&"ie9"!==l["private"].browser||(n.slider&&l["private"].resize.destroyEvent(u.data(n.slider[0],"cubeportfolio")),n.content.html(""),n.wrap.detach(),n.isOpen=!1),n.wrap.one(l["private"].transitionend,function(){n.slider&&l["private"].resize.destroyEvent(u.data(n.slider[0],"cubeportfolio")),n.content.html(""),n.wrap.detach(),n.isOpen=!1})):(a=!1,n.originalStyle?u("html").attr("style",n.originalStyle):u("html").css({overflow:"",marginRight:""}),u(d).scrollTop(n.scrollTop),n.slider&&l["private"].resize.destroyEvent(u.data(n.slider[0],"cubeportfolio")),n.content.html(""),n.wrap.detach(),n.isOpen=!1)},tooggleLoading:function(t){this.stopEvents=t,this.wrap[t?"addClass":"removeClass"]("cbp-popup-loading")},resizeImage:function(){if(this.isOpen){var t=this.content.find("img"),e=t.parent(),n=u(d).height()-(e.outerHeight(!0)-e.height())-this.content.find(".cbp-popup-lightbox-bottom").outerHeight(!0);t.css("max-height",n+"px")}},preloadNearbyImages:function(){for(var t=this,e=[t.getIndex(t.current+1),t.getIndex(t.current+2),t.getIndex(t.current+3),t.getIndex(t.current-1),t.getIndex(t.current-2),t.getIndex(t.current-3)],n=e.length-1;0<=n;n--)"isImage"===t.dataArray[e[n]].type&&t.cubeportfolio.checkSrc(t.dataArray[e[n]])}};function n(t){var e=this;!1===(e.parent=t).options.lightboxShowCounter&&(t.options.lightboxCounter=""),!1===t.options.singlePageShowCounter&&(t.options.singlePageCounter=""),t.registerEvent("initStartRead",function(){e.run()},!0)}var a=!1,i=!1,o=!1;n.prototype.run=function(){var r=this,s=r.parent,t=u(f.body);s.lightbox=null,s.options.lightboxDelegate&&!i&&(i=!0,s.lightbox=Object.create(e),s.lightbox.init(s,"lightbox"),t.on("click.cbp",s.options.lightboxDelegate,function(t){t.preventDefault();var e=u(this),i=e.attr("data-cbp-lightbox"),n=r.detectScope(e),o=n.data("cubeportfolio"),a=[];o?o.blocksOn.each(function(t,e){var n=u(e);n.not(".cbp-item-off")&&n.find(s.options.lightboxDelegate).each(function(t,e){i?u(e).attr("data-cbp-lightbox")===i&&a.push(e):a.push(e)})}):a=i?n.find(s.options.lightboxDelegate+"[data-cbp-lightbox="+i+"]"):n.find(s.options.lightboxDelegate),s.lightbox.openLightbox(a,e[0])})),s.singlePage=null,s.options.singlePageDelegate&&!o&&(o=!0,s.singlePage=Object.create(e),s.singlePage.init(s,"singlePage"),t.on("click.cbp",s.options.singlePageDelegate,function(t){t.preventDefault();var e=u(this),i=e.attr("data-cbp-singlePage"),n=r.detectScope(e),o=n.data("cubeportfolio"),a=[];o?o.blocksOn.each(function(t,e){var n=u(e);n.not(".cbp-item-off")&&n.find(s.options.singlePageDelegate).each(function(t,e){i?u(e).attr("data-cbp-singlePage")===i&&a.push(e):a.push(e)})}):a=i?n.find(s.options.singlePageDelegate+"[data-cbp-singlePage="+i+"]"):n.find(s.options.singlePageDelegate),s.singlePage.openSinglePage(a,e[0])})),s.singlePageInline=null,s.options.singlePageInlineDelegate&&(s.singlePageInline=Object.create(e),s.singlePageInline.init(s,"singlePageInline"),s.$obj.on("click.cbp",s.options.singlePageInlineDelegate,function(t){t.preventDefault();var e=u.data(this,"cbp-locked"),n=u.data(this,"cbp-locked",+new Date);(!e||300",{"class":"cbp-nav"}),i.nav.on("click.cbp","[data-slider-action]",function(t){if(t.preventDefault(),t.stopImmediatePropagation(),t.stopPropagation(),!i.sliderStopEvents){var e=o(this),n=e.attr("data-slider-action");i[n+"Slider"]&&i[n+"Slider"](e)}}),i.options.showNavigation&&(i.controls=o("
",{"class":"cbp-nav-controls"}),i.navPrev=o("
",{"class":"cbp-nav-prev","data-slider-action":"prev"}).appendTo(i.controls),i.navNext=o("
",{"class":"cbp-nav-next","data-slider-action":"next"}).appendTo(i.controls),i.controls.appendTo(i.nav)),i.options.showPagination&&(i.navPagination=o("
",{"class":"cbp-nav-pagination"}).appendTo(i.nav)),(i.controls||i.navPagination)&&i.nav.appendTo(i.$obj),i.updateSliderPagination(),i.options.auto&&(i.options.autoPauseOnHover&&(i.mouseIsEntered=!1,i.$obj.on("mouseenter.cbp",function(t){i.mouseIsEntered=!0,i.stopSliderAuto()}).on("mouseleave.cbp",function(t){i.mouseIsEntered=!1,i.startSliderAuto()})),i.startSliderAuto()),i.options.drag&&a["private"].modernBrowser&&i.dragSlider()},r.prototype.updateSlider=function(){this.updateSliderPosition(),this.updateSliderPagination()},r.prototype.destroy=function(){var t=this;t.parent.customPaginationItems&&t.parent.customPaginationItems.off(".cbp"),(t.parent.controls||t.parent.navPagination)&&(t.parent.nav.off(".cbp"),t.parent.nav.remove())},a.plugins.slider=function(t){return"slider"!==t.options.layoutMode?null:new r(t)}}(jQuery,window,document),function(u,t,e,n){"use strict";var i={element:""},o=u.fn.cubeportfolio.constructor;function a(e){var n=this;n.parent=e,n.options=u.extend({},i,n.parent.options.plugins.sort),n.element=u(n.options.element),0!==n.element.length&&(n.sort="",n.sortBy="string:asc",n.element.on("click.cbp",".cbp-sort-item",function(t){t.preventDefault(),n.target=t.target,u(n.target).hasClass("cbp-l-dropdown-item--active")||e.isAnimating||(n.processSort(),e.$obj.cubeportfolio("filter",e.defaultFilter))}),e.registerEvent("triggerSort",function(){n.target&&(n.processSort(),e.$obj.cubeportfolio("filter",e.defaultFilter))}),n.dropdownWrap=n.element.find(".cbp-l-dropdown-wrap").on({"mouseover.cbp":function(){u(this).addClass("cbp-l-dropdown-wrap--open")},"mouseleave.cbp":function(){u(this).removeClass("cbp-l-dropdown-wrap--open")}}),n.dropdownHeader=n.element.find(".cbp-l-dropdown-header"))}a.prototype.processSort=function(){var o=this,t=o.parent,e=(p=o.target).hasAttribute("data-sort"),n=p.hasAttribute("data-sortBy");if(e&&n)o.sort=p.getAttribute("data-sort"),o.sortBy=p.getAttribute("data-sortBy");else if(e)o.sort=p.getAttribute("data-sort");else{if(!n)return;o.sortBy=p.getAttribute("data-sortBy")}var i=o.sortBy.split(":"),a="string",r=1;if("int"===i[0]?a="int":"float"===i[0]&&(a="float"),"desc"===i[1]&&(r=-1),o.sort){var s=[];t.blocks.each(function(t,e){var n=u(e),i=n.find(o.sort).text();"int"===a&&(i=parseInt(i,10)),"float"===a&&(i=parseFloat(i,10)),s.push({sortText:i,data:n.data("cbp")})}),s.sort(function(t,e){var n=t.sortText,i=e.sortText;return"string"===a&&(n=n.toUpperCase(),i=i.toUpperCase()),n a { + color: #6F6D6D; + display: block; + font: bold 25px/25px "Open Sans", sans-serif; + margin: 20px 0 0; +} + +.left > a:hover { + color: #B3B3B3; +} + +.left nav { + margin: 50px 0 0; +} + +.left nav dl dt a { + color: #848484; + display: block; + font: 14px/21px "Open Sans", sans-serif; + padding: 6px 0; +} + +.left nav dl dt a:hover { + color: #5283D0; +} + +.left nav dl dt.active a { + background: url("../images/arrow.png") no-repeat scroll right center transparent; + color: #2576B8; + font-weight: bold; +} + +.right { + margin-left: 190px; + max-width: 860px; + overflow: hidden; + padding: 0 25px 25px; +} + +.right h1 a { + background: none repeat scroll 0 0 #E7E7E7; + border-bottom: 2px solid #AAD6F9; + color: #333; + display: block; + font: bold 20px/20px "Open Sans", sans-serif; + margin: 30px 0 20px; + padding: 15px 0 15px 15px; +} + +.right h2 { + color: #4C4A56; + font: bold 17px/17px "Open Sans", sans-serif; + padding: 17px 0; +} + +.right h3 { + color: #4C4A56; + font: bold 15px/15px "Open Sans", sans-serif; + padding: 15px 0; +} + +.right h4 { + color: #555; + font: bold 13px/21px "Open Sans", sans-serif; + padding: 5px 0; +} + +.right p { + margin: 5px 0; +} + +.right strong { + color: #4C4A56; +} + +.right ul { + padding: 5px 0; +} + +.right a { + color: #2576B8; +} + +.right a:hover { + color: #333333; +} + +p.attention { + color: #E87373; +} + +.right li { + /*color: #4C4A56;*/ +} + +.right .tinycode { + background: none repeat scroll 0% 0% #e4e4e4; + color: #42433C; + font: italic 12px/18px "Open Sans", sans-serif; + margin: 0 2px; + padding: 2px 6px; +} + +.right table { + border-color: #DADADA; + border-radius: 2px 2px 2px 2px; + border-style: solid; + border-width: 1px 1px 0 0; +} + +.right table th { + background: none repeat scroll 0% 0% #ECECEC; + border-bottom: 1px solid #C8C8C8; + border-left: 1px solid #C8C8C8; + border-top: 1px solid #C8C8C8; + color: #666666; + font: bold 12px/32px sans-serif; + height: 32px; + padding-left: 10px; + text-align: left; +} + +.right table td { + border-bottom: 1px solid #C8C8C8; + border-left: 1px solid #C8C8C8; + color: #787878; + font: 12px/18px Open Sans, sans-serif; + padding: 8px 12px; +} + +.right table td a { + color: #2576B8; + font: 11px/14px sans-serif; +} + +.right table td a:hover { + color: #333333; +} + +.right table tr:nth-child(2n+1) { + background: none repeat scroll 0% 0% #F0F0F0; +} + +.lists { + list-style: disc inside none; + margin-left: 30px; +} diff --git a/documentation/css/prettify.css b/documentation/css/prettify.css new file mode 100644 index 0000000..0212a26 --- /dev/null +++ b/documentation/css/prettify.css @@ -0,0 +1,140 @@ +.pln { + color: #333333; +} + +@media screen { + /* string content */ + .str { + color: #dd1144; + } + + /* a keyword */ + .kwd { + color: #255ABC; + } + + /* a comment */ + .com { + color: #999988; + font-style: italic; + } + + /* a type name */ + .typ { + color: #445588; + } + + /* a literal value */ + .lit { + color: #A91336; + } + + /* punctuation */ + .pun { + color: #333333; + } + + /* lisp open bracket */ + .opn { + color: #333333; + } + + /* lisp close bracket */ + .clo { + color: #333333; + } + + /* a markup tag name */ + .tag { + color: navy; + } + + /* a markup attribute name */ + .atn { + color: teal; + } + + /* a markup attribute value */ + .atv { + color: #dd1144; + } + + /* a declaration */ + .dec { + color: #333333; + } + + /* a variable name */ + .var { + color: teal; + } + + /* a function name */ + .fun { + color: #990000; + } +} + +/* Use higher contrast and text-weight for printable form. */ +@media print, projection { + .str { + color: #006600; + } + + .kwd { + color: #006; + font-weight: bold; + } + + .com { + color: #600; + font-style: italic; + } + + .typ { + color: #404; + font-weight: bold; + } + + .lit { + color: #004444; + } + + .pun, .opn, .clo { + color: #444400; + } + + .tag { + color: #006; + font-weight: bold; + } + + .atn { + color: #440044; + } + + .atv { + color: #006600; + } +} + +/* Style */ +pre.prettyprint { + background: none repeat scroll 0 0 #FFFFFF; + border: 1px solid #e0e0e0; + color: #CDCDCD; + font: 12px/18px Consolas, monospace, sans-serif; + overflow: auto; + margin: 15px 0; +} + +/* Specify class=linenums on a pre to get line numbering */ +ol.linenums { + margin: 15px 15px 15px 40px; +} + +li.L0, li.L1, li.L2, li.L3, li.L4, +li.L5, li.L6, li.L7, li.L8, li.L9 { + list-style-type: decimal !important +} + diff --git a/documentation/css/reset.css b/documentation/css/reset.css new file mode 100644 index 0000000..34f8388 --- /dev/null +++ b/documentation/css/reset.css @@ -0,0 +1,54 @@ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, hgroup, +menu, nav, output, ruby, section, summary, +time, mark, audio, video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} + +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, hgroup, menu, nav, section { + display: block; +} + +body { + line-height: 1; +} + +ol, ul { + list-style: none; +} + +blockquote, q { + quotes: none; +} + +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/documentation/index.html b/documentation/index.html new file mode 100644 index 0000000..c62a7ae --- /dev/null +++ b/documentation/index.html @@ -0,0 +1,1582 @@ + + + + + + + Cube Portfolio Documentation v4.4.0 | 1 August, 2018 + + + + + + + + + + + + + + + + +
+ + +
+

About

+

+ Cube Portfolio is a jQuery grid plugin that provides powerful portfolio system, beautiful animated filtering, searching, custom captions and it’s perfect for portfolio projects, horizontal slider, images gallery, team members, blog posts or any other ordered grid content. +

+

It plays nice with your existing HTML and CSS, making it a great choice for dynamic and responsive layouts.

+ +

How to install

+

1. Upload cubeportfolio folder to your server. This folder contains all of the assets of the plugin.

+
    +
  • JS
  • +
  • CSS
  • +
  • images
  • +
+

+ 2. Include the following files in your <head> section of the page. Please ensure that all of them have the correct path: +

+ +
+<!-- load cubeportfolio css file -->
+<link rel="stylesheet" href="cubeportfolio/css/cubeportfolio.min.css">
+
+<!-- load latest jquery from google resources-->
+<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
+
+<!-- load cubeportfolio jQuery plugin -->
+<script type="text/javascript" src="cubeportfolio/js/jquery.cubeportfolio.min.js"></script>
+
+

+ Be aware that Cube Portfolio plugin requires jQuery 1.8+. + If you already have jQuery on your page, don’t include it second time. +

+
+

+ 3. Insert the HTML structure below to the <body> section to build the markup (don't forget to update images path!).
+

+

For more complex structures please check the templates folder.

+ +
+<div id="grid-container">
+    <div class="cbp-item">
+        <a href="#" title="custom title 1">
+            <img src="path/to/img1" alt="custom alt 1" width="100%">
+        </a>
+    </div>
+    <div class="cbp-item">
+        <a href="#" title="custom title 2">
+            <img src="path/to/img2" alt="custom alt 2" width="100%">
+        </a>
+    </div>
+    <div class="cbp-item">
+        <a href="#" title="custom title 3">
+            <img src="path/to/img3" alt="custom alt 3" width="100%">
+        </a>
+    </div>
+</div>
+
+ +

+ 4. Initialize the Cube Portfolio plugin. Usually just before the closing body tag: For more info about options go to Options section. +

+ +
+<script type="text/javascript">
+jQuery(document).ready( function() {
+     jQuery('#grid-container').cubeportfolio({
+        // options
+     });
+});
+</script>
+
+ +

As an alternative initialization, the options can be placed as a JSON object in the HTML data attributes for grid container:

+
+<div id="grid-container" data-cbp-options='{"rewindNav": false}'>
+    <div class="cbp-item">
+        <a href="#" title="custom title 1">
+            <img src="path/to/img1" alt="custom alt 1" width="100%">
+        </a>
+    </div>
+</div>
+
+ + +

Options

+

+ There are numerous options that can be added to configure Cube Portfolio behavior. + To set an option, you must add it to the initialization block of code. +

+ +
+<script type="text/javascript">
+jQuery('#grid-container').cubeportfolio({
+    // place here the options. Don't forget to separate them by comma
+});
+</script>
+
+

Full list of options

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameValuesDefaultDescription
filtersstring that represent the elements in the document (DOM selector)''Define the wrapper for filters
loadMore--This options is deprecated. Please use plugins.loadMore.element option instead
loadMoreAction--This options is deprecated. Please use plugins.loadMore.action option instead
searchstring that represent the elements in the document (DOM selector)''Define the search input element
layoutMode'grid', 'mosaic' or 'slider''grid'Layout Mode for this plugin
sortByDimensiontrue or falsefalseFilter the items by dimension (bigger to smallest) if there are gaps in grid. Option available only for `layoutMode: 'mosaic'`
dragtrue or falsetrueMouse and touch drag support. Option available only for `layoutMode: 'slider'`
autotrue or falsefalseAutoplay the slider. Option available only for `layoutMode: 'slider'`
autoTimeoutonly integers (ex: 1000, 2000, 5000)5000Autoplay interval timeout. Time is set in milliseconds. 1000 milliseconds equals 1 second. Option available only for `layoutMode: 'slider'`
autoPauseOnHovertrue or falsetrueStops autoplay when user hover the slider. Option available only for `layoutMode: 'slider'`
showNavigationtrue or falsetrueShow `next` and `prev` buttons for slider. Option available only for `layoutMode: 'slider'`
showPaginationtrue or falsetrueShow pagination for slider. Option available only for `layoutMode: 'slider'`
rewindNavtrue or falsetrueEnable slide to first item (last item). Option available only for `layoutMode: 'slider'`
scrollByPagetrue or falsetrueScroll by page and not by item. This option affect next/prev buttons and drag support. Option available only for `layoutMode: 'slider'`
defaultFilterstrings that represent the filter name(e.g. '*', '.logo', '.web-design', '.design')'*'Default filter for plugin. Option available only for `layoutMode: 'grid'`
filterDeeplinkingtrue or falsefalseEnable / disable the deeplinking feature when you click on filters. Option available only for `layoutMode: 'grid'`
animationType + 'fadeOut'
+ 'quicksand'
+ 'bounceLeft'
+ 'bounceTop'
+ 'bounceBottom'
+ 'moveLeft'
+ 'slideLeft'
+ 'fadeOutTop'
+ 'sequentially'
+ 'skew'
+ 'slideDelay'
+ '3d' Flip
+ 'rotateSides'
+ 'flipOutDelay'
+ 'flipOut'
+ 'unfold'
+ 'foldLeft'
+ 'scaleDown'
+ 'scaleSides'
+ 'frontRow'
+ 'flipBottom'
+ 'rotateRoom' +
'fadeOut' + Defines which animation to use for items that will be shown or hidden after a filter has been activated. + The plugin uses the best browser features available (CSS3 transitions and transform, GPU acceleration) + Option available only for `layoutMode: 'grid'` +
gridAdjustment + 'default'
+ 'alignCenter'
+ 'responsive' +
'responsive' + Adjust the layout grid. +
- default (no adjustment applied) +
- alignCenter (align the grid on center of the page) +
- responsive (use a fluid grid to resize the grid) +
mediaQueries + - array of objects of format: [{width: a, cols: d}, {width: b, cols: e}]
+ - you can define as many objects as you want
+ - if this option is `false` Cube Portfolio will adjust the items width automatically (default option for backward compatibility) +
false + Define `media queries` for columns layout. +
Format: [{width: a, cols: d}, {width: b, cols: e}, {width: c, cols: f}], where a, b, c are the grid width and d, e, f are the columns displayed. + e.g. [{width: 1440, cols: 5}, {width: 1024, cols: 4}, {width: 768, cols: 3}, {width: 480, cols: 2}, {width: 320, cols: 1}] means: +
if (gridWidth >= 1440) => show 5 columns, +
if (gridWidth >= 1024 && gridWidth < 1440) => show 4 columns, +
if (gridWidth >= 768 && gridWidth < 1024) => show 3 columns, +
if (gridWidth >= 480 && gridWidth < 768) => show 2 columns, +
if (gridWidth >= 320 && gridWidth < 480) => show 1 columns, +
if (gridWidth < 320) => show 1 columns +
Keep in mind that a > b > c +
This option is available only when `gridAdjustment: 'responsive'` + +
gapHorizontalonly integers (e.g. 1, 5, 10)10Horizontal gap between items
gapVerticalonly integers (e.g. 1, 5, 10)10Vertical gap between items
caption + 'pushTop' +
'pushDown' +
'revealBottom' +
'revealTop' +
'revealLeft' +
'moveRight' +
'overlayBottom' +
'overlayBottomPush' +
'overlayBottomReveal' +
'overlayBottomAlong' +
'overlayRightAlong' +
'minimal' +
'fadeIn' +
'zoom' +
'opacity' +
'pushTop'Caption - the overlay that is shown when you put the mouse over an item.
NOTE: If you don't want to have captions set this option to an empty string (e.g. caption: '')
displayType + 'default' +
'bottomToTop' +
'fadeIn' +
'fadeInToTop' +
'sequentially' +
'fadeIn' + The plugin will display his content based on the following values. +
- default (the content will be displayed without any animation) +
- fadeIn (e.g. lazyLoading) (the plugin will fully preload the images before displaying the items with a fadeIn effect) +
- fadeInToTop - fadeInToTop (the plugin will fully preload the images before displaying the items with a fadeIn effect from bottom to top) +
- sequentially (the plugin will fully preload the images before displaying the items with a sequentially effect) +
- bottomToTop (the plugin will fully preload the images before displaying the items with an animation from bottom to top) +
displayTypeSpeedonly integers, values in ms (e.g. 200, 300, 500)400Defines the speed of displaying the items (when displayType: 'default' this option will have no effect)
+ lightboxDelegate + strings that represent the elements in the document (DOM selector)'.cbp-lightbox'Define any clickable elements you wish to use to trigger lightbox popup on click.
+ lightboxGallery + true or falsetrueEnable / disable gallery mode for lightbox popup
+ lightboxTitleSrc + HTML atributte'data-title'Attribute of the delegate item that contains caption for lightbox
+ lightboxShowCounter + --This options is deprecated. Please use lightboxCounter option instead
+ lightboxCounter + HTML markup code + '<div class="cbp-popup-lightbox-counter">{{current}} of {{total}}</div>' + + Markup of the lightbox counter. To hide the counter for lightbox put this option to an empty string (e.g. '') +
+ singlePageDelegate + strings that represent the elements in the document (DOM selector)'.cbp-singlePage'Define any clickable elements you wish to use to trigger singlePage popup on click.
+ singlePageDeeplinking + true or falsetrueEnable / disable the deeplinking feature for singlePage popup
+ singlePageStickyNavigation + true or falsetrueEnable / disable the sticky navigation for singlePage popup
+ singlePageShowCounter + --This options is deprecated. Please use singlePageCounter option instead
+ singlePageCounter + HTML markup code + '<div class="cbp-popup-singlePage-counter">{{current}} of {{total}}</div>' + + Markup of the singlePage counter. To hide the counter for singlePage put this option to an empty string (e.g. '') +
+ singlePageAnimation + + 'left' +
'fade' +
'right' +
+ 'left' + + Defines which animation to use when singlePage appear +
+ singlePageCallback + + function(url, element) {
+ // to update singlePage content use the following method: this.updateSinglePage(yourContent)
+ } +
nullUse this callback to update singlePage content. The callback will trigger after the singlePage popup is open. (@param url = the href attribute of the item clicked, @param element = the item clicked)
+ singlePageInlineDeeplinking + true or falsefalseEnable / disable the deeplinking feature for singlePageInline
+ singlePageInlineDelegate + strings that represent the elements in the document (DOM selector)'.cbp-singlePageInline'Define any clickable elements you wish to use to trigger singlePageInline popup on click.
+ singlePageInlinePosition + + 'above' +
'below' +
'top' +
'bottom' +
'top'Define the position of singlePage Inline block
+ singlePageInlineInFocus + true or falsetruePush the open panel in focus and at close go back to the former stage
+ singlePageInlineCallback + + function(url, element) {
+ // to update singlePage Inline content use the following method: this.updateSinglePageInline(yourContent)
+ } +
null Use this callback to update singlePage content. The callback will trigger after the singlePage popup is open. (@param url = the href attribute of the item clicked, @param element = the item clicked)
plugins.loadMore.elementstring that represent the elements in the document (DOM selector)''Define the wrapper for loadMore
plugins.loadMore.action'click' or 'auto''click'How the loadMore functionality should behave. Load on click on the button or automatically when you scroll the page
plugins.loadMore.loadItemsonly integers (e.g. 2, 3, 10)3How many items to load when you click on the loadMore button
+ +

Filters

+

+ Based on your filters Cube Portfolio use jQuery to decide which items to hide, show or re-position. Then applies CSS3 transition and transform to smoothly animate these items to their new locations. + The plugin use the best browser features available (CSS3 transition and transform, GPU acceleration). +

+

+ Filtering happens when public API method filter is triggered. + This method (filter) can be trigger from anywhere, so you can use any kind of HTML structure for filters: buttons, links, dropdowns, etc. +

+ +

The following example use some simple buttons to filter the plugin. For dropdown structure please check templates/03-lightbox-gallery/ folder.

+

1. Create the HTML markup:

+
+<div id="filters-container">
+    <!-- '*' means shows all item elements -->
+    <div data-filter="*" class="cbp-filter-item cbp-filter-item-active">All</div>
+    <div data-filter=".animation" class="cbp-filter-item">Animation</div>
+    <div data-filter=".artwork" class="cbp-filter-item">Artwork</div>
+    <div data-filter=".illustration" class="cbp-filter-item">Illustration</div>
+    <div data-filter=".photography" class="cbp-filter-item">Photography</div>
+</div>
+
+

Every filter categories should be entered as the "data-filter" attribute.

+ +

2. Add filter categories to desired target item into its class attribute:

+
+<div id="grid-container">
+    <div class="cbp-item animation illustration">
+        <a title="custom title 1" href="#"><img src="path/to/img1" alt="custom alt 1" width="100%"></a>
+    </div>
+    <div class="cbp-item artwork">
+        <a title="custom title 2" href="#"><img src="path/to/img2" alt="custom alt 2" width="100%"></a>
+    </div>
+    <div class="cbp-item animation artwork photography">
+        <a title="custom title 3" href="#"><img src="path/to/img3" alt="custom alt 3" width="100%"></a>
+    </div>
+</div>
+
+ +

3. When you initialize the plugin you must specify the selector to filters container

+ +
+<script type="text/javascript">
+jQuery('#grid-container').cubeportfolio({
+    filters: '#filters-container', // you can even add multiple filters here (e.g. `filters: '#filters-container1, #filters-container2, #filters-container3'`)
+});
+</script>
+
+

4. If you want to show counter for filters you must update your filters html by adding .cbp-filter-counter inside every .cbp-filter-item element.

+
+<div id="filters-container">
+    <div data-filter="*" class="cbp-filter-item cbp-filter-item-active">
+        All <div class="cbp-filter-counter"></div>
+    </div>
+    <div data-filter=".animation" class="cbp-filter-item">
+        Animation <div class="cbp-filter-counter"></div>
+    </div>
+    <div data-filter=".artwork" class="cbp-filter-item">
+        Artwork <div class="cbp-filter-counter"></div>
+    </div>
+    <div data-filter=".illustration" class="cbp-filter-item">
+        Illustration <div class="cbp-filter-counter"></div>
+    </div>
+    <div data-filter=".photography" class="cbp-filter-item">
+        Photography <div class="cbp-filter-counter"></div>
+    </div>
+</div>
+
+

You can enable a default filter right from the URL. When you visit the page that has Cube Portfolio implemented on it and want to enable the filter Print you can append to url the string #cbpf=.print and the `Print` filter will be active.

+ +

Search

+

+ You can add search functionality in the current grid layout so you can find items quickly (please check Blog Posts template for a working version). + First, add this snippet in your HTML: +

+
+<div class="cbp-search">
+    <!-- data-search attribute is used to target the searching with a jQuery selector. For full search set data-search="*" -->
+    <input id="js-search-blog-posts" type="text" placeholder="Search by title" data-search=".cbp-l-grid-blog-title" class="cbp-search-input">
+    <div class="cbp-search-icon"></div>
+</div>
+
+

+ +

+ To connect the plugin with the HTML snippet you must set the option search: '#js-search-blog-posts' when initialize the plugin. +

+ +

Sort

+

Cube Portfolio can change the order of item elements based on their text content.

+

1. Define the data used for sorting in your HTML

+
+<div id="js-sort" class="cbp-l-sort">
+    <div class="cbp-l-dropdown">
+        <div class="cbp-l-dropdown-wrap">
+            <div class="cbp-l-dropdown-header">Original sorting</div>
+            <div class="cbp-l-dropdown-list">
+                <div class="cbp-l-dropdown-item cbp-sort-item cbp-l-dropdown-item--active" data-sort="">Original sorting</div>
+                <div class="cbp-l-dropdown-item cbp-sort-item" data-sort=".cbp-l-grid-projects-title">Title</div>
+                <div class="cbp-l-dropdown-item cbp-sort-item" data-sort=".cbp-l-grid-projects-desc">Description</div>
+            </div>
+        </div>
+    </div>
+    <div class="cbp-l-direction cbp-l-direction--second">
+        <div class="cbp-l-direction-item cbp-sort-item" data-sortBy="string:asc"></div>
+        <div class="cbp-l-direction-item cbp-sort-item" data-sortBy="string:desc"></div>
+    </div>
+</div>
+
+

+ The data-sort attribute is a selector used to retrieve the data from the grid. + For the above example, Cube Portfolio gets for every item the text content of .cbp-l-grid-projects-title selector. That text will be used as a sorting data.

+

+ The data-sortBy attribute is used to define how the sorting data is processed. +

    +
  • + string:asc means the data is first converted to a string (if necessary) and then sort that data in ascending order. +
  • +
  • + int:desc means the data is first converted to an integer number and then sort that data in descending order. +
  • +
  • + float:asc means the data is first converted to a float number and then sort that data in ascending order. +
  • +
  • + Only the elements that have the class.cbp-sort-item interact with the sorting algorithm. Those elements must have at least one of these atributes defined: data-sort or data-sortBy. + Otherwise, those elements will not interact with the sorting algorithm. +
  • +
+ + +

+
+

2. Connect the sorting wrapper (#js-sort for the above example) to cube portfolio initialization options:

+
+<script type="text/javascript">
+jQuery('#grid-container').cubeportfolio({
+    plugins: {
+        sort: {
+            element: '#js-sort',
+        },
+    },
+});
+</script>
+
+ +

Lazy Load

+

Because Cube Portfolio must know the dimensions of his items before creating the grid you have three approaches on how to load the images:

+ +

1. Load all images before displaying the grid.

+ Images HTML markup: +
+<img src="path/to/your/img">
+
+ +

2. Display the grid as soon as possible. This means that the content will be visible and in time the images will catch up.

+ Images HTML markup: +
+<!--  width & height attributes are the original dimensions of the image -->
+<img src="path/to/your/img" width="200" height="200">
+
+ +

3. Display the grid as soon as possible with a preload effect for images. This option will load only the images that are visible in the current viewport. + As you scroll the page the rest of the images are loaded. I recommend this approach if you use a lot of images.

+ Images HTML markup: +
+<!--
+Width & height attributes are the original dimensions of the image.
+The src attribute is mandatory to have a valid markup HTML. In the below snippet, the image source is set to a 1px gif white color.
+The data-cbp-src is used to set the src attribute once the image is loaded.
+-->
+<img src="data:image/gif;base64,R0lGODlhAQABAPAAAP///////yH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==" data-cbp-src="path/to/your/img" width="200" height="200">
+
+ +

Lightbox

+

When an anchor tag (link) is pressed you can choose either to display a cubeportoflio lightbox, open a singlePage popup, or to open a new web page based on the URL of the anchor tag. The lightbox can display images or videos loaded from YouTube, Vimeo, Ted.com or self-hosted videos (use delimiter '|' in href attribute to add the path to other formats for self-hosted videos).

+ +

Cube Portfolio use a custom lightbox system that is dependent to the plugin. You can use another lightbox system, but you will not have all of the features included in the Cube Portfolio lightbox. (Please see options section)

+ +

To enable lightbox, you must add cbp-lightbox class (or another class that you set in lightboxDelegate options) on the anchor elements that will open the lightbox on click.

+ +

Based on the href attribute of the anchor tag the lightbox will open an image or a video.

+ +

+ You can also add sounds from SoundCloud by going on their site, select the share option and click on Embed tab. + In there you will find in the input an iframe element, copy the src of the iframe and include it in the .cbp-lightbox href (check the code below of a working example). +

+ +

Also, Cubeportfolio has support for self-hosted .mp3 audio files. You must add the path your .mp3 file to the href attribute of the lightbox.

+ +

For youtube and vimeo videos you can also append custom params to the video link (e.g. &rel=0&autoplay=0&loop=1 +
Please check youtube and vimeo embedding pages for more info)

+ +
+<div id="grid-container">
+    <div class="cbp-item">
+        <!-- data-title attribute will be use to populate lightbox caption -->
+        <a class="cbp-lightbox" data-title="custom title 1" href="http://www.youtube.com/watch?v=bpOSxM0rNPM&rel=0&autoplay=0">
+            <img src="path/to/img1" alt="custom alt 1" width="100%">
+        </a>
+    </div>
+    <div class="cbp-item">
+        <a class="cbp-lightbox" data-title="custom title 2" href="http://vimeo.com/74216460?autoplay=0&loop=1">
+            <img src="path/to/img2" alt="custom alt 2" width="100%">
+        </a>
+    </div>
+    <div class="cbp-item">
+        <a class="cbp-lightbox" data-title="custom title 3" href="http://www.ted.com/talks/david_epstein_are_athletes_really_getting_faster_better_stronger">
+            <img src="path/to/img2" alt="custom alt 3" width="100%">
+        </a>
+    </div>
+    <div class="cbp-item">
+        <a class="cbp-lightbox" data-title="custom title 3" href="https://w.soundcloud.com/player/?url=https%3A//api.soundcloud.com/tracks/26519543&auto_play=true&hide_related=false&show_comments=true&show_user=true&show_reposts=false&visual=true">
+            <img src="path/to/img2" alt="custom alt 3" width="100%">
+        </a>
+    </div>
+    <div class="cbp-item">
+        <a class="cbp-lightbox" data-title="custom title 4" href="path/to/videos/big_buck_bunny.mp4|path/to/videos/big_buck_bunny.ogg|path/to/videos/big_buck_bunny.webm">
+            <img src="path/to/img2" alt="custom alt 4" width="100%">
+        </a>
+    </div>
+    <div class="cbp-item">
+        <a class="cbp-lightbox" data-title="custom title 5" href="path/to/big/img">
+            <img src="path/to/img3" alt="custom alt 5" width="100%">
+        </a>
+    </div>
+</div>
+
+ +

Use Cube Portfolio lightbox outside of the plugin

+

To use the lightbox feature add class cbp-lightbox on your link elements.

+
+<a class="cbp-lightbox" data-title="custom title 3" href="path/to/img3">
+    external link
+</a>
+
+ +

To create a gallery add also the data-cbp-lightbox attribute on those links. The value for data-cbp-lightbox attribute can be whatever you want but must be the same for one gallery.

+
+<a class="cbp-lightbox" data-title="custom title 1" href="path/to/img1" data-cbp-lightbox="myCustomLightbox">
+    external link 1
+</a>
+<a class="cbp-lightbox" data-title="custom title 2" href="path/to/img2" data-cbp-lightbox="myCustomLightbox">
+    external link 2
+</a>
+<a class="cbp-lightbox" data-title="custom title 3" href="path/to/img3" data-cbp-lightbox="myCustomLightbox">
+    external link 3
+</a>
+
+ +

Single Page

+

You can open a custom HTML content by using the singlePage feature. Single Page uses a similar approach to lightbox system and you can use any kind of HTML markup as a content.

+ +

+ You have the option to deep link a singlePage based on the href attribute of anchor tag that opened the singlePage. This means that URL automatically change when you switch to another singlePage and you can easily link to the desired singlePage when Cube Portfolio starts. + To do that, you have to enable singlePageDeeplinking in options. +

+ +

To enable singlePage, you must add a cbp-singlePage class (or another class that you set in singlePageDelegate options) on the anchor elements that will open the singlePage on click.

+ +

The content that will be add to singlePage with the callback: singlePageCallback

+ +

To update content you must use updateSinglePage method and pass your HTML content as a parameter.

+ +
+<div id="grid-container">
+    <div class="cbp-item">
+        <a href="myCustomLink1" class="cbp-singlePage">
+            open singlePage 1
+        </a>
+    </div>
+    <div class="cbp-item">
+        <a href="myCustomLink2" class="cbp-singlePage">
+            open singlePage 2
+        </a>
+    </div>
+    <div class="cbp-item">
+        <a href="myCustomLink3" class="cbp-singlePage">
+            open singlePage 3
+        </a>
+    </div>
+</div>
+
+ +
+<script type="text/javascript">
+jQuery('#grid-container').cubeportfolio({
+    /**
+     *  This callback function will be trigger after the singlePage popup will be opened. (@param item = the current item clicked)
+     */
+    singlePageCallback: function (item) {
+        // add content to singlePage
+        this.updateSinglePage('<div>My content to append to singlePage container</div>');
+
+    }
+});
+</script>
+
+ +

Use Cube Portfolio singlePage outside of the plugin

+

To use singlePage feature add class cbp-singlePage on your link elements.

+
+<a class="cbp-singlePage" href="myCustomLink">
+    external singlePage link
+</a>
+
+ +

To create a gallery add also the data-cbp-singlePage attribute on those links. The value for data-cbp-singlePage attribute can be whatever you want but must be the same for one gallery.

+
+<a class="cbp-singlePage" href="myCustomLink1" data-cbp-singlePage="myCustomSinglePage">
+    external singlePage link 1
+</a>
+<a class="cbp-singlePage" href="myCustomLink2" data-cbp-singlePage="myCustomSinglePage">
+    external singlePage link 2
+</a>
+<a class="cbp-singlePage" href="myCustomLink3" data-cbp-singlePage="myCustomSinglePage">
+    external singlePage link 3
+</a>
+
+ +

+ NoteIf you run the plugin locally you must know that Chrome, Opera and Internet Explorer deny local AJAX (XMLHttpRequest) requests locally. + You must use a web server to test singlePage feature. If you are using a web server and still have this issues please send me a link to your live website. +

+ +

Single Page Inline

+

You can open a custom HTML content by using the singlePageInline feature. Single Page Inline use a similar approach to singlePage, but his content is added directly to the content of the plugin.

+ +

To enable singlePageInline, you must add a cbp-singlePageInline class (or another class that you set in singlePageInlineDelegate options) on the anchor elements that will open the singlePageInline on click.

+ +

The content that will be add to singlePageInline with the callback: singlePageInlineCallback

+ +

To update content you must use updateSinglePageInline method and pass your HTML content as a parameter.

+ +
+<div id="grid-container">
+    <div class="cbp-item">
+        <a href="myCustomLink1" class="cbp-singlePageInline">
+            open singlePageInline 1
+        </a>
+    </div>
+    <div class="cbp-item">
+        <a href="myCustomLink2" class="cbp-singlePageInline">
+            open singlePageInline 2
+        </a>
+    </div>
+    <div class="cbp-item">
+        <a href="myCustomLink3" class="cbp-singlePageInline">
+            open singlePageInline 3
+        </a>
+    </div>
+</div>
+
+ +
+<script type="text/javascript">
+jQuery('#grid-container').cubeportfolio({
+    /**
+     *  This callback function will be trigger after the singlePageInline popup will be opened. (@param item = the current item clicked)
+     */
+    singlePageInlineCallback: function (item) {
+        // add content to singlePageInline
+        this.updateSinglePageInline('<div>My content to append to singlePageInline container</div>');
+
+    }
+});
+</script>
+
+ +

+ NoteIf you run the plugin locally you must know that Chrome, Opera and Internet Explorer deny local AJAX (XMLHttpRequest) requests locally. + You must use a web server to test singlePageInline feature. If you are using a web server and still have this issues please send me a link to your live website. +

+ +

Captions

+

+ Cube Portfolio has predefined captions, but it is very simple to add your own HMTL formatted containers inside the entries with your own CSS. + You can create captions from almost any static HTML elements. +

+

There are 11 predefined examples for captions in Cube Portfolio:

+
    +
  • pushTop
  • +
  • revealBottom
  • +
  • moveRight
  • +
  • overlayBottomPush
  • +
  • overlayBottom
  • +
  • overlayBottomReveal
  • +
  • overlayBottomAlong
  • +
  • overlayRightAlong
  • +
  • minimal
  • +
  • fadeIn
  • +
  • zoom
  • +
+ +

To activate a particulary caption set that caption in caption options

+
+<script type="text/javascript">
+jQuery('#grid-container').cubeportfolio({
+    caption: 'pushTop'
+});
+</script>
+
+

+ In your HTML markup you must add cbp-caption class to container that wrap your caption. + Also, the default state of caption must be wrap in a cbp-caption-defaultWrap container and + the active state of caption must be wrap in another cbp-caption-activeWrap container. +

+
+<div id="grid-container">
+    <div class="cbp-item">
+        <div class="cbp-caption">
+            <div class="cbp-caption-defaultWrap">
+                <img src="path/to/img" alt="" width="100%">
+            </div>
+            <div class="cbp-caption-activeWrap">
+                <h1>Caption that is active on hover</h1>
+            </div>
+        </div>
+    </div>
+</div>
+
+ +

Templates

+

Cube Portfolio comes with 16 starter templates: Juicy Project, Lightbox Gallery, Meet the Team, Full Width, Masonry, Blog Posts, + Slider, Awesome Work, Clients, Tabs, Agency, Testimonials. You will find them in the templates folder.

+ +

+ Every component (filters, grid container, and load more) have different skins that are completely independent of the others), so the skins can be combined. To enable a skin add the correspondent class to desire component container. + To change the numbers of columns please refer to the Options area for mediaQueries feature. +

+ +

+ If you want to control the height of you item you can define the height for every .cbp-item in your CSS: +

+.cbp-item {
+    height: 300px; /* your desire value */
+}
+
+

+ +

API

+

+ Cube Portfolio has several public API methods to use for external control. + For every callbackFunction this keyword refers to Cube Portfolio instance. +

+ +

1. Initialize the plugin

+
+// default init
+jQuery("#grid-container").cubeportfolio(options);
+                    // or
+jQuery("#grid-container").cubeportfolio('init', options);
+
+// with callback function
+jQuery("#grid-container").cubeportfolio(options, callbackFunction);
+                    // or
+jQuery("#grid-container").cubeportfolio('init', options, callbackFunction);
+
+ +
+

2. Destroy the plugin (removes all events, data and markup from page)

+
+jQuery("#grid-container").cubeportfolio('destroy');
+
+// with callback function
+jQuery("#grid-container").cubeportfolio('destroy', callbackFunction);
+
+ +
+

3. Filter the items

+
+// filterDataSelector can be (only if you set .cbp-filter-item on filter selectors): jQuery('.cbp-filter-item').data('filter')
+jQuery("#grid-container").cubeportfolio('filter', filterDataSelector);
+
+// with callback function
+jQuery("#grid-container").cubeportfolio('filter', filterDataSelector, callbackFunction);
+
+ +
+

4. Activate counter on filters

+
+// filterSelector can be (only if you set .cbp-filter-item on filter selectors): jQuery('.cbp-filter-item')
+jQuery("#grid-container").cubeportfolio('showCounter', filterSelector);
+
+// with callback function
+jQuery("#grid-container").cubeportfolio('showCounter', filterSelector, callbackFunction);
+
+ +
+

5. Append new items to plugin

+

Append the htmlContent to the grid, filter the new content, then will rearange all item elements to a properly layout.

+
+// htmlContent - your HTML content
+jQuery("#grid-container").cubeportfolio('append', htmlContent);
+
+// with callback function
+jQuery("#grid-container").cubeportfolio('append', htmlContent, callbackFunction);
+
+ +

A typical htmlContent can look like this:

+
+var htmlContent = '<div class="logo cbp-item">my awesome content to append to plugin</div> <div class="logo cbp-item">my second awesome content to append to plugin</div>';
+
+

Note: Don't forget to add class .cbp-item to your div element

+ +
+

6. Prepend new items to plugin

+

Prepend method works similar with the above append method, the only difference is that the htmlContent is inserted and the start of the grid.

+
+// htmlContent - your HTML content
+jQuery("#grid-container").cubeportfolio('prepend', htmlContent);
+
+// with callback function
+jQuery("#grid-container").cubeportfolio('prepend', htmlContent, callbackFunction);
+
+ + +
+

7. Remove items from the CubePortfolio instance and DOM

+
+// items - jQuery DOM Object of the items you want to remove
+jQuery("#grid-container").cubeportfolio('remove', items);
+
+// with callback function
+jQuery("#grid-container").cubeportfolio('remove', items, callbackFunction);
+
+ +

To remove the first item in the grid you can use it like this:

+
+var grid = jQuery("#grid-container");
+grid.cubeportfolio('remove', grid.find('.cbp-item').first());
+
+ +
+

8. Relayout all elements in the current grid. Useful when all/some items need to be laid out again, or grid width is changed.

+
+jQuery("#grid-container").cubeportfolio('layout');
+
+// with callback function
+jQuery("#grid-container").cubeportfolio('layout', callbackFunction);
+
+ + +
+

Event Emitter

+

+ Cube Portfolio emit some events when certain events happens. You can subscribe to them by using jQuery event syntax: +

+jQuery("#grid-container").on('updateSinglePageComplete.cbp', function() {
+    // your functionality
+});
+
+ and unsubscrbe to them by ussing .off method +
+jQuery("#grid-container").off('updateSinglePageComplete.cbp');
+
+

+

The events supported are: +

    +
  • updateSinglePageStart.cbp (singlePage finished appending the content but singlePage is not visible yet)
  • +
  • updateSinglePageComplete.cbp (singlePage finished appending the content and singlePage is now visible on the screen)
  • +
  • updateSinglePageInlineStart.cbp (singlePageInline finished appending the content but the grid resize is not started yet)
  • +
  • updateSinglePageInlineComplete.cbp (singlePageInline finished appending the content and the grid resize is done)
  • +
  • initComplete.cbp (the plugin is initialized)
  • +
  • pluginResize.cbp (the plugin height change)
  • +
  • filterComplete.cbp (a filter trigger is finished)
  • +
  • onAfterLoadMore.cbp (fired after the loadMore functionality is executed)
  • +
+

+ + +

Load More Items

+

+ You can use load more feature using public API method append. +

+
+// ... after cubeportfolio initialization
+// basic load more items using public method `append`
+jQuery("#grid-container").cubeportfolio('append', '<div class="logo cbp-item">my awesome content to append to plugin</div> <div class="logo cbp-item">my second awesome content to append to plugin</div>');
+
+

For more advanced examples please go to templates/juicy-projects/index.html path and check the HTML and JS markup.

+ +

Support

+ +

+ If you have any questions that are beyond the scope of this documentation file, please feel free to email via my user page contact form here.

+

+ +

Change Log

+

v4.4.0 - 1 August, 2018

+
    +
  • [FEATURE] - added second filter level (demo: http://scriptpie.com/cubeportfolio/live-preview/templates/mosaic/)
  • +
+ +

v4.3.4 - 16 July, 2018

+
    +
  • [BUG FIXED] - fix multiple selected filters and loadMore interaction
  • +
  • [BUG FIXED] - small improvements for the CSS code
  • +
+ +

v4.3.3 - 5 June, 2018

+
    +
  • [BUG FIXED] - fix some edge cases when open singlePageInline with 'above' option
  • +
+ +

v4.3.2 - 7 April, 2018

+
    +
  • [BUG FIXED] - search input focus on safari
  • +
  • [BUG FIXED] - scroll back to the last position after singlePage closes
  • +
+ +

v4.3.1 – 15 January, 2018

+
    +
  • [BUG FIXED] - singlePageInline multiple mouse clicks open
  • +
  • [BUG FIXED] - slider-thumbnail template CSS pagination
  • +
  • [BUG FIXED] - mousewheel passive event fix
  • +
  • [BUG FIXED] - fix error when grid width is zero
  • +
+ +

v4.3.0 - 9 August, 2017

+
    +
  • [FEATURE] - sorting algorithm
  • +
  • [BUG FIXED] - fix ie8 load issue
  • +
+ +

v4.2.0 - 2 June, 2017

+
    +
  • [FEATURE] - Relayout manualy all elements in the current grid with the new `layout` API method
  • +
  • [BUG FIXED] - keep the aspect ratio for images when grid is resized from a small to a bigger width
  • +
  • [BUG FIXED] - fix some issues for the CSS caption
  • +
  • [BUG FIXED] - `sortToPreventGaps` option renamed to `sortByDimension`
  • +
  • [BUG FIXED] - `plugins.loadMore.selector` option renamed to `plugins.loadMore.element`
  • +
+ +

v4.1.1 - 20 March, 2017

+
    +
  • [BUG FIXED] - singlePage performance improvements on mobile
  • +
+ +

v4.1.0 - 9 February, 2017

+
    +
  • [FEATURE] - improved the loadMore feature performance
  • +
  • [FEATURE] - added support for loadMore under filter selection
  • +
  • [FEATURE] - added counter for the remaining items under loadMore
  • +
  • [FEATURE] - improve singlePage animation performance
  • +
  • [FEATURE] - added plugins.loadMore.loadItems option the set how many items to load on one round
  • +
  • [FEATURE] - the .cbp-loadBlocks containers from the loadMore.html files are now unnecessary
  • +
  • [FEATURE] - loadMore & loadMoreAction options are deprecared. Use plugins.loadMore.element & plugins.loadMore.action options instead
  • +
  • [BUG FIXED] - singlePageInline close action when I have a filter selected differently than 'All.'
  • +
+ +

v4.0.0 - 4 January, 2017

+
    +
  • [FEATURE] - added svelte tool support to strip the unused features
  • +
  • [FEATURE] - optimize CSS code
  • +
  • [BUG FIXED] - fix singlePageInline animation
  • +
+ +

v3.9.0 - 9 December, 2016

+
    +
  • [FEATURE] - added gapHorizontal & gapVertical support for mediaQueries
  • +
  • [FEATURE] - improved the animation performance for caption and filters
  • +
  • [BUG FIXED] - fix layout for mobile devices
  • +
+ +

v3.8.1 - 25 November, 2016

+
    +
  • [BUG FIXED] - slider error in singlePage after resize
  • +
  • [BUG FIXED] - lazyLoad on initial loading
  • +
  • [BUG FIXED] - gallery position for ie11
  • +
  • [BUG FIXED] - support for youtu.be shorturl
  • +
  • [BUG FIXED] - small css issues
  • +
+ +

v3.8.0 - 19 September, 2016

+
    +
  • [FEATURE] - support to hide the caption on certain widths
  • +
  • [FEATURE] - added onAfterLoadMore.cbp public event
  • +
  • [BUG FIXED] - singlePageInline position fix for masonry layout
  • +
+ +

v3.7.1 - 28 June, 2016

+
    +
  • [BUG FIXED] - prevent page jumping after closing singlePageInline
  • +
  • [BUG FIXED] - ie8/ie9 scroll issue for singlePage
  • +
  • [BUG FIXED] - singlePageInline position for masonry layout
  • +
+ +

v3.7.0 - 6 June, 2016

+
    +
  • [FEATURE] - replace font-awesome to svg icons
  • +
  • [BUG FIXED] - NEXT/PREV/ESC keys for lightbox & singlePage when both are open
  • +
+ +

v3.6.2 - 27 April, 2016

+
    +
  • [BUG FIXED] - singlePageInlinePosition `below` option
  • +
+ +

v3.6.1 - 26 April, 2016

+
    +
  • [BUG FIXED] - destroy public API method when grid doesn't have items or .cbp-item is empty
  • +
  • [BUG FIXED] - singlePageInlinePosition `above` option
  • +
  • [BUG FIXED] - fix auto loadMore & lazyLoad after `destroy` call
  • +
  • [BUG FIXED] - fix lazyLoad when you change filters
  • +
  • [BUG FIXED] - detect images srcset attribute
  • +
  • [BUG FIXED] - small fixes for the documentation file
  • +
+ +

v3.6.0 - 18 March, 2016

+
    +
  • [FEATURE] - prepend, remove items public API
  • +
  • [FEATURE] - appendItems public API renamed to append
  • +
  • [FEATURE] - initialize the plugin from data attribute
  • +
  • [BUG FIXED] - reset filters active class after search is used
  • +
+ +

v3.5.2 - 11 February, 2016

+
    +
  • [BUG FIXED] - social icons position
  • +
+ +

v3.5.1 - 30 January, 2016

+
    +
  • [BUG FIXED] - singlePageInline prevent crash on double click
  • +
+ +

v3.5.0 - 30 January, 2016

+
    +
  • [FEATURE] - added social buttons to singlePage and singlePageInline
  • +
  • [BUG FIXED] - updateSinglePageStart event emitter fix
  • +
  • [BUG FIXED] - double click on singlePageInline items
  • +
+ +

v3.4.3 - 6 January, 2016

+
    +
  • [BUG FIXED] - firefox center lightbox images
  • +
  • [BUG FIXED] - improve singlePage popup behavior
  • +
+ +

v3.4.2 - 12 December, 2015

+
    +
  • [BUG FIXED] - singlePage animation improved
  • +
  • [BUG FIXED] - destroy method for slider
  • +
  • [BUG FIXED] - drag slider issue fix
  • +
  • [BUG FIXED] - small CSS improvements
  • +
+ +

v3.4.0 - 15 November, 2015

+
    +
  • [FEATURE] - deeplinking for singlePageInline
  • +
  • [BUG FIXED] - audio player layout in lightbox
  • +
  • [BUG FIXED] - drag behavior on firefox 42
  • +
+ +
    +
  • [FEATURE] - lazyLoad for images
  • +
  • [FEATURE] - inline slider inside items
  • +
  • [FEATURE] - slider-thumbnail new template
  • +
  • [FEATURE] - improve loadMore functionatility
  • +
  • [FEATURE] - new loading icon
  • +
  • [BUG FIXED] - fix loadMore when the js option is set but the loadMore html is deleted
  • +
  • [BUG FIXED] - singlePageInline fix for gridAdjustment: 'default' option
  • +
  • [BUG FIXED] - small CSS improvements
  • +
+ +

v3.2.1 - 14 October, 2015

+
    +
  • [BUG FIXED] - trigger load images in IE8
  • +
  • [BUG FIXED] - read filter name from URL
  • +
  • [BUG FIXED] - ted.com embed video issue
  • +
  • [BUG FIXED] - added autocomplete="off" attribute to search input
  • +
+ +

v3.2.0 - 12 September, 2015

+
    +
  • [FEATURE] - text message when no results match the search entry
  • +
  • [BUG FIXED] - zoom caption on safari osx
  • +
  • [BUG FIXED] - dropdown filter on mobile
  • +
+ +

v3.1.1 - 7 September, 2015

+
    +
  • [BUG FIXED] - init API method with a callback
  • +
  • [BUG FIXED] - set correctly the height for container when there are 0 items
  • +
+ +

v3.1.0 - 2 September, 2015

+
    +
  • [FEATURE] - added search system
  • +
+ +

v3.0.4 - 30 August, 2015

+
    +
  • [BUG FIXED] - caption fadeIn animation
  • +
  • [BUG FIXED] - improve stability
  • +
+ +

v3.0.3 - 19 August, 2015

+
    +
  • [BUG FIXED] - slideDelay animation fix for some edge cases
  • +
  • [BUG FIXED] - dropdown default header text
  • +
  • [BUG FIXED] - loadMore compatibility with jQuery 1.9.x & 2.0.0
  • +
+ +

v3.0.2 - 14 August, 2015

+
    +
  • [BUG FIXED] - slider destroy API method
  • +
+ +

v3.0.1 - 4 August, 2015

+
    +
  • [BUG FIXED] - mosaic generate responsive columns
  • +
  • [BUG FIXED] - trigger correctly loadMore callback when you append 0 items to grid
  • +
+ +

v3.0.0 - 1 August, 2015

+
    +
  • [FEATURE] - mosaic layout system
  • +
  • [FEATURE] - posibility to sort the items by dimension for a multi-column gap free layout
  • +
  • [FEATURE] - added 3 new starter templates
  • +
  • [FEATURE] - multiple filters support
  • +
  • [FEATURE] - stability & performance improvements
  • +
  • [FEATURE] - small style update for filters & loadMore
  • +
+ +

v2.3.4 - 20 July, 2015

+
    +
  • [BUG FIXED] - faq template bug on firefox, ios, IE8 & IE9
  • +
+ +

v2.3.3 - 16 June, 2015

+
    +
  • [BUG FIXED] - slider template fix singlePage
  • +
+ +

v2.3.2 - 26 May, 2015

+
    +
  • [BUG FIXED] - when the grid has 0 items init correctly the plugin
  • +
  • [BUG FIXED] - lightbox issue for singlePageInline
  • +
+ +

v2.3.1 - 7 May, 2015

+
    +
  • [BUG FIXED] - deeplinking for loadMore
  • +
  • [BUG FIXED] - caption CSS background color
  • +
+ +

v2.3.0 - 4 May, 2015

+
    +
  • [FEATURE] - added options to integrate filters & loadMore functionality into the plugin
  • +
  • [FEATURE] - added multiple grids on the same page example
  • +
  • [FEATURE] - code refractoring
  • +
  • [BUG FIXED] - animationType don't behave correctly on some edge cases
  • +
  • [BUG FIXED] - remove from dom unnecessary html nodes when animating
  • +
  • [BUG FIXED] - loadMore issue for full-width template
  • +
  • [BUG FIXED] - fixed some CSS
  • +
+ +

v2.2.0 - 19 April, 2015

+
    +
  • [FEATURE] - added new template layout(e.g. faq template)
  • +
  • [FEATURE] - added soundcloud.com support in ligthbox
  • +
  • [FEATURE] - added self hosted .mp3 files support in ligthbox
  • +
  • [FEATURE] - added default style caption (e.g. caption: '')
  • +
  • [FEATURE] - added two new API events: updateSinglePageStart.cbp and updateSinglePageInlineStart.cbp
  • +
  • [BUG FIXED] - singlePage hash issue for loadMore items
  • +
  • [BUG FIXED] - fixed gridAdjustement for `default` and `alignCenter` options
  • +
+ +

v2.1.1 - 7 April, 2015

+
    +
  • [BUG FIXED] - `bottomToTop` Display Type option
  • +
  • [BUG FIXED] - fixed infinite load more functionality
  • +
+ +

v2.1.0 – 27 March, 2015

+
    +
  • [FEATURE] - performance improvements
  • +
  • [FEATURE] - code refractoring
  • +
  • [FEATURE] - group images in `lightbox` or `singlePage` so that each project can have it's own gallery
  • +
  • [BUG FIXED] - stop filters action when grid is loading
  • +
  • [BUG FIXED] - open full screen videos for singlePageInline
  • +
  • [BUG FIXED] - singlePage deeplinking can create duplicates in href
  • +
  • [BREAKING CHANGE] - removed `lazyLoading` (displayType) option
  • +
  • [BREAKING CHANGE] - removed `boxShadow` (animationType) option
  • +
+ +

v2.0.1 – 21 January, 2015

+
    +
  • [BUG FIXED] - margin-top of singlePage content for small devices
  • +
  • [BUG FIXED] - slider-project template performance improvements
  • +
  • [BUG FIXED] - API destroy slider layout issue
  • +
+ +

v2.0.0 – 17 January, 2015

+
    +
  • [FEATURE] - slider layout option with drag support
  • +
  • [FEATURE] - better responsive layout system. now you can set the columns number based on the browser resolution
  • +
  • [FEATURE] - performance improvements
  • +
  • [FEATURE] - code refractoring
  • +
  • [FEATURE] - items auto height
  • +
  • [FEATURE] - added 9 new templates
  • +
  • [BUG FIXED] - mobile scroll for singlePage
  • +
  • [BREAKING CHANGE] - new html structure (old syntax still works)
  • +
  • [BREAKING CHANGE] - remove support for IE8 & IE9 animations
  • +
+ +

v1.6.0 – 7 November, 2014

+
    +
  • [FEATURE] - set the appear animation for singlePage popup (e.g. `left`, `right`, `fade`)
  • +
  • [FEATURE] - youtube & video posibility to add params (e.g. &rel=0&autoplay=0 etc)
  • +
  • [FEATURE] - code improvements
  • +
  • [BUG FIXED] - minor CSS bugs
  • +
+ +

v1.5.1 – 29 September, 2014

+
    +
  • [BUG FIXED] - multiple grids on the same page
  • +
  • [BUG FIXED] - mark-up for singlePage counter
  • +
+ +

v1.5.0 – 8 September, 2014

+
    +
  • [FEATURE] - improved responsive layout on mobile, tablet and desktop
  • +
  • [FEATURE] - added deeplinking for filters
  • +
  • [FEATURE] - open singlePageInline at the bottom of the grid
  • +
  • [FEATURE] - use lightbox and singlePage outside of the grid
  • +
  • [FEATURE] - set the mark-up for ligthbox and siglePage counter
  • +
  • [FEATURE] - improved the look and feel of templates
  • +
  • [BUG FIXED] - singlePageInline overflow the items in some cases
  • +
  • [BUG FIXED] - dropdown filters is now closing at click
  • +
  • [BUG FIXED] - responsive bugs on some mobile devices
  • +
  • [BREAKING CHANGE] - changed JS and HTML for dropdown filters
  • +
+ +

v1.4.1 – 23 June, 2014

+
    +
  • [BUG FIXED] - ios: double click to activate a filter
  • +
  • [BUG FIXED] - page shift to the left by 15-20px
  • +
+ +

v1.4.0 – 10 May, 2014

+
    +
  • [FEATURE] - added ted.com videos support
  • +
  • [FEATURE] - added support for self hosted videos
  • +
  • [BUG FIXED] - corect dimensions for default filter
  • +
  • [BUG FIXED] - page flickers during singlePage open transition
  • +
+ +

v1.3.0 – 24 March, 2014

+
    +
  • [FEATURE] - added default filter
  • +
  • [FEATURE] - added related projects, basic slider and closing transition for singlePage feature
  • +
  • [FEATURE] - focus the open panel for singlePageInline feature
  • +
  • [BUG FIXED] - CSS bugs fixed
  • +
+ +

v1.2.0 – 23 January, 2014

+
    +
  • [FEATURE] - added 12 new animations for filters: 'Slide Delay', '3d Flip', 'Rotate Sides', 'Flip Out Delay', 'Flip Out', 'Unfold', 'Fold Left', 'Scale Down', 'Scale Sides', 'Front Row', 'Flip Bottom', 'Rotate Room'
  • +
  • [FEATURE] - added a new feature to open projects (singlePageInline). See exeample on 'Lightbox Gallery' template
  • +
  • [BUG FIXED] - CSS bugs fixed
  • +
+ +

v1.1.0 – 18 December, 2013

+
    +
  • [FEATURE] - added a new animation for filters: 'Skew'
  • +
  • [FEATURE] - added 3 new caption effects: 'revealLeft', 'revealTop', 'pushDown'
  • +
  • [FEATURE] - added 2 new display type: 'fadeInToTop' and 'bottomToTop'
  • +
  • [FEATURE] - documentation updated
  • +
+ +

v1.0.0 – 10 December, 2013

+
    +
  • initial release
  • +
+ +
+
+ Created by Mihai Buricea +
+
+ + + + + + + + + + + diff --git a/documentation/js/main.js b/documentation/js/main.js new file mode 100644 index 0000000..b830893 --- /dev/null +++ b/documentation/js/main.js @@ -0,0 +1,86 @@ +$(document).ready(function() { + + var verticalLinks = { + + init: function() { + var t = this, + name; + + var url = document.URL; + + var index = url.lastIndexOf('#'); + + if (index > 0 && index < url.length - 1) { + name = url.substr(index); + + t.options.links.children().filter(function() { + + var me = $(this), + link = me.children(); + + if (link.attr('href') === name) { + me.addClass('active'); + } + }); + + } else { + t.options.links.children().eq(t.options.defaultLink).addClass('active'); + } + + // add events + t.addEvents(); + + }, + + // add events + addEvents: function() { + var t = this, + me; + + t.options.links.on('click', 'dt', function(e) { + me = $(this); + + me.addClass('active').siblings().removeClass('active'); + + }); + + $(window).scroll(function(e) { + + t.offset = $.map($('a[name]'), function(value, index) { + return { + el: $(value), + offset: $(value).offset().top + }; + }); + + var offset = e.currentTarget.pageYOffset, + hash; + + for (var i = 0; i < t.offset.length; i++) { + if (offset >= t.offset[i].offset) { + hash = t.offset[i].el.attr('name'); + } + } + + hash = (hash) ? hash : t.offset[0].el.attr('name'); + + $('#navigation').children().removeClass('active'); + + $('a[href="#' + hash + '"]').parent().addClass('active'); + + }); + }, + + + options: { + links: $('#navigation'), + defaultLink: 0 + } + + }; + + (Object.create(verticalLinks)).init(); + + prettyPrint(); + +}); diff --git a/documentation/js/prettify.js b/documentation/js/prettify.js new file mode 100644 index 0000000..ed472b5 --- /dev/null +++ b/documentation/js/prettify.js @@ -0,0 +1,33 @@ +!function(){var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; +(function(){function S(a){function d(e){var b=e.charCodeAt(0);if(b!==92)return b;var a=e.charAt(1);return(b=r[a])?b:"0"<=a&&a<="7"?parseInt(e.substring(1),8):a==="u"||a==="x"?parseInt(e.substring(2),16):e.charCodeAt(1)}function g(e){if(e<32)return(e<16?"\\x0":"\\x")+e.toString(16);e=String.fromCharCode(e);return e==="\\"||e==="-"||e==="]"||e==="^"?"\\"+e:e}function b(e){var b=e.substring(1,e.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),e=[],a= +b[0]==="^",c=["["];a&&c.push("^");for(var a=a?1:0,f=b.length;a122||(l<65||h>90||e.push([Math.max(65,h)|32,Math.min(l,90)|32]),l<97||h>122||e.push([Math.max(97,h)&-33,Math.min(l,122)&-33]))}}e.sort(function(e,a){return e[0]-a[0]||a[1]-e[1]});b=[];f=[];for(a=0;ah[0]&&(h[1]+1>h[0]&&c.push("-"),c.push(g(h[1])));c.push("]");return c.join("")}function s(e){for(var a=e.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),c=a.length,d=[],f=0,h=0;f=2&&e==="["?a[f]=b(l):e!=="\\"&&(a[f]=l.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return a.join("")}for(var x=0,m=!1,j=!1,k=0,c=a.length;k=5&&"lang-"===w.substring(0,5))&&!(t&&typeof t[1]==="string"))f=!1,w="src";f||(r[z]=w)}h=c;c+=z.length;if(f){f=t[1];var l=z.indexOf(f),B=l+f.length;t[2]&&(B=z.length-t[2].length,l=B-f.length);w=w.substring(5);H(j+h,z.substring(0,l),g,k);H(j+h+l,f,I(w,f),k);H(j+h+B,z.substring(B),g,k)}else k.push(j+h,w)}a.g=k}var b={},s;(function(){for(var g=a.concat(d),j=[],k={},c=0,i=g.length;c=0;)b[n.charAt(e)]=r;r=r[1];n=""+r;k.hasOwnProperty(n)||(j.push(r),k[n]=q)}j.push(/[\S\s]/);s=S(j)})();var x=d.length;return g}function v(a){var d=[],g=[];a.tripleQuotedStrings?d.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?d.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, +q,"'\"`"]):d.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&g.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var b=a.hashComments;b&&(a.cStyleComments?(b>1?d.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):d.push(["com",/^#(?:(?:define|e(?:l|nd)if|else|error|ifn?def|include|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),g.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h(?:h|pp|\+\+)?|[a-z]\w*)>/,q])):d.push(["com", +/^#[^\n\r]*/,q,"#"]));a.cStyleComments&&(g.push(["com",/^\/\/[^\n\r]*/,q]),g.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));if(b=a.regexLiterals){var s=(b=b>1?"":"\n\r")?".":"[\\S\\s]";g.push(["lang-regex",RegExp("^(?:^^\\.?|[+-]|[!=]=?=?|\\#|%=?|&&?=?|\\(|\\*=?|[+\\-]=|->|\\/=?|::?|<>?>?=?|,|;|\\?|@|\\[|~|{|\\^\\^?=?|\\|\\|?=?|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*("+("/(?=[^/*"+b+"])(?:[^/\\x5B\\x5C"+b+"]|\\x5C"+s+"|\\x5B(?:[^\\x5C\\x5D"+b+"]|\\x5C"+ +s+")*(?:\\x5D|$))+/")+")")])}(b=a.types)&&g.push(["typ",b]);b=(""+a.keywords).replace(/^ | $/g,"");b.length&&g.push(["kwd",RegExp("^(?:"+b.replace(/[\s,]+/g,"|")+")\\b"),q]);d.push(["pln",/^\s+/,q," \r\n\t\u00a0"]);b="^.[^\\s\\w.$@'\"`/\\\\]*";a.regexLiterals&&(b+="(?!s*/)");g.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/, +q],["pun",RegExp(b),q]);return C(d,g)}function J(a,d,g){function b(a){var c=a.nodeType;if(c==1&&!x.test(a.className))if("br"===a.nodeName)s(a),a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)b(a);else if((c==3||c==4)&&g){var d=a.nodeValue,i=d.match(m);if(i)c=d.substring(0,i.index),a.nodeValue=c,(d=d.substring(i.index+i[0].length))&&a.parentNode.insertBefore(j.createTextNode(d),a.nextSibling),s(a),c||a.parentNode.removeChild(a)}}function s(a){function b(a,c){var d= +c?a.cloneNode(!1):a,e=a.parentNode;if(e){var e=b(e,1),g=a.nextSibling;e.appendChild(d);for(var i=g;i;i=g)g=i.nextSibling,e.appendChild(i)}return d}for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),d;(d=a.parentNode)&&d.nodeType===1;)a=d;c.push(a)}for(var x=/(?:^|\s)nocode(?:\s|$)/,m=/\r\n?|\n/,j=a.ownerDocument,k=j.createElement("li");a.firstChild;)k.appendChild(a.firstChild);for(var c=[k],i=0;i=0;){var b=d[g];F.hasOwnProperty(b)?D.console&&console.warn("cannot override language handler %s",b):F[b]=a}}function I(a,d){if(!a||!F.hasOwnProperty(a))a=/^\s*=l&&(b+=2);g>=B&&(r+=2)}}finally{if(f)f.style.display=h}}catch(u){D.console&&console.log(u&&u.stack||u)}}var D=window,y=["break,continue,do,else,for,if,return,while"],E=[[y,"auto,case,char,const,default,double,enum,extern,float,goto,inline,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], +"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],M=[E,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,delegate,dynamic_cast,explicit,export,friend,generic,late_check,mutable,namespace,nullptr,property,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],N=[E,"abstract,assert,boolean,byte,extends,final,finally,implements,import,instanceof,interface,null,native,package,strictfp,super,synchronized,throws,transient"], +O=[N,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,internal,into,is,let,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var,virtual,where"],E=[E,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],P=[y,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], +Q=[y,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],W=[y,"as,assert,const,copy,drop,enum,extern,fail,false,fn,impl,let,log,loop,match,mod,move,mut,priv,pub,pure,ref,self,static,struct,true,trait,type,unsafe,use"],y=[y,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],R=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)\b/, +V=/\S/,X=v({keywords:[M,O,E,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",P,Q,y],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),F={};p(X,["default-code"]);p(C([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-", +/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);p(C([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/], +["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);p(C([],[["atv",/^[\S\s]+/]]),["uq.val"]);p(v({keywords:M,hashComments:!0,cStyleComments:!0,types:R}),["c","cc","cpp","cxx","cyc","m"]);p(v({keywords:"null,true,false"}),["json"]);p(v({keywords:O,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:R}), +["cs"]);p(v({keywords:N,cStyleComments:!0}),["java"]);p(v({keywords:y,hashComments:!0,multiLineStrings:!0}),["bash","bsh","csh","sh"]);p(v({keywords:P,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),["cv","py","python"]);p(v({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:2}),["perl","pl","pm"]);p(v({keywords:Q, +hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb","ruby"]);p(v({keywords:E,cStyleComments:!0,regexLiterals:!0}),["javascript","js"]);p(v({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,throw,true,try,unless,until,when,while,yes",hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);p(v({keywords:W,cStyleComments:!0,multilineStrings:!0}),["rc","rs","rust"]); +p(C([],[["str",/^[\S\s]+/]]),["regex"]);var Y=D.PR={createSimpleLexer:C,registerLangHandler:p,sourceDecorator:v,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ",prettyPrintOne:D.prettyPrintOne=function(a,d,g){var b=document.createElement("div");b.innerHTML="
"+a+"
";b=b.firstChild;g&&J(b,g,!0);K({h:d,j:g,c:b,i:1}); +return b.innerHTML},prettyPrint:D.prettyPrint=function(a,d){function g(){for(var b=D.PR_SHOULD_USE_CONTINUATION?c.now()+250:Infinity;i)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}\b/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); diff --git a/readme.txt b/readme.txt new file mode 100644 index 0000000..489efc1 --- /dev/null +++ b/readme.txt @@ -0,0 +1,11 @@ +Cube Portfolio CSS, JS, IMAGES files: + folder: /cubeportfolio + +Documentation: + folder: /documentation + +Examples (demos): + folder: /templates + +Thank you for your purchase! +Mihai Buricea \ No newline at end of file diff --git a/templates/.DS_Store b/templates/.DS_Store new file mode 100644 index 0000000..4ea61e3 Binary files /dev/null and b/templates/.DS_Store differ diff --git a/templates/agency/ajax-agency/loadMore.html b/templates/agency/ajax-agency/loadMore.html new file mode 100644 index 0000000..a1dfe3b --- /dev/null +++ b/templates/agency/ajax-agency/loadMore.html @@ -0,0 +1,66 @@ + + + + + + \ No newline at end of file diff --git a/templates/agency/index.html b/templates/agency/index.html new file mode 100644 index 0000000..fc122c3 --- /dev/null +++ b/templates/agency/index.html @@ -0,0 +1,238 @@ + + + + + + + Agency - Cube Portfolio + + + + + + + + +
+
+
Filter by:
+
+ All
+
| +
+ Identity
+
| +
+ Web Design
+
| +
+ Graphic
+
| +
+ Logo
+
+
+ +
+
Sort by:
+
+
+
Original order
+
+
Original order
+
Title - ASC
+
Title - DESC
+
Description - ASC
+
Description - DESC
+
+
+
+
+
+ + + + + + + + + + + + + + + diff --git a/templates/agency/js/main.js b/templates/agency/js/main.js new file mode 100644 index 0000000..aaf3b04 --- /dev/null +++ b/templates/agency/js/main.js @@ -0,0 +1,41 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-agency').cubeportfolio({ + filters: '#js-filters-agency', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'slideLeft', + gapHorizontal: 35, + gapVertical: 15, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + }], + caption: 'zoom', + displayType: 'fadeIn', + displayTypeSpeed: 100, + + plugins: { + loadMore: { + element: '#js-loadMore-agency', + action: 'click', + loadItems: 3, + }, + sort: { + element: '#js-sort-agency' + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/awesome-work/ajax-awesome-work/loadMore.html b/templates/awesome-work/ajax-awesome-work/loadMore.html new file mode 100644 index 0000000..b076b05 --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/loadMore.html @@ -0,0 +1,40 @@ +
+ +
+ +
+
+
+
Seemple* Music
+
Graphic / Logo
+
+
+ +
+ +
+
+
+
Remind~Me More
+
Identity / Graphic
+
+
+ +
+ +
+
+
+
Workout Buddy
+
Web Design / Graphic
+
+
+ +
+ +
+
+
+
Bills Bills Bills
+
Identity / Web Design
+
\ No newline at end of file diff --git a/templates/awesome-work/ajax-awesome-work/project1.html b/templates/awesome-work/ajax-awesome-work/project1.html new file mode 100644 index 0000000..3d6dd14 --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project1.html @@ -0,0 +1,60 @@ +
Dashboard
+
by Paul Flavius Nechita
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/awesome-work/ajax-awesome-work/project10.html b/templates/awesome-work/ajax-awesome-work/project10.html new file mode 100644 index 0000000..3dca89a --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project10.html @@ -0,0 +1,60 @@ +
Bills Bills Bills
+
by Cosmin Capitanu
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/awesome-work/ajax-awesome-work/project2.html b/templates/awesome-work/ajax-awesome-work/project2.html new file mode 100644 index 0000000..a00dc5c --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project2.html @@ -0,0 +1,60 @@ +
World Clock
+
by Paul Flavius Nechita
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/awesome-work/ajax-awesome-work/project3.html b/templates/awesome-work/ajax-awesome-work/project3.html new file mode 100644 index 0000000..04f5d60 --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project3.html @@ -0,0 +1,60 @@ +
To-Do Dashboard
+
Work management platform for creatives with a lot of cool features. Easier.
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/awesome-work/ajax-awesome-work/project4.html b/templates/awesome-work/ajax-awesome-work/project4.html new file mode 100644 index 0000000..5e5015d --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project4.html @@ -0,0 +1,60 @@ +
Events and More
+
Just attent parties by having the app pinpoint awesome events near your location - Invite Friends and Have More Fun.
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/awesome-work/ajax-awesome-work/project5.html b/templates/awesome-work/ajax-awesome-work/project5.html new file mode 100644 index 0000000..4b7e850 --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project5.html @@ -0,0 +1,60 @@ +
WhereTO App
+
Sick of trying to find all the info I need when planning a road trip? Me too, that's why this guy came to life
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/awesome-work/ajax-awesome-work/project6.html b/templates/awesome-work/ajax-awesome-work/project6.html new file mode 100644 index 0000000..deb61b7 --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project6.html @@ -0,0 +1,66 @@ +
Ski Buddy
+
Track your ski results, upload them to the apps server and compete with your friends or other ski fanatics.
+ +
+
    +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/awesome-work/ajax-awesome-work/project7.html b/templates/awesome-work/ajax-awesome-work/project7.html new file mode 100644 index 0000000..327324a --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project7.html @@ -0,0 +1,60 @@ +
Seemple Music for iPad
+
Upcoming music app for iPad. More info and other screens will follow shortly.
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/awesome-work/ajax-awesome-work/project8.html b/templates/awesome-work/ajax-awesome-work/project8.html new file mode 100644 index 0000000..9440c2e --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project8.html @@ -0,0 +1,60 @@ +
Remind~Me More
+
Next step of the reminder widget in which you can see all the reminders you've set and ways to interact with them.
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/awesome-work/ajax-awesome-work/project9.html b/templates/awesome-work/ajax-awesome-work/project9.html new file mode 100644 index 0000000..f7d68d3 --- /dev/null +++ b/templates/awesome-work/ajax-awesome-work/project9.html @@ -0,0 +1,60 @@ +
Workout Buddy
+
by Tiberiu Neamu
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/awesome-work/index.html b/templates/awesome-work/index.html new file mode 100644 index 0000000..a201469 --- /dev/null +++ b/templates/awesome-work/index.html @@ -0,0 +1,114 @@ + + + + + + + Awesome Work - Cube Portfolio + + + + + + + + +
+
+ SHOW ALL +
+
+ IDENTITY
+
+
+ WEB DESIGN
+
+
+ GRAPHIC
+
+
+ LOGO
+
+
+ +
+
+ +
+ +
+
+
+ Dashboard +
Web Design / Graphic
+
+
+ +
+ +
+
+
+ World Clock +
Logo / Web Design
+
+
+ +
+ +
+
+
+ To-Do Dashboard +
Graphic / Logo
+
+
+ +
+ +
+
+
+ Events and More +
Web Design / Graphic
+
+
+ +
+ +
+
+
+ WhereTO App +
Web Design / Identity
+
+
+ +
+ +
+
+
+ Ski * Buddy +
Identity / Web Design
+
+
+ + + + + + + + + + + + + diff --git a/templates/awesome-work/js/main.js b/templates/awesome-work/js/main.js new file mode 100644 index 0000000..2ac26fd --- /dev/null +++ b/templates/awesome-work/js/main.js @@ -0,0 +1,62 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-awesome-work').cubeportfolio({ + filters: '#js-filters-awesome-work', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'scaleSides', + gapHorizontal: 30, + gapVertical: 30, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 4, + }, { + width: 1100, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + gapHorizontal: 15, + gapVertical: 15, + } + }], + caption: 'zoom', + displayType: 'fadeIn', + displayTypeSpeed: 400, + + // singlePage popup + singlePageDelegate: '.cbp-singlePage', + singlePageDeeplinking: true, + singlePageStickyNavigation: true, + singlePageCounter: '
{{current}} of {{total}}
', + singlePageCallback: function(url, element) { + // to update singlePage content use the following method: this.updateSinglePage(yourContent) + var t = this; + + $.ajax({ + url: url, + type: 'GET', + dataType: 'html', + timeout: 30000 + }) + .done(function(result) { + t.updateSinglePage(result); + }) + .fail(function() { + t.updateSinglePage('AJAX Error! Please refresh the page!'); + }); + }, + + plugins: { + loadMore: { + element: '#js-loadMore-awesome-work', + action: 'click', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/blog-posts/index.html b/templates/blog-posts/index.html new file mode 100644 index 0000000..1f59a42 --- /dev/null +++ b/templates/blog-posts/index.html @@ -0,0 +1,215 @@ + + + + + + + Blog Posts - Cube Portfolio + + + + + + + + +
+
+
All (
)
+
Print (
)
+
Web Design (
)
+
Logo (
)
+
Motion (
)
+
+ + +
+ +
+
+ +
+ +
+
+
+
+
VIEW POST
+
+
+
+
+ We want to rule the world +
20 december 2013
+
|
+ 12 comments +
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium laud mi se attuie are.
+
+
+ +
+ +
+
+
+
+
VIEW POST
+
+
+
+
+ Create your own playlist +
25 december 2013
+
|
+ 8 comments +
Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae guit arm iore.
+
+
+ +
+ +
+
+
+
+
VIEW POST
+
+
+
+
+ Your online buddie +
29 december 2013
+
|
+ 23 comments +
Quisque rutrum. Aenean imperdiet. Etiam ultricies nisi vel augue men tuhi spectrum alle me.
+
+
+ +
+ +
+
+
+
+
VIEW POST
+
+
+
+
+ A man with a true style +
5 january 2014
+
|
+ 111 comments +
Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam moles buco bina plata.
+
+
+ +
+ +
+
+
+
+
VIEW POST
+
+
+
+
+ We believe in leaders +
8 january 2014
+
|
+ 1 comments +
Voluptas nulla pariatur? At vero eos et accusamus et iusto odio dignissimos ducimu itly perscpi.
+
+
+ +
+ +
+
+
+
+
VIEW POST
+
+
+
+
+ Here's a quick breakdown +
14 january 2014
+
|
+ 54 comments +
Perspiciatis unde omnis iste natus error sit voluptatem accusantium. Sed ut perspiciatismus.
+
+
+ +
+ +
+
+
+
+
VIEW POST
+
+
+
+
+ Designing Your First Website +
67 january 2014
+
|
+ 12 comments +
Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, voluptatem accusantium consequat.
+
+
+ +
+ +
+
+
+
+
VIEW POST
+
+
+
+
+ Coding Your First Website +
25 january 2014
+
|
+ 6 comments +
Sed ut perspiciatis unde omnis iste natus error sit voluptatem voluptatem accusantium vitae.
+
+
+ +
+ +
+
+
+
+
VIEW POST
+
+
+
+
+ Responsive Web Design +
28 january 2014
+
|
+ 3 comments +
Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium com alinus vite.
+
+
+ + + + + + + + + + + diff --git a/templates/blog-posts/js/main.js b/templates/blog-posts/js/main.js new file mode 100644 index 0000000..9fd8c44 --- /dev/null +++ b/templates/blog-posts/js/main.js @@ -0,0 +1,42 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-blog-posts').cubeportfolio({ + filters: '#js-filters-blog-posts', + search: '#js-search-blog-posts', + defaultFilter: '*', + animationType: '3dflip', + gapHorizontal: 70, + gapVertical: 30, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 4, + }, { + width: 1100, + cols: 3, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 50, + gapVertical: 20, + } + }, { + width: 320, + cols: 1, + options: { + caption: '', + gapHorizontal: 50, + } + }], + caption: 'revealBottom', + displayType: 'fadeIn', + displayTypeSpeed: 400, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/clients/index.html b/templates/clients/index.html new file mode 100644 index 0000000..f1aa366 --- /dev/null +++ b/templates/clients/index.html @@ -0,0 +1,114 @@ + + + + + + + Slider - Cube Portfolio + + + + + + + + +
Our Clients
+ + + + + + + + + + + + + diff --git a/templates/clients/js/main.js b/templates/clients/js/main.js new file mode 100644 index 0000000..f417252 --- /dev/null +++ b/templates/clients/js/main.js @@ -0,0 +1,35 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-clients').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: true, + autoTimeout: 3000, + autoPauseOnHover: true, + showNavigation: false, + showPagination: true, + rewindNav: true, + scrollByPage: false, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + }], + gapHorizontal: 0, + gapVertical: 5, + caption: 'opacity', + displayType: 'fadeIn', + displayTypeSpeed: 100, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/faq/index.html b/templates/faq/index.html new file mode 100644 index 0000000..5b2ead6 --- /dev/null +++ b/templates/faq/index.html @@ -0,0 +1,290 @@ + + + + + + + FAQ - Cube Portfolio + + + + + + + + +
+
+ All +
+
+ Buying +
+
+ Author +
+
+ Account +
+
+ Copyright +
+
+ Community +
+
+ +
+
+
+
+ + + + Where can I find my Purchase Code? +
+
+
+ Every item purchased on Envato Market has a unique code, called a purchase code. +
+ A purchase code is used by authors to verify you have purchased a licence for the item. The purchase code may be required to access an author’s support site (if support is offered) or to enable automatic updates. +
+
+
+
+
+
+
+ + + + Forum Comments by Envato Staff & Moderators +
+
+
+ Envato is extremely fortunate to have a huge community with highly engaged users. Part of our community’s time on Envato Market is spent within our forums, our common grounds for communication. In order to clarify the different roles and responsibilities of the various people and roles that post in our forums we hope you find the following information useful. +
+
+
+
+
+
+
+ + + + How Do I Get Support For An Item I've Purchased? +
+
+
+ Authors who are designers, developers and creatives from all over the globe are responsible for the work you see on Envato Market. + + Authors are not obligated to provide support, however most do. You will know if an author provides support, simply by viewing the “Support” tab on the item page. +
+
+
+
+
+
+
+ + + + Which Author Payment Option Do I Choose? +
+
+
+ As an Envato Market author you need to select the most appropriate payment method in order to receive your earnings. +
+ Each payment method and provider may have restrictions regarding which countries they pay to, for legal and / or commercial reasons. +
+
+
+
+ +
+
+
+ + + + Historical Payment Rates +
+
+
+ Over the years Envato Market has changed fees & rates several times – always in favour of our authoring community! If you have been selling files for some time, these rates may apply to you. If you are a new author, you should review our Current Rates or read about our author program If you are interested in Selling Your Work. +
+
+
+
+ +
+
+
+ + + + Author Collaboration +
+
+
+ Authors may unofficially partner with other authors to create new items, but we advise strong caution when doing so. Envato Market considers the person who created an account and agreed to the terms and conditions to be the sole copyright holder of the items for sale and the only person eligible to withdraw any funds. +
+
+
+
+ +
+
+
+ + + + An Author’s Introduction to Envato Market +
+
+
+ Becoming an author on Envato Market carries certain legal implications. Everything you sell must be your own original content. If you use any assets that are owned by someone else, you must have a license that grants you permission to use and resell them. +
+
+
+
+ + + +
+
+
+ + + + Buyers Guide to YouTube Content ID & Copyright Notices +
+
+
+ Content ID is a popular digital fingerprinting system that content creators can use to easily identify and manage their copyrighted content on YouTube. Videos uploaded to YouTube are compared against audio and video files registered with Content ID by content owners, looking for any matches. +
+
+
+
+
+
+
+ + + + Forum and Community Rules +
+
+
+ Envato takes great pride in it’s global and thriving community! They're part of what makes the Envato Market sites fun and friendly. The forum rules and guidelines focus on mutual respect. +
+ All users who wish to participate or give feedback are invited to do so. +
+
+
+
+
+ + + + + + + + + + + diff --git a/templates/faq/js/main.js b/templates/faq/js/main.js new file mode 100644 index 0000000..acefcf8 --- /dev/null +++ b/templates/faq/js/main.js @@ -0,0 +1,15 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-faq').cubeportfolio({ + filters: '#js-filters-faq', + defaultFilter: '*', + animationType: 'sequentially', + gridAdjustment: 'default', + displayType: 'default', + caption: 'expand', + gapHorizontal: 0, + gapVertical: 0, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/full-width/ajax-full-width/loadMore.html b/templates/full-width/ajax-full-width/loadMore.html new file mode 100644 index 0000000..31699e6 --- /dev/null +++ b/templates/full-width/ajax-full-width/loadMore.html @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/templates/full-width/index.html b/templates/full-width/index.html new file mode 100644 index 0000000..9c9572c --- /dev/null +++ b/templates/full-width/index.html @@ -0,0 +1,267 @@ + + + + + + + Full Width Layout - Cube Portfolio + + + + + + + + +
+
+ ALL
+
/ +
+ IDENTITY
+
/ +
+ WEB DESIGN
+
/ +
+ GRAPHIC
+
/ +
+ LOGO
+
/ +
+ MOTION
+
+
+ + + + + + + + + + + + + + + diff --git a/templates/full-width/js/main.js b/templates/full-width/js/main.js new file mode 100644 index 0000000..6f8ab9f --- /dev/null +++ b/templates/full-width/js/main.js @@ -0,0 +1,50 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-full-width').cubeportfolio({ + filters: '#js-filters-full-width', + layoutMode: 'mosaic', + sortByDimension: true, + defaultFilter: '*', + animationType: 'fadeOutTop', + gapHorizontal: 0, + gapVertical: 0, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 10, + gapVertical: 10, + } + }], + caption: 'zoom', + displayType: 'fadeIn', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
{{current}} of {{total}}
', + + plugins: { + loadMore: { + element: '#js-loadMore-full-width', + action: 'auto', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/juicy-projects/ajax-juicy-projects/loadMore.html b/templates/juicy-projects/ajax-juicy-projects/loadMore.html new file mode 100644 index 0000000..4d8be94 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/loadMore.html @@ -0,0 +1,106 @@ +
+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
Shopping Gallery
+
Graphic / Logo
+
+
+
+
+ +
+
+ +
+
+
Timezone Mgmt
+
Graphic / Logo
+
+
+
+
+ +
+
+ +
+
+
Story Book
+
Graphic / Logo
+
+
+
+
+ +
+
+ +
+
+
Website Lightbox
+
Identity
+
+
+
+
+ +
+
+ +
+
+
Mountaineer
+
Graphic / Logo
+
+
+
+
+ +
+
+ +
+
+
Archiview
+
Graphic / Logo
+
\ No newline at end of file diff --git a/templates/juicy-projects/ajax-juicy-projects/project1.html b/templates/juicy-projects/ajax-juicy-projects/project1.html new file mode 100644 index 0000000..d3afd02 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project1.html @@ -0,0 +1,93 @@ +
Dashboard
+
by Paul Flavius Nechita
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


+ + + + diff --git a/templates/juicy-projects/ajax-juicy-projects/project10.html b/templates/juicy-projects/ajax-juicy-projects/project10.html new file mode 100644 index 0000000..dd15925 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project10.html @@ -0,0 +1,89 @@ +
Bills Bills Bills
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project11.html b/templates/juicy-projects/ajax-juicy-projects/project11.html new file mode 100644 index 0000000..09c0347 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project11.html @@ -0,0 +1,89 @@ +
Generic Apps
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project12.html b/templates/juicy-projects/ajax-juicy-projects/project12.html new file mode 100644 index 0000000..2325af1 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project12.html @@ -0,0 +1,89 @@ +
Speed Detector
+
You are an outstanding athlete and you need to measure your skills !
+ +
+
    +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project13.html b/templates/juicy-projects/ajax-juicy-projects/project13.html new file mode 100644 index 0000000..6c5f378 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project13.html @@ -0,0 +1,89 @@ +
Shopping Gallery
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project14.html b/templates/juicy-projects/ajax-juicy-projects/project14.html new file mode 100644 index 0000000..0fa1bd8 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project14.html @@ -0,0 +1,89 @@ +
Timezone Mgmt
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project15.html b/templates/juicy-projects/ajax-juicy-projects/project15.html new file mode 100644 index 0000000..f5c7f29 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project15.html @@ -0,0 +1,89 @@ +
Story Book
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project16.html b/templates/juicy-projects/ajax-juicy-projects/project16.html new file mode 100644 index 0000000..e736266 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project16.html @@ -0,0 +1,89 @@ +
Website Lightbox
+
by Paul Flavius Nechita
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project17.html b/templates/juicy-projects/ajax-juicy-projects/project17.html new file mode 100644 index 0000000..4865b1e --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project17.html @@ -0,0 +1,89 @@ +
Mountaineer
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project18.html b/templates/juicy-projects/ajax-juicy-projects/project18.html new file mode 100644 index 0000000..9b8dda7 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project18.html @@ -0,0 +1,89 @@ +
Archiview
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project2.html b/templates/juicy-projects/ajax-juicy-projects/project2.html new file mode 100644 index 0000000..72e2afe --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project2.html @@ -0,0 +1,89 @@ +
World Clock
+
by Paul Flavius Nechita
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project3.html b/templates/juicy-projects/ajax-juicy-projects/project3.html new file mode 100644 index 0000000..77fbf61 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project3.html @@ -0,0 +1,89 @@ +
To-Do Dashboard
+
Work management platform for creatives with a lot of cool features. Easier.
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project4.html b/templates/juicy-projects/ajax-juicy-projects/project4.html new file mode 100644 index 0000000..6ab9e78 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project4.html @@ -0,0 +1,89 @@ +
Events and More
+
Just attent parties by having the app pinpoint awesome events near your location - Invite Friends and Have More Fun.
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project5.html b/templates/juicy-projects/ajax-juicy-projects/project5.html new file mode 100644 index 0000000..b8fba26 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project5.html @@ -0,0 +1,89 @@ +
WhereTO App
+
Sick of trying to find all the info I need when planning a road trip? Me too, that's why this guy came to life
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project6.html b/templates/juicy-projects/ajax-juicy-projects/project6.html new file mode 100644 index 0000000..0a31917 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project6.html @@ -0,0 +1,89 @@ +
Ski Buddy
+
Track your ski results, upload them to the apps server and compete with your friends or other ski fanatics.
+ +
+
    +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project7.html b/templates/juicy-projects/ajax-juicy-projects/project7.html new file mode 100644 index 0000000..28b9f2c --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project7.html @@ -0,0 +1,89 @@ +
Seemple Music for iPad
+
Upcoming music app for iPad. More info and other screens will follow shortly.
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project8.html b/templates/juicy-projects/ajax-juicy-projects/project8.html new file mode 100644 index 0000000..429b02b --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project8.html @@ -0,0 +1,89 @@ +
Remind~Me More
+
Next step of the reminder widget in which you can see all the reminders you've set and ways to interact with them.
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/ajax-juicy-projects/project9.html b/templates/juicy-projects/ajax-juicy-projects/project9.html new file mode 100644 index 0000000..62fa3a6 --- /dev/null +++ b/templates/juicy-projects/ajax-juicy-projects/project9.html @@ -0,0 +1,89 @@ +
Workout Buddy
+
by Tiberiu Neamu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+ + +
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/juicy-projects/index.html b/templates/juicy-projects/index.html new file mode 100644 index 0000000..e79871c --- /dev/null +++ b/templates/juicy-projects/index.html @@ -0,0 +1,287 @@ + + + + + + + Juicy Projects - Cube Portfolio + + + + + + + + +
+
+
+ All
+
+
+ Identity
+
+
+ Web Design
+
+
+ Graphic
+
+
+ Logo
+
+
+ +
+
+
+
Original sorting
+
+
Original sorting
+
Title
+
Description
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+ +
+
+
Dashboard
+
Web Design / Graphic
+
+
+
+
+ +
+
+ +
+
+
World Clock
+
Logo / Web Design
+
+
+
+
+ +
+
+
+ +
+
+
+
To-Do Dashboard
+
Graphic / Logo
+
+
+
+
+ +
+
+
+ +
+
+
+
Events and More
+
Web Design / Graphic
+
+
+
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+
+
+
+
WhereTO App
+
Web Design / Identity
+
+
+
+
+ +
+
+ +
+
+
Ski * Buddy
+
Identity / Web Design
+
+
+
+
+ +
+
+
+ +
+
+
+
Seemple* Music
+
Graphic / Logo
+
+
+
+
+ +
+
+
+ +
+
+
+
Remind~Me More
+
Identity / Graphic
+
+
+
+
+ +
+
+
+ +
+
+
+
Workout Buddy
+
Web Design / Graphic
+
+
+
+
+ +
+
+
+ +
+
+
+
Bills Bills Bills
+
Identity / Web Design
+
+
+
+
+ +
+
+
+ +
+
+
+
Generic Apps
+
Identity / Logo
+
+
+
+
+ +
+
+
+ +
+
+
+
Speed Detector
+
Graphic / Web Design
+
+
+ + + + + + + + + + + + + diff --git a/templates/juicy-projects/js/main.js b/templates/juicy-projects/js/main.js new file mode 100644 index 0000000..404dd6c --- /dev/null +++ b/templates/juicy-projects/js/main.js @@ -0,0 +1,75 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-juicy-projects').cubeportfolio({ + filters: '#js-filters-juicy-projects', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'quicksand', + gapHorizontal: 35, + gapVertical: 30, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 30, + gapVertical: 10, + } + }], + caption: 'overlayBottomPush', + displayType: 'sequentially', + displayTypeSpeed: 80, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
{{current}} of {{total}}
', + + // singlePage popup + singlePageDelegate: '.cbp-singlePage', + singlePageDeeplinking: true, + singlePageStickyNavigation: true, + singlePageCounter: '
{{current}} of {{total}}
', + singlePageCallback: function(url, element) { + // to update singlePage content use the following method: this.updateSinglePage(yourContent) + var t = this; + + $.ajax({ + url: url, + type: 'GET', + dataType: 'html', + timeout: 30000 + }) + .done(function(result) { + t.updateSinglePage(result); + }) + .fail(function() { + t.updateSinglePage('AJAX Error! Please refresh the page!'); + }); + }, + + plugins: { + loadMore: { + element: '#js-loadMore-juicy-projects', + action: 'click', + loadItems: 3, + }, + sort: { + element: '#js-sort-juicy-projects', + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/lightbox-gallery/.DS_Store b/templates/lightbox-gallery/.DS_Store new file mode 100644 index 0000000..c7ec6e9 Binary files /dev/null and b/templates/lightbox-gallery/.DS_Store differ diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/loadMore.html b/templates/lightbox-gallery/ajax-lightbox-gallery/loadMore.html new file mode 100644 index 0000000..229e806 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/loadMore.html @@ -0,0 +1,60 @@ + + + + \ No newline at end of file diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project1.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project1.html new file mode 100644 index 0000000..594511e --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project1.html @@ -0,0 +1,57 @@ +
+
+
+ +
+
+ +
+
World Clock
+
by Paul Flavius Nechita
+ +
Minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
+ + + + +
+
diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project10.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project10.html new file mode 100644 index 0000000..f61087b --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project10.html @@ -0,0 +1,41 @@ +
+
+ + + +
+ +
+
Flat Roman Typeface Ui
+
by Cosmin Capitanu
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
+ + + + +
+
diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project11.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project11.html new file mode 100644 index 0000000..585a5b6 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project11.html @@ -0,0 +1,41 @@ +
+
+ + + +
+ +
+
Music Player
+
by Cosmin Capitanu
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
+ + + + +
+
diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project12.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project12.html new file mode 100644 index 0000000..32e1cf9 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project12.html @@ -0,0 +1,41 @@ +
+
+ + + +
+ +
+
Speed Detector
+
by Cosmin Capitanu
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
+ + + + +
+
diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project13.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project13.html new file mode 100644 index 0000000..481dedd --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project13.html @@ -0,0 +1,41 @@ +
+
+ + + +
+ +
+
Sonor Website
+
by Cosmin Capitanu
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
+ + + + +
+
diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project2.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project2.html new file mode 100644 index 0000000..4f0a186 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project2.html @@ -0,0 +1,45 @@ +
+
+ + + +
+ + + +
+ +
+
Bolt UI
+
by Tiberiu Neamu
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
+ + + + +
+
diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project3.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project3.html new file mode 100644 index 0000000..84491f1 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project3.html @@ -0,0 +1,41 @@ +
+
+
+ +
+
+ +
+
WhereTO App
+
by Tiberiu Neamu
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
+ + + + +
+
diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project4.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project4.html new file mode 100644 index 0000000..cb7afe9 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project4.html @@ -0,0 +1,57 @@ +
+
+
+
    +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
+
+
+ +
+
iDevices
+
by Tiberiu Neamu
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
+ + + + +
+
diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project5.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project5.html new file mode 100644 index 0000000..aa535a6 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project5.html @@ -0,0 +1,41 @@ +
+
+ + + +
+ +
+
Seemple* Music
+
by Tiberiu Neamu
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
+ + + + +
+
diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project6.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project6.html new file mode 100644 index 0000000..d54267a --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project6.html @@ -0,0 +1,41 @@ +
+
+ + + +
+ +
+
Remind~Me Widget
+
by Tiberiu Neamu
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
+ + + + +
+
diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project7.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project7.html new file mode 100644 index 0000000..568c0e4 --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project7.html @@ -0,0 +1,41 @@ +
+
+ + + +
+ +
+
Workout Buddy
+
by Tiberiu Neamu
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil alias.
+ + + + +
+
diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project8.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project8.html new file mode 100644 index 0000000..9636d4b --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project8.html @@ -0,0 +1,41 @@ +
+
+ + + +
+ +
+
Digital Menu
+
by Cosmin Capitanu
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
+ + + + +
+
diff --git a/templates/lightbox-gallery/ajax-lightbox-gallery/project9.html b/templates/lightbox-gallery/ajax-lightbox-gallery/project9.html new file mode 100644 index 0000000..9c76ead --- /dev/null +++ b/templates/lightbox-gallery/ajax-lightbox-gallery/project9.html @@ -0,0 +1,41 @@ +
+
+ + + +
+ +
+
Holiday Selector
+
by Cosmin Capitanu
+ +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae!
+ + + + +
+
diff --git a/templates/lightbox-gallery/index.html b/templates/lightbox-gallery/index.html new file mode 100644 index 0000000..7ceb445 --- /dev/null +++ b/templates/lightbox-gallery/index.html @@ -0,0 +1,192 @@ + + + + + + + Lightbox Gallery - Cube Portfolio + + + + + + + + +
+
+
+
Filter Gallery
+
+
All
+
Identity
+
Web Design
+
Print
+
+
+
+ +
+
All
+
Graphic
+
Logo
+
Motion
+
+
+ + + + + + + + + + + + + + + diff --git a/templates/lightbox-gallery/js/main.js b/templates/lightbox-gallery/js/main.js new file mode 100644 index 0000000..8d529cb --- /dev/null +++ b/templates/lightbox-gallery/js/main.js @@ -0,0 +1,71 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-lightbox-gallery').cubeportfolio({ + filters: '#js-filters-lightbox-gallery1, #js-filters-lightbox-gallery2', + layoutMode: 'grid', + mediaQueries: [{ + width: 1500, + cols: 4, + }, { + width: 1100, + cols: 3, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + } + }], + defaultFilter: '*', + animationType: 'flipOutDelay', + gapHorizontal: 10, + gapVertical: 10, + gridAdjustment: 'responsive', + caption: 'overlayBottomAlong', + displayType: 'sequentially', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
{{current}} of {{total}}
', + + // singlePageInline + singlePageInlineDelegate: '.cbp-singlePageInline', + singlePageInlinePosition: 'below', + singlePageInlineInFocus: true, + singlePageInlineCallback: function(url, element) { + // to update singlePageInline content use the following method: this.updateSinglePageInline(yourContent) + var t = this; + + $.ajax({ + url: url, + type: 'GET', + dataType: 'html', + timeout: 30000 + }) + .done(function(result) { + + t.updateSinglePageInline(result); + + }) + .fail(function() { + t.updateSinglePageInline('AJAX Error! Please refresh the page!'); + }); + }, + + plugins: { + loadMore: { + element: '#js-loadMore-lightbox-gallery', + action: 'click', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/masonry-projects/ajax-masonry-projects/loadMore.html b/templates/masonry-projects/ajax-masonry-projects/loadMore.html new file mode 100644 index 0000000..f370258 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/loadMore.html @@ -0,0 +1,102 @@ +
+
+
+ +
+
+ +
+
+ Mountaineer +
graphic / logo
+
+
+
+
+ +
+
+ +
+
+ Timezone Mgmt +
graphic / logo
+
+
+
+
+ +
+
+ +
+
+ Archiview +
graphic / logo
+
+
+
+
+ +
+
+ +
+
+ Website Lightbox +
identity
+
+
+
+
+ +
+
+ +
+
+ Shopping Gallery +
Graphic / Logo
+
+
+
+
+ +
+
+ +
+
+ Story Book +
Graphic / Logo
+
\ No newline at end of file diff --git a/templates/masonry-projects/ajax-masonry-projects/project1.html b/templates/masonry-projects/ajax-masonry-projects/project1.html new file mode 100644 index 0000000..1fd1d8f --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project1.html @@ -0,0 +1,60 @@ +
Dashboard
+
by Paul Flavius Nechita
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project10.html b/templates/masonry-projects/ajax-masonry-projects/project10.html new file mode 100644 index 0000000..b1923d3 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project10.html @@ -0,0 +1,60 @@ +
Bills Bills Bills
+
by Cosmin Capitanu
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project11.html b/templates/masonry-projects/ajax-masonry-projects/project11.html new file mode 100644 index 0000000..e927b12 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project11.html @@ -0,0 +1,60 @@ +
Generic Apps
+
by Cosmin Capitanu
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project12.html b/templates/masonry-projects/ajax-masonry-projects/project12.html new file mode 100644 index 0000000..4a01746 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project12.html @@ -0,0 +1,66 @@ +
Speed Detector
+
You are an outstanding athlete and you need to measure your skills !
+ +
+
    +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project13.html b/templates/masonry-projects/ajax-masonry-projects/project13.html new file mode 100644 index 0000000..a9f67ba --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project13.html @@ -0,0 +1,60 @@ +
Shopping Gallery
+
by Cosmin Capitanu
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project14.html b/templates/masonry-projects/ajax-masonry-projects/project14.html new file mode 100644 index 0000000..98d2a0a --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project14.html @@ -0,0 +1,60 @@ +
Timezone Mgmt
+
by Cosmin Capitanu
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project15.html b/templates/masonry-projects/ajax-masonry-projects/project15.html new file mode 100644 index 0000000..99d640b --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project15.html @@ -0,0 +1,60 @@ +
Story Book
+
by Cosmin Capitanu
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project16.html b/templates/masonry-projects/ajax-masonry-projects/project16.html new file mode 100644 index 0000000..fd4d105 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project16.html @@ -0,0 +1,60 @@ +
Website Lightbox
+
by Paul Flavius Nechita
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project17.html b/templates/masonry-projects/ajax-masonry-projects/project17.html new file mode 100644 index 0000000..186775a --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project17.html @@ -0,0 +1,60 @@ +
Mountaineer
+
by Cosmin Capitanu
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project18.html b/templates/masonry-projects/ajax-masonry-projects/project18.html new file mode 100644 index 0000000..f74cf01 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project18.html @@ -0,0 +1,60 @@ +
Archiview
+
by Cosmin Capitanu
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project2.html b/templates/masonry-projects/ajax-masonry-projects/project2.html new file mode 100644 index 0000000..d585b4e --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project2.html @@ -0,0 +1,60 @@ +
World Clock
+
by Paul Flavius Nechita
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project3.html b/templates/masonry-projects/ajax-masonry-projects/project3.html new file mode 100644 index 0000000..3e069c2 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project3.html @@ -0,0 +1,60 @@ +
To-Do Dashboard
+
Work management platform for creatives with a lot of cool features. Easier.
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project4.html b/templates/masonry-projects/ajax-masonry-projects/project4.html new file mode 100644 index 0000000..3180336 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project4.html @@ -0,0 +1,60 @@ +
WhereTO App
+
Sick of trying to find all the info I need when planning a road trip? Me too, that's why this guy came to life
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project5.html b/templates/masonry-projects/ajax-masonry-projects/project5.html new file mode 100644 index 0000000..dfd4376 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project5.html @@ -0,0 +1,60 @@ +
Events and More
+
Just attent parties by having the app pinpoint awesome events near your location - Invite Friends and Have More Fun.
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project6.html b/templates/masonry-projects/ajax-masonry-projects/project6.html new file mode 100644 index 0000000..fba2052 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project6.html @@ -0,0 +1,66 @@ +
Ski Buddy
+
Track your ski results, upload them to the apps server and compete with your friends or other ski fanatics.
+ +
+
    +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project7.html b/templates/masonry-projects/ajax-masonry-projects/project7.html new file mode 100644 index 0000000..b3c1dc0 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project7.html @@ -0,0 +1,60 @@ +
Seemple Music for iPad
+
Upcoming music app for iPad. More info and other screens will follow shortly.
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project8.html b/templates/masonry-projects/ajax-masonry-projects/project8.html new file mode 100644 index 0000000..0d8c7bb --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project8.html @@ -0,0 +1,60 @@ +
Remind~Me More
+
Next step of the reminder widget in which you can see all the reminders you've set and ways to interact with them.
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/ajax-masonry-projects/project9.html b/templates/masonry-projects/ajax-masonry-projects/project9.html new file mode 100644 index 0000000..f298e43 --- /dev/null +++ b/templates/masonry-projects/ajax-masonry-projects/project9.html @@ -0,0 +1,60 @@ +
Workout Buddy
+
by Tiberiu Neamu
+ +
+
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/masonry-projects/index.html b/templates/masonry-projects/index.html new file mode 100644 index 0000000..6561667 --- /dev/null +++ b/templates/masonry-projects/index.html @@ -0,0 +1,261 @@ + + + + + + + Masonry Layout - Cube Portfolio + + + + + + + + +
+
+ All
+
+
+ Identity
+
+
+ Web Design
+
+
+ Graphic
+
+
+ Logo
+
+
+ Logo & Graphic
+
+
+ +
+
+
+
+ +
+
+ +
+
+ BeenTo +
web design / graphic
+
+
+
+
+ +
+
+ +
+
+ World Clock +
logos / web design
+
+
+
+
+ +
+
+
+ +
+
+
+ To-Do Dashboard +
graphic / logos
+
+
+
+
+ +
+
+ +
+
+ WhereTO App +
web design / identity
+
+
+
+
+ +
+
+ +
+
+ Events and More +
web design / graphic
+
+
+
+
+ +
+
+ +
+
+ Ski * Buddy +
identity / web design
+
+
+
+
+ +
+
+ +
+
+ Seemple* Music +
graphic / logos
+
+
+
+
+ +
+
+
+ +
+
+
+ Remind~Me More +
identity / graphic
+
+
+
+
+ +
+
+
+ +
+
+
+ Workout Buddy +
web design / graphic
+
+
+
+
+ +
+
+
+ +
+
+
+ Bills Bills Bills +
identity / web design
+
+
+
+
+ +
+
+
+ +
+
+
+ Generic Apps +
identity / logos
+
+
+
+
+ +
+
+
+ +
+
+
+ Speed Detector +
graphic / web design
+
+
+ + + + + + + + + + + + + diff --git a/templates/masonry-projects/js/main.js b/templates/masonry-projects/js/main.js new file mode 100644 index 0000000..77fa6b8 --- /dev/null +++ b/templates/masonry-projects/js/main.js @@ -0,0 +1,72 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-masonry-projects').cubeportfolio({ + filters: '#js-filters-masonry-projects', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'quicksand', + gapHorizontal: 35, + gapVertical: 25, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3 + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 25, + gapVertical: 10, + } + }], + caption: 'zoom', + displayType: 'fadeIn', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
{{current}} of {{total}}
', + + // singlePage popup + singlePageDelegate: '.cbp-singlePage', + singlePageDeeplinking: true, + singlePageStickyNavigation: true, + singlePageCounter: '
{{current}} of {{total}}
', + singlePageCallback: function(url, element) { + // to update singlePage content use the following method: this.updateSinglePage(yourContent) + var t = this; + + $.ajax({ + url: url, + type: 'GET', + dataType: 'html', + timeout: 30000 + }) + .done(function(result) { + t.updateSinglePage(result); + }) + .fail(function() { + t.updateSinglePage('AJAX Error! Please refresh the page!'); + }); + }, + + plugins: { + loadMore: { + element: '#js-loadMore-masonry-projects', + action: 'click', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/masonry/index.html b/templates/masonry/index.html new file mode 100644 index 0000000..867d977 --- /dev/null +++ b/templates/masonry/index.html @@ -0,0 +1,226 @@ + + + + + + + Masonry Layout - Cube Portfolio + + + + + + + + +
+
+ All
+
+
+ Identity
+
+
+ Web Design
+
+
+ Graphic
+
+
+ Web Design & Identity
+
+
+ + + + + + + + + + + + + diff --git a/templates/masonry/js/main.js b/templates/masonry/js/main.js new file mode 100644 index 0000000..4b85876 --- /dev/null +++ b/templates/masonry/js/main.js @@ -0,0 +1,41 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-masonry').cubeportfolio({ + filters: '#js-filters-masonry', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'slideDelay', + gapHorizontal: 20, + gapVertical: 20, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 10, + gapVertical: 10, + } + }], + caption: 'overlayBottomAlong', + displayType: 'bottomToTop', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
{{current}} of {{total}}
', + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/meet-the-team/ajax-meet-the-team/member1.html b/templates/meet-the-team/ajax-meet-the-team/member1.html new file mode 100644 index 0000000..2069167 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member1.html @@ -0,0 +1,12 @@ +
+ +
+ +
+
Tony Grue
+
Finance
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

Image courtesy of graur codrin / FreeDigitalPhotos.net. +
+
diff --git a/templates/meet-the-team/ajax-meet-the-team/member10.html b/templates/meet-the-team/ajax-meet-the-team/member10.html new file mode 100644 index 0000000..35aa2c8 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member10.html @@ -0,0 +1,12 @@ +
+ +
+ +
+
Tom Hill
+
Finance
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

Image courtesy of stockimages / FreeDigitalPhotos.net. +
+
diff --git a/templates/meet-the-team/ajax-meet-the-team/member11.html b/templates/meet-the-team/ajax-meet-the-team/member11.html new file mode 100644 index 0000000..6167f7d --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member11.html @@ -0,0 +1,12 @@ +
+ +
+ +
+
Adam Bert
+
Support
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

Image courtesy of stockimages / FreeDigitalPhotos.net. +
+
diff --git a/templates/meet-the-team/ajax-meet-the-team/member12.html b/templates/meet-the-team/ajax-meet-the-team/member12.html new file mode 100644 index 0000000..77e953a --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member12.html @@ -0,0 +1,12 @@ +
+ +
+ +
+
Charlie Ohm
+
Marketing
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

Image courtesy of stockimages / FreeDigitalPhotos.net. +
+
diff --git a/templates/meet-the-team/ajax-meet-the-team/member2.html b/templates/meet-the-team/ajax-meet-the-team/member2.html new file mode 100644 index 0000000..07592f4 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member2.html @@ -0,0 +1,12 @@ +
+ +
+ +
+
Joseph Murphy
+
Support
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

Image courtesy of stockimages / FreeDigitalPhotos.net. +
+
diff --git a/templates/meet-the-team/ajax-meet-the-team/member3.html b/templates/meet-the-team/ajax-meet-the-team/member3.html new file mode 100644 index 0000000..38995e3 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member3.html @@ -0,0 +1,12 @@ +
+ +
+ +
+
Alison Davis
+
Finance
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

Image courtesy of stockimages / FreeDigitalPhotos.net. +
+
diff --git a/templates/meet-the-team/ajax-meet-the-team/member4.html b/templates/meet-the-team/ajax-meet-the-team/member4.html new file mode 100644 index 0000000..f97da3f --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member4.html @@ -0,0 +1,12 @@ +
+ +
+ +
+
Alicia Taylor
+
Support
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

Image courtesy of graur razvan ionut / FreeDigitalPhotos.net. +
+
diff --git a/templates/meet-the-team/ajax-meet-the-team/member5.html b/templates/meet-the-team/ajax-meet-the-team/member5.html new file mode 100644 index 0000000..68cfd93 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member5.html @@ -0,0 +1,12 @@ +
+ +
+ +
+
Andreea Hill
+
Marketing
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

Image courtesy of Ambro / FreeDigitalPhotos.net. +
+
diff --git a/templates/meet-the-team/ajax-meet-the-team/member6.html b/templates/meet-the-team/ajax-meet-the-team/member6.html new file mode 100644 index 0000000..9268574 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member6.html @@ -0,0 +1,12 @@ +
+ +
+ +
+
Adam Chen
+
Web Design
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

Image courtesy of stockimages / FreeDigitalPhotos.net. +
+
diff --git a/templates/meet-the-team/ajax-meet-the-team/member7.html b/templates/meet-the-team/ajax-meet-the-team/member7.html new file mode 100644 index 0000000..7da4459 --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member7.html @@ -0,0 +1,12 @@ +
+ +
+ +
+
Mike Chant
+
Marketing
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

Image courtesy of stockimages / FreeDigitalPhotos.net. +
+
diff --git a/templates/meet-the-team/ajax-meet-the-team/member8.html b/templates/meet-the-team/ajax-meet-the-team/member8.html new file mode 100644 index 0000000..33a862e --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member8.html @@ -0,0 +1,12 @@ +
+ +
+ +
+
Carla Smith
+
Marketing
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

Image courtesy of Chaiwat / FreeDigitalPhotos.net. +
+
diff --git a/templates/meet-the-team/ajax-meet-the-team/member9.html b/templates/meet-the-team/ajax-meet-the-team/member9.html new file mode 100644 index 0000000..e32e2ec --- /dev/null +++ b/templates/meet-the-team/ajax-meet-the-team/member9.html @@ -0,0 +1,12 @@ +
+ +
+ +
+
Rebecca Breen
+
Web Design
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Earum, perspiciatis, corporis, iusto a saepe iste ea odit quas fugit amet nisi adipisci excepturi ipsam quae asperiores sit blanditiis sunt ducimus magni eos non et quos dignissimos quaerat aspernatur. Enim, temporibus, ullam, vitae, accusantium veniam ut odio magni nobis animi ratione eaque at aliquam eos error quas eum unde laudantium quisquam dolores voluptas velit corporis fuga! Error, soluta, consequatur, excepturi earum laudantium ab magnam vitae eligendi consectetur dicta quo nesciunt eveniet facere iusto praesentium aliquid impedit tempora nobis deleniti fugiat corporis maiores cupiditate provident veritatis quod odio nulla vel ratione quas. +

Image courtesy of stockimages / FreeDigitalPhotos.net. +
+
diff --git a/templates/meet-the-team/index.html b/templates/meet-the-team/index.html new file mode 100644 index 0000000..37ada5e --- /dev/null +++ b/templates/meet-the-team/index.html @@ -0,0 +1,235 @@ + + + + + + + Meet the Team - Cube Portfolio + + + + + + + + +
+
+ Finance (
) +
+
+ Web Design (
) +
+
+ Support (
) +
+
+ Marketing (
) +
+
+ + + + + + + + + + + + + diff --git a/templates/meet-the-team/js/main.js b/templates/meet-the-team/js/main.js new file mode 100644 index 0000000..719e099 --- /dev/null +++ b/templates/meet-the-team/js/main.js @@ -0,0 +1,58 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-meet-the-team').cubeportfolio({ + filters: '#js-filters-meet-the-team', + layoutMode: 'grid', + defaultFilter: '.finance', + animationType: 'sequentially', + gapHorizontal: 50, + gapVertical: 40, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 30, + gapVertical: 15, + } + }], + caption: 'fadeIn', + displayType: 'fadeIn', + displayTypeSpeed: 100, + + // singlePage popup + singlePageDelegate: '.cbp-singlePage', + singlePageDeeplinking: true, + singlePageStickyNavigation: true, + singlePageCounter: '
{{current}} of {{total}}
', + singlePageCallback: function(url, element) { + // to update singlePage content use the following method: this.updateSinglePage(yourContent) + var t = this; + + $.ajax({ + url: url, + type: 'GET', + dataType: 'html', + timeout: 30000 + }) + .done(function(result) { + t.updateSinglePage(result); + }) + .fail(function() { + t.updateSinglePage('AJAX Error! Please refresh the page!'); + }); + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/mosaic-flat/ajax-mosaic-flat/loadMore.html b/templates/mosaic-flat/ajax-mosaic-flat/loadMore.html new file mode 100644 index 0000000..693aa67 --- /dev/null +++ b/templates/mosaic-flat/ajax-mosaic-flat/loadMore.html @@ -0,0 +1,56 @@ + + + + \ No newline at end of file diff --git a/templates/mosaic-flat/index.html b/templates/mosaic-flat/index.html new file mode 100644 index 0000000..31b9e6a --- /dev/null +++ b/templates/mosaic-flat/index.html @@ -0,0 +1,166 @@ + + + + + + + Mosaic Flat - Cube Portfolio + + + + + + + + +
+
+ All
+
+
+ Print
+
+
+ Web Design
+
+
+ Graphic
+
+
+ Motion
+
+
+ + + + + + + + + + + + + + + diff --git a/templates/mosaic-flat/js/main.js b/templates/mosaic-flat/js/main.js new file mode 100644 index 0000000..c1ae4c5 --- /dev/null +++ b/templates/mosaic-flat/js/main.js @@ -0,0 +1,50 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-mosaic-flat').cubeportfolio({ + filters: '#js-filters-mosaic-flat', + layoutMode: 'mosaic', + sortByDimension: true, + mediaQueries: [{ + width: 1500, + cols: 6, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 15, + gapVertical: 15, + } + }], + defaultFilter: '*', + animationType: 'fadeOutTop', + gapHorizontal: 0, + gapVertical: 0, + gridAdjustment: 'responsive', + caption: 'fadeIn', + displayType: 'fadeIn', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
{{current}} of {{total}}
', + + plugins: { + loadMore: { + element: '#js-loadMore-mosaic-flat', + action: 'click', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/mosaic-projects/index.html b/templates/mosaic-projects/index.html new file mode 100644 index 0000000..ee769b1 --- /dev/null +++ b/templates/mosaic-projects/index.html @@ -0,0 +1,144 @@ + + + + + + + Juicy Projects Mosaic - Cube Portfolio + + + + + + + + +
+
+
All
+
Identity
+
Web Design
+
Print
+
+ +
+
All
+
Graphic
+
Logo
+
Motion
+
+
+ +
+
+ +
+ +
+
+
+
Dashboard
+
Web Design / Graphic
+
+
+ +
+ +
+
+
+
World Clock
+
Web Design / Logo
+
+
+ +
+ +
+
+
+
To-Do Dashboard
+
Graphic / Print
+
+
+ +
+ +
+
+
+
Events and More
+
Web Design / Motion
+
+
+ +
+ +
+
+
+
WhereTO App
+
Identity / Graphic
+
+
+ +
+ +
+
+
+
Ski * Buddy
+
Motion / Print
+
+
+ +
+ +
+
+
+
Seemple* Music
+
Graphic / Logo
+
+
+ +
+ +
+
+
+
Remind~Me More
+
Print / Logo
+
+
+ +
+ +
+
+
+
Bills Bills Bills
+
Identity / Motion
+
+
+ +
+ +
+
+
+
Generic Apps
+
Identity / Logo
+
+
+ + + + + + + + + + + diff --git a/templates/mosaic-projects/js/main.js b/templates/mosaic-projects/js/main.js new file mode 100644 index 0000000..fd75ede --- /dev/null +++ b/templates/mosaic-projects/js/main.js @@ -0,0 +1,40 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-mosaic-projects').cubeportfolio({ + filters: '#js-filters-mosaic-projects1,#js-filters-mosaic-projects2', + layoutMode: 'mosaic', + defaultFilter: '*', + animationType: 'quicksand', + gapHorizontal: 35, + gapVertical: 30, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + gapHorizontal: 30, + gapVertical: 10, + } + }], + caption: 'zoom', + displayType: 'sequentially', + displayTypeSpeed: 80, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
{{current}} of {{total}}
', + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/mosaic/ajax-mosaic/loadMore.html b/templates/mosaic/ajax-mosaic/loadMore.html new file mode 100644 index 0000000..ef68ef9 --- /dev/null +++ b/templates/mosaic/ajax-mosaic/loadMore.html @@ -0,0 +1,60 @@ + + + + diff --git a/templates/mosaic/index.html b/templates/mosaic/index.html new file mode 100644 index 0000000..ed39e70 --- /dev/null +++ b/templates/mosaic/index.html @@ -0,0 +1,246 @@ + + + + + + + Mosaic - Cube Portfolio + + + + + + + + +
+
All
+
Print
+
Web Design
+
Logo
+
Graphic
+
+ +
+
MOTION
+
IDENTITY
+
FINANCE
+
+
+
DEVELOPMENT
+
ACCOUNTING
+
MARKETING
+
+
+
FINANCE
+
SUPPORT
+
PRODUCTION
+
+
+
ACCOUNTING
+
DEVELOPMENT
+
MOTION
+
+
+
IDENTITY
+
SUPPORT
+
PRODUCTION
+
+ + + + + + + + + + + + + + + diff --git a/templates/mosaic/js/main.js b/templates/mosaic/js/main.js new file mode 100644 index 0000000..f4f9355 --- /dev/null +++ b/templates/mosaic/js/main.js @@ -0,0 +1,50 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-mosaic').cubeportfolio({ + filters: '#js-filters-mosaic, #js-filters-mosaic-cat1, #js-filters-mosaic-cat2, #js-filters-mosaic-cat3, #js-filters-mosaic-cat4, #js-filters-mosaic-cat5', + layoutMode: 'mosaic', + sortByDimension: true, + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapHorizontal: 15, + gapVertical: 15, + } + }], + defaultFilter: '*', + animationType: 'quicksand', + gapHorizontal: 0, + gapVertical: 0, + gridAdjustment: 'responsive', + caption: 'zoom', + displayType: 'sequentially', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
{{current}} of {{total}}
', + + plugins: { + loadMore: { + element: '#js-loadMore-mosaic', + action: 'click', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); diff --git a/templates/multiple-grids/ajax-juicy-projects/loadMore.html b/templates/multiple-grids/ajax-juicy-projects/loadMore.html new file mode 100644 index 0000000..a47fc64 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/loadMore.html @@ -0,0 +1,102 @@ +
+
+
+ +
+
+ +
+
+
Shopping Gallery
+
Graphic / Logo
+
+
+
+
+ +
+
+ +
+
+
Timezone Mgmt
+
Graphic / Logo
+
+
+
+
+ +
+
+ +
+
+
Story Book
+
Graphic / Logo
+
+
+
+
+ +
+
+ +
+
+
Website Lightbox
+
Identity
+
+
+
+
+ +
+
+ +
+
+
Mountaineer
+
Graphic / Logo
+
+
+
+
+ +
+
+ +
+
+
Archiview
+
Graphic / Logo
+
\ No newline at end of file diff --git a/templates/multiple-grids/ajax-juicy-projects/project1.html b/templates/multiple-grids/ajax-juicy-projects/project1.html new file mode 100644 index 0000000..9be8253 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project1.html @@ -0,0 +1,66 @@ +
Dashboard
+
by Paul Flavius Nechita
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project10.html b/templates/multiple-grids/ajax-juicy-projects/project10.html new file mode 100644 index 0000000..8921145 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project10.html @@ -0,0 +1,66 @@ +
Bills Bills Bills
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project11.html b/templates/multiple-grids/ajax-juicy-projects/project11.html new file mode 100644 index 0000000..3aba59d --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project11.html @@ -0,0 +1,66 @@ +
Generic Apps
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project12.html b/templates/multiple-grids/ajax-juicy-projects/project12.html new file mode 100644 index 0000000..0e6d856 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project12.html @@ -0,0 +1,66 @@ +
Speed Detector
+
You are an outstanding athlete and you need to measure your skills !
+ +
+
    +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project13.html b/templates/multiple-grids/ajax-juicy-projects/project13.html new file mode 100644 index 0000000..f6e39fd --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project13.html @@ -0,0 +1,66 @@ +
Shopping Gallery
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project14.html b/templates/multiple-grids/ajax-juicy-projects/project14.html new file mode 100644 index 0000000..b71692b --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project14.html @@ -0,0 +1,66 @@ +
Timezone Mgmt
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project15.html b/templates/multiple-grids/ajax-juicy-projects/project15.html new file mode 100644 index 0000000..e16811b --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project15.html @@ -0,0 +1,66 @@ +
Story Book
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project16.html b/templates/multiple-grids/ajax-juicy-projects/project16.html new file mode 100644 index 0000000..960a293 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project16.html @@ -0,0 +1,66 @@ +
Website Lightbox
+
by Paul Flavius Nechita
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project17.html b/templates/multiple-grids/ajax-juicy-projects/project17.html new file mode 100644 index 0000000..0d0ceb9 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project17.html @@ -0,0 +1,66 @@ +
Mountaineer
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project18.html b/templates/multiple-grids/ajax-juicy-projects/project18.html new file mode 100644 index 0000000..8ca5369 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project18.html @@ -0,0 +1,66 @@ +
Archiview
+
by Cosmin Capitanu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project2.html b/templates/multiple-grids/ajax-juicy-projects/project2.html new file mode 100644 index 0000000..e3b2e17 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project2.html @@ -0,0 +1,66 @@ +
World Clock
+
by Paul Flavius Nechita
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project3.html b/templates/multiple-grids/ajax-juicy-projects/project3.html new file mode 100644 index 0000000..2f25c90 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project3.html @@ -0,0 +1,66 @@ +
To-Do Dashboard
+
Work management platform for creatives with a lot of cool features. Easier.
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project4.html b/templates/multiple-grids/ajax-juicy-projects/project4.html new file mode 100644 index 0000000..0b69cf7 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project4.html @@ -0,0 +1,66 @@ +
Events and More
+
Just attent parties by having the app pinpoint awesome events near your location - Invite Friends and Have More Fun.
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project5.html b/templates/multiple-grids/ajax-juicy-projects/project5.html new file mode 100644 index 0000000..c7be922 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project5.html @@ -0,0 +1,66 @@ +
WhereTO App
+
Sick of trying to find all the info I need when planning a road trip? Me too, that's why this guy came to life
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project6.html b/templates/multiple-grids/ajax-juicy-projects/project6.html new file mode 100644 index 0000000..5070158 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project6.html @@ -0,0 +1,66 @@ +
Ski Buddy
+
Track your ski results, upload them to the apps server and compete with your friends or other ski fanatics.
+ +
+
    +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
+
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project7.html b/templates/multiple-grids/ajax-juicy-projects/project7.html new file mode 100644 index 0000000..e30abbc --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project7.html @@ -0,0 +1,66 @@ +
Seemple Music for iPad
+
Upcoming music app for iPad. More info and other screens will follow shortly.
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project8.html b/templates/multiple-grids/ajax-juicy-projects/project8.html new file mode 100644 index 0000000..0b694f4 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project8.html @@ -0,0 +1,66 @@ +
Remind~Me More
+
Next step of the reminder widget in which you can see all the reminders you've set and ways to interact with them.
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/ajax-juicy-projects/project9.html b/templates/multiple-grids/ajax-juicy-projects/project9.html new file mode 100644 index 0000000..8b8f663 --- /dev/null +++ b/templates/multiple-grids/ajax-juicy-projects/project9.html @@ -0,0 +1,66 @@ +
Workout Buddy
+
by Tiberiu Neamu
+ +
+ +
+ +
+
+
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusantium, cumque, earum blanditiis incidunt minus commodi consequatur provident quae. Nihil, alias, vel consequatur ab aliquam aspernatur optio harum facilis excepturi mollitia autem voluptas cum ex veniam numquam quia repudiandae in iure. Assumenda, vel provident molestiae perferendis officia commodi asperiores earum sapiente inventore quam deleniti mollitia consequatur expedita quaerat natus praesentium beatae aut ipsa non ex ullam atque suscipit ut dignissimos magnam!
+
+
+
    +
  • ClientJohn Doe
  • +
  • Date22 July 2015
  • +
  • CategoriesLogo, Graphic
  • +
+ OPEN PROJECT +
+
+ +
+ +
+ +


diff --git a/templates/multiple-grids/index.html b/templates/multiple-grids/index.html new file mode 100644 index 0000000..1a1ed8f --- /dev/null +++ b/templates/multiple-grids/index.html @@ -0,0 +1,693 @@ + + + + + + + Juicy Projects - Cube Portfolio + + + + + + + + + +
+
+ All
+
+
+ Identity
+
+
+ Web Design
+
+
+ Graphic
+
+
+ Logo
+
+
+ +
+
+
+
+ +
+
+ +
+
+
Dashboard
+
Web Design / Graphic
+
+
+
+
+ +
+
+ +
+
+
World Clock
+
Logo / Web Design
+
+
+
+
+ +
+
+
+ +
+
+
+
To-Do Dashboard
+
Graphic / Logo
+
+
+
+
+ +
+
+
+ +
+
+
+
Events and More
+
Web Design / Graphic
+
+
+
+
+ +
+
+ +
+
+
WhereTO App
+
Web Design / Identity
+
+
+
+
+ +
+
+ +
+
+
Ski * Buddy
+
Identity / Web Design
+
+
+
+
+ +
+
+
+ +
+
+
+
Seemple* Music
+
Graphic / Logo
+
+
+
+
+ +
+
+
+ +
+
+
+
Remind~Me More
+
Identity / Graphic
+
+
+
+
+ +
+
+
+ +
+
+
+
Workout Buddy
+
Web Design / Graphic
+
+
+
+
+ +
+
+
+ +
+
+
+
Bills Bills Bills
+
Identity / Web Design
+
+
+
+
+ +
+
+
+ +
+
+
+
Generic Apps
+
Identity / Logo
+
+
+
+
+ +
+
+
+ +
+
+
+
Speed Detector
+
Graphic / Web Design
+
+
+ + + +




+




+ + +
+
+ All
+
+
+ Identity
+
+
+ Web Design
+
+
+ Graphic
+
+
+ Web Design & Identity
+
+
+ + + +




+




+ + +
+
+
+
+
+ “Envato is an Australia-based, privately held company that specializes in the start-up, promotion and operation of multiple online marketplaces” +
+ +
+
+
+ “After co-founding the company in 2006 the group launched FlashDen, the first digital marketplace which focused on rich multimedia web content” +
+ +
+
+
+ “The Envato network is broken down into Tuts+ tutorial sites which offer technology-related tutorials and marketplaces to sell digital products. + Envato's network currently generates over a million dollars in annual revenue” +
+ +
+
+
+
+ +




+




+ + +
+
+
+
+ +
+
+
+
John Doe
+ +
+
CEO, Director General
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
+
+
+
+
+ +
+
+
+
John Snow
+ +
+
Manager
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
+
+
+
+
+ +
+
+
+
Arya Stark
+ +
+
Developer
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
+
+
+
+
+ +
+
+
+
Tyrion Lannister
+ +
+
CEO, Director General
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
+
+
+
+
+ +
+
+
+
Mary Jane
+ +
+
Support Staff
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
+
+
+
+
+ +
+
+
+
Tania Grue
+ +
+
Finance
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
+
+
+ + + + + + + + + + + diff --git a/templates/multiple-grids/js/main.js b/templates/multiple-grids/js/main.js new file mode 100644 index 0000000..a0909ee --- /dev/null +++ b/templates/multiple-grids/js/main.js @@ -0,0 +1,176 @@ +/* juicy-projects */ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-juicy-projects').cubeportfolio({ + filters: '#js-filters-juicy-projects', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'quicksand', + gapHorizontal: 35, + gapVertical: 30, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + } + }], + caption: 'overlayBottomReveal', + displayType: 'sequentially', + displayTypeSpeed: 80, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
{{current}} of {{total}}
', + + // singlePage popup + singlePageDelegate: '.cbp-singlePage', + singlePageDeeplinking: true, + singlePageStickyNavigation: true, + singlePageCounter: '
{{current}} of {{total}}
', + singlePageCallback: function(url, element) { + // to update singlePage content use the following method: this.updateSinglePage(yourContent) + var t = this; + + $.ajax({ + url: url, + type: 'GET', + dataType: 'html', + timeout: 30000 + }) + .done(function(result) { + t.updateSinglePage(result); + }) + .fail(function() { + t.updateSinglePage('AJAX Error! Please refresh the page!'); + }); + }, + + plugins: { + loadMore: { + element: '#js-loadMore-juicy-projects', + action: 'click', + loadItems: 3, + } + }, + }); +})(jQuery, window, document); + +/* masonry */ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-masonry').cubeportfolio({ + filters: '#js-filters-masonry', + layoutMode: 'grid', + defaultFilter: '*', + animationType: 'slideDelay', + gapHorizontal: 20, + gapVertical: 20, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + } + }], + caption: 'overlayBottomAlong', + displayType: 'bottomToTop', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
{{current}} of {{total}}
', + }); +})(jQuery, window, document); + +/* slider-testimonials */ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-slider-testimonials').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: true, + showPagination: true, + rewindNav: true, + scrollByPage: false, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 0, + cols: 1, + }], + gapHorizontal: 0, + gapVertical: 0, + caption: '', + displayType: 'default', + }); +})(jQuery, window, document); + +/* slider-team */ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-slider-team').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: false, + showPagination: true, + rewindNav: true, + scrollByPage: true, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1680, + cols: 5, + }, { + width: 1350, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + }], + gapHorizontal: 0, + gapVertical: 45, + caption: '', + displayType: 'fadeIn', + displayTypeSpeed: 400, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/slider-projects/index.html b/templates/slider-projects/index.html new file mode 100644 index 0000000..ddb42b0 --- /dev/null +++ b/templates/slider-projects/index.html @@ -0,0 +1,695 @@ + + + + + + + Slider - Cube Portfolio + + + + + + + + +
+
RELATED WORKS
+
+ +
+
+
+
+ +
+
+ +
+
+
Dashboard
+
Web Design / Graphic
+
+
+
+
+ +
+
+ +
+
+
World Clock
+
Logo / Web Design
+
+
+
+
+ +
+
+
+ +
+
+
+
To-Do Dashboard
+
Graphic / Logo
+
+
+
+
+ +
+
+ +
+
+
Events and More
+
Web Design / Graphic
+
+
+
+
+ +
+
+ +
+
+
WhereTO App
+
Web Design / Identity
+
+
+
+
+ +
+
+ +
+
+
Ski * Buddy
+
Identity / Web Design
+
+
+
+
+ +
+
+ +
+
+
Seemple* Music
+
Graphic / Logo
+
+
+
+
+ +
+
+
+ +
+
+
+
Remind~Me More
+
Identity / Graphic
+
+
+ + + + + + + + + + + + + diff --git a/templates/slider-projects/js/main.js b/templates/slider-projects/js/main.js new file mode 100644 index 0000000..9a71de6 --- /dev/null +++ b/templates/slider-projects/js/main.js @@ -0,0 +1,69 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + var singlePage = $('#js-singlePage-container').children('div'); + $('#js-grid-slider-projects').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: true, + showPagination: false, + rewindNav: false, + scrollByPage: false, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1500, + cols: 5, + }, { + width: 1100, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + caption: '', + gapVertical: 10, + } + }], + gapHorizontal: 0, + gapVertical: 25, + caption: 'overlayBottomReveal', + displayType: 'fadeIn', + displayTypeSpeed: 100, + + // lightbox + lightboxDelegate: '.cbp-lightbox', + lightboxGallery: true, + lightboxTitleSrc: 'data-title', + lightboxCounter: '
{{current}} of {{total}}
', + + // singlePage popup + singlePageDelegate: '.cbp-singlePage', + singlePageDeeplinking: true, + singlePageStickyNavigation: true, + singlePageCounter: '
{{current}} of {{total}}
', + singlePageAnimation: 'fade', + singlePageCallback: function(url, element) { + // to update singlePage content use the following method: this.updateSinglePage(yourContent) + var indexElement = $(element).parents('.cbp-item').index(), + item = singlePage.eq(indexElement); + + item.find('img').each(function(index, el) { + var attr = el.getAttribute('data-cbp-src'); + + if (attr) { + el.setAttribute('src', attr); + el.removeAttribute('data-cbp-src'); + } + }); + + this.updateSinglePage(item.html()); + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/slider-team/index.html b/templates/slider-team/index.html new file mode 100644 index 0000000..bccbb63 --- /dev/null +++ b/templates/slider-team/index.html @@ -0,0 +1,214 @@ + + + + + + + Slider - Cube Portfolio + + + + + + + + +
+
+
+
+ +
+
+
+
John Doe
+ +
+
CEO, Director General
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
+
+
+
+
+ +
+
+
+
John Snow
+ +
+
Manager
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
+
+
+
+
+ +
+
+
+
Arya Stark
+ +
+
Developer
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
+
+
+
+
+ +
+
+
+
Tyrion Lannister
+ +
+
CEO, Director General
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
+
+
+
+
+ +
+
+
+
Mary Jane
+ +
+
Support Staff
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
+
+
+
+
+ +
+
+
+
Tania Grue
+ +
+
Finance
+
+ Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nulla nemo ad quibusdam consequuntur sapiente officia natus reprehenderit, doloribus in dolores! +
+
+
+ + + + + + + + + + + diff --git a/templates/slider-team/js/main.js b/templates/slider-team/js/main.js new file mode 100644 index 0000000..80831df --- /dev/null +++ b/templates/slider-team/js/main.js @@ -0,0 +1,38 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-slider-team').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: false, + showPagination: true, + rewindNav: true, + scrollByPage: true, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 1680, + cols: 5, + }, { + width: 1350, + cols: 4, + }, { + width: 800, + cols: 3, + }, { + width: 480, + cols: 2, + options: { + gapVertical: 20, + } + }], + gapHorizontal: 0, + gapVertical: 45, + caption: '', + displayType: 'fadeIn', + displayTypeSpeed: 400, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/slider-testimonials/index.html b/templates/slider-testimonials/index.html new file mode 100644 index 0000000..86e04a9 --- /dev/null +++ b/templates/slider-testimonials/index.html @@ -0,0 +1,57 @@ + + + + + + + Testimonials - Cube Portfolio + + + + + + + + +
+
+
+
+
+ “Envato is an Australia-based, privately held company that specializes in the start-up, promotion and operation of multiple online marketplaces” +
+ +
+
+
+ “After co-founding the company in 2006 the group launched FlashDen, the first digital marketplace which focused on rich multimedia web content” +
+ +
+
+
+ “The Envato network is broken down into Tuts+ tutorial sites which offer technology-related tutorials and marketplaces to sell digital products. + Envato's network currently generates over a million dollars in annual revenue” +
+ +
+
+
+
+ + + + + + + + + + + diff --git a/templates/slider-testimonials/js/main.js b/templates/slider-testimonials/js/main.js new file mode 100644 index 0000000..e0e238e --- /dev/null +++ b/templates/slider-testimonials/js/main.js @@ -0,0 +1,25 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-slider-testimonials').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: true, + showPagination: true, + rewindNav: true, + scrollByPage: false, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 0, + cols: 1, + }], + gapHorizontal: 0, + gapVertical: 0, + caption: '', + displayType: 'default', + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/slider-thumbnail/index.html b/templates/slider-thumbnail/index.html new file mode 100644 index 0000000..cafc168 --- /dev/null +++ b/templates/slider-thumbnail/index.html @@ -0,0 +1,61 @@ + + + + + + + Slider - Cube Portfolio + + + + + + + + +
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + + + + + + + + + + diff --git a/templates/slider-thumbnail/js/main.js b/templates/slider-thumbnail/js/main.js new file mode 100644 index 0000000..2dca73e --- /dev/null +++ b/templates/slider-thumbnail/js/main.js @@ -0,0 +1,33 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-slider-thumbnail').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: false, + showPagination: false, + rewindNav: true, + scrollByPage: true, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 0, + cols: 1, + }], + gapHorizontal: 0, + gapVertical: 0, + caption: '', + displayType: 'fadeIn', + displayTypeSpeed: 400, + + plugins: { + slider: { + pagination: '#js-pagination-slider', + paginationClass: 'cbp-pagination-active', + } + }, + }); +})(jQuery, window, document); \ No newline at end of file diff --git a/templates/tabs/index.html b/templates/tabs/index.html new file mode 100644 index 0000000..07664e2 --- /dev/null +++ b/templates/tabs/index.html @@ -0,0 +1,49 @@ + + + + + + + Tabs - Cube Portfolio + + + + + + + + +
+
+ About +
+
+ Service +
+
+ Pages +
+
+ +
+
+ Pellentesque ut nonummy elit et duis, ut aliquam morbi, lobortis dolor nec fusce consequat. Nec elit magna mauris orci mauris ac, sem duis, ante nibh mi, sed malesuada ultrices scelerisque augue convallis eget. Ac varius enim qui, quis pharetra ultricies velit ut auctor, suspendisse mattis viverra eget sed in, pellentesque enim felis turpis auctor amet. Dolor sit mauris dui augue, sed nullam urna commodo, arcu congue mi non suscipit. +
+
+ Pede iaculis mauris lorem, non mi gravida risus metus, proin tempus pede rhoncus scelerisque ligula. Dignissim diam sodales egestas senectus elit nec, aliquam ante convallis proin pulvinar molestias vestibulum, leo felis, luctus id sed accumsan, nunc metus proin neque nulla ipsa. Ut fusce in aliquam amet arcu magna, amet nec nec orci pharetra vehicula sodales, nibh purus consectetuer aenean porttitor justo vivamus. Laoreet diam eu potenti, malesuada lacus et fermentum eget egestas. +
+
+ Orci eros pulvinar metus. Taciti montes placerat nulla nonummy lacus, turpis et urna, eleifend aute condimentum eu, congue pede dapibus. Elit dis eros vulputate ultricies, ullamcorper egestas, turpis senectus tellus mi euismod erat mus, asperiores feugiat vitae lectus mi. Rerum integer dictumst, ligula blandit vestibulum nam consequat sed. Nulla fusce, blandit nec, sit ut in aliquam proin, netus sed magna lectus dolor, ipsum ac. +
+
+ + + + + + + + + + + diff --git a/templates/tabs/js/main.js b/templates/tabs/js/main.js new file mode 100644 index 0000000..ddca7ac --- /dev/null +++ b/templates/tabs/js/main.js @@ -0,0 +1,13 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-tabs').cubeportfolio({ + filters: '#js-filters-tabs', + defaultFilter: '.about', + animationType: 'fadeOut', + gridAdjustment: 'default', + displayType: 'default', + caption: '', + }); +})(jQuery, window, document); diff --git a/templates/testimonials/index.html b/templates/testimonials/index.html new file mode 100644 index 0000000..9db418b --- /dev/null +++ b/templates/testimonials/index.html @@ -0,0 +1,59 @@ + + + + + + + Testimonials - Cube Portfolio + + + + + + + + +
+
+ What our Clients say? +
+ +
+
+
+ “Envato is an Australia-based, privately held company that specializes in the start-up, promotion and operation of multiple online marketplaces” +
+ +
+
+
+ “After co-founding the company in 2006 the group launched FlashDen, the first digital marketplace which focused on rich multimedia web content” +
+ +
+
+
+ “The Envato network is broken down into Tuts+ tutorial sites which offer technology-related tutorials and marketplaces to sell digital products. + Envato's network currently generates over a million dollars in annual revenue” +
+ +
+
+
+ + + + + + + + + + + diff --git a/templates/testimonials/js/main.js b/templates/testimonials/js/main.js new file mode 100644 index 0000000..c92795f --- /dev/null +++ b/templates/testimonials/js/main.js @@ -0,0 +1,25 @@ +(function($, window, document, undefined) { + 'use strict'; + + // init cubeportfolio + $('#js-grid-testimonials').cubeportfolio({ + layoutMode: 'slider', + drag: true, + auto: false, + autoTimeout: 5000, + autoPauseOnHover: true, + showNavigation: false, + showPagination: true, + rewindNav: false, + scrollByPage: false, + gridAdjustment: 'responsive', + mediaQueries: [{ + width: 0, + cols: 1, + }], + gapHorizontal: 0, + gapVertical: 0, + caption: '', + displayType: 'default', + }); +})(jQuery, window, document); \ No newline at end of file