@ -0,0 +1,4 @@ | |||
jquery@1.11.3_2 | |||
meteor@1.1.6 | |||
semantic:ui-css@2.0.7 | |||
underscore@1.0.3 |
@ -0,0 +1,22 @@ | |||
The MIT License (MIT) | |||
Copyright (c) 2015 Semantic Org | |||
Permission is hereby granted, free of charge, to any person obtaining a copy | |||
of this software and associated documentation files (the "Software"), to deal | |||
in the Software without restriction, including without limitation the rights | |||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |||
copies of the Software, and to permit persons to whom the Software is | |||
furnished to do so, subject to the following conditions: | |||
The above copyright notice and this permission notice shall be included in all | |||
copies or substantial portions of the Software. | |||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |||
SOFTWARE. | |||
@ -0,0 +1,7 @@ | |||
# CSS Distribution | |||
This repository is automatically synced with the main [Semantic UI](https://github.com/Semantic-Org/Semantic-UI) repository to provide lightweight CSS only version of Semantic UI. | |||
This package **does not support theming** and includes generated CSS files of the default theme only. | |||
You can view more on Semantic UI at [LearnSemantic.com](http://www.learnsemantic.com) and [Semantic-UI.com](http://www.semantic-ui.com) |
@ -0,0 +1,255 @@ | |||
/*! | |||
* # Semantic UI 2.1.6 - Accordion | |||
* http://github.com/semantic-org/semantic-ui/ | |||
* | |||
* | |||
* Copyright 2015 Contributors | |||
* Released under the MIT license | |||
* http://opensource.org/licenses/MIT | |||
* | |||
*/ | |||
/******************************* | |||
Accordion | |||
*******************************/ | |||
.ui.accordion, | |||
.ui.accordion .accordion { | |||
max-width: 100%; | |||
} | |||
.ui.accordion .accordion { | |||
margin: 1em 0em 0em; | |||
padding: 0em; | |||
} | |||
/* Title */ | |||
.ui.accordion .title, | |||
.ui.accordion .accordion .title { | |||
cursor: pointer; | |||
} | |||
/* Default Styling */ | |||
.ui.accordion .title:not(.ui) { | |||
padding: 0.5em 0em; | |||
font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif; | |||
font-size: 1em; | |||
color: rgba(0, 0, 0, 0.87); | |||
} | |||
/* Content */ | |||
.ui.accordion .title ~ .content, | |||
.ui.accordion .accordion .title ~ .content { | |||
display: none; | |||
} | |||
/* Default Styling */ | |||
.ui.accordion:not(.styled) .title ~ .content:not(.ui), | |||
.ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui) { | |||
margin: ''; | |||
padding: 0.5em 0em 1em; | |||
} | |||
.ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child { | |||
padding-bottom: 0em; | |||
} | |||
/* Arrow */ | |||
.ui.accordion .title .dropdown.icon, | |||
.ui.accordion .accordion .title .dropdown.icon { | |||
display: inline-block; | |||
float: none; | |||
opacity: 1; | |||
width: 1.25em; | |||
height: 1em; | |||
margin: 0em 0.25rem 0em 0rem; | |||
padding: 0em; | |||
font-size: 1em; | |||
-webkit-transition: -webkit-transform 0.1s ease, opacity 0.1s ease; | |||
transition: transform 0.1s ease, opacity 0.1s ease; | |||
vertical-align: baseline; | |||
-webkit-transform: none; | |||
-ms-transform: none; | |||
transform: none; | |||
} | |||
/*-------------- | |||
Coupling | |||
---------------*/ | |||
/* Menu */ | |||
.ui.accordion.menu .item .title { | |||
display: block; | |||
padding: 0em; | |||
} | |||
.ui.accordion.menu .item .title > .dropdown.icon { | |||
float: right; | |||
margin: 0.21425em 0em 0em 1em; | |||
-webkit-transform: rotate(180deg); | |||
-ms-transform: rotate(180deg); | |||
transform: rotate(180deg); | |||
} | |||
/* Header */ | |||
.ui.accordion .ui.header .dropdown.icon { | |||
font-size: 1em; | |||
margin: 0em 0.25rem 0em 0rem; | |||
} | |||
/******************************* | |||
States | |||
*******************************/ | |||
.ui.accordion .active.title .dropdown.icon, | |||
.ui.accordion .accordion .active.title .dropdown.icon { | |||
-webkit-transform: rotate(90deg); | |||
-ms-transform: rotate(90deg); | |||
transform: rotate(90deg); | |||
} | |||
.ui.accordion.menu .item .active.title > .dropdown.icon { | |||
-webkit-transform: rotate(90deg); | |||
-ms-transform: rotate(90deg); | |||
transform: rotate(90deg); | |||
} | |||
/******************************* | |||
Types | |||
*******************************/ | |||
/*-------------- | |||
Styled | |||
---------------*/ | |||
.ui.styled.accordion { | |||
width: 600px; | |||
} | |||
.ui.styled.accordion, | |||
.ui.styled.accordion .accordion { | |||
border-radius: 0.28571429rem; | |||
background: #FFFFFF; | |||
box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15); | |||
} | |||
.ui.styled.accordion .title, | |||
.ui.styled.accordion .accordion .title { | |||
margin: 0em; | |||
padding: 0.75em 1em; | |||
color: rgba(0, 0, 0, 0.4); | |||
font-weight: bold; | |||
border-top: 1px solid rgba(34, 36, 38, 0.15); | |||
-webkit-transition: background 0.1s ease, color 0.1s ease; | |||
transition: background 0.1s ease, color 0.1s ease; | |||
} | |||
.ui.styled.accordion > .title:first-child, | |||
.ui.styled.accordion .accordion .title:first-child { | |||
border-top: none; | |||
} | |||
/* Content */ | |||
.ui.styled.accordion .content, | |||
.ui.styled.accordion .accordion .content { | |||
margin: 0em; | |||
padding: 0.5em 1em 1.5em; | |||
} | |||
.ui.styled.accordion .accordion .content { | |||
padding: 0em; | |||
padding: 0.5em 1em 1.5em; | |||
} | |||
/* Hover */ | |||
.ui.styled.accordion .title:hover, | |||
.ui.styled.accordion .active.title, | |||
.ui.styled.accordion .accordion .title:hover, | |||
.ui.styled.accordion .accordion .active.title { | |||
background: transparent; | |||
color: rgba(0, 0, 0, 0.87); | |||
} | |||
.ui.styled.accordion .accordion .title:hover, | |||
.ui.styled.accordion .accordion .active.title { | |||
background: transparent; | |||
color: rgba(0, 0, 0, 0.87); | |||
} | |||
/* Active */ | |||
.ui.styled.accordion .active.title { | |||
background: transparent; | |||
color: rgba(0, 0, 0, 0.95); | |||
} | |||
.ui.styled.accordion .accordion .active.title { | |||
background: transparent; | |||
color: rgba(0, 0, 0, 0.95); | |||
} | |||
/******************************* | |||
States | |||
*******************************/ | |||
/*-------------- | |||
Active | |||
---------------*/ | |||
.ui.accordion .active.content, | |||
.ui.accordion .accordion .active.content { | |||
display: block; | |||
} | |||
/******************************* | |||
Variations | |||
*******************************/ | |||
/*-------------- | |||
Fluid | |||
---------------*/ | |||
.ui.fluid.accordion, | |||
.ui.fluid.accordion .accordion { | |||
width: 100%; | |||
} | |||
/*-------------- | |||
Inverted | |||
---------------*/ | |||
.ui.inverted.accordion .title:not(.ui) { | |||
color: rgba(255, 255, 255, 0.9); | |||
} | |||
/******************************* | |||
Theme Overrides | |||
*******************************/ | |||
@font-face { | |||
font-family: 'Accordion'; | |||
src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMggjB5AAAAC8AAAAYGNtYXAPfOIKAAABHAAAAExnYXNwAAAAEAAAAWgAAAAIZ2x5Zryj6HgAAAFwAAAAyGhlYWT/0IhHAAACOAAAADZoaGVhApkB5wAAAnAAAAAkaG10eAJuABIAAAKUAAAAGGxvY2EAjABWAAACrAAAAA5tYXhwAAgAFgAAArwAAAAgbmFtZfC1n04AAALcAAABPHBvc3QAAwAAAAAEGAAAACAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAAAAAAAAAIAADc5AQAAAAABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQASAEkAtwFuABMAADc0PwE2FzYXFh0BFAcGJwYvASY1EgaABQgHBQYGBQcIBYAG2wcGfwcBAQcECf8IBAcBAQd/BgYAAAAAAQAAAEkApQFuABMAADcRNDc2MzIfARYVFA8BBiMiJyY1AAUGBwgFgAYGgAUIBwYFWwEACAUGBoAFCAcFgAYGBQcAAAABAAAAAQAAqWYls18PPPUACwIAAAAAAM/9o+4AAAAAz/2j7gAAAAAAtwFuAAAACAACAAAAAAAAAAEAAAHg/+AAAAIAAAAAAAC3AAEAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAQAAAAC3ABIAtwAAAAAAAAAKABQAHgBCAGQAAAABAAAABgAUAAEAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype'), url(data:application/font-woff;charset=utf-8;base64,d09GRk9UVE8AAASwAAoAAAAABGgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABDRkYgAAAA9AAAAS0AAAEtFpovuE9TLzIAAAIkAAAAYAAAAGAIIweQY21hcAAAAoQAAABMAAAATA984gpnYXNwAAAC0AAAAAgAAAAIAAAAEGhlYWQAAALYAAAANgAAADb/0IhHaGhlYQAAAxAAAAAkAAAAJAKZAedobXR4AAADNAAAABgAAAAYAm4AEm1heHAAAANMAAAABgAAAAYABlAAbmFtZQAAA1QAAAE8AAABPPC1n05wb3N0AAAEkAAAACAAAAAgAAMAAAEABAQAAQEBB3JhdGluZwABAgABADr4HAL4GwP4GAQeCgAZU/+Lix4KABlT/4uLDAeLa/iU+HQFHQAAAHkPHQAAAH4RHQAAAAkdAAABJBIABwEBBw0PERQZHnJhdGluZ3JhdGluZ3UwdTF1MjB1RjBEOXVGMERBAAACAYkABAAGAQEEBwoNVp38lA78lA78lA77lA773Z33bxWLkI2Qj44I9xT3FAWOj5CNkIuQi4+JjoePiI2Gi4YIi/uUBYuGiYeHiIiHh4mGi4aLho2Ijwj7FPcUBYeOiY+LkAgO+92L5hWL95QFi5CNkI6Oj4+PjZCLkIuQiY6HCPcU+xQFj4iNhouGi4aJh4eICPsU+xQFiIeGiYaLhouHjYePiI6Jj4uQCA74lBT4lBWLDAoAAAAAAwIAAZAABQAAAUwBZgAAAEcBTAFmAAAA9QAZAIQAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADw2gHg/+D/4AHgACAAAAABAAAAAAAAAAAAAAAgAAAAAAACAAAAAwAAABQAAwABAAAAFAAEADgAAAAKAAgAAgACAAEAIPDa//3//wAAAAAAIPDZ//3//wAB/+MPKwADAAEAAAAAAAAAAAAAAAEAAf//AA8AAQAAAAEAADfYOJZfDzz1AAsCAAAAAADP/aPuAAAAAM/9o+4AAAAAALcBbgAAAAgAAgAAAAAAAAABAAAB4P/gAAACAAAAAAAAtwABAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAAAAAAAAEAAAAAtwASALcAAAAAUAAABgAAAAAADgCuAAEAAAAAAAEADAAAAAEAAAAAAAIADgBAAAEAAAAAAAMADAAiAAEAAAAAAAQADABOAAEAAAAAAAUAFgAMAAEAAAAAAAYABgAuAAEAAAAAAAoANABaAAMAAQQJAAEADAAAAAMAAQQJAAIADgBAAAMAAQQJAAMADAAiAAMAAQQJAAQADABOAAMAAQQJAAUAFgAMAAMAAQQJAAYADAA0AAMAAQQJAAoANABaAHIAYQB0AGkAbgBnAFYAZQByAHMAaQBvAG4AIAAxAC4AMAByAGEAdABpAG4AZ3JhdGluZwByAGEAdABpAG4AZwBSAGUAZwB1AGwAYQByAHIAYQB0AGkAbgBnAEYAbwBuAHQAIABnAGUAbgBlAHIAYQB0AGUAZAAgAGIAeQAgAEkAYwBvAE0AbwBvAG4ALgADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('woff'); | |||
font-weight: normal; | |||
font-style: normal; | |||
} | |||
/* Dropdown Icon */ | |||
.ui.accordion .title .dropdown.icon, | |||
.ui.accordion .accordion .title .dropdown.icon { | |||
font-family: Accordion; | |||
line-height: 1; | |||
-webkit-backface-visibility: hidden; | |||
backface-visibility: hidden; | |||
font-weight: normal; | |||
font-style: normal; | |||
text-align: center; | |||
} | |||
.ui.accordion .title .dropdown.icon:before, | |||
.ui.accordion .accordion .title .dropdown.icon:before { | |||
content: '\f0da' /*rtl:'\f0d9'*/; | |||
} | |||
/******************************* | |||
User Overrides | |||
*******************************/ | |||
@ -0,0 +1,596 @@ | |||
/*! | |||
* # Semantic UI 2.1.6 - Accordion | |||
* http://github.com/semantic-org/semantic-ui/ | |||
* | |||
* | |||
* Copyright 2015 Contributors | |||
* Released under the MIT license | |||
* http://opensource.org/licenses/MIT | |||
* | |||
*/ | |||
;(function ($, window, document, undefined) { | |||
"use strict"; | |||
$.fn.accordion = function(parameters) { | |||
var | |||
$allModules = $(this), | |||
time = new Date().getTime(), | |||
performance = [], | |||
query = arguments[0], | |||
methodInvoked = (typeof query == 'string'), | |||
queryArguments = [].slice.call(arguments, 1), | |||
requestAnimationFrame = window.requestAnimationFrame | |||
|| window.mozRequestAnimationFrame | |||
|| window.webkitRequestAnimationFrame | |||
|| window.msRequestAnimationFrame | |||
|| function(callback) { setTimeout(callback, 0); }, | |||
returnedValue | |||
; | |||
$allModules | |||
.each(function() { | |||
var | |||
settings = ( $.isPlainObject(parameters) ) | |||
? $.extend(true, {}, $.fn.accordion.settings, parameters) | |||
: $.extend({}, $.fn.accordion.settings), | |||
className = settings.className, | |||
namespace = settings.namespace, | |||
selector = settings.selector, | |||
error = settings.error, | |||
eventNamespace = '.' + namespace, | |||
moduleNamespace = 'module-' + namespace, | |||
moduleSelector = $allModules.selector || '', | |||
$module = $(this), | |||
$title = $module.find(selector.title), | |||
$content = $module.find(selector.content), | |||
element = this, | |||
instance = $module.data(moduleNamespace), | |||
observer, | |||
module | |||
; | |||
module = { | |||
initialize: function() { | |||
module.debug('Initializing', $module); | |||
module.bind.events(); | |||
if(settings.observeChanges) { | |||
module.observeChanges(); | |||
} | |||
module.instantiate(); | |||
}, | |||
instantiate: function() { | |||
instance = module; | |||
$module | |||
.data(moduleNamespace, module) | |||
; | |||
}, | |||
destroy: function() { | |||
module.debug('Destroying previous instance', $module); | |||
$module | |||
.off(eventNamespace) | |||
.removeData(moduleNamespace) | |||
; | |||
}, | |||
refresh: function() { | |||
$title = $module.find(selector.title); | |||
$content = $module.find(selector.content); | |||
}, | |||
observeChanges: function() { | |||
if('MutationObserver' in window) { | |||
observer = new MutationObserver(function(mutations) { | |||
module.debug('DOM tree modified, updating selector cache'); | |||
module.refresh(); | |||
}); | |||
observer.observe(element, { | |||
childList : true, | |||
subtree : true | |||
}); | |||
module.debug('Setting up mutation observer', observer); | |||
} | |||
}, | |||
bind: { | |||
events: function() { | |||
module.debug('Binding delegated events'); | |||
$module | |||
.on(settings.on + eventNamespace, selector.trigger, module.event.click) | |||
; | |||
} | |||
}, | |||
event: { | |||
click: function() { | |||
module.toggle.call(this); | |||
} | |||
}, | |||
toggle: function(query) { | |||
var | |||
$activeTitle = (query !== undefined) | |||
? (typeof query === 'number') | |||
? $title.eq(query) | |||
: $(query).closest(selector.title) | |||
: $(this).closest(selector.title), | |||
$activeContent = $activeTitle.next($content), | |||
isAnimating = $activeContent.hasClass(className.animating), | |||
isActive = $activeContent.hasClass(className.active), | |||
isOpen = (isActive && !isAnimating), | |||
isOpening = (!isActive && isAnimating) | |||
; | |||
module.debug('Toggling visibility of content', $activeTitle); | |||
if(isOpen || isOpening) { | |||
if(settings.collapsible) { | |||
module.close.call($activeTitle); | |||
} | |||
else { | |||
module.debug('Cannot close accordion content collapsing is disabled'); | |||
} | |||
} | |||
else { | |||
module.open.call($activeTitle); | |||
} | |||
}, | |||
open: function(query) { | |||
var | |||
$activeTitle = (query !== undefined) | |||
? (typeof query === 'number') | |||
? $title.eq(query) | |||
: $(query).closest(selector.title) | |||
: $(this).closest(selector.title), | |||
$activeContent = $activeTitle.next($content), | |||
isAnimating = $activeContent.hasClass(className.animating), | |||
isActive = $activeContent.hasClass(className.active), | |||
isOpen = (isActive || isAnimating) | |||
; | |||
if(isOpen) { | |||
module.debug('Accordion already open, skipping', $activeContent); | |||
return; | |||
} | |||
module.debug('Opening accordion content', $activeTitle); | |||
settings.onOpening.call($activeContent); | |||
if(settings.exclusive) { | |||
module.closeOthers.call($activeTitle); | |||
} | |||
$activeTitle | |||
.addClass(className.active) | |||
; | |||
$activeContent | |||
.stop(true, true) | |||
.addClass(className.animating) | |||
; | |||
if(settings.animateChildren) { | |||
if($.fn.transition !== undefined && $module.transition('is supported')) { | |||
$activeContent | |||
.children() | |||
.transition({ | |||
animation : 'fade in', | |||
queue : false, | |||
useFailSafe : true, | |||
debug : settings.debug, | |||
verbose : settings.verbose, | |||
duration : settings.duration | |||
}) | |||
; | |||
} | |||
else { | |||
$activeContent | |||
.children() | |||
.stop(true, true) | |||
.animate({ | |||
opacity: 1 | |||
}, settings.duration, module.resetOpacity) | |||
; | |||
} | |||
} | |||
$activeContent | |||
.slideDown(settings.duration, settings.easing, function() { | |||
$activeContent | |||
.removeClass(className.animating) | |||
.addClass(className.active) | |||
; | |||
module.reset.display.call(this); | |||
settings.onOpen.call(this); | |||
settings.onChange.call(this); | |||
}) | |||
; | |||
}, | |||
close: function(query) { | |||
var | |||
$activeTitle = (query !== undefined) | |||
? (typeof query === 'number') | |||
? $title.eq(query) | |||
: $(query).closest(selector.title) | |||
: $(this).closest(selector.title), | |||
$activeContent = $activeTitle.next($content), | |||
isAnimating = $activeContent.hasClass(className.animating), | |||
isActive = $activeContent.hasClass(className.active), | |||
isOpening = (!isActive && isAnimating), | |||
isClosing = (isActive && isAnimating) | |||
; | |||
if((isActive || isOpening) && !isClosing) { | |||
module.debug('Closing accordion content', $activeContent); | |||
settings.onClosing.call($activeContent); | |||
$activeTitle | |||
.removeClass(className.active) | |||
; | |||
$activeContent | |||
.stop(true, true) | |||
.addClass(className.animating) | |||
; | |||
if(settings.animateChildren) { | |||
if($.fn.transition !== undefined && $module.transition('is supported')) { | |||
$activeContent | |||
.children() | |||
.transition({ | |||
animation : 'fade out', | |||
queue : false, | |||
useFailSafe : true, | |||
debug : settings.debug, | |||
verbose : settings.verbose, | |||
duration : settings.duration | |||
}) | |||
; | |||
} | |||
else { | |||
$activeContent | |||
.children() | |||
.stop(true, true) | |||
.animate({ | |||
opacity: 0 | |||
}, settings.duration, module.resetOpacity) | |||
; | |||
} | |||
} | |||
$activeContent | |||
.slideUp(settings.duration, settings.easing, function() { | |||
$activeContent | |||
.removeClass(className.animating) | |||
.removeClass(className.active) | |||
; | |||
module.reset.display.call(this); | |||
settings.onClose.call(this); | |||
settings.onChange.call(this); | |||
}) | |||
; | |||
} | |||
}, | |||
closeOthers: function(index) { | |||
var | |||
$activeTitle = (index !== undefined) | |||
? $title.eq(index) | |||
: $(this).closest(selector.title), | |||
$parentTitles = $activeTitle.parents(selector.content).prev(selector.title), | |||
$activeAccordion = $activeTitle.closest(selector.accordion), | |||
activeSelector = selector.title + '.' + className.active + ':visible', | |||
activeContent = selector.content + '.' + className.active + ':visible', | |||
$openTitles, | |||
$nestedTitles, | |||
$openContents | |||
; | |||
if(settings.closeNested) { | |||
$openTitles = $activeAccordion.find(activeSelector).not($parentTitles); | |||
$openContents = $openTitles.next($content); | |||
} | |||
else { | |||
$openTitles = $activeAccordion.find(activeSelector).not($parentTitles); | |||
$nestedTitles = $activeAccordion.find(activeContent).find(activeSelector).not($parentTitles); | |||
$openTitles = $openTitles.not($nestedTitles); | |||
$openContents = $openTitles.next($content); | |||
} | |||
if( ($openTitles.length > 0) ) { | |||
module.debug('Exclusive enabled, closing other content', $openTitles); | |||
$openTitles | |||
.removeClass(className.active) | |||
; | |||
$openContents | |||
.removeClass(className.animating) | |||
.stop(true, true) | |||
; | |||
if(settings.animateChildren) { | |||
if($.fn.transition !== undefined && $module.transition('is supported')) { | |||
$openContents | |||
.children() | |||
.transition({ | |||
animation : 'fade out', | |||
useFailSafe : true, | |||
debug : settings.debug, | |||
verbose : settings.verbose, | |||
duration : settings.duration | |||
}) | |||
; | |||
} | |||
else { | |||
$openContents | |||
.children() | |||
.stop(true, true) | |||
.animate({ | |||
opacity: 0 | |||
}, settings.duration, module.resetOpacity) | |||
; | |||
} | |||
} | |||
$openContents | |||
.slideUp(settings.duration , settings.easing, function() { | |||
$(this).removeClass(className.active); | |||
module.reset.display.call(this); | |||
}) | |||
; | |||
} | |||
}, | |||
reset: { | |||
display: function() { | |||
module.verbose('Removing inline display from element', this); | |||
$(this).css('display', ''); | |||
if( $(this).attr('style') === '') { | |||
$(this) | |||
.attr('style', '') | |||
.removeAttr('style') | |||
; | |||
} | |||
}, | |||
opacity: function() { | |||
module.verbose('Removing inline opacity from element', this); | |||
$(this).css('opacity', ''); | |||
if( $(this).attr('style') === '') { | |||
$(this) | |||
.attr('style', '') | |||
.removeAttr('style') | |||
; | |||
} | |||
}, | |||
}, | |||
setting: function(name, value) { | |||
module.debug('Changing setting', name, value); | |||
if( $.isPlainObject(name) ) { | |||
$.extend(true, settings, name); | |||
} | |||
else if(value !== undefined) { | |||
settings[name] = value; | |||
} | |||
else { | |||
return settings[name]; | |||
} | |||
}, | |||
internal: function(name, value) { | |||
module.debug('Changing internal', name, value); | |||
if(value !== undefined) { | |||
if( $.isPlainObject(name) ) { | |||
$.extend(true, module, name); | |||
} | |||
else { | |||
module[name] = value; | |||
} | |||
} | |||
else { | |||
return module[name]; | |||
} | |||
}, | |||
debug: function() { | |||
if(settings.debug) { | |||
if(settings.performance) { | |||
module.performance.log(arguments); | |||
} | |||
else { | |||
module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); | |||
module.debug.apply(console, arguments); | |||
} | |||
} | |||
}, | |||
verbose: function() { | |||
if(settings.verbose && settings.debug) { | |||
if(settings.performance) { | |||
module.performance.log(arguments); | |||
} | |||
else { | |||
module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); | |||
module.verbose.apply(console, arguments); | |||
} | |||
} | |||
}, | |||
error: function() { | |||
module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); | |||
module.error.apply(console, arguments); | |||
}, | |||
performance: { | |||
log: function(message) { | |||
var | |||
currentTime, | |||
executionTime, | |||
previousTime | |||
; | |||
if(settings.performance) { | |||
currentTime = new Date().getTime(); | |||
previousTime = time || currentTime; | |||
executionTime = currentTime - previousTime; | |||
time = currentTime; | |||
performance.push({ | |||
'Name' : message[0], | |||
'Arguments' : [].slice.call(message, 1) || '', | |||
'Element' : element, | |||
'Execution Time' : executionTime | |||
}); | |||
} | |||
clearTimeout(module.performance.timer); | |||
module.performance.timer = setTimeout(module.performance.display, 500); | |||
}, | |||
display: function() { | |||
var | |||
title = settings.name + ':', | |||
totalTime = 0 | |||
; | |||
time = false; | |||
clearTimeout(module.performance.timer); | |||
$.each(performance, function(index, data) { | |||
totalTime += data['Execution Time']; | |||
}); | |||
title += ' ' + totalTime + 'ms'; | |||
if(moduleSelector) { | |||
title += ' \'' + moduleSelector + '\''; | |||
} | |||
if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { | |||
console.groupCollapsed(title); | |||
if(console.table) { | |||
console.table(performance); | |||
} | |||
else { | |||
$.each(performance, function(index, data) { | |||
console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); | |||
}); | |||
} | |||
console.groupEnd(); | |||
} | |||
performance = []; | |||
} | |||
}, | |||
invoke: function(query, passedArguments, context) { | |||
var | |||
object = instance, | |||
maxDepth, | |||
found, | |||
response | |||
; | |||
passedArguments = passedArguments || queryArguments; | |||
context = element || context; | |||
if(typeof query == 'string' && object !== undefined) { | |||
query = query.split(/[\. ]/); | |||
maxDepth = query.length - 1; | |||
$.each(query, function(depth, value) { | |||
var camelCaseValue = (depth != maxDepth) | |||
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) | |||
: query | |||
; | |||
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { | |||
object = object[camelCaseValue]; | |||
} | |||
else if( object[camelCaseValue] !== undefined ) { | |||
found = object[camelCaseValue]; | |||
return false; | |||
} | |||
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { | |||
object = object[value]; | |||
} | |||
else if( object[value] !== undefined ) { | |||
found = object[value]; | |||
return false; | |||
} | |||
else { | |||
module.error(error.method, query); | |||
return false; | |||
} | |||
}); | |||
} | |||
if ( $.isFunction( found ) ) { | |||
response = found.apply(context, passedArguments); | |||
} | |||
else if(found !== undefined) { | |||
response = found; | |||
} | |||
if($.isArray(returnedValue)) { | |||
returnedValue.push(response); | |||
} | |||
else if(returnedValue !== undefined) { | |||
returnedValue = [returnedValue, response]; | |||
} | |||
else if(response !== undefined) { | |||
returnedValue = response; | |||
} | |||
return found; | |||
} | |||
}; | |||
if(methodInvoked) { | |||
if(instance === undefined) { | |||
module.initialize(); | |||
} | |||
module.invoke(query); | |||
} | |||
else { | |||
if(instance !== undefined) { | |||
instance.invoke('destroy'); | |||
} | |||
module.initialize(); | |||
} | |||
}) | |||
; | |||
return (returnedValue !== undefined) | |||
? returnedValue | |||
: this | |||
; | |||
}; | |||
$.fn.accordion.settings = { | |||
name : 'Accordion', | |||
namespace : 'accordion', | |||
debug : false, | |||
verbose : false, | |||
performance : true, | |||
on : 'click', // event on title that opens accordion | |||
observeChanges : true, // whether accordion should automatically refresh on DOM insertion | |||
exclusive : true, // whether a single accordion content panel should be open at once | |||
collapsible : true, // whether accordion content can be closed | |||
closeNested : false, // whether nested content should be closed when a panel is closed | |||
animateChildren : true, // whether children opacity should be animated | |||
duration : 350, // duration of animation | |||
easing : 'easeOutQuad', // easing equation for animation | |||
onOpening : function(){}, // callback before open animation | |||
onOpen : function(){}, // callback after open animation | |||
onClosing : function(){}, // callback before closing animation | |||
onClose : function(){}, // callback after closing animation | |||
onChange : function(){}, // callback after closing or opening animation | |||
error: { | |||
method : 'The method you called is not defined' | |||
}, | |||
className : { | |||
active : 'active', | |||
animating : 'animating' | |||
}, | |||
selector : { | |||
accordion : '.accordion', | |||
title : '.title', | |||
trigger : '.title', | |||
content : '.content' | |||
} | |||
}; | |||
// Adds easing | |||
$.extend( $.easing, { | |||
easeOutQuad: function (x, t, b, c, d) { | |||
return -c *(t/=d)*(t-2) + b; | |||
} | |||
}); | |||
})( jQuery, window, document ); | |||
@ -0,0 +1,276 @@ | |||
/*! | |||
* # Semantic UI 2.1.6 - Ad | |||
* http://github.com/semantic-org/semantic-ui/ | |||
* | |||
* | |||
* Copyright 2013 Contributors | |||
* Released under the MIT license | |||
* http://opensource.org/licenses/MIT | |||
* | |||
*/ | |||
/******************************* | |||
Advertisement | |||
*******************************/ | |||
.ui.ad { | |||
display: block; | |||
overflow: hidden; | |||
margin: 1em 0em; | |||
} | |||
.ui.ad:first-child { | |||
margin: 0em; | |||
} | |||
.ui.ad:last-child { | |||
margin: 0em; | |||
} | |||
.ui.ad iframe { | |||
margin: 0em; | |||
padding: 0em; | |||
border: none; | |||
overflow: hidden; | |||
} | |||
/*-------------- | |||
Common | |||
---------------*/ | |||
/* Leaderboard */ | |||
.ui.leaderboard.ad { | |||
width: 728px; | |||
height: 90px; | |||
} | |||
/* Medium Rectangle */ | |||
.ui[class*="medium rectangle"].ad { | |||
width: 300px; | |||
height: 250px; | |||
} | |||
/* Large Rectangle */ | |||
.ui[class*="large rectangle"].ad { | |||
width: 336px; | |||
height: 280px; | |||
} | |||
/* Half Page */ | |||
.ui[class*="half page"].ad { | |||
width: 300px; | |||
height: 600px; | |||
} | |||
/*-------------- | |||
Square | |||
---------------*/ | |||
/* Square */ | |||
.ui.square.ad { | |||
width: 250px; | |||
height: 250px; | |||
} | |||
/* Small Square */ | |||
.ui[class*="small square"].ad { | |||
width: 200px; | |||
height: 200px; | |||
} | |||
/*-------------- | |||
Rectangle | |||
---------------*/ | |||
/* Small Rectangle */ | |||
.ui[class*="small rectangle"].ad { | |||
width: 180px; | |||
height: 150px; | |||
} | |||
/* Vertical Rectangle */ | |||
.ui[class*="vertical rectangle"].ad { | |||
width: 240px; | |||
height: 400px; | |||
} | |||
/*-------------- | |||
Button | |||
---------------*/ | |||
.ui.button.ad { | |||
width: 120px; | |||
height: 90px; | |||
} | |||
.ui[class*="square button"].ad { | |||
width: 125px; | |||
height: 125px; | |||
} | |||
.ui[class*="small button"].ad { | |||
width: 120px; | |||
height: 60px; | |||
} | |||
/*-------------- | |||
Skyscrapers | |||
---------------*/ | |||
/* Skyscraper */ | |||
.ui.skyscraper.ad { | |||
width: 120px; | |||
height: 600px; | |||
} | |||
/* Wide Skyscraper */ | |||
.ui[class*="wide skyscraper"].ad { | |||
width: 160px; | |||
} | |||
/*-------------- | |||
Banners | |||
---------------*/ | |||
/* Banner */ | |||
.ui.banner.ad { | |||
width: 468px; | |||
height: 60px; | |||
} | |||
/* Vertical Banner */ | |||
.ui[class*="vertical banner"].ad { | |||
width: 120px; | |||
height: 240px; | |||
} | |||
/* Top Banner */ | |||
.ui[class*="top banner"].ad { | |||
width: 930px; | |||
height: 180px; | |||
} | |||
/* Half Banner */ | |||
.ui[class*="half banner"].ad { | |||
width: 234px; | |||
height: 60px; | |||
} | |||
/*-------------- | |||
Boards | |||
---------------*/ | |||
/* Leaderboard */ | |||
.ui[class*="large leaderboard"].ad { | |||
width: 970px; | |||
height: 90px; | |||
} | |||
/* Billboard */ | |||
.ui.billboard.ad { | |||
width: 970px; | |||
height: 250px; | |||
} | |||
/*-------------- | |||
Panorama | |||
---------------*/ | |||
/* Panorama */ | |||
.ui.panorama.ad { | |||
width: 980px; | |||
height: 120px; | |||
} | |||
/*-------------- | |||
Netboard | |||
---------------*/ | |||
/* Netboard */ | |||
.ui.netboard.ad { | |||
width: 580px; | |||
height: 400px; | |||
} | |||
/*-------------- | |||
Mobile | |||
---------------*/ | |||
/* Large Mobile Banner */ | |||
.ui[class*="large mobile banner"].ad { | |||
width: 320px; | |||
height: 100px; | |||
} | |||
/* Mobile Leaderboard */ | |||
.ui[class*="mobile leaderboard"].ad { | |||
width: 320px; | |||
height: 50px; | |||
} | |||
/******************************* | |||
Types | |||
*******************************/ | |||
/* Mobile Sizes */ | |||
.ui.mobile.ad { | |||
display: none; | |||
} | |||
@media only screen and (max-width: 767px) { | |||
.ui.mobile.ad { | |||
display: block; | |||
} | |||
} | |||
/******************************* | |||
Variations | |||
*******************************/ | |||
.ui.centered.ad { | |||
margin-left: auto; | |||
margin-right: auto; | |||
} | |||
.ui.test.ad { | |||
position: relative; | |||
background: #545454; | |||
} | |||
.ui.test.ad:after { | |||
position: absolute; | |||
top: 50%; | |||
left: 50%; | |||
width: 100%; | |||
text-align: center; | |||
-webkit-transform: translateX(-50%) translateY(-50%); | |||
-ms-transform: translateX(-50%) translateY(-50%); | |||
transform: translateX(-50%) translateY(-50%); | |||
content: 'Ad'; | |||
color: #FFFFFF; | |||
font-size: 1em; | |||
font-weight: bold; | |||
} | |||
.ui.mobile.test.ad:after { | |||
font-size: 0.85714286em; | |||
} | |||
.ui.test.ad[data-text]:after { | |||
content: attr(data-text); | |||
} | |||
/******************************* | |||
Theme Overrides | |||
*******************************/ | |||
/******************************* | |||
User Variable Overrides | |||
*******************************/ | |||
@ -0,0 +1,10 @@ | |||
/*! | |||
* # Semantic UI 2.1.6 - Ad | |||
* http://github.com/semantic-org/semantic-ui/ | |||
* | |||
* | |||
* Copyright 2013 Contributors | |||
* Released under the MIT license | |||
* http://opensource.org/licenses/MIT | |||
* | |||
*/.ui.ad{display:block;overflow:hidden;margin:1em 0}.ui.ad:first-child,.ui.ad:last-child{margin:0}.ui.ad iframe{margin:0;padding:0;border:none;overflow:hidden}.ui.leaderboard.ad{width:728px;height:90px}.ui[class*="medium rectangle"].ad{width:300px;height:250px}.ui[class*="large rectangle"].ad{width:336px;height:280px}.ui[class*="half page"].ad{width:300px;height:600px}.ui.square.ad{width:250px;height:250px}.ui[class*="small square"].ad{width:200px;height:200px}.ui[class*="small rectangle"].ad{width:180px;height:150px}.ui[class*="vertical rectangle"].ad{width:240px;height:400px}.ui.button.ad{width:120px;height:90px}.ui[class*="square button"].ad{width:125px;height:125px}.ui[class*="small button"].ad{width:120px;height:60px}.ui.skyscraper.ad{width:120px;height:600px}.ui[class*="wide skyscraper"].ad{width:160px}.ui.banner.ad{width:468px;height:60px}.ui[class*="vertical banner"].ad{width:120px;height:240px}.ui[class*="top banner"].ad{width:930px;height:180px}.ui[class*="half banner"].ad{width:234px;height:60px}.ui[class*="large leaderboard"].ad{width:970px;height:90px}.ui.billboard.ad{width:970px;height:250px}.ui.panorama.ad{width:980px;height:120px}.ui.netboard.ad{width:580px;height:400px}.ui[class*="large mobile banner"].ad{width:320px;height:100px}.ui[class*="mobile leaderboard"].ad{width:320px;height:50px}.ui.mobile.ad{display:none}@media only screen and (max-width:767px){.ui.mobile.ad{display:block}}.ui.centered.ad{margin-left:auto;margin-right:auto}.ui.test.ad{position:relative;background:#545454}.ui.test.ad:after{position:absolute;top:50%;left:50%;width:100%;text-align:center;-webkit-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%);content:'Ad';color:#FFF;font-size:1em;font-weight:700}.ui.mobile.test.ad:after{font-size:.85714286em}.ui.test.ad[data-text]:after{content:attr(data-text)} |
@ -0,0 +1,125 @@ | |||
/*! | |||
* # Semantic UI 2.1.6 - Breadcrumb | |||
* http://github.com/semantic-org/semantic-ui/ | |||
* | |||
* | |||
* Copyright 2015 Contributors | |||
* Released under the MIT license | |||
* http://opensource.org/licenses/MIT | |||
* | |||
*/ | |||
/******************************* | |||
Breadcrumb | |||
*******************************/ | |||
.ui.breadcrumb { | |||
line-height: 1; | |||
display: inline-block; | |||
margin: 0em 0em; | |||
vertical-align: middle; | |||
} | |||
.ui.breadcrumb:first-child { | |||
margin-top: 0em; | |||
} | |||
.ui.breadcrumb:last-child { | |||
margin-bottom: 0em; | |||
} | |||
/******************************* | |||
Content | |||
*******************************/ | |||
/* Divider */ | |||
.ui.breadcrumb .divider { | |||
display: inline-block; | |||
opacity: 0.7; | |||
margin: 0em 0.21428571rem 0em; | |||
font-size: 0.92857143em; | |||
color: rgba(0, 0, 0, 0.4); | |||
vertical-align: baseline; | |||
} | |||
/* Link */ | |||
.ui.breadcrumb a { | |||
color: #4183C4; | |||
} | |||
.ui.breadcrumb a:hover { | |||
color: #1e70bf; | |||
} | |||
/* Icon Divider */ | |||
.ui.breadcrumb .icon.divider { | |||
font-size: 0.85714286em; | |||
vertical-align: baseline; | |||
} | |||
/* Section */ | |||
.ui.breadcrumb a.section { | |||
cursor: pointer; | |||
} | |||
.ui.breadcrumb .section { | |||
display: inline-block; | |||
margin: 0em; | |||
padding: 0em; | |||
} | |||
/* Loose Coupling */ | |||
.ui.breadcrumb.segment { | |||
display: inline-block; | |||
padding: 0.71428571em 1em; | |||
} | |||
/******************************* | |||
States | |||
*******************************/ | |||
.ui.breadcrumb .active.section { | |||
font-weight: bold; | |||
} | |||
/******************************* | |||
Variations | |||
*******************************/ | |||
.ui.mini.breadcrumb { | |||
font-size: 0.71428571rem; | |||
} | |||
.ui.tiny.breadcrumb { | |||
font-size: 0.85714286rem; | |||
} | |||
.ui.small.breadcrumb { | |||
font-size: 0.92857143rem; | |||
} | |||
.ui.breadcrumb { | |||
font-size: 1rem; | |||
} | |||
.ui.large.breadcrumb { | |||
font-size: 1.14285714rem; | |||
} | |||
.ui.big.breadcrumb { | |||
font-size: 1.28571429rem; | |||
} | |||
.ui.huge.breadcrumb { | |||
font-size: 1.42857143rem; | |||
} | |||
.ui.massive.breadcrumb { | |||
font-size: 1.71428571rem; | |||
} | |||
/******************************* | |||
Theme Overrides | |||
*******************************/ | |||
/******************************* | |||
Site Overrides | |||
*******************************/ | |||
@ -0,0 +1,10 @@ | |||
/*! | |||
* # Semantic UI 2.1.6 - Breadcrumb | |||
* http://github.com/semantic-org/semantic-ui/ | |||
* | |||
* | |||
* Copyright 2015 Contributors | |||
* Released under the MIT license | |||
* http://opensource.org/licenses/MIT | |||
* | |||
*/.ui.breadcrumb{line-height:1;display:inline-block;margin:0;vertical-align:middle}.ui.breadcrumb:first-child{margin-top:0}.ui.breadcrumb:last-child{margin-bottom:0}.ui.breadcrumb .divider{display:inline-block;opacity:.7;margin:0 .21428571rem;font-size:.92857143em;color:rgba(0,0,0,.4);vertical-align:baseline}.ui.breadcrumb a{color:#4183C4}.ui.breadcrumb a:hover{color:#1e70bf}.ui.breadcrumb .icon.divider{font-size:.85714286em;vertical-align:baseline}.ui.breadcrumb a.section{cursor:pointer}.ui.breadcrumb .section{display:inline-block;margin:0;padding:0}.ui.breadcrumb.segment{display:inline-block;padding:.71428571em 1em}.ui.breadcrumb .active.section{font-weight:700}.ui.mini.breadcrumb{font-size:.71428571rem}.ui.tiny.breadcrumb{font-size:.85714286rem}.ui.small.breadcrumb{font-size:.92857143rem}.ui.breadcrumb{font-size:1rem}.ui.large.breadcrumb{font-size:1.14285714rem}.ui.big.breadcrumb{font-size:1.28571429rem}.ui.huge.breadcrumb{font-size:1.42857143rem}.ui.massive.breadcrumb{font-size:1.71428571rem} |
@ -0,0 +1,955 @@ | |||
/*! | |||
* # Semantic UI 2.1.6 - Item | |||
* http://github.com/semantic-org/semantic-ui/ | |||
* | |||
* | |||
* Copyright 2015 Contributors | |||
* Released under the MIT license | |||
* http://opensource.org/licenses/MIT | |||
* | |||
*/ | |||
/******************************* | |||
Standard | |||
*******************************/ | |||
/*-------------- | |||
Card | |||
---------------*/ | |||
.ui.cards > .card, | |||
.ui.card { | |||
max-width: 100%; | |||
position: relative; | |||
display: -webkit-box; | |||
display: -webkit-flex; | |||
display: -ms-flexbox; | |||
display: flex; | |||
-webkit-box-orient: vertical; | |||
-webkit-box-direction: normal; | |||
-webkit-flex-direction: column; | |||
-ms-flex-direction: column; | |||
flex-direction: column; | |||
width: 290px; | |||
min-height: 0px; | |||
background: #FFFFFF; | |||
padding: 0em; | |||
border: none; | |||
border-radius: 0.28571429rem; | |||
box-shadow: 0px 1px 3px 0px #D4D4D5, 0px 0px 0px 1px #D4D4D5; | |||
-webkit-transition: box-shadow 0.1s ease, -webkit-transform 0.1s ease; | |||
transition: box-shadow 0.1s ease, transform 0.1s ease; | |||
z-index: ''; | |||
} | |||
.ui.card { | |||
margin: 1em 0em; | |||
} | |||
.ui.cards > .card a, | |||
.ui.card a { | |||
cursor: pointer; | |||
} | |||
.ui.card:first-child { | |||
margin-top: 0em; | |||
} | |||
.ui.card:last-child { | |||
margin-bottom: 0em; | |||
} | |||
/*-------------- | |||
Cards | |||
---------------*/ | |||
.ui.cards { | |||
display: -webkit-box; | |||
display: -webkit-flex; | |||
display: -ms-flexbox; | |||
display: flex; | |||
margin: -0.875em -0.5em; | |||
-webkit-flex-wrap: wrap; | |||
-ms-flex-wrap: wrap; | |||
flex-wrap: wrap; | |||
} | |||
.ui.cards > .card { | |||
display: -webkit-box; | |||
display: -webkit-flex; | |||
display: -ms-flexbox; | |||
display: flex; | |||
margin: 0.875em 0.5em; | |||
float: none; | |||
} | |||
/* Clearing */ | |||
.ui.cards:after, | |||
.ui.card:after { | |||
display: block; | |||
content: ' '; | |||
height: 0px; | |||
clear: both; | |||
overflow: hidden; | |||
visibility: hidden; | |||
} | |||
/* Consecutive Card Groups Preserve Row Spacing */ | |||
.ui.cards ~ .ui.cards { | |||
margin-top: 0.875em; | |||
} | |||
/*-------------- | |||
Rounded Edges | |||
---------------*/ | |||
.ui.cards > .card > :first-child, | |||
.ui.card > :first-child { | |||
border-radius: 0.28571429rem 0.28571429rem 0em 0em !important; | |||
border-top: none !important; | |||
} | |||
.ui.cards > .card > :last-child, | |||
.ui.card > :last-child { | |||
border-radius: 0em 0em 0.28571429rem 0.28571429rem !important; | |||
} | |||
.ui.cards > .card > :only-child, | |||
.ui.card > :only-child { | |||
border-radius: 0.28571429rem !important; | |||
} | |||
/*-------------- | |||
Images | |||
---------------*/ | |||
.ui.cards > .card > .image, | |||
.ui.card > .image { | |||
position: relative; | |||
display: block; | |||
-webkit-box-flex: 0; | |||
-webkit-flex: 0 0 auto; | |||
-ms-flex: 0 0 auto; | |||
flex: 0 0 auto; | |||
padding: 0em; | |||
background: rgba(0, 0, 0, 0.05); | |||
} | |||
.ui.cards > .card > .image > img, | |||
.ui.card > .image > img { | |||
display: block; | |||
width: 100%; | |||
height: auto; | |||
border-radius: inherit; | |||
} | |||
.ui.cards > .card > .image:not(.ui) > img, | |||
.ui.card > .image:not(.ui) > img { | |||
border: none; | |||
} | |||
/*-------------- | |||
Content | |||
---------------*/ | |||
.ui.cards > .card > .content, | |||
.ui.card > .content { | |||
-webkit-box-flex: 1; | |||
-webkit-flex-grow: 1; | |||
-ms-flex-positive: 1; | |||
flex-grow: 1; | |||
border: none; | |||
border-top: 1px solid rgba(34, 36, 38, 0.1); | |||
background: none; | |||
margin: 0em; | |||
padding: 1em 1em; | |||
box-shadow: none; | |||
font-size: 1em; | |||
border-radius: 0em; | |||
} | |||
.ui.cards > .card > .content:after, | |||
.ui.card > .content:after { | |||
display: block; | |||
content: ' '; | |||
height: 0px; | |||
clear: both; | |||
overflow: hidden; | |||
visibility: hidden; | |||
} | |||
.ui.cards > .card > .content > .header, | |||
.ui.card > .content > .header { | |||
display: block; | |||
margin: ''; | |||
font-family: 'Lato', 'Helvetica Neue', Arial, Helvetica, sans-serif; | |||
color: rgba(0, 0, 0, 0.85); | |||
} | |||
/* Default Header Size */ | |||
.ui.cards > .card > .content > .header:not(.ui), | |||
.ui.card > .content > .header:not(.ui) { | |||
font-weight: bold; | |||
font-size: 1.28571429em; | |||
margin-top: -0.21425em; | |||
line-height: 1.2857em; | |||
} | |||
.ui.cards > .card > .content > .meta + .description, | |||
.ui.cards > .card > .content > .header + .description, | |||
.ui.card > .content > .meta + .description, | |||
.ui.card > .content > .header + .description { | |||
margin-top: 0.5em; | |||
} | |||
/*---------------- | |||
Floated Content | |||
-----------------*/ | |||
.ui.cards > .card [class*="left floated"], | |||
.ui.card [class*="left floated"] { | |||
float: left; | |||
} | |||
.ui.cards > .card [class*="right floated"], | |||
.ui.card [class*="right floated"] { | |||
float: right; | |||
} | |||
/*-------------- | |||
Aligned | |||
---------------*/ | |||
.ui.cards > .card [class*="left aligned"], | |||
.ui.card [class*="left aligned"] { | |||
text-align: left; | |||
} | |||
.ui.cards > .card [class*="center aligned"], | |||
.ui.card [class*="center aligned"] { | |||
text-align: center; | |||
} | |||
.ui.cards > .card [class*="right aligned"], | |||
.ui.card [class*="right aligned"] { | |||
text-align: right; | |||
} | |||
/*-------------- | |||
Content Image | |||
---------------*/ | |||
.ui.cards > .card .content img, | |||
.ui.card .content img { | |||
display: inline-block; | |||
vertical-align: middle; | |||
width: ''; | |||
} | |||
.ui.cards > .card img.avatar, | |||
.ui.cards > .card .avatar img, | |||
.ui.card img.avatar, | |||
.ui.card .avatar img { | |||
width: 2em; | |||
height: 2em; | |||
border-radius: 500rem; | |||
} | |||
/*-------------- | |||
Description | |||
---------------*/ | |||
.ui.cards > .card > .content > .description, | |||
.ui.card > .content > .description { | |||
clear: both; | |||
color: rgba(0, 0, 0, 0.68); | |||
} | |||
/*-------------- | |||
Paragraph | |||
---------------*/ | |||
.ui.cards > .card > .content p, | |||
.ui.card > .content p { | |||
margin: 0em 0em 0.5em; | |||
} | |||
.ui.cards > .card > .content p:last-child, | |||
.ui.card > .content p:last-child { | |||
margin-bottom: 0em; | |||
} | |||
/*-------------- | |||
Meta | |||
---------------*/ | |||
.ui.cards > .card .meta, | |||
.ui.card .meta { | |||
font-size: 1em; | |||
color: rgba(0, 0, 0, 0.4); | |||
} | |||
.ui.cards > .card .meta *, | |||
.ui.card .meta * { | |||
margin-right: 0.3em; | |||
} | |||
.ui.cards > .card .meta :last-child, | |||
.ui.card .meta :last-child { | |||
margin-right: 0em; | |||
} | |||
.ui.cards > .card .meta [class*="right floated"], | |||
.ui.card .meta [class*="right floated"] { | |||
margin-right: 0em; | |||
margin-left: 0.3em; | |||
} | |||
/*-------------- | |||
Links | |||
---------------*/ | |||
/* Generic */ | |||
.ui.cards > .card > .content a:not(.ui), | |||
.ui.card > .content a:not(.ui) { | |||
color: ''; | |||
-webkit-transition: color 0.1s ease; | |||
transition: color 0.1s ease; | |||
} | |||
.ui.cards > .card > .content a:not(.ui):hover, | |||
.ui.card > .content a:not(.ui):hover { | |||
color: ''; | |||
} | |||
/* Header */ | |||
.ui.cards > .card > .content > a.header, | |||
.ui.card > .content > a.header { | |||
color: rgba(0, 0, 0, 0.85); | |||
} | |||
.ui.cards > .card > .content > a.header:hover, | |||
.ui.card > .content > a.header:hover { | |||
color: #1e70bf; | |||
} | |||
/* Meta */ | |||
.ui.cards > .card .meta > a:not(.ui), | |||
.ui.card .meta > a:not(.ui) { | |||
color: rgba(0, 0, 0, 0.4); | |||
} | |||
.ui.cards > .card .meta > a:not(.ui):hover, | |||
.ui.card .meta > a:not(.ui):hover { | |||
color: rgba(0, 0, 0, 0.87); | |||
} | |||
/*-------------- | |||
Buttons | |||
---------------*/ | |||
.ui.cards > .card > .buttons, | |||
.ui.card > .buttons, | |||
.ui.cards > .card > .button, | |||
.ui.card > .button { | |||
margin: 0px -1px; | |||
width: calc(100% + 2px ); | |||
} | |||
/*-------------- | |||
Dimmer | |||
---------------*/ | |||
.ui.cards > .card .dimmer, | |||
.ui.card .dimmer { | |||
background-color: ''; | |||
z-index: 10; | |||
} | |||
/*-------------- | |||
Labels | |||
---------------*/ | |||
/*-----Star----- */ | |||
/* Icon */ | |||
.ui.cards > .card > .content .star.icon, | |||
.ui.card > .content .star.icon { | |||
cursor: pointer; | |||
opacity: 0.75; | |||
-webkit-transition: color 0.1s ease; | |||
transition: color 0.1s ease; | |||
} | |||
.ui.cards > .card > .content .star.icon:hover, | |||
.ui.card > .content .star.icon:hover { | |||
opacity: 1; | |||
color: #FFB70A; | |||
} | |||
.ui.cards > .card > .content .active.star.icon, | |||
.ui.card > .content .active.star.icon { | |||
color: #FFE623; | |||
} | |||
/*-----Like----- */ | |||
/* Icon */ | |||
.ui.cards > .card > .content .like.icon, | |||
.ui.card > .content .like.icon { | |||
cursor: pointer; | |||
opacity: 0.75; | |||
-webkit-transition: color 0.1s ease; | |||
transition: color 0.1s ease; | |||
} | |||
.ui.cards > .card > .content .like.icon:hover, | |||
.ui.card > .content .like.icon:hover { | |||
opacity: 1; | |||
color: #FF2733; | |||
} | |||
.ui.cards > .card > .content .active.like.icon, | |||
.ui.card > .content .active.like.icon { | |||
color: #FF2733; | |||
} | |||
/*---------------- | |||
Extra Content | |||
-----------------*/ | |||
.ui.cards > .card > .extra, | |||
.ui.card > .extra { | |||
max-width: 100%; | |||
min-height: 0em !important; | |||
-webkit-box-flex: 0; | |||
-webkit-flex-grow: 0; | |||
-ms-flex-positive: 0; | |||
flex-grow: 0; | |||
border-top: 1px solid rgba(0, 0, 0, 0.05) !important; | |||
position: static; | |||
background: none; | |||
width: auto; | |||
margin: 0em 0em; | |||
padding: 0.75em 1em; | |||
top: 0em; | |||
left: 0em; | |||
color: rgba(0, 0, 0, 0.4); | |||
box-shadow: none; | |||
-webkit-transition: color 0.1s ease; | |||
transition: color 0.1s ease; | |||
} | |||
.ui.cards > .card > .extra a:not(.ui), | |||
.ui.card > .extra a:not(.ui) { | |||
color: rgba(0, 0, 0, 0.4); | |||
} | |||
.ui.cards > .card > .extra a:not(.ui):hover, | |||
.ui.card > .extra a:not(.ui):hover { | |||
color: #1e70bf; | |||
} | |||
/******************************* | |||
Variations | |||
*******************************/ | |||
/*------------------- | |||
Centered | |||
--------------------*/ | |||
.ui.centered.cards { | |||
-webkit-box-pack: center; | |||
-webkit-justify-content: center; | |||
-ms-flex-pack: center; | |||
justify-content: center; | |||
} | |||
.ui.centered.card { | |||
margin-left: auto; | |||
margin-right: auto; | |||
} | |||
/*------------------- | |||
Fluid | |||
--------------------*/ | |||
.ui.fluid.card { | |||
width: 100%; | |||
max-width: 9999px; | |||
} | |||
/*------------------- | |||
Link | |||
--------------------*/ | |||
.ui.cards a.card, | |||
.ui.link.cards .card, | |||
a.ui.card, | |||
.ui.link.card { | |||
-webkit-transform: none; | |||
-ms-transform: none; | |||
transform: none; | |||
} | |||
.ui.cards a.card:hover, | |||
.ui.link.cards .card:hover, | |||
a.ui.card:hover, | |||
.ui.link.card:hover { | |||
cursor: pointer; | |||
z-index: 5; | |||
background: #FFFFFF; | |||
border: none; | |||
box-shadow: 0px 1px 3px 0px #BCBDBD, 0px 0px 0px 1px #D4D4D5; | |||
-webkit-transform: translateY(-3px); | |||
-ms-transform: translateY(-3px); | |||
transform: translateY(-3px); | |||
} | |||
/*------------------- | |||
Colors | |||
--------------------*/ | |||
/* Red */ | |||
.ui.red.cards > .card, | |||
.ui.cards > .red.card, | |||
.ui.red.card { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #DB2828, 0px 1px 3px 0px #D4D4D5; | |||
} | |||
.ui.red.cards > .card:hover, | |||
.ui.cards > .red.card:hover, | |||
.ui.red.card:hover { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #d01919, 0px 1px 3px 0px #BCBDBD; | |||
} | |||
/* Orange */ | |||
.ui.orange.cards > .card, | |||
.ui.cards > .orange.card, | |||
.ui.orange.card { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #F2711C, 0px 1px 3px 0px #D4D4D5; | |||
} | |||
.ui.orange.cards > .card:hover, | |||
.ui.cards > .orange.card:hover, | |||
.ui.orange.card:hover { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #f26202, 0px 1px 3px 0px #BCBDBD; | |||
} | |||
/* Yellow */ | |||
.ui.yellow.cards > .card, | |||
.ui.cards > .yellow.card, | |||
.ui.yellow.card { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #FBBD08, 0px 1px 3px 0px #D4D4D5; | |||
} | |||
.ui.yellow.cards > .card:hover, | |||
.ui.cards > .yellow.card:hover, | |||
.ui.yellow.card:hover { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #eaae00, 0px 1px 3px 0px #BCBDBD; | |||
} | |||
/* Olive */ | |||
.ui.olive.cards > .card, | |||
.ui.cards > .olive.card, | |||
.ui.olive.card { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #B5CC18, 0px 1px 3px 0px #D4D4D5; | |||
} | |||
.ui.olive.cards > .card:hover, | |||
.ui.cards > .olive.card:hover, | |||
.ui.olive.card:hover { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #a7bd0d, 0px 1px 3px 0px #BCBDBD; | |||
} | |||
/* Green */ | |||
.ui.green.cards > .card, | |||
.ui.cards > .green.card, | |||
.ui.green.card { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #21BA45, 0px 1px 3px 0px #D4D4D5; | |||
} | |||
.ui.green.cards > .card:hover, | |||
.ui.cards > .green.card:hover, | |||
.ui.green.card:hover { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #16ab39, 0px 1px 3px 0px #BCBDBD; | |||
} | |||
/* Teal */ | |||
.ui.teal.cards > .card, | |||
.ui.cards > .teal.card, | |||
.ui.teal.card { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #00B5AD, 0px 1px 3px 0px #D4D4D5; | |||
} | |||
.ui.teal.cards > .card:hover, | |||
.ui.cards > .teal.card:hover, | |||
.ui.teal.card:hover { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #009c95, 0px 1px 3px 0px #BCBDBD; | |||
} | |||
/* Blue */ | |||
.ui.blue.cards > .card, | |||
.ui.cards > .blue.card, | |||
.ui.blue.card { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #2185D0, 0px 1px 3px 0px #D4D4D5; | |||
} | |||
.ui.blue.cards > .card:hover, | |||
.ui.cards > .blue.card:hover, | |||
.ui.blue.card:hover { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #1678c2, 0px 1px 3px 0px #BCBDBD; | |||
} | |||
/* Violet */ | |||
.ui.violet.cards > .card, | |||
.ui.cards > .violet.card, | |||
.ui.violet.card { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #6435C9, 0px 1px 3px 0px #D4D4D5; | |||
} | |||
.ui.violet.cards > .card:hover, | |||
.ui.cards > .violet.card:hover, | |||
.ui.violet.card:hover { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #5829bb, 0px 1px 3px 0px #BCBDBD; | |||
} | |||
/* Purple */ | |||
.ui.purple.cards > .card, | |||
.ui.cards > .purple.card, | |||
.ui.purple.card { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #A333C8, 0px 1px 3px 0px #D4D4D5; | |||
} | |||
.ui.purple.cards > .card:hover, | |||
.ui.cards > .purple.card:hover, | |||
.ui.purple.card:hover { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #9627ba, 0px 1px 3px 0px #BCBDBD; | |||
} | |||
/* Pink */ | |||
.ui.pink.cards > .card, | |||
.ui.cards > .pink.card, | |||
.ui.pink.card { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #E03997, 0px 1px 3px 0px #D4D4D5; | |||
} | |||
.ui.pink.cards > .card:hover, | |||
.ui.cards > .pink.card:hover, | |||
.ui.pink.card:hover { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #e61a8d, 0px 1px 3px 0px #BCBDBD; | |||
} | |||
/* Brown */ | |||
.ui.brown.cards > .card, | |||
.ui.cards > .brown.card, | |||
.ui.brown.card { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #A5673F, 0px 1px 3px 0px #D4D4D5; | |||
} | |||
.ui.brown.cards > .card:hover, | |||
.ui.cards > .brown.card:hover, | |||
.ui.brown.card:hover { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #975b33, 0px 1px 3px 0px #BCBDBD; | |||
} | |||
/* Grey */ | |||
.ui.grey.cards > .card, | |||
.ui.cards > .grey.card, | |||
.ui.grey.card { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #767676, 0px 1px 3px 0px #D4D4D5; | |||
} | |||
.ui.grey.cards > .card:hover, | |||
.ui.cards > .grey.card:hover, | |||
.ui.grey.card:hover { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #838383, 0px 1px 3px 0px #BCBDBD; | |||
} | |||
/* Black */ | |||
.ui.black.cards > .card, | |||
.ui.cards > .black.card, | |||
.ui.black.card { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #1B1C1D, 0px 1px 3px 0px #D4D4D5; | |||
} | |||
.ui.black.cards > .card:hover, | |||
.ui.cards > .black.card:hover, | |||
.ui.black.card:hover { | |||
box-shadow: 0px 0px 0px 1px #D4D4D5, 0px 2px 0px 0px #27292a, 0px 1px 3px 0px #BCBDBD; | |||
} | |||
/*-------------- | |||
Card Count | |||
---------------*/ | |||
.ui.one.cards { | |||
margin-left: 0em; | |||
margin-right: 0em; | |||
} | |||
.ui.one.cards > .card { | |||
width: 100%; | |||
} | |||
.ui.two.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.two.cards > .card { | |||
width: calc( 50% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.three.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.three.cards > .card { | |||
width: calc( 33.33333333% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.four.cards { | |||
margin-left: -0.75em; | |||
margin-right: -0.75em; | |||
} | |||
.ui.four.cards > .card { | |||
width: calc( 25% - 1.5em ); | |||
margin-left: 0.75em; | |||
margin-right: 0.75em; | |||
} | |||
.ui.five.cards { | |||
margin-left: -0.75em; | |||
margin-right: -0.75em; | |||
} | |||
.ui.five.cards > .card { | |||
width: calc( 20% - 1.5em ); | |||
margin-left: 0.75em; | |||
margin-right: 0.75em; | |||
} | |||
.ui.six.cards { | |||
margin-left: -0.75em; | |||
margin-right: -0.75em; | |||
} | |||
.ui.six.cards > .card { | |||
width: calc( 16.66666667% - 1.5em ); | |||
margin-left: 0.75em; | |||
margin-right: 0.75em; | |||
} | |||
.ui.seven.cards { | |||
margin-left: -0.5em; | |||
margin-right: -0.5em; | |||
} | |||
.ui.seven.cards > .card { | |||
width: calc( 14.28571429% - 1em ); | |||
margin-left: 0.5em; | |||
margin-right: 0.5em; | |||
} | |||
.ui.eight.cards { | |||
margin-left: -0.5em; | |||
margin-right: -0.5em; | |||
} | |||
.ui.eight.cards > .card { | |||
width: calc( 12.5% - 1em ); | |||
margin-left: 0.5em; | |||
margin-right: 0.5em; | |||
font-size: 11px; | |||
} | |||
.ui.nine.cards { | |||
margin-left: -0.5em; | |||
margin-right: -0.5em; | |||
} | |||
.ui.nine.cards > .card { | |||
width: calc( 11.11111111% - 1em ); | |||
margin-left: 0.5em; | |||
margin-right: 0.5em; | |||
font-size: 10px; | |||
} | |||
.ui.ten.cards { | |||
margin-left: -0.5em; | |||
margin-right: -0.5em; | |||
} | |||
.ui.ten.cards > .card { | |||
width: calc( 10% - 1em ); | |||
margin-left: 0.5em; | |||
margin-right: 0.5em; | |||
} | |||
/*------------------- | |||
Doubling | |||
--------------------*/ | |||
/* Mobily Only */ | |||
@media only screen and (max-width: 767px) { | |||
.ui.two.doubling.cards { | |||
margin-left: 0em; | |||
margin-right: 0em; | |||
} | |||
.ui.two.doubling.cards .card { | |||
width: 100%; | |||
margin-left: 0em; | |||
margin-right: 0em; | |||
} | |||
.ui.three.doubling.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.three.doubling.cards .card { | |||
width: calc( 50% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.four.doubling.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.four.doubling.cards .card { | |||
width: calc( 50% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.five.doubling.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.five.doubling.cards .card { | |||
width: calc( 50% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.six.doubling.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.six.doubling.cards .card { | |||
width: calc( 50% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.seven.doubling.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.seven.doubling.cards .card { | |||
width: calc( 33.33333333% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.eight.doubling.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.eight.doubling.cards .card { | |||
width: calc( 33.33333333% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.nine.doubling.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.nine.doubling.cards .card { | |||
width: calc( 33.33333333% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.ten.doubling.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.ten.doubling.cards .card { | |||
width: calc( 33.33333333% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
} | |||
/* Tablet Only */ | |||
@media only screen and (min-width: 768px) and (max-width: 991px) { | |||
.ui.two.doubling.cards { | |||
margin-left: 0em; | |||
margin-right: 0em; | |||
} | |||
.ui.two.doubling.cards .card { | |||
width: 100%; | |||
margin-left: 0em; | |||
margin-right: 0em; | |||
} | |||
.ui.three.doubling.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.three.doubling.cards .card { | |||
width: calc( 50% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.four.doubling.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.four.doubling.cards .card { | |||
width: calc( 50% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.five.doubling.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.five.doubling.cards .card { | |||
width: calc( 33.33333333% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.six.doubling.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.six.doubling.cards .card { | |||
width: calc( 33.33333333% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.eight.doubling.cards { | |||
margin-left: -1em; | |||
margin-right: -1em; | |||
} | |||
.ui.eight.doubling.cards .card { | |||
width: calc( 33.33333333% - 2em ); | |||
margin-left: 1em; | |||
margin-right: 1em; | |||
} | |||
.ui.eight.doubling.cards { | |||
margin-left: -0.75em; | |||
margin-right: -0.75em; | |||
} | |||
.ui.eight.doubling.cards .card { | |||
width: calc( 25% - 1.5em ); | |||
margin-left: 0.75em; | |||
margin-right: 0.75em; | |||
} | |||
.ui.nine.doubling.cards { | |||
margin-left: -0.75em; | |||
margin-right: -0.75em; | |||
} | |||
.ui.nine.doubling.cards .card { | |||
width: calc( 25% - 1.5em ); | |||
margin-left: 0.75em; | |||
margin-right: 0.75em; | |||
} | |||
.ui.ten.doubling.cards { | |||
margin-left: -0.75em; | |||
margin-right: -0.75em; | |||
} | |||
.ui.ten.doubling.cards .card { | |||
width: calc( 20% - 1.5em ); | |||
margin-left: 0.75em; | |||
margin-right: 0.75em; | |||
} | |||
} | |||
/*------------------- | |||
Stackable | |||
--------------------*/ | |||
@media only screen and (max-width: 767px) { | |||
.ui.stackable.cards { | |||
display: block !important; | |||
} | |||
.ui.stackable.cards .card:first-child { | |||
margin-top: 0em !important; | |||
} | |||
.ui.stackable.cards > .card { | |||
display: block !important; | |||
height: auto !important; | |||
margin: 1em 1em; | |||
padding: 0 !important; | |||
width: calc( 100% - 2em ) !important; | |||
} | |||
} | |||
/*-------------- | |||
Size | |||
---------------*/ | |||
.ui.cards > .card { | |||
font-size: 1em; | |||
} | |||
/******************************* | |||
Theme Overrides | |||
*******************************/ | |||
/******************************* | |||
User Variable Overrides | |||
*******************************/ | |||
@ -0,0 +1,624 @@ | |||
/*! | |||
* # Semantic UI 2.1.6 - Checkbox | |||
* http://github.com/semantic-org/semantic-ui/ | |||
* | |||
* | |||
* Copyright 2015 Contributors | |||
* Released under the MIT license | |||
* http://opensource.org/licenses/MIT | |||
* | |||
*/ | |||
/******************************* | |||
Checkbox | |||
*******************************/ | |||
/*-------------- | |||
Content | |||
---------------*/ | |||
.ui.checkbox { | |||
position: relative; | |||
display: inline-block; | |||
-webkit-backface-visibility: hidden; | |||
backface-visibility: hidden; | |||
outline: none; | |||
vertical-align: baseline; | |||
font-style: normal; | |||
min-height: 17px; | |||
font-size: 1rem; | |||
line-height: 17px; | |||
min-width: 17px; | |||
} | |||
/* HTML Checkbox */ | |||
.ui.checkbox input[type="checkbox"], | |||
.ui.checkbox input[type="radio"] { | |||
cursor: pointer; | |||
position: absolute; | |||
top: 0px; | |||
left: 0px; | |||
opacity: 0 !important; | |||
outline: none; | |||
z-index: 3; | |||
width: 17px; | |||
height: 17px; | |||
} | |||
/*-------------- | |||
Box | |||
---------------*/ | |||
.ui.checkbox .box, | |||
.ui.checkbox label { | |||
cursor: auto; | |||
position: relative; | |||
display: block; | |||
padding-left: 1.85714em; | |||
outline: none; | |||
font-size: 1em; | |||
} | |||
.ui.checkbox .box:before, | |||
.ui.checkbox label:before { | |||
position: absolute; | |||
top: 0px; | |||
left: 0px; | |||
width: 17px; | |||
height: 17px; | |||
content: ''; | |||
background: #FFFFFF; | |||
border-radius: 0.21428571rem; | |||
-webkit-transition: border 0.1s ease, opacity 0.1s ease, -webkit-transform 0.1s ease, box-shadow 0.1s ease; | |||
transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease; | |||
border: 1px solid #D4D4D5; | |||
} | |||
/*-------------- | |||
Checkmark | |||
---------------*/ | |||
.ui.checkbox .box:after, | |||
.ui.checkbox label:after { | |||
position: absolute; | |||
font-size: 14px; | |||
top: 0px; | |||
left: 0px; | |||
width: 17px; | |||
height: 17px; | |||
text-align: center; | |||
opacity: 0; | |||
color: rgba(0, 0, 0, 0.87); | |||
-webkit-transition: border 0.1s ease, opacity 0.1s ease, -webkit-transform 0.1s ease, box-shadow 0.1s ease; | |||
transition: border 0.1s ease, opacity 0.1s ease, transform 0.1s ease, box-shadow 0.1s ease; | |||
} | |||
/*-------------- | |||
Label | |||
---------------*/ | |||
/* Inside */ | |||
.ui.checkbox label, | |||
.ui.checkbox + label { | |||
color: rgba(0, 0, 0, 0.87); | |||
-webkit-transition: color 0.1s ease; | |||
transition: color 0.1s ease; | |||
} | |||
/* Outside */ | |||
.ui.checkbox + label { | |||
vertical-align: middle; | |||
} | |||
/******************************* | |||
States | |||
*******************************/ | |||
/*-------------- | |||
Hover | |||
---------------*/ | |||
.ui.checkbox .box:hover::before, | |||
.ui.checkbox label:hover::before { | |||
background: #FFFFFF; | |||
border-color: rgba(34, 36, 38, 0.35); | |||
} | |||
.ui.checkbox label:hover, | |||
.ui.checkbox + label:hover { | |||
color: rgba(0, 0, 0, 0.8); | |||
} | |||
/*-------------- | |||
Down | |||
---------------*/ | |||
.ui.checkbox .box:active::before, | |||
.ui.checkbox label:active::before { | |||
background: #F9FAFB; | |||
border-color: rgba(34, 36, 38, 0.35); | |||
} | |||
.ui.checkbox .box:active::after, | |||
.ui.checkbox label:active::after { | |||
color: rgba(0, 0, 0, 0.95); | |||
} | |||
.ui.checkbox input:active ~ label { | |||
color: rgba(0, 0, 0, 0.95); | |||
} | |||
/*-------------- | |||
Focus | |||
---------------*/ | |||
.ui.checkbox input:focus ~ .box:before, | |||
.ui.checkbox input:focus ~ label:before { | |||
background: #FFFFFF; | |||
border-color: #96C8DA; | |||
} | |||
.ui.checkbox input:focus ~ .box:after, | |||
.ui.checkbox input:focus ~ label:after { | |||
color: rgba(0, 0, 0, 0.95); | |||
} | |||
.ui.checkbox input:focus ~ label { | |||
color: rgba(0, 0, 0, 0.95); | |||
} | |||
/*-------------- | |||
Active | |||
---------------*/ | |||
.ui.checkbox input:checked ~ .box:before, | |||
.ui.checkbox input:checked ~ label:before { | |||
background: #FFFFFF; | |||
border-color: rgba(34, 36, 38, 0.35); | |||
} | |||
.ui.checkbox input:checked ~ .box:after, | |||
.ui.checkbox input:checked ~ label:after { | |||
opacity: 1; | |||
color: rgba(0, 0, 0, 0.95); | |||
} | |||
/*-------------- | |||
Indeterminate | |||
---------------*/ | |||
.ui.checkbox input:indeterminate ~ .box:before, | |||
.ui.checkbox input:indeterminate ~ label:before { | |||
background: #FFFFFF; | |||
border-color: rgba(34, 36, 38, 0.35); | |||
} | |||
.ui.checkbox input:indeterminate ~ .box:after, | |||
.ui.checkbox input:indeterminate ~ label:after { | |||
opacity: 1; | |||
color: rgba(0, 0, 0, 0.95); | |||
} | |||
/*-------------- | |||
Active Focus | |||
---------------*/ | |||
.ui.checkbox input:indeterminate:focus ~ .box:before, | |||
.ui.checkbox input:indeterminate:focus ~ label:before, | |||
.ui.checkbox input:checked:focus ~ .box:before, | |||
.ui.checkbox input:checked:focus ~ label:before { | |||
background: #FFFFFF; | |||
border-color: #96C8DA; | |||
} | |||
.ui.checkbox input:indeterminate:focus ~ .box:after, | |||
.ui.checkbox input:indeterminate:focus ~ label:after, | |||
.ui.checkbox input:checked:focus ~ .box:after, | |||
.ui.checkbox input:checked:focus ~ label:after { | |||
color: rgba(0, 0, 0, 0.95); | |||
} | |||
/*-------------- | |||
Read-Only | |||
---------------*/ | |||
.ui.read-only.checkbox, | |||
.ui.read-only.checkbox label { | |||
cursor: default; | |||
} | |||
/*-------------- | |||
Disabled | |||
---------------*/ | |||
.ui.disabled.checkbox .box:after, | |||
.ui.disabled.checkbox label, | |||
.ui.checkbox input[disabled] ~ .box:after, | |||
.ui.checkbox input[disabled] ~ label { | |||
cursor: default; | |||
opacity: 0.5; | |||
color: #000000; | |||
} | |||
/*-------------- | |||
Hidden | |||
---------------*/ | |||
/* Initialized checkbox moves input below element | |||
to prevent manually triggering */ | |||
.ui.checkbox input.hidden { | |||
z-index: -1; | |||
} | |||
/* Selectable Label */ | |||
.ui.checkbox input.hidden + label { | |||
cursor: pointer; | |||
-webkit-user-select: none; | |||
-moz-user-select: none; | |||
-ms-user-select: none; | |||
user-select: none; | |||
} | |||
/******************************* | |||
Types | |||
*******************************/ | |||
/*-------------- | |||
Radio | |||
---------------*/ | |||
.ui.radio.checkbox { | |||
min-height: 15px; | |||
} | |||
.ui.radio.checkbox .box, | |||
.ui.radio.checkbox label { | |||
padding-left: 1.85714em; | |||
} | |||
/* Box */ | |||
.ui.radio.checkbox .box:before, | |||
.ui.radio.checkbox label:before { | |||
content: ''; | |||
-webkit-transform: none; | |||
-ms-transform: none; | |||
transform: none; | |||
width: 15px; | |||
height: 15px; | |||
border-radius: 500rem; | |||
top: 1px; | |||
left: 0px; | |||
} | |||
/* Bullet */ | |||
.ui.radio.checkbox .box:after, | |||
.ui.radio.checkbox label:after { | |||
border: none; | |||
content: '' !important; | |||
width: 15px; | |||
height: 15px; | |||
line-height: 15px; | |||
} | |||
/* Radio Checkbox */ | |||
.ui.radio.checkbox .box:after, | |||
.ui.radio.checkbox label:after { | |||
top: 1px; | |||
left: 0px; | |||
width: 15px; | |||
height: 15px; | |||
border-radius: 500rem; | |||
-webkit-transform: scale(0.46666667); | |||
-ms-transform: scale(0.46666667); | |||
transform: scale(0.46666667); | |||
background-color: rgba(0, 0, 0, 0.87); | |||
} | |||
/* Focus */ | |||
.ui.radio.checkbox input:focus ~ .box:before, | |||
.ui.radio.checkbox input:focus ~ label:before { | |||
background-color: #FFFFFF; | |||
} | |||
.ui.radio.checkbox input:focus ~ .box:after, | |||
.ui.radio.checkbox input:focus ~ label:after { | |||
background-color: rgba(0, 0, 0, 0.95); | |||
} | |||
/* Indeterminate */ | |||
.ui.radio.checkbox input:indeterminate ~ .box:after, | |||
.ui.radio.checkbox input:indeterminate ~ label:after { | |||
opacity: 0; | |||
} | |||
/* Active */ | |||
.ui.radio.checkbox input:checked ~ .box:before, | |||
.ui.radio.checkbox input:checked ~ label:before { | |||
background-color: #FFFFFF; | |||
} | |||
.ui.radio.checkbox input:checked ~ .box:after, | |||
.ui.radio.checkbox input:checked ~ label:after { | |||
background-color: rgba(0, 0, 0, 0.95); | |||
} | |||
/* Active Focus */ | |||
.ui.radio.checkbox input:focus:checked ~ .box:before, | |||
.ui.radio.checkbox input:focus:checked ~ label:before { | |||
background-color: #FFFFFF; | |||
} | |||
.ui.radio.checkbox input:focus:checked ~ .box:after, | |||
.ui.radio.checkbox input:focus:checked ~ label:after { | |||
background-color: rgba(0, 0, 0, 0.95); | |||
} | |||
/*-------------- | |||
Slider | |||
---------------*/ | |||
.ui.slider.checkbox { | |||
min-height: 1.25rem; | |||
} | |||
/* Input */ | |||
.ui.slider.checkbox input { | |||
width: 3.5rem; | |||
height: 1.25rem; | |||
} | |||
/* Label */ | |||
.ui.slider.checkbox .box, | |||
.ui.slider.checkbox label { | |||
padding-left: 4.5rem; | |||
line-height: 1rem; | |||
color: rgba(0, 0, 0, 0.4); | |||
} | |||
/* Line */ | |||
.ui.slider.checkbox .box:before, | |||
.ui.slider.checkbox label:before { | |||
display: block; | |||
position: absolute; | |||
content: ''; | |||
border: none !important; | |||
left: 0em; | |||
z-index: 1; | |||
top: 0.4rem; | |||
background-color: rgba(0, 0, 0, 0.05); | |||
width: 3.5rem; | |||
height: 0.21428571rem; | |||
-webkit-transform: none; | |||
-ms-transform: none; | |||
transform: none; | |||
border-radius: 500rem; | |||
-webkit-transition: background 0.3s ease; | |||
transition: background 0.3s ease; | |||
} | |||
/* Handle */ | |||
.ui.slider.checkbox .box:after, | |||
.ui.slider.checkbox label:after { | |||
background: #FFFFFF -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05)); | |||
background: #FFFFFF linear-gradient(transparent, rgba(0, 0, 0, 0.05)); | |||
position: absolute; | |||
content: '' !important; | |||
opacity: 1; | |||
z-index: 2; | |||
border: none; | |||
box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset; | |||
width: 1.5rem; | |||
height: 1.5rem; | |||
top: -0.25rem; | |||
left: 0em; | |||
-webkit-transform: none; | |||
-ms-transform: none; | |||
transform: none; | |||
border-radius: 500rem; | |||
-webkit-transition: left 0.3s ease; | |||
transition: left 0.3s ease; | |||
} | |||
/* Focus */ | |||
.ui.slider.checkbox input:focus ~ .box:before, | |||
.ui.slider.checkbox input:focus ~ label:before { | |||
background-color: rgba(0, 0, 0, 0.15); | |||
border: none; | |||
} | |||
/* Hover */ | |||
.ui.slider.checkbox .box:hover, | |||
.ui.slider.checkbox label:hover { | |||
color: rgba(0, 0, 0, 0.8); | |||
} | |||
.ui.slider.checkbox .box:hover::before, | |||
.ui.slider.checkbox label:hover::before { | |||
background: rgba(0, 0, 0, 0.15); | |||
} | |||
/* Active */ | |||
.ui.slider.checkbox input:checked ~ .box, | |||
.ui.slider.checkbox input:checked ~ label { | |||
color: rgba(0, 0, 0, 0.95) !important; | |||
} | |||
.ui.slider.checkbox input:checked ~ .box:before, | |||
.ui.slider.checkbox input:checked ~ label:before { | |||
background-color: #545454 !important; | |||
} | |||
.ui.slider.checkbox input:checked ~ .box:after, | |||
.ui.slider.checkbox input:checked ~ label:after { | |||
left: 2rem; | |||
} | |||
/* Active Focus */ | |||
.ui.slider.checkbox input:focus:checked ~ .box, | |||
.ui.slider.checkbox input:focus:checked ~ label { | |||
color: rgba(0, 0, 0, 0.95) !important; | |||
} | |||
.ui.slider.checkbox input:focus:checked ~ .box:before, | |||
.ui.slider.checkbox input:focus:checked ~ label:before { | |||
background-color: #000000 !important; | |||
} | |||
/*-------------- | |||
Toggle | |||
---------------*/ | |||
.ui.toggle.checkbox { | |||
min-height: 1.5rem; | |||
} | |||
/* Input */ | |||
.ui.toggle.checkbox input { | |||
width: 3.5rem; | |||
height: 1.5rem; | |||
} | |||
/* Label */ | |||
.ui.toggle.checkbox .box, | |||
.ui.toggle.checkbox label { | |||
min-height: 1.5rem; | |||
padding-left: 4.5rem; | |||
color: rgba(0, 0, 0, 0.87); | |||
} | |||
.ui.toggle.checkbox label { | |||
padding-top: 0.15em; | |||
} | |||
/* Switch */ | |||
.ui.toggle.checkbox .box:before, | |||
.ui.toggle.checkbox label:before { | |||
display: block; | |||
position: absolute; | |||
content: ''; | |||
z-index: 1; | |||
-webkit-transform: none; | |||
-ms-transform: none; | |||
transform: none; | |||
border: none; | |||
top: 0rem; | |||
background: rgba(0, 0, 0, 0.05); | |||
width: 3.5rem; | |||
height: 1.5rem; | |||
border-radius: 500rem; | |||
} | |||
/* Handle */ | |||
.ui.toggle.checkbox .box:after, | |||
.ui.toggle.checkbox label:after { | |||
background: #FFFFFF -webkit-linear-gradient(transparent, rgba(0, 0, 0, 0.05)); | |||
background: #FFFFFF linear-gradient(transparent, rgba(0, 0, 0, 0.05)); | |||
position: absolute; | |||
content: '' !important; | |||
opacity: 1; | |||
z-index: 2; | |||
border: none; | |||
box-shadow: 0px 1px 2px 0 rgba(34, 36, 38, 0.15), 0px 0px 0px 1px rgba(34, 36, 38, 0.15) inset; | |||
width: 1.5rem; | |||
height: 1.5rem; | |||
top: 0rem; | |||
left: 0em; | |||
border-radius: 500rem; | |||
-webkit-transition: background 0.3s ease, left 0.3s ease; | |||
transition: background 0.3s ease, left 0.3s ease; | |||
} | |||
.ui.toggle.checkbox input ~ .box:after, | |||
.ui.toggle.checkbox input ~ label:after { | |||
left: -0.05rem; | |||
} | |||
/* Focus */ | |||
.ui.toggle.checkbox input:focus ~ .box:before, | |||
.ui.toggle.checkbox input:focus ~ label:before { | |||
background-color: rgba(0, 0, 0, 0.15); | |||
border: none; | |||
} | |||
/* Hover */ | |||
.ui.toggle.checkbox .box:hover::before, | |||
.ui.toggle.checkbox label:hover::before { | |||
background-color: rgba(0, 0, 0, 0.15); | |||
border: none; | |||
} | |||
/* Active */ | |||
.ui.toggle.checkbox input:checked ~ .box, | |||
.ui.toggle.checkbox input:checked ~ label { | |||
color: rgba(0, 0, 0, 0.95) !important; | |||
} | |||
.ui.toggle.checkbox input:checked ~ .box:before, | |||
.ui.toggle.checkbox input:checked ~ label:before { | |||
background-color: #2185D0 !important; | |||
} | |||
.ui.toggle.checkbox input:checked ~ .box:after, | |||
.ui.toggle.checkbox input:checked ~ label:after { | |||
left: 2.15rem; | |||
} | |||
/* Active Focus */ | |||
.ui.toggle.checkbox input:focus:checked ~ .box, | |||
.ui.toggle.checkbox input:focus:checked ~ label { | |||
color: rgba(0, 0, 0, 0.95) !important; | |||
} | |||
.ui.toggle.checkbox input:focus:checked ~ .box:before, | |||
.ui.toggle.checkbox input:focus:checked ~ label:before { | |||
background-color: #0d71bb !important; | |||
} | |||
/******************************* | |||
Variations | |||
*******************************/ | |||
/*-------------- | |||
Fitted | |||
---------------*/ | |||
.ui.fitted.checkbox .box, | |||
.ui.fitted.checkbox label { | |||
padding-left: 0em !important; | |||
} | |||
.ui.fitted.toggle.checkbox, | |||
.ui.fitted.toggle.checkbox { | |||
width: 3.5rem; | |||
} | |||
.ui.fitted.slider.checkbox, | |||
.ui.fitted.slider.checkbox { | |||
width: 3.5rem; | |||
} | |||
/******************************* | |||
Theme Overrides | |||
*******************************/ | |||
@font-face { | |||
font-family: 'Checkbox'; | |||
src: url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAALAIAAAwAwT1MvMg8SBD8AAAC8AAAAYGNtYXAYVtCJAAABHAAAAFRnYXNwAAAAEAAAAXAAAAAIZ2x5Zn4huwUAAAF4AAABYGhlYWQGPe1ZAAAC2AAAADZoaGVhB30DyAAAAxAAAAAkaG10eBBKAEUAAAM0AAAAHGxvY2EAmgESAAADUAAAABBtYXhwAAkALwAAA2AAAAAgbmFtZSC8IugAAAOAAAABknBvc3QAAwAAAAAFFAAAACAAAwMTAZAABQAAApkCzAAAAI8CmQLMAAAB6wAzAQkAAAAAAAAAAAAAAAAAAAABEAAAAAAAAAAAAAAAAAAAAABAAADoAgPA/8AAQAPAAEAAAAABAAAAAAAAAAAAAAAgAAAAAAADAAAAAwAAABwAAQADAAAAHAADAAEAAAAcAAQAOAAAAAoACAACAAIAAQAg6AL//f//AAAAAAAg6AD//f//AAH/4xgEAAMAAQAAAAAAAAAAAAAAAQAB//8ADwABAAAAAAAAAAAAAgAANzkBAAAAAAEAAAAAAAAAAAACAAA3OQEAAAAAAQAAAAAAAAAAAAIAADc5AQAAAAABAEUAUQO7AvgAGgAAARQHAQYjIicBJjU0PwE2MzIfAQE2MzIfARYVA7sQ/hQQFhcQ/uMQEE4QFxcQqAF2EBcXEE4QAnMWEP4UEBABHRAXFhBOEBCoAXcQEE4QFwAAAAABAAABbgMlAkkAFAAAARUUBwYjISInJj0BNDc2MyEyFxYVAyUQEBf9SRcQEBAQFwK3FxAQAhJtFxAQEBAXbRcQEBAQFwAAAAABAAAASQMlA24ALAAAARUUBwYrARUUBwYrASInJj0BIyInJj0BNDc2OwE1NDc2OwEyFxYdATMyFxYVAyUQEBfuEBAXbhYQEO4XEBAQEBfuEBAWbhcQEO4XEBACEm0XEBDuFxAQEBAX7hAQF20XEBDuFxAQEBAX7hAQFwAAAQAAAAIAAHRSzT9fDzz1AAsEAAAAAADRsdR3AAAAANGx1HcAAAAAA7sDbgAAAAgAAgAAAAAAAAABAAADwP/AAAAEAAAAAAADuwABAAAAAAAAAAAAAAAAAAAABwQAAAAAAAAAAAAAAAIAAAAEAABFAyUAAAMlAAAAAAAAAAoAFAAeAE4AcgCwAAEAAAAHAC0AAQAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAOAK4AAQAAAAAAAQAIAAAAAQAAAAAAAgAHAGkAAQAAAAAAAwAIADkAAQAAAAAABAAIAH4AAQAAAAAABQALABgAAQAAAAAABgAIAFEAAQAAAAAACgAaAJYAAwABBAkAAQAQAAgAAwABBAkAAgAOAHAAAwABBAkAAwAQAEEAAwABBAkABAAQAIYAAwABBAkABQAWACMAAwABBAkABgAQAFkAAwABBAkACgA0ALBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhWZXJzaW9uIDIuMABWAGUAcgBzAGkAbwBuACAAMgAuADBDaGVja2JveABDAGgAZQBjAGsAYgBvAHhDaGVja2JveABDAGgAZQBjAGsAYgBvAHhSZWd1bGFyAFIAZQBnAHUAbABhAHJDaGVja2JveABDAGgAZQBjAGsAYgBvAHhGb250IGdlbmVyYXRlZCBieSBJY29Nb29uLgBGAG8AbgB0ACAAZwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABJAGMAbwBNAG8AbwBuAC4AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA) format('truetype'); | |||
} | |||
/* Checkmark */ | |||
.ui.checkbox label:after, | |||
.ui.checkbox .box:after { | |||
font-family: 'Checkbox'; | |||
} | |||
/* Checked */ | |||
.ui.checkbox input:checked ~ .box:after, | |||
.ui.checkbox input:checked ~ label:after { | |||
content: '\e800'; | |||
} | |||
/* Indeterminate */ | |||
.ui.checkbox input:indeterminate ~ .box:after, | |||
.ui.checkbox input:indeterminate ~ label:after { | |||
font-size: 12px; | |||
content: '\e801'; | |||
} | |||
/* UTF Reference | |||
.check:before { content: '\e800'; } | |||
.dash:before { content: '\e801'; } | |||
.plus:before { content: '\e802'; } | |||
*/ | |||
/******************************* | |||
Site Overrides | |||
*******************************/ | |||
@ -0,0 +1,809 @@ | |||
/*! | |||
* # Semantic UI 2.1.6 - Checkbox | |||
* http://github.com/semantic-org/semantic-ui/ | |||
* | |||
* | |||
* Copyright 2015 Contributors | |||
* Released under the MIT license | |||
* http://opensource.org/licenses/MIT | |||
* | |||
*/ | |||
;(function ( $, window, document, undefined ) { | |||
"use strict"; | |||
$.fn.checkbox = function(parameters) { | |||
var | |||
$allModules = $(this), | |||
moduleSelector = $allModules.selector || '', | |||
time = new Date().getTime(), | |||
performance = [], | |||
query = arguments[0], | |||
methodInvoked = (typeof query == 'string'), | |||
queryArguments = [].slice.call(arguments, 1), | |||
returnedValue | |||
; | |||
$allModules | |||
.each(function() { | |||
var | |||
settings = $.extend(true, {}, $.fn.checkbox.settings, parameters), | |||
className = settings.className, | |||
namespace = settings.namespace, | |||
selector = settings.selector, | |||
error = settings.error, | |||
eventNamespace = '.' + namespace, | |||
moduleNamespace = 'module-' + namespace, | |||
$module = $(this), | |||
$label = $(this).children(selector.label), | |||
$input = $(this).children(selector.input), | |||
input = $input[0], | |||
initialLoad = false, | |||
shortcutPressed = false, | |||
instance = $module.data(moduleNamespace), | |||
observer, | |||
element = this, | |||
module | |||
; | |||
module = { | |||
initialize: function() { | |||
module.verbose('Initializing checkbox', settings); | |||
module.create.label(); | |||
module.bind.events(); | |||
module.set.tabbable(); | |||
module.hide.input(); | |||
module.observeChanges(); | |||
module.instantiate(); | |||
module.setup(); | |||
}, | |||
instantiate: function() { | |||
module.verbose('Storing instance of module', module); | |||
instance = module; | |||
$module | |||
.data(moduleNamespace, module) | |||
; | |||
}, | |||
destroy: function() { | |||
module.verbose('Destroying module'); | |||
module.unbind.events(); | |||
module.show.input(); | |||
$module.removeData(moduleNamespace); | |||
}, | |||
fix: { | |||
reference: function() { | |||
if( $module.is(selector.input) ) { | |||
module.debug('Behavior called on <input> adjusting invoked element'); | |||
$module = $module.closest(selector.checkbox); | |||
module.refresh(); | |||
} | |||
} | |||
}, | |||
setup: function() { | |||
module.set.initialLoad(); | |||
if( module.is.indeterminate() ) { | |||
module.debug('Initial value is indeterminate'); | |||
module.indeterminate(); | |||
} | |||
else if( module.is.checked() ) { | |||
module.debug('Initial value is checked'); | |||
module.check(); | |||
} | |||
else { | |||
module.debug('Initial value is unchecked'); | |||
module.uncheck(); | |||
} | |||
module.remove.initialLoad(); | |||
}, | |||
refresh: function() { | |||
$label = $module.children(selector.label); | |||
$input = $module.children(selector.input); | |||
input = $input[0]; | |||
}, | |||
hide: { | |||
input: function() { | |||
module.verbose('Modfying <input> z-index to be unselectable'); | |||
$input.addClass(className.hidden); | |||
} | |||
}, | |||
show: { | |||
input: function() { | |||
module.verbose('Modfying <input> z-index to be selectable'); | |||
$input.removeClass(className.hidden); | |||
} | |||
}, | |||
observeChanges: function() { | |||
if('MutationObserver' in window) { | |||
observer = new MutationObserver(function(mutations) { | |||
module.debug('DOM tree modified, updating selector cache'); | |||
module.refresh(); | |||
}); | |||
observer.observe(element, { | |||
childList : true, | |||
subtree : true | |||
}); | |||
module.debug('Setting up mutation observer', observer); | |||
} | |||
}, | |||
attachEvents: function(selector, event) { | |||
var | |||
$element = $(selector) | |||
; | |||
event = $.isFunction(module[event]) | |||
? module[event] | |||
: module.toggle | |||
; | |||
if($element.length > 0) { | |||
module.debug('Attaching checkbox events to element', selector, event); | |||
$element | |||
.on('click' + eventNamespace, event) | |||
; | |||
} | |||
else { | |||
module.error(error.notFound); | |||
} | |||
}, | |||
event: { | |||
click: function(event) { | |||
var | |||
$target = $(event.target) | |||
; | |||
if( $target.is(selector.input) ) { | |||
module.verbose('Using default check action on initialized checkbox'); | |||
return; | |||
} | |||
if( $target.is(selector.link) ) { | |||
module.debug('Clicking link inside checkbox, skipping toggle'); | |||
return; | |||
} | |||
module.toggle(); | |||
$input.focus(); | |||
event.preventDefault(); | |||
}, | |||
keydown: function(event) { | |||
var | |||
key = event.which, | |||
keyCode = { | |||
enter : 13, | |||
space : 32, | |||
escape : 27 | |||
} | |||
; | |||
if(key == keyCode.escape) { | |||
module.verbose('Escape key pressed blurring field'); | |||
$input.blur(); | |||
shortcutPressed = true; | |||
} | |||
else if(!event.ctrlKey && ( key == keyCode.space || key == keyCode.enter) ) { | |||
module.verbose('Enter/space key pressed, toggling checkbox'); | |||
module.toggle(); | |||
shortcutPressed = true; | |||
} | |||
else { | |||
shortcutPressed = false; | |||
} | |||
}, | |||
keyup: function(event) { | |||
if(shortcutPressed) { | |||
event.preventDefault(); | |||
} | |||
} | |||
}, | |||
check: function() { | |||
if( !module.should.allowCheck() ) { | |||
return; | |||
} | |||
module.debug('Checking checkbox', $input); | |||
module.set.checked(); | |||
if( !module.should.ignoreCallbacks() ) { | |||
settings.onChecked.call(input); | |||
settings.onChange.call(input); | |||
} | |||
}, | |||
uncheck: function() { | |||
if( !module.should.allowUncheck() ) { | |||
return; | |||
} | |||
module.debug('Unchecking checkbox'); | |||
module.set.unchecked(); | |||
if( !module.should.ignoreCallbacks() ) { | |||
settings.onUnchecked.call(input); | |||
settings.onChange.call(input); | |||
} | |||
}, | |||
indeterminate: function() { | |||
if( module.should.allowIndeterminate() ) { | |||
module.debug('Checkbox is already indeterminate'); | |||
return; | |||
} | |||
module.debug('Making checkbox indeterminate'); | |||
module.set.indeterminate(); | |||
if( !module.should.ignoreCallbacks() ) { | |||
settings.onIndeterminate.call(input); | |||
settings.onChange.call(input); | |||
} | |||
}, | |||
determinate: function() { | |||
if( module.should.allowDeterminate() ) { | |||
module.debug('Checkbox is already determinate'); | |||
return; | |||
} | |||
module.debug('Making checkbox determinate'); | |||
module.set.determinate(); | |||
if( !module.should.ignoreCallbacks() ) { | |||
settings.onDeterminate.call(input); | |||
settings.onChange.call(input); | |||
} | |||
}, | |||
enable: function() { | |||
if( module.is.enabled() ) { | |||
module.debug('Checkbox is already enabled'); | |||
return; | |||
} | |||
module.debug('Enabling checkbox'); | |||
module.set.enabled(); | |||
settings.onEnable.call(input); | |||
}, | |||
disable: function() { | |||
if( module.is.disabled() ) { | |||
module.debug('Checkbox is already disabled'); | |||
return; | |||
} | |||
module.debug('Disabling checkbox'); | |||
module.set.disabled(); | |||
settings.onDisable.call(input); | |||
}, | |||
get: { | |||
radios: function() { | |||
var | |||
name = module.get.name() | |||
; | |||
return $('input[name="' + name + '"]').closest(selector.checkbox); | |||
}, | |||
otherRadios: function() { | |||
return module.get.radios().not($module); | |||
}, | |||
name: function() { | |||
return $input.attr('name'); | |||
} | |||
}, | |||
is: { | |||
initialLoad: function() { | |||
return initialLoad; | |||
}, | |||
radio: function() { | |||
return ($input.hasClass(className.radio) || $input.attr('type') == 'radio'); | |||
}, | |||
indeterminate: function() { | |||
return $input.prop('indeterminate') !== undefined && $input.prop('indeterminate'); | |||
}, | |||
checked: function() { | |||
return $input.prop('checked') !== undefined && $input.prop('checked'); | |||
}, | |||
disabled: function() { | |||
return $input.prop('disabled') !== undefined && $input.prop('disabled'); | |||
}, | |||
enabled: function() { | |||
return !module.is.disabled(); | |||
}, | |||
determinate: function() { | |||
return !module.is.indeterminate(); | |||
}, | |||
unchecked: function() { | |||
return !module.is.checked(); | |||
} | |||
}, | |||
should: { | |||
allowCheck: function() { | |||
if(module.is.determinate() && module.is.checked() && !module.should.forceCallbacks() ) { | |||
module.debug('Should not allow check, checkbox is already checked'); | |||
return false; | |||
} | |||
if(settings.beforeChecked.apply(input) === false) { | |||
module.debug('Should not allow check, beforeChecked cancelled'); | |||
return false; | |||
} | |||
return true; | |||
}, | |||
allowUncheck: function() { | |||
if(module.is.determinate() && module.is.unchecked() && !module.should.forceCallbacks() ) { | |||
module.debug('Should not allow uncheck, checkbox is already unchecked'); | |||
return false; | |||
} | |||
if(settings.beforeUnchecked.apply(input) === false) { | |||
module.debug('Should not allow uncheck, beforeUnchecked cancelled'); | |||
return false; | |||
} | |||
return true; | |||
}, | |||
allowIndeterminate: function() { | |||
if(module.is.indeterminate() && !module.should.forceCallbacks() ) { | |||
module.debug('Should not allow indeterminate, checkbox is already indeterminate'); | |||
return false; | |||
} | |||
if(settings.beforeIndeterminate.apply(input) === false) { | |||
module.debug('Should not allow indeterminate, beforeIndeterminate cancelled'); | |||
return false; | |||
} | |||
return true; | |||
}, | |||
allowDeterminate: function() { | |||
if(module.is.determinate() && !module.should.forceCallbacks() ) { | |||
module.debug('Should not allow determinate, checkbox is already determinate'); | |||
return false; | |||
} | |||
if(settings.beforeDeterminate.apply(input) === false) { | |||
module.debug('Should not allow determinate, beforeDeterminate cancelled'); | |||
return false; | |||
} | |||
return true; | |||
}, | |||
forceCallbacks: function() { | |||
return (module.is.initialLoad() && settings.fireOnInit); | |||
}, | |||
ignoreCallbacks: function() { | |||
return (initialLoad && !settings.fireOnInit); | |||
} | |||
}, | |||
can: { | |||
change: function() { | |||
return !( $module.hasClass(className.disabled) || $module.hasClass(className.readOnly) || $input.prop('disabled') || $input.prop('readonly') ); | |||
}, | |||
uncheck: function() { | |||
return (typeof settings.uncheckable === 'boolean') | |||
? settings.uncheckable | |||
: !module.is.radio() | |||
; | |||
} | |||
}, | |||
set: { | |||
initialLoad: function() { | |||
initialLoad = true; | |||
}, | |||
checked: function() { | |||
module.verbose('Setting class to checked'); | |||
$module | |||
.removeClass(className.indeterminate) | |||
.addClass(className.checked) | |||
; | |||
if( module.is.radio() ) { | |||
module.uncheckOthers(); | |||
} | |||
if(!module.is.indeterminate() && module.is.checked()) { | |||
module.debug('Input is already checked, skipping input property change'); | |||
return; | |||
} | |||
module.verbose('Setting state to checked', input); | |||
$input | |||
.prop('indeterminate', false) | |||
.prop('checked', true) | |||
; | |||
module.trigger.change(); | |||
}, | |||
unchecked: function() { | |||
module.verbose('Removing checked class'); | |||
$module | |||
.removeClass(className.indeterminate) | |||
.removeClass(className.checked) | |||
; | |||
if(!module.is.indeterminate() && module.is.unchecked() ) { | |||
module.debug('Input is already unchecked'); | |||
return; | |||
} | |||
module.debug('Setting state to unchecked'); | |||
$input | |||
.prop('indeterminate', false) | |||
.prop('checked', false) | |||
; | |||
module.trigger.change(); | |||
}, | |||
indeterminate: function() { | |||
module.verbose('Setting class to indeterminate'); | |||
$module | |||
.addClass(className.indeterminate) | |||
; | |||
if( module.is.indeterminate() ) { | |||
module.debug('Input is already indeterminate, skipping input property change'); | |||
return; | |||
} | |||
module.debug('Setting state to indeterminate'); | |||
$input | |||
.prop('indeterminate', true) | |||
; | |||
module.trigger.change(); | |||
}, | |||
determinate: function() { | |||
module.verbose('Removing indeterminate class'); | |||
$module | |||
.removeClass(className.indeterminate) | |||
; | |||
if( module.is.determinate() ) { | |||
module.debug('Input is already determinate, skipping input property change'); | |||
return; | |||
} | |||
module.debug('Setting state to determinate'); | |||
$input | |||
.prop('indeterminate', false) | |||
; | |||
}, | |||
disabled: function() { | |||
module.verbose('Setting class to disabled'); | |||
$module | |||
.addClass(className.disabled) | |||
; | |||
if( module.is.disabled() ) { | |||
module.debug('Input is already disabled, skipping input property change'); | |||
return; | |||
} | |||
module.debug('Setting state to disabled'); | |||
$input | |||
.prop('disabled', 'disabled') | |||
; | |||
module.trigger.change(); | |||
}, | |||
enabled: function() { | |||
module.verbose('Removing disabled class'); | |||
$module.removeClass(className.disabled); | |||
if( module.is.enabled() ) { | |||
module.debug('Input is already enabled, skipping input property change'); | |||
return; | |||
} | |||
module.debug('Setting state to enabled'); | |||
$input | |||
.prop('disabled', false) | |||
; | |||
module.trigger.change(); | |||
}, | |||
tabbable: function() { | |||
module.verbose('Adding tabindex to checkbox'); | |||
if( $input.attr('tabindex') === undefined) { | |||
$input.attr('tabindex', 0); | |||
} | |||
} | |||
}, | |||
remove: { | |||
initialLoad: function() { | |||
initialLoad = false; | |||
} | |||
}, | |||
trigger: { | |||
change: function() { | |||
var | |||
events = document.createEvent('HTMLEvents'), | |||
inputElement = $input[0] | |||
; | |||
if(inputElement) { | |||
module.verbose('Triggering native change event'); | |||
events.initEvent('change', true, false); | |||
inputElement.dispatchEvent(events); | |||
} | |||
} | |||
}, | |||
create: { | |||
label: function() { | |||
if($input.prevAll(selector.label).length > 0) { | |||
$input.prev(selector.label).detach().insertAfter($input); | |||
module.debug('Moving existing label', $label); | |||
} | |||
else if( !module.has.label() ) { | |||
$label = $('<label>').insertAfter($input); | |||
module.debug('Creating label', $label); | |||
} | |||
} | |||
}, | |||
has: { | |||
label: function() { | |||
return ($label.length > 0); | |||
} | |||
}, | |||
bind: { | |||
events: function() { | |||
module.verbose('Attaching checkbox events'); | |||
$module | |||
.on('click' + eventNamespace, module.event.click) | |||
.on('keydown' + eventNamespace, selector.input, module.event.keydown) | |||
.on('keyup' + eventNamespace, selector.input, module.event.keyup) | |||
; | |||
} | |||
}, | |||
unbind: { | |||
events: function() { | |||
module.debug('Removing events'); | |||
$module | |||
.off(eventNamespace) | |||
; | |||
} | |||
}, | |||
uncheckOthers: function() { | |||
var | |||
$radios = module.get.otherRadios() | |||
; | |||
module.debug('Unchecking other radios', $radios); | |||
$radios.removeClass(className.checked); | |||
}, | |||
toggle: function() { | |||
if( !module.can.change() ) { | |||
if(!module.is.radio()) { | |||
module.debug('Checkbox is read-only or disabled, ignoring toggle'); | |||
} | |||
return; | |||
} | |||
if( module.is.indeterminate() || module.is.unchecked() ) { | |||
module.debug('Currently unchecked'); | |||
module.check(); | |||
} | |||
else if( module.is.checked() && module.can.uncheck() ) { | |||
module.debug('Currently checked'); | |||
module.uncheck(); | |||
} | |||
}, | |||
setting: function(name, value) { | |||
module.debug('Changing setting', name, value); | |||
if( $.isPlainObject(name) ) { | |||
$.extend(true, settings, name); | |||
} | |||
else if(value !== undefined) { | |||
settings[name] = value; | |||
} | |||
else { | |||
return settings[name]; | |||
} | |||
}, | |||
internal: function(name, value) { | |||
if( $.isPlainObject(name) ) { | |||
$.extend(true, module, name); | |||
} | |||
else if(value !== undefined) { | |||
module[name] = value; | |||
} | |||
else { | |||
return module[name]; | |||
} | |||
}, | |||
debug: function() { | |||
if(settings.debug) { | |||
if(settings.performance) { | |||
module.performance.log(arguments); | |||
} | |||
else { | |||
module.debug = Function.prototype.bind.call(console.info, console, settings.name + ':'); | |||
module.debug.apply(console, arguments); | |||
} | |||
} | |||
}, | |||
verbose: function() { | |||
if(settings.verbose && settings.debug) { | |||
if(settings.performance) { | |||
module.performance.log(arguments); | |||
} | |||
else { | |||
module.verbose = Function.prototype.bind.call(console.info, console, settings.name + ':'); | |||
module.verbose.apply(console, arguments); | |||
} | |||
} | |||
}, | |||
error: function() { | |||
module.error = Function.prototype.bind.call(console.error, console, settings.name + ':'); | |||
module.error.apply(console, arguments); | |||
}, | |||
performance: { | |||
log: function(message) { | |||
var | |||
currentTime, | |||
executionTime, | |||
previousTime | |||
; | |||
if(settings.performance) { | |||
currentTime = new Date().getTime(); | |||
previousTime = time || currentTime; | |||
executionTime = currentTime - previousTime; | |||
time = currentTime; | |||
performance.push({ | |||
'Name' : message[0], | |||
'Arguments' : [].slice.call(message, 1) || '', | |||
'Element' : element, | |||
'Execution Time' : executionTime | |||
}); | |||
} | |||
clearTimeout(module.performance.timer); | |||
module.performance.timer = setTimeout(module.performance.display, 500); | |||
}, | |||
display: function() { | |||
var | |||
title = settings.name + ':', | |||
totalTime = 0 | |||
; | |||
time = false; | |||
clearTimeout(module.performance.timer); | |||
$.each(performance, function(index, data) { | |||
totalTime += data['Execution Time']; | |||
}); | |||
title += ' ' + totalTime + 'ms'; | |||
if(moduleSelector) { | |||
title += ' \'' + moduleSelector + '\''; | |||
} | |||
if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { | |||
console.groupCollapsed(title); | |||
if(console.table) { | |||
console.table(performance); | |||
} | |||
else { | |||
$.each(performance, function(index, data) { | |||
console.log(data['Name'] + ': ' + data['Execution Time']+'ms'); | |||
}); | |||
} | |||
console.groupEnd(); | |||
} | |||
performance = []; | |||
} | |||
}, | |||
invoke: function(query, passedArguments, context) { | |||
var | |||
object = instance, | |||
maxDepth, | |||
found, | |||
response | |||
; | |||
passedArguments = passedArguments || queryArguments; | |||
context = element || context; | |||
if(typeof query == 'string' && object !== undefined) { | |||
query = query.split(/[\. ]/); | |||
maxDepth = query.length - 1; | |||
$.each(query, function(depth, value) { | |||
var camelCaseValue = (depth != maxDepth) | |||
? value + query[depth + 1].charAt(0).toUpperCase() + query[depth + 1].slice(1) | |||
: query | |||
; | |||
if( $.isPlainObject( object[camelCaseValue] ) && (depth != maxDepth) ) { | |||
object = object[camelCaseValue]; | |||
} | |||
else if( object[camelCaseValue] !== undefined ) { | |||
found = object[camelCaseValue]; | |||
return false; | |||
} | |||
else if( $.isPlainObject( object[value] ) && (depth != maxDepth) ) { | |||
object = object[value]; | |||
} | |||
else if( object[value] !== undefined ) { | |||
found = object[value]; | |||
return false; | |||
} | |||
else { | |||
module.error(error.method, query); | |||
return false; | |||
} | |||
}); | |||
} | |||
if ( $.isFunction( found ) ) { | |||
response = found.apply(context, passedArguments); | |||
} | |||
else if(found !== undefined) { | |||
response = found; | |||
} | |||
if($.isArray(returnedValue)) { | |||
returnedValue.push(response); | |||
} | |||
else if(returnedValue !== undefined) { | |||
returnedValue = [returnedValue, response]; | |||
} | |||
else if(response !== undefined) { | |||
returnedValue = response; | |||
} | |||
return found; | |||
} | |||
}; | |||
if(methodInvoked) { | |||
if(instance === undefined) { | |||
module.initialize(); | |||
} | |||
module.invoke(query); | |||
} | |||
else { | |||
if(instance !== undefined) { | |||
instance.invoke('destroy'); | |||
} | |||
module.initialize(); | |||
} | |||
}) | |||
; | |||
return (returnedValue !== undefined) | |||
? returnedValue | |||
: this | |||
; | |||
}; | |||
$.fn.checkbox.settings = { | |||
name : 'Checkbox', | |||
namespace : 'checkbox', | |||
debug : false, | |||
verbose : true, | |||
performance : true, | |||
// delegated event context | |||
uncheckable : 'auto', | |||
fireOnInit : false, | |||
onChange : function(){}, | |||
beforeChecked : function(){}, | |||
beforeUnchecked : function(){}, | |||
beforeDeterminate : function(){}, | |||
beforeIndeterminate : function(){}, | |||
onChecked : function(){}, | |||
onUnchecked : function(){}, | |||
onDeterminate : function() {}, | |||
onIndeterminate : function() {}, | |||
onEnabled : function(){}, | |||
onDisabled : function(){}, | |||
className : { | |||
checked : 'checked', | |||
indeterminate : 'indeterminate', | |||
disabled : 'disabled', | |||
hidden : 'hidden', | |||
radio : 'radio', | |||
readOnly : 'read-only' | |||
}, | |||
error : { | |||
method : 'The method you called is not defined' | |||
}, | |||
selector : { | |||
checkbox : '.ui.checkbox', | |||
label : 'label, .box', | |||
input : 'input[type="checkbox"], input[type="radio"]', | |||
link : 'a[href]' | |||
} | |||
}; | |||
})( jQuery, window, document ); |
@ -0,0 +1,274 @@ | |||
/*! | |||
* # Semantic UI 2.0.0 - Colorize | |||
* http://github.com/semantic-org/semantic-ui/ | |||
* | |||
* | |||
* Copyright 2015 Contributors | |||
* Released under the MIT license | |||
* http://opensource.org/licenses/MIT | |||
* | |||
*/ | |||
;(function ( $, window, document, undefined ) { | |||
"use strict"; | |||
$.fn.colorize = function(parameters) { | |||
var | |||
settings = ( $.isPlainObject(parameters) ) | |||
? $.extend(true, {}, $.fn.colorize.settings, parameters) | |||
: $.extend({}, $.fn.colorize.settings), | |||
// hoist arguments | |||
moduleArguments = arguments || false | |||
; | |||
$(this) | |||
.each(function(instanceIndex) { | |||
var | |||
$module = $(this), | |||
mainCanvas = $('<canvas />')[0], | |||
imageCanvas = $('<canvas />')[0], | |||
overlayCanvas = $('<canvas />')[0], | |||
backgroundImage = new Image(), | |||
// defs | |||
mainContext, | |||
imageContext, | |||
overlayContext, | |||
image, | |||
imageName, | |||
width, | |||
height, | |||
// shortucts | |||
colors = settings.colors, | |||
paths = settings.paths, | |||
namespace = settings.namespace, | |||
error = settings.error, | |||
// boilerplate | |||
instance = $module.data('module-' + namespace), | |||
module | |||
; | |||
module = { | |||
checkPreconditions: function() { | |||
module.debug('Checking pre-conditions'); | |||
if( !$.isPlainObject(colors) || $.isEmptyObject(colors) ) { | |||
module.error(error.undefinedColors); | |||
return false; | |||
} | |||
return true; | |||
}, | |||
async: function(callback) { | |||
if(settings.async) { | |||
setTimeout(callback, 0); | |||
} | |||
else { | |||
callback(); | |||
} | |||
}, | |||
getMetadata: function() { | |||
module.debug('Grabbing metadata'); | |||
image = $module.data('image') || settings.image || undefined; | |||
imageName = $module.data('name') || settings.name || instanceIndex; | |||
width = settings.width || $module.width(); | |||
height = settings.height || $module.height(); | |||
if(width === 0 || height === 0) { | |||
module.error(error.undefinedSize); | |||
} | |||
}, | |||
initialize: function() { | |||
module.debug('Initializing with colors', colors); | |||
if( module.checkPreconditions() ) { | |||
module.async(function() { | |||
module.getMetadata(); | |||
module.canvas.create(); | |||
module.draw.image(function() { | |||
module.draw.colors(); | |||
module.canvas.merge(); | |||
}); | |||
$module | |||
.data('module-' + namespace, module) | |||
; | |||
}); | |||
} | |||
}, | |||
redraw: function() { | |||
module.debug('Redrawing image'); | |||
module.async(function() { | |||
module.canvas.clear(); | |||
module.draw.colors(); | |||
module.canvas.merge(); | |||
}); | |||
}, | |||
change: { | |||
color: function(colorName, color) { | |||
module.debug('Changing color', colorName); | |||
if(colors[colorName] === undefined) { | |||
module.error(error.missingColor); | |||
return false; | |||
} | |||
colors[colorName] = color; | |||
module.redraw(); | |||
} | |||
}, | |||
canvas: { | |||
create: function() { | |||
module.debug('Creating canvases'); | |||
mainCanvas.width = width; | |||
mainCanvas.height = height; | |||
imageCanvas.width = width; | |||
imageCanvas.height = height; | |||
overlayCanvas.width = width; | |||
overlayCanvas.height = height; | |||
mainContext = mainCanvas.getContext('2d'); | |||
imageContext = imageCanvas.getContext('2d'); | |||
overlayContext = overlayCanvas.getContext('2d'); | |||
$module | |||
.append( mainCanvas ) | |||
; | |||
mainContext = $module.children('canvas')[0].getContext('2d'); | |||
}, | |||
clear: function(context) { | |||
module.debug('Clearing canvas'); | |||
overlayContext.fillStyle = '#FFFFFF'; | |||
overlayContext.fillRect(0, 0, width, height); | |||
}, | |||
merge: function() { | |||
if( !$.isFunction(mainContext.blendOnto) ) { | |||
module.error(error.missingPlugin); | |||
return; | |||
} | |||
mainContext.putImageData( imageContext.getImageData(0, 0, width, height), 0, 0); | |||
overlayContext.blendOnto(mainContext, 'multiply'); | |||
} | |||
}, | |||
draw: { | |||
image: function(callback) { | |||
module.debug('Drawing image'); | |||
callback = callback || function(){}; | |||
if(image) { | |||
backgroundImage.src = image; | |||
backgroundImage.onload = function() { | |||
imageContext.drawImage(backgroundImage, 0, 0); | |||
callback(); | |||
}; | |||
} | |||
else { | |||
module.error(error.noImage); | |||
callback(); | |||
} | |||
}, | |||
colors: function() { | |||
module.debug('Drawing color overlays', colors); | |||
$.each(colors, function(colorName, color) { | |||
settings.onDraw(overlayContext, imageName, colorName, color); | |||
}); | |||
} | |||
}, | |||
debug: function(message, variableName) { | |||
if(settings.debug) { | |||
if(variableName !== undefined) { | |||
console.info(settings.name + ': ' + message, variableName); | |||
} | |||
else { | |||
console.info(settings.name + ': ' + message); | |||
} | |||
} | |||
}, | |||
error: function(errorMessage) { | |||
console.warn(settings.name + ': ' + errorMessage); | |||
}, | |||
invoke: function(methodName, context, methodArguments) { | |||
var | |||
method | |||
; | |||
methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 ); | |||
if(typeof methodName == 'string' && instance !== undefined) { | |||
methodName = methodName.split('.'); | |||
$.each(methodName, function(index, name) { | |||
if( $.isPlainObject( instance[name] ) ) { | |||
instance = instance[name]; | |||
return true; | |||
} | |||
else if( $.isFunction( instance[name] ) ) { | |||
method = instance[name]; | |||
return true; | |||
} | |||
module.error(settings.error.method); | |||
return false; | |||
}); | |||
} | |||
return ( $.isFunction( method ) ) | |||
? method.apply(context, methodArguments) | |||
: false | |||
; | |||
} | |||
}; | |||
if(instance !== undefined && moduleArguments) { | |||
// simpler than invoke realizing to invoke itself (and losing scope due prototype.call() | |||
if(moduleArguments[0] == 'invoke') { | |||
moduleArguments = Array.prototype.slice.call( moduleArguments, 1 ); | |||
} | |||
return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) ); | |||
} | |||
// initializing | |||
module.initialize(); | |||
}) | |||
; | |||
return this; | |||
}; | |||
$.fn.colorize.settings = { | |||
name : 'Image Colorizer', | |||
debug : true, | |||
namespace : 'colorize', | |||
onDraw : function(overlayContext, imageName, colorName, color) {}, | |||
// whether to block execution while updating canvas | |||
async : true, | |||
// object containing names and default values of color regions | |||
colors : {}, | |||
metadata: { | |||
image : 'image', | |||
name : 'name' | |||
}, | |||
error: { | |||
noImage : 'No tracing image specified', | |||
undefinedColors : 'No default colors specified.', | |||
missingColor : 'Attempted to change color that does not exist', | |||
missingPlugin : 'Blend onto plug-in must be included', | |||
undefinedHeight : 'The width or height of image canvas could not be automatically determined. Please specify a height.' | |||
} | |||
}; | |||
})( jQuery, window , document ); |
@ -0,0 +1,11 @@ | |||
/*! | |||
* # Semantic UI 2.0.0 - Colorize | |||
* http://github.com/semantic-org/semantic-ui/ | |||
* | |||
* | |||
* Copyright 2015 Contributors | |||
* Released under the MIT license | |||
* http://opensource.org/licenses/MIT | |||
* | |||
*/ | |||
!function(e,n,i,t){"use strict";e.fn.colorize=function(n){var i=e.isPlainObject(n)?e.extend(!0,{},e.fn.colorize.settings,n):e.extend({},e.fn.colorize.settings),o=arguments||!1;return e(this).each(function(n){var a,r,c,s,d,g,u,l,m=e(this),f=e("<canvas />")[0],h=e("<canvas />")[0],p=e("<canvas />")[0],v=new Image,w=i.colors,b=(i.paths,i.namespace),y=i.error,C=m.data("module-"+b);return l={checkPreconditions:function(){return l.debug("Checking pre-conditions"),!e.isPlainObject(w)||e.isEmptyObject(w)?(l.error(y.undefinedColors),!1):!0},async:function(e){i.async?setTimeout(e,0):e()},getMetadata:function(){l.debug("Grabbing metadata"),s=m.data("image")||i.image||t,d=m.data("name")||i.name||n,g=i.width||m.width(),u=i.height||m.height(),(0===g||0===u)&&l.error(y.undefinedSize)},initialize:function(){l.debug("Initializing with colors",w),l.checkPreconditions()&&l.async(function(){l.getMetadata(),l.canvas.create(),l.draw.image(function(){l.draw.colors(),l.canvas.merge()}),m.data("module-"+b,l)})},redraw:function(){l.debug("Redrawing image"),l.async(function(){l.canvas.clear(),l.draw.colors(),l.canvas.merge()})},change:{color:function(e,n){return l.debug("Changing color",e),w[e]===t?(l.error(y.missingColor),!1):(w[e]=n,void l.redraw())}},canvas:{create:function(){l.debug("Creating canvases"),f.width=g,f.height=u,h.width=g,h.height=u,p.width=g,p.height=u,a=f.getContext("2d"),r=h.getContext("2d"),c=p.getContext("2d"),m.append(f),a=m.children("canvas")[0].getContext("2d")},clear:function(e){l.debug("Clearing canvas"),c.fillStyle="#FFFFFF",c.fillRect(0,0,g,u)},merge:function(){return e.isFunction(a.blendOnto)?(a.putImageData(r.getImageData(0,0,g,u),0,0),void c.blendOnto(a,"multiply")):void l.error(y.missingPlugin)}},draw:{image:function(e){l.debug("Drawing image"),e=e||function(){},s?(v.src=s,v.onload=function(){r.drawImage(v,0,0),e()}):(l.error(y.noImage),e())},colors:function(){l.debug("Drawing color overlays",w),e.each(w,function(e,n){i.onDraw(c,d,e,n)})}},debug:function(e,n){i.debug&&(n!==t?console.info(i.name+": "+e,n):console.info(i.name+": "+e))},error:function(e){console.warn(i.name+": "+e)},invoke:function(n,o,a){var r;return a=a||Array.prototype.slice.call(arguments,2),"string"==typeof n&&C!==t&&(n=n.split("."),e.each(n,function(n,t){return e.isPlainObject(C[t])?(C=C[t],!0):e.isFunction(C[t])?(r=C[t],!0):(l.error(i.error.method),!1)})),e.isFunction(r)?r.apply(o,a):!1}},C!==t&&o?("invoke"==o[0]&&(o=Array.prototype.slice.call(o,1)),l.invoke(o[0],this,Array.prototype.slice.call(o,1))):void l.initialize()}),this},e.fn.colorize.settings={name:"Image Colorizer",debug:!0,namespace:"colorize",onDraw:function(e,n,i,t){},async:!0,colors:{},metadata:{image:"image",name:"name"},error:{noImage:"No tracing image specified",undefinedColors:"No default colors specified.",missingColor:"Attempted to change color that does not exist",missingPlugin:"Blend onto plug-in must be included",undefinedHeight:"The width or height of image canvas could not be automatically determined. Please specify a height."}}}(jQuery,window,document); |