diff --git a/_assets/_testing/buttons.html b/_assets/_testing/buttons.html index dd3d592..78618dc 100644 --- a/_assets/_testing/buttons.html +++ b/_assets/_testing/buttons.html @@ -18,6 +18,10 @@ --font-size:0.86em; --text-font: 'courier new'; } + #test1 { + --icon-width:64px; + --icon-height:64px; + } @@ -26,12 +55,23 @@
+ + + +
+
+ - +
@@ -128,9 +168,15 @@ - - - +
+ +
+
+ +
+
+ +
@@ -138,6 +184,8 @@ + + @@ -175,7 +223,7 @@ $("#testform").clikForm({ debug:false, rules : { - field1: { + email: { required: true, email: true }, diff --git a/_assets/_testing/grids.html b/_assets/_testing/grids.html new file mode 100644 index 0000000..8330a52 --- /dev/null +++ b/_assets/_testing/grids.html @@ -0,0 +1,122 @@ + + + + Title and heading font test + + + + + + + + + +
+
Auto grid with max-width
+
+
+ +
+
Grid with fixed width cols
+
+
+ +
+
Grid with set cols
+
+
+ +
+
Grid with fixed width
+
+
+ +
+
Flex
+
+
+ +
+
Flex No Wrap
+
+
+ +
+
Flex Stretch
+
+
+ +
+
Flex align center
+
+
+ + + + + + \ No newline at end of file diff --git a/_assets/_testing/items.html b/_assets/_testing/items.html index d9f403c..d30f3c3 100644 --- a/_assets/_testing/items.html +++ b/_assets/_testing/items.html @@ -21,26 +21,20 @@ .item { margin:20px; border:1px solid #ccc; - --item-padding:8px; + padding:8px; } - .scheme-box { - --item-image-padding:2px; - --item-image-border-width:1px; - --item-image-border-color:var(--border-color); - } - - .scheme-box:hover { + .item.scheme-box:hover { --title-color: #00C0F9; } - .scheme-underline { - --item-image-padding:0 0 2px 0; - --item-image-border-width:0px 0px 8px 0; + .item.scheme-underline .imageWrap { + padding:0 0 2px 0; + border-width:0px 0px 8px 0; } - .scheme-underline:hover { - --item-image-border-color:var(--accent-color); + .item.scheme-underline:hover .imageWrap { + border-color:var(--accent-color); } @@ -56,7 +50,7 @@
-

Htop item left

+

setting-htop scheme-box

@@ -68,236 +62,168 @@

Htop item left

+
- - -
+

Headline before image except in mobile

- -

Headline before image except in mobile

- -
- - - -
- - -
-

Set munder to but a heading under the image in mobile (if its got htop for main view)

- -
- -
+
+ +
- +
+

Set munder to put a heading under the image in mobile (if its got htop for main view)

+
- -
+
- -

Larger image

+
-
- - - -
- +

Larger image

-
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo - consequat.

- - -
- -
+
+ +
- +
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

+
- -
- - -

Larger image right

+
-
- - - -
- +
-
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo - consequat.

- -
- -
- -
+

Larger image right

+
+ +
+ +
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

+
+ +
-

No image with space still showing

+
-
- -
- + +

No image with space still showing

-
-

Actualy here you just assign the image alignment class.

-
+
-
+
+
+

Actualy here you just assign the image alignment class.

+
- -
- - -

No image with no space

+
-
- -
- +
+ +

No image with no space

-
-

You can just do nothing but noimage will set the imageWrap to display:none

-
+
-
- +
+
+

You can just do nothing but noimage will set the imageWrap to display:none

+
- -
+
- -

Headline is inline

+
-
- - - -
- + +

Headline is inline

-
-

This is actually the default. You have to put htop on to change it.

- -
+
-
- - - - + + +
+
+

This is actually the default. You have to put htop on to change it.

+ +
-
+
- -

Flow settings

+
-
- - - -
- +

Flow settings

-
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo - consequat.

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo - consequat.

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo - consequat.

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo - consequat.

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo - consequat.

- -
+
-
- -
- + -

Flow settings right

+
+ -
- - - -
+
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat.

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat.

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat.

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat.

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat.

+
+ +
-
-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo - consequat.

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo - consequat.

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo - consequat.

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, - quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo - consequat.

- - -
- -
+
-
+ +

Flow settings right

+
-
- - - -
- - -
-

Flow settings move headline

- -

Here you actually have to change the html

- - -
+ -
- +
+ +
+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat.

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat.

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat.

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat.

+ + +
+ +
diff --git a/_assets/_testing/menuScroll_js.html b/_assets/_testing/menuScroll_js.html index 60c7403..b74c6c4 100644 --- a/_assets/_testing/menuScroll_js.html +++ b/_assets/_testing/menuScroll_js.html @@ -1,12 +1,12 @@ - Menu test + Menu scroll test - + @@ -25,10 +25,20 @@ top:var(--header-height); } - .headingselected { + .cs-menu a:hover { + font-weight: bold; + --link-color: pink; + } + .cs-menu li.hi > a { font-weight: bold; font-style: italic; - color: pink; + --link-color: pink; + } + .cs-menu { + --menu-text-align:left; + } + .cs-menu .submenu { + --menu-item-padding: 0 0 0 1em; } #header { @@ -86,7 +96,7 @@

Sub col

-

Title 1

+

Title 1

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, @@ -94,16 +104,21 @@

Title 1

consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- +

Sub Title 1

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- -

Title 2

- +

Sub Title 2

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non + proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+

Sub Title 3

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo @@ -111,6 +126,22 @@

Title 2

cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+

Title 2

+

Sub Title 1

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non + proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+

Sub Title 2

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non + proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+

Sub Title 3

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo @@ -132,7 +163,7 @@

Title 2

cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-

Title 3

+

Title 3

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, @@ -140,14 +171,27 @@

Title 3

consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- +

Sub Title 1

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non + proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+

Sub Title 2

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non + proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+

Sub Title 3

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo @@ -162,7 +206,7 @@

Title 3

cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

-

Title 4

+

Title 4

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, @@ -171,6 +215,21 @@

Title 4

cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+

Sub Title 1

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non + proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+

Sub Title 2

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, + quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo + consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse + cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non + proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

+

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo @@ -200,13 +259,8 @@

Title 4

- diff --git a/_assets/_testing/menus_js.html b/_assets/_testing/menus_js.html index c3138e2..7717443 100644 --- a/_assets/_testing/menus_js.html +++ b/_assets/_testing/menus_js.html @@ -6,49 +6,49 @@ + + @@ -56,6 +56,92 @@
Menu Testing
+ + + + + + + \ No newline at end of file diff --git a/_assets/_testing/shadows.html b/_assets/_testing/shadows.html index e2111e6..021a115 100644 --- a/_assets/_testing/shadows.html +++ b/_assets/_testing/shadows.html @@ -20,14 +20,14 @@ } .shadow15 { - box-shadow: rgba(255, 255, 255, 0.1) 0px 1px 1px 0px inset, rgba(50, 50, 93, 0.25) 0px 50px 100px -20px, rgba(0, 0, 0, 0.3) 0px 30px 60px -30px;*/ + box-shadow: rgba(255, 255, 255, 0.1) 0px 1px 1px 0px inset, rgba(50, 50, 93, 0.25) 0px 50px 100px -20px, rgba(0, 0, 0, 0.3) 0px 30px 60px -30px; } -
+
diff --git a/_assets/_testing/titles.html b/_assets/_testing/titles.html index ea382b6..e2e7928 100644 --- a/_assets/_testing/titles.html +++ b/_assets/_testing/titles.html @@ -3,7 +3,7 @@ Title and heading font test - + @@ -19,7 +19,7 @@ .title { --title-font-size: 140%; - font-weight: bold; + --title-font-weight: bold; } .scheme-crosshead { @@ -88,7 +88,7 @@

h3 in cs-title

These tags should all be styled according to the syles applied to .title
- +
Title for something else

.title h1 in cs-somethingelese

diff --git a/_assets/css/flickity-fade.css b/_assets/css/flickity-fade.css new file mode 100644 index 0000000..861e8d2 --- /dev/null +++ b/_assets/css/flickity-fade.css @@ -0,0 +1,11 @@ +/* flickity-fade */ + +.flickity-enabled.is-fade .flickity-slider > * { + pointer-events: none; + z-index: 0; +} + +.flickity-enabled.is-fade .flickity-slider > .is-selected { + pointer-events: auto; + z-index: 1; +} \ No newline at end of file diff --git a/_assets/css/flickity.css b/_assets/css/flickity.css index b5c971b..ee2de31 100644 --- a/_assets/css/flickity.css +++ b/_assets/css/flickity.css @@ -1,137 +1,4 @@ -/*! Flickity v2.3.0 +/*! Flickity v3.0.0 https://flickity.metafizzy.co ---------------------------------------------- */ - -.flickity-enabled { - position: relative; -} - -.flickity-enabled:focus { outline: none; } - -.flickity-viewport { - overflow: hidden; - position: relative; - height: 100%; -} - -.flickity-slider { - position: absolute; - width: 100%; - height: 100%; -} - -/* draggable */ - -.flickity-enabled.is-draggable { - -webkit-tap-highlight-color: transparent; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} - -.flickity-enabled.is-draggable .flickity-viewport { - cursor: move; - cursor: -webkit-grab; - cursor: grab; -} - -.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down { - cursor: -webkit-grabbing; - cursor: grabbing; -} - -/* ---- flickity-button ---- */ - -.flickity-button { - position: absolute; - background: hsla(0, 0%, 100%, 0.75); - border: none; - color: #333; -} - -.flickity-button:hover { - background: white; - cursor: pointer; -} - -.flickity-button:focus { - outline: none; - box-shadow: 0 0 0 5px #19F; -} - -.flickity-button:active { - opacity: 0.6; -} - -.flickity-button:disabled { - opacity: 0.3; - cursor: auto; - /* prevent disabled button from capturing pointer up event. #716 */ - pointer-events: none; -} - -.flickity-button-icon { - fill: currentColor; -} - -/* ---- previous/next buttons ---- */ - -.flickity-prev-next-button { - top: 50%; - width: 44px; - height: 44px; - border-radius: 50%; - /* vertically center */ - transform: translateY(-50%); -} - -.flickity-prev-next-button.previous { left: 10px; } -.flickity-prev-next-button.next { right: 10px; } -/* right to left */ -.flickity-rtl .flickity-prev-next-button.previous { - left: auto; - right: 10px; -} -.flickity-rtl .flickity-prev-next-button.next { - right: auto; - left: 10px; -} - -.flickity-prev-next-button .flickity-button-icon { - position: absolute; - left: 20%; - top: 20%; - width: 60%; - height: 60%; -} - -/* ---- page dots ---- */ - -.flickity-page-dots { - position: absolute; - width: 100%; - bottom: -25px; - padding: 0; - margin: 0; - list-style: none; - text-align: center; - line-height: 1; -} - -.flickity-rtl .flickity-page-dots { direction: rtl; } - -.flickity-page-dots .dot { - display: inline-block; - width: 10px; - height: 10px; - margin: 0 8px; - background: #333; - border-radius: 50%; - opacity: 0.25; - cursor: pointer; -} - -.flickity-page-dots .dot.is-selected { - opacity: 1; -} +.flickity-enabled{position:relative}.flickity-enabled:focus{outline:0}.flickity-viewport{overflow:hidden;position:relative;height:100%;touch-action:pan-y}.flickity-slider{position:absolute;width:100%;height:100%;left:0}.flickity-rtl .flickity-slider{left:unset;right:0}.flickity-enabled.is-draggable{-webkit-tap-highlight-color:transparent;user-select:none}.flickity-enabled.is-draggable .flickity-viewport{cursor:move;cursor:grab}.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down{cursor:grabbing}.flickity-cell{position:absolute;left:0}.flickity-rtl .flickity-cell{left:unset;right:0}.flickity-button{position:absolute;background:hsl(0 0% 100% / 75%);border:none;color:#333}.flickity-button:hover{background:#fff;cursor:pointer}.flickity-button:focus{outline:0;box-shadow:0 0 0 5px #19f}.flickity-button:active{opacity:.6}.flickity-button:disabled{opacity:.3;cursor:auto;pointer-events:none}.flickity-button-icon{fill:currentColor}.flickity-prev-next-button{top:50%;width:44px;height:44px;border-radius:50%;transform:translateY(-50%)}.flickity-prev-next-button.previous{left:10px}.flickity-prev-next-button.next{right:10px}.flickity-rtl .flickity-prev-next-button.previous{left:auto;right:10px}.flickity-rtl .flickity-prev-next-button.next{right:auto;left:10px}.flickity-prev-next-button .flickity-button-icon{position:absolute;left:20%;top:20%;width:60%;height:60%}.flickity-page-dots{position:absolute;width:100%;bottom:-25px;text-align:center;display:flex;justify-content:center;flex-wrap:wrap}.flickity-rtl .flickity-page-dots{direction:rtl}.flickity-page-dot{display:block;width:10px;height:10px;padding:0;margin:0 8px;background:hsl(0 0% 20% / 25%);border-radius:50%;cursor:pointer;appearance:none;border:none;text-indent:-9999px;overflow:hidden}.flickity-rtl .flickity-page-dot{text-indent:9999px}.flickity-page-dot:focus{outline:0;box-shadow:0 0 0 5px #19f}.flickity-page-dot.is-selected{background:hsl(0 0% 20% / 100%)} \ No newline at end of file diff --git a/_assets/css/fonts.css b/_assets/css/fonts.css new file mode 100644 index 0000000..2d65d7f --- /dev/null +++ b/_assets/css/fonts.css @@ -0,0 +1,26 @@ +:root { + --title-font:Arial; + --text-font:Verdana; + --title-font:var(--text-font); + --heading-font:var(--title-font); + --font-size:86%; + --heading-margin: 0; +} + +body { + font-family: var(--text-font); + font-size: var(--font-size); +} + +.title, .cs-title { + font-family: var(--title-font); +} + +h1, h2, h3, h4, h5, h6 { + font-family: var(--heading-font); + margin: var(--heading-margin); +} + + + + diff --git a/_assets/css/fonts/fonts.css b/_assets/css/fonts/fonts.css index ff2c04d..e3aa21c 100644 --- a/_assets/css/fonts/fonts.css +++ b/_assets/css/fonts/fonts.css @@ -1,6 +1,2 @@ @import url('https://fonts.googleapis.com/css2?family=Lato:wght@300;400;700&family=Open+Sans:wght@300&display=swap'); -:root { - --titlefont:Lato; - --bodyfont:Open Sans; -} \ No newline at end of file diff --git a/_assets/css/forms.css b/_assets/css/forms.css index 2ca660c..f527af3 100644 --- a/_assets/css/forms.css +++ b/_assets/css/forms.css @@ -1,5 +1,8 @@ :root { --border-color:#8f8f8f; +} + +.form { --field-border-color: var(--border-color); --form-stripe-background-color: transparent; --form-label-width: 33%; @@ -11,7 +14,7 @@ --field-checkbox-width:28px; --field-border-width: 1px; --field-border-style:solid; - --form-background-color: transparent; + --field-background-color: transparent; --form-font:1em inherit; --form-color:inherit; } @@ -156,7 +159,7 @@ td.field input[type=text], td.field input[type=password], td.field textarea, td. border-width: var(--field-border-width); border-style: var(--field-border-style); border-color: var(--field-border-color); - background-color: var(--form-background-color); + background-color: var(--field-background-color); padding:var(--input-padding); width: 100%; } @@ -164,7 +167,8 @@ td.field input[type=text], td.field input[type=password], td.field textarea, td. field.checkbox, field.radio { display: grid; - grid-template-columns: var(--field-checkbox-width) auto; + grid-template-columns: var(--field-checkbox-width) auto ; + grid-row-gap: 2px; } diff --git a/_assets/css/grids.css b/_assets/css/grids.css index 542858b..2ece0c1 100644 --- a/_assets/css/grids.css +++ b/_assets/css/grids.css @@ -1,45 +1,36 @@ /* Static CSS for new var style grid styling */ :root { - --mingridcol: 200px; - --gridgap: 10px; - --gridrowgap: var(--gridgap); - --cols: 3; - --fill: auto-fit; + --grid-gap:0; + --grid-fit:auto-fit; + --grid-width:180px; + --grid-max-width:1fr; + --grid-max-height:auto; + --grid-columns:2; + --flex-direction:row; + --justify-content:flex-start; + --align-items:center; + --align-content:flex-start;/* alignment for multiple rows */ + --flex-stretch:0;/* treat as boolean */ + --flex-wrap: wrap; } -.scheme-grid { - display:grid; - grid-template-columns: repeat(var(--fill), minmax(var(--mingridcol),1fr)); - grid-gap:var(--gridgap); - grid-row-gap: var(--gridrowgap); -} - -/*Set number of columns */ -.scheme-grid-fixedcols { - grid-template-columns: repeat(var(--cols), 1fr); -} - -/*Fixed width */ -.scheme-grid-fixed { - grid-template-columns: repeat(auto-fit, var(--mingridcol)); -} -/* Exotica */ -.scheme-grid-test { - grid-template-columns: 200px repeat(auto-fit, minmax(var(--mingridcol),1fr)) 300px; +.cs-grid { + display:grid; + grid-template-columns: repeat(var(--grid-fit), minmax(var(--grid-width),var(--grid-max-width))); + grid-gap:var(--grid-gap); + /*grid-row-gap: var(--gridrowgap); too hard -- need to think about how this will work and inherit */ } .flex { display: flex; - grid-gap:var(--gridgap); -} - -.flex-end { - display: flex; - justify-content: flex-end; + flex-direction: var(--flex-direction); + align-items: var(--align-items); + justify-content: var(--justify-content); + flex-wrap: var(--flex-wrap); } -.flex-stretch > div { - flex-grow: 1; +.flex > * { + flex-grow: var(--flex-stretch); } \ No newline at end of file diff --git a/_assets/css/images.css b/_assets/css/images.css index d2e4fb4..a2aa5b2 100644 --- a/_assets/css/images.css +++ b/_assets/css/images.css @@ -3,152 +3,189 @@ } .cs-imagegrid { - --max-height: 160px; - --max-width: 140px; + --image-max-height: auto; + --image-max-width: 100%; + --object-fit: scale-down; + --align-frame:center;/* align items within frame */ + --justify-frame:start;/* justify content within frame */ + --align-caption:center;/* align caption */ + --justify-caption:start;/* justify caption */ + --image-grow:0;/* expand image to frame */ + --frame-flex-direction:column; /* image on top of caption (can reverse) */ + --transition-time:1s;/* time for rollover transition */ +} + +.cs-imagegrid .frame { + position: relative; + display: flex; + flex-direction: var(--frame-flex-direction); + padding:8px; + align-items: var(--align-frame); + justify-content: var(--justify-frame); } -figure img { +.cs-imagegrid .frame img { display: block; - max-width: 100%; - max-height:100%; - width:auto; - height: auto; + width: 100%; + height:100%; + object-fit: var(--object-fit); } -.cs-image.scheme-box { - padding:0 8px 12px 0; - margin:0 0 12px 0; +.cs-imagegrid .image { + height: var(--image-max-height); + width: var(--image-max-width); + flex-grow: var(--image-grow); + overflow: hidden; + display: flex; + flex-direction: column; + justify-content: var(--justify-frame); + align-items: var(--align-frame); } -.cs-image.scheme-box figure { - margin-bottom:12px; +.cs-imagegrid .caption { + display: flex; + flex-direction: column; + padding:2px; + align-items: var(--align-caption); + justify-content: var(--justify-caption); + transition:opacity var(--transition-time); } -.cs-image.scheme-box figure img { - border:1px solid var(--bordercolor); - box-shadow: 4px 4px 4px 0px rgba(156,150,156,0.72); +.cs-imagegrid .frame:hover .caption { + opacity: 1 !important; } -.cs-image.left { - float:left; - margin:0 12px 12px 0; -} +.cs-image img { + max-width: 100%; + height:auto; -.cs-imagegrid.flex .grid { - display: flex; - flex-direction: row; - padding:8px; - flex-wrap: wrap; - justify-content: space-evenly; } -.cs-imagegrid.flex.flex-center .grid { +.popup { + position: fixed; + padding:20px; + top:0; + left:0; + background-color: rgba(255,255,255,1); + width: 100vw; + height: 100vh; + display: none; + overflow: hidden; + align-items: center; justify-content: center; } -.cs-imagegrid.flex.flex-between .grid { - justify-content: space-between; +.popup .button { + position: fixed; + top:6px; + right:6px; + --icon-width:12px; + --icon-height:12px; } -.cs-imagegrid.flex.flex-start .grid { - justify-content: flex-start; +.popup img { + margin:0 auto; + box-shadow: 10px 10px 15px -4px rgba(0,0,0,0.72); } -.cs-imagegrid.flex.flex-end .grid { - justify-content: flex-end; +.popup .button:hover { + stroke:#ff00ff; + fill:#ff00ff; + color:#ff00ff; } -.cs-imagegrid.flex.flex-around .grid { - justify-content: space-around; +.closeButton.button { + --label-display:none; } -.cs-imagegrid.maxheight figure img { - object-fit:contain; +.nextButton.button{ + top:40%; + --button-align:flex-start; + --button-direction: row-reverse; + right:60x; + +} +.previousButton.button{ + right:unset; + top:40%; + left:60x; } -.cs-imagegrid.crop figure img { - width:100%; - height:100%; - object-fit:cover; - display: block; +.popup_image { + width: 100%; + height: 100%; } -.cs-imagegrid.scheme-test figure img { - padding:0 0 6px 0; + +/* + +.cs-image.scheme-box { + padding:0 8px 12px 0; + margin:0 0 12px 0; } -.cs-imagegrid.scheme-test figure:hover img { - border-bottom:2px solid #ff00ff; - padding:0 0 4px 0; +.cs-image.scheme-box .frame { + margin-bottom:12px; } -.cs-imagegrid figure { - display: flex; - flex-direction: column; - padding:8px; +.cs-image.scheme-box .frame img { + border:1px solid var(--bordercolor); + box-shadow: 4px 4px 4px 0px rgba(156,150,156,0.72); } -.cs-imagegrid.masonry figure { - width: var(--max-width, 33%); - display: block; +.cs-image.scheme-left { + float:left; + margin:0 12px 12px 0; } -/* -.cs-imagegrid.crop figure { - display: block; - -}*/ +.cs-imagegrid.scheme-test .frame img { + padding:0 0 6px 0; +} -.cs-imagegrid figure img { - flex-shrink: 0; - flex-grow: 0; +.cs-imagegrid.scheme-test .frame:hover img { + border-bottom:2px solid #ff00ff; + padding:0 0 4px 0; } -.cs-imagegrid.img_centerh figure { + +.cs-imagegrid.img_centerh .frame { align-items: center; } -.cs-imagegrid.img_centerv figure { +.cs-imagegrid.img_centerv .frame { justify-content: center; } -.cs-imagegrid.img_topv figure { +.cs-imagegrid.img_topv .frame { justify-content: flex-start; } -.cs-imagegrid.img_bottomv figure { +.cs-imagegrid.img_bottomv .frame { justify-content: flex-end; } -/* auto-fit is an option here */ -.cs-imagegrid .grid { - display:grid; - grid-template-columns: repeat(auto-fill, minmax(var(--max-width, 240px),1fr)); - grid-gap:4px; +.cs-imagegrid.caption_top .frame { + flex-direction: column-reverse; } - -.cs-imagegrid.masonry .grid { - display:block; +.cs-imagegrid.caption_bottom .image, .cs-imagegrid.caption_top .image { + flex-grow: 1; } - -.cs-imagegrid.fit .grid { - grid-template-columns: repeat(auto-fit, var(--max-width)); -} - - -.cs-imagegrid figure { - position: relative; +.cs-imagegrid.caption_overlay .frame { + } -.cs-imagegrid.crop figure img { - max-height: var(--max-height); - overflow: hidden; +.cs-imagegrid.caption_overlay .caption { + position: absolute; + top:0; + left:0; + width: 100%; + height: 100%; + opacity: 0; } - -.cs-imagegrid.maxheight figure img { - max-height: var(--max-height); +.cs-imagegrid.caption_overlay .frame:hover .caption { + opacity: 1; } @@ -211,3 +248,5 @@ figure img { .scheme-overlay figure:hover figcaption { opacity: 1; } + +*/ diff --git a/_assets/css/jBox.all.css b/_assets/css/jBox.all.css new file mode 100644 index 0000000..8602347 --- /dev/null +++ b/_assets/css/jBox.all.css @@ -0,0 +1,1251 @@ +.jBox-wrapper { + text-align: left; + box-sizing: border-box; +} + +.jBox-title, +.jBox-content, +.jBox-container { + position: relative; + word-break: break-word; + box-sizing: border-box; +} + +.jBox-container { + background: #fff; +} + +.jBox-content { + padding: 8px 12px; + overflow-x: hidden; + overflow-y: auto; + transition: opacity .2s; +} + +.jBox-footer { + box-sizing: border-box; +} + +.jBox-Tooltip .jBox-container, +.jBox-Mouse .jBox-container { + border-radius: 4px; + box-shadow: 0 0 3px rgba(0, 0, 0, 0.25); +} + +.jBox-Tooltip .jBox-title, +.jBox-Mouse .jBox-title { + padding: 8px 10px 0; + font-weight: bold; +} + +.jBox-Tooltip.jBox-hasTitle .jBox-content, +.jBox-Mouse.jBox-hasTitle .jBox-content { + padding-top: 5px; +} + +.jBox-Mouse { + pointer-events: none; +} + +.jBox-pointer { + position: absolute; + overflow: hidden; + box-sizing: border-box; +} + +.jBox-pointer:after { + content: ''; + width: 20px; + height: 20px; + position: absolute; + background: #fff; + transform: rotate(45deg); + box-sizing: border-box; +} + +.jBox-pointer-top { + top: 0; +} + +.jBox-pointer-top:after { + left: 5px; + top: 6px; + box-shadow: -1px -1px 2px rgba(0, 0, 0, 0.15); +} + +.jBox-pointer-right { + right: 0; +} + +.jBox-pointer-right:after { + top: 5px; + right: 6px; + box-shadow: 1px -1px 2px rgba(0, 0, 0, 0.15); +} + +.jBox-pointer-left { + left: 0; +} + +.jBox-pointer-left:after { + top: 5px; + left: 6px; + box-shadow: -1px 1px 2px rgba(0, 0, 0, 0.15); +} + +.jBox-pointer-bottom { + bottom: 0; +} + +.jBox-pointer-bottom:after { + left: 5px; + bottom: 6px; + box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.15); +} + +.jBox-pointer-top, .jBox-pointer-bottom { + width: 30px; + height: 12px; +} + +.jBox-pointer-left, .jBox-pointer-right { + width: 12px; + height: 30px; +} + +.jBox-Modal .jBox-container { + border-radius: 4px; +} + +.jBox-Modal .jBox-container, .jBox-Modal.jBox-closeButton-box:before { + box-shadow: 0 3px 15px rgba(0, 0, 0, 0.4), 0 0 5px rgba(0, 0, 0, 0.4); +} + +.jBox-Modal .jBox-content { + padding: 15px 20px; +} + +.jBox-Modal .jBox-title { + border-radius: 4px 4px 0 0; + padding: 15px 20px; + background: #fafafa; + border-bottom: 1px solid #eee; +} + +.jBox-Modal.jBox-closeButton-title .jBox-title { + padding-right: 65px; +} + +.jBox-Modal .jBox-footer { + border-radius: 0 0 4px 4px; +} + +.jBox-closeButton { + z-index: 1; + cursor: pointer; + position: absolute; + box-sizing: border-box; +} + +.jBox-closeButton svg { + position: absolute; + top: 50%; + right: 50%; +} + +.jBox-closeButton path { + fill: #aaa; + transition: fill .2s; +} + +.jBox-closeButton:hover path { + fill: #888; +} + +.jBox-overlay .jBox-closeButton { + top: 0; + right: 0; + width: 40px; + height: 40px; +} + +.jBox-overlay .jBox-closeButton svg { + width: 20px; + height: 20px; + margin-top: -10px; + margin-right: -10px; +} + +.jBox-overlay .jBox-closeButton path { + fill: #ddd; +} + +.jBox-overlay .jBox-closeButton:hover path { + fill: #fff; +} + +.jBox-closeButton-title .jBox-closeButton { + top: 0; + right: 0; + bottom: 0; + width: 50px; +} + +.jBox-closeButton-title svg { + width: 12px; + height: 12px; + margin-top: -6px; + margin-right: -6px; +} + +.jBox-closeButton-box { + box-sizing: border-box; +} + +.jBox-closeButton-box .jBox-closeButton { + top: -8px; + right: -10px; + width: 24px; + height: 24px; + background: #fff; + border-radius: 50%; +} + +.jBox-closeButton-box .jBox-closeButton svg { + width: 10px; + height: 10px; + margin-top: -5px; + margin-right: -5px; +} + +.jBox-closeButton-box:before { + content: ''; + position: absolute; + top: -8px; + right: -10px; + width: 24px; + height: 24px; + border-radius: 50%; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); +} + +.jBox-closeButton-box.jBox-pointerPosition-top:before { + top: 5px; +} + +.jBox-closeButton-box.jBox-pointerPosition-right:before { + right: 2px; +} + +.jBox-Modal.jBox-hasTitle.jBox-closeButton-box .jBox-closeButton { + background: #fafafa; +} + +.jBox-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(0, 0, 0, 0.82); +} + +.jBox-footer { + background: #fafafa; + border-top: 1px solid #eee; + padding: 8px 10px; + border-radius: 0 0 3px 3px; +} + +body[class^="jBox-blockScroll-"], +body[class*=" jBox-blockScroll-"] { + overflow: hidden; +} + +.jBox-draggable { + cursor: move; +} + +@keyframes jBoxLoading { + to { + transform: rotate(360deg); + } +} + +.jBox-loading .jBox-content { + opacity: .2; +} + +.jBox-loading-spinner .jBox-content { + min-height: 38px !important; + min-width: 38px !important; + opacity: 0; +} + +.jBox-spinner { + box-sizing: border-box; + position: absolute; + top: 50%; + left: 50%; + width: 24px; + height: 24px; + margin-top: -12px; + margin-left: -12px; +} + +.jBox-spinner:before { + display: block; + box-sizing: border-box; + content: ''; + width: 24px; + height: 24px; + border-radius: 50%; + border: 2px solid rgba(0, 0, 0, 0.2); + border-top-color: rgba(0, 0, 0, 0.8); + animation: jBoxLoading .6s linear infinite; +} + +.jBox-countdown { + border-radius: 4px 4px 0 0; + z-index: 0; + background: #000; + opacity: .2; + position: absolute; + top: 0; + left: 0; + right: 0; + height: 3px; + overflow: hidden; +} + +.jBox-countdown-inner { + top: 0; + right: 0; + width: 100%; + height: 3px; + position: absolute; + background: #fff; +} + +[class^="jBox-animated-"], +[class*=" jBox-animated-"] { + animation-fill-mode: both; +} + +@keyframes jBox-tada { + 0% { + transform: scale(1); + } + 10%, + 20% { + transform: scale(0.8) rotate(-4deg); + } + 30%, + 50%, + 70%, + 90% { + transform: scale(1.2) rotate(4deg); + } + 40%, + 60%, + 80% { + transform: scale(1.2) rotate(-4deg); + } + 100% { + transform: scale(1) rotate(0); + } +} + +.jBox-animated-tada { + animation: jBox-tada 1s; +} + +@keyframes jBox-tadaSmall { + 0% { + transform: scale(1); + } + 10%, + 20% { + transform: scale(0.9) rotate(-2deg); + } + 30%, + 50%, + 70%, + 90% { + transform: scale(1.1) rotate(2deg); + } + 40%, + 60%, + 80% { + transform: scale(1.1) rotate(-2deg); + } + 100% { + transform: scale(1) rotate(0); + } +} + +.jBox-animated-tadaSmall { + animation: jBox-tadaSmall 1s; +} + +@keyframes jBox-flash { + 0%, + 50%, + 100% { + opacity: 1; + } + 25%, + 75% { + opacity: 0; + } +} + +.jBox-animated-flash { + animation: jBox-flash .5s; +} + +@keyframes jBox-shake { + 0%, + 100% { + transform: translateX(0); + } + 20%, + 60% { + transform: translateX(-6px); + } + 40%, + 80% { + transform: translateX(6px); + } +} + +.jBox-animated-shake { + animation: jBox-shake .4s; +} + +@keyframes jBox-pulseUp { + 0% { + transform: scale(1); + } + 50% { + transform: scale(1.15); + } + 100% { + transform: scale(1); + } +} + +.jBox-animated-pulseUp { + animation: jBox-pulseUp .25s; +} + +@keyframes jBox-pulseDown { + 0% { + transform: scale(1); + } + 50% { + transform: scale(0.85); + } + 100% { + transform: scale(1); + } +} + +.jBox-animated-pulseDown { + animation: jBox-pulseDown .25s; +} + +@keyframes jBox-popIn { + 0% { + transform: scale(0); + } + 50% { + transform: scale(1.1); + } + 100% { + transform: scale(1); + } +} + +.jBox-animated-popIn { + animation: jBox-popIn .25s; +} + +@keyframes jBox-popOut { + 0% { + transform: scale(1); + } + 50% { + transform: scale(1.1); + } + 100% { + transform: scale(0); + } +} + +.jBox-animated-popOut { + animation: jBox-popOut .25s; +} + +@keyframes jBox-fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +.jBox-animated-fadeIn { + animation: jBox-fadeIn .2s; +} + +@keyframes jBox-fadeOut { + 0% { + opacity: 1; + } + 100% { + opacity: 0; + } +} + +.jBox-animated-fadeOut { + animation: jBox-fadeOut .2s; +} + +@keyframes jBox-slideUp { + 0% { + transform: translateY(0); + } + 100% { + transform: translateY(-300px); + opacity: 0; + } +} + +.jBox-animated-slideUp { + animation: jBox-slideUp .4s; +} + +@keyframes jBox-slideRight { + 0% { + transform: translateX(0); + } + 100% { + transform: translateX(300px); + opacity: 0; + } +} + +.jBox-animated-slideRight { + animation: jBox-slideRight .4s; +} + +@keyframes jBox-slideDown { + 0% { + transform: translateY(0); + } + 100% { + transform: translateY(300px); + opacity: 0; + } +} + +.jBox-animated-slideDown { + animation: jBox-slideDown .4s; +} + +@keyframes jBox-slideLeft { + 0% { + transform: translateX(0); + } + 100% { + transform: translateX(-300px); + opacity: 0; + } +} + +.jBox-animated-slideLeft { + animation: jBox-slideLeft .4s; +} + +.jBox-Confirm .jBox-content { + text-align: center; + padding: 46px 35px; +} + +@media (max-width: 500px) { + .jBox-Confirm .jBox-content { + padding: 32px 20px; + } +} + +.jBox-Confirm-footer { + height: 46px; +} + +.jBox-Confirm-button { + display: block; + float: left; + cursor: pointer; + text-align: center; + width: 50%; + line-height: 46px; + height: 46px; + overflow: hidden; + padding: 0 10px; + transition: color .2s, background-color .2s; + box-sizing: border-box; +} + +.jBox-Confirm-button-cancel { + border-bottom-left-radius: 4px; + background: #ddd; + color: #666; +} + +.jBox-Confirm-button-cancel:hover, .jBox-Confirm-button-cancel:active { + background: #ccc; +} + +.jBox-Confirm-button-cancel:active { + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2); +} + +.jBox-Confirm-button-submit { + border-bottom-right-radius: 4px; + background: #7d0; + color: #fff; +} + +.jBox-Confirm-button-submit:hover, .jBox-Confirm-button-submit:active { + background: #6c0; +} + +.jBox-Confirm-button-submit:active { + box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2); +} + +.jBox-Image .jBox-container { + background-color: transparent; +} + +.jBox-Image .jBox-content { + padding: 0; + width: 100%; + height: 100%; +} + +.jBox-image-container { + background: center center no-repeat; + position: absolute; + width: 100%; + height: 100%; + opacity: 0; +} + +.jBox-image-label-wrapper { + position: absolute; + top: 100%; + left: 0; + right: 0; + height: 40px; + z-index: 100; + display: flex; +} + +.jBox-image-label-container { + position: relative; + flex: 1; +} + +.jBox-image-label { + box-sizing: border-box; + position: absolute; + left: 0; + bottom: 0; + width: 100%; + text-align: center; + color: #fff; + padding: 8px 12px; + font-size: 15px; + line-height: 24px; + transition: opacity .36s; + opacity: 0; + z-index: 0; + pointer-events: none; +} + +.jBox-image-label.expanded { + background: #000; +} + +.jBox-image-label:not(.expanded) { + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} + +.jBox-image-label.active { + opacity: 1; + pointer-events: all; +} + +@media (max-width: 600px) { + .jBox-image-label { + font-size: 13px; + } +} + +.jBox-image-pointer-next, +.jBox-image-pointer-prev { + flex-shrink: 0; + width: 40px; + height: 40px; + cursor: pointer; + opacity: .8; + transition: opacity .2s; + background: no-repeat center center url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ijc0LjcgMjI0IDE4LjcgMzIiPg0KPHBhdGggZmlsbD0iI2ZmZmZmZiIgZD0iTTkzLDIyNy40TDgwLjQsMjQwTDkzLDI1Mi42YzAuNCwwLjQsMC40LDEuMSwwLDEuNWwtMS42LDEuNmMtMC40LDAuNC0xLDAuNS0xLjUsMEw3NSwyNDAuN2MtMC40LTAuNC0wLjUtMSwwLTEuNWwxNC45LTE0LjljMC40LTAuNCwxLTAuNCwxLjUsMGwxLjYsMS42QzkzLjUsMjI2LjQsOTMuNCwyMjcsOTMsMjI3LjR6Ii8+DQo8L3N2Zz4=); + background-size: 11px auto; + user-select: none; + z-index: 1; +} + +.jBox-image-pointer-next:hover, +.jBox-image-pointer-prev:hover { + opacity: 1; +} + +.jBox-image-pointer-next { + transform: scaleX(-1); +} + +.jBox-image-counter-container { + flex-shrink: 0; + white-space: nowrap; + height: 40px; + line-height: 40px; + font-size: 13px; + color: #fff; + text-align: right; + display: none; +} + +.jBox-image-has-counter .jBox-image-counter-container { + display: block; +} + +.jBox-overlay.jBox-overlay-Image { + background: #000; +} + +.jBox-image-not-found { + background: #000; +} + +.jBox-image-not-found:before { + content: ''; + box-sizing: border-box; + display: block; + width: 80px; + height: 80px; + margin-top: -40px; + margin-left: -40px; + position: absolute; + top: 50%; + left: 50%; + border: 5px solid #222; + border-radius: 50%; +} + +.jBox-image-not-found:after { + content: ''; + display: block; + box-sizing: content-box; + z-index: auto; + width: 6px; + height: 74px; + margin-top: -37px; + margin-left: -3px; + position: absolute; + top: 50%; + left: 50%; + background: #222; + transform: rotateZ(45deg); + transform-origin: 50% 50% 0; +} + +.jBox-image-download-button-wrapper { + position: absolute; + top: -40px; + right: 35px; + height: 40px; + display: flex; + cursor: pointer; + opacity: .8; + transition: opacity .2s; +} + +.jBox-image-download-button-wrapper:hover { + opacity: 1; +} + +.jBox-image-download-button-icon { + width: 40px; + height: 40px; + background: center center no-repeat url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2NDAgNjQwIj48cGF0aCBmaWxsPSIjRkZGRkZGIiBkPSJNNDE2IDI1NnYtMTkyaC0xOTJ2MTkyaC0xNjBsMjU2IDI1NiAyNTYtMjU2aC0xNjB6TTAgNTc2aDY0MHY2NGgtNjQwdi02NHoiPjwvcGF0aD48L3N2Zz4=); + background-size: 60%; +} + +.jBox-image-download-button-text { + white-space: nowrap; + line-height: 40px; + padding: 0 10px 0 0; + color: #fff; + font-size: 14px; +} + +@keyframes jBoxImageLoading { + to { + transform: rotate(360deg); + } +} + +.jBox-image-loading:before { + content: ''; + position: absolute; + top: 50%; + left: 50%; + width: 32px; + height: 32px; + margin-top: -16px; + margin-left: -16px; + border: 4px solid #333; + border-bottom-color: #666; + animation: jBoxImageLoading 1.2s linear infinite; + border-radius: 50%; +} + +.jBox-Notice { + transition: margin .2s; +} + +.jBox-Notice .jBox-container { + border-radius: 4px; + box-shadow: inset 1px 1px 0 0 rgba(255, 255, 255, 0.25), inset -1px -1px 0 0 rgba(0, 0, 0, 0.1); +} + +.jBox-Notice .jBox-content { + border-radius: 4px; + padding: 12px 20px; +} + +@media (max-width: 768px) { + .jBox-Notice .jBox-content { + padding: 10px 15px; + } +} + +@media (max-width: 500px) { + .jBox-Notice .jBox-content { + padding: 8px 10px; + } +} + +.jBox-Notice.jBox-hasTitle .jBox-content { + padding-top: 5px; +} + +@media (max-width: 500px) { + .jBox-Notice.jBox-hasTitle .jBox-content { + padding-top: 0; + } +} + +.jBox-Notice.jBox-hasTitle .jBox-title { + padding: 12px 20px 0; + font-weight: bold; +} + +@media (max-width: 768px) { + .jBox-Notice.jBox-hasTitle .jBox-title { + padding: 10px 15px 0; + } +} + +@media (max-width: 500px) { + .jBox-Notice.jBox-hasTitle .jBox-title { + padding: 8px 10px 0; + } +} + +.jBox-Notice.jBox-closeButton-title .jBox-title { + padding-right: 55px; +} + +.jBox-Notice.jBox-closeButton-title.jBox-hasTitle .jBox-closeButton { + width: 40px; +} + +.jBox-Notice.jBox-Notice-black .jBox-container { + color: #fff; + background: #000; +} + +.jBox-Notice.jBox-Notice-black.jBox-closeButton-title.jBox-hasTitle .jBox-closeButton path, +.jBox-Notice.jBox-Notice-black.jBox-closeButton-title.jBox-hasTitle .jBox-closeButton:hover path { + fill: #fff; +} + +.jBox-Notice.jBox-Notice-gray .jBox-container { + color: #222; + background: #f6f6f6; +} + +.jBox-Notice.jBox-Notice-gray.jBox-closeButton-title.jBox-hasTitle .jBox-closeButton path, +.jBox-Notice.jBox-Notice-gray.jBox-closeButton-title.jBox-hasTitle .jBox-closeButton:hover path { + fill: #222; +} + +.jBox-Notice.jBox-Notice-red .jBox-container { + color: #fff; + background: #d00; +} + +.jBox-Notice.jBox-Notice-red.jBox-closeButton-title.jBox-hasTitle .jBox-closeButton path, +.jBox-Notice.jBox-Notice-red.jBox-closeButton-title.jBox-hasTitle .jBox-closeButton:hover path { + fill: #fff; +} + +.jBox-Notice.jBox-Notice-green .jBox-container { + color: #fff; + background: #5d0; +} + +.jBox-Notice.jBox-Notice-green.jBox-closeButton-title.jBox-hasTitle .jBox-closeButton path, +.jBox-Notice.jBox-Notice-green.jBox-closeButton-title.jBox-hasTitle .jBox-closeButton:hover path { + fill: #fff; +} + +.jBox-Notice.jBox-Notice-blue .jBox-container { + color: #fff; + background: #49d; +} + +.jBox-Notice.jBox-Notice-blue.jBox-closeButton-title.jBox-hasTitle .jBox-closeButton path, +.jBox-Notice.jBox-Notice-blue.jBox-closeButton-title.jBox-hasTitle .jBox-closeButton:hover path { + fill: #fff; +} + +.jBox-Notice.jBox-Notice-yellow .jBox-container { + color: #000; + background: #fd0; +} + +.jBox-Notice.jBox-Notice-yellow.jBox-closeButton-title.jBox-hasTitle .jBox-closeButton path, +.jBox-Notice.jBox-Notice-yellow.jBox-closeButton-title.jBox-hasTitle .jBox-closeButton:hover path { + fill: #fff; +} + +.jBox-NoticeFancy .jBox-content, +.jBox-NoticeFancy .jBox-title { + padding-left: 25px; +} + +.jBox-NoticeFancy.jBox-Notice-color .jBox-container { + color: #fff; + background: #000; +} + +.jBox-NoticeFancy.jBox-Notice-color .jBox-container:after { + content: ''; + position: absolute; + top: 0; + left: 0; + bottom: 0; + width: 8px; + border-radius: 4px 0 0 4px; + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.4) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.4) 50%, rgba(255, 255, 255, 0.4) 75%, transparent 75%, transparent); + background-size: 14px 14px; +} + +.jBox-NoticeFancy.jBox-Notice-black .jBox-container:after, +.jBox-NoticeFancy.jBox-Notice-gray .jBox-container:after { + background-color: #888; +} + +.jBox-NoticeFancy.jBox-Notice-red .jBox-container:after { + background-color: #e00; +} + +.jBox-NoticeFancy.jBox-Notice-green .jBox-container:after { + background-color: #6c0; +} + +.jBox-NoticeFancy.jBox-Notice-blue .jBox-container:after { + background-color: #49d; +} + +.jBox-NoticeFancy.jBox-Notice-yellow .jBox-container:after { + background-color: #fb0; +} + +.jBox-NoticeFancy .jBox-countdown { + left: 8px; + border-radius: 0 4px 0 0; +} + +.jBox-TooltipBorder .jBox-container, +.jBox-TooltipBorder .jBox-pointer:after { + border: 2px solid #49d; +} + +.jBox-TooltipBorder .jBox-pointer:after { + width: 22px; + height: 22px; +} + +.jBox-TooltipBorder .jBox-pointer-top, +.jBox-TooltipBorder .jBox-pointer-bottom { + width: 34px; + height: 13px; +} + +.jBox-TooltipBorder .jBox-pointer-top:after, +.jBox-TooltipBorder .jBox-pointer-bottom:after { + left: 6px; +} + +.jBox-TooltipBorder .jBox-pointer-left, +.jBox-TooltipBorder .jBox-pointer-right { + width: 13px; + height: 34px; +} + +.jBox-TooltipBorder .jBox-pointer-left:after, +.jBox-TooltipBorder .jBox-pointer-right:after { + top: 6px; +} + +.jBox-TooltipBorder.jBox-closeButton-box:before { + width: 28px; + height: 28px; + background: #49d; +} + +.jBox-TooltipBorderThick .jBox-container { + box-shadow: none; + border-radius: 8px; + border: 4px solid #ccc; +} + +.jBox-TooltipBorderThick .jBox-pointer:after { + box-shadow: none; + border: 4px solid #ccc; + width: 24px; + height: 24px; +} + +.jBox-TooltipBorderThick .jBox-pointer-top, +.jBox-TooltipBorderThick .jBox-pointer-bottom { + width: 38px; + height: 13px; +} + +.jBox-TooltipBorderThick .jBox-pointer-left, +.jBox-TooltipBorderThick .jBox-pointer-right { + width: 13px; + height: 38px; +} + +.jBox-TooltipBorderThick.jBox-closeButton-box:before { + width: 32px; + height: 32px; + background: #ccc; +} + +.jBox-TooltipDark .jBox-container { + border-radius: 4px; + background: #000; + color: #fff; + box-shadow: 0 0 6px rgba(0, 0, 0, 0.4); +} + +.jBox-TooltipDark .jBox-pointer:after { + background: #000; +} + +.jBox-TooltipDark .jBox-closeButton { + background: #000; +} + +.jBox-TooltipDark.jBox-closeButton-box:before { + box-shadow: 0 0 6px rgba(0, 0, 0, 0.4); +} + +.jBox-TooltipDark.jBox-closeButton-box .jBox-closeButton path { + fill: #ddd; +} + +.jBox-TooltipDark.jBox-closeButton-box .jBox-closeButton:hover path { + fill: #fff; +} + +.jBox-TooltipDark.jBox-closeButton-box .jBox-closeButton:active path { + fill: #bbb; +} + +.jBox-TooltipError { + pointer-events: none; +} + +.jBox-TooltipError .jBox-container { + border-radius: 2px; + background: #d00; + color: #fff; + font-weight: bold; + font-size: 13px; +} + +.jBox-TooltipError .jBox-content { + padding: 0 10px; + line-height: 28px; +} + +.jBox-TooltipError .jBox-pointer:after { + background: #d00; + width: 20px; + height: 20px; +} + +.jBox-TooltipError .jBox-pointer-top, .jBox-TooltipError .jBox-pointer-bottom { + width: 22px; + height: 8px; +} + +.jBox-TooltipError .jBox-pointer-right, .jBox-TooltipError .jBox-pointer-left { + width: 8px; + height: 22px; +} + +.jBox-TooltipError .jBox-pointer-top:after { + left: 1px; + top: 6px; +} + +.jBox-TooltipError .jBox-pointer-right:after { + top: 1px; + right: 6px; +} + +.jBox-TooltipError .jBox-pointer-bottom:after { + left: 1px; + bottom: 6px; +} + +.jBox-TooltipError .jBox-pointer-left:after { + top: 1px; + left: 6px; +} + +.jBox-TooltipSmall { + pointer-events: none; +} + +.jBox-TooltipSmall .jBox-container { + border-radius: 2px; +} + +.jBox-TooltipSmall .jBox-content { + padding: 0 10px; + line-height: 28px; +} + +.jBox-TooltipSmall .jBox-pointer:after { + width: 20px; + height: 20px; +} + +.jBox-TooltipSmall .jBox-pointer-top, .jBox-TooltipSmall .jBox-pointer-bottom { + width: 22px; + height: 8px; +} + +.jBox-TooltipSmall .jBox-pointer-right, .jBox-TooltipSmall .jBox-pointer-left { + width: 8px; + height: 22px; +} + +.jBox-TooltipSmall .jBox-pointer-top:after { + left: 1px; + top: 6px; +} + +.jBox-TooltipSmall .jBox-pointer-right:after { + top: 1px; + right: 6px; +} + +.jBox-TooltipSmall .jBox-pointer-bottom:after { + left: 1px; + bottom: 6px; +} + +.jBox-TooltipSmall .jBox-pointer-left:after { + top: 1px; + left: 6px; +} + +.jBox-TooltipSmallGray { + pointer-events: none; +} + +.jBox-TooltipSmallGray .jBox-container { + font-size: 13px; + line-height: 24px; + border-radius: 12px; + background-image: linear-gradient(to bottom, #fafafa, #f2f2f2); +} + +.jBox-TooltipSmallGray .jBox-content { + padding: 0 10px; +} + +.jBox-TooltipSmallGray .jBox-pointer:after { + width: 20px; + height: 20px; +} + +.jBox-TooltipSmallGray .jBox-pointer-top, .jBox-TooltipSmallGray .jBox-pointer-bottom { + width: 22px; + height: 8px; +} + +.jBox-TooltipSmallGray .jBox-pointer-left, .jBox-TooltipSmallGray .jBox-pointer-right { + width: 8px; + height: 22px; +} + +.jBox-TooltipSmallGray .jBox-pointer-top:after { + background: #fafafa; + left: 1px; + top: 6px; +} + +.jBox-TooltipSmallGray .jBox-pointer-right:after { + top: 1px; + right: 6px; +} + +.jBox-TooltipSmallGray .jBox-pointer-bottom:after { + background: #f2f2f2; + left: 1px; + bottom: 6px; +} + +.jBox-TooltipSmallGray .jBox-pointer-left:after { + top: 1px; + left: 6px; +} + +/*# sourceMappingURL=jBox.all.css.map */ diff --git a/_assets/css/jquery.mCustomScrollbar.min.css b/_assets/css/jquery.mCustomScrollbar.min.css new file mode 100644 index 0000000..6cd1177 --- /dev/null +++ b/_assets/css/jquery.mCustomScrollbar.min.css @@ -0,0 +1 @@ +.mCustomScrollbar{-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.mCustomScrollbar.mCS_no_scrollbar,.mCustomScrollbar.mCS_touch_action{-ms-touch-action:auto;touch-action:auto}.mCustomScrollBox{position:relative;overflow:hidden;height:100%;max-width:100%;outline:0;direction:ltr}.mCSB_container{overflow:hidden;width:auto;height:auto}.mCSB_inside>.mCSB_container{margin-right:30px}.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container{margin-right:0;margin-left:30px}.mCS-dir-rtl>.mCSB_inside>.mCSB_container.mCS_no_scrollbar_y.mCS_y_hidden{margin-left:0}.mCSB_scrollTools{position:absolute;width:16px;height:auto;left:auto;top:0;right:0;bottom:0;opacity:.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_outside+.mCSB_scrollTools{right:-26px}.mCS-dir-rtl>.mCSB_inside>.mCSB_scrollTools,.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{right:auto;left:0}.mCS-dir-rtl>.mCSB_outside+.mCSB_scrollTools{left:-26px}.mCSB_scrollTools .mCSB_draggerContainer{position:absolute;top:0;left:0;bottom:0;right:0;height:auto}.mCSB_scrollTools a+.mCSB_draggerContainer{margin:20px 0}.mCSB_scrollTools .mCSB_draggerRail{width:2px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}.mCSB_scrollTools .mCSB_dragger{cursor:pointer;width:100%;height:30px;z-index:1}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{position:relative;width:4px;height:100%;margin:0 auto;-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px;text-align:center}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{width:12px}.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:8px}.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonUp{display:block;position:absolute;height:20px;width:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools .mCSB_buttonDown{bottom:0}.mCSB_horizontal.mCSB_inside>.mCSB_container{margin-right:0;margin-bottom:30px}.mCSB_horizontal.mCSB_outside>.mCSB_container{min-height:100%}.mCSB_horizontal>.mCSB_container.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal{width:auto;height:16px;top:auto;right:0;bottom:0;left:0}.mCustomScrollBox+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox+.mCSB_scrollTools.mCSB_scrollTools_horizontal{bottom:-26px}.mCSB_scrollTools.mCSB_scrollTools_horizontal a+.mCSB_draggerContainer{margin:0 20px}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:2px;margin:7px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger{width:30px;height:100%;left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:4px;margin:6px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{height:12px;margin:2px auto}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:8px;margin:4px 0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft,.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{display:block;position:absolute;width:20px;height:100%;overflow:hidden;margin:0 auto;cursor:pointer}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonLeft{left:0}.mCSB_scrollTools.mCSB_scrollTools_horizontal .mCSB_buttonRight{right:0}.mCSB_container_wrapper{position:absolute;height:auto;width:auto;overflow:hidden;top:0;left:0;right:0;bottom:0;margin-right:30px;margin-bottom:30px}.mCSB_container_wrapper>.mCSB_container{padding-right:30px;padding-bottom:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:20px}.mCSB_vertical_horizontal>.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:20px}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden+.mCSB_scrollTools.mCSB_scrollTools_vertical{bottom:0}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools~.mCSB_scrollTools.mCSB_scrollTools_horizontal{right:0}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_scrollTools.mCSB_scrollTools_horizontal{left:20px}.mCS-dir-rtl>.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden+.mCSB_scrollTools~.mCSB_scrollTools.mCSB_scrollTools_horizontal{left:0}.mCS-dir-rtl>.mCSB_inside>.mCSB_container_wrapper{margin-right:0;margin-left:30px}.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden>.mCSB_container{padding-right:0}.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden>.mCSB_container{padding-bottom:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_y.mCS_y_hidden{margin-right:0;margin-left:0}.mCustomScrollBox.mCSB_vertical_horizontal.mCSB_inside>.mCSB_container_wrapper.mCS_no_scrollbar_x.mCS_x_hidden{margin-bottom:0}.mCSB_scrollTools,.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight,.mCSB_scrollTools .mCSB_buttonUp,.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{-webkit-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;-moz-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;-o-transition:opacity .2s ease-in-out,background-color .2s ease-in-out;transition:opacity .2s ease-in-out,background-color .2s ease-in-out}.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerRail,.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger_bar{-webkit-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;-moz-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;-o-transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out;transition:width .2s ease-out .2s,height .2s ease-out .2s,margin-left .2s ease-out .2s,margin-right .2s ease-out .2s,margin-top .2s ease-out .2s,margin-bottom .2s ease-out .2s,opacity .2s ease-in-out,background-color .2s ease-in-out}.mCS-autoHide>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide>.mCustomScrollBox~.mCSB_scrollTools{opacity:0;filter:"alpha(opacity=0)";-ms-filter:"alpha(opacity=0)"}.mCS-autoHide:hover>.mCustomScrollBox>.mCSB_scrollTools,.mCS-autoHide:hover>.mCustomScrollBox~.mCSB_scrollTools,.mCustomScrollBox:hover>.mCSB_scrollTools,.mCustomScrollBox:hover~.mCSB_scrollTools,.mCustomScrollbar>.mCustomScrollBox>.mCSB_scrollTools.mCSB_scrollTools_onDrag,.mCustomScrollbar>.mCustomScrollBox~.mCSB_scrollTools.mCSB_scrollTools_onDrag{opacity:1;filter:"alpha(opacity=100)";-ms-filter:"alpha(opacity=100)"}.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.4);filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.75);filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85);filter:"alpha(opacity=85)";-ms-filter:"alpha(opacity=85)"}.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9);filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCSB_scrollTools .mCSB_buttonDown,.mCSB_scrollTools .mCSB_buttonLeft,.mCSB_scrollTools .mCSB_buttonRight,.mCSB_scrollTools .mCSB_buttonUp{background-image:url(mCSB_buttons.png);background-repeat:no-repeat;opacity:.4;filter:"alpha(opacity=40)";-ms-filter:"alpha(opacity=40)"}.mCSB_scrollTools .mCSB_buttonUp{background-position:0 0}.mCSB_scrollTools .mCSB_buttonDown{background-position:0 -20px}.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -40px}.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -56px}.mCSB_scrollTools .mCSB_buttonDown:hover,.mCSB_scrollTools .mCSB_buttonLeft:hover,.mCSB_scrollTools .mCSB_buttonRight:hover,.mCSB_scrollTools .mCSB_buttonUp:hover{opacity:.75;filter:"alpha(opacity=75)";-ms-filter:"alpha(opacity=75)"}.mCSB_scrollTools .mCSB_buttonDown:active,.mCSB_scrollTools .mCSB_buttonLeft:active,.mCSB_scrollTools .mCSB_buttonRight:active,.mCSB_scrollTools .mCSB_buttonUp:active{opacity:.9;filter:"alpha(opacity=90)";-ms-filter:"alpha(opacity=90)"}.mCS-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:rgba(0,0,0,.85)}.mCS-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:rgba(0,0,0,.9)}.mCS-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px 0}.mCS-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -20px}.mCS-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -40px}.mCS-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -56px}.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail,.mCS-light-2.mCSB_scrollTools .mCSB_draggerRail{width:4px;background-color:#fff;background-color:rgba(255,255,255,.1);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:4px;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-2.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:4px;margin:6px auto}.mCS-light-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-light-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-light-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}.mCS-light-2.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px 0}.mCS-light-2.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -20px}.mCS-light-2.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -40px}.mCS-light-2.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -56px}.mCS-dark-2.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75);-webkit-border-radius:1px;-moz-border-radius:1px;border-radius:1px}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-2.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-2.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px 0}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -20px}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -40px}.mCS-dark-2.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -56px}.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail,.mCS-light-thick.mCSB_scrollTools .mCSB_draggerRail{width:4px;background-color:#fff;background-color:rgba(255,255,255,.1);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px;background-color:#fff;background-color:rgba(255,255,255,.75);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:4px;margin:6px 0}.mCS-dark-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:6px;margin:5px auto}.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-light-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-light-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-16px 0}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-16px -20px}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-20px -40px}.mCS-light-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-20px -56px}.mCS-dark-thick.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75);-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-96px 0}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-96px -20px}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-100px -40px}.mCS-dark-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-100px -56px}.mCS-light-thin.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.1)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:2px}.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%}.mCS-dark-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-thin.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:2px;margin:7px auto}.mCS-dark-thin.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-thin.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px 0}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -20px}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -40px}.mCS-dark-thin.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -56px}.mCS-rounded.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.15)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger,.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger,.mCS-rounded.mCSB_scrollTools .mCSB_dragger{height:14px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:14px;margin:0 1px}.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger{width:14px}.mCS-rounded-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{height:14px;margin:1px 0}.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{width:16px;height:16px;margin:-1px 0}.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded-dark.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:4px}.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded .mCSB_dragger_bar,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_dragger .mCSB_dragger_bar{height:16px;width:16px;margin:0 -1px}.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded-dark.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-rounded.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:4px;margin:6px 0}.mCS-rounded.mCSB_scrollTools .mCSB_buttonUp{background-position:0 -72px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonDown{background-position:0 -92px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonLeft{background-position:0 -112px}.mCS-rounded.mCSB_scrollTools .mCSB_buttonRight{background-position:0 -128px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.15)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-rounded-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-80px -72px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-80px -92px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-80px -112px}.mCS-rounded-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-80px -128px}.mCS-rounded-dots-dark.mCSB_scrollTools_vertical .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools_vertical .mCSB_draggerRail{width:4px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail{background-color:transparent;background-position:center}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools .mCSB_draggerRail{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAANElEQVQYV2NkIAAYiVbw//9/Y6DiM1ANJoyMjGdBbLgJQAX/kU0DKgDLkaQAvxW4HEvQFwCRcxIJK1XznAAAAABJRU5ErkJggg==);background-repeat:repeat-y;opacity:.3;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-rounded-dots-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-rounded-dots.mCSB_scrollTools_horizontal .mCSB_draggerRail{height:4px;margin:6px 0;background-repeat:repeat-x}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonUp{background-position:-16px -72px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonDown{background-position:-16px -92px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonLeft{background-position:-20px -112px}.mCS-rounded-dots.mCSB_scrollTools .mCSB_buttonRight{background-position:-20px -128px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_draggerRail{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAALElEQVQYV2NkIAAYSVFgDFR8BqrBBEifBbGRTfiPZhpYjiQFBK3A6l6CvgAAE9kGCd1mvgEAAAAASUVORK5CYII=)}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-96px -72px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-96px -92px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-100px -112px}.mCS-rounded-dots-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-100px -128px}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-repeat:repeat-y;background-image:-moz-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-webkit-gradient(linear,left top,right top,color-stop(0,rgba(255,255,255,.5)),color-stop(100%,rgba(255,255,255,0)));background-image:-webkit-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-o-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-ms-linear-gradient(left,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:linear-gradient(to right,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%)}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{background-repeat:repeat-x;background-image:-moz-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,rgba(255,255,255,.5)),color-stop(100%,rgba(255,255,255,0)));background-image:-webkit-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-o-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:-ms-linear-gradient(top,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%);background-image:linear-gradient(to bottom,rgba(255,255,255,.5) 0,rgba(255,255,255,0) 100%)}.mCS-3d-dark.mCSB_scrollTools_vertical .mCSB_dragger,.mCS-3d.mCSB_scrollTools_vertical .mCSB_dragger{height:70px}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger{width:70px}.mCS-3d-dark.mCSB_scrollTools,.mCS-3d.mCSB_scrollTools{opacity:1;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_draggerRail{-webkit-border-radius:16px;-moz-border-radius:16px;border-radius:16px}.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-3d.mCSB_scrollTools .mCSB_draggerRail{width:8px;background-color:#000;background-color:rgba(0,0,0,.2);box-shadow:inset 1px 0 1px rgba(0,0,0,.5),inset -1px 0 1px rgba(255,255,255,.2)}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#555}.mCS-3d-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:8px}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:8px;margin:4px 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.5),inset 0 -1px 1px rgba(255,255,255,.2)}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{width:100%;height:8px;margin:4px auto}.mCS-3d.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-3d.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-3d.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-3d.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-3d-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1);box-shadow:inset 1px 0 1px rgba(0,0,0,.1)}.mCS-3d-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail{box-shadow:inset 0 1px 1px rgba(0,0,0,.1)}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-3d-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCS-3d-thick-dark.mCSB_scrollTools,.mCS-3d-thick.mCSB_scrollTools{opacity:1;filter:"alpha(opacity=30)";-ms-filter:"alpha(opacity=30)"}.mCS-3d-thick-dark.mCSB_scrollTools,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer,.mCS-3d-thick.mCSB_scrollTools,.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px}.mCSB_inside+.mCS-3d-thick-dark.mCSB_scrollTools_vertical,.mCSB_inside+.mCS-3d-thick.mCSB_scrollTools_vertical{right:1px}.mCS-3d-thick-dark.mCSB_scrollTools_vertical,.mCS-3d-thick.mCSB_scrollTools_vertical{box-shadow:inset 1px 0 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.5)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal,.mCS-3d-thick.mCSB_scrollTools_horizontal{bottom:1px;box-shadow:inset 0 1px 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.5)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;box-shadow:inset 1px 0 0 rgba(255,255,255,.4);width:12px;margin:2px;position:absolute;height:auto;top:0;bottom:0;left:0;right:0}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 0 1px 0 rgba(255,255,255,.4);height:12px;width:auto}.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-thick.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#555}.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerContainer{background-color:#000;background-color:rgba(0,0,0,.05);box-shadow:inset 1px 1px 16px rgba(0,0,0,.1)}.mCS-3d-thick.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-3d-thick.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-3d-thick-dark.mCSB_scrollTools{box-shadow:inset 0 0 14px rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal{box-shadow:inset 0 1px 1px rgba(0,0,0,.1),inset 0 0 14px rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 1px 0 0 rgba(255,255,255,.4),inset -1px 0 0 rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{box-shadow:inset 0 1px 0 rgba(255,255,255,.4),inset 0 -1px 0 rgba(0,0,0,.2)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#777}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerContainer{background-color:#fff;background-color:rgba(0,0,0,.05);box-shadow:inset 1px 1px 16px rgba(0,0,0,.1)}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-minimal-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-minimal.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-3d-thick-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCSB_outside+.mCS-minimal-dark.mCSB_scrollTools_vertical,.mCSB_outside+.mCS-minimal.mCSB_scrollTools_vertical{right:0;margin:12px 0}.mCustomScrollBox.mCS-minimal+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal-dark+.mCSB_scrollTools+.mCSB_scrollTools.mCSB_scrollTools_horizontal,.mCustomScrollBox.mCS-minimal-dark+.mCSB_scrollTools.mCSB_scrollTools_horizontal{bottom:0;margin:0 12px}.mCS-dir-rtl>.mCSB_outside+.mCS-minimal-dark.mCSB_scrollTools_vertical,.mCS-dir-rtl>.mCSB_outside+.mCS-minimal.mCSB_scrollTools_vertical{left:0;right:auto}.mCS-minimal-dark.mCSB_scrollTools_vertical .mCSB_dragger,.mCS-minimal.mCSB_scrollTools_vertical .mCSB_dragger{height:50px}.mCS-minimal-dark.mCSB_scrollTools_horizontal .mCSB_dragger,.mCS-minimal.mCSB_scrollTools_horizontal .mCSB_dragger{width:50px}.mCS-minimal.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.2);filter:"alpha(opacity=20)";-ms-filter:"alpha(opacity=20)"}.mCS-minimal.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-minimal.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.5);filter:"alpha(opacity=50)";-ms-filter:"alpha(opacity=50)"}.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.2);filter:"alpha(opacity=20)";-ms-filter:"alpha(opacity=20)"}.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-minimal-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.5);filter:"alpha(opacity=50)";-ms-filter:"alpha(opacity=50)"}.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools .mCSB_draggerRail{width:6px;background-color:#000;background-color:rgba(0,0,0,.2)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-light-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px}.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-light-3.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:6px;margin:5px 0}.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_vertical.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{width:12px}.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-dark-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_dragger.mCSB_dragger_onDrag_expanded+.mCSB_draggerRail,.mCS-light-3.mCSB_scrollTools_horizontal.mCSB_scrollTools_onDrag_expand .mCSB_draggerContainer:hover .mCSB_draggerRail{height:12px;margin:2px 0}.mCS-light-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-light-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-dark-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-dark-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-dark-3.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1)}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-dark-3.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset.mCSB_scrollTools .mCSB_draggerRail{width:12px;background-color:#000;background-color:rgba(0,0,0,.2)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{width:6px;margin:3px 5px;position:absolute;height:auto;top:0;bottom:0;left:0;right:0}.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar,.mCS-inset.mCSB_scrollTools_horizontal .mCSB_dragger .mCSB_dragger_bar{height:6px;margin:5px 3px;position:absolute;width:auto;top:0;bottom:0;left:0;right:0}.mCS-inset-2-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-3.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools_horizontal .mCSB_draggerRail,.mCS-inset.mCSB_scrollTools_horizontal .mCSB_draggerRail{width:100%;height:12px;margin:2px 0}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset.mCSB_scrollTools .mCSB_buttonUp{background-position:-32px -72px}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset.mCSB_scrollTools .mCSB_buttonDown{background-position:-32px -92px}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset.mCSB_scrollTools .mCSB_buttonLeft{background-position:-40px -112px}.mCS-inset-2.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-3.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset.mCSB_scrollTools .mCSB_buttonRight{background-position:-40px -128px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-2-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.1)}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonUp,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonUp{background-position:-112px -72px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonDown,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonDown{background-position:-112px -92px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonLeft,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonLeft{background-position:-120px -112px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_buttonRight,.mCS-inset-dark.mCSB_scrollTools .mCSB_buttonRight{background-position:-120px -128px}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail,.mCS-inset-2.mCSB_scrollTools .mCSB_draggerRail{background-color:transparent;border-width:1px;border-style:solid;border-color:#fff;border-color:rgba(255,255,255,.2);-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mCS-inset-2-dark.mCSB_scrollTools .mCSB_draggerRail{border-color:#000;border-color:rgba(0,0,0,.2)}.mCS-inset-3.mCSB_scrollTools .mCSB_draggerRail{background-color:#fff;background-color:rgba(255,255,255,.6)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_draggerRail{background-color:#000;background-color:rgba(0,0,0,.6)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.75)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.85)}.mCS-inset-3.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-3.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#000;background-color:rgba(0,0,0,.9)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.75)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:hover .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.85)}.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger.mCSB_dragger_onDrag .mCSB_dragger_bar,.mCS-inset-3-dark.mCSB_scrollTools .mCSB_dragger:active .mCSB_dragger_bar{background-color:#fff;background-color:rgba(255,255,255,.9)} \ No newline at end of file diff --git a/_assets/css/layouts.css b/_assets/css/layouts.css new file mode 100644 index 0000000..a105108 --- /dev/null +++ b/_assets/css/layouts.css @@ -0,0 +1,155 @@ +:root { + --sitewidth:100%; + --inner-width:100%; + --inner-margin: 0 auto; + --header-fixed-height:0px; + --footer-fixed-height:0px; + --body-margin-top:0px; + --body-margin-bottom:0px; + --body-margin-left:0px; + --body-margin-right:0px; +} + +#header {grid-area:header;} +#subcol {grid-area:subcol;} +#maincol {grid-area:maincol;} +#xcol {grid-area:xcol;} +#content {grid-area:content;} +#content_top {grid-area:content_top;} +#content_bottom {grid-area:content_bottom;} +#footer {grid-area:footer;} +#topnav {grid-area:topnav;} +#bottomnav {grid-area:bottomnav;} +#maincol_top {grid-area: maincol_top} +#maincol_left{grid-area: maincol_left} +#maincol_right{grid-area: maincol_right} +#maincol_grid{grid-area: maincol_grid} +#maincol_bottom{grid-area: maincol_bottom} +#footer_left{grid-area: footer_left} +#footer_right{grid-area: footer_right} +#footer_middle{grid-area: footer_middle} + +#header, #topnav, #bottomnav, #xcol, #content, #footer { + align-items: stretch; +} + +body { + padding-top: calc(var(--header-fixed-height) + var(--body-margin-top)); + padding-bottom: calc(var(--footer-fixed-height) + var(--body-margin-bottom)); + padding-left:calc(var(--body-margin-left)); + padding-right:calc(var(--body-margin-right)); +} + +#ubercontainer { + position: relative; + min-height: 100%; + max-width: var(--sitewidth); + margin-left:auto; + margin-right:auto; + display: grid; + grid-template-areas: "header" "topnav" "content" "bottomnav" "footer"; + grid-template-rows: min-content min-content 1fr min-content min-content; + grid-gap:0; +} + +div.inner { + flex-grow: 1; + position: relative; +} + +/* spanning substitute */ +#ubercontainer > div > .inner { + max-width: var(--inner-width); + margin: var(--inner-margin); + min-height: 100%; + position: relative; +} + +#content { + min-height: 100%; + width: 100%; +} + +#content > .inner { + display: grid; + grid-template-areas: "content_top" "columns" "content_bottom"; + grid-template-rows: min-content 1fr min-content; + grid-gap:0; + min-height: 100%; +} + +#columns { + min-height: 100%; + display: grid; + grid-template-areas: "subcol maincol xcol"; + grid-gap:5px; + grid-template-columns: 220px 1fr 140px; +} + +#footer > .inner { + display: grid; + grid-template-areas: "footer_left footer_middle footer_right" ; + grid-template-columns: repeat(3, 1fr); +} + +#maincol { + display: grid; + grid-template-areas: "maincol_top maincol_top" "maincol_grid maincol_grid" "maincol_left maincol_right" "maincol_bottom maincol_bottom"; + grid-template-rows: min-content min-content min-content 1fr ; + grid-template-columns: repeat(2, 1fr); +} + +#maincol_grid { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(200px,1fr)); + grid-gap:10px; +} + +@media screen and (max-width: 800px) { + #columns { + grid-template-areas: "subcol maincol" "subcol xcol"; + grid-gap:5px; + grid-template-columns: 220px 1fr; + } + +} + +@media screen and (max-width:630px) { + + #columns , #footer > .inner, #maincol, #maincol_grid { + display:block; + } + +} + +/* Legacy mobile and mid stuff */ +.mobile { + display:none; +} + +.mid { + display:none; +} + +@media screen and (max-width:800px) { + + .mid { + display:block; + } + + .notmid { + display:none; + } +} + +@media screen and (max-width:630px) { + + .mobile { + display:block; + } + .notmobile { + display:none; + } + +} + diff --git a/_assets/css/menus.css b/_assets/css/menus.css index 9eb3c96..d77789e 100644 --- a/_assets/css/menus.css +++ b/_assets/css/menus.css @@ -56,7 +56,6 @@ hi li.hi a /*min-height:100%;*/ } - .cs-menu a, .cs-menu a:hover { white-space: nowrap; color:var(--link-color); @@ -65,7 +64,6 @@ hi li.hi a align-items: center; justify-content: center; /* needs formalising. This is the align mechanism as the a tags themselves are now flexboxes */ grid-gap: var(--menu-icon-gap); - width: 100%; text-decoration: none; padding:var(--menu-item-padding); color:var(--link-color); @@ -104,10 +102,11 @@ ul.submenu { min-width:100%; height: 0; overflow: hidden; - /*margin-top:4px; TO DO: menu gap? some sort of var */ + grid-template-columns: 1fr; + --menu-gap:0px; } -ul.submenu.open,ul.submenu.show { +ul.submenu.open, ul.submenu.show { height: auto; overflow: visible; } @@ -139,9 +138,10 @@ ul.submenu.open,ul.submenu.show { /* menu icons -Requires icons.css andnavbuttons.css +Requires icons.css and navbuttons.css + + -turn on with e.g. */ .cs-menu a b { display: var(--menu-icon-display); diff --git a/_assets/css/navbuttons.css b/_assets/css/navbuttons.css index 1dd971f..2b05f4a 100644 --- a/_assets/css/navbuttons.css +++ b/_assets/css/navbuttons.css @@ -5,83 +5,82 @@ Buttons get complicated through the problem of tags and inputs. Both of these get styled through the browser defaults and reset. To get around this and preserve inheritance, all buttons need to be wrapped in -another div which allows us to provide the consistency. +another div with a class of .button which allows us to provide the consistency. + +Styling should be applied to the .button element. To assign icons we can use icons or svgs. For icons, always use our standard icon vars, see icons.css. +Either way the icon needs a class of "icon". + +``` + + +
Button text +Button text
+ +
+``` + # Notes -There is no "width" for a whole button, only the icon. In common with much modern styling the widths -should be assigned by the containg div through grid or flexbox. +There is no "width" for a whole button, only the icon. In common with much modern styling, widths +should be assigned by the containing div through grid or flexbox. The buttons are always inline-blocks, so always style the surrounding div with grid or flexbox to control the whitespace between the them. -# Exmaples +# Usage + +Styling should be applied to `.button` with hover state `.button:hover` + +The label itself can also be styles with a selector of `.button label`. + +E.g. +``` +.scheme-button.button +.scheme-button.button label +.scheme-button.button:hover label +``` */ :root { - --link-color: inherit; - --button-border-color:initial; - --button-border-width:0px; - --button-border-style:solid; - --button-background-color: transparent; - --button-font:inherit; --icon-width: 32px; /* size of icon */ --icon-height: var(--icon-width); /* size of icon */ --label-gap: 10px; - --button-padding: 8px; - --button-label-padding: 4px; - --label-display:inline-block; - --icon-display:inline-block; - --button-display:inline-block;/* reserved */ - --button-align:center; /* align button contents with panel, e.g when stretch by grid or flexbox */ + --label-display:inline-block;/* Turn button or label off with inline-block|none */ + --icon-display:inline-block;/* ---- " ---- */ + --button-align:center; /* icon valign flex-start|center|flex-end */ + --button-direction: row;/* row or row reverse to align left or right */ + --link-color:inherit; + --label-align:left; } .button { - display: var(--button-display); + display: inline-block; cursor: pointer; - font-family:var(--button-font); - padding: var(--button-padding); + position: relative; color:var(--link-color); stroke:var(--link-color); fill:var(--link-color); - background-color: var(--button-background-color); - border-width: var(--button-border-width); - border-color: var(--button-border-color); - position: relative; - text-align: var(--button-align); -} - -.button.mobile { - --button-display:none; } -@media screen and (max-width: 630px) { - .button.mobile { - --button-display:inline-block; - } -} .button input { width: 100%; } -/* problem with popup labels is that they won't get the bg color */ -.button label { - background-color: var(--button-background-color); -} - .button a, .button a:hover, .button input { display:flex; color:inherit; stroke: inherit; fill:inherit; - justify-content: center; - align-content: center; - + justify-content: var(--button-align); + align-items: center; + flex-direction: var(--button-direction); + grid-gap:var(--label-gap); } .button svg { @@ -94,45 +93,17 @@ The buttons are always inline-blocks, so always style the surrounding div with g display: var(--icon-display); width:var(--icon-width); height:var(--icon-height); - line-height:var(--icon-height); font-size: var(--icon-height); - -} - -.button .icon + label { - margin-left:var(--label-gap); -} -.button.right .icon + label { - margin-left:0; - margin-right:var(--label-gap); } .button label { display: var(--label-display); line-height: var(--icon-height); - padding:var(--button-label-padding); - text-align: left; -} - - -.button.setting-align a { - justify-content: flex-start; -} - -.button.right.setting-align a { - justify-content: flex-start; -} - - -.button.right a { - flex-direction: row-reverse; -} - -.button.right label { - text-align: right; + text-align: var(--label-align); } +/** See auto button functionality */ .button > a:not(:first-child) { display: none; } @@ -140,10 +111,12 @@ The buttons are always inline-blocks, so always style the surrounding div with g .button.setting-popout{ --label-gap:0; } + .button.setting-popout a { display: block; position: relative; } + .button.setting-popout label { visibility: hidden; position: absolute; diff --git a/_assets/css/panels.css b/_assets/css/panels.css index 92d022f..6296a5a 100644 --- a/_assets/css/panels.css +++ b/_assets/css/panels.css @@ -1,24 +1,14 @@ -/* Static CSS for new var style grid styling of "items" */ +/* Static CSS for new var style grid styling of "items" + +NB I'm sure we can do this with the standard grid functionality + + */ :root { --item-grid-template-areas: "imageWrap" "title" "textWrap"; --item-grid-template-rows: min-content min-content auto; - --item-grid-auto-rows: auto; --item-gridgap: 10px; --item-rowgap: 0px; - --item-image-width: 40%; --item-grid-template-columns: 1fr; - --item-border-width:0; - --item-border-color:transparent; - --item-padding:0; - --item-title-margin:0; - --item-title-padding:0; - --item-title-background:none; - --item-background:none; - --item-image-margin:0; - --item-image-padding:0; - --item-image-border-width:0; - --item-image-border-color:transparent; - --item-text-font:inherit; } .imageWrap img { @@ -28,94 +18,26 @@ .textWrap > p { margin-top:0; - font:var(--item-text-font); } .item { display: grid; - grid-auto-flow: row; grid-template-areas: var(--item-grid-template-areas); grid-column-gap: var(--item-gridgap); grid-row-gap: var(--item-rowgap); grid-template-rows: var(--item-grid-template-rows); grid-template-columns: var(--item-grid-template-columns); - grid-auto-rows: var(--item-grid-auto-rows); - padding: var(--item-padding); - background: var(--item-background); -} - -.item.noimage { - --item-grid-template-areas: "title" "textWrap"; -} - -.item.noimage .imageWrap { - display: none; - --item-grid-template-areas: "title" "textWrap"; -} - - - -@media screen and (min-width: 600px) { - - .item.flow { - display: block; - } - - .item.flow:after { - content: " "; - display: block; - height: 0; - clear: both; - visibility: hidden; - overflow: hidden; - } - - .item.flow .imageWrap { - float:left; - margin-right: var(--item-gridgap); - margin-bottom: var(--item-gridgap); - width:var(--item-image-width); - } - - .item.flow.setting-right .imageWrap { - float:right; - margin-right: 0; - margin-left: var(--item-gridgap); - } - } .item .title { grid-area: title; - padding:var(--item-title-padding); - margin:var(--item-title-margin); - border:var(--item-border-width) solid var(--item-title-border-color); - background: var(--item-title-background); } .item .imageWrap { - grid-area: imageWrap; - padding:var(--item-image-margin); -} - -.item .imageWrap img { - padding:var(--item-image-padding); - border-width:var(--item-image-border-width); - border-style:solid; - border-color: var(--item-image-border-color); + grid-area: imageWrap;; } .item .textWrap{ grid-area: textWrap; - padding:var(--item-text-padding); - font:var(--item-text-font); -} - - - -@media screen and (max-width: 600px) { - .item .imageWrap { - margin-bottom: var(--item-gridgap); - } } diff --git a/_assets/css/reset.css b/_assets/css/reset.css index 2a74561..0d8a638 100644 --- a/_assets/css/reset.css +++ b/_assets/css/reset.css @@ -25,8 +25,8 @@ html { position:relative; } body { - height:100%; -webkit-font-smoothing: antialiased; + min-height:100%; } button, input[type=submit], input[type=button] { @@ -96,7 +96,7 @@ img { position:relative; } -.contentsection:after, .container:after, .clearfix:after { +.contentsection:after, .container:after, .clear:after, .clearfix:after { content: " "; display: block; height: 0; @@ -107,20 +107,6 @@ img { /* common elements */ -/* These were originally inserted just to get it to behave -when sizing. They're not a long term solution. I've taken them out and any issues -with the sizing will need to be resolved properly */ - -/*#footer { - overflow:hidden; -} - -#header { - overflow:hidden; - margin-top:0 !important; -} -*/ - img { display:block; } @@ -185,5 +171,8 @@ a:hover { color: inherit; } - - +/* Use inner divs to stop a host of issues like margin expanding etc */ +div.inner { + position: relative; + height:100%; +} diff --git a/_assets/css/schemes/grid-schemes.css b/_assets/css/schemes/grid-schemes.css new file mode 100644 index 0000000..dce10e9 --- /dev/null +++ b/_assets/css/schemes/grid-schemes.css @@ -0,0 +1,19 @@ +/*Set number of columns */ +.scheme-grid-fixedcols { + grid-template-columns: repeat(var(--grid-columns), 1fr); +} + +/*Fixed width */ +.scheme-grid-fixed { + grid-template-columns: repeat(auto-fit, var(--grid-width)); +} + + +.scheme-stretch > * { + --flex-stretch: 1; +} + +/* Exotica */ +.scheme-grid-test { + grid-template-columns: 200px repeat(auto-fit, minmax(var(--mingridcol),1fr)) 300px; +} diff --git a/_assets/css/schemes/panels-schemes.css b/_assets/css/schemes/panels-schemes.css index c425457..dc74fe2 100644 --- a/_assets/css/schemes/panels-schemes.css +++ b/_assets/css/schemes/panels-schemes.css @@ -10,45 +10,68 @@ There is also a box scheme showing how to pad the content for a boxed look */ -.setting-htop { +:root { + --item-image-width:40%; +} + +.item.setting-htop { --item-grid-template-areas: "title" "imageWrap" "textWrap"; } -.setting-noimage .imageWrap { +.item.setting-noimage .imageWrap { display: none; } @media screen and (min-width: 600px) { - .setting-left { + .item.setting-flowright, .item.setting-flowleft { + display: block; + } + + .item.setting-flowright .imageWrap, .item.setting-flowleft .imageWrap { + float:left; + width:var(--item-image-width); + margin-bottom:var(--item-gridgap); + margin-right:var(--item-gridgap); + + } + + .item.setting-flowright .imageWrap { + float:right; + margin-right:0; + margin-left:var(--item-gridgap); + } + + + .item.setting-left { --item-grid-template-areas: "imageWrap title" "imageWrap textWrap"; --item-grid-template-rows: minmax(0, min-content) auto; --item-grid-template-columns: var(--item-image-width) auto; } - .setting-right { + .item.setting-right { --item-grid-template-areas: "title imageWrap" "textWrap imageWrap"; --item-grid-template-rows: minmax(0, min-content) auto; --item-grid-template-columns: auto var(--item-image-width); } - .setting-htop.setting-left { + .item.setting-htop.setting-left { --item-grid-template-areas: "title title" "imageWrap textWrap"; } - .setting-htop.setting-right { + .item.setting-htop.setting-right { --item-grid-template-areas: "title title" "textWrap imageWrap"; } - .scheme-wide { + .item.scheme-wide { --item-image-width: 66%; } } @media screen and (max-width: 600px) { - .setting-munder { + .item.setting-munder { --item-grid-template-areas: "imageWrap" "title" "textWrap"; } } @@ -59,13 +82,16 @@ There is also a box scheme showing how to pad the content for a boxed look --panel-bg:#000000; } -.scheme-box { +.item.scheme-box { --padding:8px; - --item-padding:var(--padding); + padding:var(--padding); border-radius: 4px; - border:1px solid var(--panel-color); - --item-title-margin: calc(-1 * var(--padding)) calc(-1 *var(--padding)) var(--padding) calc(-1 *var(--padding)); - --item-title-padding:var(--padding); - --item-title-background: var(--panel-bg); - --title-color:var(--panel-color); + border:1px solid var(--panel-bg); +} + +.item.scheme-box .title { + margin: calc(-1 * var(--padding)) calc(-1 *var(--padding)) var(--padding) calc(-1 *var(--padding)); + padding:var(--padding); + background-color: var(--panel-bg); + color:var(--panel-color); } diff --git a/_assets/css/standard.css b/_assets/css/standard.css new file mode 100644 index 0000000..e69de29 diff --git a/_assets/css/tabs.css b/_assets/css/tabs.css index d193c49..62c4f61 100644 --- a/_assets/css/tabs.css +++ b/_assets/css/tabs.css @@ -59,15 +59,25 @@ border-style:solid; border-width:var(--tab-border-width); border-color:var(--tab-border-color); - border-top-left-radius: var(--tab-border-radius); - border-top-right-radius: var(--tab-border-radius); position: relative; - margin-left:-1px; - margin-bottom:-1px; z-index: 200; background-color: var(--tab-closed-color); } +.cs-tabs:not(.vertical, .accordian) .title { + margin-left:-1px; + margin-bottom:-1px; + border-top-left-radius: var(--tab-border-radius); + border-top-right-radius: var(--tab-border-radius); +} + +.cs-tabs.vertical .title, .cs-tabs.accordian .title { + border-top-width: 0; +} + +.cs-tabs.vertical .tab:first-of-type .title, .cs-tabs.accordian .tab:first-of-type .title { + border-top-width: var(--tab-border-width); +} .cs-tabs:not(.vertical, .accordian) .tab:first-of-type .title { margin-left:6px; @@ -99,14 +109,8 @@ margin-left:0px; } - .tab.state_open .item { visibility: visible; height: auto; display: block; } - - - - - diff --git a/_assets/css/text.css b/_assets/css/text.css index 6b32d68..3cf5698 100644 --- a/_assets/css/text.css +++ b/_assets/css/text.css @@ -4,16 +4,38 @@ Getting the inheritance right for this is a bit of a nightmare. -In the end, I went for the maybe inelegant solution of having title fonts and headings fonts -as separate entities. +In the end, I went for the maybe inelegant solution of having title fonts and headings fonts as separate entities. Otherwise there's just too much fiddling around. +## Usage + +Define standard vars as so + +--text-color:xxx; +--text-font: xxx; +--font-size:80%; + +Note that just defining a color or font with this name will take care of this. + +To set title or heading styling, redfined the VARs. DON'T set the values explicity + +E.g. + +.scheme-crosshead { + --heading-margin:0 0 1em 0; + --heading-font: var(--title-font); + --heading-font-weight:300; + --heading-font-align:center; + --heading-color:teal; +} + */ :root { --text-color:initial; --text-font: initial; --font-size:100%; + --title-font:inherit; --title-font-weight:bold; --title-color:inherit; @@ -36,11 +58,6 @@ Otherwise there's just too much fiddling around. --heading-padding:0; --link-color:inherit; - --button-border-color:var(--link-color); - --button-border-width:1px; - --button-background-color: transparent; - --button-border-style:solid; - --button-padding: 8px; } body { @@ -75,7 +92,6 @@ a, a:hover, input.button, input.button:hover { color: var(--text-color); } - h1, h2, h3, h4, h5, h6 { margin: var(--heading-margin); font-family: var(--heading-font); @@ -93,6 +109,7 @@ h1, h2, h3, h4, h5, h6 { .textWrap, .cs-text { --heading-font: var(--title-font); --heading-margin: 0 0 0.2em 0; + --heading-font-weight: bold; } .textWrap h1, .cs-text h1 { diff --git a/_assets/images/arrows-fullscreen.svg b/_assets/images/arrows-fullscreen.svg index dc0acc3..de4386d 100644 --- a/_assets/images/arrows-fullscreen.svg +++ b/_assets/images/arrows-fullscreen.svg @@ -1,3 +1,3 @@ - - + + \ No newline at end of file diff --git a/_assets/images/buttons.xml b/_assets/images/buttons.xml index 4f5c4c7..314eb7d 100644 --- a/_assets/images/buttons.xml +++ b/_assets/images/buttons.xml @@ -6,5 +6,7 @@ - + + + \ No newline at end of file diff --git a/_assets/images/menu.svg b/_assets/images/menu.svg index 412582e..90b4660 100644 --- a/_assets/images/menu.svg +++ b/_assets/images/menu.svg @@ -1,3 +1 @@ - - - \ No newline at end of file + \ No newline at end of file diff --git a/_assets/images/open_in_full.svg b/_assets/images/open_in_full.svg new file mode 100644 index 0000000..46d728b --- /dev/null +++ b/_assets/images/open_in_full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/_assets/images/open_in_full_black_24dp.svg b/_assets/images/open_in_full_black_24dp.svg deleted file mode 100644 index 86df2c5..0000000 --- a/_assets/images/open_in_full_black_24dp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/_assets/js/flickity-fade.js b/_assets/js/flickity-fade.js new file mode 100644 index 0000000..29532e3 --- /dev/null +++ b/_assets/js/flickity-fade.js @@ -0,0 +1,248 @@ +/** + * Flickity fade v2.0.0 + * Fade between Flickity slides + */ + +( function( window, factory ) { + // universal module definition + if ( typeof module == 'object' && module.exports ) { + // CommonJS + module.exports = factory( + require('flickity'), + require('fizzy-ui-utils'), + ); + } else { + // browser global + factory( + window.Flickity, + window.fizzyUIUtils, + ); + } + +}( typeof window != 'undefined' ? window : this, function factory( Flickity, utils ) { + +// ---- Slide ---- // + +let Slide = Flickity.Slide; + +Slide.prototype.renderFadePosition = function() { +}; + +Slide.prototype.setOpacity = function( alpha ) { + this.cells.forEach( ( cell ) => { + cell.element.style.opacity = alpha; + } ); +}; + +// ---- Flickity ---- // + +Flickity.create.fade = function() { + this.fadeIndex = this.selectedIndex; + this.prevSelectedIndex = this.selectedIndex; + this.on( 'select', this.onSelectFade ); + this.on( 'dragEnd', this.onDragEndFade ); + this.on( 'settle', this.onSettleFade ); + this.on( 'activate', this.onActivateFade ); + this.on( 'deactivate', this.onDeactivateFade ); +}; + +let proto = Flickity.prototype; + +let updateSlides = proto.updateSlides; +proto.updateSlides = function() { + updateSlides.apply( this, arguments ); + if ( !this.options.fade ) return; + + this.slides.forEach( ( slide, i ) => { + // position cells at selected target + let slideTargetX = slide.target - slide.x; + let firstCellX = slide.cells[0].x; + slide.cells.forEach( ( cell ) => { + let targetX = cell.x - firstCellX - slideTargetX; + this._renderCellPosition( cell, targetX ); + } ); + // set initial opacity + let alpha = i === this.selectedIndex ? 1 : 0; + slide.setOpacity( alpha ); + } ); +}; + +/* ---- events ---- */ + +proto.onSelectFade = function() { + // in case of resize, keep fadeIndex within current count + this.fadeIndex = Math.min( this.prevSelectedIndex, this.slides.length - 1 ); + this.prevSelectedIndex = this.selectedIndex; +}; + +proto.onSettleFade = function() { + delete this.didDragEnd; + if ( !this.options.fade ) return; + + // set full and 0 opacity on selected & faded slides + this.selectedSlide.setOpacity( 1 ); + let fadedSlide = this.slides[ this.fadeIndex ]; + if ( fadedSlide && this.fadeIndex !== this.selectedIndex ) { + this.slides[ this.fadeIndex ].setOpacity( 0 ); + } +}; + +proto.onDragEndFade = function() { + // set flag + this.didDragEnd = true; +}; + +proto.onActivateFade = function() { + if ( this.options.fade ) { + this.element.classList.add('is-fade'); + } +}; + +proto.onDeactivateFade = function() { + if ( !this.options.fade ) return; + + this.element.classList.remove('is-fade'); + // reset opacity + this.slides.forEach( ( slide ) => { + slide.setOpacity(''); + } ); +}; + +/* ---- position & fading ---- */ + +let positionSlider = proto.positionSlider; +proto.positionSlider = function() { + if ( !this.options.fade ) { + positionSlider.apply( this, arguments ); + return; + } + + this.fadeSlides(); + this.dispatchScrollEvent(); +}; + +let positionSliderAtSelected = proto.positionSliderAtSelected; +proto.positionSliderAtSelected = function() { + if ( this.options.fade ) { + // position fade slider at origin + this.setTranslateX( 0 ); + } + positionSliderAtSelected.apply( this, arguments ); +}; + +proto.fadeSlides = function() { + if ( this.slides.length < 2 ) return; + + // get slides to fade-in & fade-out + let indexes = this.getFadeIndexes(); + let fadeSlideA = this.slides[ indexes.a ]; + let fadeSlideB = this.slides[ indexes.b ]; + let distance = this.wrapDifference( fadeSlideA.target, fadeSlideB.target ); + let progress = this.wrapDifference( fadeSlideA.target, -this.x ); + progress /= distance; + + fadeSlideA.setOpacity( 1 - progress ); + fadeSlideB.setOpacity( progress ); + + // hide previous slide + let fadeHideIndex = indexes.a; + if ( this.isDragging ) { + fadeHideIndex = progress > 0.5 ? indexes.a : indexes.b; + } + let isNewHideIndex = this.fadeHideIndex !== undefined && + this.fadeHideIndex !== fadeHideIndex && + this.fadeHideIndex !== indexes.a && + this.fadeHideIndex !== indexes.b; + if ( isNewHideIndex ) { + // new fadeHideSlide set, hide previous + this.slides[ this.fadeHideIndex ].setOpacity( 0 ); + } + this.fadeHideIndex = fadeHideIndex; +}; + +proto.getFadeIndexes = function() { + if ( !this.isDragging && !this.didDragEnd ) { + return { + a: this.fadeIndex, + b: this.selectedIndex, + }; + } + if ( this.options.wrapAround ) { + return this.getFadeDragWrapIndexes(); + } else { + return this.getFadeDragLimitIndexes(); + } +}; + +proto.getFadeDragWrapIndexes = function() { + let distances = this.slides.map( function( slide, i ) { + return this.getSlideDistance( -this.x, i ); + }, this ); + let absDistances = distances.map( function( distance ) { + return Math.abs( distance ); + } ); + let minDistance = Math.min( ...absDistances ); + let closestIndex = absDistances.indexOf( minDistance ); + let distance = distances[ closestIndex ]; + let len = this.slides.length; + + let delta = distance >= 0 ? 1 : -1; + return { + a: closestIndex, + b: utils.modulo( closestIndex + delta, len ), + }; +}; + +proto.getFadeDragLimitIndexes = function() { + // calculate closest previous slide + let dragIndex = 0; + for ( let i = 0; i < this.slides.length - 1; i++ ) { + let slide = this.slides[i]; + if ( -this.x < slide.target ) { + break; + } + dragIndex = i; + } + return { + a: dragIndex, + b: dragIndex + 1, + }; +}; + +proto.wrapDifference = function( a, b ) { + let diff = b - a; + if ( !this.options.wrapAround ) return diff; + + let diffPlus = diff + this.slideableWidth; + let diffMinus = diff - this.slideableWidth; + if ( Math.abs( diffPlus ) < Math.abs( diff ) ) { + diff = diffPlus; + } + if ( Math.abs( diffMinus ) < Math.abs( diff ) ) { + diff = diffMinus; + } + return diff; +}; + +// ---- wrapAround ---- // + +let _updateWrapShiftCells = proto._updateWrapShiftCells; +proto._updateWrapShiftCells = function() { + if ( this.options.fade ) { + // update isWrapping + this.isWrapping = this.getIsWrapping(); + } else { + _updateWrapShiftCells.apply( this, arguments ); + } +}; + +let shiftWrapCells = proto.shiftWrapCells; +proto.shiftWrapCells = function() { + if ( !this.options.fade ) { + shiftWrapCells.apply( this, arguments ); + } +}; + +return Flickity; + +} ) ); \ No newline at end of file diff --git a/_assets/js/flickity.pkgd.min.js b/_assets/js/flickity.pkgd.min.js index 78ce275..4b01ac8 100644 --- a/_assets/js/flickity.pkgd.min.js +++ b/_assets/js/flickity.pkgd.min.js @@ -1,56 +1,29 @@ /*! - * Flickity PACKAGED v2.3.0 + * Flickity PACKAGED v3.0.0 * Touch, responsive, flickable carousels * * Licensed GPLv3 for open source use * or Flickity Commercial License for commercial use * * https://flickity.metafizzy.co - * Copyright 2015-2021 Metafizzy + * Copyright 2015-2022 Metafizzy */ -(function(e,i){if(typeof define=="function"&&define.amd){define("jquery-bridget/jquery-bridget",["jquery"],function(t){return i(e,t)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("jquery"))}else{e.jQueryBridget=i(e,e.jQuery)}})(window,function t(e,r){"use strict";var o=Array.prototype.slice;var i=e.console;var u=typeof i=="undefined"?function(){}:function(t){i.error(t)};function n(h,s,c){c=c||r||e.jQuery;if(!c){return}if(!s.prototype.option){s.prototype.option=function(t){if(!c.isPlainObject(t)){return}this.options=c.extend(true,this.options,t)}}c.fn[h]=function(t){if(typeof t=="string"){var e=o.call(arguments,1);return i(this,t,e)}n(this,t);return this};function i(t,r,o){var a;var l="$()."+h+'("'+r+'")';t.each(function(t,e){var i=c.data(e,h);if(!i){u(h+" not initialized. Cannot call methods, i.e. "+l);return}var n=i[r];if(!n||r.charAt(0)=="_"){u(l+" is not a valid method");return}var s=n.apply(i,o);a=a===undefined?s:a});return a!==undefined?a:t}function n(t,n){t.each(function(t,e){var i=c.data(e,h);if(i){i.option(n);i._init()}else{i=new s(e,n);c.data(e,h,i)}})}a(c)}function a(t){if(!t||t&&t.bridget){return}t.bridget=n}a(r||e.jQuery);return n});(function(t,e){if(typeof define=="function"&&define.amd){define("ev-emitter/ev-emitter",e)}else if(typeof module=="object"&&module.exports){module.exports=e()}else{t.EvEmitter=e()}})(typeof window!="undefined"?window:this,function(){function t(){}var e=t.prototype;e.on=function(t,e){if(!t||!e){return}var i=this._events=this._events||{};var n=i[t]=i[t]||[];if(n.indexOf(e)==-1){n.push(e)}return this};e.once=function(t,e){if(!t||!e){return}this.on(t,e);var i=this._onceEvents=this._onceEvents||{};var n=i[t]=i[t]||{};n[e]=true;return this};e.off=function(t,e){var i=this._events&&this._events[t];if(!i||!i.length){return}var n=i.indexOf(e);if(n!=-1){i.splice(n,1)}return this};e.emitEvent=function(t,e){var i=this._events&&this._events[t];if(!i||!i.length){return}i=i.slice(0);e=e||[];var n=this._onceEvents&&this._onceEvents[t];for(var s=0;s
' + spinnerDelay: 300, // Milliseconds to wait until spinner appears + spinnerReposition: true // Repositions jBox when the spinner is added or removed + }, + cancelAjaxOnClose: true, // Cancels the ajax call when jBox closes and it hasn't finished loading yet + + // Position + target: null, // The jQuery selector to the target element where jBox will be opened. If no element is found, jBox will use the attached element as target + position: { + x: 'center', // Horizontal position, use a number, 'left', 'right' or 'center' + y: 'center' // Vertical position, use a number, 'top', 'bottom' or 'center' + }, + outside: null, // Use 'x', 'y', or 'xy' to move your jBox outside of the target element + offset: 0, // Offset to final position, you can set different values for x and y with an object, e.g. {x: 20, y: 10} + attributes: { // Note that attributes can only be 'left' or 'right' when using numbers for position, e.g. {x: 300, y: 20} + x: 'left', // Horizontal position, use 'left' or 'right' + y: 'top' // Vertical position, use 'top' or 'bottom' + }, + fixed: false, // Your jBox will stay on position when scrolling + adjustPosition: true, // Adjusts your jBoxes position if there is not enough space, use 'flip', 'move' or true for both. This option overrides the reposition options + adjustTracker: false, // By default jBox adjusts its position when it opens or when the window size changes, set to true to also adjust when scrolling + adjustDistance: 5, // The minimal distance to the viewport edge while adjusting. Use an object to set different values, e.g. {top: 50, right: 5, bottom: 20, left: 5} + reposition: true, // Calculates new position when the window-size changes + repositionOnOpen: true, // Calculates new position each time jBox opens (rather than only when it opens the first time) + repositionOnContent: true, // Calculates new position when the content changes with .setContent() or .setTitle() + holdPosition: true, // Keeps current position if space permits. Applies only to 'Modal' type. + + // Pointer + pointer: false, // Your pointer will always point towards the target element, so the option outside needs to be 'x' or 'y'. By default the pointer is centered, set a position to move it to any side. You can also add an offset, e.g. 'left:30' or 'center:-20' + pointTo: 'target', // Setting something else than 'target' will add a pointer even if there is no target element set or found. Use 'top', 'right', 'bottom' or 'left' + + // Animations + fade: 180, // Fade duration in ms, set to 0 or false to disable + animation: null, // Animation when opening or closing, use 'pulse', 'zoomIn', 'zoomOut', 'move', 'slide', 'flip', 'tada' (CSS inspired from Daniel Edens Animate.css: http://daneden.me/animate) + + // Appearance + theme: 'Default', // Set a jBox theme class + addClass: null, // Adds classes to the wrapper + overlay: false, // Adds an overlay to hide page content when jBox opens (adjust color and opacity with CSS) + overlayClass: null, // Add a class name to the overlay + zIndex: 10000, // Use a high z-index, or set to 'auto' to bring to front on open + + // Delays + delayOpen: 0, // Delay opening in ms. Note that the delay will be ignored if your jBox didn't finish closing + delayClose: 0, // Delay closing in ms. Nnote that there is always a closing delay of at least 10ms to ensure jBox won't be closed when opening right away + + // Closing + closeOnEsc: false, // Close jBox when pressing [esc] key + closeOnClick: false, // Close jBox with mouseclick. Use true (click anywhere), 'box' (click on jBox itself), 'overlay' (click on the overlay), 'body' (click anywhere but jBox) + closeOnMouseleave: false, // Close jBox when the mouse leaves the jBox area or the area of the attached element + closeButton: false, // Adds a close button to your jBox. Use 'title', 'box', 'overlay' or true (true will add the button to the overlay, title or the jBox itself, in that order if any of those elements can be found) + + // Other options + appendTo: jQuery('body'), // The element your jBox will be appended to. Any other element than jQuery('body') is only useful for fixed positions or when position values are numbers + createOnInit: false, // Creates jBox and makes it available in DOM when it's being initialized, otherwise it will be created when it opens for the first time + blockScroll: false, // Blocks scrolling when jBox is open + blockScrollAdjust: true, // Adjust page elements to avoid content jumps when scrolling is blocked. See more here: https://github.com/StephanWagner/unscroll + draggable: false, // Make your jBox draggable (use 'true', 'title' or provide an element as handle) (inspired from Chris Coyiers CSS-Tricks http://css-tricks.com/snippets/jquery/draggable-without-jquery-ui/) + dragOver: true, // When you have multiple draggable jBoxes, the one you select will always move over the other ones + autoClose: false, // Time in ms when jBox will close automatically after it was opened + delayOnHover: false, // Delay auto-closing while mouse is hovered + showCountdown: false, // Display a nice progress-indicator when autoClose is enabled + + // Audio // You can use the integrated audio function whenever you'd like to play an audio file, e.g. onInit: function () { this.audio('url_to_audio_file_without_file_extension', 75); } + preloadAudio: true, // Preloads the audio files set in option audio. You can also preload other audio files, e.g. ['src_to_file.mp3', 'src_to_file.ogg'] + audio: null, // The URL to an audio file to play when jBox opens. Set the URL without file extension, jBox will look for an .mp3 and .ogg file. To play audio when jBox closes, use an object, e.g. {open: 'src_to_audio1', close: 'src_to_audio2'} + volume: 100, // The volume in percent. To have different volumes for opening and closeing, use an object, e.g. {open: 75, close: 100} + + // Events // Note that you can use 'this' in all event functions, it refers to your jBox object (e.g. onInit: function () { this.open(); }) + onInit: null, // Fired when jBox is initialized + onAttach: null, // Fired when jBox attached itself to elements, the attached element will be passed as a parameter, e.g. onAttach: function (element) { element.css({color: 'red'}); } + onPosition: null, // Fired when jBox is positioned + onCreated: null, // Fired when jBox is created and availible in DOM + onOpen: null, // Fired when jBox opens + onOpenComplete: null, // Fired when jBox is completely open (when fading is finished) + onClose: null, // Fired when jBox closes + onCloseComplete: null, // Fired when jBox is completely closed (when fading is finished) + onDragStart: null, // Fired when dragging starts + onDragEnd: null // Fired when dragging finished + }; + + + // Default plugin options + + this._pluginOptions = { + + // Default options for tooltips + 'Tooltip': { + getContent: 'title', + trigger: 'mouseenter', + position: { + x: 'center', + y: 'top' + }, + outside: 'y', + pointer: true + }, + + // Default options for mouse tooltips + 'Mouse': { + responsiveWidth: false, + responsiveHeight: false, + adjustPosition: 'flip', + target: 'mouse', + trigger: 'mouseenter', + position: { + x: 'right', + y: 'bottom' + }, + outside: 'xy', + offset: 5 + }, + + // Default options for modal windows + 'Modal': { + target: jQuery(window), + fixed: true, + blockScroll: true, + closeOnEsc: true, + closeOnClick: 'overlay', + closeButton: true, + overlay: true, + animation: 'zoomIn' + }, + }; + + + // Merge options + + this.options = jQuery.extend(true, this.options, this._pluginOptions[type] ? this._pluginOptions[type] : jBox._pluginOptions[type], options); + + + // Set the jBox type + + jQuery.type(type) == 'string' && (this.type = type); + + + // Checks if the user is on a touch device, borrowed from https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touchevents.js + + this.isTouchDevice = (function () { + var prefixes = ' -webkit- -moz- -o- -ms- '.split(' '); + var mq = function (query) { + return window.matchMedia(query).matches; + } + + if (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) { + return true; + } + + var query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join(''); + return mq(query); + })(); + + + // Add close event for body click when we are on touch device and jBox triggers on mouseenter + + if (this.isTouchDevice && this.options.trigger === 'mouseenter' && this.options.closeOnClick === false) { + this.options.closeOnClick = 'body'; + } + + + // Local function to fire events + + this._fireEvent = function (event, pass) + { + this.options['_' + event] && (this.options['_' + event].bind(this))(pass); + this.options[event] && (this.options[event].bind(this))(pass); + }; + + + // Get a unique jBox ID + + this.options.id === null && (this.options.id = 'jBox' + jBox._getUniqueID()); + this.id = this.options.id; + + + // Correct impossible options + + ((this.options.position.x == 'center' && this.options.outside == 'x') || (this.options.position.y == 'center' && this.options.outside == 'y')) && (this.options.outside = null); + this.options.pointTo == 'target' && (!this.options.outside || this.options.outside == 'xy') && (this.options.pointer = false); + + + // Correct multiple choice options + + jQuery.type(this.options.offset) != 'object' ? (this.options.offset = {x: this.options.offset, y: this.options.offset}) : (this.options.offset = jQuery.extend({x: 0, y: 0}, this.options.offset)); + jQuery.type(this.options.adjustDistance) != 'object' ? (this.options.adjustDistance = {top: this.options.adjustDistance, right: this.options.adjustDistance, bottom: this.options.adjustDistance, left: this.options.adjustDistance}) : (this.options.adjustDistance = jQuery.extend({top: 5, left: 5, right: 5, bottom: 5}, this.options.adjustDistance)); + + + // Save default outside position + + this.outside = this.options.outside && this.options.outside != 'xy' ? this.options.position[this.options.outside] : false; + + + // Save where the jBox is aligned to + + this.align = this.outside ? this.outside : (this.options.position.y != 'center' && jQuery.type(this.options.position.y) != 'number' ? this.options.position.x : (this.options.position.x != 'center' && jQuery.type(this.options.position.x) != 'number' ? this.options.position.y : this.options.attributes.x)); + + + // Adjust option zIndex + + jBox.zIndexMax = Math.max(jBox.zIndexMax || 0, this.options.zIndex === 'auto' ? 10000 : this.options.zIndex); + if (this.options.zIndex === 'auto') { + this.adjustZIndexOnOpen = true; + jBox.zIndexMax += 2; + this.options.zIndex = jBox.zIndexMax; + this.trueModal = this.options.overlay; + } + + // Internal positioning functions + + this._getOpp = function (opp) { return {left: 'right', right: 'left', top: 'bottom', bottom: 'top', x: 'y', y: 'x'}[opp]; }; + this._getXY = function (xy) { return {left: 'x', right: 'x', top: 'y', bottom: 'y', center: 'x'}[xy]; }; + this._getTL = function (tl) { return {left: 'left', right: 'left', top: 'top', bottom: 'top', center: 'left', x: 'left', y: 'top'}[tl]; }; + + + // Get a dimension value in integer pixel dependent on appended element + + this._getInt = function (value, dimension) { + if (value == 'auto') return 'auto'; + if (value && jQuery.type(value) == 'string' && value.slice(-1) == '%') { + return jQuery(window)[dimension == 'height' ? 'innerHeight' : 'innerWidth']() * parseInt(value.replace('%', '')) / 100; + } + return value; + }; + + + // Create an svg element + + this._createSVG = function (type, options) + { + var svg = document.createElementNS('http://www.w3.org/2000/svg', type); + jQuery.each(options, function (index, item) { + svg.setAttribute(item[0], (item[1] || '')); + }); + return svg; + }; + + + // Isolate scrolling in a container + + this._isolateScroll = function (el) + { + // Abort if element not found + if (!el || !el.length) return; + + el.on('DOMMouseScroll.jBoxIsolateScroll mousewheel.jBoxIsolateScroll', function (ev) { + var delta = ev.wheelDelta || (ev.originalEvent && ev.originalEvent.wheelDelta) || -ev.detail; + var overflowBottom = this.scrollTop + el.outerHeight() - this.scrollHeight >= 0; + var overflowTop = this.scrollTop <= 0; + ((delta < 0 && overflowBottom) || (delta > 0 && overflowTop)) && ev.preventDefault(); + }); + }; + + + // Set the title width to content width + + this._setTitleWidth = function () + { + // Abort if there is no title or width of content is auto + if (!this.titleContainer || (this.content[0].style.width == 'auto' && !this.content[0].style.maxWidth)) return null; + + // Expose wrapper to get actual width + if (this.wrapper.css('display') == 'none') { + this.wrapper.css('display', 'block'); + var contentWidth = this.content.outerWidth(); + this.wrapper.css('display', 'none'); + } else { + var contentWidth = this.content.outerWidth(); + } + + // Set max-width only + this.titleContainer.css({maxWidth: (Math.max(contentWidth, parseInt(this.content[0].style.maxWidth)) || null)}); + } + + + // Make jBox draggable + + this._draggable = function () + { + // Abort if jBox is not draggable + if (!this.options.draggable) return false; + + // Get the handle where jBox will be dragged with + var handle = this.options.draggable == 'title' ? this.titleContainer : (this.options.draggable instanceof jQuery ? this.options.draggable : (jQuery.type(this.options.draggable) == 'string' ? jQuery(this.options.draggable) : this.wrapper)); + + // Abort if no handle or if draggable was set already + if (!handle || !(handle instanceof jQuery) || !handle.length || handle.data('jBox-draggable')) { + return false; + } + + // Add mouse events + handle.addClass('jBox-draggable').data('jBox-draggable', true).on('touchstart mousedown', function (ev) + { + if (ev.button == 2 || jQuery(ev.target).hasClass('jBox-noDrag') || jQuery(ev.target).parents('.jBox-noDrag').length) { + // Hacky fix for jBox not closing on mobile devices when using draggable + if (ev.type == 'touchstart' && (jQuery(ev.target).hasClass('jBox-closeButton') || jQuery(ev.target).parents('.jBox-closeButton').length)) { + this.close({ignoreDelay: true}); + } + return; + } + + var pageX; + var pageY; + + if (ev.type == 'touchstart' && ev.touches && ev.touches[0]) { + pageX = ev.touches[0].pageX; + pageY = ev.touches[0].pageY; + } else { + pageX = ev.pageX; + pageY = ev.pageY; + } + + // Store current mouse position + this.draggingStartX = pageX; + this.draggingStartY = pageY; + + // Adjust z-index when dragging jBox over another draggable jBox + if (this.options.dragOver && !this.trueModal && parseInt(this.wrapper.css('zIndex'), 10) <= jBox.zIndexMaxDragover) { + jBox.zIndexMaxDragover += 1; + this.wrapper.css('zIndex', jBox.zIndexMaxDragover); + } + + var drg_h = this.wrapper.outerHeight(); + var drg_w = this.wrapper.outerWidth(); + var pos_y = this.wrapper.offset().top + drg_h - pageY; + var pos_x = this.wrapper.offset().left + drg_w - pageX; + + jQuery(document).on('touchmove.jBox-draggable-' + this.id + ' mousemove.jBox-draggable-' + this.id, function (ev) { + + var movingPageX; + var movingPageY; + + if (ev.type == 'touchmove' && ev.touches && ev.touches[0]) { + movingPageX = ev.touches[0].pageX; + movingPageY = ev.touches[0].pageY; + } else { + movingPageX = ev.pageX; + movingPageY = ev.pageY; + } + + // Fire onDragStart event when jBox moves + if (!this.dragging && this.draggingStartX != movingPageX && this.draggingStartY != movingPageY) { + this._fireEvent('onDragStart'); + this.dragging = true; + } + + // Adjust position + this.wrapper.offset({ + top: movingPageY + pos_y - drg_h, + left: movingPageX + pos_x - drg_w + }); + }.bind(this)); + ev.preventDefault(); + + }.bind(this)).on('touchend mouseup', function () { + // Remove drag event + jQuery(document).off('touchmove.jBox-draggable-' + this.id + ' mousemove.jBox-draggable-' + this.id); + + // Fire onDragEnd event + this.dragging && this._fireEvent('onDragEnd'); + + // Reset dragging reference + this.dragging = false; + + if ((this.type == 'Modal' || this.type == 'Confirm') && this.options.holdPosition) { + // Drag end captures new position + var jBoxOffset = jQuery('#' + this.id).offset(), + pos = { + x: jBoxOffset.left - jQuery(document).scrollLeft(), + y: jBoxOffset.top - jQuery(document).scrollTop() + }; + this.position({position: pos, offset: {x: 0, y: 0}}); + } + }.bind(this)); + + // Get highest z-index + if (!this.trueModal) { + jBox.zIndexMaxDragover = !jBox.zIndexMaxDragover ? this.options.zIndex : Math.max(jBox.zIndexMaxDragover, this.options.zIndex); + } + + return this; + }; + + // Create jBox + + this._create = function () + { + // Abort if jBox was created already + if (this.wrapper) return; + + // Create wrapper + this.wrapper = jQuery('
', { + id: this.id, + 'class': 'jBox-wrapper' + (this.type ? ' jBox-' + this.type : '') + (this.options.theme ? ' jBox-' + this.options.theme : '') + (this.options.addClass ? ' ' + this.options.addClass : '') + }).css({ + position: (this.options.fixed ? 'fixed' : 'absolute'), + display: 'none', + opacity: 0, + zIndex: this.options.zIndex + + // Save the jBox instance in the wrapper, so you can get access to your jBox when you only have the element + }).data('jBox', this); + + // Add mouseleave event, only close jBox when the new target is not the source element + this.options.closeOnMouseleave && this.wrapper.on('mouseleave', function (ev) { + !this.source || !(ev.relatedTarget == this.source[0] || jQuery.inArray(this.source[0], jQuery(ev.relatedTarget).parents('*')) !== -1) && this.close(); + }.bind(this)); + + // Add closeOnClick: 'box' events + (this.options.closeOnClick == 'box') && this.wrapper.on('click tap', function () { this.close({ignoreDelay: true}); }.bind(this)); + + // Create container + this.container = jQuery('
').appendTo(this.wrapper); + + // Create content + this.content = jQuery('
').appendTo(this.container); + + // Create footer + this.options.footer && (this.footer = jQuery('