Browse Source

fix accidental merge of orphaned docs branch

Former-commit-id: 8a87664445b673547a982eaeb94f016fb1100a67
Former-commit-id: 14fdab86f9a20dd38d814b50408de0e69d705c76
beta
Jack Lukic 12 years ago
parent
commit
3ef3295247
  1. 540
      .htaccess
  2. 157
      404.html
  3. 1
      CNAME
  4. 273
      collection.html
  5. 638
      collections/form.html
  6. 757
      collections/grid.html
  7. 795
      collections/menu.html
  8. 400
      collections/message.html
  9. 662
      collections/table.html
  10. 260
      components/semantic/src/collections/block.css
  11. 434
      components/semantic/src/collections/form.css
  12. 327
      components/semantic/src/collections/grid.css
  13. 375
      components/semantic/src/collections/items.css
  14. 1046
      components/semantic/src/collections/menu.css
  15. 260
      components/semantic/src/collections/message.css
  16. 331
      components/semantic/src/collections/table.css
  17. 73
      components/semantic/src/elements/banner.css
  18. 260
      components/semantic/src/elements/block.css
  19. 987
      components/semantic/src/elements/button.css
  20. 105
      components/semantic/src/elements/column.css
  21. 119
      components/semantic/src/elements/divider.css
  22. 36
      components/semantic/src/elements/flags.css
  23. 45
      components/semantic/src/elements/footnote.css
  24. 131
      components/semantic/src/elements/header.css
  25. 217
      components/semantic/src/elements/icons.css
  26. 39
      components/semantic/src/elements/image.css
  27. 508
      components/semantic/src/elements/label.css
  28. 80
      components/semantic/src/elements/paperclip.css
  29. 319
      components/semantic/src/elements/progress.css
  30. 68
      components/semantic/src/elements/segment.css
  31. 295
      components/semantic/src/elements/step.css
  32. 99
      components/semantic/src/elements/throbber.css
  33. 80
      components/semantic/src/elements/well.css
  34. 1
      components/semantic/src/fonts/icons.eot.REMOVED.git-id
  35. 1
      components/semantic/src/fonts/icons.svg.REMOVED.git-id
  36. 1
      components/semantic/src/fonts/icons.ttf.REMOVED.git-id
  37. BIN
      components/semantic/src/fonts/icons.woff
  38. BIN
      components/semantic/src/images/button-error.gif
  39. BIN
      components/semantic/src/images/footnote.png
  40. BIN
      components/semantic/src/images/loader-generic-transparent.gif
  41. BIN
      components/semantic/src/images/notecard-stripes.png
  42. BIN
      components/semantic/src/images/paperclip.png
  43. BIN
      components/semantic/src/images/placeholder-subtle.png
  44. BIN
      components/semantic/src/images/placeholder-tiny.png
  45. BIN
      components/semantic/src/images/placeholder.png
  46. BIN
      components/semantic/src/images/throbber-blue-large.gif
  47. BIN
      components/semantic/src/images/throbber-blue-medium.gif
  48. BIN
      components/semantic/src/images/throbber-blue-small.gif
  49. BIN
      components/semantic/src/images/throbber-blue-tiny.gif
  50. BIN
      components/semantic/src/images/throbber-large.gif
  51. BIN
      components/semantic/src/images/throbber-medium-white.gif
  52. BIN
      components/semantic/src/images/throbber-medium.gif
  53. BIN
      components/semantic/src/images/throbber-small.gif
  54. BIN
      components/semantic/src/images/throbber-tiny.gif
  55. 92
      components/semantic/src/modules/accordion.css
  56. 196
      components/semantic/src/modules/accordion.js
  57. 247
      components/semantic/src/modules/behavior/animation.js
  58. 515
      components/semantic/src/modules/behavior/api.js
  59. 271
      components/semantic/src/modules/behavior/colorize.js
  60. 104
      components/semantic/src/modules/behavior/default-text.js
  61. 649
      components/semantic/src/modules/behavior/state.js
  62. 408
      components/semantic/src/modules/behavior/validate-form.js
  63. 337
      components/semantic/src/modules/chat.css
  64. 697
      components/semantic/src/modules/chat.js
  65. 285
      components/semantic/src/modules/checkbox.css
  66. 229
      components/semantic/src/modules/checkbox.js
  67. 182
      components/semantic/src/modules/modal.css
  68. 354
      components/semantic/src/modules/modal.js
  69. 140
      components/semantic/src/modules/nag.css
  70. 350
      components/semantic/src/modules/nag.js
  71. 249
      components/semantic/src/modules/popup.css
  72. 590
      components/semantic/src/modules/popup.js
  73. 290
      components/semantic/src/modules/search.css
  74. 670
      components/semantic/src/modules/search.js
  75. 90
      components/semantic/src/modules/shape.css
  76. 640
      components/semantic/src/modules/shape.js
  77. 62
      components/semantic/src/modules/star.css
  78. 180
      components/semantic/src/modules/star.js
  79. 25
      components/semantic/src/modules/tab.css
  80. 523
      components/semantic/src/modules/tab.js
  81. 48
      components/semantic/src/modules/video.css
  82. 391
      components/semantic/src/modules/video.js
  83. 125
      components/semantic/src/views/activity-feed.css
  84. 154
      components/semantic/src/views/cover.css
  85. 67
      components/semantic/src/views/data-grid.css
  86. 94
      components/semantic/src/views/notecard.css
  87. 48
      components/semantic/src/views/video.css
  88. 15
      crossdomain.xml
  89. 181
      download.html
  90. 240
      element.html
  91. 439
      elements/button.html
  92. 402
      elements/label.html
  93. 1
      fonts/icons.eot.REMOVED.git-id
  94. 1
      fonts/icons.svg.REMOVED.git-id
  95. 1
      fonts/icons.ttf.REMOVED.git-id
  96. BIN
      fonts/icons.woff
  97. 1
      fonts/neutraface-bold.eot.REMOVED.git-id
  98. 1
      fonts/neutraface-bold.otf.REMOVED.git-id
  99. 1
      fonts/neutraface-bold.woff.REMOVED.git-id
  100. 1
      fonts/neutraface-book.eot.REMOVED.git-id

540
.htaccess

@ -1,540 +0,0 @@
# Apache configuration file
# httpd.apache.org/docs/2.2/mod/quickreference.html
# Note .htaccess files are an overhead, this logic should be in your Apache
# config if possible: httpd.apache.org/docs/2.2/howto/htaccess.html
# Techniques in here adapted from all over, including:
# Kroc Camen: camendesign.com/.htaccess
# perishablepress.com/press/2006/01/10/stupid-htaccess-tricks/
# Sample .htaccess file of CMS MODx: modxcms.com
# ----------------------------------------------------------------------
# Better website experience for IE users
# ----------------------------------------------------------------------
# Force the latest IE version, in various cases when it may fall back to IE7 mode
# github.com/rails/rails/commit/123eb25#commitcomment-118920
# Use ChromeFrame if it's installed for a better experience for the poor IE folk
<IfModule mod_headers.c>
Header set X-UA-Compatible "IE=Edge,chrome=1"
# mod_headers can't match by content-type, but we don't want to send this header on *everything*...
<FilesMatch "\.(js|css|gif|png|jpe?g|pdf|xml|oga|ogg|m4a|ogv|mp4|m4v|webm|svg|svgz|eot|ttf|otf|woff|ico|webp|appcache|manifest|htc|crx|oex|xpi|safariextz|vcf)$" >
Header unset X-UA-Compatible
</FilesMatch>
</IfModule>
# ----------------------------------------------------------------------
# Cross-domain AJAX requests
# ----------------------------------------------------------------------
# Serve cross-domain Ajax requests, disabled by default.
# enable-cors.org
# code.google.com/p/html5security/wiki/CrossOriginRequestSecurity
# <IfModule mod_headers.c>
# Header set Access-Control-Allow-Origin "*"
# </IfModule>
# ----------------------------------------------------------------------
# CORS-enabled images (@crossorigin)
# ----------------------------------------------------------------------
# Send CORS headers if browsers request them; enabled by default for images.
# developer.mozilla.org/en/CORS_Enabled_Image
# blog.chromium.org/2011/07/using-cross-domain-images-in-webgl-and.html
# hacks.mozilla.org/2011/11/using-cors-to-load-webgl-textures-from-cross-domain-images/
# wiki.mozilla.org/Security/Reviews/crossoriginAttribute
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
# mod_headers, y u no match by Content-Type?!
<FilesMatch "\.(gif|png|jpe?g|svg|svgz|ico|webp)$">
SetEnvIf Origin ":" IS_CORS
Header set Access-Control-Allow-Origin "*" env=IS_CORS
</FilesMatch>
</IfModule>
</IfModule>
# ----------------------------------------------------------------------
# Webfont access
# ----------------------------------------------------------------------
# Allow access from all domains for webfonts.
# Alternatively you could only whitelist your
# subdomains like "subdomain.example.com".
<IfModule mod_headers.c>
<FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css)$">
Header set Access-Control-Allow-Origin "*"
</FilesMatch>
</IfModule>
# ----------------------------------------------------------------------
# Proper MIME type for all files
# ----------------------------------------------------------------------
# JavaScript
# Normalize to standard type (it's sniffed in IE anyways)
# tools.ietf.org/html/rfc4329#section-7.2
AddType application/javascript js jsonp
AddType application/json json
# Audio
AddType audio/ogg oga ogg
AddType audio/mp4 m4a f4a f4b
# Video
AddType video/ogg ogv
AddType video/mp4 mp4 m4v f4v f4p
AddType video/webm webm
AddType video/x-flv flv
# SVG
# Required for svg webfonts on iPad
# twitter.com/FontSquirrel/status/14855840545
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
# Webfonts
AddType application/vnd.ms-fontobject eot
AddType application/x-font-ttf ttf ttc
AddType font/opentype otf
AddType application/x-font-woff woff
# Assorted types
AddType image/x-icon ico
AddType image/webp webp
AddType text/cache-manifest appcache manifest
AddType text/x-component htc
AddType application/xml rss atom xml rdf
AddType application/x-chrome-extension crx
AddType application/x-opera-extension oex
AddType application/x-xpinstall xpi
AddType application/octet-stream safariextz
AddType application/x-web-app-manifest+json webapp
AddType text/x-vcard vcf
AddType application/x-shockwave-flash swf
AddType text/vtt vtt
# ----------------------------------------------------------------------
# Allow concatenation from within specific js and css files
# ----------------------------------------------------------------------
# e.g. Inside of script.combined.js you could have
# <!--#include file="libs/jquery-1.5.0.min.js" -->
# <!--#include file="plugins/jquery.idletimer.js" -->
# and they would be included into this single file.
# This is not in use in the boilerplate as it stands. You may
# choose to use this technique if you do not have a build process.
#<FilesMatch "\.combined\.js$">
# Options +Includes
# AddOutputFilterByType INCLUDES application/javascript application/json
# SetOutputFilter INCLUDES
#</FilesMatch>
#<FilesMatch "\.combined\.css$">
# Options +Includes
# AddOutputFilterByType INCLUDES text/css
# SetOutputFilter INCLUDES
#</FilesMatch>
# ----------------------------------------------------------------------
# Gzip compression
# ----------------------------------------------------------------------
<IfModule mod_deflate.c>
# Force deflate for mangled headers developer.yahoo.com/blogs/ydn/posts/2010/12/pushing-beyond-gzipping/
<IfModule mod_setenvif.c>
<IfModule mod_headers.c>
SetEnvIfNoCase ^(Accept-EncodXng|X-cept-Encoding|X{15}|~{15}|-{15})$ ^((gzip|deflate)\s*,?\s*)+|[X~-]{4,13}$ HAVE_Accept-Encoding
RequestHeader append Accept-Encoding "gzip,deflate" env=HAVE_Accept-Encoding
</IfModule>
</IfModule>
# Compress all output labeled with one of the following MIME-types
<IfModule mod_filter.c>
AddOutputFilterByType DEFLATE application/atom+xml \
application/javascript \
application/json \
application/rss+xml \
application/vnd.ms-fontobject \
application/x-font-ttf \
application/xhtml+xml \
application/xml \
font/opentype \
image/svg+xml \
image/x-icon \
text/css \
text/html \
text/plain \
text/x-component \
text/xml
</IfModule>
</IfModule>
# ----------------------------------------------------------------------
# Expires headers (for better cache control)
# ----------------------------------------------------------------------
# These are pretty far-future expires headers.
# They assume you control versioning with filename-based cache busting
# Additionally, consider that outdated proxies may miscache
# www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/
# If you don't use filenames to version, lower the CSS and JS to something like
# "access plus 1 week".
<IfModule mod_expires.c>
ExpiresActive on
# Perhaps better to whitelist expires rules? Perhaps.
ExpiresDefault "access plus 1 month"
# cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
ExpiresByType text/cache-manifest "access plus 0 seconds"
# Your document html
ExpiresByType text/html "access plus 0 seconds"
# Data
ExpiresByType text/xml "access plus 0 seconds"
ExpiresByType application/xml "access plus 0 seconds"
ExpiresByType application/json "access plus 0 seconds"
# Feed
ExpiresByType application/rss+xml "access plus 1 hour"
ExpiresByType application/atom+xml "access plus 1 hour"
# Favicon (cannot be renamed)
ExpiresByType image/x-icon "access plus 1 week"
# Media: images, video, audio
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType video/ogg "access plus 1 month"
ExpiresByType audio/ogg "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/webm "access plus 1 month"
# HTC files (css3pie)
ExpiresByType text/x-component "access plus 1 month"
# Webfonts
ExpiresByType application/x-font-ttf "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
# CSS and JavaScript
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
</IfModule>
# ----------------------------------------------------------------------
# Prevent mobile network providers from modifying your site
# ----------------------------------------------------------------------
# The following header prevents modification of your code over 3G on some
# European providers.
# This is the official 'bypass' suggested by O2 in the UK.
# <IfModule mod_headers.c>
# Header set Cache-Control "no-transform"
# </IfModule>
# ----------------------------------------------------------------------
# ETag removal
# ----------------------------------------------------------------------
# FileETag None is not enough for every server.
<IfModule mod_headers.c>
Header unset ETag
</IfModule>
# Since we're sending far-future expires, we don't need ETags for
# static content.
# developer.yahoo.com/performance/rules.html#etags
FileETag None
# ----------------------------------------------------------------------
# Stop screen flicker in IE on CSS rollovers
# ----------------------------------------------------------------------
# The following directives stop screen flicker in IE on CSS rollovers - in
# combination with the "ExpiresByType" rules for images (see above).
# BrowserMatch "MSIE" brokenvary=1
# BrowserMatch "Mozilla/4.[0-9]{2}" brokenvary=1
# BrowserMatch "Opera" !brokenvary
# SetEnvIf brokenvary 1 force-no-vary
# ----------------------------------------------------------------------
# Set Keep-Alive Header
# ----------------------------------------------------------------------
# Keep-Alive allows the server to send multiple requests through one
# TCP-connection. Be aware of possible disadvantages of this setting. Turn on
# if you serve a lot of static content.
# <IfModule mod_headers.c>
# Header set Connection Keep-Alive
# </IfModule>
# ----------------------------------------------------------------------
# Cookie setting from iframes
# ----------------------------------------------------------------------
# Allow cookies to be set from iframes (for IE only)
# If needed, specify a path or regex in the Location directive.
# <IfModule mod_headers.c>
# Header set P3P "policyref=\"/w3c/p3p.xml\", CP=\"IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\""
# </IfModule>
# ----------------------------------------------------------------------
# Start rewrite engine
# ----------------------------------------------------------------------
# Turning on the rewrite engine is necessary for the following rules and
# features. FollowSymLinks must be enabled for this to work.
# Some cloud hosting services require RewriteBase to be set: goo.gl/HOcPN
# If using the h5bp in a subdirectory, use `RewriteBase /foo` instead where
# 'foo' is your directory.
# If your web host doesn't allow the FollowSymlinks option, you may need to
# comment it out and use `Options +SymLinksOfOwnerMatch`, but be aware of the
# performance impact: http://goo.gl/Mluzd
<IfModule mod_rewrite.c>
Options +FollowSymlinks
# Options +SymLinksIfOwnerMatch
RewriteEngine On
# RewriteBase /
</IfModule>
# ----------------------------------------------------------------------
# Suppress or force the "www." at the beginning of URLs
# ----------------------------------------------------------------------
# The same content should never be available under two different URLs -
# especially not with and without "www." at the beginning, since this can cause
# SEO problems (duplicate content). That's why you should choose one of the
# alternatives and redirect the other one.
# By default option 1 (no "www.") is activated.
# no-www.org/faq.php?q=class_b
# If you'd prefer to use option 2, just comment out all option 1 lines
# and uncomment option 2.
# IMPORTANT: NEVER USE BOTH RULES AT THE SAME TIME!
# ----------------------------------------------------------------------
# Option 1:
# Rewrite "www.example.com -> example.com".
<IfModule mod_rewrite.c>
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
</IfModule>
# ----------------------------------------------------------------------
# Option 2:
# Rewrite "example.com -> www.example.com".
# Be aware that the following rule might not be a good idea if you use "real"
# subdomains for certain parts of your website.
# <IfModule mod_rewrite.c>
# RewriteCond %{HTTPS} !=on
# RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
# RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# </IfModule>
# ----------------------------------------------------------------------
# Built-in filename-based cache busting
# ----------------------------------------------------------------------
# If you're not using the build script to manage your filename version revving,
# you might want to consider enabling this, which will route requests for
# /css/style.20110203.css to /css/style.css
# To understand why this is important and a better idea than all.css?v1231,
# read: github.com/h5bp/html5-boilerplate/wiki/cachebusting
# <IfModule mod_rewrite.c>
# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^(.+)\.(\d+)\.(js|css|png|jpg|gif)$ $1.$3 [L]
# </IfModule>
# ----------------------------------------------------------------------
# Prevent SSL cert warnings
# ----------------------------------------------------------------------
# Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent
# https://www.example.com when your cert only allows https://secure.example.com
# <IfModule mod_rewrite.c>
# RewriteCond %{SERVER_PORT} !^443
# RewriteRule ^ https://example-domain-please-change-me.com%{REQUEST_URI} [R=301,L]
# </IfModule>
# ----------------------------------------------------------------------
# Prevent 404 errors for non-existing redirected folders
# ----------------------------------------------------------------------
# without -MultiViews, Apache will give a 404 for a rewrite if a folder of the
# same name does not exist.
# webmasterworld.com/apache/3808792.htm
Options -MultiViews
# ----------------------------------------------------------------------
# Custom 404 page
# ----------------------------------------------------------------------
# You can add custom pages to handle 500 or 403 pretty easily, if you like.
# If you are hosting your site in subdirectory, adjust this accordingly
# e.g. ErrorDocument 404 /subdir/404.html
ErrorDocument 404 /404.html
# ----------------------------------------------------------------------
# UTF-8 encoding
# ----------------------------------------------------------------------
# Use UTF-8 encoding for anything served text/plain or text/html
AddDefaultCharset utf-8
# Force UTF-8 for a number of file formats
AddCharset utf-8 .atom .css .js .json .rss .vtt .xml
# ----------------------------------------------------------------------
# A little more security
# ----------------------------------------------------------------------
# To avoid displaying the exact version number of Apache being used, add the
# following to httpd.conf (it will not work in .htaccess):
# ServerTokens Prod
# "-Indexes" will have Apache block users from browsing folders without a
# default document Usually you should leave this activated, because you
# shouldn't allow everybody to surf through every folder on your server (which
# includes rather private places like CMS system folders).
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
# Block access to "hidden" directories or files whose names begin with a
# period. This includes directories used by version control systems such as
# Subversion or Git.
<IfModule mod_rewrite.c>
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{SCRIPT_FILENAME} -f
RewriteRule "(^|/)\." - [F]
</IfModule>
# Block access to backup and source files. These files may be left by some
# text/html editors and pose a great security danger, when anyone can access
# them.
<FilesMatch "(\.(bak|config|sql|fla|psd|ini|log|sh|inc|swp|dist)|~)$">
Order allow,deny
Deny from all
Satisfy All
</FilesMatch>
# If your server is not already configured as such, the following directive
# should be uncommented in order to set PHP's register_globals option to OFF.
# This closes a major security hole that is abused by most XSS (cross-site
# scripting) attacks. For more information: http://php.net/register_globals
#
# IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS:
#
# Your server does not allow PHP directives to be set via .htaccess. In that
# case you must make this change in your php.ini file instead. If you are
# using a commercial web host, contact the administrators for assistance in
# doing this. Not all servers allow local php.ini files, and they should
# include all PHP configurations (not just this one), or you will effectively
# reset everything to PHP defaults. Consult www.php.net for more detailed
# information about setting PHP directives.
# php_flag register_globals Off
# Rename session cookie to something else, than PHPSESSID
# php_value session.name sid
# Disable magic quotes (This feature has been DEPRECATED as of PHP 5.3.0 and REMOVED as of PHP 5.4.0.)
# php_flag magic_quotes_gpc Off
# Do not show you are using PHP
# Note: Move this line to php.ini since it won't work in .htaccess
# php_flag expose_php Off
# Level of log detail - log all errors
# php_value error_reporting -1
# Write errors to log file
# php_flag log_errors On
# Do not display errors in browser (production - Off, development - On)
# php_flag display_errors Off
# Do not display startup errors (production - Off, development - On)
# php_flag display_startup_errors Off
# Format errors in plain text
# Note: Leave this setting 'On' for xdebug's var_dump() output
# php_flag html_errors Off
# Show multiple occurrence of error
# php_flag ignore_repeated_errors Off
# Show same errors from different sources
# php_flag ignore_repeated_source Off
# Size limit for error messages
# php_value log_errors_max_len 1024
# Don't precede error with string (doesn't accept empty string, use whitespace if you need)
# php_value error_prepend_string " "
# Don't prepend to error (doesn't accept empty string, use whitespace if you need)
# php_value error_append_string " "
# Increase cookie security
<IfModule php5_module>
php_value session.cookie_httponly true
</IfModule>

157
404.html

@ -1,157 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Page Not Found :(</title>
<style>
::-moz-selection {
background: #b3d4fc;
text-shadow: none;
}
::selection {
background: #b3d4fc;
text-shadow: none;
}
html {
padding: 30px 10px;
font-size: 20px;
line-height: 1.4;
color: #737373;
background: #f0f0f0;
-webkit-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
html,
input {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
body {
max-width: 500px;
_width: 500px;
padding: 30px 20px 50px;
border: 1px solid #b3b3b3;
border-radius: 4px;
margin: 0 auto;
box-shadow: 0 1px 10px #a7a7a7, inset 0 1px 0 #fff;
background: #fcfcfc;
}
h1 {
margin: 0 10px;
font-size: 50px;
text-align: center;
}
h1 span {
color: #bbb;
}
h3 {
margin: 1.5em 0 0.5em;
}
p {
margin: 1em 0;
}
ul {
padding: 0 0 0 40px;
margin: 1em 0;
}
.container {
max-width: 380px;
_width: 380px;
margin: 0 auto;
}
/* google search */
#goog-fixurl ul {
list-style: none;
padding: 0;
margin: 0;
}
#goog-fixurl form {
margin: 0;
}
#goog-wm-qt,
#goog-wm-sb {
border: 1px solid #bbb;
font-size: 16px;
line-height: normal;
vertical-align: top;
color: #444;
border-radius: 2px;
}
#goog-wm-qt {
width: 220px;
height: 20px;
padding: 5px;
margin: 5px 10px 0 0;
box-shadow: inset 0 1px 1px #ccc;
}
#goog-wm-sb {
display: inline-block;
height: 32px;
padding: 0 10px;
margin: 5px 0 0;
white-space: nowrap;
cursor: pointer;
background-color: #f5f5f5;
background-image: -webkit-linear-gradient(rgba(255,255,255,0), #f1f1f1);
background-image: -moz-linear-gradient(rgba(255,255,255,0), #f1f1f1);
background-image: -ms-linear-gradient(rgba(255,255,255,0), #f1f1f1);
background-image: -o-linear-gradient(rgba(255,255,255,0), #f1f1f1);
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
*overflow: visible;
*display: inline;
*zoom: 1;
}
#goog-wm-sb:hover,
#goog-wm-sb:focus {
border-color: #aaa;
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
background-color: #f8f8f8;
}
#goog-wm-qt:hover,
#goog-wm-qt:focus {
border-color: #105cb6;
outline: 0;
color: #222;
}
input::-moz-focus-inner {
padding: 0;
border: 0;
}
</style>
</head>
<body>
<div class="container">
<h1>Not found <span>:(</span></h1>
<p>Sorry, but the page you were trying to view does not exist.</p>
<p>It looks like this was the result of either:</p>
<ul>
<li>a mistyped address</li>
<li>an out-of-date link</li>
</ul>
<script>
var GOOG_FIXURL_LANG = (navigator.language || '').slice(0,2),GOOG_FIXURL_SITE = location.host;
</script>
<script src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
</div>
</body>
</html>

1
CNAME

@ -1 +0,0 @@
semantic-ui.com

273
collection.html

@ -1,273 +0,0 @@
<!DOCTYPE html>
<head>
<!-- Standard Meta -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width" />
<!-- Site Properities -->
<meta http-equiv="X-Powered-By" content="DocPad v6.34.1"/>
<title>UI Collections | Semantic UI</title>
<meta name="description" content="Semantic empowers designers and developers by creating a shared vocabulary for UI." />
<meta name="keywords" content="html5, ui, library, framework, javascript" />
<link rel="stylesheet" type="text/css" href="/stylesheets/reset.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/icons.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/button.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/header.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/label.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/progress.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/divider.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/message.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/segment.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/grid.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/items.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/table.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/form.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/menu.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/shape.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/popup.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/checkbox.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/library/sidr.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/semantic.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/shape.css">
<script src="/javascript/library/jquery.js"></script>
<script src="/javascript/library/easing.js"></script>
<script src="/javascript/library/ace/ace.js"></script>
<script src="/javascript/library/sidr.js"></script>
<script src="/javascript/library/waypoints.js"></script>
<script src="/components/semantic/src/modules/behavior/state.js"></script>
<script src="/components/semantic/src/modules/shape.js"></script>
<script src="/components/semantic/src/modules/checkbox.js"></script>
<script src="/components/semantic/src/modules/popup.js"></script>
<script src="/javascript/semantic.js"></script>
<script src="/javascript/shape.js"></script>
</head>
<body id="example">
<div class="ui large vertical menu" id="menu">
<div class="item"><a href="/index.html"><b>Introduction</b></a></div>
<div class="item"><a href="/download.html"><b>Download</b></a></div>
<div class="item">
<a href="/element.html"><b>UI Elements</b></a>
<div class="menu">
<a class="item" href="/elements/button.html">Button</a>
<a class="item" href="/elements/label.html">Label</a>
</div>
</div>
<div class="item">
<a href="/collection.html"><b>UI Collections</b></a>
<div class="menu">
<a class="item" href="/collections/form.html">Form</a>
<a class="item" href="/collections/grid.html">Grid</a>
<a class="item" href="/collections/menu.html">Menu</a>
<a class="item" href="/collections/message.html">Message</a>
<a class="item" href="/collections/table.html">Table</a>
</div>
</div>
<div class="item">
<a href="/module.html"><b>UI Modules</b></a>
<div class="menu">
<a class="item" href="/modules/checkbox.html">Checkbox</a>
<a class="item" href="/modules/shape.html">Shape</a>
</div>
</div>
<div class="item">
<a href="/specification.html"><b>Specification</b></a>
<div class="menu">
</div>
</div>
</div>
<div class="ui fixed transparent inverted main menu">
<div class="container">
<div class="title item">
<b>Semantic:</b> UI Collections
</div>
<div class="icon previous link item">
<a href="/index.html"><i class="icon left-open"></i></a>
</div>
<div class="section dropdown item">
2 of 4
<div class="menu">
<div class="item">
<a href="/index.html">1. Introduction</a>
</div>
<div class="active item">
<a href="/collection.html">2. UI Collections</a>
</div>
<div class="item">
<a href="/element.html">3. UI Elements</a>
</div>
<div class="item">
<a href="/module.html">4. UI Modules</a>
</div>
</div>
</div>
<div class="icon next link item">
<a href="/element.html"><i class="icon right-open"></i></a>
</div>
<div class="right menu">
<a class="popup designer item" title="Designer Mode">
<i class="icon easel"></i>
</a>
<a class="popup developer item" title="Developer Mode">
<i class="icon terminal"></i>
</a>
<a class="popup item" title="View project on Github" href="https://github.com/quirkyinc/semantic">
<i class="icon github"></i>
</a>
<!--
<div class="dropdown item">
<i class="icon tint"></i> Theme
<div class="theme menu">
<div class="active item" data-theme="flat">Flat</div>
<div class="item" data-theme="shaded">Shaded</div>
<div class="item" data-theme="classic">Classic</div>
</div>
</div>
!-->
</div>
</div>
</div>
<div class="ui teal huge sidebar right attached button">
<i class="icon th-list"></i>
<span class="text">Menu</span>
</div>
<div class="segment">
<div class="container">
<h1>UI Collection</h1>
<p>UI collections are elements which contain other elements which often appear together.<p>
</div>
</div>
<div class="main container">
<h2>Types of Collections</h2>
<div class="ui horizontal type items">
<div class="item">
<div class="image">
<div class="ui fluid form">
<div class="field">
<label>Name</label>
<input class="ui input" placeholder="Name">
</div>
<div class="field">
<label>E-mail</label>
<input class="ui input" placeholder="E-mail">
</div>
</div>
</div>
<div class="content">
<a href="/collections/form.html" class="name">Form</a>
<p>A form is used to solicit a user response</p>
</div>
</div>
<div class="item">
<div class="image">
<div class="ui three column aligned responsive grid">
<div class="column"><div class="ui segment">1</div></div>
<div class="column"><div class="ui segment">2</div></div>
<div class="column"><div class="ui segment">3</div></div>
</div>
</div>
<div class="content">
<a href="/collections/grid.html" class="name">Grid</a>
<p>A grid helps harmonize negative space in a layout</p>
</div>
</div>
<div class="item">
<div class="image">
<div class="ui inverted menu">
<a class="item">Friends</a>
<a class="item">Messages</a>
<a class="item">Profile</a>
</div>
</div>
<div class="content">
<a href="/collections/menu.html" class="name">Menu</a>
<p>A menu organizes related links</p>
</div>
</div>
<div class="item">
<div class="image">
<table class="ui table">
<thead>
<th>Name</th>
<th>Status</th>
</thead>
<tbody>
<tr>
<td>John</td>
<td class="positive"><i class="icon check"></i> Approved</td>
</tr>
</tbody>
</table>
</div>
<div class="content">
<a href="/collections/table.html" class="name">Table</a>
<p>A table collects related data into rows of content</p>
</div>
</div>
<div class="item">
<div class="image">
<div class="ui warning message">
<div class="header">Alert</div>
<p>You forgot your name!</p>
</div>
</div>
<div class="content">
<a href="collections/block.html" class="name">Message</a>
<p>Messages alert a user to something important.</p>
</div>
</div>
</div>
</div>
</body>
</html>
</body>
</html>

638
collections/form.html

@ -1,638 +0,0 @@
<!DOCTYPE html>
<head>
<!-- Standard Meta -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width" />
<!-- Site Properities -->
<meta http-equiv="X-Powered-By" content="DocPad v6.34.1"/>
<title>Form | Semantic UI</title>
<meta name="description" content="Semantic empowers designers and developers by creating a shared vocabulary for UI." />
<meta name="keywords" content="html5, ui, library, framework, javascript" />
<link rel="stylesheet" type="text/css" href="/stylesheets/reset.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/icons.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/button.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/header.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/label.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/progress.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/divider.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/message.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/segment.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/grid.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/items.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/table.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/form.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/menu.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/shape.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/popup.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/checkbox.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/library/sidr.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/semantic.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/shape.css">
<script src="/javascript/library/jquery.js"></script>
<script src="/javascript/library/easing.js"></script>
<script src="/javascript/library/ace/ace.js"></script>
<script src="/javascript/library/sidr.js"></script>
<script src="/javascript/library/waypoints.js"></script>
<script src="/components/semantic/src/modules/behavior/state.js"></script>
<script src="/components/semantic/src/modules/shape.js"></script>
<script src="/components/semantic/src/modules/checkbox.js"></script>
<script src="/components/semantic/src/modules/popup.js"></script>
<script src="/javascript/semantic.js"></script>
<script src="/javascript/shape.js"></script>
</head>
<body id="example">
<div class="ui large vertical menu" id="menu">
<div class="item"><a href="/index.html"><b>Introduction</b></a></div>
<div class="item"><a href="/download.html"><b>Download</b></a></div>
<div class="item">
<a href="/element.html"><b>UI Elements</b></a>
<div class="menu">
<a class="item" href="/elements/button.html">Button</a>
<a class="item" href="/elements/label.html">Label</a>
</div>
</div>
<div class="item">
<a href="/collection.html"><b>UI Collections</b></a>
<div class="menu">
<a class="active item" href="/collections/form.html">Form</a>
<a class="item" href="/collections/grid.html">Grid</a>
<a class="item" href="/collections/menu.html">Menu</a>
<a class="item" href="/collections/message.html">Message</a>
<a class="item" href="/collections/table.html">Table</a>
</div>
</div>
<div class="item">
<a href="/module.html"><b>UI Modules</b></a>
<div class="menu">
<a class="item" href="/modules/checkbox.html">Checkbox</a>
<a class="item" href="/modules/shape.html">Shape</a>
</div>
</div>
<div class="item">
<a href="/specification.html"><b>Specification</b></a>
<div class="menu">
</div>
</div>
</div>
<div class="ui fixed transparent inverted main menu">
<div class="container">
<div class="title item">
<b>UI Collection:</b> Form
</div>
<div class="icon previous link disabled item">
<i class="icon left-open"></i>
</div>
<div class="section dropdown item">
1 of 5
<div class="menu">
<div class="active item">
<a href="/collections/form.html">1. Form</a>
</div>
<div class="item">
<a href="/collections/grid.html">2. Grid</a>
</div>
<div class="item">
<a href="/collections/menu.html">3. Menu</a>
</div>
<div class="item">
<a href="/collections/message.html">4. Message</a>
</div>
<div class="item">
<a href="/collections/table.html">5. Table</a>
</div>
</div>
</div>
<div class="icon next link item">
<a href="/collections/grid.html"><i class="icon right-open"></i></a>
</div>
<div class="right menu">
<a class="popup designer item" title="Designer Mode">
<i class="icon easel"></i>
</a>
<a class="popup developer item" title="Developer Mode">
<i class="icon terminal"></i>
</a>
<a class="popup item" title="View project on Github" href="https://github.com/quirkyinc/semantic">
<i class="icon github"></i>
</a>
<!--
<div class="dropdown item">
<i class="icon tint"></i> Theme
<div class="theme menu">
<div class="active item" data-theme="flat">Flat</div>
<div class="item" data-theme="shaded">Shaded</div>
<div class="item" data-theme="classic">Classic</div>
</div>
</div>
!-->
</div>
</div>
</div>
<div class="ui teal huge sidebar right attached button">
<i class="icon th-list"></i>
<span class="text">Menu</span>
</div>
<div class="segment">
<div class="container">
<h1>Form</h1>
<p>Forms are a grouping of elements requiring user input.</p>
<p>
Forms always include fields, and fields always contain form elements. Fields themselves may also include:
<a href="#">standard form fields</a>, like labels, inputs and textareas, as well as:
<a href="#">checkboxes</a>,
<a href="#">sliders</a>, and
<a href="#">message blocks</a>.
</p>
<p>Validation messages are <a href="#">text blocks</a> which are formatted for use inside forms.</p>
</div>
</div>
<div class="main container">
<div class="peek">
<div class="ui vertical pointing menu">
<a class="active item">Collection</a>
<a class="item">Elements</a>
<a class="item">States</a>
<a class="item">Variations</a>
</div>
</div>
<h2>Collection</h2>
<div class="example">
<h4>Form:</h4>
<p>A form is a collection of user input elements, and has no stylings of its own.</p>
<div class="ui info message">
<p>This example uses a ui segment to add the padding and background color. This is not required.</p>
</div>
<div class="ui form segment">
<p>Let's go ahead and get you signed up.</p>
<div class="two fields">
<div class="field">
<label>First Name</label>
<input placeholder="First Name" type="text">
</div>
<div class="field">
<label>Last Name</label>
<input placeholder="Last Name" type="text">
</div>
</div>
<div class="field">
<label>Username</label>
<input placeholder="Username" type="text">
</div>
<div class="field">
<label>Password</label>
<input type="password">
</div>
<div class="inline field">
<div class="ui checkbox">
<input type="checkbox" id="terms" />
<label for="terms"></label>
</div>
<label>I agree to the terms and conditions</label>
</div>
<div class="ui blue submit button">Submit</div>
</div>
</div>
<h2>Elements</h2>
<div class="example">
<h4>Field</h4>
<p>A field is a form element containing a label and an input</p>
<div class="ui form">
<div class="field">
<label>User Input</label>
<input type="text">
</div>
</div>
</div>
<div class="example">
<h4>Text Area</h4>
<p>A textarea uses the default form element</p>
<div class="ui form">
<div class="field">
<label>User Text</label>
<textarea></textarea>
</div>
</div>
</div>
<div class="example">
<h4>Checkbox</h4>
<p>Checkboxes are styled forms of standard form checkboxes.</p>
<div class="ui form">
<div class="field">
<label>Checkbox (Using attribute ID to trigger checked event)</label>
<div class="ui checkbox">
<input type="checkbox" id="uniqueid" />
<label for="uniqueid"></label>
</div>
</div>
<div class="field">
<label>Checkbox (<a href="#">Javascript</a>)</label>
<div class="ui checkbox">
<input type="checkbox"/>
<label></label>
</div>
</div>
</div>
</div>
<div class="example">
<h4>Radio Box</h4>
<p>Radio boxes are styled forms of standard form radio controls.</p>
<div class="ui form">
<div class="inline field">
<div class="ui radio checkbox">
<input type="radio" name="example" />
<label></label>
</div>
<label>Apples</label>
</div>
<div class="inline field">
<div class="ui radio checkbox">
<input type="radio" name="example" />
<label></label>
</div>
<label>Pears</label>
</div>
<div class="inline field">
<div class="ui radio checkbox">
<input type="radio" name="example" />
<label></label>
</div>
<label>Bananas</label>
</div>
<div class="inline field">
<div class="ui radio checkbox">
<input type="radio" name="example" />
<label></label>
</div>
<label>Oranges</label>
</div>
<div class="inline field">
<div class="ui radio checkbox">
<input type="radio" name="example" />
<label></label>
</div>
<label>Persimmon</label>
</div>
</div>
</div>
<div class="example">
<h4>Text Block</h4>
<p>Text blocks have special meaning inside a form tag. All message blocks are hidden by default.</p>
<div class="ui form">
<div class="ui message">
<div class="header">We had some issues</div>
<ul class="list">
<li>Please enter your first name</li>
<li>Please enter your last name</li>
</ul>
</div>
</div>
</div>
<h2>States</h2>
<h3>Form</h3>
<div class="example">
<h4>Loading</h4>
<p>If a form is in loading state, it will automatically show a loading indicator:</p>
<div class="ui loading form segment">
<div class="two fields">
<div class="field">
<label>First Name</label>
<input placeholder="First Name" type="text">
</div>
<div class="field">
<label>Last Name</label>
<input placeholder="Last Name" type="text">
</div>
</div>
<div class="field">
<label>Username</label>
<input placeholder="Username" type="text">
</div>
<div class="field">
<label>Password</label>
<input type="password">
</div>
<div class="inline field">
<div class="ui checkbox">
<input type="checkbox" id="terms" />
<label for="terms"></label>
</div>
<label>I agree to the terms and conditions</label>
</div>
<div class="ui blue submit button">Submit</div>
</div>
</div>
<div class="example">
<h4>Error</h4>
<p>If a form is in an error state, it will automatically show any error message blocks:</p>
<div class="ui error form segment">
<div class="ui error message">
<div class="header">Action Forbidden</div>
<p>You can only sign up for an account once with a given e-mail address.</p>
</div>
<div class="two fields">
<div class="field">
<label>First Name</label>
<input placeholder="First Name" type="text">
</div>
<div class="field">
<label>Last Name</label>
<input placeholder="Last Name" type="text">
</div>
</div>
<div class="field">
<label>Username</label>
<input placeholder="Username" type="text">
</div>
<div class="field">
<label>Password</label>
<input type="password">
</div>
<div class="inline field">
<div class="ui checkbox">
<input type="checkbox" id="terms" />
<label for="terms"></label>
</div>
<label>I agree to the terms and conditions</label>
</div>
<div class="ui blue submit button">Submit</div>
</div>
</div>
<div class="example">
<h4>Warning</h4>
<p>If a form is in warning state, it will automatically show any warning message block:</p>
<div class="ui warning form segment">
<div class="ui warning message">
<div class="header">Could you check something!</div>
<ul class="list">
<li>You forgot your <b>first name</b></li>
<li>And also your <b>last name</b></li>
</ul>
</div>
<div class="two error fields">
<div class="field">
<label>First Name</label>
<input placeholder="First Name" type="text">
</div>
<div class="field">
<label>Last Name</label>
<input placeholder="Last Name" type="text">
</div>
</div>
<div class="field">
<label>Username</label>
<input placeholder="Username" type="text">
</div>
<div class="field">
<label>Password</label>
<input type="password">
</div>
<div class="inline field">
<div class="ui checkbox">
<input type="checkbox" id="terms" />
<label for="terms"></label>
</div>
<label>I agree to the terms and conditions</label>
</div>
<div class="ui blue submit button">Submit</div>
</div>
</div>
<h3>Form Fields</h3>
<div class="example">
<h4>Error</h4>
<p>Individual fields may contain an error state</p>
<div class="ui error form segment">
<div class="two fields">
<div class="field error">
<label>First Name</label>
<input placeholder="First Name" type="text">
</div>
<div class="field">
<label>Last Name</label>
<input placeholder="Last Name" type="text">
</div>
</div>
</div>
</div>
<div class="example">
<h4>Disabled</h4>
<p>Individual fields may be disabled or read only</p>
<div class="ui error form segment">
<div class="two fields">
<div class="field">
<label>First Name</label>
<input placeholder="Read Only" readonly="readonly" type="text">
</div>
<div class="disabled field">
<label>Last Name</label>
<input placeholder="Disabled" disabled="disabled" type="text">
</div>
</div>
</div>
</div>
<h2>Variations</h2>
<h3>Forms</h3>
<div class="example">
<h4>Fluid</h4>
<p>A form can take the width of its container</p>
<div class="ui fluid form segment">
<div class="two fields">
<div class="field">
<label>First Name</label>
<input placeholder="First Name" type="text">
</div>
<div class="field">
<label>Last Name</label>
<input placeholder="Last Name" type="text">
</div>
</div>
<div class="ui blue submit button">Submit</div>
</div>
</div>
<div class="example">
<h4>Size</h4>
<p>A form can also be small or large</p>
<div class="ui small form segment">
<div class="two fields">
<div class="field">
<label>First Name</label>
<input placeholder="First Name" type="text">
</div>
<div class="field">
<label>Last Name</label>
<input placeholder="Last Name" type="text">
</div>
</div>
<div class="ui blue small submit button">Submit</div>
</div>
<br><br>
<div class="ui large form segment">
<div class="two fields">
<div class="field">
<label>First Name</label>
<input placeholder="First Name" type="text">
</div>
<div class="field">
<label>Last Name</label>
<input placeholder="Last Name" type="text">
</div>
</div>
<div class="ui blue submit button">Submit</div>
</div>
</div>
<div class="example">
<h4>Inverted</h4>
<p>A form on a dark background may have to invert its color scheme</p>
<div style="background-color: #333333; padding: 15px;">
<div class="ui inverted form">
<div class="ui info message">
<div class="header">We had some issues</div>
<ul class="list">
<li>Please enter your first name</li>
<li>Please enter your last name</li>
</ul>
</div>
<div class="two fields">
<div class="error field">
<label>First Name</label>
<input placeholder="First Name" type="text">
</div>
<div class="field">
<label>Last Name</label>
<input placeholder="Last Name" type="text">
</div>
</div>
<div class="ui blue submit button">Submit</div>
</div>
</div>
</div>
<h3>Fields</h3>
<div class="example">
<h4>Inline</h4>
<p>A field can have its label next to instead of above it.</p>
<div class="ui form">
<div class="ui inline fields">
<div class="field">
<label>Last name</label>
<input type="text" placeholder="Full Name">
</div>
</div>
</div>
</div>
<div class="example">
<h4>Date</h4>
<p>A field can let users know they are for dates</p>
<div class="ui form">
<div class="date field">
<label>Birthday</label>
<input type="text" placeholder="Full Name">
</div>
</div>
</div>
<h2>Groups</h2>
<div class="example">
<h4>Field Groups</h4>
<p>Fields can exist side by side to show relation</p>
<div class="ui form">
<div class="ui three fields">
<div class="field">
<label>First name</label>
<input type="text" placeholder="First Name">
</div>
<div class="field">
<label>Middle name</label>
<input type="text" placeholder="Middle Name">
</div>
<div class="field">
<label>Last name</label>
<input type="text" placeholder="Last Name">
</div>
</div>
</div>
</div>
</div>
</body>
</html>
</body>
</html>

757
collections/grid.html

@ -1,757 +0,0 @@
<!DOCTYPE html>
<head>
<!-- Standard Meta -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width" />
<!-- Site Properities -->
<meta http-equiv="X-Powered-By" content="DocPad v6.34.1"/>
<title>Grid | Semantic UI</title>
<meta name="description" content="Semantic empowers designers and developers by creating a shared vocabulary for UI." />
<meta name="keywords" content="html5, ui, library, framework, javascript" />
<link rel="stylesheet" type="text/css" href="/stylesheets/reset.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/icons.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/button.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/header.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/label.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/progress.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/divider.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/message.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/segment.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/grid.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/items.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/table.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/form.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/menu.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/shape.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/popup.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/checkbox.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/library/sidr.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/semantic.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/shape.css">
<script src="/javascript/library/jquery.js"></script>
<script src="/javascript/library/easing.js"></script>
<script src="/javascript/library/ace/ace.js"></script>
<script src="/javascript/library/sidr.js"></script>
<script src="/javascript/library/waypoints.js"></script>
<script src="/components/semantic/src/modules/behavior/state.js"></script>
<script src="/components/semantic/src/modules/shape.js"></script>
<script src="/components/semantic/src/modules/checkbox.js"></script>
<script src="/components/semantic/src/modules/popup.js"></script>
<script src="/javascript/semantic.js"></script>
<script src="/javascript/shape.js"></script>
</head>
<body id="example">
<div class="ui large vertical menu" id="menu">
<div class="item"><a href="/index.html"><b>Introduction</b></a></div>
<div class="item"><a href="/download.html"><b>Download</b></a></div>
<div class="item">
<a href="/element.html"><b>UI Elements</b></a>
<div class="menu">
<a class="item" href="/elements/button.html">Button</a>
<a class="item" href="/elements/label.html">Label</a>
</div>
</div>
<div class="item">
<a href="/collection.html"><b>UI Collections</b></a>
<div class="menu">
<a class="item" href="/collections/form.html">Form</a>
<a class="active item" href="/collections/grid.html">Grid</a>
<a class="item" href="/collections/menu.html">Menu</a>
<a class="item" href="/collections/message.html">Message</a>
<a class="item" href="/collections/table.html">Table</a>
</div>
</div>
<div class="item">
<a href="/module.html"><b>UI Modules</b></a>
<div class="menu">
<a class="item" href="/modules/checkbox.html">Checkbox</a>
<a class="item" href="/modules/shape.html">Shape</a>
</div>
</div>
<div class="item">
<a href="/specification.html"><b>Specification</b></a>
<div class="menu">
</div>
</div>
</div>
<div class="ui fixed transparent inverted main menu">
<div class="container">
<div class="title item">
<b>UI Collection:</b> Grid
</div>
<div class="icon previous link item">
<a href="/collections/form.html"><i class="icon left-open"></i></a>
</div>
<div class="section dropdown item">
2 of 5
<div class="menu">
<div class="item">
<a href="/collections/form.html">1. Form</a>
</div>
<div class="active item">
<a href="/collections/grid.html">2. Grid</a>
</div>
<div class="item">
<a href="/collections/menu.html">3. Menu</a>
</div>
<div class="item">
<a href="/collections/message.html">4. Message</a>
</div>
<div class="item">
<a href="/collections/table.html">5. Table</a>
</div>
</div>
</div>
<div class="icon next link item">
<a href="/collections/menu.html"><i class="icon right-open"></i></a>
</div>
<div class="right menu">
<a class="popup designer item" title="Designer Mode">
<i class="icon easel"></i>
</a>
<a class="popup developer item" title="Developer Mode">
<i class="icon terminal"></i>
</a>
<a class="popup item" title="View project on Github" href="https://github.com/quirkyinc/semantic">
<i class="icon github"></i>
</a>
<!--
<div class="dropdown item">
<i class="icon tint"></i> Theme
<div class="theme menu">
<div class="active item" data-theme="flat">Flat</div>
<div class="item" data-theme="shaded">Shaded</div>
<div class="item" data-theme="classic">Classic</div>
</div>
</div>
!-->
</div>
</div>
</div>
<div class="ui teal huge sidebar right attached button">
<i class="icon th-list"></i>
<span class="text">Menu</span>
</div>
<div class="segment">
<div class="ui main responsive grid">
<div class="column">
<h1>Grid</h1>
<p>A grid is a set of elements without a visual definition, that creates a structure to harmonize negative space in a layout.</p>
</div>
</div>
</div>
<div class="main responsive ui grid">
<div class="column">
<h2>Collection</h2>
<div class="highlighted example">
<h4>Grid</h4>
<p>A grid is made up of columns of content. By default a grid must assume a certain number of columns.</p>
<p>Each set of columns matching up to the number of columns in a grid create a row.</p>
<div class="ui ignore warning message"><i class="icon heart"></i> <b>Using Grids</b>
<p>The semantic library assumes 12 columns by default. If only a single column is specified inside a grid or a grid row, semantic will assume the column to take up the entire grid width. If you would like to override this behavior, specify the grid width as a <b>one wide column</b></p>
<p>It is also important to note, that padding is applied directly to columns, which means other ui elements should not be used in combination with column, but directly as children.</div>
<div class="ui grid">
<div class="column">
<div class="ui segment">
1
</div>
</div>
<div class="column">
<div class="ui segment">
2
</div>
</div>
<div class="column">
<div class="ui segment">
3
</div>
</div>
<div class="column">
<div class="ui segment">
4
</div>
</div>
<div class="column">
<div class="ui segment">
5
</div>
</div>
<div class="column">
<div class="ui segment">
6
</div>
</div>
<div class="column">
<div class="ui segment">
7
</div>
</div>
<div class="column">
<div class="ui segment">
8
</div>
</div>
<div class="column">
<div class="ui segment">
9
</div>
</div>
<div class="column">
<div class="ui segment">
10
</div>
</div>
<div class="column">
<div class="ui segment">
11
</div>
</div>
<div class="column">
<div class="ui segment">
12
</div>
</div>
</div>
</div>
<div class="highlighted example">
<h4>Rows</h4>
<p>A row is used to create vertical padding between groups of columns on a page. If no rows are specified columns will sit vertically flushed against the edge of a grid, but will still have vertical and horizontal gutters on the first and last column.</p>
<p>
<div class="ui grid">
<div class="row">
<div class="column">
<div class="ui segment">
1a
</div>
</div>
<div class="column">
<div class="ui segment">
2a
</div>
</div>
<div class="column">
<div class="ui segment">
3a
</div>
</div>
<div class="column">
<div class="ui segment">
4a
</div>
</div>
<div class="column">
<div class="ui segment">
5a
</div>
</div>
<div class="column">
<div class="ui segment">
6a
</div>
</div>
<div class="column">
<div class="ui segment">
7a
</div>
</div>
<div class="column">
<div class="ui segment">
8a
</div>
</div>
<div class="column">
<div class="ui segment">
9a
</div>
</div>
<div class="column">
<div class="ui segment">
10a
</div>
</div>
<div class="column">
<div class="ui segment">
11a
</div>
</div>
<div class="column">
<div class="ui segment">
12a
</div>
</div>
</div>
<div class="row">
<div class="column">
<div class="ui segment">
1b
</div>
</div>
<div class="column">
<div class="ui segment">
2b
</div>
</div>
<div class="column">
<div class="ui segment">
3b
</div>
</div>
<div class="column">
<div class="ui segment">
4b
</div>
</div>
<div class="column">
<div class="ui segment">
5b
</div>
</div>
<div class="column">
<div class="ui segment">
6b
</div>
</div>
<div class="column">
<div class="ui segment">
7b
</div>
</div>
<div class="column">
<div class="ui segment">
8b
</div>
</div>
<div class="column">
<div class="ui segment">
9b
</div>
</div>
<div class="column">
<div class="ui segment">
10b
</div>
</div>
<div class="column">
<div class="ui segment">
11b
</div>
</div>
<div class="column">
<div class="ui segment">
12b
</div>
</div>
</div>
</div>
</div>
<div class="highlighted example">
<h4>Columns</h4>
<p>Columns each contain gutters giving them equal vertical spacing from other columns. Columns by default do not take up their entire row height.</p>
<p>A grid will automatically center any columns that do not match a full row width.</p>
<div class="ui three column grid">
<div class="column">
<div class="ui segment">
1
</div>
</div>
<div class="column">
<div class="ui segment">
2
</div>
</div>
<div class="column">
<div class="ui segment">
3
</div>
</div>
<div class="column">
<div class="ui segment">
4
</div>
</div>
</div>
</div>
<h2>Variations</h2>
<h3>Grid</h3>
<div class="example">
<h4>Page Grid</h4>
<p>A grid can be formatted for page content adding gutters before and after the content of the grid to help make page contents easier to read.</p>
<div class="ui two column page grid">
<div class="column">
<div class="ui labeled vertical fluid inverted icon menu">
<a class="item">
<i class="icon mail"></i>
Mail
</a>
<a class="item">
<i class="icon th-list"></i>
Directory
</a>
<a class="item">
<i class="icon star"></i>
Favorites
</a>
</div>
</div>
<div class="column">
<div class="ui segment">
<b>Inbox</b>
<p>Welcome to your inbox. Would you like to see more information?</p>
</div>
</div>
</div>
</div>
<div class="example">
<h4>Responsive Grid</h4>
<p>A grid can be responsive to a browsers width. This means the gutters to left and right of grid columns will alter in size as a browser's resolution increases.</p>
<div class="ui text message info ignore">
<p>
<i class="icon heart"></i> Semantic UI's responsive grid by default will change the page gutters to increase at 250pixel intervals.
</div>
<div class="ui two column responsive grid">
<div class="column">
<div class="ui labeled vertical fluid inverted icon menu">
<a class="item">
<i class="icon mail"></i>
Mail
</a>
<a class="item">
<i class="icon th-list"></i>
Directory
</a>
<a class="item">
<i class="icon star"></i>
Favorites
</a>
</div>
</div>
<div class="column">
<div class="ui segment">
<b>Inbox</b>
<p>Welcome to your inbox. Would you like to see more information?</p>
</div>
</div>
</div>
</div>
<div class="example">
<h4>Changing grid column count</h4>
<p>A grid can have a different number of columns per row</p>
<div class="ui three column grid">
<div class="column">
<div class="ui fluid form segment">
<p>Let's go ahead and get you signed up.</p>
<div class="two fields">
<div class="field">
<label>First Name</label>
<input placeholder="First Name" type="text">
</div>
<div class="field">
<label>Last Name</label>
<input placeholder="Last Name" type="text">
</div>
</div>
<div class="field">
<label>Username</label>
<input placeholder="Username" type="text">
</div>
<div class="field">
<label>Password</label>
<input type="password">
</div>
<div class="inline field">
<div class="ui checkbox">
<input type="checkbox" id="terms" />
<label for="terms"></label>
</div>
<label>I agree to the terms and conditions</label>
</div>
<div class="ui blue submit button">Submit</div>
</div>
</div>
<div class="column">
<div class="ui vertical fluid menu">
<div class="header item">
Dogs
</div>
<div class="item">
Poodle
</div>
<div class="item">
Cockerspaniel
</div>
<div class="header item">
Cats
</div>
<div class="item">
Abysinnian
</div>
<div class="item">
Sphynx
</div>
</div>
</div>
<div class="column">
<div class="ui fluid form segment">
<p>Log in to your account</p>
<div class="field">
<label>Username</label>
<input placeholder="Username" type="text">
</div>
<div class="field">
<label>Password</label>
<input type="password">
</div>
<div class="ui blue submit button">Login</div>
</div>
</div>
</div>
</div>
<div class="example">
<h4>Vertical Alignment</h4>
<p>A grid can specify its vertical alignment to have all its columns vertically centered.</p>
<div class="ui middle aligned three column grid">
<div class="row">
<div class="column">
<div class="ui vertical fluid menu">
<div class="header item">
Cats
</div>
</div>
</div>
<div class="column">
<div class="ui vertical fluid menu">
<div class="header item">
Dogs
</div>
<div class="item">
Poodle
</div>
<div class="item">
Cockerspaniel
</div>
</div>
</div>
<div class="column">
<div class="ui vertical fluid menu">
<div class="header item">
Monkeys
</div>
</div>
</div>
</div>
</div>
</div>
<h3>Rows</h3>
<div class="example">
<h4>Vertical Alignment</h4>
<p>A row can also specify its vertical alignment to have its columns vertically centered.</p>
<div class="ui three column grid">
<div class="top aligned row">
<div class="column">
<div class="ui vertical fluid menu">
<div class="header item">
Cats
</div>
</div>
</div>
<div class="column">
<div class="ui vertical fluid menu">
<div class="header item">
Dogs
</div>
<div class="item">
Poodle
</div>
<div class="item">
Cockerspaniel
</div>
</div>
</div>
<div class="column">
<div class="ui vertical fluid menu">
<div class="header item">
Monkeys
</div>
</div>
</div>
</div>
<div class="middle aligned row">
<div class="column">
<div class="ui vertical fluid menu">
<div class="header item">
Dogs
</div>
</div>
</div>
<div class="column">
<div class="ui vertical fluid menu">
<div class="header item">
Dogs
</div>
<div class="item">
Poodle
</div>
<div class="item">
Cockerspaniel
</div>
</div>
</div>
<div class="column">
<div class="ui vertical fluid menu">
<div class="header item">
Monkeys
</div>
</div>
</div>
</div>
<div class="bottom aligned row">
<div class="column">
<div class="ui vertical fluid menu">
<div class="header item">
Cats
</div>
</div>
</div>
<div class="column">
<div class="ui vertical fluid menu">
<div class="header item">
Dogs
</div>
<div class="item">
Poodle
</div>
<div class="item">
Cockerspaniel
</div>
</div>
</div>
<div class="column">
<div class="ui vertical fluid menu">
<div class="header item">
Monkeys
</div>
</div>
</div>
</div>
</div>
</div>
<h3>Columns</h3>
<div class="example">
<h4>Row Alignment (Floating)</h4>
<p>A column can be aligned, or "floated", to either the left or right of its row.</p>
<div class="ui grid">
<div class="left aligned four wide column">
<div class="ui vertical fluid menu">
<div class="header item">
Dogs
</div>
<div class="item">
Poodle
</div>
<div class="item">
Cockerspaniel
</div>
</div>
</div>
<div class="right aligned four wide column">
<div class="ui vertical fluid menu">
<div class="header item">
Cats
</div>
<div class="item">
Abysinnian
</div>
<div class="item">
Sphynx
</div>
</div>
</div>
</div>
<div class="example">
<h4>Column Width</h4>
<p>A column can span across multiple grid columns.</p>
<div class="ui grid">
<div class="three wide column">
<div class="ui segment"><b>Colume One</b> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum iaculis sapien.</div>
</div>
<div class="six wide column">
<div class="ui segment"><b>Colume Two</b> Aliquam lobortis commodo sem ac accumsan. Vestibulum non faucibus lorem. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Curabitur sed lorem lorem. Nam augue erat, dignissim nec aliquam vel, congue et sapien. Integer viverra justo vel nibh suscipit commodo. Nullam ut turpis nibh, in luctus risus. Sed ut risus nec dui mattis porta. Nam nisi magna, ornare mollis congue a, suscipit at nisl.</div>
</div>
<div class="three wide column">
<div class="ui segment"><b>Colume Three</b> Donec semper mollis condimentum. Aenean eget rutrum magna. Mauris ornare nibh scelerisque turpis lobortis dignissim. Etiam eleifend justo eget quam semper vulputate. Nulla et risus convallis velit molestie iaculis. Aliquam erat volutpat. </div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
</body>
</html>

795
collections/menu.html

@ -1,795 +0,0 @@
<!DOCTYPE html>
<head>
<!-- Standard Meta -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width" />
<!-- Site Properities -->
<meta http-equiv="X-Powered-By" content="DocPad v6.34.1"/>
<title>Menu | Semantic UI</title>
<meta name="description" content="Semantic empowers designers and developers by creating a shared vocabulary for UI." />
<meta name="keywords" content="html5, ui, library, framework, javascript" />
<link rel="stylesheet" type="text/css" href="/stylesheets/reset.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/icons.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/button.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/header.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/label.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/progress.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/divider.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/message.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/segment.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/grid.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/items.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/table.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/form.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/menu.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/shape.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/popup.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/checkbox.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/library/sidr.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/semantic.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/shape.css">
<script src="/javascript/library/jquery.js"></script>
<script src="/javascript/library/easing.js"></script>
<script src="/javascript/library/ace/ace.js"></script>
<script src="/javascript/library/sidr.js"></script>
<script src="/javascript/library/waypoints.js"></script>
<script src="/components/semantic/src/modules/behavior/state.js"></script>
<script src="/components/semantic/src/modules/shape.js"></script>
<script src="/components/semantic/src/modules/checkbox.js"></script>
<script src="/components/semantic/src/modules/popup.js"></script>
<script src="/javascript/semantic.js"></script>
<script src="/javascript/shape.js"></script>
</head>
<body id="example">
<div class="ui large vertical menu" id="menu">
<div class="item"><a href="/index.html"><b>Introduction</b></a></div>
<div class="item"><a href="/download.html"><b>Download</b></a></div>
<div class="item">
<a href="/element.html"><b>UI Elements</b></a>
<div class="menu">
<a class="item" href="/elements/button.html">Button</a>
<a class="item" href="/elements/label.html">Label</a>
</div>
</div>
<div class="item">
<a href="/collection.html"><b>UI Collections</b></a>
<div class="menu">
<a class="item" href="/collections/form.html">Form</a>
<a class="item" href="/collections/grid.html">Grid</a>
<a class="active item" href="/collections/menu.html">Menu</a>
<a class="item" href="/collections/message.html">Message</a>
<a class="item" href="/collections/table.html">Table</a>
</div>
</div>
<div class="item">
<a href="/module.html"><b>UI Modules</b></a>
<div class="menu">
<a class="item" href="/modules/checkbox.html">Checkbox</a>
<a class="item" href="/modules/shape.html">Shape</a>
</div>
</div>
<div class="item">
<a href="/specification.html"><b>Specification</b></a>
<div class="menu">
</div>
</div>
</div>
<div class="ui fixed transparent inverted main menu">
<div class="container">
<div class="title item">
<b>UI Collection:</b> Menu
</div>
<div class="icon previous link item">
<a href="/collections/grid.html"><i class="icon left-open"></i></a>
</div>
<div class="section dropdown item">
3 of 5
<div class="menu">
<div class="item">
<a href="/collections/form.html">1. Form</a>
</div>
<div class="item">
<a href="/collections/grid.html">2. Grid</a>
</div>
<div class="active item">
<a href="/collections/menu.html">3. Menu</a>
</div>
<div class="item">
<a href="/collections/message.html">4. Message</a>
</div>
<div class="item">
<a href="/collections/table.html">5. Table</a>
</div>
</div>
</div>
<div class="icon next link item">
<a href="/collections/message.html"><i class="icon right-open"></i></a>
</div>
<div class="right menu">
<a class="popup designer item" title="Designer Mode">
<i class="icon easel"></i>
</a>
<a class="popup developer item" title="Developer Mode">
<i class="icon terminal"></i>
</a>
<a class="popup item" title="View project on Github" href="https://github.com/quirkyinc/semantic">
<i class="icon github"></i>
</a>
<!--
<div class="dropdown item">
<i class="icon tint"></i> Theme
<div class="theme menu">
<div class="active item" data-theme="flat">Flat</div>
<div class="item" data-theme="shaded">Shaded</div>
<div class="item" data-theme="classic">Classic</div>
</div>
</div>
!-->
</div>
</div>
</div>
<div class="ui teal huge sidebar right attached button">
<i class="icon th-list"></i>
<span class="text">Menu</span>
</div>
<div class="segment">
<div class="container">
<h1>Menu</h1>
<p>A menu is a collection of interface elements. These items can be links, dropdowns, menus themselves, badges, or other standard html types.</p>
<p>Menu items containing menus themselves are formatted as sub menus. Menus with menus as children are formatted as the same tier as the parent menu.</p>
</div>
</div>
<div class="main container">
<div class="peek">
<div class="ui vertical pointing menu">
<a class="active item">Collection</a>
<a class="item">Elements</a>
<a class="item">States</a>
<a class="item">Variations</a>
</div>
</div>
<h2>Collection</h2>
<div class="example">
<h4>Menu</h4>
<p>This example uses several menu elements to display the versatility of a menu collection.</p>
<div class="ui menu">
<a class="active item">
<i class="icon users"></i>
Friends
</a>
<a class="item">
<i class="icon mail"></i> Messages
<div class="left ui label">22</div>
</a>
<div class="right menu">
<div class="fitted borderless item">
<input class="ui input" type="text" placeholder="Search...">
</div>
<div class="dropdown item">
Actions <i class="icon down-dir"></i>
<div class="menu">
<div class="item">Invite Friends</div>
<div class="item">Contact Us</div>
<div class="item">About</div>
</div>
</div>
</div>
</div>
</div>
<div class="example">
<h4>Vertical Menu</h4>
<p>A vertical menu can have its own sub menus. This example uses three levels of menu depth.</p>
<div class="ui ignore warning message"><i class="icon heart"></i> A vertical menu's width defaults to an arbitrary size. To have it fit your content more precisely use the fluid variation in conjunction with <a href="grid.html">ui grid</a>.</div>
<div class="ui vertical menu">
<div class="item">
<i class="icon user"></i>
<b>Username</b>
</div>
<div class="item">
<p>Welcome to your profile. You can do anything you want on your profile.</p>
</div>
<div class="item">
<b>My Profile</b>
<div class="menu">
<a class="active item"><i class="icon th-list"></i>Summary</a>
<div class="item">
<i class="icon users"></i>Friends <div class="ui teal label">2 new</div>
<div class="menu">
<a class="item">NYC</a>
<a class="item">San Francisco</a>
<a class="item">Abroad</a>
</div>
</div>
<a class="item"><i class="icon bookmark"></i>Followers</a>
</div>
</div>
<div class="dropdown item">
Actions <i class="icon right-dir"></i>
<div class="menu">
<div class="item">Search</div>
<div class="item">Add</div>
<div class="item">Remove</div>
</div>
</div>
</div>
</div>
<h2>Elements</h2>
<div class="example">
<h4>Header Item</h4>
<p>A menu may have a header item to help label sections of a menu.</p>
<div class="ui vertical menu">
<div class="header item">
Dogs
</div>
<div class="item">
Poodle
</div>
<div class="item">
Cockerspaniel
</div>
<div class="header item">
Cats
</div>
<div class="item">
Abysinnian
</div>
<div class="item">
Sphynx
</div>
</div>
</div>
<div class="example">
<h4>Text Item</h4>
<p>A menu may have a simple text item.</p>
<div class="ui ignore info message">
<p><i class="icon heart"></i> Single paragraphs are automatically formatted as text. You can also specify an item as textual by adding the classname <b>text</b></p>
</div>
<div class="ui vertical menu">
<div class="item">
<p>Are you ready to try out a pro membership?</p>
</div>
<div class="item">
<p>Welcome back <i class="icon user"></i><b>username</b></p>
</div>
</div>
</div>
<div class="example">
<h4>Link Item</h4>
<p>A menu may contain a link item, or an item formatted as if it is a link.</p>
<div class="ui ignore info message">
<p><i class="icon heart"></i> Items that are anchor tags will automatically be formatted as a link.</p>
</div>
<div class="ui vertical menu">
<a href="http://www.google.com" class="item">
Visit Google
</a>
<div class="link item">
Javascript Link
</div>
</div>
</div>
<div class="example">
<h4>Dropdown Item</h4>
<p>An item may contain a list of dropdowns to chose from. By default it will appear automatically with css.</p>
<div class="ui ignore warning message">
<p><i class="icon heart"></i> A dropdown menu will, by default, automatically show when the parent element is hovered.</p>
<p>If you need to programmatically close the dropdown, use the class name <b>dynamic</b> and the javascript state module, which will allow you to manipulate the hover state in javascript.</p>
</div>
<div class="ui vertical menu">
<div class="dropdown item">
Dropdown <i class="icon right-dir"></i>
<div class="menu">
<div class="item">Choice 1</div>
<div class="item">Choice 2</div>
<div class="item">Choice 3</div>
</div>
</div>
</div>
</div>
<div class="example">
<h4>Menu</h4>
<p>A menu may contain another menu group inside. This can be useful for formatting multiple menu items with the same qualities.</p>
<div class="ui menu">
<div class="item">Left item 1</div>
<div class="item">Left item 2</div>
<div class="right menu">
<div class="item">Right item 1</div>
<div class="item">Right item 2</div>
</div>
</div>
</div>
<div class="example">
<h4>Nested Menu</h4>
<p>A menu may contain another menu nested inside an item that acts as a grouped sub-menu. This is only available when using a vertical menu.</p>
<div class="ui vertical menu">
<div class="item">
<a>Grouped Section</a>
<div class="menu">
<a class="item">Subsection 1</a>
<a class="item">Subsection 1</a>
<a class="item">Subsection 1</a>
</div>
</div>
</div>
</div>
<h2>States</h2>
<div class="example">
<h4>Hover</h4>
<p>A menu item can be hovered</p>
<div class="ui ignore warning message"><i class="icon heart"></i> Menu items are only hoverable if they are links, defined with the variant "link", or are given the class name hover programmatically.</div>
<div class="ui compact menu">
<div class="hover item">
Link
</div>
</div>
</div>
<div class="example">
<h4>Down</h4>
<p>A menu item can be pressed in</p>
<div class="ui compact menu">
<div class="down item">
Link
</div>
</div>
</div>
<div class="example">
<h4>Active</h4>
<p>A menu item can be active</p>
<div class="ui compact menu">
<div class="active item">
Link
</div>
</div>
</div>
<h2>Variations</h2>
<h3>Menu</h3>
<div class="example">
<h4>Inverted</h4>
<p>A menu may have its colors inverted to show greater contrast</p>
<div class="ui inverted menu">
<div class="item">
Site Title
</div>
<div class="active item">
<a>Current section</a>
</div>
<div class="right menu">
<div class="dropdown item">
Dropdown <i class="icon down-dir"></i>
<div class="menu">
<div class="item">Choice 1</div>
<div class="item">Choice 2</div>
<div class="item">Choice 3</div>
</div>
</div>
</div>
</div>
</div>
<div class="example">
<h4>Basic</h4>
<p>A menu may reduce its complexity to blend in with a page</p>
<div class="ui basic menu">
<a class="item">
Section 1
</a>
<a class="item">
Section 2
</a>
<a class="item">
Section 3
</a>
</div>
</div>
<div class="example">
<h4>Colors</h4>
<p>Additional colors can be specified</p>
<div class="ui grey compact menu">
<a class="item">
Green 1
</a>
<a class="item">
Green 2
</a>
</div>
<div class="ui green inverted compact menu">
<a class="item">
Green 1
</a>
<a class="item">
Green 2
</a>
</div>
<div class="ui red inverted compact menu">
<a class="item">
Red 1
</a>
<a class="item">
Red 2
</a>
</div>
<div class="ui blue inverted compact menu">
<a class="item">
Blue 1
</a>
<a class="item">
Blue 2
</a>
</div>
<br><br>
<div class="ui purple inverted compact menu">
<a class="item">
Purple 1
</a>
<a class="item">
Purple 2
</a>
</div>
<div class="ui orange inverted compact menu">
<a class="item">
Orange 1
</a>
<a class="item">
Orange 2
</a>
</div>
<div class="ui teal inverted compact menu">
<a class="item">
Teal 1
</a>
<a class="item">
Teal 2
</a>
</div>
</div>
<div class="example">
<h4>Icons</h4>
<p>A menu may have just icons</p>
<div class="ui icon menu">
<a class="item">
<i class="icon mail"></i>
</a>
<a class="item">
<i class="icon th-list"></i>
</a>
<a class="item">
<i class="icon star"></i>
</a>
</div>
<br><br>
<div class="ui vertical icon menu">
<a class="item">
<i class="icon mail"></i>
</a>
<a class="item">
<i class="icon th-list"></i>
</a>
<a class="item">
<i class="icon star"></i>
</a>
</div>
</div>
<div class="example">
<h4>Icons</h4>
<p>A menu may have labeled icons</p>
<div class="ui labeled icon menu">
<a class="item">
<i class="icon mail"></i>
Mail
</a>
<a class="item">
<i class="icon th-list"></i>
Directory
</a>
<a class="item">
<i class="icon star"></i>
Favorites
</a>
</div>
<br><br>
<div class="ui vertical red inverted labeled icon menu">
<a class="item">
<i class="icon mail"></i>
Mail
</a>
<a class="item">
<i class="icon th-list"></i>
Directory
</a>
<a class="item">
<i class="icon star"></i>
Favorites
</a>
</div>
</div>
<div class="example">
<h4>Fluid</h4>
<p>A menu may take the size of its container, and be divided evenly.</p>
<div class="ui three fluid menu">
<div class="item">Choice 1</div>
<div class="item">Choice 2</div>
<div class="item">Choice 3</div>
</div>
</div>
<div class="example">
<h4>Pointing (Horizontal)</h4>
<p>A menu can point to content below itself to show ownership</p>
<div class="ui pointing menu">
<div class="item">
Site Title
</div>
<a class="active item">
Current section
</a>
<div class="right menu">
<div class="dropdown item">
Dropdown <i class="icon down-dir"></i>
<div class="menu">
<div class="item">Choice 1</div>
<div class="item">Choice 2</div>
<div class="item">Choice 3</div>
</div>
</div>
</div>
</div>
</div>
<div class="example">
<h4>Pointing (Horizontal)</h4>
<p>A vertical menu can point to content adjacent to itself to show ownership</p>
<div class="ui pointing vertical menu">
<div class="item">
Site Title
</div>
<div class="item">
<a>Current section</a>
</div>
<div class="item">
<a>Grouped Section</a>
<div class="menu">
<a class="item">Subsection 1</a>
<a class="active item">Subsection 1</a>
<a class="item">Subsection 1</a>
</div>
</div>
<div class="dropdown item">
Dropdown <i class="icon right-dir"></i>
<div class="menu">
<div class="item">Choice 1</div>
<div class="item">Choice 2</div>
<div class="item">Choice 3</div>
</div>
</div>
</div>
</div>
<div class="example">
<h4>Attached</h4>
<p>A menu may be attached to other content segments</p>
<div class="ui top attached pointing menu">
<div class="item">
Site Title
</div>
<div class="active item">
<a>Current section</a>
</div>
<div class="right menu">
<div class="dropdown item">
Dropdown <i class="icon down-dir"></i>
<div class="menu">
<div class="item">Choice 1</div>
<div class="item">Choice 2</div>
<div class="item">Choice 3</div>
</div>
</div>
</div>
</div>
<div class="ui bottom attached segment">
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable. If you are going to use a passage of Lorem Ipsum, you need to be sure there isn't anything embarrassing hidden in the middle of text. All the Lorem Ipsum generators on the Internet tend to repeat predefined chunks as necessary, making this the first true generator on the Internet. It uses a dictionary of over 200 Latin words, combined with a handful of model sentence structures, to generate Lorem Ipsum which looks reasonable. The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.
</div>
</div>
<div class="example">
<h4>Horizontal Sizes</h4>
<p>A horizontal menu can vary in size</p>
<div class="ui large menu">
<div class="item">
Site Title
</div>
<div class="active item">
<a>Current section</a>
</div>
<div class="item">
<a>Another section</a>
</div>
</div>
<br><br>
<div class="ui small menu">
<div class="item">
Site Title
</div>
<div class="active item">
<a>Current section</a>
</div>
<div class="dropdown item">
Dropdown <i class="icon down-dir"></i>
<div class="menu">
<div class="item">Choice 1</div>
<div class="item">Choice 2</div>
<div class="item">Choice 3</div>
</div>
</div>
</div>
</div>
<div class="example">
<h4>Vertical Sizes</h4>
<p>A vertical menu can vary in size</p>
<div class="ui large vertical menu">
<div class="item">
Site Title
</div>
<div class="active item">
<a>Current section</a>
</div>
<div class="item">
<a>Grouped Section</a>
<div class="menu">
<a class="item">Subsection 1</a>
<a class="item">Subsection 1</a>
<a class="item">Subsection 1</a>
</div>
</div>
<div class="dropdown item">
Dropdown <i class="icon right-dir"></i>
<div class="menu">
<div class="item">Choice 1</div>
<div class="item">Choice 2</div>
<div class="item">Choice 3</div>
</div>
</div>
</div>
<br><br>
<div class="ui small vertical menu">
<div class="item">
Site Title
</div>
<div class="active item">
<a>Current section</a>
</div>
<div class="item">
<a>Grouped Section</a>
<div class="menu">
<a class="item">Subsection 1</a>
<a class="item">Subsection 1</a>
<a class="item">Subsection 1</a>
</div>
</div>
<div class="dropdown item">
Dropdown <i class="icon right-dir"></i>
<div class="menu">
<div class="item">Choice 1</div>
<div class="item">Choice 2</div>
<div class="item">Choice 3</div>
</div>
</div>
</div>
</div>
<h3>Items</h3>
<div class="example">
<h4>Fitted</h4>
<p>A menu item or menu might be fitted to remove element padding</p>
<div class="ui menu">
<div class="fitted item">
No vertical padding
</div>
<div class="tight item">
No padding at all
</div>
</div>
</div>
<div class="example">
<h4>Borderless</h4>
<p>A menu item or menu might might have no dividers</p>
<div class="ui borderless menu">
<div class="item">
<i class="icon left-open"></i> Previous
</div>
<div class="item">1</div>
<div class="item">2</div>
<div class="item">3</div>
<div class="item">4</div>
<div class="item">5</div>
<div class="item">6</div>
<div class="item">
<i class="icon right-open"></i> Next
</div>
</div>
</div>
</div>
</body>
</html>
</body>
</html>

400
collections/message.html

@ -1,400 +0,0 @@
<!DOCTYPE html>
<head>
<!-- Standard Meta -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width" />
<!-- Site Properities -->
<meta http-equiv="X-Powered-By" content="DocPad v6.34.1"/>
<title>Message | Semantic UI</title>
<meta name="description" content="Semantic empowers designers and developers by creating a shared vocabulary for UI." />
<meta name="keywords" content="html5, ui, library, framework, javascript" />
<link rel="stylesheet" type="text/css" href="/stylesheets/reset.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/icons.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/button.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/header.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/label.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/progress.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/divider.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/message.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/segment.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/grid.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/items.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/table.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/form.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/menu.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/shape.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/popup.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/checkbox.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/library/sidr.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/semantic.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/shape.css">
<script src="/javascript/library/jquery.js"></script>
<script src="/javascript/library/easing.js"></script>
<script src="/javascript/library/ace/ace.js"></script>
<script src="/javascript/library/sidr.js"></script>
<script src="/javascript/library/waypoints.js"></script>
<script src="/components/semantic/src/modules/behavior/state.js"></script>
<script src="/components/semantic/src/modules/shape.js"></script>
<script src="/components/semantic/src/modules/checkbox.js"></script>
<script src="/components/semantic/src/modules/popup.js"></script>
<script src="/javascript/semantic.js"></script>
<script src="/javascript/shape.js"></script>
</head>
<body id="example">
<div class="ui large vertical menu" id="menu">
<div class="item"><a href="/index.html"><b>Introduction</b></a></div>
<div class="item"><a href="/download.html"><b>Download</b></a></div>
<div class="item">
<a href="/element.html"><b>UI Elements</b></a>
<div class="menu">
<a class="item" href="/elements/button.html">Button</a>
<a class="item" href="/elements/label.html">Label</a>
</div>
</div>
<div class="item">
<a href="/collection.html"><b>UI Collections</b></a>
<div class="menu">
<a class="item" href="/collections/form.html">Form</a>
<a class="item" href="/collections/grid.html">Grid</a>
<a class="item" href="/collections/menu.html">Menu</a>
<a class="active item" href="/collections/message.html">Message</a>
<a class="item" href="/collections/table.html">Table</a>
</div>
</div>
<div class="item">
<a href="/module.html"><b>UI Modules</b></a>
<div class="menu">
<a class="item" href="/modules/checkbox.html">Checkbox</a>
<a class="item" href="/modules/shape.html">Shape</a>
</div>
</div>
<div class="item">
<a href="/specification.html"><b>Specification</b></a>
<div class="menu">
</div>
</div>
</div>
<div class="ui fixed transparent inverted main menu">
<div class="container">
<div class="title item">
<b>UI Collection:</b> Message
</div>
<div class="icon previous link item">
<a href="/collections/menu.html"><i class="icon left-open"></i></a>
</div>
<div class="section dropdown item">
4 of 5
<div class="menu">
<div class="item">
<a href="/collections/form.html">1. Form</a>
</div>
<div class="item">
<a href="/collections/grid.html">2. Grid</a>
</div>
<div class="item">
<a href="/collections/menu.html">3. Menu</a>
</div>
<div class="active item">
<a href="/collections/message.html">4. Message</a>
</div>
<div class="item">
<a href="/collections/table.html">5. Table</a>
</div>
</div>
</div>
<div class="icon next link item">
<a href="/collections/table.html"><i class="icon right-open"></i></a>
</div>
<div class="right menu">
<a class="popup designer item" title="Designer Mode">
<i class="icon easel"></i>
</a>
<a class="popup developer item" title="Developer Mode">
<i class="icon terminal"></i>
</a>
<a class="popup item" title="View project on Github" href="https://github.com/quirkyinc/semantic">
<i class="icon github"></i>
</a>
<!--
<div class="dropdown item">
<i class="icon tint"></i> Theme
<div class="theme menu">
<div class="active item" data-theme="flat">Flat</div>
<div class="item" data-theme="shaded">Shaded</div>
<div class="item" data-theme="classic">Classic</div>
</div>
</div>
!-->
</div>
</div>
</div>
<div class="ui teal huge sidebar right attached button">
<i class="icon th-list"></i>
<span class="text">Menu</span>
</div>
<div class="segment">
<div class="container">
<h1>Message</h1>
<p>Messages can alert a user to something they must immediately consider before proceeding on to the normal content of the page.</p>
</div>
</div>
<div class="main container">
<div class="peek">
<div class="ui vertical pointing menu">
<a class="active item">Standard</a>
<a class="item">States</a>
<a class="item">Variations</a>
<a class="item">Groups</a>
</div>
</div>
<h2>Standard</h2>
<div class="example">
<h4>Text Block</h4>
<p>A basic text block</p>
<div class="ui message">
<div class="header">
Welcome back!
</div>
<p>
It's good to see you again. I have had a lot to think about since our last visit, I've changed much as a person and I can see that you have too.
</p>
<p>
Perhaps we can talk about it if you have the time.
</p>
</div>
</div>
<div class="example">
<h4>List Block</h4>
<p>A text block with a list</p>
<div class="ui message">
<div class="header">
Welcome back!
</div>
<ul class="list">
<li>It's good to see you again.</li>
<li>Did you know it's been a while?</li>
</ul>
</div>
</div>
<div class="example">
<h4>Dismissable Block</h4>
<p>A text block that the user can choose to hide</p>
<div class="ui message">
<i class="icon close"></i>
<div class="header">
Welcome back!
</div>
<ul class="list">
<li>It's good to see you again.</li>
<li>Did you know it's been a while?</li>
</ul>
</div>
</div>
<h2>States</h2>
<h4>Hidden</h4>
<p>Text Blocks can be hidden</p>
<div class="ui hidden message">
<p>You can't see me</p>
</div>
<div class="example">
<h4>Visible</h4>
<p>Text Blocks can be set to visible if they need to force themselves to be shown.</p>
<div class="ui visible message">
<p>You can always see me</p>
</div>
</div>
<h2>Variations</h2>
<div class="example">
<h4>Icon Block</h4>
<p>A text block can contain an icon.</p>
<div class="ui icon message">
<i class="icon cloud"></i>
<div class="content">
<div class="header">
Have you heard about our mailing list?
</div>
<p>Get all the best inventions in your e-mail every day. Sign up now</p>
</div>
</div>
</div>
<div class="example">
<h4>Compact Block</h4>
<p>A text block that only takes up the width of its content.</p>
<div class="ui compact message">
<p>Get all the best inventions in your e-mail every day. Sign up now</p>
</div>
</div>
<div class="example">
<h4>Attached Block</h4>
<p>A text block can be formatted to attach itself to content</p>
<div class="ui attached message">
<div class="header">
Have you heard about our mailing list?
</div>
<p>Get all the best inventions in your e-mail every day. Sign up now</p>
</div>
<form class="ui form attached fluid segment">
<p>Let's go ahead and get you signed up.</p>
<div class="two fields">
<div class="field">
<label>First Name</label>
<input placeholder="First Name" type="text">
</div>
<div class="field">
<label>Last Name</label>
<input placeholder="Last Name" type="text">
</div>
</div>
<div class="field">
<label>Username</label>
<input placeholder="Username" type="text">
</div>
<div class="field">
<label>Password</label>
<input type="password">
</div>
<div class="inline field">
<div class="ui checkbox">
<input type="checkbox" id="terms" />
<label for="terms"></label>
</div>
<label>I agree to the terms and conditions</label>
</div>
<div class="ui blue submit button">Submit</div>
</form>
<div class="ui bottom attached info message">
<div class="header">
<i class="icon help"></i>Are you sure you know what you're doing?
</div>
</div>
</div>
<div class="example">
<h4>Colored Block</h4>
<p>A text block can be formatted to be different colors</p>
</div>
<div class="example">
<h4>Warning Block</h4>
<p>A text block may be formatted to display warning messages.</p>
<div class="ui warning message">
<i class="icon close"></i>
<div class="header">
You must register before you can do that!
</div>
<p>Visit our registration page, then try again</p>
</div>
</div>
<div class="example">
<h4>Info Block</h4>
<p>A text block may be formatted to display information.</p>
<div class="ui info message">
<i class="icon close"></i>
<div class="header">
Was this what you wanted?
</div>
<ul class="list">
<li>It's good to see you again.</li>
<li>Did you know it's been a while?</li>
</ul>
</div>
</div>
<div class="example">
<h4>Success Block</h4>
<p>A text block may be formatted to display a success message.</p>
<div class="ui success message">
<i class="icon close"></i>
<div class="header">
Congratulations, you are now a member!
</div>
</div>
</div>
<div class="example">
<h4>Error Block</h4>
<p>A text block may be formatted to display errors.</p>
<div class="ui error message">
<i class="icon close"></i>
<div class="header">
Was this what you wanted?
</div>
<ul class="list">
<li>It's good to see you again.</li>
<li>Did you know it's been a while?</li>
</ul>
</div>
</div>
</div>
</div>
</body>
</html>
</body>
</html>

662
collections/table.html

@ -1,662 +0,0 @@
<!DOCTYPE html>
<head>
<!-- Standard Meta -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width" />
<!-- Site Properities -->
<meta http-equiv="X-Powered-By" content="DocPad v6.34.1"/>
<title>Table | Semantic UI</title>
<meta name="description" content="Semantic empowers designers and developers by creating a shared vocabulary for UI." />
<meta name="keywords" content="html5, ui, library, framework, javascript" />
<link rel="stylesheet" type="text/css" href="/stylesheets/reset.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/icons.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/button.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/header.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/label.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/progress.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/divider.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/message.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/segment.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/grid.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/items.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/table.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/form.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/menu.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/shape.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/popup.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/checkbox.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/library/sidr.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/semantic.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/shape.css">
<script src="/javascript/library/jquery.js"></script>
<script src="/javascript/library/easing.js"></script>
<script src="/javascript/library/ace/ace.js"></script>
<script src="/javascript/library/sidr.js"></script>
<script src="/javascript/library/waypoints.js"></script>
<script src="/components/semantic/src/modules/behavior/state.js"></script>
<script src="/components/semantic/src/modules/shape.js"></script>
<script src="/components/semantic/src/modules/checkbox.js"></script>
<script src="/components/semantic/src/modules/popup.js"></script>
<script src="/javascript/semantic.js"></script>
<script src="/javascript/shape.js"></script>
</head>
<body id="example">
<div class="ui large vertical menu" id="menu">
<div class="item"><a href="/index.html"><b>Introduction</b></a></div>
<div class="item"><a href="/download.html"><b>Download</b></a></div>
<div class="item">
<a href="/element.html"><b>UI Elements</b></a>
<div class="menu">
<a class="item" href="/elements/button.html">Button</a>
<a class="item" href="/elements/label.html">Label</a>
</div>
</div>
<div class="item">
<a href="/collection.html"><b>UI Collections</b></a>
<div class="menu">
<a class="item" href="/collections/form.html">Form</a>
<a class="item" href="/collections/grid.html">Grid</a>
<a class="item" href="/collections/menu.html">Menu</a>
<a class="item" href="/collections/message.html">Message</a>
<a class="active item" href="/collections/table.html">Table</a>
</div>
</div>
<div class="item">
<a href="/module.html"><b>UI Modules</b></a>
<div class="menu">
<a class="item" href="/modules/checkbox.html">Checkbox</a>
<a class="item" href="/modules/shape.html">Shape</a>
</div>
</div>
<div class="item">
<a href="/specification.html"><b>Specification</b></a>
<div class="menu">
</div>
</div>
</div>
<div class="ui fixed transparent inverted main menu">
<div class="container">
<div class="title item">
<b>UI Collection:</b> Table
</div>
<div class="icon previous link item">
<a href="/collections/message.html"><i class="icon left-open"></i></a>
</div>
<div class="section dropdown item">
5 of 5
<div class="menu">
<div class="item">
<a href="/collections/form.html">1. Form</a>
</div>
<div class="item">
<a href="/collections/grid.html">2. Grid</a>
</div>
<div class="item">
<a href="/collections/menu.html">3. Menu</a>
</div>
<div class="item">
<a href="/collections/message.html">4. Message</a>
</div>
<div class="active item">
<a href="/collections/table.html">5. Table</a>
</div>
</div>
</div>
<div class="icon next disabled link item">
<i class="icon right-open"></i>
</div>
<div class="right menu">
<a class="popup designer item" title="Designer Mode">
<i class="icon easel"></i>
</a>
<a class="popup developer item" title="Developer Mode">
<i class="icon terminal"></i>
</a>
<a class="popup item" title="View project on Github" href="https://github.com/quirkyinc/semantic">
<i class="icon github"></i>
</a>
<!--
<div class="dropdown item">
<i class="icon tint"></i> Theme
<div class="theme menu">
<div class="active item" data-theme="flat">Flat</div>
<div class="item" data-theme="shaded">Shaded</div>
<div class="item" data-theme="classic">Classic</div>
</div>
</div>
!-->
</div>
</div>
</div>
<div class="ui teal huge sidebar right attached button">
<i class="icon th-list"></i>
<span class="text">Menu</span>
</div>
<div class="segment">
<div class="container">
<h1>Tables</h1>
<p>Tables are useful for displaying collections of tuples.</p>
<p>
Tables consist of an optional table header, content, and table footer. They may be formatted to show numeric content or for rows of text.
</p>
<p>Although no plugin has been created using the <a href="generated/multiple.html">semantic module spec</a> for sorting tables, other plugins such as kylefox's <a href="https://github.com/kylefox/jquery-tablesort">tablesort</a> may be useful.</p>
</div>
</div>
<div class="main container">
<div class="peek">
<div class="ui vertical pointing menu">
<a class="active item">Standard</a>
<a class="item">States</a>
<a class="item">Variations</a>
</div>
</div>
<h2>Standard</h2>
<div class="example">
<h4>Table</h4>
<p>A standard table</p>
<table class="ui table">
<thead>
<th>Name</th>
<th>Status</th>
<th>Notes</th>
</thead>
<tbody>
<tr>
<td>John</td>
<td>Approved</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td>Requires call</td>
</tr>
<tr>
<td>Jill</td>
<td>Denied</td>
<td>None</td>
</tr>
</tbody>
<tfoot>
<th colspan="3">
<div class="ui blue button"><i class="icon plus-circle"></i> Add User</div>
</th>
</tfoot>
</table>
</div>
<h2>States</h2>
<div class="example">
<h4>Positive / Negative</h4>
<p>A cell may let a user know whether a value is good or bad:</p>
<table class="ui celled table">
<thead>
<th>Name</th>
<th>Status</th>
<th>Notes</th>
</thead>
<tbody>
<tr>
<td>No Name Specified</td>
<td>Unknown</td>
<td>None</td>
</tr>
<tr class="positive">
<td>Jimmy</td>
<td><i class="icon check"></i> Approved</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Unknown</td>
<td class="negative"><i class="icon close"></i> Requires call</td>
</tr>
<tr>
<td>Jill</td>
<td>Unknown</td>
<td>None</td>
</tr>
</tbody>
</table>
</div>
<h3>Cells</h3>
<div class="example">
<h4>Error</h4>
<p>A cell or row may alert the user to an error or a negative value:</p>
<table class="ui celled table">
<thead>
<th>Name</th>
<th>Status</th>
<th>Notes</th>
</thead>
<tbody>
<tr>
<td>No Name Specified</td>
<td>Approved</td>
<td>None</td>
</tr>
<tr class="error">
<td>Jimmy</td>
<td><i class="icon attention-circle"></i> Cannot pull data</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td class="error"><i class="icon attention-circle"></i> Classified</td>
</tr>
<tr>
<td>Jill</td>
<td>Approved</td>
<td>None</td>
</tr>
</tbody>
</table>
</div>
<div class="example">
<h4>Warning</h4>
<p>A cell or row may warn a user:</p>
<table class="ui celled table">
<thead>
<th>Name</th>
<th>Status</th>
<th>Notes</th>
</thead>
<tbody>
<tr>
<td>No Name Specified</td>
<td>Unknown</td>
<td>None</td>
</tr>
<tr class="warning">
<td>Jimmy</td>
<td><i class="icon info"></i> Requires Action</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Unknown</td>
<td class="warning"><i class="icon info"></i> Hostile</td>
</tr>
<tr>
<td>Jill</td>
<td>Unknown</td>
<td>None</td>
</tr>
</tbody>
</table>
</div>
<div class="example">
<h4>Active</h4>
<p>A cell or row can be active:</p>
<table class="ui celled table">
<thead>
<th>Name</th>
<th>Status</th>
<th>Notes</th>
</thead>
<tbody>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td>Requires call</td>
</tr>
<tr class="active">
<td>John</td>
<td>Selected</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td>Requires call</td>
</tr>
<tr>
<td class="active">Jill</td>
<td>Approved</td>
<td>None</td>
</tr>
</tbody>
</table>
<div class="example">
<h4>Disabled</h4>
<p>A cell can be disabled:</p>
<table class="ui celled table">
<thead>
<th>Name</th>
<th>Status</th>
<th>Notes</th>
</thead>
<tbody>
<tr class="disabled">
<td>Jamie</td>
<td>Approved</td>
<td>Requires call</td>
</tr>
<tr>
<td>John</td>
<td>Selected</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td>Requires call</td>
</tr>
<tr>
<td class="disabled">Jill</td>
<td>Approved</td>
<td>None</td>
</tr>
</tbody>
</table>
</div>
<h2>Variations</h2>
<div class="example">
<h4>Collapsing</h4>
<p>By default tables take the size of their container. A collapsing takes up only as much space as its rows.</p>
<table class="ui celled table collapsing">
<thead>
<th>Name</th>
<th>Status</th>
<th>Notes</th>
</thead>
<tbody>
<tr>
<td>John</td>
<td>Approved</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td>Requires call</td>
</tr>
<tr>
<td>Jill</td>
<td>Denied</td>
<td>None</td>
</tr>
</tbody>
<tfoot>
<th>3 People</th>
<th>2 Approved</th>
<th></th>
</tfoot>
</table>
</div>
<div class="example">
<h4>Cells</h4>
<p>A table may be divided into cells to help segment content</p>
<table class="ui celled table">
<thead>
<th>Name</th>
<th>Status</th>
<th>Notes</th>
</thead>
<tbody>
<tr>
<td>John</td>
<td>Approved</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td>Requires call</td>
</tr>
<tr>
<td>Jill</td>
<td>Denied</td>
<td>None</td>
</tr>
</tbody>
<tfoot>
<th>3 People</th>
<th>2 Approved</th>
<th></th>
</tfoot>
</table>
</div>
<div class="example">
<h4>Sortable</h4>
<p>A table may allow a user to sort contents by clicking on a table header.</p>
<p>Adding a classname of ascending or descending, will show the user the direction of sort. This example uses a modified version of the kylefox's <a href="library/tablesort.js">tablesort plugin</a> to provide the proper class names.</p>
<table class="ui sortable celled table">
<thead>
<th>Name</th>
<th>Status</th>
<th>Notes</th>
</thead>
<tbody>
<tr>
<td>John</td>
<td>No Action</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td class="positive">Approved</td>
<td class="warning">Requires call</td>
</tr>
<tr>
<td>Jill</td>
<td class="negative">Denied</td>
<td>None</td>
</tr>
</tbody>
<tfoot>
<th>3 People</th>
<th>2 Approved</th>
<th></th>
</tfoot>
</table>
</div>
<div class="example">
<h4>Padded</h4>
<p>A table may sometimes need to be more padded for legibility</p>
<table class="ui padded celled table">
<thead>
<th>Name</th>
<th>Status</th>
<th>Notes</th>
</thead>
<tbody>
<tr>
<td>John</td>
<td>Approved</td>
<td>He is a very nice guy and I enjoyed talking to him on the telephone. I hope we get to talk again.</td>
</tr>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td>Jamie was not interested in purchasing our product.</td>
</tr>
</tbody>
</table>
</div>
<div class="example">
<h4>Compact</h4>
<p>A table may sometimes need to be more compact to make more rows visible at a time</p>
<table class="ui compact celled table">
<thead>
<th>Name</th>
<th>Status</th>
<th>Notes</th>
</thead>
<tbody>
<tr>
<td>John</td>
<td>Approved</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td>Requires call</td>
</tr>
<tr>
<td>John</td>
<td>Approved</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td>Requires call</td>
</tr>
<tr>
<td>John</td>
<td>Approved</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td>Requires call</td>
</tr>
<tr>
<td>John</td>
<td>Approved</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td>Requires call</td>
</tr>
</tbody>
</table>
</div>
<div class="example">
<h4>Size</h4>
<p>A table can also be small or large</p>
<table class="ui small table">
<thead>
<th>Name</th>
<th>Status</th>
<th>Notes</th>
</thead>
<tbody>
<tr>
<td>John</td>
<td>Approved</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td>Requires call</td>
</tr>
<tr>
<td>Jill</td>
<td>Denied</td>
<td>None</td>
</tr>
</tbody>
<tfoot>
<th>3 People</th>
<th>2 Approved</th>
<th></th>
</tfoot>
</table>
<br><br>
<table class="ui large table">
<thead>
<th>Name</th>
<th>Status</th>
<th>Notes</th>
</thead>
<tbody>
<tr>
<td>John</td>
<td>Approved</td>
<td>None</td>
</tr>
<tr>
<td>Jamie</td>
<td>Approved</td>
<td>Requires call</td>
</tr>
<tr>
<td>Jill</td>
<td>Denied</td>
<td>None</td>
</tr>
</tbody>
<tfoot>
<th>3 People</th>
<th>2 Approved</th>
<th></th>
</tfoot>
</table>
</div>
</div>
</body>
</html>
</body>
</html>

260
components/semantic/src/collections/block.css

@ -1,260 +0,0 @@
/*
* # Semantic Text Block - Flat
* http://github.com/quirkyinc/semantic
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
* Released: April 29 2013
*/
/*******************************
Text Block
*******************************/
.ui.message {
position: relative;
min-height: 18px;
margin: 1em 0em;
height: auto;
background-color: rgba(0, 0, 0, 0.04);
padding: 1em;
line-height: 1.33;
color: rgba(0, 0, 0, 0.6);
-webkit-border-radius: 4px 4px 4px 4px;
-moz-border-radius: 4px 4px 4px 4px;
border-radius: 4px 4px 4px 4px;
}
/*--------------
Content
---------------*/
/* block with headers */
.ui.message .header {
font-size: 1.33em;
font-weight: bold;
}
/* block with paragraphs */
.ui.message p {
opacity: 0.85;
margin: 0.2em 0em;
}
.ui.message p:first-child {
margin-top: 0em;
}
/* block with child list */
.ui.message ul.list {
opacity: 0.85;
list-style-position: inside;
margin: 0.2em 0em;
padding: 0em;
}
.ui.message ul.list li {
position: relative;
list-style-type: none;
font-style: italic;
margin: 0em 0em 0em 1em;
padding: 0em;
}
.ui.message ul.list li:before {
position: absolute;
content: '\2022';
top: -0.05em;
left: -0.8em;
height: 100%;
vertical-align: baseline;
opacity: 0.5;
}
.ui.message ul.list li:first-child {
margin-top: 0px;
}
/* dismissable block */
.ui.message > .icon.close {
cursor: pointer;
position: absolute;
top: 1em;
right: 0.5em;
opacity: 0.7;
-webkit-transition:
opacity 0.1s linear
;
-moz-transition:
opacity 0.1s linear
;
-o-transition:
opacity 0.1s linear
;
-ms-transition:
opacity 0.1s linear
;
transition:
opacity 0.1s linear
;
}
.ui.message > .icon.close:hover {
opacity: 1;
}
/*******************************
States
*******************************/
.ui.message.visible,
.ui.header.visible {
display: block !important;
}
.ui.message.hidden,
.ui.header.hidden {
display: none;
}
/*******************************
Variations
*******************************/
/*--------------
Compact
---------------*/
.ui.compact.message {
display: inline-block;
}
/*--------------
Attached
---------------*/
.ui.attached.message {
margin-bottom: 0px;
-webkit-border-radius: 4px 4px 0px 0px;
-moz-border-radius: 4px 4px 0px 0px;
border-radius: 4px 4px 0px 0px;
-webkit-box-shadow:
0px 0px 0px 1px #DDDDDD
;
-moz-box-shadow:
0px 0px 0px 1px #DDDDDD
;
box-shadow:
0px 0px 0px 1px #DDDDDD
;
}
.ui.bottom.attached.message {
margin-top: 0px;
-webkit-border-radius: 0px 0px 4px 4px;
-moz-border-radius: 0px 0px 4px 4px;
border-radius: 0px 0px 4px 4px;
-webkit-box-shadow:
0px 0px 0px 1px #DDDDDD
;
-moz-box-shadow:
0px 0px 0px 1px #DDDDDD
;
box-shadow:
0px 0px 0px 1px #DDDDDD
;
}
/*--------------
Icon
---------------*/
.ui.icon.message > .icon {
display: table-cell;
vertical-align: middle;
font-size: 3.8em;
padding-right: 0.4em;
opacity: 0.2;
}
.ui.icon.message > .content {
display: table-cell;
vertical-align: middle;
}
/*--------------
Colors
---------------*/
.ui.black.message {
background-color: #333333;
color: rgba(255, 255, 255, 0.95);
}
/*--------------
Types
---------------*/
.ui.blue.message,
.ui.info.message {
border-color: #75C9E9;
background-color: #E9F9FF;
color: #1D6582;
}
/* Success Text Block */
.ui.green.message,
.ui.success.message,
.ui.positive.message {
background-color: #EEFFE9;
color: #119000;
border-color: #2FCB05;
}
/* Warning Text Block */
.ui.yellow.message,
.ui.warning.message {
background-color: #F6F3D5;
border-color: #CBB105;
color: #AF9801;
}
/* Error Text Block */
.ui.red.message,
.ui.error.message,
.ui.negative.message {
background-color: #F1D7D7;
color: #AD0000;
border-color: #B06C6C;
}
/*--------------
Sizes
---------------*/
.ui.small.message {
font-size: 0.875em;
}
.ui.message {
font-size: 1em;
}
.ui.large.message {
font-size: 1.125em;
}
.ui.huge.message {
font-size: 1.5em;
}
.ui.massive.message {
font-size: 2px;
}

434
components/semantic/src/collections/form.css

@ -1,434 +0,0 @@
/*
* # Semantic Button - Flat
* http://github.com/quirkyinc/semantic
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
* Released: April 22 2013
*/
/*******************************
Standard
*******************************/
/*--------------------
Form
---------------------*/
.ui.form {
position: relative;
width: 35em;
}
.ui.form :first-child {
margin-top: 0em;
}
/*--------------------
Content
---------------------*/
.ui.form > p {
margin: 1em 0;
}
/*--------------------
Field
---------------------*/
.ui.form .field {
clear: both;
margin: 0em 0em 1em;
}
/*--------------------
Labels
---------------------*/
.ui.form .field > label {
margin: 0em 0em 0.3em;
display: block;
color: #555555;
font-size: 0.875em;
line-height: 1.2;
}
/*--------------------
Standard Inputs
---------------------*/
.ui.form textarea,
.ui.form input[type="text"],
.ui.form input[type="date"],
.ui.form input[type="password"],
.ui.textarea,
.ui.input {
width: 100%;
padding: 0.53em 0.7em;
font-size: 0.825em;
background-color: #FFFFFF;
border: 1px solid rgba(0, 0, 0, 0.15);
outline: none;
color: #555555;
-webkit-border-radius: 0.3125em;
-moz-border-radius: 0.3125em;
border-radius: 0.3125em;
-webkit-transition: background-color 0.3s ease-out;
-moz-transition: background-color 0.3s ease-out;
-o-transition: background-color 0.3s ease-out;
-ms-transition: background-color 0.3s ease-out;
transition: background-color 0.3s ease-out;
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
.ui.textarea,
.ui.form textarea {
line-height: 1.33;
min-height: 8em;
height: 12em;
max-height: 24em;
resize: vertical;
}
.ui.form select {
-webkit-tap-highlight-color: rgba(255, 255, 255, 0);
}
.ui.form textarea,
.ui.form input[type="checkbox"] {
vertical-align: top;
}
/*--------------------
Dividers
---------------------*/
.ui.form .divider {
clear: both;
margin: 1em 0em;
}
/*--------------------
Types of Messages
---------------------*/
.ui.form .info.message,
.ui.form .warning.message,
.ui.form .error.message {
display: none;
}
/* Assumptions */
.ui.form .message:first-child {
margin-top: 0px;
}
/*******************************
States
*******************************/
/*--------------------
Focus
---------------------*/
.ui.form input:focus,
.ui.form textarea:focus {
color: rgba(20, 20, 20, 0.9);
border-color: rgba(0, 0, 0, 0.3);
}
/*--------------------
Error
---------------------*/
/* On Form */
.ui.form.warning .warning.message {
display: block;
}
/*--------------------
Warning
---------------------*/
/* On Form */
.ui.form.error .error.message {
display: block;
}
/* On Field(s) */
.ui.form .fields.error .field label,
.ui.form .field.error label {
font-weight: bold;
color: #EF3F49;
}
.ui.form .fields.error .field textarea,
.ui.form .fields.error .field input[type="text"],
.ui.form .fields.error .field input[type="date"],
.ui.form .fields.error .field input[type="password"],
.ui.form .field.error textarea,
.ui.form .field.error input[type="text"],
.ui.form .field.error input[type="date"],
.ui.form .field.error input[type="password"] {
background-color: #FFFAFA;
border-color: rgba(255, 80, 80, 0.7);
color: rgba(255, 80, 80, 0.7);
}
.ui.form .field.error textarea:focus,
.ui.form .field.error input:focus {
border-color: rgba(255, 80, 80, 1);
color: rgba(255, 80, 80, 1);
}
/*--------------------
Empty (Placeholder)
---------------------*/
/* browsers require these rules separate */
.ui.form ::-webkit-input-placeholder {
color: #E0E0E0;
}
.ui.form ::-moz-placeholder {
color: #E0E0E0;
}
.ui.form :focus::-webkit-input-placeholder {
color: #AAAAAA;
}
.ui.form :focus::-moz-placeholder {
color: #AAAAAA;
}
.ui.form textarea.empty,
.ui.form input.empty {
color: #E0E0E0;
}
/* Error Placeholder */
.ui.form .error ::-webkit-input-placeholder {
color: rgba(255, 80, 80, 0.4);
}
.ui.form .error ::-moz-placeholder {
color: rgba(255, 80, 80, 0.4);
}
.ui.form .error :focus::-webkit-input-placeholder {
color: rgba(255, 80, 80, 0.7);
}
.ui.form .error :focus::-moz-placeholder {
color: rgba(255, 80, 80, 0.7);
}
/*--------------------
Disabled
---------------------*/
.ui.form .field :disabled,
.ui.form .field.disabled {
opacity: 0.5;
}
.ui.form .field.disabled :disabled {
opacity: 1;
}
/*--------------------
Loading State
---------------------*/
/* On Form */
.ui.form.loading {
position: relative;
}
.ui.form.loading:after {
position: absolute;
top: 0%;
left: 0%;
content: '';
width: 100%;
height: 100%;
background: rgba(255, 255, 255, 0.8) url(../images/throbber-large.gif) no-repeat 50% 50%;
}
/*******************************
Variations
*******************************/
/*--------------------
Fluid Width
---------------------*/
.ui.form.fluid {
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
/*--------------------------
Input w/ attached Button
---------------------------*/
.ui.form input.attached {
width: auto;
}
/*--------------------
Date Input
---------------------*/
.ui.form .date.field > label {
position: relative;
}
.ui.form .date.field > label:after {
position: absolute;
top: 1.2em;
right: 0.4em;
font-family: 'Icons';
content: '📅'; /* '\1f4c5' */
font-size: 1.5em;
font-weight: normal;
color: #CCCCCC;
}
/*--------------------
Inverted Colors
---------------------*/
.ui.inverted.form label {
color: #FFFFFF;
}
.ui.inverted.form .field.error textarea,
.ui.inverted.form .field.error input[type="text"] {
background-color: #FFCCCC;
}
/*--------------------
Field Groups
---------------------*/
/* Split fields */
.ui.form .fields {
clear: both;
}
.ui.form .fields:after {
content: ' ';
display: block;
clear: both;
visibility: hidden;
line-height: 0;
height: 0;
}
.ui.form .fields .field {
clear: none;
float: left;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
.ui.form .fields .field:first-child {
border-left: none;
box-shadow: none;
}
/* Other Combinations */
.ui.form .fields .field,
.ui.form .two.fields .field {
width: 50%;
padding-left: 1%;
padding-right: 1%;
}
.ui.form .three.fields .field {
width: 33.333%;
padding-left: 1%;
padding-right: 1%;
}
.ui.form .four.fields .field {
width: 25%;
padding-left: 1%;
padding-right: 1%;
}
.ui.form .five.fields .field {
width: 20%;
padding-left: 1%;
padding-right: 1%;
}
/* override sides, ie8 no last-child */
.ui.form .fields .field:first-child {
padding-left: 0%;
}
.ui.form .fields .field:last-child {
padding-right: 0%;
}
/*--------------------
Inline Fields
---------------------*/
.ui.form .inline.fields .field {
width: auto;
}
.ui.form .inline.fields .field > label,
.ui.form .inline.fields .field > p,
.ui.form .inline.fields .field > input,
.ui.form .inline.fields .field > select,
.ui.form .inline.field > label,
.ui.form .inline.field > p,
.ui.form .inline.field > input,
.ui.form .inline.field > select {
display: inline-block;
vertical-align: middle;
width: auto;
}
.ui.form .inline.fields .field > :first-child,
.ui.form .inline.field > :first-child {
margin: 0em 0.5em 0em 0em;
}
/*--------------------
Sizes
---------------------*/
/* Standard */
.ui.small.form {
font-size: 0.875em;
}
.ui.small.form textarea,
.ui.small.form input[type="text"],
.ui.small.form input[type="password"],
.ui.small.form label {
font-size: 1em;
}
/* Large */
.ui.large.form {
font-size: 1.125em;
}
.ui.large.form label {
font-weight: bold;
}

327
components/semantic/src/collections/grid.css

@ -1,327 +0,0 @@
/*
* # Semantic Grid
* http://github.com/quirkyinc/semantic
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
* Released: May 6 2013
*/
/*******************************
Grid
*******************************/
.ui.grid {
width: 100%;
display: block;
text-align: center;
font-size: 0em;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
.ui.grid:after,
.ui.row:after {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
/*-------------------
Columns
--------------------*/
.ui.grid > .column,
.ui.grid > .row > .column {
display: inline-block;
text-align: left;
font-size: 1rem;
padding-left: 1.33%;
padding-right: 1.33%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
vertical-align: top;
}
/*-------------------
Rows
--------------------*/
.ui.grid > .row {
display: block;
width: 100%;
}
.ui.grid > .row {
margin-top: 0.5rem;
padding-top: 0.5rem;
}
.ui.grid > .row:first-child {
padding-top: 0rem;
margin-top: 0rem;
}
/*-------------------
Content
--------------------*/
.ui.grid > .row > img,
.ui.grid > .row > .column > img {
max-width: 100%;
}
/*******************************
Variations
*******************************/
/*-------------------
Page
--------------------*/
.ui.page.grid {
padding: 0% 5%;
}
/*-------------------
Responsive
--------------------*/
@media only screen and (max-width : 1000px) {
.ui.responsive.grid {
padding: 0% 5.55%;
}
.ui.responsive.grid > .column,
.ui.responsive.grid > .row > .column {
}
}
@media only screen and (min-width : 1000px) {
.ui.responsive.grid {
padding: 0% 8%;
}
.ui.responsive.grid > .column,
.ui.responsive.grid > .row > .column {
}
}
@media only screen and (min-width : 1500px) {
.ui.responsive.grid {
padding: 0% 20%;
}
.ui.responsive.grid > .column,
.ui.responsive.grid > .row > .column {
}
}
@media only screen and (min-width : 1750px) {
.ui.responsive.grid {
padding: 0% 30%;
}
.ui.responsive.grid > .column,
.ui.responsive.grid > .row > .column {
}
}
@media only screen and (min-width : 2000px) {
.ui.responsive.grid {
padding: 0% 35%;
}
.ui.responsive.grid > .column,
.ui.responsive.grid > .row > .column {
}
}
/*-------------------
Column Width
--------------------*/
/* Sizing Combinations */
.ui.grid .one.wide.column {
width: 8.3333%;
}
.ui.grid .two.wide.column {
width: 16.66667%;
}
.ui.grid .three.wide.column {
width: 25%;
}
.ui.grid .four.wide.column {
width: 33.3333%;
}
.ui.grid .five.wide.column {
width: 41.6666%;
}
.ui.grid .six.wide.column {
width: 50%;
}
.ui.grid .seven.wide.column {
width: 58.3333%;
}
.ui.grid .eight.wide.column {
width: 66.6666%;
}
.ui.grid .nine.wide.column {
width: 75%;
}
.ui.grid .ten.wide.column {
width: 83.3333%;
}
.ui.grid .eleven.wide.column {
width: 91.666%;
}
.ui.grid .twelve.wide.column {
width: 100%;
}
/*-------------------
Column Count
--------------------*/
/* Standard */
.ui.grid > .column,
.ui.grid > .row > .column {
width: 8.3333%;
}
/* Assume full width with one column */
.ui.grid > .column:only-child,
.ui.grid > .row > .column:only-child {
width: 100%;
}
.ui.two.column.grid .column {
width: 50%;
}
.ui.three.column.grid .column {
width: 33.3333%;
}
.ui.four.column.grid .column {
width: 25%;
}
.ui.five.column.grid .column {
width: 20%;
}
.ui.six.column.grid .column {
width: 16.66667%;
}
.ui.seven.column.grid .column {
width: 14.2857%;
}
.ui.eight.column.grid .column {
width: 12.5%;
}
.ui.nine.column.grid .column {
width: 11.1111%;
}
.ui.ten.column.grid .column {
width: 10%;
}
.ui.eleven.column.grid .column {
width: 9.0909%;
}
/*-------------------
Fitted
--------------------*/
.ui.fitted.grid {
padding: 0%;
}
.ui.fitted.row {
padding-top: 0%
}
.ui.fitted.grid .column,
.ui.grid .fitted.column {
padding-left: 0%;
padding-right: 0%;
}
/*----------------------
"Floated"
-----------------------*/
.ui.grid .left.aligned.column {
float: left;
}
.ui.grid .right.aligned.column {
float: right;
}
/*----------------------
Vertically Centered
-----------------------*/
/* Vertical Centered */
.ui.aligned.grid,
.ui.grid > .aligned.row {
display: table;
width: 100%;
}
.ui.aligned.grid > .row {
display: table-row;
}
.ui.aligned.grid .column,
.ui.grid .aligned.row .column {
display: table-cell;
}
.ui.top.aligned.grid .column,
.ui.grid .top.aligned.column,
.ui.grid > .top.aligned.row .column {
vertical-align: top;
}
.ui.middle.aligned.grid .column,
.ui.grid .middle.aligned.column,
.ui.grid > .middle.aligned.row .column {
vertical-align: middle;
}
.ui.bottom.aligned.grid .column,
.ui.grid .bottom.aligned.column,
.ui.grid > .bottom.aligned.row .column {
vertical-align: bottom;
}
/*-------------------
Folding
--------------------*/
@media only screen and (max-width : 1000px) {
.ui.folding.grid {
display: block !important;
}
.ui.folding.grid .column {
display: block !important;
width: 100% !important;
padding: 0% !important;
}
}

375
components/semantic/src/collections/items.css

@ -1,375 +0,0 @@
/*******************************
UI Items (Views)
*******************************/
/*--------------
Sizing
---------------*/
.ui.items > .item {
float: left;
display: block;
width: 100%;
margin: 0%;
font-size: 1em;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
/* Force Clearing */
.ui.items:after {
display: block;
content: ' ';
height: 0px;
clear: both;
overflow: hidden;
visibility: hidden;
}
.ui.two.items {
margin-left: -1%;
margin-right: -1%;
}
.ui.two.items > .item {
width: 48%;
margin-left: 1%;
margin-right: 1%;
}
.ui.two.items > .item:nth-child(2n+1) {
clear: left;
}
.ui.three.items {
margin-left: -1%;
margin-right: -1%;
}
.ui.three.items > .item {
width: 31.333%;
margin-left: 1%;
margin-right: 1%;
}
.ui.three.items > .item:nth-child(3n+1) {
clear: left;
}
.ui.four.items {
margin-left: -0.5%;
margin-right: -0.5%;
}
.ui.four.items > .item {
width: 24%;
margin-left: 0.5%;
margin-right: 0.5%;
}
.ui.four.items > .item:nth-child(4n+1) {
clear: left;
}
.ui.five.items {
margin-left: -0.5%;
margin-right: -0.5%;
}
.ui.five.items > .item {
width: 19%;
margin-left: 0.5%;
margin-right: 0.5%;
}
.ui.five.items > .item:nth-child(5n+1) {
clear: left;
}
.ui.six.items {
margin-left: -0.5%;
margin-right: -0.5%;
}
.ui.six.items > .item {
width: 15.66%;
margin-left: 0.5%;
margin-right: 0.5%;
}
.ui.six.items > .item:nth-child(6n+1) {
clear: left;
}
.ui.seven.items {
margin-left: -0.5%;
margin-right: -0.5%;
}
.ui.seven.items > .item {
width: 13.28%;
margin-left: 0.5%;
margin-right: 0.5%;
font-size: 11px;
}
.ui.seven.items > .item:nth-child(7n+1) {
clear: left;
}
.ui.eight.items {
margin-left: -0.25%;
margin-right: -0.25%;
}
.ui.eight.items > .item {
width: 12.0%;
margin-left: 0.25%;
margin-right: 0.25%;
font-size: 11px;
}
.ui.eight.items > .item:nth-child(8n+1) {
clear: left;
}
.ui.nine.items {
margin-left: -0.25%;
margin-right: -0.25%;
}
.ui.nine.items > .item {
width: 10.61%;
margin-left: 0.25%;
margin-right: 0.25%;
font-size: 10px;
}
.ui.nine.items > .item:nth-child(9n+1) {
clear: left;
}
.ui.ten.items {
margin-left: -0.2%;
margin-right: -0.2%;
}
.ui.ten.items > .item {
width: 9.6%;
margin-left: 0.2%;
margin-right: 0.2%;
font-size: 10px;
}
.ui.ten.items > .item:nth-child(10n+1) {
clear: left;
}
.ui.eleven.items {
margin-left: -0.2%;
margin-right: -0.2%;
}
.ui.eleven.items > .item {
width: 8.69%;
margin-left: 0.2%;
margin-right: 0.2%;
font-size: 9px;
}
.ui.eleven.items > .item:nth-child(11n+1) {
clear: left;
}
.ui.twelve.items {
margin-left: -0.1%;
margin-right: -0.1%;
}
.ui.twelve.items > .item {
width: 8.1333%;
margin-left: 0.1%;
margin-right: 0.1%;
font-size: 9px;
}
.ui.twelve.items > .item:nth-child(12n+1) {
clear: left;
}
/*******************************
Items
*******************************/
.ui.items {
margin-top: 15px;
margin-bottom: 15px;
padding: 0px;
}
.ui.items > .item,
.ui.items > .item > .image,
.ui.items > .item > .image .overlay,
.ui.items > .item > .content,
.ui.items > .item > .extra {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
.ui.items > .item {
display: block;
position: relative;
margin: 0.5em 0em;
min-height: 3em;
background-color: #FFFFFF;
-moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
-webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
-moz-border-radius: 0.33em;
-webkit-border-radius: 0.33em;
border-radius: 0.33em;
padding: 0.5em;
}
.ui.items > .item > .image {
background-color: rgba(0, 0, 0, 0.05);
display: table-cell;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
.ui.items > .item > .image > a,
.ui.items > .item > .image > img {
position: relative;
display: block;
width: 100%;
overflow: hidden;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
}
.ui.items > .item > .image > a:after {
position: absolute;
display: block;
content: '';
z-index: 2;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
-webkit-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2) inset;
-moz-box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2) inset;
box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.2) inset;
}
.ui.items > .item > .image > .overlay {
position: absolute;
bottom: 0px;
left: 0px;
background: transparent -webkit-linear-gradient(rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.5) 100%);
background: transparent -moz-linear-gradient(rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.5) 100%);
background: transparent -o-linear-gradient(rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.5) 100%);
background: transparent -ms-linear-gradient(rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.5) 100%);
background: transparent linear-gradient(rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.5) 100%);
padding: 3% 2.5%;
width: 100%;
font-size: 1em;
font-weight: bold;
color: #FFFFFF;
text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.6);
}
.ui.items > .item > .image > .overlay i {
font-size: 1.3em;
font-weight: bold;
}
/* Content */
.ui.items > .item > .content {
padding: 4% 1% 6%;
color: #888888;
}
.ui.items > .item > .content > .name,
.ui.items > .item > .content > .title {
display: block;
margin-bottom: 0.3em;
font-size: 1.25em;
font-weight: bold;
}
.ui.items > .item > .content p {
line-height: 1.33;
margin: 0% 0% 5%;
}
.ui.items > .item > .content :last-child {
margin-bottom: 0%;
}
/* Optional Content */
.ui.items > .item > .extra {
color: #C6C7C9;
padding: 0% 1% 1%;
}
.ui.items > .item > .extra img {
display: inline-block;
vertical-align: middle;
}
.ui.items > .item .avatar {
display: inline-block;
width: 5.5%;
min-width: 15px;
margin-right: 0.2em;
vertical-align: middle;
}
/*******************************
Table Items
*******************************/
.ui.horizontal.items > .item,
.ui.items > .horizontal.item {
display: table;
}
/* prevents reflow bug in chrome by targeting webkit browser */
@media screen and (-webkit-min-device-pixel-ratio: 0) {
.ui.items > .item {
display: block;
}
}
.ui.horizontal.items > .item > .image
.ui.items > .horizontal.item > .image {
display: table-cell;
width: 50%;
}
.ui.horizontal.items > .item > .image + .content,
.ui.items > .horizontal.item > .image + .content {
width: 50%;
display: table-cell;
}
.ui.horizontal.items > .item > .content,
.ui.items > .horizontal.item > .content {
padding: 1% 1.7% 11% 3%;
vertical-align: top;
}
.ui.horizontal.items > .item > .extra,
.ui.items > .horizontal.item > .extra {
position: absolute;
padding: 0%;
bottom: 7%;
left: 3%;
width: 94%;
}
.ui.horizontal.items > .item > .image + .content + .extra,
.ui.items > .horizontal.item > .image + .content + .extra {
bottom: 7%;
left: 53%;
width: 44%;
}
.ui.horizontal.items > .item .avatar,
.ui.items > .horizontal.item .avatar {
width: 11.5%;
}
.ui.items > .item .avatar {
max-width: 25px;
}

1046
components/semantic/src/collections/menu.css

File diff suppressed because it is too large

260
components/semantic/src/collections/message.css

@ -1,260 +0,0 @@
/*
* # Semantic Text Block - Flat
* http://github.com/quirkyinc/semantic
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
* Released: April 29 2013
*/
/*******************************
Text Block
*******************************/
.ui.message {
position: relative;
min-height: 18px;
margin: 1em 0em;
height: auto;
background-color: rgba(0, 0, 0, 0.04);
padding: 1em;
line-height: 1.33;
color: rgba(0, 0, 0, 0.6);
-webkit-border-radius: 4px 4px 4px 4px;
-moz-border-radius: 4px 4px 4px 4px;
border-radius: 4px 4px 4px 4px;
}
/*--------------
Content
---------------*/
/* block with headers */
.ui.message .header {
font-size: 1.33em;
font-weight: bold;
}
/* block with paragraphs */
.ui.message p {
opacity: 0.85;
margin: 0.2em 0em;
}
.ui.message p:first-child {
margin-top: 0em;
}
/* block with child list */
.ui.message ul.list {
opacity: 0.85;
list-style-position: inside;
margin: 0.2em 0em;
padding: 0em;
}
.ui.message ul.list li {
position: relative;
list-style-type: none;
font-style: italic;
margin: 0em 0em 0em 1em;
padding: 0em;
}
.ui.message ul.list li:before {
position: absolute;
content: '\2022';
top: -0.05em;
left: -0.8em;
height: 100%;
vertical-align: baseline;
opacity: 0.5;
}
.ui.message ul.list li:first-child {
margin-top: 0px;
}
/* dismissable block */
.ui.message > .icon.close {
cursor: pointer;
position: absolute;
top: 1em;
right: 0.5em;
opacity: 0.7;
-webkit-transition:
opacity 0.1s linear
;
-moz-transition:
opacity 0.1s linear
;
-o-transition:
opacity 0.1s linear
;
-ms-transition:
opacity 0.1s linear
;
transition:
opacity 0.1s linear
;
}
.ui.message > .icon.close:hover {
opacity: 1;
}
/*******************************
States
*******************************/
.ui.message.visible,
.ui.header.visible {
display: block !important;
}
.ui.message.hidden,
.ui.header.hidden {
display: none;
}
/*******************************
Variations
*******************************/
/*--------------
Compact
---------------*/
.ui.compact.message {
display: inline-block;
}
/*--------------
Attached
---------------*/
.ui.attached.message {
margin-bottom: 0px;
-webkit-border-radius: 4px 4px 0px 0px;
-moz-border-radius: 4px 4px 0px 0px;
border-radius: 4px 4px 0px 0px;
-webkit-box-shadow:
0px 0px 0px 1px #DDDDDD
;
-moz-box-shadow:
0px 0px 0px 1px #DDDDDD
;
box-shadow:
0px 0px 0px 1px #DDDDDD
;
}
.ui.bottom.attached.message {
margin-top: 0px;
-webkit-border-radius: 0px 0px 4px 4px;
-moz-border-radius: 0px 0px 4px 4px;
border-radius: 0px 0px 4px 4px;
-webkit-box-shadow:
0px 0px 0px 1px #DDDDDD
;
-moz-box-shadow:
0px 0px 0px 1px #DDDDDD
;
box-shadow:
0px 0px 0px 1px #DDDDDD
;
}
/*--------------
Icon
---------------*/
.ui.icon.message > .icon {
display: table-cell;
vertical-align: middle;
font-size: 3.8em;
padding-right: 0.4em;
opacity: 0.2;
}
.ui.icon.message > .content {
display: table-cell;
vertical-align: middle;
}
/*--------------
Colors
---------------*/
.ui.black.message {
background-color: #333333;
color: rgba(255, 255, 255, 0.95);
}
/*--------------
Types
---------------*/
.ui.blue.message,
.ui.info.message {
border-color: #75C9E9;
background-color: #E9F9FF;
color: #1D6582;
}
/* Success Text Block */
.ui.green.message,
.ui.success.message,
.ui.positive.message {
background-color: #EEFFE9;
color: #119000;
border-color: #2FCB05;
}
/* Warning Text Block */
.ui.yellow.message,
.ui.warning.message {
background-color: #F6F3D5;
border-color: #CBB105;
color: #AF9801;
}
/* Error Text Block */
.ui.red.message,
.ui.error.message,
.ui.negative.message {
background-color: #F1D7D7;
color: #AD0000;
border-color: #B06C6C;
}
/*--------------
Sizes
---------------*/
.ui.small.message {
font-size: 0.875em;
}
.ui.message {
font-size: 1em;
}
.ui.large.message {
font-size: 1.125em;
}
.ui.huge.message {
font-size: 1.5em;
}
.ui.massive.message {
font-size: 2px;
}

331
components/semantic/src/collections/table.css

@ -1,331 +0,0 @@
/*
* # Semantic Table - Flat
* http://github.com/quirkyinc/semantic
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
* Released: April 24 2013
*/
/*******************************
Table
*******************************/
/* Prototype */
.ui.table {
width: 100%;
background-color: #FFFFFF;
border-collapse: collapse;
color: #444444;
color: rgba(0, 0, 0, 0.75);
border: 1px solid #DDDDDD;
border-bottom-width: 3px;
}
.ui.table tr,
.ui.table td {
border-collapse: collapse;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
-webkit-transition: all 0.1s ease-out;
-moz-transition: all 0.1s ease-out;
-o-transition: all 0.1s ease-out;
-ms-transition: all 0.1s ease-out;
transition: all 0.1s ease-out;
}
.ui.table thead {
border-bottom: 2px solid rgba(0, 0, 0, 0.1);
background-color: rgba(50, 50, 50, 0.1);
}
.ui.table th {
cursor: auto;
text-align: left;
font-weight: bold;
color: rgba(80, 80, 80, 0.85);
padding: 0.5em 0.7em;
vertical-align: middle;
}
.ui.table tfoot th {
font-weight: normal;
font-style: italic;
color: rgba(0, 0, 0, 0.8);
}
.ui.table td {
padding: 0.40em 0.7em;
vertical-align: middle;
}
.ui.table tfoot th {
background-color: #FFFFFF;
}
.ui.table tfoot {
border-top: 1px dotted rgba(0, 0, 0, 0.1);
}
/* Table Striping */
.ui.table tbody tr:nth-child(2n) {
background-color: rgba(0, 0, 0, 0.03);
}
/* Icons */
.ui.table > .icon {
vertical-align: baseline;
}
.ui.table > .icon:only-child {
margin: 0em;
}
/*******************************
States
*******************************/
/*--------------
Hover
---------------*/
/* Grid */
.ui.celled.table tr:hover td {
background-color: rgba(0, 0, 0, 0.02);
color: rgba(0, 0, 0, 1);
}
/* Sortable */
.ui.sortable.table thead th:hover {
background-image: none;
background-color: rgba(0, 0, 0, 0.04);
color: #333333;
}
.ui.sortable.table th.disabled:hover {
cursor: auto;
background-color: rgba(0, 0, 0, 0.1);
text-align: left;
font-weight: bold;
color: #333333;
color: rgba(0, 0, 0, 0.8);
}
/*--------------
Positive
---------------*/
.ui.table tr.positive td,
.ui.table td.positive {
background-color: #F2F8F0 !important;
color: #119000;
-moz-box-shadow: 0px 0px 1px 0px #3FF63B inset;
-webkit-box-shadow: 0px 0px 1px 0px #3FF63B inset;
box-shadow: 0px 0px 1px 0px #3FF63B inset;
/* border-color: #2FCB05 !important; */
}
.ui.celled.table tr.positive:hover td,
.ui.celled.table tr:hover td.positive,
.ui.table tr.positive:hover td,
.ui.table td:hover.positive,
.ui.table th:hover.positive {
background-color: #ECF5E9 !important;
color: #119000;
}
/*--------------
Negative
---------------*/
.ui.table tr.negative td,
.ui.table td.negative {
background-color: #F9F4F4;
color: #CD2929;
}
.ui.celled.table tr.negative:hover td,
.ui.celled.table tr:hover td.negative,
.ui.table tr.negative:hover td,
.ui.table td:hover.negative,
.ui.table th:hover.negative {
background-color: #F2E8E8 !important;
color: #CD2929;
}
/*--------------
Error
---------------*/
.ui.table tr.error td,
.ui.table td.error,
.ui.table th.error {
background-color: #F9F4F4 !important;
color: #CD2929;
-moz-box-shadow: 0px 0px 1px 0px #F3A2A2 inset;
-webkit-box-shadow: 0px 0px 1px 0px #F3A2A2 inset;
box-shadow: 0px 0px 1px 0px #F3A2A2 inset;
}
.ui.celled.table tr.error:hover td,
.ui.celled.table tr:hover td.error,
.ui.table tr.error:hover td,
.ui.table td:hover.error,
.ui.table th:hover.error {
background-color: #F2E8E8 !important;
color: #CD2929;
}
/*--------------
Warning
---------------*/
.ui.table tr.warning td,
.ui.table td.warning,
.ui.table th.warning {
background-color: #FBF6E9;
/* border-color: #CBB105 !important; */
color: #7D6C00;
-moz-box-shadow: 0px 0px 1px 0px #FFE569 inset;
-webkit-box-shadow: 0px 0px 1px 0px #FFE569 inset;
box-shadow: 0px 0px 1px 0px #FFE569 inset;
}
.ui.celled.table tr.warning:hover td,
.ui.celled.table tr:hover td.warning,
.ui.table tr.warning:hover td,
.ui.table td:hover.warning,
.ui.table th:hover.warning {
background-color: #F3EDDC !important;
color: #7D6C00;
}
/*--------------
Active
---------------*/
.ui.table tr.active td,
.ui.table tr td.active {
background-color: #F0F0F0 !important;
color: rgba(50, 50, 50, 0.9);
/* border-color: rgba(0, 0, 0, 0.15) !important; */
}
/*--------------
Disabled
---------------*/
.ui.table tr.disabled td,
.ui.table tr td.disabled,
.ui.table tr.disabled:hover td,
.ui.table tr:hover td.disabled {
background-color: #FAFAFA !important;
color: rgba(150, 150, 150, 0.5);
}
/*******************************
Variations
*******************************/
/*--------------
Grid
---------------*/
.ui.celled.table {
color: rgba(0, 0, 0, 0.55);
}
.ui.celled.table tbody tr,
.ui.celled.table tfoot tr {
border: none;
}
.ui.celled.table th {
border: 1px solid #E0E0E0;
}
.ui.celled.table tbody td {
border: 1px solid #E0E0E0;
}
/* Sortable Table */
.ui.sortable.table thead th {
cursor: pointer;
color: #555555;
vertical-align: top;
}
.ui.sortable.table thead th.sorted,
.ui.sortable.table thead th.sorted:hover {
background-color: rgba(0, 0, 0, 0.8);
color: #EEEEEE;
}
.ui.sortable.table thead th:after {
display: inline-block;
content: '';
width: 1em;
opacity: 0.5;
margin: 0px 0px 0px 8px;
font-size: 18px;
line-height: 12px;
font-family: 'Icons';
font-style: normal;
font-weight: normal;
text-decoration: inherit;
vertical-align: middle;
vertical-align: calc();
}
.ui.sortable.table thead th.ascending:after {
content: '\25b4';
}
.ui.sortable.table thead th.descending:after {
content: '\25be';
}
/*--------------
Collapsing
---------------*/
.ui.collapsing.table {
width: auto;
}
/*--------------
Padded
---------------*/
.ui.padded.table th,
.ui.padded.table td {
padding: 0.8em 1em;
}
.ui.compact.table th {
padding: 0.3em 0.5em;
}
.ui.compact.table td {
padding: 0.2em 0.5em;
}
/*--------------
Sizes
---------------*/
/* Small */
.ui.small.table {
font-size: 14px;
}
/* Standard */
.ui.table {
font-size: 16px;
}
/* Large */
.ui.large.table {
font-size: 18px;
}

73
components/semantic/src/elements/banner.css

@ -1,73 +0,0 @@
/*******************************
Banner
*******************************/
.ui.banner {
position: relative;
display: inline-block;
vertical-align: middle;
line-height: 1;
margin-left: 6px;
padding: 8px 10px;
border: 1px solid #D4DBDE;
background-color: #ECF6FB;
text-align: center;
font-size: 10px;
color: #999999;
color: rgba(0, 0, 0, 0.5);
}
.ui.banner b {
color: #666666;
}
.ui.banner:after {
position: absolute;
top: 50%;
margin-top: -6px;
font-size: 12px;
}
.ui.banner:after,
.ui.banner.left:after {
color: #ECF6FB;
left: -7px;
right: auto;
content: '\25C0';
text-shadow: -2px 0px 0px #D4DBDE;
}
.ui.banner.right {
margin-right: 6px;
}
.ui.banner.right:after {
left: auto;
right: -7px;
content: '\25B6';
text-shadow: 2px 0px 0px #D4DBDE;
}
/* Banner Icons */
.ui.banner i {
margin-right: 0.5em;
vertical-align: baseline;
}
/* Banner Colors */
.ui.banner.grey {
border-color: #D6D6D6;
background-color: #F3F3F3;
}
.ui.banner.grey:after,
.ui.banner.grey.left:after {
color: #F3F3F3;
text-shadow: -2px 0px 0px #D6D6D6;
}
.ui.banner.grey.right:after {
color: #F3F3F3;
text-shadow: 2px 0px 0px #D6D6D6;
}
.ui.banner.big {
font-size: 12px;
padding: 11px 15px;
}

260
components/semantic/src/elements/block.css

@ -1,260 +0,0 @@
/*
* # Semantic Text Block - Flat
* http://github.com/quirkyinc/semantic
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
* Released: April 29 2013
*/
/*******************************
Text Block
*******************************/
.ui.message {
position: relative;
min-height: 18px;
margin: 1em 0em;
height: auto;
background-color: rgba(0, 0, 0, 0.04);
padding: 1em;
line-height: 1.33;
color: rgba(0, 0, 0, 0.6);
-webkit-border-radius: 4px 4px 4px 4px;
-moz-border-radius: 4px 4px 4px 4px;
border-radius: 4px 4px 4px 4px;
}
/*--------------
Content
---------------*/
/* block with headers */
.ui.message .header {
font-size: 1.33em;
font-weight: bold;
}
/* block with paragraphs */
.ui.message p {
opacity: 0.85;
margin: 0.2em 0em;
}
.ui.message p:first-child {
margin-top: 0em;
}
/* block with child list */
.ui.message ul.list {
opacity: 0.85;
list-style-position: inside;
margin: 0.2em 0em;
padding: 0em;
}
.ui.message ul.list li {
position: relative;
list-style-type: none;
font-style: italic;
margin: 0em 0em 0em 1em;
padding: 0em;
}
.ui.message ul.list li:before {
position: absolute;
content: '\2022';
top: -0.05em;
left: -0.8em;
height: 100%;
vertical-align: baseline;
opacity: 0.5;
}
.ui.message ul.list li:first-child {
margin-top: 0px;
}
/* dismissable block */
.ui.message > .icon.close {
cursor: pointer;
position: absolute;
top: 1em;
right: 0.5em;
opacity: 0.7;
-webkit-transition:
opacity 0.1s linear
;
-moz-transition:
opacity 0.1s linear
;
-o-transition:
opacity 0.1s linear
;
-ms-transition:
opacity 0.1s linear
;
transition:
opacity 0.1s linear
;
}
.ui.message > .icon.close:hover {
opacity: 1;
}
/*******************************
States
*******************************/
.ui.message.visible,
.ui.header.visible {
display: block !important;
}
.ui.message.hidden,
.ui.header.hidden {
display: none;
}
/*******************************
Variations
*******************************/
/*--------------
Compact
---------------*/
.ui.compact.message {
display: inline-block;
}
/*--------------
Attached
---------------*/
.ui.attached.message {
margin-bottom: 0px;
-webkit-border-radius: 4px 4px 0px 0px;
-moz-border-radius: 4px 4px 0px 0px;
border-radius: 4px 4px 0px 0px;
-webkit-box-shadow:
0px 0px 0px 1px #DDDDDD
;
-moz-box-shadow:
0px 0px 0px 1px #DDDDDD
;
box-shadow:
0px 0px 0px 1px #DDDDDD
;
}
.ui.bottom.attached.message {
margin-top: 0px;
-webkit-border-radius: 0px 0px 4px 4px;
-moz-border-radius: 0px 0px 4px 4px;
border-radius: 0px 0px 4px 4px;
-webkit-box-shadow:
0px 0px 0px 1px #DDDDDD
;
-moz-box-shadow:
0px 0px 0px 1px #DDDDDD
;
box-shadow:
0px 0px 0px 1px #DDDDDD
;
}
/*--------------
Icon
---------------*/
.ui.icon.message > .icon {
display: table-cell;
vertical-align: middle;
font-size: 3.8em;
padding-right: 0.4em;
opacity: 0.2;
}
.ui.icon.message > .content {
display: table-cell;
vertical-align: middle;
}
/*--------------
Colors
---------------*/
.ui.black.message {
background-color: #333333;
color: rgba(255, 255, 255, 0.95);
}
/*--------------
Types
---------------*/
.ui.blue.message,
.ui.info.message {
border-color: #75C9E9;
background-color: #E9F9FF;
color: #1D6582;
}
/* Success Text Block */
.ui.green.message,
.ui.success.message,
.ui.positive.message {
background-color: #EEFFE9;
color: #119000;
border-color: #2FCB05;
}
/* Warning Text Block */
.ui.yellow.message,
.ui.warning.message {
background-color: #F6F3D5;
border-color: #CBB105;
color: #AF9801;
}
/* Error Text Block */
.ui.red.message,
.ui.error.message,
.ui.negative.message {
background-color: #F1D7D7;
color: #AD0000;
border-color: #B06C6C;
}
/*--------------
Sizes
---------------*/
.ui.small.message {
font-size: 0.875em;
}
.ui.message {
font-size: 1em;
}
.ui.large.message {
font-size: 1.125em;
}
.ui.huge.message {
font-size: 1.5em;
}
.ui.massive.message {
font-size: 2px;
}

987
components/semantic/src/elements/button.css

@ -1,987 +0,0 @@
/*
* # Semantic Button - Flat
* http://github.com/quirkyinc/semantic
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
* Released: April 17 2013
*/
/*******************************
Button
*******************************/
/* Prototype */
.ui.button {
cursor: pointer;
display: inline-block;
vertical-align: middle;
min-height: 1em;
background-color: #F0F0F0;
padding: 0.8em 1.5em;
font-size: 1em;
text-transform: uppercase;
line-height: 1;
font-weight: bold;
font-style: normal;
text-align: center;
color: #7A7A7A;
-webkit-border-radius: 0.3125em;
-moz-border-radius: 0.3125em;
border-radius: 0.3125em;
-webkit-box-shadow:
0em -0.125em 0em rgba(0, 0, 0, 0.1) inset
;
-moz-box-shadow:
0em -0.125em 0em rgba(0, 0, 0, 0.1) inset
;
box-shadow:
0em -0.125em 0em rgba(0, 0, 0, 0.1) inset
;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-webkit-transition:
opacity 0.1s linear,
background 0.1s linear,
box-shadow 0.1s linear
;
-moz-transition:
opacity 0.1s linear,
background 0.1s linear,
box-shadow 0.1s linear
;
-o-transition:
opacity 0.1s linear,
background 0.1s linear,
box-shadow 0.1s linear
;
-ms-transition:
opacity 0.1s linear,
background 0.1s linear,
box-shadow 0.1s linear
;
transition:
opacity 0.1s linear,
background 0.1s linear,
box-shadow 0.1s linear
;
}
/*******************************
States
*******************************/
/*--------------
Hover
---------------*/
.ui.button:hover,
.ui.button.hover {
background-color: #E0E0E0;
}
/*--------------
Down (:active)
---------------*/
/* Down */
.ui.button:active,
.ui.button.down {
background-color: #DDDDDD;
-webkit-box-shadow: 0.125em 0.125em 0.125em 0 rgba(0, 0, 0, 0.1) inset;
-moz-box-shadow: 0.125em 0.125em 0.125em 0 rgba(0, 0, 0, 0.1) inset;
box-shadow: 0.125em 0.125em 0.125em 0 rgba(0, 0, 0, 0.1) inset;
}
/*--------------
Active
---------------*/
.ui.buttons .button.active,
.ui.button.active {
background-color: #E6E6E6;
-webkit-box-shadow:
0em 0.125em 0.125em 0em rgba(0, 0, 0, 0.15) inset
;
-moz-box-shadow:
0em 0.125em 0.125em 0em rgba(0, 0, 0, 0.15) inset
;
box-shadow:
0em 0.125em 0.125em 0em rgba(0, 0, 0, 0.15) inset
;
}
.ui.buttons .button.active,
.ui.buttons .button.active a,
.ui.button.active,
.ui.button.active a {
color: #7A7A7A;
}
.ui.buttons .button.active.hover,
.ui.button.active.hover {
background: #E0E0E0;
-webkit-box-shadow: 0px 0.0625 0.1875em 0em rgba(0, 0, 0, 0.2) inset;
-moz-box-shadow: 0em 0.0625 0.1875em 0em rgba(0, 0, 0, 0.2) inset;
box-shadow: 0em 0.0625 0.1875em 0em rgba(0, 0, 0, 0.2) inset;
}
.ui.buttons .button.active.hover,
.ui.buttons .button.active.hover a,
.ui.button.active.hover,
.ui.button.active.hover a {
background: #DADADA;
color: #555555;
}
/*--------------
Loading
---------------*/
.ui.button.loading,
.ui.button.loading.hover {
position: relative;
cursor: default;
opacity: 0.75;
color: #888888 !important;
background-image: none !important;
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
box-shadow: none !important;
-webkit-transition: all 0s linear;
-moz-transition: all 0s linear;
-o-transition: all 0s linear;
-ms-transition: all 0s linear;
transition: all 0s linear;
}
.ui.button.loading:after {
position: absolute;
top: 0em;
left: 0em;
width: 100%;
height: 100%;
content: '';
background: #EEEEEE url(../images/throbber-tiny.gif) no-repeat 50% 50%;
background-position: 50% 50%;
background-repeat: no-repeat;
-moz-border-radius: 0.3125em;
-webkit-border-radius: 0.3125em;
border-radius: 0.3125em;
}
/* Opposite color loader */
.ui.grey.button.loading,
.ui.button.active.loading {
border-color: #BBBBBB
}
.ui.grey.button.loading:after,
.ui.button.active.loading:after {
background-color: #FAFAFA;
background: url(../images/throbber-tiny.gif) no-repeat 50% 50%;
}
/* resizes */
/* blue */
.ui.huge.button.loading:after {
background-image: url(../images/throbber-small.gif);
}
.ui.massive.buttons .button.loading:after,
.ui.gigantic.buttons .button.loading:after,
.ui.massive.button.loading:after,
.ui.gigantic.button.loading:after {
background-image: url(../images/throbber-medium.gif);
}
/* grey */
.ui.huge.grey.button.loading:after,
.ui.huge.button.loading.active:after {
background-image: url(../images/throbber-small.gif);
}
.ui.massive.grey.buttons .button.loading:after,
.ui.gigantic.grey.buttons .button.loading:after,
.ui.massive.grey.button.loading:after,
.ui.gigantic.grey.button.loading:after,
.ui.massive.grey.buttons .button.loading.active:after,
.ui.gigantic.grey.buttons .button.loading.active:after,
.ui.massive.button.loading.active:after,
.ui.gigantic.button.loading.active:after {
background-image: url(../images/throbber-medium.gif);
}
/*--------------
Error
---------------*/
.ui.buttons .button.error,
.ui.buttons .button.error.hover,
.ui.buttons .button.error.down,
.ui.button.error,
.ui.button.error.hover,
.ui.button.error.down {
cursor: default;
position: relative;
background-color: #EE141D;
color: #FFFFFF;
text-shadow: none;
-webkit-transition: all 0s linear;
-moz-transition: all 0s linear;
-o-transition: all 0s linear;
-ms-transition: all 0s linear;
transition: all 0s linear;
}
.ui.button.success,
.ui.button.success.hover,
.ui.button.success.down {
background-color: #59B94B;
color: #FFFFFF;
border-color: #588D0F;
}
/* Disabled State */
.ui.button.disabled,
.ui.button.disabled.hover,
.ui.button.disabled.down {
cursor: default;
color: #DDDDDD;
background-color: rgba(50, 50, 50, 0.05) !important;
background-image: none !important;
text-shadow: none !important;
-webkit-box-shadow: none !important;
-moz-box-shadow: none !important;
box-shadow: none !important;
}
/*******************************
Variations
*******************************/
/*--- Black ---*/
.ui.buttons.black .button,
.ui.button.black {
background-color: #5C6166;
color: #FFFFFF;
}
.ui.buttons.black .button.hover,
.ui.buttons.black .button:hover,
.ui.button.black.hover,
.ui.button.black:hover {
background-color: #888888;
color: #FFFFFF;
}
.ui.buttons.black .button.down,
.ui.buttons.black .button:active,
.ui.button.black.down,
.ui.button.black:active {
background-color: #888888;
color: #FFFFFF;
}
/*--- Green ---*/
.ui.buttons.green .button,
.ui.button.green {
background-color: #A1CF64;
color: #FFFFFF;
}
.ui.buttons.green .button.hover,
.ui.buttons.green .button:hover,
.ui.button.green.hover,
.ui.button.green:hover {
background-color: #89B84C;
color: #FFFFFF;
}
.ui.buttons.green .button.down,
.ui.buttons.green .button:active,
.ui.button.green.down,
.ui.button.green:active {
background-color: #89B84C;
color: #FFFFFF;
}
/*--- Red ---*/
.ui.buttons.red .button,
.ui.button.red {
background-color: #EF4D6D;
color: #FFFFFF;
}
.ui.buttons.red .button.hover,
.ui.buttons.red .button:hover,
.ui.button.red.hover,
.ui.button.red:hover {
background-color: #DE3859;
color: #FFFFFF;
}
.ui.buttons.red .button.down,
.ui.buttons.red .button:active,
.ui.button.red.down,
.ui.button.red:active {
background-color: #DE3859;
color: #FFFFFF;
}
/*--- Blue ---*/
.ui.buttons.blue .button,
.ui.button.blue {
background-color: #6ECFF5;
color: #FFFFFF;
}
.ui.buttons.blue .button.hover,
.ui.buttons.blue .button:hover,
.ui.button.blue.hover,
.ui.button.blue:hover {
background-color: #1AB8F3;
color: #FFFFFF;
}
.ui.buttons.blue .button.down,
.ui.buttons.blue .button:active,
.ui.button.blue.down,
.ui.button.blue:active {
background-color: #1AB8F3;
color: #FFFFFF;
}
/*--- Purple ---*/
.ui.buttons.purple .button,
.ui.button.purple {
background-color: #564F8A;
color: #FFFFFF;
}
.ui.buttons.purple .button.hover,
.ui.buttons.purple .button:hover,
.ui.button.purple.hover,
.ui.button.purple:hover {
background-color: #3E3773;
color: #FFFFFF;
}
.ui.buttons.purple .button.down,
.ui.buttons.purple .button:active,
.ui.button.purple.down,
.ui.button.purple:active {
background-color: #3E3773;
color: #FFFFFF;
}
/*--- Teal ---*/
.ui.buttons.teal .button,
.ui.button.teal {
background-color: #00B5AD;
color: #FFFFFF;
}
.ui.buttons.teal .button.hover,
.ui.buttons.teal .button:hover,
.ui.button.teal.hover,
.ui.button.teal:hover {
background-color: #009A93;
color: #FFFFFF;
}
.ui.buttons.teal .button.down,
.ui.buttons.teal .button:active,
.ui.button.teal.down,
.ui.button.teal:active {
background-color: #009A93;
color: #FFFFFF;
}
/*---------------
Positive
----------------*/
.ui.buttons.positive .button,
.ui.button.positive {
background-color: #A1CF64;
color: #FFFFFF;
}
.ui.buttons.positive .button.hover,
.ui.buttons.positive .button:hover,
.ui.button.positive.hover,
.ui.button.positive:hover {
background-color: #7DDC5C;
color: #FFFFFF;
}
.ui.buttons.positive .button.down,
.ui.buttons.positive .button:active,
.ui.button.positive.down,
.ui.button.positive:active {
background-color: #7DDC5C;
color: #FFFFFF;
}
/*---------------
Negative
----------------*/
.ui.buttons.negative .button,
.ui.button.negative {
background-color: #EF4D6D;
color: #FFFFFF;
}
.ui.buttons.negative .button.hover,
.ui.buttons.negative .button:hover,
.ui.button.negative.hover,
.ui.button.negative:hover {
background-color: #DE3859;
color: #FFFFFF;
}
.ui.buttons.negative .button.down,
.ui.buttons.negative .button:active,
.ui.button.negative.down,
.ui.button.negative:active {
background-color: #DE3859;
color: #FFFFFF;
}
/*-------------------
Sizes
--------------------*/
.ui.buttons.mini .button,
.ui.mini.button {
font-size: 0.5625em;
}
.ui.tiny.buttons .button,
.ui.tiny.button {
font-size: 0.625em;
}
.ui.small.buttons .button,
.ui.small.button {
font-size: 0.75em;
}
.ui.buttons .button,
.ui.button {
font-size: 1em;
}
.ui.large.buttons .button,
.ui.large.button {
font-size: 1.125em;
}
.ui.big.buttons .button,
.ui.big.button {
font-size: 1.25em;
}
.ui.huge.buttons .button,
.ui.huge.button {
font-size: 1.375em;
}
.ui.massive.buttons .button,
.ui.massive.button {
font-size: 1.5em;
font-weight: bold;
}
.ui.gigantic.buttons .button,
.ui.gigantic.button {
font-size: 2em;
font-weight: bold;
}
/*--------------
Containing Icon
---------------*/
.ui.button i {
line-height: 1;
margin-right: 0.2em;
}
/* left arrow icons */
.ui.button i.icon.left,
.ui.button i.icon.left-open,
.ui.button i.icon.left-dir {
margin: 0em 0.2em 0em;
}
/* right positioned icons */
.ui.button i.icon.up,
.ui.button i.icon.up-open,
.ui.button i.icon.up-dir,
.ui.button i.icon.down,
.ui.button i.icon.down-open,
.ui.button i.icon.down-dir,
.ui.button i.icon.right,
.ui.button i.icon.right-open,
.ui.button i.icon.right-dir {
margin: 0em;
}
/*--------------
Icon Only
---------------*/
.ui.icon.buttons .button,
.ui.icon.button {
padding: 0.75em;
}
.ui.icon.buttons .button i,
.ui.icon.button i {
margin: 0em;
vertical-align: top;
}
/*--------------
Labeled Icon
---------------*/
.ui.labeled.icon.buttons .button .icon,
.ui.labeled.icon.button .icon {
display: block;
font-size: 1.5em;
margin: 0em auto 0.3em;
}
/*--------------
Toggle
---------------*/
/* Toggle (Modifies active state to give affordances) */
.ui.toggle.buttons .button.active,
.ui.buttons .button.toggle.active,
.ui.button.toggle.active {
background-color: #BBF0A9;
color: #1C8C21;
}
.ui.buttons.toggle .ui.button.active.hover,
.ui.buttons .ui.button.toggle.active.hover,
.ui.button.toggle.active.hover {
color: #21A627;
background-color: #BBF0A9;
-webkit-box-shadow:
0px 0px 4px -2px rgba(0, 0, 0, 0.2) inset
;
-moz-box-shadow:
0px 0px 4px -2px rgba(0, 0, 0, 0.2) inset
;
box-shadow:
0px 0px 4px -2px rgba(0, 0, 0, 0.2) inset
;
}
.ui.button.toggle.active.hover.down {
background-color: #BBF0A9;
color: #21A627;
-webkit-box-shadow: 0px 1px 3px 0px rgba(67, 97, 53, 0.5) inset;
-moz-box-shadow: 0px 1px 3px 0px rgba(67, 97, 53, 0.5) inset;
box-shadow: 0px 1px 3px 0px rgba(67, 97, 53, 0.5) inset;
}
/*--------------
Bubbly
---------------*/
.ui.button.bubbly {
-webkit-border-radius: 1em;
-moz-border-radius: 1em;
border-radius: 1em;
}
/*--------------
Attached
---------------*/
.ui.button.attached {
display: block;
}
.ui.button.attached.top {
border: 1px solid rgba(0, 0, 0, 0.1);
border-bottom: none;
-webkit-border-radius: 0.3125em 0.3125em 0em 0em;
-moz-border-radius: 0.3125em 0.3125em 0em 0em;
border-radius: 0.3125em 0.3125em 0em 0em;
}
.ui.button.attached.bottom {
border: 1px solid rgba(0, 0, 0, 0.1);
border-top: none;
-webkit-border-radius: 0em 0em 0.3125em 0.3125em;
-moz-border-radius: 0em 0em 0.3125em 0.3125em;
border-radius: 0em 0em 0.3125em 0.3125em;
}
.ui.button.attached.left {
display: inline-block;
border-left: none;
padding-right: 0.75em;
text-align: right;
border-right: 1px solid rgba(0, 0, 0, 0.1);
-webkit-border-radius: 0.3125em 0em 0em 0.3125em;
-moz-border-radius: 0.3125em 0em 0em 0.3125em;
border-radius: 0.3125em 0em 0em 0.3125em;
}
.ui.button.attached.right {
display: inline-block;
padding-left: 0.75em;
text-align: left;
border-left: 1px solid rgba(0, 0, 0, 0.1);
-webkit-border-radius: 0em 0.3125em 0.3125em 0em;
-moz-border-radius: 0em 0.3125em 0.3125em 0em;
border-radius: 0em 0.3125em 0.3125em 0em;
}
/* Button attached to a form element */
input + .ui.attached.button {
display: inline-block;
margin: 0 0 0 -1em;
padding: 0.68em 1em;
vertical-align: top;
font-size: 0.825em;
-webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.15) inset;
-moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.15) inset;
box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.15) inset;
-webkit-border-radius: 0em 0.3125em 0.3125em 0em;
-moz-border-radius: 0em 0.3125em 0.3125em 0em;
border-radius: 0em 0.3125em 0.3125em 0em;
}
input:focus + .ui.attached.button {
-webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.3) inset;
-moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.3) inset;
box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.3) inset;
}
.ui.attached.button.loading,
.ui.attached.button.loading.hover {
opacity: 1;
}
/*******************************
Buttons (Button Group)
*******************************/
.ui.buttons {
overflow: hidden;
}
.ui.buttons .button,
.ui.buttons .mini.button,
.ui.buttons .tiny.button,
.ui.buttons .small.button,
.ui.buttons .massive.button,
.ui.buttons .huge.button,
.ui.buttons .gigantic.button {
float: left;
-webkit-border-radius: 0em;
-moz-border-radius: 0em;
border-radius: 0em;
}
.ui.buttons .button:first-child,
.ui.buttons .mini.button:first-child,
.ui.buttons .tiny.button:first-child,
.ui.buttons .small.button:first-child,
.ui.buttons .massive.button:first-child,
.ui.buttons .huge.button:first-child,
.ui.buttons .gigantic.button:first-child {
margin-left: 0em;
border-top-left-radius: 0.3125em;
border-bottom-left-radius: 0.3125em;
}
.ui.buttons .button:last-child,
.ui.buttons .mini.button:last-child,
.ui.buttons .tiny.button:last-child,
.ui.buttons .small.button:last-child,
.ui.buttons .massive.button:last-child,
.ui.buttons .huge.button:last-child,
.ui.buttons .gigantic.button:last-child {
border-top-right-radius: 0.3125em;
border-bottom-right-radius: 0.3125em;
}
/* Vertical Style */
.ui.buttons.vertical {
display: inline-block;
}
.ui.buttons.vertical .button {
display: block;
float: none;
}
.ui.buttons.vertical .button:first-child,
.ui.buttons.vertical .mini.button:first-child,
.ui.buttons.vertical .tiny.button:first-child,
.ui.buttons.vertical .small.button:first-child,
.ui.buttons.vertical .massive.button:first-child,
.ui.buttons.vertical .huge.button:first-child,
.ui.buttons.vertical .gigantic.button:first-child {
margin-top: 0px;
-moz-border-radius: 0.3125em 0.3125em 0px 0px;
-webkit-border-radius: 0.3125em 0.3125em 0px 0px;
border-radius: 0.3125em 0.3125em 0px 0px;
}
.ui.buttons.vertical .button:last-child,
.ui.buttons.vertical .mini.button:last-child,
.ui.buttons.vertical .tiny.button:last-child,
.ui.buttons.vertical .small.button:last-child,
.ui.buttons.vertical .massive.button:last-child,
.ui.buttons.vertical .huge.button:last-child,
.ui.buttons.vertical .gigantic.button:last-child {
-moz-border-radius: 0px 0px 0.3125em 0.3125em;
-webkit-border-radius: 0px 0px 0.3125em 0.3125em;
border-radius: 0px 0px 0.3125em 0.3125em;
}
/*******************************
OR Button Divisions
*******************************/
.ui.buttons .or {
position: relative;
float: left;
width: 0.3em;
height: 1em;
}
.ui.buttons .or:before {
position: absolute;
top: 50%;
left: 50%;
content: 'or';
background-color: #FFFFFF;
margin-top: -0.15em;
margin-left: -0.9em;
width: 1.8em;
height: 1.8em;
line-height: 1.66;
color: #AAAAAA;
font-style: normal;
font-weight: normal;
text-align: center;
-moz-box-shadow: 0px 2px 1px 0px rgba(0, 0, 0, 0.2) inset;
-webkit-box-shadow: 0px 2px 1px 0px rgba(0, 0, 0, 0.2) inset;
box-shadow: 0px 2px 1px 0px rgba(0, 0, 0, 0.2) inset;
-moz-border-radius: 500px;
-webkit-border-radius: 500px;
border-radius: 500px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
.ui.buttons .or:after {
position: absolute;
top: 0em;
left: 0em;
content: ' ';
width: 0.3em;
height: 1.8em;
background-color: transparent;
border-top: 0.6em solid #FFFFFF;
border-bottom: 0.6em solid #FFFFFF;
}
/* Fluid Or */
.ui.fluid.buttons .or {
width: 0em !important;
}
.ui.fluid.buttons .or:after{
display: none;
}
/*-------------------
Attached
--------------------*/
/* Plural Attached */
.attached.ui.buttons {
margin: 0px;
-webkit-border-radius: 4px 4px 0px 0px;
-moz-border-radius: 4px 4px 0px 0px;
border-radius: 4px 4px 0px 0px;
}
.attached.ui.buttons .button:first-child {
-webkit-border-radius: 4px 0px 0px 0px;
-moz-border-radius: 4px 0px 0px 0px;
border-radius: 4px 0px 0px 0px;
}
.attached.ui.buttons .button:last-child {
-webkit-border-radius: 0px 4px 0px 0px;
-moz-border-radius: 0px 4px 0px 0px;
border-radius: 0px 4px 0px 0px;
}
/* Bottom Side */
.bottom.attached.ui.buttons {
margin-top: -1px;
-webkit-border-radius: 0px 0px 4px 4px;
-moz-border-radius: 0px 0px 4px 4px;
border-radius: 0px 0px 4px 4px;
}
.bottom.attached.ui.buttons .button:first-child {
-webkit-border-radius: 0px 0px 0px 4px;
-moz-border-radius: 0px 0px 0px 4px;
border-radius: 0px 0px 0px 4px;
}
.bottom.attached.ui.buttons .button:last-child {
-webkit-border-radius: 0px 0px 4px 0px;
-moz-border-radius: 0px 0px 4px 0px;
border-radius: 0px 0px 4px 0px;
}
/* Left Side */
.left.attached.ui.buttons {
margin-left: -1px;
-webkit-border-radius: 0px 4px 4px 0px;
-moz-border-radius: 0px 4px 4px 0px;
border-radius: 0px 4px 4px 0px;
}
.left.attached.ui.buttons .button:first-child {
margin-left: -1px;
-webkit-border-radius: 0px 4px 0px 0px;
-moz-border-radius: 0px 4px 0px 0px;
border-radius: 0px 4px 0px 0px;
}
.left.attached.ui.buttons .button:last-child {
margin-left: -1px;
-webkit-border-radius: 0px 0px 4px 0px;
-moz-border-radius: 0px 0px 4px 0px;
border-radius: 0px 0px 4px 0px;
}
/* Right Side */
.right.attached.ui.buttons,
.right.attached.ui.buttons .button {
margin-right: -1px;
-webkit-border-radius: 4px 0px 0px 4px;
-moz-border-radius: 4px 0px 0px 4px;
border-radius: 4px 0px 0px 4px;
}
.right.attached.ui.buttons .button:first-child {
margin-left: -1px;
-webkit-border-radius: 4px 0px 0px 0px;
-moz-border-radius: 4px 0px 0px 0px;
border-radius: 4px 0px 0px 0px;
}
.right.attached.ui.buttons .button:last-child {
margin-left: -1px;
-webkit-border-radius: 0px 0px 0px 4px;
-moz-border-radius: 0px 0px 0px 4px;
border-radius: 0px 0px 0px 4px;
}
/* Fluid */
.ui.fluid.buttons,
.ui.button.fluid,
.ui.fluid.buttons > .button {
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
.ui.two.fluid.buttons > .button {
width: 50%;
}
.ui.three.fluid.buttons > .button {
width: 33.333%;
}
.ui.four.fluid.buttons > .button {
width: 25%;
}
.ui.five.fluid.buttons > .button {
width: 20%;
}
.ui.six.fluid.buttons > .button {
width: 16.666%;
}
.ui.seven.fluid.buttons > .button {
width: 14.285%;
}
.ui.eight.fluid.buttons > .button {
width: 12.500%;
}
.ui.nine.fluid.buttons > .button {
width: 11.11%;
}
.ui.ten.fluid.buttons > .button {
width: 10%;
}
.ui.eleven.fluid.buttons > .button {
width: 9.09%;
}
.ui.twelve.fluid.buttons > .button {
width: 8.3333%;
}
/* Fluid Vertical Buttons */
.ui.fluid.vertical.buttons,
.ui.fluid.vertical.buttons > .button {
width: auto;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
.ui.two.fluid.buttons > .button {
height: 50%;
}
.ui.three.fluid.buttons > .button {
height: 33.333%;
}
.ui.four.fluid.buttons > .button {
height: 25%;
}
.ui.five.fluid.buttons > .button {
height: 20%;
}
.ui.six.fluid.buttons > .button {
height: 16.666%;
}
.ui.seven.fluid.buttons > .button {
height: 14.285%;
}
.ui.eight.fluid.buttons > .button {
height: 12.500%;
}
.ui.nine.fluid.buttons > .button {
height: 11.11%;
}
.ui.ten.fluid.buttons > .button {
height: 10%;
}
.ui.eleven.fluid.buttons > .button {
height: 9.09%;
}
.ui.twelve.fluid.buttons > .button {
height: 8.3333%;
}

105
components/semantic/src/elements/column.css

@ -1,105 +0,0 @@
/*******************************
Columns
*******************************/
/* Text Columns */
.ui.columns > .column,
.ui.column {
width: 50%;
margin: 0px;
padding: 0px 4% 0px;
float: left;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
border-left: 1px solid rgba(255, 255, 255, 0.7);
-webkit-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.15);
-moz-box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.15);
box-shadow: -1px 0px 0px 0px rgba(0, 0, 0, 0.15);
}
.ui.columns > .column:first-child,
.ui.column:first-child {
border-left: none;
box-shadow: none;
}
/* Sizing Combinations */
.ui.one.columns .column {
width: 100%;
padding-left: 3.5%;
padding-right: 3.5%;
}
.ui.two.columns .column {
width: 50%;
padding-left: 3%;
padding-right: 3%;
}
.ui.three.columns .column {
width: 33.333%;
padding-left: 3%;
padding-right: 3%;
}
.ui.four.columns .column {
width: 25%;
padding-left: 2%;
padding-right: 2%;
}
.ui.five.columns .column {
width: 20%;
padding-left: 1%;
padding-right: 1%;
}
.ui.six.columns .column {
width: 16.66%;
padding-left: 0.5%;
padding-right: 0.5%;
}
.ui.seven.columns .column {
width: 14.28%;
padding-left: 0.5%;
padding-right: 0.5%;
}
.ui.eight.columns .column {
width: 12.5%;
padding-left: 0.25%;
padding-right: 0.25%;
}
.ui.nine.columns .column {
width: 11.11%;
padding-left: 0.25%;
padding-right: 0.25%;
}
.ui.ten.columns .column {
width: 10%;
padding-left: 0.2%;
padding-right: 0.2%;
}
.ui.eleven.columns .column {
width: 9.09%;
padding-left: 0.2%;
padding-right: 0.2%;
}
.ui.twelve.columns .column {
width: 8.3333%;
padding-left: 0.1%;
padding-right: 0.1%;
}
/* Fitted Colums */
.ui.fitted.columns .column:first-child {
padding-left: 0px;
}
.ui.fitted.columns .column:last-child {
padding-right: 0px;
}
/* Simple Columns */
.ui.columns.simple .column,
.ui.column.simple {
border-left: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}

119
components/semantic/src/elements/divider.css

@ -1,119 +0,0 @@
/*--------------------
Horizontal Dividers
---------------------*/
.ui.divider {
margin: 1em 0em;
height: 1px;
background-color: rgba(0, 0, 0, 0.1);
border-top: none;
border-bottom: 1px solid rgba(255, 255, 255, 0.8);
}
.ui.vertical.divider,
.ui.horizontal.divider {
position: relative;
margin: 25px 0px 10px;
font-size: 14px;
line-height: 14px;
text-align: center;
text-transform: uppercase;
text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
color: #555555;
font-weight: bold;
}
.ui.divider .rule {
position: absolute;
top: 6px;
width: 45%;
height: 1px;
background-color: #ADADAD;
background-color: rgba(0, 0, 0, 0.1);
border-bottom: 1px solid #F8F8F8;
border-bottom: 1px solid rgba(255, 255, 255, 0.9)
}
.ui.divider .left.rule {
left: 0px;
}
.ui.divider .right.rule {
right: 0px;
}
.ui.divider .label {
display: block;
margin: 14px 0px 0px;
text-transform: none;
color: #333333;
}
/*--------------------
Vertical Dividers
---------------------*/
.vertical.ui.divider {
position: absolute;
top: 0px;
left: 50%;
height: 100%;
margin: 0px 0px 0px -50px;
min-width: 100px;
color: #555555;
font-weight: bold;
}
.vertical.ui.divider .rule {
position: absolute;
left: 50%;
width: 1px;
height: 45%;
background-color: #ADADAD;
background-color: rgba(0, 0, 0, 0.2);
border-right: 1px solid #F8F8F8;
border-right: 1px solid rgba(255, 255, 255, 0.9)
}
.vertical.ui.divider .top.rule {
top: 0px;
}
.vertical.ui.divider .bottom.rule {
top: auto;
bottom: 0px;
}
.vertical.ui.divider .label {
position: relative;
top: 50%;
margin-top: -7px;
display: block;
width: 100%;
font-size: 14px;
line-height: 14px;
text-align: center;
text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
text-transform: none;
color: #333333;
}
/* Inverted Color Divider (Black BG) */
.ui.divider.inverted {
text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.8);
color: #FFFFFF;
}
.ui.divider.inverted .rule {
border-color: #4A4A4A;
border-color: rgba(255, 255, 255, 0.2);
}

36
components/semantic/src/elements/flags.css

@ -1,36 +0,0 @@
/*---------------
UI Notification
----------------*/
.ui.notification.hidden {
display: none;
}
.ui.notification {
position: absolute;
top: 0px;
right: 0px;
background-color: #EEEEEE;
padding: 3px 5px;
background: -webkit-linear-gradient(top, #FFFFFF 0%, #DDDDDD 100%);
background: -moz-linear-gradient(top, #FFFFFF 0%, #DDDDDD 100%);
background: -o-linear-gradient(top, #FFFFFF 0%, #DDDDDD 100%);
background: -ms-linear-gradient(top, #FFFFFF 0%, #DDDDDD 100%);
background: linear-gradient(top, #FFFFFF 0%, #DDDDDD 100%);
border: 1px solid #DDDDDD;
border-radius: 5px;
box-shadow:
1px 1px 1px rgba(0, 0, 0, 0.3),
0px 1px 0px rgba(255, 255, 255, 0.6) inset
;
font-size: 11px;
line-height: 1;
text-transform: uppercase;
color: #555555;
z-index: 100;
}

45
components/semantic/src/elements/footnote.css

@ -1,45 +0,0 @@
/*******************************
UI Footnote
*******************************/
/*--------------
Footnote
---------------*/
.ui.footnote {
position: absolute;
right: 0px;
margin-right: 100%;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAAECAIAAABEEOcGAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OEYyQzdFNjZGQjhBMTFFMTgzQzJFN0E3NEFBRTJEOTQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OEYyQzdFNjdGQjhBMTFFMTgzQzJFN0E3NEFBRTJEOTQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4RjJDN0U2NEZCOEExMUUxODNDMkU3QTc0QUFFMkQ5NCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4RjJDN0U2NUZCOEExMUUxODNDMkU3QTc0QUFFMkQ5NCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PhEaqvMAAABcSURBVHjaYvnw9PXdY1fu7DkvsfG9/AsOhlEwCqgBWHhEBRRMNXk3vhB4/Y9pNDxGAbUS1s/777/EbWE7+fLbaGCMAiomrG+/vn8TYhRiZmP+yzgaHKOAWgAgwAC5ghtNGOU2wgAAAABJRU5ErkJggg==);
background-repeat: repeat-y;
background-position: 0px 0px;
font-weight: bold;
text-transform: uppercase;
color: #FFFFFF;
}
/*--------------
Positions
---------------*/
.ui.footnote.right {
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAAAECAIAAABEEOcGAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NUIwQzNFNTc3NTYwMTFFMjk1QzNCN0YzRjhERkM1RkUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NUIwQzNFNTg3NTYwMTFFMjk1QzNCN0YzRjhERkM1RkUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo1QjBDM0U1NTc1NjAxMUUyOTVDM0I3RjNGOERGQzVGRSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo1QjBDM0U1Njc1NjAxMUUyOTVDM0I3RjNGOERGQzVGRSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PpXH9FAAAABeSURBVHjaYnzA0MowCkYBNcBDiR8v/AVVXAyVrXRYeBjYR0NkFFAFaL5ml/wqKWyqySMqwPKF4edoiIwC6oC/DGxL7n25/ZVjkd9oiTUKqJq0mP+/E2L89us7QIABAIrfFu2AX0jvAAAAAElFTkSuQmCC);
background-position: right top;
padding: 10px 15px 10px 5px;
left: 0px;
right: auto;
margin-left: 100%;
}
/*--------------
Sizes
---------------*/
.ui.footnote {
padding: 10px 5px 10px 15px;
font-size: 14px;
}

131
components/semantic/src/elements/header.css

@ -1,131 +0,0 @@
/*
* # Semantic Headers - Flat
* http://github.com/quirkyinc/semantic
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
* Released: April 29 2013
*/
/*******************************
Header
*******************************/
/* Standard */
.ui.header {
line-height: 1.33;
font-size: 1.33em;
font-weight: bold;
padding: 0em;
border: none;
}
/* Positioning */
.ui.header:first-child {
margin-top: 0em;
}
.ui.header + p {
margin-top: 0em;
}
/*--------------
Page Heading
---------------*/
h1.ui.header {
min-height: 1rem;
margin: 2rem 0rem 1.5rem;
line-height: 1.33rem;
font-size: 2rem;
}
h2.ui.header {
margin: 1.5rem 0rem 1rem;
line-height: 1.33rem;
font-size: 1.5rem;
}
h3.ui.header {
margin: 1.3rem 0rem 1rem;
line-height: 1.33rem;
font-size: 1.33rem;
}
h4.ui.header {
margin: 0.75rem 0rem 0.3rem;
line-height: 1.33rem;
font-size: 1.1rem;
}
h5.ui.header {
margin: 0rem 0rem 0.2rem;
line-height: 1.2rem;
font-size: 1rem;
}
/*--------------
Content Heading
---------------*/
.huge.ui.header {
min-height: 1em;
line-height: 1.33em;
font-size: 2em;
}
.large.ui.header {
line-height: 1.33em;
font-size: 1.5em;
}
.small.ui.header {
margin-bottom: 0.25em;
line-height: 1.33em;
font-size: 1.1em;
}
.tiny.ui.header {
margin-bottom: 0em;
line-height: 1.2em;
font-size: 1em;
}
/*******************************
States
*******************************/
.ui.header.disabled {
opacity: 0.5;
}
/*******************************
Variations
*******************************/
/* Attached Header */
.ui.header.attached,
.ui.header.attached.top {
box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
margin: 0em;
-webkit-border-radius: 4px 4px 0px 0px;
-moz-border-radius: 4px 4px 0px 0px;
border-radius: 4px 4px 0px 0px;
}
.ui.header.attached.bottom {
margin-top: 0em;
-webkit-border-radius: 0px 0px 4px 4px;
-moz-border-radius: 0px 0px 4px 4px;
border-radius: 0px 0px 4px 4px;
}
.ui.header.simple {
border-radius: 0em;
background-color: #FAFAFA;
background-image: none;
}
/*******************************
Groups
*******************************/

217
components/semantic/src/elements/icons.css

@ -1,217 +0,0 @@
/*******************************
UI Icon
*******************************/
@font-face {
font-family: 'Icons';
src: url(../fonts/icons.eot);
src:
url(../fonts/icons.eot?#iefix) format('embedded-opentype'),
url(../fonts/icons.woff) format('woff'),
url(../fonts/icons.ttf) format('truetype'),
url(../fonts/icons.svg#icons) format('svg')
;
font-weight: normal;
font-style: normal;
}
i.icon {
display: inline-block;
width: 1em;
height: 1em;
margin: 0em 0.2em 0em 0em;
font-style: normal;
line-height: 1;
font-weight: normal;
text-decoration: inherit;
text-align: center;
vertical-align: baseline;
-webkit-font-smoothing: antialiased;
-moz-font-smoothing: antialiased;
font-smoothing: antialiased;
}
i.icon:before {
font-family: 'Icons';
speak: none;
opacity: 0.75;
}
/* manual corrections */
i.icon.cloud,
i.icon.code,
i.icon.terminal,
i.icon.twitter-bird,
i.icon.dollar {
margin-left: 0em;
padding-right: 0.2em;
}
i.icon.left,
i.icon.left-open,
i.icon.left-dir {
width: 1em;
margin: 0em 0.5em 0em 0em;
}
i.icon.up,
i.icon.up-open,
i.icon.up-dir,
i.icon.down,
i.icon.down-open,
i.icon.down-dir,
i.icon.right,
i.icon.right-open,
i.icon.right-dir {
width: 1em;
margin: 0em 0em 0em 0.1em;
}
/* circular icon easier to notice misaligned */
i.icon.clock {
margin-top: -0.05em;
}
/* aliases for convenience */
i.icon.close:before { content: '\e80d'; } /* '' */
i.icon.help:before { content: '\e704'; } /* '' */
i.icon.info:before { content: '\e705'; } /* '' */
i.icon.error:before { content: '\e80d'; } /* '' */
/* icons available */
i.icon.asterisk:before { content: '\2731'; } /* '✱' */
i.icon.at:before { content: '\40'; } /* '@' */
i.icon.attach:before { content: '📎'; } /* '\1f4ce' */
i.icon.attention-circle:before { content: '\2757'; } /* '❗' */
i.icon.attention:before { content: '\26a0'; } /* '⚠' */
i.icon.award:before { content: '🏉'; } /* '\1f3c9' */
i.icon.barcode:before { content: '\e792'; } /* '' */
i.icon.basket:before { content: '\e73d'; } /* '' */
i.icon.basket:before { content: '\e813'; } /* '' */
i.icon.block:before { content: '🚫'; } /* '\1f6ab' */
i.icon.book-open:before { content: '📖'; } /* '\1f4d6' */
i.icon.bookmark:before { content: '🔖'; } /* '\1f516' */
i.icon.calendar:before { content: '📅'; } /* '\1f4c5' */
i.icon.cancel-alt:before { content: '\e80d'; } /* '' */
i.icon.cancel-circle:before { content: '\2716'; } /* '✖' */
i.icon.cancel:before { content: '\2715'; } /* '✕' */
i.icon.ccw:before { content: '\27f2'; } /* '⟲' */
i.icon.chart-bar:before { content: '📊'; } /* '\1f4ca' */
i.icon.chart-pie:before { content: '\e7a2'; } /* '' */
i.icon.chart:before { content: '📈'; } /* '\1f4c8' */
i.icon.chat:before { content: '\e720'; } /* '' */
i.icon.check:before { content: '\2611'; } /* '☑' */
i.icon.clock:before { content: '🕔'; } /* '\1f554' */
i.icon.cloud:before { content: '\2601'; } /* '☁' */
i.icon.code:before { content: '\e714'; } /* '' */
i.icon.cog-alt:before { content: '\26ef'; } /* '⛯' */
i.icon.cog:before { content: '\2699'; } /* '⚙' */
i.icon.comment-alt:before { content: '\e802'; } /* '' */
i.icon.comment:before { content: '\e718'; } /* '' */
i.icon.cw:before { content: '\27f3'; } /* '⟳' */
i.icon.direction:before { content: '\27a2'; } /* '➢' */
i.icon.doc:before { content: '📄'; } /* '\1f4c4' */
i.icon.docs:before { content: '\e736'; } /* '' */
i.icon.dollar:before { content: '💵'; } /* '\1f4b5' */
i.icon.down-dir:before { content: '\25be'; } /* '▾' */
i.icon.down-open:before { content: '\e75c'; } /* '' */
i.icon.down:before { content: '\2193'; } /* '↓' */
i.icon.easel:before { content: '\e7b5'; } /* '' */
i.icon.edit:before { content: '\270d'; } /* '✍' */
i.icon.eject:before { content: '\2ecf'; } /* '⻏' */
i.icon.export:before { content: '\e715'; } /* '' */
i.icon.eye:before { content: '\e80f'; } /* '' */
i.icon.eye-off:before { content: '\e70b'; } /* '' */
i.icon.facebook-rect:before { content: '\f301'; } /* '' */
i.icon.fast-fw:before { content: '\e804'; } /* '' */
i.icon.fire:before { content: '🔥'; } /* '\1f525' */
i.icon.flag:before { content: '\2691'; } /* '⚑' */
i.icon.flash:before { content: '\26a1'; } /* '⚡' */
i.icon.flash-alt:before { content: '\e815'; } /* '' */
i.icon.flask:before { content: '\68'; } /* 'h' */
i.icon.flight:before { content: '\2708'; } /* '✈' */
i.icon.folder-open:before { content: '📂'; } /* '\1f4c2' */
i.icon.folder:before { content: '\e810'; } /* '' */
i.icon.forward:before { content: '\27a6'; } /* '➦' */
i.icon.gift:before { content: '🎁'; } /* '\1f381' */
i.icon.github:before { content: '\f308'; } /* '' */
i.icon.globe:before { content: '\e817'; } /* '' */
i.icon.globe-alt:before { content: '🌐'; } /* '\1f310' */
i.icon.globe:before { content: '𝌍'; } /* '\1d30d' */
i.icon.headphones:before { content: '🎧'; } /* '\1f3a7' */
i.icon.heart-empty:before { content: '\2661'; } /* '♡' */
i.icon.heart:before { content: '\2665'; } /* '♥' */
i.icon.help-circle:before { content: '\e704'; } /* '' */
i.icon.question:before { content: '\2753'; } /* '❓' */
i.icon.home-alt:before { content: '\e80e'; } /* '' */
i.icon.home:before { content: '\2302'; } /* '⌂' */
i.icon.info-circle:before { content: '\e705'; } /* '' */
i.icon.i-letter:before { content: '\2139'; } /* 'ℹ' */
i.icon.lamp:before { content: '💡'; } /* '\1f4a1' */
i.icon.left-dir:before { content: '\25c2'; } /* '◂' */
i.icon.left-open:before { content: '\e75d'; } /* '' */
i.icon.left:before { content: '\2190'; } /* '←' */
i.icon.link:before { content: '🔗'; } /* '\1f517' */
i.icon.list:before { content: '\e782'; } /* '' */
i.icon.location-alt:before { content: '\e811'; } /* '' */
i.icon.location:before { content: '\e724'; } /* '' */
i.icon.lock-open:before { content: '🔓'; } /* '\1f513' */
i.icon.lock:before { content: '🔒'; } /* '\1f512' */
i.icon.mail:before { content: '\2709'; } /* '✉' */
i.icon.mic:before { content: '🎤'; } /* '\1f3a4' */
i.icon.minus:before { content: '\2d'; } /* '-' */
i.icon.money:before { content: '💰'; } /* '\1f4b0' */
i.icon.off:before { content: '\e78e'; } /* '' */
i.icon.pause:before { content: '\e808'; } /* '' */
i.icon.picture-alt:before { content: '\e812'; } /* '' */
i.icon.picture:before { content: '🌄'; } /* '\1f304' */
i.icon.pin:before { content: '📌'; } /* '\1f4cc' */
i.icon.play:before { content: '\e809'; } /* '' */
i.icon.plus-circle:before { content: '\2795'; } /* '➕' */
i.icon.plus:before { content: '\2b'; } /* '+' */
i.icon.print:before { content: '\e716'; } /* '' */
i.icon.resize-full:before { content: '\e744'; } /* '' */
i.icon.resize-horizontal:before { content: '\2b0d'; } /* '⬍' */
i.icon.resize-small:before { content: '\e746'; } /* '' */
i.icon.resize-vertical:before { content: '\2b0c'; } /* '⬌' */
i.icon.right-dir:before { content: '\25b8'; } /* '▸' */
i.icon.right-open:before { content: '\e75e'; } /* '' */
i.icon.right:before { content: '\2192'; } /* '→' */
i.icon.rss:before { content: '\e73a'; } /* '' */
i.icon.search:before { content: '🔍'; } /* '\1f50d' */
i.icon.shuffle:before { content: '\e803'; } /* '' */
i.icon.star:before { content: '\e801'; } /* '' */
i.icon.star-empty:before { content: '\e800'; } /* '' */
i.icon.star-half:before { content: '\e701'; } /* '' */
i.icon.stop:before { content: '\e807'; } /* '' */
i.icon.tag:before { content: '\e80a'; } /* '' */
i.icon.tags:before { content: '\e70d'; } /* '' */
i.icon.terminal:before { content: '\e7ac'; } /* '' */
i.icon.th-alt:before { content: '\e80c'; } /* '' */
i.icon.th-large:before { content: '\e708'; } /* '' */
i.icon.th-list:before { content: '\e80b'; } /* '' */
i.icon.thumbs-down:before { content: '👎'; } /* '\1f44e' */
i.icon.thumbs-up:before { content: '👍'; } /* '\1f44d' */
i.icon.tint:before { content: '\e794'; } /* '' */
i.icon.to-end:before { content: '\e762'; } /* '' */
i.icon.to-end-alt:before { content: '\e806'; } /* '' */
i.icon.to-start:before { content: '\e763'; } /* '' */
i.icon.to-start-alt:before { content: '\e805'; } /* '' */
i.icon.top-list:before { content: '🏆'; } /* '\1f3c6' */
i.icon.trash:before { content: '\e729'; } /* '' */
i.icon.twitter-bird:before { content: '\f303'; } /* '' */
i.icon.up-dir:before { content: '\25b4'; } /* '▴' */
i.icon.up-open:before { content: '\e75f'; } /* '' */
i.icon.up:before { content: '\2191'; } /* '↑' */
i.icon.upload-cloud:before { content: '\e711'; } /* '' */
i.icon.user-add:before { content: '\e700'; } /* '' */
i.icon.user:before { content: '👤'; } /* '\1f464' */
i.icon.users-alt:before { content: '\e814'; } /* '' */
i.icon.users:before { content: '👥'; } /* '\1f465' */
i.icon.vcard:before { content: '\e722'; } /* '' */
i.icon.zoom-in:before { content: '\e750'; } /* '' */
i.icon.zoom-out:before { content: '\e751'; } /* '' */

39
components/semantic/src/elements/image.css

@ -1,39 +0,0 @@
.ui.feature.image {
position: relative;
display: inline-block;
border: 1px solid #CCCCCC;
background: #F5F5F5 url(../images/placeholder-subtle.png) no-repeat center center;
}
.ui.feature.image img {
display: block;
}
.ui.feature.image:after {
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
content: '';
-webkit-box-shadow:
0px 0px 0px 3px rgba(255, 255, 255, 0.6) inset,
0px 1px 1px rgba(0, 0, 0, 0.3)
;
-moz-box-shadow:
0px 0px 0px 3px rgba(255, 255, 255, 0.6) inset,
0px 1px 1px rgba(0, 0, 0, 0.3)
;
box-shadow:
0px 0px 0px 3px rgba(255, 255, 255, 0.6) inset,
0px 1px 1px rgba(0, 0, 0, 0.3)
;
z-index: 10;
}
/* Rounded Corners */
.ui.feature.image,
.ui.feature.image img,
.ui.feature.image:after {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}

508
components/semantic/src/elements/label.css

@ -1,508 +0,0 @@
/*
* # Semantic Label - Flat
* http://github.com/quirkyinc/semantic
*
*
* Copyright 2013 Contributors
* Released under the MIT license
* http://opensource.org/licenses/MIT
*
* Released: April 26 2013
*/
/*******************************
Label
*******************************/
.ui.label {
display: inline-block;
vertical-align: middle;
padding: 0.33em 0.8em;
font-weight: bold;
text-transform: uppercase;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
-webkit-transition:
background 0.1s linear
;
-moz-transition:
background 0.1s linear
;
-o-transition:
background 0.1s linear
;
-ms-transition:
background 0.1s linear
;
transition:
background 0.1s linear
;
}
a.ui.label {
cursor: pointer;
}
.ui.label.disabled {
opacity: 0.5;
}
.ui.label .detail {
display: inline-block;
font-size: 0.9em;
margin-left: 0.5em;
opacity: 0.6;
}
.ui.label .icon.close {
cursor: pointer;
margin-left: 0.5em;
opacity: 0.7;
-webkit-transition:
background 0.1s linear
;
-moz-transition:
background 0.1s linear
;
-o-transition:
background 0.1s linear
;
-ms-transition:
background 0.1s linear
;
transition:
background 0.1s linear
;
}
/*******************************
States
*******************************/
/* Hover */
.ui.label .icon.close:hover {
opacity: 1;
}
/*******************************
Variations
*******************************/
/*-------------------
Tag
--------------------*/
.ui.tag.labels .label,
.ui.tag.label {
margin-left: 1em;
position: relative;
padding: 0.33em 1.3em 0.33em 1.4em;
-webkit-border-radius: 0px 3px 3px 0px;
-moz-border-radius: 0px 3px 3px 0px;
border-radius: 0px 3px 3px 0px;
}
.ui.tag.labels .label:before,
.ui.tag.label:before {
position: absolute;
top: 0.3em;
left: 0.3em;
content: '';
margin-left: -1em;
background-image: none;
width: 1.5em;
height: 1.5em;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
transform: rotate(45deg);
-webkit-transition:
background 0.1s linear
;
-moz-transition:
background 0.1s linear
;
-o-transition:
background 0.1s linear
;
-ms-transition:
background 0.1s linear
;
transition:
background 0.1s linear
;
}
.ui.tag.labels .label:after,
.ui.tag.label:after {
position: absolute;
content: '';
top: 50%;
left: -0.25em;
margin-top: -0.3em;
background-color: #FFFFFF;
width: 0.55em;
height: 0.55em;
-webkit-box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
-moz-box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
box-shadow: 0 -1px 1px 0 rgba(0, 0, 0, 0.3);
-moz-border-radius: 100px 100px 100px 100px;
-webkit-border-radius: 100px 100px 100px 100px;
border-radius: 100px 100px 100px 100px;
}
/*-------------------
Attached
--------------------*/
.ui.attached.label {
position: absolute;
top: 0px;
left: 0px;
margin-top: 0px !important;
padding: 0.5em 1em;
color: #AAAAAA;
-webkit-border-radius: 4px 0px 0px 0px;
-moz-border-radius: 4px 0px 0px 0px;
border-radius: 4px 0px 0px 0px;
}
.ui.right.attached.label {
left: auto;
right: 0px;
-webkit-border-radius: 0px 4px 0px 0px;
-moz-border-radius: 0px 4px 0px 0px;
border-radius: 0px 4px 0px 0px;
}
.ui.bottom.attached.label {
top: auto;
bottom: 0px;
-webkit-border-radius: 0px 0px 0px 4px;
-moz-border-radius: 0px 0px 0px 4px;
border-radius: 0px 0px 0px 4px;
}
.ui.bottom.right.attached.label {
-webkit-border-radius: 0px 0px 4px 0px;
-moz-border-radius: 0px 0px 4px 0px;
border-radius: 0px 0px 4px 0px;
}
/*-------------------
Fluid
--------------------*/
.ui.label.fluid,
.ui.fluid.labels > .label {
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
/*-------------------
Colors
--------------------*/
/*--- Standard ---*/
.ui.labels .label,
.ui.label {
background-color: rgba(0, 0, 0, 0.1);
color: rgba(0, 0, 0, 0.3);
}
.ui.labels .label:before,
.ui.label:before {
background-color: rgba(0, 0, 0, 0.1);
color: #555555;
}
/* Hover */
a.ui.labels .label:hover,
a.ui.label:hover {
background-color: #F0F0F0;
}
.ui.labels a.label:hover:before,
a.ui.label:hover:before {
background-color: #F0F0F0;
}
/*--- Black ---*/
.ui.black.labels .label,
.ui.black.label {
background-color: #5C6166;
color: #FFFFFF;
}
.ui.labels .black.label:before,
.ui.black.labels .label:before,
.ui.black.label:before {
background-color: #5C6166;
}
/* Hover */
a.ui.black.labels .label:hover,
a.ui.black.label:hover {
background-color: #888888;
}
.ui.labels a.black.label:hover:before,
.ui.black.labels a.label:hover:before,
a.ui.black.label:hover:before {
background-color: #888888;
}
/*--- Green ---*/
.ui.green.labels .label,
.ui.green.label {
background-color: #A1CF64;
color: #FFFFFF;
}
.ui.labels .green.label:before,
.ui.green.labels .label:before,
.ui.green.label:before {
background-color: #A1CF64;
}
/* Hover */
a.ui.green.labels .label:hover,
a.ui.green.label:hover {
background-color: #89B84C;
}
.ui.labels a.green.label:hover:before,
.ui.green.labels a.label:hover:before,
a.ui.green.label:hover:before {
background-color: #89B84C;
}
/*--- Red ---*/
.ui.red.labels .label,
.ui.red.label {
background-color: #EF4D6D;
color: #FFFFFF;
}
.ui.labels .red.label:before,
.ui.red.labels .label:before,
.ui.red.label:before {
background-color: #EF4D6D;
}
/* Hover */
a.ui.red.labels .label:hover,
a.ui.red.label:hover{
background-color: #DE3859;
color: #FFFFFF;
}
.ui.labels a.red.label:hover:before,
.ui.red.labels a.label:hover:before,
a.ui.red.label:hover:before {
background-color: #DE3859;
}
/*--- Blue ---*/
.ui.blue.labels .label,
.ui.blue.label {
background-color: #6ECFF5;
color: #FFFFFF;
}
.ui.labels .blue.label:before,
.ui.blue.labels .label:before,
.ui.blue.label:before {
background-color: #6ECFF5;
}
/* Hover */
a.ui.blue.labels .label:hover,
a.ui.blue.label:hover {
background-color: #1AB8F3;
color: #FFFFFF;
}
.ui.labels a.blue.label:hover:before,
.ui.blue.labels a.label:hover:before,
a.ui.blue.label:hover:before {
background-color: #1AB8F3;
}
/*--- Purple ---*/
.ui.purple.labels .label,
.ui.purple.label {
background-color: #564F8A;
color: #FFFFFF;
}
.ui.labels .purple.label:before,
.ui.purple.labels .label:before,
.ui.purple.label:before {
background-color: #564F8A;
}
/* Hover */
a.ui.purple.labels .label:hover,
a.ui.purple.label:hover {
background-color: #3E3773;
color: #FFFFFF;
}
.ui.labels a.purple.label:hover:before,
.ui.purple.labels a.label:hover:before,
a.ui.purple.label:hover:before {
background-color: #3E3773;
}
/*--- Pink ---*/
.ui.teal.labels .label,
.ui.teal.label {
background-color: #00B5AD;
color: #FFFFFF;
}
.ui.labels .teal.label:before,
.ui.teal.labels .label:before,
.ui.teal.label:before {
background-color: #00B5AD;
}
/* Hover */
a.ui.teal.labels .label:hover,
a.ui.teal.label:hover {
background-color: #009A93;
color: #FFFFFF;
}
.ui.labels a.teal.label:hover:before,
.ui.teal.labels a.label:hover:before,
a.ui.teal.tag.label:hover:before {
background-color: #009A93;
}
/*-------------------
Pointing
--------------------*/
.ui.pointing.label {
position: relative;
}
.ui.attached.pointing.label {
position: absolute;
}
.ui.pointing.label:before {
position: absolute;
content: "";
width: 0.6em;
height: 0.6em;
background-image: none;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
transform: rotate(45deg);
z-index: 2;
-webkit-transition:
background 0.1s linear
;
-moz-transition:
background 0.1s linear
;
-o-transition:
background 0.1s linear
;
-ms-transition:
background 0.1s linear
;
transition:
background 0.1s linear
;
}
/*--- Above ---*/
.ui.pointing.label,
.ui.pointing.above.label {
margin-top: 1em;
}
.ui.pointing.label:before,
.ui.pointing.above.label:before {
margin-left: -0.3em;
top: -0.3em;
left: 50%;
}
/*--- Below ---*/
.ui.pointing.below.label {
margin-top: 0em;
margin-bottom: 1em;
}
.ui.pointing.below.label:before {
margin-left: -0.3em;
top: auto;
right: auto;
bottom: -0.3em;
left: 50%;
}
/*--- Left ---*/
.ui.pointing.left.label {
margin-top: 0em;
margin-left: 1em;
}
.ui.pointing.left.label:before {
margin-top: -0.3em;
bottom: auto;
right: auto;
top: 50%;
left: 0em;
}
/*--- Right ---*/
.ui.pointing.right.label {
margin-top: 0em;
margin-right: 1em;
}
.ui.pointing.right.label:before {
margin-top: -0.3em;
right: -0.3em;
top: 50%;
bottom: auto;
left: auto;
}
/*------------------
Floating Label
-------------------*/
.ui.floating.label {
position: absolute;
z-index: 100;
top: -1em;
left: 100%;
margin: 0em 0em 0em -1.5em !important;
-webkit-box-shadow: 0px -2px 0 0px rgba(0, 0, 0, 0.1) inset;
-moz-box-shadow: 0px -2px 0 0px rgba(0, 0, 0, 0.1) inset;
box-shadow: 0px -2px 0 0px rgba(0, 0, 0, 0.1) inset;
}
/*-------------------
Sizes
--------------------*/
.ui.label {
font-size: 13px;
}
.ui.small.labels .label,
.ui.small.label {
font-size: 11px;
}
.ui.large.labels .label,
.ui.large.label {
font-size: 15px;
}

80
components/semantic/src/elements/paperclip.css

@ -1,80 +0,0 @@
/*******************************
UI Paperclip
*******************************/
/*--------------
Paperclip
---------------*/
/* Normal */
.ui.paperclip {
z-index: 2;
}
.ui.paperclip .paperclip {
display: block;
position: absolute;
z-index: 4;
background: url(../images/paperclip.png) no-repeat;
width: 37px;
height: 21px;
}
.ui.paperclip .label {
position: absolute;
top: 42px;
left: 8px;
z-index: 3;
border: 1px solid #D3CB4F;
background-color: #FFF557;
font-size: 9px;
color: #444005;
font-weight: bold;
padding: 2px 7px;
}
.ui.paperclip .content,
.ui.paperclip img {
border: 5px solid #FFFFFF;
-webkit-transform: rotate(-11deg);
-moz-transform: rotate(-11deg);
-o-transform: rotate(-11deg);
-ms-transform: rotate(-11deg);
transform: rotate(-11deg);
}
.ui.paperclip img {
height: 60px;
-webkit-box-shadow: 0px 3px 2px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 0px 3px 2px rgba(0, 0, 0, 0.3);
box-shadow: 0px 3px 2px rgba(0, 0, 0, 0.3);
}
/* positioning */
.ui.paperclip {
position: absolute;
top: 10%;
left: -3px;
}
.ui.paperclip .paperclip {
position: absolute;
bottom: 10px;
left: -10px;
}
/* hidden */
.ui.paperclip.hidden {
display: none;
}
/* simple */
.ui.paperclip.simple .content,
.ui.paperclip.simple img {
border: none;
}
/* large */
.ui.paperclip.large img {
height: 140px;
}

319
components/semantic/src/elements/progress.css

@ -1,319 +0,0 @@
.ui.progress {
border: 1px solid #DDDDDD;
width: 100%;
max-width: 100%;
height: 35px;
background-color: #FAFAFA;
padding: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
.ui.progress .bar {
display: inline-block;
height: 100%;
background-color: #CCCCCC;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
-moz-box-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5) inset;
-webkit-box-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5) inset;
box-shadow: 0px 1px 0px rgba(255, 255, 255, 0.5) inset;
-webkit-transition:
width 1s ease-out,
background-color 1s ease-out
;
-moz-transition:
width 1s ease-out,
background-color 1s ease-out
;
-ms-transition:
width 1s ease-out,
background-color 1s ease-out
;
-o-transition:
width 1s ease-out,
background-color 1s ease-out
;
transition:
width 1s ease-out,
background-color 1s ease-out
;
}
/* Colors */
.ui.blue.progress .bar {
background-color: #6ECFF5;
}
/* Fluid Width */
.ui.fluid.progress {
width: 100%;
}
/* State */
.ui.successful.progress .bar {
background-color: #73E064 !important;
}
.ui.successful.progress .bar,
.ui.successful.progress .bar::after {
-webkit-animation: none !important;
-moz-animation: none !important;
}
.ui.failed.progress .bar {
background-color: #DF9BA4 !important;
}
.ui.failed.progress .bar,
.ui.failed.progress .bar::after {
-webkit-animation: none !important;
-moz-animation: none !important;
}
.ui.disabled.progress .bar,
.ui.disabled.progress .bar::after {
-webkit-animation: none !important;
-moz-animation: none !important;
}
/* Variations */
.ui.progress.striped .bar {
-webkit-background-size: 30px 30px;
-moz-background-size: 30px 30px;
background-size: 30px 30px;
background-image:
-webkit-gradient(linear, left top, right bottom,
color-stop(.25, rgba(255, 255, 255, .15)), color-stop(.25, transparent),
color-stop(.5, transparent), color-stop(.5, rgba(255, 255, 255, .15)),
color-stop(.75, rgba(255, 255, 255, .15)), color-stop(.75, transparent),
to(transparent)
)
;
background-image:
-webkit-linear-gradient(
135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
transparent 75%, transparent
)
;
background-image:
-moz-linear-gradient(
135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
transparent 75%, transparent
)
;
background-image:
-ms-linear-gradient(
135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
transparent 75%, transparent
)
;
background-image:
-o-linear-gradient(
135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
transparent 75%, transparent
)
;
background-image:
linear-gradient(
135deg, rgba(255, 255, 255, .15) 25%, transparent 25%,
transparent 50%, rgba(255, 255, 255, .15) 50%, rgba(255, 255, 255, .15) 75%,
transparent 75%, transparent
)
;
-webkit-animation: animate-striped 3s linear infinite;
-moz-animation: animate-striped 3s linear infinite;
}
@-webkit-keyframes animate-striped {
0% {
background-position: 0px 0;
}
100% {
background-position: 60px 0;
}
}
@-moz-keyframes animate-striped {
0% {
background-position: 0px 0;
}
100% {
background-position: 60px 0;
}
}
@keyframes animate-striped {
0% {
background-position: 0px 0;
}
100% {
background-position: 60px 0;
}
}
/* Shining animation */
.ui.shiny.progress .bar {
position: relative;
}
.ui.shiny.progress .bar::after {
content: '';
opacity: 0;
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
background: #FFFFFF;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
border-radius: 3px;
-webkit-animation: animate-shiny 2s ease-out infinite;
-moz-animation: animate-shiny 2s ease-out infinite;
}
@-webkit-keyframes animate-shiny {
0% {
opacity: 0;
width: 0;
}
50% {
opacity: 0.3;
}
100% {
opacity: 0;
width: 95%;
}
}
@-moz-keyframes animate-shiny {
0% {
opacity: 0;
width: 0;
}
50% {
opacity: 0.3;
}
100% {
opacity: 0;
width: 100%;
}
}
@keyframes animate-shiny {
0% {
opacity: 0;
width: 0;
}
50% {
opacity: 0.3;
}
100% {
opacity: 0;
width: 100%;
}
}
/* Glowing animation */
.ui.glowing.progress .bar {
-moz-box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.7) inset,
0px -5px 5px rgba(255, 255, 255, 0.7) inset
;
-webkit-box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.7) inset,
0px -5px 5px rgba(255, 255, 255, 0.7) inset
;
box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.7) inset,
0px -5px 5px rgba(255, 255, 255, 0.7) inset
;
-webkit-animation: animate-glow 1s ease-out infinite;
-moz-animation: animate-glow 1s ease-out infinite;
}
@-webkit-keyframes animate-glow {
0% {
-webkit-box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.7) inset,
0px -5px 5px rgba(255, 255, 255, 0.7) inset
;
box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.7) inset,
0px -5px 5px rgba(255, 255, 255, 0.7) inset
;
}
50% {
-webkit-box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.3) inset,
0px -5px 5px rgba(255, 255, 255, 0.3) inset
;
box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.3) inset,
0px -5px 5px rgba(255, 255, 255, 0.3) inset
;
}
100% {
-webkit-box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.7) inset,
0px -5px 5px rgba(255, 255, 255, 0.7) inset
;
box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.7) inset,
0px -5px 5px rgba(255, 255, 255, 0.7) inset
;
}
}
@-moz-keyframes animate-glow {
0% {
-moz-box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.7) inset,
0px -5px 5px rgba(255, 255, 255, 0.7) inset
;
box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.7) inset,
0px -5px 5px rgba(255, 255, 255, 0.7) inset
;
}
50% {
-moz-box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.3) inset,
0px -5px 5px rgba(255, 255, 255, 0.3) inset
;
box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.3) inset,
0px -5px 5px rgba(255, 255, 255, 0.3) inset
;
}
100% {
-moz-box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.7) inset,
0px -5px 5px rgba(255, 255, 255, 0.7) inset
;
box-shadow:
0px 5px 5px rgba(255, 255, 255, 0.7) inset,
0px -5px 5px rgba(255, 255, 255, 0.7) inset
;
}
}

68
components/semantic/src/elements/segment.css

@ -1,68 +0,0 @@
/*******************************
Page Segments
*******************************/
.ui.segment {
position: relative;
background-color: #FFFFFF;
-webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.1);
padding: 1em;
-webkit-border-radius: 5px 5px 5px 5px;
-moz-border-radius: 5px 5px 5px 5px;
border-radius: 5px 5px 5px 5px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
overflow: hidden;
}
/* Label at the top of a segment */
.ui.segment div:first-child {
margin-top: 0px;
}
.ui.segment .attached.label:first-child + * {
margin-top: 2em;
}
.ui.segment .bottom.attached.label:first-child + * {
margin-top: 0em;
}
.ui.segment.attached {
top: -1px;
bottom: -1px;
-moz-border-radius: 0px;
-webkit-border-radius: 0px;
border-radius: 0px;
-moz-box-shadow: 0px 0px 0px 1px #DDDDDD;
-webkit-box-shadow: 0px 0px 0px 1px #DDDDDD;
box-shadow: 0px 0px 0px 1px #DDDDDD;
}
.ui.top.attached.segment {
top: 0px;
bottom: -1px;
-moz-border-radius: 5px 5px 0px 0px;
-webkit-border-radius: 5px 5px 0px 0px;
border-radius: 5px 5px 0px 0px;
}
.ui.segment.bottom.attached {
top: -1px;
bottom: 0px;
-moz-border-radius: 0px 0px 5px 5px;
-webkit-border-radius: 0px 0px 5px 5px;
border-radius: 0px 0px 5px 5px;
}
/* Common Views */
.ui.segment .list li {
padding: 10px 25px;
}

295
components/semantic/src/elements/step.css

@ -1,295 +0,0 @@
.ui.steps {
display: inline-block;
font-size: 0px;
-moz-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.15);
-webkit-box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.15);
box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.15);
-moz-border-radius: 4px;
-webkit-border-radius: 4px;
border-radius: 4px;
}
.ui.steps .step {
display: inline-block;
position: relative;
padding: 13px 23px 13px 40px;
background-color: #F3F3F3;
background: -webkit-linear-gradient(top, #FFFFFF 0%, #EFEFEF 100%);
background: -moz-linear-gradient(top, #FFFFFF 0%, #EFEFEF 100%);
background: -o-linear-gradient(top, #FFFFFF 0%, #EFEFEF 100%);
background: -ms-linear-gradient(top, #FFFFFF 0%, #EFEFEF 100%);
background: linear-gradient(top, #FFFFFF 0%, #EFEFEF 100%);
color: #555555;
text-shadow: 0px -1px 0px rgba(255, 255, 255, 0.8);
}
.ui.steps .step:after {
position: absolute;
content: '';
z-index: 2;
top: 7px;
right: -16px;
width: 32px;
height: 31px;
background-color: #F3F3F3;
background: -webkit-linear-gradient(left top, #FFFFFF 0%, #EFEFEF 100%);
background: -moz-linear-gradient(left top, #FFFFFF 0%, #EFEFEF 100%);
background: -o-linear-gradient(left top, #FFFFFF 0%, #EFEFEF 100%);
background: -ms-linear-gradient(left top, #FFFFFF 0%, #EFEFEF 100%);
background: linear-gradient(left top, #FFFFFF 0%, #EFEFEF 100%);
-moz-box-shadow:
1px -1px 1px rgba(0, 0, 0, 0.1),
1px -1px 1px rgba(255, 255, 255, 0.6)
;
-webkit-box-shadow:
1px -1px 1px rgba(0, 0, 0, 0.1),
1px -1px 1px rgba(255, 255, 255, 0.6)
;
box-shadow:
1px -1px 1px rgba(0, 0, 0, 0.1),
1px -1px 1px rgba(255, 255, 255, 0.6)
;
-moz-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
.ui.steps .step:first-child {
padding-left: 20px;
-webkit-border-radius: 5px 0px 0px 5px;
-moz-border-radius: 5px 0px 0px 5px;
border-radius: 5px 0px 0px 5px;
}
.ui.steps .step:last-child {
-webkit-border-radius: 0px 5px 5px 0px;
-moz-border-radius: 0px 5px 5px 0px;
border-radius: 0px 5px 5px 0px;
}
.ui.steps .step:last-child {
margin-right: 0px;
}
.ui.steps .step:last-child:after {
width: 0px !important;
height: 0px !important;
}
/*******************************
Variations
*******************************/
/* Attached */
.attached.ui.steps {
margin: 0px;
-webkit-border-radius: 4px 4px 0px 0px;
-moz-border-radius: 4px 4px 0px 0px;
border-radius: 4px 4px 0px 0px;
}
.attached.ui.steps .step:first-child {
-webkit-border-radius: 4px 0px 0px 0px;
-moz-border-radius: 4px 0px 0px 0px;
border-radius: 4px 0px 0px 0px;
}
.attached.ui.steps .step:last-child {
-webkit-border-radius: 0px 4px 0px 0px;
-moz-border-radius: 0px 4px 0px 0px;
border-radius: 0px 4px 0px 0px;
}
/* Bottom Side */
.bottom.attached.ui.steps {
margin-top: -1px;
-webkit-border-radius: 0px 0px 4px 4px;
-moz-border-radius: 0px 0px 4px 4px;
border-radius: 0px 0px 4px 4px;
}
.bottom.attached.ui.steps .step:first-child {
-webkit-border-radius: 0px 0px 0px 4px;
-moz-border-radius: 0px 0px 0px 4px;
border-radius: 0px 0px 0px 4px;
}
.bottom.attached.ui.steps .step:last-child {
-webkit-border-radius: 0px 0px 4px 0px;
-moz-border-radius: 0px 0px 4px 0px;
border-radius: 0px 0px 4px 0px;
}
/* Fluid */
.ui.steps.fluid,
.ui.steps.fluid > .step {
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
.ui.steps.two.fluid > .step {
width: 50%;
}
.ui.steps.three.fluid > .step {
width: 33.333%;
}
.ui.steps.four.fluid > .step {
width: 25%;
}
.ui.steps.five.fluid > .step {
width: 20%;
}
.ui.steps.six.fluid > .step {
width: 16.666%;
}
.ui.steps.seven.fluid > .step {
width: 14.285%;
}
.ui.steps.eight.fluid > .step {
width: 12.500%;
}
/*******************************
Sizes
*******************************/
.ui.steps .step {
font-size: 13px;
font-weight: bold;
}
/*******************************
States
*******************************/
/* Hover */
.ui.steps .hover.step {
cursor: pointer;
background: -webkit-linear-gradient(top, #FFFFFF 0%, #F0F0F0 100%);
background: -moz-linear-gradient(top, #FFFFFF 0%, #F0F0F0 100%);
background: -o-linear-gradient(top, #FFFFFF 0%, #F0F0F0 100%);
background: -ms-linear-gradient(top, #FFFFFF 0%, #F0F0F0 100%);
background: linear-gradient(top, #FFFFFF 0%, #F0F0F0 100%);
-moz-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
-webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
}
.ui.steps .hover.step:after {
cursor: pointer;
background: -webkit-linear-gradient(top left, #FFFFFF 0%, #F0F0F0 100%);
background: -moz-linear-gradient(top left, #FFFFFF 0%, #F0F0F0 100%);
background: -o-linear-gradient(top left, #FFFFFF 0%, #F0F0F0 100%);
background: -ms-linear-gradient(top left, #FFFFFF 0%, #F0F0F0 100%);
background: linear-gradient(top left, #FFFFFF 0%, #F0F0F0 100%);
-moz-box-shadow: 2px -2px 1px rgba(0, 0, 0, 0.2);
-webkit-box-shadow: 2px -2px 1px rgba(0, 0, 0, 0.2);
box-shadow: 2px -2px 1px rgba(0, 0, 0, 0.2);
}
.ui.steps .hover.step:before {
position: absolute;
top: 7px;
left: -15px;
width: 32px;
height: 31px;
content: '';
background-color: transparent;
background-image: none;
-moz-box-shadow: -1px 1px 1px 0px rgba(0, 0, 0, 0.1) inset;
-webkit-box-shadow: -1px 1px 1px 0px rgba(0, 0, 0, 0.1) inset;
box-shadow: -1px 1px 1px 0px rgba(0, 0, 0, 0.1) inset;
-moz-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
z-index: 2;
}
.ui.steps .hover:first-child:before {
width: 0px;
height: 0px;
}
/* Down */
.ui.steps .down.step {
background: -webkit-linear-gradient(top, #F0F0F0 0%, #FFFFFF 100%);
background: -moz-linear-gradient(top, #F0F0F0 0%, #FFFFFF 100%);
background: -o-linear-gradient(top, #F0F0F0 0%, #FFFFFF 100%);
background: -ms-linear-gradient(top, #F0F0F0 0%, #FFFFFF 100%);
background: linear-gradient(top, #F0F0F0 0%, #FFFFFF 100%);
}
.ui.steps .down.step:after {
background: -webkit-linear-gradient(top left, #F0F0F0 0%, #FFFFFF 100%);
background: -moz-linear-gradient(top left, #F0F0F0 0%, #FFFFFF 100%);
background: -o-linear-gradient(top left, #F0F0F0 0%, #FFFFFF 100%);
background: -ms-linear-gradient(top left, #F0F0F0 0%, #FFFFFF 100%);
background: linear-gradient(top left, #F0F0F0 0%, #FFFFFF 100%);
}
/* Active */
.ui.steps .active.step {
cursor: auto;
background-color: #009FDA;
background: -webkit-linear-gradient(top, #009FDA 0%, #00B3F5 100%);
background: -moz-linear-gradient(top, #009FDA 0%, #00B3F5 100%);
background: -o-linear-gradient(top, #009FDA 0%, #00B3F5 100%);
background: -ms-linear-gradient(top, #009FDA 0%, #00B3F5 100%);
background: linear-gradient(top, #009FDA 0%, #00B3F5 100%);
color: #FFFFFF;
text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.35) inset;
-webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.35) inset;
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.35) inset;
}
.ui.steps .active.step:before {
position: absolute;
top: 7px;
left: -16px;
content: '';
width: 32px;
height: 31px;
background-color: transparent;
background-image: none;
-moz-box-shadow: 2px -2px 1px rgba(0, 0, 0, 0.25);
-webkit-box-shadow: 2px -2px 1px rgba(0, 0, 0, 0.25);
box-shadow: 2px -2px 1px rgba(0, 0, 0, 0.25);
-moz-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
.ui.steps .active.step:first-child:before {
width: 0px;
height: 0px;
}
.ui.steps .active.step:after {
background-color: #009FDA;
background: -webkit-linear-gradient(left top, #009FDA 0%, #00B3F5 100%);
background: -moz-linear-gradient(left top, #009FDA 0%, #00B3F5 100%);
background: -o-linear-gradient(left top, #009FDA 0%, #00B3F5 100%);
background: -ms-linear-gradient(left top, #009FDA 0%, #00B3F5 100%);
background: linear-gradient(left top, #009FDA 0%, #00B3F5 100%);
-moz-box-shadow: -2px 2px 2px rgba(0, 0, 0, 0.15) inset;
-webkit-box-shadow: -2px 2px 2px rgba(0, 0, 0, 0.15) inset;
box-shadow: -2px 2px 2px rgba(0, 0, 0, 0.15) inset;
}
/* Disabled */
.ui.steps .disabled.step {
color: #BBBBBB;
}

99
components/semantic/src/elements/throbber.css

@ -1,99 +0,0 @@
/*******************************
Global Throbber Styles
*******************************/
/* Standard Size */
.ui.throbber {
display: inline-block;
width: 32px;
height: 32px;
background: url(../images/throbber-medium.gif) no-repeat;
background-position: 48% 0px;
}
.ui.throbber.center {
position: absolute;
top: 50%;
left: 50%;
margin: -16px 0px 0px -16px;
z-index: 1000;
}
/* Large Size */
.ui.throbber.large {
width: 64px;
height: 64px;
background-image: url(../images/throbber-large.gif);
}
.ui.throbber.large.center {
margin: -32px 0px 0px -32px;
}
/* Small Size */
.ui.throbber.small {
width: 24px;
height: 24px;
background-image: url(../images/throbber-small.gif);
}
.ui.throbber.small.center {
margin: -12px 0px 0px -12px;
}
/* Tiny Size */
.ui.throbber.tiny {
width: 16px;
height: 16px;
background-image: url(../images/throbber-tiny.gif);
}
.ui.throbber.tiny.center {
margin: -8px 0px 0px -8px;
}
/* Text Styles */
.ui.throbber.text {
width: auto !important;
height: auto !important;
text-align: center;
font-style: normal;
color: #422256;
margin-top: -28px;
min-width: 32px;
padding-top: 40px;
font-size: 12px;
font-weight: bold;
}
.ui.throbber.text.tiny {
margin-top: -16px;
min-width: 16px;
padding-top: 20px;
font-size: 9px;
}
.ui.throbber.text.small {
margin-top: -23px;
min-width: 24px;
padding-top: 32px;
font-size: 11px;
}
.ui.throbber.text.large {
margin-top: -46px;
min-width: 64px;
padding-top: 80px;
font-size: 14px;
}
/* Blue */
.ui.throbber.text.blue {
color: #FFFFFF
}
.ui.throbber.tiny.blue {
background-image: url(../images/throbber-blue-tiny.gif);
}
.ui.throbber.small.blue {
background-image: url(../images/throbber-blue-small.gif);
}
.ui.throbber.blue {
background-image: url(../images/throbber-blue-medium.gif);
}
.ui.throbber.large.blue {
background-image: url(../images/throbber-blue-large.gif);
}

80
components/semantic/src/elements/well.css

@ -1,80 +0,0 @@
/*******************************
Content Well
*******************************/
.ui.well {
display: inline-block;
padding: 6px;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
-webkit-box-shadow:
0px -1px 0px rgba(0, 0, 0, 0.05) inset,
0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset
;
-moz-box-shadow:
0px -1px 0px rgba(0, 0, 0, 0.05) inset,
0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset
;
box-shadow:
0px -1px 0px rgba(0, 0, 0, 0.05) inset,
0px 0px 0px 1px rgba(0, 0, 0, 0.1) inset
;
background-image: linear-gradient(top, rgba(80, 80, 80, 0.24) 0%, rgba(119, 119, 119, 0.24) 100%);
background-image: -webkit-linear-gradient(top, rgba(80, 80, 80, 0.24) 0%, rgba(119, 119, 119, 0.24) 100%);
background-image: -moz-linear-gradient(top, rgba(80, 80, 80, 0.24) 0%, rgba(119, 119, 119, 0.24) 100%);
background-image: -o-linear-gradient(top, rgba(80, 80, 80, 0.24) 0%, rgba(119, 119, 119, 0.24) 100%);
background-image: -ms-linear-gradient(top, rgba(80, 80, 80, 0.24) 0%, rgba(119, 119, 119, 0.24) 100%);
background-image: linear-gradient(top, rgba(80, 80, 80, 0.24) 0%, rgba(119, 119, 119, 0.24) 100%);
}
.ui.well .button {
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
}
/* Lighter Color Well */
.ui.light.well {
background-image: linear-gradient(top, rgba(80, 80, 80, 0.14) 0%, rgba(119, 119, 119, 0.14) 100%);
background-image: -webkit-linear-gradient(top, rgba(80, 80, 80, 0.14) 0%, rgba(119, 119, 119, 0.14) 100%);
background-image: -moz-linear-gradient(top, rgba(80, 80, 80, 0.14) 0%, rgba(119, 119, 119, 0.14) 100%);
background-image: -o-linear-gradient(top, rgba(80, 80, 80, 0.14) 0%, rgba(119, 119, 119, 0.14) 100%);
background-image: -ms-linear-gradient(top, rgba(80, 80, 80, 0.14) 0%, rgba(119, 119, 119, 0.14) 100%);
background-image: linear-gradient(top, rgba(80, 80, 80, 0.14) 0%, rgba(119, 119, 119, 0.14) 100%);
}
/* Shallow Well */
.ui.shallow.well {
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
padding: 4px;
}
.ui.shallow.well .button {
border-radius: 4px;
}
/* Deeper Well */
.ui.deep.well {
-webkit-border-radius: 50px;
-moz-border-radius: 50px;
border-radius: 50px;
padding: 10px;
}
.ui.deep.well .button {
border-radius: 50px;
}
/* Fluid Width */
.ui.well.fluid,
.ui.well.fluid .button {
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}

1
components/semantic/src/fonts/icons.eot.REMOVED.git-id

@ -1 +0,0 @@
25066de069a62374b39f220581d1314fa60a5f45

1
components/semantic/src/fonts/icons.svg.REMOVED.git-id

@ -1 +0,0 @@
b9c54d022b2628b920f09afd4cb10d4dc0ce0d17

1
components/semantic/src/fonts/icons.ttf.REMOVED.git-id

@ -1 +0,0 @@
318a2643d3af55fe51b472e7769b99caf74ff7b0

BIN
components/semantic/src/fonts/icons.woff

Binary file not shown.

BIN
components/semantic/src/images/button-error.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

BIN
components/semantic/src/images/footnote.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1000 B

BIN
components/semantic/src/images/loader-generic-transparent.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 673 B

BIN
components/semantic/src/images/notecard-stripes.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 974 B

BIN
components/semantic/src/images/paperclip.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

BIN
components/semantic/src/images/placeholder-subtle.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

BIN
components/semantic/src/images/placeholder-tiny.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

BIN
components/semantic/src/images/placeholder.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

BIN
components/semantic/src/images/throbber-blue-large.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

BIN
components/semantic/src/images/throbber-blue-medium.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

BIN
components/semantic/src/images/throbber-blue-small.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

BIN
components/semantic/src/images/throbber-blue-tiny.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

BIN
components/semantic/src/images/throbber-large.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

BIN
components/semantic/src/images/throbber-medium-white.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

BIN
components/semantic/src/images/throbber-medium.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

BIN
components/semantic/src/images/throbber-small.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

BIN
components/semantic/src/images/throbber-tiny.gif

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

92
components/semantic/src/modules/accordion.css

@ -1,92 +0,0 @@
.ui.accordion {
}
.ui.accordion .title {
cursor: pointer;
font-size: 16px;
font-weight: bold;
color: #3E2151;
margin-top: 8px;
padding: 8px 8px;
border: 1px solid transparent;
border-top: 1px solid #E0E0E0;
-webkit-box-shadow: 0px 1px 0px #FFFFFF inset;
-moz-box-shadow: 0px 1px 0px #FFFFFF inset;
box-shadow: 0px 1px 0px #FFFFFF inset;
transition: color 0.2s ease-out;
}
.ui.accordion .title:first-child {
margin-top: 0px;
border-top-color: transparent;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.ui.accordion .title:hover,
.ui.accordion .title.active {
color: #335687;
}
.ui.accordion .title.active {
background-color: #E0E0E0;
border: 1px solid #BBBBBB;
-webkit-box-shadow: 0px 1px 0px #FFFFFF inset;
-moz-box-shadow: 0px 1px 0px #FFFFFF inset;
box-shadow: 0px 1px 0px #FFFFFF inset;
color: #335687;
}
.ui.accordion .icon {
margin: 0px 4px 4px 2px;
display: inline-block;
text-indent: -9999px;
vertical-align: middle;
border-top: 4px solid transparent;
border-bottom: 4px solid transparent;
border-left: 6px solid #3E2151;
border-right: 4px solid transparent;
}
.ui.accordion .title:hover .icon {
border-left-color: #335687;
}
.ui.accordion .title.active .icon {
border-left: 4px solid transparent;
border-top: 6px solid #335687;
margin-left: 0px;
margin-bottom: 0px;
}
.ui.accordion .content {
display: none;
padding: 10px 20px;
margin: 0px;
font-size: 12px;
line-height: 2;
}
.ui.accordion .content p {
margin: 12px 0px;
font-size: 12px;
}
.ui.accordion .content.active {
display: block;
background-color: #EEEEEE;
-webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.25) inset;
-moz-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.25) inset;
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.25) inset;
}
/* Connected Accordion */
.ui.accordion.connected {
background-color: #FAFAFA;
border: 1px solid #DDDDDD;
}
.ui.accordion.connected .title {
margin-top: 0px;
}

196
components/semantic/src/modules/accordion.js

@ -1,196 +0,0 @@
/* ******************************
Accordion
Author: Jack Lukic
Notes: First Commit July 19, 2012
Simple accordion design
****************************** */
;(function ($, window, document, undefined) {
$.fn.accordion = function(parameters) {
var
settings = $.extend(true, {}, $.fn.accordion.settings, parameters),
// hoist arguments
moduleArguments = arguments || false
;
$(this)
.each(function() {
var
$module = $(this),
$title = $module.find(settings.selector.title),
$icon = $module.find(settings.selector.icon),
$content = $module.find(settings.selector.content),
instance = $module.data('module'),
className = settings.className,
module
;
module = {
initialize: function() {
// initializing
$title
.on('click', module.change)
;
$module
.data('module', module)
;
},
change: function() {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content),
contentIsOpen = $activeTitle.hasClass(className.active)
;
if(contentIsOpen) {
if(settings.collapsible) {
$.proxy(module.close, $activeTitle)();
}
}
else {
$.proxy(module.open, $activeTitle)();
}
},
open: function() {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content),
$currentTitle = $title.filter('.' + className.active),
$currentContent = $currentTitle.next($title)
;
if(settings.exclusive && $currentTitle.size() > 0) {
$currentTitle
.removeClass('active')
;
$currentContent
.stop()
.slideUp(settings.speed , settings.easing, function() {
$(this)
.removeClass('active')
.removeAttr('style')
;
})
;
}
$activeTitle
.addClass(className.active)
;
$activeContent
.hide()
.addClass(className.active)
.stop()
.slideDown(settings.speed, settings.easing, function() {
$(this)
.removeAttr('style')
;
})
;
},
close: function() {
var
$activeTitle = $(this),
$activeContent = $activeTitle.next($content)
;
$activeTitle
.removeClass(className.active)
;
$activeContent
.removeClass(className.active)
.show()
.stop()
.slideUp(settings.speed, settings.easing, function(){
$(this)
.removeAttr('style')
;
})
;
},
debug: function(message) {
if(settings.debug) {
console.info(settings.moduleName + ': ' + message);
}
},
error: function(errorMessage) {
console.warn(settings.moduleName + ': ' + errorMessage);
},
invoke: function(methodName, context, methodArguments) {
var
method
;
methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 );
if(typeof methodName == 'string' && instance !== undefined) {
methodName = methodName.split('.');
$.each(methodName, function(index, name) {
if( $.isPlainObject( instance[name] ) ) {
instance = instance[name];
return true;
}
else if( $.isFunction( instance[name] ) ) {
method = instance[name];
return true;
}
module.error(settings.errors.method);
return false;
});
}
if ( $.isFunction( method ) ) {
return method.apply(context, methodArguments);
}
// return retrieved variable or chain
return method;
}
};
// calling a method
if(instance !== undefined && moduleArguments) {
// simpler than invoke realizing to invoke itself (and losing scope due prototype.call()
if(moduleArguments[0] == 'invoke') {
moduleArguments = Array.prototype.slice.call( moduleArguments, 1 );
}
return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
}
// initializing
module.initialize();
})
;
return this;
};
$.fn.accordion.settings = {
moduleName : 'Accordion',
debug : false,
exclusive : true,
collapsible : true,
errors: {
method : 'The method you called is not defined'
},
className : {
active : 'active',
hover : 'hover'
},
selector : {
title : '.title',
icon : '.icon',
content : '.content'
},
speed : 500,
easing : 'easeInOutQuint'
};
})( jQuery, window , document );

247
components/semantic/src/modules/behavior/animation.js

@ -1,247 +0,0 @@
/* ******************************
Animation
Author: Jack Lukic
Notes: First Commit May 24, 2012
A collection of FX/Animations
****************************** */
;(function ( $, window, document, undefined ) {
// handles simplification of animation settings
$.animationSettings = function(settings, duration, easing, complete) {
// no parameters
if(duration === undefined) {
settings = settings;
}
// duration is actually settings object
else if(typeof duration == 'object') {
settings = $.extend({} , settings, duration);
}
// easing is actually complete callback
else if(typeof easing == 'function') {
settings = $.extend({} , settings, {
duration: duration,
complete: easing
});
}
// easing is actually settings
else if(typeof easing == 'object') {
settings = $.extend(true, {} , settings, {duration: duration}, easing);
}
//
else {
settings = $.extend({} , settings, {
duration : duration,
easing : easing,
complete : complete
});
}
return settings;
};
/* ******************************
Pop In -
Animates one at a time
scaling in
****************************** */
$.fn.popIn = function(duration, easing, complete) {
var
settings = $.animationSettings($.fn.popIn.settings, duration, easing, complete),
$this = $(this),
totalElements = $this.size(),
currentElement = 0,
callback = function() {
var
elementsDoneAnimating = ($this.filter(':animated').size() == 0)
;
currentElement++;
$(this)
.css('transform', '')
.removeClass(settings.className.init)
;
$.proxy(settings.eachComplete, this)();
if(currentElement == totalElements) {
$.proxy(settings.complete, $this)();
}
},
animate = function(index) {
$(this)
.delay(settings.delay * index)
.animate({
opacity : settings.endOpacity,
transform : 'scale('+ settings.endScale +')'
}, settings.duration, settings.easing, callback)
;
}
;
if(settings.isLegacyBrowser) {
$this
.show()
;
}
else {
$this
.addClass(settings.className.init)
.show()
.css({
opacity : settings.startOpacity,
transform : 'scale('+ settings.startScale +')'
})
.each(animate)
;
}
return $(this);
};
$.fn.popOut = function(duration, easing, complete) {
var
parameters = $.animationSettings($.fn.popIn.settings, duration, easing, complete),
// flip some defaults
defaults = {
complete: function() {
$(this).hide();
$.proxy(parameters.complete, this)();
},
startOpacity : parameters.endOpacity,
endOpacity : 0,
startScale : parameters.endScale,
endScale : parameters.startScale
},
settings = $.extend(true, {}, parameters, defaults)
;
$(this)
.popIn(settings)
;
};
$.fn.popIn.settings = {
// legacy browser
isLegacyBrowser: false,
// class given until animation ends
className: {
init : 'init'
},
// duration of each animation
duration : 450,
// easing for animation
easing : 'easeOutExpo',
// delay before each
delay : 100,
startOpacity : 0,
endOpacity : 1,
startScale : 0.7,
endScale : 1,
// called after each element completes
eachComplete : function(){},
// called after entire chain of animation completes
complete : function(){}
};
$.fn.kenBurns = function(duration, easing, complete) {
var
settings = $.animationSettings($.fn.kenBurns.settings, duration, easing, complete),
module = {
randomPosition: function(starting, rangeMin, rangeMax) {
var
rangeMax = (rangeMax !== undefined)
? rangeMax
: rangeMin,
number = Math.random() * ((starting + rangeMax) - (starting - rangeMin) ) + (starting - rangeMin)
;
return parseInt(number, 10);
},
animate: function() {
var
startingPosition = {},
endingPosition = {},
startingScale,
endingScale
;
startingPosition = (settings.useStartPosition)
? {
x: parseInt( $(this).css('background-position-x'), 10),
y: parseInt( $(this).css('background-position-y'), 10)
}
: {
x: module.randomPosition(50, settings.xRange),
y: module.randomPosition(50, settings.yRange)
}
;
// determine direction of animation based on origin position
endingPosition.x = (startingPosition.x > 50)
? module.randomPosition(startingPosition.x, settings.xMaxTravelDistance, -settings.xMinTravelDistance)
: module.randomPosition(startingPosition.x, -settings.xMinTravelDistance, settings.xMaxTravelDistance)
;
endingPosition.y = (startingPosition.y > 50)
? module.randomPosition(startingPosition.y, settings.yMaxTravelDistance, -settings.yMinTravelDistance)
: module.randomPosition(startingPosition.y, -settings.yMinTravelDistance, settings.yMaxTravelDistance)
;
/*console.log(startingPosition.x + '% ' + startingPosition.y + '%');
console.log(endingPosition.x + '% ' + endingPosition.y + '%');*/
$(this)
.css({
backgroundPosition: startingPosition.x + '%',
backgroundPositionY: startingPosition.y + '%'
})
.stop()
.animate({
backgroundPosition: endingPosition.x + '%',
backgroundPositionY: endingPosition.y + '%'
}, settings.duration, settings.easing, settings.complete)
;
}
}
;
if(!settings.isLegacyBrowser) {
$(this)
.each(module.animate)
;
}
return $(this);
};
$.fn.kenBurns.settings = {
// legacy browser
isLegacyBrowser : false,
// duration of animation
duration : 10000,
// easing for animation
easing : 'linear',
useStartPosition : false,
xRange : 40,
yRange : 20,
xMinTravelDistance : 30,
xMaxTravelDistance : 60,
yMinTravelDistance : 20,
yMaxTravelDistance : 40,
// not yet implemented, need css hook for background-size
scale : 0.1,
// called after entire chain of animation completes
complete : function(){}
};
})( jQuery, window , document );

515
components/semantic/src/modules/behavior/api.js

@ -1,515 +0,0 @@
/* ******************************
API
Author: Jack Lukic
Notes: First Commit May 08, 2012
These are modules which bind API functionality to the DOM
Requires: nada
Initialization:
$('.button')
.apiButton({
success: function() {}
})
;
in our example api is automapped to an object literal
@ quirky.config.endpoint.api
HTML:
<div class="button" action="follow" data-id="5">
URL : quirky.config.endpoint.api.follow
Given Value: /follow/{$id}/
Sent Value : /follow/5/
(4 ways to map api endpoint, each will be looked for in succession)
url mapping order:
first : defined in plugin init as url (arbitrary url)
second : defined in plugin init as action (action in obj literal grouping 'api')
third : defined in data-url
fourth : defined in data-action
beforeSend:
this callback can be used to modify request settings before XHR
it also can be used to look for for pre-conditions to prevent API
call by returning "false"
****************************** */
;(function ( $, window, document, undefined ) {
$.api = $.fn.api = function(parameters) {
var
settings = $.extend(true, {}, $.api.settings, parameters),
// if this keyword isn't a jQuery object, create one
context = (typeof this != 'function')
? this
: $('<div/>'),
// context defines the element used for loading/error state
$context = (settings.stateContext)
? $(settings.stateContext)
: $(context),
// module is the thing that initiates the api action, can be independent of context
$module = typeof this == 'object'
? $(context)
: $context,
action = $module.data(settings.metadata.action) || settings.action || false,
className = settings.className,
metadata = settings.metadata,
errors = settings.errors,
module
;
module = {
initialize: function() {
var
exitConditions = false,
runSettings,
loadingTimer = new Date().getTime(),
loadingDelay,
promise,
url,
urlVariables,
formData = {},
data,
ajaxSettings = {},
xhr,
errors = settings.errors
;
// serialize parent form if requested!
if(settings.serializeForm && $(this).toJSON() !== undefined) {
formData = $module
.closest('form')
.toJSON()
;
$.extend(true, settings.data, formData);
module.debug('Adding form data to API Request', formData);
}
// let beforesend change settings object
runSettings = $.proxy(settings.beforeSend, $module)(settings);
// check for exit conditions
if(runSettings !== undefined && !runSettings) {
module.error(errors.beforeSend);
module.reset();
return;
}
if(action) {
module.debug('Initializing API Request for: ', action);
if(settings.api[action] !== undefined) {
url = settings.api[action];
}
else {
module.error(errors.missingAction);
}
}
// override with url if specified
if(settings.url) {
url = settings.url;
module.debug('Using specified url: ', url);
}
if(!url) {
module.error(errors.missingURL);
module.reset();
}
// replace url data in url
urlVariables = url.match(settings.regExpTemplate);
if(urlVariables) {
module.debug('Looking for URL variables', urlVariables);
$.each(urlVariables, function(index, templateValue){
var
term = templateValue.substr( 2, templateValue.length - 3),
termValue = ($.isPlainObject(parameters.urlData) && parameters.urlData[term] !== undefined)
? parameters.urlData[term]
: ($module.data(term) !== undefined)
? $module.data(term)
: settings.urlData[term]
;
module.verbose('Looking for variable', term, $module, $module.data(term), settings.urlData[term]);
// remove optional value
if(termValue === false) {
module.debug('Removing variable from URL', urlVariables);
url = url.replace('/' + templateValue, '');
}
// undefined condition
else if(termValue === undefined || !termValue) {
module.error(errors.missingParameter + term);
exitConditions = true;
}
else {
url = url.replace(templateValue, termValue);
}
});
}
// exit conditions reached from missing url parameters
if( exitConditions ) {
module.reset();
return;
}
// promise handles notification on api request, so loading min. delay can occur for all notifications
promise =
$.Deferred()
.always(function() {
if(settings.stateContext) {
$context
.removeClass(className.loading)
;
}
$.proxy(settings.complete, $module)();
})
.done(function(response) {
module.debug('API request successful');
// take a stab at finding success state if json
if(settings.dataType == 'json') {
if(response.success === true) {
$.proxy(settings.success, $context)(response, settings, $module);
}
else {
module.debug('JSON success flag is not set.');
if (response.error !== undefined) {
$.proxy(settings.failure, $context)(response.error, settings, $module);
}
else if ($.isArray(response.errors)) {
$.proxy(settings.failure, $context)(response.errors[0], settings, $module);
}
else if(response.message !== undefined) {
$.proxy(settings.failure, $context)(response.message, settings, $module);
}
else {
$.proxy(settings.failure, $context)(errors.error, settings, $module);
}
}
}
// otherwise
else {
$.proxy(settings.success, $context)(response, settings, $module);
}
})
.fail(function(xhr, status, httpMessage) {
var
errorMessage = (settings.errors[status] !== undefined)
? settings.errors[status]
: httpMessage,
response
;
// let em know unless request aborted
if(xhr !== undefined) {
// readyState 4 = done, anything less is not really sent
if(xhr.readyState !== undefined && xhr.readyState == 4) {
// if http status code returned and json returned error, look for it
if( xhr.status != 200 && httpMessage !== undefined && httpMessage !== '') {
module.error(errors.statusMessage + httpMessage);
}
else {
if(status == 'error' && settings.dataType == 'json') {
try {
response = $.parseJSON(xhr.responseText);
if(response && response.error !== undefined) {
errorMessage = response.error;
}
}
catch(error) {
module.error(errors.JSONParse);
}
}
}
$context
.removeClass(className.loading)
.addClass(className.error)
;
// show error state only for duration specified in settings
if(settings.errorLength > 0) {
setTimeout(function(){
$context
.removeClass(className.error)
;
}, settings.errorLength);
}
module.debug('API Request error:', errorMessage);
$.proxy(settings.failure, $context)(errorMessage, settings, this);
}
else {
module.debug('Request Aborted (Most likely caused by page change)');
}
}
})
;
// look for params in data
$.extend(true, ajaxSettings, settings, {
type : settings.method || settings.type,
data : data,
url : url,
beforeSend : settings.beforeXHR
});
if(settings.stateContext) {
$context
.addClass(className.loading)
;
}
if(settings.progress) {
module.verbose('Adding progress events');
$.extend(true, ajaxSettings, {
xhr: function() {
var
xhr = new window.XMLHttpRequest()
;
xhr.upload.addEventListener('progress', function(event) {
var
percentComplete
;
if (event.lengthComputable) {
percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%';
$.proxy(settings.progress, $context)(percentComplete, event);
}
}, false);
xhr.addEventListener('progress', function(event) {
var
percentComplete
;
if (event.lengthComputable) {
percentComplete = Math.round(event.loaded / event.total * 10000) / 100 + '%';
$.proxy(settings.progress, $context)(percentComplete, event);
}
}, false);
return xhr;
}
});
}
module.verbose('Creating AJAX request with settings: ', ajaxSettings);
xhr =
$.ajax(ajaxSettings)
.always(function() {
// calculate if loading time was below minimum threshold
loadingDelay = ( settings.loadingLength - (new Date().getTime() - loadingTimer) );
settings.loadingDelay = loadingDelay < 0
? 0
: loadingDelay
;
})
.done(function(response) {
var
context = this
;
setTimeout(function(){
promise.resolveWith(context, [response]);
}, settings.loadingDelay);
})
.fail(function(xhr, status, httpMessage) {
var
context = this
;
// page triggers abort on navigation, dont show error
if(status != 'abort') {
setTimeout(function(){
promise.rejectWith(context, [xhr, status, httpMessage]);
}, settings.loadingDelay);
}
else {
$context
.removeClass(className.error)
.removeClass(className.loading)
;
}
})
;
if(settings.stateContext) {
$module
.data(metadata.promise, promise)
.data(metadata.xhr, xhr)
;
}
},
// reset api request
reset: function() {
$module
.data(metadata.promise, false)
.data(metadata.xhr, false)
;
$context
.removeClass(className.error)
.removeClass(className.loading)
;
module.error(errors.exitConditions);
},
/* standard module */
setting: function(name, value) {
if(value === undefined) {
return settings[name];
}
settings[name] = value;
},
verbose: function() {
if(settings.verbose) {
module.debug.apply(this, arguments);
}
},
debug: function() {
var
output = [],
message = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.info || console.log || function(){}
;
log = Function.prototype.bind.call(log, console);
if(settings.debug) {
output.push(message);
log.apply(console, output.concat(variables) );
}
},
error: function() {
var
output = [],
errorMessage = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.warn || console.log || function(){}
;
log = Function.prototype.bind.call(log, console);
if(settings.debug) {
output.push(errorMessage);
output.concat(variables);
log.apply(console, output.concat(variables) );
}
}
};
module.initialize();
return this;
};
// handle DOM attachment to API functionality
$.fn.apiButton = function(parameters) {
$(this)
.each(function(){
var
// if only function passed it is success callback
$module = $(this),
element = this,
selector = $(this).selector || '',
settings = ( $.isFunction(parameters) )
? $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this, success: parameters })
: $.extend(true, {}, $.api.settings, $.fn.apiButton.settings, { stateContext: this}, parameters),
module
;
module = {
initialize: function() {
if(settings.context && selector !== '') {
$(settings.context)
.on(selector, 'click.' + settings.namespace, module.click)
;
}
else {
$module
.on('click.' + settings.namespace, module.click)
;
}
},
click: function() {
if(!settings.filter || $(this).filter(settings.filter).size() === 0) {
$.proxy( $.api, this )(settings);
}
}
};
module.initialize();
})
;
return this;
};
$.api.settings = {
moduleName : 'API Module',
namespace : 'api',
verbose : true,
debug : true,
api : {},
beforeSend : function(settings) {
return settings;
},
beforeXHR : function(xhr) {},
success : function(response) {},
complete : function(response) {},
failure : function(errorCode) {},
progress : false,
errors : {
missingAction : 'API action used but no url was defined',
missingURL : 'URL not specified for the API action',
missingParameter : 'Missing an essential URL parameter: ',
timeout : 'Your request timed out',
error : 'There was an error with your request',
parseError : 'There was an error parsing your request',
JSONParse : 'JSON could not be parsed during error handling',
statusMessage : 'Server gave an error: ',
beforeSend : 'The before send function has aborted the request',
exitConditions : 'API Request Aborted. Exit conditions met'
},
className: {
loading : 'loading',
error : 'error'
},
metadata: {
action : 'action',
promise : 'promise',
xhr : 'xhr'
},
regExpTemplate: /\{\$([A-z]+)\}/g,
action : false,
url : false,
urlData : false,
serializeForm : false,
stateContext : false,
method : 'get',
data : {},
dataType : 'json',
cache : true,
loadingLength : 200,
errorLength : 2000
};
$.fn.apiButton.settings = {
filter : '.disabled, .loading',
context : false,
stateContext : false
};
})( jQuery, window , document );

271
components/semantic/src/modules/behavior/colorize.js

@ -1,271 +0,0 @@
/* ******************************
Colorizer
Author: Jack Lukic
Notes: First Commit June 06, 2012
Tooltip Wrapper for loading
colorizes of ideations, concepts and users
Will eventually rewrite to use own tooltip lib
****************************** */
;(function ( $, window, document, undefined ) {
$.fn.colorize = function(parameters) {
var
settings = $.extend(true, {}, $.fn.colorize.settings, parameters),
// hoist arguments
moduleArguments = arguments || false
;
$(this)
.each(function(instanceIndex) {
var
$module = $(this),
mainCanvas = $('<canvas />')[0],
imageCanvas = $('<canvas />')[0],
overlayCanvas = $('<canvas />')[0],
backgroundImage = new Image(),
// defs
mainContext,
imageContext,
overlayContext,
image,
imageName,
width,
height,
// shortucts
colors = settings.colors,
paths = settings.paths,
namespace = settings.namespace,
errors = settings.errors,
// boilerplate
instance = $module.data('module-' + namespace),
module
;
module = {
checkPreconditions: function() {
module.debug('Checking pre-conditions');
if( !$.isPlainObject(colors) || $.isEmptyObject(colors) ) {
module.error(errors.undefinedColors);
return false;
}
return true;
},
async: function(callback) {
if(settings.async) {
setTimeout(callback, 0);
}
else {
callback();
}
},
getMetadata: function() {
module.debug('Grabbing metadata');
image = $module.data('image') || settings.image || undefined;
imageName = $module.data('name') || settings.name || instanceIndex;
width = settings.width || $module.width();
height = settings.height || $module.height();
if(width === 0 || height === 0) {
module.error(errors.undefinedSize);
}
},
initialize: function() {
module.debug('Initializing with colors', colors);
if( module.checkPreconditions() ) {
module.async(function() {
module.getMetadata();
module.canvas.create();
module.draw.image(function() {
module.draw.colors();
module.canvas.merge();
});
$module
.data('module-' + namespace, module)
;
});
}
},
redraw: function() {
module.debug('Redrawing image');
module.async(function() {
module.canvas.clear();
module.draw.colors();
module.canvas.merge();
});
},
change: {
color: function(colorName, color) {
module.debug('Changing color', colorName);
if(colors[colorName] === undefined) {
module.error(errors.missingColor);
return false;
}
colors[colorName] = color;
module.redraw();
}
},
canvas: {
create: function() {
module.debug('Creating canvases');
mainCanvas.width = width;
mainCanvas.height = height;
imageCanvas.width = width;
imageCanvas.height = height;
overlayCanvas.width = width;
overlayCanvas.height = height;
mainContext = mainCanvas.getContext('2d');
imageContext = imageCanvas.getContext('2d');
overlayContext = overlayCanvas.getContext('2d');
$module
.append( mainCanvas )
;
mainContext = $module.children('canvas')[0].getContext('2d');
},
clear: function(context) {
module.debug('Clearing canvas');
overlayContext.fillStyle = '#FFFFFF';
overlayContext.fillRect(0, 0, width, height);
},
merge: function() {
if( !$.isFunction(mainContext.blendOnto) ) {
module.error(errors.missingPlugin);
return;
}
mainContext.putImageData( imageContext.getImageData(0, 0, width, height), 0, 0);
overlayContext.blendOnto(mainContext, 'multiply');
}
},
draw: {
image: function(callback) {
module.debug('Drawing image');
callback = callback || function(){};
if(image) {
backgroundImage.src = image;
backgroundImage.onload = function() {
imageContext.drawImage(backgroundImage, 0, 0);
callback();
};
}
else {
module.error(errors.noImage);
callback();
}
},
colors: function() {
module.debug('Drawing color overlays', colors);
$.each(colors, function(colorName, color) {
settings.onDraw(overlayContext, imageName, colorName, color);
});
}
},
debug: function(message, variableName) {
if(settings.debug) {
if(variableName !== undefined) {
console.info(settings.moduleName + ': ' + message, variableName);
}
else {
console.info(settings.moduleName + ': ' + message);
}
}
},
error: function(errorMessage) {
console.warn(settings.moduleName + ': ' + errorMessage);
},
invoke: function(methodName, context, methodArguments) {
var
method
;
methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 );
if(typeof methodName == 'string' && instance !== undefined) {
methodName = methodName.split('.');
$.each(methodName, function(index, name) {
if( $.isPlainObject( instance[name] ) ) {
instance = instance[name];
return true;
}
else if( $.isFunction( instance[name] ) ) {
method = instance[name];
return true;
}
module.error(settings.errors.method);
return false;
});
}
return ( $.isFunction( method ) )
? method.apply(context, methodArguments)
: false
;
}
};
if(instance !== undefined && moduleArguments) {
// simpler than invoke realizing to invoke itself (and losing scope due prototype.call()
if(moduleArguments[0] == 'invoke') {
moduleArguments = Array.prototype.slice.call( moduleArguments, 1 );
}
return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
}
// initializing
module.initialize();
})
;
return this;
};
$.fn.colorize.settings = {
moduleName : 'Image Colorizer',
debug : true,
namespace : 'colorize',
onDraw: function(overlayContext, imageName, colorName, color) {},
// whether to block execution while updating canvas
async: true,
// object containing names and default values of color regions
colors: {},
metadata: {
image : 'image',
name : 'name'
},
errors: {
noImage : 'No tracing image specified',
undefinedColors : 'No default colors specified.',
missingColor : 'Attempted to change color that does not exist',
missingPlugin : 'Blend onto plug-in must be included',
undefinedHeight : 'The width or height of image canvas could not be automatically determined. Please specify a height.'
}
};
})( jQuery, window , document );

104
components/semantic/src/modules/behavior/default-text.js

@ -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 );

649
components/semantic/src/modules/behavior/state.js

@ -1,649 +0,0 @@
/* ******************************
Module
State
Change text based on state context
Hover/Pressed/Active/Inactive
Author: Jack Lukic
Last revision: May 2012
State text module is used to apply text to a given node
depending on the elements "state"
State is either defined as "active" or "inactive" depending
on the returned value of a test function
Usage:
$button
.state({
states: {
active: true
},
text: {
inactive: 'Follow',
active : 'Following',
enable : 'Add',
disable : 'Remove'
}
})
;
"Follow", turns to "Add" on hover, then "Following" on active
and finally "Remove" on active hover
This plugin works in correlation to API module and will, by default,
use deffered object accept/reject to determine state.
****************************** */
;(function ( $, window, document, undefined ) {
$.fn.state = function(parameters) {
var
$allModules = $(this),
// make available in scope
selector = $allModules.selector || '',
query = arguments[0],
passedArguments = [].slice.call(arguments, 1),
// set up performance tracking
time = new Date().getTime(),
performance = [],
invokedResponse
;
$allModules
.each(function() {
var
$module = $(this),
settings = $.extend(true, {}, $.fn.state.settings, parameters),
element = this,
instance = $module.data('module-' + settings.namespace),
methodInvoked = (typeof query == 'string'),
// shortcuts
namespace = settings.namespace,
metadata = settings.metadata,
className = settings.className,
states = settings.states,
text = settings.text,
module
;
module = {
initialize: function() {
module.verbose('Initializing module', element);
// allow module to guess desired state based on element
if(settings.automatic) {
module.add.defaults();
}
// bind events with delegated events
if(settings.context && selector !== '') {
if( module.allows('hover') ) {
$(element, settings.context)
.on(selector, 'mouseenter.' + namespace, module.hover.enable)
.on(selector, 'mouseleave.' + namespace, module.hover.disable)
;
}
if( module.allows('pressed') ) {
$(element, settings.context)
.on(selector, 'mousedown.' + namespace, module.pressed.enable)
.on(selector, 'mouseup.' + namespace, module.pressed.disable)
;
}
if( module.allows('focus') ) {
$(element, settings.context)
.on(selector, 'focus.' + namespace, module.focus.enable)
.on(selector, 'blur.' + namespace, module.focus.disable)
;
}
$(settings.context)
.on(selector, 'mouseenter.' + namespace, module.text.change)
.on(selector, 'mouseleave.' + namespace, module.text.reset)
.on(selector, 'click.' + namespace, module.toggle)
;
}
else {
if( module.allows('hover') ) {
$module
.on('mouseenter.' + namespace, module.hover.enable)
.on('mouseleave.' + namespace, module.hover.disable)
;
}
if( module.allows('pressed') ) {
$module
.on('mousedown.' + namespace, module.pressed.enable)
.on('mouseup.' + namespace, module.pressed.disable)
;
}
if( module.allows('focus') ) {
$module
.on('focus.' + namespace, module.focus.enable)
.on('blur.' + namespace, module.focus.disable)
;
}
$module
.on('mouseenter.' + namespace, module.text.change)
.on('mouseleave.' + namespace, module.text.reset)
.on('click.' + namespace, module.toggle)
;
}
$module
.data('module-' + namespace, module)
;
},
destroy: function() {
module.verbose('Destroying previous module', element);
$module
.off('.' + namespace)
;
},
refresh: function() {
module.verbose('Refreshing selector cache', element);
$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) );
},
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');
}
},
allows: function(state) {
return states[state] || false;
},
enable: function(state) {
if(module.allows(state)) {
$module.addClass( className[state] );
}
},
disable: function(state) {
if(module.allows(state)) {
$module.removeClass( className[state] );
}
},
textFor: function(state) {
return text[state] || false;
},
focus : {
enable: function() {
$module.addClass(className.focus);
},
disable: function() {
$module.removeClass(className.focus);
}
},
hover : {
enable: function() {
$module.addClass(className.hover);
},
disable: function() {
$module.removeClass(className.hover);
}
},
pressed : {
enable: function() {
$module
.addClass(className.pressed)
.one('mouseleave', module.pressed.disable)
;
},
disable: function() {
$module.removeClass(className.pressed);
}
},
// determines method for state activation
toggle: function() {
var
apiRequest = $module.data(metadata.promise)
;
if( module.allows('active') && module.is.enabled() ) {
module.refresh();
if(apiRequest !== undefined) {
module.listenTo(apiRequest);
}
else {
module.change();
}
}
},
listenTo: function(apiRequest) {
module.debug('API request detected, waiting for state signal', apiRequest);
if(apiRequest) {
if(text.loading) {
module.text.update(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();
})
;
}
// xhr exists but set to false, beforeSend killed the xhr
else {
settings.activateTest = function(){ return false; };
settings.deactivateTest = function(){ return false; };
}
},
// checks whether active/inactive state can be given
change: 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();
},
activate: function() {
if( $.proxy(settings.activateTest, element)() ) {
module.debug('Setting state to active');
$module
.addClass(className.active)
;
module.text.update(text.active);
}
},
deactivate: function() {
if($.proxy(settings.deactivateTest, element)() ) {
module.debug('Setting state to inactive');
$module
.removeClass(className.active)
;
module.text.update(text.inactive);
}
},
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')
;
}
},
text: {
// finds text node to update
get: function() {
return (settings.selector.text)
? $module.find(settings.selector.text).text()
: $module.html()
;
},
flash: function(text, duration) {
var
previousText = module.text.get()
;
text = text || settings.text.flash;
duration = duration || settings.flashDuration;
module.text.update(text);
setTimeout(function(){
module.text.update(previousText);
}, duration);
},
change: function() {
module.verbose('Checking if text should be changed');
if( module.is.textEnabled() ) {
if( module.is.active() ) {
if(text.hover) {
module.verbose('Changing text to hover text', text.hover);
module.text.update(text.hover);
}
else if(text.disable) {
module.verbose('Changing text to disable text', text.disable);
module.text.update(text.disable);
}
}
else {
if(text.hover) {
module.verbose('Changing text to hover text', text.disable);
module.text.update(text.hover);
}
else if(text.enable){
module.verbose('Changing text to enable text', text.disable);
module.text.update(text.enable);
}
}
}
},
// on mouseout sets text to previous value
reset : 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.text.update(activeText);
}
else if(inactiveText) {
module.verbose('Resetting inactive text', activeText);
module.text.update(inactiveText);
}
}
},
update: function(text) {
var
currentText = module.text.get()
;
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)
;
}
}
}
},
/* standard module */
setting: function(name, value) {
if(value === undefined) {
return settings[name];
}
settings[name] = value;
},
performance: {
log: function(message) {
var
currentTime,
executionTime
;
if(settings.performance) {
currentTime = new Date().getTime();
executionTime = currentTime - time;
time = currentTime;
performance.push({
'Name' : message,
'Execution Time' : executionTime
});
clearTimeout(module.performance.timer);
module.performance.timer = setTimeout(module.performance.display, 100);
}
},
display: function() {
var
title = settings.moduleName + ' Performance (' + selector + ')',
caption = settings.moduleName + ': ' + selector + '(' + $allModules.size() + ' elements)'
;
if(console.group !== 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']);
});
}
console.groupEnd();
performance = [];
}
}
},
verbose: function() {
if(settings.verbose && settings.debug) {
module.performance.log(arguments[0]);
module.verbose = Function.prototype.bind.call(console.info, console, settings.moduleName + ':');
}
},
debug: function() {
if(settings.debug) {
module.performance.log(arguments[0]);
module.verbose = Function.prototype.bind.call(console.info, console, settings.moduleName + ':');
}
},
error: function() {
if(console.log !== undefined) {
module.error = Function.prototype.bind.call(console.log, console, settings.moduleName + ':');
}
},
invoke: function(query, context, passedArguments) {
var
maxDepth,
found
;
passedArguments = passedArguments || [].slice.call( arguments, 2 );
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(settings.errors.method);
return false;
});
}
if ( $.isFunction( found ) ) {
return found.apply(context, passedArguments);
}
// return retrieved variable or chain
return found;
}
};
// check for invoking internal method
if(methodInvoked) {
invokedResponse = module.invoke(query, this, passedArguments);
}
// otherwise initialize
else {
if(instance !== undefined) {
module.destroy();
}
module.initialize();
}
})
;
// chain or return queried method
return (invokedResponse !== undefined)
? invokedResponse
: this
;
};
$.fn.state.settings = {
// module info
moduleName : 'State Module',
// debug output
debug : true,
// verbose debug output
verbose : false,
// namespace for events
namespace : 'state',
// debug data includes performance
performance: true,
// callback occurs on state change
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 : 3000,
// selector filter
filter : {
text : '.loading, .disabled',
active : '.disabled'
},
context : false,
// errors
errors: {
method : 'The method you called is not defined.'
},
// metadata
metadata: {
promise : 'promise',
storedText : 'stored-text'
},
// change class on state
className: {
focus : 'focus',
hover : 'hover',
pressed : 'down',
active : 'active',
loading : 'loading'
},
selector: {
// selector for text node
text: false
},
defaults : {
input: {
hover : true,
focus : true,
pressed : true,
loading : false,
active : false
},
button: {
hover : true,
focus : false,
pressed : true,
active : false,
loading : true
}
},
states : {
hover : true,
focus : true,
pressed : true,
loading : false,
active : false
},
text : {
flash : false,
hover : false,
active : false,
inactive : false,
enable : false,
disable : false
}
};
})( jQuery, window , document );

408
components/semantic/src/modules/behavior/validate-form.js

@ -1,408 +0,0 @@
/* ******************************
Form Validation Components
Author: Jack Lukic
Notes: First Commit April 08, 2012
Refactored Feb 22, 2012
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.validateForm = function(fields, parameters) {
var
$allModules = $(this),
settings = $.extend(true, {}, $.fn.validateForm.settings, parameters),
// make arguments available
query = arguments[0],
passedArguments = [].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 = [],
selector = $module.selector || '',
element = this,
instance = $module.data('module-' + settings.namespace),
methodInvoked = (typeof query == 'string'),
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) ) {
// add default text if set
if($.fn.defaultText !== undefined) {
$.each(fields, function(fieldName, field) {
module.field.add.defaultText(field);
});
}
// attach event handler
$module
.on('submit.' + namespace, module.validate.form)
;
}
else {
module.error(errors.noFields, $module);
}
},
destroy: function() {
$module
.off(namespace)
;
},
field: {
find: function(identifier) {
var
$field = $module.find(settings.selector.field)
;
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: {
defaultText: function(field) {
var
$field = module.field.find(field.identifier)
;
if(field.defaultText !== undefined) {
$field.defaultText(field.defaultText);
}
},
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,
defaultText = (field.defaultText !== undefined)
? field.defaultText
: false,
value = ($field.val() == defaultText)
? ''
: $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;
}
},
/* standard module */
setting: function(name, value) {
if(value === undefined) {
return settings[name];
}
settings[name] = value;
},
verbose: function() {
if(settings.verbose) {
module.debug.apply(this, arguments);
}
},
debug: function() {
var
output = [],
message = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.info || console.log || function(){}
;
log = Function.prototype.bind.call(log, console);
if(settings.debug) {
output.push(message);
log.apply(console, output.concat(variables) );
}
},
error: function() {
var
output = [],
errorMessage = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.warn || console.log || function(){}
;
log = Function.prototype.bind.call(log, console);
if(settings.debug) {
output.push(errorMessage);
output.concat(variables);
log.apply(console, output.concat(variables) );
}
},
invoke: function(query, context, passedArguments) {
var
maxDepth,
found
;
passedArguments = passedArguments || [].slice.call( arguments, 2 );
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 ) ) {
return found.apply(context, passedArguments);
}
// return retrieved variable or chain
return found;
}
};
// check for invoking internal method
if(methodInvoked) {
invokedResponse = module.invoke(query, this, passedArguments);
}
// otherwise initialize
else {
module.initialize();
}
})
;
// chain or return queried method
return (invokedResponse !== undefined)
? invokedResponse
: this
;
};
$.fn.validateForm.settings = {
// module info
moduleName : 'Validate Form Module',
debug : true,
verbose : false,
namespace : 'validate',
animateSpeed : 150,
inlineError : false,
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'
},
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 );

337
components/semantic/src/modules/chat.css

@ -1,337 +0,0 @@
/*******************************
Chat Room
*******************************/
.ui.chat {
background-color: #F8F8F8;
width: 330px;
height: 370px;
padding: 0px;
}
.ui.chat .room {
position: relative;
overflow: hidden;
height: 286px;
border: 1px solid #999999;
border-top: none;
border-bottom: none;
}
.ui.chat .room .throbber {
display: none;
margin: -25px 0px 0px -25px;
}
/* Chat Room Actions */
.ui.chat .actions {
overflow: hidden;
background-color: #EEEEEE;
padding: 4px;
border: 1px solid #BBBBBB;
-moz-border-radius: 5px 5px 0px 0px;
-webkit-border-radius: 5px 5px 0px 0px;
border-radius: 5px 5px 0px 0px;
}
.ui.chat .actions .button {
float: right;
margin-left: 3px;
}
/* Online User Count */
.ui.chat .actions .message {
float: left;
margin-left: 6px;
font-size: 11px;
color: #AAAAAA;
text-shadow: 0px -1px 0px rgba(255, 255, 255, 0.8);
line-height: 28px;
}
.ui.chat .actions .message .throbber {
display: inline-block;
margin-right: 8px;
vertical-align: middle;
vertical-align: text-bottom;
}
/* Chat Room Text Log */
.ui.chat .log {
float: left;
overflow: auto;
overflow-x: hidden;
overflow-y: auto;
}
.ui.chat .log .message {
padding: 3px 0px;
border-top: 1px dotted #DADADA;
}
.ui.chat .log .message:first-child {
border-top: none;
}
/* status event */
.ui.chat .status {
padding: 5px 0px;
color: #AAAAAA;
font-size: 12px;
font-style: italic;
line-height: 1.33;
border-top: 1px dotted #DADADA;
}
.ui.chat .log .status:first-child {
border-top: none;
}
.ui.chat .log .flag {
float: left;
}
.ui.chat .log p {
margin-left: 0px;
}
.ui.chat .log .author {
font-weight: bold;
-webkit-transition: color 0.3s ease-out;
-moz-transition: color 0.3s ease-out;
-o-transition: color 0.3s ease-out;
-ms-transition: color 0.3s ease-out;
transition: color 0.3s ease-out;
}
.ui.chat .log a.author:hover {
opacity: 0.8;
}
.ui.chat .log .message.admin p {
font-weight: bold;
margin: 1px 0px 0px 23px;
}
.ui.chat .log .divider {
margin: -1px 0px;
font-size: 11px;
padding: 10px 0px;
border-top: 1px solid #F8F8F8;
border-bottom: 1px solid #F8F8F8;
}
.ui.chat .log .divider .rule {
top: 50%;
width: 15%;
}
.ui.chat .log .divider .label {
color: #777777;
margin: 0px;
}
/* Chat Room User List */
.ui.chat .room .user-list {
position: relative;
overflow: auto;
overflow-x: hidden;
overflow-y: auto;
float: left;
background-color: #EEEEEE;
border-left: 1px solid #DDDDDD;
}
.ui.chat .room .user-list .user {
display: table;
padding: 3px 7px;
border-bottom: 1px solid #DDDDDD;
}
.ui.chat .room .user-list .user:hover {
background-color: #F8F8F8;
}
.ui.chat .room .user-list .image {
display: table-cell;
vertical-align: middle;
width: 20px;
}
.ui.chat .room .user-list .image img {
width: 20px;
height: 20px;
vertical-align: middle;
}
.ui.chat .room .user-list p {
display: table-cell;
vertical-align: middle;
padding-left: 7px;
padding-right: 14px;
font-size: 11px;
line-height: 1.2;
font-weight: bold;
}
.ui.chat .room .user-list a:hover {
opacity: 0.8;
}
/* User List Loading */
.ui.chat.loading .throbber {
display: block;
}
/* Chat Room Talk Input */
.ui.chat .talk {
border: 1px solid #999999;
border-top: 1px solid #BBBBBB;
padding: 5px 0px 0px;
background-color: #CCCCCC;
background: #FFFFFF -webkit-linear-gradient(top , #EEEEEE 0%, #AAAAAA 100%) repeat;
background: #FFFFFF -moz-linear-gradient(top , #EEEEEE 0%, #AAAAAA 100%) repeat;
background: #FFFFFF -o-linear-gradient(top , #EEEEEE 0%, #AAAAAA 100%) repeat;
background: #FFFFFF -ms-linear-gradient(top , #EEEEEE 0%, #AAAAAA 100%) repeat;
background: #FFFFFF linear-gradient(top , #EEEEEE 0%, #AAAAAA 100%) repeat;
-webkit-box-shadow: 0px 1px 0px #FFFFFF inset;
-moz-box-shadow: 0px 1px 0px #FFFFFF inset;
box-shadow: 0px 1px 0px #FFFFFF inset;
-webkit-border-radius: 0px 0px 5px 5px;
-moz-border-radius: 0px 0px 5px 5px;
border-radius: 0px 0px 5px 5px;
}
.ui.chat .talk .avatar,
.ui.chat .talk input,
.ui.chat .talk .button {
float: left;
}
.ui.chat .talk .avatar {
border-top: 1px solid #BBBBBB;
border-left: 1px solid #BBBBBB;
width: 30px;
height: 30px;
margin: 0px 0px 0px 5px;
background-color: #DADADA;
}
.ui.chat .talk .avatar img {
display: block;
width: 30px;
height: 30px;
margin-right: 4px;
}
.ui.chat .talk input {
border: 1px solid #CCCCCC;
margin: 0px;
width: 196px;
height: 14px;
padding: 8px 5px;
font-size: 12px;
color: #555555;
}
.ui.chat .talk input.focus {
border: 1px solid #AAAAAA;
}
.ui.chat .send {
margin-left: -2px;
width: 54px;
height: 22px;
line-height: 23px;
font-size: 12px;
padding: 4px 12px;
-moz-box-shadow: -2px 0 2px -2px rgba(0, 0, 0, 0.3);
-webkit-box-shadow: -2px 0 2px -2px rgba(0, 0, 0, 0.3);
box-shadow: -2px 0 2px -2px rgba(0, 0, 0, 0.3);
border-radius: 0px 5px 5px 0px;
}
.ui.chat .talk .log-in.button {
display: block;
float: none;
margin-top: -6px;
height: 22px;
border-radius: 0px 0px 4px 4px;
}
.ui.chat .talk .log-in.button i {
vertical-align: text-top;
}
/* Quirky Flags */
.ui.chat .log .team.flag {
width: 18px;
}
/* Chat room Loaded */
.ui.chat.loading .throbber {
display: block;
}
/* Standard Size */
.ui.chat {
width: 330px;
height: 370px;
}
.ui.chat .room .container {
width: 3000px;
}
.ui.chat .log {
width: 314px;
height: 278px;
padding: 4px 7px;
}
.ui.chat .room .user-list {
width: 124px;
height: 278px;
padding: 4px 0px;
}
.ui.chat .room .user-list .user {
width: 110px;
}
.ui.chat .talk {
height: 40px;
}
/* Full Width (Based off 960) */
/*
.ui.chat.expand {
width: 665px;
height: 368px;
}
.ui.chat.expand .room {
width: 663px;
height: 283px;
}
.ui.chat.expand .room .user-list,
.ui.chat.expand .room .log {
height: 275px;
}
.ui.chat.expand .room .log {
width: 650px;
}
.ui.chat.expand .talk input {
width: 530px;
}
.ui.chat.expand .send {
width: 50px;
}
.ui.chat.massive {
width: 960px;
height: 415px;
}
.ui.chat.massive .room {
width: 958px;
height: 330px;
}
.ui.chat.massive .room .user-list,
.ui.chat.massive .room .log {
height: 321px;
}
.ui.chat.massive .room .log {
width: 944px;
}
.ui.chat.massive .talk input {
width: 830px;
}
.ui.chat.massive .send {
width: 50px;
}
*/

697
components/semantic/src/modules/chat.js

@ -1,697 +0,0 @@
/* ******************************
Module - Chat Room
Author: Jack Lukic
Notes: First Commit Aug 8, 2012
Designed as a simple modular chat component
****************************** */
;(function ($, window, document, undefined) {
$.fn.chat = function(key, channelName, parameters) {
var
settings = $.extend(true, {}, $.fn.chat.settings, parameters),
// hoist arguments
moduleArguments = arguments || false
;
$(this)
.each(function() {
var
$module = $(this),
$expandButton = $module.find(settings.selector.expandButton),
$userListButton = $module.find(settings.selector.userListButton),
$userList = $module.find(settings.selector.userList),
$room = $module.find(settings.selector.room),
$userCount = $module.find(settings.selector.userCount),
$log = $module.find(settings.selector.log),
$message = $module.find(settings.selector.message),
$messageInput = $module.find(settings.selector.messageInput),
$messageButton = $module.find(settings.selector.messageButton),
instance = $module.data('module'),
className = settings.className,
namespace = settings.namespace,
html = '',
users = {},
loggedInUser,
message,
count,
height,
pusher,
module
;
module = {
channel: false,
width: {
log : $log.width(),
userList : $userList.outerWidth()
},
initialize: function() {
// check error conditions
if(Pusher === undefined) {
module.error(settings.errors.pusher);
}
if(key === undefined || channelName === undefined) {
module.error(settings.errors.key);
return false;
}
else if( !(settings.endpoint.message || settings.endpoint.authentication) ) {
module.error(settings.errors.endpoint);
return false;
}
// define pusher
pusher = new Pusher(key);
Pusher.channel_auth_endpoint = settings.endpoint.authentication;
module.channel = pusher.subscribe(channelName);
module.channel.bind('pusher:subscription_succeeded', module.user.list.create);
module.channel.bind('pusher:subscription_error', module.error);
module.channel.bind('pusher:member_added', module.user.joined);
module.channel.bind('pusher:member_removed', module.user.left);
module.channel.bind('update_messages', module.message.receive);
$.each(settings.customEvents, function(label, value) {
module.channel.bind(label, value);
});
// expandable with states
if( $.fn.hoverClass !== undefined && $.fn.downClass !== undefined ) {
$expandButton
.hoverClass()
.downClass()
;
$userListButton
.hoverClass()
.downClass()
;
$messageButton
.hoverClass()
.downClass()
;
}
// bind module events
$userListButton
.on('click.' + namespace, module.event.toggleUserList)
;
$expandButton
.on('click.' + namespace, module.event.toggleExpand)
;
$messageInput
.on('keydown.' + namespace, module.event.input.keydown)
.on('keyup.' + namespace, module.event.input.keyup)
;
$messageButton
.on('mouseenter.' + namespace, module.event.hover)
.on('mouseleave.' + namespace, module.event.hover)
.on('click.' + namespace, module.event.submit)
;
// scroll to bottom of chat log
$log
.animate({
scrollTop: $log.prop('scrollHeight')
}, 400)
;
$module
.data('module', module)
.addClass(className.loading)
;
},
// refresh module
refresh: function() {
// reset width calculations
$userListButton
.removeClass(className.active)
;
module.width = {
log : $log.width(),
userList : $userList.outerWidth()
};
if( $userListButton.hasClass(className.active) ) {
module.user.list.hide();
}
$module.data('module', module);
},
user: {
updateCount: function() {
if(settings.userCount) {
users = $module.data('users');
count = 0;
$.each(users, function(index){
count++;
});
$userCount
.html( settings.templates.userCount(count) )
;
}
},
// add user to user list
joined: function(member) {
users = $module.data('users');
if(member.id != 'anonymous' && users[ member.id ] === undefined ) {
users[ member.id ] = member.info;
if(settings.randomColor && member.info.color === undefined) {
member.info.color = settings.templates.color(member.id);
}
html = settings.templates.userList(member.info);
if(member.info.isAdmin) {
$(html)
.prependTo($userList)
.preview({
type : 'user',
placement : 'left'
})
;
}
else {
$(html)
.appendTo($userList)
.preview({
type : 'user',
placement : 'left'
})
;
}
if( $.fn.preview !== undefined ) {
$userList
.children()
.last()
.preview({
type: 'user',
placement: 'left'
})
;
}
if(settings.partingMessages) {
$log
.append( settings.templates.joined(member.info) )
;
module.message.scroll.test();
}
module.user.updateCount();
}
},
// remove user from user list
left: function(member) {
users = $module.data('users');
if(member !== undefined && member.id !== 'anonymous') {
delete users[ member.id ];
$module
.data('users', users)
;
$userList
.find('[data-id='+ member.id + ']')
.remove()
;
if(settings.partingMessages) {
$log
.append( settings.templates.left(member.info) )
;
module.message.scroll.test();
}
module.user.updateCount();
}
},
list: {
// receives list of members and generates user list
create: function(members) {
users = {};
members.each(function(member) {
if(member.id !== 'anonymous' && member.id !== 'undefined') {
if(settings.randomColor && member.info.color === undefined) {
member.info.color = settings.templates.color(member.id);
}
// sort list with admin first
html = (member.info.isAdmin)
? settings.templates.userList(member.info) + html
: html + settings.templates.userList(member.info)
;
users[ member.id ] = member.info;
}
});
$module
.data('users', users)
.data('user', users[members.me.id] )
.removeClass(className.loading)
;
$userList
.html(html)
;
if( $.fn.preview !== undefined ) {
$userList
.children()
.preview({
type: 'user',
placement: 'left'
})
;
}
module.user.updateCount();
$.proxy(settings.onJoin, $userList.children())();
},
// shows user list
show: function() {
$log
.animate({
width: (module.width.log - module.width.userList)
}, {
duration : settings.speed,
easing : settings.easing,
complete : module.message.scroll.move
})
;
},
// hides user list
hide: function() {
$log
.stop()
.animate({
width: (module.width.log)
}, {
duration : settings.speed,
easing : settings.easing,
complete : module.message.scroll.move
})
;
}
}
},
message: {
// handles scrolling of chat log
scroll: {
test: function() {
height = $log.prop('scrollHeight') - $log.height();
if( Math.abs($log.scrollTop() - height) < settings.scrollArea) {
module.message.scroll.move();
}
},
move: function() {
height = $log.prop('scrollHeight') - $log.height();
$log
.scrollTop(height)
;
}
},
// sends chat message
send: function(message) {
if( !module.utils.emptyString(message) ) {
$.api({
url : settings.endpoint.message,
method : 'POST',
data : {
'chat_message': {
content : message,
timestamp : new Date().getTime()
}
}
});
}
},
// receives chat response and processes
receive: function(response) {
message = response.data;
users = $module.data('users');
loggedInUser = $module.data('user');
if(users[ message.userID] !== undefined) {
// logged in user's messages already pushed instantly
if(loggedInUser === undefined || loggedInUser.id != message.userID) {
message.user = users[ message.userID ];
module.message.display(message);
}
}
},
// displays message in chat log
display: function(message) {
$log
.append( settings.templates.message(message) )
;
module.message.scroll.test();
$.proxy(settings.onMessage, $log.children().last() )();
}
},
expand: function() {
$module
.addClass(className.expand)
;
$.proxy(settings.onExpand, $module )();
module.refresh();
},
contract: function() {
$module
.removeClass(className.expand)
;
$.proxy(settings.onContract, $module )();
module.refresh();
},
event: {
input: {
keydown: function(event) {
if(event.which == 13) {
$messageButton
.addClass(className.down)
;
}
},
keyup: function(event) {
if(event.which == 13) {
$messageButton
.removeClass(className.down)
;
module.event.submit();
}
}
},
// handles message form submit
submit: function() {
var
message = $messageInput.val(),
loggedInUser = $module.data('user')
;
if(loggedInUser !== undefined && !module.utils.emptyString(message)) {
module.message.send(message);
// display immediately
module.message.display({
user: loggedInUser,
text: message
});
module.message.scroll.move();
$messageInput
.val('')
;
}
},
// handles button click on expand button
toggleExpand: function() {
if( !$module.hasClass(className.expand) ) {
$expandButton
.addClass(className.active)
;
module.expand();
}
else {
$expandButton
.removeClass(className.active)
;
module.contract();
}
},
// handles button click on user list button
toggleUserList: function() {
if( !$log.is(':animated') ) {
if( !$userListButton.hasClass(className.active) ) {
$userListButton
.addClass(className.active)
;
module.user.list.show();
}
else {
$userListButton
.removeClass('active')
;
module.user.list.hide();
}
}
}
},
utils: {
emptyString: function(string) {
if(typeof string == 'string') {
return (string.search(/\S/) == -1);
}
return false;
}
},
// standard methods
debug: function(message) {
if(settings.debug) {
console.info(settings.moduleName + ': ' + message);
}
},
error: function(errorMessage) {
console.warn(settings.moduleName + ': ' + errorMessage);
},
invoke: function(methodName, context, methodArguments) {
var
method
;
methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 );
if(typeof methodName == 'string' && instance !== undefined) {
methodName = methodName.split('.');
$.each(methodName, function(index, name) {
if( $.isPlainObject( instance[name] ) ) {
instance = instance[name];
return true;
}
else if( $.isFunction( instance[name] ) ) {
method = instance[name];
return true;
}
module.error(settings.errors.method);
return false;
});
}
return ( $.isFunction( method ) )
? method.apply(context, methodArguments)
: false
;
}
};
if(instance !== undefined && moduleArguments) {
// simpler than invoke realizing to invoke itself (and losing scope due prototype.call()
if(moduleArguments[0] == 'invoke') {
moduleArguments = Array.prototype.slice.call( moduleArguments, 1 );
}
return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
}
// initializing
module.initialize();
})
;
return this;
};
$.fn.chat.settings = {
moduleName : 'Chat Module',
debug : false,
namespace : 'chat',
onJoin : function(){},
onMessage : function(){},
onExpand : function(){},
onContract : function(){},
customEvents : {},
partingMessages : false,
userCount : true,
randomColor : true,
speed : 300,
easing : 'easeOutQuint',
// pixels from bottom of chat log that should trigger auto scroll to bottom
scrollArea : 9999,
endpoint : {
message : false,
authentication : false
},
errors: {
method : 'The method you called is not defined',
endpoint : 'Please define a message and authentication endpoint.',
key : 'You must specify a pusher key and channel.',
pusher : 'You must include the Pusher library.'
},
className : {
expand : 'expand',
active : 'active',
hover : 'hover',
down : 'down',
loading : 'loading'
},
selector : {
userCount : '.actions .message',
userListButton : '.actions .button.user-list',
expandButton : '.actions .button.expand',
room : '.room',
userList : '.room .user-list',
log : '.room .log',
message : '.room .log .message',
author : '.room log .message .author',
messageInput : '.talk input',
messageButton : '.talk .send.button'
},
templates: {
userCount: function(number) {
return number + ' users in chat';
},
color: function(userID) {
var
colors = [
'#000000',
'#333333',
'#666666',
'#999999',
'#CC9999',
'#CC6666',
'#CC3333',
'#993333',
'#663333',
'#CC6633',
'#CC9966',
'#CC9933',
'#999966',
'#CCCC66',
'#99CC66',
'#669933',
'#669966',
'#33A3CC',
'#336633',
'#33CCCC',
'#339999',
'#336666',
'#336699',
'#6666CC',
'#9966CC',
'#333399',
'#663366',
'#996699',
'#993366',
'#CC6699'
]
;
return colors[ Math.floor( Math.random() * colors.length) ];
},
message: function(message) {
var
html = ''
;
if(message.user.isAdmin) {
message.user.color = '#55356A';
html += '<div class="admin message">';
html += '<span class="quirky ui flag team"></span>';
}
/*
else if(message.user.isPro) {
html += '<div class="indent message">';
html += '<span class="quirky ui flag pro"></span>';
}
*/
else {
html += '<div class="message">';
}
html += '<p>';
if(message.user.color !== undefined) {
html += '<span class="author" style="color: ' + message.user.color + ';">' + message.user.name + '</span>: ';
}
else {
html += '<span class="author">' + message.user.name + '</span>: ';
}
html += ''
+ message.text
+ ' </p>'
+ '</div>'
;
return html;
},
joined: function(member) {
return (typeof member.name !== undefined)
? '<div class="status">' + member.name + ' has joined the chat.</div>'
: false
;
},
left: function(member) {
return (typeof member.name !== undefined)
? '<div class="status">' + member.name + ' has left the chat.</div>'
: false
;
},
userList: function(member) {
var
html = ''
;
if(member.isAdmin) {
member.color = '#55356A';
}
html += ''
+ '<div class="user" data-id="' + member.id + '">'
+ ' <div class="image">'
+ ' <img src="' + member.avatarURL + '">'
+ ' </div>'
;
if(member.color !== undefined) {
html += ' <p><a href="/users/' + member.id + '" target="_blank" style="color: ' + member.color + ';">' + member.name + '</a></p>';
}
else {
html += ' <p><a href="/users/' + member.id + '" target="_blank">' + member.name + '</a></p>';
}
html += '</div>';
return html;
}
}
};
})( jQuery, window , document );

285
components/semantic/src/modules/checkbox.css

@ -1,285 +0,0 @@
/*******************************
UI Checkbox
*******************************/
/*--------------
Standard
---------------*/
/*--- Content ---*/
.ui.checkbox {
position: relative;
display: inline-block;
outline: none;
width: 1em;
height: 1em;
vertical-align: baseline;
}
.ui.checkbox input {
visibility: hidden;
outline: none;
}
/*--- Box ---*/
.ui.checkbox label {
outline: none;
cursor: pointer;
position: absolute;
width: 1em;
height: 1em;
bottom: 0em;
left: 0em;
border-radius: 4px;
-webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2);
-moz-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2);
box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.2);
background: #FCFFF4;
-webkit-transition:
background-color 0.1s ease-out,
box-shadow 0.1s ease-out
;
-moz-transition:
background-color 0.1s ease-out,
box-shadow 0.1s ease-out
;
-o-transition:
background-color 0.1s ease-out,
box-shadow 0.1s ease-out
;
-ms-transition:
background-color 0.1s ease-out,
box-shadow 0.1s ease-out
;
transition:
background-color 0.1s ease-out,
box-shadow 0.1s ease-out
;
}
/*--- Checkbox ---*/
.ui.checkbox label:after {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
opacity: 0;
content: '';
position: absolute;
background: transparent;
border: 0.2em solid #333333;
border-top: none;
border-right: none;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
transform: rotate(-45deg);
}
.ui.checkbox label:after {
width: 0.5em;
height: 0.2em;
top: 0.25em;
left: 0.2em;
}
/*******************************
States
*******************************/
/*--- Hover ---*/
.ui.checkbox label:hover {
background-color: rgba(0, 0, 0, 0.02);
-webkit-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
box-shadow: 0em 0em 0em 1px rgba(0, 0, 0, 0.3);
}
/*--- Down ---*/
.ui.checkbox label:active {
background-color: rgba(0, 0, 0, 0.05);
}
/*--- Active ---*/
.ui.checkbox input:checked + label:after {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
opacity: 1;
}
/*--- Disabled ---*/
.ui.disabled.checkbox label,
.ui.checkbox input[disabled] + label {
opacity: 0.4;
}
/*******************************
Variations
*******************************/
/*--------------
Radio
---------------*/
.ui.radio.checkbox {
width: 14px;
height: 16px;
}
.ui.radio.checkbox label {
width: 14px;
height: 14px;
-webkit-border-radius: 500px;
-moz-border-radius: 500px;
border-radius: 500px;
}
.ui.radio.checkbox label:after {
top: 3px;
left: 3px;
border: none;
width: 8px;
height: 8px;
background-color: #555555;
-webkit-border-radius: 500px;
-moz-border-radius: 500px;
border-radius: 500px;
}
/*--------------
Sizes
---------------*/
.ui.checkbox,
.ui.checkbox label {
font-size: 1em;
}
.ui.large.checkbox,
.ui.large.checkbox label {
font-size: 1.5em;
}
.ui.huge.checkbox,
.ui.huge.checkbox label {
font-size: 1.5em;
}
/*--------------
Rounded
---------------*/
/* Alternate Round Style */
.ui.round.checkbox {
width: 20px;
height: 20px;
margin: 0px auto;
background: #FCFFF4;
background: -webkit-linear-gradient(top, #FCFFF4 0%, #dfe5d7 40%, #b3bead 100%);
background: -moz-linear-gradient(top, #FCFFF4 0%, #dfe5d7 40%, #b3bead 100%);
background: -o-linear-gradient(top, #FCFFF4 0%, #dfe5d7 40%, #b3bead 100%);
background: -ms-linear-gradient(top, #FCFFF4 0%, #dfe5d7 40%, #b3bead 100%);
background: linear-gradient(top, #FCFFF4 0%, #dfe5d7 40%, #b3bead 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FCFFF4', endColorstr='#b3bead',GradientType=0 );
-webkit-border-radius: 500px;
-moz-border-radius: 500px;
border-radius: 500px;
-webkit-box-shadow: inset 0px 1px 1px white, 0px 1px 3px rgba(0,0,0,0.5);
-moz-box-shadow: inset 0px 1px 1px white, 0px 1px 3px rgba(0,0,0,0.5);
box-shadow: inset 0px 1px 1px white, 0px 1px 3px rgba(0,0,0,0.5);
position: relative;
}
.ui.round.checkbox label {
cursor: pointer;
position: absolute;
width: 14px;
height: 14px;
-webkit-border-radius: 500px;
-moz-border-radius: 500px;
border-radius: 500px;
left: 3px;
top: 3px;
-webkit-box-shadow:
0px 1px 1px rgba(0, 0, 0, 0.5) inset,
0px 1px 0px rgba(255,255,255,1)
;
-moz-box-shadow:
0px 1px 1px rgba(0, 0, 0, 0.5) inset,
0px 1px 0px rgba(255,255,255,1)
;
box-shadow:
0px 1px 1px rgba(0, 0, 0, 0.5) inset,
0px 1px 0px rgba(255,255,255,1)
;
background: -webkit-linear-gradient(top, #222222 0%, #4D4D4D 100%);
background: -moz-linear-gradient(top, #222222 0%, #4D4D4D 100%);
background: -o-linear-gradient(top, #222222 0%, #4D4D4D 100%);
background: -ms-linear-gradient(top, #222222 0%, #4D4D4D 100%);
background: linear-gradient(top, #222222 0%, #4D4D4D 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#222222', endColorstr='#4D4D4D',GradientType=0 );
}
.ui.round.checkbox label:after {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
filter: alpha(opacity=0);
opacity: 0;
content: '';
position: absolute;
width: 10px;
height: 10px;
background: #B6B6B6;
background: -webkit-linear-gradient(top, #B6B6B6 0%, #929292 100%);
background: -moz-linear-gradient(top, #B6B6B6 0%, #929292 100%);
background: -o-linear-gradient(top, #B6B6B6 0%, #929292 100%);
background: -ms-linear-gradient(top, #B6B6B6 0%, #929292 100%);
background: linear-gradient(top, #B6B6B6 0%, #929292 100%);
border: none;
-webkit-border-radius: 500px;
-moz-border-radius: 500px;
border-radius: 500px;
top: 2px;
left: 2px;
-webkit-box-shadow: inset 0px 1px 1px white, 0px 1px 3px rgba(0,0,0,0.5);
-moz-box-shadow: inset 0px 1px 1px white, 0px 1px 3px rgba(0,0,0,0.5);
box-shadow: inset 0px 1px 1px white, 0px 1px 3px rgba(0,0,0,0.5);
}
.ui.round.checkbox label:hover:after {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
filter: alpha(opacity=30);
opacity: 0.3;
}
.ui.round.checkbox input:checked + label:after {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
opacity: 1;
}
/* Variations */
.ui.round.blue.checkbox label:after {
background: -webkit-linear-gradient(top, #016286 0%, #00506E 100%);
background: -moz-linear-gradient(top, #016286 0%, #00506E 100%);
background: -o-linear-gradient(top, #016286 0%, #00506E 100%);
background: -ms-linear-gradient(top, #016286 0%, #00506E 100%);
background: linear-gradient(top, #016286 0%, #00506E 100%);
}

229
components/semantic/src/modules/checkbox.js

@ -1,229 +0,0 @@
/* ******************************
Semantic Module: Checkbox
Author: Jack Lukic
Notes: First Commit March 25, 2013
Simple plug-in which maintains the state for ui checkbox
This can be done without javascript, only in instances
where each checkbox is assigned a unique ID. This provides a separate
programmatic option when that is not possible.
****************************** */
;(function ( $, window, document, undefined ) {
$.fn.checkbox = function(parameters) {
var
$allModules = $(this),
settings = $.extend(true, {}, $.fn.checkbox.settings, parameters),
// make arguments available
query = arguments[0],
passedArguments = [].slice.call(arguments, 1),
invokedResponse
;
$allModules
.each(function() {
var
$module = $(this),
$input = $(this).find(settings.selector.input),
selector = $module.selector || '',
element = this,
instance = $module.data('module-' + settings.namespace),
methodInvoked = (typeof query == 'string'),
className = settings.className,
namespace = settings.namespace,
errors = settings.errors,
module
;
module = {
initialize: function() {
if(settings.context && selector !== '') {
module.verbose('Initializing checkbox with delegated events', $module);
$(element, settings.context)
.on(selector, 'click.' + namespace, module.toggle)
;
}
else {
module.verbose('Initializing checkbox with bound events', $module);
$module
.on('click.' + namespace, module.toggle)
;
}
},
destroy: function() {
module.verbose('Destroying previous module for', $module);
$module
.off(namespace)
;
},
toggle: function() {
if( $input.prop('checked') === undefined || !$input.prop('checked') ) {
module.enable();
}
else {
module.disable();
}
},
enableAll: function() {
module.debug('Disabling all checkbox');
$.each($allModules, function() {
$(this).checkbox('enable');
});
},
disableAll: function() {
module.debug('Enabling all checkbox');
$.each($allModules, function() {
$(this).checkbox('disable');
});
},
enable: function() {
module.debug('Enabling checkbox');
$module
.addClass(className.active)
;
$input
.prop('checked', true)
;
$.proxy(settings.onChange, $input.get())();
$.proxy(settings.onEnable, $input.get())();
},
disable: function() {
module.debug('Disabling checkbox');
$module
.removeClass(className.active)
;
$input
.prop('checked', false)
;
$.proxy(settings.onChange, $input.get())();
$.proxy(settings.onDisable, $input.get())();
},
/* standard module */
setting: function(name, value) {
if(value === undefined) {
return settings[name];
}
settings[name] = value;
},
verbose: function() {
if(settings.verbose) {
module.debug.apply(this, arguments);
}
},
debug: function() {
var
output = [],
message = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.info || console.log || function(){}
;
log = Function.prototype.bind.call(log, console);
if(settings.debug) {
output.push(message);
log.apply(console, output.concat(variables) );
}
},
error: function() {
var
output = [],
errorMessage = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.warn || console.log || function(){}
;
log = Function.prototype.bind.call(log, console);
if(settings.debug) {
output.push(errorMessage);
output.concat(variables);
log.apply(console, output.concat(variables) );
}
},
invoke: function(query, context, passedArguments) {
var
maxDepth,
found
;
passedArguments = passedArguments || [].slice.call( arguments, 2 );
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 ) ) {
return found.apply(context, passedArguments);
}
// return retrieved variable or chain
return found;
}
};
// check for invoking internal method
if(methodInvoked) {
invokedResponse = module.invoke(query, this, passedArguments);
}
// otherwise initialize
else {
module.initialize();
}
})
;
// chain or return queried method
return (invokedResponse !== undefined)
? invokedResponse
: this
;
};
$.fn.checkbox.settings = {
// module info
moduleName : 'Checkbox Module',
verbose : false,
debug : true,
namespace : 'checkbox',
// delegated event context
context : false,
onChange : function(){},
onEnable : function(){},
onDisable : function(){},
// errors
errors : {
method : 'The method you called is not defined.'
},
selector : {
input : 'input'
},
className : {
active : 'active'
}
};
})( jQuery, window , document );

182
components/semantic/src/modules/modal.css

@ -1,182 +0,0 @@
/*******************************
Dimmer Styles
*******************************/
/* the one true page dimmer */
#dimmer {
position: absolute;
visibility: hidden;
top: 0px;
left: 0px;
z-index: 999;
margin: 0px;
width: 100%;
height: 100%;
padding: 0px;
}
#dimmer .content {
position: fixed;
top: 0px;
left: 0px;
margin: 0px;
width: 100%;
height: 100%;
padding: 0px;
visibility: hidden;
background-color: #000000;
opacity: 0.0;
}
/* a generic dimmer */
.dimmer {
display: none;
position: absolute;
top: 0px;
left: 0px;
width: 100%;
height: 100%;
opacity: 0;
background-color: #000000;
z-index: 999;
}
.white.dimmer {
background-color: #FFFFFF;
}
.loading .dimmer {
display: block;
opacity: 0.8;
-webkit-transition: opacity 0.5s linear;
-moz-transition: opacity 0.5s linear;
-o-transition: opacity 0.5s linear;
-ms-transition: opacity 0.5s linear;
transition: opacity 0.5s linear;
}
/*******************************
Modal Styles
*******************************/
.modal {
display: none;
position: fixed;
z-index: 1000;
top: 50%;
left: 50%;
margin-left: -400px;
width: 800px;
-webkit-box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.8);
-moz-box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.8);
box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.8);
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
}
.modal.absolute {
position: absolute;
}
.modal.fixed {
position: fixed;
}
/*--------------
Close Button
---------------*/
.modal > .close {
cursor: pointer;
position: absolute;
font-size: 14px;
color: #FFFFFF;
top: -18px;
right: -18px;
opacity: 0.8;
}
.modal > .close:hover {
opacity: 1;
}
/*--------------
Header
---------------*/
.modal > hgroup {
background-color: #442359;
padding: 15px 20px;
-webkit-border-radius: 10px 10px 0px 0px;
-moz-border-radius: 10px 10px 0px 0px;
border-radius: 10px 10px 0px 0px;
}
.modal > hgroup h2 {
margin: 0px;
font-size: 22px;
font-weight: bold;
color: #FFFFFF;
text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.75);
}
.modal > hgroup h3 {
font-size: 18px;
color: #FFF;
}
.modal > .content {
position: relative;
overflow: hidden;
padding: 20px 20px 40px;
background-color: #FAFAFA;
-webkit-border-radius: 0px 0px 10px 10px;
-moz-border-radius: 0px 0px 10px 10px;
border-radius: 0px 0px 10px 10px;
}
.modal > .content .left {
float: left;
width: 50%;
}
.modal > .content .right {
float: right;
width: 50%;
}
/* Static In-Page Modal */
.modal.static {
display: block;
position: relative;
overflow: hidden;
top: 0px;
left: 0px;
border: 1px solid #CCCCCC;
width: auto;
height: auto;
margin: 0px auto;
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
border-radius: 0px;
color: #555555;
z-index: 2;
-moz-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
-webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
}
.modal.static > hgroup,
.modal.static > .content {
-webkit-border-radius: 0px;
-moz-border-radius: 0px;
border-radius: 0px;
}

354
components/semantic/src/modules/modal.js

@ -1,354 +0,0 @@
/* ******************************
Modal
Author: Jack Lukic
Notes: First Commit May 14, 2012
Manages modal state and
stage dimming
****************************** */
;(function ( $, window, document, undefined ) {
$.dimScreen = function(parameters) {
var
// if parameter is string it is callback function
settings = (typeof parameters == 'function')
? $.extend({}, $.fn.modal.settings, { dim: parameters })
: $.extend({}, $.fn.modal.settings, parameters),
$context = $(settings.context),
$dimmer = $context.children(settings.selector.dimmer),
dimmerExists = ($dimmer.size() > 0),
currentOpacity = $dimmer.css('opacity')
;
if(!dimmerExists) {
$dimmer = $('<div/>')
.attr('id','dimmer')
.html('<div class="content"></div>')
;
$context
.append($dimmer)
;
}
if(currentOpacity != settings.opacity) {
$dimmer
.one('click', function() {
settings.unDim();
$.unDimScreen();
})
;
if(settings.duration === 0) {
$dimmer
.css({
visibility : 'visible'
})
.find('.content')
.css({
opacity : settings.opacity,
visibility : 'visible'
})
;
}
else {
$dimmer
.css({
visibility : 'visible'
})
.find('.content')
.css({
opacity : 0,
visibility : 'visible'
})
.fadeTo(settings.duration, settings.opacity, settings.dim)
;
}
}
return this;
};
$.unDimScreen = function(parameters) {
var
settings = (typeof parameters == 'function')
? $.extend({}, $.fn.modal.settings, { unDim: parameters })
: $.extend({}, $.fn.modal.settings, parameters),
$context = $(settings.context),
$dimmer = $context.children(settings.selector.dimmer),
dimmerExists = ($dimmer.size() > 0)
;
if(dimmerExists) {
// callback before unDim
settings.unDim();
if(settings.duration === 0) {
$dimmer
.css({
visibility: 'hidden'
})
.remove()
;
}
else {
$dimmer
.find('.content')
.fadeTo(settings.duration, 0, function(){
$dimmer.remove();
})
;
}
}
return this;
};
$.fn.modal = function(parameters) {
var
settings = $.extend(true, {}, $.fn.modal.settings, parameters),
// make arguments available
query = arguments[0],
passedArguments = [].slice.call(arguments, 1),
invokedResponse
;
$(this)
.each(function() {
var
$modal = $(this),
$closeButton = $modal.find(settings.selector.closeButton),
$dimmer = $(settings.context).find(settings.selector.dimmer),
$modals = $(settings.context).children(settings.selector.modal),
$otherModals = $modals.not($modal),
instance = $modal.data('module-' + settings.namespace),
methodInvoked = (typeof query == 'string'),
className = settings.className,
namespace = settings.namespace,
module
;
module = {
initialize: function() {
// attach events
$modal
.on('modalShow.' + namespace, module.show)
.on('modalHide.' + namespace, module.hide)
.data('module-' + namespace, module)
;
},
show: function() {
var
modalHeight = $modal.outerHeight(),
windowHeight = $(window).height(),
cantFit = (modalHeight > windowHeight),
modalType = (cantFit)
? 'absolute'
: 'fixed',
topCentering = (cantFit)
? '0'
: '50%',
offsetTop = (cantFit)
? (windowHeight / 8)
: -( (modalHeight - settings.closeSpacing) / 2),
finalPosition = ($modal.css('position') == 'absolute')
? offsetTop + $(window).prop('pageYOffset')
: offsetTop,
startPosition = finalPosition + settings.animationOffset
;
// set top margin as offset
if($.fn.popIn !== undefined) {
$modal
.addClass(modalType)
.css({
display : 'block',
opacity : 0,
top: topCentering,
marginTop : finalPosition + 'px'
})
.popIn()
;
}
else {
$modal
.addClass(modalType)
.css({
display : 'block',
opacity : 0,
top: topCentering,
marginTop : startPosition + 'px'
})
.animate({
opacity : 1,
marginTop : finalPosition + 'px'
}, (settings.duration + 300), settings.easing)
;
}
if( $otherModals.is(':visible') ) {
$otherModals
.filter(':visible')
.hide()
;
}
$.dimScreen({
context : settings.context,
duration : 0,
dim : function() {
$(document)
.on('keyup.' + namespace, function(event) {
var
keyCode = event.which,
escapeKey = 27
;
switch(keyCode) {
case escapeKey:
$modal.trigger('modalHide');
event.preventDefault();
break;
}
})
;
$closeButton
.one('click', function() {
$modal.trigger('modalHide');
})
;
settings.dim();
},
unDim: function() {
$modal.trigger('modalHide');
$closeButton.unbind('click');
}
});
},
hide: function() {
// remove keyboard detection
$(document)
.off('keyup.' + namespace)
;
$.unDimScreen({
duration: 0,
unDim: function() {
$modal
.popOut(200)
;
settings.unDim();
}
});
},
/* standard module */
setting: function(name, value) {
if(value === undefined) {
return settings[name];
}
settings[name] = value;
},
debug: function() {
var
output = [],
message = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.info || console.log || function(){}
;
if(settings.debug) {
output.push(message);
log.apply(console, output.concat(variables) );
}
},
error: function() {
var
output = [],
errorMessage = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.warn || console.log || function(){}
;
if(settings.debug) {
output.push(errorMessage);
output.concat(variables);
log.apply(console, output.concat(variables) );
}
},
invoke: function(query, context, passedArguments) {
var
maxDepth,
found
;
passedArguments = passedArguments || [].slice.call( arguments, 2 );
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(settings.errors.method);
return false;
});
}
if ( $.isFunction( found ) ) {
return found.apply(context, passedArguments);
}
// return retrieved variable or chain
return found;
}
};
// check for invoking internal method
if(methodInvoked) {
invokedResponse = module.invoke(query, this, passedArguments);
}
// otherwise initialize
else {
module.initialize();
}
})
;
// chain or return queried method
return (invokedResponse !== undefined)
? invokedResponse
: this
;
};
$.fn.modal.settings = {
moduleName : 'Modal',
debug : false,
namespace : 'modal',
errors: {
method : 'The method you called is not defined'
},
dim : function(){},
unDim : function(){},
hide : function(){},
show : function(){},
context : 'body',
opacity : 0.8,
closeSpacing : 25,
animationOffset : 15,
duration : 400,
easing : 'easeOutExpo',
selector : {
dimmer : '#dimmer',
modal : '.modal',
closeButton : '.close'
}
};
})( jQuery, window , document );

140
components/semantic/src/modules/nag.css

@ -1,140 +0,0 @@
.ui.nag {
display: none;
position: absolute;
top: 0px;
left: 10%;
z-index: 100;
width: 80%;
min-height: 20px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
padding: 8px 20px;
background-color: #272626;
background: -webkit-linear-gradient(top, rgba(22, 22, 22, 0.85) 0%, rgba(17, 17, 17, 1) 100%);
background: -moz-linear-gradient(top, rgba(22, 22, 22, 0.85) 0%, rgba(17, 17, 17, 1) 100%);
background: -o-linear-gradient(top, rgba(22, 22, 22, 0.85) 0%, rgba(17, 17, 17, 1) 100%);
background: -ms-linear-gradient(top, rgba(22, 22, 22, 0.85) 0%, rgba(17, 17, 17, 1) 100%);
background: linear-gradient(top, rgba(22, 22, 22, 0.85) 0%, rgba(17, 17, 17, 1) 100%);
-webkit-box-shadow:
0px 2px 3px rgba(0, 0, 0, 0.4),
0px 1px 0px rgba(255, 255, 255, 0.1) inset
;
-moz-box-shadow:
0px 2px 3px rgba(0, 0, 0, 0.4),
0px 1px 0px rgba(255, 255, 255, 0.1) inset
;
box-shadow:
0px 2px 3px rgba(0, 0, 0, 0.4),
0px 1px 0px rgba(255, 255, 255, 0.1) inset
;
text-align: center;
font-size: 14px;
font-weight: bold;
color: #009FDA;
text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.8);
-webkit-border-radius: 0px 0px 5px 5px;
-moz-border-radius: 0px 0px 5px 5px;
border-radius: 0px 0px 5px 5px;
-webkit-transition: 0.2s background;
-moz-transition: 0.2s background;
-o-transition: 0.2s background;
-ms-transition: 0.2s background;
transition: 0.2s background;
}
.ui.nag .close {
cursor: pointer;
opacity: 0.4;
position: absolute;
top: 50%;
right: 15px;
margin-top: -6px;
font-size: 12px;
color: #FFFFFF;
-webkit-transition: 0.1s opacity;
-moz-transition: 0.1s opacity;
-o-transition: 0.1s opacity;
-ms-transition: 0.1s opacity;
transition: 0.1s opacity;
}
.ui.nag .close.hover {
opacity: 1;
}
.ui.nag b {
font-weight: bold;
color: #EEEEEE;
}
/* Bottom Style */
.ui.nag.bottom {
-webkit-border-radius: 5px 5px 0px 0px;
-moz-border-radius: 5px 5px 0px 0px;
border-radius: 5px 5px 0px 0px;
}
/* Fixed Style */
.ui.nag.fixed {
position: fixed;
}
.ui.nag.bottom.fixed {
top: auto;
bottom: 0px;
}
/* Link Style */
.ui.nag.hover {
cursor: pointer;
background-color: #272626;
background: -webkit-linear-gradient(top, rgba(22, 22, 22, 1) 0%, rgba(17, 17, 17, 1) 100%);
background: -moz-linear-gradient(top, rgba(22, 22, 22, 1) 0%, rgba(17, 17, 17, 1) 100%);
background: -o-linear-gradient(top, rgba(22, 22, 22, 1) 0%, rgba(17, 17, 17, 1) 100%);
background: -ms-linear-gradient(top, rgba(22, 22, 22, 1) 0%, rgba(17, 17, 17, 1) 100%);
background: linear-gradient(top, rgba(22, 22, 22, 1) 0%, rgba(17, 17, 17, 1) 100%);
}
.ui.nag.hover b {
font-weight: bold;
color: #FFFFFF;
}
/* White Variation */
.ui.nag.white {
background-color: #EEEEEE;
background: -webkit-linear-gradient(top, #FFFFFF 0%, #DDDDDD 100%);
background: -moz-linear-gradient(top, #FFFFFF 0%, #DDDDDD 100%);
background: -o-linear-gradient(top, #FFFFFF 0%, #DDDDDD 100%);
background: -ms-linear-gradient(top, #FFFFFF 0%, #DDDDDD 100%);
background: linear-gradient(top, #FFFFFF 0%, #DDDDDD 100%);
-webkit-box-shadow:
0px 2px 3px rgba(0, 0, 0, 0.2),
0px 1px 0px rgba(255, 255, 255, 0.1) inset
;
-moz-box-shadow:
0px 2px 3px rgba(0, 0, 0, 0.2),
0px 1px 0px rgba(255, 255, 255, 0.1) inset
;
box-shadow:
0px 2px 3px rgba(0, 0, 0, 0.2),
0px 1px 0px rgba(255, 255, 255, 0.1) inset
;
text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
color: #888888;
}
.ui.nag.white .close,
.ui.nag.white b {
color: #000000;
}

350
components/semantic/src/modules/nag.js

@ -1,350 +0,0 @@
/* ******************************
Nag
Author: Jack Lukic
Notes: First Commit July 19, 2012
Simple fixed position nag
****************************** */
;(function ($, window, document, undefined) {
$.fn.nag = function(parameters) {
var
settings = $.extend(true, {}, $.fn.nag.settings, parameters),
// hoist arguments
moduleArguments = arguments || false
;
$(this)
.each(function() {
var
$module = $(this),
$close = $module.find(settings.selector.close),
$context = $(settings.context),
instance = $module.data('module'),
className = settings.className,
moduleOffset,
moduleHeight,
contextWidth,
contextHeight,
contextOffset,
yOffset,
yPosition,
timer,
module,
requestAnimationFrame = window.requestAnimationFrame
|| window.mozRequestAnimationFrame
|| window.webkitRequestAnimationFrame
|| window.msRequestAnimationFrame
|| function(callback) { setTimeout(callback, 0); }
;
module = {
initialize: function() {
// calculate module offset once
moduleOffset = $module.offset();
moduleHeight = $module.outerHeight();
contextWidth = $context.outerWidth();
contextHeight = $context.outerHeight();
contextOffset = $context.offset();
$module
.data('module', module)
;
$close
.on('mouseenter mouseleave', module.event.hover)
.on('click', module.dismiss)
;
// lets avoid javascript if we dont need to reposition
if(settings.context == window && settings.position == 'fixed') {
$module
.addClass(className.fixed)
;
}
if(settings.sticky) {
// retrigger on scroll for absolute
if(settings.position == 'absolute') {
$context
.on('scroll resize', module.event.scroll)
;
}
// fixed is always relative to window
else {
$(window)
.on('scroll resize', module.event.scroll)
;
}
// fire once to position on init
$.proxy(module.event.scroll, this)();
}
if(settings.followLink) {
$module
.on('mouseenter mouseleave', module.event.hover)
.on('click', module.followLink)
;
}
if(settings.displayTime > 0) {
setTimeout(module.hide, settings.displayTime);
}
if(module.should.show()) {
if( !$module.is(':visible') ) {
module.show();
}
}
else {
module.hide();
}
},
refresh: function() {
moduleOffset = $module.offset();
moduleHeight = $module.outerHeight();
contextWidth = $context.outerWidth();
contextHeight = $context.outerHeight();
contextOffset = $context.offset();
},
show: function() {
if($.fn.popIn !== undefined) {
$module
.popIn(settings.duration)
;
}
else {
$module
.fadeIn(settings.duration, settings.easing)
;
}
},
hide: function() {
$module
.fadeOut(settings.duration, settings.easing)
;
},
stick: function() {
module.refresh();
if(settings.position == 'fixed') {
var
windowScroll = $(window).prop('pageYOffset') || $(window).scrollTop(),
fixedOffset = ( $module.hasClass(className.bottom) )
? contextOffset.top + (contextHeight - moduleHeight) - windowScroll
: contextOffset.top - windowScroll
;
$module
.css({
position : 'fixed',
top : fixedOffset,
left : contextOffset.left,
width : contextWidth - settings.scrollBarWidth
})
;
}
else {
$module
.css({
top : yPosition
})
;
}
},
unStick: function() {
$module
.css({
top : ''
})
;
},
dismiss: function() {
if(settings.storageMethod) {
module.storage.set(settings.storedKey, settings.storedValue);
}
module.hide();
},
should: {
show: function() {
if( module.storage.get(settings.storedKey) == settings.storedValue) {
return false;
}
return true;
},
stick: function() {
yOffset = $context.prop('pageYOffset') || $context.scrollTop();
yPosition = ( $module.hasClass(className.bottom) )
? (contextHeight - $module.outerHeight() ) + yOffset
: yOffset
;
// absolute position calculated when y offset met
if(yPosition > moduleOffset.top) {
return true;
}
else if(settings.position == 'fixed') {
return true;
}
return false;
}
},
followLink: function() {
if($.fn.followLink !== undefined) {
$module
.followLink()
;
}
},
storage: {
set: function(key, value) {
if(settings.storageMethod == 'local' && store !== undefined) {
store.set(key, value);
}
// store by cookie
else if($.cookie !== undefined) {
$.cookie(key, value);
}
else {
module.error(settings.errors.noStorage);
}
},
get: function(key) {
if(settings.storageMethod == 'local' && store !== undefined) {
return store.get(key);
}
// get by cookie
else if($.cookie !== undefined) {
return $.cookie(key);
}
else {
module.error(settings.errors.noStorage);
}
}
},
event: {
hover: function() {
$(this)
.toggleClass(className.hover)
;
},
scroll: function() {
if(timer !== undefined) {
clearTimeout(timer);
}
timer = setTimeout(function() {
if(module.should.stick() ) {
requestAnimationFrame(module.stick);
}
else {
module.unStick();
}
}, settings.lag);
}
},
error: function(error) {
console.log('Nag Module:' + error);
},
// allows for dot notation method calls
invoke: function(methodName, context, methodArguments) {
var
method
;
methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 );
if(typeof methodName == 'string' && instance !== undefined) {
methodName = methodName.split('.');
$.each(methodName, function(index, name) {
if( $.isPlainObject( instance[name] ) ) {
instance = instance[name];
return true;
}
else if( $.isFunction( instance[name] ) ) {
method = instance[name];
return true;
}
module.error(settings.errors.method);
return false;
});
}
if ( $.isFunction( method ) ) {
return method.apply(context, methodArguments);
}
// return retrieved variable or chain
return method;
}
};
if(instance !== undefined && moduleArguments) {
if(moduleArguments[0] == 'invoke') {
moduleArguments = Array.prototype.slice.call( moduleArguments, 1 );
}
return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
}
module.initialize();
})
;
return this;
};
$.fn.nag.settings = {
// set to zero to manually dismiss, otherwise hides on its own
displayTime : 0,
// if there is a link to follow
followLink : true,
// method of stickyness
position : 'fixed',
scrollBarWidth : 18,
// type of storage to use
storageMethod : 'cookie',
// value to store in dismissed localstorage/cookie
storedKey : 'nag',
storedValue : 'dismiss',
// need to calculate stickyness on scroll
sticky : true,
// how often to check scroll event
lag : 0,
// context for scroll event
context : window,
errors: {
noStorage : 'Neither $.cookie or store is defined. A storage solution is required for storing state',
followLink : 'Follow link is set but the plugin is not included'
},
className : {
bottom : 'bottom',
hover : 'hover',
fixed : 'fixed'
},
selector : {
close: '.icon.close'
},
speed : 500,
easing : 'easeOutQuad'
};
})( jQuery, window , document );

249
components/semantic/src/modules/popup.css

@ -1,249 +0,0 @@
/*******************************
UI Popup (Tooltip/ Popover)
*******************************/
.ui.popup {
display: none;
position: absolute;
top: 57px;
right: 0px;
z-index: 900;
max-width: 250px;
background-color: #FAFAFA;
padding: 6px 8px;
border: 1px solid #DFDFDF;
border: 1px solid rgba(0, 0, 0, 0.12);
font-size: 11px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
-webkit-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
}
/* Default Interactions */
.ui.popup .ui.button,
.ui.popup form.ui input
.ui.popup form.ui textarea {
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
}
/*--------------
Pointer
---------------*/
.ui.popup:after {
font-family: Arial, "Helevetica Neue", sans-serif;
display: block;
position: absolute;
font-size: 14px;
color: #FAFAFA;
text-shadow: 0px 2px 2px rgba(0, 0, 0, 0.3);
}
/* Arrow UTF Style */
.ui.popup:after,
.ui.popup.top.left:after,
.ui.popup.top.center:after,
.ui.popup.top.right:after {
content: '\25BC';
}
.ui.popup.bottom:after,
.ui.popup.bottom.left:after,
.ui.popup.bottom.right:after,
.ui.popup.bottom.center:after {
content: '\25B2';
}
.ui.popup.left:after {
content: '\25B6';
}
.ui.popup.right:after {
content: '\25C0';
}
/* Position */
.ui.popup {
margin: 0px;
}
.ui.popup.bottom {
margin: 9px 0px 0px;
}
.ui.popup.top {
margin: 0px 0px 9px;
}
.ui.popup.top.left,
.ui.popup.bottom.left {
margin-left: -12px;
}
.ui.popup.top.right,
.ui.popup.bottom.right {
margin-right: -12px;
}
.ui.popup.left.center {
margin: 0px 9px 0px 0px;
}
.ui.popup.right.center {
margin: 0px 0px 0px 10px;
}
/* Arrow Offset */
.ui.popup:after {
line-height: 1;
bottom: -10px;
left: 50%;
}
.ui.popup.bottom:after {
top: -11px;
right: 18px;
text-shadow: 0px -1px 1px rgba(0, 0, 0, 0.3);
}
.ui.popup.top.right:after,
.ui.popup.bottom.right:after {
left: auto;
right: 8px;
}
.ui.popup.top.left:after,
.ui.popup.bottom.left:after {
right: auto;
left: 8px;
}
.ui.popup.left.center:after {
left: auto;
right: -10px;
top: 50%;
margin-top: -7px;
text-shadow: 2px 0 2px rgba(0, 0, 0, 0.3);
}
.ui.popup.right.center:after {
left: -10px;
right: auto;
top: 50%;
margin-top: -7px;
text-shadow: -2px 0 2px rgba(0, 0, 0, 0.3);
}
.ui.popup.top.center:after,
.ui.popup.bottom.center:after {
margin-left: -7px;
left: 50%;
right: auto;
}
/*--------------
States
---------------*/
.ui.popup.loading {
display: block;
visibility: hidden;
}
.ui.popup.active {
display: block;
}
/*--------------
Sizes
---------------*/
.ui.large.popup {
padding: 10px;
}
.ui.large.popup .content {
font-size: 13px;
}
/* popup offset */
.ui.large.popup.bottom {
margin: 11px 0px 0px;
}
.ui.large.popup.top {
margin: 0px 0px 11px;
}
.ui.large.popup.top.left,
.ui.large.popup.bottom.left {
margin-left: -12px;
}
.ui.large.popup.top.right,
.ui.large.popup.bottom.right {
margin-right: -12px;
}
.ui.large.popup.left.center {
margin: 0px 12px 0px 0px;
}
.ui.large.popup.right.center {
margin: 0px 0px 0px 12px;
}
/* arrow offset */
.ui.large.popup:after {
bottom: -13px;
font-size: 18px;
}
.ui.popup.large.bottom:after {
top: -15px;
}
.ui.popup.large.left.center:after {
right: -13px;
margin-top: -9px;
}
.ui.popup.large.right.center:after {
left: -13px;
margin-top: -9px;
}
/*--------------
Themes
---------------*/
/* Standard */
.ui.popup h2 {
font-size: 14px;
font-weight: bold;
color: #603E72;
margin-bottom: 5px;
}
.ui.popup .content {
font-size: 12px;
font-weight: normal;
line-height: 1.33;
color: #666666;
padding: 0px;
}
.ui.popup .content p {
margin-top: 5px;
}
.ui.popup .content p b {
color: #603E72;
}
.ui.popup .content p:first-child {
margin-top: 0px;
}
/* Slightly Transparent */
.ui.popup.transparent,
.ui.popup.transparent:after {
background-color: rgba(250,250,250, 0.9);
}
/* Black Styling */
.ui.black.popup {
background-color: #000000;
border: none;
}
.ui.black.popup:after {
color: #000000;
}
.ui.black.popup .content {
color: #FFFFFF;
}

590
components/semantic/src/modules/popup.js

@ -1,590 +0,0 @@
/* ******************************
Tooltip / Popup
Author: Jack Lukic
Notes: First Commit Sep 07, 2012
****************************** */
;(function ($, window, document, undefined) {
$.fn.popup = function(parameters) {
var
settings = $.extend(true, {}, $.fn.popup.settings, parameters),
// make arguments available
moduleArguments = arguments || false,
invokedResponse
;
$(this)
.each(function() {
var
$module = $(this),
$window = $(window),
$offsetParent = $module.offsetParent(),
$popup = (settings.inline)
? $module.next(settings.selector.popup)
: $window.children(settings.selector.popup).last(),
timer,
recursionDepth = 0,
instance = $module.data('module-' + settings.namespace),
methodInvoked = (instance !== undefined && typeof parameters == 'string'),
selector = settings.selector,
className = settings.className,
errors = settings.errors,
metadata = settings.metadata,
namespace = settings.namespace,
module
;
module = {
// binds events
initialize: function() {
if(settings.event == 'hover') {
$module
.on('mouseenter.' + namespace, module.event.mouseenter)
.on('mouseleave.' + namespace, module.event.mouseleave)
;
}
else {
$module
.on(settings.event + '.' + namespace, module.event[settings.event])
;
}
$window
.on('resize.' + namespace, module.event.resize)
;
$module
.data('module-' + namespace, module)
;
},
refresh: function() {
$popup = (settings.inline)
? $module.next(selector.popup)
: $window.children(selector.popup).last()
;
$offsetParent = $module.offsetParent();
},
destroy: function() {
module.debug('Destroying existing popups');
$module
.off('.' + namespace)
;
$popup
.remove()
;
},
event: {
mouseenter: function(event) {
var element = this;
timer = setTimeout(function() {
$.proxy(module.toggle, element)();
if( $(element).hasClass(className.active) ) {
event.stopPropagation();
}
}, settings.delay);
},
mouseleave: function(event) {
clearTimeout(timer);
if( $module.is(':visible') ) {
module.hide();
}
},
click: function(event) {
$.proxy(module.toggle, this)();
if( $(this).hasClass(className.active) ) {
event.stopPropagation();
}
},
resize: function() {
if( $popup.is(':visible') ) {
module.position();
}
}
},
// generates popup html from metadata
create: function() {
module.debug('Creating pop-up content');
var
html = $module.data(metadata.html) || settings.html,
title = $module.data(metadata.title) || settings.title,
content = $module.data(metadata.content) || $module.attr('title') || settings.content
;
if(html || content || title) {
if(!html) {
html = settings.template({
title : title,
content : content
});
}
$popup = $('<div/>')
.addClass(className.popup)
.html(html)
;
if(settings.inline) {
$popup
.insertAfter($module)
;
}
else {
$popup
.appendTo( $('body') )
;
}
}
else {
module.error(errors.content);
}
},
remove: function() {
$popup
.remove()
;
},
get: {
offstagePosition: function() {
var
boundary = {
top : $(window).scrollTop(),
bottom : $(window).scrollTop() + $(window).height(),
left : 0,
right : $(window).width()
},
popup = {
width : $popup.outerWidth(),
height : $popup.outerHeight(),
position : $popup.offset()
},
offstage = {},
offstagePositions = []
;
if(popup.position) {
offstage = {
top : (popup.position.top < boundary.top),
bottom : (popup.position.top + popup.height > boundary.bottom),
right : (popup.position.left + popup.width > boundary.right),
left : (popup.position.left < boundary.left)
};
}
// return only boundaries that have been surpassed
$.each(offstage, function(direction, isOffstage) {
if(isOffstage) {
offstagePositions.push(direction);
}
});
return (offstagePositions.length > 0)
? offstagePositions.join(' ')
: false
;
},
nextPosition: function(position) {
switch(position) {
case 'top left':
position = 'bottom left';
break;
case 'bottom left':
position = 'top right';
break;
case 'top right':
position = 'bottom right';
break;
case 'bottom right':
position = 'top center';
break;
case 'top center':
position = 'bottom center';
break;
case 'bottom center':
position = 'right center';
break;
case 'right center':
position = 'left center';
break;
case 'left center':
position = 'top center';
break;
}
return position;
}
},
// determines popup state
toggle: function() {
$module = $(this);
module.debug('Toggling pop-up');
// refresh state of module
module.refresh();
if($popup.size() === 0) {
module.create();
}
if( !$module.hasClass(className.active) ) {
if( module.position() ) {
module.show();
}
}
else {
module.hide();
}
},
position: function(position, arrowOffset) {
var
windowWidth = $(window).width(),
windowHeight = $(window).height(),
width = $module.outerWidth(),
height = $module.outerHeight(),
popupWidth = $popup.outerWidth(),
popupHeight = $popup.outerHeight(),
offset = (settings.inline)
? $module.position()
: $module.offset(),
parentWidth = (settings.inline)
? $offsetParent.outerWidth()
: $window.outerWidth(),
parentHeight = (settings.inline)
? $offsetParent.outerHeight()
: $window.outerHeight(),
positioning,
offstagePosition
;
position = position || $module.data(metadata.position) || settings.position;
arrowOffset = arrowOffset || $module.data(metadata.arrowOffset) || settings.arrowOffset;
module.debug('Calculating offset for position', position);
switch(position) {
case 'top left':
positioning = {
top : 'auto',
bottom : parentHeight - offset.top + settings.distanceAway,
left : offset.left + arrowOffset
};
break;
case 'top center':
positioning = {
bottom : parentHeight - offset.top + settings.distanceAway,
left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset,
top : 'auto',
right : 'auto'
};
break;
case 'top right':
positioning = {
bottom : parentHeight - offset.top + settings.distanceAway,
right : parentWidth - offset.left - width - arrowOffset,
top : 'auto',
left : 'auto'
};
break;
case 'left center':
positioning = {
top : offset.top + (height / 2) - (popupHeight / 2),
right : parentWidth - offset.left + settings.distanceAway - arrowOffset,
left : 'auto',
bottom : 'auto'
};
break;
case 'right center':
positioning = {
top : offset.top + (height / 2) - (popupHeight / 2),
left : offset.left + width + settings.distanceAway + arrowOffset,
bottom : 'auto',
right : 'auto'
};
break;
case 'bottom left':
positioning = {
top : offset.top + height + settings.distanceAway,
left : offset.left + arrowOffset,
bottom : 'auto',
right : 'auto'
};
break;
case 'bottom center':
positioning = {
top : offset.top + height + settings.distanceAway,
left : offset.left + (width / 2) - (popupWidth / 2) + arrowOffset,
bottom : 'auto',
right : 'auto'
};
break;
case 'bottom right':
positioning = {
top : offset.top + height + settings.distanceAway,
right : parentWidth - offset.left - width - arrowOffset,
left : 'auto',
bottom : 'auto'
};
break;
}
// true width on popup, avoid rounding error
$.extend(positioning, {
width: $popup.width() + 1
});
// tentatively place on stage
$popup
.removeAttr('style')
.removeClass('top right bottom left center')
.css(positioning)
.addClass(position)
.addClass(className.loading)
;
// check if is offstage
offstagePosition = module.get.offstagePosition();
// recursively find new positioning
if(offstagePosition) {
module.debug('Element is outside boundaries ', offstagePosition);
if(recursionDepth < settings.maxRecursion) {
position = module.get.nextPosition(position);
recursionDepth++;
module.debug('Trying new position: ', position);
return module.position(position);
}
else {
module.error(errors.recursion);
recursionDepth = 0;
return false;
}
}
else {
module.debug('Position is on stage', position);
recursionDepth = 0;
return true;
}
},
show: function() {
module.debug('Showing pop-up');
$(selector.popup)
.filter(':visible')
.stop()
.fadeOut(200)
.prev($module)
.removeClass(className.active)
;
$module
.addClass(className.active)
;
$popup
.removeClass(className.loading)
;
if(settings.animation == 'pop' && $.fn.popIn !== undefined) {
$popup
.stop()
.popIn(settings.duration, settings.easing)
;
}
else {
$popup
.stop()
.fadeIn(settings.duration, settings.easing)
;
}
if(settings.event == 'click' && settings.clicktoClose) {
module.debug('Binding popup close event');
$(document)
.on('click.' + namespace, module.gracefully.hide)
;
}
$.proxy(settings.onShow, $popup)();
},
hide: function() {
$module
.removeClass(className.active)
;
if($popup.is(':visible') ) {
module.debug('Hiding pop-up');
if(settings.animation == 'pop' && $.fn.popOut !== undefined) {
$popup
.stop()
.popOut(settings.duration, settings.easing, function() {
$popup.hide();
})
;
}
else {
$popup
.stop()
.fadeOut(settings.duration, settings.easing)
;
}
}
if(settings.event == 'click' && settings.clicktoClose) {
$(document)
.off('click.' + namespace)
;
}
$.proxy(settings.onHide, $popup)();
if(!settings.inline) {
module.remove();
}
},
gracefully: {
hide: function(event) {
// don't close on clicks inside popup
if( $(event.target).closest(selector.popup).size() === 0) {
module.hide();
}
}
},
/* standard module */
setting: function(name, value) {
if(value === undefined) {
return settings[name];
}
settings[name] = value;
},
debug: function() {
var
output = [],
message = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.info || console.log || function(){}
;
if(settings.debug) {
output.push(message);
log.apply(console, output.concat(variables) );
}
},
error: function() {
var
output = [],
errorMessage = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.warn || console.log || function(){}
;
if(settings.debug) {
output.push(errorMessage);
output.concat(variables);
log.apply(console, output.concat(variables) );
}
},
invoke: function(query, context, passedArguments) {
var
maxDepth,
found
;
passedArguments = passedArguments || [].slice.call( arguments, 2 );
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(settings.errors.method);
return false;
});
}
if ( $.isFunction( found ) ) {
return found.apply(context, passedArguments);
}
// return retrieved variable or chain
return found;
}
};
// check for invoking internal method
if(methodInvoked) {
invokedResponse = module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
}
// otherwise initialize
else {
if(instance) {
module.destroy();
}
module.initialize();
}
})
;
// chain or return queried method
return (invokedResponse !== undefined)
? invokedResponse
: this
;
};
$.fn.popup.settings = {
moduleName : 'Pop-up Module',
debug : true,
namespace : 'popup',
onShow : function(){},
onHide : function(){},
content : false,
html : false,
title : false,
position : 'top center',
delay : 0,
inline : true,
duration : 250,
easing : 'easeOutQuint',
animation : 'pop',
errors: {
content : 'Warning: Your popup has no content specified',
method : 'The method you called is not defined.',
recursion : 'Popup attempted to reposition element to fit, but could not find an adequate position.'
},
distanceAway : 2,
arrowOffset : 0,
maxRecursion : 10,
event : 'hover',
clicktoClose : true,
metadata: {
content : 'content',
html : 'html',
title : 'title',
position : 'position',
arrowOffset : 'arrowOffset'
},
className : {
popup : 'ui popup',
active : 'active',
loading : 'loading'
},
selector : {
popup : '.ui.popup'
},
template: function(text) {
var html = '';
if(typeof text !== undefined) {
if(typeof text.title !== undefined && text.title) {
html += '<h2>' + text.title + '</h2>';
}
if(typeof text.content !== undefined && text.content) {
html += '<div class="content">' + text.content + '</div>';
}
}
return html;
}
};
})( jQuery, window , document );

290
components/semantic/src/modules/search.css

@ -1,290 +0,0 @@
/*******************************
Search Module
*******************************/
.search.module {
position: relative;
}
.search.module .prompt {
opacity: 0.8;
background: #FAFAFA url(/images/modules/search-icon.png) no-repeat 10px 7px;
padding: 5px 30px;
font-size: 14px;
border: 1px solid #CCCCCC;
color: #777777;
-webkit-border-radius: 15px;
-moz-border-radius: 15px;
border-radius: 15px;
-webkit-transition: opacity 0.3s;
-moz-transition: opacity 0.3s;
-o-transition: opacity 0.3s;
-ms-transition: opacity 0.3s;
transition: opacity 0.3s;
}
.search.module .search.button {
position: relative;
z-index: 2;
float: right;
margin: 0px 0px 0px -15px;
padding: 6px 15px 7px;
-webkit-border-radius: 0px 15px 15px 0px;
-moz-border-radius: 0px 15px 15px 0px;
border-radius: 0px 15px 15px 0px;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}
.search.module.hover .prompt,
.search.module.focus .prompt,
.search.module.active .prompt {
opacity: 1;
background-color: #FFFFFF;
-webkit-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.2) inset;
-moz-box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.2) inset;
box-shadow: 0px 0px 3px rgba(0, 0, 0, 0.2) inset;
background-position: 10px -43px;
color: #482A5C;
}
.search.module .prompt.filled {
opacity: 1;
color: #222222;
}
.search.module .results {
display: none;
position: absolute;
z-index: 999;
top: 25px;
left: 0px;
overflow: hidden;
width: 300px;
border: 1px solid #EEEEEE;
background-color: #FFFFFF;
background-image: -webkit-linear-gradient(top , transparent 0%, rgba(0, 0, 0, 0.2) 100%);
background-image: -moz-linear-gradient(top , transparent 0%, rgba(0, 0, 0, 0.2) 100%);
background-image: -o-linear-gradient(top , transparent 0%, rgba(0, 0, 0, 0.2) 100%);
background-image: -ms-linear-gradient(top , transparent 0%, rgba(0, 0, 0, 0.2) 100%);
background-image: linear-gradient(top , transparent 0%, rgba(0, 0, 0, 0.2) 100%);
color: #555555;
font-size: 12px;
text-shadow: none;
-webkit-border-radius: 0px 0px 5px 5px;
-moz-border-radius: 0px 0px 5px 5px;
border-radius: 0px 0px 5px 5px;
-webkit-box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.3);
box-shadow: 0px 2px 2px 0px rgba(0, 0, 0, 0.3);
}
/* All Results */
.search.module .results ul {
overflow: hidden;
background-color: #FFFFFF;
}
.search.module .results li {
cursor: pointer;
overflow: hidden;
line-height: 1.2;
padding: 9px 11px;
border-top: 1px solid #EEEEEE;
}
.search.module .results li:first-child {
border-top: none;
}
.search.module .results li .image {
background: #F0F0F0 url(../images/placeholder-subtle.png) no-repeat center center;
margin-right: 10px;
float: left;
overflow: hidden;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
border-radius: 3px;
width: 38px;
height: 38px;
}
.search.module .results li .image img {
display: block;
width: 38px;
height: 38px;
}
.search.module .results li .info {
float: left;
}
.search.module .results li .indented.info {
float: none;
margin-left: 50px;
}
.search.module .results li .title {
font-weight: bold;
color: #442359;
}
.search.module .results li .description {
color: #777777;
}
.search.module .results li .price {
float: right;
color: #999999;
font-weight: bold;
}
/* Hover Style */
.search.module .results li:hover {
background-color: #F8F8F8;
}
.search.module .results li.active {
background-color: #F0F0F0;
}
.search.module .results li.active .image {
background: #EFEFEF url(../images/placeholder-tiny.png) no-repeat center center;
}
.search.module .results li.active .title {
color: #000000;
}
.search.module .results li.active .description {
color: #555555;
}
/* Simple Theme */
.search.module .results > ul {
margin: 0px;
-webkit-border-radius: 0px 0px 5px 5px;
-moz-border-radius: 0px 0px 5px 5px;
border-radius: 0px 0px 5px 5px;
}
.search.module .results > ul li {
}
/* Category Theme */
.search.module .results .category {
overflow: hidden;
background-color: #E4E4E4;
border-top: 1px solid rgba(0, 0, 0, 0.08);
-webkit-box-shadow: 0px 1px 0px rgba(255, 255, 255, 0.1);
-moz-box-shadow: 0px 1px 0px rgba(255, 255, 255, 0.1);
box-shadow: 0px 1px 0px rgba(255, 255, 255, 0.1);
-webkit-transition: background 0.2s ease-in;
-moz-transition: background 0.2s ease-in;
-o-transition: background 0.2s ease-in;
-ms-transition: background 0.2s ease-in;
transition: background 0.2s ease-in;
}
.search.module .results .category > .name {
float: left;
padding: 12px 0px 0px 8px;
font-weight: bold;
color: #777777;
text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.8);
}
.search.module .results .category ul {
overflow: hidden;
margin-left: 75px;
border-left: 1px solid rgba(0, 0, 0, 0.3);
-webkit-box-shadow: -2px 0px 5px rgba(0, 0, 0, 0.15);
-moz-box-shadow: -2px 0px 5px rgba(0, 0, 0, 0.15);
box-shadow: -2px 0px 5px rgba(0, 0, 0, 0.15);
-webkit-transition: box-shadow 0.2s ease-in;
-moz-transition: box-shadow 0.2s ease-in;
-o-transition: box-shadow 0.2s ease-in;
-ms-transition: box-shadow 0.2s ease-in;
transition: box-shadow 0.2s ease-in;
}
.search.module .results .category.active {
background-color: #DCDCDC;
}
.search.module .results .category.active .name {
color: #555555;
}
.search.module .results .category.active ul {
-webkit-box-shadow: -2px 0px 5px rgba(0, 0, 0, 0.4);
-moz-box-shadow: -2px 0px 5px rgba(0, 0, 0, 0.4);
box-shadow: -2px 0px 5px rgba(0, 0, 0, 0.4);
}
/* View All Results */
.search.module .result-page {
display: block;
height: 35px;
background-color: #FAFAFA;
line-height: 35px;
font-weight: bold;
text-align: center;
color: #555555;
border-top: 1px solid #DDDDDD;
-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
-moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.8) inset;
}
.search.module .result-page:hover {
background-color: #F0F0F0;
}
/* Big Theme */
.search.module .big.results li .image {
background-image: url(../images/placeholder-subtle.png);
}
.search.module .big.results li .image,
.search.module .big.results li .image img {
width: 50px;
height: 50px;
}
.search.module .big.results .indented.info {
margin-left: 65px;
}
.search.module .big.results .info .title {
font-size: 16px;
}
.search.module .big.results .info .description {
font-size: 11px;
}
/* Message */
.search.module .message {
background-color: #FFFFFF;
overflow: hidden;
padding: 10px 25px;
-webkit-border-radius: 0px 0px 5px 5px;
-moz-border-radius: 0px 0px 5px 5px;
border-radius: 0px 0px 5px 5px;
}
.search.module .message .text h2 {
font-size: 14px;
font-weight: bold;
color: #555555;
}
.search.module .message .text p {
font-size: 12px;
color: #777777;
}
/* Loading */
.search.module.loading .prompt {
background-image: url(/images/modules/search-throbber.gif);
background-repeat: no-repeat;
background-position: 8px 5px;
}

670
components/semantic/src/modules/search.js

@ -1,670 +0,0 @@
/* ******************************
Search Prompt
Author: Jack Lukic
Notes: First Commit July 19, 2012
Designed to be used as an autocomplete
or to deliver quick inline search results
****************************** */
;(function ($, window, document, undefined) {
$.fn.searchPrompt = function(source, parameters) {
var
settings = $.extend(true, {}, $.fn.searchPrompt.settings, parameters),
// make arguments available
query = arguments[0],
passedArguments = [].slice.call(arguments, 1),
invokedResponse
;
$(this)
.each(function() {
var
$module = $(this),
$searchPrompt = $module.find(settings.selector.searchPrompt),
$searchButton = $module.find(settings.selector.searchButton),
$searchResults = $module.find(settings.selector.searchResults),
$result = $module.find(settings.selector.result),
$category = $module.find(settings.selector.category),
$emptyResult = $module.find(settings.selector.emptyResult),
$resultPage = $module.find(settings.selector.resultPage),
element = this,
selector = $module.selector || '',
instance = $module.data('module-' + settings.namespace),
methodInvoked = (instance !== undefined && typeof query == 'string'),
className = settings.className,
namespace = settings.namespace,
errors = settings.errors,
module
;
module = {
initialize: function() {
var
searchPrompt = $searchPrompt[0],
inputEvent = (searchPrompt.oninput !== undefined)
? 'input'
: (searchPrompt.onpropertychange !== undefined)
? 'propertychange'
: 'keyup'
;
// attach events
$searchPrompt
.on('focus.' + namespace, module.event.focus)
.on('blur.' + namespace, module.event.blur)
.on('keydown.' + namespace, module.handleKeyboard)
;
if(settings.automatic) {
$searchPrompt
.on(inputEvent + '.' + namespace, module.search.throttle)
;
}
$searchButton
.on('click.' + namespace, module.search.query)
;
$searchResults
.on('click.' + namespace, settings.selector.result, module.results.select)
;
$module
.data('module-' + namespace, module)
;
},
event: {
focus: function() {
$module
.addClass(className.focus)
;
module.results.show();
},
blur: function() {
module.search.cancel();
$module
.removeClass(className.focus)
;
module.results.hide();
}
},
handleKeyboard: function(event) {
var
// force latest jq dom
$result = $module.find(settings.selector.result),
$category = $module.find(settings.selector.category),
keyCode = event.which,
keys = {
backspace : 8,
enter : 13,
escape : 27,
upArrow : 38,
downArrow : 40
},
activeClass = className.active,
currentIndex = $result.index( $result.filter('.' + activeClass) ),
resultSize = $result.size(),
newIndex
;
// search shortcuts
if(keyCode == keys.escape) {
$searchPrompt
.trigger('blur')
;
}
// result shortcuts
if($searchResults.filter(':visible').size() > 0) {
if(keyCode == keys.enter) {
if( $result.filter('.' + activeClass).exists() ) {
$.proxy(module.results.select, $result.filter('.' + activeClass) )();
event.preventDefault();
return false;
}
}
else if(keyCode == keys.upArrow) {
newIndex = (currentIndex - 1 < 0)
? currentIndex
: currentIndex - 1
;
$category
.removeClass(activeClass)
;
$result
.removeClass(activeClass)
.eq(newIndex)
.addClass(activeClass)
.closest($category)
.addClass(activeClass)
;
event.preventDefault();
}
else if(keyCode == keys.downArrow) {
newIndex = (currentIndex + 1 >= resultSize)
? currentIndex
: currentIndex + 1
;
$category
.removeClass(activeClass)
;
$result
.removeClass(activeClass)
.eq(newIndex)
.addClass(activeClass)
.closest($category)
.addClass(activeClass)
;
event.preventDefault();
}
}
else {
// query shortcuts
if(keyCode == keys.enter) {
module.search.query();
$searchButton
.addClass(className.down)
;
$searchPrompt
.one('keyup', function(){
$searchButton
.removeClass(className.down)
;
})
;
}
}
},
search: {
cancel: function() {
var
xhr = $module.data('xhr') || false
;
if( xhr && xhr.state() != 'resolved') {
xhr.abort();
}
},
throttle: function(event) {
var
searchTerm = $searchPrompt.val(),
numCharacters = searchTerm.length,
timer
;
clearTimeout($module.data('timer'));
if(numCharacters >= settings.minCharacters) {
timer = setTimeout(module.search.query, settings.searchThrottle);
$module
.data('timer', timer)
;
}
else {
module.results.hide();
}
},
query: function() {
var
searchTerm = $searchPrompt.val(),
cachedHTML = module.search.cache.read(searchTerm)
;
if(cachedHTML) {
module.debug("Reading result for '" + searchTerm + "' from cache");
module.results.add(cachedHTML);
}
else {
module.debug("Querying for '" + searchTerm + "'");
if(typeof source == 'object') {
module.search.local(searchTerm);
}
else {
module.search.remote(searchTerm);
}
$.proxy(settings.onSearchQuery, $module)(searchTerm);
}
},
local: function(searchTerm) {
var
searchResults = [],
fullTextResults = [],
searchFields = $.isArray(settings.searchFields)
? settings.searchFields
: [settings.searchFields],
searchRegExp = new RegExp('(?:\s|^)' + searchTerm, 'i'),
fullTextRegExp = new RegExp(searchTerm, 'i'),
searchHTML
;
$module
.addClass(className.loading)
;
// iterate through search fields in array order
$.each(searchFields, function(index, field) {
$.each(source, function(label, thing) {
if(typeof thing[field] == 'string' && ($.inArray(thing, searchResults) == -1) && ($.inArray(thing, fullTextResults) == -1) ) {
if( searchRegExp.test( thing[field] ) ) {
searchResults.push(thing);
}
else if( fullTextRegExp.test( thing[field] ) ) {
fullTextResults.push(thing);
}
}
});
});
searchHTML = module.results.generate({
results: $.merge(searchResults, fullTextResults)
});
$module
.removeClass(className.loading)
;
module.search.cache.write(searchTerm, searchHTML);
module.results.add(searchHTML);
},
remote: function(searchTerm) {
var
xhr = ($module.data('xhr') !== undefined)
? $module.data('xhr')
: false,
apiSettings = {
stateContext : $module,
url : source,
urlData: { query: searchTerm },
success : function(response) {
searchHTML = module.results.generate(response);
module.search.cache.write(searchTerm, searchHTML);
module.results.add(searchHTML);
},
failure : module.error
},
searchHTML
;
// api attaches xhr event to context, use this to prevent overlapping queries
if( xhr && xhr.state() != 'resolved') {
xhr.abort();
}
$.extend(true, apiSettings, settings.apiSettings);
$.api(apiSettings);
},
cache: {
read: function(name) {
var
cache = $module.data('cache')
;
return (settings.cache && (typeof cache == 'object') && (cache[name] !== undefined) )
? cache[name]
: false
;
},
write: function(name, value) {
var
cache = ($module.data('cache') !== undefined)
? $module.data('cache')
: {}
;
cache[name] = value;
$module
.data('cache', cache)
;
}
}
},
results: {
generate: function(response) {
module.debug('Generating html from response', response);
var
template = settings.templates[settings.type],
html = ''
;
if(($.isPlainObject(response.results) && !$.isEmptyObject(response.results)) || ($.isArray(response.results) && response.results.length > 0) ) {
if(settings.maxResults > 0) {
response.results = $.makeArray(response.results).slice(0, settings.maxResults);
}
if(response.results.length > 0) {
if($.isFunction(template)) {
html = template(response);
}
else {
module.error(errors.noTemplate, false);
}
}
}
else {
html = module.message(errors.noResults, 'empty');
}
$.proxy(settings.onSearchResults, $module)(response);
return html;
},
add: function(html) {
if(settings.onResultsAdd == 'default' || $.proxy(settings.onResultsAdd, $searchResults)(html) == 'default') {
$searchResults
.html(html)
;
}
module.results.show();
},
show: function() {
if( ($searchResults.filter(':visible').size() === 0) && ($searchPrompt.filter(':focus').size() > 0) && $searchResults.html() !== '') {
$searchResults
.stop()
.fadeIn(200)
;
$.proxy(settings.onResultsOpen, $searchResults)();
}
},
hide: function() {
if($searchResults.filter(':visible').size() > 0) {
$searchResults
.stop()
.fadeOut(200)
;
$.proxy(settings.onResultsClose, $searchResults)();
}
},
followLink: function() {
},
select: function(event) {
module.debug('Search result selected');
var
$result = $(this),
$title = $result.find('.title'),
title = $title.html()
;
if(settings.onSelect == 'default' || $.proxy(settings.onSelect, this)(event) == 'default') {
var
$link = $result.find('a[href]').eq(0),
href = $link.attr('href'),
target = $link.attr('target')
;
try {
module.results.hide();
$searchPrompt
.val(title)
;
if(target == '_blank' || event.ctrlKey) {
window.open(href);
}
else {
window.location.href = (href);
}
}
catch(error) {}
}
}
},
/* standard module */
setting: function(name, value) {
if(value === undefined) {
return settings[name];
}
settings[name] = value;
},
debug: function() {
var
output = [],
message = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.info || console.log || function(){}
;
log = Function.prototype.bind.call(log, console);
if(settings.debug) {
output.push(message);
log.apply(console, output.concat(variables) );
}
},
// displays mesage visibly in search results
message: function(text, type) {
type = type || 'standard';
module.results.add( settings.templates.message(text, type) );
return settings.templates.message(text, type);
},
// update view with error message
error: function(errorMessage, escalate) {
// show user error message
escalate = (escalate !== undefined)
? escalate
: true
;
console.warn(settings.moduleName + ': ' + errorMessage);
if(escalate && errorMessage !== undefined) {
module.message(errorMessage, 'error');
}
},
invoke: function(query, context, passedArguments) {
var
maxDepth,
found
;
passedArguments = passedArguments || [].slice.call( arguments, 2 );
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 ) ) {
return found.apply(context, passedArguments);
}
// return retrieved variable or chain
return found;
}
};
// check for invoking internal method
if(methodInvoked) {
invokedResponse = module.invoke(query, element, passedArguments);
}
// otherwise initialize
else {
module.initialize();
}
})
;
// chain or return queried method
return (invokedResponse !== undefined)
? invokedResponse
: this
;
};
$.fn.searchPrompt.settings = {
moduleName : 'Search Module',
debug : true,
namespace : 'search',
// onSelect default action is defined in module
onSelect : 'default',
onResultsAdd : 'default',
onSearchQuery : function(){},
onSearchResults : function(response){},
onResultsOpen : function(){},
onResultsClose : function(){},
automatic : 'true',
type : 'simple',
minCharacters : 3,
searchThrottle : 300,
maxResults : 7,
cache : true,
searchFields : ['title', 'description'],
// api config
apiSettings: {
},
className: {
active : 'active',
down : 'down',
focus : 'focus',
empty : 'empty',
loading : 'loading'
},
errors : {
noResults : 'Your search returned no results',
logging : 'Error in debug logging, exiting.',
noTemplate : 'A valid template name was not specified.',
serverError : 'There was an issue with querying the server.',
method : 'The method you called is not defined.'
},
selector : {
searchPrompt : '.prompt',
searchButton : '.search.button',
searchResults : '.results',
category : '.category',
result : '.result',
emptyResult : '.results .message',
resultPage : '.results .page'
},
templates: {
message: function(message, type) {
var
html = ''
;
if(message !== undefined && type !== undefined) {
html += ''
+ '<div class="message ' + type +'">'
+ '<div class="text">'
;
// message type
if(type == 'empty') {
html += ''
+ '<h2>No Results</h2>'
+ '<p>' + message + '</p>'
;
}
else {
html += ' <div class="text">' + message + '</div>';
}
html += '</div>';
}
return html;
},
categories: function(response) {
var
html = ''
;
if(response.results !== undefined) {
// each category
$.each(response.results, function(index, category) {
if(category.results !== undefined && category.results.length > 0) {
html += ''
+ '<div class="category">'
+ '<div class="name">' + category.name + '</div>'
+ '<ul>'
;
// each item inside category
$.each(category.results, function(index, result) {
html += '<li class="result">';
html += '<a href="' + result.url + '"></a>';
if(result.image !== undefined) {
html+= ''
+ '<div class="image">'
+ ' <img src="' + result.image + '">'
+ '</div>'
;
}
html += (result.image !== undefined)
? '<div class="indented info">'
: '<div class="info">'
;
if(result.price !== undefined) {
html+= '<div class="price">' + result.price + '</div>';
}
if(result.title !== undefined) {
html+= '<div class="title">' + result.title + '</div>';
}
if(result.description !== undefined) {
html+= '<div class="description">' + result.description + '</div>';
}
html += ''
+ '</div>'
+ '</li>'
;
});
html += ''
+ '</ul>'
+ '</div>'
;
}
});
if(response.resultPage) {
html += ''
+ '<a href="' + response.resultPage.url + '" class="result-page">'
+ response.resultPage.text
+ '</a>';
}
return html;
}
return false;
},
simple: function(response) {
var
html = ''
;
if(response.results !== undefined) {
html += '<ul>';
// each result
$.each(response.results, function(index, result) {
html += '<li class="result">';
if(result.url !== undefined) {
html += '<a href="' + result.url + '"></a>';
}
if(result.image !== undefined) {
html+= ''
+ '<div class="image">'
+ ' <img src="' + result.image + '">'
+ '</div>'
;
}
html += (result.image !== undefined)
? '<div class="indented info">'
: '<div class="info">'
;
if(result.price !== undefined) {
html+= '<div class="price">' + result.price + '</div>';
}
if(result.title !== undefined) {
html+= '<div class="title">' + result.title + '</div>';
}
if(result.description !== undefined) {
html+= '<div class="description">' + result.description + '</div>';
}
html += ''
+ '</div>'
+ '</li>'
;
});
html += '</ul>';
if(response.resultPage) {
html += ''
+ '<a href="' + response.resultPage.url + '" class="result-page">'
+ response.resultPage.text
+ '</a>';
}
return html;
}
return false;
}
}
};
})( jQuery, window , document );

90
components/semantic/src/modules/shape.css

@ -1,90 +0,0 @@
/*******************************
shape Module
*******************************/
.shape.module {
position: relative;
-webkit-perspective: 2000px;
-moz-perspective: 2000px;
-ms-perspective: 2000px;
perspective: 2000px;
}
.shape.module .shape {
-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
-ms-transform-style: preserve-3d;
transform-style: preserve-3d;
}
.shape.module .side {
opacity: 1;
width: 100%;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-ms-backface-visibility: hidden;
backface-visibility: hidden;
}
/*---------------
States
----------------*/
/* Standard */
.shape.module .side {
display: none;
}
/* Animating */
.shape.module.animating .shape {
position: absolute;
}
.shape.module .animating.side {
position: absolute;
width: 100%;
top: 0px;
left: 0px;
z-index: 100;
}
.shape.module .hidden.side {
opacity: 0.7;
}
/* css animation */
.shape.css.module {
-webkit-transition:
all 0.6s ease-in-out;
;
-moz-transition:
all 0.6s ease-in-out;
;
-o-transition:
all 0.6s ease-in-out;
;
-ms-transition:
all 0.6s ease-in-out;
;
transition:
all 0.6s ease-in-out;
;
}
.shape.css.module .shape {
-webkit-transition: all 0.6s ease-in-out;
-moz-transition: all 0.6s ease-in-out;
-o-transition: all 0.6s ease-in-out;
-ms-transition: all 0.6s ease-in-out;
transition: all 0.6s ease-in-out;
}
.shape.css.module .side {
-webkit-transition: opacity 0.6s ease-out;
-moz-transition: opacity 0.6s ease-out;
-o-transition: opacity 0.6s ease-out;
-ms-transition: opacity 0.6s ease-out;
transition: opacity 0.6s ease-out;
}
/* Active */
.shape.module .active.side {
display: block;
}

640
components/semantic/src/modules/shape.js

@ -1,640 +0,0 @@
/* *******************************************************************************************
Shape - A 3D Animation Plugin
Version 0.1
(built using Semantic module spec)
Author : Jack Lukic
Last revision : April 2013
********************************************************************************************* */
;(function ( $, window, document, undefined ) {
$.fn.shape = function(parameters) {
var
$allModules = $(this),
settings = $.extend(true, {}, $.fn.shape.settings, parameters),
// define namespaces for modules
eventNamespace = '.' + settings.namespace,
moduleNamespace = 'module-' + settings.namespace,
// allow methods to be queried directly
query = arguments[0],
queryArguments = [].slice.call(arguments, 1),
methodInvoked = (typeof query == 'string'),
invokedResponse
;
$allModules
.each(function() {
var
// selector cache
$module = $(this),
$shape = $module.find(settings.selector.shape),
$side = $module.find(settings.selector.side),
// private variables
$activeSide,
$nextSide,
endTransition = 'transitionend msTransitionEnd oTransitionEnd',
// standard module
selector = $module.selector || '',
element = this,
instance = $module.data(moduleNamespace),
// internal aliases
namespace = settings.namespace,
error = settings.error,
className = settings.className,
module
;
module = {
initialize: function() {
module.verbose('Initializing module for', element);
module.set.defaultSide();
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);
$shape = $(this).find(settings.selector.shape);
$side = $(this).find(settings.selector.side);
},
repaint: function() {
module.verbose('Forcing repaint event');
var
shape = $shape.get(0) || document.createElement('div'),
fakeAssignment = shape.offsetWidth
;
},
animate: function(propertyObject, callback) {
module.verbose('Animating box with properties', propertyObject);
callback = callback || function(event) {
module.reset();
module.set.active();
$.proxy(settings.onChange, $nextSide)();
event.stopImmediatePropagation();
};
if(settings.useCSS) {
module.verbose('Starting CSS animation');
$module
.addClass(className.animating)
;
module.set.stageSize();
module.repaint();
$module
.addClass(className.css)
;
$activeSide
.addClass(className.hidden)
;
$shape
.css(propertyObject)
.one(endTransition, callback)
;
}
else {
// not yet supported until .animate() is extended to allow RotateX/Y
module.verbose('Starting javascript animation');
$module
.addClass(className.animating)
.removeClass(className.css)
;
module.set.stageSize();
module.repaint();
$activeSide
.animate({
opacity: 0
}, settings.duration, settings.easing)
;
$shape
.animate(propertyObject, settings.duration, settings.easing, callback)
;
}
},
queue: function(method) {
module.debug('Queueing animation of', method);
$shape
.one(endTransition, function() {
module.debug('Executing queued animation');
$module.shape(method);
})
;
},
reset: function() {
module.verbose('Animating states reset');
$module
.removeClass(className.css)
.removeClass(className.animating)
.removeAttr('style')
;
$shape
.removeAttr('style')
;
$side
.removeAttr('style')
.removeClass(className.hidden)
;
$nextSide
.removeClass(className.animating)
.removeAttr('style')
;
},
is: {
animating: function() {
return $module.hasClass(className.animating);
}
},
get: {
nextSide: function() {
return ( $activeSide.next(settings.selector.side).size() > 0 )
? $activeSide.next(settings.selector.side)
: $module.find(settings.selector.side).first()
;
}
},
set: {
defaultSide: function() {
$activeSide = $module.find('.' + settings.className.active);
$nextSide = ( $activeSide.next(settings.selector.side).size() > 0 )
? $activeSide.next(settings.selector.side)
: $module.find(settings.selector.side).first()
;
module.verbose('Active side set to', $activeSide);
module.verbose('Next side set to', $nextSide);
},
stageSize: function() {
var
stage = {
width : $nextSide.outerWidth(),
height : $nextSide.outerHeight()
}
;
module.verbose('Resizing stage to fit new content', stage);
$module
.css({
width : stage.width,
height : stage.height
})
;
},
nextSide: function(selector) {
$nextSide = $module.find(selector);
if($nextSide.size() === 0) {
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)
;
module.set.defaultSide();
}
},
flip: {
up: function() {
module.debug('Flipping up', $nextSide);
if( !module.is.animating() ) {
module.stage.above();
module.animate( module.getTransform.up() );
}
else {
module.queue('flip.up');
}
},
down: function() {
module.debug('Flipping down', $nextSide);
if( !module.is.animating() ) {
module.stage.below();
module.animate( module.getTransform.down() );
}
else {
module.queue('flip.down');
}
},
left: function() {
module.debug('Flipping left', $nextSide);
if( !module.is.animating() ) {
module.stage.left();
module.animate(module.getTransform.left() );
}
else {
module.queue('flip.left');
}
},
right: function() {
module.debug('Flipping right', $nextSide);
if( !module.is.animating() ) {
module.stage.right();
module.animate(module.getTransform.right() );
}
else {
module.queue('flip.right');
}
},
over: function() {
module.debug('Flipping over', $nextSide);
if( !module.is.animating() ) {
module.stage.behind();
module.animate(module.getTransform.behind() );
}
else {
module.queue('flip.over');
}
}
},
getTransform: {
up: function() {
var
translate = {
y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
z: -($activeSide.outerHeight() / 2)
}
;
return {
transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(-90deg)'
};
},
down: function() {
var
translate = {
y: -(($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
z: -($activeSide.outerHeight() / 2)
}
;
return {
transform: 'translateY(' + translate.y + 'px) translateZ('+ translate.z + 'px) rotateX(90deg)'
};
},
left: function() {
var
translate = {
x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
z : -($activeSide.outerWidth() / 2)
}
;
return {
transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(90deg)'
};
},
right: function() {
var
translate = {
x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2),
z : -($activeSide.outerWidth() / 2)
}
;
return {
transform: 'translateX(' + translate.x + 'px) translateZ(' + translate.z + 'px) rotateY(-90deg)'
};
},
behind: function() {
var
translate = {
x : -(($activeSide.outerWidth() - $nextSide.outerWidth()) / 2)
}
;
return {
transform: 'translateX(' + translate.x + 'px) rotateY(180deg)'
};
}
},
stage: {
above: function() {
var
box = {
origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
depth : {
active : ($nextSide.outerHeight() / 2),
next : ($activeSide.outerHeight() / 2)
}
}
;
module.verbose('Setting the initial animation position as above', $nextSide, box);
$activeSide
.css({
'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
})
;
$nextSide
.addClass(className.animating)
.css({
'display' : 'block',
'top' : box.origin + 'px',
'transform' : 'rotateX(90deg) translateZ(' + box.depth.next + 'px)'
})
;
},
below: function() {
var
box = {
origin : (($activeSide.outerHeight() - $nextSide.outerHeight()) / 2),
depth : {
active : ($nextSide.outerHeight() / 2),
next : ($activeSide.outerHeight() / 2)
}
}
;
module.verbose('Setting the initial animation position as below', $nextSide, box);
$activeSide
.css({
'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
})
;
$nextSide
.addClass(className.animating)
.css({
'display' : 'block',
'top' : box.origin + 'px',
'transform' : 'rotateX(-90deg) translateZ(' + box.depth.next + 'px)'
})
;
},
left: function() {
var
box = {
origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
depth : {
active : ($nextSide.outerWidth() / 2),
next : ($activeSide.outerWidth() / 2)
}
}
;
module.verbose('Setting the initial animation position as left', $nextSide, box);
$activeSide
.css({
'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
})
;
$nextSide
.addClass(className.animating)
.css({
'display' : 'block',
'left' : box.origin + 'px',
'transform' : 'rotateY(-90deg) translateZ(' + box.depth.next + 'px)'
})
;
},
right: function() {
var
box = {
origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
depth : {
active : ($nextSide.outerWidth() / 2),
next : ($activeSide.outerWidth() / 2)
}
}
;
module.verbose('Setting the initial animation position as left', $nextSide, box);
$activeSide
.css({
'transform' : 'rotateY(0deg) translateZ(' + box.depth.active + 'px)'
})
;
$nextSide
.addClass(className.animating)
.css({
'display' : 'block',
'left' : box.origin + 'px',
'transform' : 'rotateY(90deg) translateZ(' + box.depth.next + 'px)'
})
;
},
behind: function() {
var
box = {
origin : ( ( $activeSide.outerWidth() - $nextSide.outerWidth() ) / 2),
depth : {
active : ($nextSide.outerWidth() / 2),
next : ($activeSide.outerWidth() / 2)
}
}
;
module.verbose('Setting the initial animation position as behind', $nextSide, box);
$activeSide
.css({
'transform' : 'rotateY(0deg)'
})
;
$nextSide
.addClass(className.animating)
.css({
'display' : 'block',
'left' : box.origin + 'px',
'transform' : 'rotateY(-180deg)'
})
;
}
},
/* standard module */
setting: function(name, value) {
if( $.isPlainObject(name) ) {
$.extend(true, settings, name);
}
else if(value === undefined) {
return settings[name];
}
else {
settings[name] = value;
}
},
verbose: function() {
if(settings.verbose) {
module.debug.apply(this, arguments);
}
},
debug: function() {
var
output = [],
message = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.info || console.log || function(){}
;
log = Function.prototype.bind.call(log, console);
if(settings.debug) {
output.push(message);
log.apply(console, output.concat(variables) );
}
},
error: function() {
var
output = [],
errorMessage = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.warn || console.log || function(){}
;
log = Function.prototype.bind.call(log, console);
if(settings.debug) {
output.push(errorMessage);
output.concat(variables);
log.apply(console, output.concat(variables) );
}
},
invoke: function(query, passedArguments, context) {
var
maxDepth,
found
;
passedArguments = passedArguments || queryArguments || [].slice.call( arguments, 2 );
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(error.method);
return false;
});
}
if ( $.isFunction( found ) ) {
module.verbose('Executing invoked function', found);
return found.apply(context, passedArguments);
}
// return retrieved variable or chain
return found || false;
}
};
// check for invoking internal method
if(methodInvoked) {
if(instance === undefined) {
module.initialize();
}
invokedResponse = module.invoke(query);
}
// otherwise initialize
else {
if(instance !== undefined) {
module.destroy();
}
module.initialize();
}
})
;
// chain or return queried method
return (invokedResponse)
? invokedResponse
: this
;
};
$.fn.shape.settings = {
// module info
moduleName : 'Shape Module',
// debug content outputted to console
debug : true,
// verbose debug output
verbose : true,
// event namespace
namespace : 'shape',
// callback occurs on side change
beforeChange : function() {},
onChange : function() {},
// use css animation (currently only true is supported)
useCSS : true,
// animation duration (useful only with future js animations)
duration : 1000,
easing : 'easeInOutQuad',
// 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 : {
css : 'css',
animating : 'animating',
hidden : 'hidden',
active : 'active'
},
// selectors used
selector : {
shape : '.shape',
side : '.side'
}
};
})( jQuery, window , document );

62
components/semantic/src/modules/star.css

@ -1,62 +0,0 @@
/*******************************
Star Rating
*******************************/
.star.module {
min-width: 88px;
height: 42px;
unicode-bidi: bidi-override;
direction: rtl;
font-size: 26px;
}
.star.module i,
.ui.star {
cursor: default;
float: left;
padding: 2px 1px;
font-style: normal;
font-weight: normal;
content: "\2605";
color: transparent;
}
/* Non Selected Star */
.star.module i:after,
.ui.star:after {
content: "\2605";
color: #8C8C8C;
-webkit-transition: all 0.25s;
-moz-transition: all 0.25s;
-o-transition: all 0.25s;
-ms-transition: all 0.25s;
transition: all 0.25s;
}
/*--------------
States
---------------*/
/* Initialized is now clickable */
.star.module.initialize,
.star.module.initialize i {
cursor: pointer;
}
/* Current Star Rating */
.star.module i.active:after {
color: #FFCB08;
}
.star.module.hover i.active:after {
opacity: 0.5;
}
/* Hover */
.star.module i.hover:after,
.star.module i.hover.active:after {
opacity: 1;
color: #FFB70A;
text-shadow: 0px 0px 7px #FFCB08;
}

180
components/semantic/src/modules/star.js

@ -1,180 +0,0 @@
/* ******************************
Star Review
Author: Jack Lukic
Notes: First Commit Sep 04, 2012
Simple rating module
****************************** */
;(function ($, window, document, undefined) {
$.fn.starReview = function(parameters) {
var
settings = $.extend(true, {}, $.fn.starReview.settings, parameters),
// hoist arguments
moduleArguments = arguments || false
;
$(this)
.each(function() {
var
$module = $(this),
$star = $module.find(settings.selector.star),
className = settings.className,
namespace = settings.namespace,
instance = $module.data('module'),
module
;
module = {
settings: settings,
initialize: function() {
if(settings.rateable) {
// expandable with states
if($.fn.state !== undefined) {
$module
.state()
;
$star
.state()
;
}
$star
.bind('mouseenter.' + namespace, module.event.mouseenter)
.bind('mouseleave.' + namespace, module.event.mouseleave)
.bind('click.' + namespace, module.event.click)
;
}
$module
.addClass(className.initialize)
.data('module', module)
;
},
setRating: function(rating) {
var
$activeStar = $star.eq(rating - 1)
;
$module
.removeClass(className.hover)
;
$star
.removeClass(className.hover)
;
$activeStar
.nextAll()
.removeClass(className.active)
;
$activeStar
.addClass(className.active)
.prevAll()
.addClass(className.active)
;
$.proxy(settings.onRate, $module)();
},
event: {
mouseenter: function() {
var
$activeStar = $(this)
;
$activeStar
.nextAll()
.removeClass(className.hover)
;
$module
.addClass(className.hover)
;
$activeStar
.addClass(className.hover)
.prevAll()
.addClass(className.hover)
;
},
mouseleave: function() {
$star
.removeClass(className.hover)
;
},
click: function() {
var
$activeStar = $(this)
;
module.setRating( $star.index($activeStar) + 1);
}
},
// handle error logging
error: function(errorMessage) {
console.warn(settings.moduleName + ': ' + errorMessage);
},
// allows for dot notation method calls
invoke: function(methodName, context, methodArguments) {
var
method
;
methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 );
if(typeof methodName == 'string' && instance !== undefined) {
methodName = methodName.split('.');
$.each(methodName, function(index, name) {
if( $.isPlainObject( instance[name] ) ) {
instance = instance[name];
return true;
}
else if( $.isFunction( instance[name] ) ) {
method = instance[name];
return true;
}
module.error(settings.errors.method);
return false;
});
}
return ( $.isFunction( method ) )
? method.apply(context, methodArguments)
: false
;
}
};
if(instance !== undefined && moduleArguments) {
// simpler than invoke realizing to invoke itself (and losing scope due prototype.call()
if(moduleArguments[0] == 'invoke') {
moduleArguments = Array.prototype.slice.call( moduleArguments, 1 );
}
return module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
}
// initializing
module.initialize();
})
;
return this;
};
$.fn.starReview.settings = {
moduleName : 'Star Module',
namespace : 'star',
rateable : true,
onRate : function(){},
className : {
initialize : 'initialize',
loading : 'loading',
active : 'active',
hover : 'hover',
down : 'down'
},
selector : {
star : 'i'
}
};
})( jQuery, window , document );

25
components/semantic/src/modules/tab.css

@ -1,25 +0,0 @@
/*******************************
UI Tabs
*******************************/
.ui.tab {
display: none;
background-color: #FFFFFF;
border: 1px solid #DADADA;
border-top-color: transparent;
border-top-width: 0px;
}
.ui.tab.active,
.ui.tab.open {
display: block;
}
.ui.tab.loading > .throbber {
display: block;
}
.ui.tab.simple {
background-color: transparent;
border: none;
}

523
components/semantic/src/modules/tab.js

@ -1,523 +0,0 @@
/* ******************************
Module - Simple Tab Navigation
Author: Jack Lukic
Notes: First Commit Aug 15, 2012
History based tab navigation
****************************** */
;(function ($, window, document, undefined) {
$.fn.tabNavigation = function(parameters) {
var
settings = $.extend(true, {}, $.fn.tabNavigation.settings, parameters),
$tabNavigation = $(this),
$tabs = $(settings.context).find(settings.selector.tabs),
firstLoad = true,
cache = {},
recursionDepth = 0,
activeTabPath,
parameterArray,
historyEvent,
className = settings.className,
metadata = settings.metadata,
namespace = settings.namespace,
errors = settings.errors,
instance = $tabNavigation.data('module'),
query = arguments[0],
methodInvoked = (instance !== undefined && typeof query == 'string'),
passedArguments = [].slice.call(arguments, 1),
module,
invokedResponse
;
module = {
initialize: function() {
module.debug('Initializing Tabs', $tabNavigation);
// attach history events
if(settings.history && settings.path !== false) {
if( $.address !== undefined ) {
module.verbose('Address library found adding state change event');
$.address
.state(settings.path)
.change(module.event.history.change)
;
}
else {
module.error(errors.state);
}
}
// attach events if navigation wasn't set to window
if( !$.isWindow( $tabNavigation.get(0) ) ) {
$tabNavigation
.on('click.' + namespace, module.event.click)
;
}
$tabNavigation
.data('module', module)
;
},
destroy: function() {
module.debug('Destroying tabs', $tabNavigation);
$tabNavigation
.off('.' + namespace)
;
},
event: {
click: function() {
module.debug('Navigation clicked');
var
tabPath = $(this).data(metadata.tab)
;
if(tabPath !== undefined) {
if(tabPath !== activeTabPath) {
if(settings.history) {
$.address.value(tabPath);
}
else {
module.change(tabPath);
}
}
}
else {
module.debug('No tab specified');
}
},
history: {
change: function(event) {
var
tabPath = event.pathNames.join('/') || module.get.initialPath(),
pageTitle = settings.templates.determineTitle(tabPath) || false
;
module.debug('History change event', tabPath, event);
historyEvent = event;
if(tabPath !== undefined) {
module.change(tabPath);
}
if(pageTitle) {
$.address.title(pageTitle);
}
}
}
},
refresh: function() {
if(activeTabPath) {
module.debug('Refreshing tab', activeTabPath);
module.change(activeTabPath);
}
},
cache: {
read: function(tabPath) {
return (tabPath !== undefined)
? cache[tabPath]
: cache
;
},
add: function(tabPath, content) {
tabPath = tabPath || activeTabPath;
module.debug('Adding cached content for', tabPath);
cache[tabPath] = content;
},
remove: function(tabPath) {
tabPath = tabPath || activeTabPath;
module.debug('Removing cached content for', tabPath);
delete cache[tabPath];
}
},
change: function(tabPath) {
var
pathArray = module.get.defaultPathArray(tabPath)
;
module.deactivate.all();
$.each(pathArray, function(index, tab) {
var
currentPathArray = pathArray.slice(0, index + 1),
currentPath = module.utils.arrayToPath(currentPathArray),
isLastTab = (module.utils.last(pathArray) == currentPath),
isTab = module.is.tab(currentPath),
isParam = !(isTab),
pushStateAvailable = (window.history && window.history.pushState),
shouldIgnoreLoad = (pushStateAvailable && settings.ignoreFirstLoad && firstLoad),
remoteContent = $.isPlainObject(settings.apiSettings),
$tab = module.get.tabElement(currentPath)
;
module.verbose('Looking for tab', tab);
if(isParam) {
module.verbose('Tab is not found, assuming it is a parameter', tab);
return true;
}
else if(isTab) {
// scope up
module.verbose('Tab was found', tab);
activeTabPath = currentPath;
parameterArray = module.utils.filterArray(pathArray, currentPathArray);
if(isLastTab && remoteContent) {
if(!shouldIgnoreLoad) {
module.activate.navigation(currentPath);
module.content.fetch(currentPath, settings.onTabLoad);
}
else {
module.debug('Ignoring remote content on first tab load', currentPath);
firstLoad = false;
cache[tabPath] = $tab.html();
module.activate.all(currentPath);
$.proxy(settings.onTabInit, $tab)(currentPath, parameterArray, historyEvent);
}
}
else {
module.debug('Opened tab', currentPath);
module.activate.all(currentPath);
$.proxy(settings.onTabLoad, $tab)(currentPath, parameterArray, historyEvent);
}
}
});
},
content: {
fetch: function(tabPath) {
var
$tab = module.get.tabElement(tabPath),
cachedContent = cache[tabPath] || false,
apiSettings = {
dataType : 'html',
stateContext : $tab,
success : function(response) {
cache[tabPath] = response;
module.content.update(tabPath, response);
if(tabPath == activeTabPath) {
module.debug('Content loaded', tabPath);
module.activate.tab(tabPath);
}
else {
module.debug('Content loaded in background', tabPath);
}
$.proxy(settings.onTabInit, $tab)(tabPath, parameterArray, historyEvent);
},
urlData: { tab: tabPath }
},
request = $tab.data(metadata.promise) || false,
existingRequest = ( request && request.state() === 'pending' )
;
if(settings.cache && cachedContent) {
module.debug('Showing existing content', tabPath);
// module.content.update(tabPath, cachedContent);
module.activate.tab(tabPath);
$.proxy(settings.onTabLoad, $tab)(tabPath, parameterArray, historyEvent);
}
else if(existingRequest) {
module.debug('Content is already loading', tabPath);
$tab
.addClass(className.loading)
;
}
else if($.api !== undefined) {
module.debug('Retrieving content', tabPath);
$.api( $.extend(true, {}, settings.apiSettings, apiSettings) );
}
else {
module.error(errors.api);
}
},
update: function(tabPath, html) {
module.debug('Updating html for', tabPath);
var
$tab = module.get.tabElement(tabPath)
;
$tab
.html(html)
;
}
},
activate: {
all: function(tabPath) {
module.activate.tab(tabPath);
module.activate.navigation(tabPath);
},
tab: function(tabPath) {
var
$tab = module.get.tabElement(tabPath)
;
module.verbose('Showing tab content for', $tab);
$tab.addClass(className.active);
},
navigation: function(tabPath) {
var
$nav = module.get.navElement(tabPath)
;
module.verbose('Activating tab navigation for', $nav);
$nav.addClass(className.active);
}
},
deactivate: {
all: function() {
module.deactivate.navigation();
module.deactivate.tabs();
},
navigation: function() {
$tabNavigation
.removeClass(className.active)
;
},
tabs: function() {
$tabs
.removeClass(className.active + ' ' + className.loading)
;
}
},
is: {
tab: function(tabName) {
return ( module.get.tabElement(tabName).size() > 0 );
}
},
get: {
initialPath: function() {
return $tabNavigation.eq(0).data(metadata.tab) || $tabs.eq(0).data(metadata.tab);
},
// adds default tabs to tab path
defaultPathArray: function(tabPath) {
return module.utils.pathToArray( module.get.defaultPath(tabPath) );
},
defaultPath: function(tabPath) {
var
$defaultNav = $tabNavigation.filter('[data-' + metadata.tab + '^="' + tabPath + '/"]').eq(0),
defaultTab = $defaultNav.data(metadata.tab) || false
;
if( defaultTab ) {
module.debug('Found default tab', defaultTab);
if(recursionDepth < settings.maxDepth) {
recursionDepth++;
return module.get.defaultPath(defaultTab);
}
module.error(errors.recursion);
}
recursionDepth = 0;
return tabPath;
},
navElement: function(tabPath) {
tabPath = tabPath || activeTabPath;
return $tabNavigation.filter('[data-' + metadata.tab + '="' + tabPath + '"]');
},
tabElement: function(tabPath) {
var
$fullPathTab,
$simplePathTab,
tabPathArray,
lastTab
;
tabPath = tabPath || activeTabPath;
tabPathArray = module.utils.pathToArray(tabPath);
lastTab = module.utils.last(tabPathArray);
$fullPathTab = $tabs.filter('[data-' + metadata.tab + '="' + lastTab + '"]');
$simplePathTab = $tabs.filter('[data-' + metadata.tab + '="' + tabPath + '"]');
return ($fullPathTab.size() > 0)
? $fullPathTab
: $simplePathTab
;
},
tab: function() {
return activeTabPath;
}
},
utils: {
filterArray: function(keepArray, removeArray) {
return $.grep(keepArray, function(keepValue) {
return ( $.inArray(keepValue, removeArray) == -1);
});
},
last: function(array) {
return $.isArray(array)
? array[ array.length - 1]
: false
;
},
pathToArray: function(pathName) {
if(pathName === undefined) {
pathName = activeTabPath;
}
return typeof pathName == 'string'
? pathName.split('/')
: [pathName]
;
},
arrayToPath: function(pathArray) {
return $.isArray(pathArray)
? pathArray.join('/')
: false
;
}
},
/* standard module */
setting: function(name, value) {
if(value === undefined) {
return settings[name];
}
settings[name] = value;
},
verbose: function() {
if(settings.verbose) {
module.debug.apply(this, arguments);
}
},
debug: function() {
var
output = [],
message = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.info || console.log || function(){}
;
log = Function.prototype.bind.call(log, console);
if(settings.debug) {
output.push(message);
log.apply(console, output.concat(variables) );
}
},
error: function() {
var
output = [],
errorMessage = settings.moduleName + ': ' + arguments[0],
variables = [].slice.call( arguments, 1 ),
log = console.warn || console.log || function(){}
;
log = Function.prototype.bind.call(log, console);
if(settings.debug) {
output.push(errorMessage);
output.concat(variables);
log.apply(console, output.concat(variables));
}
},
invoke: function(query, context, passedArguments) {
var
maxDepth,
found
;
passedArguments = passedArguments || [].slice.call( arguments, 2 );
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(settings.errors.method);
return false;
});
}
if ( $.isFunction( found ) ) {
return found.apply(context, passedArguments);
}
// return retrieved variable or chain
return found;
}
};
// check for invoking internal method
if(methodInvoked) {
invokedResponse = module.invoke(query, this, passedArguments);
}
// otherwise initialize
else {
module.initialize();
}
return (invokedResponse !== undefined)
? invokedResponse
: this
;
};
// shortcut for tabbed content with no defined navigation
$.tabNavigation = function(settings) {
$(window).tabNavigation(settings);
};
$.fn.tabNavigation.settings = {
moduleName : 'Tab Module',
verbose : false,
debug : true,
namespace : 'tab',
// only called first time a tab's content is loaded (when remote source)
onTabInit : function(tabPath, parameterArray, historyEvent) {},
// called on every load
onTabLoad : function(tabPath, parameterArray, historyEvent) {},
templates: {
determineTitle: function(tabArray) {}
},
history : false,
path : false,
context : 'body',
// max depth a tab can be nested
maxDepth : 25,
// dont load content on first load
ignoreFirstLoad : true,
// load tab content new every tab click
alwaysRefresh : false,
// cache the content requests to pull locally
cache : true,
// settings for api call
apiSettings : false,
errors: {
api : 'You attempted to load content without API module',
noContent : 'The tab you specified is missing a content url.',
method : 'The method you called is not defined',
state : 'The state library has not been initialized',
missingTab : 'Missing tab: ',
recursion : 'Max recursive depth reached'
},
metadata : {
tab : 'tab',
loaded : 'loaded',
promise: 'promise'
},
className : {
loading : 'loading',
active : 'active'
},
selector : {
tabs : '.tab'
}
};
})( jQuery, window , document );

48
components/semantic/src/modules/video.css

@ -1,48 +0,0 @@
/*---------------
Video Embed
----------------*/
.video.module {
position: relative;
background: #333333 url(../images/placeholder.png) no-repeat center center;
}
.video.module .play {
cursor: pointer;
position: absolute;
top: 0px;
left: 0px;
z-index: 100;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
filter: alpha(opacity=60);
opacity: 0.6;
width: 100%;
height: 100%;
background: url(/images/modules/video-play.png) no-repeat center center;
-webkit-transition: opacity 0.3s;
-moz-transition: opacity 0.3s;
-o-transition: opacity 0.3s;
-ms-transition: opacity 0.3s;
transition: opacity 0.3s;
}
.video.module .play:hover {
opacity: 1;
}
.video.module .placeholder {
width: 100%;
height: 100%;
}
.video.module .embed {
display: none;
}
/* Video Active */
.video.module.active .play,
.video.module.active .placeholder {
display: none;
}
.video.module.active .embed {
display: block;
}

391
components/semantic/src/modules/video.js

@ -1,391 +0,0 @@
/* ******************************
Module - Video Component
Author: Jack Lukic
Notes: First Commit June 30, 2012
This is a video playlist and video embed plugin which helps
provide helpers for adding embed code for vimeo and youtube and
abstracting event handlers for each library
****************************** */
;(function ($, window, document, undefined) {
$.fn.video = function(parameters) {
var
settings = $.extend(true, {}, $.fn.video.settings, parameters),
// make arguments available
moduleArguments = arguments || false,
invokedResponse
;
$(this)
.each(function() {
var
$module = $(this),
$placeholder = $module.find(settings.selector.placeholder),
$playButton = $module.find(settings.selector.playButton),
$embed = $module.find(settings.selector.embed),
element = this,
instance = $module.data('module-' + settings.namespace),
methodInvoked = (typeof parameters == 'string'),
namespace = settings.namespace,
metadata = settings.metadata,
className = settings.className,
module
;
module = {
initialize: function() {
module.debug('Initializing video');
$placeholder
.off('.video')
.on('click.' + namespace, module.play)
;
$playButton
.off('.video')
.on('click.' + namespace, module.play)
;
$module
.data('module-' + namespace, module)
;
},
// sets new video
change: function(source, flv) {
module.debug('Changing video to ', flv);
$module
.data(metadata.source, source)
.data(metadata.flv, flv)
;
settings.onChange();
},
// clears video embed
reset: function() {
module.debug('Clearing video embed and showing placeholder');
$module
.removeClass(className.active)
;
$embed
.html(' ')
;
$placeholder
.show()
;
settings.onReset();
},
// plays current video
play: function() {
module.debug('Playing video');
var
source = $module.data(metadata.source),
flv = $module.data(metadata.flv)
;
$embed
.html( module.generate.html(source, flv) )
;
$module
.addClass(className.active)
;
settings.onPlay();
},
generate: {
// generates iframe html
html: function(source, flv) {
module.debug('Generating embed html');
var
width = (settings.width == 'auto')
? $module.width()
: settings.width,
height = (settings.height == 'auto')
? $module.height()
: settings.height,
html
;
if(source == 'vimeo') {
html = ''
+ '<iframe src="http://player.vimeo.com/video/' + flv + '?=' + module.generate.url(source) + '"'
+ ' width="' + width + '" height="' + height + '"'
+ ' frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'
;
}
else if(source == 'youtube') {
html = ''
+ '<iframe src="http://www.youtube.com/embed/' + flv + '?=' + module.generate.url(source) + '"'
+ ' width="' + width + '" height="' + height + '"'
+ ' frameborder="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe>'
;
}
return html;
},
// generate url parameters
url: function(source) {
var
api = (settings.api)
? 1
: 0,
autoplay = (settings.autoplay)
? 1
: 0,
hd = (settings.hd)
? 1
: 0,
showUI = (settings.showUI)
? 1
: 0,
// opposite used for some params
hideUI = !(settings.showUI)
? 1
: 0,
url = ''
;
if(source == 'vimeo') {
url = ''
+ 'api=' + api
+ '&amp;title=' + showUI
+ '&amp;byline=' + showUI
+ '&amp;portrait=' + showUI
+ '&amp;autoplay=' + autoplay
;
if(settings.color) {
url += '&amp;color=' + settings.color;
}
}
else if(source == 'youtube') {
url = ''
+ 'enablejsapi=' + api
+ '&amp;autoplay=' + autoplay
+ '&amp;autohide=' + hideUI
+ '&amp;hq=' + hd
+ '&amp;modestbranding=1'
;
if(settings.color) {
url += '&amp;color=' + settings.color;
}
}
return url;
}
},
/* standard module */
debug: function(message, variableName) {
if(settings.debug) {
if(variableName !== undefined) {
console.info(settings.moduleName + ': ' + message, variableName);
}
else {
console.info(settings.moduleName + ': ' + message);
}
}
},
error: function(errorMessage) {
console.warn(settings.moduleName + ': ' + errorMessage);
},
invoke: function(methodName, context, methodArguments) {
var
method
;
methodArguments = methodArguments || Array.prototype.slice.call( arguments, 2 );
if(typeof methodName == 'string' && instance !== undefined) {
methodName = methodName.split('.');
$.each(methodName, function(index, name) {
if( $.isPlainObject( instance[name] ) ) {
instance = instance[name];
return true;
}
else if( $.isFunction( instance[name] ) ) {
method = instance[name];
return true;
}
module.error(settings.errors.method);
return false;
});
}
if ( $.isFunction( method ) ) {
return method.apply(context, methodArguments);
}
// return retrieved variable or chain
return method;
}
};
// check for invoking internal method
if(methodInvoked) {
invokedResponse = module.invoke(moduleArguments[0], this, Array.prototype.slice.call( moduleArguments, 1 ) );
}
// otherwise initialize
else {
if(instance) {
module.destroy();
}
module.initialize();
}
})
;
// chain or return queried method
return (invokedResponse !== undefined)
? invokedResponse
: this
;
};
$.fn.videoPlaylist = function(video, parameters) {
var
$allModules = $(this),
$video = $(video),
$iframe = $video.find('.embed iframe'),
settings = $.extend({}, $.fn.videoPlaylist.settings, parameters, true)
;
$allModules
.each(function() {
var
$element = $(this),
metadata = settings.metadata,
namespace = settings.namespace,
className = settings.className,
module = {
initialize: function() {
$element
.on('click.' + namespace , module.changeVideo)
;
},
changeVideo: function() {
var
flv = $element.data(metadata.flv) || false,
source = $element.data(metadata.source) || false,
placeholder = $element.data(metadata.placeholder) || false
;
if(flv && source) {
$video
.data(metadata.source, source)
.data(metadata.flv, flv)
;
if(settings.showPlaceholder) {
$video
.removeClass(className.active)
.find($.fn.video.selector.placeholder)
.attr('src', placeholder)
;
}
else {
try {
$video
.video('play')
;
}
catch(error) {
console.warn('Video Playlist Module: ' + settings.error.init);
}
}
$allModules
.removeClass(className.active)
;
$element
.addClass(className.active)
;
}
}
}
;
module.initialize();
})
;
if(settings.playFirst) {
$allModules
.eq(0)
.trigger('click')
;
// we all like a good hack
if($iframe.size() > 0) {
$iframe
.attr('src', $iframe.attr('src').replace('autoplay=1', 'autoplay=0') )
;
}
}
};
$.fn.video.settings = {
moduleName : 'Video',
namespace : 'video',
debug : false,
metadata : {
source : 'source',
flv : 'flv'
},
onPlay : function(){},
onReset : function(){},
onChange : function(){},
// callbacks not coded yet (needs to use jsapi)
play : function() {},
pause : function() {},
stop : function() {},
width : 'auto',
height : 'auto',
autoplay : false,
color : '#442359',
hd : true,
showUI : false,
api : true,
errors : {
method : 'The method you called is not defined'
},
className : {
active : 'active'
},
selector : {
embed : '.embed',
placeholder : '.placeholder',
playButton : '.play'
}
};
$.fn.videoPlaylist.settings = {
moduleName : 'Video Playlist',
namespace : 'videoPlaylist',
source : 'vimeo',
showPlaceholder : false,
playFirst : true,
metadata: {
flv : 'flv',
source : 'source',
placeholder : 'placeholder'
},
errors: {
init : 'The video player you specified was not yet initialized'
},
className : {
active : 'active'
}
};
})( jQuery, window , document );

125
components/semantic/src/views/activity-feed.css

@ -1,125 +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 blockquote {
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 blockquote.grey {
background-color: #FAFAFA;
border: 1px solid #EAEAEA;
font-weight: bold;
}
.ui.feed .event blockquote img {
float: left;
width: 75px;
margin-right: 20px;
}
.ui.feed .event .what blockquote 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 blockquote {
color: #555555;
}
.ui.large.feed .what img {
display: block;
width: auto;
}
.ui.large.feed .when {
font-size: 12px;
}

154
components/semantic/src/views/cover.css

@ -1,154 +0,0 @@
/*******************************
UI Cover View
*******************************/
/*--------------
UI Cover View
---------------*/
/* Normal */
ul.ui.cover-view li,
div.ui.cover-view {
position: relative;
width: 220px;
height: 290px;
background-color: #111111;
background: transparent -webkit-linear-gradient(top, rgba(110, 110, 110, 0.7) 0%, rgba(0, 0, 0, 0.7) 100%) repeat;
background: transparent -moz-linear-gradient(top, rgba(110, 110, 110, 0.7) 0%, rgba(0, 0, 0, 0.7) 100%) repeat;
background: transparent -o-linear-gradient(top, rgba(110, 110, 110, 0.7) 0%, rgba(0, 0, 0, 0.7) 100%) repeat;
background: transparent -ms-linear-gradient(top, rgba(110, 110, 110, 0.7) 0%, rgba(0, 0, 0, 0.7) 100%) repeat;
background: transparent linear-gradient(top, rgba(110, 110, 110, 0.7) 0%, rgba(0, 0, 0, 0.7) 100%) repeat;
-webkit-border-radius: 9px;
-moz-border-radius: 9px;
border-radius: 9px;
-webkit-box-shadow:
0px 1px 5px 0px rgba(0, 0, 0, 0.3),
0px 1px 0px 0px rgba(255, 255, 255, 0.3) inset
;
-moz-box-shadow:
0px 1px 5px 0px rgba(0, 0, 0, 0.3),
0px 1px 0px 0px rgba(255, 255, 255, 0.3) inset
;
box-shadow:
0px 1px 5px 0px rgba(0, 0, 0, 0.3),
0px 1px 0px 0px rgba(255, 255, 255, 0.3) inset
;
}
ul.ui.cover-view li .content,
.ui.cover-view .content {
position: relative;
overflow: hidden;
width: 100%;
height: 100%;
}
ul.ui.cover-view li .cover,
.ui.cover-view .cover {
width: 100%;
height: 100%;
background-position: center center;
-webkit-background-size: cover;
-moz-background-size: cover;
background-size: cover;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
-webkit-border-radius: 9px;
-moz-border-radius: 9px;
border-radius: 9px;
opacity: 1;
}
ul.ui.cover-view li .text,
.ui.cover-view .text {
position: absolute;
bottom: 0px;
left: 0px;
width: 100%;
padding: 15px 15px;
line-height: 1.44;
background-color: #111111;
background: transparent -webkit-linear-gradient(top, rgba(40, 40, 40, 0.8) 0%, rgba(0, 0, 0, 0.8) 100%) repeat;
background: transparent -moz-linear-gradient(top, rgba(40, 40, 40, 0.8) 0%, rgba(0, 0, 0, 0.8) 100%) repeat;
background: transparent -o-linear-gradient(top, rgba(40, 40, 40, 0.8) 0%, rgba(0, 0, 0, 0.8) 100%) repeat;
background: transparent -ms-linear-gradient(top, rgba(40, 40, 40, 0.8) 0%, rgba(0, 0, 0, 0.8) 100%) repeat;
background: transparent linear-gradient(top, rgba(40, 40, 40, 0.8) 0%, rgba(0, 0, 0, 0.8) 100%) repeat;
-webkit-border-radius: 0px 0px 9px 9px;
-moz-border-radius: 0px 0px 9px 9px;
border-radius: 0px 0px 9px 9px;
-moz-box-shadow:
0px 1px 0px 0px rgba(255, 255, 255, 0.3) inset,
0px -1px 4px rgba(0, 0, 0, 0.4)
;
-webkit-box-shadow:
0px 1px 0px 0px rgba(255, 255, 255, 0.3) inset,
0px -1px 4px rgba(0, 0, 0, 0.4)
;
box-shadow:
0px 1px 0px 0px rgba(255, 255, 255, 0.3) inset,
0px -1px 4px rgba(0, 0, 0, 0.4)
;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
opacity: 1;
}
ul.ui.cover-view li .text h2,
.ui.cover-view .text h2 {
font-size: 18px;
font-weight: bold;
color: #009FDA;
margin: 0px 0px 5px;
text-shadow: 0px 2px 2px rgba(0, 0, 0, 0.9);
}
ul.ui.cover-view li .text h3,
.ui.cover-view .text h3 {
color: #FFFFFF;
text-shadow: 0px 2px 2px rgba(0, 0, 0, 0.9);
}
/* Loading State */
ul.ui.cover-view li > .throbber,
div.ui.cover-view > .throbber {
display: none;
}
ul.ui.cover-view li.loading > .throbber,
div.ui.cover-view.loading > .throbber {
display: block;
opacity: 0.3;
}
ul.ui.cover-view li.loading .text,
div.ui.cover-view.loading .text,
ul.ui.cover-view li.loading .cover,
div.ui.cover-view.loading .cover {
opacity: 0;
}
/* Cover Flow Floated List */
ul.ui.cover-view li {
float: left;
margin: 0px 5px 10px;
}

67
components/semantic/src/views/data-grid.css

@ -1,67 +0,0 @@
/*******************************
Data Display Grid
*******************************/
.ui.data-grid {
width: 100%;
font-size: 12px;
color: #555555;
}
.ui.data-grid.hide {
display: none;
}
.ui.data-grid thead {
}
.ui.data-grid thead th {
}
.ui.data-grid tbody tr {
border-top: 1px solid #D9D9D9;
}
.ui.data-grid tbody tr:first-child {
border-top: none;
}
.ui.data-grid tbody td {
padding: 10px 14px;
vertical-align: middle;
}
/* Special Row Types */
.ui.data-grid tbody td.who {
width: 240px;
}
.ui.data-grid tbody td.who i {
float: left;
width: 35px;
height: 35px;
background: #EFEFEF url(../images/placeholder-tiny.png) no-repeat center center;
}
.ui.data-grid tbody td.who img {
width: 35px;
}
.ui.data-grid tbody td.who hgroup {
display: block;
margin-left: 50px;
}
.ui.data-grid tbody td.who hgroup h2 {
font-size: 14px;
font-weight: bold;
}
.ui.data-grid tbody td.who hgroup h3 {
font-size: 12px;
}
.ui.data-grid tbody td.action {
width: 120px;
text-align: right;
}
/* data-grid Hover Style */
.ui.data-grid tbody tr.hover {
background-color: #F4F4F4;
}

94
components/semantic/src/views/notecard.css

@ -1,94 +0,0 @@
/*******************************
UI Cover View
*******************************/
/*--------------
UI Note Card
---------------*/
/* Normal */
.ui.notecard {
position: relative;
width: 520px;
padding: 10px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
-ms-box-sizing: border-box;
box-sizing: border-box;
background-color: #FDFBE9;
border: 1px solid #DDDDDD;
-webkit-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.1);
-moz-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.1);
box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.1);
}
.ui.notecard .stripes {
height: 100%;
margin-top: 10px;
padding: 0px 5px 10px;
background: url(../images/notecard-stripes.png) repeat;
line-height: 21px;
}
.ui.notecard .stripes h2 {
margin: 0px;
font-size: 20px;
font-weight: bold;
}
.ui.notecard .stripes p {
margin: 0px;
padding: 0px;
font-size: 12px;
}
.ui.notecard .stripes .image {
display: block;
overflow: hidden;
border: 1px solid #DAD8C9;
background: #FFFFFF url(../images/placeholder-tiny.png) no-repeat center center;
padding: 4px;
}
.ui.notecard .stripes .image img {
display: block;
}
.ui.notecard br,
.ui.notecard hr {
height: 21px;
border: none;
background-color: transparent;
}
/* imageless */
.ui.notecard.simple .stripes {
margin-top: 10px;
background-image: -moz-repeating-linear-gradient(transparent 19px, rgba(255, 255, 255, 0.2) 20px, transparent 0px, transparent 40px);
background-image: -webkit-repeating-linear-gradient(transparent 19px, rgba(255, 255, 255, 0.2) 20px, transparent 0px, transparent 40px);
background-image: -ms-repeating-linear-gradient(transparent 19px, rgba(255, 255, 255, 0.2) 20px, transparent 0px, transparent 40px);
background-image: -o-repeating-linear-gradient(transparent 19px, rgba(255, 255, 255, 0.2) 20px, transparent 0px, transparent 40px);
background-image: repeating-linear-gradient(transparent 19px, rgba(255, 255, 255, 0.2) 20px, transparent 0px, transparent 40px);
}
/* contrast */
.ui.notecard.contrast {
border: none;
-webkit-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.7);
-moz-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.7);
box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.7);
}
/*--------------
Clipped
---------------*/
.ui.clipped.notecard.paperclip img {
height: auto;
width: 135px;
}
.ui.clipped.notecard.stripes {
min-height: 150px;
padding: 0px 5px 10px 160px;
}

48
components/semantic/src/views/video.css

@ -1,48 +0,0 @@
/*---------------
Video Module
----------------*/
.video.module {
position: relative;
background: #333333 url(/images/icon-placeholder-logo.png) no-repeat center center;
}
.video.module .play {
cursor: pointer;
position: absolute;
top: 0px;
left: 0px;
z-index: 100;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
filter: alpha(opacity=60);
opacity: 0.6;
width: 100%;
height: 100%;
background: url(/images/icon-play.png) no-repeat center center;
-webkit-transition: opacity 0.3s;
-moz-transition: opacity 0.3s;
-o-transition: opacity 0.3s;
-ms-transition: opacity 0.3s;
transition: opacity 0.3s;
}
.video.module .play:hover {
opacity: 1;
}
.video.module .placeholder {
width: 100%;
height: 100%;
}
.video.module .embed {
display: none;
}
/* Video Active */
.video.module.active .play,
.video.module.active .placeholder {
display: none;
}
.video.module.active .embed {
display: block;
}

15
crossdomain.xml

@ -1,15 +0,0 @@
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
<!-- Most restrictive policy: -->
<site-control permitted-cross-domain-policies="none"/>
<!-- Least restrictive policy: -->
<!--
<site-control permitted-cross-domain-policies="all"/>
<allow-access-from domain="*" to-ports="*" secure="false"/>
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
-->
</cross-domain-policy>

181
download.html

@ -1,181 +0,0 @@
<!DOCTYPE html>
<head>
<!-- Standard Meta -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width" />
<!-- Site Properities -->
<meta http-equiv="X-Powered-By" content="DocPad v6.34.1"/>
<title>Download | Semantic UI</title>
<meta name="description" content="Semantic empowers designers and developers by creating a shared vocabulary for UI." />
<meta name="keywords" content="html5, ui, library, framework, javascript" />
<link rel="stylesheet" type="text/css" href="/stylesheets/reset.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/icons.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/button.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/header.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/label.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/progress.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/divider.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/message.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/segment.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/grid.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/items.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/table.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/form.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/menu.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/shape.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/popup.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/checkbox.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/library/sidr.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/semantic.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/shape.css">
<script src="/javascript/library/jquery.js"></script>
<script src="/javascript/library/easing.js"></script>
<script src="/javascript/library/ace/ace.js"></script>
<script src="/javascript/library/sidr.js"></script>
<script src="/javascript/library/waypoints.js"></script>
<script src="/components/semantic/src/modules/behavior/state.js"></script>
<script src="/components/semantic/src/modules/shape.js"></script>
<script src="/components/semantic/src/modules/checkbox.js"></script>
<script src="/components/semantic/src/modules/popup.js"></script>
<script src="/javascript/semantic.js"></script>
<script src="/javascript/shape.js"></script>
</head>
<body id="example">
<div class="ui large vertical menu" id="menu">
<div class="item"><a href="/index.html"><b>Introduction</b></a></div>
<div class="item"><a href="/download.html"><b>Download</b></a></div>
<div class="item">
<a href="/element.html"><b>UI Elements</b></a>
<div class="menu">
<a class="item" href="/elements/button.html">Button</a>
<a class="item" href="/elements/label.html">Label</a>
</div>
</div>
<div class="item">
<a href="/collection.html"><b>UI Collections</b></a>
<div class="menu">
<a class="item" href="/collections/form.html">Form</a>
<a class="item" href="/collections/grid.html">Grid</a>
<a class="item" href="/collections/menu.html">Menu</a>
<a class="item" href="/collections/message.html">Message</a>
<a class="item" href="/collections/table.html">Table</a>
</div>
</div>
<div class="item">
<a href="/module.html"><b>UI Modules</b></a>
<div class="menu">
<a class="item" href="/modules/checkbox.html">Checkbox</a>
<a class="item" href="/modules/shape.html">Shape</a>
</div>
</div>
<div class="item">
<a href="/specification.html"><b>Specification</b></a>
<div class="menu">
</div>
</div>
</div>
<div class="ui fixed transparent inverted main menu">
<div class="container">
<div class="title item">
<b>Library:</b> Download
</div>
<div class="icon previous link disabled item">
<i class="icon left-open"></i>
</div>
<div class="section dropdown item">
1 of 1
<div class="menu">
<div class="active item">
<a href="/download.html">1. Download</a>
</div>
</div>
</div>
<div class="icon next disabled link item">
<i class="icon right-open"></i>
</div>
<div class="right menu">
<a class="popup designer item" title="Designer Mode">
<i class="icon easel"></i>
</a>
<a class="popup developer item" title="Developer Mode">
<i class="icon terminal"></i>
</a>
<a class="popup item" title="View project on Github" href="https://github.com/quirkyinc/semantic">
<i class="icon github"></i>
</a>
<!--
<div class="dropdown item">
<i class="icon tint"></i> Theme
<div class="theme menu">
<div class="active item" data-theme="flat">Flat</div>
<div class="item" data-theme="shaded">Shaded</div>
<div class="item" data-theme="classic">Classic</div>
</div>
</div>
!-->
</div>
</div>
</div>
<div class="ui teal huge sidebar right attached button">
<i class="icon th-list"></i>
<span class="text">Menu</span>
</div>
<div class="segment">
<div class="container">
<h1>Download</h1>
<p>Download semantic</p>
</div>
</div>
<div class="main container">
</div>
</body>
</html>
</body>
</html>

240
element.html

@ -1,240 +0,0 @@
<!DOCTYPE html>
<head>
<!-- Standard Meta -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width" />
<!-- Site Properities -->
<meta http-equiv="X-Powered-By" content="DocPad v6.34.1"/>
<title>UI Elements | Semantic UI</title>
<meta name="description" content="Semantic empowers designers and developers by creating a shared vocabulary for UI." />
<meta name="keywords" content="html5, ui, library, framework, javascript" />
<link rel="stylesheet" type="text/css" href="/stylesheets/reset.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/icons.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/button.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/header.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/label.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/progress.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/divider.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/message.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/segment.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/grid.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/items.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/table.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/form.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/menu.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/shape.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/popup.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/checkbox.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/library/sidr.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/semantic.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/shape.css">
<script src="/javascript/library/jquery.js"></script>
<script src="/javascript/library/easing.js"></script>
<script src="/javascript/library/ace/ace.js"></script>
<script src="/javascript/library/sidr.js"></script>
<script src="/javascript/library/waypoints.js"></script>
<script src="/components/semantic/src/modules/behavior/state.js"></script>
<script src="/components/semantic/src/modules/shape.js"></script>
<script src="/components/semantic/src/modules/checkbox.js"></script>
<script src="/components/semantic/src/modules/popup.js"></script>
<script src="/javascript/semantic.js"></script>
<script src="/javascript/shape.js"></script>
</head>
<body id="example">
<div class="ui large vertical menu" id="menu">
<div class="item"><a href="/index.html"><b>Introduction</b></a></div>
<div class="item"><a href="/download.html"><b>Download</b></a></div>
<div class="item">
<a href="/element.html"><b>UI Elements</b></a>
<div class="menu">
<a class="item" href="/elements/button.html">Button</a>
<a class="item" href="/elements/label.html">Label</a>
</div>
</div>
<div class="item">
<a href="/collection.html"><b>UI Collections</b></a>
<div class="menu">
<a class="item" href="/collections/form.html">Form</a>
<a class="item" href="/collections/grid.html">Grid</a>
<a class="item" href="/collections/menu.html">Menu</a>
<a class="item" href="/collections/message.html">Message</a>
<a class="item" href="/collections/table.html">Table</a>
</div>
</div>
<div class="item">
<a href="/module.html"><b>UI Modules</b></a>
<div class="menu">
<a class="item" href="/modules/checkbox.html">Checkbox</a>
<a class="item" href="/modules/shape.html">Shape</a>
</div>
</div>
<div class="item">
<a href="/specification.html"><b>Specification</b></a>
<div class="menu">
</div>
</div>
</div>
<div class="ui fixed transparent inverted main menu">
<div class="container">
<div class="title item">
<b>Semantic:</b> UI Elements
</div>
<div class="icon previous link item">
<a href="/collection.html"><i class="icon left-open"></i></a>
</div>
<div class="section dropdown item">
3 of 4
<div class="menu">
<div class="item">
<a href="/index.html">1. Introduction</a>
</div>
<div class="item">
<a href="/collection.html">2. UI Collections</a>
</div>
<div class="active item">
<a href="/element.html">3. UI Elements</a>
</div>
<div class="item">
<a href="/module.html">4. UI Modules</a>
</div>
</div>
</div>
<div class="icon next link item">
<a href="/module.html"><i class="icon right-open"></i></a>
</div>
<div class="right menu">
<a class="popup designer item" title="Designer Mode">
<i class="icon easel"></i>
</a>
<a class="popup developer item" title="Developer Mode">
<i class="icon terminal"></i>
</a>
<a class="popup item" title="View project on Github" href="https://github.com/quirkyinc/semantic">
<i class="icon github"></i>
</a>
<!--
<div class="dropdown item">
<i class="icon tint"></i> Theme
<div class="theme menu">
<div class="active item" data-theme="flat">Flat</div>
<div class="item" data-theme="shaded">Shaded</div>
<div class="item" data-theme="classic">Classic</div>
</div>
</div>
!-->
</div>
</div>
</div>
<div class="ui teal huge sidebar right attached button">
<i class="icon th-list"></i>
<span class="text">Menu</span>
</div>
<div class="segment">
<div class="container">
<h1>UI Element</h1>
<p>UI elements are distinct interface elements, that can be explained both as single elements and as plural groups.</p>
</div>
</div>
<div class="main container">
<div class="peek">
<div class="ui vertical pointing menu">
<a class="active item">Definition</a>
<a class="item">Types</a>
</div>
</div>
<h2>Definition</h2>
<p>UI Elements are single interface elements that do not contain other elements inside themselves.</p>
<p>Elements are often found in groups, so many element definitions include a plural definition.</p>
<div class="example">
<h4>Groups</h4>
<p>The plural of button is "buttons" a button wrapped inside "buttons" will automatically apply styling appropriate for a group. Also many button variations can be used on plural definitions just like they would be used in singular.</p>
<p>For example, in this case each button will be large because we understand it is a part of the large button group</p>
<div class="ui simple ignored divider"></div>
<div class="large ui buttons">
<div class="ui button">Cancel</div>
<div class="ui positive button">Continue</div>
</div>
</div>
<h2>Types</h2>
<div class="ui horizontal type items">
<div class="item">
<div class="image">
<div class="ui teal fluid button">Follow</div>
</div>
<div class="content">
<a href="elements/button.html" class="name">Button</a>
<p>A button indicates a possible user action.</p>
</div>
</div>
<div class="item">
<div class="image">
<div class="ui large teal label">New</div>
<div class="ui large red label">Popular</div><br><br>
<div class="ui large orange label">User Favorite</div>
</div>
<div class="content">
<a href="elements/label.html" class="name">Label</a>
<p>A button indicates a possible user action.</p>
</div>
</div>
</div>
</div>
</body>
</html>
</body>
</html>

439
elements/button.html

@ -1,439 +0,0 @@
<!DOCTYPE html>
<head>
<!-- Standard Meta -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width" />
<!-- Site Properities -->
<meta http-equiv="X-Powered-By" content="DocPad v6.34.1"/>
<title>Button | Semantic UI</title>
<meta name="description" content="Semantic empowers designers and developers by creating a shared vocabulary for UI." />
<meta name="keywords" content="html5, ui, library, framework, javascript" />
<link rel="stylesheet" type="text/css" href="/stylesheets/reset.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/icons.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/button.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/header.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/label.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/progress.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/divider.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/message.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/segment.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/grid.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/items.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/table.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/form.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/menu.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/shape.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/popup.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/checkbox.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/library/sidr.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/semantic.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/shape.css">
<script src="/javascript/library/jquery.js"></script>
<script src="/javascript/library/easing.js"></script>
<script src="/javascript/library/ace/ace.js"></script>
<script src="/javascript/library/sidr.js"></script>
<script src="/javascript/library/waypoints.js"></script>
<script src="/components/semantic/src/modules/behavior/state.js"></script>
<script src="/components/semantic/src/modules/shape.js"></script>
<script src="/components/semantic/src/modules/checkbox.js"></script>
<script src="/components/semantic/src/modules/popup.js"></script>
<script src="/javascript/semantic.js"></script>
<script src="/javascript/shape.js"></script>
</head>
<body id="example">
<div class="ui large vertical menu" id="menu">
<div class="item"><a href="/index.html"><b>Introduction</b></a></div>
<div class="item"><a href="/download.html"><b>Download</b></a></div>
<div class="item">
<a href="/element.html"><b>UI Elements</b></a>
<div class="menu">
<a class="active item" href="/elements/button.html">Button</a>
<a class="item" href="/elements/label.html">Label</a>
</div>
</div>
<div class="item">
<a href="/collection.html"><b>UI Collections</b></a>
<div class="menu">
<a class="item" href="/collections/form.html">Form</a>
<a class="item" href="/collections/grid.html">Grid</a>
<a class="item" href="/collections/menu.html">Menu</a>
<a class="item" href="/collections/message.html">Message</a>
<a class="item" href="/collections/table.html">Table</a>
</div>
</div>
<div class="item">
<a href="/module.html"><b>UI Modules</b></a>
<div class="menu">
<a class="item" href="/modules/checkbox.html">Checkbox</a>
<a class="item" href="/modules/shape.html">Shape</a>
</div>
</div>
<div class="item">
<a href="/specification.html"><b>Specification</b></a>
<div class="menu">
</div>
</div>
</div>
<div class="ui fixed transparent inverted main menu">
<div class="container">
<div class="title item">
<b>UI Element:</b> Button
</div>
<div class="icon previous link disabled item">
<i class="icon left-open"></i>
</div>
<div class="section dropdown item">
1 of 2
<div class="menu">
<div class="active item">
<a href="/elements/button.html">1. Button</a>
</div>
<div class="item">
<a href="/elements/label.html">2. Label</a>
</div>
</div>
</div>
<div class="icon next link item">
<a href="/elements/label.html"><i class="icon right-open"></i></a>
</div>
<div class="right menu">
<a class="popup designer item" title="Designer Mode">
<i class="icon easel"></i>
</a>
<a class="popup developer item" title="Developer Mode">
<i class="icon terminal"></i>
</a>
<a class="popup item" title="View project on Github" href="https://github.com/quirkyinc/semantic">
<i class="icon github"></i>
</a>
<!--
<div class="dropdown item">
<i class="icon tint"></i> Theme
<div class="theme menu">
<div class="active item" data-theme="flat">Flat</div>
<div class="item" data-theme="shaded">Shaded</div>
<div class="item" data-theme="classic">Classic</div>
</div>
</div>
!-->
</div>
</div>
</div>
<div class="ui teal huge sidebar right attached button">
<i class="icon th-list"></i>
<span class="text">Menu</span>
</div>
<div class="segment">
<div class="container">
<h1>Button</h1>
<p>Buttons indicate a possible user action.</p>
</div>
</div>
<div class="main container">
<div class="peek">
<div class="ui vertical pointing menu">
<a class="active item">Standard</a>
<a class="item">States</a>
<a class="item">Variations</a>
<a class="item">Groups</a>
</div>
</div>
<h2>Standard</h2>
<div class="example">
<h4>Button:</h4>
<p>A standard button</p>
<div class="ui button">Button</div>
</div>
<h2>States</h2>
<div class="example">
<h4>Hover</h4>
<p>Changes when a user moves their cursor over it</p>
<div class="ui hover button">Hovered Button</div>
</div>
<div class="example">
<h4>Down</h4>
<p>Changes when pressed using touch or mouse events</p>
<div class="ui down button">Pressed Button</div>
</div>
<div class="example">
<h4>Active</h4>
<p>Changes to show it is currently the selected user action</p>
<div class="ui active button">Active Button</div>
</div>
<div class="example">
<h4>Disabled</h4>
<p>Changes to show it is currently unable to be interacted with</p>
<div class="ui disabled button">Disabled Button</div>
</div>
<div class="example">
<h4>Loading</h4>
<p>Can show a loading indicator:</p>
<div class="ui loading button">Loading Button</div>
</div>
<div class="example">
<h4>Success</h4>
<p>Can alert to a succesful action:</p>
<div class="ui success button">Successful Button</div>
</div>
<div class="example">
<h4>Error</h4>
<p>Can alert user of an error:</p>
<div class="ui error button">Error</div>
</div>
<div class="example">
<h4>All together:</h4>
<div class="ui button">Normal</div>
<div class="ui button hover">Hover</div>
<div class="ui button down">Down</div>
<div class="ui button loading">Loading</div>
<br><br>
<div class="ui button disabled">Disabled</div>
<div class="ui button active">Active</div>
<div class="ui button active toggle">Toggled</div>
<div class="ui button error">Error</div>
<div class="ui button success">Success</div>
</div>
<h2>Variations</h2>
<p>Button variations are used to explain relationships between user actions and other elements, or to show emphasis.</p>
<div class="example">
<h4>Sizes</h4>
<p>Can have different sizes:</p>
<div class="mini ui button">
Mini
</div>
<div class="tiny ui button">
Tiny
</div>
<div class="small ui button">
Small
</div>
<div class="medium ui button">
Medium
</div>
<div class="large ui button">
Large
</div>
<div class="big ui button">
Big
</div>
<div class="huge ui button">
Huge
</div>
<div class="massive ui button">
Massive
</div>
<div class="gigantic ui button">
Gigantic
</div>
</div>
<div class="example">
<h4>Colors</h4>
<p>Can have different colors:</p>
<a class="ui black button">Black Button</a>
<a class="ui green button">Green BUtton</a>
<a class="ui red button">Red Button</a>
<a class="ui blue button">Blue Button</a>
<br><br>
<a class="ui purple button">Purple Button</a>
<a class="ui teal button">Teal Button</a>
</div>
<h4>Feedback</h4>
<div class="example">
<p>Can be positive or negative:</p>
<div class="positive ui button">Positive Button</div>
<div class="negative ui button">Negative Button</div>
</div>
<div class="example">
<h4>Fluid</h4>
<p>Can fit parent container:</p>
<div class="fluid ui button">Fits container</div>
</div>
<div class="example">
<h4>Bubbly</h4>
<p>Can be bubbly:</p>
<div class="bubbly ui button">More bubbly</div>
</div>
<div class="example">
<h4>Icon</h4>
<p>Can be formatted as an icon toolbar:</p>
<div class="massive icon ui button">
<i class="icon cloud"></i>
</div>
</div>
<div class="example">
<h4>Vertically Attached</h4>
<p>Can be attached to the top or bottom of other content</p>
<div class="ui top attached button">Top</div>
<div style="border-left: 1px solid #DDDDDD;border-right: 1px solid #DDDDDD;background-color:#FFFFFF;height:200px;"></div>
<div class="ui bottom attached button">Bottom</div>
</div>
<div class="example">
<h4>Horizontally Attached</h4>
<p>Can be attached to the left or right of other content</p>
<div class="ui left attached button">Left</div>
<div style="width: 200px; display: inline-block; background-color: rgb(255, 255, 255); vertical-align: middle; height: 38px; margin: 0px -4px; border-bottom: 2px solid rgb(221, 221, 221); border-top: 2px solid rgb(221, 221, 221);"></div>
<div class="ui right attached button">Right</div>
</div>
<div class="example">
<h4>Form Attached</h4>
<p>Can be attached to an input field</p>
<div class="ui form">
<input type="text" class="attached">
<div class="ui attached button">Search</div>
</div>
</div>
<h2>Group</h2>
<div class="example">
<h4>Buttons</h4>
<p>Can exist together as groups</p>
<div class="ui buttons">
<div class="ui button">One</div>
<div class="ui button">Two</div>
<div class="ui button">Three</div>
</div>
</div>
<div class="example">
<h4>Conditionals</h4>
<p>Groups can be separated by conditionals</p>
<div class="ui buttons">
<div class="ui button">Cancel</div>
<div class="or"></div>
<div class="ui positive button">Save</div>
</div>
</div>
<h3>Plural Variations</h3>
<p>Singular variations can be applied to groups to infer all elements share the same quality</p>
<div class="example">
<h4>Vertical</h4>
<p>Groups can be formatted to appear vertically</p>
<div class="ui vertical buttons">
<div class="ui button">Top</div>
<div class="ui button">Middle</div>
<div class="ui button">Bottom</div>
</div>
</div>
<div class="example">
<h4>Icon</h4>
<p>Groups can be formatted as icon toolbars</p>
<div class="ui icon buttons">
<div class="ui button"><i class="icon pause"></i></div>
<div class="ui button"><i class="icon play"></i></div>
<div class="ui button"><i class="icon fast-fw"></i></div>
</div>
</div>
<div class="example">
<h4>Fluid</h4>
<p>Groups can be divided evenly to fit parent</p>
<div class="ui five fluid buttons">
<div class="ui button">One</div>
<div class="ui button">Two</div>
<div class="ui button">Three</div>
<div class="ui button">Four</div>
<div class="ui button">Five</div>
</div>
</div>
<div class="example">
<h4>Colors</h4>
<p>Groups can have a shared color</p>
<div class="blue ui buttons">
<div class="ui button">One</div>
<div class="ui button">Two</div>
<div class="ui button">Three</div>
</div>
<div class="blue large icon ui buttons">
</div>
<div class="example"></div>
<h4>Sizes</h4>
<p>Groups can have a shared size</p>
<div class="huge ui buttons">
<div class="ui button">One</div>
<div class="ui button">Two</div>
<div class="ui button">Three</div>
</div>
</div>
</div>
</body>
</html>
</body>
</html>

402
elements/label.html

@ -1,402 +0,0 @@
<!DOCTYPE html>
<head>
<!-- Standard Meta -->
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width" />
<!-- Site Properities -->
<meta http-equiv="X-Powered-By" content="DocPad v6.34.1"/>
<title>Label | Semantic UI</title>
<meta name="description" content="Semantic empowers designers and developers by creating a shared vocabulary for UI." />
<meta name="keywords" content="html5, ui, library, framework, javascript" />
<link rel="stylesheet" type="text/css" href="/stylesheets/reset.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/icons.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/button.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/header.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/label.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/progress.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/divider.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/message.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/elements/segment.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/grid.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/items.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/table.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/form.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/collections/menu.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/shape.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/popup.css">
<link rel="stylesheet" type="text/css" class="ui" href="/components/semantic/src/modules/checkbox.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/library/sidr.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/semantic.css">
<link rel="stylesheet" type="text/css" href="/stylesheets/shape.css">
<script src="/javascript/library/jquery.js"></script>
<script src="/javascript/library/easing.js"></script>
<script src="/javascript/library/ace/ace.js"></script>
<script src="/javascript/library/sidr.js"></script>
<script src="/javascript/library/waypoints.js"></script>
<script src="/components/semantic/src/modules/behavior/state.js"></script>
<script src="/components/semantic/src/modules/shape.js"></script>
<script src="/components/semantic/src/modules/checkbox.js"></script>
<script src="/components/semantic/src/modules/popup.js"></script>
<script src="/javascript/semantic.js"></script>
<script src="/javascript/shape.js"></script>
</head>
<body id="example">
<div class="ui large vertical menu" id="menu">
<div class="item"><a href="/index.html"><b>Introduction</b></a></div>
<div class="item"><a href="/download.html"><b>Download</b></a></div>
<div class="item">
<a href="/element.html"><b>UI Elements</b></a>
<div class="menu">
<a class="item" href="/elements/button.html">Button</a>
<a class="active item" href="/elements/label.html">Label</a>
</div>
</div>
<div class="item">
<a href="/collection.html"><b>UI Collections</b></a>
<div class="menu">
<a class="item" href="/collections/form.html">Form</a>
<a class="item" href="/collections/grid.html">Grid</a>
<a class="item" href="/collections/menu.html">Menu</a>
<a class="item" href="/collections/message.html">Message</a>
<a class="item" href="/collections/table.html">Table</a>
</div>
</div>
<div class="item">
<a href="/module.html"><b>UI Modules</b></a>
<div class="menu">
<a class="item" href="/modules/checkbox.html">Checkbox</a>
<a class="item" href="/modules/shape.html">Shape</a>
</div>
</div>
<div class="item">
<a href="/specification.html"><b>Specification</b></a>
<div class="menu">
</div>
</div>
</div>
<div class="ui fixed transparent inverted main menu">
<div class="container">
<div class="title item">
<b>UI Element:</b> Label
</div>
<div class="icon previous link item">
<a href="/elements/button.html"><i class="icon left-open"></i></a>
</div>
<div class="section dropdown item">
2 of 2
<div class="menu">
<div class="item">
<a href="/elements/button.html">1. Button</a>
</div>
<div class="active item">
<a href="/elements/label.html">2. Label</a>
</div>
</div>
</div>
<div class="icon next disabled link item">
<i class="icon right-open"></i>
</div>
<div class="right menu">
<a class="popup designer item" title="Designer Mode">
<i class="icon easel"></i>
</a>
<a class="popup developer item" title="Developer Mode">
<i class="icon terminal"></i>
</a>
<a class="popup item" title="View project on Github" href="https://github.com/quirkyinc/semantic">
<i class="icon github"></i>
</a>
<!--
<div class="dropdown item">
<i class="icon tint"></i> Theme
<div class="theme menu">
<div class="active item" data-theme="flat">Flat</div>
<div class="item" data-theme="shaded">Shaded</div>
<div class="item" data-theme="classic">Classic</div>
</div>
</div>
!-->
</div>
</div>
</div>
<div class="ui teal huge sidebar right attached button">
<i class="icon th-list"></i>
<span class="text">Menu</span>
</div>
<div class="segment">
<div class="container">
<h1>Label</h1>
<p>Labels can be used to give descriptions to sections of content. They can be formatted like tags, used to mark separate sections of a group of content.</p>
</div>
</div>
<div class="main container">
<div class="peek">
<div class="ui vertical pointing menu">
<a class="active item">Standard</a>
<a class="item">States</a>
<a class="item">Variations</a>
<a class="item">Groups</a>
</div>
</div>
<h2>Standard</h2>
<div class="example">
<h4>Label</h4>
<p>A basic label</p>
<div class="ui label">
Fun
</div>
</div>
<div class="example">
<h4>Linkable Label</h4>
<p>If an a tag is used, a label will be formatted as a link</p>
<a class="ui label">
Fun
</a>
</div>
<div class="example">
<h4>Attached Label</h4>
<p>A label attached to a content segment</p>
<div class="ui two column grid">
<div class="column">
<div class="ui segment">
<div class="ui attached label">Top Left</div>
<div class="ui right attached label">Top Right</div>
<div class="ui bottom attached label">Bottom Left</div>
<div class="ui bottom right attached label">Bottom Right</div>
<p style="margin:40px 0px;">Hey let's look at labels.</p>
</div>
</div>
<div class="column">
<div class="ui segment">
<div class="ui black attached label">Existing Users</div>
<div class="ui fluid form">
<div class="field">
<label>E-mail</label>
<input type="text">
</div>
<div class="field">
<label>Password</label>
<input type="password">
</div>
<div class="ui button">Log in</div>
</div>
</div>
</div>
</div>
</div>
<div class="example">
<h4>Label with detail</h4>
<p>A tag can optionally display a detail</p>
<div class="ui label">
Fun
<div class="detail">New</div>
</div>
<div class="ui label">
Red
<div class="detail">22</div>
</div>
</div>
<div class="example">
<h4>Removable label</h4>
<p>A tag can also be removable</p>
<div class="ui label">
Witty
<i class="icon close"></i>
</div>
</div>
<h2>States</h2>
<p>Labels only have a single ui state</p>
<h2>Variations</h2>
<div class="example">
<h4>Colors</h4>
<p>A label can have different colors</p>
<a class="ui black label">
First
</a>
<a class="ui green label">
Fun
</a>
<a class="ui red label">
Happy
</a>
<a class="ui blue label">
Smart
</a>
<a class="ui purple label">
Insane
</a>
<a class="ui teal label">
Exciting
</a>
</div>
<div class="example">
<h4>Floating</h4>
<p>A label can float above another element</p>
<div class="ui compact menu">
<a class="item">
<i class="icon mail"></i> Messages
<div class="floating ui red label">22</div>
</a>
<a class="item">
<i class="icon users"></i> Friends
<div class="floating ui teal label">22</div>
</a>
</div>
</div>
<div class="example">
<h4>Pointing</h4>
<p>A label can point to content next to it</p>
<form class="ui fluid form">
<div class="field">
<input type="text" placeholder="First name">
<div class="ui pointing black label">
First Name
</div>
</div>
<div class="ui simple divider"></div>
<div class="field" placeholder="Last Name">
<div class="ui pointing below black label">
Last Name
</div>
<input type="text">
</div>
<div class="ui simple divider"></div>
<div class="inline field">
<input type="text" placeholder="Username">
<div class="ui pointing left black label">
Username
</div>
</div>
<div class="ui simple divider"></div>
<div class="inline field">
<div class="ui pointing right black label">
Password
</div>
<input type="password">
</div>
</form>
</div>
<div class="example">
<h4>Tag</h4>
<p>A label can look like a tag</p>
<a class="ui tag label">
First
</a>
</div>
<div class="example">
<h4>Size</h4>
<p>A label can be small or large</p>
<div class="ui small label">
Fun
</div>
<br><br>
<div class="ui large label">
Fun
</div>
</div>
<h2>Groups</h2>
<div class="example">
<h4>Label Groups</h4>
<p>Groups can share variations together</p>
<div class="ui large labels">
<div class="ui label">
Fun
</div>
<div class="ui label">
Happy
</div>
<div class="ui label">
Smart
</div>
<div class="ui label">
Witty
</div>
</div>
<br><br>
<div class="ui tag labels">
<a class="ui green label">
Fun <i class="icon close"></i>
</a>
<a class="ui red label">
Happy
<div class="detail">22</div>
</a>
<a class="ui blue label">
Smart
</a>
<a class="ui purple label">
Insane
</a>
<a class="ui teal label">
Exciting
</a>
</div>
</div>
</div>
</body>
</html>
</body>
</html>

1
fonts/icons.eot.REMOVED.git-id

@ -1 +0,0 @@
25066de069a62374b39f220581d1314fa60a5f45

1
fonts/icons.svg.REMOVED.git-id

@ -1 +0,0 @@
b9c54d022b2628b920f09afd4cb10d4dc0ce0d17

1
fonts/icons.ttf.REMOVED.git-id

@ -1 +0,0 @@
318a2643d3af55fe51b472e7769b99caf74ff7b0

BIN
fonts/icons.woff

Binary file not shown.

1
fonts/neutraface-bold.eot.REMOVED.git-id

@ -1 +0,0 @@
bcbdac0112db03c61221dff30aac156ea17ca354

1
fonts/neutraface-bold.otf.REMOVED.git-id

@ -1 +0,0 @@
a095aa8f6a54db7141b4605fd0bdb7af3f20a1d5

1
fonts/neutraface-bold.woff.REMOVED.git-id

@ -1 +0,0 @@
e687f3b19d0e732fe65e366f41c9d1d9d1b20415

1
fonts/neutraface-book.eot.REMOVED.git-id

@ -1 +0,0 @@
c0bfe9091fe0c8eca2a07e2d357a756a098db8f6

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

Loading…
Cancel
Save