Browse Source
adds pointing style to dropdown menu, fixes issue with vertical min height in menu
adds pointing style to dropdown menu, fixes issue with vertical min height in menu
Former-commit-id:pull/258/headcbdda32b53
Former-commit-id:38ebff44d4
Jack Lukic
11 years ago
21 changed files with 400 additions and 779 deletions
Split View
Diff Options
-
2build/minified/collections/menu.min.css
-
14build/minified/modules/dropdown.js
-
2build/minified/modules/dropdown.min.css
-
2build/minified/modules/dropdown.min.js
-
1build/minified/views/activity-feed.min.css
-
104build/packaged/modules/behavior/default-text.js
-
14build/packaged/modules/dropdown.js
-
536build/packaged/modules/form.js
-
2build/packaged/semantic.min.css.REMOVED.git-id
-
2build/packaged/semantic.min.js.REMOVED.git-id
-
3build/uncompressed/collections/menu.css
-
95build/uncompressed/modules/dropdown.css
-
14build/uncompressed/modules/dropdown.js
-
110build/uncompressed/views/activity-feed.css
-
39node/src/documents/modules/dropdown.html
-
3node/src/files/components/semantic/collections/menu.css
-
95node/src/files/components/semantic/modules/dropdown.css
-
14node/src/files/components/semantic/modules/dropdown.js
-
3src/collections/menu.less
-
14src/modules/dropdown.js
-
110src/modules/dropdown.less
2
build/minified/collections/menu.min.css
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
2
build/minified/modules/dropdown.min.css
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
2
build/minified/modules/dropdown.min.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1 +0,0 @@ |
|||
.ui.feed .event{overflow:hidden;border-top:1px solid #D9D9D9;padding:11px 9px}.ui.feed .event:first-child{border-top:0}.ui.feed .event .who{float:left;width:35px;height:35px;background:#efefef url(../images/placeholder-tiny.png) no-repeat center center;-webkit-box-shadow:-1px -1px 0 #f0f0f0 inset;-moz-box-shadow:-1px -1px 0 #f0f0f0 inset;box-shadow:-1px -1px 0 #f0f0f0 inset}.ui.feed .event .who img{display:block;width:35px}.ui.feed .event .what{margin-left:50px;font-size:12px;line-height:1.33;color:#555}.ui.feed .event .what p{margin:0;padding:0}.ui.feed .event .what a{font-weight:700}.ui.feed .event .what img{max-width:100%}.ui.feed .event .what .summary{display:block;overflow:hidden;margin:8px 0;background-color:#F6FAFC;border:1px solid #E8F2F7;line-height:1.6;padding:6px 9px;color:#666;text-shadow:0 1px 0 rgba(255,255,255,.8)}.ui.feed .event .what .summary.grey{background-color:#FAFAFA;border:1px solid #EAEAEA;font-weight:700}.ui.feed .event .summary img{float:left;width:75px;margin-right:20px}.ui.feed .event .what .summary p{margin:0 0 10px}.ui.feed .event .what .attached{overflow:hidden;margin:8px 0 0}.ui.feed .event .what .attached img{float:left;margin:0 5px 0 0}.ui.feed .event .what .attached a img{border:1px solid #B2B2B2}.ui.feed .event .what .attached a:hover img{border:1px solid #999}.ui.feed .event .when{float:right;font-size:11px;text-align:right;color:#A1A1A1}.ui.large.feed .who{width:auto;height:auto}.ui.large.feed .who img{width:auto}.ui.large.feed .what{margin-left:70px;font-size:14px;line-height:1.33}.ui.large.feed .what .summary{color:#555}.ui.large.feed .what img{display:block;width:auto}.ui.large.feed .when{font-size:12px} |
@ -1,104 +0,0 @@ |
|||
/* ****************************** |
|||
Default Text (Form) |
|||
Author: Jack Lukic |
|||
Notes: First Commit April 08, 2012 |
|||
|
|||
Refactored Aug 13, 2012 |
|||
|
|||
allows you to set a default text value which will be added and removed on form field focus |
|||
|
|||
****************************** */ |
|||
;(function ( $, window, document, undefined ) { |
|||
|
|||
$.fn.defaultText = function(parameters) { |
|||
var |
|||
// overload for shorthand to default value
|
|||
settings = (typeof parameters == 'string') |
|||
? $.extend({}, $.fn.defaultText.settings, { defaultValue: parameters }) |
|||
: $.extend(true, {}, $.fn.defaultText.settings, parameters) |
|||
; |
|||
// overload function
|
|||
if(typeof parameters == 'string') { |
|||
parameters = { defaultValue: parameters }; |
|||
} |
|||
$.extend(settings, parameters); |
|||
$(this) |
|||
.each(function() { |
|||
var |
|||
$element = $(this), |
|||
module = { |
|||
|
|||
checkDefault: function() { |
|||
if($element.val().toLowerCase() != settings.defaultValue.toLowerCase()) { |
|||
$element.addClass(settings.filledClass); |
|||
} |
|||
}, |
|||
|
|||
placeholder: { |
|||
add: function(){ |
|||
if( $element.filter(settings.disabledClassList).size() === 0 ) { |
|||
if( $element.val() == settings.replaceValue ) { |
|||
if(settings.alwaysReplace) { |
|||
$element |
|||
.removeClass(settings.filledClass) |
|||
.val($element.attr('last')) |
|||
.removeAttr('last') |
|||
; |
|||
} |
|||
else { |
|||
$element |
|||
.removeClass(settings.filledClass) |
|||
.val(settings.defaultValue) |
|||
; |
|||
} |
|||
} |
|||
else { |
|||
$element |
|||
.addClass(settings.filledClass) |
|||
; |
|||
} |
|||
} |
|||
}, |
|||
remove: function() { |
|||
if( $element.filter(settings.disabledClassList).size() === 0 ) { |
|||
if(settings.alwaysReplace) { |
|||
$element |
|||
.attr('last', $element.val()) |
|||
.val(settings.replaceValue) |
|||
; |
|||
} |
|||
else { |
|||
if( $element.val().toLowerCase() == settings.defaultValue.toLowerCase() ) { |
|||
$element |
|||
.val(settings.replaceValue) |
|||
; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
} |
|||
; |
|||
if(settings.defaultValue == 'auto') { |
|||
settings.defaultValue = $(this).val(); |
|||
} |
|||
$element |
|||
.on('focus', module.placeholder.remove) |
|||
.on('blur', module.placeholder.add) |
|||
; |
|||
// check for user value on load
|
|||
module.checkDefault(); |
|||
}) |
|||
; |
|||
return this; |
|||
}; |
|||
|
|||
$.fn.defaultText.settings = { |
|||
defaultValue : 'auto', |
|||
replaceValue : '', |
|||
alwaysReplace : false, |
|||
disabledClassList : '.readonly, .disabled', |
|||
filledClass : 'filled' |
|||
}; |
|||
|
|||
})( jQuery, window , document ); |
@ -1,536 +0,0 @@ |
|||
/* ****************************** |
|||
Form Validation Components |
|||
Author: Jack Lukic |
|||
Notes: First Commit April 08, 2012 |
|||
|
|||
Refactored May 28, 2013 |
|||
|
|||
Allows you to validate forms based on a form validation object |
|||
Form validation objects are bound by either data-validate="" metadata, or form id or name tags |
|||
|
|||
****************************** */ |
|||
|
|||
;(function ( $, window, document, undefined ) { |
|||
|
|||
$.fn.form = function(fields, parameters) { |
|||
var |
|||
$allModules = $(this), |
|||
$document = $(document), |
|||
|
|||
settings = $.extend(true, {}, $.fn.form.settings, parameters), |
|||
|
|||
eventNamespace = '.' + settings.namespace, |
|||
moduleNamespace = 'module-' + settings.namespace, |
|||
|
|||
selector = $allModules.selector || '', |
|||
time = new Date().getTime(), |
|||
performance = [], |
|||
|
|||
query = arguments[0], |
|||
methodInvoked = (typeof query == 'string'), |
|||
queryArguments = [].slice.call(arguments, 1), |
|||
invokedResponse |
|||
; |
|||
$allModules |
|||
.each(function() { |
|||
var |
|||
$module = $(this), |
|||
$group = $(this).find(settings.selector.group), |
|||
$field = $(this).find(settings.selector.field), |
|||
$errorPrompt = $(this).find(settings.selector.prompt), |
|||
|
|||
formErrors = [], |
|||
|
|||
element = this, |
|||
instance = $module.data('module-' + settings.namespace), |
|||
|
|||
namespace = settings.namespace, |
|||
metadata = settings.metadata, |
|||
className = settings.className, |
|||
errors = settings.errors, |
|||
module |
|||
; |
|||
|
|||
module = { |
|||
|
|||
initialize: function() { |
|||
module.verbose('Initializing form validation'); |
|||
if(fields !== undefined || !$.isEmptyObject(fields) ) { |
|||
// attach event handler
|
|||
if(settings.on == 'submit') { |
|||
$module |
|||
.on('submit.' + namespace, module.validate.form) |
|||
; |
|||
} |
|||
} |
|||
else { |
|||
module.error(errors.noFields, $module); |
|||
} |
|||
}, |
|||
|
|||
destroy: function() { |
|||
$module |
|||
.off(namespace) |
|||
; |
|||
}, |
|||
|
|||
refresh: function() { |
|||
$field = $module.find(settings.selector.field); |
|||
}, |
|||
|
|||
field: { |
|||
find: function(identifier) { |
|||
module.refresh(); |
|||
if( $field.filter('#' + identifier).size() > 0 ) { |
|||
return $field.filter('#' + identifier); |
|||
} |
|||
else if( $field.filter('[name="' + identifier +'"]').size() > 0 ) { |
|||
return $field.filter('[name="' + identifier +'"]'); |
|||
} |
|||
else if( $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]').size() > 0 ) { |
|||
return $field.filter('[data-' + metadata.validate + '="'+ identifier +'"]'); |
|||
} |
|||
return $('<input/>'); |
|||
}, |
|||
add: { |
|||
error: function(field, errors) { |
|||
var |
|||
$field = module.field.find(field.identifier), |
|||
$errorGroup = $field.closest($group), |
|||
$errorPrompt = $group.find($errorPrompt), |
|||
promptExists = ($errorPrompt.size() !== 0) |
|||
; |
|||
$errorGroup |
|||
.addClass(className.error) |
|||
; |
|||
if(settings.inlineError) { |
|||
// create message container on first invalid validation attempt
|
|||
if(!promptExists) { |
|||
$errorPrompt = $('<div />') |
|||
.addClass(className.prompt) |
|||
.insertBefore($field) |
|||
; |
|||
} |
|||
// add prompt message
|
|||
$errorPrompt |
|||
.html(errors[0]) |
|||
.fadeIn(settings.animateSpeed) |
|||
; |
|||
} |
|||
} |
|||
}, |
|||
remove: { |
|||
error: function(field) { |
|||
var |
|||
$field = module.field.find(field.identifier), |
|||
$errorGroup = $field.closest($group), |
|||
$errorPrompt = $group.find($errorPrompt) |
|||
; |
|||
$errorGroup |
|||
.removeClass(className.error) |
|||
; |
|||
if(settings.inlineError) { |
|||
$errorPrompt.hide(); |
|||
} |
|||
} |
|||
} |
|||
}, |
|||
|
|||
validate: { |
|||
|
|||
form: function(event) { |
|||
var |
|||
allValid = true |
|||
; |
|||
// reset errors
|
|||
formErrors = []; |
|||
$.each(fields, function(fieldName, field){ |
|||
// form is invalid after first bad field, but keep checking
|
|||
if( !( module.validate.field(field) ) ) { |
|||
allValid = false; |
|||
} |
|||
}); |
|||
// Evaluate form callbacks
|
|||
return (allValid) |
|||
? $.proxy(settings.onSuccess, this)(event) |
|||
: $.proxy(settings.onFailure, this)(formErrors) |
|||
; |
|||
}, |
|||
|
|||
// takes a validation object and returns whether field passes validation
|
|||
field: function(field) { |
|||
var |
|||
$field = module.field.find(field.identifier), |
|||
fieldValid = true, |
|||
fieldErrors = [] |
|||
; |
|||
if(field.rules !== undefined) { |
|||
// iterate over all validation types for a certain field
|
|||
$.each(field.rules, function(index, rule) { |
|||
if( !( module.validate.rule(field, rule) ) ) { |
|||
module.debug('Field is invalid', field.identifier, rule.type); |
|||
fieldErrors.push(rule.prompt); |
|||
fieldValid = false; |
|||
} |
|||
}); |
|||
} |
|||
if(fieldValid) { |
|||
module.field.remove.error(field, fieldErrors); |
|||
settings.onValid($field); |
|||
} |
|||
else { |
|||
formErrors = formErrors.concat(fieldErrors); |
|||
module.field.add.error(field, fieldErrors); |
|||
$.proxy(settings.onInvalid, $field)(fieldErrors); |
|||
return false; |
|||
} |
|||
return true; |
|||
}, |
|||
|
|||
// takes validation rule and returns whether field passes rule
|
|||
rule: function(field, validation) { |
|||
var |
|||
$field = module.field.find(field.identifier), |
|||
type = validation.type, |
|||
value = $field.val(), |
|||
|
|||
bracketRegExp = /\[(.*?)\]/i, |
|||
bracket = bracketRegExp.exec(type), |
|||
isValid = true, |
|||
ancillary, |
|||
functionType |
|||
; |
|||
// if bracket notation is used, pass in extra parameters
|
|||
if(bracket !== undefined && bracket != null) { |
|||
ancillary = bracket[1]; |
|||
functionType = type.replace(bracket[0], ''); |
|||
isValid = $.proxy(settings.rules[functionType], $module)(value, ancillary); |
|||
} |
|||
// normal notation
|
|||
else { |
|||
isValid = (type == 'checked') |
|||
? $field.filter(':checked').size() > 0 |
|||
: settings.rules[type](value) |
|||
; |
|||
} |
|||
return isValid; |
|||
} |
|||
}, |
|||
|
|||
setting: function(name, value) { |
|||
if(value !== undefined) { |
|||
if( $.isPlainObject(name) ) { |
|||
$.extend(true, settings, name); |
|||
} |
|||
else { |
|||
settings[name] = value; |
|||
} |
|||
} |
|||
else { |
|||
return settings[name]; |
|||
} |
|||
}, |
|||
internal: function(name, value) { |
|||
if(value !== undefined) { |
|||
if( $.isPlainObject(name) ) { |
|||
$.extend(true, module, name); |
|||
} |
|||
else { |
|||
module[name] = value; |
|||
} |
|||
} |
|||
else { |
|||
return module[name]; |
|||
} |
|||
}, |
|||
debug: function() { |
|||
if(settings.debug) { |
|||
module.performance.log(arguments[0]); |
|||
module.debug = Function.prototype.bind.call(console.log, console, settings.moduleName + ':'); |
|||
} |
|||
}, |
|||
verbose: function() { |
|||
if(settings.verbose && settings.debug) { |
|||
module.performance.log(arguments[0]); |
|||
module.verbose = Function.prototype.bind.call(console.info, console, settings.moduleName + ':'); |
|||
} |
|||
}, |
|||
error: function() { |
|||
module.error = Function.prototype.bind.call(console.log, console, settings.moduleName + ':'); |
|||
}, |
|||
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, |
|||
'Execution Time' : executionTime |
|||
}); |
|||
clearTimeout(module.performance.timer); |
|||
module.performance.timer = setTimeout(module.performance.display, 100); |
|||
} |
|||
}, |
|||
display: function() { |
|||
var |
|||
title = settings.moduleName, |
|||
caption = settings.moduleName + ': ' + selector + '(' + $allModules.size() + ' elements)', |
|||
totalExecutionTime = 0 |
|||
; |
|||
if(selector) { |
|||
title += 'Performance (' + selector + ')'; |
|||
} |
|||
if( (console.group !== undefined || console.table !== undefined) && performance.length > 0) { |
|||
console.groupCollapsed(title); |
|||
if(console.table) { |
|||
$.each(performance, function(index, data) { |
|||
totalExecutionTime += data['Execution Time']; |
|||
}); |
|||
console.table(performance); |
|||
} |
|||
else { |
|||
$.each(performance, function(index, data) { |
|||
totalExecutionTime += data['Execution Time']; |
|||
}); |
|||
} |
|||
console.log('Total Execution Time:', totalExecutionTime +'ms'); |
|||
console.groupEnd(); |
|||
performance = []; |
|||
time = false; |
|||
} |
|||
} |
|||
}, |
|||
invoke: function(query, passedArguments, context) { |
|||
var |
|||
maxDepth, |
|||
found |
|||
; |
|||
passedArguments = passedArguments || queryArguments; |
|||
context = element || context; |
|||
if(typeof query == 'string' && instance !== undefined) { |
|||
query = query.split('.'); |
|||
maxDepth = query.length - 1; |
|||
$.each(query, function(depth, value) { |
|||
if( $.isPlainObject( instance[value] ) && (depth != maxDepth) ) { |
|||
instance = instance[value]; |
|||
return true; |
|||
} |
|||
else if( instance[value] !== undefined ) { |
|||
found = instance[value]; |
|||
return true; |
|||
} |
|||
module.error(errors.method); |
|||
return false; |
|||
}); |
|||
} |
|||
if ( $.isFunction( found ) ) { |
|||
module.verbose('Executing invoked function', found); |
|||
return found.apply(context, passedArguments); |
|||
} |
|||
return found || false; |
|||
} |
|||
}; |
|||
|
|||
if(methodInvoked) { |
|||
if(instance === undefined) { |
|||
module.initialize(); |
|||
} |
|||
invokedResponse = module.invoke(query); |
|||
} |
|||
else { |
|||
if(instance !== undefined) { |
|||
module.destroy(); |
|||
} |
|||
module.initialize(); |
|||
} |
|||
}) |
|||
; |
|||
return (invokedResponse) |
|||
? invokedResponse |
|||
: this |
|||
; |
|||
}; |
|||
|
|||
$.fn.form.settings = { |
|||
|
|||
// module info
|
|||
moduleName : 'Validate Form Module', |
|||
debug : true, |
|||
verbose : false, |
|||
namespace : 'validate', |
|||
|
|||
animateSpeed : 150, |
|||
inlineError : false, |
|||
|
|||
on: 'submit', |
|||
|
|||
onValid : function() {}, |
|||
onInvalid : function() {}, |
|||
onSuccess : function() { return true; }, |
|||
onFailure : function() { return false; }, |
|||
|
|||
metadata : { |
|||
validate: 'validate' |
|||
}, |
|||
|
|||
// errors
|
|||
errors: { |
|||
method : 'The method you called is not defined.', |
|||
noFields : 'No validation object specified.' |
|||
}, |
|||
|
|||
|
|||
selector : { |
|||
group : '.field', |
|||
prompt : '.prompt', |
|||
field : 'input, textarea, select' |
|||
}, |
|||
|
|||
className : { |
|||
error : 'error', |
|||
prompt : 'prompt' |
|||
}, |
|||
|
|||
defaults: { |
|||
firstName: { |
|||
identifier : 'first-name', |
|||
rules: [ |
|||
{ |
|||
type : 'empty', |
|||
prompt : 'Please enter your first name' |
|||
} |
|||
] |
|||
}, |
|||
lastName: { |
|||
identifier : 'last-name', |
|||
rules: [ |
|||
{ |
|||
type : 'empty', |
|||
prompt : 'Please enter your last name' |
|||
} |
|||
] |
|||
}, |
|||
username: { |
|||
identifier : 'username', |
|||
rules: [ |
|||
{ |
|||
type : 'email', |
|||
prompt : 'Please enter a username' |
|||
} |
|||
] |
|||
}, |
|||
email: { |
|||
identifier : 'email', |
|||
rules: [ |
|||
{ |
|||
type : 'empty', |
|||
prompt : 'Please enter your email' |
|||
}, |
|||
{ |
|||
type : 'email', |
|||
prompt : 'Please enter a valid email' |
|||
} |
|||
] |
|||
}, |
|||
password: { |
|||
identifier : 'password', |
|||
rules: [ |
|||
{ |
|||
type : 'empty', |
|||
prompt : 'Please enter a password' |
|||
}, |
|||
{ |
|||
type : 'length[6]', |
|||
prompt : 'Your password must be at least 6 characters' |
|||
} |
|||
] |
|||
}, |
|||
passwordConfirm: { |
|||
identifier : 'password-confirm', |
|||
rules: [ |
|||
{ |
|||
type : 'empty', |
|||
prompt : 'Please confirm your password' |
|||
}, |
|||
{ |
|||
identifier : 'password-confirm', |
|||
type : 'match[password]', |
|||
prompt : 'Please verify password matches' |
|||
} |
|||
] |
|||
}, |
|||
terms: { |
|||
identifier : 'terms', |
|||
rules: [ |
|||
{ |
|||
type : 'checked', |
|||
prompt : 'You must agree to the terms and conditions' |
|||
} |
|||
] |
|||
} |
|||
}, |
|||
|
|||
rules: { |
|||
empty: function(value) { |
|||
return !(value === undefined || '' === value); |
|||
}, |
|||
email: function(value){ |
|||
var |
|||
emailRegExp = new RegExp("[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?") |
|||
; |
|||
return emailRegExp.test(value); |
|||
}, |
|||
length: function(value, requiredLength) { |
|||
return (value !== undefined) |
|||
? (value.length >= requiredLength) |
|||
: false |
|||
; |
|||
}, |
|||
not: function(value, notValue) { |
|||
return (value != notValue); |
|||
}, |
|||
maxLength: function(value, maxLength) { |
|||
return (value !== undefined) |
|||
? (value.length <= maxLength) |
|||
: false |
|||
; |
|||
}, |
|||
match: function(value, matchingField) { |
|||
// use either id or name of field
|
|||
var |
|||
$form = $(this), |
|||
matchingValue |
|||
; |
|||
if($form.find('#' + matchingField).size() > 0) { |
|||
matchingValue = $form.find('#' + matchingField).val(); |
|||
} |
|||
else if($form.find('[name=' + matchingField +']').size() > 0) { |
|||
matchingValue = $form.find('[name=' + matchingField + ']').val(); |
|||
} |
|||
else if( $form.find('[data-validate="'+ matchingField +'"]').size() > 0 ) { |
|||
matchingValue = $form.find('[data-validate="'+ matchingField +'"]').val(); |
|||
} |
|||
return (matchingValue !== undefined) |
|||
? ( value.toString() == matchingValue.toString() ) |
|||
: false |
|||
; |
|||
}, |
|||
url: function(value) { |
|||
var |
|||
urlRegExp = /(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/ |
|||
; |
|||
return urlRegExp.test(value); |
|||
} |
|||
} |
|||
|
|||
}; |
|||
|
|||
})( jQuery, window , document ); |
@ -1 +1 @@ |
|||
34194f0eaf8e1a02f7a8650efc2b2004058316fc |
|||
211bd4ea96501c35862f7cafef4ec4e5eec35098 |
@ -1 +1 @@ |
|||
8694f596a488424baec02451cec72b421816df36 |
|||
0756a1626ca9d8d5453b31770e15a0f88482c3f9 |
@ -1,110 +0,0 @@ |
|||
/******************************* |
|||
Activity Feed |
|||
*******************************/ |
|||
/* Who */ |
|||
.ui.feed .event { |
|||
overflow: hidden; |
|||
border-top: 1px solid #D9D9D9; |
|||
padding: 11px 9px; |
|||
} |
|||
.ui.feed .event:first-child { |
|||
border-top: none; |
|||
} |
|||
.ui.feed .event .who { |
|||
float: left; |
|||
width: 35px; |
|||
height: 35px; |
|||
background: #efefef url(../images/placeholder-tiny.png) no-repeat center center; |
|||
-webkit-box-shadow: -1px -1px 0 #f0f0f0 inset; |
|||
-moz-box-shadow: -1px -1px 0 #f0f0f0 inset; |
|||
box-shadow: -1px -1px 0 #f0f0f0 inset; |
|||
} |
|||
.ui.feed .event .who img { |
|||
display: block; |
|||
width: 35px; |
|||
} |
|||
/* What */ |
|||
.ui.feed .event .what { |
|||
margin-left: 50px; |
|||
font-size: 12px; |
|||
line-height: 1.33; |
|||
color: #555555; |
|||
} |
|||
.ui.feed .event .what p { |
|||
margin: 0px; |
|||
padding: 0px; |
|||
} |
|||
.ui.feed .event .what a { |
|||
font-weight: bold; |
|||
} |
|||
.ui.feed .event .what img { |
|||
max-width: 100%; |
|||
} |
|||
.ui.feed .event .what .summary { |
|||
display: block; |
|||
overflow: hidden; |
|||
margin: 8px 0px; |
|||
background-color: #F6FAFC; |
|||
border: 1px solid #E8F2F7; |
|||
line-height: 1.6; |
|||
padding: 6px 9px; |
|||
color: #666666; |
|||
text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8); |
|||
} |
|||
.ui.feed .event .what .summary.grey { |
|||
background-color: #FAFAFA; |
|||
border: 1px solid #EAEAEA; |
|||
font-weight: bold; |
|||
} |
|||
.ui.feed .event .summary img { |
|||
float: left; |
|||
width: 75px; |
|||
margin-right: 20px; |
|||
} |
|||
.ui.feed .event .what .summary p { |
|||
margin: 0px 0px 10px; |
|||
} |
|||
.ui.feed .event .what .attached { |
|||
overflow: hidden; |
|||
margin: 8px 0px 0px; |
|||
} |
|||
.ui.feed .event .what .attached img { |
|||
float: left; |
|||
margin: 0px 5px 0px 0px; |
|||
} |
|||
.ui.feed .event .what .attached a img { |
|||
border: 1px solid #B2B2B2; |
|||
} |
|||
.ui.feed .event .what .attached a:hover img { |
|||
border: 1px solid #999999; |
|||
} |
|||
/* When */ |
|||
.ui.feed .event .when { |
|||
float: right; |
|||
font-size: 11px; |
|||
text-align: right; |
|||
color: #A1A1A1; |
|||
} |
|||
/* Expanded Style */ |
|||
.ui.large.feed .who { |
|||
width: auto; |
|||
height: auto; |
|||
} |
|||
.ui.large.feed .who img { |
|||
width: auto; |
|||
} |
|||
.ui.large.feed .what { |
|||
margin-left: 70px; |
|||
font-size: 14px; |
|||
line-height: 1.33; |
|||
} |
|||
.ui.large.feed .what .summary { |
|||
color: #555555; |
|||
} |
|||
.ui.large.feed .what img { |
|||
display: block; |
|||
width: auto; |
|||
} |
|||
.ui.large.feed .when { |
|||
font-size: 12px; |
|||
} |
Write
Preview
Loading…
Cancel
Save