feat: Fix semantic UI

This commit is contained in:
Robert Prehn 2020-07-03 18:22:25 -05:00
parent d1df2c0de4
commit 25227d1c1c
346 changed files with 94731 additions and 2 deletions

View file

@ -13,4 +13,6 @@ import "../css/app.scss"
// import {Socket} from "phoenix"
// import socket from "./socket"
//
import "phoenix_html"
import "phoenix_html"
alert("boo")

View file

@ -5,7 +5,8 @@
"scripts": {
"deploy": "webpack --mode production",
"watch": "webpack --mode development --watch",
"preinstall": "npx npm-force-resolutions"
"preinstall": "npx npm-force-resolutions",
"profile": "webpack --mode development --plugin webpack/lib/debug/ProfilingPlugin"
},
"dependencies": {
"gulp": "^4.0.2",

View file

@ -0,0 +1,17 @@
# LESS Distribution
This repository is a distribution of [Fomantic-UI](https://fomantic-ui.com) as LESS only to provide a lightweight themeable version of Fomantic UI.
You can view more on Fomantic UI at [fomantic-ui.com](https://fomantic-ui.com).
If you have any issues please use the main [Fomantic-UI repositroy](https://github.com/fomantic/Fomantic-UI).
## Installation
```bash
$ npm install --save fomantic-ui-less
```
or
```bash
$ git clone https://github.com/fomantic/Fomantic-UI-LESS
```

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,711 @@
/*!
* # Fomantic-UI - State
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
"use strict";
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.fn.state = 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 = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.state.settings, parameters)
: $.extend({}, $.fn.state.settings),
error = settings.error,
metadata = settings.metadata,
className = settings.className,
namespace = settings.namespace,
states = settings.states,
text = settings.text,
eventNamespace = '.' + namespace,
moduleNamespace = namespace + '-module',
$module = $(this),
element = this,
instance = $module.data(moduleNamespace),
module
;
module = {
initialize: function() {
module.verbose('Initializing module');
// allow module to guess desired state based on element
if(settings.automatic) {
module.add.defaults();
}
// bind events with delegated events
if(settings.context && moduleSelector !== '') {
$(settings.context)
.on(moduleSelector, 'mouseenter' + eventNamespace, module.change.text)
.on(moduleSelector, 'mouseleave' + eventNamespace, module.reset.text)
.on(moduleSelector, 'click' + eventNamespace, module.toggle.state)
;
}
else {
$module
.on('mouseenter' + eventNamespace, module.change.text)
.on('mouseleave' + eventNamespace, module.reset.text)
.on('click' + eventNamespace, module.toggle.state)
;
}
module.instantiate();
},
instantiate: function() {
module.verbose('Storing instance of module', module);
instance = module;
$module
.data(moduleNamespace, module)
;
},
destroy: function() {
module.verbose('Destroying previous module', instance);
$module
.off(eventNamespace)
.removeData(moduleNamespace)
;
},
refresh: function() {
module.verbose('Refreshing selector cache');
$module = $(element);
},
add: {
defaults: function() {
var
userStates = parameters && $.isPlainObject(parameters.states)
? parameters.states
: {}
;
$.each(settings.defaults, function(type, typeStates) {
if( module.is[type] !== undefined && module.is[type]() ) {
module.verbose('Adding default states', type, element);
$.extend(settings.states, typeStates, userStates);
}
});
}
},
is: {
active: function() {
return $module.hasClass(className.active);
},
loading: function() {
return $module.hasClass(className.loading);
},
inactive: function() {
return !( $module.hasClass(className.active) );
},
state: function(state) {
if(className[state] === undefined) {
return false;
}
return $module.hasClass( className[state] );
},
enabled: function() {
return !( $module.is(settings.filter.active) );
},
disabled: function() {
return ( $module.is(settings.filter.active) );
},
textEnabled: function() {
return !( $module.is(settings.filter.text) );
},
// definitions for automatic type detection
button: function() {
return $module.is('.button:not(a, .submit)');
},
input: function() {
return $module.is('input');
},
progress: function() {
return $module.is('.ui.progress');
}
},
allow: function(state) {
module.debug('Now allowing state', state);
states[state] = true;
},
disallow: function(state) {
module.debug('No longer allowing', state);
states[state] = false;
},
allows: function(state) {
return states[state] || false;
},
enable: function() {
$module.removeClass(className.disabled);
},
disable: function() {
$module.addClass(className.disabled);
},
setState: function(state) {
if(module.allows(state)) {
$module.addClass( className[state] );
}
},
removeState: function(state) {
if(module.allows(state)) {
$module.removeClass( className[state] );
}
},
toggle: {
state: function() {
var
apiRequest,
requestCancelled
;
if( module.allows('active') && module.is.enabled() ) {
module.refresh();
if($.fn.api !== undefined) {
apiRequest = $module.api('get request');
requestCancelled = $module.api('was cancelled');
if( requestCancelled ) {
module.debug('API Request cancelled by beforesend');
settings.activateTest = function(){ return false; };
settings.deactivateTest = function(){ return false; };
}
else if(apiRequest) {
module.listenTo(apiRequest);
return;
}
}
module.change.state();
}
}
},
listenTo: function(apiRequest) {
module.debug('API request detected, waiting for state signal', apiRequest);
if(apiRequest) {
if(text.loading) {
module.update.text(text.loading);
}
$.when(apiRequest)
.then(function() {
if(apiRequest.state() == 'resolved') {
module.debug('API request succeeded');
settings.activateTest = function(){ return true; };
settings.deactivateTest = function(){ return true; };
}
else {
module.debug('API request failed');
settings.activateTest = function(){ return false; };
settings.deactivateTest = function(){ return false; };
}
module.change.state();
})
;
}
},
// checks whether active/inactive state can be given
change: {
state: function() {
module.debug('Determining state change direction');
// inactive to active change
if( module.is.inactive() ) {
module.activate();
}
else {
module.deactivate();
}
if(settings.sync) {
module.sync();
}
settings.onChange.call(element);
},
text: function() {
if( module.is.textEnabled() ) {
if(module.is.disabled() ) {
module.verbose('Changing text to disabled text', text.hover);
module.update.text(text.disabled);
}
else if( module.is.active() ) {
if(text.hover) {
module.verbose('Changing text to hover text', text.hover);
module.update.text(text.hover);
}
else if(text.deactivate) {
module.verbose('Changing text to deactivating text', text.deactivate);
module.update.text(text.deactivate);
}
}
else {
if(text.hover) {
module.verbose('Changing text to hover text', text.hover);
module.update.text(text.hover);
}
else if(text.activate){
module.verbose('Changing text to activating text', text.activate);
module.update.text(text.activate);
}
}
}
}
},
activate: function() {
if( settings.activateTest.call(element) ) {
module.debug('Setting state to active');
$module
.addClass(className.active)
;
module.update.text(text.active);
settings.onActivate.call(element);
}
},
deactivate: function() {
if( settings.deactivateTest.call(element) ) {
module.debug('Setting state to inactive');
$module
.removeClass(className.active)
;
module.update.text(text.inactive);
settings.onDeactivate.call(element);
}
},
sync: function() {
module.verbose('Syncing other buttons to current state');
if( module.is.active() ) {
$allModules
.not($module)
.state('activate');
}
else {
$allModules
.not($module)
.state('deactivate')
;
}
},
get: {
text: function() {
return (settings.selector.text)
? $module.find(settings.selector.text).text()
: $module.html()
;
},
textFor: function(state) {
return text[state] || false;
}
},
flash: {
text: function(text, duration, callback) {
var
previousText = module.get.text()
;
module.debug('Flashing text message', text, duration);
text = text || settings.text.flash;
duration = duration || settings.flashDuration;
callback = callback || function() {};
module.update.text(text);
setTimeout(function(){
module.update.text(previousText);
callback.call(element);
}, duration);
}
},
reset: {
// on mouseout sets text to previous value
text: function() {
var
activeText = text.active || $module.data(metadata.storedText),
inactiveText = text.inactive || $module.data(metadata.storedText)
;
if( module.is.textEnabled() ) {
if( module.is.active() && activeText) {
module.verbose('Resetting active text', activeText);
module.update.text(activeText);
}
else if(inactiveText) {
module.verbose('Resetting inactive text', activeText);
module.update.text(inactiveText);
}
}
}
},
update: {
text: function(text) {
var
currentText = module.get.text()
;
if(text && text !== currentText) {
module.debug('Updating text', text);
if(settings.selector.text) {
$module
.data(metadata.storedText, text)
.find(settings.selector.text)
.text(text)
;
}
else {
$module
.data(metadata.storedText, text)
.html(text)
;
}
}
else {
module.debug('Text is already set, ignoring update', text);
}
}
},
setting: function(name, value) {
module.debug('Changing setting', name, value);
if( $.isPlainObject(name) ) {
$.extend(true, settings, name);
}
else if(value !== undefined) {
if($.isPlainObject(settings[name])) {
$.extend(true, settings[name], value);
}
else {
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.silent && 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.silent && 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() {
if(!settings.silent) {
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(Array.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.state.settings = {
// module info
name : 'State',
// debug output
debug : false,
// verbose debug output
verbose : false,
// namespace for events
namespace : 'state',
// debug data includes performance
performance : true,
// callback occurs on state change
onActivate : function() {},
onDeactivate : function() {},
onChange : function() {},
// state test functions
activateTest : function() { return true; },
deactivateTest : function() { return true; },
// whether to automatically map default states
automatic : true,
// activate / deactivate changes all elements instantiated at same time
sync : false,
// default flash text duration, used for temporarily changing text of an element
flashDuration : 1000,
// selector filter
filter : {
text : '.loading, .disabled',
active : '.disabled'
},
context : false,
// error
error: {
beforeSend : 'The before send function has cancelled state change',
method : 'The method you called is not defined.'
},
// metadata
metadata: {
promise : 'promise',
storedText : 'stored-text'
},
// change class on state
className: {
active : 'active',
disabled : 'disabled',
error : 'error',
loading : 'loading',
success : 'success',
warning : 'warning'
},
selector: {
// selector for text node
text: false
},
defaults : {
input: {
disabled : true,
loading : true,
active : true
},
button: {
disabled : true,
loading : true,
active : true,
},
progress: {
active : true,
success : true,
warning : true,
error : true
}
},
states : {
active : true,
disabled : true,
error : true,
loading : true,
success : true,
warning : true
},
text : {
disabled : false,
flash : false,
hover : false,
active : false,
inactive : false,
activate : false,
deactivate : false
}
};
})( jQuery, window, document );

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,122 @@
/*!
* # Fomantic-UI - Breadcrumb
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'collection';
@element : 'breadcrumb';
@import (multiple) '../../theme.config';
/*******************************
Breadcrumb
*******************************/
.ui.breadcrumb {
line-height: @lineHeight;
display: @display;
margin: @verticalMargin 0;
vertical-align: @verticalAlign;
}
.ui.breadcrumb:first-child {
margin-top: 0;
}
.ui.breadcrumb:last-child {
margin-bottom: 0;
}
/*******************************
Content
*******************************/
/* Divider */
.ui.breadcrumb .divider {
display: inline-block;
opacity: @dividerOpacity;
margin: 0 @dividerSpacing 0;
font-size: @dividerSize;
color: @dividerColor;
vertical-align: @dividerVerticalAlign;
}
/* Link */
.ui.breadcrumb a {
color: @linkColor;
}
.ui.breadcrumb a:hover {
color: @linkHoverColor;
}
/* Icon Divider */
.ui.breadcrumb .icon.divider {
font-size: @iconDividerSize;
vertical-align: @iconDividerVerticalAlign;
}
/* Section */
.ui.breadcrumb a.section {
cursor: pointer;
}
.ui.breadcrumb .section {
display: inline-block;
margin: @sectionMargin;
padding: @sectionPadding;
}
/* Loose Coupling */
.ui.breadcrumb.segment {
display: inline-block;
padding: @segmentPadding;
}
& when (@variationBreadcrumbInverted) {
/* Inverted */
.ui.inverted.breadcrumb {
color: @invertedColor;
}
.ui.inverted.breadcrumb > .active.section {
color: @invertedActiveColor;
}
.ui.inverted.breadcrumb > .divider {
color: @invertedDividerColor;
}
}
/*******************************
States
*******************************/
.ui.breadcrumb .active.section {
font-weight: @activeFontWeight;
}
/*******************************
Variations
*******************************/
.ui.breadcrumb {
font-size: @medium;
}
& when not (@variationBreadcrumbSizes = false) {
each(@variationBreadcrumbSizes, {
@s: @@value;
.ui.@{value}.breadcrumb {
font-size: @s;
}
})
}
.loadUIOverrides();

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,414 @@
/*!
* # Fomantic-UI - Message
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'collection';
@element : 'message';
@import (multiple) '../../theme.config';
/*******************************
Message
*******************************/
.ui.message {
position: relative;
min-height: 1em;
margin: @verticalMargin 0;
background: @background;
padding: @padding;
line-height: @lineHeight;
color: @textColor;
transition: @transition;
border-radius: @borderRadius;
box-shadow: @boxShadow;
}
.ui.message:first-child {
margin-top: 0;
}
.ui.message:last-child {
margin-bottom: 0;
}
/*--------------
Content
---------------*/
/* Header */
.ui.message .header {
display: @headerDisplay;
font-family: @headerFont;
font-weight: @headerFontWeight;
margin: @headerMargin;
}
/* Default font size */
.ui.message .header:not(.ui) {
font-size: @headerFontSize;
}
/* Paragraph */
.ui.message p {
opacity: @messageTextOpacity;
margin: @messageParagraphMargin 0;
}
.ui.message p:first-child {
margin-top: 0;
}
.ui.message p:last-child {
margin-bottom: 0;
}
.ui.message .header + p {
margin-top: @headerParagraphDistance;
}
/* List */
.ui.message .list:not(.ui) {
text-align: left;
padding: 0;
opacity: @listOpacity;
list-style-position: @listStylePosition;
margin: @listMargin 0 0;
}
.ui.message .list:not(.ui):first-child {
margin-top: 0;
}
.ui.message .list:not(.ui):last-child {
margin-bottom: 0;
}
.ui.message .list:not(.ui) li {
position: relative;
list-style-type: none;
margin: 0 0 @listItemMargin @listItemIndent;
padding: 0;
}
.ui.message .list:not(.ui) li:before {
position: absolute;
content: '•';
left: -1em;
height: 100%;
vertical-align: baseline;
}
.ui.message .list:not(.ui) li:last-child {
margin-bottom: 0;
}
/* Icon */
.ui.message > .icon {
margin-right: @iconDistance;
}
/* Close Icon */
.ui.message > .close.icon {
cursor: pointer;
position: absolute;
margin: 0;
top: @closeTopDistance;
right: @closeRightDistance;
opacity: @closeOpacity;
transition: @closeTransition;
}
.ui.message > .close.icon:hover {
opacity: 1;
}
/* First / Last Element */
.ui.message > :first-child {
margin-top: 0;
}
.ui.message > :last-child {
margin-bottom: 0;
}
/*******************************
Coupling
*******************************/
.ui.dropdown .menu > .message {
margin: 0 -@borderWidth;
}
/*******************************
States
*******************************/
/*--------------
Visible
---------------*/
.ui.visible.visible.visible.visible.message {
display: block;
}
.ui.icon.visible.visible.visible.visible.message {
display: flex;
}
/*--------------
Hidden
---------------*/
.ui.hidden.hidden.hidden.hidden.message {
display: none;
}
/*******************************
Variations
*******************************/
& when (@variationMessageCompact) {
/*--------------
Compact
---------------*/
.ui.compact.message {
display: inline-block;
}
.ui.compact.icon.message {
display: inline-flex;
width: auto;
}
}
& when (@variationMessageAttached) {
/*--------------
Attached
---------------*/
.ui.attached.message {
margin-bottom: @attachedYOffset;
border-radius: @borderRadius @borderRadius 0 0;
box-shadow: @attachedBoxShadow;
margin-left: @attachedXOffset;
margin-right: @attachedXOffset;
}
.ui.attached + .ui.attached.message:not(.top):not(.bottom) {
margin-top: @attachedYOffset;
border-radius: 0;
}
.ui.bottom.attached.message {
margin-top: @attachedYOffset;
border-radius: 0 0 @borderRadius @borderRadius;
box-shadow: @attachedBottomBoxShadow;
}
.ui.bottom.attached.message:not(:last-child) {
margin-bottom: @verticalMargin;
}
& when (@variationMessageIcon) {
.ui.attached.icon.message {
width: auto;
}
}
}
& when (@variationMessageIcon) {
/*--------------
Icon
---------------*/
.ui.icon.message {
display: flex;
width: 100%;
align-items: center;
}
.ui.icon.message > .icon:not(.close) {
display: block;
flex: 0 0 auto;
width: auto;
line-height: 1;
vertical-align: @iconVerticalAlign;
font-size: @iconSize;
opacity: @iconOpacity;
}
.ui.icon.message > .content {
display: block;
flex: 1 1 auto;
vertical-align: @iconVerticalAlign;
}
.ui.icon.message .icon:not(.close) + .content {
padding-left: @iconContentDistance;
}
.ui.icon.message .circular.icon {
width: 1em;
}
}
& when (@variationMessageFloating) {
/*--------------
Floating
---------------*/
.ui.floating.message {
box-shadow: @floatingBoxShadow;
}
}
/*--------------
Colors
---------------*/
/*--------------
Types
---------------*/
& when (@variationMessageConsequences) {
@consequences: {
@positive: {
background : @positiveBackgroundColor;
header : @positiveHeaderColor;
boxShadow : @positiveBoxShadow;
boxFloatShadow : @positiveBoxFloatingShadow;
text : @positiveTextColor;
};
@negative: {
background : @negativeBackgroundColor;
header : @negativeHeaderColor;
boxShadow : @negativeBoxShadow;
boxFloatShadow : @negativeBoxFloatingShadow;
text : @negativeTextColor;
};
@info: {
background : @infoBackgroundColor;
header : @infoHeaderColor;
boxShadow : @infoBoxShadow;
boxFloatShadow : @infoBoxFloatingShadow;
text : @infoTextColor;
};
@warning: {
background : @warningBackgroundColor;
header : @warningHeaderColor;
boxShadow : @warningBoxShadow;
boxFloatShadow : @warningBoxFloatingShadow;
text : @warningTextColor;
};
@error: {
background : @errorBackgroundColor;
header : @errorHeaderColor;
boxShadow : @errorBoxShadow;
boxFloatShadow : @errorBoxFloatingShadow;
text : @errorTextColor;
};
@success: {
background : @successBackgroundColor;
header : @successHeaderColor;
boxShadow : @successBoxShadow;
boxFloatShadow : @successBoxFloatingShadow;
text : @successTextColor;
};
}
/* Colors */
each(@consequences, {
@color: replace(@key, '@', '');
@bg: @consequences[@@color][background];
@hd: @consequences[@@color][header];
@bs: @consequences[@@color][boxShadow];
@bfs: @consequences[@@color][boxFloatShadow];
@t: @consequences[@@color][text];
.ui.@{color}.message {
background-color: @bg;
color: @t;
}
.ui.@{color}.message,
.ui.attached.@{color}.message {
box-shadow: @bs;
}
& when (@variationMessageFloating) {
.ui.floating.@{color}.message {
box-shadow: @bfs;
}
}
.ui.@{color}.message .header {
color: @hd;
}
})
}
each(@colors, {
@color: replace(@key, '@', '');
@bg: @colors[@@color][background];
@hd: @colors[@@color][header];
@bs: @colors[@@color][boxShadow];
@bfs: @colors[@@color][boxFloatShadow];
@t: @colors[@@color][text];
@isVeryDark: @colors[@@color][isVeryDark];
.ui.@{color}.message {
& when not (@isVeryDark) {
background-color: @bg;
color: @t;
}
& when (@isVeryDark) {
background-color: @black;
color: @invertedTextColor;
}
}
.ui.@{color}.message,
.ui.attached.@{color}.message {
& when not (@isVeryDark) {
box-shadow: @bs;
}
}
& when (@variationMessageFloating) {
.ui.floating.@{color}.message {
& when not (@isVeryDark) {
box-shadow: @bfs;
}
}
}
.ui.@{color}.message .header {
& when not (@isVeryDark) {
color: @hd;
}
& when (@isVeryDark) {
color: @invertedTextColor;
}
}
})
& when (@variationMessageInverted) {
.ui.inverted.message {
background-color: @black;
color: @invertedTextColor;
}
}
/*--------------
Sizes
---------------*/
.ui.message {
font-size: @relativeMedium;
}
& when not (@variationMessageSizes = false) {
each(@variationMessageSizes, {
@s: @{value}MessageSize;
.ui.@{value}.message {
font-size: @@s;
}
})
}
.loadUIOverrides();

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,160 @@
/*!
* # Fomantic-UI - Container
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'container';
@import (multiple) '../../theme.config';
/*******************************
Container
*******************************/
/* All Sizes */
.ui.container {
display: block;
max-width: @maxWidth;
}
/* Mobile */
@media only screen and (max-width: @largestMobileScreen) {
.ui.ui.ui.container:not(.fluid) {
width: @mobileWidth;
margin-left: @mobileGutter;
margin-right: @mobileGutter;
}
& when (@variationContainerGrid) or (@variationContainerRelaxed) {
.ui.ui.ui.grid.container {
width: @mobileGridWidth;
}
& when (@variationContainerRelaxed) {
.ui.ui.ui.relaxed.grid.container {
width: @mobileRelaxedGridWidth;
}
.ui.ui.ui.very.relaxed.grid.container {
width: @mobileVeryRelaxedGridWidth;
}
}
}
}
/* Tablet */
@media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) {
.ui.ui.ui.container:not(.fluid) {
width: @tabletWidth;
margin-left: @tabletGutter;
margin-right: @tabletGutter;
}
& when (@variationContainerGrid) or (@variationContainerRelaxed) {
.ui.ui.ui.grid.container {
width: @tabletGridWidth;
}
& when (@variationContainerRelaxed) {
.ui.ui.ui.relaxed.grid.container {
width: @tabletRelaxedGridWidth;
}
.ui.ui.ui.very.relaxed.grid.container {
width: @tabletVeryRelaxedGridWidth;
}
}
}
}
/* Small Monitor */
@media only screen and (min-width: @computerBreakpoint) and (max-width: @largestSmallMonitor) {
.ui.ui.ui.container:not(.fluid) {
width: @computerWidth;
margin-left: @computerGutter;
margin-right: @computerGutter;
}
& when (@variationContainerGrid) or (@variationContainerRelaxed) {
.ui.ui.ui.grid.container {
width: @computerGridWidth;
}
& when (@variationContainerRelaxed) {
.ui.ui.ui.relaxed.grid.container {
width: @computerRelaxedGridWidth;
}
.ui.ui.ui.very.relaxed.grid.container {
width: @computerVeryRelaxedGridWidth;
}
}
}
}
/* Large Monitor */
@media only screen and (min-width: @largeMonitorBreakpoint) {
.ui.ui.ui.container:not(.fluid) {
width: @largeMonitorWidth;
margin-left: @largeMonitorGutter;
margin-right: @largeMonitorGutter;
}
& when (@variationContainerGrid) or (@variationContainerRelaxed) {
.ui.ui.ui.grid.container {
width: @largeMonitorGridWidth;
}
& when (@variationContainerRelaxed) {
.ui.ui.ui.relaxed.grid.container {
width: @largeMonitorRelaxedGridWidth;
}
.ui.ui.ui.very.relaxed.grid.container {
width: @largeMonitorVeryRelaxedGridWidth;
}
}
}
}
/*******************************
Types
*******************************/
& when (@variationContainerText) {
/* Text Container */
.ui.text.container {
font-family: @textFontFamily;
max-width: @textWidth;
line-height: @textLineHeight;
font-size: @textSize;
}
}
& when (@variationContainerFluid) {
/* Fluid */
.ui.fluid.container {
width: 100%;
}
}
/*******************************
Variations
*******************************/
& when (@variationContainerAligned) {
.ui[class*="left aligned"].container {
text-align: left;
}
.ui[class*="center aligned"].container {
text-align: center;
}
.ui[class*="right aligned"].container {
text-align: right;
}
}
& when (@variationContainerJustified) {
.ui.justified.container {
text-align: justify;
hyphens: auto;
}
}
.loadUIOverrides();

View file

@ -0,0 +1,298 @@
/*!
* # Fomantic-UI - Divider
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'divider';
@import (multiple) '../../theme.config';
/*******************************
Divider
*******************************/
.ui.divider {
margin: @margin;
line-height: 1;
height: 0;
font-weight: @fontWeight;
text-transform: @textTransform;
letter-spacing: @letterSpacing;
color: @color;
user-select: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
/*--------------
Basic
---------------*/
.ui.divider:not(.vertical):not(.horizontal) {
border-top: @shadowWidth @borderStyle @shadowColor;
border-bottom: @highlightWidth @borderStyle @highlightColor;
}
/*--------------
Coupling
---------------*/
/* Allow divider between each column row */
.ui.grid > .column + .divider,
.ui.grid > .row > .column + .divider {
left: auto;
}
& when (@variationDividerHorizontal) {
/*--------------
Horizontal
---------------*/
.ui.horizontal.divider {
display: table;
white-space: nowrap;
height: auto;
margin: @horizontalMargin;
line-height: 1;
text-align: center;
}
.ui.horizontal.divider:before,
.ui.horizontal.divider:after {
content: '';
display: table-cell;
position: relative;
top: 50%;
width: 50%;
background-repeat: no-repeat;
}
.ui.horizontal.divider:before {
background-position: right @horizontalDividerMargin top 50%;
}
.ui.horizontal.divider:after {
background-position: left @horizontalDividerMargin top 50%;
}
}
& when (@variationDividerVertical) {
/*--------------
Vertical
---------------*/
.ui.vertical.divider {
position: absolute;
z-index: 2;
top: 50%;
left: 50%;
margin: 0;
padding: 0;
width: auto;
height: 50%;
line-height: 0;
text-align: center;
transform: translateX(-50%);
}
.ui.vertical.divider:before,
.ui.vertical.divider:after {
position: absolute;
left: 50%;
content: '';
z-index: 3;
border-left: @shadowWidth @borderStyle @shadowColor;
border-right: @highlightWidth @borderStyle @highlightColor;
width: 0;
height: @verticalDividerHeight;
}
.ui.vertical.divider:before {
top: -100%;
}
.ui.vertical.divider:after {
top: auto;
bottom: 0;
}
/* Inside grid */
@media only screen and (max-width : @largestMobileScreen) {
.ui.stackable.grid .ui.vertical.divider,
.ui.grid .stackable.row .ui.vertical.divider {
display: table;
white-space: nowrap;
height: auto;
margin: @horizontalMargin;
overflow: hidden;
line-height: 1;
text-align: center;
position: static;
top: 0;
left: 0;
transform: none;
}
.ui.stackable.grid .ui.vertical.divider:before,
.ui.grid .stackable.row .ui.vertical.divider:before,
.ui.stackable.grid .ui.vertical.divider:after,
.ui.grid .stackable.row .ui.vertical.divider:after {
left: 0;
border-left: none;
border-right: none;
content: '';
display: table-cell;
position: relative;
top: 50%;
width: 50%;
background-repeat: no-repeat;
}
.ui.stackable.grid .ui.vertical.divider:before,
.ui.grid .stackable.row .ui.vertical.divider:before {
background-position: right @horizontalDividerMargin top 50%;
}
.ui.stackable.grid .ui.vertical.divider:after,
.ui.grid .stackable.row .ui.vertical.divider:after {
background-position: left @horizontalDividerMargin top 50%;
}
}
}
& when (@variationDividerIcon) {
/*--------------
Icon
---------------*/
.ui.divider > .icon {
margin: @dividerIconMargin;
font-size: @dividerIconSize;
height: 1em;
vertical-align: middle;
}
}
& when (@variationDividerHorizontal) {
/*--------------
Header
---------------*/
.ui.horizontal.divider[class*="left aligned"] {
&:before {
display: none;
}
&:after {
width: 100%;
}
}
.ui.horizontal.divider[class*="right aligned"] {
&:before {
width: 100%;
}
&:after {
display: none;
}
}
}
/*******************************
Variations
*******************************/
& when (@variationDividerHidden) {
/*--------------
Hidden
---------------*/
.ui.hidden.divider {
border-color: transparent !important;
}
.ui.hidden.divider:before,
.ui.hidden.divider:after {
display: none;
}
}
/*--------------
Inverted
---------------*/
& when (@variationDividerInverted) {
.ui.divider.inverted,
.ui.vertical.inverted.divider,
.ui.horizontal.inverted.divider {
color: @invertedTextColor;
}
.ui.divider.inverted,
.ui.divider.inverted:after,
.ui.divider.inverted:before {
border-top-color: @invertedShadowColor !important;
border-left-color: @invertedShadowColor !important;
border-bottom-color: @invertedHighlightColor !important;
border-right-color: @invertedHighlightColor !important;
}
}
/*--------------
Fitted
---------------*/
& when (@variationDividerFitted) {
.ui.fitted.divider {
margin: 0;
}
}
& when (@variationDividerClearing) {
/*--------------
Clearing
---------------*/
.ui.clearing.divider {
clear: both;
}
}
& when (@variationDividerSection) {
/*--------------
Section
---------------*/
.ui.section.divider {
margin-top: @sectionMargin;
margin-bottom: @sectionMargin;
}
}
/*--------------
Sizes
---------------*/
.ui.divider {
font-size: @medium;
}
& when not (@variationDividerSizes = false) {
each(@variationDividerSizes, {
@s: @@value;
.ui.@{value}.divider {
font-size: @s;
}
})
}
.loadUIOverrides();

View file

@ -0,0 +1,72 @@
/*!
* # Fomantic UI - Emoji
* https://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* https://github.com/fomantic/Fomantic-UI/blob/master/LICENSE.md
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'emoji';
@import (multiple) '../../theme.config';
/*******************************
Emoji
*******************************/
em[data-emoji] {
opacity: @opacity;
speak: none;
backface-visibility: hidden;
}
em[data-emoji]:before {
content:'\00A0\00A0\00A0\00A0\00A0\00A0\00A0';
display: inline-block;
line-height: @emojiLineHeight;
background-repeat: no-repeat;
background-position: center center;
& when not (@emojiFileType = 'svg') {
background-size: contain;
}
}
/*******************************
States
*******************************/
em[data-emoji].disabled {
opacity: @disabledOpacity;
}
/*******************************
Variations
*******************************/
em[data-emoji].loading:before {
animation: loader @loadingDuration linear infinite;
}
/*-------------------
Link
--------------------*/
em[data-emoji].link:not(.disabled) {
cursor: pointer;
}
.loadUIOverrides();

View file

@ -0,0 +1,52 @@
/*!
* # Fomantic-UI - Flag
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'flag';
@import (multiple) '../../theme.config';
/*******************************
Flag
*******************************/
i.flag:not(.icon) {
display: inline-block;
width: @width;
height: @height;
line-height: @height;
vertical-align: @verticalAlign;
margin: 0 @margin 0 0;
text-decoration: inherit;
speak: none;
-webkit-font-smoothing: antialiased;
backface-visibility: hidden;
}
/* Sprite */
i.flag:not(.icon):before {
display: inline-block;
content: '';
background: url(@spritePath) no-repeat -108px -1976px;
width: @width;
height: @height;
}
.loadUIOverrides();

View file

@ -0,0 +1,487 @@
/*!
* # Fomantic-UI - Header
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'header';
@import (multiple) '../../theme.config';
/*******************************
Header
*******************************/
/* Standard */
.ui.header {
border: none;
margin: @margin;
padding: @verticalPadding @horizontalPadding;
font-family: @fontFamily;
font-weight: @fontWeight;
line-height: @lineHeight;
text-transform: @textTransform;
color: @textColor;
}
.ui.header:first-child {
margin-top: @firstMargin;
}
.ui.header:last-child {
margin-bottom: @lastMargin;
}
& when (@variationHeaderSub) {
/*--------------
Sub Header
---------------*/
.ui.header .sub.header {
display: block;
font-weight: @normal;
padding: 0;
margin: @subHeaderMargin;
font-size: @subHeaderFontSize;
line-height: @subHeaderLineHeight;
color: @subHeaderColor;
}
}
/*--------------
Icon
---------------*/
.ui.header > .icon {
display: table-cell;
opacity: @iconOpacity;
font-size: @iconSize;
padding-top: @iconOffset;
vertical-align: @iconAlignment;
}
/* With Text Node */
.ui.header .icon:only-child {
display: inline-block;
padding: 0;
margin-right: @iconMargin;
}
/*-------------------
Image
--------------------*/
.ui.header > .image:not(.icon),
.ui.header > img {
display: inline-block;
margin-top: @imageOffset;
width: @imageWidth;
height: @imageHeight;
vertical-align: @imageAlignment;
}
.ui.header > .image:not(.icon):only-child,
.ui.header > img:only-child {
margin-right: @imageMargin;
}
/*--------------
Content
---------------*/
.ui.header .content {
display: inline-block;
vertical-align: @contentAlignment;
}
/* After Image */
.ui.header > img + .content,
.ui.header > .image + .content {
padding-left: @imageMargin;
vertical-align: @contentImageAlignment;
}
/* After Icon */
.ui.header > .icon + .content {
padding-left: @iconMargin;
display: table-cell;
vertical-align: @contentIconAlignment;
}
/*--------------
Loose Coupling
---------------*/
.ui.header .ui.label {
font-size: @labelSize;
margin-left: @labelDistance;
vertical-align: @labelVerticalAlign;
}
/* Positioning */
.ui.header + p {
margin-top: @nextParagraphDistance;
}
/*******************************
Types
*******************************/
/*--------------
Page
---------------*/
& when not (@variationHeaderTags = false) {
each(@variationHeaderTags, {
@sf: @{value}SubHeaderFontSize;
@s: @@value;
@{value}.ui.header {
font-size: @s;
}
& when (@variationHeaderSub) {
@{value}.ui.header .sub.header {
font-size: @@sf;
}
}
})
}
/*--------------
Content Heading
---------------*/
& when not (@variationHeaderSizes = false) {
each(@variationHeaderSizes, {
@sf: @{value}SubHeaderFontSize;
@shf: @{value}SubHeadingSize;
@s: @{value}FontSize;;
.ui.@{value}.header {
font-size: @@s;
& when (@@s >= 2) {
min-height: 1em;
}
}
& when (@variationHeaderSub) {
.ui.@{value}.header .sub.header {
font-size: @@sf;
}
.ui.@{value}.sub.header {
font-size: @@shf;
}
}
})
}
& when (@variationHeaderSub) {
/*--------------
Sub Heading
---------------*/
.ui.sub.header {
padding: 0;
margin-bottom: @subHeadingDistance;
font-weight: @subHeadingFontWeight;
font-size: @subHeadingFontSize;
text-transform: @subHeadingTextTransform;
color: @subHeadingColor;
}
}
& when (@variationHeaderIcon) {
/*-------------------
Icon
--------------------*/
.ui.icon.header {
display: inline-block;
text-align: center;
margin: @iconHeaderTopMargin 0 @iconHeaderBottomMargin;
}
.ui.icon.header:after {
content: '';
display: block;
height: 0;
clear: both;
visibility: hidden;
}
.ui.icon.header:first-child {
margin-top: @iconHeaderFirstMargin;
}
.ui.icon.header .icon {
float: none;
display: block;
width: auto;
height: auto;
line-height: 1;
padding: 0;
font-size: @iconHeaderSize;
margin: 0 auto @iconHeaderMargin;
opacity: @iconHeaderOpacity;
}
.ui.icon.header .corner.icon {
font-size: @cornerIconHeaderSize;
}
.ui.icon.header .content {
display: block;
padding: 0;
}
.ui.icon.header .circular.icon {
font-size: @circularHeaderIconSize;
}
.ui.icon.header .square.icon {
font-size: @squareHeaderIconSize;
}
& when (@variationHeaderBlock) {
.ui.block.icon.header .icon {
margin-bottom: 0;
}
}
.ui.icon.header.aligned {
margin-left: auto;
margin-right: auto;
display: block;
}
}
/*******************************
States
*******************************/
& when (@variationHeaderDisabled) {
.ui.disabled.header {
opacity: @disabledOpacity;
}
}
/*******************************
Variations
*******************************/
& when (@variationHeaderInverted) {
/*-------------------
Inverted
--------------------*/
.ui.inverted.header {
color: @invertedColor;
}
.ui.inverted.header .sub.header {
color: @invertedSubHeaderColor;
}
& when (@variationHeaderAttached) {
.ui.inverted.attached.header {
background: @invertedAttachedBackground;
box-shadow: none;
border-color: transparent;
}
}
& when (@variationHeaderBlock) {
.ui.inverted.block.header {
background: @invertedBlockBackground;
box-shadow: none;
border-bottom: none;
}
}
}
/*-------------------
Colors
--------------------*/
each(@colors, {
@color: replace(@key, '@', '');
@c: @colors[@@color][color];
@l: @colors[@@color][light];
@h: @colors[@@color][hover];
@lh: @colors[@@color][lightHover];
.ui.@{color}.header {
color: @c;
}
a.ui.@{color}.header:hover {
color: @h;
}
& when (@variationHeaderDividing) {
.ui.@{color}.dividing.header {
border-bottom: @dividedColoredBorderWidth solid @c;
}
}
& when (@variationHeaderInverted) {
.ui.inverted.@{color}.header.header.header {
color: @l;
}
a.ui.inverted.@{color}.header.header.header:hover {
color: @lh;
}
.ui.inverted.@{color}.dividing.header {
border-bottom: @dividedColoredBorderWidth solid @l;
}
}
})
& when (@variationHeaderAligned) {
/*-------------------
Aligned
--------------------*/
.ui.left.aligned.header {
text-align: left;
}
.ui.right.aligned.header {
text-align: right;
}
.ui.centered.header,
.ui.center.aligned.header {
text-align: center;
}
}
& when (@variationHeaderJustified) {
.ui.justified.header {
text-align: justify;
}
.ui.justified.header:after {
display: inline-block;
content: '';
width: 100%;
}
}
& when (@variationHeaderFloated) {
/*-------------------
Floated
--------------------*/
.ui.floated.header,
.ui[class*="left floated"].header {
float: left;
margin-top: 0;
margin-right: @floatedMargin;
}
.ui[class*="right floated"].header {
float: right;
margin-top: 0;
margin-left: @floatedMargin;
}
}
& when (@variationHeaderFitted) {
/*-------------------
Fitted
--------------------*/
.ui.fitted.header {
padding: 0;
}
}
& when (@variationHeaderDividing) {
/*-------------------
Dividing
--------------------*/
.ui.dividing.header {
padding-bottom: @dividedBorderPadding;
border-bottom: @dividedBorder;
}
.ui.dividing.header .sub.header {
padding-bottom: @dividedSubHeaderPadding;
}
.ui.dividing.header .icon {
margin-bottom: @dividedIconPadding;
}
& when (@variationHeaderInverted) {
.ui.inverted.dividing.header {
border-bottom-color: @invertedDividedBorderColor;
}
}
}
& when (@variationHeaderBlock) {
/*-------------------
Block
--------------------*/
.ui.block.header {
background: @blockBackground;
padding: @blockVerticalPadding @blockHorizontalPadding;
box-shadow: @blockBoxShadow;
border: @blockBorder;
border-radius: @blockBorderRadius;
}
.ui.block.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
font-size: @mediumBlock;
}
& when not (@variationHeaderSizes = false) {
each(@variationHeaderSizes, {
@s: @{value}Block;
.ui.@{value}.block.header {
font-size: @@s;
}
})
}
}
& when (@variationHeaderAttached) {
/*-------------------
Attached
--------------------*/
.ui.attached.header {
background: @attachedBackground;
padding: @attachedVerticalPadding @attachedHorizontalPadding;
margin: 0 @attachedOffset 0 @attachedOffset;
box-shadow: @attachedBoxShadow;
border: @attachedBorder;
border-radius: 0;
}
.ui.attached.block.header {
background: @blockBackground;
}
.ui.attached:not(.top).header {
border-top: none;
}
.ui.top.attached.header {
border-radius: @attachedBorderRadius @attachedBorderRadius 0 0;
}
.ui.bottom.attached.header {
border-radius: 0 0 @attachedBorderRadius @attachedBorderRadius;
}
/* Attached Sizes */
.ui.attached.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
font-size: @mediumAttachedSize;
}
& when not (@variationHeaderSizes = false) {
each(@variationHeaderSizes, {
@s: @{value}AttachedSize;
.ui.@{value}.attached.header {
font-size: @@s;
}
})
}
}
/*-------------------
Sizing
--------------------*/
.ui.header:not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) {
font-size: @mediumFontSize;
}
.loadUIOverrides();

View file

@ -0,0 +1,374 @@
/*!
* # Fomantic-UI - Icon
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'icon';
@import (multiple) '../../theme.config';
/*******************************
Icon
*******************************/
@font-face {
font-family: 'Icons';
src: @fallbackSRC;
src: @src;
font-style: normal;
font-weight: @normal;
font-variant: normal;
text-decoration: inherit;
text-transform: none;
}
i.icon {
display: inline-block;
opacity: @opacity;
margin: 0 @distanceFromText 0 0;
width: @width;
height: @height;
font-family: 'Icons';
font-style: normal;
font-weight: @normal;
text-decoration: inherit;
text-align: center;
speak: none;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
backface-visibility: hidden;
}
i.icon:before {
background: none !important;
}
/*******************************
Types
*******************************/
& when (@variationIconLoading) {
/*--------------
Loading
---------------*/
i.icon.loading {
height: 1em;
line-height: 1;
animation: loader @loadingDuration linear infinite;
}
}
/*******************************
States
*******************************/
i.icon:hover, i.icons:hover,
i.icon:active, i.icons:active,
i.emphasized.icon:not(.disabled), i.emphasized.icons:not(.disabled) {
opacity: 1;
}
& when (@variationIconDisabled) {
i.disabled.icon, i.disabled.icons {
opacity: @disabledOpacity;
cursor: default;
pointer-events: none;
}
}
/*******************************
Variations
*******************************/
& when (@variationIconFitted) {
/*-------------------
Fitted
--------------------*/
i.fitted.icon {
width: auto;
margin: 0 !important;
}
}
& when (@variationIconLink) {
/*-------------------
Link
--------------------*/
i.link.icon:not(.disabled), i.link.icons:not(.disabled) {
cursor: pointer;
opacity: @linkOpacity;
transition: opacity @defaultDuration @defaultEasing;
}
i.link.icon:hover, i.link.icons:hover {
opacity: 1;
}
}
& when (@variationIconCircular) {
/*-------------------
Circular
--------------------*/
i.circular.icon {
border-radius: 500em !important;
line-height: 1 !important;
padding: @circularPadding !important;
box-shadow: @circularShadow;
width: @circularSize !important;
height: @circularSize !important;
}
& when (@variationIconInverted) {
i.circular.inverted.icon {
border: none;
box-shadow: none;
}
}
}
& when (@variationIconFlipped) {
/*-------------------
Flipped
--------------------*/
i.flipped.icon,
i.horizontally.flipped.icon {
transform: scale(-1, 1);
}
i.vertically.flipped.icon {
transform: scale(1, -1);
}
}
& when (@variationIconRotated) {
/*-------------------
Rotated
--------------------*/
i.rotated.icon,
i.right.rotated.icon,
i.clockwise.rotated.icon {
transform: rotate(90deg);
}
i.left.rotated.icon,
i.counterclockwise.rotated.icon {
transform: rotate(-90deg);
}
i.halfway.rotated.icon {
transform: rotate(180deg);
}
}
& when (@variationIconFlipped) and (@variationIconRotated) {
/*--------------------------
Flipped & Rotated
---------------------------*/
i.rotated.flipped.icon,
i.right.rotated.flipped.icon,
i.clockwise.rotated.flipped.icon {
transform: scale(-1, 1) rotate(90deg);
}
i.left.rotated.flipped.icon,
i.counterclockwise.rotated.flipped.icon {
transform: scale(-1, 1) rotate(-90deg);
}
i.halfway.rotated.flipped.icon {
transform: scale(-1, 1) rotate(180deg);
}
i.rotated.vertically.flipped.icon,
i.right.rotated.vertically.flipped.icon,
i.clockwise.rotated.vertically.flipped.icon {
transform: scale(1, -1) rotate(90deg);
}
i.left.rotated.vertically.flipped.icon,
i.counterclockwise.rotated.vertically.flipped.icon {
transform: scale(1, -1) rotate(-90deg);
}
i.halfway.rotated.vertically.flipped.icon {
transform: scale(1, -1) rotate(180deg);
}
}
& when (@variationIconBordered) {
/*-------------------
Bordered
--------------------*/
i.bordered.icon {
line-height: 1;
vertical-align: baseline;
width: @borderedSize;
height: @borderedSize;
padding: @borderedVerticalPadding @borderedHorizontalPadding !important;
box-shadow: @borderedShadow;
}
& when (@variationIconInverted) {
i.bordered.inverted.icon {
border: none;
box-shadow: none;
}
}
}
& when (@variationIconInverted) {
/*-------------------
Inverted
--------------------*/
/* Inverted Shapes */
i.inverted.bordered.icon,
i.inverted.circular.icon {
background-color: @black;
color: @white;
}
i.inverted.icon {
color: @white;
}
}
/*-------------------
Colors
--------------------*/
each(@colors, {
@color: replace(@key, '@', '');
@c: @colors[@@color][color];
@l: @colors[@@color][light];
i.@{color}.icon.icon.icon.icon {
color: @c;
}
& when (@variationIconInverted) {
i.inverted.@{color}.icon.icon.icon.icon {
color: @l;
}
i.inverted.bordered.@{color}.icon.icon.icon.icon,
i.inverted.circular.@{color}.icon.icon.icon.icon {
background-color: @c;
color: @white;
}
}
})
/*-------------------
Sizes
--------------------*/
i.icon,
i.icons {
font-size: @medium;
line-height: @lineHeight;
}
& when not (@variationIconSizes = false) {
each(@variationIconSizes, {
@s: @@value;
i.@{value}.@{value}.@{value}.icon,
i.@{value}.@{value}.@{value}.icons {
font-size: @s;
vertical-align: middle;
}
})
}
& when (@variationIconGroups) or (@variationIconCorner) {
/*******************************
Groups
*******************************/
i.icons {
display: inline-block;
position: relative;
line-height: 1;
}
i.icons .icon {
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
margin: 0;
}
i.icons .icon:first-child {
position: static;
width: auto;
height: auto;
vertical-align: top;
transform: none;
}
& when (@variationIconCorner) {
/* Corner Icon */
i.icons .corner.icon {
top: auto;
left: auto;
right: 0;
bottom: 0;
transform: none;
font-size: @cornerIconSize;
text-shadow: @cornerIconShadow;
}
i.icons .icon.corner[class*="top right"] {
top: 0;
left: auto;
right: 0;
bottom: auto;
}
i.icons .icon.corner[class*="top left"] {
top: 0;
left: 0;
right: auto;
bottom: auto;
}
i.icons .icon.corner[class*="bottom left"] {
top: auto;
left: 0;
right: auto;
bottom: 0;
}
i.icons .icon.corner[class*="bottom right"] {
top: auto;
left: auto;
right: 0;
bottom: 0;
}
& when (@variationIconInverted) {
i.icons .inverted.corner.icon {
text-shadow: @cornerIconInvertedShadow;
}
}
}
}
.loadUIOverrides();

View file

@ -0,0 +1,305 @@
/*!
* # Fomantic-UI - Image
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'image';
@import (multiple) '../../theme.config';
/*******************************
Image
*******************************/
.ui.image {
position: relative;
display: inline-block;
vertical-align: middle;
max-width: 100%;
background-color: @placeholderColor;
}
img.ui.image {
display: block;
}
.ui.image svg,
.ui.image img {
display: block;
max-width: 100%;
height: auto;
}
/*******************************
States
*******************************/
.ui.hidden.images,
.ui.ui.hidden.image {
display: none;
}
.ui.hidden.transition.images,
.ui.hidden.transition.image {
display: block;
visibility: hidden;
}
.ui.images > .hidden.transition {
display: inline-block;
visibility: hidden;
}
& when (@variationImageDisabled) {
.ui.disabled.images,
.ui.disabled.image {
cursor: default;
opacity: @disabledOpacity;
}
}
/*******************************
Variations
*******************************/
& when (@variationImageInline) {
/*--------------
Inline
---------------*/
.ui.inline.image,
.ui.inline.image svg,
.ui.inline.image img {
display: inline-block;
}
}
& when (@variationImageAligned) {
/*------------------
Vertical Aligned
-------------------*/
.ui.top.aligned.images .image,
.ui.top.aligned.image,
.ui.top.aligned.image svg,
.ui.top.aligned.image img {
display: inline-block;
vertical-align: top;
}
.ui.middle.aligned.images .image,
.ui.middle.aligned.image,
.ui.middle.aligned.image svg,
.ui.middle.aligned.image img {
display: inline-block;
vertical-align: middle;
}
.ui.bottom.aligned.images .image,
.ui.bottom.aligned.image,
.ui.bottom.aligned.image svg,
.ui.bottom.aligned.image img {
display: inline-block;
vertical-align: bottom;
}
}
& when (@variationImageRounded) {
/*--------------
Rounded
---------------*/
.ui.rounded.images .image,
.ui.rounded.image,
.ui.rounded.images .image > *,
.ui.rounded.image > * {
border-radius: @roundedBorderRadius;
}
}
& when (@variationImageBordered) {
/*--------------
Bordered
---------------*/
.ui.bordered.images .image,
.ui.bordered.images img,
.ui.bordered.images svg,
.ui.bordered.image img,
.ui.bordered.image svg,
img.ui.bordered.image {
border: @imageBorder;
}
}
& when (@variationImageCircular) {
/*--------------
Circular
---------------*/
.ui.circular.images,
.ui.circular.image {
overflow: hidden;
}
.ui.circular.images .image,
.ui.circular.image,
.ui.circular.images .image > *,
.ui.circular.image > * {
-webkit-border-radius: @circularRadius;
-moz-border-radius: @circularRadius;
border-radius: @circularRadius;
}
}
& when (@variationImageFluid) {
/*--------------
Fluid
---------------*/
.ui.fluid.images,
.ui.fluid.image,
.ui.fluid.images img,
.ui.fluid.images svg,
.ui.fluid.image svg,
.ui.fluid.image img {
display: block;
width: 100%;
height: auto;
}
}
& when (@variationImageAvatar) {
/*--------------
Avatar
---------------*/
.ui.avatar.images .image,
.ui.avatar.images img,
.ui.avatar.images svg,
.ui.avatar.image img,
.ui.avatar.image svg,
.ui.avatar.image {
margin-right: @avatarMargin;
display: inline-block;
width: @avatarSize;
height: @avatarSize;
-webkit-border-radius: @circularRadius;
-moz-border-radius: @circularRadius;
border-radius: @circularRadius;
}
}
& when (@variationImageSpaced) {
/*-------------------
Spaced
--------------------*/
.ui.spaced.image {
display: inline-block !important;
margin-left: @spacedDistance;
margin-right: @spacedDistance;
}
.ui[class*="left spaced"].image {
margin-left: @spacedDistance;
margin-right: 0;
}
.ui[class*="right spaced"].image {
margin-left: 0;
margin-right: @spacedDistance;
}
}
& when (@variationImageFloated) {
/*-------------------
Floated
--------------------*/
.ui.floated.image,
.ui.floated.images {
float: left;
margin-right: @floatedHorizontalMargin;
margin-bottom: @floatedVerticalMargin;
}
.ui.right.floated.images,
.ui.right.floated.image {
float: right;
margin-right: 0;
margin-bottom: @floatedVerticalMargin;
margin-left: @floatedHorizontalMargin;
}
.ui.floated.images:last-child,
.ui.floated.image:last-child {
margin-bottom: 0;
}
}
& when (@variationImageCentered) {
.ui.centered.images,
.ui.centered.image {
margin-left: auto;
margin-right: auto;
}
}
/*--------------
Sizes
---------------*/
.ui.medium.images .image,
.ui.medium.images img,
.ui.medium.images svg,
.ui.medium.image {
width: @mediumWidth;
height: auto;
font-size: @medium;
}
& when not (@variationImageSizes = false) {
each(@variationImageSizes, {
@w: @{value}Width;
@s: @@value;
.ui.@{value}.images .image,
.ui.@{value}.images img,
.ui.@{value}.images svg,
.ui.@{value}.image {
width: @@w;
height: auto;
font-size: @s;
}
})
}
& when (@variationImageGroups) {
/*******************************
Groups
*******************************/
.ui.images {
font-size: 0;
margin: 0 -@imageHorizontalMargin 0;
}
.ui.images .image,
.ui.images > img,
.ui.images > svg {
display: inline-block;
margin: 0 @imageHorizontalMargin @imageVerticalMargin;
}
}
.loadUIOverrides();

View file

@ -0,0 +1,565 @@
/*!
* # Fomantic-UI - Input
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'input';
@import (multiple) '../../theme.config';
/*******************************
Standard
*******************************/
/*--------------------
Inputs
---------------------*/
.ui.input {
position: relative;
font-weight: @normal;
font-style: normal;
display: inline-flex;
color: @inputColor;
}
.ui.input > input {
margin: 0;
max-width: 100%;
flex: 1 0 auto;
outline: none;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
text-align: @textAlign;
line-height: @lineHeight;
font-family: @inputFont;
padding: @padding;
background: @background;
border: @border;
color: @inputColor;
border-radius: @borderRadius;
transition: @transition;
box-shadow: @boxShadow;
}
/*--------------------
Placeholder
---------------------*/
/* browsers require these rules separate */
.ui.input > input::-webkit-input-placeholder {
color: @placeholderColor;
}
.ui.input > input::-moz-placeholder {
color: @placeholderColor;
}
.ui.input > input:-ms-input-placeholder {
color: @placeholderColor;
}
/*******************************
States
*******************************/
& when (@variationInputDisabled) {
/*--------------------
Disabled
---------------------*/
.ui.disabled.input,
.ui.input:not(.disabled) input[disabled] {
opacity: @disabledOpacity;
}
.ui.disabled.input > input,
.ui.input:not(.disabled) input[disabled] {
pointer-events: none;
}
}
/*--------------------
Active
---------------------*/
.ui.input > input:active,
.ui.input.down input {
border-color: @downBorderColor;
background: @downBackground;
color: @downColor;
box-shadow: @downBoxShadow;
}
& when (@variationInputLoading) {
/*--------------------
Loading
---------------------*/
.ui.loading.loading.input > i.icon:before {
position: absolute;
content: '';
top: 50%;
left: 50%;
margin: @loaderMargin;
width: @loaderSize;
height: @loaderSize;
border-radius: @circularRadius;
border: @loaderLineWidth solid @loaderFillColor;
}
.ui.loading.loading.input > i.icon:after {
position: absolute;
content: '';
top: 50%;
left: 50%;
margin: @loaderMargin;
width: @loaderSize;
height: @loaderSize;
animation: loader @loaderSpeed infinite linear;
border: @loaderLineWidth solid @loaderLineColor;
border-radius: @circularRadius;
box-shadow: 0 0 0 1px transparent;
}
}
/*--------------------
Focus
---------------------*/
.ui.input.focus > input,
.ui.input > input:focus {
border-color: @focusBorderColor;
background: @focusBackground;
color: @focusColor;
box-shadow: @focusBoxShadow;
}
.ui.input.focus > input::-webkit-input-placeholder,
.ui.input > input:focus::-webkit-input-placeholder {
color: @placeholderFocusColor;
}
.ui.input.focus > input::-moz-placeholder,
.ui.input > input:focus::-moz-placeholder {
color: @placeholderFocusColor;
}
.ui.input.focus > input:-ms-input-placeholder,
.ui.input > input:focus:-ms-input-placeholder {
color: @placeholderFocusColor;
}
& when (@variationInputStates) {
/*--------------------
States
---------------------*/
each(@formStates, {
@state: replace(@key, '@', '');
.ui.input.@{state} > input {
background-color: @formStates[@@state][background];
border-color: @formStates[@@state][borderColor];
color: @formStates[@@state][color];
box-shadow: @formStates[@@state][boxShadow];
}
/* Placeholder */
.ui.input.@{state} > input::-webkit-input-placeholder {
color: @formStates[@@state][inputPlaceholderColor];
}
.ui.input.@{state} > input::-moz-placeholder {
color: @formStates[@@state][inputPlaceholderColor];
}
.ui.input.@{state} > input:-ms-input-placeholder {
color: @formStates[@@state][inputPlaceholderColor] !important;
}
/* Focused Placeholder */
.ui.input.@{state} > input:focus::-webkit-input-placeholder {
color: @formStates[@@state][inputPlaceholderFocusColor];
}
.ui.input.@{state} > input:focus::-moz-placeholder {
color: @formStates[@@state][inputPlaceholderFocusColor];
}
.ui.input.@{state} > input:focus:-ms-input-placeholder {
color: @formStates[@@state][inputPlaceholderFocusColor] !important;
}
})
}
/*******************************
Variations
*******************************/
& when (@variationInputTransparent) {
/*--------------------
Transparent
---------------------*/
.ui.transparent.input > textarea,
.ui.transparent.input > input {
border-color: transparent !important;
background-color: transparent !important;
padding: 0;
box-shadow: none !important;
border-radius: 0 !important;
}
.field .ui.transparent.input > textarea {
padding: @padding;
}
/* Transparent Icon */
:not(.field) > .ui.transparent.icon.input > i.icon {
width: @transparentIconWidth;
}
:not(.field) > .ui.ui.ui.transparent.icon.input > input {
padding-left: 0;
padding-right: @transparentIconMargin;
}
:not(.field) > .ui.ui.ui.transparent[class*="left icon"].input > input {
padding-left: @transparentIconMargin;
padding-right: 0;
}
& when (@variationInputInverted) {
/* Transparent Inverted */
.ui.transparent.inverted.input {
color: @transparentInvertedColor;
}
.ui.ui.transparent.inverted.input > textarea,
.ui.ui.transparent.inverted.input > input {
color: inherit;
}
.ui.transparent.inverted.input > input::-webkit-input-placeholder {
color: @transparentInvertedPlaceholderColor;
}
.ui.transparent.inverted.input > input::-moz-placeholder {
color: @transparentInvertedPlaceholderColor;
}
.ui.transparent.inverted.input > input:-ms-input-placeholder {
color: @transparentInvertedPlaceholderColor;
}
}
}
& when (@variationInputIcon) {
/*--------------------
Icon
---------------------*/
.ui.icon.input > i.icon {
cursor: default;
position: absolute;
line-height: 1;
text-align: center;
top: 0;
right: 0;
margin: 0;
height: 100%;
width: @iconWidth;
opacity: @iconOpacity;
border-radius: 0 @borderRadius @borderRadius 0;
transition: @iconTransition;
}
.ui.icon.input > i.icon:not(.link) {
pointer-events: none;
}
.ui.ui.ui.ui.icon.input > textarea,
.ui.ui.ui.ui.icon.input > input {
padding-right: @iconMargin;
}
.ui.icon.input > i.icon:before,
.ui.icon.input > i.icon:after {
left: 0;
position: absolute;
text-align: center;
top: 50%;
width: 100%;
margin-top: @iconOffset;
}
.ui.icon.input > i.link.icon {
cursor: pointer;
}
.ui.icon.input > i.circular.icon {
top: @circularIconVerticalOffset;
right: @circularIconHorizontalOffset;
}
/* Left Icon Input */
.ui[class*="left icon"].input > i.icon {
right: auto;
left: @borderWidth;
border-radius: @borderRadius 0 0 @borderRadius;
}
.ui[class*="left icon"].input > i.circular.icon {
right: auto;
left: @circularIconHorizontalOffset;
}
.ui.ui.ui.ui[class*="left icon"].input > textarea,
.ui.ui.ui.ui[class*="left icon"].input > input {
padding-left: @iconMargin;
padding-right: @horizontalPadding;
}
/* Focus */
.ui.icon.input > textarea:focus ~ i.icon,
.ui.icon.input > input:focus ~ i.icon {
opacity: 1;
}
}
& when (@variationInputLabeled) {
/*--------------------
Labeled
---------------------*/
/* Adjacent Label */
.ui.labeled.input > .label {
flex: 0 0 auto;
margin: 0;
font-size: @relativeMedium;
}
.ui.labeled.input > .label:not(.corner) {
padding-top: @verticalPadding;
padding-bottom: @verticalPadding;
}
/* Regular Label on Left */
.ui.labeled.input:not([class*="corner labeled"]) .label:first-child {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.ui.labeled.input:not([class*="corner labeled"]) .label:first-child + input {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-left-color: transparent;
}
.ui.labeled.input:not([class*="corner labeled"]) .label:first-child + input:focus {
border-left-color: @focusBorderColor;
}
/* Regular Label on Right */
.ui[class*="right labeled"].input > input {
border-top-right-radius: 0 !important;
border-bottom-right-radius: 0 !important;
border-right-color: transparent !important;
}
.ui[class*="right labeled"].input > input + .label {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.ui[class*="right labeled"].input > input:focus {
border-right-color: @focusBorderColor !important;
}
}
& when (@variationInputCorner) {
/* Corner Label */
.ui.labeled.input .corner.label {
top: @labelCornerTop;
right: @labelCornerRight;
font-size: @labelCornerSize;
border-radius: 0 @borderRadius 0 0;
}
/* Spacing with corner label */
.ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input > textarea,
.ui[class*="corner labeled"]:not([class*="left corner labeled"]).labeled.input > input {
padding-right: @labeledMargin !important;
}
.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > textarea,
.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > input {
padding-right: @labeledIconInputMargin !important;
}
.ui[class*="corner labeled"].icon.input:not([class*="left corner labeled"]) > .icon {
margin-right: @labeledIconMargin;
}
/* Left Labeled */
.ui[class*="left corner labeled"].labeled.input > textarea,
.ui[class*="left corner labeled"].labeled.input > input {
padding-left: @labeledMargin !important;
}
& when (@variationInputIcon) {
.ui[class*="left corner labeled"].icon.input > textarea,
.ui[class*="left corner labeled"].icon.input > input {
padding-left: @labeledIconInputMargin !important;
}
.ui[class*="left corner labeled"].icon.input > .icon {
margin-left: @labeledIconMargin;
}
}
}
& when (@variationInputIcon) {
.ui.icon.input > textarea ~ .icon {
height: @textareaIconHeight;
}
:not(.field) > .ui.transparent.icon.input > textarea ~ .icon {
height: @transparentTextareaIconHeight;
}
}
& when (@variationInputCorner) {
/* Corner Label Position */
.ui.input > .ui.corner.label {
top: @borderWidth;
right: @borderWidth;
}
.ui.input > .ui.left.corner.label {
right: auto;
left: @borderWidth;
}
}
& when (@variationInputLabeled) or (@variationInputAction) {
/* Labeled and action input states */
each(@formStates, {
@state: replace(@key, '@', '');
@borderColor: @formStates[@@state][borderColor];
.ui.form > .field.@{state} > .ui.action.input > .ui.button,
.ui.form > .field.@{state} > .ui.labeled.input:not([class*="corner labeled"]) > .ui.label,
.ui.action.input.@{state} > .ui.button,
.ui.labeled.input.@{state}:not([class*="corner labeled"]) > .ui.label {
border-top: @borderWidth solid @borderColor;
border-bottom: @borderWidth solid @borderColor;
}
.ui.form > .field.@{state} > .ui[class*="left action"].input > .ui.button,
.ui.form > .field.@{state} > .ui.labeled.input:not(.right):not([class*="corner labeled"]) > .ui.label,
.ui[class*="left action"].input.@{state} > .ui.button,
.ui.labeled.input.@{state}:not(.right):not([class*="corner labeled"]) > .ui.label {
border-left: @borderWidth solid @borderColor;
}
.ui.form > .field.@{state} > .ui.action.input:not([class*="left action"]) > input + .ui.button,
.ui.form > .field.@{state} > .ui.right.labeled.input:not([class*="corner labeled"]) > input + .ui.label,
.ui.action.input.@{state}:not([class*="left action"]) > input + .ui.button,
.ui.right.labeled.input.@{state}:not([class*="corner labeled"]) > input + .ui.label {
border-right: @borderWidth solid @borderColor;
}
.ui.form > .field.@{state} > .ui.right.labeled.input:not([class*="corner labeled"]) > .ui.label:first-child,
.ui.right.labeled.input.@{state}:not([class*="corner labeled"]) > .ui.label:first-child {
border-left: @borderWidth solid @borderColor;
}
})
}
& when (@variationInputAction) {
/*--------------------
Action
---------------------*/
.ui.action.input > .button,
.ui.action.input > .buttons {
display: flex;
align-items: center;
flex: 0 0 auto;
}
.ui.action.input > .button,
.ui.action.input > .buttons > .button {
padding-top: @verticalPadding;
padding-bottom: @verticalPadding;
margin: 0;
}
/* Input when ui Left*/
.ui[class*="left action"].input > input {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
border-left-color: transparent;
}
/* Input when ui Right*/
.ui.action.input:not([class*="left action"]) > input {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border-right-color: transparent;
}
/* Button and Dropdown */
.ui.action.input > .dropdown:first-child,
.ui.action.input > .button:first-child,
.ui.action.input > .buttons:first-child > .button {
border-radius: @borderRadius 0 0 @borderRadius;
}
.ui.action.input > .dropdown:not(:first-child),
.ui.action.input > .button:not(:first-child),
.ui.action.input > .buttons:not(:first-child) > .button {
border-radius: 0;
}
.ui.action.input > .dropdown:last-child,
.ui.action.input > .button:last-child,
.ui.action.input > .buttons:last-child > .button {
border-radius: 0 @borderRadius @borderRadius 0;
}
/* Input Focus */
.ui.action.input:not([class*="left action"]) > input:focus {
border-right-color: @focusBorderColor;
}
.ui.ui[class*="left action"].input > input:focus {
border-left-color: @focusBorderColor;
}
}
& when (@variationInputInverted) {
/*--------------------
Inverted
---------------------*/
/* Standard */
.ui.inverted.input > input {
border: none;
}
}
& when (@variationInputFluid) {
/*--------------------
Fluid
---------------------*/
.ui.fluid.input {
display: flex;
}
.ui.fluid.input > input {
width: 0 !important;
}
}
/*--------------------
Size
---------------------*/
.ui.input {
font-size: @relativeMedium;
}
& when not (@variationInputSizes = false) {
each(@variationInputSizes, {
@s: @{value}InputSize;
.ui.@{value}.input {
font-size: @@s;
}
})
}
.loadUIOverrides();

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,416 @@
/*!
* # Fomantic-UI - Loader
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'loader';
@import (multiple) '../../theme.config';
/*******************************
Loader
*******************************/
/* Standard Size */
.ui.loader {
display: none;
position: absolute;
top: @loaderTopOffset;
left: @loaderLeftOffset;
margin: 0;
text-align: center;
z-index: 1000;
transform: translateX(-50%) translateY(-50%);
}
/* Static Shape */
.ui.loader:before {
position: absolute;
content: '';
top: 0;
left: 50%;
width: 100%;
height: 100%;
border-radius: @circularRadius;
border: @loaderLineWidth solid @loaderFillColor;
}
/* Active Shape */
.ui.loader:after {
position: absolute;
content: '';
top: 0;
left: 50%;
width: 100%;
height: 100%;
animation: loader @loaderSpeed infinite linear;
border: @loaderLineWidth solid @shapeBorderColor;
border-radius: @circularRadius;
box-shadow: 0 0 0 1px transparent;
}
& when (@variationLoaderSpeeds) {
/* Speeds */
.ui.fast.loading.loading:after,
.ui.fast.loading.loading .input > i.icon:after,
.ui.fast.loading.loading > i.icon:after,
.ui.fast.loader:after {
animation-duration: @loaderSpeedFast;
}
.ui.slow.loading.loading:after,
.ui.slow.loading.loading .input > i.icon:after,
.ui.slow.loading.loading > i.icon:after,
.ui.slow.loader:after {
animation-duration: @loaderSpeedSlow;
}
}
/* Active Animation */
@keyframes loader {
100% {
transform: rotate(360deg);
}
}
/*-------------------
Coupling
--------------------*/
/* Show inside active dimmer */
.ui.dimmer > .loader {
display: block;
}
/* Black Dimmer */
.ui.dimmer > .ui.loader {
color: @invertedLoaderTextColor;
}
.ui.dimmer > .ui.loader:not(.elastic):before {
border-color: @invertedLoaderFillColor;
}
/* White Dimmer (Inverted) */
.ui.inverted.dimmer > .ui.loader {
color: @loaderTextColor;
}
.ui.inverted.dimmer > .ui.loader:not(.elastic):before {
border-color: @loaderFillColor;
}
/*******************************
Types
*******************************/
& when (@variationLoaderText) {
/*-------------------
Text
--------------------*/
.ui.ui.ui.ui.text.loader {
width: auto;
height: auto;
text-align: center;
font-style: normal;
}
}
/*******************************
States
*******************************/
& when (@variationLoaderIndeterminate) {
.ui.indeterminate.loader:after {
animation-direction: @indeterminateDirection;
animation-duration: @indeterminateSpeed;
}
}
.ui.loader.active,
.ui.loader.visible {
display: block;
}
.ui.loader.disabled,
.ui.loader.hidden {
display: none;
}
/*******************************
Variations
*******************************/
/*-------------------
Sizes
--------------------*/
.ui.loader {
width: @medium;
height: @medium;
font-size: @mediumFontSize;
}
.ui.loader:before,
.ui.loader:after {
width: @medium;
height: @medium;
margin: @mediumOffset;
}
& when (@variationLoaderText) {
.ui.text.loader {
min-width: @medium;
padding-top: (@medium + @textDistance);
}
}
& when not (@variationLoaderSizes = false) {
each(@variationLoaderSizes, {
@o: @{value}Offset;
@f: @{value}FontSize;
@s: @@value;
.ui.@{value}.loader {
width: @s;
height: @s;
font-size: @@f;
}
.ui.@{value}.loader:before,
.ui.@{value}.loader:after {
width: @s;
height: @s;
margin: @@o;
}
& when (@variationLoaderText) {
.ui.@{value}.text.loader {
min-width: @s;
padding-top: (@s + @textDistance);
}
}
})
}
/*-------------------
Colors
--------------------*/
each(@colors, {
@color: replace(@key, '@', '');
@c: @colors[@@color][color];
@l: @colors[@@color][light];
.ui.@{color}.elastic.loader.loader:before,
.ui.@{color}.basic.elastic.loading.button:before,
.ui.@{color}.basic.elastic.loading.button:after,
.ui.@{color}.elastic.loading.loading.loading:not(.segment):before,
.ui.@{color}.elastic.loading.loading.loading .input > i.icon:before,
.ui.@{color}.elastic.loading.loading.loading.loading > i.icon:before,
.ui.@{color}.loading.loading.loading.loading:not(.usual):not(.button):after,
.ui.@{color}.loading.loading.loading.loading .input > i.icon:after,
.ui.@{color}.loading.loading.loading.loading > i.icon:after,
.ui.@{color}.loader.loader.loader:after {
color: @c;
}
.ui.inverted.@{color}.elastic.loader:before,
.ui.inverted.@{color}.elastic.loading.loading.loading:not(.segment):before,
.ui.inverted.@{color}.elastic.loading.loading.loading .input > i.icon:before,
.ui.inverted.@{color}.elastic.loading.loading.loading > i.icon:before,
.ui.inverted.@{color}.loading.loading.loading.loading:not(.usual):after,
.ui.inverted.@{color}.loading.loading.loading.loading .input > i.icon:after,
.ui.inverted.@{color}.loading.loading.loading.loading > i.icon:after,
.ui.inverted.@{color}.loader.loader.loader:after {
color: @l;
}
})
.ui.elastic.loader.loader:before,
.ui.elastic.loading.loading.loading:before,
.ui.elastic.loading.loading.loading .input > i.icon:before,
.ui.elastic.loading.loading.loading > i.icon:before,
.ui.loading.loading.loading.loading:not(.usual):after,
.ui.loading.loading.loading.loading .input > i.icon:after,
.ui.loading.loading.loading.loading > i.icon:after,
.ui.loader.loader.loader:after {
border-color: currentColor;
}
.ui.elastic.loading.loading.loading.loading.button:not(.inverted):not(.basic):before {
color: @invertedLoaderLineColor;
}
.ui.elastic.basic.loading.button:before,
.ui.elastic.basic.loading.button:after {
color: @loaderLineColor;
}
.ui.double.loading.loading.loading.loading.button:after {
border-bottom-color: currentColor;
}
& when (@variationLoaderInline) {
/*-------------------
Inline
--------------------*/
.ui.inline.loader {
position: relative;
vertical-align: @inlineVerticalAlign;
margin: @inlineMargin;
left: 0;
top: 0;
transform: none;
}
.ui.inline.loader.active,
.ui.inline.loader.visible {
display: inline-block;
}
/* Centered Inline */
.ui.centered.inline.loader.active,
.ui.centered.inline.loader.visible {
display: block;
margin-left: auto;
margin-right: auto;
}
}
.ui.loading.loading.loading.loading.loading.loading:after,
.ui.loading.loading.loading.loading.loading.loading .input > i.icon:after,
.ui.loading.loading.loading.loading.loading.loading > i.icon:after,
.ui.loader.loader.loader.loader.loader:after {
border-left-color:transparent;
border-right-color:transparent;
}
.ui.loading.loading.loading.loading.loading.loading.loading:not(.double):after,
.ui.loading.loading.loading.loading.loading.loading.loading:not(.double) .input > i.icon:after,
.ui.loading.loading.loading.loading.loading.loading.loading:not(.double) > i.icon:after,
.ui.loader.loader.loader.loader.loader.loader:not(.double):after {
border-bottom-color: transparent;
}
.ui.loading.loading.loading.loading.loading.loading.segment:after,
.ui.loading.loading.loading.loading.loading.loading.form:after {
border-left-color:@loaderFillColor;
border-right-color:@loaderFillColor;
}
.ui.loading.loading.loading.loading.loading.loading.segment:not(.double):after,
.ui.loading.loading.loading.loading.loading.loading.form:not(.double):after {
border-bottom-color: @loaderFillColor;
}
& when (@variationLoaderElastic) {
/*-------------------
Elastic
--------------------*/
.ui.dimmer > .ui.elastic.loader {
color: @invertedLoaderLineColor;
}
.ui.inverted.dimmer > .ui.elastic.loader {
color: @loaderLineColor;
}
.ui.elastic.loading.loading:not(.form):not(.segment):after,
.ui.elastic.loading.loading .input > i.icon:after,
.ui.elastic.loading.loading > i.icon:after,
.ui.elastic.loader.loader:after {
animation: loader 1s infinite cubic-bezier(.27, 1.05, .92, .61);
animation-delay: 0.3s;
}
.ui.elastic.loading.loading.loading:not(.form):not(.segment):before,
.ui.elastic.loading.loading.loading .input > i.icon:before,
.ui.elastic.loading.loading.loading > i.icon:before,
.ui.elastic.loader.loader:before {
animation: elastic-loader 1s infinite cubic-bezier(.27, 1.05, .92, .61);
-moz-animation: currentcolor-elastic-loader 1s infinite cubic-bezier(.27, 1.05, .92, .61);
border-right-color: transparent;
}
& when (@variationLoaderInline) {
.ui.elastic.inline.loader:empty {
animation: loader 8s infinite linear;
}
}
& when (@variationLoaderSpeeds) {
.ui.slow.elastic.loading.loading:not(.form):not(.segment):after,
.ui.slow.elastic.loading.loading .input > i.icon:after,
.ui.slow.elastic.loading.loading > i.icon:after,
.ui.slow.elastic.loader.loader:after {
animation-duration: 1.5s;
animation-delay: 0.45s;
}
.ui.slow.elastic.loading.loading.loading:not(.form):not(.segment):before,
.ui.slow.elastic.loading.loading.loading .input > i.icon:before,
.ui.slow.elastic.loading.loading.loading > i.icon:before,
.ui.slow.elastic.loader.loader:before {
animation-duration: 1.5s;
}
.ui.fast.elastic.loading.loading:not(.form):not(.segment):after,
.ui.fast.elastic.loading.loading .input > i.icon:after,
.ui.fast.elastic.loading.loading > i.icon:after,
.ui.fast.elastic.loader.loader:after {
animation-duration: 0.66s;
animation-delay: 0.20s;
}
.ui.fast.elastic.loading.loading.loading:not(.form):not(.segment):before,
.ui.fast.elastic.loading.loading.loading .input > i.icon:before,
.ui.fast.elastic.loading.loading.loading > i.icon:before,
.ui.fast.elastic.loader.loader:before {
animation-duration: 0.66s;
}
}
@keyframes elastic-loader {
0%, 1% {
border-left-color: transparent;
border-bottom-color: transparent
}
1.1%, 50% {
border-left-color: inherit;
}
10%, 35.1%{
border-bottom-color: transparent;
}
10.1%, 35%{
border-bottom-color: inherit;
}
50.1%{
border-left-color: transparent;
}
100% {
border-left-color: transparent;
border-bottom-color: transparent;
transform: rotate(360deg);
}
}
@keyframes currentcolor-elastic-loader {
0%, 1% {
border-left-color: transparent;
border-bottom-color: transparent
}
1.1%, 50% {
border-left-color: currentColor;
}
10%, 35.1%{
border-bottom-color: transparent;
}
10.1%, 35%{
border-bottom-color: currentColor;
}
50.1%{
border-left-color: transparent;
}
100% {
border-left-color: transparent;
border-bottom-color: transparent;
transform: rotate(360deg);
}
}
}
.loadUIOverrides();

View file

@ -0,0 +1,248 @@
/*!
* # Fomantic-UI - Loader
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'placeholder';
@import (multiple) '../../theme.config';
/*-------------------
Content
--------------------*/
.ui.placeholder {
position: static;
overflow: hidden;
animation: placeholderShimmer @placeholderLoadingAnimationDuration linear;
animation-iteration-count: infinite;
background-color: @white;
background-image: @placeholderLoadingGradient;
background-size: @placeholderLoadingGradientWidth 100%;
max-width: @placeholderMaxWidth;
}
@keyframes placeholderShimmer{
0% {
background-position: -@placeholderLoadingGradientWidth 0
}
100% {
background-position: @placeholderLoadingGradientWidth 0
}
}
.ui.placeholder + .ui.placeholder {
margin-top: @consecutivePlaceholderSpacing;
}
.ui.placeholder + .ui.placeholder {
animation-delay: @placeholderAnimationInterval;
}
.ui.placeholder + .ui.placeholder + .ui.placeholder {
animation-delay: (@placeholderAnimationInterval * 2);
}
.ui.placeholder + .ui.placeholder + .ui.placeholder + .ui.placeholder {
animation-delay: (@placeholderAnimationInterval * 3);
}
.ui.placeholder + .ui.placeholder + .ui.placeholder + .ui.placeholder + .ui.placeholder {
animation-delay: (@placeholderAnimationInterval * 4);
}
.ui.placeholder,
.ui.placeholder > :before,
.ui.placeholder .image.header:after,
.ui.placeholder .line,
.ui.placeholder .line:after {
background-color: @white;
}
.ui.placeholder.hidden {
display:none;
}
& when (@variationPlaceholderImage) {
/* Image */
.ui.placeholder .image:not(.header):not(.ui):not(.icon) {
height: @placeholderImageHeight;
}
.ui.placeholder .square.image:not(.header) {
height: 0;
overflow: hidden;
/* 1/1 aspect ratio */
padding-top: 100%;
}
.ui.placeholder .rectangular.image:not(.header) {
height: 0;
overflow: hidden;
/* 4/3 aspect ratio */
padding-top: 75%;
}
}
& when (@variationPlaceholderLine) or (@variationPlaceholderHeader) {
/* Lines */
.ui.placeholder .line {
position: relative;
height: @placeholderLineMargin;
}
.ui.placeholder .line:before,
.ui.placeholder .line:after {
top: 100%;
position: absolute;
content: '';
background-color: inherit;
}
.ui.placeholder .line:before {
left: 0;
}
.ui.placeholder .line:after {
right: 0;
}
/* Any Lines */
.ui.placeholder .line {
margin-bottom: @placeholderLineHeight;
}
.ui.placeholder .line:before,
.ui.placeholder .line:after {
height: @placeholderLineHeight;
}
.ui.placeholder .line:not(:first-child) {
margin-top: @placeholderLineHeight;
}
/* Line Outdent */
.ui.placeholder .line:nth-child(1):after {
width: @placeholderLineOneOutdent;
}
.ui.placeholder .line:nth-child(2):after {
width: @placeholderLineTwoOutdent;
}
.ui.placeholder .line:nth-child(3):after {
width: @placeholderLineThreeOutdent;
}
.ui.placeholder .line:nth-child(4):after {
width: @placeholderLineFourOutdent;
}
.ui.placeholder .line:nth-child(5):after {
width: @placeholderLineFiveOutdent;
}
}
& when (@variationPlaceholderHeader) {
/* Header Image + 2 Lines */
.ui.placeholder .header {
position: relative;
overflow: hidden;
}
/* Header Line 1 & 2*/
.ui.placeholder .header .line {
margin-bottom: @placeholderHeaderLineHeight;
}
.ui.placeholder .header .line:before,
.ui.placeholder .header .line:after {
height: @placeholderHeaderLineHeight;
}
.ui.placeholder .header .line:not(:first-child) {
margin-top: @placeholderHeaderLineHeight;
}
.ui.placeholder .header .line:after {
width: @placeholderHeaderLineOneOutdent;
}
.ui.placeholder .header .line:nth-child(2):after {
width: @placeholderHeaderLineTwoOutdent;
}
& when (@variationPlaceholderImage) {
/* Image Header */
.ui.placeholder .image.header .line {
margin-left: @placeholderImageWidth;
}
.ui.placeholder .image.header .line:before {
width: @placeholderImageTextIndent;
}
.ui.placeholder .image.header:after {
display: block;
height: @placeholderLineMargin;
content: '';
margin-left: @placeholderImageWidth;
}
}
}
/* Spacing */
.ui.placeholder .image .line:first-child,
.ui.placeholder .paragraph .line:first-child,
.ui.placeholder .header .line:first-child {
height: 0.01px;
}
.ui.placeholder .image:not(:first-child):before,
.ui.placeholder .paragraph:not(:first-child):before,
.ui.placeholder .header:not(:first-child):before {
height: @placeholderSpacing;
content: '';
display: block;
}
& when (@variationPlaceholderInverted) {
/* Inverted Content Loader */
.ui.inverted.placeholder {
background-image: @placeholderInvertedLoadingGradient;
}
.ui.inverted.placeholder,
.ui.inverted.placeholder > :before,
.ui.inverted.placeholder .image.header:after,
.ui.inverted.placeholder .line,
.ui.inverted.placeholder .line:after {
background-color: @black;
}
}
/*******************************
Variations
*******************************/
/*-------------------
Sizes
--------------------*/
& when (@variationPlaceholderLengths) {
.ui.placeholder .full.line.line.line:after {
width: @placeholderFullLineOutdent;
}
.ui.placeholder .very.long.line.line.line:after {
width: @placeholderVeryLongLineOutdent;
}
.ui.placeholder .long.line.line.line:after {
width: @placeholderLongLineOutdent;
}
.ui.placeholder .medium.line.line.line:after {
width: @placeholderMediumLineOutdent;
}
.ui.placeholder .short.line.line.line:after {
width: @placeholderShortLineOutdent;
}
.ui.placeholder .very.short.line.line.line:after {
width: @placeholderVeryShortLineOutdent;
}
}
& when (@variationPlaceholderFluid) {
/*-------------------
Fluid
--------------------*/
.ui.fluid.placeholder {
max-width: none;
}
}
.loadUIOverrides();

View file

@ -0,0 +1,147 @@
/*!
* # Fomantic-UI - Rail
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'rail';
@import (multiple) '../../theme.config';
/*******************************
Rails
*******************************/
.ui.rail {
position: absolute;
top: 0;
width: @width;
height: @height;
}
.ui.left.rail {
left: auto;
right: 100%;
padding: 0 @splitDistance 0 0;
margin: 0 @splitDistance 0 0;
}
.ui.right.rail {
left: 100%;
right: auto;
padding: 0 0 0 @splitDistance;
margin: 0 0 0 @splitDistance;
}
/*******************************
Variations
*******************************/
& when (@variationRailInternal) {
/*--------------
Internal
---------------*/
.ui.left.internal.rail {
left: 0;
right: auto;
padding: 0 0 0 @splitDistance;
margin: 0 0 0 @splitDistance;
}
.ui.right.internal.rail {
left: auto;
right: 0;
padding: 0 @splitDistance 0 0;
margin: 0 @splitDistance 0 0;
}
}
& when (@variationRailDividing) {
/*--------------
Dividing
---------------*/
.ui.dividing.rail {
width: @dividingWidth;
}
.ui.left.dividing.rail {
padding: 0 @splitDividingDistance 0 0;
margin: 0 @splitDividingDistance 0 0;
border-right: @dividingBorder;
}
.ui.right.dividing.rail {
border-left: @dividingBorder;
padding: 0 0 0 @splitDividingDistance;
margin: 0 0 0 @splitDividingDistance;
}
}
& when (@variationRailDistance) {
/*--------------
Distance
---------------*/
.ui.close.rail {
width: @closeWidth;
}
.ui.close.left.rail {
padding: 0 @splitCloseDistance 0 0;
margin: 0 @splitCloseDistance 0 0;
}
.ui.close.right.rail {
padding: 0 0 0 @splitCloseDistance;
margin: 0 0 0 @splitCloseDistance;
}
.ui.very.close.rail {
width: @veryCloseWidth;
}
.ui.very.close.left.rail {
padding: 0 @splitVeryCloseDistance 0 0;
margin: 0 @splitVeryCloseDistance 0 0;
}
.ui.very.close.right.rail {
padding: 0 0 0 @splitVeryCloseDistance;
margin: 0 0 0 @splitVeryCloseDistance;
}
}
& when (@variationRailAttached) {
/*--------------
Attached
---------------*/
.ui.attached.left.rail,
.ui.attached.right.rail {
padding: 0;
margin: 0;
}
}
/*--------------
Sizing
---------------*/
.ui.rail {
font-size: @medium;
}
& when not (@variationRailSizes = false) {
each(@variationRailSizes, {
@s: @@value;
.ui.@{value}.rail {
font-size: @s;
}
})
}
.loadUIOverrides();

View file

@ -0,0 +1,289 @@
/*!
* # Fomantic-UI - Reveal
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'reveal';
@import (multiple) '../../theme.config';
/*******************************
Reveal
*******************************/
.ui.reveal {
display: inherit;
position: relative !important;
font-size: 0;
}
.ui.reveal > .visible.content {
position: absolute !important;
top: 0 !important;
left: 0 !important;
z-index: @topZIndex !important;
transition: @transition;
}
.ui.reveal > .hidden.content {
position: relative !important;
z-index: @bottomZIndex !important;
}
/* Make sure hovered element is on top of other reveal */
.ui.active.reveal .visible.content,
.ui.reveal:hover .visible.content {
z-index: @activeZIndex !important;
}
/*******************************
Types
*******************************/
& when (@variationRevealSlide) {
/*--------------
Slide
---------------*/
.ui.slide.reveal {
position: relative !important;
overflow: hidden !important;
white-space: nowrap;
}
.ui.slide.reveal > .content {
display: block;
width: 100%;
white-space: normal;
float: left;
margin: 0;
transition: @slideTransition;
}
.ui.slide.reveal > .visible.content {
position: relative !important;
}
.ui.slide.reveal > .hidden.content {
position: absolute !important;
left: 0 !important;
width: 100% !important;
transform: translateX(100%) !important;
}
.ui.slide.active.reveal > .visible.content,
.ui.slide.reveal:hover > .visible.content {
transform: translateX(-100%) !important;
}
.ui.slide.active.reveal > .hidden.content,
.ui.slide.reveal:hover > .hidden.content {
transform: translateX(0%) !important;
}
.ui.slide.right.reveal > .visible.content {
transform: translateX(0%) !important;
}
.ui.slide.right.reveal > .hidden.content {
transform: translateX(-100%) !important;
}
.ui.slide.right.active.reveal > .visible.content,
.ui.slide.right.reveal:hover > .visible.content {
transform: translateX(100%) !important;
}
.ui.slide.right.active.reveal > .hidden.content,
.ui.slide.right.reveal:hover > .hidden.content {
transform: translateX(0%) !important;
}
.ui.slide.up.reveal > .hidden.content {
transform: translateY(100%) !important;
}
.ui.slide.up.active.reveal > .visible.content,
.ui.slide.up.reveal:hover > .visible.content {
transform: translateY(-100%) !important;
}
.ui.slide.up.active.reveal > .hidden.content,
.ui.slide.up.reveal:hover > .hidden.content {
transform: translateY(0%) !important;
}
.ui.slide.down.reveal > .hidden.content {
transform: translateY(-100%) !important;
}
.ui.slide.down.active.reveal > .visible.content,
.ui.slide.down.reveal:hover > .visible.content {
transform: translateY(100%) !important;
}
.ui.slide.down.active.reveal > .hidden.content,
.ui.slide.down.reveal:hover > .hidden.content {
transform: translateY(0%) !important;
}
}
& when (@variationRevealFade) {
/*--------------
Fade
---------------*/
.ui.fade.reveal > .visible.content {
opacity: 1;
}
.ui.fade.active.reveal > .visible.content,
.ui.fade.reveal:hover > .visible.content {
opacity: 0;
}
}
& when (@variationRevealMove) {
/*--------------
Move
---------------*/
.ui.move.reveal {
position: relative !important;
overflow: hidden !important;
white-space: nowrap;
}
.ui.move.reveal > .content {
display: block;
float: left;
white-space: normal;
margin: 0;
transition: @moveTransition;
}
.ui.move.reveal > .visible.content {
position: relative !important;
}
.ui.move.reveal > .hidden.content {
position: absolute !important;
left: 0 !important;
width: 100% !important;
}
.ui.move.active.reveal > .visible.content,
.ui.move.reveal:hover > .visible.content {
transform: translateX(-100%) !important;
}
.ui.move.right.active.reveal > .visible.content,
.ui.move.right.reveal:hover > .visible.content {
transform: translateX(100%) !important;
}
.ui.move.up.active.reveal > .visible.content,
.ui.move.up.reveal:hover > .visible.content {
transform: translateY(-100%) !important;
}
.ui.move.down.active.reveal > .visible.content,
.ui.move.down.reveal:hover > .visible.content {
transform: translateY(100%) !important;
}
}
& when (@variationRevealRotate) {
/*--------------
Rotate
---------------*/
.ui.rotate.reveal > .visible.content {
transition-duration: @transitionDuration;
transform: rotate(0deg);
}
.ui.rotate.reveal > .visible.content,
.ui.rotate.right.reveal > .visible.content {
transform-origin: bottom right;
}
.ui.rotate.active.reveal > .visible.content,
.ui.rotate.reveal:hover > .visible.content,
.ui.rotate.right.active.reveal > .visible.content,
.ui.rotate.right.reveal:hover > .visible.content {
transform: rotate(@rotateDegrees);
}
.ui.rotate.left.reveal > .visible.content {
transform-origin: bottom left;
}
.ui.rotate.left.active.reveal > .visible.content,
.ui.rotate.left.reveal:hover > .visible.content {
transform: rotate(-@rotateDegrees);
}
}
/*******************************
States
*******************************/
& when (@variationRevealDisabled) {
.ui.disabled.reveal:hover > .visible.visible.content {
position: static !important;
display: block !important;
opacity: 1 !important;
top: 0 !important;
left: 0 !important;
right: auto !important;
bottom: auto !important;
transform: none !important;
}
.ui.disabled.reveal:hover > .hidden.hidden.content {
display: none !important;
}
}
/*******************************
Coupling
*******************************/
.ui.reveal > .ui.ribbon.label {
z-index: @overlayZIndex;
}
/*******************************
Variations
*******************************/
/*--------------
Visible
---------------*/
.ui.visible.reveal {
overflow: visible;
}
/*--------------
Instant
---------------*/
.ui.instant.reveal > .content {
transition-delay: 0s !important;
}
/*--------------
Sizing
---------------*/
.ui.reveal > .content {
font-size: @medium;
}
& when not (@variationRevealSizes = false) {
each(@variationRevealSizes, {
@s: @@value;
.ui.@{value}.reveal > .content {
font-size: @s;
}
})
}
.loadUIOverrides();

View file

@ -0,0 +1,768 @@
/*!
* # Fomantic-UI - Segment
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'segment';
@import (multiple) '../../theme.config';
/*******************************
Segment
*******************************/
.ui.segment {
position: relative;
background: @background;
box-shadow: @boxShadow;
margin: @margin;
padding: @padding;
border-radius: @borderRadius;
border: @border;
}
.ui.segment:first-child {
margin-top: 0;
}
.ui.segment:last-child {
margin-bottom: 0;
}
& when (@variationSegmentVertical) {
/* Vertical */
.ui.vertical.segment {
margin: 0;
padding-left: 0;
padding-right: 0;
background: none transparent;
border-radius: 0;
box-shadow: none;
border: none;
border-bottom: @borderWidth solid @borderColor;
}
.ui.vertical.segment:last-child {
border-bottom: none;
}
}
/*-------------------
Loose Coupling
--------------------*/
& when (@variationSegmentInverted) {
/* Header */
.ui.inverted.segment > .ui.header .sub.header,
.ui.inverted.segment > .ui.header {
color: @white;
}
}
& when (@variationSegmentAttached) {
/* Label */
.ui[class*="bottom attached"].segment > [class*="top attached"].label {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.ui[class*="top attached"].segment > [class*="bottom attached"].label {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.ui.attached.segment:not(.top):not(.bottom) > [class*="top attached"].label {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.ui.attached.segment:not(.top):not(.bottom) > [class*="bottom attached"].label {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
}
/* Grid */
.ui.page.grid.segment,
.ui.grid > .row > .ui.segment.column,
.ui.grid > .ui.segment.column {
padding-top: @pageGridMargin;
padding-bottom: @pageGridMargin;
}
.ui.grid.segment {
margin: @margin;
border-radius: @borderRadius;
}
/* Table */
.ui.basic.table.segment {
background: @background;
border: @border;
box-shadow: @boxShadow;
}
.ui[class*="very basic"].table.segment {
padding: @padding;
}
/* Tab */
.ui.segment.tab:last-child {
margin-bottom: @verticalMargin;
}
/*******************************
Types
*******************************/
& when (@variationSegmentPlaceholder) {
/*-------------------
Placeholder
--------------------*/
.ui.placeholder.segment {
display: flex;
flex-direction: column;
justify-content: center;
align-items: stretch;
max-width: initial;
animation: none;
overflow: visible;
padding: @placeholderPadding;
min-height: @placeholderMinHeight;
background: @placeholderBackground;
border-color: @placeholderBorderColor;
box-shadow: @placeholderBoxShadow;
}
.ui.placeholder.segment .button,
.ui.placeholder.segment textarea {
display: block;
}
.ui.placeholder.segment .field,
.ui.placeholder.segment textarea,
.ui.placeholder.segment > .ui.input,
.ui.placeholder.segment .button {
max-width: @placeholderContentMaxWidth;
margin-left: auto;
margin-right: auto;
}
.ui.placeholder.segment .column .button,
.ui.placeholder.segment .column .field,
.ui.placeholder.segment .column textarea,
.ui.placeholder.segment .column > .ui.input {
max-width: @placeholderContentMaxWidth;
margin-left: auto;
margin-right: auto;
}
.ui.placeholder.segment > .inline {
align-self: center;
}
.ui.placeholder.segment > .inline > .button {
display: inline-block;
width: auto;
margin: @placeholderContentInlineButtonMargin;
}
.ui.placeholder.segment > .inline > .button:last-child {
margin-right: 0;
}
}
& when (@variationSegmentPiled) {
/*-------------------
Piled
--------------------*/
.ui.piled.segments,
.ui.piled.segment {
margin: @piledMargin 0;
box-shadow: @piledBoxShadow;
z-index: @piledZIndex;
}
.ui.piled.segment:first-child {
margin-top: 0;
}
.ui.piled.segment:last-child {
margin-bottom: 0;
}
.ui.piled.segments:after,
.ui.piled.segments:before,
.ui.piled.segment:after,
.ui.piled.segment:before {
background-color: @white;
visibility: visible;
content: '';
display: block;
height: 100%;
left: 0;
position: absolute;
width: 100%;
border: @piledBorder;
box-shadow: @piledBoxShadow;
}
.ui.piled.segments:before,
.ui.piled.segment:before {
transform: rotate(-@piledDegrees);
top: 0;
z-index: -2;
}
.ui.piled.segments:after,
.ui.piled.segment:after {
transform: rotate(@piledDegrees);
top: 0;
z-index: -1;
}
& when (@variationSegmentAttached) {
/* Piled Attached */
.ui[class*="top attached"].piled.segment {
margin-top: @piledMargin;
margin-bottom: 0;
}
.ui.piled.segment[class*="top attached"]:first-child {
margin-top: 0;
}
.ui.piled.segment[class*="bottom attached"] {
margin-top: 0;
margin-bottom: @piledMargin;
}
.ui.piled.segment[class*="bottom attached"]:last-child {
margin-bottom: 0;
}
}
}
& when (@variationSegmentStacked) {
/*-------------------
Stacked
--------------------*/
.ui.stacked.segment {
padding-bottom: @stackedPadding;
}
.ui.stacked.segments:before,
.ui.stacked.segments:after,
.ui.stacked.segment:before,
.ui.stacked.segment:after {
content: '';
position: absolute;
bottom: -(@stackedHeight / 2);
left: 0;
border-top: 1px solid @borderColor;
background: @stackedPageBackground;
width: 100%;
height: @stackedHeight;
visibility: visible;
}
.ui.stacked.segments:before,
.ui.stacked.segment:before {
display: none;
}
/* Add additional page */
.ui.tall.stacked.segments:before,
.ui.tall.stacked.segment:before {
display: block;
bottom: 0;
}
& when (@variationSegmentInverted) {
/* Inverted */
.ui.stacked.inverted.segments:before,
.ui.stacked.inverted.segments:after,
.ui.stacked.inverted.segment:before,
.ui.stacked.inverted.segment:after {
background-color: @subtleTransparentBlack;
border-top: 1px solid @selectedBorderColor;
}
}
}
& when (@variationSegmentPadded) {
/*-------------------
Padded
--------------------*/
.ui.padded.segment {
padding: @paddedSegmentPadding;
}
.ui[class*="very padded"].segment {
padding: @veryPaddedSegmentPadding;
}
& when (@variationSegmentVertical) {
/* Padded vertical */
.ui.padded.segment.vertical.segment,
.ui[class*="very padded"].vertical.segment {
padding-left: 0;
padding-right: 0;
}
}
}
& when (@variationSegmentCompact) {
/*-------------------
Compact
--------------------*/
.ui.compact.segment {
display: table;
}
/* Compact Group */
.ui.compact.segments {
display: inline-flex;
}
.ui.compact.segments .segment,
.ui.segments .compact.segment {
display: block;
flex: 0 1 auto;
}
}
& when (@variationSegmentCircular) {
/*-------------------
Circular
--------------------*/
.ui.circular.segment {
display: table-cell;
padding: @circularPadding;
text-align: center;
vertical-align: middle;
border-radius: 500em;
}
}
& when (@variationSegmentRaised) {
/*-------------------
Raised
--------------------*/
.ui.raised.raised.segments,
.ui.raised.raised.segment {
box-shadow: @raisedBoxShadow;
}
}
& when (@variationSegmentGroups) {
/*******************************
Groups
*******************************/
/* Group */
.ui.segments {
flex-direction: column;
position: relative;
margin: @groupedMargin;
border: @groupedBorder;
box-shadow: @groupedBoxShadow;
border-radius: @groupedBorderRadius;
}
.ui.segments:first-child {
margin-top: 0;
}
.ui.segments:last-child {
margin-bottom: 0;
}
/* Nested Segment */
.ui.segments > .segment {
top: 0;
bottom: 0;
border-radius: 0;
margin: @groupedSegmentMargin;
width: @groupedSegmentWidth;
box-shadow: @groupedSegmentBoxShadow;
border: @groupedSegmentBorder;
border-top: @groupedSegmentDivider;
}
.ui.segments:not(.horizontal) > .segment:first-child {
top: @attachedTopOffset;
bottom: 0;
border-top: none;
margin-top: 0;
margin-bottom: 0;
border-radius: @borderRadius @borderRadius 0 0;
}
/* Bottom */
.ui.segments:not(.horizontal) > .segment:last-child {
top: @attachedBottomOffset;
bottom: 0;
margin-top: 0;
margin-bottom: 0;
box-shadow: @attachedBottomBoxShadow;
border-radius: 0 0 @borderRadius @borderRadius;
}
/* Only */
.ui.segments:not(.horizontal) > .segment:only-child {
border-radius: @borderRadius;
}
/* Nested Group */
.ui.segments > .ui.segments {
border-top: @groupedSegmentDivider;
margin: @nestedGroupMargin;
}
.ui.segments > .segments:first-child {
border-top: none;
}
.ui.segments > .segment + .segments:not(.horizontal) {
margin-top: 0;
}
& when (@variationSegmentHorizontal) {
/* Horizontal Group */
.ui.horizontal.segments {
display: flex;
flex-direction: row;
background-color: transparent;
padding: 0;
box-shadow: @boxShadow;
margin: @margin;
border-radius: @borderRadius;
border: @border;
}
.ui.stackable.horizontal.segments {
flex-wrap: wrap;
}
/* Nested Horizontal Group */
.ui.segments > .horizontal.segments {
margin: 0;
background-color: transparent;
border-radius: 0;
border: none;
box-shadow: none;
border-top: @groupedSegmentDivider;
}
/* Horizontal Segment */
.ui.horizontal.segments:not(.compact) > .segment:not(.compact) {
flex: 1 1 auto;
-ms-flex: 1 1 0; /* Solves #2550 MS Flex */
}
.ui.horizontal.segments > .segment {
margin: 0;
min-width: 0;
border-radius: 0;
border: none;
box-shadow: none;
border-left: @borderWidth solid @borderColor;
}
/* Border Fixes */
.ui.segments > .horizontal.segments:first-child {
border-top: none;
}
.ui.horizontal.segments:not(.stackable) > .segment:first-child {
border-left: none;
}
}
}
/*******************************
States
*******************************/
& when (@variationSegmentDisabled) {
/*--------------
Disabled
---------------*/
.ui.disabled.segment {
opacity: @disabledOpacity;
color: @disabledTextColor;
}
}
& when (@variationSegmentLoading) {
/*--------------
Loading
---------------*/
.ui.loading.segment {
position: relative;
cursor: default;
pointer-events: none;
text-shadow: none !important;
transition: all 0s linear;
}
.ui.loading.segment:before {
position: absolute;
content: '';
top: 0;
left: 0;
background: @loaderDimmerColor;
width: 100%;
height: 100%;
border-radius: @borderRadius;
z-index: @loaderDimmerZIndex;
}
.ui.loading.segment:after {
position: absolute;
content: '';
top: 50%;
left: 50%;
margin: @loaderMargin;
width: @loaderSize;
height: @loaderSize;
animation: loader @loaderSpeed infinite linear;
border: @loaderLineWidth solid @loaderLineColor;
border-radius: @circularRadius;
box-shadow: 0 0 0 1px transparent;
visibility: visible;
z-index: @loaderLineZIndex;
}
}
/*******************************
Variations
*******************************/
& when (@variationSegmentBasic) {
/*-------------------
Basic
--------------------*/
.ui.basic.segment,
.ui.segments .ui.basic.segment,
.ui.basic.segments {
background: @basicBackground;
box-shadow: @basicBoxShadow;
border: @basicBorder;
border-radius: @basicBorderRadius;
}
}
& when (@variationSegmentClearing) {
/*-------------------
Clearing
--------------------*/
.ui.clearing.segment:after {
content: "";
display: block;
clear: both;
}
}
/*-------------------
Colors
--------------------*/
each(@colors,{
@color: replace(@key,'@','');
@c: @colors[@@color][color];
& when not (@color=primary) and not (@color=secondary) {
.ui.@{color}.segment.segment.segment.segment.segment:not(.inverted) {
border-top: @coloredBorderSize solid @c;
}
& when (@variationSegmentInverted) {
.ui.inverted.@{color}.segment.segment.segment.segment.segment {
background-color: @c;
color: @white;
}
}
}
})
& when (@variationSegmentAligned) {
/*-------------------
Aligned
--------------------*/
.ui[class*="left aligned"].segment {
text-align: left;
}
.ui[class*="right aligned"].segment {
text-align: right;
}
.ui[class*="center aligned"].segment {
text-align: center;
}
}
& when (@variationSegmentFloating) {
/*-------------------
Floated
--------------------*/
.ui.floated.segment,
.ui[class*="left floated"].segment {
float: left;
margin-right: @floatedDistance;
}
.ui[class*="right floated"].segment {
float: right;
margin-left: @floatedDistance;
}
}
& when (@variationSegmentInverted) {
/*-------------------
Inverted
--------------------*/
.ui.inverted.segment {
border: none;
box-shadow: none;
}
.ui.inverted.segment,
.ui.primary.inverted.segment {
background: @invertedBackground;
color: @invertedTextColor;
}
/* Nested */
.ui.inverted.segment .segment {
color: @textColor;
}
.ui.inverted.segment .inverted.segment {
color: @invertedTextColor;
}
& when (@variationSegmentAttached) {
/* Attached */
.ui.inverted.attached.segment {
border-color: @solidWhiteBorderColor;
}
}
& when (@variationSegmentLoading) {
/* Loading */
.ui.inverted.loading.segment {
color: @invertedLoaderLineColor;
}
.ui.inverted.loading.segment:before {
background: @loaderInvertedDimmerColor;
}
}
}
/*-------------------
Emphasis
--------------------*/
& when (@variationSegmentSecondary) {
/* Secondary */
.ui.secondary.segment {
background: @secondaryBackground;
color: @secondaryColor;
}
& when (@variationSegmentInverted) {
.ui.secondary.inverted.segment {
background: @secondaryInvertedBackground;
color: @secondaryInvertedColor;
}
}
}
& when (@variationSegmentTertiary) {
/* Tertiary */
.ui.tertiary.segment {
background: @tertiaryBackground;
color: @tertiaryColor;
}
& when (@variationSegmentInverted) {
.ui.tertiary.inverted.segment {
background: @tertiaryInvertedBackground;
color: @tertiaryInvertedColor;
}
}
}
& when (@variationSegmentAttached) {
/*-------------------
Attached
--------------------*/
/* Middle */
.ui.attached.segment {
top: 0;
bottom: 0;
border-radius: 0;
margin: 0 @attachedHorizontalOffset;
width: @attachedWidth;
max-width: @attachedWidth;
box-shadow: @attachedBoxShadow;
border: @attachedBorder;
}
.ui.attached:not(.message) + .ui.attached.segment:not(.top) {
border-top: none;
}
/* Top */
.ui[class*="top attached"].segment {
bottom: 0;
margin-bottom: 0;
top: @attachedTopOffset;
margin-top: @verticalMargin;
border-radius: @borderRadius @borderRadius 0 0;
}
.ui.segment[class*="top attached"]:first-child {
margin-top: 0;
}
/* Bottom */
.ui.segment[class*="bottom attached"] {
bottom: 0;
margin-top: 0;
top: @attachedBottomOffset;
margin-bottom: @verticalMargin;
box-shadow: @attachedBottomBoxShadow;
border-radius: 0 0 @borderRadius @borderRadius;
}
.ui.segment[class*="bottom attached"]:last-child {
margin-bottom: @verticalMargin;
}
}
& when (@variationSegmentFitted) {
/*--------------
Fitted
---------------*/
.ui.fitted.segment:not(.horizontally) {
padding-top: 0;
padding-bottom: 0;
}
.ui.fitted.segment:not(.vertically) {
padding-left: 0;
padding-right: 0;
}
}
/*-------------------
Size
--------------------*/
.ui.segments .segment,
.ui.segment {
font-size: @medium;
}
& when not (@variationSegmentSizes = false) {
each(@variationSegmentSizes, {
@s: @@value;
.ui.@{value}.segments .segment,
.ui.@{value}.segment {
font-size: @s;
}
})
}
.loadUIOverrides();

View file

@ -0,0 +1,630 @@
/*!
* # Fomantic-UI - Step
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Step
*******************************/
/*--------------
Load Theme
---------------*/
@type : 'element';
@element : 'step';
@import (multiple) '../../theme.config';
/*******************************
Plural
*******************************/
.ui.steps {
display: inline-flex;
flex-direction: row;
align-items: stretch;
margin: @stepMargin;
background: @stepsBackground;
box-shadow: @stepsBoxShadow;
line-height: @lineHeight;
border-radius: @stepsBorderRadius;
border: @stepsBorder;
}
.ui.steps:not(.unstackable) {
flex-wrap: wrap;
}
/* First Steps */
.ui.steps:first-child {
margin-top: 0;
}
/* Last Steps */
.ui.steps:last-child {
margin-bottom: 0;
}
/*******************************
Singular
*******************************/
.ui.steps .step {
position: relative;
display: flex;
flex: 1 0 auto;
flex-wrap: wrap;
flex-direction: row;
vertical-align: middle;
align-items: center;
justify-content: @justifyContent;
margin: @verticalMargin @horizontalMargin;
padding: @verticalPadding @horizontalPadding;
background: @background;
color: @textColor;
box-shadow: @boxShadow;
border-radius: @borderRadius;
border: @border;
border-right: @divider;
transition: @transition;
}
/* Arrow */
.ui.steps .step:after {
display: none;
position: absolute;
z-index: 2;
content: '';
top: @arrowTopOffset;
right: @arrowRightOffset;
background-color: @arrowBackgroundColor;
width: @arrowSize;
height: @arrowSize;
border-style: solid;
border-color: @borderColor;
border-width: @arrowBorderWidth;
transition: @transition;
transform: translateY(-50%) translateX(50%) rotate(-45deg);
}
/* First Step */
.ui.steps .step:first-child {
padding-left: @horizontalPadding;
border-radius: @stepsBorderRadius 0 0 @stepsBorderRadius;
}
/* Last Step */
.ui.steps .step:last-child {
border-radius: 0 @stepsBorderRadius @stepsBorderRadius 0;
border-right: none;
margin-right: 0;
}
/* Only Step */
.ui.steps .step:only-child {
border-radius: @stepsBorderRadius;
}
/*******************************
Content
*******************************/
/* Title */
.ui.steps .step .title {
font-family: @titleFontFamily;
font-size: @titleFontSize;
font-weight: @titleFontWeight;
}
.ui.steps .step > .title {
width: 100%;
}
/* Description */
.ui.steps .step .description {
font-weight: @descriptionFontWeight;
font-size: @descriptionFontSize;
color: @descriptionColor;
}
.ui.steps .step > .description {
width: 100%;
}
.ui.steps .step .title ~ .description {
margin-top: @descriptionDistance;
}
/* Icon */
.ui.steps .step > .icon {
line-height: 1;
font-size: @iconSize;
margin: 0 @iconDistance 0 0;
}
.ui.steps .step > .icon,
.ui.steps .step > .icon ~ .content {
display: block;
flex: 0 1 auto;
align-self: @iconAlign;
}
/* Horizontal Icon */
.ui.steps:not(.vertical) .step > .icon {
width: auto;
}
/* Link */
.ui.steps .link.step,
.ui.steps a.step {
cursor: pointer;
}
/*******************************
Types
*******************************/
& when (@variationStepOrdered) {
/*--------------
Ordered
---------------*/
.ui.ordered.steps {
counter-reset: ordered;
}
.ui.ordered.steps .step:before {
display: block;
position: static;
text-align: center;
content: counter(ordered);
align-self: @iconAlign;
margin-right: @iconDistance;
font-size: @iconSize;
counter-increment: ordered;
font-family: @orderedFontFamily;
font-weight: @orderedFontWeight;
}
.ui.ordered.steps .step > * {
display: block;
align-self: @iconAlign;
}
}
& when (@variationStepVertical) {
/*--------------
Vertical
---------------*/
.ui.vertical.steps {
display: inline-flex;
flex-direction: column;
overflow: visible;
}
.ui.vertical.steps .step {
justify-content: flex-start;
border-radius: @borderRadius;
padding: @verticalPadding @horizontalPadding;
border-right: none;
border-bottom: @verticalDivider;
}
.ui.vertical.steps .step:first-child {
padding: @verticalPadding @horizontalPadding;
border-radius: @stepsBorderRadius @stepsBorderRadius 0 0;
}
.ui.vertical.steps .step:last-child {
border-bottom: none;
border-radius: 0 0 @stepsBorderRadius @stepsBorderRadius;
}
.ui.vertical.steps .step:only-child {
border-radius: @stepsBorderRadius;
}
/* Arrow */
.ui.vertical.steps .step:after {
top: @verticalArrowTopOffset;
right: @verticalArrowRightOffset;
border-width: @verticalArrowBorderWidth;
display: @verticalArrowDisplay;
}
.ui.right.vertical.steps .step:after {
border-width: @verticalLeftArrowBorderWidth;
left: @verticalLeftArrowLeftOffset;
right: @verticalLeftArrowRightOffset;
transform: translateY(-50%) translateX(-50%) rotate(-45deg);
}
.ui.vertical.steps .active.step:after {
display: @verticalActiveArrowDisplay;
}
.ui.vertical.steps .step:last-child:after {
display: @verticalLastArrowDisplay;
}
.ui.vertical.steps .active.step:last-child:after {
display: @verticalActiveLastArrowDisplay;
}
}
/*---------------
Responsive
----------------*/
/* Mobile (Default) */
@media only screen and (max-width: (@largestMobileScreen)) {
.ui.steps:not(.unstackable) {
display: inline-flex;
overflow: visible;
flex-direction: column;
}
.ui.steps:not(.unstackable) .step {
width: 100% !important;
flex-direction: column;
border-radius: @borderRadius;
padding: @verticalPadding @horizontalPadding;
border-right: none;
border-bottom: @stepsBorder;
}
.ui.steps:not(.unstackable) .step:first-child {
padding: @verticalPadding @horizontalPadding;
border-radius: @stepsBorderRadius @stepsBorderRadius 0 0;
}
.ui.steps:not(.unstackable) .step:last-child {
border-radius: 0 0 @stepsBorderRadius @stepsBorderRadius;
border-bottom: none;
}
/* Arrow */
.ui.steps:not(.unstackable) .step:after {
top: unset;
bottom: -@arrowSize;
right: 50%;
transform: translateY(-50%) translateX(50%) rotate(45deg);
}
.ui.vertical.steps .active.step:last-child:after {
display: none;
}
/* Content */
.ui.steps:not(.unstackable) .step .content {
text-align: center;
}
/* Icon */
.ui.steps:not(.unstackable) .step > .icon,
.ui.ordered.steps:not(.unstackable) .step:before {
margin: 0 0 @mobileIconDistance 0;
}
}
/*******************************
States
*******************************/
/* Link Hover */
.ui.steps .link.step:hover::after,
.ui.steps .link.step:hover,
.ui.steps a.step:hover::after,
.ui.steps a.step:hover {
background: @hoverBackground;
color: @hoverColor;
}
/* Link Down */
.ui.steps .link.step:active::after,
.ui.steps .link.step:active,
.ui.steps a.step:active::after,
.ui.steps a.step:active {
background: @downBackground;
color: @downColor;
}
/* Active */
.ui.steps .step.active {
cursor: auto;
background: @activeBackground;
}
.ui.steps .step.active:after {
background: @activeBackground;
}
.ui.steps .step.active .title {
color: @activeColor;
}
.ui.ordered.steps .step.active:before,
.ui.steps .active.step .icon {
color: @activeIconColor;
}
/* Active Arrow */
.ui.steps .step:after {
display: @arrowDisplay;
}
.ui.steps .active.step:after {
display: @activeArrowDisplay;
}
.ui.steps .step:last-child:after {
display: @lastArrowDisplay;
}
.ui.steps .active.step:last-child:after {
display: @activeLastArrowDisplay;
}
/* Active Hover */
.ui.steps .link.active.step:hover::after,
.ui.steps .link.active.step:hover,
.ui.steps a.active.step:hover::after,
.ui.steps a.active.step:hover {
cursor: pointer;
background: @activeHoverBackground;
color: @activeHoverColor;
}
/* Completed */
.ui.steps .step.completed > .icon:before,
.ui.ordered.steps .step.completed:before {
color: @completedColor;
}
& when (@variationStepDisabled) {
/* Disabled */
.ui.steps .disabled.step {
cursor: auto;
background: @disabledBackground;
pointer-events: none;
}
.ui.steps .disabled.step,
.ui.steps .disabled.step .title,
.ui.steps .disabled.step .description {
color: @disabledColor;
}
.ui.steps .disabled.step:after {
background: @disabledBackground;
}
}
/*******************************
Variations
*******************************/
& when (@variationStepStackable) {
/*--------------
Stackable
---------------*/
/* Tablet Or Below */
@media only screen and (max-width: @largestTabletScreen) {
.ui[class*="tablet stackable"].steps {
display: inline-flex;
overflow: visible;
flex-direction: column;
}
/* Steps */
.ui[class*="tablet stackable"].steps .step {
flex-direction: column;
border-radius: @borderRadius;
padding: @verticalPadding @horizontalPadding;
border-right: none;
border-bottom: @stepsBorder;
}
.ui[class*="tablet stackable"].steps .step:first-child {
padding: @verticalPadding @horizontalPadding;
border-radius: @stepsBorderRadius @stepsBorderRadius 0 0;
}
.ui[class*="tablet stackable"].steps .step:last-child {
border-radius: 0 0 @stepsBorderRadius @stepsBorderRadius;
border-bottom: none;
}
/* Arrow */
.ui[class*="tablet stackable"].steps .step:after {
top: unset;
bottom: -@arrowSize;
right: 50%;
transform: translateY(-50%) translateX(50%) rotate(45deg);
}
/* Content */
.ui[class*="tablet stackable"].steps .step .content {
text-align: center;
}
/* Icon */
.ui[class*="tablet stackable"].steps .step > .icon,
.ui[class*="tablet stackable"].ordered.steps .step:before {
margin: 0 0 @mobileIconDistance 0;
}
}
}
& when (@variationStepFluid) {
/*--------------
Fluid
---------------*/
/* Fluid */
.ui.fluid.steps {
display: flex;
width: 100%;
}
}
& when (@variationStepAttached) {
/*--------------
Attached
---------------*/
/* Top */
.ui.attached.steps {
width: @attachedWidth !important;
margin: 0 @attachedHorizontalOffset @attachedVerticalOffset;
max-width: @attachedWidth;
border-radius: @stepsBorderRadius @stepsBorderRadius 0 0;
}
.ui.attached.steps .step:first-child {
border-radius: @stepsBorderRadius 0 0 0;
}
.ui.attached.steps .step:last-child {
border-radius: 0 @stepsBorderRadius 0 0;
}
/* Bottom */
.ui.bottom.attached.steps {
margin: @attachedVerticalOffset @attachedHorizontalOffset 0;
border-radius: 0 0 @stepsBorderRadius @stepsBorderRadius;
}
.ui.bottom.attached.steps .step:first-child {
border-radius: 0 0 0 @stepsBorderRadius;
}
.ui.bottom.attached.steps .step:last-child {
border-radius: 0 0 @stepsBorderRadius 0;
}
}
/*-------------------
Evenly Divided
--------------------*/
.ui.one.steps,
.ui.two.steps,
.ui.three.steps,
.ui.four.steps,
.ui.five.steps,
.ui.six.steps,
.ui.seven.steps,
.ui.eight.steps {
width: 100%;
}
.ui.one.steps > .step,
.ui.two.steps > .step,
.ui.three.steps > .step,
.ui.four.steps > .step,
.ui.five.steps > .step,
.ui.six.steps > .step,
.ui.seven.steps > .step,
.ui.eight.steps > .step {
flex-wrap: nowrap;
}
.ui.one.steps > .step {
width: 100%;
}
.ui.two.steps > .step {
width: 50%;
}
.ui.three.steps > .step {
width: 33.333%;
}
.ui.four.steps > .step {
width: 25%;
}
.ui.five.steps > .step {
width: 20%;
}
.ui.six.steps > .step {
width: 16.666%;
}
.ui.seven.steps > .step {
width: 14.285%;
}
.ui.eight.steps > .step {
width: 12.500%;
}
/*-------------------
Sizes
--------------------*/
.ui.steps .step,
.ui.step {
font-size: @medium;
}
& when not (@variationStepSizes = false) {
each(@variationStepSizes, {
@s: @@value;
.ui.@{value}.steps .step,
.ui.@{value}.step {
font-size: @s;
}
})
}
& when (@variationStepInverted) {
/*--------------
Inverted
---------------*/
.ui.inverted.steps {
border: 1px solid @solidWhiteBorderColor;
}
.ui.inverted.steps .step {
color: @invertedTextColor;
background: @black;
border-color: @solidWhiteBorderColor;
}
.ui.inverted.steps .step:after {
background-color: @black;
border-color: @solidWhiteBorderColor;
}
.ui.inverted.steps .step .description {
color: @invertedTextColor;
}
/* Active */
.ui.inverted.steps .step.active,
.ui.inverted.steps .step.active:after {
background: @invertedActiveBackground;
}
.ui.inverted.ordered.steps .step.active:before,
.ui.inverted.steps .active.step .icon {
color: @invertedSelectedTextColor;
}
& when (@variationStepDisabled) {
/* Disabled */
.ui.inverted.steps .disabled.step,
.ui.inverted.steps .disabled.step:after {
background: @invertedDisabledBackground;
}
.ui.inverted.steps .disabled.step,
.ui.inverted.steps .disabled.step .title,
.ui.inverted.steps .disabled.step .description {
color: @invertedDisabledTextColor;
}
}
/* Link Hover */
.ui.inverted.steps .link.step:hover::after,
.ui.inverted.steps .link.step:hover,
.ui.inverted.steps a.step:hover::after,
.ui.inverted.steps a.step:hover {
background: @invertedHoverBackground;
color: @invertedHoveredTextColor;
}
/* Link Down */
.ui.inverted.steps .link.step:active::after,
.ui.inverted.steps .link.step:active,
.ui.inverted.steps a.step:active::after,
.ui.inverted.steps a.step:active {
background: @invertedActiveHoverBackground;
color: @invertedPressedTextColor;
}
}
.loadUIOverrides();

View file

@ -0,0 +1,63 @@
/*!
* # Fomantic-UI - Text
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* https://github.com/fomantic/Fomantic-UI/blob/master/LICENSE.md
*
*/
/*******************************
Theme
*******************************/
@type : 'element';
@element : 'text';
@import (multiple) '../../theme.config';
/*******************************
Text
*******************************/
span.ui.text {
line-height: @lineHeight;
}
each(@colors, {
@color: replace(@key, '@', '');
@c: @colors[@@color][color];
@l: @colors[@@color][light];
span.ui.@{color}.text {
color: @c;
}
& when (@variationTextInverted) {
span.ui.inverted.@{color}.text {
color: @l;
}
}
})
& when (@variationTextDisabled) {
span.ui.disabled.text {
opacity: @disabledOpacity;
}
}
/* Sizes */
span.ui.medium.text {
font-size: @medium;
}
& when not (@variationTextSizes = false) {
each(@variationTextSizes, {
@s: @@value;
span.ui.@{value}.text {
font-size: @s;
}
})
}
.loadUIOverrides();

View file

@ -0,0 +1,40 @@
/*!
* # Fomantic-UI - Reset
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'global';
@element : 'reset';
@import (multiple) '../../theme.config';
/*******************************
Reset
*******************************/
/* Border-Box */
*,
*:before,
*:after {
box-sizing: inherit;
}
html {
box-sizing: border-box;
}
/* iPad Input Shadows */
input[type="text"], input[type="email"], input[type="search"], input[type="password"] {
-webkit-appearance: none;
-moz-appearance: none; /* mobile firefox too! */
}
.loadUIOverrides();

View file

@ -0,0 +1,493 @@
/*!
* # Fomantic-UI - Site
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
$.site = $.fn.site = function(parameters) {
var
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.site.settings, parameters)
: $.extend({}, $.site.settings),
namespace = settings.namespace,
error = settings.error,
moduleNamespace = 'module-' + namespace,
$document = $(document),
$module = $document,
element = this,
instance = $module.data(moduleNamespace),
module,
returnedValue
;
module = {
initialize: function() {
module.instantiate();
},
instantiate: function() {
module.verbose('Storing instance of site', module);
instance = module;
$module
.data(moduleNamespace, module)
;
},
normalize: function() {
module.fix.console();
module.fix.requestAnimationFrame();
},
fix: {
console: function() {
module.debug('Normalizing window.console');
if (console === undefined || console.log === undefined) {
module.verbose('Console not available, normalizing events');
module.disable.console();
}
if (typeof console.group == 'undefined' || typeof console.groupEnd == 'undefined' || typeof console.groupCollapsed == 'undefined') {
module.verbose('Console group not available, normalizing events');
window.console.group = function() {};
window.console.groupEnd = function() {};
window.console.groupCollapsed = function() {};
}
if (typeof console.markTimeline == 'undefined') {
module.verbose('Mark timeline not available, normalizing events');
window.console.markTimeline = function() {};
}
},
consoleClear: function() {
module.debug('Disabling programmatic console clearing');
window.console.clear = function() {};
},
requestAnimationFrame: function() {
module.debug('Normalizing requestAnimationFrame');
if(window.requestAnimationFrame === undefined) {
module.debug('RequestAnimationFrame not available, normalizing event');
window.requestAnimationFrame = window.requestAnimationFrame
|| window.mozRequestAnimationFrame
|| window.webkitRequestAnimationFrame
|| window.msRequestAnimationFrame
|| function(callback) { setTimeout(callback, 0); }
;
}
}
},
moduleExists: function(name) {
return ($.fn[name] !== undefined && $.fn[name].settings !== undefined);
},
enabled: {
modules: function(modules) {
var
enabledModules = []
;
modules = modules || settings.modules;
$.each(modules, function(index, name) {
if(module.moduleExists(name)) {
enabledModules.push(name);
}
});
return enabledModules;
}
},
disabled: {
modules: function(modules) {
var
disabledModules = []
;
modules = modules || settings.modules;
$.each(modules, function(index, name) {
if(!module.moduleExists(name)) {
disabledModules.push(name);
}
});
return disabledModules;
}
},
change: {
setting: function(setting, value, modules, modifyExisting) {
modules = (typeof modules === 'string')
? (modules === 'all')
? settings.modules
: [modules]
: modules || settings.modules
;
modifyExisting = (modifyExisting !== undefined)
? modifyExisting
: true
;
$.each(modules, function(index, name) {
var
namespace = (module.moduleExists(name))
? $.fn[name].settings.namespace || false
: true,
$existingModules
;
if(module.moduleExists(name)) {
module.verbose('Changing default setting', setting, value, name);
$.fn[name].settings[setting] = value;
if(modifyExisting && namespace) {
$existingModules = $(':data(module-' + namespace + ')');
if($existingModules.length > 0) {
module.verbose('Modifying existing settings', $existingModules);
$existingModules[name]('setting', setting, value);
}
}
}
});
},
settings: function(newSettings, modules, modifyExisting) {
modules = (typeof modules === 'string')
? [modules]
: modules || settings.modules
;
modifyExisting = (modifyExisting !== undefined)
? modifyExisting
: true
;
$.each(modules, function(index, name) {
var
$existingModules
;
if(module.moduleExists(name)) {
module.verbose('Changing default setting', newSettings, name);
$.extend(true, $.fn[name].settings, newSettings);
if(modifyExisting && namespace) {
$existingModules = $(':data(module-' + namespace + ')');
if($existingModules.length > 0) {
module.verbose('Modifying existing settings', $existingModules);
$existingModules[name]('setting', newSettings);
}
}
}
});
}
},
enable: {
console: function() {
module.console(true);
},
debug: function(modules, modifyExisting) {
modules = modules || settings.modules;
module.debug('Enabling debug for modules', modules);
module.change.setting('debug', true, modules, modifyExisting);
},
verbose: function(modules, modifyExisting) {
modules = modules || settings.modules;
module.debug('Enabling verbose debug for modules', modules);
module.change.setting('verbose', true, modules, modifyExisting);
}
},
disable: {
console: function() {
module.console(false);
},
debug: function(modules, modifyExisting) {
modules = modules || settings.modules;
module.debug('Disabling debug for modules', modules);
module.change.setting('debug', false, modules, modifyExisting);
},
verbose: function(modules, modifyExisting) {
modules = modules || settings.modules;
module.debug('Disabling verbose debug for modules', modules);
module.change.setting('verbose', false, modules, modifyExisting);
}
},
console: function(enable) {
if(enable) {
if(instance.cache.console === undefined) {
module.error(error.console);
return;
}
module.debug('Restoring console function');
window.console = instance.cache.console;
}
else {
module.debug('Disabling console function');
instance.cache.console = window.console;
window.console = {
clear : function(){},
error : function(){},
group : function(){},
groupCollapsed : function(){},
groupEnd : function(){},
info : function(){},
log : function(){},
markTimeline : function(){},
warn : function(){}
};
}
},
destroy: function() {
module.verbose('Destroying previous site for', $module);
$module
.removeData(moduleNamespace)
;
},
cache: {},
setting: function(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({
'Element' : element,
'Name' : message[0],
'Arguments' : [].slice.call(message, 1) || '',
'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( (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(Array.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) {
module.destroy();
}
module.initialize();
}
return (returnedValue !== undefined)
? returnedValue
: this
;
};
$.site.settings = {
name : 'Site',
namespace : 'site',
error : {
console : 'Console cannot be restored, most likely it was overwritten outside of module',
method : 'The method you called is not defined.'
},
debug : false,
verbose : false,
performance : true,
modules: [
'accordion',
'api',
'calendar',
'checkbox',
'dimmer',
'dropdown',
'embed',
'form',
'modal',
'nag',
'popup',
'slider',
'rating',
'shape',
'sidebar',
'state',
'sticky',
'tab',
'toast',
'transition',
'visibility',
'visit'
],
siteNamespace : 'site',
namespaceStub : {
cache : {},
config : {},
sections : {},
section : {},
utilities : {}
}
};
// allows for selection of elements with data attributes
$.extend($.expr[ ":" ], {
data: ($.expr.createPseudo)
? $.expr.createPseudo(function(dataName) {
return function(elem) {
return !!$.data(elem, dataName);
};
})
: function(elem, i, match) {
// support: jQuery < 1.8
return !!$.data(elem, match[ 3 ]);
}
});
})( jQuery, window, document );

View file

@ -0,0 +1,207 @@
/*!
* # Fomantic-UI - Site
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'global';
@element : 'site';
@import (multiple) '../../theme.config';
/*******************************
Page
*******************************/
.loadFonts();
html,
body {
height: 100%;
}
html {
font-size: @emSize;
}
body {
margin: 0;
padding: 0;
overflow-x: @pageOverflowX;
min-width: @pageMinWidth;
background: @pageBackground;
font-family: @pageFont;
font-size: @fontSize;
line-height: @lineHeight;
color: @textColor;
}
/*******************************
Headers
*******************************/
h1,
h2,
h3,
h4,
h5 {
font-family: @headerFont;
line-height: @headerLineHeight;
margin: @headerMargin;
font-weight: @headerFontWeight;
padding: 0;
}
h1 {
min-height: 1rem;
font-size: @h1;
}
h2 {
font-size: @h2;
}
h3 {
font-size: @h3;
}
h4 {
font-size: @h4;
}
h5 {
font-size: @h5;
}
h1:first-child,
h2:first-child,
h3:first-child,
h4:first-child,
h5:first-child {
margin-top: 0;
}
h1:last-child,
h2:last-child,
h3:last-child,
h4:last-child,
h5:last-child {
margin-bottom: 0;
}
/*******************************
Text
*******************************/
p {
margin: @paragraphMargin;
line-height: @paragraphLineHeight;
}
p:first-child {
margin-top: 0;
}
p:last-child {
margin-bottom: 0;
}
/*-------------------
Links
--------------------*/
a {
color: @linkColor;
text-decoration: @linkUnderline;
}
a:hover {
color: @linkHoverColor;
text-decoration: @linkHoverUnderline;
}
/*******************************
Scrollbars
*******************************/
.addScrollbars() when (@useCustomScrollbars) {
/* Force Simple Scrollbars */
body ::-webkit-scrollbar {
-webkit-appearance: none;
width: @customScrollbarWidth;
height: @customScrollbarHeight;
}
body ::-webkit-scrollbar-track {
background: @trackBackground;
border-radius: @trackBorderRadius;
}
body ::-webkit-scrollbar-thumb {
cursor: pointer;
border-radius: @thumbBorderRadius;
background: @thumbBackground;
transition: @thumbTransition;
}
body ::-webkit-scrollbar-thumb:window-inactive {
background: @thumbInactiveBackground;
}
body ::-webkit-scrollbar-thumb:hover {
background: @thumbHoverBackground;
}
/* Inverted UI */
body .ui.inverted:not(.dimmer)::-webkit-scrollbar-track {
background: @trackInvertedBackground;
}
body .ui.inverted:not(.dimmer)::-webkit-scrollbar-thumb {
background: @thumbInvertedBackground;
}
body .ui.inverted:not(.dimmer)::-webkit-scrollbar-thumb:window-inactive {
background: @thumbInvertedInactiveBackground;
}
body .ui.inverted:not(.dimmer)::-webkit-scrollbar-thumb:hover {
background: @thumbInvertedHoverBackground;
}
}
/*******************************
Highlighting
*******************************/
/* Site */
::-webkit-selection {
background-color: @highlightBackground;
color: @highlightColor;
}
::-moz-selection {
background-color: @highlightBackground;
color: @highlightColor;
}
::selection {
background-color: @highlightBackground;
color: @highlightColor;
}
/* Form */
textarea::-webkit-selection,
input::-webkit-selection {
background-color: @inputHighlightBackground;
color: @inputHighlightColor;
}
textarea::-moz-selection,
input::-moz-selection {
background-color: @inputHighlightBackground;
color: @inputHighlightColor;
}
textarea::selection,
input::selection {
background-color: @inputHighlightBackground;
color: @inputHighlightColor;
}
.addScrollbars();
.loadUIOverrides();

View file

@ -0,0 +1,618 @@
/*!
* # Fomantic-UI - Accordion
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
'use strict';
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.fn.accordion = function(parameters) {
var
$allModules = $(this),
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
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);
settings.onChanging.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,
skipInlineHidden : true,
onComplete: function() {
$activeContent.children().removeClass(className.transition);
}
})
;
}
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);
settings.onChanging.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,
skipInlineHidden : true
})
;
}
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,
skipInlineHidden : true
})
;
}
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) {
if($.isPlainObject(settings[name])) {
$.extend(true, settings[name], value);
}
else {
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.silent && 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.silent && 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() {
if(!settings.silent) {
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(Array.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',
silent : false,
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
onClosing : function(){}, // callback before closing animation
onChanging : function(){}, // callback before closing or opening animation
onOpen : function(){}, // callback after open 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',
transition: 'transition'
},
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 );

View file

@ -0,0 +1,219 @@
/*!
* # Fomantic-UI - Accordion
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'accordion';
@import (multiple) '../../theme.config';
/*******************************
Accordion
*******************************/
.ui.accordion,
.ui.accordion .accordion {
max-width: 100%;
}
.ui.accordion .accordion {
margin: @childAccordionMargin;
padding: @childAccordionPadding;
}
/* Title */
.ui.accordion .title,
.ui.accordion .accordion .title {
cursor: pointer;
}
/* Default Styling */
.ui.accordion .title:not(.ui) {
padding: @titlePadding;
font-family: @titleFont;
font-size: @titleFontSize;
color: @titleColor;
}
/* Default Styling */
.ui.accordion:not(.styled) .title ~ .content:not(.ui),
.ui.accordion:not(.styled) .accordion .title ~ .content:not(.ui) {
margin: @contentMargin;
padding: @contentPadding;
}
.ui.accordion:not(.styled) .title ~ .content:not(.ui):last-child {
padding-bottom: 0;
}
/* Arrow */
.ui.accordion .title .dropdown.icon,
.ui.accordion .accordion .title .dropdown.icon {
display: @iconDisplay;
float: @iconFloat;
opacity: @iconOpacity;
width: @iconWidth;
height: @iconHeight;
margin: @iconMargin;
padding: @iconPadding;
font-size: @iconFontSize;
transition: @iconTransition;
vertical-align: @iconVerticalAlign;
transform: @iconTransform;
}
/*--------------
Coupling
---------------*/
/* Menu */
.ui.accordion.menu .item .title {
display: block;
padding: @menuTitlePadding;
}
.ui.accordion.menu .item .title > .dropdown.icon {
float: @menuIconFloat;
margin: @menuIconMargin;
transform: @menuIconTransform;
}
/* Header */
.ui.accordion .ui.header .dropdown.icon {
font-size: @iconFontSize;
margin: @iconMargin;
}
/*******************************
States
*******************************/
.ui.accordion .active.title .dropdown.icon,
.ui.accordion .accordion .active.title .dropdown.icon {
transform: @activeIconTransform;
}
.ui.accordion.menu .item .active.title > .dropdown.icon {
transform: @activeIconTransform;
}
/*******************************
Types
*******************************/
& when (@variationAccordionStyled) {
/*--------------
Styled
---------------*/
.ui.styled.accordion {
width: @styledWidth;
}
.ui.styled.accordion,
.ui.styled.accordion .accordion {
border-radius: @styledBorderRadius;
background: @styledBackground;
box-shadow: @styledBoxShadow;
}
.ui.styled.accordion .title,
.ui.styled.accordion .accordion .title {
margin: @styledTitleMargin;
padding: @styledTitlePadding;
color: @styledTitleColor;
font-weight: @styledTitleFontWeight;
border-top: @styledTitleBorder;
transition: @styledTitleTransition;
}
.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: @styledContentMargin;
padding: @styledContentPadding;
}
.ui.styled.accordion .accordion .content {
margin: @styledChildContentMargin;
padding: @styledChildContentPadding;
}
/* Hover */
.ui.styled.accordion .title:hover,
.ui.styled.accordion .active.title,
.ui.styled.accordion .accordion .title:hover,
.ui.styled.accordion .accordion .active.title {
background: @styledTitleHoverBackground;
color: @styledTitleHoverColor;
}
.ui.styled.accordion .accordion .title:hover,
.ui.styled.accordion .accordion .active.title {
background: @styledHoverChildTitleBackground;
color: @styledHoverChildTitleColor;
}
/* Active */
.ui.styled.accordion .active.title {
background: @styledActiveTitleBackground;
color: @styledActiveTitleColor;
}
.ui.styled.accordion .accordion .active.title {
background: @styledActiveChildTitleBackground;
color: @styledActiveChildTitleColor;
}
}
/*******************************
States
*******************************/
/*--------------
Not Active
---------------*/
.ui.accordion .title ~ .content:not(.active),
.ui.accordion .accordion .title ~ .content:not(.active) {
display: none;
}
/*******************************
Variations
*******************************/
& when (@variationAccordionFluid) {
/*--------------
Fluid
---------------*/
.ui.fluid.accordion,
.ui.fluid.accordion .accordion {
width: 100%;
}
}
& when (@variationAccordionInverted) {
/*--------------
Inverted
---------------*/
.ui.inverted.accordion .title:not(.ui) {
color: @invertedTitleColor;
}
}
.loadUIOverrides();

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,186 @@
/*!
* # Fomantic-UI - Calendar
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'calendar';
@import (multiple) '../../theme.config';
/*******************************
Popup
*******************************/
.ui.calendar .ui.popup {
max-width: none;
padding: 0;
border: none;
user-select: none;
}
/*******************************
Calendar
*******************************/
.ui.calendar .calendar:focus {
outline: 0;
}
/*******************************
Grid
*******************************/
.ui.calendar .ui.popup .ui.grid {
display: block;
white-space: nowrap;
}
.ui.calendar .ui.popup .ui.grid > .column {
width: auto;
}
/*******************************
Table
*******************************/
.ui.calendar .ui.table.year,
.ui.calendar .ui.table.month,
.ui.calendar .ui.table.minute {
min-width: 15em;
}
.ui.calendar .ui.table.day {
min-width: 18em;
}
.ui.calendar .ui.table.day.andweek {
min-width: 22em;
}
.ui.calendar .ui.table.hour {
min-width: 20em;
}
.ui.calendar .ui.table tr th,
.ui.calendar .ui.table tr td {
padding: 0.5em;
white-space: nowrap;
}
.ui.calendar .ui.table tr th {
border-left: none;
}
.ui.calendar .ui.table tr th .icon {
margin: 0;
}
.ui.calendar .ui.table tr:first-child th {
position: relative;
padding-left: 0;
padding-right: 0;
}
.ui.calendar .ui.table.day tr:first-child th {
border: none;
}
.ui.calendar .ui.table.day tr:nth-child(2) th {
padding-top: 0.2em;
padding-bottom: 0.3em;
}
.ui.calendar .ui.table tr td {
padding-left: 0.1em;
padding-right: 0.1em;
}
.ui.calendar .ui.table tr .link {
cursor: pointer;
}
.ui.calendar .ui.table tr .prev.link {
width: 14.28571429%;
position: absolute;
left: 0;
}
.ui.calendar .ui.table tr .next.link {
width: 14.28571429%;
position: absolute;
right: 0;
}
.ui.calendar .ui.table tr .disabled {
pointer-events: auto;
cursor: default;
color: @disabledTextColor;
}
.ui.calendar .ui.table tr .adjacent:not(.disabled) {
color: @adjacentTextColor;
background: @adjacentBackground;
}
/*--------------
States
---------------*/
.ui.calendar .ui.table tr td.today {
font-weight: @todayFontWeight;
}
.ui.calendar .ui.table tr td.range {
background: @rangeBackground;
color: @rangeTextColor;
box-shadow: @rangeBoxShadow;
}
.ui.calendar .ui.table.inverted tr td.range {
background: @rangeInvertedBackground;
color: @rangeInvertedTextColor;
box-shadow: @rangeInvertedBoxShadow;
}
.ui.calendar:not(.disabled) .calendar:focus .ui.table tbody tr td.focus,
.ui.calendar:not(.disabled) .calendar.active .ui.table tbody tr td.focus {
box-shadow: @focusBoxShadow;
}
.ui.calendar:not(.disabled) .calendar:focus .ui.table.inverted tbody tr td.focus,
.ui.calendar:not(.disabled) .calendar.active .ui.table.inverted tbody tr td.focus {
box-shadow: @focusInvertedBoxShadow;
}
/*******************************
States
*******************************/
& when (@variationCalendarDisabled) {
/*--------------------
Disabled
---------------------*/
.ui.disabled.calendar {
opacity: @disabledOpacity;
}
.ui.disabled.calendar > .input,
.ui.disabled.calendar .ui.table tr .link {
pointer-events: none;
}
}
.loadUIOverrides();

View file

@ -0,0 +1,876 @@
/*!
* # Fomantic-UI - Checkbox
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
'use strict';
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.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('Modifying <input> z-index to be unselectable');
$input.addClass(className.hidden);
}
},
show: {
input: function() {
module.verbose('Modifying <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);
}
},
preventDefaultOnInputTarget: function() {
if(typeof event !== 'undefined' && event !== null && $(event.target).is(selector.input)) {
module.verbose('Preventing default check action after manual check action');
event.preventDefault();
}
},
event: {
change: function(event) {
if( !module.should.ignoreCallbacks() ) {
settings.onChange.call(input);
}
},
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,
left : 37,
up : 38,
right : 39,
down : 40
}
;
var r = module.get.radios(),
rIndex = r.index($module),
rLen = r.length,
checkIndex = false;
if(key == keyCode.left || key == keyCode.up) {
checkIndex = (rIndex === 0 ? rLen : rIndex) - 1;
} else if(key == keyCode.right || key == keyCode.down) {
checkIndex = rIndex === rLen-1 ? 0 : rIndex+1;
}
if (!module.should.ignoreCallbacks() && checkIndex !== false) {
if(settings.beforeUnchecked.apply(input)===false) {
module.verbose('Option not allowed to be unchecked, cancelling key navigation');
return false;
}
if (settings.beforeChecked.apply($(r[checkIndex]).children(selector.input)[0])===false) {
module.verbose('Next option should not allow check, cancelling key navigation');
return false;
}
}
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 && settings.enableEnterKey)) ) {
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);
module.trigger.change();
}
module.preventDefaultOnInputTarget();
},
uncheck: function() {
if( !module.should.allowUncheck() ) {
return;
}
module.debug('Unchecking checkbox');
module.set.unchecked();
if( !module.should.ignoreCallbacks() ) {
settings.onUnchecked.call(input);
module.trigger.change();
}
module.preventDefaultOnInputTarget();
},
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);
module.trigger.change();
}
},
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);
module.trigger.change();
}
},
enable: function() {
if( module.is.enabled() ) {
module.debug('Checkbox is already enabled');
return;
}
module.debug('Enabling checkbox');
module.set.enabled();
if( !module.should.ignoreCallbacks() ) {
settings.onEnable.call(input);
// preserve legacy callbacks
settings.onEnabled.call(input);
module.trigger.change();
}
},
disable: function() {
if( module.is.disabled() ) {
module.debug('Checkbox is already disabled');
return;
}
module.debug('Disabling checkbox');
module.set.disabled();
if( !module.should.ignoreCallbacks() ) {
settings.onDisable.call(input);
// preserve legacy callbacks
settings.onDisabled.call(input);
module.trigger.change();
}
},
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.is.initialLoad() ) {
module.debug('Should not allow check, checkbox is already checked');
return false;
}
if(!module.should.ignoreCallbacks() && 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.is.initialLoad() ) {
module.debug('Should not allow uncheck, checkbox is already unchecked');
return false;
}
if(!module.should.ignoreCallbacks() && settings.beforeUnchecked.apply(input) === false) {
module.debug('Should not allow uncheck, beforeUnchecked cancelled');
return false;
}
return true;
},
allowIndeterminate: function() {
if(module.is.indeterminate() && !module.is.initialLoad() ) {
module.debug('Should not allow indeterminate, checkbox is already indeterminate');
return false;
}
if(!module.should.ignoreCallbacks() && settings.beforeIndeterminate.apply(input) === false) {
module.debug('Should not allow indeterminate, beforeIndeterminate cancelled');
return false;
}
return true;
},
allowDeterminate: function() {
if(module.is.determinate() && !module.is.initialLoad() ) {
module.debug('Should not allow determinate, checkbox is already determinate');
return false;
}
if(!module.should.ignoreCallbacks() && settings.beforeDeterminate.apply(input) === false) {
module.debug('Should not allow determinate, beforeDeterminate cancelled');
return false;
}
return true;
},
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)
;
},
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)
;
},
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)
;
},
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')
;
},
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)
;
},
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('change' + eventNamespace, module.event.change)
.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) {
if($.isPlainObject(settings[name])) {
$.extend(true, settings[name], value);
}
else {
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.silent && 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.silent && 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() {
if(!settings.silent) {
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(Array.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',
silent : false,
debug : false,
verbose : true,
performance : true,
// delegated event context
uncheckable : 'auto',
fireOnInit : false,
enableEnterKey : true,
onChange : function(){},
beforeChecked : function(){},
beforeUnchecked : function(){},
beforeDeterminate : function(){},
beforeIndeterminate : function(){},
onChecked : function(){},
onUnchecked : function(){},
onDeterminate : function() {},
onIndeterminate : function() {},
onEnable : function(){},
onDisable : function(){},
// preserve misspelled callbacks (will be removed in 3.0)
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 );

View file

@ -0,0 +1,814 @@
/*!
* # Fomantic-UI - Checkbox
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'checkbox';
@import (multiple) '../../theme.config';
/*******************************
Checkbox
*******************************/
/*--------------
Content
---------------*/
.ui.checkbox {
position: relative;
display: inline-block;
backface-visibility: hidden;
outline: none;
vertical-align: baseline;
font-style: normal;
min-height: @checkboxSize;
font-size: @relativeMedium;
line-height: @checkboxLineHeight;
min-width: @checkboxSize;
}
/* HTML Checkbox */
.ui.checkbox input[type="checkbox"],
.ui.checkbox input[type="radio"] {
cursor: pointer;
position: absolute;
top: 0;
left: 0;
opacity: 0 !important;
outline: none;
z-index: 3;
width: @checkboxSize;
height: @checkboxSize;
}
& when (@variationCheckboxBox) {
/*--------------
Box
---------------*/
/* .box selector is deprecated and will be removed in v3 */
.ui.checkbox .box {
&:extend(.ui.checkbox label all);
}
.ui.checkbox + .box {
&:extend(.ui.checkbox + label all);
}
.ui.checkbox input:focus ~ .box {
&:extend(.ui.checkbox input:focus ~ label all);
}
.ui.checkbox input:checked ~ .box {
&:extend(.ui.checkbox input:checked ~ label all);
}
& when (@variationCheckboxIndeterminate) {
.ui.checkbox input:not([type=radio]):indeterminate ~ .box {
&:extend(.ui.checkbox input:not([type=radio]):indeterminate ~ label all);
}
.ui.checkbox input:not([type=radio]):indeterminate:focus ~ .box {
&:extend(.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label all);
}
}
.ui.checkbox input:checked:focus ~ .box {
&:extend(.ui.checkbox input:checked:focus ~ label all);
}
& when (@variationCheckboxDisabled) {
.ui.disabled.checkbox .box {
&:extend(.ui.disabled.checkbox label all);
}
.ui.checkbox input[disabled] ~ .box {
&:extend(.ui.checkbox input[disabled] ~ label all);
}
}
& when (@variationCheckboxRadio) {
.ui.radio.checkbox .box {
&:extend(.ui.radio.checkbox label all);
}
.ui.radio.checkbox input:focus ~ .box {
&:extend(.ui.radio.checkbox input:focus ~ label all);
}
.ui.radio.checkbox input:indeterminate ~ .box {
&:extend(.ui.radio.checkbox input:indeterminate ~ label all);
}
.ui.radio.checkbox input:checked ~ .box {
&:extend(.ui.radio.checkbox input:checked ~ label all);
}
.ui.radio.checkbox input:focus:checked ~ .box {
&:extend(.ui.radio.checkbox input:focus:checked ~ label all);
}
}
& when (@variationCheckboxSlider) {
.ui.slider.checkbox .box {
&:extend(.ui.slider.checkbox label all);
}
.ui.slider.checkbox input:focus ~ .box {
&:extend(.ui.slider.checkbox input:focus ~ label all);
}
.ui.slider.checkbox input:checked ~ .box {
&:extend(.ui.slider.checkbox input:checked ~ label all);
}
.ui.slider.checkbox input:focus:checked ~ .box {
&:extend(.ui.slider.checkbox input:focus:checked ~ label all);
}
}
& when (@variationCheckboxToggle) {
.ui.toggle.checkbox .box {
&:extend(.ui.toggle.checkbox label all);
}
.ui.toggle.checkbox input ~ .box {
&:extend(.ui.toggle.checkbox input ~ label all);
}
.ui.toggle.checkbox input:focus ~ .box {
&:extend(.ui.toggle.checkbox input:focus ~ label all);
}
.ui.toggle.checkbox input:checked ~ .box {
&:extend(.ui.toggle.checkbox input:checked ~ label all);
}
.ui.toggle.checkbox input:focus:checked ~ .box {
&:extend(.ui.toggle.checkbox input:focus:checked ~ label all);
}
}
& when (@variationCheckboxFitted) {
.ui.fitted.checkbox .box {
&:extend(.ui.fitted.checkbox label all);
}
}
& when (@variationCheckboxInverted) {
.ui.inverted.checkbox .box {
&:extend(.ui.inverted.checkbox label all);
}
& when (@variationCheckboxSlider) {
.ui.inverted.slider.checkbox .box {
&:extend(.ui.inverted.slider.checkbox label all);
}
.ui.inverted.slider.checkbox input:checked ~ .box {
&:extend(.ui.inverted.slider.checkbox input:checked ~ label all);
}
.ui.inverted.slider.checkbox input:focus:checked ~ .box {
&:extend(.ui.inverted.slider.checkbox input:focus:checked ~ label all);
}
}
& when (@variationCheckboxToggle) {
.ui.inverted.toggle.checkbox .box {
&:extend(.ui.inverted.toggle.checkbox label all);
}
.ui.inverted.toggle.checkbox input:checked ~ .box {
&:extend(.ui.inverted.toggle.checkbox input:checked ~ label all);
}
.ui.inverted.toggle.checkbox input:focus:checked ~ .box {
&:extend(.ui.inverted.toggle.checkbox input:focus:checked ~ label all);
}
}
}
}
.ui.checkbox label {
cursor: auto;
position: relative;
display: block;
padding-left: @labelDistance;
outline: none;
font-size: @labelFontSize;
}
.ui.checkbox label:before {
position: absolute;
top: 0;
left: 0;
width: @checkboxSize;
height: @checkboxSize;
content: '';
background: @checkboxBackground;
border-radius: @checkboxBorderRadius;
transition: @checkboxTransition;
border: @checkboxBorder;
}
/*--------------
Checkmark
---------------*/
.ui.checkbox label:after {
position: absolute;
font-size: @checkboxCheckFontSize;
top: @checkboxCheckTop;
left: @checkboxCheckLeft;
width: @checkboxCheckSize;
height: @checkboxCheckSize;
text-align: center;
opacity: 0;
color: @checkboxColor;
transition: @checkboxTransition;
}
/*--------------
Label
---------------*/
/* Inside */
.ui.checkbox label,
.ui.checkbox + label {
color: @labelColor;
transition: @labelTransition;
}
/* Outside */
.ui.checkbox + label {
vertical-align: middle;
}
/*******************************
States
*******************************/
/*--------------
Hover
---------------*/
.ui.checkbox label:hover::before {
background: @checkboxHoverBackground;
border-color: @checkboxHoverBorderColor;
}
.ui.checkbox label:hover,
.ui.checkbox + label:hover {
color: @labelHoverColor;
}
/*--------------
Down
---------------*/
.ui.checkbox label:active::before {
background: @checkboxPressedBackground;
border-color: @checkboxPressedBorderColor;
}
.ui.checkbox label:active::after {
color: @checkboxPressedColor;
}
.ui.checkbox input:active ~ label {
color: @labelPressedColor;
}
/*--------------
Focus
---------------*/
.ui.checkbox input:focus ~ label:before {
background: @checkboxFocusBackground;
border-color: @checkboxFocusBorderColor;
}
.ui.checkbox input:focus ~ label:after {
color: @checkboxFocusCheckColor;
}
.ui.checkbox input:focus ~ label {
color: @labelFocusColor;
}
/*--------------
Active
---------------*/
.ui.checkbox input:checked ~ label:before {
background: @checkboxActiveBackground;
border-color: @checkboxActiveBorderColor;
}
.ui.checkbox input:checked ~ label:after {
opacity: @checkboxActiveCheckOpacity;
color: @checkboxActiveCheckColor;
}
& when (@variationCheckboxIndeterminate){
/*--------------
Indeterminate
---------------*/
.ui.checkbox input:not([type=radio]):indeterminate ~ label:before {
background: @checkboxIndeterminateBackground;
border-color: @checkboxIndeterminateBorderColor;
}
.ui.checkbox input:not([type=radio]):indeterminate ~ label:after {
opacity: @checkboxIndeterminateCheckOpacity;
color: @checkboxIndeterminateCheckColor;
}
.ui.indeterminate.toggle.checkbox {
& input:not([type=radio]):indeterminate ~ label:before {
background: @toggleCenterLaneBackground;
}
& input:not([type=radio]) ~ label:after {
left: @toggleCenterOffset;
}
}
}
/*--------------
Active Focus
---------------*/
.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:before,
.ui.checkbox input:checked:focus ~ label:before {
background: @checkboxActiveFocusBackground;
border-color: @checkboxActiveFocusBorderColor;
}
.ui.checkbox input:not([type=radio]):indeterminate:focus ~ label:after,
.ui.checkbox input:checked:focus ~ label:after {
color: @checkboxActiveFocusCheckColor;
}
/*--------------
Read-Only
---------------*/
.ui.read-only.checkbox,
.ui.read-only.checkbox label {
cursor: default;
}
& when (@variationCheckboxDisabled) {
/*--------------
Disabled
---------------*/
.ui.disabled.checkbox label,
.ui.checkbox input[disabled] ~ label {
cursor: default !important;
opacity: @disabledCheckboxOpacity;
color: @disabledCheckboxLabelColor;
pointer-events: none;
}
}
/*--------------
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;
user-select: none;
}
/*******************************
Types
*******************************/
& when (@variationCheckboxRadio) {
/*--------------
Radio
---------------*/
.ui.radio.checkbox {
min-height: @radioSize;
}
.ui.radio.checkbox label {
padding-left: @radioLabelDistance;
}
/* Box */
.ui.radio.checkbox label:before {
content: '';
transform: none;
width: @radioSize;
height: @radioSize;
border-radius: @circularRadius;
top: @radioTop;
left: @radioLeft;
}
/* Bullet */
.ui.radio.checkbox label:after {
border: none;
content: '' !important;
line-height: @radioSize;
top: @bulletTop;
left: @bulletLeft;
width: @radioSize;
height: @radioSize;
border-radius: @bulletRadius;
transform: scale(@bulletScale);
background-color: @bulletColor;
}
/* Focus */
.ui.radio.checkbox input:focus ~ label:before {
background-color: @radioFocusBackground;
}
.ui.radio.checkbox input:focus ~ label:after {
background-color: @radioFocusBulletColor;
}
/* Indeterminate */
.ui.radio.checkbox input:indeterminate ~ label:after {
opacity: 0;
}
/* Active */
.ui.radio.checkbox input:checked ~ label:before {
background-color: @radioActiveBackground;
}
.ui.radio.checkbox input:checked ~ label:after {
background-color: @radioActiveBulletColor;
}
/* Active Focus */
.ui.radio.checkbox input:focus:checked ~ label:before {
background-color: @radioActiveFocusBackground;
}
.ui.radio.checkbox input:focus:checked ~ label:after {
background-color: @radioActiveFocusBulletColor;
}
}
& when (@variationCheckboxSlider) {
/*--------------
Slider
---------------*/
.ui.slider.checkbox {
min-height: @sliderHeight;
}
/* Input */
.ui.slider.checkbox input {
width: @sliderWidth;
height: @sliderHeight;
}
/* Label */
.ui.slider.checkbox label {
padding-left: @sliderLabelDistance;
line-height: @sliderLabelLineHeight;
color: @sliderOffLabelColor;
}
/* Line */
.ui.slider.checkbox label:before {
display: block;
position: absolute;
content: '';
transform: none;
border: none !important;
left: 0;
z-index: 1;
top: @sliderLineVerticalOffset;
background-color: @sliderLineColor;
width: @sliderLineWidth;
height: @sliderLineHeight;
border-radius: @sliderLineRadius;
transition: @sliderLineTransition;
}
/* Handle */
.ui.slider.checkbox label:after {
background: @handleBackground;
position: absolute;
content: '' !important;
opacity: 1;
z-index: 2;
border: none;
box-shadow: @handleBoxShadow;
width: @sliderHandleSize;
height: @sliderHandleSize;
top: @sliderHandleOffset;
left: 0;
transform: none;
border-radius: @circularRadius;
transition: @sliderHandleTransition;
}
/* Focus */
.ui.slider.checkbox input:focus ~ label:before {
background-color: @toggleFocusColor;
border: none;
}
/* Hover */
.ui.slider.checkbox label:hover {
color: @sliderHoverLabelColor;
}
.ui.slider.checkbox label:hover::before {
background: @sliderHoverLaneBackground;
}
/* Active */
.ui.slider.checkbox input:checked ~ label {
color: @sliderOnLabelColor !important;
}
.ui.slider.checkbox input:checked ~ label:before {
background-color: @sliderOnLineColor !important;
}
.ui.slider.checkbox input:checked ~ label:after {
left: @sliderTravelDistance;
}
/* Active Focus */
.ui.slider.checkbox input:focus:checked ~ label {
color: @sliderOnFocusLabelColor !important;
}
.ui.slider.checkbox input:focus:checked ~ label:before {
background-color: @sliderOnFocusLineColor !important;
}
}
& when (@variationCheckboxToggle) {
/*--------------
Toggle
---------------*/
.ui.toggle.checkbox {
min-height: @toggleHeight;
}
/* Input */
.ui.toggle.checkbox input {
width: @toggleWidth;
height: @toggleHeight;
}
/* Label */
.ui.toggle.checkbox label {
min-height: @toggleHandleSize;
padding-left: @toggleLabelDistance;
color: @toggleOffLabelColor;
}
.ui.toggle.checkbox label {
padding-top: @toggleLabelOffset;
}
/* Switch */
.ui.toggle.checkbox label:before {
display: block;
position: absolute;
content: '';
z-index: 1;
transform: none;
border: none;
top: @toggleLaneVerticalOffset;
background: @toggleLaneBackground;
box-shadow: @toggleLaneBoxShadow;
width: @toggleLaneWidth;
height: @toggleLaneHeight;
border-radius: @toggleHandleRadius;
}
/* Handle */
.ui.toggle.checkbox label:after {
background: @handleBackground;
position: absolute;
content: '' !important;
opacity: 1;
z-index: 2;
border: none;
box-shadow: @handleBoxShadow;
width: @toggleHandleSize;
height: @toggleHandleSize;
top: @toggleHandleOffset;
left: 0;
border-radius: @circularRadius;
transition: @toggleHandleTransition;
}
.ui.toggle.checkbox input ~ label:after {
left: @toggleOffOffset;
box-shadow: @toggleOffHandleBoxShadow;
}
/* Focus */
.ui.toggle.checkbox input:focus ~ label:before {
background-color: @toggleFocusColor;
border: none;
}
/* Hover */
.ui.toggle.checkbox label:hover::before {
background-color: @toggleHoverColor;
border: none;
}
/* Active */
.ui.toggle.checkbox input:checked ~ label {
color: @toggleOnLabelColor !important;
}
.ui.toggle.checkbox input:checked ~ label:before {
background-color: @toggleOnLaneColor !important;
}
.ui.toggle.checkbox input:checked ~ label:after {
left: @toggleOnOffset;
box-shadow: @toggleOnHandleBoxShadow;
}
/* Active Focus */
.ui.toggle.checkbox input:focus:checked ~ label {
color: @toggleOnFocusLabelColor !important;
}
.ui.toggle.checkbox input:focus:checked ~ label:before {
background-color: @toggleOnFocusLaneColor !important;
}
}
/*******************************
Variations
*******************************/
& when (@variationCheckboxFitted) {
/*--------------
Fitted
---------------*/
.ui.fitted.checkbox label {
padding-left: 0 !important;
}
.ui.fitted.toggle.checkbox {
width: @toggleWidth;
}
.ui.fitted.slider.checkbox {
width: @sliderWidth;
}
}
& when (@variationCheckboxInverted) {
/*--------------
Inverted
---------------*/
.ui.inverted.checkbox label,
.ui.inverted.checkbox + label {
color: @invertedTextColor !important;
}
/* Hover */
.ui.inverted.checkbox label:hover {
color: @invertedHoveredTextColor !important;
}
.ui.inverted.checkbox label:hover::before {
border-color: @strongSelectedBorderColor;
}
& when (@variationCheckboxSlider) {
/*Slider Label */
.ui.inverted.slider.checkbox label {
color: @invertedUnselectedTextColor;
}
/* Slider Line */
.ui.inverted.slider.checkbox label:before {
background-color: @invertedUnselectedTextColor !important;
}
/* Slider Hover */
.ui.inverted.slider.checkbox label:hover::before {
background: @invertedLightTextColor !important;
}
/* Slider Active */
.ui.inverted.slider.checkbox input:checked ~ label {
color: @invertedSelectedTextColor !important;
}
.ui.inverted.slider.checkbox input:checked ~ label:before {
background-color: @selectedWhiteBorderColor !important;
}
/* Slider Active Focus */
.ui.inverted.slider.checkbox input:focus:checked ~ label {
color: @invertedSelectedTextColor !important;
}
.ui.inverted.slider.checkbox input:focus:checked ~ label:before {
background-color: @selectedWhiteBorderColor !important;
}
}
& when (@variationCheckboxToggle) {
/* Toggle Switch */
.ui.inverted.toggle.checkbox label:before {
background-color: @invertedTextColor !important;
}
/* Toggle Hover */
.ui.inverted.toggle.checkbox label:hover::before {
background: @invertedHoveredTextColor !important;
}
/* Toggle Active */
.ui.inverted.toggle.checkbox input:checked ~ label {
color: @invertedSelectedTextColor !important;
}
.ui.inverted.toggle.checkbox input:checked ~ label:before {
background-color: @toggleOnLaneColor !important;
}
/* Toggle Active Focus */
.ui.inverted.toggle.checkbox input:focus:checked ~ label {
color: @invertedSelectedTextColor !important;
}
.ui.inverted.toggle.checkbox input:focus:checked ~ label:before {
background-color: @toggleOnFocusLaneColor !important;
}
}
}
/*--------------------
Size
---------------------*/
each(@variationCheckboxSizes, {
@raw: @{value}Raw;
@size: @{value}CheckboxSize;
@circleScale: @{value}CheckboxCircleScale;
@circleLeft: @{value}CheckboxCircleLeft;
.ui.@{value}.checkbox {
font-size: @@size;
}
& when (@@raw > 1) {
.ui.@{value}.form .checkbox,
.ui.@{value}.checkbox {
&:not(.slider):not(.toggle):not(.radio) {
&
label:after,
label:before {
transform: scale(@@raw);
transform-origin:left;
}
}
&.radio when (@variationCheckboxRadio) {
&
label:before {
transform: scale(@@raw);
transform-origin:left;
}
&
label:after {
transform:scale(@@circleScale);
transform-origin:left;
left: @@circleLeft;
}
}
}
}
& when (@@raw > 1) and (@variationCheckboxBox) {
.ui.@{value}.form .checkbox,
.ui.@{value}.checkbox {
&:not(.slider):not(.toggle):not(.radio) {
&
.box:after,
.box:before {
transform: scale(@@raw);
transform-origin:left;
}
}
&.radio when (@variationCheckboxRadio) {
&
.box:before {
transform: scale(@@raw);
transform-origin:left;
}
&
.box:after {
transform:scale(@@circleScale);
transform-origin:left;
left: @@circleLeft;
}
}
}
}
})
.loadUIOverrides();

View file

@ -0,0 +1,753 @@
/*!
* # Fomantic-UI - Dimmer
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
'use strict';
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.fn.dimmer = function(parameters) {
var
$allModules = $(this),
time = new Date().getTime(),
performance = [],
query = arguments[0],
methodInvoked = (typeof query == 'string'),
queryArguments = [].slice.call(arguments, 1),
returnedValue
;
$allModules
.each(function() {
var
settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.dimmer.settings, parameters)
: $.extend({}, $.fn.dimmer.settings),
selector = settings.selector,
namespace = settings.namespace,
className = settings.className,
error = settings.error,
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
moduleSelector = $allModules.selector || '',
clickEvent = ('ontouchstart' in document.documentElement)
? 'touchstart'
: 'click',
$module = $(this),
$dimmer,
$dimmable,
element = this,
instance = $module.data(moduleNamespace),
module
;
module = {
preinitialize: function() {
if( module.is.dimmer() ) {
$dimmable = $module.parent();
$dimmer = $module;
}
else {
$dimmable = $module;
if( module.has.dimmer() ) {
if(settings.dimmerName) {
$dimmer = $dimmable.find(selector.dimmer).filter('.' + settings.dimmerName);
}
else {
$dimmer = $dimmable.find(selector.dimmer);
}
}
else {
$dimmer = module.create();
}
}
},
initialize: function() {
module.debug('Initializing dimmer', settings);
module.bind.events();
module.set.dimmable();
module.instantiate();
},
instantiate: function() {
module.verbose('Storing instance of module', module);
instance = module;
$module
.data(moduleNamespace, instance)
;
},
destroy: function() {
module.verbose('Destroying previous module', $dimmer);
module.unbind.events();
module.remove.variation();
$dimmable
.off(eventNamespace)
;
},
bind: {
events: function() {
if(settings.on == 'hover') {
$dimmable
.on('mouseenter' + eventNamespace, module.show)
.on('mouseleave' + eventNamespace, module.hide)
;
}
else if(settings.on == 'click') {
$dimmable
.on(clickEvent + eventNamespace, module.toggle)
;
}
if( module.is.page() ) {
module.debug('Setting as a page dimmer', $dimmable);
module.set.pageDimmer();
}
if( module.is.closable() ) {
module.verbose('Adding dimmer close event', $dimmer);
$dimmable
.on(clickEvent + eventNamespace, selector.dimmer, module.event.click)
;
}
}
},
unbind: {
events: function() {
$module
.removeData(moduleNamespace)
;
$dimmable
.off(eventNamespace)
;
}
},
event: {
click: function(event) {
module.verbose('Determining if event occured on dimmer', event);
if( $dimmer.find(event.target).length === 0 || $(event.target).is(selector.content) ) {
module.hide();
event.stopImmediatePropagation();
}
}
},
addContent: function(element) {
var
$content = $(element)
;
module.debug('Add content to dimmer', $content);
if($content.parent()[0] !== $dimmer[0]) {
$content.detach().appendTo($dimmer);
}
},
create: function() {
var
$element = $( settings.template.dimmer(settings) )
;
if(settings.dimmerName) {
module.debug('Creating named dimmer', settings.dimmerName);
$element.addClass(settings.dimmerName);
}
$element
.appendTo($dimmable)
;
return $element;
},
show: function(callback) {
callback = $.isFunction(callback)
? callback
: function(){}
;
module.debug('Showing dimmer', $dimmer, settings);
module.set.variation();
if( (!module.is.dimmed() || module.is.animating()) && module.is.enabled() ) {
module.animate.show(callback);
settings.onShow.call(element);
settings.onChange.call(element);
}
else {
module.debug('Dimmer is already shown or disabled');
}
},
hide: function(callback) {
callback = $.isFunction(callback)
? callback
: function(){}
;
if( module.is.dimmed() || module.is.animating() ) {
module.debug('Hiding dimmer', $dimmer);
module.animate.hide(callback);
settings.onHide.call(element);
settings.onChange.call(element);
}
else {
module.debug('Dimmer is not visible');
}
},
toggle: function() {
module.verbose('Toggling dimmer visibility', $dimmer);
if( !module.is.dimmed() ) {
module.show();
}
else {
if ( module.is.closable() ) {
module.hide();
}
}
},
animate: {
show: function(callback) {
callback = $.isFunction(callback)
? callback
: function(){}
;
if(settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
if(settings.useFlex) {
module.debug('Using flex dimmer');
module.remove.legacy();
}
else {
module.debug('Using legacy non-flex dimmer');
module.set.legacy();
}
if(settings.opacity !== 'auto') {
module.set.opacity();
}
$dimmer
.transition({
displayType : settings.useFlex
? 'flex'
: 'block',
animation : settings.transition + ' in',
queue : false,
duration : module.get.duration(),
useFailSafe : true,
onStart : function() {
module.set.dimmed();
},
onComplete : function() {
module.set.active();
callback();
}
})
;
}
else {
module.verbose('Showing dimmer animation with javascript');
module.set.dimmed();
if(settings.opacity == 'auto') {
settings.opacity = 0.8;
}
$dimmer
.stop()
.css({
opacity : 0,
width : '100%',
height : '100%'
})
.fadeTo(module.get.duration(), settings.opacity, function() {
$dimmer.removeAttr('style');
module.set.active();
callback();
})
;
}
},
hide: function(callback) {
callback = $.isFunction(callback)
? callback
: function(){}
;
if(settings.useCSS && $.fn.transition !== undefined && $dimmer.transition('is supported')) {
module.verbose('Hiding dimmer with css');
$dimmer
.transition({
displayType : settings.useFlex
? 'flex'
: 'block',
animation : settings.transition + ' out',
queue : false,
duration : module.get.duration(),
useFailSafe : true,
onComplete : function() {
module.remove.dimmed();
module.remove.variation();
module.remove.active();
callback();
}
})
;
}
else {
module.verbose('Hiding dimmer with javascript');
$dimmer
.stop()
.fadeOut(module.get.duration(), function() {
module.remove.dimmed();
module.remove.active();
$dimmer.removeAttr('style');
callback();
})
;
}
}
},
get: {
dimmer: function() {
return $dimmer;
},
duration: function() {
if(typeof settings.duration == 'object') {
if( module.is.active() ) {
return settings.duration.hide;
}
else {
return settings.duration.show;
}
}
return settings.duration;
}
},
has: {
dimmer: function() {
if(settings.dimmerName) {
return ($module.find(selector.dimmer).filter('.' + settings.dimmerName).length > 0);
}
else {
return ( $module.find(selector.dimmer).length > 0 );
}
}
},
is: {
active: function() {
return $dimmer.hasClass(className.active);
},
animating: function() {
return ( $dimmer.is(':animated') || $dimmer.hasClass(className.animating) );
},
closable: function() {
if(settings.closable == 'auto') {
if(settings.on == 'hover') {
return false;
}
return true;
}
return settings.closable;
},
dimmer: function() {
return $module.hasClass(className.dimmer);
},
dimmable: function() {
return $module.hasClass(className.dimmable);
},
dimmed: function() {
return $dimmable.hasClass(className.dimmed);
},
disabled: function() {
return $dimmable.hasClass(className.disabled);
},
enabled: function() {
return !module.is.disabled();
},
page: function () {
return $dimmable.is('body');
},
pageDimmer: function() {
return $dimmer.hasClass(className.pageDimmer);
}
},
can: {
show: function() {
return !$dimmer.hasClass(className.disabled);
}
},
set: {
opacity: function(opacity) {
var
color = $dimmer.css('background-color'),
colorArray = color.split(','),
isRGB = (colorArray && colorArray.length == 3),
isRGBA = (colorArray && colorArray.length == 4)
;
opacity = settings.opacity === 0 ? 0 : settings.opacity || opacity;
if(isRGB || isRGBA) {
colorArray[3] = opacity + ')';
color = colorArray.join(',');
}
else {
color = 'rgba(0, 0, 0, ' + opacity + ')';
}
module.debug('Setting opacity to', opacity);
$dimmer.css('background-color', color);
},
legacy: function() {
$dimmer.addClass(className.legacy);
},
active: function() {
$dimmer.addClass(className.active);
},
dimmable: function() {
$dimmable.addClass(className.dimmable);
},
dimmed: function() {
$dimmable.addClass(className.dimmed);
},
pageDimmer: function() {
$dimmer.addClass(className.pageDimmer);
},
disabled: function() {
$dimmer.addClass(className.disabled);
},
variation: function(variation) {
variation = variation || settings.variation;
if(variation) {
$dimmer.addClass(variation);
}
}
},
remove: {
active: function() {
$dimmer
.removeClass(className.active)
;
},
legacy: function() {
$dimmer.removeClass(className.legacy);
},
dimmed: function() {
$dimmable.removeClass(className.dimmed);
},
disabled: function() {
$dimmer.removeClass(className.disabled);
},
variation: function(variation) {
variation = variation || settings.variation;
if(variation) {
$dimmer.removeClass(variation);
}
}
},
setting: function(name, value) {
module.debug('Changing setting', name, value);
if( $.isPlainObject(name) ) {
$.extend(true, settings, name);
}
else if(value !== undefined) {
if($.isPlainObject(settings[name])) {
$.extend(true, settings[name], value);
}
else {
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.silent && 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.silent && 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() {
if(!settings.silent) {
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($allModules.length > 1) {
title += ' ' + '(' + $allModules.length + ')';
}
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(Array.isArray(returnedValue)) {
returnedValue.push(response);
}
else if(returnedValue !== undefined) {
returnedValue = [returnedValue, response];
}
else if(response !== undefined) {
returnedValue = response;
}
return found;
}
};
module.preinitialize();
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.dimmer.settings = {
name : 'Dimmer',
namespace : 'dimmer',
silent : false,
debug : false,
verbose : false,
performance : true,
// whether should use flex layout
useFlex : true,
// name to distinguish between multiple dimmers in context
dimmerName : false,
// whether to add a variation type
variation : false,
// whether to bind close events
closable : 'auto',
// whether to use css animations
useCSS : true,
// css animation to use
transition : 'fade',
// event to bind to
on : false,
// overriding opacity value
opacity : 'auto',
// transition durations
duration : {
show : 500,
hide : 500
},
// whether the dynamically created dimmer should have a loader
displayLoader: false,
loaderText : false,
loaderVariation : '',
onChange : function(){},
onShow : function(){},
onHide : function(){},
error : {
method : 'The method you called is not defined.'
},
className : {
active : 'active',
animating : 'animating',
dimmable : 'dimmable',
dimmed : 'dimmed',
dimmer : 'dimmer',
disabled : 'disabled',
hide : 'hide',
legacy : 'legacy',
pageDimmer : 'page',
show : 'show',
loader : 'ui loader'
},
selector: {
dimmer : '> .ui.dimmer',
content : '.ui.dimmer > .content, .ui.dimmer > .content > .center'
},
template: {
dimmer: function(settings) {
var d = $('<div/>').addClass('ui dimmer'),l;
if(settings.displayLoader) {
l = $('<div/>')
.addClass(settings.className.loader)
.addClass(settings.loaderVariation);
if(!!settings.loaderText){
l.text(settings.loaderText);
l.addClass('text');
}
d.append(l);
}
return d;
}
}
};
})( jQuery, window, document );

View file

@ -0,0 +1,390 @@
/*!
* # Fomantic-UI - Dimmer
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'dimmer';
@import (multiple) '../../theme.config';
/*******************************
Dimmer
*******************************/
.dimmable:not(body) {
position: @dimmablePosition;
}
.ui.dimmer {
display: none;
position: @dimmerPosition;
top: 0 !important;
left: 0 !important;
width: 100%;
height: 100%;
text-align: @textAlign;
vertical-align: @verticalAlign;
padding: @padding;
background-color: @backgroundColor;
opacity: @hiddenOpacity;
line-height: @lineHeight;
animation-fill-mode: both;
animation-duration: @duration;
transition: @transition;
flex-direction: column;
align-items: center;
justify-content: center;
user-select: none;
will-change: opacity;
z-index: @zIndex;
}
/* Dimmer Content */
.ui.dimmer > .content {
user-select: text;
color: @textColor;
}
/* Loose Coupling */
.ui.segment > .ui.dimmer:not(.page) {
border-radius: inherit;
}
/* Scrollbars */
.addScrollbars() when (@useCustomScrollbars) {
.ui.dimmer:not(.inverted)::-webkit-scrollbar-track {
background: @trackInvertedBackground;
}
.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb {
background: @thumbInvertedBackground;
}
.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:window-inactive {
background: @thumbInvertedInactiveBackground;
}
.ui.dimmer:not(.inverted)::-webkit-scrollbar-thumb:hover {
background: @thumbInvertedHoverBackground;
}
}
.addScrollbars();
/*******************************
States
*******************************/
/* Animating */
.animating.dimmable:not(body),
.dimmed.dimmable:not(body) {
overflow: @overflow;
}
/* Animating / Active / Visible */
.dimmed.dimmable > .ui.animating.dimmer,
.dimmed.dimmable > .ui.visible.dimmer,
.ui.active.dimmer {
display: flex;
opacity: @visibleOpacity;
}
& when (@variationDimmerDisabled) {
/* Disabled */
.ui.disabled.dimmer {
width: 0 !important;
height: 0 !important;
}
}
/*******************************
Variations
*******************************/
& when (@variationDimmerLegacy) {
/*--------------
Legacy
---------------*/
/* Animating / Active / Visible */
.dimmed.dimmable > .ui.animating.legacy.dimmer,
.dimmed.dimmable > .ui.visible.legacy.dimmer,
.ui.active.legacy.dimmer {
display: block;
}
}
& when (@variationDimmerAligned) {
/*--------------
Alignment
---------------*/
.ui[class*="top aligned"].dimmer {
justify-content: flex-start;
}
.ui[class*="bottom aligned"].dimmer {
justify-content: flex-end;
}
}
& when (@variationDimmerPage) {
/*--------------
Page
---------------*/
.ui.page.dimmer {
position: @pageDimmerPosition;
transform-style: @transformStyle;
perspective: @perspective;
transform-origin: center center;
&.modals {
-moz-perspective: none;
}
}
}
body.animating.in.dimmable,
body.dimmed.dimmable {
overflow: hidden;
}
body.dimmable > .dimmer {
position: fixed;
}
& when (@variationDimmerBlurring) {
/*--------------
Blurring
---------------*/
.blurring.dimmable > :not(.dimmer) {
filter: @blurredStartFilter;
transition: @blurredTransition;
}
.blurring.dimmed.dimmable > :not(.dimmer):not(.popup) {
filter: @blurredEndFilter;
}
/* Dimmer Color */
.blurring.dimmable > .dimmer {
background-color: @blurredBackgroundColor;
}
.blurring.dimmable > .inverted.dimmer {
background-color: @blurredInvertedBackgroundColor;
}
}
& when (@variationDimmerAligned) {
/*--------------
Aligned
---------------*/
.ui.dimmer > .top.aligned.content > * {
vertical-align: top;
}
.ui.dimmer > .bottom.aligned.content > * {
vertical-align: bottom;
}
}
& when (@variationDimmerShades) {
/*--------------
Shades
---------------*/
.medium.medium.medium.medium.medium.dimmer {
background-color: @mediumBackgroundColor;
}
.light.light.light.light.light.dimmer {
background-color: @lightBackgroundColor;
}
.very.light.light.light.light.dimmer {
background-color: @veryLightBackgroundColor;
}
}
& when (@variationDimmerInverted) {
/*--------------
Inverted
---------------*/
.ui.inverted.dimmer {
background-color: @invertedBackgroundColor;
}
.ui.inverted.dimmer > .content,
.ui.inverted.dimmer > .content > * {
color: @invertedTextColor;
}
& when (@variationDimmerShades) {
/*--------------
Inverted Shades
---------------*/
.medium.medium.medium.medium.medium.inverted.dimmer {
background-color: @mediumInvertedBackgroundColor;
}
.light.light.light.light.light.inverted.dimmer {
background-color: @lightInvertedBackgroundColor;
}
.very.light.light.light.light.inverted.dimmer {
background-color: @veryLightInvertedBackgroundColor;
}
}
}
& when (@variationDimmerSimple) {
/*--------------
Simple
---------------*/
/* Displays without javascript */
.ui.simple.dimmer {
display: block;
overflow: hidden;
opacity: 0;
width: 0;
height: 0;
z-index: -100;
background-color: @simpleStartBackgroundColor;
}
.dimmed.dimmable > .ui.simple.dimmer {
overflow: visible;
opacity: 1;
width: 100%;
height: 100%;
background-color: @simpleEndBackgroundColor;
z-index: @simpleZIndex;
}
.ui.simple.inverted.dimmer {
background-color: @simpleInvertedStartBackgroundColor;
}
.dimmed.dimmable > .ui.simple.inverted.dimmer {
background-color: @simpleInvertedEndBackgroundColor;
}
}
& when (@variationDimmerPartially) {
/*--------------
Partially
----------------*/
.ui[class*="top dimmer"],
.ui[class*="center dimmer"],
.ui[class*="bottom dimmer"] {
height: auto;
}
.ui[class*="bottom dimmer"] {
top: auto !important;
bottom: 0;
}
.ui[class*="center dimmer"] {
top:50% !important;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - .5px));
}
.ui.segment > .ui.ui[class*="top dimmer"] {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.ui.segment > .ui.ui[class*="center dimmer"] {
border-radius: 0;
}
.ui.segment > .ui.ui[class*="bottom dimmer"] {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
.ui[class*="center dimmer"].transition[class*="fade up"].in {
animation-name: fadeInUpCenter;
}
.ui[class*="center dimmer"].transition[class*="fade down"].in {
animation-name: fadeInDownCenter;
}
.ui[class*="center dimmer"].transition[class*="fade up"].out {
animation-name: fadeOutUpCenter;
}
.ui[class*="center dimmer"].transition[class*="fade down"].out {
animation-name: fadeOutDownCenter;
}
.ui[class*="center dimmer"].bounce.transition {
animation-name: bounceCenter;
}
@keyframes fadeInUpCenter {
0% {
opacity: 0;
transform: translateY(-40%);
-webkit-transform: translateY(calc(-40% - .5px));
}
100% {
opacity: 1;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - .5px));
}
}
@keyframes fadeInDownCenter {
0% {
opacity: 0;
transform: translateY(-60%);
-webkit-transform: translateY(calc(-60% - .5px));
}
100% {
opacity: 1;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - .5px));
}
}
@keyframes fadeOutUpCenter {
0% {
opacity: 1;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - .5px));
}
100% {
opacity: 0;
transform: translateY(-45%);
-webkit-transform: translateY(calc(-45% - .5px));
}
}
@keyframes fadeOutDownCenter {
0% {
opacity: 1;
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - .5px));
}
100% {
opacity: 0;
transform: translateY(-55%);
-webkit-transform: translateY(calc(-55% - .5px));
}
}
@keyframes bounceCenter {
0%, 20%, 50%, 80%, 100% {
transform: translateY(-50%);
-webkit-transform: translateY(calc(-50% - .5px));
}
40% {
transform: translateY(calc(-50% - 30px));
}
60% {
transform: translateY(calc(-50% - 15px));
}
}
}
.loadUIOverrides();

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,709 @@
/*!
* # Fomantic-UI - Embed
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
"use strict";
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.fn.embed = 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 = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.embed.settings, parameters)
: $.extend({}, $.fn.embed.settings),
selector = settings.selector,
className = settings.className,
sources = settings.sources,
error = settings.error,
metadata = settings.metadata,
namespace = settings.namespace,
templates = settings.templates,
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
$module = $(this),
$placeholder = $module.find(selector.placeholder),
$icon = $module.find(selector.icon),
$embed = $module.find(selector.embed),
element = this,
instance = $module.data(moduleNamespace),
module
;
module = {
initialize: function() {
module.debug('Initializing embed');
module.determine.autoplay();
module.create();
module.bind.events();
module.instantiate();
},
instantiate: function() {
module.verbose('Storing instance of module', module);
instance = module;
$module
.data(moduleNamespace, module)
;
},
destroy: function() {
module.verbose('Destroying previous instance of embed');
module.reset();
$module
.removeData(moduleNamespace)
.off(eventNamespace)
;
},
refresh: function() {
module.verbose('Refreshing selector cache');
$placeholder = $module.find(selector.placeholder);
$icon = $module.find(selector.icon);
$embed = $module.find(selector.embed);
},
bind: {
events: function() {
if( module.has.placeholder() ) {
module.debug('Adding placeholder events');
$module
.on('click' + eventNamespace, selector.placeholder, module.createAndShow)
.on('click' + eventNamespace, selector.icon, module.createAndShow)
;
}
}
},
create: function() {
var
placeholder = module.get.placeholder()
;
if(placeholder) {
module.createPlaceholder();
}
else {
module.createAndShow();
}
},
createPlaceholder: function(placeholder) {
var
icon = module.get.icon(),
url = module.get.url(),
embed = module.generate.embed(url)
;
placeholder = placeholder || module.get.placeholder();
$module.html( templates.placeholder(placeholder, icon) );
module.debug('Creating placeholder for embed', placeholder, icon);
},
createEmbed: function(url) {
module.refresh();
url = url || module.get.url();
$embed = $('<div/>')
.addClass(className.embed)
.html( module.generate.embed(url) )
.appendTo($module)
;
settings.onCreate.call(element, url);
module.debug('Creating embed object', $embed);
},
changeEmbed: function(url) {
$embed
.html( module.generate.embed(url) )
;
},
createAndShow: function() {
module.createEmbed();
module.show();
},
// sets new embed
change: function(source, id, url) {
module.debug('Changing video to ', source, id, url);
$module
.data(metadata.source, source)
.data(metadata.id, id)
;
if(url) {
$module.data(metadata.url, url);
}
else {
$module.removeData(metadata.url);
}
if(module.has.embed()) {
module.changeEmbed();
}
else {
module.create();
}
},
// clears embed
reset: function() {
module.debug('Clearing embed and showing placeholder');
module.remove.data();
module.remove.active();
module.remove.embed();
module.showPlaceholder();
settings.onReset.call(element);
},
// shows current embed
show: function() {
module.debug('Showing embed');
module.set.active();
settings.onDisplay.call(element);
},
hide: function() {
module.debug('Hiding embed');
module.showPlaceholder();
},
showPlaceholder: function() {
module.debug('Showing placeholder image');
module.remove.active();
settings.onPlaceholderDisplay.call(element);
},
get: {
id: function() {
return settings.id || $module.data(metadata.id);
},
placeholder: function() {
return settings.placeholder || $module.data(metadata.placeholder);
},
icon: function() {
return (settings.icon)
? settings.icon
: ($module.data(metadata.icon) !== undefined)
? $module.data(metadata.icon)
: module.determine.icon()
;
},
source: function(url) {
return (settings.source)
? settings.source
: ($module.data(metadata.source) !== undefined)
? $module.data(metadata.source)
: module.determine.source()
;
},
type: function() {
var source = module.get.source();
return (sources[source] !== undefined)
? sources[source].type
: false
;
},
url: function() {
return (settings.url)
? settings.url
: ($module.data(metadata.url) !== undefined)
? $module.data(metadata.url)
: module.determine.url()
;
}
},
determine: {
autoplay: function() {
if(module.should.autoplay()) {
settings.autoplay = true;
}
},
source: function(url) {
var
matchedSource = false
;
url = url || module.get.url();
if(url) {
$.each(sources, function(name, source) {
if(url.search(source.domain) !== -1) {
matchedSource = name;
return false;
}
});
}
return matchedSource;
},
icon: function() {
var
source = module.get.source()
;
return (sources[source] !== undefined)
? sources[source].icon
: false
;
},
url: function() {
var
id = settings.id || $module.data(metadata.id),
source = settings.source || $module.data(metadata.source),
url
;
url = (sources[source] !== undefined)
? sources[source].url.replace('{id}', id)
: false
;
if(url) {
$module.data(metadata.url, url);
}
return url;
}
},
set: {
active: function() {
$module.addClass(className.active);
}
},
remove: {
data: function() {
$module
.removeData(metadata.id)
.removeData(metadata.icon)
.removeData(metadata.placeholder)
.removeData(metadata.source)
.removeData(metadata.url)
;
},
active: function() {
$module.removeClass(className.active);
},
embed: function() {
$embed.empty();
}
},
encode: {
parameters: function(parameters) {
var
urlString = [],
index
;
for (index in parameters) {
urlString.push( encodeURIComponent(index) + '=' + encodeURIComponent( parameters[index] ) );
}
return urlString.join('&amp;');
}
},
generate: {
embed: function(url) {
module.debug('Generating embed html');
var
source = module.get.source(),
html,
parameters
;
url = module.get.url(url);
if(url) {
parameters = module.generate.parameters(source);
html = templates.iframe(url, parameters);
}
else {
module.error(error.noURL, $module);
}
return html;
},
parameters: function(source, extraParameters) {
var
parameters = (sources[source] && sources[source].parameters !== undefined)
? sources[source].parameters(settings)
: {}
;
extraParameters = extraParameters || settings.parameters;
if(extraParameters) {
parameters = $.extend({}, parameters, extraParameters);
}
parameters = settings.onEmbed(parameters);
return module.encode.parameters(parameters);
}
},
has: {
embed: function() {
return ($embed.length > 0);
},
placeholder: function() {
return settings.placeholder || $module.data(metadata.placeholder);
}
},
should: {
autoplay: function() {
return (settings.autoplay === 'auto')
? (settings.placeholder || $module.data(metadata.placeholder) !== undefined)
: settings.autoplay
;
}
},
is: {
video: function() {
return module.get.type() == 'video';
}
},
setting: function(name, value) {
module.debug('Changing setting', name, value);
if( $.isPlainObject(name) ) {
$.extend(true, settings, name);
}
else if(value !== undefined) {
if($.isPlainObject(settings[name])) {
$.extend(true, settings[name], value);
}
else {
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.silent && 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.silent && 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() {
if(!settings.silent) {
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($allModules.length > 1) {
title += ' ' + '(' + $allModules.length + ')';
}
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(Array.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.embed.settings = {
name : 'Embed',
namespace : 'embed',
silent : false,
debug : false,
verbose : false,
performance : true,
icon : false,
source : false,
url : false,
id : false,
// standard video settings
autoplay : 'auto',
color : '#444444',
hd : true,
brandedUI : false,
// additional parameters to include with the embed
parameters: false,
onDisplay : function() {},
onPlaceholderDisplay : function() {},
onReset : function() {},
onCreate : function(url) {},
onEmbed : function(parameters) {
return parameters;
},
metadata : {
id : 'id',
icon : 'icon',
placeholder : 'placeholder',
source : 'source',
url : 'url'
},
error : {
noURL : 'No URL specified',
method : 'The method you called is not defined'
},
className : {
active : 'active',
embed : 'embed'
},
selector : {
embed : '.embed',
placeholder : '.placeholder',
icon : '.icon'
},
sources: {
youtube: {
name : 'youtube',
type : 'video',
icon : 'video play',
domain : 'youtube.com',
url : '//www.youtube.com/embed/{id}',
parameters: function(settings) {
return {
autohide : !settings.brandedUI,
autoplay : settings.autoplay,
color : settings.color || undefined,
hq : settings.hd,
jsapi : settings.api,
modestbranding : !settings.brandedUI
};
}
},
vimeo: {
name : 'vimeo',
type : 'video',
icon : 'video play',
domain : 'vimeo.com',
url : '//player.vimeo.com/video/{id}',
parameters: function(settings) {
return {
api : settings.api,
autoplay : settings.autoplay,
byline : settings.brandedUI,
color : settings.color || undefined,
portrait : settings.brandedUI,
title : settings.brandedUI
};
}
}
},
templates: {
iframe : function(url, parameters) {
var src = url;
if (parameters) {
src += '?' + parameters;
}
return ''
+ '<iframe src="' + src + '"'
+ ' width="100%" height="100%"'
+ ' webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'
;
},
placeholder : function(image, icon) {
var
html = ''
;
if(icon) {
html += '<i class="' + icon + ' icon"></i>';
}
if(image) {
html += '<img class="placeholder" src="' + image + '">';
}
return html;
}
},
// NOT YET IMPLEMENTED
api : false,
onPause : function() {},
onPlay : function() {},
onStop : function() {}
};
})( jQuery, window, document );

View file

@ -0,0 +1,160 @@
/*!
* # Fomantic-UI - Video
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'embed';
@import (multiple) '../../theme.config';
/*******************************
Types
*******************************/
.ui.embed {
position: relative;
max-width: 100%;
height: 0;
overflow: hidden;
background: @background;
padding-bottom: @widescreenRatio;
}
/*-----------------
Embedded Content
------------------*/
.ui.embed iframe,
.ui.embed embed,
.ui.embed object {
position: absolute;
border: none;
width: 100%;
height: 100%;
top: 0;
left: 0;
margin: 0;
padding: 0;
overflow: hidden;
}
/*-----------------
Embed
------------------*/
.ui.embed > .embed {
display: none;
}
/*--------------
Placeholder
---------------*/
.ui.embed > .placeholder {
position: absolute;
cursor: pointer;
top: 0;
left: 0;
display: block;
width: 100%;
height: 100%;
background-color: @placeholderBackground;
}
/*--------------
Icon
---------------*/
.ui.embed > .icon {
cursor: pointer;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;
}
.ui.embed > .icon:after {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 3;
content: '';
background: @placeholderBackground;
opacity: @placeholderBackgroundOpacity;
transition: @placeholderBackgroundTransition;
}
.ui.embed > .icon:before {
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
color: @iconColor;
font-size: @iconSize;
text-shadow: @iconShadow;
transition: @iconTransition;
z-index: @iconZIndex;
}
/*******************************
States
*******************************/
/*--------------
Hover
---------------*/
.ui.embed .icon:hover:after {
background: @hoverPlaceholderBackground;
opacity: @hoverPlaceholderBackgroundOpacity;
}
.ui.embed .icon:hover:before {
color: @hoverIconColor;
}
/*--------------
Active
---------------*/
.ui.active.embed > .icon,
.ui.active.embed > .placeholder {
display: none;
}
.ui.active.embed > .embed {
display: block;
}
/*******************************
Variations
*******************************/
& when (@variationEmbedRatio) {
.ui.square.embed {
padding-bottom: @squareRatio;
}
.ui[class*="4:3"].embed {
padding-bottom: @standardRatio;
}
.ui[class*="16:9"].embed {
padding-bottom: @widescreenRatio;
}
.ui[class*="21:9"].embed {
padding-bottom: @ultraWidescreenRatio;
}
}
.loadUIOverrides();

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,583 @@
/*!
* # Fomantic-UI - Modal
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'modal';
@import (multiple) '../../theme.config';
/*******************************
Modal
*******************************/
.ui.modal {
position: absolute;
display: none;
z-index: @zIndex;
text-align: left;
background: @background;
border: @border;
box-shadow: @boxShadow;
transform-origin: @transformOrigin;
flex: 0 0 auto;
border-radius: @borderRadius;
user-select: text;
will-change: top, left, margin, transform, opacity;
}
.ui.modal > :first-child:not(.icon):not(.dimmer),
.ui.modal > .icon:first-child + *,
.ui.modal > .dimmer:first-child + *:not(.icon),
.ui.modal > .dimmer:first-child + .icon + * {
border-top-left-radius: @borderRadius;
border-top-right-radius: @borderRadius;
}
.ui.modal > :last-child {
border-bottom-left-radius: @borderRadius;
border-bottom-right-radius: @borderRadius;
}
.ui.modal > .ui.dimmer {
border-radius: inherit;
}
/*******************************
Content
*******************************/
/*--------------
Close
---------------*/
.ui.modal > .close {
cursor: pointer;
position: absolute;
top: @closeTop;
right: @closeRight;
z-index: 1;
opacity: @closeOpacity;
font-size: @closeSize;
color: @closeColor;
width: @closeHitbox;
height: @closeHitbox;
padding: @closePadding;
}
.ui.modal > .close:hover {
opacity: 1;
}
/*--------------
Header
---------------*/
.ui.modal > .header {
display: block;
font-family: @headerFontFamily;
background: @headerBackground;
margin: @headerMargin;
padding: @headerPadding;
box-shadow: @headerBoxShadow;
color: @headerColor;
border-bottom: @headerBorder;
}
.ui.modal > .header:not(.ui) {
font-size: @headerFontSize;
line-height: @headerLineHeight;
font-weight: @headerFontWeight;
}
/*--------------
Content
---------------*/
.ui.modal > .content {
display: block;
width: 100%;
font-size: @contentFontSize;
line-height: @contentLineHeight;
padding: @contentPadding;
background: @contentBackground;
}
.ui.modal > .image.content {
display: flex;
flex-direction: row;
}
/* Image */
.ui.modal > .content > .image {
display: block;
flex: 0 1 auto;
width: @imageWidth;
align-self: @imageVerticalAlign;
max-width: 100%;
}
.ui.modal > [class*="top aligned"] {
align-self: start;
}
.ui.modal > [class*="middle aligned"] {
align-self: center;
}
.ui.modal > [class*="stretched"] {
align-self: stretch;
}
/* Description */
.ui.modal > .content > .description {
display: block;
flex: 1 0 auto;
min-width: 0;
align-self: @descriptionVerticalAlign;
}
.ui.modal > .content > .icon + .description,
.ui.modal > .content > .image + .description {
flex: 0 1 auto;
min-width: @descriptionMinWidth;
width: @descriptionWidth;
padding-left: @descriptionDistance;
}
/*rtl:ignore*/
.ui.modal > .content > .image > i.icon {
margin: 0;
opacity: 1;
width: auto;
line-height: 1;
font-size: @imageIconSize;
}
/*--------------
Actions
---------------*/
.ui.modal > .actions {
background: @actionBackground;
padding: @actionPadding;
border-top: @actionBorder;
text-align: @actionAlign;
}
.ui.modal .actions > .button:not(.fluid) {
margin-left: @buttonDistance;
}
.ui.basic.modal > .actions {
border-top:none;
}
/*-------------------
Responsive
--------------------*/
/* Modal Width */
@media only screen and (max-width : @largestMobileScreen) {
.ui.modal:not(.fullscreen) {
width: @mobileWidth;
margin: @mobileMargin;
}
}
@media only screen and (min-width : @tabletBreakpoint) {
.ui.modal:not(.fullscreen) {
width: @tabletWidth;
margin: @tabletMargin;
}
}
@media only screen and (min-width : @computerBreakpoint) {
.ui.modal:not(.fullscreen) {
width: @computerWidth;
margin: @computerMargin;
}
}
@media only screen and (min-width : @largeMonitorBreakpoint) {
.ui.modal:not(.fullscreen) {
width: @largeMonitorWidth;
margin: @largeMonitorMargin;
}
}
@media only screen and (min-width : @widescreenMonitorBreakpoint) {
.ui.modal:not(.fullscreen) {
width: @widescreenMonitorWidth;
margin: @widescreenMonitorMargin;
}
}
/* Tablet and Mobile */
@media only screen and (max-width : @largestTabletScreen) {
.ui.modal > .header {
padding-right: @closeHitbox;
}
.ui.modal > .close {
top: @innerCloseTop;
right: @innerCloseRight;
color: @innerCloseColor;
}
}
/* Mobile */
@media only screen and (max-width : @largestMobileScreen) {
.ui.modal > .header {
padding: @mobileHeaderPadding !important;
padding-right: @closeHitbox !important;
}
.ui.overlay.fullscreen.modal > .content.content.content {
min-height: @overlayFullscreenScrollingContentMaxHeightMobile;
}
.ui.overlay.fullscreen.modal > .scrolling.content.content.content {
max-height: @overlayFullscreenScrollingContentMaxHeightMobile;
}
.ui.modal > .content {
display: block;
padding: @mobileContentPadding !important;
}
.ui.modal > .close {
top: @mobileCloseTop !important;
right: @mobileCloseRight !important;
}
/*rtl:ignore*/
.ui.modal .image.content {
flex-direction: column;
}
.ui.modal > .content > .image {
display: block;
max-width: 100%;
margin: 0 auto !important;
text-align: center;
padding: @mobileImagePadding !important;
}
.ui.modal > .content > .image > i.icon {
font-size: @mobileImageIconSize;
text-align: center;
}
/*rtl:ignore*/
.ui.modal > .content > .description {
display: block;
width: 100% !important;
margin: 0 !important;
padding: @mobileDescriptionPadding !important;
box-shadow: none;
}
/* Let Buttons Stack */
.ui.modal > .actions {
padding: @mobileActionPadding !important;
}
.ui.modal .actions > .buttons,
.ui.modal .actions > .button {
margin-bottom: @mobileButtonDistance;
}
}
/*--------------
Coupling
---------------*/
.ui.inverted.dimmer > .ui.modal {
box-shadow: @invertedBoxShadow;
}
/*******************************
Types
*******************************/
& when (@variationModalBasic) {
.ui.basic.modal {
background-color: transparent;
border: none;
border-radius: 0;
box-shadow: none !important;
color: @basicModalColor;
}
.ui.basic.modal > .header,
.ui.basic.modal > .content,
.ui.basic.modal > .actions {
background-color: transparent;
}
.ui.basic.modal > .header {
color: @basicModalHeaderColor;
border-bottom: none;
}
.ui.basic.modal > .close {
top: @basicModalCloseTop;
right: @basicModalCloseRight;
color: @basicInnerCloseColor;
}
.ui.inverted.dimmer > .basic.modal {
color: @basicInvertedModalColor;
}
.ui.inverted.dimmer > .ui.basic.modal > .header {
color: @basicInvertedModalHeaderColor;
}
}
& when (@variationModalLegacy) {
/* Resort to margin positioning if legacy */
.ui.legacy.legacy.modal,
.ui.legacy.legacy.page.dimmer > .ui.modal {
left: 50% !important;
}
.ui.legacy.legacy.modal:not(.aligned),
.ui.legacy.legacy.page.dimmer > .ui.modal:not(.aligned) {
top: 50%;
}
.ui.legacy.legacy.page.dimmer > .ui.scrolling.modal:not(.aligned),
.ui.page.dimmer > .ui.scrolling.legacy.legacy.modal:not(.aligned),
.ui.top.aligned.legacy.legacy.page.dimmer > .ui.modal:not(.aligned),
.ui.top.aligned.dimmer > .ui.legacy.legacy.modal:not(.aligned) {
top: auto;
}
& when (@variationModalOverlay) {
.ui.legacy.overlay.fullscreen.modal {
margin-top: -@scrollingMargin !important;
}
}
}
/*******************************
States
*******************************/
.ui.loading.modal {
display: block;
visibility: hidden;
z-index: @loadingZIndex;
}
.ui.active.modal {
display: block;
}
/*******************************
Variations
*******************************/
& when (@variationModalAligned) {
/*--------------
Aligned
---------------*/
.modals.dimmer .ui.top.aligned.modal {
top: @topAlignedMargin;
}
.modals.dimmer .ui.bottom.aligned.modal {
bottom: @bottomAlignedMargin;
}
@media only screen and (max-width : @largestMobileScreen) {
.modals.dimmer .ui.top.aligned.modal {
top: @mobileTopAlignedMargin;
}
.modals.dimmer .ui.bottom.aligned.modal {
bottom: @mobileBottomAlignedMargin;
}
}
}
& when (@variationModalScrolling) {
/*--------------
Scrolling
---------------*/
/* Scrolling Dimmer */
.scrolling.dimmable.dimmed {
overflow: hidden;
}
.scrolling.dimmable > .dimmer {
justify-content: flex-start;
position: fixed;
}
.scrolling.dimmable.dimmed > .dimmer {
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.modals.dimmer .ui.scrolling.modal:not(.fullscreen) {
margin: @scrollingMargin auto;
}
/* Fix for Firefox, Edge, IE11 */
.modals.dimmer .ui.scrolling.modal:not([class*="overlay fullscreen"])::after {
content:'\00A0';
position: absolute;
height: @scrollingMargin;
}
/* Undetached Scrolling */
.scrolling.undetached.dimmable.dimmed {
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.scrolling.undetached.dimmable.dimmed > .dimmer {
overflow: hidden;
}
.scrolling.undetached.dimmable .ui.scrolling.modal:not(.fullscreen) {
position: absolute;
left: 50%;
}
/* Scrolling Content */
.ui.modal > .scrolling.content {
max-height: @scrollingContentMaxHeight;
overflow: auto;
}
}
& when (@variationModalOverlay) {
.ui.overlay.fullscreen.modal > .content {
min-height: @overlayFullscreenScrollingContentMaxHeight;
}
.ui.overlay.fullscreen.modal > .scrolling.content {
max-height: @overlayFullscreenScrollingContentMaxHeight;
}
}
& when (@variationModalFullscreen) or (@variationModalOverlay) or (@variationModalCloseInside) {
/*--------------
Full Screen
---------------*/
.ui.fullscreen.modal {
width: @fullScreenWidth;
left: @fullScreenOffset;
margin: @fullScreenMargin;
}
& when (@variationModalOverlay) {
.ui.overlay.fullscreen.modal {
width: 100%;
left: 0;
margin: 0 auto;
top: 0;
border-radius:0;
}
}
.ui.modal > .close.inside + .header,
.ui.fullscreen.modal > .header {
padding-right: @closeHitbox;
}
.ui.modal > .close.inside,
.ui.fullscreen.modal > .close {
top: @innerCloseTop;
right: @innerCloseRight;
color: @innerCloseColor;
}
& when (@variationModalBasic) {
.ui.basic.fullscreen.modal > .close {
color: @basicInnerCloseColor;
}
}
}
/*--------------
Size
---------------*/
.ui.modal {
font-size: @medium;
}
& when not (@variationModalSizes = false) {
each(@variationModalSizes, {
@hs: @{value}HeaderSize;
@mw: @{value}MobileWidth;
@mm: @{value}MobileMargin;
@tw: @{value}TabletWidth;
@tm: @{value}TabletMargin;
@cw: @{value}ComputerWidth;
@cm: @{value}ComputerMargin;
@lw: @{value}LargeMonitorWidth;
@lm: @{value}LargeMonitorMargin;
@ww: @{value}WidescreenMonitorWidth;
@wm: @{value}WidescreenMonitorMargin;
.ui.@{value}.modal > .header:not(.ui) {
font-size: @@hs;
}
@media only screen and (max-width : @largestMobileScreen) {
.ui.@{value}.modal {
width: @@mw;
margin: @@mm;
}
}
@media only screen and (min-width : @tabletBreakpoint) {
.ui.@{value}.modal {
width: @@tw;
margin: @@tm;
}
}
@media only screen and (min-width : @computerBreakpoint) {
.ui.@{value}.modal {
width: @@cw;
margin: @@cm;
}
}
@media only screen and (min-width : @largeMonitorBreakpoint) {
.ui.@{value}.modal {
width: @@lw;
margin: @@lm;
}
}
@media only screen and (min-width : @widescreenMonitorBreakpoint) {
.ui.@{value}.modal {
width: @@ww;
margin: @@wm;
}
}
})
}
& when (@variationModalInverted) {
/*****************************
Inverted
*******************************/
.ui.inverted.modal {
background: @invertedBackground;
}
.ui.inverted.modal > .header,
.ui.inverted.modal > .content {
background: @invertedBackground;
color: @invertedHeaderColor;
}
.ui.inverted.modal > .actions {
background: @invertedActionBackground;
border-top: @invertedActionBorder;
color: @invertedActionColor;
}
.ui.inverted.dimmer > .modal > .close {
color: @invertedDimmerCloseColor;
}
@media only screen and (max-width: @largestTabletScreen) {
.ui.dimmer .inverted.modal > .close {
color: @invertedCloseColor;
}
}
& when (@variationModalFullscreen) or (@variationModalCloseInside) {
.ui.inverted.modal > .close.inside,
.ui.inverted.fullscreen.modal > .close {
color: @invertedCloseColor;
}
}
}
.loadUIOverrides();

View file

@ -0,0 +1,492 @@
/*!
* # Fomantic-UI - Nag
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
'use strict';
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.fn.nag = 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 = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.nag.settings, parameters)
: $.extend({}, $.fn.nag.settings),
selector = settings.selector,
error = settings.error,
namespace = settings.namespace,
eventNamespace = '.' + namespace,
moduleNamespace = namespace + '-module',
$module = $(this),
$context = (settings.context)
? $(settings.context)
: $('body'),
element = this,
instance = $module.data(moduleNamespace),
module
;
module = {
initialize: function() {
module.verbose('Initializing element');
$module
.on('click' + eventNamespace, selector.close, module.dismiss)
.data(moduleNamespace, module)
;
if(settings.detachable && $module.parent()[0] !== $context[0]) {
$module
.detach()
.prependTo($context)
;
}
if(settings.displayTime > 0) {
setTimeout(module.hide, settings.displayTime);
}
module.show();
},
destroy: function() {
module.verbose('Destroying instance');
$module
.removeData(moduleNamespace)
.off(eventNamespace)
;
},
show: function() {
if( module.should.show() && !$module.is(':visible') ) {
module.debug('Showing nag', settings.animation.show);
if(settings.animation.show == 'fade') {
$module
.fadeIn(settings.duration, settings.easing)
;
}
else {
$module
.slideDown(settings.duration, settings.easing)
;
}
}
},
hide: function() {
module.debug('Showing nag', settings.animation.hide);
if(settings.animation.show == 'fade') {
$module
.fadeIn(settings.duration, settings.easing)
;
}
else {
$module
.slideUp(settings.duration, settings.easing)
;
}
},
onHide: function() {
module.debug('Removing nag', settings.animation.hide);
$module.remove();
if (settings.onHide) {
settings.onHide();
}
},
dismiss: function(event) {
if(settings.storageMethod) {
module.storage.set(settings.key, settings.value);
}
module.hide();
event.stopImmediatePropagation();
event.preventDefault();
},
should: {
show: function() {
if(settings.persist) {
module.debug('Persistent nag is set, can show nag');
return true;
}
if( module.storage.get(settings.key) != settings.value.toString() ) {
module.debug('Stored value is not set, can show nag', module.storage.get(settings.key));
return true;
}
module.debug('Stored value is set, cannot show nag', module.storage.get(settings.key));
return false;
}
},
get: {
storageOptions: function() {
var
options = {}
;
if(settings.expires) {
options.expires = settings.expires;
}
if(settings.domain) {
options.domain = settings.domain;
}
if(settings.path) {
options.path = settings.path;
}
return options;
}
},
clear: function() {
module.storage.remove(settings.key);
},
storage: {
set: function(key, value) {
var
options = module.get.storageOptions()
;
if(settings.storageMethod == 'localstorage' && window.localStorage !== undefined) {
window.localStorage.setItem(key, value);
module.debug('Value stored using local storage', key, value);
}
else if(settings.storageMethod == 'sessionstorage' && window.sessionStorage !== undefined) {
window.sessionStorage.setItem(key, value);
module.debug('Value stored using session storage', key, value);
}
else if($.cookie !== undefined) {
$.cookie(key, value, options);
module.debug('Value stored using cookie', key, value, options);
}
else {
module.error(error.noCookieStorage);
return;
}
},
get: function(key, value) {
var
storedValue
;
if(settings.storageMethod == 'localstorage' && window.localStorage !== undefined) {
storedValue = window.localStorage.getItem(key);
}
else if(settings.storageMethod == 'sessionstorage' && window.sessionStorage !== undefined) {
storedValue = window.sessionStorage.getItem(key);
}
// get by cookie
else if($.cookie !== undefined) {
storedValue = $.cookie(key);
}
else {
module.error(error.noCookieStorage);
}
if(storedValue == 'undefined' || storedValue == 'null' || storedValue === undefined || storedValue === null) {
storedValue = undefined;
}
return storedValue;
},
remove: function(key) {
var
options = module.get.storageOptions()
;
if(settings.storageMethod == 'localstorage' && window.localStorage !== undefined) {
window.localStorage.removeItem(key);
}
else if(settings.storageMethod == 'sessionstorage' && window.sessionStorage !== undefined) {
window.sessionStorage.removeItem(key);
}
// store by cookie
else if($.cookie !== undefined) {
$.removeCookie(key, options);
}
else {
module.error(error.noStorage);
}
}
},
setting: function(name, value) {
module.debug('Changing setting', name, value);
if( $.isPlainObject(name) ) {
$.extend(true, settings, name);
}
else if(value !== undefined) {
if($.isPlainObject(settings[name])) {
$.extend(true, settings[name], value);
}
else {
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.silent && 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.silent && 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() {
if(!settings.silent) {
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(Array.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.nag.settings = {
name : 'Nag',
silent : false,
debug : false,
verbose : false,
performance : true,
namespace : 'Nag',
// allows cookie to be overridden
persist : false,
// set to zero to require manually dismissal, otherwise hides on its own
displayTime : 0,
animation : {
show : 'slide',
hide : 'slide'
},
context : false,
detachable : false,
expires : 30,
domain : false,
path : '/',
// type of storage to use
storageMethod : 'cookie',
// value to store in dismissed localstorage/cookie
key : 'nag',
value : 'dismiss',
error: {
noCookieStorage : '$.cookie is not included. A storage solution is required.',
noStorage : 'Neither $.cookie or store is defined. A storage solution is required for storing state',
method : 'The method you called is not defined.'
},
className : {
bottom : 'bottom',
fixed : 'fixed'
},
selector : {
close : '.close.icon'
},
speed : 500,
easing : 'easeOutQuad',
onHide: function() {}
};
// Adds easing
$.extend( $.easing, {
easeOutQuad: function (x, t, b, c, d) {
return -c *(t/=d)*(t-2) + b;
}
});
})( jQuery, window, document );

View file

@ -0,0 +1,158 @@
/*!
* # Fomantic-UI - Nag
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'nag';
@import (multiple) '../../theme.config';
/*******************************
Nag
*******************************/
.ui.nag {
display: none;
opacity: @opacity;
position: @position;
top: @top;
left: 0;
z-index: @zIndex;
min-height: @minHeight;
width: @width;
margin: @margin;
padding: @padding;
background: @background;
box-shadow: @boxShadow;
font-size: @fontSize;
text-align: @textAlign;
color: @color;
border-radius: @topBorderRadius;
transition: @transition;
}
a.ui.nag {
cursor: pointer;
}
.ui.nag > .title {
display: inline-block;
margin: @titleMargin;
color: @titleColor;
}
.ui.nag > .close.icon {
cursor: pointer;
opacity: @closeOpacity;
position: absolute;
top: @closeTop;
right: @closeRight;
font-size: @closeSize;
margin: @closeMargin;
color: @closeColor;
transition: @closeTransition;
}
/*******************************
States
*******************************/
/* Hover */
.ui.nag:hover {
background: @nagHoverBackground;
opacity: @nagHoverOpacity;
}
.ui.nag .close:hover {
opacity: @closeHoverOpacity;
}
/*******************************
Variations
*******************************/
/*--------------
Static
---------------*/
.ui.overlay.nag {
position: absolute;
display: block;
}
/*--------------
Fixed
---------------*/
.ui.fixed.nag {
position: fixed;
}
/*--------------
Bottom
---------------*/
.ui.bottom.nags,
.ui.bottom.nag {
border-radius: @bottomBorderRadius;
top: auto;
bottom: @bottom;
}
/*--------------
White
---------------*/
.ui.inverted.nags .nag,
.ui.inverted.nag {
background-color: @invertedBackground;
color: @darkTextColor;
}
.ui.inverted.nags .nag .close,
.ui.inverted.nags .nag .title,
.ui.inverted.nag .close,
.ui.inverted.nag .title {
color: @lightTextColor;
}
/*******************************
Groups
*******************************/
.ui.nags .nag {
border-radius: @groupedBorderRadius !important;
}
.ui.nags .nag:last-child {
border-radius: @topBorderRadius;
}
.ui.bottom.nags .nag:last-child {
border-radius: @bottomBorderRadius;
}
.loadUIOverrides();

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,839 @@
/*!
* # Fomantic-UI - Popup
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'popup';
@import (multiple) '../../theme.config';
/*******************************
Popup
*******************************/
.ui.popup {
display: none;
position: absolute;
top: 0;
right: 0;
/* Fixes content being squished when inline (moz only) */
min-width: min-content;
z-index: @zIndex;
border: @border;
line-height: @lineHeight;
max-width: @maxWidth;
background: @background;
padding: @verticalPadding @horizontalPadding;
font-weight: @fontWeight;
font-style: @fontStyle;
color: @color;
border-radius: @borderRadius;
box-shadow: @boxShadow;
}
.ui.popup > .header {
padding: 0;
font-family: @headerFont;
font-size: @headerFontSize;
line-height: @headerLineHeight;
font-weight: @headerFontWeight;
}
.ui.popup > .header + .content {
padding-top: @headerDistance;
}
.ui.popup:before {
position: absolute;
content: '';
width: @arrowSize;
height: @arrowSize;
background: @arrowBackground;
transform: rotate(45deg);
z-index: @arrowZIndex;
box-shadow: @arrowBoxShadow;
}
/*******************************
Types
*******************************/
& when (@variationPopupTooltip) {
/*--------------
Tooltip
---------------*/
/* Content */
[data-tooltip] {
position: relative;
}
/* Arrow */
[data-tooltip]:before {
pointer-events: none;
position: absolute;
content: '';
font-size: @medium;
width: @arrowSize;
height: @arrowSize;
background: @tooltipArrowBackground;
transform: rotate(45deg);
z-index: @arrowZIndex;
box-shadow: @tooltipArrowBoxShadow;
}
/* Popup */
[data-tooltip]:after {
pointer-events: none;
content: attr(data-tooltip);
position: absolute;
text-transform: none;
text-align: left;
white-space: nowrap;
font-size: @tooltipFontSize;
border: @tooltipBorder;
line-height: @tooltipLineHeight;
max-width: @tooltipMaxWidth;
background: @tooltipBackground;
padding: @tooltipPadding;
font-weight: @tooltipFontWeight;
font-style: @tooltipFontStyle;
color: @tooltipColor;
border-radius: @tooltipBorderRadius;
box-shadow: @tooltipBoxShadow;
z-index: @tooltipZIndex;
}
/* Default Position (Top Center) */
[data-tooltip]:not([data-position]):before {
top: auto;
right: auto;
bottom: 100%;
left: 50%;
background: @tooltipArrowBottomBackground;
margin-left: @tooltipArrowHorizontalOffset;
margin-bottom: -@tooltipArrowVerticalOffset;
}
[data-tooltip]:not([data-position]):after {
left: 50%;
transform: translateX(-50%);
bottom: 100%;
margin-bottom: @tooltipDistanceAway;
}
/* Animation */
[data-tooltip]:before,
[data-tooltip]:after {
pointer-events: none;
visibility: hidden;
opacity: 0;
transition:
transform @tooltipDuration @tooltipEasing,
opacity @tooltipDuration @tooltipEasing
;
}
[data-tooltip]:before {
transform: rotate(45deg) scale(0) !important;
transform-origin: center top;
}
[data-tooltip]:after {
transform-origin: center bottom;
}
[data-tooltip]:hover:before,
[data-tooltip]:hover:after {
visibility: visible;
pointer-events: auto;
opacity: 1;
}
[data-tooltip]:hover:before {
transform: rotate(45deg) scale(1) !important;
}
/* Animation Position */
[data-tooltip]:after,
[data-tooltip][data-position="top center"]:after,
[data-tooltip][data-position="bottom center"]:after {
transform: translateX(-50%) scale(0) !important;
}
[data-tooltip]:hover:after,
[data-tooltip][data-position="bottom center"]:hover:after {
transform: translateX(-50%) scale(1) !important;
}
[data-tooltip][data-position="left center"]:after,
[data-tooltip][data-position="right center"]:after {
transform: translateY(-50%) scale(0) !important;
}
[data-tooltip][data-position="left center"]:hover:after,
[data-tooltip][data-position="right center"]:hover:after {
transform: translateY(-50%) scale(1) !important;
}
[data-tooltip][data-position="top left"]:after,
[data-tooltip][data-position="top right"]:after,
[data-tooltip][data-position="bottom left"]:after,
[data-tooltip][data-position="bottom right"]:after {
transform: scale(0) !important;
}
[data-tooltip][data-position="top left"]:hover:after,
[data-tooltip][data-position="top right"]:hover:after,
[data-tooltip][data-position="bottom left"]:hover:after,
[data-tooltip][data-position="bottom right"]:hover:after {
transform: scale(1) !important;
}
& when (@variationPopupFixed) {
[data-tooltip][data-variation~="fixed"]:after {
white-space: normal;
width: @maxWidth;
}
[data-tooltip][data-variation*="wide fixed"]:after {
width: @wideWidth;
}
[data-tooltip][data-variation*="very wide fixed"]:after {
width: @veryWideWidth;
}
@media only screen and (max-width: @largestMobileScreen) {
[data-tooltip][data-variation~="fixed"]:after {
width: @maxWidth;
}
}
}
& when (@variationPopupInverted) {
/*--------------
Inverted
---------------*/
/* Arrow */
[data-tooltip][data-inverted]:before {
box-shadow: none !important;
}
/* Arrow Position */
[data-tooltip][data-inverted]:before {
background: @invertedArrowBottomBackground;
}
/* Popup */
[data-tooltip][data-inverted]:after {
background: @tooltipInvertedBackground;
color: @tooltipInvertedColor;
border: @tooltipInvertedBorder;
box-shadow: @tooltipInvertedBoxShadow;
}
[data-tooltip][data-inverted]:after .header {
background: @tooltipInvertedHeaderBackground;
color: @tooltipInvertedHeaderColor;
}
}
& when (@variationPopupPosition) {
/*--------------
Position
---------------*/
& when (@variationPopupTop) {
[data-position~="top"][data-tooltip]:before {
background: @arrowBottomBackground;
}
& when (@variationPopupCenter) {
/* Top Center */
[data-position="top center"][data-tooltip]:after {
top: auto;
right: auto;
left: 50%;
bottom: 100%;
transform: translateX(-50%);
margin-bottom: @tooltipDistanceAway;
}
[data-position="top center"][data-tooltip]:before {
top: auto;
right: auto;
bottom: 100%;
left: 50%;
background: @tooltipArrowTopBackground;
margin-left: @tooltipArrowHorizontalOffset;
margin-bottom: -@tooltipArrowVerticalOffset;
}
}
& when (@variationPopupLeft) {
/* Top Left */
[data-position="top left"][data-tooltip]:after {
top: auto;
right: auto;
left: 0;
bottom: 100%;
margin-bottom: @tooltipDistanceAway;
}
[data-position="top left"][data-tooltip]:before {
top: auto;
right: auto;
bottom: 100%;
left: @arrowDistanceFromEdge;
margin-left: @tooltipArrowHorizontalOffset;
margin-bottom: -@tooltipArrowVerticalOffset;
}
}
& when (@variationPopupRight) {
/* Top Right */
[data-position="top right"][data-tooltip]:after {
top: auto;
left: auto;
right: 0;
bottom: 100%;
margin-bottom: @tooltipDistanceAway;
}
[data-position="top right"][data-tooltip]:before {
top: auto;
left: auto;
bottom: 100%;
right: @arrowDistanceFromEdge;
margin-left: @tooltipArrowHorizontalOffset;
margin-bottom: -@tooltipArrowVerticalOffset;
}
}
}
& when (@variationPopupBottom) {
[data-position~="bottom"][data-tooltip]:before {
background: @arrowTopBackground;
box-shadow: @bottomArrowBoxShadow;
}
& when (@variationPopupCenter) {
/* Bottom Center */
[data-position="bottom center"][data-tooltip]:after {
bottom: auto;
right: auto;
left: 50%;
top: 100%;
transform: translateX(-50%);
margin-top: @tooltipDistanceAway;
}
[data-position="bottom center"][data-tooltip]:before {
bottom: auto;
right: auto;
top: 100%;
left: 50%;
margin-left: @tooltipArrowHorizontalOffset;
margin-top: -@tooltipArrowVerticalOffset;
}
}
& when (@variationPopupLeft) {
/* Bottom Left */
[data-position="bottom left"][data-tooltip]:after {
left: 0;
top: 100%;
margin-top: @tooltipDistanceAway;
}
[data-position="bottom left"][data-tooltip]:before {
bottom: auto;
right: auto;
top: 100%;
left: @arrowDistanceFromEdge;
margin-left: @tooltipArrowHorizontalOffset;
margin-top: -@tooltipArrowVerticalOffset;
}
}
& when (@variationPopupRight) {
/* Bottom Right */
[data-position="bottom right"][data-tooltip]:after {
right: 0;
top: 100%;
margin-top: @tooltipDistanceAway;
}
[data-position="bottom right"][data-tooltip]:before {
bottom: auto;
left: auto;
top: 100%;
right: @arrowDistanceFromEdge;
margin-left: @tooltipArrowVerticalOffset;
margin-top: -@tooltipArrowHorizontalOffset;
}
}
}
& when (@variationPopupCenter) {
& when (@variationPopupLeft) {
/* Left Center */
[data-position="left center"][data-tooltip]:after {
right: 100%;
top: 50%;
margin-right: @tooltipDistanceAway;
transform: translateY(-50%);
}
[data-position="left center"][data-tooltip]:before {
right: 100%;
top: 50%;
margin-top: @tooltipArrowVerticalOffset;
margin-right: @tooltipArrowHorizontalOffset;
background: @arrowCenterBackground;
box-shadow: @leftArrowBoxShadow;
}
}
& when (@variationPopupRight) {
/* Right Center */
[data-position="right center"][data-tooltip]:after {
left: 100%;
top: 50%;
margin-left: @tooltipDistanceAway;
transform: translateY(-50%);
}
[data-position="right center"][data-tooltip]:before {
left: 100%;
top: 50%;
margin-top: @tooltipArrowHorizontalOffset;
margin-left: -@tooltipArrowVerticalOffset;
background: @arrowCenterBackground;
box-shadow: @rightArrowBoxShadow;
}
}
}
& when (@variationPopupInverted) {
/* Inverted Arrow Color */
& when (@variationPopupBottom) {
[data-inverted][data-position~="bottom"][data-tooltip]:before {
background: @invertedArrowTopBackground;
box-shadow: @bottomArrowBoxShadow;
}
}
& when (@variationPopupCenter) {
& when (@variationPopupLeft) {
[data-inverted][data-position="left center"][data-tooltip]:before {
background: @invertedArrowCenterBackground;
box-shadow: @leftArrowBoxShadow;
}
}
& when (@variationPopupRight) {
[data-inverted][data-position="right center"][data-tooltip]:before {
background: @invertedArrowCenterBackground;
box-shadow: @rightArrowBoxShadow;
}
}
}
& when (@variationPopupTop) {
[data-inverted][data-position~="top"][data-tooltip]:before {
background: @invertedArrowBottomBackground;
}
}
}
& when (@variationPopupBottom) {
[data-position~="bottom"][data-tooltip]:before {
transform-origin: center bottom;
}
[data-position~="bottom"][data-tooltip]:after {
transform-origin: center top;
}
}
& when (@variationPopupCenter) {
& when (@variationPopupLeft) {
[data-position="left center"][data-tooltip]:before {
transform-origin: top center;
}
[data-position="left center"][data-tooltip]:after {
transform-origin: right center;
}
}
& when (@variationPopupRight) {
[data-position="right center"][data-tooltip]:before {
transform-origin: right center;
}
[data-position="right center"][data-tooltip]:after {
transform-origin: left center;
}
}
}
}
& when (@variationPopupBasic) {
/*--------------
Basic
---------------*/
[data-tooltip][data-variation~="basic"]:before {
display: none;
}
}
}
/*--------------
Spacing
---------------*/
.ui.popup {
margin: 0;
}
& when (@variationPopupTop) {
/* Extending from Top */
.ui.top.popup {
margin: 0 0 @popupDistanceAway;
}
& when (@variationPopupLeft) {
.ui.top.left.popup {
transform-origin: left bottom;
}
}
& when (@variationPopupCenter) {
.ui.top.center.popup {
transform-origin: center bottom;
}
}
& when (@variationPopupRight) {
.ui.top.right.popup {
transform-origin: right bottom;
}
}
}
& when (@variationPopupCenter) {
/* Extending from Vertical Center */
& when (@variationPopupLeft) {
.ui.left.center.popup {
margin: 0 @popupDistanceAway 0 0;
transform-origin: right 50%;
}
}
& when (@variationPopupRight) {
.ui.right.center.popup {
margin: 0 0 0 @popupDistanceAway;
transform-origin: left 50%;
}
}
}
& when (@variationPopupBottom) {
/* Extending from Bottom */
.ui.bottom.popup {
margin: @popupDistanceAway 0 0;
}
& when (@variationPopupLeft) {
.ui.bottom.left.popup {
transform-origin: left top;
}
}
& when (@variationPopupCenter) {
.ui.bottom.center.popup {
transform-origin: center top;
}
}
& when (@variationPopupRight) {
.ui.bottom.right.popup {
transform-origin: right top;
}
}
/*--------------
Pointer
---------------*/
/*--- Below ---*/
.ui.bottom.center.popup:before {
margin-left: @arrowOffset;
top: @arrowOffset;
left: 50%;
right: auto;
bottom: auto;
box-shadow: @bottomArrowBoxShadow;
}
.ui.bottom.left.popup {
margin-left: @boxArrowOffset;
}
/*rtl:rename*/
.ui.bottom.left.popup:before {
top: @arrowOffset;
left: @arrowDistanceFromEdge;
right: auto;
bottom: auto;
margin-left: 0;
box-shadow: @bottomArrowBoxShadow;
}
.ui.bottom.right.popup {
margin-right: @boxArrowOffset;
}
/*rtl:rename*/
.ui.bottom.right.popup:before {
top: @arrowOffset;
right: @arrowDistanceFromEdge;
bottom: auto;
left: auto;
margin-left: 0;
box-shadow: @bottomArrowBoxShadow;
}
}
& when (@variationPopupTop) {
/*--- Above ---*/
& when (@variationPopupCenter) {
.ui.top.center.popup:before {
top: auto;
right: auto;
bottom: @arrowOffset;
left: 50%;
margin-left: @arrowOffset;
}
}
& when (@variationPopupLeft) {
.ui.top.left.popup {
margin-left: @boxArrowOffset;
}
/*rtl:rename*/
.ui.top.left.popup:before {
bottom: @arrowOffset;
left: @arrowDistanceFromEdge;
top: auto;
right: auto;
margin-left: 0;
}
}
& when (@variationPopupRight) {
.ui.top.right.popup {
margin-right: @boxArrowOffset;
}
/*rtl:rename*/
.ui.top.right.popup:before {
bottom: @arrowOffset;
right: @arrowDistanceFromEdge;
top: auto;
left: auto;
margin-left: 0;
}
}
}
& when (@variationPopupCenter) {
/*--- Left Center ---*/
/*rtl:rename*/
& when (@variationPopupLeft) {
.ui.left.center.popup:before {
top: 50%;
right: @arrowOffset;
bottom: auto;
left: auto;
margin-top: @arrowOffset;
box-shadow: @leftArrowBoxShadow;
}
}
& when (@variationPopupRight) {
/*--- Right Center ---*/
/*rtl:rename*/
.ui.right.center.popup:before {
top: 50%;
left: @arrowOffset;
bottom: auto;
right: auto;
margin-top: @arrowOffset;
box-shadow: @rightArrowBoxShadow;
}
}
& when (@variationPopupLeft) or (@variationPopupRight) {
.ui.right.center.popup:before,
.ui.left.center.popup:before {
background: @arrowCenterBackground;
}
}
}
& when (@variationPopupBottom) {
/* Arrow Color By Location */
.ui.bottom.popup:before {
background: @arrowTopBackground;
}
}
& when (@variationPopupTop) {
.ui.top.popup:before {
background: @arrowBottomBackground;
}
}
& when (@variationPopupInverted) {
& when (@variationPopupBottom) {
/* Inverted Arrow Color */
.ui.inverted.bottom.popup:before {
background: @invertedArrowTopBackground;
}
}
& when (@variationPopupCenter) {
.ui.inverted.right.center.popup:before,
.ui.inverted.left.center.popup:before {
background: @invertedArrowCenterBackground;
}
}
& when (@variationPopupTop) {
.ui.inverted.top.popup:before {
background: @invertedArrowBottomBackground;
}
}
}
/*******************************
Coupling
*******************************/
/* Immediate Nested Grid */
.ui.popup > .ui.grid:not(.padded) {
width: @nestedGridWidth;
margin: @nestedGridMargin;
}
/*******************************
States
*******************************/
& when (@variationPopupLoading) {
.ui.loading.popup {
display: block;
visibility: hidden;
z-index: @loadingZIndex;
}
}
.ui.animating.popup,
.ui.visible.popup {
display: block;
}
.ui.visible.popup {
transform: translateZ(0);
backface-visibility: hidden;
}
/*******************************
Variations
*******************************/
& when (@variationPopupBasic) {
/*--------------
Basic
---------------*/
.ui.basic.popup:before {
display: none;
}
}
& when (@variationPopupFixed) {
.ui.fixed.popup {
width: @maxWidth;
}
}
& when (@variationPopupWide) {
/*--------------
Wide
---------------*/
.ui.wide.popup {
max-width: @wideWidth;
&.fixed when (@variationPopupFixed) {
width: @wideWidth;
}
}
.ui[class*="very wide"].popup {
max-width: @veryWideWidth;
&.fixed when (@variationPopupFixed) {
width: @veryWideWidth;
}
}
@media only screen and (max-width: @largestMobileScreen) {
.ui.wide.popup,
.ui[class*="very wide"].popup {
max-width: @maxWidth;
&.fixed when (@variationPopupFixed) {
width:@maxWidth;
}
}
}
}
& when (@variationPopupFluid) {
/*--------------
Fluid
---------------*/
.ui.fluid.popup {
width: 100%;
max-width: none;
}
}
& when (@variationPopupInverted) {
/*--------------
Colors
---------------*/
/* Inverted colors */
.ui.inverted.popup {
background: @invertedBackground;
color: @invertedColor;
border: @invertedBorder;
box-shadow: @invertedBoxShadow;
}
.ui.inverted.popup .header {
background-color: @invertedHeaderBackground;
color: @invertedHeaderColor;
}
.ui.inverted.popup:before {
background-color: @invertedArrowColor;
box-shadow: none !important;
}
}
& when (@variationPopupFlowing) {
/*--------------
Flowing
---------------*/
.ui.flowing.popup {
max-width: none;
}
}
/*--------------
Sizes
---------------*/
.ui.popup {
font-size: @medium;
}
& when not (@variationPopupSizes = false) {
each(@variationPopupSizes, {
@s: @@value;
.ui.@{value}.popup {
font-size: @s;
}
& when (@variationPopupTooltip) {
[data-tooltip][data-variation~="@{value}"]:before,
[data-tooltip][data-variation~="@{value}"]:after {
font-size: @s;
}
}
})
}
.loadUIOverrides();

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,618 @@
/*!
* # Fomantic-UI - Progress Bar
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'progress';
@import (multiple) '../../theme.config';
/*******************************
Progress
*******************************/
.ui.progress {
position: relative;
display: block;
max-width: 100%;
border: @border;
margin: @margin;
box-shadow: @boxShadow;
background: @background;
padding: @padding;
border-radius: @borderRadius;
}
.ui.progress:first-child {
margin: @firstMargin;
}
.ui.progress:last-child {
margin: @lastMargin;
}
/*******************************
Content
*******************************/
/* Activity Bar */
.ui.progress .bar {
display: block;
line-height: 1;
position: @barPosition;
width: @barInitialWidth;
min-width: @barMinWidth;
background: @barBackground;
border-radius: @barBorderRadius;
transition: @barTransition;
overflow: hidden;
}
.ui.ui.ui.progress:not([data-percent]):not(.indeterminate) .bar,
.ui.ui.ui.progress[data-percent="0"]:not(.indeterminate) .bar {
background:transparent;
}
.ui.progress[data-percent="0"] .bar .progress {
color: @textColor;
}
& when (@variationProgressInverted) {
.ui.inverted.progress[data-percent="0"] .bar .progress {
color: @invertedTextColor;
}
}
/* Percent Complete */
.ui.progress .bar > .progress {
white-space: nowrap;
position: @progressPosition;
width: @progressWidth;
font-size: @progressSize;
top: @progressTop;
right: @progressRight;
left: @progressLeft;
bottom: @progressBottom;
color: @progressColor;
text-shadow: @progressTextShadow;
margin-top: @progressOffset;
font-weight: @progressFontWeight;
text-align: @progressTextAlign;
}
/* Label */
.ui.progress > .label {
position: absolute;
width: @labelWidth;
font-size: @labelSize;
top: @labelTop;
right: @labelRight;
left: @labelLeft;
bottom: @labelBottom;
color: @labelColor;
font-weight: @labelFontWeight;
text-shadow: @labelTextShadow;
margin-top: @labelOffset;
text-align: @labelTextAlign;
transition: @labelTransition;
}
/*******************************
Types
*******************************/
& when (@variationProgressIndicating) {
/* Indicating */
.ui.indicating.progress[data-percent^="1"] .bar,
.ui.indicating.progress[data-percent^="2"] .bar {
background-color: @indicatingFirstColor;
}
.ui.indicating.progress[data-percent^="3"] .bar {
background-color: @indicatingSecondColor;
}
.ui.indicating.progress[data-percent^="4"] .bar,
.ui.indicating.progress[data-percent^="5"] .bar {
background-color: @indicatingThirdColor;
}
.ui.indicating.progress[data-percent^="6"] .bar {
background-color: @indicatingFourthColor;
}
.ui.indicating.progress[data-percent^="7"] .bar,
.ui.indicating.progress[data-percent^="8"] .bar {
background-color: @indicatingFifthColor;
}
.ui.indicating.progress[data-percent^="9"] .bar,
.ui.indicating.progress[data-percent^="100"] .bar {
background-color: @indicatingSixthColor;
}
/* Indicating Label */
.ui.indicating.progress[data-percent^="1"] .label,
.ui.indicating.progress[data-percent^="2"] .label {
color: @indicatingFirstLabelColor;
}
.ui.indicating.progress[data-percent^="3"] .label {
color: @indicatingSecondLabelColor;
}
.ui.indicating.progress[data-percent^="4"] .label,
.ui.indicating.progress[data-percent^="5"] .label {
color: @indicatingThirdLabelColor;
}
.ui.indicating.progress[data-percent^="6"] .label {
color: @indicatingFourthLabelColor;
}
.ui.indicating.progress[data-percent^="7"] .label,
.ui.indicating.progress[data-percent^="8"] .label {
color: @indicatingFifthLabelColor;
}
.ui.indicating.progress[data-percent^="9"] .label,
.ui.indicating.progress[data-percent^="100"] .label {
color: @indicatingSixthLabelColor;
}
& when (@variationProgressInverted) {
/* Inverted Indicating Label */
.ui.inverted.indicating.progress[data-percent^="1"] .label,
.ui.inverted.indicating.progress[data-percent^="2"] .label {
color: @invertedIndicatingFirstLabelColor;
}
.ui.inverted.indicating.progress[data-percent^="3"] .label {
color: @invertedIndicatingSecondLabelColor;
}
.ui.inverted.indicating.progress[data-percent^="4"] .label,
.ui.inverted.indicating.progress[data-percent^="5"] .label {
color: @invertedIndicatingThirdLabelColor;
}
.ui.inverted.indicating.progress[data-percent^="6"] .label {
color: @invertedIndicatingFourthLabelColor;
}
.ui.inverted.indicating.progress[data-percent^="7"] .label,
.ui.inverted.indicating.progress[data-percent^="8"] .label {
color: @invertedIndicatingFifthLabelColor;
}
.ui.inverted.indicating.progress[data-percent^="9"] .label,
.ui.inverted.indicating.progress[data-percent^="100"] .label {
color: @invertedIndicatingSixthLabelColor;
}
}
/* Single Digits */
.ui.indicating.progress[data-percent="1"] .bar, .ui.indicating.progress[data-percent^="1."] .bar,
.ui.indicating.progress[data-percent="2"] .bar, .ui.indicating.progress[data-percent^="2."] .bar,
.ui.indicating.progress[data-percent="3"] .bar, .ui.indicating.progress[data-percent^="3."] .bar,
.ui.indicating.progress[data-percent="4"] .bar, .ui.indicating.progress[data-percent^="4."] .bar,
.ui.indicating.progress[data-percent="5"] .bar, .ui.indicating.progress[data-percent^="5."] .bar,
.ui.indicating.progress[data-percent="6"] .bar, .ui.indicating.progress[data-percent^="6."] .bar,
.ui.indicating.progress[data-percent="7"] .bar, .ui.indicating.progress[data-percent^="7."] .bar,
.ui.indicating.progress[data-percent="8"] .bar, .ui.indicating.progress[data-percent^="8."] .bar,
.ui.indicating.progress[data-percent="9"] .bar, .ui.indicating.progress[data-percent^="9."] .bar {
background-color: @indicatingFirstColor;
}
.ui.indicating.progress[data-percent="0"] .label, .ui.indicating.progress[data-percent^="0."] .label,
.ui.indicating.progress[data-percent="1"] .label, .ui.indicating.progress[data-percent^="1."] .label,
.ui.indicating.progress[data-percent="2"] .label, .ui.indicating.progress[data-percent^="2."] .label,
.ui.indicating.progress[data-percent="3"] .label, .ui.indicating.progress[data-percent^="3."] .label,
.ui.indicating.progress[data-percent="4"] .label, .ui.indicating.progress[data-percent^="4."] .label,
.ui.indicating.progress[data-percent="5"] .label, .ui.indicating.progress[data-percent^="5."] .label,
.ui.indicating.progress[data-percent="6"] .label, .ui.indicating.progress[data-percent^="6."] .label,
.ui.indicating.progress[data-percent="7"] .label, .ui.indicating.progress[data-percent^="7."] .label,
.ui.indicating.progress[data-percent="8"] .label, .ui.indicating.progress[data-percent^="8."] .label,
.ui.indicating.progress[data-percent="9"] .label, .ui.indicating.progress[data-percent^="9."] .label {
color: @indicatingFirstLabelColor;
}
& when (@variationProgressInverted) {
.ui.inverted.indicating.progress[data-percent="0"] .label, .ui.inverted.indicating.progress[data-percent^="0."] .label,
.ui.inverted.indicating.progress[data-percent="1"] .label, .ui.inverted.indicating.progress[data-percent^="1."] .label,
.ui.inverted.indicating.progress[data-percent="2"] .label, .ui.inverted.indicating.progress[data-percent^="2."] .label,
.ui.inverted.indicating.progress[data-percent="3"] .label, .ui.inverted.indicating.progress[data-percent^="3."] .label,
.ui.inverted.indicating.progress[data-percent="4"] .label, .ui.inverted.indicating.progress[data-percent^="4."] .label,
.ui.inverted.indicating.progress[data-percent="5"] .label, .ui.inverted.indicating.progress[data-percent^="5."] .label,
.ui.inverted.indicating.progress[data-percent="6"] .label, .ui.inverted.indicating.progress[data-percent^="6."] .label,
.ui.inverted.indicating.progress[data-percent="7"] .label, .ui.inverted.indicating.progress[data-percent^="7."] .label,
.ui.inverted.indicating.progress[data-percent="8"] .label, .ui.inverted.indicating.progress[data-percent^="8."] .label,
.ui.inverted.indicating.progress[data-percent="9"] .label, .ui.inverted.indicating.progress[data-percent^="9."] .label {
color: @invertedIndicatingFirstLabelColor;
}
}
/* Indicating Success */
.ui.ui.indicating.progress.success .label {
color: @successHeaderColor;
}
}
& when (@variationProgressMultiple) {
/* Multiple */
.ui.multiple.progress {
display: flex;
}
}
/*******************************
States
*******************************/
& when (@variationProgressSuccess) {
/*--------------
Success
---------------*/
.ui.ui.progress.success .bar {
background-color: @successColor;
}
.ui.ui.progress.success .bar,
.ui.ui.progress.success .bar::after {
animation: none;
}
.ui.progress.success > .label {
color: @successHeaderColor;
}
}
& when (@variationProgressWarning) {
/*--------------
Warning
---------------*/
.ui.ui.progress.warning .bar {
background-color: @warningColor;
}
.ui.ui.progress.warning .bar,
.ui.ui.progress.warning .bar::after {
animation: none;
}
.ui.progress.warning > .label {
color: @warningHeaderColor;
}
}
& when (@variationProgressError) {
/*--------------
Error
---------------*/
.ui.ui.progress.error .bar {
background-color: @errorColor;
}
.ui.ui.progress.error .bar,
.ui.ui.progress.error .bar::after {
animation: none;
}
.ui.progress.error > .label {
color: @errorHeaderColor;
}
}
& when (@variationProgressActive) {
/*--------------
Active
---------------*/
.ui.active.progress .bar {
position: relative;
min-width: @activeMinWidth;
}
.ui.active.progress .bar::after {
content: '';
opacity: 0;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: @activePulseColor;
border-radius: @barBorderRadius;
animation: progress-active @activePulseDuration @defaultEasing infinite;
transform-origin: left;
}
@keyframes progress-active {
0% {
opacity: @activePulseMaxOpacity;
transform: scale(0, 1);
}
100% {
opacity: 0;
transform: scale(1);
}
}
}
& when (@variationProgressDisabled) {
/*--------------
Disabled
---------------*/
.ui.disabled.progress {
opacity: 0.35;
}
.ui.ui.disabled.progress .bar,
.ui.ui.disabled.progress .bar::after {
animation: none;
}
}
/*******************************
Variations
*******************************/
& when (@variationProgressInverted) {
/*--------------
Inverted
---------------*/
.ui.inverted.progress {
background: @invertedBackground;
border: @invertedBorder;
}
.ui.inverted.progress .bar {
background: @invertedBarBackground;
}
.ui.inverted.progress .bar > .progress {
color: @invertedProgressColor;
}
.ui.inverted.progress > .label {
color: @invertedLabelColor;
}
& when (@variationProgressSuccess) {
.ui.inverted.progress.success > .label {
color: @successColor;
}
}
& when (@variationProgressWarning) {
.ui.inverted.progress.warning > .label {
color: @warningColor;
}
}
& when (@variationProgressError) {
.ui.inverted.progress.error > .label {
color: @errorColor;
}
}
}
& when (@variationProgressAttached) {
/*--------------
Attached
---------------*/
/* bottom attached */
.ui.progress.attached {
background: @attachedBackground;
position: relative;
border: none;
margin: 0;
}
.ui.progress.attached,
.ui.progress.attached .bar {
display: block;
height: @attachedHeight;
padding: 0;
overflow: hidden;
border-radius: 0 0 @attachedBorderRadius @attachedBorderRadius;
}
.ui.progress.attached .bar {
border-radius: 0;
}
/* top attached */
.ui.progress.top.attached,
.ui.progress.top.attached .bar {
top: 0;
border-radius: @attachedBorderRadius @attachedBorderRadius 0 0;
}
.ui.progress.top.attached .bar {
border-radius: 0;
}
/* Coupling */
.ui.segment > .ui.attached.progress,
.ui.card > .ui.attached.progress {
position: absolute;
top: auto;
left: 0;
bottom: 100%;
width: 100%;
}
.ui.segment > .ui.bottom.attached.progress,
.ui.card > .ui.bottom.attached.progress {
top: 100%;
bottom: auto;
}
}
/*--------------
Colors
---------------*/
each(@colors, {
@color: replace(@key, '@', '');
@c: @colors[@@color][color];
@l: @colors[@@color][light];
.ui.indeterminate.@{color}.progress .bar::before,
.ui.@{color}.progress .bar,
.ui.progress .@{color}.bar {
background-color: @c;
}
& when (@variationProgressInverted) {
.ui.inverted.indeterminate.@{color}.progress .bar::before,
.ui.@{color}.inverted.progress .bar,
.ui.inverted.progress .@{color}.bar {
background-color: @l;
}
}
})
/*--------------
Sizes
---------------*/
.ui.progress {
font-size: @medium;
}
.ui.progress .bar {
height: @barHeight;
}
& when not (@variationProgressSizes = false) {
each(@variationProgressSizes, {
@h: @{value}BarHeight;
@s: @@value;
.ui.@{value}.progress {
font-size: @s;
}
.ui.@{value}.progress .bar {
height: @@h;
}
})
}
& when (@variationProgressIndeterminate) {
/*---------------
Indeterminate
----------------*/
.ui.indeterminate.progress .bar {
width: 100%;
}
.ui.indeterminate.progress .bar .progress,
.ui.progress .bar .centered.progress {
text-align: center;
position: relative;
}
.ui.indeterminate.progress .bar::before {
content: '';
position: absolute;
top: 0;
bottom: 0;
border-radius: @barBorderRadius;
animation: progress-pulsating @indeterminatePulseDuration @defaultEasing infinite;
transform-origin: center;
width: 100%;
}
& when (@variationProgressSpeeds) {
.ui.slow.indeterminate.progress .bar::before {
animation-duration: @indeterminatePulseDurationSlow;
}
.ui.fast.indeterminate.progress .bar::before {
animation-duration: @indeterminatePulseDurationFast;
}
}
& when (@variationProgressSwinging) {
.ui.swinging.indeterminate.progress .bar::before {
transform-origin: left;
animation-name: progress-swinging;
}
}
& when (@variationProgressSliding) {
.ui.sliding.indeterminate.progress .bar::before {
transform-origin: left;
animation-name: progress-sliding;
}
}
& when (@variationProgressFilling) {
.ui.filling.indeterminate.progress .bar::before {
animation-name: progress-filling;
}
}
.ui.indeterminate.progress:not(.sliding):not(.filling):not(.swinging) .bar::before {
background: @indeterminatePulseColor;
}
& when (@variationProgressSliding) or (@variationProgressSwinging) or (@variationProgressFilling) {
.ui.sliding.indeterminate.progress .bar,
.ui.swinging.indeterminate.progress .bar,
.ui.filling.indeterminate.progress .bar {
background: @background;
}
& when (@variationProgressSliding) or (@variationProgressSwinging) {
.ui.sliding.indeterminate.progress .bar .progress,
.ui.swinging.indeterminate.progress .bar .progress {
color: @invertedProgressColor;
}
}
& when (@variationProgressInverted) {
.ui.inverted.sliding.indeterminate.progress .bar,
.ui.inverted.swinging.indeterminate.progress .bar,
.ui.inverted.filling.indeterminate.progress .bar {
background: @invertedBackground;
}
& when (@variationProgressSliding) or (@variationProgressSwinging) {
.ui.inverted.sliding.indeterminate.progress .bar .progress,
.ui.inverted.swinging.indeterminate.progress .bar .progress {
color: @progressColor;
}
}
}
& when (@variationProgressSwinging) {
@keyframes progress-swinging {
0%, 100% {
width:10%;
left:-25%;
}
25%, 65% {
width:70%;
}
50% {
width: 10%;
left:100%;
}
}
}
& when (@variationProgressSliding) {
@keyframes progress-sliding {
0% {
width:10%;
left:-25%;
}
50% {
width:70%;
}
100% {
width:10%;
left:100%;
}
}
}
& when (@variationProgressFilling) {
@keyframes progress-filling {
0% {
transform: scale(0,1);
}
80% {
transform: scale(1);
opacity:1;
}
100% {
opacity:0;
}
}
}
}
@keyframes progress-pulsating {
0% {
transform: scale(0,1);
opacity:0.7;
}
100% {
transform: scale(1);
opacity:0;
}
}
}
.loadUIOverrides();

View file

@ -0,0 +1,554 @@
/*!
* # Fomantic-UI - Rating
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
'use strict';
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.fn.rating = 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 = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.rating.settings, parameters)
: $.extend({}, $.fn.rating.settings),
namespace = settings.namespace,
className = settings.className,
metadata = settings.metadata,
selector = settings.selector,
cssVars = settings.cssVars,
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
element = this,
instance = $(this).data(moduleNamespace),
$module = $(this),
$icon = $module.find(selector.icon),
initialLoad,
module
;
module = {
initialize: function() {
module.verbose('Initializing rating module', settings);
if($icon.length === 0) {
module.setup.layout();
}
if(settings.interactive && !module.is.disabled()) {
module.enable();
}
else {
module.disable();
}
module.set.initialLoad();
module.set.rating( module.get.initialRating() );
module.remove.initialLoad();
module.instantiate();
},
instantiate: function() {
module.verbose('Instantiating module', settings);
instance = module;
$module
.data(moduleNamespace, module)
;
},
destroy: function() {
module.verbose('Destroying previous instance', instance);
module.remove.events();
$module
.removeData(moduleNamespace)
;
},
refresh: function() {
$icon = $module.find(selector.icon);
},
setup: {
layout: function() {
var
maxRating = module.get.maxRating(),
icon = module.get.icon(),
html = $.fn.rating.settings.templates.icon(maxRating, icon)
;
module.debug('Generating icon html dynamically');
$module
.html(html)
;
module.refresh();
}
},
event: {
mouseenter: function() {
var
$activeIcon = $(this)
;
$activeIcon
.nextAll()
.removeClass(className.selected)
;
$module
.addClass(className.selected)
;
$activeIcon
.addClass(className.selected)
.prevAll()
.addClass(className.selected)
;
},
mouseleave: function() {
$module
.removeClass(className.selected)
;
$icon
.removeClass(className.selected)
;
},
click: function() {
var
$activeIcon = $(this),
currentRating = module.get.rating(),
rating = $icon.index($activeIcon) + 1,
canClear = (settings.clearable == 'auto')
? ($icon.length === 1)
: settings.clearable
;
if(canClear && currentRating == rating) {
module.clearRating();
}
else {
module.set.rating( rating );
}
}
},
clearRating: function() {
module.debug('Clearing current rating');
module.set.rating(0);
},
bind: {
events: function() {
module.verbose('Binding events');
$module
.on('mouseenter' + eventNamespace, selector.icon, module.event.mouseenter)
.on('mouseleave' + eventNamespace, selector.icon, module.event.mouseleave)
.on('click' + eventNamespace, selector.icon, module.event.click)
;
}
},
remove: {
events: function() {
module.verbose('Removing events');
$module
.off(eventNamespace)
;
},
initialLoad: function() {
initialLoad = false;
}
},
enable: function() {
module.debug('Setting rating to interactive mode');
module.bind.events();
$module
.removeClass(className.disabled)
;
},
disable: function() {
module.debug('Setting rating to read-only mode');
module.remove.events();
$module
.addClass(className.disabled)
;
},
is: {
initialLoad: function() {
return initialLoad;
},
disabled: function() {
return $module.hasClass(className.disabled);
}
},
get: {
icon: function(){
var icon = $module.data(metadata.icon);
if (icon) {
$module.removeData(metadata.icon);
}
return icon || settings.icon;
},
initialRating: function() {
if($module.data(metadata.rating) !== undefined) {
$module.removeData(metadata.rating);
return $module.data(metadata.rating);
}
return settings.initialRating;
},
maxRating: function() {
if($module.data(metadata.maxRating) !== undefined) {
$module.removeData(metadata.maxRating);
return $module.data(metadata.maxRating);
}
return settings.maxRating;
},
rating: function() {
var
currentRating = $icon.filter('.' + className.active).length
;
module.verbose('Current rating retrieved', currentRating);
return currentRating;
}
},
set: {
rating: function(rating) {
var
ratingIndex = Math.floor(
(rating - 1 >= 0)
? (rating - 1)
: 0
),
$activeIcon = $icon.eq(ratingIndex),
$partialActiveIcon = rating <= 1
? $activeIcon
: $activeIcon.next()
,
filledPercentage = (rating % 1) * 100
;
$module
.removeClass(className.selected)
;
$icon
.removeClass(className.selected)
.removeClass(className.active)
.removeClass(className.partiallyActive)
;
if(rating > 0) {
module.verbose('Setting current rating to', rating);
$activeIcon
.prevAll()
.addBack()
.addClass(className.active)
;
if($activeIcon.next() && rating % 1 !== 0) {
$partialActiveIcon
.addClass(className.partiallyActive)
.addClass(className.active)
;
$partialActiveIcon
.css(cssVars.filledCustomPropName, filledPercentage + '%')
;
if($partialActiveIcon.css('backgroundColor') === 'transparent') {
$partialActiveIcon
.removeClass(className.partiallyActive)
.removeClass(className.active)
;
}
}
}
if(!module.is.initialLoad()) {
settings.onRate.call(element, rating);
}
},
initialLoad: function() {
initialLoad = true;
}
},
setting: function(name, value) {
module.debug('Changing setting', name, value);
if( $.isPlainObject(name) ) {
$.extend(true, settings, name);
}
else if(value !== undefined) {
if($.isPlainObject(settings[name])) {
$.extend(true, settings[name], value);
}
else {
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.silent && 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.silent && 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() {
if(!settings.silent) {
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($allModules.length > 1) {
title += ' ' + '(' + $allModules.length + ')';
}
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 {
return false;
}
});
}
if ( $.isFunction( found ) ) {
response = found.apply(context, passedArguments);
}
else if(found !== undefined) {
response = found;
}
if(Array.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.rating.settings = {
name : 'Rating',
namespace : 'rating',
icon : 'star',
silent : false,
debug : false,
verbose : false,
performance : true,
initialRating : 0,
interactive : true,
maxRating : 4,
clearable : 'auto',
fireOnInit : false,
onRate : function(rating){},
error : {
method : 'The method you called is not defined',
noMaximum : 'No maximum rating specified. Cannot generate HTML automatically'
},
metadata: {
rating : 'rating',
maxRating : 'maxRating',
icon : 'icon'
},
className : {
active : 'active',
disabled : 'disabled',
selected : 'selected',
loading : 'loading',
partiallyActive : 'partial'
},
cssVars : {
filledCustomPropName : '--full'
},
selector : {
icon : '.icon'
},
templates: {
icon: function(maxRating, iconClass) {
var
icon = 1,
html = ''
;
while(icon <= maxRating) {
html += '<i class="'+iconClass+' icon"></i>';
icon++;
}
return html;
}
}
};
})( jQuery, window, document );

View file

@ -0,0 +1,177 @@
/*!
* # Fomantic-UI - Rating
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'rating';
@import (multiple) '../../theme.config';
/*******************************
Rating
*******************************/
.ui.rating {
display: inline-flex;
white-space: @whiteSpace;
vertical-align: @verticalAlign;
}
.ui.rating:last-child {
margin-right: 0;
}
/* Icon */
.ui.rating .icon {
padding: 0;
margin: 0;
text-align: center;
font-weight: @normal;
font-style: normal;
flex: 1 0 auto;
cursor: @iconCursor;
width: @iconWidth;
height: @iconHeight;
transition: @iconTransition;
line-height: 1;
backface-visibility: hidden;
}
/*******************************
Types
*******************************/
/*-------------------
Standard
--------------------*/
/* Inactive Icon */
.ui.rating .icon {
background: @inactiveBackground;
color: @inactiveColor;
}
/* Active Icon */
.ui.rating .active.icon {
background: @activeBackground;
color: @activeColor;
}
/* Partially Active Icon */
.ui.rating .icon.partial.active {
background: linear-gradient(to right, @activeColor 0% var(--full), @inactiveColor var(--full) 100%);
background-clip: text;
color: transparent;
}
/* Selected Icon */
.ui.rating .icon.selected,
.ui.rating .icon.selected.active,
.ui.rating .icon.selected.partial.active {
background: @selectedBackground;
color: @selectedColor;
background-clip: unset;
}
/*--------------
Colors
-------------- */
each(@colors, {
@color: replace(@key, '@', '');
@c: @colors[@@color][color];
@l: @colors[@@color][light];
@h: @colors[@@color][hover];
@lh: @colors[@@color][lightHover];
.ui.@{color}.rating .active.icon {
color: @l;
text-shadow: 0px -@shadowWidth 0px @c,
-@shadowWidth 0px 0px @c,
0px @shadowWidth 0px @c,
@shadowWidth 0px 0px @c;
}
.ui.@{color}.rating .icon.selected,
.ui.@{color}.rating .icon.selected.active,
.ui.@{color}.rating .icon.selected.partial.active {
background: inherit;
color: @lh;
text-shadow: 0px -@shadowWidth 0px @h,
-@shadowWidth 0px 0px @h,
0px @shadowWidth 0px @h,
@shadowWidth 0px 0px @h;
-webkit-text-stroke: unset;
background-clip: unset;
}
.ui.@{color}.rating .icon.partial.active {
background: linear-gradient(to right, @l 0% var(--full), @inactiveColor var(--full) 100%);
text-shadow: none;
-webkit-text-stroke: @c 0.78px;
background-clip: text;
color: transparent;
}
})
/*******************************
States
*******************************/
& when (@variationRatingDisabled) {
/*-------------------
Disabled
--------------------*/
/* disabled rating */
.ui.disabled.rating .icon {
cursor: default;
}
}
/*-------------------
User Interactive
--------------------*/
/* Selected Rating */
.ui.rating.selected .active.icon {
opacity: @interactiveActiveIconOpacity;
}
.ui.rating.selected .icon.selected,
.ui.rating .icon.selected {
opacity: @interactiveSelectedIconOpacity;
}
/*******************************
Variations
*******************************/
.ui.rating {
font-size: @medium;
}
& when not (@variationRatingSizes = false) {
each(@variationRatingSizes, {
@s: @@value;
.ui.@{value}.rating {
font-size: @s;
}
})
}
.loadUIOverrides();

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,560 @@
/*!
* # Fomantic-UI - Search
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'search';
@import (multiple) '../../theme.config';
/*******************************
Search
*******************************/
.ui.search {
position: relative;
}
.ui.search > .prompt {
margin: 0;
outline: none;
-webkit-appearance: none;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
text-shadow: none;
font-style: normal;
font-weight: @normal;
line-height: @promptLineHeight;
padding: @promptPadding;
font-size: @promptFontSize;
background: @promptBackground;
border: @promptBorder;
color: @promptColor;
box-shadow: @promptBoxShadow;
transition: @promptTransition;
}
.ui.search .prompt {
border-radius: @promptBorderRadius;
}
/*--------------
Icon
---------------*/
.ui.search .prompt ~ .search.icon {
cursor: pointer;
}
/*--------------
Results
---------------*/
.ui.search > .results {
display: none;
position: absolute;
top: 100%;
left: 0;
transform-origin: center top;
white-space: normal;
text-align: left;
text-transform: none;
background: @resultsBackground;
margin-top: @resultsDistance;
width: @resultsWidth;
border-radius: @resultsBorderRadius;
box-shadow: @resultsBoxShadow;
border: @resultsBorder;
z-index: @resultsZIndex;
}
.ui.search > .results > :first-child {
border-radius: @resultsBorderRadius @resultsBorderRadius 0 0;
}
.ui.search > .results > :last-child {
border-radius: 0 0 @resultsBorderRadius @resultsBorderRadius;
}
/*--------------
Result
---------------*/
.ui.search > .results .result {
cursor: pointer;
display: block;
overflow: hidden;
font-size: @resultFontSize;
padding: @resultPadding;
color: @resultTextColor;
line-height: @resultLineHeight;
border-bottom: @resultDivider;
}
.ui.search > .results .result:last-child {
border-bottom: @resultLastDivider !important;
}
/* Image */
.ui.search > .results .result .image {
float: @resultImageFloat;
overflow: hidden;
background: @resultImageBackground;
width: @resultImageWidth;
height: @resultImageHeight;
border-radius: @resultImageBorderRadius;
}
.ui.search > .results .result .image img {
display: block;
width: auto;
height: 100%;
}
/*--------------
Info
---------------*/
.ui.search > .results .result .image + .content {
margin: @resultImageMargin;
}
.ui.search > .results .result .title {
margin: @resultTitleMargin;
font-family: @resultTitleFont;
font-weight: @resultTitleFontWeight;
font-size: @resultTitleFontSize;
color: @resultTitleColor;
}
.ui.search > .results .result .description {
margin-top: @resultDescriptionDistance;
font-size: @resultDescriptionFontSize;
color: @resultDescriptionColor;
}
.ui.search > .results .result .price {
float: @resultPriceFloat;
color: @resultPriceColor;
}
/*--------------
Message
---------------*/
.ui.search > .results > .message {
padding: @messageVerticalPadding @messageHorizontalPadding;
}
.ui.search > .results > .message .header {
font-family: @headerFont;
font-size: @messageHeaderFontSize;
font-weight: @messageHeaderFontWeight;
color: @messageHeaderColor;
}
.ui.search > .results > .message .description {
margin-top: @messageDescriptionDistance;
font-size: @messageDescriptionFontSize;
color: @messageDescriptionColor;
}
/* View All Results */
.ui.search > .results > .action {
display: block;
border-top: @actionBorder;
background: @actionBackground;
padding: @actionPadding;
color: @actionColor;
font-weight: @actionFontWeight;
text-align: @actionAlign;
}
/*******************************
States
*******************************/
/*--------------------
Focus
---------------------*/
.ui.search > .prompt:focus {
border-color: @promptFocusBorderColor;
background: @promptFocusBackground;
color: @promptFocusColor;
}
& when (@variationSearchLoading) {
/*--------------------
Loading
---------------------*/
.ui.loading.search .input > i.icon:before {
position: absolute;
content: '';
top: 50%;
left: 50%;
margin: @loaderMargin;
width: @loaderSize;
height: @loaderSize;
border-radius: @circularRadius;
border: @loaderLineWidth solid @loaderFillColor;
}
.ui.loading.search .input > i.icon:after {
position: absolute;
content: '';
top: 50%;
left: 50%;
margin: @loaderMargin;
width: @loaderSize;
height: @loaderSize;
animation: loader @loaderSpeed infinite linear;
border: @loaderLineWidth solid @loaderLineColor;
border-radius: @circularRadius;
box-shadow: 0 0 0 1px transparent;
}
}
/*--------------
Hover
---------------*/
.ui.search > .results .result:hover,
.ui.category.search > .results .category .result:hover {
background: @resultHoverBackground;
}
.ui.search .action:hover:not(div) {
background: @actionHoverBackground;
}
/*--------------
Active
---------------*/
& when (@variationSearchCategory) {
.ui.category.search > .results .category.active {
background: @categoryActiveBackground;
}
.ui.category.search > .results .category.active > .name {
color: @categoryNameActiveColor;
}
}
.ui.search > .results .result.active,
.ui.category.search > .results .category .result.active {
position: relative;
border-left-color: @resultActiveBorderLeft;
background: @resultActiveBackground;
box-shadow: @resultActiveBoxShadow;
}
.ui.search > .results .result.active .title {
color: @resultActiveTitleColor;
}
.ui.search > .results .result.active .description {
color: @resultActiveDescriptionColor;
}
& when (@variationSearchDisabled) {
/*--------------------
Disabled
----------------------*/
/* Disabled */
.ui.disabled.search {
cursor: default;
pointer-events: none;
opacity: @disabledOpacity;
}
}
/*******************************
Types
*******************************/
& when (@variationSearchSelection) {
/*--------------
Selection
---------------*/
.ui.search.selection .prompt {
border-radius: @selectionPromptBorderRadius;
}
/* Remove input */
.ui.search.selection > .icon.input > .remove.icon {
pointer-events: none;
position: absolute;
left: auto;
opacity: 0;
color: @selectionCloseIconColor;
top: @selectionCloseTop;
right: @selectionCloseRight;
transition: @selectionCloseTransition;
}
.ui.search.selection > .icon.input > .active.remove.icon {
cursor: pointer;
opacity: @selectionCloseIconOpacity;
pointer-events: auto;
}
.ui.search.selection > .icon.input:not([class*="left icon"]) > .icon ~ .remove.icon {
right: @selectionCloseIconInputRight;
}
.ui.search.selection > .icon.input > .remove.icon:hover {
opacity: @selectionCloseIconHoverOpacity;
color: @selectionCloseIconHoverColor;
}
}
& when (@variationSearchCategory) {
/*--------------
Category
---------------*/
.ui.category.search .results {
width: @categoryResultsWidth;
}
.ui.category.search .results.animating,
.ui.category.search .results.visible {
display: table;
}
/* Category */
.ui.category.search > .results .category {
display: table-row;
background: @categoryBackground;
box-shadow: @categoryBoxShadow;
transition: @categoryTransition;
}
/* Last Category */
.ui.category.search > .results .category:last-child {
border-bottom: none;
}
/* First / Last */
.ui.category.search > .results .category:first-child .name + .result {
border-radius: 0 @resultsBorderRadius 0 0;
}
.ui.category.search > .results .category:last-child .result:last-child {
border-radius: 0 0 @resultsBorderRadius 0;
}
/* Category Result Name */
.ui.category.search > .results .category > .name {
display: table-cell;
text-overflow: ellipsis;
width: @categoryNameWidth;
white-space: @categoryNameWhitespace;
background: @categoryNameBackground;
font-family: @categoryNameFont;
font-size: @categoryNameFontSize;
padding: @categoryNamePadding;
font-weight: @categoryNameFontWeight;
color: @categoryNameColor;
border-bottom: @categoryDivider;
}
/* Category Result */
.ui.category.search > .results .category .results {
display: table-cell;
background: @categoryResultBackground;
border-left: @categoryResultLeftBorder;
border-bottom: @categoryDivider;
}
.ui.category.search > .results .category .result {
border-bottom: @categoryResultDivider;
transition: @categoryResultTransition;
padding: @categoryResultPadding;
}
}
/*******************************
Variations
*******************************/
& when (@variationSearchScrolling),
(@variationSearchShort),
(@variationSearchLong) {
/*-------------------
Scrolling
--------------------*/
.ui.scrolling.search > .results,
.ui.search.long > .results,
.ui.search.short > .results {
overflow-x: hidden;
overflow-y: auto;
backface-visibility: hidden;
-webkit-overflow-scrolling: touch;
}
}
& when (@variationSearchScrolling) {
@media only screen and (max-width : @largestMobileScreen) {
.ui.scrolling.search > .results {
max-height: @scrollingMobileMaxResultsHeight;
}
}
@media only screen and (min-width: @tabletBreakpoint) {
.ui.scrolling.search > .results {
max-height: @scrollingTabletMaxResultsHeight;
}
}
@media only screen and (min-width: @computerBreakpoint) {
.ui.scrolling.search > .results {
max-height: @scrollingComputerMaxResultsHeight;
}
}
@media only screen and (min-width: @widescreenMonitorBreakpoint) {
.ui.scrolling.search > .results {
max-height: @scrollingWidescreenMaxResultsHeight;
}
}
}
@media only screen and (max-width : @largestMobileScreen) {
& when (@variationSearchShort) {
.ui.search.short > .results {
max-height: @scrollingMobileMaxResultsHeight;
}
.ui.search[class*="very short"] > .results {
max-height: @scrollingMobileMaxResultsHeight * 0.75;
}
}
& when (@variationSearchLong) {
.ui.search.long > .results {
max-height: @scrollingMobileMaxResultsHeight * 2;
}
.ui.search[class*="very long"] > .results {
max-height: @scrollingMobileMaxResultsHeight * 3;
}
}
}
@media only screen and (min-width: @tabletBreakpoint) {
& when (@variationSearchShort) {
.ui.search.short > .results {
max-height: @scrollingTabletMaxResultsHeight;
}
.ui.search[class*="very short"] > .results {
max-height: @scrollingTabletMaxResultsHeight * 0.75;
}
}
& when (@variationSearchLong) {
.ui.search.long > .results {
max-height: @scrollingTabletMaxResultsHeight * 2;
}
.ui.search[class*="very long"] > .results {
max-height: @scrollingTabletMaxResultsHeight * 3;
}
}
}
@media only screen and (min-width: @computerBreakpoint) {
& when (@variationSearchShort) {
.ui.search.short > .results {
max-height: @scrollingComputerMaxResultsHeight;
}
.ui.search[class*="very short"] > .results {
max-height: @scrollingComputerMaxResultsHeight * 0.75;
}
}
& when (@variationSearchLong) {
.ui.search.long > .results {
max-height: @scrollingComputerMaxResultsHeight * 2;
}
.ui.search[class*="very long"] > .results {
max-height: @scrollingComputerMaxResultsHeight * 3;
}
}
}
@media only screen and (min-width: @widescreenMonitorBreakpoint) {
& when (@variationSearchShort) {
.ui.search.short > .results {
max-height: @scrollingWidescreenMaxResultsHeight;
}
.ui.search[class*="very short"] > .results {
max-height: @scrollingWidescreenMaxResultsHeight * 0.75;
}
}
& when (@variationSearchLong) {
.ui.search.long > .results {
max-height: @scrollingWidescreenMaxResultsHeight * 2;
}
.ui.search[class*="very long"] > .results {
max-height: @scrollingWidescreenMaxResultsHeight * 3;
}
}
}
& when (@variationSearchAligned) {
/*-------------------
Left / Right
--------------------*/
.ui[class*="left aligned"].search > .results {
right: auto;
left: 0;
}
.ui[class*="right aligned"].search > .results {
right: 0;
left: auto;
}
}
/*--------------
Fluid
---------------*/
& when (@variationSearchFluid) {
.ui.fluid.search .results {
width: 100%;
}
}
/*--------------
Sizes
---------------*/
.ui.search {
font-size: @relativeMedium;
}
& when not (@variationFeedSizes = false) {
each(@variationFeedSizes, {
@s: @{value}SearchSize;
.ui.@{value}.search {
font-size: @@s;
}
})
}
/*--------------
Mobile
---------------*/
@media only screen and (max-width: @largestMobileScreen) {
.ui.search .results {
max-width: @mobileMaxWidth;
}
}
.loadUIOverrides();

View file

@ -0,0 +1,848 @@
/*!
* # Fomantic-UI - Shape
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
'use strict';
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.fn.shape = 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
moduleSelector = $allModules.selector || '',
settings = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.shape.settings, parameters)
: $.extend({}, $.fn.shape.settings),
// internal aliases
namespace = settings.namespace,
selector = settings.selector,
error = settings.error,
className = settings.className,
// define namespaces for modules
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
// selector cache
$module = $(this),
$sides = $module.find('>' + selector.sides),
$side = $sides.find('>' + selector.side),
// private variables
nextIndex = false,
$activeSide,
$nextSide,
// standard module
element = this,
instance = $module.data(moduleNamespace),
module
;
module = {
initialize: function() {
module.verbose('Initializing module for', element);
module.set.defaultSide();
module.instantiate();
},
instantiate: function() {
module.verbose('Storing instance of module', module);
instance = module;
$module
.data(moduleNamespace, instance)
;
},
destroy: function() {
module.verbose('Destroying previous module for', element);
$module
.removeData(moduleNamespace)
.off(eventNamespace)
;
},
refresh: function() {
module.verbose('Refreshing selector cache for', element);
$module = $(element);
$sides = $(this).find(selector.sides);
$side = $(this).find(selector.side);
},
repaint: function() {
module.verbose('Forcing repaint event');
var
shape = $sides[0] || document.createElement('div'),
fakeAssignment = shape.offsetWidth
;
},
animate: function(propertyObject, callback) {
module.verbose('Animating box with properties', propertyObject);
callback = callback || function(event) {
module.verbose('Executing animation callback');
if(event !== undefined) {
event.stopPropagation();
}
module.reset();
module.set.active();
};
settings.beforeChange.call($nextSide[0]);
if(module.get.transitionEvent()) {
module.verbose('Starting CSS animation');
$module
.addClass(className.animating)
;
$sides
.css(propertyObject)
.one(module.get.transitionEvent(), callback)
;
module.set.duration(settings.duration);
requestAnimationFrame(function() {
$module
.addClass(className.animating)
;
$activeSide
.addClass(className.hidden)
;
});
}
else {
callback();
}
},
queue: function(method) {
module.debug('Queueing animation of', method);
$sides
.one(module.get.transitionEvent(), function() {
module.debug('Executing queued animation');
setTimeout(function(){
$module.shape(method);
}, 0);
})
;
},
reset: function() {
module.verbose('Animating states reset');
$module
.removeClass(className.animating)
.attr('style', '')
.removeAttr('style')
;
// removeAttr style does not consistently work in safari
$sides
.attr('style', '')
.removeAttr('style')
;
$side
.attr('style', '')
.removeAttr('style')
.removeClass(className.hidden)
;
$nextSide
.removeClass(className.animating)
.attr('style', '')
.removeAttr('style')
;
},
is: {
complete: function() {
return ($side.filter('.' + className.active)[0] == $nextSide[0]);
},
animating: function() {
return $module.hasClass(className.animating);
},
hidden: function() {
return $module.closest(':hidden').length > 0;
}
},
set: {
defaultSide: function() {
$activeSide = $side.filter('.' + settings.className.active);
$nextSide = ( $activeSide.next(selector.side).length > 0 )
? $activeSide.next(selector.side)
: $side.first()
;
nextIndex = false;
module.verbose('Active side set to', $activeSide);
module.verbose('Next side set to', $nextSide);
},
duration: function(duration) {
duration = duration || settings.duration;
duration = (typeof duration == 'number')
? duration + 'ms'
: duration
;
module.verbose('Setting animation duration', duration);
if(settings.duration || settings.duration === 0) {
$sides.add($side)
.css({
'-webkit-transition-duration': duration,
'-moz-transition-duration': duration,
'-ms-transition-duration': duration,
'-o-transition-duration': duration,
'transition-duration': duration
})
;
}
},
currentStageSize: function() {
var
$activeSide = $side.filter('.' + settings.className.active),
width = $activeSide.outerWidth(true),
height = $activeSide.outerHeight(true)
;
$module
.css({
width: width,
height: height
})
;
},
stageSize: function() {
var
$clone = $module.clone().addClass(className.loading),
$side = $clone.find('>' + selector.sides + '>' + selector.side),
$activeSide = $side.filter('.' + settings.className.active),
$nextSide = (nextIndex)
? $side.eq(nextIndex)
: ( $activeSide.next(selector.side).length > 0 )
? $activeSide.next(selector.side)
: $side.first(),
newWidth = (settings.width === 'next')
? $nextSide.outerWidth(true)
: (settings.width === 'initial')
? $module.width()
: settings.width,
newHeight = (settings.height === 'next')
? $nextSide.outerHeight(true)
: (settings.height === 'initial')
? $module.height()
: settings.height
;
$activeSide.removeClass(className.active);
$nextSide.addClass(className.active);
$clone.insertAfter($module);
$clone.remove();
if(settings.width !== 'auto') {
$module.css('width', newWidth + settings.jitter);
module.verbose('Specifying width during animation', newWidth);
}
if(settings.height !== 'auto') {
$module.css('height', newHeight + settings.jitter);
module.verbose('Specifying height during animation', newHeight);
}
},
nextSide: function(selector) {
nextIndex = selector;
$nextSide = $side.filter(selector);
nextIndex = $side.index($nextSide);
if($nextSide.length === 0) {
module.set.defaultSide();
module.error(error.side);
}
module.verbose('Next side manually set to', $nextSide);
},
active: function() {
module.verbose('Setting new side to active', $nextSide);
$side
.removeClass(className.active)
;
$nextSide
.addClass(className.active)
;
settings.onChange.call($nextSide[0]);
module.set.defaultSide();
}
},
flip: {
to: function(type,stage){
if(module.is.hidden()) {
module.debug('Module not visible', $nextSide);
return;
}
if(module.is.complete() && !module.is.animating() && !settings.allowRepeats) {
module.debug('Side already visible', $nextSide);
return;
}
var
transform = module.get.transform[type]()
;
if( !module.is.animating()) {
module.debug('Flipping '+type, $nextSide);
module.set.stageSize();
module.stage[stage]();
module.animate(transform);
}
else {
module.queue('flip '+type);
}
},
up: function() {
module.flip.to('up','above');
},
down: function() {
module.flip.to('down','below');
},
left: function() {
module.flip.to('left','left');
},
right: function() {
module.flip.to('right','right');
},
over: function() {
module.flip.to('over','behind');
},
back: function() {
module.flip.to('back','behind');
}
},
get: {
transform: {
up: function() {
var
translateZ = $activeSide.outerHeight(true) / 2,
translateY = $nextSide.outerHeight(true) - translateZ
;
return {
transform: 'translateY(' + translateY + 'px) translateZ(-'+ translateZ + 'px) rotateX(-90deg)'
};
},
down: function() {
var
translate = {
z: $activeSide.outerHeight(true) / 2
}
;
return {
transform: 'translateY(-' + translate.z + 'px) translateZ(-'+ translate.z + 'px) rotateX(90deg)'
};
},
left: function() {
var
translateZ = $activeSide.outerWidth(true) / 2,
translateX = $nextSide.outerWidth(true) - translateZ
;
return {
transform: 'translateX(' + translateX + 'px) translateZ(-' + translateZ + 'px) rotateY(90deg)'
};
},
right: function() {
var
translate = {
z : $activeSide.outerWidth(true) / 2
}
;
return {
transform: 'translateX(-' + translate.z + 'px) translateZ(-' + translate.z + 'px) rotateY(-90deg)'
};
},
over: function() {
var
translate = {
x : -(($activeSide.outerWidth(true) - $nextSide.outerWidth(true)) / 2)
}
;
return {
transform: 'translateX(' + translate.x + 'px) rotateY(180deg)'
};
},
back: function() {
var
translate = {
x : -(($activeSide.outerWidth(true) - $nextSide.outerWidth(true)) / 2)
}
;
return {
transform: 'translateX(' + translate.x + 'px) rotateY(-180deg)'
};
}
},
transitionEvent: function() {
var
element = document.createElement('element'),
transitions = {
'transition' :'transitionend',
'OTransition' :'oTransitionEnd',
'MozTransition' :'transitionend',
'WebkitTransition' :'webkitTransitionEnd'
},
transition
;
for(transition in transitions){
if( element.style[transition] !== undefined ){
return transitions[transition];
}
}
},
nextSide: function() {
return ( $activeSide.next(selector.side).length > 0 )
? $activeSide.next(selector.side)
: $side.first()
;
}
},
stage: {
above: function() {
var
box = {
origin : (($activeSide.outerHeight(true) - $nextSide.outerHeight(true)) / 2),
depth : {
active : ($nextSide.outerHeight(true) / 2),
next : ($activeSide.outerHeight(true) / 2)
}
}
;
module.verbose('Setting the initial animation position as above', $nextSide, box);
$activeSide
.css({
'transform' : 'rotateX(0deg)'
})
;
$nextSide
.addClass(className.animating)
.css({
'top' : box.origin + 'px',
'transform' : 'rotateX(90deg) translateZ(' + box.depth.next + 'px) translateY(-' + box.depth.active + 'px)'
})
;
},
below: function() {
var
box = {
origin : (($activeSide.outerHeight(true) - $nextSide.outerHeight(true)) / 2),
depth : {
active : ($nextSide.outerHeight(true) / 2),
next : ($activeSide.outerHeight(true) / 2)
}
}
;
module.verbose('Setting the initial animation position as below', $nextSide, box);
$activeSide
.css({
'transform' : 'rotateX(0deg)'
})
;
$nextSide
.addClass(className.animating)
.css({
'top' : box.origin + 'px',
'transform' : 'rotateX(-90deg) translateZ(' + box.depth.next + 'px) translateY(' + box.depth.active + 'px)'
})
;
},
left: function() {
var
height = {
active : $activeSide.outerWidth(true),
next : $nextSide.outerWidth(true)
},
box = {
origin : ( ( height.active - height.next ) / 2),
depth : {
active : (height.next / 2),
next : (height.active / 2)
}
}
;
module.verbose('Setting the initial animation position as left', $nextSide, box);
$activeSide
.css({
'transform' : 'rotateY(0deg)'
})
;
$nextSide
.addClass(className.animating)
.css({
'left' : box.origin + 'px',
'transform' : 'rotateY(-90deg) translateZ(' + box.depth.next + 'px) translateX(-' + box.depth.active + 'px)'
})
;
},
right: function() {
var
height = {
active : $activeSide.outerWidth(true),
next : $nextSide.outerWidth(true)
},
box = {
origin : ( ( height.active - height.next ) / 2),
depth : {
active : (height.next / 2),
next : (height.active / 2)
}
}
;
module.verbose('Setting the initial animation position as right', $nextSide, box);
$activeSide
.css({
'transform' : 'rotateY(0deg)'
})
;
$nextSide
.addClass(className.animating)
.css({
'left' : box.origin + 'px',
'transform' : 'rotateY(90deg) translateZ(' + box.depth.next + 'px) translateX(' + box.depth.active + 'px)'
})
;
},
behind: function() {
var
height = {
active : $activeSide.outerWidth(true),
next : $nextSide.outerWidth(true)
},
box = {
origin : ( ( height.active - height.next ) / 2),
depth : {
active : (height.next / 2),
next : (height.active / 2)
}
}
;
module.verbose('Setting the initial animation position as behind', $nextSide, box);
$activeSide
.css({
'transform' : 'rotateY(0deg)'
})
;
$nextSide
.addClass(className.animating)
.css({
'left' : box.origin + 'px',
'transform' : 'rotateY(-180deg)'
})
;
}
},
setting: function(name, value) {
module.debug('Changing setting', name, value);
if( $.isPlainObject(name) ) {
$.extend(true, settings, name);
}
else if(value !== undefined) {
if($.isPlainObject(settings[name])) {
$.extend(true, settings[name], value);
}
else {
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.silent && 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.silent && 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() {
if(!settings.silent) {
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($allModules.length > 1) {
title += ' ' + '(' + $allModules.length + ')';
}
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 {
return false;
}
});
}
if ( $.isFunction( found ) ) {
response = found.apply(context, passedArguments);
}
else if(found !== undefined) {
response = found;
}
if(Array.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();
}
var $inputs = $module.find('input');
if( $inputs.length > 0) {
$inputs.blur();
setTimeout(function(){
module.invoke(query);
}, 150);
} else {
module.invoke(query);
}
}
else {
if(instance !== undefined) {
instance.invoke('destroy');
}
module.initialize();
}
})
;
return (returnedValue !== undefined)
? returnedValue
: this
;
};
$.fn.shape.settings = {
// module info
name : 'Shape',
// hide all debug content
silent : false,
// debug content outputted to console
debug : false,
// verbose debug output
verbose : false,
// fudge factor in pixels when swapping from 2d to 3d (can be useful to correct rounding errors)
jitter : 0,
// performance data output
performance: true,
// event namespace
namespace : 'shape',
// width during animation, can be set to 'auto', initial', 'next' or pixel amount
width: 'initial',
// height during animation, can be set to 'auto', 'initial', 'next' or pixel amount
height: 'initial',
// callback occurs on side change
beforeChange : function() {},
onChange : function() {},
// allow animation to same side
allowRepeats: false,
// animation duration
duration : false,
// possible errors
error: {
side : 'You tried to switch to a side that does not exist.',
method : 'The method you called is not defined'
},
// classnames used
className : {
animating : 'animating',
hidden : 'hidden',
loading : 'loading',
active : 'active'
},
// selectors used
selector : {
sides : '.sides',
side : '.side'
}
};
})( jQuery, window, document );

View file

@ -0,0 +1,155 @@
/*!
* # Fomantic-UI - Shape
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'shape';
@import (multiple) '../../theme.config';
/*******************************
Shape
*******************************/
.ui.shape {
position: relative;
vertical-align: top;
display: @display;
perspective: @perspective;
transition: @transition;
}
.ui.shape .side,
.ui.shape .sides {
transform-style: preserve-3d;
}
.ui.shape .side {
display: none;
opacity: 1;
width: 100%;
margin: @sideMargin !important;
backface-visibility: @backfaceVisibility;
}
.ui.shape .side * {
backface-visibility: visible !important;
}
/*******************************
Types
*******************************/
& when (@variationShapeCube) {
.ui.cube.shape .side {
min-width: @cubeSize;
height: @cubeSize;
padding: @cubePadding;
background-color: @cubeBackground;
color: @cubeTextColor;
box-shadow: @cubeBoxShadow;
}
.ui.cube.shape .side > .content {
width: 100%;
height: 100%;
display: table;
text-align: @cubeTextAlign;
user-select: text;
}
.ui.cube.shape .side > .content > div {
display: table-cell;
vertical-align: middle;
font-size: @cubeFontSize;
}
}
/*******************************
Variations
*******************************/
& when (@variationShapeText) {
.ui.text.shape.animating .sides {
position: static;
}
.ui.text.shape .side {
white-space: nowrap;
}
.ui.text.shape .side > * {
white-space: normal;
}
}
/*******************************
States
*******************************/
& when (@variationShapeLoading) {
/*--------------
Loading
---------------*/
.ui.loading.shape {
position: absolute;
top: -9999px;
left: -9999px;
}
}
/*--------------
Animating
---------------*/
.ui.shape .animating.side {
position: absolute;
top: 0;
left: 0;
display: block;
z-index: @animatingZIndex;
}
.ui.shape .hidden.side {
opacity: @hiddenSideOpacity;
}
/*--------------
CSS
---------------*/
.ui.shape.animating .sides {
position: absolute;
transition: @transition;
}
.ui.shape.animating .side {
transition: @sideTransition;
}
.ui.shape .animating.side *,
.ui.shape.animating .side * {
transition: none;
}
/*--------------
Active
---------------*/
.ui.shape .active.side {
display: block;
}
.loadUIOverrides();

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,653 @@
/*!
* # Fomantic-UI - Sidebar
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'sidebar';
@import (multiple) '../../theme.config';
/*******************************
Sidebar
*******************************/
/* Sidebar Menu */
.ui.sidebar {
position: fixed;
top: 0;
left: 0;
backface-visibility: hidden;
transition: none;
will-change: transform;
transform: translate3d(0, 0, 0);
visibility: hidden;
-webkit-overflow-scrolling: touch;
height: 100% !important;
max-height: 100%;
border-radius: 0 !important;
margin: 0 !important;
overflow-y: auto !important;
z-index: @topLayer;
}
/* GPU Layers for Child Elements */
.ui.sidebar > * {
backface-visibility: hidden;
}
/*--------------
Direction
---------------*/
& when (@variationSidebarLeft) {
.ui.left.sidebar {
right: auto;
left: 0;
transform: translate3d(-100%, 0, 0);
}
}
& when (@variationSidebarRight) {
.ui.right.sidebar {
right: 0 !important;
left: auto !important;
transform: translate3d(100%, 0, 0);
}
}
& when (@variationSidebarTop) or (@variationSidebarBottom) {
.ui.top.sidebar,
.ui.bottom.sidebar {
width: 100% !important;
height: auto !important;
}
& when (@variationSidebarTop) {
.ui.top.sidebar {
top: 0 !important;
bottom: auto !important;
transform: translate3d(0, -100%, 0);
}
}
& when (@variationSidebarBottom) {
.ui.bottom.sidebar {
top: auto !important;
bottom: 0 !important;
transform: translate3d(0, 100%, 0);
}
}
}
/*--------------
Pushable
---------------*/
.pushable {
height: 100%;
overflow-x: hidden;
padding: 0 !important;
}
/* Whole Page */
body.pushable {
background: @canvasBackground;
&.dimmed {
background: inherit;
}
}
/* Page Context */
.pushable:not(body) {
transform: translate3d(0, 0, 0);
}
.pushable:not(body) > .ui.sidebar,
.pushable:not(body) > .fixed,
.pushable:not(body) > .pusher:after {
position: absolute;
}
/*--------------
Fixed
---------------*/
.pushable > .fixed {
position: fixed;
backface-visibility: hidden;
transition: transform @duration @easing;
will-change: transform;
z-index: @fixedLayer;
}
/*--------------
Page
---------------*/
.pushable > .pusher {
position: relative;
backface-visibility: hidden;
overflow: hidden;
min-height: 100%;
transition: transform @duration @easing;
z-index: @middleLayer;
/* Pusher should inherit background from context */
background: inherit;
}
body.pushable > .pusher {
background: @pageBackground;
}
/*--------------
Dimmer
---------------*/
.pushable > .pusher:after {
position: fixed;
top: 0;
right: 0;
content: '';
background-color: @dimmerColor;
overflow: hidden;
opacity: 0;
transition: @dimmerTransition;
will-change: opacity;
z-index: @dimmerLayer;
}
/*--------------
Coupling
---------------*/
.ui.sidebar.menu .item {
border-radius: 0 !important;
}
/*******************************
States
*******************************/
/*--------------
Dimmed
---------------*/
.pushable > .pusher.dimmed:after {
width: 100% !important;
height: 100% !important;
opacity: 1 !important;
}
/*--------------
Animating
---------------*/
.ui.animating.sidebar {
visibility: visible;
}
/*--------------
Visible
---------------*/
.ui.visible.sidebar {
visibility: visible;
transform: translate3d(0, 0, 0);
}
/* Shadow Direction */
& when (@variationSidebarLeft) or (@variationSidebarRight) {
.ui.left.visible.sidebar,
.ui.right.visible.sidebar {
box-shadow: @horizontalBoxShadow;
}
}
& when (@variationSidebarTop) or (@variationSidebarBottom) {
.ui.top.visible.sidebar,
.ui.bottom.visible.sidebar {
box-shadow: @verticalBoxShadow;
}
}
/* Visible On Load */
& when (@variationSidebarLeft) {
.ui.visible.left.sidebar ~ .fixed,
.ui.visible.left.sidebar ~ .pusher {
transform: translate3d(@width, 0, 0);
}
}
& when (@variationSidebarRight) {
.ui.visible.right.sidebar ~ .fixed,
.ui.visible.right.sidebar ~ .pusher {
transform: translate3d(-@width, 0, 0);
}
}
& when (@variationSidebarTop) {
.ui.visible.top.sidebar ~ .fixed,
.ui.visible.top.sidebar ~ .pusher {
transform: translate3d(0, @height, 0);
}
}
& when (@variationSidebarBottom) {
.ui.visible.bottom.sidebar ~ .fixed,
.ui.visible.bottom.sidebar ~ .pusher {
transform: translate3d(0, -@height, 0);
}
}
& when (@variationSidebarLeft) or (@variationSidebarRight) {
/* opposite sides visible forces content overlay */
.ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .fixed,
.ui.visible.left.sidebar ~ .ui.visible.right.sidebar ~ .pusher,
.ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .fixed,
.ui.visible.right.sidebar ~ .ui.visible.left.sidebar ~ .pusher {
transform: translate3d(0, 0, 0);
}
}
/*--------------
iOS
---------------*/
/*******************************
Variations
*******************************/
/*--------------
Width
---------------*/
/* Left / Right */
& when (@variationSidebarLeft) or (@variationSidebarRight) {
& when (@variationSidebarThin) {
.ui.thin.left.sidebar,
.ui.thin.right.sidebar {
width: @thinWidth;
}
.ui[class*="very thin"].left.sidebar,
.ui[class*="very thin"].right.sidebar {
width: @veryThinWidth;
}
}
.ui.left.sidebar,
.ui.right.sidebar {
width: @width;
}
& when (@variationSidebarWide) {
.ui.wide.left.sidebar,
.ui.wide.right.sidebar {
width: @wideWidth;
}
.ui[class*="very wide"].left.sidebar,
.ui[class*="very wide"].right.sidebar {
width: @veryWideWidth;
}
}
/* Left Visible */
& when (@variationSidebarLeft) {
& when (@variationSidebarThin) {
.ui.visible.thin.left.sidebar ~ .fixed,
.ui.visible.thin.left.sidebar ~ .pusher {
transform: translate3d(@thinWidth, 0, 0);
}
.ui.visible[class*="very thin"].left.sidebar ~ .fixed,
.ui.visible[class*="very thin"].left.sidebar ~ .pusher {
transform: translate3d(@veryThinWidth, 0, 0);
}
}
& when (@variationSidebarWide) {
.ui.visible.wide.left.sidebar ~ .fixed,
.ui.visible.wide.left.sidebar ~ .pusher {
transform: translate3d(@wideWidth, 0, 0);
}
.ui.visible[class*="very wide"].left.sidebar ~ .fixed,
.ui.visible[class*="very wide"].left.sidebar ~ .pusher {
transform: translate3d(@veryWideWidth, 0, 0);
}
}
}
/* Right Visible */
& when (@variationSidebarRight) {
& when (@variationSidebarThin) {
.ui.visible.thin.right.sidebar ~ .fixed,
.ui.visible.thin.right.sidebar ~ .pusher {
transform: translate3d(-@thinWidth, 0, 0);
}
.ui.visible[class*="very thin"].right.sidebar ~ .fixed,
.ui.visible[class*="very thin"].right.sidebar ~ .pusher {
transform: translate3d(-@veryThinWidth, 0, 0);
}
}
& when (@variationSidebarWide) {
.ui.visible.wide.right.sidebar ~ .fixed,
.ui.visible.wide.right.sidebar ~ .pusher {
transform: translate3d(-@wideWidth, 0, 0);
}
.ui.visible[class*="very wide"].right.sidebar ~ .fixed,
.ui.visible[class*="very wide"].right.sidebar ~ .pusher {
transform: translate3d(-@veryWideWidth, 0, 0);
}
}
}
}
/*******************************
Animations
*******************************/
& when (@variationSidebarOverlay) {
/*--------------
Overlay
---------------*/
/* Set-up */
.ui.overlay.sidebar {
z-index: @topLayer;
}
/* Initial */
& when (@variationSidebarLeft) {
.ui.left.overlay.sidebar {
transform: translate3d(-100%, 0, 0);
}
}
& when (@variationSidebarRight) {
.ui.right.overlay.sidebar {
transform: translate3d(100%, 0, 0);
}
}
& when (@variationSidebarTop) {
.ui.top.overlay.sidebar {
transform: translate3d(0%, -100%, 0);
}
}
& when (@variationSidebarBottom) {
.ui.bottom.overlay.sidebar {
transform: translate3d(0%, 100%, 0);
}
}
/* Animation */
.animating.ui.overlay.sidebar,
.ui.visible.overlay.sidebar {
transition: transform @duration @easing;
}
/* End - Sidebar */
& when (@variationSidebarLeft) {
.ui.visible.left.overlay.sidebar {
transform: translate3d(0%, 0, 0);
}
}
& when (@variationSidebarRight) {
.ui.visible.right.overlay.sidebar {
transform: translate3d(0%, 0, 0);
}
}
& when (@variationSidebarTop) {
.ui.visible.top.overlay.sidebar {
transform: translate3d(0%, 0, 0);
}
}
& when (@variationSidebarBottom) {
.ui.visible.bottom.overlay.sidebar {
transform: translate3d(0%, 0, 0);
}
}
/* End - Pusher */
.ui.visible.overlay.sidebar ~ .fixed,
.ui.visible.overlay.sidebar ~ .pusher {
transform: none !important;
}
}
& when (@variationSidebarPush) {
/*--------------
Push
---------------*/
/* Initial */
.ui.push.sidebar {
transition: transform @duration @easing;
z-index: @topLayer;
}
/* Sidebar - Initial */
& when (@variationSidebarLeft) {
.ui.left.push.sidebar {
transform: translate3d(-100%, 0, 0);
}
}
& when (@variationSidebarRight) {
.ui.right.push.sidebar {
transform: translate3d(100%, 0, 0);
}
}
& when (@variationSidebarTop) {
.ui.top.push.sidebar {
transform: translate3d(0%, -100%, 0);
}
}
& when (@variationSidebarBottom) {
.ui.bottom.push.sidebar {
transform: translate3d(0%, 100%, 0);
}
}
/* End */
.ui.visible.push.sidebar {
transform: translate3d(0%, 0, 0);
}
}
& when (@variationSidebarUncover) {
/*--------------
Uncover
---------------*/
/* Initial */
.ui.uncover.sidebar {
transform: translate3d(0, 0, 0);
z-index: @bottomLayer;
}
/* End */
.ui.visible.uncover.sidebar {
transform: translate3d(0, 0, 0);
transition: transform @duration @easing;
}
}
& when (@variationSidebarSlideAlong) {
/*--------------
Slide Along
---------------*/
/* Initial */
.ui.slide.along.sidebar {
z-index: @bottomLayer;
}
/* Sidebar - Initial */
& when (@variationSidebarLeft) {
.ui.left.slide.along.sidebar {
transform: translate3d(-50%, 0, 0);
}
}
& when (@variationSidebarRight) {
.ui.right.slide.along.sidebar {
transform: translate3d(50%, 0, 0);
}
}
& when (@variationSidebarTop) {
.ui.top.slide.along.sidebar {
transform: translate3d(0, -50%, 0);
}
}
& when (@variationSidebarBottom) {
.ui.bottom.slide.along.sidebar {
transform: translate3d(0%, 50%, 0);
}
}
/* Animation */
.ui.animating.slide.along.sidebar {
transition: transform @duration @easing;
}
/* End */
.ui.visible.slide.along.sidebar {
transform: translate3d(0%, 0, 0);
}
}
& when (@variationSidebarSlideOut) {
/*--------------
Slide Out
---------------*/
/* Initial */
.ui.slide.out.sidebar {
z-index: @bottomLayer;
}
/* Sidebar - Initial */
& when (@variationSidebarLeft) {
.ui.left.slide.out.sidebar {
transform: translate3d(50%, 0, 0);
}
}
& when (@variationSidebarRight) {
.ui.right.slide.out.sidebar {
transform: translate3d(-50%, 0, 0);
}
}
& when (@variationSidebarTop) {
.ui.top.slide.out.sidebar {
transform: translate3d(0%, 50%, 0);
}
}
& when (@variationSidebarBottom) {
.ui.bottom.slide.out.sidebar {
transform: translate3d(0%, -50%, 0);
}
}
/* Animation */
.ui.animating.slide.out.sidebar {
transition: transform @duration @easing;
}
/* End */
.ui.visible.slide.out.sidebar {
transform: translate3d(0%, 0, 0);
}
}
& when (@variationSidebarScale) {
/*--------------
Scale Down
---------------*/
/* Initial */
.ui.scale.down.sidebar {
transition: transform @duration @easing;
z-index: @topLayer;
}
& when (@variationSidebarLeft) {
.ui.left.scale.down.sidebar {
transform: translate3d(-100%, 0, 0);
}
}
& when (@variationSidebarRight) {
.ui.right.scale.down.sidebar {
transform: translate3d(100%, 0, 0);
}
}
& when (@variationSidebarTop) {
.ui.top.scale.down.sidebar {
transform: translate3d(0%, -100%, 0);
}
}
& when (@variationSidebarBottom) {
.ui.bottom.scale.down.sidebar {
transform: translate3d(0%, 100%, 0);
}
}
/* Pusher - Initial */
& when (@variationSidebarLeft) {
.ui.scale.down.left.sidebar ~ .pusher {
transform-origin: 75% 50%;
}
}
& when (@variationSidebarRight) {
.ui.scale.down.right.sidebar ~ .pusher {
transform-origin: 25% 50%;
}
}
& when (@variationSidebarTop) {
.ui.scale.down.top.sidebar ~ .pusher {
transform-origin: 50% 75%;
}
}
& when (@variationSidebarBottom) {
.ui.scale.down.bottom.sidebar ~ .pusher {
transform-origin: 50% 25%;
}
}
/* Animation */
.ui.animating.scale.down > .visible.ui.sidebar {
transition: transform @duration @easing;
}
.ui.visible.scale.down.sidebar ~ .pusher,
.ui.animating.scale.down.sidebar ~ .pusher {
display: block !important;
width: 100%;
height: 100%;
overflow: hidden !important;
}
/* End */
.ui.visible.scale.down.sidebar {
transform: translate3d(0, 0, 0);
}
.ui.visible.scale.down.sidebar ~ .pusher {
transform: scale(0.75);
}
}
.loadUIOverrides();

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,408 @@
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'slider';
@import (multiple) '../../theme.config';
.ui.slider:not(.vertical):not(.checkbox) {
width: 100%;
padding: @padding;
}
.ui.slider:not(.checkbox) {
position: relative;
}
.ui.slider:not(.checkbox):focus {
outline: 0;
}
.ui.slider .inner {
position: relative;
z-index: 2;
}
.ui.slider:not(.vertical) .inner {
height: @height;
}
.ui.slider .inner:hover {
cursor: @hoverPointer;
}
.ui.slider .inner .track {
position: absolute;
border-radius: @trackBorderRadius;
background-color: @trackColor;
}
.ui.slider:not(.vertical) .inner .track {
width: 100%;
height: @trackHeight;
top: @trackPositionTop;
left: 0;
}
.ui.slider .inner .track-fill {
position: absolute;
border-radius: @trackFillBorderRadius;
background-color: @trackFillColor;
}
.ui.slider:not(.vertical) .inner .track-fill {
height: @trackFillHeight;
top: @trackPositionTop;
left: 0;
}
.ui.slider .inner .thumb {
position: absolute;
left: 0;
top: 0;
height: @thumbHeight;
width: @thumbHeight;
background: @thumbBackground;
border-radius: @thumbBorderRadius;
box-shadow: @thumbShadow;
transition: @thumbTransition;
}
.ui.slider:not(.disabled) .inner .thumb:hover {
cursor: @thumbHoverPointer;
background: @thumbHoverBackground;
}
.ui.slider:not(.disabled):focus .inner .thumb {
background: @thumbHoverBackground;
}
/*******************************
States
*******************************/
& when (@variationSliderDisabled) {
/*--------------
Disabled
---------------*/
.ui.disabled.slider:not(.checkbox) {
opacity: @disabledOpactiy;
}
.ui.disabled.slider .inner:hover {
cursor: auto;
}
.ui.disabled.slider .inner .track-fill {
background: @disabledTrackFillColor;
}
}
& when (@variationSliderReversed) {
/*--------------
Reversed
---------------*/
.ui.reversed.slider .inner .track-fill {
left: auto;
right: 0;
}
.ui.reversed.slider:not(.vertical) .inner .thumb {
left: auto;
right: 0;
}
.ui.reversed.vertical.slider .inner .thumb {
left: @thumbVerticalSliderOffset;
}
& when (@variationSliderLabeled) {
.ui.labeled.reversed.slider > .labels .label {
transform: translate(-100%, -100%);
}
}
}
/*******************************
Variations
*******************************/
& when (@variationSliderVertical) {
/*--------------
Vertical
---------------*/
.ui.vertical.slider {
height: 100%;
width: @height;
padding: @verticalPadding;
}
.ui.vertical.slider .inner {
height: 100%;
}
.ui.vertical.slider .inner .track {
height: 100%;
width: @trackHeight;
left: @trackPositionTop;
top: 0;
}
.ui.vertical.slider .inner .track-fill {
width: @trackFillHeight;
left: @trackPositionTop;
top: 0;
}
& when (@variationSliderReversed) {
/* Vertical Reversed */
.ui.vertical.reversed.slider .inner .thumb {
top: auto;
bottom: 0;
}
.ui.vertical.reversed.slider .inner .track-fill {
top: auto;
bottom: 0;
}
}
}
& when (@variationSliderLabeled) {
/*--------------
Labeled
---------------*/
.ui.labeled.slider > .labels {
height: @labelHeight;
width: auto;
margin: 0;
padding: 0;
position: absolute;
top: 50%;
left: 0;
right: 0;
}
.ui.labeled.slider:not(.vertical) > .labels {
transform: translateY(-50%);
}
.ui.labeled.slider > .labels .label {
display: inline-flex;
position: absolute;
transform: translate(-50%, -100%);
}
& when (@variationSliderTicked) {
.ui.labeled.ticked.slider > .labels .label:after {
content: ' ';
height: @labelHeight;
width: @labelWidth;
background: @labelColor;
position: absolute;
top: 100%;
left: 50%;
}
.ui.labeled.ticked.slider > .labels .halftick.label:after {
height: @labelHeight / 2;
}
}
& when (@variationSliderVertical) {
/* Vertical Labels */
.ui.labeled.vertical.slider > .labels {
width: @labelHeight;
height: auto;
left: 50%;
top: 0;
bottom: 0;
transform: translateX(-50%);
}
.ui.labeled.vertical.slider > .labels .label {
transform: translate(-100%, -50%);
}
.ui.labeled.vertical.slider > .labels .label:after {
width: @labelHeight;
height: @labelWidth;
left: 100%;
top: 50%;
}
.ui.labeled.vertical.slider > .labels .halftick.label:after {
width: @labelHeight / 2;
height: @labelWidth;
}
& when (@variationSliderReversed) {
/* Vertical Reversed Labels */
.ui.labeled.vertical.reversed.slider > .labels .label {
transform: translate(-100%, 50%);
}
}
}
}
/*--------------
Hover
---------------*/
.ui.hover.slider .inner .thumb {
opacity: @hoverVarOpacity;
transition: @hoverOpacityTransition;
}
.ui.hover.slider:not(.disabled):hover .inner .thumb, .ui.hover.slider:not(.disabled):focus .inner .thumb {
opacity: @hoverVarHoverOpacity;
}
& when (@variationSliderInverted) {
/*--------------
Inverted
---------------*/
.ui.inverted.slider .inner .track-fill {
background-color: @invertedTrackFillColor;
}
.ui.inverted.slider .inner .track {
background-color: @transparentWhite;
}
}
/*--------------
Colors
---------------*/
each(@colors, {
@color: replace(@key, '@', '');
@c: @colors[@@color][color];
@l: @colors[@@color][light];
@h: @colors[@@color][hover];
@lh: @colors[@@color][lightHover];
/* Standard */
.ui.@{color}.slider .inner .track-fill {
background-color: @c;
}
& when (@variationSliderInverted) {
.ui.@{color}.inverted.slider .inner .track-fill {
background-color: @l;
}
}
& when (@variationSliderBasic) {
/* Basic */
.ui.@{color}.slider.basic .inner .thumb {
background-color: @c;
}
.ui.@{color}.slider.basic .inner .thumb:hover,
.ui.@{color}.slider.basic:focus .inner .thumb {
background-color: @h;
}
& when (@variationSliderInverted) {
/* Basic Inverted */
.ui.@{color}.inverted.slider.basic .inner .thumb {
background-color: @l;
}
.ui.@{color}.inverted.slider.basic .inner .thumb:hover,
.ui.@{color}.inverted.slider.basic:focus .inner .thumb {
background-color: @lh;
}
}
}
})
& when (@variationSliderBasic) {
/*--------------
Basic
---------------*/
/* Standard */
.ui.slider.basic .inner .thumb {
background-color: @trackFillColor;
}
.ui.slider.basic .inner .thumb:hover, .ui.slider.basic:focus .inner .thumb {
background-color: @trackFillColorFocus;
}
& when (@variationSliderInverted) {
/*--------------
Basic Inverted
---------------*/
/* Standard */
.ui.inverted.slider.basic .inner .thumb {
background-color: @invertedTrackFillColor;
}
.ui.inverted.slider.basic .inner .thumb:hover, .ui.inverted.slider.basic:focus .inner .thumb {
background-color: @invertedTrackFillColorFocus;
}
}
}
/*--------------
Sizing
---------------*/
& when not (@variationSliderSizes = false) {
each(@variationSliderSizes, {
@h: @{value}Height;
@th: @{value}TrackHeight;
@tp: @{value}TrackPositionTop;
@lh: @{value}LabelHeight;
.ui.slider.@{value} .inner .thumb {
height: @@h;
width: @@h;
}
.ui.slider.@{value}:not(.vertical) .inner {
height: @@h;
}
.ui.slider.@{value}:not(.vertical) .inner .track,
.ui.slider.@{value}:not(.vertical) .inner .track-fill {
height: @@th;
top: @@tp;
}
& when (@variationSliderLabeled) {
.ui.@{value}.labeled.slider:not(.vertical) > .labels,
.ui.@{value}.labeled.slider:not(.vertical) > .labels .label:after {
height: @@lh;
}
.ui.@{value}.labeled.slider:not(.vertical) > .labels .halftick.label:after {
height: @@lh / 2;
}
}
& when (@variationSliderVertical) {
/* Small Vertical */
.ui.slider.@{value}.vertical .inner {
width: @@h;
}
.ui.slider.@{value}.vertical .inner .track,
.ui.slider.@{value}.vertical .inner .track-fill {
width: @@th;
left: @@tp;
}
& when (@variationSliderLabeled) {
.ui.@{value}.labeled.vertical.slider> .labels,
.ui.@{value}.labeled.vertical.slider> .labels .label:after {
width: @@lh;
}
.ui.@{value}.labeled.vertical.slider> .labels .halftick.label:after {
width: @@lh / 2;
}
}
}
})
}
.loadUIOverrides();

View file

@ -0,0 +1,957 @@
/*!
* # Fomantic-UI - Sticky
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
'use strict';
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.fn.sticky = 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 = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.sticky.settings, parameters)
: $.extend({}, $.fn.sticky.settings),
className = settings.className,
namespace = settings.namespace,
error = settings.error,
eventNamespace = '.' + namespace,
moduleNamespace = 'module-' + namespace,
$module = $(this),
$window = $(window),
$scroll = $(settings.scrollContext),
$container,
$context,
instance = $module.data(moduleNamespace),
requestAnimationFrame = window.requestAnimationFrame
|| window.mozRequestAnimationFrame
|| window.webkitRequestAnimationFrame
|| window.msRequestAnimationFrame
|| function(callback) { setTimeout(callback, 0); },
element = this,
documentObserver,
observer,
module
;
module = {
initialize: function() {
module.determineContainer();
module.determineContext();
module.verbose('Initializing sticky', settings, $container);
module.save.positions();
module.checkErrors();
module.bind.events();
if(settings.observeChanges) {
module.observeChanges();
}
module.instantiate();
},
instantiate: function() {
module.verbose('Storing instance of module', module);
instance = module;
$module
.data(moduleNamespace, module)
;
},
destroy: function() {
module.verbose('Destroying previous instance');
module.reset();
if(documentObserver) {
documentObserver.disconnect();
}
if(observer) {
observer.disconnect();
}
$window
.off('load' + eventNamespace, module.event.load)
.off('resize' + eventNamespace, module.event.resize)
;
$scroll
.off('scrollchange' + eventNamespace, module.event.scrollchange)
;
$module.removeData(moduleNamespace);
},
observeChanges: function() {
if('MutationObserver' in window) {
documentObserver = new MutationObserver(module.event.documentChanged);
observer = new MutationObserver(module.event.changed);
documentObserver.observe(document, {
childList : true,
subtree : true
});
observer.observe(element, {
childList : true,
subtree : true
});
observer.observe($context[0], {
childList : true,
subtree : true
});
module.debug('Setting up mutation observer', observer);
}
},
determineContainer: function() {
if(settings.container) {
$container = $(settings.container);
}
else {
$container = $module.offsetParent();
}
},
determineContext: function() {
if(settings.context) {
$context = $(settings.context);
}
else {
$context = $container;
}
if($context.length === 0) {
module.error(error.invalidContext, settings.context, $module);
return;
}
},
checkErrors: function() {
if( module.is.hidden() ) {
module.error(error.visible, $module);
}
if(module.cache.element.height > module.cache.context.height) {
module.reset();
module.error(error.elementSize, $module);
return;
}
},
bind: {
events: function() {
$window
.on('load' + eventNamespace, module.event.load)
.on('resize' + eventNamespace, module.event.resize)
;
// pub/sub pattern
$scroll
.off('scroll' + eventNamespace)
.on('scroll' + eventNamespace, module.event.scroll)
.on('scrollchange' + eventNamespace, module.event.scrollchange)
;
}
},
event: {
changed: function(mutations) {
clearTimeout(module.timer);
module.timer = setTimeout(function() {
module.verbose('DOM tree modified, updating sticky menu', mutations);
module.refresh();
}, 100);
},
documentChanged: function(mutations) {
[].forEach.call(mutations, function(mutation) {
if(mutation.removedNodes) {
[].forEach.call(mutation.removedNodes, function(node) {
if(node == element || $(node).find(element).length > 0) {
module.debug('Element removed from DOM, tearing down events');
module.destroy();
}
});
}
});
},
load: function() {
module.verbose('Page contents finished loading');
requestAnimationFrame(module.refresh);
},
resize: function() {
module.verbose('Window resized');
requestAnimationFrame(module.refresh);
},
scroll: function() {
requestAnimationFrame(function() {
$scroll.triggerHandler('scrollchange' + eventNamespace, $scroll.scrollTop() );
});
},
scrollchange: function(event, scrollPosition) {
module.stick(scrollPosition);
settings.onScroll.call(element);
}
},
refresh: function(hardRefresh) {
module.reset();
if(!settings.context) {
module.determineContext();
}
if(hardRefresh) {
module.determineContainer();
}
module.save.positions();
module.stick();
settings.onReposition.call(element);
},
supports: {
sticky: function() {
var
$element = $('<div/>')
;
$element.addClass(className.supported);
return($element.css('position').match('sticky'));
}
},
save: {
lastScroll: function(scroll) {
module.lastScroll = scroll;
},
elementScroll: function(scroll) {
module.elementScroll = scroll;
},
positions: function() {
var
scrollContext = {
height : $scroll.height()
},
element = {
margin: {
top : parseInt($module.css('margin-top'), 10),
bottom : parseInt($module.css('margin-bottom'), 10),
},
offset : $module.offset(),
width : $module.outerWidth(),
height : $module.outerHeight()
},
context = {
offset : $context.offset(),
height : $context.outerHeight()
}
;
if( !module.is.standardScroll() ) {
module.debug('Non-standard scroll. Removing scroll offset from element offset');
scrollContext.top = $scroll.scrollTop();
scrollContext.left = $scroll.scrollLeft();
element.offset.top += scrollContext.top;
context.offset.top += scrollContext.top;
element.offset.left += scrollContext.left;
context.offset.left += scrollContext.left;
}
module.cache = {
fits : ( (element.height + settings.offset) <= scrollContext.height),
sameHeight : (element.height == context.height),
scrollContext : {
height : scrollContext.height
},
element: {
margin : element.margin,
top : element.offset.top - element.margin.top,
left : element.offset.left,
width : element.width,
height : element.height,
bottom : element.offset.top + element.height
},
context: {
top : context.offset.top,
height : context.height,
bottom : context.offset.top + context.height
}
};
module.set.containerSize();
module.stick();
module.debug('Caching element positions', module.cache);
}
},
get: {
direction: function(scroll) {
var
direction = 'down'
;
scroll = scroll || $scroll.scrollTop();
if(module.lastScroll !== undefined) {
if(module.lastScroll < scroll) {
direction = 'down';
}
else if(module.lastScroll > scroll) {
direction = 'up';
}
}
return direction;
},
scrollChange: function(scroll) {
scroll = scroll || $scroll.scrollTop();
return (module.lastScroll)
? (scroll - module.lastScroll)
: 0
;
},
currentElementScroll: function() {
if(module.elementScroll) {
return module.elementScroll;
}
return ( module.is.top() )
? Math.abs(parseInt($module.css('top'), 10)) || 0
: Math.abs(parseInt($module.css('bottom'), 10)) || 0
;
},
elementScroll: function(scroll) {
scroll = scroll || $scroll.scrollTop();
var
element = module.cache.element,
scrollContext = module.cache.scrollContext,
delta = module.get.scrollChange(scroll),
maxScroll = (element.height - scrollContext.height + settings.offset),
elementScroll = module.get.currentElementScroll(),
possibleScroll = (elementScroll + delta)
;
if(module.cache.fits || possibleScroll < 0) {
elementScroll = 0;
}
else if(possibleScroll > maxScroll ) {
elementScroll = maxScroll;
}
else {
elementScroll = possibleScroll;
}
return elementScroll;
}
},
remove: {
lastScroll: function() {
delete module.lastScroll;
},
elementScroll: function(scroll) {
delete module.elementScroll;
},
minimumSize: function() {
$container
.css('min-height', '')
;
},
offset: function() {
$module.css('margin-top', '');
}
},
set: {
offset: function() {
module.verbose('Setting offset on element', settings.offset);
$module
.css('margin-top', settings.offset)
;
},
containerSize: function() {
var
tagName = $container.get(0).tagName
;
if(tagName === 'HTML' || tagName == 'body') {
// this can trigger for too many reasons
//module.error(error.container, tagName, $module);
module.determineContainer();
}
else {
if( Math.abs($container.outerHeight() - module.cache.context.height) > settings.jitter) {
module.debug('Context has padding, specifying exact height for container', module.cache.context.height);
$container.css({
height: module.cache.context.height
});
}
}
},
minimumSize: function() {
var
element = module.cache.element
;
$container
.css('min-height', element.height)
;
},
scroll: function(scroll) {
module.debug('Setting scroll on element', scroll);
if(module.elementScroll == scroll) {
return;
}
if( module.is.top() ) {
$module
.css('bottom', '')
.css('top', -scroll)
;
}
if( module.is.bottom() ) {
$module
.css('top', '')
.css('bottom', scroll)
;
}
},
size: function() {
if(module.cache.element.height !== 0 && module.cache.element.width !== 0) {
element.style.setProperty('width', module.cache.element.width + 'px', 'important');
element.style.setProperty('height', module.cache.element.height + 'px', 'important');
}
}
},
is: {
standardScroll: function() {
return ($scroll[0] == window);
},
top: function() {
return $module.hasClass(className.top);
},
bottom: function() {
return $module.hasClass(className.bottom);
},
initialPosition: function() {
return (!module.is.fixed() && !module.is.bound());
},
hidden: function() {
return (!$module.is(':visible'));
},
bound: function() {
return $module.hasClass(className.bound);
},
fixed: function() {
return $module.hasClass(className.fixed);
}
},
stick: function(scroll) {
var
cachedPosition = scroll || $scroll.scrollTop(),
cache = module.cache,
fits = cache.fits,
sameHeight = cache.sameHeight,
element = cache.element,
scrollContext = cache.scrollContext,
context = cache.context,
offset = (module.is.bottom() && settings.pushing)
? settings.bottomOffset
: settings.offset,
scroll = {
top : cachedPosition + offset,
bottom : cachedPosition + offset + scrollContext.height
},
elementScroll = (fits)
? 0
: module.get.elementScroll(scroll.top),
// shorthand
doesntFit = !fits,
elementVisible = (element.height !== 0)
;
if(elementVisible && !sameHeight) {
if( module.is.initialPosition() ) {
if(scroll.top >= context.bottom) {
module.debug('Initial element position is bottom of container');
module.bindBottom();
}
else if(scroll.top > element.top) {
if( (element.height + scroll.top - elementScroll) >= context.bottom ) {
module.debug('Initial element position is bottom of container');
module.bindBottom();
}
else {
module.debug('Initial element position is fixed');
module.fixTop();
}
}
}
else if( module.is.fixed() ) {
// currently fixed top
if( module.is.top() ) {
if( scroll.top <= element.top ) {
module.debug('Fixed element reached top of container');
module.setInitialPosition();
}
else if( (element.height + scroll.top - elementScroll) >= context.bottom ) {
module.debug('Fixed element reached bottom of container');
module.bindBottom();
}
// scroll element if larger than screen
else if(doesntFit) {
module.set.scroll(elementScroll);
module.save.lastScroll(scroll.top);
module.save.elementScroll(elementScroll);
}
}
// currently fixed bottom
else if(module.is.bottom() ) {
// top edge
if( (scroll.bottom - element.height) <= element.top) {
module.debug('Bottom fixed rail has reached top of container');
module.setInitialPosition();
}
// bottom edge
else if(scroll.bottom >= context.bottom) {
module.debug('Bottom fixed rail has reached bottom of container');
module.bindBottom();
}
// scroll element if larger than screen
else if(doesntFit) {
module.set.scroll(elementScroll);
module.save.lastScroll(scroll.top);
module.save.elementScroll(elementScroll);
}
}
}
else if( module.is.bottom() ) {
if( scroll.top <= element.top ) {
module.debug('Jumped from bottom fixed to top fixed, most likely used home/end button');
module.setInitialPosition();
}
else {
if(settings.pushing) {
if(module.is.bound() && scroll.bottom <= context.bottom ) {
module.debug('Fixing bottom attached element to bottom of browser.');
module.fixBottom();
}
}
else {
if(module.is.bound() && (scroll.top <= context.bottom - element.height) ) {
module.debug('Fixing bottom attached element to top of browser.');
module.fixTop();
}
}
}
}
}
},
bindTop: function() {
module.debug('Binding element to top of parent container');
module.remove.offset();
$module
.css({
left : '',
top : '',
marginBottom : ''
})
.removeClass(className.fixed)
.removeClass(className.bottom)
.addClass(className.bound)
.addClass(className.top)
;
settings.onTop.call(element);
settings.onUnstick.call(element);
},
bindBottom: function() {
module.debug('Binding element to bottom of parent container');
module.remove.offset();
$module
.css({
left : '',
top : ''
})
.removeClass(className.fixed)
.removeClass(className.top)
.addClass(className.bound)
.addClass(className.bottom)
;
settings.onBottom.call(element);
settings.onUnstick.call(element);
},
setInitialPosition: function() {
module.debug('Returning to initial position');
module.unfix();
module.unbind();
},
fixTop: function() {
module.debug('Fixing element to top of page');
if(settings.setSize) {
module.set.size();
}
module.set.minimumSize();
module.set.offset();
$module
.css({
left : module.cache.element.left,
bottom : '',
marginBottom : ''
})
.removeClass(className.bound)
.removeClass(className.bottom)
.addClass(className.fixed)
.addClass(className.top)
;
settings.onStick.call(element);
},
fixBottom: function() {
module.debug('Sticking element to bottom of page');
if(settings.setSize) {
module.set.size();
}
module.set.minimumSize();
module.set.offset();
$module
.css({
left : module.cache.element.left,
bottom : '',
marginBottom : ''
})
.removeClass(className.bound)
.removeClass(className.top)
.addClass(className.fixed)
.addClass(className.bottom)
;
settings.onStick.call(element);
},
unbind: function() {
if( module.is.bound() ) {
module.debug('Removing container bound position on element');
module.remove.offset();
$module
.removeClass(className.bound)
.removeClass(className.top)
.removeClass(className.bottom)
;
}
},
unfix: function() {
if( module.is.fixed() ) {
module.debug('Removing fixed position on element');
module.remove.minimumSize();
module.remove.offset();
$module
.removeClass(className.fixed)
.removeClass(className.top)
.removeClass(className.bottom)
;
settings.onUnstick.call(element);
}
},
reset: function() {
module.debug('Resetting elements position');
module.unbind();
module.unfix();
module.resetCSS();
module.remove.offset();
module.remove.lastScroll();
},
resetCSS: function() {
$module
.css({
width : '',
height : ''
})
;
$container
.css({
height: ''
})
;
},
setting: function(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.silent && 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.silent && 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() {
if(!settings.silent) {
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, 0);
},
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 {
return false;
}
});
}
if ( $.isFunction( found ) ) {
response = found.apply(context, passedArguments);
}
else if(found !== undefined) {
response = found;
}
if(Array.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.sticky.settings = {
name : 'Sticky',
namespace : 'sticky',
silent : false,
debug : false,
verbose : true,
performance : true,
// whether to stick in the opposite direction on scroll up
pushing : false,
context : false,
container : false,
// Context to watch scroll events
scrollContext : window,
// Offset to adjust scroll
offset : 0,
// Offset to adjust scroll when attached to bottom of screen
bottomOffset : 0,
// will only set container height if difference between context and container is larger than this number
jitter : 5,
// set width of sticky element when it is fixed to page (used to make sure 100% width is maintained if no fixed size set)
setSize : true,
// Whether to automatically observe changes with Mutation Observers
observeChanges : false,
// Called when position is recalculated
onReposition : function(){},
// Called on each scroll
onScroll : function(){},
// Called when element is stuck to viewport
onStick : function(){},
// Called when element is unstuck from viewport
onUnstick : function(){},
// Called when element reaches top of context
onTop : function(){},
// Called when element reaches bottom of context
onBottom : function(){},
error : {
container : 'Sticky element must be inside a relative container',
visible : 'Element is hidden, you must call refresh after element becomes visible. Use silent setting to surpress this warning in production.',
method : 'The method you called is not defined.',
invalidContext : 'Context specified does not exist',
elementSize : 'Sticky element is larger than its container, cannot create sticky.'
},
className : {
bound : 'bound',
fixed : 'fixed',
supported : 'native',
top : 'top',
bottom : 'bottom'
}
};
})( jQuery, window, document );

View file

@ -0,0 +1,74 @@
/*!
* # Fomantic-UI - Sticky
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'sticky';
@import (multiple) '../../theme.config';
/*******************************
Sticky
*******************************/
.ui.sticky {
position: static;
transition: @transition;
z-index: @zIndex;
}
/*******************************
States
*******************************/
/* Bound */
.ui.sticky.bound {
position: absolute;
left: auto;
right: auto;
}
/* Fixed */
.ui.sticky.fixed {
position: fixed;
left: auto;
right: auto;
}
/* Bound/Fixed Position */
.ui.sticky.bound.top,
.ui.sticky.fixed.top {
top: 0;
bottom: auto;
}
.ui.sticky.bound.bottom,
.ui.sticky.fixed.bottom {
top: auto;
bottom: 0;
}
/*******************************
Types
*******************************/
.ui.native.sticky {
position: -webkit-sticky;
position: -moz-sticky;
position: -ms-sticky;
position: -o-sticky;
position: sticky;
}
.loadUIOverrides();

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,91 @@
/*!
* # Fomantic-UI - Tab
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'tab';
@import (multiple) '../../theme.config';
/*******************************
UI Tabs
*******************************/
.ui.tab {
display: none;
}
/*******************************
States
*******************************/
/*--------------------
Active
---------------------*/
.ui.tab.active,
.ui.tab.open {
display: block;
}
& when (@variationTabLoading) {
/*--------------------
Loading
---------------------*/
.ui.tab.loading {
position: relative;
overflow: hidden;
display: block;
min-height: @loadingMinHeight;
}
.ui.tab.loading * {
position: @loadingContentPosition !important;
left: @loadingContentOffset !important;
}
.ui.tab.loading:before,
.ui.tab.loading.segment:before {
position: absolute;
content: '';
top: @loaderDistanceFromTop;
left: 50%;
margin: @loaderMargin;
width: @loaderSize;
height: @loaderSize;
border-radius: @circularRadius;
border: @loaderLineWidth solid @loaderFillColor;
}
.ui.tab.loading:after,
.ui.tab.loading.segment:after {
position: absolute;
content: '';
top: @loaderDistanceFromTop;
left: 50%;
margin: @loaderMargin;
width: @loaderSize;
height: @loaderSize;
animation: loader @loaderSpeed infinite linear;
border: @loaderLineWidth solid @loaderLineColor;
border-radius: @circularRadius;
box-shadow: 0 0 0 1px transparent;
}
}
.loadUIOverrides();

View file

@ -0,0 +1,872 @@
/*!
* # Fomantic-UI - Toast
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
;(function ($, window, document, undefined) {
'use strict';
$.isFunction = $.isFunction || function(obj) {
return typeof obj === "function" && typeof obj.nodeType !== "number";
};
window = (typeof window != 'undefined' && window.Math == Math)
? window
: (typeof self != 'undefined' && self.Math == Math)
? self
: Function('return this')()
;
$.fn.toast = 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 = ( $.isPlainObject(parameters) )
? $.extend(true, {}, $.fn.toast.settings, parameters)
: $.extend({}, $.fn.toast.settings),
className = settings.className,
selector = settings.selector,
error = settings.error,
namespace = settings.namespace,
fields = settings.fields,
eventNamespace = '.' + namespace,
moduleNamespace = namespace + '-module',
$module = $(this),
$toastBox,
$toast,
$actions,
$progress,
$progressBar,
$animationObject,
$close,
$context = (settings.context)
? $(settings.context)
: $('body'),
isToastComponent = $module.hasClass('toast') || $module.hasClass('message') || $module.hasClass('card'),
element = this,
instance = isToastComponent ? $module.data(moduleNamespace) : undefined,
module
;
module = {
initialize: function() {
module.verbose('Initializing element');
if (!module.has.container()) {
module.create.container();
}
if(isToastComponent || settings.message !== '' || settings.title !== '' || module.get.iconClass() !== '' || settings.showImage || module.has.configActions()) {
if(typeof settings.showProgress !== 'string' || [className.top,className.bottom].indexOf(settings.showProgress) === -1 ) {
settings.showProgress = false;
}
module.create.toast();
if(settings.closeOnClick && (settings.closeIcon || $($toast).find(selector.input).length > 0 || module.has.configActions())){
settings.closeOnClick = false;
}
if(!settings.closeOnClick) {
$toastBox.addClass(className.unclickable);
}
module.bind.events();
}
module.instantiate();
if($toastBox) {
module.show();
}
},
instantiate: function() {
module.verbose('Storing instance of toast');
instance = module;
$module
.data(moduleNamespace, instance)
;
},
destroy: function() {
if($toastBox) {
module.debug('Removing toast', $toastBox);
module.unbind.events();
$toastBox.remove();
$toastBox = undefined;
$toast = undefined;
$animationObject = undefined;
settings.onRemove.call($toastBox, element);
$progress = undefined;
$progressBar = undefined;
$close = undefined;
}
$module
.removeData(moduleNamespace)
;
},
show: function(callback) {
callback = callback || function(){};
module.debug('Showing toast');
if(settings.onShow.call($toastBox, element) === false) {
module.debug('onShow callback returned false, cancelling toast animation');
return;
}
module.animate.show(callback);
},
close: function(callback) {
callback = callback || function(){};
module.remove.visible();
module.unbind.events();
module.animate.close(callback);
},
create: {
container: function() {
module.verbose('Creating container');
$context.append($('<div/>',{class: settings.position + ' ' + className.container}));
},
toast: function() {
$toastBox = $('<div/>', {class: className.box});
if (!isToastComponent) {
module.verbose('Creating toast');
$toast = $('<div/>');
var $content = $('<div/>', {class: className.content});
var iconClass = module.get.iconClass();
if (iconClass !== '') {
$toast.append($('<i/>', {class: iconClass + ' ' + className.icon}));
}
if (settings.showImage) {
$toast.append($('<img>', {
class: className.image + ' ' + settings.classImage,
src: settings.showImage
}));
}
if (settings.title !== '') {
$content.append($('<div/>', {
class: className.title,
text: settings.title
}));
}
$content.append($('<div/>', {html: module.helpers.escape(settings.message, settings.preserveHTML)}));
$toast
.addClass(settings.class + ' ' + className.toast)
.append($content)
;
$toast.css('opacity', settings.opacity);
if (settings.closeIcon) {
$close = $('<i/>', {class: className.close + ' ' + (typeof settings.closeIcon === 'string' ? settings.closeIcon : '')});
if($close.hasClass(className.left)) {
$toast.prepend($close);
} else {
$toast.append($close);
}
}
} else {
$toast = settings.cloneModule ? $module.clone().removeAttr('id') : $module;
$close = $toast.find('> i'+module.helpers.toClass(className.close));
settings.closeIcon = ($close.length > 0);
}
if ($toast.hasClass(className.compact)) {
settings.compact = true;
}
if ($toast.hasClass('card')) {
settings.compact = false;
}
$actions = $toast.find('.actions');
if (module.has.configActions()) {
if ($actions.length === 0) {
$actions = $('<div/>', {class: className.actions + ' ' + (settings.classActions || '')}).appendTo($toast);
}
if($toast.hasClass('card') && !$actions.hasClass(className.attached)) {
$actions.addClass(className.extraContent);
if($actions.hasClass(className.vertical)) {
$actions.removeClass(className.vertical);
module.error(error.verticalCard);
}
}
settings.actions.forEach(function (el) {
var icon = el[fields.icon] ? '<i class="' + module.helpers.deQuote(el[fields.icon]) + ' icon"></i>' : '',
text = module.helpers.escape(el[fields.text] || '', settings.preserveHTML),
cls = module.helpers.deQuote(el[fields.class] || ''),
click = el[fields.click] && $.isFunction(el[fields.click]) ? el[fields.click] : function () {};
$actions.append($('<button/>', {
html: icon + text,
class: className.button + ' ' + cls,
click: function () {
if (click.call(element, $module) === false) {
return;
}
module.close();
}
}));
});
}
if ($actions && $actions.hasClass(className.vertical)) {
$toast.addClass(className.vertical);
}
if($actions.length > 0 && !$actions.hasClass(className.attached)) {
if ($actions && (!$actions.hasClass(className.basic) || $actions.hasClass(className.left))) {
$toast.addClass(className.actions);
}
}
if(settings.displayTime === 'auto'){
settings.displayTime = Math.max(settings.minDisplayTime, $toast.text().split(" ").length / settings.wordsPerMinute * 60000);
}
$toastBox.append($toast);
if($actions.length > 0 && $actions.hasClass(className.attached)) {
$actions.addClass(className.buttons);
$actions.detach();
$toast.addClass(className.attached);
if (!$actions.hasClass(className.vertical)) {
if ($actions.hasClass(className.top)) {
$toastBox.prepend($actions);
$toast.addClass(className.bottom);
} else {
$toastBox.append($actions);
$toast.addClass(className.top);
}
} else {
$toast.wrap(
$('<div/>',{
class:className.vertical + ' ' +
className.attached + ' ' +
(settings.compact ? className.compact : '')
})
);
if($actions.hasClass(className.left)) {
$toast.addClass(className.left).parent().addClass(className.left).prepend($actions);
} else {
$toast.parent().append($actions);
}
}
}
if($module !== $toast) {
$module = $toast;
element = $toast[0];
}
if(settings.displayTime > 0) {
var progressingClass = className.progressing+' '+(settings.pauseOnHover ? className.pausable:'');
if (!!settings.showProgress) {
$progress = $('<div/>', {
class: className.progress + ' ' + (settings.classProgress || settings.class),
'data-percent': ''
});
if(!settings.classProgress) {
if ($toast.hasClass('toast') && !$toast.hasClass(className.inverted)) {
$progress.addClass(className.inverted);
} else {
$progress.removeClass(className.inverted);
}
}
$progressBar = $('<div/>', {class: 'bar '+(settings.progressUp ? 'up ' : 'down ')+progressingClass});
$progress
.addClass(settings.showProgress)
.append($progressBar);
if ($progress.hasClass(className.top)) {
$toastBox.prepend($progress);
} else {
$toastBox.append($progress);
}
$progressBar.css('animation-duration', settings.displayTime / 1000 + 's');
}
$animationObject = $('<span/>',{class:'wait '+progressingClass});
$animationObject.css('animation-duration', settings.displayTime / 1000 + 's');
$animationObject.appendTo($toast);
}
if (settings.compact) {
$toastBox.addClass(className.compact);
$toast.addClass(className.compact);
if($progress) {
$progress.addClass(className.compact);
}
}
if (settings.newestOnTop) {
$toastBox.prependTo(module.get.container());
}
else {
$toastBox.appendTo(module.get.container());
}
}
},
bind: {
events: function() {
module.debug('Binding events to toast');
if(settings.closeOnClick || settings.closeIcon) {
(settings.closeIcon ? $close : $toast)
.on('click' + eventNamespace, module.event.click)
;
}
if($animationObject) {
$animationObject.on('animationend' + eventNamespace, module.close);
}
$toastBox
.on('click' + eventNamespace, selector.approve, module.event.approve)
.on('click' + eventNamespace, selector.deny, module.event.deny)
;
}
},
unbind: {
events: function() {
module.debug('Unbinding events to toast');
if(settings.closeOnClick || settings.closeIcon) {
(settings.closeIcon ? $close : $toast)
.off('click' + eventNamespace)
;
}
if($animationObject) {
$animationObject.off('animationend' + eventNamespace);
}
$toastBox
.off('click' + eventNamespace)
;
}
},
animate: {
show: function(callback) {
callback = $.isFunction(callback) ? callback : function(){};
if(settings.transition && module.can.useElement('transition') && $module.transition('is supported')) {
module.set.visible();
$toastBox
.transition({
animation : settings.transition.showMethod + ' in',
queue : false,
debug : settings.debug,
verbose : settings.verbose,
duration : settings.transition.showDuration,
onComplete : function() {
callback.call($toastBox, element);
settings.onVisible.call($toastBox, element);
}
})
;
}
},
close: function(callback) {
callback = $.isFunction(callback) ? callback : function(){};
module.debug('Closing toast');
if(settings.onHide.call($toastBox, element) === false) {
module.debug('onHide callback returned false, cancelling toast animation');
return;
}
if(settings.transition && $.fn.transition !== undefined && $module.transition('is supported')) {
$toastBox
.transition({
animation : settings.transition.hideMethod + ' out',
queue : false,
duration : settings.transition.hideDuration,
debug : settings.debug,
verbose : settings.verbose,
interval : 50,
onBeforeHide: function(callback){
callback = $.isFunction(callback)?callback : function(){};
if(settings.transition.closeEasing !== ''){
if($toastBox) {
$toastBox.css('opacity', 0);
$toastBox.wrap('<div/>').parent().slideUp(500, settings.transition.closeEasing, function () {
if ($toastBox) {
$toastBox.parent().remove();
callback.call($toastBox);
}
});
}
} else {
callback.call($toastBox);
}
},
onComplete : function() {
callback.call($toastBox, element);
settings.onHidden.call($toastBox, element);
module.destroy();
}
})
;
}
else {
module.error(error.noTransition);
}
},
pause: function() {
$animationObject.css('animationPlayState','paused');
if($progressBar) {
$progressBar.css('animationPlayState', 'paused');
}
},
continue: function() {
$animationObject.css('animationPlayState','running');
if($progressBar) {
$progressBar.css('animationPlayState', 'running');
}
}
},
has: {
container: function() {
module.verbose('Determining if there is already a container');
return ($context.find(module.helpers.toClass(settings.position) + selector.container).length > 0);
},
toast: function(){
return !!module.get.toast();
},
toasts: function(){
return module.get.toasts().length > 0;
},
configActions: function () {
return Array.isArray(settings.actions) && settings.actions.length > 0;
}
},
get: {
container: function() {
return ($context.find(module.helpers.toClass(settings.position) + selector.container)[0]);
},
toastBox: function() {
return $toastBox || null;
},
toast: function() {
return $toast || null;
},
toasts: function() {
return $(module.get.container()).find(selector.box);
},
iconClass: function() {
return typeof settings.showIcon === 'string' ? settings.showIcon : settings.showIcon && settings.icons[settings.class] ? settings.icons[settings.class] : '';
},
remainingTime: function() {
return $animationObject ? $animationObject.css('opacity') * settings.displayTime : 0;
}
},
set: {
visible: function() {
$toast.addClass(className.visible);
}
},
remove: {
visible: function() {
$toast.removeClass(className.visible);
}
},
event: {
click: function(event) {
if($(event.target).closest('a').length === 0) {
settings.onClick.call($toastBox, element);
module.close();
}
},
approve: function() {
if(settings.onApprove.call(element, $module) === false) {
module.verbose('Approve callback returned false cancelling close');
return;
}
module.close();
},
deny: function() {
if(settings.onDeny.call(element, $module) === false) {
module.verbose('Deny callback returned false cancelling close');
return;
}
module.close();
}
},
helpers: {
toClass: function(selector) {
var
classes = selector.split(' '),
result = ''
;
classes.forEach(function (element) {
result += '.' + element;
});
return result;
},
deQuote: function(string) {
return String(string).replace(/"/g,"");
},
escape: function(string, preserveHTML) {
if (preserveHTML){
return string;
}
var
badChars = /[<>"'`]/g,
shouldEscape = /[&<>"'`]/,
escape = {
"<": "&lt;",
">": "&gt;",
'"': "&quot;",
"'": "&#x27;",
"`": "&#x60;"
},
escapedChar = function(chr) {
return escape[chr];
}
;
if(shouldEscape.test(string)) {
string = string.replace(/&(?![a-z0-9#]{1,6};)/, "&amp;");
return string.replace(badChars, escapedChar);
}
return string;
}
},
can: {
useElement: function(element){
if ($.fn[element] !== undefined) {
return true;
}
module.error(error.noElement.replace('{element}',element));
return false;
}
},
setting: function(name, value) {
module.debug('Changing setting', name, value);
if( $.isPlainObject(name) ) {
$.extend(true, settings, name);
}
else if(value !== undefined) {
if($.isPlainObject(settings[name])) {
$.extend(true, settings[name], value);
}
else {
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.silent && 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.silent && 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() {
if(!settings.silent) {
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(Array.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();
returnedValue = $module;
}
})
;
return (returnedValue !== undefined)
? returnedValue
: this
;
};
$.fn.toast.settings = {
name : 'Toast',
namespace : 'toast',
silent : false,
debug : false,
verbose : false,
performance : true,
context : 'body',
position : 'top right',
class : 'neutral',
classProgress : false,
classActions : false,
classImage : 'mini',
title : '',
message : '',
displayTime : 3000, // set to zero to require manually dismissal, otherwise hides on its own
minDisplayTime : 1000, // minimum displaytime in case displayTime is set to 'auto'
wordsPerMinute : 120,
showIcon : false,
newestOnTop : false,
showProgress : false,
pauseOnHover : true,
progressUp : false, //if true, the bar will start at 0% and increase to 100%
opacity : 1,
compact : true,
closeIcon : false,
closeOnClick : true,
cloneModule : true,
actions : false,
preserveHTML : true,
showImage : false,
// transition settings
transition : {
showMethod : 'scale',
showDuration : 500,
hideMethod : 'scale',
hideDuration : 500,
closeEasing : 'easeOutCubic' //Set to empty string to stack the closed toast area immediately (old behaviour)
},
error: {
method : 'The method you called is not defined.',
noElement : 'This module requires ui {element}',
verticalCard : 'Vertical but not attached actions are not supported for card layout'
},
className : {
container : 'ui toast-container',
box : 'floating toast-box',
progress : 'ui attached active progress',
toast : 'ui toast',
icon : 'centered icon',
visible : 'visible',
content : 'content',
title : 'ui header',
actions : 'actions',
extraContent : 'extra content',
button : 'ui button',
buttons : 'ui buttons',
close : 'close icon',
image : 'ui image',
vertical : 'vertical',
attached : 'attached',
inverted : 'inverted',
compact : 'compact',
pausable : 'pausable',
progressing : 'progressing',
top : 'top',
bottom : 'bottom',
left : 'left',
basic : 'basic',
unclickable : 'unclickable'
},
icons : {
info : 'info',
success : 'checkmark',
warning : 'warning',
error : 'times'
},
selector : {
container : '.ui.toast-container',
box : '.toast-box',
toast : '.ui.toast',
input : 'input:not([type="hidden"]), textarea, select, button, .ui.button, ui.dropdown',
approve : '.actions .positive, .actions .approve, .actions .ok',
deny : '.actions .negative, .actions .deny, .actions .cancel'
},
fields : {
class : 'class',
text : 'text',
icon : 'icon',
click : 'click'
},
// callbacks
onShow : function(){},
onVisible : function(){},
onClick : function(){},
onHide : function(){},
onHidden : function(){},
onRemove : function(){},
onApprove : function(){},
onDeny : function(){}
};
$.extend( $.easing, {
easeOutBounce: function (x, t, b, c, d) {
if ((t/=d) < (1/2.75)) {
return c*(7.5625*t*t) + b;
} else if (t < (2/2.75)) {
return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b;
} else if (t < (2.5/2.75)) {
return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b;
} else {
return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b;
}
},
easeOutCubic: function (t) {
return (--t)*t*t+1;
}
});
})( jQuery, window, document );

View file

@ -0,0 +1,590 @@
/*!
* # Fomantic-UI - Toast
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'toast';
@import (multiple) '../../theme.config';
/*******************************
Toast container
*******************************/
.ui.toast-container {
position: fixed;
z-index: 9999;
&.top when (@variationToastTop) {
&.right when (@variationToastRight) {
top: @toastContainerDistance;
right: @toastContainerDistance;
margin-left: @toastContainerDistance;
}
&.left when (@variationToastLeft) {
top: @toastContainerDistance;
left: @toastContainerDistance;
margin-right: @toastContainerDistance;
}
&.center when (@variationToastCenter) {
left: 50%;
transform: translate(-50%, 0);
top: @toastContainerDistance;
}
}
&.bottom when (@variationToastBottom) {
&.right when (@variationToastRight) {
bottom: @toastContainerDistance;
right: @toastContainerDistance;
margin-left: @toastContainerDistance;
}
&.left when (@variationToastLeft) {
bottom: @toastContainerDistance;
left: @toastContainerDistance;
margin-right: @toastContainerDistance;
}
&.center when (@variationToastCenter) {
left: 50%;
transform: translate(-50%, 0);
bottom: @toastContainerDistance;
}
}
& .visible.toast-box,
.animating.toast-box,
.toast-box {
display: table !important;
}
& .toast-box {
margin-bottom: @toastBoxMarginBottom;
border-radius: @defaultBorderRadius;
cursor: default;
&:hover {
opacity: @toastOpacityOnHover;
}
&:not(.unclickable):hover {
cursor: @toastCursorOnHover;
}
& when (@variationToastFloating) {
&.floating,
&.hoverfloating:hover {
box-shadow: @floatingShadow;
border: @toastBoxBorder;
}
}
&.compact,
> .compact {
width: @toastWidth;
}
& > .ui.toast,
> .ui.message {
margin: @toastMargin;
position: relative;
}
& > .attached.progress when (@variationToastProgress) {
z-index:1;
&.bottom {
margin: @toastMarginProgress -@toastLeftRightMargin @toastMarginBottom;
}
&.top {
margin: @toastMarginBottom -@toastLeftRightMargin @toastMarginProgress;
}
& .bar {
min-width: 0;
}
&.info .bar.bar.bar {
background: @toastInfoProgressColor;
}
&.warning .bar.bar.bar {
background: @toastWarningProgressColor;
}
&.success .bar.bar.bar {
background: @toastSuccessProgressColor;
}
.error .bar.bar.bar {
background: @toastErrorProgressColor;
}
&.neutral .bar.bar.bar {
background: @toastNeutralProgressColor;
}
}
& > .ui.message when (@variationToastMessage) {
& > .close.icon when (@variationToastClose){
top: @toastCloseTopDistance;
right: @toastCloseRightDistance;
}
& > .actions:last-child when (@variationToastActions) {
margin-bottom: @toastActionMargin;
}
&.icon when (@variationToastIcon) {
align-items: inherit;
& > :not(.icon):not(.actions) {
padding-left: @toastIconMessageContentPadding;
}
& > .icon:not(.close) when (@variationToastIcon) {
display: inline-block;
position: absolute;
width: @toastIconMessageWidth;
top: 50%;
transform: translateY(-50%);
}
&:not(.vertical) {
&.actions > .icon:not(.close) when (@variationToastActions) and (@variationToastIcon) {
top: e(%("calc(50%% - %d)", @toastIconCenteredAdjustment));
transform: none;
}
&.icon.icon.icon when (@variationToastIcon){
display: block;
}
}
}
}
& .ui.toast {
& > .close.icon when (@variationToastClose){
cursor: pointer;
margin: 0;
opacity: @toastCloseOpacity;
transition: @toastCloseTransition;
&:hover {
opacity: 1;
}
}
&.vertical > .close.icon when (@variationToastVertical) and (@variationToastClose) {
margin-top: -@toastCloseTopDistance;
margin-right: -@toastCloseTopDistance;
}
&:not(.vertical) > .close.icon when (@variationToastClose) {
position: absolute;
top: @toastCloseTopDistance;
&:not(.left) {
right: @toastCloseRightDistance;
}
&.left {
margin-left: -@toastCloseRightDistance;
}
}
}
& .ui.card when (@variationToastCard) {
margin:0;
&.attached:not(.vertical) when (@variationToastAttached) {
&.bottom {
border-top-left-radius: 0;
border-top-right-radius: 0;
&.horizontal {
& > .image > img {
border-top-left-radius: 0;
}
& > .image:last-child > img {
border-top-right-radius: 0;
}
}
}
&.top {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
&.horizontal {
& > .image > img {
border-bottom-left-radius: 0;
}
& > .image:last-child > img {
border-bottom-right-radius: 0;
}
}
}
}
&.horizontal.actions when (@variationToastActions) {
& > .image > img {
border-bottom-left-radius: 0;
}
& > .image:last-child > img {
border-bottom-right-radius: 0;
}
}
}
& .progressing {
animation-iteration-count: 1;
animation-timing-function: linear;
& when (@variationToastProgress) {
&.up {
animation-name: progressUp;
}
&.down {
animation-name: progressDown;
}
}
&.wait {
animation-name: progressWait;
}
}
&:hover .pausable.progressing {
animation-play-state: paused;
}
& .ui.toast:not(.vertical) {
display:block;
}
& :not(.comment) {
&:not(.card) .actions when (@variationToastActions) {
margin: @toastActionMarginTop @toastActionMargin @toastActionMargin @toastActionMargin;
}
& .actions when (@variationToastActions) {
padding: @toastActionPadding @toastActionPadding @toastActionPaddingBottom @toastActionPadding;
text-align: right;
&.attached:not(.vertical) when (@variationToastAttached) {
margin-right: @toastLeftRightMargin;
}
&:not(.basic):not(.attached) {
background: @toastActionBackground;
border-top: @toastActionBorder;
}
&.left {
text-align: left;
}
}
}
& when (@variationToastVertical) {
& .vertical.actions > .button,
& > .vertical > .vertical.vertical,
& > .vertical.vertical.vertical {
display: flex;
}
}
& :not(.comment) .vertical.actions when (@variationToastVertical) and (@variationToastActions) {
flex-direction: column;
& > .button {
justify-content: center;
}
&.attached > .button when (@variationToastAttached) {
align-items: center;
}
&:not(.attached) {
border-top: 0;
margin-top: -@toastActionPaddingBottom;
margin-bottom: -@toastActionPaddingBottom;
margin-left: @toastActionMarginLeft;
justify-content: space-around;
&:not(.basic) {
border-left: @toastActionBorder;
}
& > .button:not(:last-child) {
margin-bottom: @toastActionMarginBottom;
}
&.top {
justify-content: flex-start;
}
&.bottom {
justify-content: flex-end;
}
}
}
}
}
.ui.vertical.attached when (@variationToastVertical) and (@variationToastAttached) {
&:not(.left) {
&.card when (@variationToastCard) {
& > .image > img {
border-top-right-radius: 0;
}
&.horizontal > .image:last-child > img {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
}
&.card,
&.toast {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
&.actions when (@variationToastActions) {
border-top-right-radius: @toastBorderRadius;
border-bottom-right-radius: @toastBorderRadius;
& .button:first-child,
.button:last-child {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
}
&.message when (@variationToastMessage) {
border-top-right-radius: 0;
border-bottom-left-radius: @toastBorderRadius;
}
}
&.left {
&.card when (@variationToastCard) {
& > .image > img {
border-top-left-radius: 0;
}
&.horizontal > .image > img {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
}
&.card,
&.toast {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
&.actions when (@variationToastActions) {
border-top-left-radius: @toastBorderRadius;
border-bottom-left-radius: @toastBorderRadius;
& .button:first-child,
.button:last-child {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
& .button:not(:first-child):not(:last-child) {
margin-left: -@toastLeftRightMargin;
}
}
&.message.message.message when (@variationToastMessage) {
border-top-right-radius: @toastBorderRadius;
border-bottom-right-radius: @toastBorderRadius;
}
}
}
.ui.attached:not(.vertical) when (@variationToastAttached) {
&:not(.top) {
&.actions when (@variationToastActions) {
border-bottom-left-radius: @toastBorderRadius;
border-bottom-right-radius: @toastBorderRadius;
& .button:first-child {
border-bottom-left-radius: @toastBorderRadius;
}
& .button:last-child {
border-bottom-right-radius: @toastBorderRadius;
}
}
}
&.top {
&.actions when (@variationToastActions) {
border-top-left-radius: @toastBorderRadius;
border-top-right-radius: @toastBorderRadius;
& .button:first-child {
border-top-left-radius: @toastBorderRadius;
}
& .button:last-child {
border-top-right-radius: @toastBorderRadius;
}
}
}
}
/*******************************
Toast
*******************************/
.ui.toast {
display: none;
border-radius: @defaultBorderRadius;
padding: @toastPadding;
margin: @toastMargin;
color: @toastInvertedTextColor;
background-color: @toastNeutralColor;
& > .content > .header {
font-weight: bold;
color: inherit;
margin:0;
}
&.info when (@variationToastInfo) {
background-color: @toastInfoColor;
color: @toastTextColor;
}
&.warning when (@variationToastWarning) {
background-color: @toastWarningColor;
color: @toastTextColor;
}
&.success when (@variationToastSuccess) {
background-color: @toastSuccessColor;
color: @toastTextColor;
}
&.error when (@variationToastError) {
background-color: @toastErrorColor;
color: @toastTextColor;
}
&.neutral {
background-color: @toastNeutralColor;
color: @toastNeutralTextColor;
}
& > .icon:not(.close) when (@variationToastIcon) {
font-size: @toastIconFontSize;
}
&:not(.vertical) {
& > .icon:not(.close) when (@variationToastIcon) {
position: absolute;
& + .content {
padding-left: @toastIconContentPadding;
}
}
& > .close.icon + .content when (@variationToastClose){
padding-left: @toastCloseDistance;
}
& > .ui.image when (@variationToastImage) {
position: absolute;
&.avatar + .content {
padding-left: @toastAvatarImageContentPadding;
min-height: @toastAvatarImageHeight;
}
&.mini + .content {
padding-left: @toastMiniImageContentPadding;
min-height: @toastMiniImageHeight;
}
&.tiny + .content {
padding-left: @toastTinyImageContentPadding;
min-height: @toastTinyImageHeight;
}
&.small + .content {
padding-left: @toastSmallImageContentPadding;
min-height: @toastSmallImageHeight;
}
}
& when (@variationToastImage) or (@variationToastIcon) {
& > .centered.image,
> .centered.icon {
transform: translateY(-50%);
top: 50%;
}
}
&.actions > .centered.image when (@variationToastActions) and (@variationToastImage) {
top: e(%("calc(50%% - %d)", @toastImageCenteredAdjustment));
}
&.actions > .centered.icon when (@variationToastActions) and (@variationToastIcon) {
top: e(%("calc(50%% - %d)", @toastIconCenteredAdjustment));
}
}
&.vertical when (@variationToastVertical) {
& > .close.icon + .content when (@variationToastClose){
padding-left: @toastCloseDistanceVertical;
}
& when (@variationToastImage) or (@variationToastIcon) {
& > .ui.image + .content,
> .icon:not(.close) + .content {
padding-left: @toastImageContentPadding;
}
}
& > .ui.image when (@variationToastImage){
align-self: flex-start;
flex-shrink:0; /* IE11 fix */
}
& when (@variationToastImage) or (@variationToastIcon) {
& > .centered.image,
> .centered.icon {
align-self: center;
}
}
}
&.attached when (@variationToastAttached) {
&.bottom {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
&.top {
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
}
}
.ui.hoverfloating.message:hover when (@variationToastMessage) and (@variationToastFloating) {
box-shadow: 0 0 0 1px inset, @floatingShadow;
}
.ui.center.toast-container .toast-box,
.ui.right.toast-container .toast-box {
margin-left: auto;
}
.ui.center.toast-container .toast-box {
margin-right: auto;
}
/*--------------
Colors
-------------- */
each(@colors, {
@color: replace(@key, '@', '');
@c: @colors[@@color][color];
@l: @colors[@@color][light];
.ui.@{color}.toast {
background-color: @c;
color: @toastTextColor;
}
& when (@variationToastInverted) {
.ui.inverted.@{color}.toast,
.ui.toast-container .toast-box > .inverted.@{color}.attached.progress .bar {
background-color: @l;
color: @toastInvertedTextColor;
}
}
})
& when (@variationToastInverted) {
.ui.inverted.toast {
color: @toastTextColor;
background-color: @toastInvertedColor;
}
}
@media only screen and (max-width: @mobileToastBreakpoint) {
.ui.toast-container .toast-box {
&.toast-box,
& > .compact,
& > .vertical > *,
& > * {
width: auto;
max-width: 100%;
}
& > *:not(.vertical) {
min-width: @mobileWidth;
}
& when (@variationToastCard) {
& > .ui.card.horizontal,
> .vertical > .ui.horizontal.card {
min-width: initial;
}
}
}
}
/*---------------
Progress Bar
----------------*/
& when (@variationToastProgress) {
@keyframes progressDown {
0% {
width: 100%;
}
100% {
width: 0;
}
}
@keyframes progressUp {
0% {
width: 0;
}
100% {
width: 100%;
}
}
}
@keyframes progressWait {
0% {
opacity: 1;
}
100% {
opacity: 0;
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,82 @@
/*!
* # Fomantic-UI - Transition
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'module';
@element : 'transition';
@import (multiple) '../../theme.config';
/*******************************
Transitions
*******************************/
.transition {
animation-iteration-count: 1;
animation-duration: @transitionDefaultDuration;
animation-timing-function: @transitionDefaultEasing;
animation-fill-mode: @transitionDefaultFill;
}
/*******************************
States
*******************************/
/* Animating */
.animating.transition {
backface-visibility: @backfaceVisibility;
visibility: visible !important;
}
& when (@variationTransitionLoading) {
/* Loading */
.loading.transition {
position: absolute;
top: -99999px;
left: -99999px;
}
}
/* Hidden */
.hidden.transition {
display: none;
visibility: hidden;
}
/* Visible */
.visible.transition {
display: block !important;
visibility: visible !important;
/* backface-visibility: @backfaceVisibility;
transform: @use3DAcceleration;*/
}
& when (@variationTransitionDisabled) {
/* Disabled */
.disabled.transition {
animation-play-state: paused;
}
}
/*******************************
Variations
*******************************/
& when (@variationTransitionLoading) {
.looping.transition {
animation-iteration-count: infinite;
}
}
.loadUIOverrides();

View file

@ -0,0 +1,297 @@
/*!
* # Fomantic-UI - Ad
* http://github.com/fomantic/Fomantic-UI/
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'view';
@element : 'ad';
@import (multiple) '../../theme.config';
/*******************************
Advertisement
*******************************/
.ui.ad {
display: block;
overflow: @overflow;
margin: @margin;
}
.ui.ad:first-child {
margin: 0;
}
.ui.ad:last-child {
margin: 0;
}
.ui.ad iframe {
margin: 0;
padding: 0;
border: none;
overflow: hidden;
}
/*--------------
Common
---------------*/
& when (@variationAdLeaderboard) {
/* Leaderboard */
.ui.leaderboard.ad {
width: 728px;
height: 90px;
}
}
& when (@variationAdRectangle) {
/* 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;
}
}
& when (@variationAdSquare) {
/*--------------
Square
---------------*/
/* Square */
.ui.square.ad {
width: 250px;
height: 250px;
}
/* Small Square */
.ui[class*="small square"].ad {
width: 200px;
height: 200px;
}
}
& when (@variationAdRectangle) {
/*--------------
Rectangle
---------------*/
/* Small Rectangle */
.ui[class*="small rectangle"].ad {
width: 180px;
height: 150px;
}
/* Vertical Rectangle */
.ui[class*="vertical rectangle"].ad {
width: 240px;
height: 400px;
}
}
& when (@variationAdButton) {
/*--------------
Button
---------------*/
.ui.button.ad {
width: 120px;
height: 90px;
}
& when (@variationAdSquare) {
.ui[class*="square button"].ad {
width: 125px;
height: 125px;
}
}
.ui[class*="small button"].ad {
width: 120px;
height: 60px;
}
}
& when (@variationAdSkyscraper) {
/*--------------
Skyscrapers
---------------*/
/* Skyscraper */
.ui.skyscraper.ad {
width: 120px;
height: 600px;
}
/* Wide Skyscraper */
.ui[class*="wide skyscraper"].ad {
width: 160px;
}
}
& when (@variationAdBanner) {
/*--------------
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
---------------*/
& when (@variationAdLeaderboard) {
/* Leaderboard */
.ui[class*="large leaderboard"].ad {
width: 970px;
height: 90px;
}
}
& when (@variationAdBillboard) {
/* Billboard */
.ui.billboard.ad {
width: 970px;
height: 250px;
}
}
& when (@variationAdPanorama) {
/*--------------
Panorama
---------------*/
/* Panorama */
.ui.panorama.ad {
width: 980px;
height: 120px;
}
}
& when (@variationAdNetboard) {
/*--------------
Netboard
---------------*/
/* Netboard */
.ui.netboard.ad {
width: 580px;
height: 400px;
}
}
& when (@variationAdMobile) {
/*--------------
Mobile
---------------*/
& when (@variationAdBanner) {
/* Large Mobile Banner */
.ui[class*="large mobile banner"].ad {
width: 320px;
height: 100px;
}
}
& when (@variationAdLeaderboard) {
/* 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 : @largestMobileScreen) {
.ui.mobile.ad {
display: block;
}
}
}
/*******************************
Variations
*******************************/
& when (@variationAdCentered) {
.ui.centered.ad {
margin-left: auto;
margin-right: auto;
}
}
& when (@variationAdTest) {
.ui.test.ad {
position: relative;
background: @testBackground;
}
.ui.test.ad:after {
position: absolute;
top: 50%;
left: 50%;
width: 100%;
text-align: center;
transform: translateX(-50%) translateY(-50%);
content: @testText;
color: @testColor;
font-size: @testFontSize;
font-weight: @testFontWeight;
}
& when (@variationAdMobile) {
.ui.mobile.test.ad:after {
font-size: @testMobileFontSize;
}
}
.ui.test.ad[data-text]:after {
content: attr(data-text);
}
}
.loadUIOverrides();

View file

@ -0,0 +1,978 @@
/*!
* # Fomantic-UI - Card
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'view';
@element : 'card';
@import (multiple) '../../theme.config';
/*******************************
Standard
*******************************/
/*--------------
Card
---------------*/
.ui.cards > .card,
.ui.card {
max-width: 100%;
position: relative;
display: @display;
flex-direction: column;
width: @width;
min-height: @minHeight;
background: @background;
padding: @padding;
border: @border;
border-radius: @borderRadius;
box-shadow: @boxShadow;
transition: @transition;
z-index: @zIndex;
word-wrap: break-word;
}
.ui.card {
margin: @margin;
}
.ui.cards > .card a,
.ui.card a {
cursor: pointer;
}
.ui.card:first-child {
margin-top: 0;
}
.ui.card:last-child {
margin-bottom: 0;
}
/*--------------
Cards
---------------*/
.ui.cards {
display: @groupDisplay;
margin: @groupMargin;
flex-wrap: wrap;
}
.ui.cards > .card {
display: @groupCardDisplay;
margin: @groupCardMargin;
float: @groupCardFloat;
}
/* Clearing */
.ui.cards:after,
.ui.card:after {
display: block;
content: ' ';
height: 0;
clear: both;
overflow: hidden;
visibility: hidden;
}
/* Consecutive Card Groups Preserve Row Spacing */
.ui.cards ~ .ui.cards {
margin-top: @consecutiveGroupDistance;
}
/*--------------
Rounded Edges
---------------*/
.ui.cards > .card > :first-child,
.ui.card > :first-child {
border-radius: @borderRadius @borderRadius 0 0 !important;
border-top: none !important;
}
.ui.cards > .card > :last-child,
.ui.card > :last-child {
border-radius: 0 0 @borderRadius @borderRadius !important;
}
.ui.cards > .card > :only-child,
.ui.card > :only-child {
border-radius: @borderRadius !important;
}
/*--------------
Images
---------------*/
.ui.cards > .card > .image,
.ui.card > .image {
position: relative;
display: block;
flex: 0 0 auto;
padding: @imagePadding;
background: @imageBackground;
}
.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: @imageBorder;
}
/*--------------
Content
---------------*/
.ui.cards > .card > .content,
.ui.card > .content {
flex-grow: 1;
border: @contentBorder;
border-top: @contentDivider;
background: @contentBackground;
margin: @contentMargin;
padding: @contentPadding;
box-shadow: @contentBoxShadow;
font-size: @contentFontSize;
border-radius: @contentBorderRadius;
}
.ui.cards > .card > .content:after,
.ui.card > .content:after {
display: block;
content: ' ';
height: 0;
clear: both;
overflow: hidden;
visibility: hidden;
}
.ui.cards > .card > .content > .header,
.ui.card > .content > .header {
display: block;
margin: @headerMargin;
font-family: @headerFont;
color: @headerColor;
}
/* Default Header Size */
.ui.cards > .card > .content > .header:not(.ui),
.ui.card > .content > .header:not(.ui) {
font-weight: @headerFontWeight;
font-size: @headerFontSize;
margin-top: @headerLineHeightOffset;
line-height: @headerLineHeight;
}
.ui.cards > .card > .content > .meta + .description,
.ui.cards > .card > .content > .header + .description,
.ui.card > .content > .meta + .description,
.ui.card > .content > .header + .description {
margin-top: @descriptionDistance;
}
/*----------------
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: @contentImageVerticalAlign;
width: @contentImageWidth;
}
.ui.cards > .card img.avatar,
.ui.cards > .card .avatar img,
.ui.card img.avatar,
.ui.card .avatar img {
width: @avatarSize;
height: @avatarSize;
border-radius: @avatarBorderRadius;
}
/*--------------
Description
---------------*/
.ui.cards > .card > .content > .description,
.ui.card > .content > .description {
clear: both;
color: @descriptionColor;
}
/*--------------
Paragraph
---------------*/
.ui.cards > .card > .content p,
.ui.card > .content p {
margin: 0 0 @paragraphDistance;
}
.ui.cards > .card > .content p:last-child,
.ui.card > .content p:last-child {
margin-bottom: 0;
}
/*--------------
Meta
---------------*/
.ui.cards > .card .meta,
.ui.card .meta {
font-size: @metaFontSize;
color: @metaColor;
}
.ui.cards > .card .meta *,
.ui.card .meta * {
margin-right: @metaSpacing;
}
.ui.cards > .card .meta :last-child,
.ui.card .meta :last-child {
margin-right: 0;
}
.ui.cards > .card .meta [class*="right floated"],
.ui.card .meta [class*="right floated"] {
margin-right: 0;
margin-left: @metaSpacing;
}
/*--------------
Links
---------------*/
/* Generic */
.ui.cards > .card > .content a:not(.ui),
.ui.card > .content a:not(.ui) {
color: @contentLinkColor;
transition: @contentLinkTransition;
}
.ui.cards > .card > .content a:not(.ui):hover,
.ui.card > .content a:not(.ui):hover {
color: @contentLinkHoverColor;
}
/* Header */
.ui.cards > .card > .content > a.header,
.ui.card > .content > a.header {
color: @headerLinkColor;
}
.ui.cards > .card > .content > a.header:hover,
.ui.card > .content > a.header:hover {
color: @headerLinkHoverColor;
}
/* Meta */
.ui.cards > .card .meta > a:not(.ui),
.ui.card .meta > a:not(.ui) {
color: @metaLinkColor;
}
.ui.cards > .card .meta > a:not(.ui):hover,
.ui.card .meta > a:not(.ui):hover {
color: @metaLinkHoverColor;
}
/*--------------
Buttons
---------------*/
.ui.cards > .card > .buttons,
.ui.card > .buttons,
.ui.cards > .card > .button,
.ui.card > .button {
margin: @buttonMargin;
width: @buttonWidth;
&:last-child {
margin-bottom: -@borderWidth;
}
}
/*--------------
Dimmer
---------------*/
.ui.cards > .card .dimmer,
.ui.card .dimmer {
background-color: @dimmerColor;
z-index: @dimmerZIndex;
}
/*--------------
Labels
---------------*/
/*-----Star----- */
/* Icon */
.ui.cards > .card > .content .star.icon,
.ui.card > .content .star.icon {
cursor: pointer;
opacity: @actionOpacity;
transition: @actionTransition;
}
.ui.cards > .card > .content .star.icon:hover,
.ui.card > .content .star.icon:hover {
opacity: @actionHoverOpacity;
color: @starColor;
}
.ui.cards > .card > .content .active.star.icon,
.ui.card > .content .active.star.icon {
color: @starActiveColor;
}
/*-----Like----- */
/* Icon */
.ui.cards > .card > .content .like.icon,
.ui.card > .content .like.icon {
cursor: pointer;
opacity: @actionOpacity;
transition: @actionTransition;
}
.ui.cards > .card > .content .like.icon:hover,
.ui.card > .content .like.icon:hover {
opacity: @actionHoverOpacity;
color: @likeColor;
}
.ui.cards > .card > .content .active.like.icon,
.ui.card > .content .active.like.icon {
color: @likeActiveColor;
}
/*----------------
Extra Content
-----------------*/
.ui.cards > .card > .extra,
.ui.card > .extra {
max-width: 100%;
min-height: 0 !important;
flex-grow: 0;
border-top: @extraDivider !important;
position: @extraPosition;
background: @extraBackground;
width: @extraWidth;
margin: @extraMargin;
padding: @extraPadding;
top: @extraTop;
left: @extraLeft;
color: @extraColor;
box-shadow: @extraBoxShadow;
transition: @extraTransition;
}
.ui.cards > .card > .extra a:not(.ui),
.ui.card > .extra a:not(.ui) {
color: @extraLinkColor;
}
.ui.cards > .card > .extra a:not(.ui):hover,
.ui.card > .extra a:not(.ui):hover {
color: @extraLinkHoverColor;
}
/*******************************
Variations
*******************************/
& when (@variationCardHorizontal) {
/*-------------------
Horizontal
--------------------*/
.ui.horizontal.cards > .card,
.ui.card.horizontal {
flex-direction: row;
flex-wrap: wrap;
min-width: @horizontalMinWidth;
width: @horizontalWidth;
max-width: 100%;
}
.ui.horizontal.cards > .card > .image,
.ui.card.horizontal > .image {
border-radius: @defaultBorderRadius 0 0 @defaultBorderRadius;
width: @horizontalImageWidth;
}
.ui.horizontal.cards > .card > .image > img,
.ui.card.horizontal > .image > img {
background-size: cover;
background-repeat: no-repeat;
background-position: center;
justify-content: center;
align-items: center;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
width: 100%;
height: 100%;
border-radius: @defaultBorderRadius 0 0 @defaultBorderRadius;
}
.ui.horizontal.cards > .card > .image:last-child > img,
.ui.card.horizontal > .image:last-child > img {
border-radius: 0 @defaultBorderRadius @defaultBorderRadius 0;
}
.ui.horizontal.cards > .card > .content, .ui.horizontal.card > .content {
flex-basis: 1px;
}
.ui.horizontal.cards > .card > .extra, .ui.horizontal.card > .extra {
flex-basis: 100%;
}
}
& when (@variationCardRaised) {
/*-------------------
Raised
--------------------*/
.ui.raised.cards > .card,
.ui.raised.card {
box-shadow: @raisedShadow;
}
& when (@variationCardLink) {
.ui.raised.cards a.card:hover,
.ui.link.cards .raised.card:hover,
a.ui.raised.card:hover,
.ui.link.raised.card:hover {
box-shadow: @raisedShadowHover;
}
}
}
& when (@variationCardCentered) {
/*-------------------
Centered
--------------------*/
.ui.centered.cards {
justify-content: center;
}
.ui.centered.card {
margin-left: auto;
margin-right: auto;
}
}
& when (@variationCardFluid) {
/*-------------------
Fluid
--------------------*/
.ui.fluid.card {
width: 100%;
max-width: 9999px;
}
}
& when (@variationCardLink) {
/*-------------------
Link
--------------------*/
.ui.cards a.card,
.ui.link.cards .card,
a.ui.card,
.ui.link.card {
transform: none;
}
.ui.cards a.card:hover,
.ui.link.cards .card:not(.icon):hover,
a.ui.card:hover,
.ui.link.card:hover {
cursor: pointer;
z-index: @linkHoverZIndex;
background: @linkHoverBackground;
border: @linkHoverBorder;
box-shadow: @linkHoverBoxShadow;
transform: @linkHoverTransform;
}
}
/*-------------------
Colors
--------------------*/
each(@colors,{
@color: replace(@key,'@','');
@c: @colors[@@color][color];
@h: @colors[@@color][hover];
@l: @colors[@@color][light];
@lh: @colors[@@color][lightHover];
.ui.@{color}.cards > .card,
.ui.cards > .@{color}.card,
.ui.@{color}.card {
box-shadow:
@borderShadow,
0 @coloredShadowDistance 0 0 @c,
@shadowBoxShadow
;
&:hover {
box-shadow:
@borderShadow,
0 @coloredShadowDistance 0 0 @h,
@shadowHoverBoxShadow
;
}
}
& when (@variationCardInverted) {
.ui.inverted.@{color}.cards > .card,
.ui.inverted.cards > .@{color}.card,
.ui.inverted.@{color}.card {
box-shadow:
0 @shadowDistance 3px 0 @solidWhiteBorderColor,
0 @coloredShadowDistance 0 0 @l,
0 0 0 @borderWidth @solidWhiteBorderColor
;
&:hover {
box-shadow:
0 @shadowDistance 3px 0 @solidWhiteBorderColor,
0 @coloredShadowDistance 0 0 @lh,
0 0 0 @borderWidth @solidWhiteBorderColor
;
}
}
}
})
/*--------------
Card Count
---------------*/
.ui.one.cards {
margin-left: @oneCardOffset;
margin-right: @oneCardOffset;
}
.ui.one.cards > .card {
width: @oneCard;
}
.ui.two.cards {
margin-left: @twoCardOffset;
margin-right: @twoCardOffset;
}
.ui.two.cards > .card {
width: @twoCard;
margin-left: @twoCardSpacing;
margin-right: @twoCardSpacing;
}
.ui.three.cards {
margin-left: @threeCardOffset;
margin-right: @threeCardOffset;
}
.ui.three.cards > .card {
width: @threeCard;
margin-left: @threeCardSpacing;
margin-right: @threeCardSpacing;
}
.ui.four.cards {
margin-left: @fourCardOffset;
margin-right: @fourCardOffset;
}
.ui.four.cards > .card {
width: @fourCard;
margin-left: @fourCardSpacing;
margin-right: @fourCardSpacing;
}
.ui.five.cards {
margin-left: @fiveCardOffset;
margin-right: @fiveCardOffset;
}
.ui.five.cards > .card {
width: @fiveCard;
margin-left: @fiveCardSpacing;
margin-right: @fiveCardSpacing;
}
.ui.six.cards {
margin-left: @sixCardOffset;
margin-right: @sixCardOffset;
}
.ui.six.cards > .card {
width: @sixCard;
margin-left: @sixCardSpacing;
margin-right: @sixCardSpacing;
}
.ui.seven.cards {
margin-left: @sevenCardOffset;
margin-right: @sevenCardOffset;
}
.ui.seven.cards > .card {
width: @sevenCard;
margin-left: @sevenCardSpacing;
margin-right: @sevenCardSpacing;
}
.ui.eight.cards {
margin-left: @eightCardOffset;
margin-right: @eightCardOffset;
}
.ui.eight.cards > .card {
width: @eightCard;
margin-left: @eightCardSpacing;
margin-right: @eightCardSpacing;
font-size: 11px;
}
.ui.nine.cards {
margin-left: @nineCardOffset;
margin-right: @nineCardOffset;
}
.ui.nine.cards > .card {
width: @nineCard;
margin-left: @nineCardSpacing;
margin-right: @nineCardSpacing;
font-size: 10px;
}
.ui.ten.cards {
margin-left: @tenCardOffset;
margin-right: @tenCardOffset;
}
.ui.ten.cards > .card {
width: @tenCard;
margin-left: @tenCardSpacing;
margin-right: @tenCardSpacing;
}
& when (@variationCardDoubling) {
/*-------------------
Doubling
--------------------*/
/* Mobile Only */
@media only screen and (max-width : @largestMobileScreen) {
.ui.two.doubling.cards {
margin-left: @oneCardOffset;
margin-right: @oneCardOffset;
}
.ui.two.doubling.cards > .card {
width: @oneCard;
margin-left: @oneCardSpacing;
margin-right: @oneCardSpacing;
}
.ui.three.doubling.cards {
margin-left: @twoCardOffset;
margin-right: @twoCardOffset;
}
.ui.three.doubling.cards > .card {
width: @twoCard;
margin-left: @twoCardSpacing;
margin-right: @twoCardSpacing;
}
.ui.four.doubling.cards {
margin-left: @twoCardOffset;
margin-right: @twoCardOffset;
}
.ui.four.doubling.cards > .card {
width: @twoCard;
margin-left: @twoCardSpacing;
margin-right: @twoCardSpacing;
}
.ui.five.doubling.cards {
margin-left: @twoCardOffset;
margin-right: @twoCardOffset;
}
.ui.five.doubling.cards > .card {
width: @twoCard;
margin-left: @twoCardSpacing;
margin-right: @twoCardSpacing;
}
.ui.six.doubling.cards {
margin-left: @twoCardOffset;
margin-right: @twoCardOffset;
}
.ui.six.doubling.cards > .card {
width: @twoCard;
margin-left: @twoCardSpacing;
margin-right: @twoCardSpacing;
}
.ui.seven.doubling.cards {
margin-left: @threeCardOffset;
margin-right: @threeCardOffset;
}
.ui.seven.doubling.cards > .card {
width: @threeCard;
margin-left: @threeCardSpacing;
margin-right: @threeCardSpacing;
}
.ui.eight.doubling.cards {
margin-left: @threeCardOffset;
margin-right: @threeCardOffset;
}
.ui.eight.doubling.cards > .card {
width: @threeCard;
margin-left: @threeCardSpacing;
margin-right: @threeCardSpacing;
}
.ui.nine.doubling.cards {
margin-left: @threeCardOffset;
margin-right: @threeCardOffset;
}
.ui.nine.doubling.cards > .card {
width: @threeCard;
margin-left: @threeCardSpacing;
margin-right: @threeCardSpacing;
}
.ui.ten.doubling.cards {
margin-left: @threeCardOffset;
margin-right: @threeCardOffset;
}
.ui.ten.doubling.cards > .card {
width: @threeCard;
margin-left: @threeCardSpacing;
margin-right: @threeCardSpacing;
}
}
/* Tablet Only */
@media only screen and (min-width : @tabletBreakpoint) and (max-width : @largestTabletScreen) {
.ui.two.doubling.cards {
margin-left: @oneCardOffset;
margin-right: @oneCardOffset;
}
.ui.two.doubling.cards > .card {
width: @oneCard;
margin-left: @oneCardSpacing;
margin-right: @oneCardSpacing;
}
.ui.three.doubling.cards {
margin-left: @twoCardOffset;
margin-right: @twoCardOffset;
}
.ui.three.doubling.cards > .card {
width: @twoCard;
margin-left: @twoCardSpacing;
margin-right: @twoCardSpacing;
}
.ui.four.doubling.cards {
margin-left: @twoCardOffset;
margin-right: @twoCardOffset;
}
.ui.four.doubling.cards > .card {
width: @twoCard;
margin-left: @twoCardSpacing;
margin-right: @twoCardSpacing;
}
.ui.five.doubling.cards {
margin-left: @threeCardOffset;
margin-right: @threeCardOffset;
}
.ui.five.doubling.cards > .card {
width: @threeCard;
margin-left: @threeCardSpacing;
margin-right: @threeCardSpacing;
}
.ui.six.doubling.cards {
margin-left: @threeCardOffset;
margin-right: @threeCardOffset;
}
.ui.six.doubling.cards > .card {
width: @threeCard;
margin-left: @threeCardSpacing;
margin-right: @threeCardSpacing;
}
.ui.eight.doubling.cards {
margin-left: @threeCardOffset;
margin-right: @threeCardOffset;
}
.ui.eight.doubling.cards > .card {
width: @threeCard;
margin-left: @threeCardSpacing;
margin-right: @threeCardSpacing;
}
.ui.eight.doubling.cards {
margin-left: @fourCardOffset;
margin-right: @fourCardOffset;
}
.ui.eight.doubling.cards > .card {
width: @fourCard;
margin-left: @fourCardSpacing;
margin-right: @fourCardSpacing;
}
.ui.nine.doubling.cards {
margin-left: @fourCardOffset;
margin-right: @fourCardOffset;
}
.ui.nine.doubling.cards > .card {
width: @fourCard;
margin-left: @fourCardSpacing;
margin-right: @fourCardSpacing;
}
.ui.ten.doubling.cards {
margin-left: @fiveCardOffset;
margin-right: @fiveCardOffset;
}
.ui.ten.doubling.cards > .card {
width: @fiveCard;
margin-left: @fiveCardSpacing;
margin-right: @fiveCardSpacing;
}
}
}
& when (@variationCardStackable) {
/*-------------------
Stackable
--------------------*/
@media only screen and (max-width : @largestMobileScreen) {
.ui.stackable.cards {
display: block !important;
}
.ui.stackable.cards .card:first-child {
margin-top: 0 !important;
}
.ui.stackable.cards > .card {
display: block !important;
height: auto !important;
margin: @stackableRowSpacing @stackableCardSpacing;
padding: 0 !important;
width: @stackableMargin !important;
}
}
}
/*--------------
Size
---------------*/
.ui.cards > .card {
font-size: @medium;
}
& when not (@variationCardSizes = false) {
each(@variationCardSizes, {
@s: @@value;
.ui.@{value}.cards .card {
font-size: @s;
}
})
}
& when (@variationCardInverted) {
/*-----------------
Inverted
------------------*/
.ui.inverted.cards > .card,
.ui.inverted.card {
background: @invertedBackground;
box-shadow: @invertedBoxShadow;
}
/* Content */
.ui.inverted.cards > .card > .content,
.ui.inverted.card > .content {
border-top: @invertedContentDivider;
}
/* Header */
.ui.inverted.cards > .card > .content > .header,
.ui.inverted.card > .content > .header {
color: @invertedHeaderColor;
}
/* Description */
.ui.inverted.cards > .card > .content > .description,
.ui.inverted.card > .content > .description {
color: @invertedDescriptionColor;
}
/* Meta */
.ui.inverted.cards > .card .meta,
.ui.inverted.card .meta {
color: @invertedMetaColor;
}
.ui.inverted.cards > .card .meta > a:not(.ui),
.ui.inverted.card .meta > a:not(.ui) {
color: @invertedMetaLinkColor;
}
.ui.inverted.cards > .card .meta > a:not(.ui):hover,
.ui.inverted.card .meta > a:not(.ui):hover {
color: @invertedMetaLinkHoverColor;
}
/* Extra */
.ui.inverted.cards > .card > .extra,
.ui.inverted.card > .extra {
border-top: @invertedExtraDivider !important;
color: @invertedExtraColor;
}
.ui.inverted.cards > .card > .extra a:not(.ui),
.ui.inverted.card > .extra a:not(.ui) {
color: @invertedExtraLinkColor;
}
.ui.inverted.cards > .card > .extra a:not(.ui):hover,
.ui.inverted.card > .extra a:not(.ui):hover {
color: @extraLinkHoverColor;
}
/* Link card(s) */
.ui.inverted.cards a.card:hover,
.ui.inverted.link.cards .card:not(.icon):hover,
a.inverted.ui.card:hover,
.ui.inverted.link.card:hover {
background: @invertedLinkHoverBackground;
}
}
.loadUIOverrides();

View file

@ -0,0 +1,291 @@
/*!
* # Fomantic-UI - Comment
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'view';
@element : 'comment';
@import (multiple) '../../theme.config';
/*******************************
Standard
*******************************/
/*--------------
Comments
---------------*/
.ui.comments {
margin: @margin;
max-width: @maxWidth;
}
.ui.comments:first-child {
margin-top: 0;
}
.ui.comments:last-child {
margin-bottom: 0;
}
/*--------------
Comment
---------------*/
.ui.comments .comment {
position: relative;
background: @commentBackground;
margin: @commentMargin;
padding: @commentPadding;
border: @commentBorder;
border-top: @commentDivider;
line-height: @commentLineHeight;
}
.ui.comments .comment:first-child {
margin-top: @firstCommentMargin;
padding-top: @firstCommentPadding;
}
/*--------------------
Nested Comments
---------------------*/
.ui.comments .comment > .comments {
margin: @nestedCommentsMargin;
padding: @nestedCommentsPadding;
}
.ui.comments .comment > .comments:before{
position: absolute;
top: 0;
left: 0;
}
.ui.comments .comment > .comments .comment {
border: @nestedCommentBorder;
border-top: @nestedCommentDivider;
background: @nestedCommentBackground;
}
/*--------------
Avatar
---------------*/
.ui.comments .comment .avatar {
display: @avatarDisplay;
width: @avatarWidth;
height: @avatarHeight;
float: @avatarFloat;
margin: @avatarMargin;
}
.ui.comments .comment img.avatar,
.ui.comments .comment .avatar img {
display: block;
margin: 0 auto;
width: 100%;
height: 100%;
border-radius: @avatarBorderRadius;
}
/*--------------
Content
---------------*/
.ui.comments .comment > .content {
display: block;
}
/* If there is an avatar move content over */
.ui.comments .comment > .avatar ~ .content {
margin-left: @contentMargin;
}
/*--------------
Author
---------------*/
.ui.comments .comment .author {
font-size: @authorFontSize;
color: @authorColor;
font-weight: @authorFontWeight;
}
.ui.comments .comment a.author {
cursor: pointer;
}
.ui.comments .comment a.author:hover {
color: @authorHoverColor;
}
/*--------------
Metadata
---------------*/
.ui.comments .comment .metadata {
display: @metadataDisplay;
margin-left: @metadataSpacing;
color: @metadataColor;
font-size: @metadataFontSize;
}
.ui.comments .comment .metadata > * {
display: inline-block;
margin: 0 @metadataContentSpacing 0 0;
}
.ui.comments .comment .metadata > :last-child {
margin-right: 0;
}
/*--------------------
Comment Text
---------------------*/
.ui.comments .comment .text {
margin: @textMargin;
font-size: @textFontSize;
word-wrap: @textWordWrap;
color: @textColor;
line-height: @textLineHeight;
}
/*--------------------
User Actions
---------------------*/
.ui.comments .comment .actions {
font-size: @actionFontSize;
}
.ui.comments .comment .actions a {
cursor: pointer;
display: inline-block;
margin: 0 @actionContentDistance 0 0;
color: @actionLinkColor;
}
.ui.comments .comment .actions a:last-child {
margin-right: 0;
}
.ui.comments .comment .actions a.active,
.ui.comments .comment .actions a:hover {
color: @actionLinkHoverColor;
}
/*--------------------
Reply Form
---------------------*/
.ui.comments > .reply.form {
margin-top: @replyDistance;
}
.ui.comments .comment .reply.form {
width: 100%;
margin-top: @commentReplyDistance;
}
.ui.comments .reply.form textarea {
font-size: @replyFontSize;
height: @replyHeight;
}
/*******************************
State
*******************************/
.ui.collapsed.comments,
.ui.comments .collapsed.comments,
.ui.comments .collapsed.comment {
display: none;
}
/*******************************
Variations
*******************************/
& when (@variationCommentThreaded) {
/*--------------------
Threaded
---------------------*/
.ui.threaded.comments .comment > .comments {
margin: @threadedCommentMargin;
padding: @threadedCommentPadding;
box-shadow: @threadedCommentBoxShadow;
}
}
& when (@variationCommentMinimal) {
/*--------------------
Minimal
---------------------*/
.ui.minimal.comments .comment .actions {
opacity: 0;
position: @minimalActionPosition;
top: @minimalActionTop;
right: @minimalActionRight;
left: @minimalActionLeft;
transition: @minimalTransition;
transition-delay: @minimalTransitionDelay;
}
.ui.minimal.comments .comment > .content:hover > .actions {
opacity: 1;
}
}
/*-------------------
Sizes
--------------------*/
.ui.comments {
font-size: @medium;
}
& when not (@variationCommentSizes = false) {
each(@variationCommentSizes, {
@s: @@value;
.ui.@{value}.comments {
font-size: @s;
}
})
}
& when (@variationCommentInverted) {
/*-------------------
Inverted
--------------------*/
.ui.inverted.comments .comment {
background-color: @black;
}
.ui.inverted.comments .comment .author,
.ui.inverted.comments .comment .text {
color: @invertedTextColor;
}
.ui.inverted.comments .comment .metadata,
.ui.inverted.comments .comment .actions a {
color: @invertedLightTextColor;
}
.ui.inverted.comments .comment a.author:hover,
.ui.inverted.comments .comment .actions a.active,
.ui.inverted.comments .comment .actions a:hover {
color: @invertedHoveredTextColor;
}
& when (@variationCommentThreaded) {
.ui.inverted.threaded.comments .comment > .comments {
box-shadow: -1px 0 0 @solidWhiteBorderColor;
}
}
}
.loadUIOverrides();

View file

@ -0,0 +1,304 @@
/*!
* # Fomantic-UI - Feed
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'view';
@element : 'feed';
@import (multiple) '../../theme.config';
/*******************************
Activity Feed
*******************************/
.ui.feed {
margin: @margin;
}
.ui.feed:first-child {
margin-top: 0;
}
.ui.feed:last-child {
margin-bottom: 0;
}
/*******************************
Content
*******************************/
/* Event */
.ui.feed > .event {
display: flex;
flex-direction: row;
width: @eventWidth;
padding: @eventPadding;
margin: @eventMargin;
background: @eventBackground;
border-top: @eventDivider;
}
.ui.feed > .event:first-child {
border-top: 0;
padding-top: 0;
}
.ui.feed > .event:last-child {
padding-bottom: 0;
}
/* Event Label */
.ui.feed > .event > .label {
display: block;
flex: 0 0 auto;
width: @labelWidth;
height: @labelHeight;
align-self: @labelAlignSelf;
text-align: @labelTextAlign;
}
.ui.feed > .event > .label .icon {
opacity: @iconLabelOpacity;
font-size: @iconLabelSize;
width: @iconLabelWidth;
padding: @iconLabelPadding;
background: @iconLabelBackground;
border: @iconLabelBorder;
border-radius: @iconLabelBorderRadius;
color: @iconLabelColor;
}
.ui.feed > .event > .label img {
width: @imageLabelWidth;
height: @imageLabelHeight;
border-radius: @imageLabelBorderRadius;
}
.ui.feed > .event > .label + .content {
margin: @labeledContentMargin;
}
/*--------------
Content
---------------*/
/* Content */
.ui.feed > .event > .content {
display: block;
flex: 1 1 auto;
align-self: @contentAlignSelf;
text-align: @contentTextAlign;
word-wrap: @contentWordWrap;
}
.ui.feed > .event:last-child > .content {
padding-bottom: @lastLabeledContentPadding;
}
/* Link */
.ui.feed > .event > .content a {
cursor: pointer;
}
/*--------------
Date
---------------*/
.ui.feed > .event > .content .date {
margin: @dateMargin;
padding: @datePadding;
color: @dateColor;
font-weight: @dateFontWeight;
font-size: @dateFontSize;
font-style: @dateFontStyle;
}
/*--------------
Summary
---------------*/
.ui.feed > .event > .content .summary {
margin: @summaryMargin;
font-size: @summaryFontSize;
font-weight: @summaryFontWeight;
color: @summaryColor;
}
/* Summary Image */
.ui.feed > .event > .content .summary img {
display: inline-block;
width: @summaryImageWidth;
height: @summaryImageHeight;
margin: @summaryImageMargin;
border-radius: @summaryImageBorderRadius;
vertical-align: @summaryImageVerticalAlign;
}
/*--------------
User
---------------*/
.ui.feed > .event > .content .user {
display: inline-block;
font-weight: @userFontWeight;
margin-right: @userDistance;
vertical-align: baseline;
}
.ui.feed > .event > .content .user img {
margin: @userImageMargin;
width: @userImageWidth;
height: @userImageHeight;
vertical-align: @userImageVerticalAlign;
}
/*--------------
Inline Date
---------------*/
/* Date inside Summary */
.ui.feed > .event > .content .summary > .date {
display: @summaryDateDisplay;
float: @summaryDateFloat;
font-weight: @summaryDateFontWeight;
font-size: @summaryDateFontSize;
font-style: @summaryDateFontStyle;
margin: @summaryDateMargin;
padding: @summaryDatePadding;
color: @summaryDateColor;
}
/*--------------
Extra Summary
---------------*/
.ui.feed > .event > .content .extra {
margin: @extraMargin;
background: @extraBackground;
padding: @extraPadding;
color: @extraColor;
}
/* Images */
.ui.feed > .event > .content .extra.images img {
display: inline-block;
margin: @extraImageMargin;
width: @extraImageWidth;
}
/* Text */
.ui.feed > .event > .content .extra.text {
padding: @extraTextPadding;
border-left: @extraTextPointer;
font-size: @extraTextFontSize;
max-width: @extraTextMaxWidth;
line-height: @extraTextLineHeight;
}
/*--------------
Meta
---------------*/
.ui.feed > .event > .content .meta {
display: @metadataDisplay;
font-size: @metadataFontSize;
margin: @metadataMargin;
background: @metadataBackground;
border: @metadataBorder;
border-radius: @metadataBorderRadius;
box-shadow: @metadataBoxShadow;
padding: @metadataPadding;
color: @metadataColor;
}
.ui.feed > .event > .content .meta > * {
position: relative;
margin-left: @metadataElementSpacing;
}
.ui.feed > .event > .content .meta > *:after {
content: @metadataDivider;
color: @metadataDividerColor;
top: 0;
left: @metadataDividerOffset;
opacity: 1;
position: absolute;
vertical-align: top;
}
.ui.feed > .event > .content .meta .like {
color: @likeColor;
transition: @likeTransition;
}
.ui.feed > .event > .content .meta .like:hover .icon {
color: @likeHoverColor;
}
.ui.feed > .event > .content .meta .active.like .icon {
color: @likeActiveColor;
}
/* First element */
.ui.feed > .event > .content .meta > :first-child {
margin-left: 0;
}
.ui.feed > .event > .content .meta > :first-child::after {
display: none;
}
/* Action */
.ui.feed > .event > .content .meta a,
.ui.feed > .event > .content .meta > .icon {
cursor: @metadataActionCursor;
opacity: @metadataActionOpacity;
color: @metadataActionColor;
transition: @metadataActionTransition;
}
.ui.feed > .event > .content .meta a:hover,
.ui.feed > .event > .content .meta a:hover .icon,
.ui.feed > .event > .content .meta > .icon:hover {
color: @metadataActionHoverColor;
}
/*******************************
Variations
*******************************/
.ui.feed {
font-size: @medium;
}
& when not (@variationFeedSizes = false) {
each(@variationFeedSizes, {
@s: @@value;
.ui.@{value}.feed {
font-size: @s;
}
})
}
& when (@variationFeedInverted) {
/*------------------
Inverted
-------------------*/
.ui.inverted.feed > .event {
background: @black;
}
.ui.inverted.feed > .event > .content .date,
.ui.inverted.feed > .event > .content .meta .like {
color: @invertedLightTextColor;
}
.ui.inverted.feed > .event > .content .summary,
.ui.inverted.feed > .event > .content .extra.text {
color: @invertedTextColor;
}
.ui.inverted.feed > .event > .content .meta .like:hover {
color: @invertedSelectedTextColor;
}
}
.loadUIOverrides();

View file

@ -0,0 +1,559 @@
/*!
* # Fomantic-UI - Item
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'view';
@element : 'item';
@import (multiple) '../../theme.config';
/*******************************
Standard
*******************************/
/*--------------
Item
---------------*/
.ui.items > .item {
display: @display;
margin: @itemSpacing 0;
width: @width;
min-height: @minHeight;
background: @background;
padding: @padding;
border: @border;
border-radius: @borderRadius;
box-shadow: @boxShadow;
transition: @transition;
z-index: @zIndex;
}
.ui.items > .item a {
cursor: pointer;
}
/*--------------
Items
---------------*/
.ui.items {
margin: @groupMargin;
}
.ui.items:first-child {
margin-top: 0 !important;
}
.ui.items:last-child {
margin-bottom: 0 !important;
}
/*--------------
Item
---------------*/
.ui.items > .item:after {
display: block;
content: ' ';
height: 0;
clear: both;
overflow: hidden;
visibility: hidden;
}
.ui.items > .item:first-child {
margin-top: 0;
}
.ui.items > .item:last-child {
margin-bottom: 0;
}
/*--------------
Images
---------------*/
.ui.items > .item > .image {
position: relative;
flex: 0 0 auto;
display: @imageDisplay;
float: @imageFloat;
margin: @imageMargin;
padding: @imagePadding;
max-height: @imageMaxHeight;
align-self: @imageVerticalAlign;
}
.ui.items > .item > .image > img {
display: block;
width: 100%;
height: auto;
border-radius: @imageBorderRadius;
border: @imageBorder;
}
.ui.items > .item > .image:only-child > img {
border-radius: @borderRadius;
}
/*--------------
Content
---------------*/
.ui.items > .item > .content {
display: block;
flex: 1 1 auto;
background: @contentBackground;
color: @contentColor;
margin: @contentMargin;
padding: @contentPadding;
box-shadow: @contentBoxShadow;
font-size: @contentFontSize;
border: @contentBorder;
border-radius: @contentBorderRadius;
}
.ui.items > .item > .content:after {
display: block;
content: ' ';
height: 0;
clear: both;
overflow: hidden;
visibility: hidden;
}
.ui.items > .item > .image + .content {
min-width: 0;
width: @contentWidth;
display: @contentDisplay;
margin-left: @contentOffset;
align-self: @contentVerticalAlign;
padding-left: @contentImageDistance;
}
.ui.items > .item > .content > .header {
display: inline-block;
margin: @headerMargin;
font-family: @headerFont;
font-weight: @headerFontWeight;
color: @headerColor;
}
/* Default Header Size */
.ui.items > .item > .content > .header:not(.ui) {
font-size: @headerFontSize;
}
/*--------------
Floated
---------------*/
.ui.items > .item [class*="left floated"] {
float: left;
}
.ui.items > .item [class*="right floated"] {
float: right;
}
/*--------------
Content Image
---------------*/
.ui.items > .item .content img {
align-self: @contentImageVerticalAlign;
width: @contentImageWidth;
}
.ui.items > .item img.avatar,
.ui.items > .item .avatar img {
width: @avatarSize;
height: @avatarSize;
border-radius: @avatarBorderRadius;
}
/*--------------
Description
---------------*/
.ui.items > .item > .content > .description {
margin-top: @descriptionDistance;
max-width: @descriptionMaxWidth;
font-size: @descriptionFontSize;
line-height: @descriptionLineHeight;
color: @descriptionColor;
}
/*--------------
Paragraph
---------------*/
.ui.items > .item > .content p {
margin: 0 0 @paragraphDistance;
}
.ui.items > .item > .content p:last-child {
margin-bottom: 0;
}
/*--------------
Meta
---------------*/
.ui.items > .item .meta {
margin: @metaMargin;
font-size: @metaFontSize;
line-height: @metaLineHeight;
color: @metaColor;
}
.ui.items > .item .meta * {
margin-right: @metaSpacing;
}
.ui.items > .item .meta :last-child {
margin-right: 0;
}
.ui.items > .item .meta [class*="right floated"] {
margin-right: 0;
margin-left: @metaSpacing;
}
/*--------------
Links
---------------*/
/* Generic */
.ui.items > .item > .content a:not(.ui) {
color: @contentLinkColor;
transition: @contentLinkTransition;
}
.ui.items > .item > .content a:not(.ui):hover {
color: @contentLinkHoverColor;
}
/* Header */
.ui.items > .item > .content > a.header {
color: @headerLinkColor;
}
.ui.items > .item > .content > a.header:hover {
color: @headerLinkHoverColor;
}
/* Meta */
.ui.items > .item .meta > a:not(.ui) {
color: @metaLinkColor;
}
.ui.items > .item .meta > a:not(.ui):hover {
color: @metaLinkHoverColor;
}
/*--------------
Labels
---------------*/
/*-----Star----- */
/* Icon */
.ui.items > .item > .content .favorite.icon {
cursor: pointer;
opacity: @actionOpacity;
transition: @actionTransition;
}
.ui.items > .item > .content .favorite.icon:hover {
opacity: @actionHoverOpacity;
color: @favoriteColor;
}
.ui.items > .item > .content .active.favorite.icon {
color: @favoriteActiveColor;
}
/*-----Like----- */
/* Icon */
.ui.items > .item > .content .like.icon {
cursor: pointer;
opacity: @actionOpacity;
transition: @actionTransition;
}
.ui.items > .item > .content .like.icon:hover {
opacity: @actionHoverOpacity;
color: @likeColor;
}
.ui.items > .item > .content .active.like.icon {
color: @likeActiveColor;
}
/*----------------
Extra Content
-----------------*/
.ui.items > .item .extra {
display: @extraDisplay;
position: @extraPosition;
background: @extraBackground;
margin: @extraMargin;
width: @extraWidth;
padding: @extraPadding;
top: @extraTop;
left: @extraLeft;
color: @extraColor;
box-shadow: @extraBoxShadow;
transition: @extraTransition;
border-top: @extraDivider;
}
.ui.items > .item .extra > * {
margin: (@extraRowSpacing / 2) @extraHorizontalSpacing (@extraRowSpacing / 2) 0;
}
.ui.items > .item .extra > [class*="right floated"] {
margin: (@extraRowSpacing / 2) 0 (@extraRowSpacing / 2) @extraHorizontalSpacing;
}
.ui.items > .item .extra:after {
display: block;
content: ' ';
height: 0;
clear: both;
overflow: hidden;
visibility: hidden;
}
/*******************************
Responsive
*******************************/
/* Default Image Width */
.ui.items > .item > .image:not(.ui) {
width: @imageWidth;
}
/* Tablet Only */
@media only screen and (min-width: @tabletBreakpoint) and (max-width: @largestTabletScreen) {
.ui.items > .item {
margin: @tabletItemSpacing 0;
}
.ui.items > .item > .image:not(.ui) {
width: @tabletImageWidth;
}
.ui.items > .item > .image + .content {
display: block;
padding: 0 0 0 @tabletContentImageDistance;
}
}
/* Mobile Only */
@media only screen and (max-width: @largestMobileScreen) {
.ui.items:not(.unstackable) > .item {
flex-direction: column;
margin: @mobileItemSpacing 0;
}
.ui.items:not(.unstackable) > .item > .image {
display: block;
margin-left: auto;
margin-right: auto;
}
.ui.items:not(.unstackable) > .item > .image,
.ui.items:not(.unstackable) > .item > .image > img {
max-width: 100% !important;
width: @mobileImageWidth !important;
max-height: @mobileImageMaxHeight !important;
}
.ui.items:not(.unstackable) > .item > .image + .content {
display: block;
padding: @mobileContentImageDistance 0 0;
}
}
/*******************************
Variations
*******************************/
& when (@variationItemAligned) {
/*-------------------
Aligned
--------------------*/
.ui.items > .item > .image + [class*="top aligned"].content {
align-self: flex-start;
}
.ui.items > .item > .image + [class*="middle aligned"].content {
align-self: center;
}
.ui.items > .item > .image + [class*="bottom aligned"].content {
align-self: flex-end;
}
}
& when (@variationItemRelaxed) {
/*--------------
Relaxed
---------------*/
.ui.relaxed.items > .item {
margin: @relaxedItemSpacing 0;
}
.ui[class*="very relaxed"].items > .item {
margin: @veryRelaxedItemSpacing 0;
}
}
& when (@variationItemDivided) {
/*-------------------
Divided
--------------------*/
.ui.divided.items > .item {
border-top: @dividedBorder;
margin: @dividedMargin;
padding: @dividedPadding;
}
.ui.divided.items > .item:first-child {
border-top: none;
margin-top: @dividedFirstLastMargin !important;
padding-top: @dividedFirstLastPadding !important;
}
.ui.divided.items > .item:last-child {
margin-bottom: @dividedFirstLastMargin !important;
padding-bottom: @dividedFirstLastPadding !important;
}
& when (@variationItemRelaxed) {
/* Relaxed Divided */
.ui.relaxed.divided.items > .item {
margin: 0;
padding: @relaxedItemSpacing 0;
}
.ui[class*="very relaxed"].divided.items > .item {
margin: 0;
padding: @veryRelaxedItemSpacing 0;
}
}
}
& when (@variationItemLink) {
/*-------------------
Link
--------------------*/
.ui.items a.item:hover,
.ui.link.items > .item:hover {
cursor: pointer;
}
.ui.items a.item:hover .content .header,
.ui.link.items > .item:hover .content .header {
color: @headerLinkHoverColor;
}
}
/*--------------
Size
---------------*/
.ui.items > .item {
font-size: @relativeMedium;
}
& when not (@variationItemSizes = false) {
each(@variationItemSizes, {
@s: @{value}ItemSize;
.ui.@{value}.items > .item {
font-size: @@s;
}
})
}
& when (@variationItemUnstackable) {
/*---------------
Unstackable
----------------*/
@media only screen and (max-width: @largestMobileScreen) {
.ui.unstackable.items > .item > .image,
.ui.unstackable.items > .item > .image > img {
width: @unstackableMobileImageWidth !important;
}
}
}
& when (@variationItemInverted) {
/*--------------
Inverted
---------------*/
.ui.inverted.items > .item {
background: @invertedBackground;
}
.ui.inverted.items > .item > .content {
background: @invertedContentBackground;
color: @invertedContentColor;
}
.ui.inverted.items > .item .extra {
background: @invertedExtraBackground;
}
.ui.inverted.items > .item > .content > .header {
color: @invertedHeaderColor;
}
.ui.inverted.items > .item > .content > .description {
color: @invertedDescriptionColor;
}
.ui.inverted.items > .item .meta {
color: @invertedMetaColor;
}
.ui.inverted.items > .item > .content a:not(.ui) {
color: @invertedContentLinkColor;
}
.ui.inverted.items > .item > .content a:not(.ui):hover {
color: @invertedContentLinkHoverColor;
}
.ui.inverted.items > .item > .content > a.header {
color: @invertedHeaderLinkColor;
}
.ui.inverted.items > .item > .content > a.header:hover {
color: @invertedHeaderLinkHoverColor;
}
.ui.inverted.items > .item .meta > a:not(.ui) {
color: @invertedMetaLinkColor;
}
.ui.inverted.items > .item .meta > a:not(.ui):hover {
color: @invertedMetaLinkHoverColor;
}
.ui.inverted.items > .item > .content .favorite.icon:hover {
color: @invertedFavoriteColor;
}
.ui.inverted.items > .item > .content .active.favorite.icon {
color: @invertedFavoriteActiveColor;
}
.ui.inverted.items > .item > .content .like.icon:hover {
color: @invertedLikeColor;
}
.ui.inverted.items > .item > .content .active.like.icon {
color: @invertedLikeActiveColor;
}
.ui.inverted.items > .item .extra {
color: @invertedExtraColor;
}
.ui.inverted.items a.item:hover .content .header,
.ui.inverted.link.items > .item:hover .content .header {
color: @invertedHeaderLinkHoverColor;
}
.ui.inverted.divided.items > .item {
border-top: @invertedDividedBorder;
}
.ui.inverted.divided.items > .item:first-child {
border-top: none;
}
}
.loadUIOverrides();

View file

@ -0,0 +1,421 @@
/*!
* # Fomantic-UI - Statistic
* http://github.com/fomantic/Fomantic-UI/
*
*
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
*/
/*******************************
Theme
*******************************/
@type : 'view';
@element : 'statistic';
@import (multiple) '../../theme.config';
/*******************************
Statistic
*******************************/
/* Standalone */
.ui.statistic {
display: inline-flex;
flex-direction: column;
margin: @margin;
max-width: @maxWidth;
}
.ui.statistic + .ui.statistic {
margin: 0 0 0 @horizontalSpacing;
}
.ui.statistic:first-child {
margin-top: 0;
}
.ui.statistic:last-child {
margin-bottom: 0;
}
/*******************************
Group
*******************************/
/* Grouped */
.ui.statistics {
display: flex;
align-items: flex-start;
flex-wrap: wrap;
}
.ui.statistics > .statistic {
display: inline-flex;
flex: 0 1 auto;
flex-direction: column;
margin: @elementMargin;
max-width: @elementMaxWidth;
}
.ui.statistics {
display: flex;
margin: @groupMargin;
}
/* Clearing */
.ui.statistics:after {
display: block;
content: ' ';
height: 0;
clear: both;
overflow: hidden;
visibility: hidden;
}
.ui.statistics:first-child {
margin-top: 0;
}
/*******************************
Content
*******************************/
/*--------------
Value
---------------*/
.ui.statistics .statistic > .value,
.ui.statistic > .value {
font-family: @valueFont;
font-size: @valueSize;
font-weight: @valueFontWeight;
line-height: @valueLineHeight;
color: @valueColor;
text-transform: @valueTextTransform;
text-align: @textAlign;
}
/*--------------
Label
---------------*/
.ui.statistics .statistic > .label,
.ui.statistic > .label {
font-family: @labelFont;
font-size: @labelSize;
font-weight: @labelFontWeight;
color: @labelColor;
text-transform: @labelTextTransform;
text-align: @textAlign;
}
/* Top Label */
.ui.statistics .statistic > .label ~ .value,
.ui.statistic > .label ~ .value {
margin-top: @topLabelDistance;
}
/* Bottom Label */
.ui.statistics .statistic > .value ~ .label,
.ui.statistic > .value ~ .label {
margin-top: @bottomLabelDistance;
}
/*******************************
Types
*******************************/
/*--------------
Icon Value
---------------*/
.ui.statistics .statistic > .value .icon,
.ui.statistic > .value .icon {
opacity: 1;
width: auto;
margin: 0;
}
/*--------------
Text Value
---------------*/
.ui.statistics .statistic > .text.value,
.ui.statistic > .text.value {
line-height: @textValueLineHeight;
min-height: @textValueMinHeight;
font-weight: @textValueFontWeight;
text-align: center;
}
.ui.statistics .statistic > .text.value + .label,
.ui.statistic > .text.value + .label {
text-align: center;
}
/*--------------
Image Value
---------------*/
.ui.statistics .statistic > .value img,
.ui.statistic > .value img {
max-height: @imageHeight;
vertical-align: @imageVerticalAlign;
}
/*******************************
Variations
*******************************/
/*--------------
Count
---------------*/
.ui.ten.statistics {
margin: @itemGroupMargin;
}
.ui.ten.statistics .statistic {
min-width: @tenColumn;
margin: @itemMargin;
}
.ui.nine.statistics {
margin: @itemGroupMargin;
}
.ui.nine.statistics .statistic {
min-width: @nineColumn;
margin: @itemMargin;
}
.ui.eight.statistics {
margin: @itemGroupMargin;
}
.ui.eight.statistics .statistic {
min-width: @eightColumn;
margin: @itemMargin;
}
.ui.seven.statistics {
margin: @itemGroupMargin;
}
.ui.seven.statistics .statistic {
min-width: @sevenColumn;
margin: @itemMargin;
}
.ui.six.statistics {
margin: @itemGroupMargin;
}
.ui.six.statistics .statistic {
min-width: @sixColumn;
margin: @itemMargin;
}
.ui.five.statistics {
margin: @itemGroupMargin;
}
.ui.five.statistics .statistic {
min-width: @fiveColumn;
margin: @itemMargin;
}
.ui.four.statistics {
margin: @itemGroupMargin;
}
.ui.four.statistics .statistic {
min-width: @fourColumn;
margin: @itemMargin;
}
.ui.three.statistics {
margin: @itemGroupMargin;
}
.ui.three.statistics .statistic {
min-width: @threeColumn;
margin: @itemMargin;
}
.ui.two.statistics {
margin: @itemGroupMargin;
}
.ui.two.statistics .statistic {
min-width: @twoColumn;
margin: @itemMargin;
}
.ui.one.statistics {
margin: @itemGroupMargin;
}
.ui.one.statistics .statistic {
min-width: @oneColumn;
margin: @itemMargin;
}
& when (@variationStatisticHorizontal) {
/*--------------
Horizontal
---------------*/
.ui.horizontal.statistic {
flex-direction: row;
align-items: center;
}
.ui.horizontal.statistics {
flex-direction: column;
margin: 0;
max-width: none;
}
.ui.horizontal.statistics .statistic {
flex-direction: row;
align-items: center;
max-width: none;
margin: @horizontalGroupElementMargin;
}
.ui.horizontal.statistic > .text.value,
.ui.horizontal.statistics > .statistic > .text.value {
min-height: 0 !important;
}
.ui.horizontal.statistics .statistic > .value .icon,
.ui.horizontal.statistic > .value .icon {
width: @iconWidth;
}
.ui.horizontal.statistics .statistic > .value,
.ui.horizontal.statistic > .value {
display: inline-block;
vertical-align: middle;
}
.ui.horizontal.statistics .statistic > .label,
.ui.horizontal.statistic > .label {
display: inline-block;
vertical-align: middle;
margin: 0 0 0 @horizontalLabelDistance;
}
}
& when (@variationStatisticInverted) {
/*--------------
Inverted
---------------*/
.ui.inverted.statistics .statistic > .value,
.ui.inverted.statistic .value {
color: @invertedValueColor;
}
.ui.inverted.statistics .statistic > .label,
.ui.inverted.statistic .label {
color: @invertedLabelColor;
}
}
/*--------------
Colors
---------------*/
each(@colors,{
@color: replace(@key,'@','');
@c: @colors[@@color][color];
@l: @colors[@@color][light];
.ui.@{color}.statistics .statistic > .value,
.ui.statistics .@{color}.statistic > .value,
.ui.@{color}.statistic > .value {
color: @c;
}
& when (@variationStatisticInverted) {
.ui.inverted.@{color}.statistics .statistic > .value,
.ui.statistics .inverted.@{color}.statistic > .value,
.ui.inverted.@{color}.statistic > .value {
color: @l;
}
}
})
& when (@variationStatisticFloated) {
/*--------------
Floated
---------------*/
.ui[class*="left floated"].statistic {
float: left;
margin: @leftFloatedMargin;
}
.ui[class*="right floated"].statistic {
float: right;
margin: @rightFloatedMargin;
}
.ui.floated.statistic:last-child {
margin-bottom: 0;
}
}
& when (@variationStatisticStackable) {
/*--------------
Stackable
---------------*/
@media only screen and (max-width: @largestMobileScreen) {
.ui.stackable.statistics {
width: auto;
margin-left: 0 !important;
margin-right: 0 !important;
}
.ui.stackable.statistics > .statistic {
width: 100% !important;
margin: 0 0 !important;
padding: (@stackableRowSpacing / 2) (@stackableGutter / 2) !important;
}
}
}
/*--------------
Sizes
---------------*/
/* Medium */
.ui.statistics .statistic > .value,
.ui.statistic > .value {
font-size: @valueSize;
}
.ui.horizontal.statistics .statistic > .value,
.ui.horizontal.statistic > .value {
font-size: @horizontalValueSize;
}
.ui.statistics .statistic > .text.value,
.ui.statistic > .text.value {
font-size: @textValueSize;
}
& when not (@variationStatisticSizes = false) {
each(@variationStatisticSizes, {
@s: @{value}ValueSize;
@hs: @{value}HorizontalValueSize;
@ts: @{value}TextValueSize;
.ui.@{value}.statistics .statistic > .value,
.ui.@{value}.statistic > .value {
font-size: @@s;
}
.ui.@{value}.horizontal.statistics .statistic > .value,
.ui.@{value}.horizontal.statistic > .value {
font-size: @@hs;
}
.ui.@{value}.statistics .statistic > .text.value,
.ui.@{value}.statistic > .text.value {
font-size: @@ts;
}
})
}
.loadUIOverrides();

View file

@ -0,0 +1,19 @@
{
"name": "fomantic-ui-less",
"version": "2.8.6",
"title": "Fomantic UI",
"description": "LESS only distribution of Fomantic UI",
"homepage": "https://fomantic-ui.com",
"author": "hammy2899",
"license": "MIT",
"repository": {
"type": "git",
"url": "git://github.com/fomantic/Fomantic-UI-LESS.git"
},
"bugs": {
"url": "https://github.com/fomantic/Fomantic-UI/issues"
},
"dependencies": {
"jquery": "^3.4.0"
}
}

View file

@ -0,0 +1,72 @@
/*
███████╗███████╗███╗ ███╗ █████╗ ███╗ ██╗████████╗██╗ ██████╗ ██╗ ██╗██╗
██╔════╝██╔════╝████╗ ████║██╔══██╗████╗ ██║╚══██╔══╝██║██╔════╝ ██║ ██║██║
███████╗█████╗ ██╔████╔██║███████║██╔██╗ ██║ ██║ ██║██║ ██║ ██║██║
╚════██║██╔══╝ ██║╚██╔╝██║██╔══██║██║╚██╗██║ ██║ ██║██║ ██║ ██║██║
███████║███████╗██║ ╚═╝ ██║██║ ██║██║ ╚████║ ██║ ██║╚██████╗ ╚██████╔╝██║
╚══════╝╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚═╝
Import this file into your LESS project to use Fomantic-UI without build tools
*/
/* Global */
& { @import "definitions/globals/reset"; }
& { @import "definitions/globals/site"; }
/* Elements */
& { @import "definitions/elements/button"; }
& { @import "definitions/elements/container"; }
& { @import "definitions/elements/divider"; }
& { @import "definitions/elements/emoji"; }
& { @import "definitions/elements/flag"; }
& { @import "definitions/elements/header"; }
& { @import "definitions/elements/icon"; }
& { @import "definitions/elements/image"; }
& { @import "definitions/elements/input"; }
& { @import "definitions/elements/label"; }
& { @import "definitions/elements/list"; }
& { @import "definitions/elements/loader"; }
& { @import "definitions/elements/placeholder"; }
& { @import "definitions/elements/rail"; }
& { @import "definitions/elements/reveal"; }
& { @import "definitions/elements/segment"; }
& { @import "definitions/elements/step"; }
& { @import "definitions/elements/text"; }
/* Collections */
& { @import "definitions/collections/breadcrumb"; }
& { @import "definitions/collections/form"; }
& { @import "definitions/collections/grid"; }
& { @import "definitions/collections/menu"; }
& { @import "definitions/collections/message"; }
& { @import "definitions/collections/table"; }
/* Views */
& { @import "definitions/views/ad"; }
& { @import "definitions/views/card"; }
& { @import "definitions/views/comment"; }
& { @import "definitions/views/feed"; }
& { @import "definitions/views/item"; }
& { @import "definitions/views/statistic"; }
/* Modules */
& { @import "definitions/modules/accordion"; }
& { @import "definitions/modules/calendar"; }
& { @import "definitions/modules/checkbox"; }
& { @import "definitions/modules/dimmer"; }
& { @import "definitions/modules/dropdown"; }
& { @import "definitions/modules/embed"; }
& { @import "definitions/modules/modal"; }
& { @import "definitions/modules/nag"; }
& { @import "definitions/modules/popup"; }
& { @import "definitions/modules/progress"; }
& { @import "definitions/modules/slider"; }
& { @import "definitions/modules/rating"; }
& { @import "definitions/modules/search"; }
& { @import "definitions/modules/shape"; }
& { @import "definitions/modules/sidebar"; }
& { @import "definitions/modules/sticky"; }
& { @import "definitions/modules/tab"; }
& { @import "definitions/modules/toast"; }
& { @import "definitions/modules/transition"; }

View file

@ -0,0 +1,3 @@
/*******************************
Site Overrides
*******************************/

View file

@ -0,0 +1,3 @@
/*******************************
User Variable Overrides
*******************************/

View file

@ -0,0 +1,3 @@
/*******************************
Site Overrides
*******************************/

View file

@ -0,0 +1,3 @@
/*******************************
Site Overrides
*******************************/

View file

@ -0,0 +1,3 @@
/*-------------------
Flag Variables
--------------------*/

View file

@ -0,0 +1,3 @@
/*******************************
User Global Variables
*******************************/

View file

@ -0,0 +1,6 @@
/*******************************
User Global Variables
*******************************/
@primaryColor: #002f4e;
@pageBackground: cyan;

View file

@ -0,0 +1,3 @@
/*******************************
User Overrides
*******************************/

View file

@ -0,0 +1,99 @@
/*
████████╗██╗ ██╗███████╗███╗ ███╗███████╗███████╗
╚══██╔══╝██║ ██║██╔════╝████╗ ████║██╔════╝██╔════╝
██║ ███████║█████╗ ██╔████╔██║█████╗ ███████╗
██║ ██╔══██║██╔══╝ ██║╚██╔╝██║██╔══╝ ╚════██║
██║ ██║ ██║███████╗██║ ╚═╝ ██║███████╗███████║
╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝
*/
/*******************************
Theme Selection
*******************************/
/* To override a theme for an individual element
specify theme name below
*/
/* Global */
@site : 'default';
@reset : 'default';
/* Elements */
@button : 'default';
@container : 'default';
@divider : 'default';
@emoji : 'default';
@flag : 'default';
@header : 'default';
@icon : 'default';
@image : 'default';
@input : 'default';
@label : 'default';
@list : 'default';
@loader : 'default';
@placeholder: 'default';
@rail : 'default';
@reveal : 'default';
@segment : 'default';
@step : 'default';
@text : 'default';
/* Collections */
@breadcrumb : 'default';
@form : 'default';
@grid : 'default';
@menu : 'default';
@message : 'default';
@table : 'default';
/* Modules */
@accordion : 'default';
@calendar : 'default';
@checkbox : 'default';
@dimmer : 'default';
@dropdown : 'default';
@embed : 'default';
@modal : 'default';
@nag : 'default';
@popup : 'default';
@progress : 'default';
@slider : 'default';
@rating : 'default';
@search : 'default';
@shape : 'default';
@sidebar : 'default';
@sticky : 'default';
@tab : 'default';
@toast : 'default';
@transition : 'default';
/* Views */
@ad : 'default';
@card : 'default';
@comment : 'default';
@feed : 'default';
@item : 'default';
@statistic : 'default';
/*******************************
Folders
*******************************/
/* Path to theme packages */
@themesFolder : 'themes';
/* Path to site override folder */
@siteFolder : '../semantic-ui/site';
/*******************************
Import Theme
*******************************/
@import (multiple) "theme.less";
@fontPath : "../../../themes/@{theme}/assets/fonts";
/* End Config */

View file

@ -0,0 +1,77 @@
/*******************************
Import Directives
*******************************/
/*------------------
Theme
-------------------*/
@theme: @@element;
/*--------------------
Site Variables
---------------------*/
/* Default site.variables */
@import "@{themesFolder}/default/globals/site.variables";
/* Packaged site.variables */
@import (optional) "@{themesFolder}/@{site}/globals/site.variables";
/* Component's site.variables */
& when not (@theme = 'default') {
@import (optional) "@{themesFolder}/@{theme}/globals/site.variables";
}
/* Site theme site.variables */
@import (optional) "@{siteFolder}/globals/site.variables";
/*-------------------
Component Variables
---------------------*/
/* Default */
@import "@{themesFolder}/default/@{type}s/@{element}.variables";
/* Packaged Theme */
@import (optional) "@{themesFolder}/@{theme}/@{type}s/@{element}.variables";
/* Site Theme */
@import (optional) "@{siteFolder}/@{type}s/@{element}.variables";
/*-------------------------
Central Color Map
-------------------------*/
/* Default */
@import "@{themesFolder}/default/globals/colors.less";
/* Site Theme */
@import (optional) "@{themesFolder}/@{site}/globals/colors.less";
/*******************************
Mix-ins
*******************************/
/*------------------
Fonts
-------------------*/
.loadFonts() when (@importGoogleFonts) {
@import (css) url('@{googleProtocol}fonts.googleapis.com/css?family=@{googleFontRequest}');
}
/*------------------
Overrides
-------------------*/
.loadUIOverrides() {
& when not (@theme = 'default') {
@import (optional) "@{themesFolder}/default/@{type}s/@{element}.overrides";
}
@import (optional) "@{themesFolder}/@{theme}/@{type}s/@{element}.overrides";
@import (optional) "@{siteFolder}/@{type}s/@{element}.overrides";
}

View file

@ -0,0 +1,46 @@
.ui.button {
background-image: linear-gradient(center top , #F7F8FA, #E7E9EC) repeat scroll 0 0 rgba(0, 0, 0, 0);
}
.ui.primary.button {
color: #111111;
border: 1px solid;
border-color: #C59F43 #AA8326 #957321;
}
.ui.primary.button:hover {
border-color: #C59F43 #AA8326 #957321;
color: #111111;
}
.ui.secondary.button {
border: 1px solid;
border-color: #3D444C #2F353B #2C3137;
}
.ui.secondary.button:hover {
border-color: #32373E #24282D #212429;
}
.ui.labeled.icon.buttons .button > .icon,
.ui.labeled.icon.button > .icon {
padding-bottom: 0.48em;
padding-top: 0.48em;
position: absolute;
text-align: center;
width: 2em;
height: 2em;
top: 0.35em;
left: 0.4em;
border-radius: 3px;
}
.ui.right.labeled.icon.buttons .button > .icon,
.ui.right.labeled.icon.button > .icon {
left: auto;
right: 0.4em;
border-radius: 3px;
}
.ui.basic.labeled.icon.buttons .button > .icon,
.ui.basic.labeled.icon.button > .icon {
padding-top: 0.4em !important;
}

View file

@ -0,0 +1,58 @@
/*-------------------
Button Variables
--------------------*/
/* Button Variables */
@pageFont: Helvetica Neue, Helvetica, Arial, sans-serif;
@textTransform: none;
@textColor: #111111;
@fontWeight: normal;
@transition:
opacity @defaultDuration @defaultEasing,
background-color @defaultDuration @defaultEasing,
color @defaultDuration @defaultEasing,
background @defaultDuration @defaultEasing
;
@hoverBackgroundColor: #E0E0E0;
@borderRadius: 3px;
@verticalPadding: 0.8em;
@horizontalPadding: 1.75em;
@backgroundColor: #F7F8FA;
@backgroundImage: linear-gradient(rgba(255, 255, 255, 0), rgba(0, 0, 0, 0.1));
@boxShadow:
0 1px 0 1px rgba(255, 255, 255, 0.3) inset,
0 0 0 1px #ADB2BB inset
;
@coloredBackgroundImage: linear-gradient(rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.2));
@coloredBoxShadow:
0px 1px 0px 0px rgba(255, 255, 255, 0.2) inset
;
@downBoxShadow:
0 0 0 1px #ADB2BB inset,
0 1px 3px rgba(0, 0, 0, 0.2) inset
;
@labeledIconBackgroundColor: #313A43;
@labeledIconColor: #FFFFFF;
@labeledIconBorder: transparent;
@black: #444C55;
@orange: #F4CC67;
@coloredBackgroundImage: linear-gradient(rgba(255, 255, 255, 0.15), rgba(0, 0, 0, 0.1));
@primaryColor: @orange;
@secondaryColor: @black;
@mini: 10px;
@tiny: 11px;
@small: 12px;
@medium: 13px;
@large: 14px;
@big: 16px;
@huge: 18px;
@massive: 22px;

View file

@ -0,0 +1,43 @@
/*******************************
User Global Variables
*******************************/
@pageMinWidth : 1049px;
@pageOverflowX : visible;
@emSize: 13px;
@fontSize : 13px;
@fontName : 'Arial';
@importGoogleFonts : false;
@h1: 2.25em;
@defaultBorderRadius: 0.30769em; /* 4px @ 13em */
@disabledOpacity: 0.3;
@black: #444C55;
@orange: #FDE07B;
@linkColor: #0066C0;
@linkHoverColor: #C45500;
@linkHoverUnderline: underline;
@borderColor: rgba(0, 0, 0, 0.13);
@solidBorderColor: #DDDDDD;
@internalBorderColor: rgba(0, 0, 0, 0.06);
@selectedBorderColor: #51A7E8;
/* Breakpoints */
@largeMonitorBreakpoint: 1049px;
@computerBreakpoint: @largeMonitorBreakpoint;
@tabletBreakpoint: @largeMonitorBreakpoint;
/* Colors */
@blue: #80A6CD;
@green: #60B044;
@orange: #D26911;
@infoBackgroundColor: #E6F1F6;
@infoTextColor: #4E575B;

Binary file not shown.

View file

@ -0,0 +1,450 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>
Created by FontForge 20100429 at Thu Sep 20 22:09:47 2012
By root
Copyright (C) 2012 by original authors @ fontello.com
</metadata>
<defs>
<font id="icons" horiz-adv-x="947" >
<font-face
font-family="icons"
font-weight="500"
font-stretch="normal"
units-per-em="1000"
panose-1="2 0 6 3 0 0 0 0 0 0"
ascent="800"
descent="-200"
bbox="-0.666667 -200.023 1350 801.8"
underline-thickness="50"
underline-position="-100"
unicode-range="U+002B-1F6AB"
/>
<missing-glyph horiz-adv-x="364"
d="M33 0v666h265v-666h-265zM66 33h199v600h-199v-600z" />
<glyph glyph-name=".notdef" horiz-adv-x="364"
d="M33 0v666h265v-666h-265zM66 33h199v600h-199v-600z" />
<glyph glyph-name=".null" horiz-adv-x="0"
/>
<glyph glyph-name="nonmarkingreturn" horiz-adv-x="333"
/>
<glyph glyph-name="plus" unicode="+" horiz-adv-x="610"
d="M565 350q19 0 24.5 -12.5t5.5 -37.5q0 -17 -1.5 -26t-8.5 -16.5t-20 -7.5h-210v-210q0 -19 -12.5 -24.5t-37.5 -5.5q-17 0 -26 1.5t-16.5 8.5t-7.5 20v210h-210q-19 0 -24.5 12.5t-5.5 37.5q0 17 1.5 26t8.5 16.5t20 7.5h210v210q0 19 12.5 24.5t37.5 5.5q17 0 26 -1.5
t16.5 -8.5t7.5 -20v-210h210z" />
<glyph glyph-name="hyphen" unicode="-" horiz-adv-x="610"
d="M565 350q19 0 24.5 -12.5t5.5 -37.5q0 -17 -1.5 -26t-8.5 -16.5t-20 -7.5h-520q-19 0 -24.5 12.5t-5.5 37.5q0 17 1.5 26t8.5 16.5t20 7.5h520z" />
<glyph glyph-name="at" unicode="@" horiz-adv-x="923"
d="M849 516q25 -64 25 -138q0 -103 -46 -182q-59 -92 -163 -92q-43 0 -70 21q-21 15 -30 36q-43 -55 -114 -55q-81 0 -122 58q-41 52 -41 141q0 91 48 147q53 64 142 64q52 0 90 -37l7 26h85l-18 -259q-2 -32 9 -44q7 -7 20 -7q35 0 60 34.5t34 73.5t9 75q0 108 -68 176
q-75 76 -208 76q-128 0 -214 -76q-102 -92 -102 -245q0 -133 86 -221q81 -82 204 -82q137 0 242 46l15 8v-96l-7 -3q-101 -50 -251 -50q-165 0 -269 97q-123 112 -123 308q0 182 116 294q57 56 133 84q77 31 168 31q178 0 284 -106q46 -44 69 -103zM465 199q46 0 69 40
q17 31 17 85q0 45 -16 74q-20 28 -60 28q-44 0 -64 -38q-19 -33 -19 -83q0 -23 4 -43.5t21.5 -41.5t47.5 -21z" />
<glyph glyph-name="h" unicode="h" horiz-adv-x="1228"
d="M281 54q0 56 32 138q56 164 76 215q31 82 51 144h-25h-31h-26q-51 10 -51 51q0 51 51 51h564q51 0 51 -51q0 -41 -36 -47q-15 -5 -31 -4h-15h-20h-32q11 -41 52 -144q61 -164 77 -210q30 -92 30 -143q0 -46 -40 -87q-31 -31 -87 -31h-461q-51 0 -93 31q-36 46 -36 87z
M481 345h318l-67 206h-184z" />
<glyph glyph-name="uni2139" unicode="&#x2139;" horiz-adv-x="490"
d="M367 800q48 0 74 -28t26 -70q0 -50 -39 -88t-95 -38q-47 0 -73.5 27t-25.5 73q0 45 36 84.5t97 39.5zM160 -200q-29 0 -45.5 13.5t-22.5 52.5t14 110l60 255q15 57 0 57q-13 0 -54.5 -18t-70.5 -38l-26 44q91 77 190 125t150 48q26 0 38.5 -20t11 -55.5t-14.5 -85.5
l-69 -268q-16 -63 5 -63q15 0 49.5 16t69.5 44l30 -41q-84 -86 -175 -131t-140 -45z" />
<glyph glyph-name="arrowleft" unicode="&#x2190;" horiz-adv-x="789"
d="M0 329q0 20 15 35l345 346q15 15 35 15t34 -15l52 -52q15 -14 15 -34t-15 -35l-174 -174h433q21 0 35 -14t14 -35v-74q0 -20 -14 -34t-34 -14h-434l174 -174q15 -15 15 -35t-15 -34l-52 -52q-14 -15 -34 -15t-35 15l-345 345q-15 15 -15 35z" />
<glyph glyph-name="arrowup" unicode="&#x2191;" horiz-adv-x="789"
d="M-0.5 329q-0.5 20 14.5 35l346 345q15 15 35 15t34 -15l346 -345q14 -15 14 -35t-14 -35l-52 -51q-15 -15 -34.5 -15t-33.5 15l-175 173v-433q0 -20 -14 -34.5t-34 -14.5h-74q-21 0 -35 14.5t-14 34.5v433l-173 -173q-15 -15 -35 -15t-35 15l-51 51q-15 15 -15.5 35z" />
<glyph glyph-name="arrowright" unicode="&#x2192;" horiz-adv-x="789"
d="M0 293v74q0 20 14 34t34 14h434l-174 174q-14 15 -14 35t14 34l52 52q15 15 35 15t34 -15l346 -346q14 -15 14 -34.5t-14 -34.5l-346 -346q-14 -15 -34 -15t-35 15l-52 52q-14 14 -14 34t14 35l174 174h-434q-20 0 -34 14t-14 35z" />
<glyph glyph-name="arrowdown" unicode="&#x2193;" horiz-adv-x="789"
d="M0 328q0 20 15 35l51 51q15 15 35 15t35 -15l173 -173v433q0 20 14.5 34.5t34.5 14.5h74q21 0 34.5 -14.5t13.5 -34.5v-433l175 173q14 15 33.5 15t34.5 -15l53 -51q15 -15 15 -35t-15 -35l-347 -345q-14 -15 -34 -15t-35 15l-345 345q-15 15 -15 35z" />
<glyph glyph-name="house" unicode="&#x2302;" horiz-adv-x="930"
d="M903 285q16 -16 11 -27.5t-28 -11.5h-83v-308q0 -14 -1.5 -21t-8.5 -13.5t-22 -6.5h-204v310h-204v-310h-195q-19 0 -28.5 6.5t-11 13.5t-1.5 21v308h-83q-23 0 -28 11.5t11 27.5l401 401q16 16 37 16t37 -16z" />
<glyph glyph-name="uni25B4" unicode="&#x25b4;" horiz-adv-x="490"
d="M15 100l230 400l230 -400h-460z" />
<glyph glyph-name="uni25B8" unicode="&#x25b8;" horiz-adv-x="430"
d="M15 530l400 -230l-400 -230v460z" />
<glyph glyph-name="uni25BE" unicode="&#x25be;" horiz-adv-x="490"
d="M475 500l-230 -400l-230 400h460z" />
<glyph glyph-name="uni25C2" unicode="&#x25c2;" horiz-adv-x="430"
d="M415 530v-460l-400 230z" />
<glyph glyph-name="uni2601" unicode="&#x2601;" horiz-adv-x="1291"
d="M1292 155q0 -100 -68 -173.5t-167 -80.5v-1h-783v1q-7 -1 -19 -1q-106 0 -180.5 74.5t-74.5 180.5q0 66 33.5 124.5t90.5 92.5q-7 29 -7 56q0 106 74.5 180.5t180.5 74.5q92 0 167 -63q39 82 116 131t167 49q129 0 221 -92t92 -221q0 -50 -15 -93q77 -26 124.5 -92.5
t47.5 -146.5z" />
<glyph glyph-name="uni2611" unicode="&#x2611;"
d="M0 92v474q0 32 12.5 61t33.5 50t50 34t62 13h553q13 0 26 -3l-96 -96h-483q-24 0 -41.5 -17.5t-17.5 -41.5v-474q0 -24 17.5 -41.5t41.5 -17.5h553q24 0 41 17.5t17 41.5v167l99 99v-266q0 -33 -12.5 -61t-34 -50t-50 -34.5t-60.5 -12.5h-553q-33 0 -62 12.5t-50 34.5
t-33.5 50t-12.5 61zM198 431q0 17 11 28l51 51q12 12 28.5 12t28.5 -12l175 -175l335 337q12 12 29.5 12t28.5 -12l51 -50q11 -12 11 -29t-11 -28l-365 -366l-51 -50q-12 -12 -28.5 -12t-28.5 12l-51 50l-203 204q-11 11 -11 28z" />
<glyph glyph-name="uni2661" unicode="&#x2661;" horiz-adv-x="880"
d="M795 591q70 -65 70 -156t-70 -156l-355 -330l-355 330q-70 65 -70 156t70 156q62 58 149.5 58t149.5 -58l56 -52l56 52q62 58 149.5 58t149.5 -58zM743 330q42 38 42 105t-37 100q-42 39 -102 39q-49 0 -102 -49l-104 -91l-104 91q-53 49 -102 49q-60 0 -102 -39
q-37 -33 -37 -100t42 -105l303 -286z" />
<glyph glyph-name="heart" unicode="&#x2665;" horiz-adv-x="890"
d="M804 591q70 -65 70 -156t-70 -156l-359 -330l-359 330q-70 65 -70 156t70 156q63 58 151 58t151 -58l57 -52l57 52q63 58 151 58t151 -58z" />
<glyph glyph-name="uni2691" unicode="&#x2691;"
d="M0 645q0 32 23 55.5t56 23.5t56 -23.5t23 -55.5q0 -21 -10.5 -38.5t-28.5 -29.5v-623q0 -8 -6 -14t-14 -6h-40q-8 0 -13.5 6t-5.5 14v623q-18 12 -29 29.5t-11 38.5zM158 148v383q0 17 10 34t25 25q53 28 96.5 44t73.5 23q36 9 64 10q35 0 64 -6t55.5 -15.5t51.5 -21.5
l50 -27q33 -14 75 -16q36 -3 84.5 7t106.5 45q14 9 23.5 3.5t9.5 -22.5v-384q0 -16 -9.5 -33.5t-23.5 -25.5q-58 -35 -106.5 -45t-84.5 -8q-42 3 -75 17l-50 27q-25 12 -51.5 21.5t-55.5 15.5t-64 6q-28 -1 -64 -10q-30 -7 -73.5 -23t-96.5 -45q-15 -9 -25 -2.5t-10 23.5z
" />
<glyph glyph-name="uni2699" unicode="&#x2699;" horiz-adv-x="787"
d="M0 271v117q0 7 7 9q20 6 42 9t43 5q4 0 8 0.5t9 1.5l11 29q6 14 14 29l-28 39q-15 20 -32 39q-6 5 0 13q20 24 42 46t46 42q5 5 13 0q11 -12 23.5 -21.5t24.5 -17.5q8 -5 15 -11t15 -11q27 15 58 24q3 30 6 54.5t8 47.5q2 9 10 9h117q9 0 9 -9q4 -20 7 -40l6 -41l3 -21
q15 -5 29 -10.5t28 -13.5l14 10l12 10l28 19q13 10 26 22q6 6 12 -1l12 -12q5 -5 11 -10l32 -31l31 -34q4 -7 0 -13q-14 -16 -28 -35l-31 -42q15 -30 25 -61q13 -3 26 -4.5t27 -3.5q11 -2 24 -4l25 -4q7 -2 7 -9v-117q0 -7 -7 -10q-19 -5 -40 -7.5t-42 -4.5q-5 -1 -10 -1.5
t-10 -1.5q-5 -15 -11 -29l-13 -29q12 -18 27.5 -38.5t32.5 -39.5q5 -5 0 -13q-40 -49 -89 -88q-5 -5 -12 0q-12 11 -24 20.5t-25 18.5q-7 5 -14.5 11t-14.5 11q-28 -15 -58 -24q-2 -25 -6 -51t-10 -51q-2 -9 -9 -9h-117q-8 0 -10 9q-3 20 -5.5 40t-5.5 41l-3 21l-29 10
q-15 5 -28 14l-14 -10l-13 -10q-27 -19 -53 -41q-7 -6 -13 1l-11 11l-12 11l-32 31q-15 16 -30 34q-5 7 0 13q16 19 30 39l29 38q-16 30 -26 61q-12 3 -25 4.5t-26 3.5t-26 3.5t-25 4.5q-7 2 -7 9zM275 329q0 -25 9.5 -46.5t25.5 -37.5t37.5 -25.5t46 -9.5t46 9.5t37.5 25.5
t25.5 37.5t9.5 46.5q0 24 -9.5 45.5t-25.5 37.5t-37.5 25.5t-46 9.5t-46 -9.5t-37.5 -25.5t-25.5 -37.5t-9.5 -45.5z" />
<glyph glyph-name="uni26A0" unicode="&#x26a0;" horiz-adv-x="894"
d="M5.5 -41q-14.5 25 6.5 59l387 671q19 35 48 35q28 0 49 -35l387 -671q20 -34 6 -59t-54 -25h-775q-40 0 -54.5 25zM168 53h558l-279 483zM389 391q0 6 4.5 10.5t9.5 4.5h89q5 0 9 -4.5t4 -10.5l-7 -192q0 -12 -14 -12h-73q-14 0 -14 12zM392 133q0 14 13 14h82
q14 0 14 -14l1 -51q0 -14 -14 -14h-82q-13 0 -13 14z" />
<glyph glyph-name="uni26A1" unicode="&#x26a1;" horiz-adv-x="430"
d="M55 -150q-4 3 35 92l79 182q40 93 38 99t-94.5 45t-97.5 54q-4 12 84 120.5t179.5 210t96.5 97.5t-74.5 -186t-77.5 -188q1 -3 95 -42.5t97 -56.5q3 -20 -174 -226t-186 -201z" />
<glyph glyph-name="uni26EF" unicode="&#x26ef;"
d="M0 346v88q0 7 5 7q15 4 31 6l32 4q5 0 8 0.5t7 0.5q6 22 18 44q-9 15 -21 30l-24 29q-5 6 0 10q15 18 31.5 35t34.5 32q6 4 10 -1q8 -8 18 -15l18 -14l23 -16q22 11 44 18q2 22 4.5 41t6.5 37q0 5 7 5h88q7 0 7 -6q3 -15 5.5 -30.5t4.5 -31.5l2 -15q21 -7 43 -18l20 15
l21 15q10 8 19 16q6 4 10 -1q5 -4 9 -8l9 -9l23 -23l24 -26q3 -6 0 -10q-11 -11 -22 -25l-23 -33q6 -11 11 -23l9 -23q8 -2 18 -3t21 -3l19 -2q9 -1 17 -4q7 -2 7 -7v-88q0 -6 -6 -8q-14 -3 -31 -5l-32 -4q-4 0 -14 -2q-7 -21 -18 -43q9 -15 20.5 -30t24.5 -29q4 -6 0 -10
q-15 -18 -31.5 -35t-34.5 -32q-7 -4 -10 1q-8 7 -17.5 14.5t-19.5 13.5q-5 6 -11 9.5t-11 7.5q-22 -11 -44 -18q-2 -18 -4 -38.5t-8 -39.5q-2 -5 -7 -5h-88q-7 0 -7 5q-3 15 -5 31l-4 31l-2 16q-21 7 -43 18l-10 -7q-5 -3 -10 -8l-21 -15q-10 -8 -19 -16q-7 -4 -10 1
q-5 4 -8 8l-10 9l-24 22q-12 12 -23 27q-4 4 0 9q12 14 23.5 29.5t20.5 29.5q-10 21 -19 46q-8 2 -18 3t-21 3l-19 2q-9 1 -19 3q-5 3 -5 8zM207 389q0 -37 26.5 -63.5t63.5 -26.5t63 26.5t26 63.5t-26 63t-63 26t-63.5 -26t-26.5 -63zM552 132q-3 6 4 9l22 8q10 4 22 8
q1 6 1.5 10t2.5 9.5t3.5 9t4.5 8.5q-8 11 -14 21t-13 20q-3 6 2 9l66 59q4 4 9 1l18 -15l19 -16q19 8 37 9q5 11 11 21.5t11 20.5q3 5 8 3l85 -26q5 -3 5 -9q-2 -11 -4.5 -22.5t-4.5 -22.5q9 -6 15 -13.5t12 -16.5q12 1 23.5 1.5t23.5 0.5q5 0 7 -5l19 -87q2 -5 -4 -8
q-11 -5 -21 -9l-23 -7q-1 -6 -1.5 -10t-2.5 -9.5t-4 -9t-4 -7.5l15 -21l12 -20q2 -5 -2 -9l-66 -60q-4 -4 -9 0q-9 8 -18.5 15t-17.5 15q-21 -8 -39 -9l-10 -22l-11 -20q-3 -5 -8 -3l-85 26q-5 3 -5 9q2 11 3.5 23t4.5 23q-15 13 -26 29q-12 -2 -24.5 -3t-23.5 1q-5 0 -8 5z
M589 573q0 5 6 8q10 2 20.5 4.5t21.5 4.5q2 4 3 8.5t3 8.5t5 7t5 8q-6 10 -10 20l-8 20q-2 4 2 8l67 44q5 3 9 -1q8 -7 15 -15l14 -16q17 3 35 3q12 19 25 34q3 4 9 3l72 -36q5 -3 3 -9q-2 -10 -5.5 -19.5t-6.5 -20.5q10 -13 19 -30q11 -1 22 -1.5t22 -2.5q5 -2 5 -7l5 -81
q0 -4 -5 -6q-10 -2 -20 -5l-22 -5q-2 -4 -3 -7.5t-3 -7.5q-3 -8 -9 -15q6 -11 10 -21t8 -19q2 -5 -3 -8l-66 -45q-6 -3 -9 1q-13 13 -29 32q-9 -2 -18 -3t-18 0q-6 -10 -12 -19l-13 -17q-3 -3 -9 -1l-72 36q-6 2 -3 7l6 21q3 10 7 20q-6 6 -11 13.5t-9 16.5q-11 1 -22 1.5
t-22 2.5q-5 0 -5 6zM693 148q-8 -23 3 -44.5t36 -29.5q23 -8 44.5 3t28.5 35q9 23 -2 44.5t-36 30.5q-23 7 -44.5 -4t-29.5 -35zM716.5 528q7.5 -21 27.5 -32q21 -9 42 -2t31 27q10 21 3 42t-27 30q-20 11 -41 3.5t-32 -27.5t-3.5 -41z" />
<glyph glyph-name="uni2708" unicode="&#x2708;" horiz-adv-x="1030"
d="M282 -170l125 400h-179l-113 -100h-100l80 170l-80 170h100l113 -100h179l-125 400h100l225 -400h258q6 0 16 -0.5t36 -4t46 -10.5t36 -21t16 -34q0 -31 -37.5 -48.5t-75.5 -19.5l-37 -2h-258l-225 -400h-100z" />
<glyph glyph-name="uni2709" unicode="&#x2709;" horiz-adv-x="930"
d="M45 536q-23 12 -28 33q1 19 25 21h846q33 0 23 -25q-7 -19 -26 -29l-375 -202q-19 -10 -45 -10t-45 10zM896 436q15 4 17 1.5t2 -12.5v-367q0 -16 -17 -32t-33 -16h-800q-16 0 -33 16t-17 32v367q0 10 2 12.5t17 -1.5l386 -202q19 -10 45 -10t45 10z" />
<glyph glyph-name="uni270D" unicode="&#x270d;"
d="M0 92v474q0 32 12.5 61t33.5 50t50 34t62 13h553q2 0 5 -0.5t5 -0.5l-98 -98h-465q-24 0 -41.5 -17.5t-17.5 -41.5v-474q0 -24 17.5 -41.5t41.5 -17.5h553q24 0 41 17.5t17 41.5v229l99 98v-327q0 -33 -12.5 -61t-34 -50t-50 -34.5t-60.5 -12.5h-553q-33 0 -62 12.5
t-50 34.5t-33.5 50t-12.5 61zM324 101l56 169l335 335l113 -114l-334 -335zM445 257q3 -4 8.5 -4t8.5 4l263 262q10 10 0.5 18.5t-18.5 -0.5l-262 -262q-9 -9 0 -18zM772 662l47 48q15 15 35 15t33 -15l24 -23l23 -23q13 -15 13.5 -34.5t-13.5 -34.5l-49 -47z" />
<glyph glyph-name="uni2715" unicode="&#x2715;" horiz-adv-x="500"
d="M467 142q17 -17 17 -42t-17 -42t-42 -17t-42 17l-133 151l-133 -151q-17 -17 -42 -17t-42 17t-17 42t17 42l137 158l-137 158q-17 17 -17 42t17 42t42 17t42 -17l133 -151l133 151q17 17 42 17t42 -17t17 -42t-17 -42l-137 -158z" />
<glyph glyph-name="uni2716" unicode="&#x2716;" horiz-adv-x="870"
d="M435 720q174 0 297 -123t123 -297t-123 -297t-297 -123t-297 123t-123 297t123 297t297 123zM521 300l153 153l-86 86l-153 -153l-153 153l-86 -86l153 -153l-153 -153l86 -87l153 154l153 -153l86 86z" />
<glyph glyph-name="uni2731" unicode="&#x2731;" horiz-adv-x="733"
d="M1 457q-5 19 5 37l37 64q11 18 30.5 23t37.5 -5l170 -99v197q0 21 14 35.5t36 14.5h72q21 0 35.5 -14.5t14.5 -34.5v-198l170 99q18 10 37.5 5t30.5 -23l35 -64q11 -18 6 -37t-23 -29l-171 -99l171 -99q18 -11 23 -29.5t-5 -36.5l-36 -65q-11 -17 -30.5 -22t-37.5 5
l-170 99v-197q0 -21 -14.5 -35.5t-35.5 -14.5h-72q-22 0 -36 14.5t-14 34.5v198l-170 -99q-18 -11 -37.5 -5.5t-30.5 22.5l-37 65q-9 18 -4.5 36.5t22.5 29.5l172 99l-172 99q-18 10 -23 29z" />
<glyph glyph-name="uni2753" unicode="&#x2753;" horiz-adv-x="610"
d="M15 476q5 130 77 202t203 72q128 0 214 -62t86 -183q0 -68 -42 -125q-13 -19 -88 -78l-46 -32q-29 -22 -42 -43.5t-14 -60.5q0 -13 -15 -13h-129q-16 0 -16 12q2 52 6.5 79.5t20.5 45.5q17 20 49.5 46t56.5 42l23 16q61 46 61 102q0 44 -25 79q-25 36 -93 36
q-67 0 -94 -44q-28 -45 -28 -91h-165zM292 54q45 -2 73.5 -31t27.5 -75t-31.5 -73t-75.5 -25q-44 2 -72.5 30.5t-27.5 73.5q1 46 31.5 74t74.5 26z" />
<glyph glyph-name="uni2757" unicode="&#x2757;" horiz-adv-x="789"
d="M0 329q0 82 31 153.5t84.5 125.5t125.5 85t154 31t153.5 -31t125 -85t84.5 -125.5t31 -153.5t-31 -153.5t-84.5 -125.5t-125 -85t-153.5 -31t-154 31t-125.5 85t-84.5 125.5t-31 153.5zM333 579l6 -365q2 -15 16 -15h80q14 0 14 15l8 365q1 6 -4 11q-4 4 -11 4h-95
q-7 0 -10 -4q-4 -4 -4 -11zM336 66q0 -15 15 -15h89q5 0 10 4t5 11v86q0 6 -5 10.5t-10 4.5h-89q-15 0 -15 -15v-86z" />
<glyph glyph-name="uni2795" unicode="&#x2795;" horiz-adv-x="870"
d="M435 720q174 0 297 -123t123 -297t-123 -297t-297 -123t-297 123t-123 297t123 297t297 123zM486 249h202l-1 102h-201v201h-102v-201h-202v-102h202v-202h102v202z" />
<glyph glyph-name="uni27A2" unicode="&#x27a2;" horiz-adv-x="890"
d="M863 717q6 -6 9 -12t2.5 -14.5t-2 -15.5t-7.5 -19.5t-12 -23.5l-16 -30l-18 -37q-54 -113 -147 -287l-158 -292l-65 -117l-54 380l-380 54q442 248 696 370l37 18l30 16q11 6 23.5 12t19.5 7.5t15.5 2t14.5 -2.5t12 -9zM772 619l-304 -279l28 -233z" />
<glyph glyph-name="uni27A6" unicode="&#x27a6;"
d="M0 4q0 107 37 202t112 166t190.5 112.5t273.5 42.5v150q0 37 18 45t46 -18l252 -254q18 -17 18 -42q0 -24 -18 -42l-252 -254q-26 -26 -45 -18t-19 44v170q-135 -1 -237 -29t-172.5 -76t-110.5 -112.5t-51 -139.5q-2 -17 -19 -17h-1q-17 0 -19 17q-3 26 -3 53z" />
<glyph glyph-name="uni27F2" unicode="&#x27f2;" horiz-adv-x="970"
d="M546 710q169 0 289 -120t120 -290t-120 -290t-289 -120q-140 0 -251 87l70 75q83 -60 181 -60q127 0 217 90.5t90 217.5t-90 217t-217 90q-124 0 -213 -86.5t-93 -210.5h143l-184 -205l-184 205h123q4 167 123 283.5t285 116.5z" />
<glyph glyph-name="uni27F3" unicode="&#x27f3;" horiz-adv-x="970"
d="M424 710q166 0 285 -116.5t123 -283.5h123l-184 -205l-184 205h143q-4 124 -93 210.5t-213 86.5q-127 0 -217 -90t-90 -217t90 -217.5t217 -90.5q98 0 181 60l70 -75q-111 -87 -251 -87q-169 0 -289 120t-120 290t120 290t289 120z" />
<glyph glyph-name="uni2B0C" unicode="&#x2b0c;" horiz-adv-x="394"
d="M0.5 131q4.5 12 28.5 12h100v372h-100q-24 0 -28.5 11t12.5 28l158 159q10 11 27 11q16 0 26 -11l158 -159q17 -16 12 -27.5t-29 -11.5h-100v-372h100q24 0 29 -11t-12 -28l-158 -159q-10 -11 -27 -11q-16 0 -26 11l-158 159q-17 15 -12.5 27z" />
<glyph glyph-name="uni2B0D" unicode="&#x2b0d;" horiz-adv-x="789"
d="M0 310q0 16 11 26l158 159q16 16 27.5 11.5t11.5 -28.5v-101h373v101q0 24 11 28.5t28 -12.5l159 -158q10 -10 10 -26t-10 -26l-159 -159q-16 -17 -27.5 -12t-11.5 29v101h-373v-101q0 -24 -11 -28.5t-28 12.5l-158 158q-11 10 -11 26z" />
<glyph glyph-name="uni2ECF" unicode="&#x2ecf;" horiz-adv-x="789"
d="M0 -30v102q0 15 10.5 25.5t25.5 10.5h718q14 0 24.5 -10.5t10.5 -25.5v-102q0 -15 -10.5 -25.5t-24.5 -10.5h-718q-15 0 -25.5 10.5t-10.5 25.5zM3 239q-9 23 8 39l358 359q11 11 25.5 11t25.5 -11l359 -359q17 -16 7 -39q-8 -22 -32 -22h-718q-24 0 -33 22z" />
<glyph glyph-name="uniE700" unicode="&#xe700;" horiz-adv-x="1030"
d="M634 78q89 -32 135 -65t46 -58v-105h-800v201q13 6 29.5 11.5t32 10t19.5 5.5q94 34 129.5 69t35.5 95q0 20 -10 31.5t-24 31.5t-21 58q-2 12 -9.5 17.5t-14.5 8t-14 17t-9 43.5q0 15 4.5 25.5t8.5 13.5l5 3q-9 50 -13 88q-2 21 5.5 47.5t27.5 55.5t63.5 48.5t104.5 19.5
t104.5 -19.5t63.5 -48.5t27.5 -55.5t5.5 -47.5l-13 -88q18 -8 18 -42q-2 -29 -9 -43.5t-14 -17t-14.5 -8t-9.5 -17.5q-7 -38 -21 -58t-24 -31.5t-10 -31.5q0 -60 35.5 -95t129.5 -69zM865 350h150v-100h-150v-150h-100v150h-150v100h150v150h100v-150z" />
<glyph glyph-name="uniE701" unicode="&#xe701;" horiz-adv-x="413"
d="M0.5 423.5q4.5 13.5 26.5 17.5l251 35l111 228q10 20 25 20v-667l-223 -118q-22 -10 -33.5 -1.5t-6.5 31.5l43 248l-181 177q-17 16 -12.5 29.5z" />
<glyph glyph-name="uniE704" unicode="&#xe704;" horiz-adv-x="950"
d="M469 760q94 1 179.5 -34.5t148 -96t100 -145t38.5 -178.5t-34.5 -179.5t-96 -148t-145 -100t-178.5 -38.5t-179.5 34.5t-148 96t-100 145t-38.5 178.5t34.5 179.5t96 148t145 100t178.5 38.5zM535 84q1 31 -18 50t-50 20q-29 0 -48 -19t-20 -47q-1 -30 18 -48.5t50 -19.5
q29 0 48 18t20 46zM475 486q67 0 67 -66q0 -14 -11 -31.5t-24 -27.5q-3 -1 -16 -10.5t-33 -25.5t-31 -28q-16 -19 -18 -87h107q0 21 5 34q6 16 28 34l28 19q30 23 43.5 36t26 37.5t12.5 55.5q0 74 -53.5 114t-135.5 40q-84 0 -128 -46.5t-48 -130.5h111v5q0 28 16 53
q15 25 54 25z" />
<glyph glyph-name="uniE705" unicode="&#xe705;" horiz-adv-x="950"
d="M469 760q94 1 179.5 -34.5t148 -96t100 -145t38.5 -178.5t-34.5 -179.5t-96 -148t-145 -100t-178.5 -38.5t-179.5 34.5t-148 96t-100 145t-38.5 178.5t34.5 179.5t96 148t145 100t178.5 38.5zM520 607q-43 0 -65.5 -23.5t-22.5 -50.5q-1 -28 15.5 -43.5t48.5 -15.5
q38 0 61 21.5t23 52.5q0 59 -60 59zM400 12q30 0 84.5 27t105.5 78l-18 24q-46 -36 -72 -36q-12 0 -3 38l42 159q26 96 -21 96q-31 0 -91 -28.5t-115 -74.5l16 -26q17 11 42.5 22t33.5 11t0 -34l-37 -151q-27 -105 33 -105z" />
<glyph glyph-name="uniE708" unicode="&#xe708;"
d="M0 -26v276q0 17 11.5 28.5t28.5 11.5h355q17 0 28.5 -11.5t11.5 -28.5v-276q0 -17 -11.5 -28.5t-28.5 -11.5h-355q-17 0 -28.5 11.5t-11.5 28.5zM0 408v277q0 16 11.5 27.5t28.5 11.5h355q17 0 28.5 -11.5t11.5 -27.5v-277q0 -17 -11.5 -28t-28.5 -11h-355
q-17 0 -28.5 11t-11.5 28zM514 -26v276q0 17 11 28.5t28 11.5h355q16 0 27.5 -11.5t11.5 -28.5v-276q0 -17 -11.5 -28.5t-27.5 -11.5h-355q-17 0 -28 11.5t-11 28.5zM514 408v277q0 16 11 27.5t28 11.5h355q16 0 27.5 -11.5t11.5 -27.5v-277q0 -17 -11.5 -28t-27.5 -11h-355
q-17 0 -28 11t-11 28z" />
<glyph glyph-name="uniE70B" unicode="&#xe70b;"
d="M0 328.5q0 22.5 13 42.5q40 64 91.5 115t111 86.5t124.5 54t134 18.5q27 0 54 -4t53 -9l45 81q5 8 13 10q6 3 15 -1l68 -39q7 -5 10 -12.5t-1 -15.5l-398 -710q-4 -8 -12 -10q-2 -1 -5 -1t-10 2l-69 39q-8 4 -10 12t2 16l34 59q-75 34 -138.5 91t-111.5 134
q-13 19 -13 41.5zM79 329q42 -67 98.5 -117.5t123.5 -81.5l30 54q-45 32 -71.5 81.5t-26.5 109.5q0 40 13 76.5t35 66.5q-60 -31 -111.5 -78.5t-90.5 -110.5zM316 375q0 -11 8.5 -20t21 -9t21 9t8.5 20q0 40 27 67.5t67 27.5q13 0 21.5 9t8.5 20q0 13 -8.5 21.5t-21.5 8.5
q-31 0 -59.5 -12t-49 -32.5t-32.5 -49t-12 -60.5zM477 13l45 82q107 13 196 74.5t150 159.5q-55 87 -134 145l39 71q47 -34 88 -77t75 -97q11 -20 11 -42.5t-11 -41.5q-82 -131 -201.5 -202t-257.5 -72zM556 155l146 262q2 -10 3 -20t1 -22q0 -38 -11 -72t-31 -62.5
t-48 -50.5t-60 -35z" />
<glyph glyph-name="uniE70D" unicode="&#xe70d;" horiz-adv-x="945"
d="M0 434v229q0 25 18 43t43 18h228q26 0 57 -12.5t48 -30.5l338 -377q16 -18 16.5 -43.5t-16.5 -43.5l-266 -264q-18 -18 -43 -18.5t-43 18.5l-337 377q-17 19 -30 49t-13 55zM99 566q0 -24 17.5 -41.5t41.5 -17.5t41.5 17.5t17.5 41.5t-17.5 41.5t-41.5 17.5t-41.5 -17.5
t-17.5 -41.5zM399 723h87q26 0 57 -13t48 -31l337 -376q17 -19 17.5 -44t-17.5 -43l-265 -264q-18 -18 -43 -18.5t-43 18.5l-6 7l258 258q18 18 17.5 43.5t-17.5 43.5l-336 377q-16 16 -43 28t-51 14z" />
<glyph glyph-name="uniE711" unicode="&#xe711;" horiz-adv-x="1030"
d="M776 443q99 0 169 -68.5t70 -165.5t-70 -165.5t-169 -68.5h-191v190h105l-175 230l-175 -230h105v-190h-249q-75 0 -128 52t-53 125t53 125t128 52q7 0 21 -2q-3 18 -3 38q0 108 78 184t188 76q89 0 159.5 -52t95.5 -133q19 3 41 3z" />
<glyph glyph-name="uniE714" unicode="&#xe714;" horiz-adv-x="1350"
d="M277 350l312 -311l-139 -139l-450 450l450 450l139 -139zM900 800l450 -450l-450 -450l-139 139l312 311l-312 311z" />
<glyph glyph-name="uniE715" unicode="&#xe715;"
d="M0 92v474q0 32 12.5 61t33.5 50t50 34t62 13h429q-3 -16 -3 -33v-26q-84 -11 -159 -40h-267q-24 0 -41.5 -17.5t-17.5 -41.5v-474q0 -24 17.5 -41.5t41.5 -17.5h553q24 0 41 17.5t17 41.5v57q9 5 17 11t16 14l66 65v-147q0 -33 -12.5 -61t-34 -50t-50 -34.5t-60.5 -12.5
h-553q-33 0 -62 12.5t-50 34.5t-33.5 50t-12.5 61zM198 134v19q0 85 29 160.5t89 132t151 89t215 33.5v119q0 29 15 35.5t36 -14.5l201 -201q13 -13 13 -34q0 -20 -13 -32l-201 -202q-21 -21 -36 -14.5t-15 36.5v133q-106 0 -187 -22t-137 -60t-87.5 -89.5t-39.5 -110.5
q-3 -14 -16 -14t-15 14q-2 12 -2 22z" />
<glyph glyph-name="uniE716" unicode="&#xe716;"
d="M0 -46v178q0 24 9.5 45.5t26 37.5t38 25.5t45.5 9.5h710q25 0 46.5 -9.5t37 -25.5t25 -37.5t9.5 -45.5v-178q0 -20 -20 -20h-907q-20 0 -20 20zM138 33q0 -8 5.5 -13.5t14.5 -5.5h631q9 0 14.5 5.5t5.5 13.5v20q0 9 -5.5 14.5t-14.5 5.5h-631q-9 0 -14.5 -5.5t-5.5 -14.5
v-20zM158 309v376q0 16 11.5 27.5t28.5 11.5h335v-197q0 -25 17 -42.5t42 -17.5h197v-158h-631zM592 527v197l197 -197h-197z" />
<glyph glyph-name="uniE718" unicode="&#xe718;" horiz-adv-x="830"
d="M715 650q41 0 70.5 -29.5t29.5 -70.5v-350q0 -41 -29.5 -70.5t-70.5 -29.5h-200v-150l-200 150h-200q-41 0 -70.5 29.5t-29.5 70.5v350q0 41 29.5 70.5t70.5 29.5h600z" />
<glyph glyph-name="uniE720" unicode="&#xe720;"
d="M0 443q0 58 30.5 109t82.5 89t122 60.5t150 22.5t150 -22.5t122 -60.5t82 -89t30 -109q0 -59 -30 -110t-82 -89t-122 -60t-150 -22q-19 0 -36.5 1.5t-35.5 3.5q-36 -28 -77 -48t-89 -30q-21 -5 -42 -6q-12 -2 -17 11v1q-2 6 2 10l8 8q18 18 31.5 39t22.5 67
q-70 38 -111 96t-41 128zM321 77l13 8q13 -2 26 -2h25q98 0 182.5 27.5t147 76t98 114.5t35.5 142q0 20 -3 41q48 -38 75 -86t27 -104q0 -69 -41 -126.5t-110 -96.5q8 -46 22 -66.5t31 -38.5q5 -5 8.5 -9.5t1.5 -9.5q-1 -6 -6.5 -10t-10.5 -3q-11 2 -21 3.5t-21 4.5
q-93 20 -165 76q-18 -2 -36 -3.5t-37 -1.5q-69 0 -129.5 17t-111.5 47z" />
<glyph glyph-name="uniE722" unicode="&#xe722;" horiz-adv-x="1030"
d="M915 700q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-800q-41 0 -70.5 29.5t-29.5 70.5v600q0 41 29.5 70.5t70.5 29.5h800zM915 0v600h-800v-600h800zM465 195v-90h-250v90h250zM465 345v-90h-250v90h250zM465 495v-90h-250v90h250zM810 175
q2 0 3.5 -17.5t1.5 -35.5v-17h-250q0 70 5 70q10 2 24 7t37.5 22t23.5 37q0 16 -13.5 34.5t-27.5 45.5t-14 64q0 55 20.5 82.5t69.5 27.5t69.5 -27.5t20.5 -82.5q0 -37 -14 -64t-27.5 -45.5t-13.5 -34.5q0 -20 21.5 -36.5t42.5 -22.5z" />
<glyph glyph-name="uniE724" unicode="&#xe724;" horiz-adv-x="557"
d="M0 445q0 58 22 108.5t60 88t88.5 60t108.5 22.5t108.5 -22.5t88.5 -60t60 -88t22 -108.5q0 -42 -12.5 -79t-31.5 -71l-189 -327q-19 -34 -46 -34t-46 34l-189 327q-19 34 -31.5 71.5t-12.5 78.5zM141 444.5q0 -28.5 10.5 -53.5t29.5 -44t44.5 -29.5t53.5 -10.5t53.5 10.5
t44 29.5t29.5 44t11 53.5t-11 54t-29.5 44t-44 29.5t-53.5 11t-53.5 -11t-44.5 -29.5t-29.5 -44t-10.5 -54z" />
<glyph glyph-name="uniE729" unicode="&#xe729;" horiz-adv-x="682"
d="M0 546.5q0 8.5 0.5 17t0.5 18.5q12 6 34.5 10t49.5 7.5t55 5.5t52 3q-3 17 -1.5 33.5t7.5 34.5q1 5 6 12.5t19.5 15.5t42.5 14t75 6t75 -6t42.5 -14t19.5 -16l6 -13q7 -18 8 -34t-1 -33q23 -1 51.5 -3t55.5 -5.5t49 -7.5t34 -10q1 -10 1 -18v-17v-17q0 -8 -1 -18
q-10 -6 -32 -10.5t-48 -7.5t-53.5 -5t-50.5 -3t-39 -1.5t-17 -0.5l-100 -1h-14h-29q-20 0 -57 1q-2 0 -17.5 0.5t-38.5 1.5t-50.5 3t-53.5 5t-47.5 7.5t-32.5 10.5q0 10 -0.5 18t-0.5 16.5zM71 444q43 -6 88.5 -8.5t79.5 -3.5q9 -1 24 -1h78h77q15 0 24 1q35 1 80.5 3.5
t89.5 8.5q-6 -80 -9 -163t-7 -163q-1 -20 -1.5 -44.5t-2 -47.5t-6.5 -42.5t-15 -30.5q-13 -11 -44.5 -15t-61.5 -4h-248q-31 0 -62 4t-43 15q-11 11 -15.5 30.5t-6.5 42.5t-2.5 47.5t-1.5 44.5q-4 80 -7.5 163t-7.5 163zM155 337q1 -15 1 -29t1 -23q0 -12 1 -20
q2 -36 3.5 -72t3.5 -70q1 -9 1 -18v-21v-13q0 -6 0.5 -14.5t1.5 -20.5q1 -8 10 -14.5t15 -6.5q5 -1 10 -1t9 -1h11q5 0 5 20v301q0 9 -5.5 14.5t-14.5 5.5l-34 2q-9 0 -14 -5t-5 -14zM268.5 625.5q0.5 -6.5 2.5 -15.5q9 1 21 1h49l71 -1q1 9 1.5 15.5t-0.5 11.5
q-12 4 -31.5 5.5t-40.5 1.5t-40.5 -1.5t-31.5 -5.5q-1 -5 -0.5 -11.5zM307 33q0 -8 5.5 -14t13.5 -6h30q8 0 14 6t6 14v300q0 9 -11.5 14t-15.5 5h-15q-3 0 -15 -5t-12 -14v-300zM455 33q0 -20 4 -20h12q3 1 13.5 1.5t15.5 0.5q5 1 9 7t5 14q0 12 0.5 20.5t0.5 14.5
q0 7 1 13v21q0 9 1 18q2 34 3 69.5t3 71.5q0 9 1 21q1 9 1.5 23t1.5 29q0 9 -5 14t-14 5l-34 -2q-9 0 -14 -5.5t-5 -14.5v-301z" />
<glyph glyph-name="uniE730" unicode="&#xe730;" horiz-adv-x="730"
d="M615 750q41 0 70.5 -29.5t29.5 -70.5v-700q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v700q0 41 29.5 70.5t70.5 29.5h500zM615 -50v700h-500v-700h500z" />
<glyph glyph-name="uniE736" unicode="&#xe736;" horiz-adv-x="730"
d="M665 550q21 0 35.5 -14.5t14.5 -35.5v-600q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5v150h-150q-21 0 -35.5 14.5t-14.5 35.5v600q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-150h150zM115 150h100v351q0 21 14 35t35 14h151v100
h-300v-500zM615 -50v500h-300v-500h300z" />
<glyph glyph-name="uniE73A" unicode="&#xe73a;" horiz-adv-x="790"
d="M15 680q155 0 295.5 -60t242.5 -162t162 -242.5t60 -295.5h-118q0 130 -51 249t-137 205t-205 137t-249 51v118zM15 443q142 0 262.5 -70t190.5 -190.5t70 -262.5h-118q0 167 -119 286t-286 119v118zM128 147q47 0 80.5 -33.5t33.5 -80.5t-33.5 -80t-80.5 -33t-80 33
t-33 80t33 80.5t80 33.5z" />
<glyph glyph-name="uniE73D" unicode="&#xe73d;" horiz-adv-x="1006"
d="M209 74q33 0 56 -23t23 -56t-23 -55t-56 -22q-31 0 -54.5 22t-23.5 55t22.5 56t55.5 23zM738.5 74q32.5 0 55 -23t22.5 -56t-22.5 -55t-55 -22t-55.5 22t-23 55t23 56t55.5 23zM261 662h565q26 0 40.5 -13.5t14.5 -36.5v-233q0 -20 -13 -34t-33 -16l-505 -57
q-20 -2 -29 -16.5t0 -28t31 -13.5h479q27 0 37.5 -21t0 -41t-37.5 -20h-489q-52 0 -84 33t-27 77t47 76l43 32l-155 339h-76q-28 0 -39 22.5t0 45t39 22.5h89q31 0 45 -12.5t26 -41.5zM606 592h-130l26 -84h124zM294 592l38 -84h127l-28 84h-137zM402 351l100 10l-32 101
h-119zM546 366l113 12l-25 84h-119zM812 395v67h-132l20 -78zM812 508v84h-161l19 -84h142z" />
<glyph glyph-name="uniE744" unicode="&#xe744;" horiz-adv-x="789"
d="M0 -22v269q0 27 13.5 33t33.5 -13l86 -85l141 141q6 6 15.5 6t16.5 -6l82 -82q7 -8 7 -17.5t-7 -15.5l-141 -141l86 -85q20 -20 13.5 -34t-33.5 -14h-268q-19 0 -31 13q-14 14 -14 31zM395 434.5q0 9.5 6 15.5l141 141l-85 85q-20 20 -14 34t34 14h267q19 0 32 -13
q13 -14 13 -32v-268q0 -27 -13.5 -33t-33.5 13l-85 85l-141 -140q-7 -7 -16 -7t-17 7l-82 81q-6 8 -6 17.5z" />
<glyph glyph-name="uniE746" unicode="&#xe746;" horiz-adv-x="789"
d="M0 38.5q0 9.5 6 16.5l141 140l-85 86q-20 20 -13.5 33.5t33.5 13.5h267q20 0 32 -13q14 -13 14 -31v-269q0 -27 -14 -33t-34 14l-85 86l-141 -141q-6 -8 -15.5 -8t-17.5 8l-82 82q-6 6 -6 15.5zM395 373v269q0 27 13.5 33t33.5 -14l85 -86l141 141q7 8 16.5 8t16.5 -8
l82 -82q6 -6 6 -15.5t-6 -16.5l-141 -140l85 -86q20 -20 14 -33.5t-34 -13.5h-267q-21 0 -32 13q-13 13 -13 31z" />
<glyph glyph-name="uniE750" unicode="&#xe750;" horiz-adv-x="789"
d="M0 394.5q0 68.5 26 128.5t70.5 104.5t104.5 70.5t128 26t128 -26t104.5 -70.5t70.5 -104.5t26 -129q0 -50 -14.5 -95.5t-40.5 -85.5l177 -176q9 -10 9 -24t-9 -23l-46 -46q-10 -10 -23.5 -10t-23.5 10l-176 177q-40 -27 -85.5 -41t-96.5 -14q-68 0 -128 25.5t-104.5 70.5
t-70.5 104.5t-26 128zM132 394q0 -41 15 -76.5t42 -62.5t63 -42.5t77.5 -15.5t77 15.5t62.5 42.5t42 62.5t15 76.5t-15 77t-42 63t-62.5 42.5t-77 15.5t-77.5 -15.5t-63 -42.5t-42 -63t-15 -77zM198 378v33q0 7 4.5 12t11.5 5h82v82q0 6 4.5 11t12.5 5h32q8 0 12.5 -5
t4.5 -11v-82h82q17 0 17 -17v-33q0 -16 -17 -16h-82v-83q0 -16 -17 -16h-32q-17 0 -17 16v83h-82q-7 0 -11.5 4.5t-4.5 11.5z" />
<glyph glyph-name="uniE751" unicode="&#xe751;" horiz-adv-x="789"
d="M0 394.5q0 68.5 26 128.5t70.5 104.5t104.5 70.5t128 26t128 -26t104.5 -70.5t70.5 -104.5t26 -129q0 -50 -14.5 -95.5t-40.5 -85.5l177 -176q9 -10 9 -24t-9 -23l-46 -46q-10 -10 -23.5 -10t-23.5 10l-176 177q-40 -27 -85.5 -41t-96.5 -14q-68 0 -128 25.5t-104.5 70.5
t-70.5 104.5t-26 128zM132 394q0 -41 15 -76.5t42 -62.5t63 -42.5t77.5 -15.5t77 15.5t62.5 42.5t42 62.5t15 76.5t-15 77t-42 63t-62.5 42.5t-77 15.5t-77.5 -15.5t-63 -42.5t-42 -63t-15 -77zM198 378v33q0 7 4.5 12t11.5 5h230q17 0 17 -17v-33q0 -16 -17 -16h-230
q-7 0 -11.5 4.5t-4.5 11.5z" />
<glyph glyph-name="uniE75C" unicode="&#xe75c;" horiz-adv-x="789"
d="M0 406.5q0 19.5 15 34.5l51 52q15 15 35 15t35 -15l261 -262l257 262q14 15 34 15t35 -15l52 -52q14 -15 15 -34.5t-14 -34.5l-347 -346q-14 -15 -34 -15t-35 15l-345 346q-15 15 -15 34.5z" />
<glyph glyph-name="uniE75D" unicode="&#xe75d;" horiz-adv-x="495"
d="M0 327.5q0 19.5 15 34.5l345 346q15 15 35 15t34 -15l52 -52q15 -14 15 -34t-15 -35l-261 -262l261 -257q15 -15 15 -34.5t-15 -34.5l-52 -52q-14 -15 -34 -15t-35 15l-345 346q-15 15 -15 34.5z" />
<glyph glyph-name="uniE75E" unicode="&#xe75e;" horiz-adv-x="495"
d="M0 34q0 20 15 35l261 261l-261 258q-15 15 -15 34.5t15 33.5l51 53q15 15 35 15t35 -15l345 -346q15 -15 15 -35t-15 -35l-345 -345q-15 -15 -35 -15t-35 15l-51 51q-15 15 -15 35z" />
<glyph glyph-name="uniE75F" unicode="&#xe75f;" horiz-adv-x="789"
d="M-0.5 116.5q-0.5 19.5 14.5 34.5l346 346q15 15 35 15t34 -15l346 -346q14 -15 14 -34.5t-14 -33.5l-52 -53q-15 -15 -35 -15t-34 15l-261 262l-257 -262q-15 -15 -35 -15t-35 15l-51 53q-15 14 -15.5 33.5z" />
<glyph glyph-name="uniE762" unicode="&#xe762;"
d="M0 -34v726q0 20 18 30q20 7 33 -8l335 -362q9 -9 9 -23t-9 -23l-335 -362q-9 -10 -22 -10q-3 0 -11 2q-18 9 -18 30zM395 -34v726q0 20 18 30q20 7 32 -8l336 -362q8 -9 8 -23t-8 -23l-336 -362q-8 -10 -21 -10q-3 0 -11 2q-18 9 -18 30zM789 -27q0 -16 12 -27.5
t27 -11.5h79q17 0 28.5 11.5t11.5 27.5v711q0 17 -11.5 28.5t-28.5 11.5h-79q-15 0 -27 -11.5t-12 -28.5v-711z" />
<glyph glyph-name="uniE763" unicode="&#xe763;"
d="M0 -27q0 -16 11.5 -27.5t27.5 -11.5h79q17 0 28.5 11.5t11.5 27.5v711q0 17 -11.5 28.5t-28.5 11.5h-79q-16 0 -27.5 -11.5t-11.5 -28.5v-711zM158 329q0 14 8 22l336 363q7 10 21 10q3 0 12 -2q18 -10 18 -31v-725q0 -21 -18 -30q-20 -7 -33 8l-336 362q-8 9 -8 23z
M553 329q0 14 8 22l336 363q7 10 21 10q3 0 11 -2q18 -10 18 -31v-725q0 -21 -18 -30q-20 -7 -32 8l-336 362q-8 9 -8 23z" />
<glyph glyph-name="uniE782" unicode="&#xe782;" horiz-adv-x="1228"
d="M256 38.5q0 41.5 30.5 72t71.5 30.5h513q40 0 71 -30.5t31 -72t-31 -72t-71 -30.5h-513q-41 0 -71.5 30.5t-30.5 72zM256 294.5q0 40.5 30.5 71.5t71.5 31h513q40 0 71 -31t31 -71.5t-31 -71.5t-71 -31h-513q-41 0 -71.5 31t-30.5 71.5zM256 550q0 41 30.5 72t71.5 31
h513q40 0 71 -31t31 -72t-31 -71.5t-71 -30.5h-513q-41 0 -71.5 30.5t-30.5 71.5z" />
<glyph glyph-name="uniE78E" unicode="&#xe78e;" horiz-adv-x="750"
d="M0 309q0 94 43 175.5t121 134.5q7 4 15 4q7 -1 13 -9l44 -65q10 -17 -5 -27q-54 -37 -83 -93t-29 -120q0 -53 20 -99.5t54.5 -81.5t81.5 -55t100 -20t100 20t82 55t55 81.5t20 99.5q0 64 -29.5 120t-83.5 93q-6 3 -8 12q-2 7 3 15l45 65q5 7 12.5 8.5t14.5 -3.5
q77 -53 121 -134.5t44 -175.5q0 -78 -29.5 -146t-81 -119t-119.5 -80.5t-146 -29.5t-146 29.5t-119 80.5t-80.5 119t-29.5 146zM316 349v355q0 20 20 20h79q8 0 14 -6t6 -14v-355q0 -8 -6 -14t-14 -6h-79q-20 0 -20 20z" />
<glyph glyph-name="uniE792" unicode="&#xe792;"
d="M0 -66v790h79v-790h-79zM117 -66v790h19v-790h-19zM183 -66v790h60v-790h-60zM280 -66v790h40v-790h-40zM367 -66v790h39v-790h-39zM464 -66v790h19v-790h-19zM521 -66v790h79v-790h-79zM627 -66v790h40v-790h-40zM724 -66v790h20v-790h-20zM812 -66v790h19v-790h-19z
M868 -66v790h79v-790h-79z" />
<glyph glyph-name="uniE794" unicode="&#xe794;" horiz-adv-x="558"
d="M0 214q0 41 11.5 79t32.5 71q11 17 35 49.5t53 76t56.5 95t44.5 107.5q5 18 18 26t28 6q16 2 29 -6t18 -26q17 -56 44.5 -107.5t56.5 -95t53 -76t35 -49.5q21 -33 32.5 -71t11.5 -79q0 -58 -22 -109t-60 -89t-89 -60t-109 -22t-108.5 22t-88.5 60t-60 89t-22 109z
M122 152q0 -29 20.5 -49t50.5 -20q28 0 48.5 20t20.5 49q0 19 -10 38q-4 4 -10 12t-13 19t-14 24t-11 27q-4 10 -11 7q-10 3 -12 -7q-4 -14 -11.5 -27t-14.5 -24t-13 -19t-8 -12q-12 -18 -12 -38z" />
<glyph glyph-name="uniE7A2" unicode="&#xe7a2;" horiz-adv-x="917"
d="M842 355h-331v335q138 0 234.5 -97t96.5 -234v-4zM406 250h333v4q0 -138 -97.5 -235t-235 -97t-234.5 97t-97 234.5t97 235t234 97.5v-336z" />
<glyph glyph-name="uniE7AC" unicode="&#xe7ac;" horiz-adv-x="1224"
d="M144 329l285 122v86l-285 121v-89l188 -76l-188 -75v-89zM470 260h286v69h-286v-69zM1224 800v-900h-1224v900h1224z" />
<glyph glyph-name="uniE7B5" unicode="&#xe7b5;" horiz-adv-x="1021"
d="M475 -139v115l-150 -57l-15 26l165 101v58h-317q-19 0 -32.5 13t-13.5 32q0 17 12 29.5t30 15.5v414q-18 1 -30 13.5t-12 29.5q0 19 13.5 32t32.5 13h326l18 49h12l18 -49h332q18 0 31.5 -13t13.5 -32t-13.5 -32t-31.5 -13v-412q18 0 31.5 -13t13.5 -32t-13.5 -32
t-31.5 -13h-328v-58l166 -101l-14 -26l-152 57v-115q0 -13 -9 -22.5t-22 -9.5q-14 0 -22 9.5t-8 22.5zM806 198v404h-595v-404h595z" />
<glyph glyph-name="uniE800" unicode="&#xe800;" horiz-adv-x="828"
d="M0.5 423.5q4.5 13.5 26.5 17.5l251 35l111 228q10 20 24.5 20t24.5 -20l113 -228l249 -35q23 -4 27.5 -17.5t-11.5 -29.5l-181 -177l42 -248q3 -17 -2.5 -26t-16.5 -9q-7 0 -20 5l-224 118l-223 -118q-13 -5 -20 -5q-12 0 -17.5 9t-2.5 26l43 248l-181 177
q-17 16 -12.5 29.5zM143 377l105 -103l31 -28l-7 -41l-26 -147l131 70l37 19l37 -19l130 -70l-24 147l-8 41l30 28l106 103l-146 21l-41 7l-19 37l-65 132l-66 -132l-17 -37l-42 -7z" />
<glyph glyph-name="uniE801" unicode="&#xe801;" horiz-adv-x="828"
d="M0.5 423.5q4.5 13.5 26.5 17.5l251 36l111 227q11 21 25 21t24 -21l113 -227l249 -36q23 -4 27.5 -17.5t-11.5 -29.5l-181 -177l42 -248q4 -23 -7.5 -31.5t-31.5 3.5l-224 116l-223 -116q-22 -12 -33.5 -3.5t-6.5 31.5l43 248l-181 177q-17 16 -12.5 29.5z" />
<glyph glyph-name="uniE802" unicode="&#xe802;"
d="M0 377q0 72 37.5 135t101.5 110t150.5 74.5t184.5 27.5t184 -27.5t150.5 -74.5t101.5 -110t37 -134.5t-37 -135t-101.5 -110t-150.5 -74t-184 -27.5q-47 0 -89 6q-44 -33 -95 -57.5t-109 -36.5l-25 -5l-27 -4q-16 -2 -21 15v1q-2 7 4 12l9 10l21 23q10 11 17.5 25.5
t14.5 34t12 48.5q-85 47 -135.5 118t-50.5 156z" />
<glyph glyph-name="uniE803" unicode="&#xe803;"
d="M0 63v79q0 20 20 20h113q26 0 50.5 16t48 43t46.5 61l46 72l60 90q30 45 64.5 79.5t75.5 56.5t93 22h104v94q0 21 12.5 25.5t30.5 -10.5l172 -142q11 -10 11 -24t-11 -23l-172 -144q-18 -14 -30.5 -10t-12.5 25v91h-104q-28 0 -52 -16.5t-47.5 -43.5t-47.5 -62l-46 -71
q-28 -46 -58 -90.5t-65 -79t-76.5 -56t-91.5 -21.5h-113q-8 0 -14 5t-6 14zM0 504v79q0 8 6 14t14 6h113q54 0 98 -25t81 -65q-19 -26 -36 -52l-33 -50q-26 33 -53 53t-57 20h-113q-8 0 -14 5.5t-6 14.5zM439 134l35 51l32 51q27 -32 53.5 -52t57.5 -20h104v99q0 21 12.5 25
t30.5 -11l172 -143q11 -9 11 -23q0 -15 -11 -24l-172 -142q-18 -15 -30.5 -11t-12.5 25v87h-104q-56 0 -98.5 24t-79.5 64z" />
<glyph glyph-name="uniE804" unicode="&#xe804;" horiz-adv-x="789"
d="M0 -34v726q0 20 18 30q20 7 33 -8l335 -362q9 -9 9 -23t-9 -23l-335 -362q-9 -10 -22 -10q-3 0 -11 2q-18 9 -18 30zM395 -34v726q0 20 18 30q20 7 32 -8l336 -362q8 -9 8 -23t-8 -23l-336 -362q-8 -10 -21 -10q-3 0 -11 2q-18 9 -18 30z" />
<glyph glyph-name="uniE805" unicode="&#xe805;" horiz-adv-x="552"
d="M0 -27q0 -16 11.5 -27.5t27.5 -11.5h79q17 0 28.5 11.5t11.5 27.5v711q0 17 -11.5 28.5t-28.5 11.5h-79q-16 0 -27.5 -11.5t-11.5 -28.5v-711zM158 329q0 14 8 22l336 363q7 10 21 10q3 0 12 -2q18 -10 18 -31v-725q0 -21 -18 -30q-20 -7 -33 8l-336 362q-8 9 -8 23z" />
<glyph glyph-name="uniE806" unicode="&#xe806;" horiz-adv-x="552"
d="M0 -34v726q0 20 18 30q20 7 33 -8l335 -362q9 -9 9 -23t-9 -23l-335 -362q-9 -10 -22 -10q-3 0 -11 2q-18 9 -18 30zM395 -27q0 -16 11.5 -27.5t27.5 -11.5h79q16 0 28 11.5t12 27.5v711q0 17 -12 28.5t-28 11.5h-79q-16 0 -27.5 -11.5t-11.5 -28.5v-711z" />
<glyph glyph-name="uniE807" unicode="&#xe807;" horiz-adv-x="789"
d="M0 -30v718q0 15 10.5 25.5t25.5 10.5h718q14 0 24.5 -10.5t10.5 -25.5v-718q0 -15 -10.5 -25.5t-24.5 -10.5h-718q-15 0 -25.5 10.5t-10.5 25.5z" />
<glyph glyph-name="uniE808" unicode="&#xe808;" horiz-adv-x="789"
d="M0 -30v718q0 15 10.5 25.5t25.5 10.5h251q15 0 25.5 -10.5t10.5 -25.5v-718q0 -15 -10.5 -25.5t-25.5 -10.5h-251q-15 0 -25.5 10.5t-10.5 25.5zM466 -30v718q0 15 10.5 25.5t25.5 10.5h252q14 0 24.5 -10.5t10.5 -25.5v-718q0 -15 -10.5 -25.5t-24.5 -10.5h-252
q-15 0 -25.5 10.5t-10.5 25.5z" />
<glyph glyph-name="uniE809" unicode="&#xe809;" horiz-adv-x="693"
d="M0 -30v718q0 20 18 30q19 12 36 0l622 -357q18 -13 18 -32t-18 -32l-622 -358q-9 -5 -18.5 -5t-17.5 5q-18 11 -18 31z" />
<glyph glyph-name="uniE80A" unicode="&#xe80a;" horiz-adv-x="789"
d="M0 433v230q0 25 18 43t43 18h230q25 0 55.5 -13t48.5 -30l377 -377q17 -18 17 -43.5t-17 -43.5l-266 -265q-18 -18 -43 -18t-43 18l-377 377q-18 18 -30.5 48.5t-12.5 55.5zM99 566q0 -24 17.5 -41.5t41.5 -17.5t41.5 17.5t17.5 41.5t-17.5 41.5t-41.5 17.5t-41.5 -17.5
t-17.5 -41.5z" />
<glyph glyph-name="uniE80B" unicode="&#xe80b;"
d="M0 -26v139q0 17 11.5 28t28.5 11h153q15 0 27 -11t12 -28v-139q0 -17 -12 -28.5t-27 -11.5h-153q-17 0 -28.5 11.5t-11.5 28.5zM0 271v116q0 17 11.5 28t28.5 11h153q15 0 27 -11t12 -28v-116q0 -17 -12 -28.5t-27 -11.5h-153q-17 0 -28.5 11.5t-11.5 28.5zM0 545v140
q0 16 11.5 27.5t28.5 11.5h153q15 0 27 -11.5t12 -27.5v-140q0 -17 -12 -28.5t-27 -11.5h-153q-17 0 -28.5 11.5t-11.5 28.5zM311 -26v139q0 17 11.5 28t28.5 11h557q16 0 27.5 -11t11.5 -28v-139q0 -17 -11.5 -28.5t-27.5 -11.5h-557q-17 0 -28.5 11.5t-11.5 28.5zM311 271
v116q0 17 11.5 28t28.5 11h557q16 0 27.5 -11t11.5 -28v-116q0 -17 -11.5 -28.5t-27.5 -11.5h-557q-17 0 -28.5 11.5t-11.5 28.5zM311 545v140q0 16 11.5 27.5t28.5 11.5h557q16 0 27.5 -11.5t11.5 -27.5v-140q0 -17 -11.5 -28.5t-27.5 -11.5h-557q-17 0 -28.5 11.5
t-11.5 28.5z" />
<glyph glyph-name="uniE80C" unicode="&#xe80c;"
d="M0 -26v139q0 17 11.5 28t28.5 11h184q16 0 27.5 -11t11.5 -28v-139q0 -17 -11.5 -28.5t-27.5 -11.5h-184q-17 0 -28.5 11.5t-11.5 28.5zM0 271v116q0 17 11.5 28t28.5 11h184q16 0 27.5 -11t11.5 -28v-116q0 -17 -11.5 -28.5t-27.5 -11.5h-184q-17 0 -28.5 11.5
t-11.5 28.5zM0 545v140q0 16 11.5 27.5t28.5 11.5h184q16 0 27.5 -11.5t11.5 -27.5v-140q0 -17 -11.5 -28.5t-27.5 -11.5h-184q-17 0 -28.5 11.5t-11.5 28.5zM342 -26v139q0 17 11.5 28t28.5 11h184q16 0 27.5 -11t11.5 -28v-139q0 -17 -11.5 -28.5t-27.5 -11.5h-184
q-17 0 -28.5 11.5t-11.5 28.5zM342 271v116q0 17 11.5 28t28.5 11h184q16 0 27.5 -11t11.5 -28v-116q0 -17 -11.5 -28.5t-27.5 -11.5h-184q-17 0 -28.5 11.5t-11.5 28.5zM342 545v140q0 16 11.5 27.5t28.5 11.5h184q16 0 27.5 -11.5t11.5 -27.5v-140q0 -17 -11.5 -28.5
t-27.5 -11.5h-184q-17 0 -28.5 11.5t-11.5 28.5zM684 -26v139q0 17 11.5 28t28.5 11h184q16 0 27.5 -11t11.5 -28v-139q0 -17 -11.5 -28.5t-27.5 -11.5h-184q-17 0 -28.5 11.5t-11.5 28.5zM684 271v116q0 17 11.5 28t28.5 11h184q16 0 27.5 -11t11.5 -28v-116
q0 -17 -11.5 -28.5t-27.5 -11.5h-184q-17 0 -28.5 11.5t-11.5 28.5zM684 545v140q0 16 11.5 27.5t28.5 11.5h184q16 0 27.5 -11.5t11.5 -27.5v-140q0 -17 -11.5 -28.5t-27.5 -11.5h-184q-17 0 -28.5 11.5t-11.5 28.5z" />
<glyph glyph-name="uniE80D" unicode="&#xe80d;" horiz-adv-x="789"
d="M0 33q0 20 15 35l261 262l-261 257q-15 15 -15 35t15 34l51 52q15 15 35 15t35 -15l259 -259l259 259q14 15 34 15t35 -15l52 -52q14 -14 14 -34t-14 -35l-261 -262l261 -257q14 -15 14 -34.5t-14 -34.5l-52 -52q-15 -15 -35 -15t-34 15l-259 260l-260 -260
q-15 -15 -34.5 -15t-34.5 15l-51 51q-15 15 -15 35z" />
<glyph glyph-name="uniE80E" unicode="&#xe80e;"
d="M1 339q3 12 14 20l433 356q12 9 25.5 9t25.5 -9l133 -109v61q0 20 20 20h117q20 0 20 -20v-190l144 -118q10 -8 13 -20t-1 -24q-10 -25 -38 -25h-79v-316q0 -17 -11 -28.5t-28 -11.5h-216v237h-198v-237h-217q-17 0 -28.5 11.5t-11.5 28.5v316h-79q-26 0 -37 25
q-4 12 -1 24z" />
<glyph glyph-name="uniE80F" unicode="&#xe80f;"
d="M0 305.5q0 22.5 13 42.5q40 64 91.5 115t111 86.5t124.5 54t134 18.5t134.5 -18.5t124.5 -53.5t110.5 -86t92.5 -116q11 -20 11 -42.5t-11 -41.5q-41 -66 -92.5 -117t-110.5 -85.5t-124.5 -53t-134.5 -18.5t-134 18.5t-124.5 53.5t-111 86t-91.5 116q-13 19 -13 41.5z
M79 306q34 -54 77 -98t93.5 -74.5t107 -47.5t117.5 -17t117 17t106.5 47.5t94 74.5t76.5 98q-41 66 -96 116t-121 81q26 -31 40.5 -69t14.5 -82q0 -49 -18.5 -92t-51 -75.5t-75.5 -51t-92 -18.5t-91.5 18.5t-75.5 51t-51 75.5t-18 92q0 40 13 76.5t35 65.5
q-60 -30 -111.5 -78t-90.5 -110zM316 352q0 -11 8.5 -20t21 -9t21 9t8.5 20q0 40 27 67.5t67 27.5q13 0 21.5 9t8.5 20q0 13 -8.5 21.5t-21.5 8.5q-31 0 -59.5 -12t-49 -32.5t-32.5 -49t-12 -60.5z" />
<glyph glyph-name="uniE810" unicode="&#xe810;"
d="M0 -7v672q0 24 17.5 41.5t41.5 17.5h356q24 0 41.5 -17.5t17.5 -41.5t17 -41.5t42 -17.5h355q25 0 42 -18t17 -42v-553q0 -24 -17 -41.5t-42 -17.5h-829q-24 0 -41.5 17.5t-17.5 41.5z" />
<glyph glyph-name="uniE811" unicode="&#xe811;" horiz-adv-x="530"
d="M265 700q103 0 176.5 -73t73.5 -177q0 -67 -25.5 -148t-62.5 -149.5t-74 -127t-63 -91.5l-25 -34l-27 35q-17 22 -60 89t-76 130t-60 146t-27 150q0 104 73.5 177t176.5 73zM265 312q56 0 95.5 39.5t39.5 95.5t-39.5 95.5t-95.5 39.5t-95.5 -39.5t-39.5 -95.5t39.5 -95.5
t95.5 -39.5z" />
<glyph glyph-name="uniE812" unicode="&#xe812;" horiz-adv-x="1030"
d="M871 466h-100l-124 151l-214 -151h-180q-53 0 -90.5 -38t-37.5 -92v-159l-107 297q-6 16 0.5 31t21.5 20l680 248q15 5 29 -2t20 -23zM977 376q16 0 27 -11.5t11 -28.5v-471q0 -17 -11 -28.5t-27 -11.5h-724q-16 0 -27 11.5t-11 28.5v471q0 17 11 28.5t27 11.5h724z
M922 -75v161l-73 161l-167 -60l-129 -133l-139 172l-92 -215v-86h600z" />
<glyph glyph-name="uniE813" unicode="&#xe813;"
d="M0 665v39q0 20 20 20h119q8 0 19 -2.5t19 -4.5q3 -2 7 -7t8 -12t6.5 -14t3.5 -11l14 -64h692q18 0 29.5 -13.5t8.5 -30.5l-55 -297q-4 -13 -14.5 -22t-24.5 -9h-557l18 -86q2 -8 8.5 -13.5t15.5 -5.5h440q8 0 14 -5.5t6 -14.5v-40q0 -8 -6 -13.5t-14 -5.5h-84h-335h-54
q-8 0 -18.5 1.5t-18.5 4.5q-3 2 -7 7.5t-8 12.5t-6.5 13.5t-3.5 11.5l-110 522q-3 8 -9.5 13.5t-15.5 5.5h-87q-20 0 -20 20zM299 -7q0 24 17.5 42t41.5 18q25 0 42.5 -18t17.5 -42t-17.5 -41.5t-42.5 -17.5q-24 0 -41.5 17.5t-17.5 41.5zM634 -7q0 24 17 42t41.5 18t42 -18
t17.5 -42t-17.5 -41.5t-42 -17.5t-41.5 17.5t-17 41.5z" />
<glyph glyph-name="uniE814" unicode="&#xe814;" horiz-adv-x="1228"
d="M31 151q0 46 82 97q66 36 143 46v51q-77 77 -77 190q0 194 154 194q77 0 97 -20q26 -20 36 -92q-97 -66 -98 -246q0 -159 67 -230q-26 0 -71 -31l-36 -20l-11 -10q-15 -11 -25 -21l-26 -26q-25 0 -138 31q-97 31 -97 87zM281 -43.5q0 40.5 93 97.5q87 46 158 51v56
q-82 77 -81 205q0 210 163.5 210t163.5 -210q0 -128 -81 -205v-56q71 -6 158 -51.5t87 -96.5q0 -41 -71 -62q-77 -21 -149 -31q-46 -5 -107.5 -5t-107.5 5q-71 10 -148.5 31t-77.5 61.5zM763 617q10 72 36 92q20 20 97 20q153 0 153 -194q0 -113 -76 -190v-51
q76 -10 143 -46q87 -46 87 -97t-102 -87q-113 -31 -139 -31l-25 26q-10 10 -26 21l-10 10q-20 10 -36 20q-46 31 -71 31q66 71 66 230q0 180 -97 246z" />
<glyph glyph-name="uniE815" unicode="&#xe815;" horiz-adv-x="1228"
d="M358 341l384 414l-128 -358l257 -149l-384 -414l127 358z" />
<glyph glyph-name="uniE817" unicode="&#xe817;" horiz-adv-x="961"
d="M481 722q169 0 287 -117t118 -286q0 -170 -117.5 -288.5t-287.5 -118.5q-169 0 -287.5 118.5t-118.5 288.5q0 167 118.5 285t287.5 118zM504 -11q67 0 116 169q-58 -6 -116 -8v-161zM375 70q34 -81 81 -81v161q-58 2 -115 8q11 -48 34 -88zM152 272q34 -40 133 -57
q-7 46 -7 100q0 33 3 69q-82 16 -117 31q-14 -47 -14 -96q0 -33 2 -47zM322 315q0 -57 8 -109q60 -10 126 -12v176q-76 2 -132 9q0 -11 -1 -32t-1 -32zM454 646q-43 -16 -76 -77t-48 -148q61 -5 126 -7v232h-2zM536 629q-26 17 -32 17v-232q62 1 127 7q-26 145 -95 208z
M504 194q64 1 126 11q8 40 8 110q0 41 -2 63q-64 -7 -132 -8v-176zM680 384q2 -24 2 -69q0 -49 -6 -101q90 15 112.5 36.5t22.5 68.5q0 50 -15 95q-57 -24 -116 -30zM779 458q-57 123 -179 167q54 -70 74 -199q84 15 105 32zM248 550q-40 -36 -66 -91q6 -5 104 -31
q22 124 75 196q-80 -38 -113 -74zM248 85q40 -44 106 -71q-40 56 -60 151q-84 19 -125 41q31 -77 79 -121zM714 85q48 45 75 116q-47 -21 -121 -37q-23 -96 -62 -150q68 28 108 71z" />
<glyph glyph-name="uniF301" unicode="&#xf301;" horiz-adv-x="978"
d="M188 800h602q73 0 123.5 -51t50.5 -123v-602q0 -72 -50.5 -123t-123.5 -51h-602q-72 0 -123 51t-51 123v602q0 72 51 123t123 51zM515 -150h141v371h139l6 134h-145v97q0 32 10.5 46t45.5 14l85 -1l4 126q-41 4 -95 4q-95 0 -143 -49t-48 -123v-114h-99v-134h99v-371z
" />
<glyph glyph-name="uniF303" unicode="&#xf303;" horiz-adv-x="1332"
d="M1318 385q-35 -5 -77.5 -0.5t-69.5 15.5q53 4 90.5 27t51.5 57q-22 -14 -69.5 -21t-84.5 4q-1 4 -3 14.5t-4 16.5q-26 97 -105.5 161.5t-170.5 54.5l29 11q2 1 14.5 4t24 6.5t23.5 9t17.5 12t1.5 14.5q-2 7 -14.5 7.5t-29.5 -4t-32.5 -9.5t-31 -11t-18.5 -7q64 24 69 53
q-59 -8 -103 -49q17 19 20 39q-68 -43 -115 -122.5t-89 -192.5q-62 59 -99 79q-136 73 -335 148q-4 -42 23.5 -87.5t88.5 -77.5q-27 4 -81 -9q9 -48 43 -81t104 -49q-61 -4 -90 -35q19 -37 59.5 -61.5t101.5 -18.5q-35 -15 -46.5 -36.5t-2 -39t34.5 -28.5t55 -6
q-68 -71 -158.5 -94.5t-177 -1.5t-148.5 82q79 -108 191.5 -172.5t229 -80t237 6.5t219.5 77.5t172.5 142.5t99.5 193q101 -1 155 59z" />
<glyph glyph-name="uniF308" unicode="&#xf308;" horiz-adv-x="1132"
d="M456 224q0 51 -22 87.5t-52.5 36.5t-52 -36.5t-21.5 -87.5t21.5 -87t52.5 -36t52.5 36t21.5 87zM856 224q0 51 -22 87.5t-52.5 36.5t-53 -36.5t-22.5 -87.5t22 -87t53.5 -36t53 36t21.5 87zM933 238q0 -37 -4.5 -68.5t-14.5 -55t-21 -42.5t-29.5 -32.5t-35 -23.5
t-42.5 -16t-46.5 -10t-52 -6t-54.5 -2.5t-58 -0.5q-65 0 -114 5.5t-97 21.5t-78 43.5t-49 74.5t-19 112q0 78 61 142q23 24 58.5 33.5t65.5 8.5t84.5 -5.5t87.5 -4.5t87 4.5t85 5.5t66.5 -8.5t57.5 -32.5q62 -67 62 -143zM724 -99q156 15 239.5 64.5t120.5 136.5q6 12 19 59
q16 52 16 174q0 146 -102 248q31 101 -15 216q-3 1 -9 2t-27 -1t-45.5 -9t-65.5 -27t-85 -50q-91 23 -198 23q-115 0 -218 -28q-47 32 -89 53t-68.5 28t-46.5 10t-28 1l-9 -2q-21 -54 -24 -108.5t2.5 -79.5t12.5 -43q-90 -98 -90 -233q0 -115 27 -193q2 -8 22 -48
q87 -162 364 -193h297z" />
<glyph glyph-name="u1D30D" unicode="&#x1d30d;" horiz-adv-x="1228"
d="M154 294q0 190 133 323q138 138 327 138q195 0 323 -138q138 -128 138 -323q0 -189 -138 -327q-133 -133 -323 -133q-184 0 -327 133q-133 143 -133 327zM251 494h30q26 -30 32 -30q25 -93 55 -108l26 -15q16 0 16 25q0 20 -10 31q0 20 4 25q11 21 21 26q10 20 15 20
l11 -15q15 -30 30 -36v-10q6 -15 6 -20v-10q0 -6 -6 -6q0 -5 -8 -5h-12q5 0 5 -10q6 -11 10 -15l11 -26l15 -26q5 -10 15 -20q16 -31 36 -36q21 -15 56 -15v-21l11 -5q5 0 5 -5q20 0 30 5l6 -5q-6 -20 -47 -41l-40 -15v-11q0 -5 -3 -15t-3 -25q-10 -57 -15 -62q26 -6 41 -5
q10 0 41 10l41 10q15 -10 25 -25v-15l16 -6v-20l-5 -6l5 -10h15q31 0 36 36q41 16 61 46q21 26 21 72l-5 5q-21 36 -21 46q-15 31 -15 41q10 -15 30 -15h6l26 5l-16 25v6l20 -21l-10 -26l26 16l15 -5q16 5 26 30h-10v26l-16 -10l-5 5v5q-15 0 -20 5q-6 0 -6 11v4
q-36 21 -46 21v-21v-10h-5q-25 31 -56 31h-20q-11 10 -21 10h-10v16l-10 5q0 5 -3 15t-3 20q-5 21 -15 32l5 10h-20q-10 36 -21 35l5 26v20l-15 6q-26 0 -26 -26l16 -31q-10 -20 -10 -25q0 -16 5 -21l-5 -10q-10 -10 -11 -20v-6l-46 -35q-5 0 -5 10v10v10q0 16 -15 36l15 -5
q16 0 26 36v20q0 21 -6 26q11 0 11 25q56 11 56 72q0 16 -15 46l-10 10h5q15 -26 30 -25q6 0 16 10q5 10 5 21q0 15 -11 25l-4 5v6q20 10 20 15q5 5 5 15v31q-51 10 -72 10q-225 0 -363 -215zM650 305v20q0 -5 11 -15zM676 238v16q0 10 5 15v-31h20v5v-5h6q10 0 15 5l10 -5
q16 -5 16 -15q0 -5 -6 -11h-10q-20 0 -30.5 -10t-15.5 -10l-5 5q20 0 20 21v15h-15l-5 5h-5zM758 207q5 -5 10 -5v-10q-5 -10 -5 -15v10q-5 5 -5 20zM891 141q0 -16 15 -31q10 -10 26 -10l10 -5q10 0 10 -5q-15 51 -25 56q-16 16 -31 25q0 -10 -5 -20v-10z" />
<glyph glyph-name="u1F304" unicode="&#x1f304;"
d="M0 -7v672q0 24 17.5 41.5t41.5 17.5h829q25 0 42 -17.5t17 -41.5v-672q0 -24 -17 -41.5t-42 -17.5h-829q-24 0 -41.5 17.5t-17.5 41.5zM79 13h789v632h-789v-632zM158 92v54l142 185l97 -80l182 276l210 -218v-217h-631zM158 486q0 33 23 56.5t57 23.5q33 0 56 -23.5
t23 -56.5t-23 -56t-56 -23q-34 0 -57 23t-23 56z" />
<glyph glyph-name="u1F310" unicode="&#x1f310;" horiz-adv-x="1228"
d="M307 -115q0 51 51 51h205v61q-127 16 -235 113q-11 10 -11 36q0 21 11 31q15 15 30 15q21 0 36 -15q72 -72 169 -87h102q98 15 170 87q92 92 92 220t-92 220l-31 36l138 133q10 15 30.5 15t31.5 -15q15 -10 15 -30.5t-15 -30.5l-72 -77q87 -113 87 -251q0 -159 -118 -287
q-107 -97 -236 -113v-61h206q51 0 51 -51t-51 -51h-513q-51 0 -51 51zM364 396.5q0 102.5 74 177t176.5 74.5t176.5 -74.5t74 -177t-74 -176.5t-176.5 -74t-176.5 74t-74 176.5z" />
<glyph glyph-name="u1F381" unicode="&#x1f381;"
d="M0 230v198q0 8 6 14t14 6h272q-29 0 -54 10.5t-44 29.5t-30 44t-11 53.5t11 54t30 44t44 29.5t54 11q30 0 57.5 -12.5t45.5 -35.5l79 -102l79 102q18 23 45 35.5t58 12.5q28 0 53.5 -11t44.5 -29.5t30 -44t11 -54t-11 -53.5t-30 -44t-44.5 -29.5t-53.5 -10.5h271
q9 0 14.5 -6t5.5 -14v-198q0 -8 -5.5 -13.5t-14.5 -5.5h-59v-218q0 -24 -17 -41.5t-42 -17.5h-671q-24 0 -41.5 17.5t-17.5 41.5v218h-59q-8 0 -14 5.5t-6 13.5zM232 586q0 -24 17.5 -41.5t42.5 -17.5h119l-77 99q-6 5 -16.5 12t-25.5 7q-25 0 -42.5 -17.5t-17.5 -41.5z
M375 45q0 -16 11.5 -27.5t28.5 -11.5h118q16 0 28 11.5t12 27.5v403h-198v-403zM536 527h120q24 0 42 17.5t18 41.5t-18 41.5t-42 17.5q-16 0 -26.5 -7t-15.5 -12z" />
<glyph glyph-name="u1F3A4" unicode="&#x1f3a4;" horiz-adv-x="670"
d="M635 438q8 0 14 -6t6 -14v-138q0 -93 -69 -165t-201 -83v-132h130q8 0 14 -6t6 -14v-60q0 -8 -6 -14t-14 -6h-360q-8 0 -14 6t-6 14v60q0 8 6 14t14 6h130v132q-132 11 -201 83t-69 165v138q0 8 6 14t14 6h30q8 0 14 -6t6 -14v-138q0 -28 12 -57t38.5 -58t78 -47
t121.5 -18t121.5 18t78 47t38.5 58t12 57v138q0 8 6 14t14 6h30zM335 200q-79 0 -114.5 25t-35.5 55v158h300v-158q0 -30 -35.5 -55t-114.5 -25zM485 720v-212h-300v212q0 30 35.5 55t114.5 25t114.5 -25t35.5 -55z" />
<glyph glyph-name="u1F3A7" unicode="&#x1f3a7;"
d="M0 309q0 57 19.5 110t52.5 99t79 83.5t98.5 65t110 42.5t114.5 15t114 -15t110 -42.5t98.5 -65t78.5 -83.5t52.5 -99t19.5 -110q0 -92 -38 -174l-13 -29l-85 -13q-14 -51 -55.5 -85t-97.5 -34v-20q0 -8 -6 -14t-14 -6h-40q-9 0 -14 6t-5 14v355q0 8 5 14t14 6h40
q8 0 14 -6t6 -14v-19q44 0 79.5 -22t56.5 -57l20 2q15 45 15 96q0 61 -32.5 115t-84 94t-114.5 64t-124 24t-124.5 -24t-114.5 -64t-83.5 -94t-32.5 -115q0 -48 15 -96l20 -2q21 35 56 57t79 22v19q0 8 6 14t14 6h40q9 0 14 -6t5 -14v-355q0 -8 -5 -14t-14 -6h-40
q-8 0 -14 6t-6 14v20q-55 0 -96.5 34t-55.5 85l-85 13l-14 29q-38 82 -38 174z" />
<glyph glyph-name="u1F3C6" unicode="&#x1f3c6;" horiz-adv-x="930"
d="M524 82v-65q71 -8 117 -32t46 -55q0 -37 -65 -63.5t-157 -26.5t-157 26.5t-65 63.5q0 31 46 55t117 32v65q0 50 -33 85t-112 87q-45 30 -69 47.5t-63.5 54.5t-60 72t-37 88.5t-16.5 115.5q0 14 10 24.5t25 10.5h172q21 39 81.5 66t161.5 27t161.5 -27t81.5 -66h172
q15 0 25 -10.5t10 -24.5q0 -62 -16.5 -115.5t-37 -88.5t-60 -72t-63.5 -54.5t-69 -47.5q-79 -52 -112 -87t-33 -85zM663 335q80 54 126 112t54 150h-126q-5 -157 -54 -262zM465 699q-39 0 -72 -6t-54 -15t-36 -20t-21.5 -20t-6.5 -16t6.5 -16t21.5 -20t36 -20t54 -15t72 -6
t72 6t54 15t36 20t21.5 20t6.5 16t-6.5 16t-21.5 20t-36 20t-54 15t-72 6zM87 597q8 -92 54 -150t126 -112q-49 105 -54 262h-126z" />
<glyph glyph-name="u1F3C9" unicode="&#x1f3c9;" horiz-adv-x="868"
d="M0 470v96q0 17 11.5 28t28.5 11h166q-1 6 -1 13v12v2q0 27 2 45t8 28t16.5 14.5t28.5 4.5h348q17 0 28 -4.5t17 -14.5t8 -28t2 -45v-14q0 -6 -1 -13h166q17 0 28.5 -11t11.5 -28v-96q0 -33 -23 -67.5t-62.5 -65.5t-92.5 -55t-114 -33q-27 -5 -47.5 -21.5t-20.5 -36.5
q0 -18 9 -26.5t20 -15.5t20.5 -16t11.5 -27q3 -12 -1 -24q-2 -8 12.5 -12.5t35 -9.5t42 -11.5t33.5 -17.5q6 -5 9.5 -20.5t4.5 -33.5q1 -16 -3 -29.5t-15 -13.5h-506q-10 0 -14.5 13.5t-3.5 29.5q1 18 5 33.5t10 20.5q11 11 32.5 17.5t42 11.5t35 9.5t12.5 12t-2 12.5v12
q1 18 11 27t21.5 16t20.5 15.5t9 26.5q0 20 -20.5 36.5t-47.5 21.5q-60 10 -113.5 34t-93 54.5t-62.5 65t-23 67.5zM79 470q0 -11 12 -28t34.5 -36t55 -37t72.5 -31q-13 41 -23 90t-17 98h-134v-56zM616 338q40 13 72 31t54.5 37t34.5 36t12 28v56h-134q-7 -49 -17 -98
t-22 -90z" />
<glyph glyph-name="u1F44D" unicode="&#x1f44d;" horiz-adv-x="824"
d="M0.5 168q-1.5 59 2 118t13.5 110q47 3 98.5 3t94.5 -10q7 -40 11 -96t5.5 -116t0.5 -116.5t-5 -98.5q-19 -3 -43.5 -3.5t-51.5 1t-53 2t-47 0.5q-10 40 -17 93.5t-8.5 112.5zM96 41q0 -17 11.5 -28.5t28.5 -11.5t28 11.5t11 28.5q0 15 -11 26.5t-28 11.5t-28.5 -11.5
t-11.5 -26.5zM253 368q23 10 37 20t25.5 22.5t24 27.5t32.5 36q16 17 29.5 28t24.5 21t20 21t18 27q17 31 22.5 68.5t13.5 71.5q0 7 7 12q20 3 37 -4t29.5 -18.5t20.5 -27.5t11 -29q7 -35 -1 -63t-20 -53l-24 -49q-11 -24 -12 -50q23 -10 55 -10.5t66.5 1.5t67 2t55 -9
t30 -30.5t-5.5 -63.5q0 -2 -2 -5l-6 -8q-3 -5 -5 -10l-2 -3q12 -11 17 -24t5 -21q1 -41 -34 -72q11 -15 12 -32.5t-4 -33.5t-15 -28t-23 -18q6 -36 -6.5 -61.5t-37 -40.5t-59.5 -21.5t-73 -6.5t-76.5 5.5t-70.5 14.5q-21 7 -41 15l-41 15q-20 8 -43 12.5t-48 -0.5
q2 41 2.5 89.5t-1 98.5t-4.5 97.5t-7 86.5z" />
<glyph glyph-name="u1F44E" unicode="&#x1f44e;" horiz-adv-x="824"
d="M1 410q-1 22 8 39.5t26 32.5q-10 15 -11 32.5t4 33.5t15 28t22 18q-6 36 6.5 61.5t37.5 40.5t59.5 21.5t72.5 6.5t76.5 -5.5t70.5 -14.5q21 -7 41 -15t41 -15.5t43.5 -11.5t47.5 1q-2 -41 -2.5 -90t1 -99t4 -97.5t8.5 -86.5q-24 -11 -38 -21t-25 -22t-23.5 -27t-32.5 -35
q-16 -18 -29 -29l-24 -21q-12 -10 -21.5 -20.5t-18.5 -27.5q-17 -31 -21.5 -68.5t-14.5 -71.5q0 -9 -7 -12q-21 -3 -37.5 4t-29 18.5t-20.5 26.5t-11 30q-6 35 1.5 63t20 53t23.5 49.5t12 50.5q-22 9 -54.5 9t-67 -1.5t-66.5 -1.5t-54.5 9t-30.5 30.5t5 62.5q1 1 4 6l6 9
q2 4 3 9l2 3q-11 11 -16.5 24t-5.5 21zM598 597.5q1 56.5 5 98.5q19 2 44.5 2.5t52 0t52.5 -1.5t47 -1q10 -40 16.5 -93.5t8 -112t-2 -118t-13.5 -110.5q-47 -4 -98 -4t-95 11q-7 40 -11 96t-5.5 116t-0.5 116.5zM649 618q0 -16 12 -28t28 -12t27.5 12t11.5 28t-11.5 27.5
t-27.5 11.5t-28 -11.5t-12 -27.5z" />
<glyph glyph-name="u1F464" unicode="&#x1f464;" horiz-adv-x="970"
d="M751 78q94 -34 149 -67t55 -56v-105h-940v105q0 23 55 56t149 67q93 34 128 69t35 95q0 20 -10 31.5t-24 31.5t-21 58q-2 12 -9 17.5t-14.5 8t-14 17t-8.5 43.5q0 15 4.5 25.5t8.5 13.5l5 3q-9 50 -13 88q-2 21 6 47.5t27.5 55.5t62.5 48.5t103 19.5t103 -19.5
t62.5 -48.5t27.5 -55.5t6 -47.5l-13 -88q18 -8 18 -42q-2 -29 -8.5 -43.5t-14 -17t-14.5 -8t-9 -17.5q-7 -38 -21 -58t-24 -31.5t-10 -31.5q0 -60 35 -95t128 -69z" />
<glyph glyph-name="u1F465" unicode="&#x1f465;" horiz-adv-x="1030"
d="M1015 -125h-225v144q0 52 -30 78.5t-154 85.5q41 29 41 81q0 14 -13.5 31.5t-18.5 49.5q-1 8 -5.5 11.5t-8.5 5t-8.5 11.5t-5.5 29q0 10 2.5 17t5.5 9l3 2q-6 33 -8 59q-1 14 3.5 31.5t16.5 37t38 32.5t62 13t62 -13t37.5 -32.5t16 -37t3.5 -31.5l-7 -59q10 -6 10 -28
q-1 -19 -5.5 -29t-8.5 -11.5t-8.5 -5t-5.5 -11.5q-5 -32 -18.5 -49.5t-13.5 -31.5q0 -40 21 -63.5t77 -46.5q61 -25 90 -41t41 -36q5 -8 8.5 -58.5t4.5 -96.5zM526 127q89 -36 136.5 -64t47.5 -56v-132h-695v176q0 20 15.5 36t28.5 22.5t35 15.5q3 1 5 2q75 30 103 61t28 85
q0 19 -18.5 42t-25.5 66q-2 10 -7.5 15t-11.5 7t-11 15t-7 39q0 13 3.5 22.5t7.5 12.5l4 2q-8 45 -11 79q-2 19 4.5 42t22 49t50.5 43.5t83 17.5t82.5 -17.5t50 -43.5t22 -49t4.5 -42l-10 -79q14 -7 14 -37q-2 -26 -7.5 -39t-11 -15t-11 -7t-7.5 -15q-7 -43 -25 -66t-18 -42
q0 -54 28 -85t102 -61z" />
<glyph glyph-name="u1F4A1" unicode="&#x1f4a1;" horiz-adv-x="670"
d="M473 10h-265q0 59 -21.5 114.5t-50.5 97.5l-59 86q-29 43 -47 97t-14 112q3 43 14.5 81.5t36 76t59 64.5t88.5 44t121 17t121 -17t88.5 -44t59 -64.5t36 -76t14.5 -81.5q4 -59 -12.5 -113t-43.5 -98l-56 -86q-29 -44 -49 -98t-20 -112zM203 -159v99h264v-99
q-60 -42 -132 -41q-72 -1 -132 41z" />
<glyph glyph-name="u1F4B0" unicode="&#x1f4b0;" horiz-adv-x="803"
d="M312 349q17 20 66 23v-84q-43 3 -59.5 10t-16.5 28q0 13 10 23zM420 108v91q48 -4 63 -10.5t15 -24.5q0 -45 -78 -56zM490 351q22 -12 29 -19.5t7 -17.5l8 -4l45 90l-7 5q-10 -7 -13 -7q-8 0 -13 3q-90 35 -126 35v18q0 14 20 18v9h-79v-9q17 -4 17 -18v-15
q-73 -3 -113 -35.5t-40 -87.5t33.5 -78.5t119.5 -31.5v-96q-56 5 -86.5 23.5t-30.5 40.5l-7 4l-42 -94l7 -4q9 5 12 5q7 0 9 -3q72 -36 138 -40v-18q0 -15 -17 -20v-9h79v9q-20 5 -20 20v18q72 4 115.5 38.5t43.5 88.5q0 101 -149 115h-10v87q36 -2 70 -20zM531 532
q89 -37 143.5 -118.5t54.5 -181.5q0 -136 -95.5 -231.5t-231.5 -95.5t-231.5 95.5t-95.5 231.5q0 100 54.5 181.5t142.5 118.5l-81 179q0 25 28 25h366q27 0 27 -25z" />
<glyph glyph-name="u1F4B5" unicode="&#x1f4b5;" horiz-adv-x="1293"
d="M79 291q76 0 149 24t134.5 62t121.5 85l120 92q61 46 122.5 84t134.5 62.5t149 24.5l105 -227l90 -192q-103 0 -199.5 -42t-176.5 -102l-160 -122q-80 -62 -182.5 -110.5t-212.5 -57.5l-98 210zM199 225l63 -137l64 -136q132 26 283 137q-70 27 -107 103q-32 72 -20 168
q-154 -112 -283 -135zM1085 372l-68 145l-59 128q-136 -25 -284 -137q67 -24 106 -103q34 -75 20 -167q151 111 285 134zM428 68q-4 6 -10 18t-8 18q-5 -3 -10 -3q1 -11 6 -40q15 3 22 7zM455 90q4 6 11 21q-24 7 -38 13q0 -2 -1.5 -3.5t-3 -3.5t-1.5 -3zM371 68q1 3 6 15.5
t8 18.5q-5 3 -9 6q-4 -6 -13 -15t-13 -14q12 -10 21 -11zM468 148q-3 14 -6 22h-1q-15 -10 -35 -20v-1q3 -3 3 -10q21 3 39 9zM329 106q27 10 37 15q-2 8 -2 9q-14 -1 -43 -1q1 -11 8 -23zM416 161q4 5 12 17l12 17q-10 9 -19 10q-10 -25 -13 -39q1 0 4 -2t4 -3zM365 145
q3 3 5 10l-16 13l-15 12q-8 -8 -11 -20q3 -1 11.5 -4.5t14.5 -5.5t11 -5zM392 168q0 7 -2 20t-2 20q-8 -2 -23 -7q3 -3 5 -9t4 -10q-2 4 -4 10t-5 9q3 -6 8.5 -18.5t8.5 -18.5q2 1 10 4zM872 404q-8 22 -43 94q-13 -7 -19 -12q8 -16 22 -47l20 -47q12 8 20 12zM960 446
q-5 13 -20.5 44t-23.5 49q-4 -1 -10.5 -4.5t-9.5 -4.5l44 -91q11 3 20 7zM916 426q-6 15 -14 30l-16 35l-15 29q-3 -2 -9 -5l-10 -5q26 -51 44 -92q4 1 11 4t9 4z" />
<glyph glyph-name="u1F4C2" unicode="&#x1f4c2;"
d="M0 129v536q0 24 17.5 41.5t41.5 17.5h356q24 0 41.5 -17.5t17.5 -41.5t17 -41.5t42 -17.5h227q24 0 41.5 -18t17.5 -42v-114h-632q-19 0 -36.5 -6.5t-33.5 -17.5t-27.5 -26t-17.5 -33zM22 -66l126 391q4 11 16.5 19.5t23.5 8.5h759l-133 -389q-3 -12 -16 -21t-24 -9h-752
z" />
<glyph glyph-name="u1F4C4" unicode="&#x1f4c4;" horiz-adv-x="631"
d="M0 -7v672q0 24 17.5 41.5t41.5 17.5h230v-283q0 -25 17.5 -42t41.5 -17h284v-389q0 -24 -17.5 -41.5t-41.5 -17.5h-514q-24 0 -41.5 17.5t-17.5 41.5zM348 441v280h4l276 -277v-3h-280z" />
<glyph glyph-name="u1F4C5" unicode="&#x1f4c5;" horiz-adv-x="789"
d="M0 -7v578q0 24 17.5 41.5t41.5 17.5h38v-73q0 -29 20.5 -49.5t49.5 -20.5h16q30 0 51 20.5t21 49.5v73h61v-73q0 -29 20.5 -49.5t49.5 -20.5h17q30 0 50.5 20.5t20.5 49.5v73h61v-73q0 -29 21 -49.5t50 -20.5h16q30 0 50.5 20.5t20.5 49.5v73h38q24 0 41 -17.5t17 -41.5
v-578q0 -24 -17 -41.5t-41 -17.5h-672q-24 0 -41.5 17.5t-17.5 41.5zM79 13h632v419h-632v-419zM136 557v135q0 13 9.5 22.5t21.5 9.5h16q14 0 23 -9.5t9 -22.5v-135q0 -12 -9 -21t-23 -9h-16q-12 0 -21.5 9t-9.5 21zM186 101q0 37 21 61t46 42l46 33q21 16 21 38
q0 21 -12 30.5t-30 9.5q-12 0 -22 -4.5t-17 -12.5q-4 -4 -7.5 -8t-6.5 -9l-36 24q8 14 22 28q11 12 28.5 20.5t42.5 8.5q37 0 64.5 -22t27.5 -62q0 -22 -9.5 -38t-24.5 -29.5t-32 -24.5l-31 -20q-15 -11 -25 -22.5t-10 -26.5h97v36h44v-77h-195q-1 7 -1.5 13t-0.5 12z
M356 557v135q0 13 9 22.5t21 9.5h17q13 0 22.5 -9.5t9.5 -22.5v-135q0 -12 -9.5 -21t-22.5 -9h-17q-12 0 -21 9t-9 21zM418 282v74h197v-35l-123 -245h-54l113 223q3 9 6 12l3 4v1q-3 0 -5 -1h-14h-79v-33h-44zM575 557v135q0 13 9 22.5t22 9.5h16q13 0 22.5 -9.5t9.5 -22.5
v-135q0 -12 -9.5 -21t-22.5 -9h-16q-13 0 -22 9t-9 21z" />
<glyph glyph-name="u1F4C8" unicode="&#x1f4c8;" horiz-adv-x="1228"
d="M205 -64v666h102v-374l251 358l220 -276l113 77l61 -82l-194 -134l-195 246l-256 -363v-16h666v-102h-768z" />
<glyph glyph-name="u1F4CA" unicode="&#x1f4ca;" horiz-adv-x="1228"
d="M256 -64v307h205v-307h-205zM512 -59v712h205v-712h-205zM768 -59v507h205v-507h-205z" />
<glyph glyph-name="u1F4CC" unicode="&#x1f4cc;"
d="M1 419q4 40 22 85t49.5 87t69 72t75.5 45.5t72 15t59 -19.5q27 -19 37 -52.5t6 -74.5l148 -110q55 30 107 35t89 -23q26 -20 39 -53t12 -74t-15 -88t-42 -93l212 -203q5 -5 6 -12.5t-4 -12.5q-5 -9 -16 -9q-3 0 -9 2l-255 146q-37 -39 -77.5 -66.5t-79.5 -40t-74.5 -10
t-63.5 23.5q-36 27 -46.5 78t3.5 112l-148 112q-38 -16 -73 -16t-61 19q-25 19 -35.5 52t-6.5 73zM84 374q1 -8 9 -13q8 -8 23 -8q16 0 33 8.5t35 23t35.5 33t33.5 39.5q5 7 4 14.5t-9 13.5q-6 5 -14 4t-13 -8q-39 -52 -69 -71.5t-36 -17.5q-7 5 -14.5 4t-13.5 -8
q-5 -6 -4 -14zM231 322l178 -134q7 -4 12 -4q11 0 16 8q5 6 4 14t-7 13l-172 128q-16 -15 -31 -25zM414 83q-11 -17 4 -29q14 -10 35 -10q20 0 43 10.5t46.5 28.5t47 41t43.5 49q5 8 4 15.5t-9 13.5q-6 5 -14 3.5t-13 -8.5q-25 -33 -50.5 -57t-47.5 -37.5t-38.5 -17.5
t-23.5 2q-6 5 -14 3.5t-13 -7.5z" />
<glyph glyph-name="u1F4CE" unicode="&#x1f4ce;" horiz-adv-x="965"
d="M259 -192q-58 0 -110 26.5t-84.5 72t-45.5 100t6.5 116t72.5 114.5l222 222l273 274q37 37 83.5 51t92.5 2q45 -12 79 -46t46 -79q12 -46 -2 -92.5t-51 -83.5l-474 -473q-24 -24 -52 -37t-60 -10t-56 27q-19 19 -25.5 46t4.5 60t40 62l333 332q11 10 25 10t24 -10t10 -24
t-10 -25l-332 -333q-21 -21 -25.5 -40.5t5.5 -27.5q9 -9 23 -7q25 3 47 26l473 474q50 52 35 108q-8 27 -28 47t-47 28q-57 16 -108 -35l-274 -273l-222 -222q-44 -44 -56.5 -94t1 -91t45.5 -73t73 -45.5t91 -1t94 56.5l495 496q10 10 25 10t25 -10t10 -25t-10 -25
l-496 -495q-83 -83 -185 -83z" />
<glyph glyph-name="u1F4D6" unicode="&#x1f4d6;" horiz-adv-x="930"
d="M355 186v-67l-200 80v67zM355 394v-68l-200 80v68zM846 746q26 10 47.5 -6t21.5 -40v-640q0 -33 -31 -46l-400 -160q-2 0 -5.5 -1.5t-7 -2t-6.5 -0.5t-6.5 0.5t-7 2t-5.5 1.5l-400 160q-31 13 -31 46v640q0 24 21.5 40t47.5 6l381 -152zM415 -48v561l-320 128v-561z
M835 80v561l-320 -128v-561zM775 266v-67l-200 -80v67zM775 474v-68l-200 -80v68z" />
<glyph glyph-name="u1F50D" unicode="&#x1f50d;" horiz-adv-x="820"
d="M787 27q34 -34 7 -61l-47 -47q-14 -14 -33.5 -14t-33.5 14l-190 190q-72 -42 -156 -42q-128 0 -223.5 95.5t-95.5 223.5t90.5 218.5t218.5 90.5t223.5 -95.5t95.5 -223.5q0 -84 -45 -160zM110 386q0 -88 68 -156t156 -68t151 63t63 151t-68 156t-156 68t-151 -63
t-63 -151z" />
<glyph glyph-name="u1F512" unicode="&#x1f512;" horiz-adv-x="730"
d="M655 425q21 0 40.5 -19.5t19.5 -40.5v-390q0 -21 -14 -40t-34 -25l-59 -20q-49 -15 -98 -15h-290q-49 0 -98 15l-59 20q-20 6 -34 25t-14 40v390q0 22 15 41t35 19h100v70q0 110 51 170t149 60t149 -60t51 -170v-70h90zM265 515v-90h200v90q0 53 -27 81.5t-73 28.5
t-73 -28.5t-27 -81.5z" />
<glyph glyph-name="u1F513" unicode="&#x1f513;" horiz-adv-x="730"
d="M655 400q21 0 40.5 -19.5t19.5 -40.5v-390q0 -21 -14 -40t-34 -25l-59 -20q-49 -15 -98 -15h-290q-49 0 -98 15l-59 20q-20 6 -34 25t-14 40v390q0 22 15 41t35 19h400v140q0 53 -27 81.5t-73 28.5t-73 -28.5t-27 -81.5v-40h-100v20q0 110 51 170t149 60t149 -60t51 -170
v-120h90z" />
<glyph glyph-name="u1F516" unicode="&#x1f516;" horiz-adv-x="631"
d="M0 -9v675q0 18 9.5 32t26.5 21q5 3 10.5 4t11.5 1h516q5 0 11 -1t11 -4q17 -7 26.5 -21t9.5 -32v-675q0 -18 -9.5 -32t-26.5 -21q-16 -7 -33.5 -3.5t-28.5 16.5l-218 218l-218 -218q-12 -13 -29 -16.5t-33 3.5q-17 8 -26.5 21.5t-9.5 31.5z" />
<glyph glyph-name="u1F517" unicode="&#x1f517;"
d="M0 92v474q0 32 12.5 61t33.5 50t50 34t62 13h299q-1 -8 -2 -14.5t-1 -15.5v-45q0 -12 3 -24h-299q-24 0 -41.5 -17.5t-17.5 -41.5v-474q0 -24 17.5 -41.5t41.5 -17.5h553q24 0 41 17.5t17 41.5v175q22 -16 47 -25.5t52 -10.5v-139q0 -33 -12.5 -61t-34 -50t-50 -34.5
t-60.5 -12.5h-553q-33 0 -62 12.5t-50 34.5t-33.5 50t-12.5 61zM356 202.5q0 12.5 8 21.5l396 397h-138q-13 0 -21 8t-8 21v44q-1 12 7.5 21t21.5 9h296q11 0 20 -9t9 -21v-44v-252q0 -12 -9 -21t-20 -8h-44q-13 0 -21.5 8.5t-8.5 20.5v138l-397 -395q-8 -9 -20.5 -9
t-21.5 9l-41 41q-8 8 -8 20.5z" />
<glyph glyph-name="u1F525" unicode="&#x1f525;" horiz-adv-x="710"
d="M0 159q0 62 32 126.5t87 117.5q-12 -79 0.5 -127t32.5 -75q23 -32 55 -47q-25 111 -14 215q4 44 16 92t35.5 95t61.5 90t94 78q-24 -52 -23 -95t11 -75q12 -37 36 -67l32 -39q16 -20 27 -45.5t17 -59.5t6 -82q-9 21 -28 33.5t-43 12.5q-34 0 -56.5 -23t-22.5 -56
q0 -17 5.5 -31.5t18 -26.5t32 -18t46.5 -6q46 4 81 32q14 13 27 31.5t21.5 45.5t10.5 63t-5 85h-1q54 -53 86.5 -117.5t32.5 -126.5q0 -56 -28 -98.5t-76.5 -70t-113 -42t-138 -14.5t-138 14.5t-113 42t-76.5 70t-28 98.5z" />
<glyph glyph-name="u1F554" unicode="&#x1f554;" horiz-adv-x="950"
d="M475 760q125 0 231 -61.5t167.5 -167.5t61.5 -231t-61.5 -231t-167.5 -167.5t-231 -61.5t-231 61.5t-167.5 167.5t-61.5 231t61.5 231t167.5 167.5t231 61.5zM475 -60q149 0 254.5 105.5t105.5 254.5t-105.5 254.5t-254.5 105.5t-254.5 -105.5t-105.5 -254.5
t105.5 -254.5t254.5 -105.5zM510 560v-246l150 -149l-50 -50l-170 170v275h70z" />
<glyph glyph-name="u1F6AB" unicode="&#x1f6ab;" horiz-adv-x="950"
d="M475 760q125 0 231 -61.5t167.5 -167.5t61.5 -231t-61.5 -231t-167.5 -167.5t-231 -61.5t-231 61.5t-167.5 167.5t-61.5 231t61.5 231t167.5 167.5t231 61.5zM723 547h-1h1zM125 300q0 -125 79 -222l492 493q-97 79 -221 79q-145 0 -247.5 -102.5t-102.5 -247.5zM227 53
l1 -1zM475 -50q145 0 247.5 102.5t102.5 247.5q0 124 -79 221l-492 -492q97 -79 221 -79z" />
</font>
</defs></svg>

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

View file

@ -0,0 +1,4 @@
/*******************************
Overrides
*******************************/

View file

@ -0,0 +1,11 @@
/*-------------------
Table Variables
--------------------*/
@headerBackground: @white;
@footerBackground: @white;
@cellVerticalPadding: 1em;
@cellHorizontalPadding: 1em;
@stateMarkerWidth: 1px;

Some files were not shown because too many files have changed in this diff Show more