|
After Width: | Height: | Size: 142 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
@ -0,0 +1,967 @@ |
||||
/* |
||||
DJANGO Admin styles |
||||
*/ |
||||
|
||||
@import url(fonts.css); |
||||
|
||||
body { |
||||
margin: 0; |
||||
padding: 0; |
||||
font-size: 14px; |
||||
font-family: "Roboto","Lucida Grande","DejaVu Sans","Bitstream Vera Sans",Verdana,Arial,sans-serif; |
||||
color: #333; |
||||
background: #fff; |
||||
} |
||||
|
||||
/* LINKS */ |
||||
|
||||
a:link, a:visited { |
||||
color: #447e9b; |
||||
text-decoration: none; |
||||
} |
||||
|
||||
a:focus, a:hover { |
||||
color: #036; |
||||
} |
||||
|
||||
a:focus { |
||||
text-decoration: underline; |
||||
} |
||||
|
||||
a img { |
||||
border: none; |
||||
} |
||||
|
||||
a.section:link, a.section:visited { |
||||
color: #fff; |
||||
text-decoration: none; |
||||
} |
||||
|
||||
a.section:focus, a.section:hover { |
||||
text-decoration: underline; |
||||
} |
||||
|
||||
/* GLOBAL DEFAULTS */ |
||||
|
||||
p, ol, ul, dl { |
||||
margin: .2em 0 .8em 0; |
||||
} |
||||
|
||||
p { |
||||
padding: 0; |
||||
line-height: 140%; |
||||
} |
||||
|
||||
h1,h2,h3,h4,h5 { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
h1 { |
||||
margin: 0 0 20px; |
||||
font-weight: 300; |
||||
font-size: 20px; |
||||
color: #666; |
||||
} |
||||
|
||||
h2 { |
||||
font-size: 16px; |
||||
margin: 1em 0 .5em 0; |
||||
} |
||||
|
||||
h2.subhead { |
||||
font-weight: normal; |
||||
margin-top: 0; |
||||
} |
||||
|
||||
h3 { |
||||
font-size: 14px; |
||||
margin: .8em 0 .3em 0; |
||||
color: #666; |
||||
font-weight: bold; |
||||
} |
||||
|
||||
h4 { |
||||
font-size: 12px; |
||||
margin: 1em 0 .8em 0; |
||||
padding-bottom: 3px; |
||||
} |
||||
|
||||
h5 { |
||||
font-size: 10px; |
||||
margin: 1.5em 0 .5em 0; |
||||
color: #666; |
||||
text-transform: uppercase; |
||||
letter-spacing: 1px; |
||||
} |
||||
|
||||
ul li { |
||||
list-style-type: square; |
||||
padding: 1px 0; |
||||
} |
||||
|
||||
li ul { |
||||
margin-bottom: 0; |
||||
} |
||||
|
||||
li, dt, dd { |
||||
font-size: 13px; |
||||
line-height: 20px; |
||||
} |
||||
|
||||
dt { |
||||
font-weight: bold; |
||||
margin-top: 4px; |
||||
} |
||||
|
||||
dd { |
||||
margin-left: 0; |
||||
} |
||||
|
||||
form { |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
fieldset { |
||||
margin: 0; |
||||
padding: 0; |
||||
border: none; |
||||
border-top: 1px solid #eee; |
||||
} |
||||
|
||||
blockquote { |
||||
font-size: 11px; |
||||
color: #777; |
||||
margin-left: 2px; |
||||
padding-left: 10px; |
||||
border-left: 5px solid #ddd; |
||||
} |
||||
|
||||
code, pre { |
||||
font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace; |
||||
color: #666; |
||||
font-size: 12px; |
||||
} |
||||
|
||||
pre.literal-block { |
||||
margin: 10px; |
||||
background: #eee; |
||||
padding: 6px 8px; |
||||
} |
||||
|
||||
code strong { |
||||
color: #930; |
||||
} |
||||
|
||||
hr { |
||||
clear: both; |
||||
color: #eee; |
||||
background-color: #eee; |
||||
height: 1px; |
||||
border: none; |
||||
margin: 0; |
||||
padding: 0; |
||||
font-size: 1px; |
||||
line-height: 1px; |
||||
} |
||||
|
||||
/* TEXT STYLES & MODIFIERS */ |
||||
|
||||
.small { |
||||
font-size: 11px; |
||||
} |
||||
|
||||
.tiny { |
||||
font-size: 10px; |
||||
} |
||||
|
||||
p.tiny { |
||||
margin-top: -2px; |
||||
} |
||||
|
||||
.mini { |
||||
font-size: 10px; |
||||
} |
||||
|
||||
p.mini { |
||||
margin-top: -3px; |
||||
} |
||||
|
||||
.help, p.help, form p.help { |
||||
font-size: 11px; |
||||
color: #999; |
||||
} |
||||
|
||||
.help-tooltip { |
||||
cursor: help; |
||||
} |
||||
|
||||
p img, h1 img, h2 img, h3 img, h4 img, td img { |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
.quiet, a.quiet:link, a.quiet:visited { |
||||
color: #999; |
||||
font-weight: normal; |
||||
} |
||||
|
||||
.float-right { |
||||
float: right; |
||||
} |
||||
|
||||
.float-left { |
||||
float: left; |
||||
} |
||||
|
||||
.clear { |
||||
clear: both; |
||||
} |
||||
|
||||
.align-left { |
||||
text-align: left; |
||||
} |
||||
|
||||
.align-right { |
||||
text-align: right; |
||||
} |
||||
|
||||
.example { |
||||
margin: 10px 0; |
||||
padding: 5px 10px; |
||||
background: #efefef; |
||||
} |
||||
|
||||
.nowrap { |
||||
white-space: nowrap; |
||||
} |
||||
|
||||
/* TABLES */ |
||||
|
||||
table { |
||||
border-collapse: collapse; |
||||
border-color: #ccc; |
||||
} |
||||
|
||||
td, th { |
||||
font-size: 13px; |
||||
line-height: 16px; |
||||
border-bottom: 1px solid #eee; |
||||
vertical-align: top; |
||||
padding: 8px; |
||||
font-family: "Roboto", "Lucida Grande", Verdana, Arial, sans-serif; |
||||
} |
||||
|
||||
th { |
||||
font-weight: 600; |
||||
text-align: left; |
||||
} |
||||
|
||||
thead th, |
||||
tfoot td { |
||||
color: #666; |
||||
padding: 5px 10px; |
||||
font-size: 11px; |
||||
background: #fff; |
||||
border: none; |
||||
border-top: 1px solid #eee; |
||||
border-bottom: 1px solid #eee; |
||||
} |
||||
|
||||
tfoot td { |
||||
border-bottom: none; |
||||
border-top: 1px solid #eee; |
||||
} |
||||
|
||||
tr.alt { |
||||
background: #f6f6f6; |
||||
} |
||||
|
||||
.row1 { |
||||
background: #fff; |
||||
} |
||||
|
||||
.row2 { |
||||
background: #f9f9f9; |
||||
} |
||||
|
||||
/* SORTABLE TABLES */ |
||||
|
||||
thead th { |
||||
padding: 5px 10px; |
||||
line-height: normal; |
||||
text-transform: uppercase; |
||||
background: #f6f6f6; |
||||
} |
||||
|
||||
thead th a:link, thead th a:visited { |
||||
color: #666; |
||||
} |
||||
|
||||
thead th.sorted { |
||||
background: #eee; |
||||
} |
||||
|
||||
thead th.sorted .text { |
||||
padding-right: 42px; |
||||
} |
||||
|
||||
table thead th .text span { |
||||
padding: 8px 10px; |
||||
display: block; |
||||
} |
||||
|
||||
table thead th .text a { |
||||
display: block; |
||||
cursor: pointer; |
||||
padding: 8px 10px; |
||||
} |
||||
|
||||
table thead th .text a:focus, table thead th .text a:hover { |
||||
background: #eee; |
||||
} |
||||
|
||||
thead th.sorted a.sortremove { |
||||
visibility: hidden; |
||||
} |
||||
|
||||
table thead th.sorted:hover a.sortremove { |
||||
visibility: visible; |
||||
} |
||||
|
||||
table thead th.sorted .sortoptions { |
||||
display: block; |
||||
padding: 9px 5px 0 5px; |
||||
float: right; |
||||
text-align: right; |
||||
} |
||||
|
||||
table thead th.sorted .sortpriority { |
||||
font-size: .8em; |
||||
min-width: 12px; |
||||
text-align: center; |
||||
vertical-align: 3px; |
||||
margin-left: 2px; |
||||
margin-right: 2px; |
||||
} |
||||
|
||||
table thead th.sorted .sortoptions a { |
||||
position: relative; |
||||
width: 14px; |
||||
height: 14px; |
||||
display: inline-block; |
||||
background: url(../img/sorting-icons.svg) 0 0 no-repeat; |
||||
background-size: 14px auto; |
||||
} |
||||
|
||||
table thead th.sorted .sortoptions a.sortremove { |
||||
background-position: 0 0; |
||||
} |
||||
|
||||
table thead th.sorted .sortoptions a.sortremove:after { |
||||
content: '\\'; |
||||
position: absolute; |
||||
top: -6px; |
||||
left: 3px; |
||||
font-weight: 200; |
||||
font-size: 18px; |
||||
color: #999; |
||||
} |
||||
|
||||
table thead th.sorted .sortoptions a.sortremove:focus:after, |
||||
table thead th.sorted .sortoptions a.sortremove:hover:after { |
||||
color: #447e9b; |
||||
} |
||||
|
||||
table thead th.sorted .sortoptions a.sortremove:focus, |
||||
table thead th.sorted .sortoptions a.sortremove:hover { |
||||
background-position: 0 -14px; |
||||
} |
||||
|
||||
table thead th.sorted .sortoptions a.ascending { |
||||
background-position: 0 -28px; |
||||
} |
||||
|
||||
table thead th.sorted .sortoptions a.ascending:focus, |
||||
table thead th.sorted .sortoptions a.ascending:hover { |
||||
background-position: 0 -42px; |
||||
} |
||||
|
||||
table thead th.sorted .sortoptions a.descending { |
||||
top: 1px; |
||||
background-position: 0 -56px; |
||||
} |
||||
|
||||
table thead th.sorted .sortoptions a.descending:focus, |
||||
table thead th.sorted .sortoptions a.descending:hover { |
||||
background-position: 0 -70px; |
||||
} |
||||
|
||||
/* FORM DEFAULTS */ |
||||
|
||||
input, textarea, select, .form-row p, form .button { |
||||
margin: 2px 0; |
||||
padding: 2px 3px; |
||||
vertical-align: middle; |
||||
font-family: "Roboto", "Lucida Grande", Verdana, Arial, sans-serif; |
||||
font-weight: normal; |
||||
font-size: 13px; |
||||
} |
||||
|
||||
textarea { |
||||
vertical-align: top; |
||||
} |
||||
|
||||
input[type=text], input[type=password], input[type=email], input[type=url], |
||||
input[type=number], textarea, select, .vTextField { |
||||
border: 1px solid #ccc; |
||||
border-radius: 4px; |
||||
padding: 5px 6px; |
||||
margin-top: 0; |
||||
} |
||||
|
||||
input[type=text]:focus, input[type=password]:focus, input[type=email]:focus, |
||||
input[type=url]:focus, input[type=number]:focus, textarea:focus, select:focus, |
||||
.vTextField:focus { |
||||
border-color: #999; |
||||
} |
||||
|
||||
select { |
||||
height: 30px; |
||||
} |
||||
|
||||
select[multiple] { |
||||
min-height: 150px; |
||||
} |
||||
|
||||
/* FORM BUTTONS */ |
||||
|
||||
.button, input[type=submit], input[type=button], .submit-row input, a.button { |
||||
background: #79aec8; |
||||
padding: 10px 15px; |
||||
border: none; |
||||
border-radius: 4px; |
||||
color: #fff; |
||||
cursor: pointer; |
||||
} |
||||
|
||||
a.button { |
||||
padding: 4px 5px; |
||||
} |
||||
|
||||
.button:active, input[type=submit]:active, input[type=button]:active, |
||||
.button:focus, input[type=submit]:focus, input[type=button]:focus, |
||||
.button:hover, input[type=submit]:hover, input[type=button]:hover { |
||||
background: #609ab6; |
||||
} |
||||
|
||||
.button[disabled], input[type=submit][disabled], input[type=button][disabled] { |
||||
opacity: 0.4; |
||||
} |
||||
|
||||
.button.default, input[type=submit].default, .submit-row input.default { |
||||
float: right; |
||||
border: none; |
||||
font-weight: 400; |
||||
background: #417690; |
||||
} |
||||
|
||||
.button.default:active, input[type=submit].default:active, |
||||
.button.default:focus, input[type=submit].default:focus, |
||||
.button.default:hover, input[type=submit].default:hover { |
||||
background: #205067; |
||||
} |
||||
|
||||
.button[disabled].default, |
||||
input[type=submit][disabled].default, |
||||
input[type=button][disabled].default { |
||||
opacity: 0.4; |
||||
} |
||||
|
||||
|
||||
/* MODULES */ |
||||
|
||||
.module { |
||||
border: none; |
||||
margin-bottom: 30px; |
||||
background: #fff; |
||||
} |
||||
|
||||
.module p, .module ul, .module h3, .module h4, .module dl, .module pre { |
||||
padding-left: 10px; |
||||
padding-right: 10px; |
||||
} |
||||
|
||||
.module blockquote { |
||||
margin-left: 12px; |
||||
} |
||||
|
||||
.module ul, .module ol { |
||||
margin-left: 1.5em; |
||||
} |
||||
|
||||
.module h3 { |
||||
margin-top: .6em; |
||||
} |
||||
|
||||
.module h2, .module caption, .inline-group h2 { |
||||
margin: 0; |
||||
padding: 8px; |
||||
font-weight: 400; |
||||
font-size: 13px; |
||||
text-align: left; |
||||
background: #79aec8; |
||||
color: #fff; |
||||
} |
||||
|
||||
.module caption, |
||||
.inline-group h2 { |
||||
font-size: 12px; |
||||
letter-spacing: 0.5px; |
||||
text-transform: uppercase; |
||||
} |
||||
|
||||
.module table { |
||||
border-collapse: collapse; |
||||
} |
||||
|
||||
/* MESSAGES & ERRORS */ |
||||
|
||||
ul.messagelist { |
||||
padding: 0; |
||||
margin: 0; |
||||
} |
||||
|
||||
ul.messagelist li { |
||||
display: block; |
||||
font-weight: 400; |
||||
font-size: 13px; |
||||
padding: 10px 10px 10px 65px; |
||||
margin: 0 0 10px 0; |
||||
background: #dfd url(../img/icon-yes.svg) 40px 12px no-repeat; |
||||
background-size: 16px auto; |
||||
color: #333; |
||||
} |
||||
|
||||
ul.messagelist li.warning { |
||||
background: #ffc url(../img/icon-alert.svg) 40px 14px no-repeat; |
||||
background-size: 14px auto; |
||||
} |
||||
|
||||
ul.messagelist li.error { |
||||
background: #ffefef url(../img/icon-no.svg) 40px 12px no-repeat; |
||||
background-size: 16px auto; |
||||
} |
||||
|
||||
.errornote { |
||||
font-size: 14px; |
||||
font-weight: 700; |
||||
display: block; |
||||
padding: 10px 12px; |
||||
margin: 0 0 10px 0; |
||||
color: #ba2121; |
||||
border: 1px solid #ba2121; |
||||
border-radius: 4px; |
||||
background-color: #fff; |
||||
background-position: 5px 12px; |
||||
} |
||||
|
||||
ul.errorlist { |
||||
margin: 0 0 4px; |
||||
padding: 0; |
||||
color: #ba2121; |
||||
background: #fff; |
||||
} |
||||
|
||||
ul.errorlist li { |
||||
font-size: 13px; |
||||
display: block; |
||||
margin-bottom: 4px; |
||||
} |
||||
|
||||
ul.errorlist li:first-child { |
||||
margin-top: 0; |
||||
} |
||||
|
||||
ul.errorlist li a { |
||||
color: inherit; |
||||
text-decoration: underline; |
||||
} |
||||
|
||||
td ul.errorlist { |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
td ul.errorlist li { |
||||
margin: 0; |
||||
} |
||||
|
||||
.form-row.errors { |
||||
margin: 0; |
||||
border: none; |
||||
border-bottom: 1px solid #eee; |
||||
background: none; |
||||
} |
||||
|
||||
.form-row.errors ul.errorlist li { |
||||
padding-left: 0; |
||||
} |
||||
|
||||
.errors input, .errors select, .errors textarea { |
||||
border: 1px solid #ba2121; |
||||
} |
||||
|
||||
div.system-message { |
||||
background: #ffc; |
||||
margin: 10px; |
||||
padding: 6px 8px; |
||||
font-size: .8em; |
||||
} |
||||
|
||||
div.system-message p.system-message-title { |
||||
padding: 4px 5px 4px 25px; |
||||
margin: 0; |
||||
color: #c11; |
||||
background: #ffefef url(../img/icon-no.svg) 5px 5px no-repeat; |
||||
} |
||||
|
||||
.description { |
||||
font-size: 12px; |
||||
padding: 5px 0 0 12px; |
||||
} |
||||
|
||||
/* BREADCRUMBS */ |
||||
|
||||
div.breadcrumbs { |
||||
background: #79aec8; |
||||
padding: 10px 40px; |
||||
border: none; |
||||
font-size: 14px; |
||||
color: #c4dce8; |
||||
text-align: left; |
||||
} |
||||
|
||||
div.breadcrumbs a { |
||||
color: #fff; |
||||
} |
||||
|
||||
div.breadcrumbs a:focus, div.breadcrumbs a:hover { |
||||
color: #c4dce8; |
||||
} |
||||
|
||||
/* ACTION ICONS */ |
||||
|
||||
.addlink { |
||||
padding-left: 16px; |
||||
background: url(../img/icon-addlink.svg) 0 1px no-repeat; |
||||
} |
||||
|
||||
.changelink, .inlinechangelink { |
||||
padding-left: 16px; |
||||
background: url(../img/icon-changelink.svg) 0 1px no-repeat; |
||||
} |
||||
|
||||
.deletelink { |
||||
padding-left: 16px; |
||||
background: url(../img/icon-deletelink.svg) 0 1px no-repeat; |
||||
} |
||||
|
||||
a.deletelink:link, a.deletelink:visited { |
||||
color: #CC3434; |
||||
} |
||||
|
||||
a.deletelink:focus, a.deletelink:hover { |
||||
color: #993333; |
||||
text-decoration: none; |
||||
} |
||||
|
||||
/* OBJECT TOOLS */ |
||||
|
||||
.object-tools { |
||||
font-size: 10px; |
||||
font-weight: bold; |
||||
padding-left: 0; |
||||
float: right; |
||||
position: relative; |
||||
margin-top: -48px; |
||||
} |
||||
|
||||
.form-row .object-tools { |
||||
margin-top: 5px; |
||||
margin-bottom: 5px; |
||||
float: none; |
||||
height: 2em; |
||||
padding-left: 3.5em; |
||||
} |
||||
|
||||
.object-tools li { |
||||
display: block; |
||||
float: left; |
||||
margin-left: 5px; |
||||
height: 16px; |
||||
} |
||||
|
||||
.object-tools a { |
||||
border-radius: 15px; |
||||
} |
||||
|
||||
.object-tools a:link, .object-tools a:visited { |
||||
display: block; |
||||
float: left; |
||||
padding: 3px 12px; |
||||
background: #999; |
||||
font-weight: 400; |
||||
font-size: 11px; |
||||
text-transform: uppercase; |
||||
letter-spacing: 0.5px; |
||||
color: #fff; |
||||
} |
||||
|
||||
.object-tools a:focus, .object-tools a:hover { |
||||
background-color: #417690; |
||||
} |
||||
|
||||
.object-tools a:focus{ |
||||
text-decoration: none; |
||||
} |
||||
|
||||
.object-tools a.viewsitelink, .object-tools a.golink,.object-tools a.addlink { |
||||
background-repeat: no-repeat; |
||||
background-position: 93% center; |
||||
padding-right: 26px; |
||||
} |
||||
|
||||
.object-tools a.viewsitelink, .object-tools a.golink { |
||||
background-image: url(../img/tooltag-arrowright.svg); |
||||
} |
||||
|
||||
.object-tools a.addlink { |
||||
background-image: url(../img/tooltag-add.svg); |
||||
} |
||||
|
||||
/* OBJECT HISTORY */ |
||||
|
||||
table#change-history { |
||||
width: 100%; |
||||
} |
||||
|
||||
table#change-history tbody th { |
||||
width: 16em; |
||||
} |
||||
|
||||
/* PAGE STRUCTURE */ |
||||
|
||||
#container { |
||||
position: relative; |
||||
width: 100%; |
||||
min-width: 980px; |
||||
padding: 0; |
||||
} |
||||
|
||||
#content { |
||||
padding: 20px 40px; |
||||
} |
||||
|
||||
.dashboard #content { |
||||
width: 600px; |
||||
} |
||||
|
||||
#content-main { |
||||
float: left; |
||||
width: 100%; |
||||
} |
||||
|
||||
#content-related { |
||||
float: right; |
||||
width: 260px; |
||||
position: relative; |
||||
margin-right: -300px; |
||||
} |
||||
|
||||
#footer { |
||||
clear: both; |
||||
padding: 10px; |
||||
} |
||||
|
||||
/* COLUMN TYPES */ |
||||
|
||||
.colMS { |
||||
margin-right: 300px; |
||||
} |
||||
|
||||
.colSM { |
||||
margin-left: 300px; |
||||
} |
||||
|
||||
.colSM #content-related { |
||||
float: left; |
||||
margin-right: 0; |
||||
margin-left: -300px; |
||||
} |
||||
|
||||
.colSM #content-main { |
||||
float: right; |
||||
} |
||||
|
||||
.popup .colM { |
||||
width: auto; |
||||
} |
||||
|
||||
/* HEADER */ |
||||
|
||||
#header { |
||||
width: auto; |
||||
height: 40px; |
||||
padding: 10px 40px; |
||||
background: #417690; |
||||
line-height: 40px; |
||||
color: #ffc; |
||||
overflow: hidden; |
||||
} |
||||
|
||||
#header a:link, #header a:visited { |
||||
color: #fff; |
||||
} |
||||
|
||||
#header a:focus , #header a:hover { |
||||
text-decoration: underline; |
||||
} |
||||
|
||||
#branding { |
||||
float: left; |
||||
} |
||||
|
||||
#branding h1 { |
||||
padding: 0; |
||||
margin: 0 20px 0 0; |
||||
font-weight: 300; |
||||
font-size: 24px; |
||||
color: #f5dd5d; |
||||
} |
||||
|
||||
#branding h1, #branding h1 a:link, #branding h1 a:visited { |
||||
color: #f5dd5d; |
||||
} |
||||
|
||||
#branding h2 { |
||||
padding: 0 10px; |
||||
font-size: 14px; |
||||
margin: -8px 0 8px 0; |
||||
font-weight: normal; |
||||
color: #ffc; |
||||
} |
||||
|
||||
#branding a:hover { |
||||
text-decoration: none; |
||||
} |
||||
|
||||
#user-tools { |
||||
float: right; |
||||
padding: 0; |
||||
margin: 0 0 0 20px; |
||||
font-weight: 300; |
||||
font-size: 11px; |
||||
letter-spacing: 0.5px; |
||||
text-transform: uppercase; |
||||
text-align: right; |
||||
} |
||||
|
||||
#user-tools a { |
||||
border-bottom: 1px solid rgba(255, 255, 255, 0.25); |
||||
} |
||||
|
||||
#user-tools a:focus, #user-tools a:hover { |
||||
text-decoration: none; |
||||
border-bottom-color: #79aec8; |
||||
color: #79aec8; |
||||
} |
||||
|
||||
/* SIDEBAR */ |
||||
|
||||
#content-related { |
||||
background: #f8f8f8; |
||||
} |
||||
|
||||
#content-related .module { |
||||
background: none; |
||||
} |
||||
|
||||
#content-related h3 { |
||||
font-size: 14px; |
||||
color: #666; |
||||
padding: 0 16px; |
||||
margin: 0 0 16px; |
||||
} |
||||
|
||||
#content-related h4 { |
||||
font-size: 13px; |
||||
} |
||||
|
||||
#content-related p { |
||||
padding-left: 16px; |
||||
padding-right: 16px; |
||||
} |
||||
|
||||
#content-related .actionlist { |
||||
padding: 0; |
||||
margin: 16px; |
||||
} |
||||
|
||||
#content-related .actionlist li { |
||||
line-height: 1.2; |
||||
margin-bottom: 10px; |
||||
padding-left: 18px; |
||||
} |
||||
|
||||
#content-related .module h2 { |
||||
background: none; |
||||
padding: 16px; |
||||
margin-bottom: 16px; |
||||
border-bottom: 1px solid #eaeaea; |
||||
font-size: 18px; |
||||
color: #333; |
||||
} |
||||
|
||||
.delete-confirmation form input[type="submit"] { |
||||
background: #ba2121; |
||||
border-radius: 4px; |
||||
padding: 10px 15px; |
||||
color: #fff; |
||||
} |
||||
|
||||
.delete-confirmation form input[type="submit"]:active, |
||||
.delete-confirmation form input[type="submit"]:focus, |
||||
.delete-confirmation form input[type="submit"]:hover { |
||||
background: #a41515; |
||||
} |
||||
|
||||
.delete-confirmation form .cancel-link { |
||||
display: inline-block; |
||||
vertical-align: middle; |
||||
height: 15px; |
||||
line-height: 15px; |
||||
background: #ddd; |
||||
border-radius: 4px; |
||||
padding: 10px 15px; |
||||
color: #333; |
||||
margin: 0 0 0 10px; |
||||
} |
||||
|
||||
.delete-confirmation form .cancel-link:active, |
||||
.delete-confirmation form .cancel-link:focus, |
||||
.delete-confirmation form .cancel-link:hover { |
||||
background: #ccc; |
||||
} |
||||
|
||||
/* POPUP */ |
||||
.popup #content { |
||||
padding: 20px; |
||||
} |
||||
|
||||
.popup #container { |
||||
min-width: 0; |
||||
} |
||||
|
||||
.popup #header { |
||||
padding: 10px 20px; |
||||
} |
||||
@ -0,0 +1,341 @@ |
||||
/* CHANGELISTS */ |
||||
|
||||
#changelist { |
||||
position: relative; |
||||
width: 100%; |
||||
} |
||||
|
||||
#changelist table { |
||||
width: 100%; |
||||
} |
||||
|
||||
.change-list .hiddenfields { display:none; } |
||||
|
||||
.change-list .filtered table { |
||||
border-right: none; |
||||
} |
||||
|
||||
.change-list .filtered { |
||||
min-height: 400px; |
||||
} |
||||
|
||||
.change-list .filtered .results, .change-list .filtered .paginator, |
||||
.filtered #toolbar, .filtered div.xfull { |
||||
margin-right: 280px; |
||||
width: auto; |
||||
} |
||||
|
||||
.change-list .filtered table tbody th { |
||||
padding-right: 1em; |
||||
} |
||||
|
||||
#changelist-form .results { |
||||
overflow-x: auto; |
||||
} |
||||
|
||||
#changelist .toplinks { |
||||
border-bottom: 1px solid #ddd; |
||||
} |
||||
|
||||
#changelist .paginator { |
||||
color: #666; |
||||
border-bottom: 1px solid #eee; |
||||
background: #fff; |
||||
overflow: hidden; |
||||
} |
||||
|
||||
/* CHANGELIST TABLES */ |
||||
|
||||
#changelist table thead th { |
||||
padding: 0; |
||||
white-space: nowrap; |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
#changelist table thead th.action-checkbox-column { |
||||
width: 1.5em; |
||||
text-align: center; |
||||
} |
||||
|
||||
#changelist table tbody td.action-checkbox { |
||||
text-align: center; |
||||
} |
||||
|
||||
#changelist table tfoot { |
||||
color: #666; |
||||
} |
||||
|
||||
/* TOOLBAR */ |
||||
|
||||
#changelist #toolbar { |
||||
padding: 8px 10px; |
||||
margin-bottom: 15px; |
||||
border-top: 1px solid #eee; |
||||
border-bottom: 1px solid #eee; |
||||
background: #f8f8f8; |
||||
color: #666; |
||||
} |
||||
|
||||
#changelist #toolbar form input { |
||||
border-radius: 4px; |
||||
font-size: 14px; |
||||
padding: 5px; |
||||
color: #333; |
||||
} |
||||
|
||||
#changelist #toolbar form #searchbar { |
||||
height: 19px; |
||||
border: 1px solid #ccc; |
||||
padding: 2px 5px; |
||||
margin: 0; |
||||
vertical-align: top; |
||||
font-size: 13px; |
||||
} |
||||
|
||||
#changelist #toolbar form #searchbar:focus { |
||||
border-color: #999; |
||||
} |
||||
|
||||
#changelist #toolbar form input[type="submit"] { |
||||
border: 1px solid #ccc; |
||||
padding: 2px 10px; |
||||
margin: 0; |
||||
vertical-align: middle; |
||||
background: #fff; |
||||
box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; |
||||
cursor: pointer; |
||||
color: #333; |
||||
} |
||||
|
||||
#changelist #toolbar form input[type="submit"]:focus, |
||||
#changelist #toolbar form input[type="submit"]:hover { |
||||
border-color: #999; |
||||
} |
||||
|
||||
#changelist #changelist-search img { |
||||
vertical-align: middle; |
||||
margin-right: 4px; |
||||
} |
||||
|
||||
/* FILTER COLUMN */ |
||||
|
||||
#changelist-filter { |
||||
position: absolute; |
||||
top: 0; |
||||
right: 0; |
||||
z-index: 1000; |
||||
width: 240px; |
||||
background: #f8f8f8; |
||||
border-left: none; |
||||
margin: 0; |
||||
} |
||||
|
||||
#changelist-filter h2 { |
||||
font-size: 14px; |
||||
text-transform: uppercase; |
||||
letter-spacing: 0.5px; |
||||
padding: 5px 15px; |
||||
margin-bottom: 12px; |
||||
border-bottom: none; |
||||
} |
||||
|
||||
#changelist-filter h3 { |
||||
font-weight: 400; |
||||
font-size: 14px; |
||||
padding: 0 15px; |
||||
margin-bottom: 10px; |
||||
} |
||||
|
||||
#changelist-filter ul { |
||||
margin: 5px 0; |
||||
padding: 0 15px 15px; |
||||
border-bottom: 1px solid #eaeaea; |
||||
} |
||||
|
||||
#changelist-filter ul:last-child { |
||||
border-bottom: none; |
||||
padding-bottom: none; |
||||
} |
||||
|
||||
#changelist-filter li { |
||||
list-style-type: none; |
||||
margin-left: 0; |
||||
padding-left: 0; |
||||
} |
||||
|
||||
#changelist-filter a { |
||||
display: block; |
||||
color: #999; |
||||
} |
||||
|
||||
#changelist-filter li.selected { |
||||
border-left: 5px solid #eaeaea; |
||||
padding-left: 10px; |
||||
margin-left: -15px; |
||||
} |
||||
|
||||
#changelist-filter li.selected a { |
||||
color: #5b80b2; |
||||
} |
||||
|
||||
#changelist-filter a:focus, #changelist-filter a:hover, |
||||
#changelist-filter li.selected a:focus, |
||||
#changelist-filter li.selected a:hover { |
||||
color: #036; |
||||
} |
||||
|
||||
/* DATE DRILLDOWN */ |
||||
|
||||
.change-list ul.toplinks { |
||||
display: block; |
||||
float: left; |
||||
padding: 0; |
||||
margin: 0; |
||||
width: 100%; |
||||
} |
||||
|
||||
.change-list ul.toplinks li { |
||||
padding: 3px 6px; |
||||
font-weight: bold; |
||||
list-style-type: none; |
||||
display: inline-block; |
||||
} |
||||
|
||||
.change-list ul.toplinks .date-back a { |
||||
color: #999; |
||||
} |
||||
|
||||
.change-list ul.toplinks .date-back a:focus, |
||||
.change-list ul.toplinks .date-back a:hover { |
||||
color: #036; |
||||
} |
||||
|
||||
/* PAGINATOR */ |
||||
|
||||
.paginator { |
||||
font-size: 13px; |
||||
padding-top: 10px; |
||||
padding-bottom: 10px; |
||||
line-height: 22px; |
||||
margin: 0; |
||||
border-top: 1px solid #ddd; |
||||
} |
||||
|
||||
.paginator a:link, .paginator a:visited { |
||||
padding: 2px 6px; |
||||
background: #79aec8; |
||||
text-decoration: none; |
||||
color: #fff; |
||||
} |
||||
|
||||
.paginator a.showall { |
||||
padding: 0; |
||||
border: none; |
||||
background: none; |
||||
color: #5b80b2; |
||||
} |
||||
|
||||
.paginator a.showall:focus, .paginator a.showall:hover { |
||||
background: none; |
||||
color: #036; |
||||
} |
||||
|
||||
.paginator .end { |
||||
margin-right: 6px; |
||||
} |
||||
|
||||
.paginator .this-page { |
||||
padding: 2px 6px; |
||||
font-weight: bold; |
||||
font-size: 13px; |
||||
vertical-align: top; |
||||
} |
||||
|
||||
.paginator a:focus, .paginator a:hover { |
||||
color: white; |
||||
background: #036; |
||||
} |
||||
|
||||
/* ACTIONS */ |
||||
|
||||
.filtered .actions { |
||||
margin-right: 280px; |
||||
border-right: none; |
||||
} |
||||
|
||||
#changelist table input { |
||||
margin: 0; |
||||
vertical-align: baseline; |
||||
} |
||||
|
||||
#changelist table tbody tr.selected { |
||||
background-color: #FFFFCC; |
||||
} |
||||
|
||||
#changelist .actions { |
||||
padding: 10px; |
||||
background: #fff; |
||||
border-top: none; |
||||
border-bottom: none; |
||||
line-height: 24px; |
||||
color: #999; |
||||
} |
||||
|
||||
#changelist .actions.selected { |
||||
background: #fffccf; |
||||
border-top: 1px solid #fffee8; |
||||
border-bottom: 1px solid #edecd6; |
||||
} |
||||
|
||||
#changelist .actions span.all, |
||||
#changelist .actions span.action-counter, |
||||
#changelist .actions span.clear, |
||||
#changelist .actions span.question { |
||||
font-size: 13px; |
||||
margin: 0 0.5em; |
||||
display: none; |
||||
} |
||||
|
||||
#changelist .actions:last-child { |
||||
border-bottom: none; |
||||
} |
||||
|
||||
#changelist .actions select { |
||||
vertical-align: top; |
||||
height: 24px; |
||||
background: none; |
||||
border: 1px solid #ccc; |
||||
border-radius: 4px; |
||||
font-size: 14px; |
||||
padding: 0 0 0 4px; |
||||
margin: 0; |
||||
margin-left: 10px; |
||||
} |
||||
|
||||
#changelist .actions select:focus { |
||||
border-color: #999; |
||||
} |
||||
|
||||
#changelist .actions label { |
||||
display: inline-block; |
||||
vertical-align: middle; |
||||
font-size: 13px; |
||||
} |
||||
|
||||
#changelist .actions .button { |
||||
font-size: 13px; |
||||
border: 1px solid #ccc; |
||||
border-radius: 4px; |
||||
background: #fff; |
||||
box-shadow: 0 -15px 20px -10px rgba(0, 0, 0, 0.15) inset; |
||||
cursor: pointer; |
||||
height: 24px; |
||||
line-height: 1; |
||||
padding: 4px 8px; |
||||
margin: 0; |
||||
color: #333; |
||||
} |
||||
|
||||
#changelist .actions .button:focus, #changelist .actions .button:hover { |
||||
border-color: #999; |
||||
} |
||||
@ -0,0 +1,30 @@ |
||||
/* DASHBOARD */ |
||||
|
||||
.dashboard .module table th { |
||||
width: 100%; |
||||
} |
||||
|
||||
.dashboard .module table td { |
||||
white-space: nowrap; |
||||
} |
||||
|
||||
.dashboard .module table td a { |
||||
display: block; |
||||
padding-right: .6em; |
||||
} |
||||
|
||||
/* RECENT ACTIONS MODULE */ |
||||
|
||||
.module ul.actionlist { |
||||
margin-left: 0; |
||||
} |
||||
|
||||
ul.actionlist li { |
||||
list-style-type: none; |
||||
} |
||||
|
||||
ul.actionlist li { |
||||
overflow: hidden; |
||||
text-overflow: ellipsis; |
||||
-o-text-overflow: ellipsis; |
||||
} |
||||
@ -0,0 +1,20 @@ |
||||
@font-face { |
||||
font-family: 'Roboto'; |
||||
src: url('../fonts/Roboto-Bold-webfont.woff'); |
||||
font-weight: 700; |
||||
font-style: normal; |
||||
} |
||||
|
||||
@font-face { |
||||
font-family: 'Roboto'; |
||||
src: url('../fonts/Roboto-Regular-webfont.woff'); |
||||
font-weight: 400; |
||||
font-style: normal; |
||||
} |
||||
|
||||
@font-face { |
||||
font-family: 'Roboto'; |
||||
src: url('../fonts/Roboto-Light-webfont.woff'); |
||||
font-weight: 300; |
||||
font-style: normal; |
||||
} |
||||
@ -0,0 +1,499 @@ |
||||
@import url('widgets.css'); |
||||
|
||||
/* FORM ROWS */ |
||||
|
||||
.form-row { |
||||
overflow: hidden; |
||||
padding: 10px; |
||||
font-size: 13px; |
||||
border-bottom: 1px solid #eee; |
||||
} |
||||
|
||||
.form-row img, .form-row input { |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
.form-row label input[type="checkbox"] { |
||||
margin-top: 0; |
||||
vertical-align: 0; |
||||
} |
||||
|
||||
form .form-row p { |
||||
padding-left: 0; |
||||
} |
||||
|
||||
.hidden { |
||||
display: none; |
||||
} |
||||
|
||||
/* FORM LABELS */ |
||||
|
||||
label { |
||||
font-weight: normal; |
||||
color: #666; |
||||
font-size: 13px; |
||||
} |
||||
|
||||
.required label, label.required { |
||||
font-weight: bold; |
||||
color: #333; |
||||
} |
||||
|
||||
/* RADIO BUTTONS */ |
||||
|
||||
form ul.radiolist li { |
||||
list-style-type: none; |
||||
} |
||||
|
||||
form ul.radiolist label { |
||||
float: none; |
||||
display: inline; |
||||
} |
||||
|
||||
form ul.radiolist input[type="radio"] { |
||||
margin: -2px 4px 0 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
form ul.inline { |
||||
margin-left: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
form ul.inline li { |
||||
float: left; |
||||
padding-right: 7px; |
||||
} |
||||
|
||||
/* ALIGNED FIELDSETS */ |
||||
|
||||
.aligned label { |
||||
display: block; |
||||
padding: 4px 10px 0 0; |
||||
float: left; |
||||
width: 160px; |
||||
word-wrap: break-word; |
||||
line-height: 1; |
||||
} |
||||
|
||||
.aligned label:not(.vCheckboxLabel):after { |
||||
content: ''; |
||||
display: inline-block; |
||||
vertical-align: middle; |
||||
height: 26px; |
||||
} |
||||
|
||||
.aligned label + p { |
||||
padding: 6px 0; |
||||
margin-top: 0; |
||||
margin-bottom: 0; |
||||
margin-left: 170px; |
||||
} |
||||
|
||||
.aligned ul label { |
||||
display: inline; |
||||
float: none; |
||||
width: auto; |
||||
} |
||||
|
||||
.aligned .form-row input { |
||||
margin-bottom: 0; |
||||
} |
||||
|
||||
.colMS .aligned .vLargeTextField, .colMS .aligned .vXMLLargeTextField { |
||||
width: 350px; |
||||
} |
||||
|
||||
form .aligned ul { |
||||
margin-left: 160px; |
||||
padding-left: 10px; |
||||
} |
||||
|
||||
form .aligned ul.radiolist { |
||||
display: inline-block; |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
form .aligned p.help { |
||||
clear: left; |
||||
margin-top: 0; |
||||
margin-left: 160px; |
||||
padding-left: 10px; |
||||
} |
||||
|
||||
form .aligned label + p.help { |
||||
margin-left: 0; |
||||
padding-left: 0; |
||||
} |
||||
|
||||
form .aligned p.help:last-child { |
||||
margin-bottom: 0; |
||||
padding-bottom: 0; |
||||
} |
||||
|
||||
form .aligned input + p.help, |
||||
form .aligned textarea + p.help, |
||||
form .aligned select + p.help { |
||||
margin-left: 160px; |
||||
padding-left: 10px; |
||||
} |
||||
|
||||
form .aligned ul li { |
||||
list-style: none; |
||||
} |
||||
|
||||
form .aligned table p { |
||||
margin-left: 0; |
||||
padding-left: 0; |
||||
} |
||||
|
||||
.aligned .vCheckboxLabel { |
||||
float: none; |
||||
width: auto; |
||||
display: inline-block; |
||||
vertical-align: -3px; |
||||
padding: 0 0 5px 5px; |
||||
} |
||||
|
||||
.aligned .vCheckboxLabel + p.help { |
||||
margin-top: -4px; |
||||
} |
||||
|
||||
.colM .aligned .vLargeTextField, .colM .aligned .vXMLLargeTextField { |
||||
width: 610px; |
||||
} |
||||
|
||||
.checkbox-row p.help { |
||||
margin-left: 0; |
||||
padding-left: 0; |
||||
} |
||||
|
||||
fieldset .field-box { |
||||
float: left; |
||||
margin-right: 20px; |
||||
} |
||||
|
||||
/* WIDE FIELDSETS */ |
||||
|
||||
.wide label { |
||||
width: 200px; |
||||
} |
||||
|
||||
form .wide p, form .wide input + p.help { |
||||
margin-left: 200px; |
||||
} |
||||
|
||||
form .wide p.help { |
||||
padding-left: 38px; |
||||
} |
||||
|
||||
.colM fieldset.wide .vLargeTextField, .colM fieldset.wide .vXMLLargeTextField { |
||||
width: 450px; |
||||
} |
||||
|
||||
/* COLLAPSED FIELDSETS */ |
||||
|
||||
fieldset.collapsed * { |
||||
display: none; |
||||
} |
||||
|
||||
fieldset.collapsed h2, fieldset.collapsed { |
||||
display: block; |
||||
} |
||||
|
||||
fieldset.collapsed { |
||||
border: 1px solid #eee; |
||||
border-radius: 4px; |
||||
overflow: hidden; |
||||
} |
||||
|
||||
fieldset.collapsed h2 { |
||||
background: #f8f8f8; |
||||
color: #666; |
||||
} |
||||
|
||||
fieldset .collapse-toggle { |
||||
color: #fff; |
||||
} |
||||
|
||||
fieldset.collapsed .collapse-toggle { |
||||
background: transparent; |
||||
display: inline; |
||||
color: #447e9b; |
||||
} |
||||
|
||||
/* MONOSPACE TEXTAREAS */ |
||||
|
||||
fieldset.monospace textarea { |
||||
font-family: "Bitstream Vera Sans Mono", Monaco, "Courier New", Courier, monospace; |
||||
} |
||||
|
||||
/* SUBMIT ROW */ |
||||
|
||||
.submit-row { |
||||
padding: 12px 14px; |
||||
margin: 0 0 20px; |
||||
background: #f8f8f8; |
||||
border: 1px solid #eee; |
||||
border-radius: 4px; |
||||
text-align: right; |
||||
overflow: hidden; |
||||
} |
||||
|
||||
body.popup .submit-row { |
||||
overflow: auto; |
||||
} |
||||
|
||||
.submit-row input { |
||||
height: 35px; |
||||
line-height: 15px; |
||||
margin: 0 0 0 5px; |
||||
} |
||||
|
||||
.submit-row input.default { |
||||
margin: 0 0 0 8px; |
||||
text-transform: uppercase; |
||||
} |
||||
|
||||
.submit-row p { |
||||
margin: 0.3em; |
||||
} |
||||
|
||||
.submit-row p.deletelink-box { |
||||
float: left; |
||||
margin: 0; |
||||
} |
||||
|
||||
.submit-row a.deletelink { |
||||
display: block; |
||||
background: #ba2121; |
||||
border-radius: 4px; |
||||
padding: 10px 15px; |
||||
height: 15px; |
||||
line-height: 15px; |
||||
color: #fff; |
||||
} |
||||
|
||||
.submit-row a.deletelink:focus, |
||||
.submit-row a.deletelink:hover, |
||||
.submit-row a.deletelink:active { |
||||
background: #a41515; |
||||
} |
||||
|
||||
/* CUSTOM FORM FIELDS */ |
||||
|
||||
.vSelectMultipleField { |
||||
vertical-align: top; |
||||
} |
||||
|
||||
.vCheckboxField { |
||||
border: none; |
||||
} |
||||
|
||||
.vDateField, .vTimeField { |
||||
margin-right: 2px; |
||||
margin-bottom: 4px; |
||||
} |
||||
|
||||
.vDateField { |
||||
min-width: 6.85em; |
||||
} |
||||
|
||||
.vTimeField { |
||||
min-width: 4.7em; |
||||
} |
||||
|
||||
.vURLField { |
||||
width: 30em; |
||||
} |
||||
|
||||
.vLargeTextField, .vXMLLargeTextField { |
||||
width: 48em; |
||||
} |
||||
|
||||
.flatpages-flatpage #id_content { |
||||
height: 40.2em; |
||||
} |
||||
|
||||
.module table .vPositiveSmallIntegerField { |
||||
width: 2.2em; |
||||
} |
||||
|
||||
.vTextField { |
||||
width: 20em; |
||||
} |
||||
|
||||
.vIntegerField { |
||||
width: 5em; |
||||
} |
||||
|
||||
.vBigIntegerField { |
||||
width: 10em; |
||||
} |
||||
|
||||
.vForeignKeyRawIdAdminField { |
||||
width: 5em; |
||||
} |
||||
|
||||
/* INLINES */ |
||||
|
||||
.inline-group { |
||||
padding: 0; |
||||
margin: 0 0 30px; |
||||
} |
||||
|
||||
.inline-group thead th { |
||||
padding: 8px 10px; |
||||
} |
||||
|
||||
.inline-group .aligned label { |
||||
width: 160px; |
||||
} |
||||
|
||||
.inline-related { |
||||
position: relative; |
||||
} |
||||
|
||||
.inline-related h3 { |
||||
margin: 0; |
||||
color: #666; |
||||
padding: 5px; |
||||
font-size: 13px; |
||||
background: #f8f8f8; |
||||
border-top: 1px solid #eee; |
||||
border-bottom: 1px solid #eee; |
||||
} |
||||
|
||||
.inline-related h3 span.delete { |
||||
float: right; |
||||
} |
||||
|
||||
.inline-related h3 span.delete label { |
||||
margin-left: 2px; |
||||
font-size: 11px; |
||||
} |
||||
|
||||
.inline-related fieldset { |
||||
margin: 0; |
||||
background: #fff; |
||||
border: none; |
||||
width: 100%; |
||||
} |
||||
|
||||
.inline-related fieldset.module h3 { |
||||
margin: 0; |
||||
padding: 2px 5px 3px 5px; |
||||
font-size: 11px; |
||||
text-align: left; |
||||
font-weight: bold; |
||||
background: #bcd; |
||||
color: #fff; |
||||
} |
||||
|
||||
.inline-group .tabular fieldset.module { |
||||
border: none; |
||||
} |
||||
|
||||
.inline-related.tabular fieldset.module table { |
||||
width: 100%; |
||||
} |
||||
|
||||
.last-related fieldset { |
||||
border: none; |
||||
} |
||||
|
||||
.inline-group .tabular tr.has_original td { |
||||
padding-top: 2em; |
||||
} |
||||
|
||||
.inline-group .tabular tr td.original { |
||||
padding: 2px 0 0 0; |
||||
width: 0; |
||||
_position: relative; |
||||
} |
||||
|
||||
.inline-group .tabular th.original { |
||||
width: 0px; |
||||
padding: 0; |
||||
} |
||||
|
||||
.inline-group .tabular td.original p { |
||||
position: absolute; |
||||
left: 0; |
||||
height: 1.1em; |
||||
padding: 2px 9px; |
||||
overflow: hidden; |
||||
font-size: 9px; |
||||
font-weight: bold; |
||||
color: #666; |
||||
_width: 700px; |
||||
} |
||||
|
||||
.inline-group ul.tools { |
||||
padding: 0; |
||||
margin: 0; |
||||
list-style: none; |
||||
} |
||||
|
||||
.inline-group ul.tools li { |
||||
display: inline; |
||||
padding: 0 5px; |
||||
} |
||||
|
||||
.inline-group div.add-row, |
||||
.inline-group .tabular tr.add-row td { |
||||
color: #666; |
||||
background: #f8f8f8; |
||||
padding: 8px 10px; |
||||
border-bottom: 1px solid #eee; |
||||
} |
||||
|
||||
.inline-group .tabular tr.add-row td { |
||||
padding: 8px 10px; |
||||
border-bottom: 1px solid #eee; |
||||
} |
||||
|
||||
.inline-group ul.tools a.add, |
||||
.inline-group div.add-row a, |
||||
.inline-group .tabular tr.add-row td a { |
||||
background: url(../img/icon-addlink.svg) 0 1px no-repeat; |
||||
padding-left: 16px; |
||||
font-size: 12px; |
||||
} |
||||
|
||||
.empty-form { |
||||
display: none; |
||||
} |
||||
|
||||
/* RELATED FIELD ADD ONE / LOOKUP */ |
||||
|
||||
.add-another, .related-lookup { |
||||
margin-left: 5px; |
||||
display: inline-block; |
||||
vertical-align: middle; |
||||
background-repeat: no-repeat; |
||||
background-size: 14px; |
||||
} |
||||
|
||||
.add-another { |
||||
width: 16px; |
||||
height: 16px; |
||||
background-image: url(../img/icon-addlink.svg); |
||||
} |
||||
|
||||
.related-lookup { |
||||
width: 16px; |
||||
height: 16px; |
||||
background-image: url(../img/search.svg); |
||||
} |
||||
|
||||
form .related-widget-wrapper ul { |
||||
display: inline-block; |
||||
margin-left: 0; |
||||
padding-left: 0; |
||||
} |
||||
|
||||
.clearable-file-input input { |
||||
margin-top: 0; |
||||
} |
||||
@ -0,0 +1,78 @@ |
||||
/* LOGIN FORM */ |
||||
|
||||
body.login { |
||||
background: #f8f8f8; |
||||
} |
||||
|
||||
.login #header { |
||||
height: auto; |
||||
padding: 5px 16px; |
||||
} |
||||
|
||||
.login #header h1 { |
||||
font-size: 18px; |
||||
} |
||||
|
||||
.login #header h1 a { |
||||
color: #fff; |
||||
} |
||||
|
||||
.login #content { |
||||
padding: 20px 20px 0; |
||||
} |
||||
|
||||
.login #container { |
||||
background: #fff; |
||||
border: 1px solid #eaeaea; |
||||
border-radius: 4px; |
||||
overflow: hidden; |
||||
width: 28em; |
||||
min-width: 300px; |
||||
margin: 100px auto; |
||||
} |
||||
|
||||
.login #content-main { |
||||
width: 100%; |
||||
} |
||||
|
||||
.login .form-row { |
||||
padding: 4px 0; |
||||
float: left; |
||||
width: 100%; |
||||
border-bottom: none; |
||||
} |
||||
|
||||
.login .form-row label { |
||||
padding-right: 0.5em; |
||||
line-height: 2em; |
||||
font-size: 1em; |
||||
clear: both; |
||||
color: #333; |
||||
} |
||||
|
||||
.login .form-row #id_username, .login .form-row #id_password { |
||||
clear: both; |
||||
padding: 8px; |
||||
width: 100%; |
||||
-webkit-box-sizing: border-box; |
||||
-moz-box-sizing: border-box; |
||||
box-sizing: border-box; |
||||
} |
||||
|
||||
.login span.help { |
||||
font-size: 10px; |
||||
display: block; |
||||
} |
||||
|
||||
.login .submit-row { |
||||
clear: both; |
||||
padding: 1em 0 0 9.4em; |
||||
margin: 0; |
||||
border: none; |
||||
background: none; |
||||
text-align: left; |
||||
} |
||||
|
||||
.login .password-reset-link { |
||||
text-align: center; |
||||
} |
||||
@ -0,0 +1,256 @@ |
||||
body { |
||||
direction: rtl; |
||||
} |
||||
|
||||
/* LOGIN */ |
||||
|
||||
.login .form-row { |
||||
float: right; |
||||
} |
||||
|
||||
.login .form-row label { |
||||
float: right; |
||||
padding-left: 0.5em; |
||||
padding-right: 0; |
||||
text-align: left; |
||||
} |
||||
|
||||
.login .submit-row { |
||||
clear: both; |
||||
padding: 1em 9.4em 0 0; |
||||
} |
||||
|
||||
/* GLOBAL */ |
||||
|
||||
th { |
||||
text-align: right; |
||||
} |
||||
|
||||
.module h2, .module caption { |
||||
text-align: right; |
||||
} |
||||
|
||||
.module ul, .module ol { |
||||
margin-left: 0; |
||||
margin-right: 1.5em; |
||||
} |
||||
|
||||
.addlink, .changelink { |
||||
padding-left: 0; |
||||
padding-right: 16px; |
||||
background-position: 100% 1px; |
||||
} |
||||
|
||||
.deletelink { |
||||
padding-left: 0; |
||||
padding-right: 16px; |
||||
background-position: 100% 1px; |
||||
} |
||||
|
||||
.object-tools { |
||||
float: left; |
||||
} |
||||
|
||||
thead th:first-child, |
||||
tfoot td:first-child { |
||||
border-left: none; |
||||
} |
||||
|
||||
/* LAYOUT */ |
||||
|
||||
#user-tools { |
||||
right: auto; |
||||
left: 0; |
||||
text-align: left; |
||||
} |
||||
|
||||
div.breadcrumbs { |
||||
text-align: right; |
||||
} |
||||
|
||||
#content-main { |
||||
float: right; |
||||
} |
||||
|
||||
#content-related { |
||||
float: left; |
||||
margin-left: -300px; |
||||
margin-right: auto; |
||||
} |
||||
|
||||
.colMS { |
||||
margin-left: 300px; |
||||
margin-right: 0; |
||||
} |
||||
|
||||
/* SORTABLE TABLES */ |
||||
|
||||
table thead th.sorted .sortoptions { |
||||
float: left; |
||||
} |
||||
|
||||
thead th.sorted .text { |
||||
padding-right: 0; |
||||
padding-left: 42px; |
||||
} |
||||
|
||||
/* dashboard styles */ |
||||
|
||||
.dashboard .module table td a { |
||||
padding-left: .6em; |
||||
padding-right: 16px; |
||||
} |
||||
|
||||
/* changelists styles */ |
||||
|
||||
.change-list .filtered table { |
||||
border-left: none; |
||||
border-right: 0px none; |
||||
} |
||||
|
||||
#changelist-filter { |
||||
right: auto; |
||||
left: 0; |
||||
border-left: none; |
||||
border-right: none; |
||||
} |
||||
|
||||
.change-list .filtered .results, .change-list .filtered .paginator, .filtered #toolbar, .filtered div.xfull { |
||||
margin-right: 0; |
||||
margin-left: 280px; |
||||
} |
||||
|
||||
#changelist-filter li.selected { |
||||
border-left: none; |
||||
padding-left: 10px; |
||||
margin-left: 0; |
||||
border-right: 5px solid #eaeaea; |
||||
padding-right: 10px; |
||||
margin-right: -15px; |
||||
} |
||||
|
||||
.filtered .actions { |
||||
margin-left: 280px; |
||||
margin-right: 0; |
||||
} |
||||
|
||||
#changelist table tbody td:first-child, #changelist table tbody th:first-child { |
||||
border-right: none; |
||||
border-left: none; |
||||
} |
||||
|
||||
/* FORMS */ |
||||
|
||||
.aligned label { |
||||
padding: 0 0 3px 1em; |
||||
float: right; |
||||
} |
||||
|
||||
.submit-row { |
||||
text-align: left |
||||
} |
||||
|
||||
.submit-row p.deletelink-box { |
||||
float: right; |
||||
} |
||||
|
||||
.submit-row input.default { |
||||
margin-left: 0; |
||||
} |
||||
|
||||
.vDateField, .vTimeField { |
||||
margin-left: 2px; |
||||
} |
||||
|
||||
.aligned .form-row input { |
||||
margin-left: 5px; |
||||
} |
||||
|
||||
form ul.inline li { |
||||
float: right; |
||||
padding-right: 0; |
||||
padding-left: 7px; |
||||
} |
||||
|
||||
input[type=submit].default, .submit-row input.default { |
||||
float: left; |
||||
} |
||||
|
||||
fieldset .field-box { |
||||
float: right; |
||||
margin-left: 20px; |
||||
margin-right: 0; |
||||
} |
||||
|
||||
.errorlist li { |
||||
background-position: 100% 12px; |
||||
padding: 0; |
||||
} |
||||
|
||||
.errornote { |
||||
background-position: 100% 12px; |
||||
padding: 10px 12px; |
||||
} |
||||
|
||||
/* WIDGETS */ |
||||
|
||||
.calendarnav-previous { |
||||
top: 0; |
||||
left: auto; |
||||
right: 10px; |
||||
} |
||||
|
||||
.calendarnav-next { |
||||
top: 0; |
||||
right: auto; |
||||
left: 10px; |
||||
} |
||||
|
||||
.calendar caption, .calendarbox h2 { |
||||
text-align: center; |
||||
} |
||||
|
||||
.selector { |
||||
float: right; |
||||
} |
||||
|
||||
.selector .selector-filter { |
||||
text-align: right; |
||||
} |
||||
|
||||
.inline-deletelink { |
||||
float: left; |
||||
} |
||||
|
||||
form .form-row p.datetime { |
||||
overflow: hidden; |
||||
} |
||||
|
||||
/* MISC */ |
||||
|
||||
.inline-related h2, .inline-group h2 { |
||||
text-align: right |
||||
} |
||||
|
||||
.inline-related h3 span.delete { |
||||
padding-right: 20px; |
||||
padding-left: inherit; |
||||
left: 10px; |
||||
right: inherit; |
||||
float:left; |
||||
} |
||||
|
||||
.inline-related h3 span.delete label { |
||||
margin-left: inherit; |
||||
margin-right: 2px; |
||||
} |
||||
|
||||
/* IE7 specific bug fixes */ |
||||
|
||||
div.colM { |
||||
position: relative; |
||||
} |
||||
|
||||
.submit-row input { |
||||
float: left; |
||||
} |
||||
@ -0,0 +1,565 @@ |
||||
/* SELECTOR (FILTER INTERFACE) */ |
||||
|
||||
.selector { |
||||
width: 800px; |
||||
float: left; |
||||
} |
||||
|
||||
.selector select { |
||||
width: 380px; |
||||
height: 17.2em; |
||||
} |
||||
|
||||
.selector-available, .selector-chosen { |
||||
float: left; |
||||
width: 380px; |
||||
text-align: center; |
||||
margin-bottom: 5px; |
||||
} |
||||
|
||||
.selector-chosen select { |
||||
border-top: none; |
||||
} |
||||
|
||||
.selector-available h2, .selector-chosen h2 { |
||||
border: 1px solid #ccc; |
||||
border-radius: 4px 4px 0 0; |
||||
} |
||||
|
||||
.selector-chosen h2 { |
||||
background: #79aec8; |
||||
color: #fff; |
||||
} |
||||
|
||||
.selector .selector-available h2 { |
||||
background: #f8f8f8; |
||||
color: #666; |
||||
} |
||||
|
||||
.selector .selector-filter { |
||||
background: white; |
||||
border: 1px solid #ccc; |
||||
border-width: 0 1px; |
||||
padding: 8px; |
||||
color: #999; |
||||
font-size: 10px; |
||||
margin: 0; |
||||
text-align: left; |
||||
} |
||||
|
||||
.selector .selector-filter label, |
||||
.inline-group .aligned .selector .selector-filter label { |
||||
float: left; |
||||
margin: 7px 0 0; |
||||
width: 18px; |
||||
height: 18px; |
||||
padding: 0; |
||||
overflow: hidden; |
||||
line-height: 1; |
||||
} |
||||
|
||||
.selector .selector-available input { |
||||
width: 320px; |
||||
margin-left: 8px; |
||||
} |
||||
|
||||
.selector ul.selector-chooser { |
||||
float: left; |
||||
width: 22px; |
||||
background-color: #eee; |
||||
border-radius: 10px; |
||||
margin: 10em 5px 0 5px; |
||||
padding: 0; |
||||
} |
||||
|
||||
.selector-chooser li { |
||||
margin: 0; |
||||
padding: 3px; |
||||
list-style-type: none; |
||||
} |
||||
|
||||
.selector select { |
||||
padding: 0 10px; |
||||
margin: 0 0 10px; |
||||
border-radius: 0 0 4px 4px; |
||||
} |
||||
|
||||
.selector-add, .selector-remove { |
||||
width: 16px; |
||||
height: 16px; |
||||
display: block; |
||||
text-indent: -3000px; |
||||
overflow: hidden; |
||||
cursor: default; |
||||
opacity: 0.3; |
||||
} |
||||
|
||||
.active.selector-add, .active.selector-remove { |
||||
opacity: 1; |
||||
} |
||||
|
||||
.active.selector-add:hover, .active.selector-remove:hover { |
||||
cursor: pointer; |
||||
} |
||||
|
||||
.selector-add { |
||||
background: url(../img/selector-icons.svg) 0 -96px no-repeat; |
||||
} |
||||
|
||||
.active.selector-add:focus, .active.selector-add:hover { |
||||
background-position: 0 -112px; |
||||
} |
||||
|
||||
.selector-remove { |
||||
background: url(../img/selector-icons.svg) 0 -64px no-repeat; |
||||
} |
||||
|
||||
.active.selector-remove:focus, .active.selector-remove:hover { |
||||
background-position: 0 -80px; |
||||
} |
||||
|
||||
a.selector-chooseall, a.selector-clearall { |
||||
display: inline-block; |
||||
height: 16px; |
||||
text-align: left; |
||||
margin: 1px auto 3px; |
||||
overflow: hidden; |
||||
font-weight: bold; |
||||
line-height: 16px; |
||||
color: #666; |
||||
text-decoration: none; |
||||
opacity: 0.3; |
||||
} |
||||
|
||||
a.active.selector-chooseall:focus, a.active.selector-clearall:focus, |
||||
a.active.selector-chooseall:hover, a.active.selector-clearall:hover { |
||||
color: #447e9b; |
||||
} |
||||
|
||||
a.active.selector-chooseall, a.active.selector-clearall { |
||||
opacity: 1; |
||||
} |
||||
|
||||
a.active.selector-chooseall:hover, a.active.selector-clearall:hover { |
||||
cursor: pointer; |
||||
} |
||||
|
||||
a.selector-chooseall { |
||||
padding: 0 18px 0 0; |
||||
background: url(../img/selector-icons.svg) right -160px no-repeat; |
||||
cursor: default; |
||||
} |
||||
|
||||
a.active.selector-chooseall:focus, a.active.selector-chooseall:hover { |
||||
background-position: 100% -176px; |
||||
} |
||||
|
||||
a.selector-clearall { |
||||
padding: 0 0 0 18px; |
||||
background: url(../img/selector-icons.svg) 0 -128px no-repeat; |
||||
cursor: default; |
||||
} |
||||
|
||||
a.active.selector-clearall:focus, a.active.selector-clearall:hover { |
||||
background-position: 0 -144px; |
||||
} |
||||
|
||||
/* STACKED SELECTORS */ |
||||
|
||||
.stacked { |
||||
float: left; |
||||
width: 490px; |
||||
} |
||||
|
||||
.stacked select { |
||||
width: 480px; |
||||
height: 10.1em; |
||||
} |
||||
|
||||
.stacked .selector-available, .stacked .selector-chosen { |
||||
width: 480px; |
||||
} |
||||
|
||||
.stacked .selector-available { |
||||
margin-bottom: 0; |
||||
} |
||||
|
||||
.stacked .selector-available input { |
||||
width: 422px; |
||||
} |
||||
|
||||
.stacked ul.selector-chooser { |
||||
height: 22px; |
||||
width: 50px; |
||||
margin: 0 0 10px 40%; |
||||
background-color: #eee; |
||||
border-radius: 10px; |
||||
} |
||||
|
||||
.stacked .selector-chooser li { |
||||
float: left; |
||||
padding: 3px 3px 3px 5px; |
||||
} |
||||
|
||||
.stacked .selector-chooseall, .stacked .selector-clearall { |
||||
display: none; |
||||
} |
||||
|
||||
.stacked .selector-add { |
||||
background: url(../img/selector-icons.svg) 0 -32px no-repeat; |
||||
cursor: default; |
||||
} |
||||
|
||||
.stacked .active.selector-add { |
||||
background-position: 0 -48px; |
||||
cursor: pointer; |
||||
} |
||||
|
||||
.stacked .selector-remove { |
||||
background: url(../img/selector-icons.svg) 0 0 no-repeat; |
||||
cursor: default; |
||||
} |
||||
|
||||
.stacked .active.selector-remove { |
||||
background-position: 0 -16px; |
||||
cursor: pointer; |
||||
} |
||||
|
||||
.selector .help-icon { |
||||
background: url(../img/icon-unknown.svg) 0 0 no-repeat; |
||||
display: inline-block; |
||||
vertical-align: middle; |
||||
margin: -2px 0 0 2px; |
||||
width: 13px; |
||||
height: 13px; |
||||
} |
||||
|
||||
.selector .selector-chosen .help-icon { |
||||
background: url(../img/icon-unknown-alt.svg) 0 0 no-repeat; |
||||
} |
||||
|
||||
.selector .search-label-icon { |
||||
background: url(../img/search.svg) 0 0 no-repeat; |
||||
display: inline-block; |
||||
height: 18px; |
||||
width: 18px; |
||||
} |
||||
|
||||
/* DATE AND TIME */ |
||||
|
||||
p.datetime { |
||||
line-height: 20px; |
||||
margin: 0; |
||||
padding: 0; |
||||
color: #666; |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.datetime span { |
||||
white-space: nowrap; |
||||
font-weight: normal; |
||||
font-size: 11px; |
||||
color: #ccc; |
||||
} |
||||
|
||||
.datetime input, .form-row .datetime input.vDateField, .form-row .datetime input.vTimeField { |
||||
min-width: 0; |
||||
margin-left: 5px; |
||||
margin-bottom: 4px; |
||||
} |
||||
|
||||
table p.datetime { |
||||
font-size: 11px; |
||||
margin-left: 0; |
||||
padding-left: 0; |
||||
} |
||||
|
||||
.datetimeshortcuts .clock-icon, .datetimeshortcuts .date-icon { |
||||
position: relative; |
||||
display: inline-block; |
||||
vertical-align: middle; |
||||
height: 16px; |
||||
width: 16px; |
||||
overflow: hidden; |
||||
} |
||||
|
||||
.datetimeshortcuts .clock-icon { |
||||
background: url(../img/icon-clock.svg) 0 0 no-repeat; |
||||
} |
||||
|
||||
.datetimeshortcuts a:focus .clock-icon, |
||||
.datetimeshortcuts a:hover .clock-icon { |
||||
background-position: 0 -16px; |
||||
} |
||||
|
||||
.datetimeshortcuts .date-icon { |
||||
background: url(../img/icon-calendar.svg) 0 0 no-repeat; |
||||
top: -1px; |
||||
} |
||||
|
||||
.datetimeshortcuts a:focus .date-icon, |
||||
.datetimeshortcuts a:hover .date-icon { |
||||
background-position: 0 -16px; |
||||
} |
||||
|
||||
.timezonewarning { |
||||
font-size: 11px; |
||||
color: #999; |
||||
} |
||||
|
||||
/* URL */ |
||||
|
||||
p.url { |
||||
line-height: 20px; |
||||
margin: 0; |
||||
padding: 0; |
||||
color: #666; |
||||
font-size: 11px; |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.url a { |
||||
font-weight: normal; |
||||
} |
||||
|
||||
/* FILE UPLOADS */ |
||||
|
||||
p.file-upload { |
||||
line-height: 20px; |
||||
margin: 0; |
||||
padding: 0; |
||||
color: #666; |
||||
font-size: 11px; |
||||
font-weight: bold; |
||||
} |
||||
|
||||
.aligned p.file-upload { |
||||
margin-left: 170px; |
||||
} |
||||
|
||||
.file-upload a { |
||||
font-weight: normal; |
||||
} |
||||
|
||||
.file-upload .deletelink { |
||||
margin-left: 5px; |
||||
} |
||||
|
||||
span.clearable-file-input label { |
||||
color: #333; |
||||
font-size: 11px; |
||||
display: inline; |
||||
float: none; |
||||
} |
||||
|
||||
/* CALENDARS & CLOCKS */ |
||||
|
||||
.calendarbox, .clockbox { |
||||
margin: 5px auto; |
||||
font-size: 12px; |
||||
width: 19em; |
||||
text-align: center; |
||||
background: white; |
||||
border: 1px solid #ddd; |
||||
border-radius: 4px; |
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15); |
||||
overflow: hidden; |
||||
position: relative; |
||||
} |
||||
|
||||
.clockbox { |
||||
width: auto; |
||||
} |
||||
|
||||
.calendar { |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
.calendar table { |
||||
margin: 0; |
||||
padding: 0; |
||||
border-collapse: collapse; |
||||
background: white; |
||||
width: 100%; |
||||
} |
||||
|
||||
.calendar caption, .calendarbox h2 { |
||||
margin: 0; |
||||
text-align: center; |
||||
border-top: none; |
||||
background: #f5dd5d; |
||||
font-weight: 700; |
||||
font-size: 12px; |
||||
color: #333; |
||||
} |
||||
|
||||
.calendar th { |
||||
padding: 8px 5px; |
||||
background: #f8f8f8; |
||||
border-bottom: 1px solid #ddd; |
||||
font-weight: 400; |
||||
font-size: 12px; |
||||
text-align: center; |
||||
color: #666; |
||||
} |
||||
|
||||
.calendar td { |
||||
font-weight: 400; |
||||
font-size: 12px; |
||||
text-align: center; |
||||
padding: 0; |
||||
border-top: 1px solid #eee; |
||||
border-bottom: none; |
||||
} |
||||
|
||||
.calendar td.selected a { |
||||
background: #79aec8; |
||||
color: #fff; |
||||
} |
||||
|
||||
.calendar td.nonday { |
||||
background: #f8f8f8; |
||||
} |
||||
|
||||
.calendar td.today a { |
||||
font-weight: 700; |
||||
} |
||||
|
||||
.calendar td a, .timelist a { |
||||
display: block; |
||||
font-weight: 400; |
||||
padding: 6px; |
||||
text-decoration: none; |
||||
color: #444; |
||||
} |
||||
|
||||
.calendar td a:focus, .timelist a:focus, |
||||
.calendar td a:hover, .timelist a:hover { |
||||
background: #79aec8; |
||||
color: white; |
||||
} |
||||
|
||||
.calendar td a:active, .timelist a:active { |
||||
background: #417690; |
||||
color: white; |
||||
} |
||||
|
||||
.calendarnav { |
||||
font-size: 10px; |
||||
text-align: center; |
||||
color: #ccc; |
||||
margin: 0; |
||||
padding: 1px 3px; |
||||
} |
||||
|
||||
.calendarnav a:link, #calendarnav a:visited, |
||||
#calendarnav a:focus, #calendarnav a:hover { |
||||
color: #999; |
||||
} |
||||
|
||||
.calendar-shortcuts { |
||||
background: white; |
||||
font-size: 11px; |
||||
line-height: 11px; |
||||
border-top: 1px solid #eee; |
||||
padding: 8px 0; |
||||
color: #ccc; |
||||
} |
||||
|
||||
.calendarbox .calendarnav-previous, .calendarbox .calendarnav-next { |
||||
display: block; |
||||
position: absolute; |
||||
top: 8px; |
||||
width: 15px; |
||||
height: 15px; |
||||
text-indent: -9999px; |
||||
padding: 0; |
||||
} |
||||
|
||||
.calendarnav-previous { |
||||
left: 10px; |
||||
background: url(../img/calendar-icons.svg) 0 0 no-repeat; |
||||
} |
||||
|
||||
.calendarbox .calendarnav-previous:focus, |
||||
.calendarbox .calendarnav-previous:hover { |
||||
background-position: 0 -15px; |
||||
} |
||||
|
||||
.calendarnav-next { |
||||
right: 10px; |
||||
background: url(../img/calendar-icons.svg) 0 -30px no-repeat; |
||||
} |
||||
|
||||
.calendarbox .calendarnav-next:focus, |
||||
.calendarbox .calendarnav-next:hover { |
||||
background-position: 0 -45px; |
||||
} |
||||
|
||||
.calendar-cancel { |
||||
margin: 0; |
||||
padding: 4px 0; |
||||
font-size: 12px; |
||||
background: #eee; |
||||
border-top: 1px solid #ddd; |
||||
color: #333; |
||||
} |
||||
|
||||
.calendar-cancel:focus, .calendar-cancel:hover { |
||||
background: #ddd; |
||||
} |
||||
|
||||
.calendar-cancel a { |
||||
color: black; |
||||
display: block; |
||||
} |
||||
|
||||
ul.timelist, .timelist li { |
||||
list-style-type: none; |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
.timelist a { |
||||
padding: 2px; |
||||
} |
||||
|
||||
/* EDIT INLINE */ |
||||
|
||||
.inline-deletelink { |
||||
float: right; |
||||
text-indent: -9999px; |
||||
background: url(../img/inline-delete.svg) 0 0 no-repeat; |
||||
width: 16px; |
||||
height: 16px; |
||||
border: 0px none; |
||||
} |
||||
|
||||
.inline-deletelink:focus, .inline-deletelink:hover { |
||||
cursor: pointer; |
||||
} |
||||
|
||||
/* RELATED WIDGET WRAPPER */ |
||||
.related-widget-wrapper { |
||||
float: left; /* display properly in form rows with multiple fields */ |
||||
overflow: hidden; /* clear floated contents */ |
||||
} |
||||
|
||||
.related-widget-wrapper-link { |
||||
opacity: 0.3; |
||||
} |
||||
|
||||
.related-widget-wrapper-link:link { |
||||
opacity: .8; |
||||
} |
||||
|
||||
.related-widget-wrapper-link:link:focus, |
||||
.related-widget-wrapper-link:link:hover { |
||||
opacity: 1; |
||||
} |
||||
|
||||
select + .related-widget-wrapper-link, |
||||
.related-widget-wrapper-link + .related-widget-wrapper-link { |
||||
margin-left: 7px; |
||||
} |
||||
@ -0,0 +1,202 @@ |
||||
|
||||
Apache License |
||||
Version 2.0, January 2004 |
||||
http://www.apache.org/licenses/ |
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION |
||||
|
||||
1. Definitions. |
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction, |
||||
and distribution as defined by Sections 1 through 9 of this document. |
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by |
||||
the copyright owner that is granting the License. |
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all |
||||
other entities that control, are controlled by, or are under common |
||||
control with that entity. For the purposes of this definition, |
||||
"control" means (i) the power, direct or indirect, to cause the |
||||
direction or management of such entity, whether by contract or |
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the |
||||
outstanding shares, or (iii) beneficial ownership of such entity. |
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity |
||||
exercising permissions granted by this License. |
||||
|
||||
"Source" form shall mean the preferred form for making modifications, |
||||
including but not limited to software source code, documentation |
||||
source, and configuration files. |
||||
|
||||
"Object" form shall mean any form resulting from mechanical |
||||
transformation or translation of a Source form, including but |
||||
not limited to compiled object code, generated documentation, |
||||
and conversions to other media types. |
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or |
||||
Object form, made available under the License, as indicated by a |
||||
copyright notice that is included in or attached to the work |
||||
(an example is provided in the Appendix below). |
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object |
||||
form, that is based on (or derived from) the Work and for which the |
||||
editorial revisions, annotations, elaborations, or other modifications |
||||
represent, as a whole, an original work of authorship. For the purposes |
||||
of this License, Derivative Works shall not include works that remain |
||||
separable from, or merely link (or bind by name) to the interfaces of, |
||||
the Work and Derivative Works thereof. |
||||
|
||||
"Contribution" shall mean any work of authorship, including |
||||
the original version of the Work and any modifications or additions |
||||
to that Work or Derivative Works thereof, that is intentionally |
||||
submitted to Licensor for inclusion in the Work by the copyright owner |
||||
or by an individual or Legal Entity authorized to submit on behalf of |
||||
the copyright owner. For the purposes of this definition, "submitted" |
||||
means any form of electronic, verbal, or written communication sent |
||||
to the Licensor or its representatives, including but not limited to |
||||
communication on electronic mailing lists, source code control systems, |
||||
and issue tracking systems that are managed by, or on behalf of, the |
||||
Licensor for the purpose of discussing and improving the Work, but |
||||
excluding communication that is conspicuously marked or otherwise |
||||
designated in writing by the copyright owner as "Not a Contribution." |
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity |
||||
on behalf of whom a Contribution has been received by Licensor and |
||||
subsequently incorporated within the Work. |
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of |
||||
this License, each Contributor hereby grants to You a perpetual, |
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
||||
copyright license to reproduce, prepare Derivative Works of, |
||||
publicly display, publicly perform, sublicense, and distribute the |
||||
Work and such Derivative Works in Source or Object form. |
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of |
||||
this License, each Contributor hereby grants to You a perpetual, |
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable |
||||
(except as stated in this section) patent license to make, have made, |
||||
use, offer to sell, sell, import, and otherwise transfer the Work, |
||||
where such license applies only to those patent claims licensable |
||||
by such Contributor that are necessarily infringed by their |
||||
Contribution(s) alone or by combination of their Contribution(s) |
||||
with the Work to which such Contribution(s) was submitted. If You |
||||
institute patent litigation against any entity (including a |
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work |
||||
or a Contribution incorporated within the Work constitutes direct |
||||
or contributory patent infringement, then any patent licenses |
||||
granted to You under this License for that Work shall terminate |
||||
as of the date such litigation is filed. |
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the |
||||
Work or Derivative Works thereof in any medium, with or without |
||||
modifications, and in Source or Object form, provided that You |
||||
meet the following conditions: |
||||
|
||||
(a) You must give any other recipients of the Work or |
||||
Derivative Works a copy of this License; and |
||||
|
||||
(b) You must cause any modified files to carry prominent notices |
||||
stating that You changed the files; and |
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works |
||||
that You distribute, all copyright, patent, trademark, and |
||||
attribution notices from the Source form of the Work, |
||||
excluding those notices that do not pertain to any part of |
||||
the Derivative Works; and |
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its |
||||
distribution, then any Derivative Works that You distribute must |
||||
include a readable copy of the attribution notices contained |
||||
within such NOTICE file, excluding those notices that do not |
||||
pertain to any part of the Derivative Works, in at least one |
||||
of the following places: within a NOTICE text file distributed |
||||
as part of the Derivative Works; within the Source form or |
||||
documentation, if provided along with the Derivative Works; or, |
||||
within a display generated by the Derivative Works, if and |
||||
wherever such third-party notices normally appear. The contents |
||||
of the NOTICE file are for informational purposes only and |
||||
do not modify the License. You may add Your own attribution |
||||
notices within Derivative Works that You distribute, alongside |
||||
or as an addendum to the NOTICE text from the Work, provided |
||||
that such additional attribution notices cannot be construed |
||||
as modifying the License. |
||||
|
||||
You may add Your own copyright statement to Your modifications and |
||||
may provide additional or different license terms and conditions |
||||
for use, reproduction, or distribution of Your modifications, or |
||||
for any such Derivative Works as a whole, provided Your use, |
||||
reproduction, and distribution of the Work otherwise complies with |
||||
the conditions stated in this License. |
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise, |
||||
any Contribution intentionally submitted for inclusion in the Work |
||||
by You to the Licensor shall be under the terms and conditions of |
||||
this License, without any additional terms or conditions. |
||||
Notwithstanding the above, nothing herein shall supersede or modify |
||||
the terms of any separate license agreement you may have executed |
||||
with Licensor regarding such Contributions. |
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade |
||||
names, trademarks, service marks, or product names of the Licensor, |
||||
except as required for reasonable and customary use in describing the |
||||
origin of the Work and reproducing the content of the NOTICE file. |
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or |
||||
agreed to in writing, Licensor provides the Work (and each |
||||
Contributor provides its Contributions) on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or |
||||
implied, including, without limitation, any warranties or conditions |
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A |
||||
PARTICULAR PURPOSE. You are solely responsible for determining the |
||||
appropriateness of using or redistributing the Work and assume any |
||||
risks associated with Your exercise of permissions under this License. |
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory, |
||||
whether in tort (including negligence), contract, or otherwise, |
||||
unless required by applicable law (such as deliberate and grossly |
||||
negligent acts) or agreed to in writing, shall any Contributor be |
||||
liable to You for damages, including any direct, indirect, special, |
||||
incidental, or consequential damages of any character arising as a |
||||
result of this License or out of the use or inability to use the |
||||
Work (including but not limited to damages for loss of goodwill, |
||||
work stoppage, computer failure or malfunction, or any and all |
||||
other commercial damages or losses), even if such Contributor |
||||
has been advised of the possibility of such damages. |
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing |
||||
the Work or Derivative Works thereof, You may choose to offer, |
||||
and charge a fee for, acceptance of support, warranty, indemnity, |
||||
or other liability obligations and/or rights consistent with this |
||||
License. However, in accepting such obligations, You may act only |
||||
on Your own behalf and on Your sole responsibility, not on behalf |
||||
of any other Contributor, and only if You agree to indemnify, |
||||
defend, and hold each Contributor harmless for any liability |
||||
incurred by, or claims asserted against, such Contributor by reason |
||||
of your accepting any such warranty or additional liability. |
||||
|
||||
END OF TERMS AND CONDITIONS |
||||
|
||||
APPENDIX: How to apply the Apache License to your work. |
||||
|
||||
To apply the Apache License to your work, attach the following |
||||
boilerplate notice, with the fields enclosed by brackets "[]" |
||||
replaced with your own identifying information. (Don't include |
||||
the brackets!) The text should be enclosed in the appropriate |
||||
comment syntax for the file format. We also recommend that a |
||||
file or class name and description of purpose be included on the |
||||
same "printed page" as the copyright notice for easier |
||||
identification within third-party archives. |
||||
|
||||
Copyright [yyyy] [name of copyright owner] |
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); |
||||
you may not use this file except in compliance with the License. |
||||
You may obtain a copy of the License at |
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0 |
||||
|
||||
Unless required by applicable law or agreed to in writing, software |
||||
distributed under the License is distributed on an "AS IS" BASIS, |
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
See the License for the specific language governing permissions and |
||||
limitations under the License. |
||||
@ -0,0 +1,2 @@ |
||||
Roboto webfont source: https://www.google.com/fonts/specimen/Roboto |
||||
Weights used in this project: Light (300), Regular (400), Bold (700) |
||||
@ -0,0 +1,20 @@ |
||||
The MIT License (MIT) |
||||
|
||||
Copyright (c) 2014 Code Charm Ltd |
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of |
||||
this software and associated documentation files (the "Software"), to deal in |
||||
the Software without restriction, including without limitation the rights to |
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of |
||||
the Software, and to permit persons to whom the Software is furnished to do so, |
||||
subject to the following conditions: |
||||
|
||||
The above copyright notice and this permission notice shall be included in all |
||||
copies or substantial portions of the Software. |
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS |
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR |
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER |
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
||||
@ -0,0 +1,7 @@ |
||||
All icons are taken from Font Awesome (http://fontawesome.io/) project. |
||||
The Font Awesome font is licensed under the SIL OFL 1.1: |
||||
- http://scripts.sil.org/OFL |
||||
|
||||
SVG icons source: https://github.com/encharm/Font-Awesome-SVG-PNG |
||||
Font-Awesome-SVG-PNG is licensed under the MIT license (see file license |
||||
in current folder). |
||||
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 331 B |
|
After Width: | Height: | Size: 504 B |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 380 B |
|
After Width: | Height: | Size: 677 B |
|
After Width: | Height: | Size: 392 B |
|
After Width: | Height: | Size: 560 B |
|
After Width: | Height: | Size: 655 B |
|
After Width: | Height: | Size: 655 B |
|
After Width: | Height: | Size: 436 B |
|
After Width: | Height: | Size: 560 B |
|
After Width: | Height: | Size: 458 B |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 331 B |
|
After Width: | Height: | Size: 280 B |
@ -0,0 +1,135 @@ |
||||
(function() { |
||||
'use strict'; |
||||
var SelectBox = { |
||||
cache: {}, |
||||
init: function(id) { |
||||
var box = document.getElementById(id); |
||||
var node; |
||||
SelectBox.cache[id] = []; |
||||
var cache = SelectBox.cache[id]; |
||||
for (var i = 0, j = box.options.length; i < j; i++) { |
||||
node = box.options[i]; |
||||
cache.push({value: node.value, text: node.text, displayed: 1}); |
||||
} |
||||
}, |
||||
redisplay: function(id) { |
||||
// Repopulate HTML select box from cache
|
||||
var box = document.getElementById(id); |
||||
var node; |
||||
box.options.length = 0; // clear all options
|
||||
var cache = SelectBox.cache[id]; |
||||
for (var i = 0, j = cache.length; i < j; i++) { |
||||
node = cache[i]; |
||||
if (node.displayed) { |
||||
var new_option = new Option(node.text, node.value, false, false); |
||||
// Shows a tooltip when hovering over the option
|
||||
new_option.setAttribute("title", node.text); |
||||
box.options[box.options.length] = new_option; |
||||
} |
||||
} |
||||
}, |
||||
filter: function(id, text) { |
||||
// Redisplay the HTML select box, displaying only the choices containing ALL
|
||||
// the words in text. (It's an AND search.)
|
||||
var tokens = text.toLowerCase().split(/\s+/); |
||||
var node, token; |
||||
var cache = SelectBox.cache[id]; |
||||
for (var i = 0, j = cache.length; i < j; i++) { |
||||
node = cache[i]; |
||||
node.displayed = 1; |
||||
var numTokens = tokens.length; |
||||
for (var k = 0; k < numTokens; k++) { |
||||
token = tokens[k]; |
||||
if (node.text.toLowerCase().indexOf(token) === -1) { |
||||
node.displayed = 0; |
||||
} |
||||
} |
||||
} |
||||
SelectBox.redisplay(id); |
||||
}, |
||||
delete_from_cache: function(id, value) { |
||||
var node, delete_index = null; |
||||
var cache = SelectBox.cache[id]; |
||||
for (var i = 0, j = cache.length; i < j; i++) { |
||||
node = cache[i]; |
||||
if (node.value === value) { |
||||
delete_index = i; |
||||
break; |
||||
} |
||||
} |
||||
var k = cache.length - 1; |
||||
for (i = delete_index; i < k; i++) { |
||||
cache[i] = cache[i + 1]; |
||||
} |
||||
cache.length--; |
||||
}, |
||||
add_to_cache: function(id, option) { |
||||
SelectBox.cache[id].push({value: option.value, text: option.text, displayed: 1}); |
||||
}, |
||||
cache_contains: function(id, value) { |
||||
// Check if an item is contained in the cache
|
||||
var node; |
||||
var cache = SelectBox.cache[id]; |
||||
for (var i = 0, j = cache.length; i < j; i++) { |
||||
node = cache[i]; |
||||
if (node.value === value) { |
||||
return true; |
||||
} |
||||
} |
||||
return false; |
||||
}, |
||||
move: function(from, to) { |
||||
var from_box = document.getElementById(from); |
||||
var option; |
||||
var boxOptions = from_box.options; |
||||
for (var i = 0, j = boxOptions.length; i < j; i++) { |
||||
option = boxOptions[i]; |
||||
if (option.selected && SelectBox.cache_contains(from, option.value)) { |
||||
SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1}); |
||||
SelectBox.delete_from_cache(from, option.value); |
||||
} |
||||
} |
||||
SelectBox.redisplay(from); |
||||
SelectBox.redisplay(to); |
||||
}, |
||||
move_all: function(from, to) { |
||||
var from_box = document.getElementById(from); |
||||
var option; |
||||
var boxOptions = from_box.options; |
||||
for (var i = 0, j = boxOptions.length; i < j; i++) { |
||||
option = boxOptions[i]; |
||||
if (SelectBox.cache_contains(from, option.value)) { |
||||
SelectBox.add_to_cache(to, {value: option.value, text: option.text, displayed: 1}); |
||||
SelectBox.delete_from_cache(from, option.value); |
||||
} |
||||
} |
||||
SelectBox.redisplay(from); |
||||
SelectBox.redisplay(to); |
||||
}, |
||||
sort: function(id) { |
||||
SelectBox.cache[id].sort(function(a, b) { |
||||
a = a.text.toLowerCase(); |
||||
b = b.text.toLowerCase(); |
||||
try { |
||||
if (a > b) { |
||||
return 1; |
||||
} |
||||
if (a < b) { |
||||
return -1; |
||||
} |
||||
} |
||||
catch (e) { |
||||
// silently fail on IE 'unknown' exception
|
||||
} |
||||
return 0; |
||||
} ); |
||||
}, |
||||
select_all: function(id) { |
||||
var box = document.getElementById(id); |
||||
for (var i = 0; i < box.options.length; i++) { |
||||
box.options[i].selected = 'selected'; |
||||
} |
||||
} |
||||
}; |
||||
window.SelectBox = SelectBox; |
||||
})(); |
||||
@ -0,0 +1,198 @@ |
||||
/*global SelectBox, addEvent, gettext, interpolate, quickElement, SelectFilter*/ |
||||
/* |
||||
SelectFilter2 - Turns a multiple-select box into a filter interface. |
||||
|
||||
Requires core.js, SelectBox.js and addevent.js. |
||||
*/ |
||||
(function($) { |
||||
'use strict'; |
||||
function findForm(node) { |
||||
// returns the node of the form containing the given node
|
||||
if (node.tagName.toLowerCase() !== 'form') { |
||||
return findForm(node.parentNode); |
||||
} |
||||
return node; |
||||
} |
||||
|
||||
window.SelectFilter = { |
||||
init: function(field_id, field_name, is_stacked) { |
||||
if (field_id.match(/__prefix__/)) { |
||||
// Don't initialize on empty forms.
|
||||
return; |
||||
} |
||||
var from_box = document.getElementById(field_id); |
||||
from_box.id += '_from'; // change its ID
|
||||
from_box.className = 'filtered'; |
||||
|
||||
var ps = from_box.parentNode.getElementsByTagName('p'); |
||||
for (var i = 0; i < ps.length; i++) { |
||||
if (ps[i].className.indexOf("info") !== -1) { |
||||
// Remove <p class="info">, because it just gets in the way.
|
||||
from_box.parentNode.removeChild(ps[i]); |
||||
} else if (ps[i].className.indexOf("help") !== -1) { |
||||
// Move help text up to the top so it isn't below the select
|
||||
// boxes or wrapped off on the side to the right of the add
|
||||
// button:
|
||||
from_box.parentNode.insertBefore(ps[i], from_box.parentNode.firstChild); |
||||
} |
||||
} |
||||
|
||||
// <div class="selector"> or <div class="selector stacked">
|
||||
var selector_div = quickElement('div', from_box.parentNode); |
||||
selector_div.className = is_stacked ? 'selector stacked' : 'selector'; |
||||
|
||||
// <div class="selector-available">
|
||||
var selector_available = quickElement('div', selector_div); |
||||
selector_available.className = 'selector-available'; |
||||
var title_available = quickElement('h2', selector_available, interpolate(gettext('Available %s') + ' ', [field_name])); |
||||
quickElement( |
||||
'span', title_available, '', |
||||
'class', 'help help-tooltip help-icon', |
||||
'title', interpolate( |
||||
gettext( |
||||
'This is the list of available %s. You may choose some by ' + |
||||
'selecting them in the box below and then clicking the ' + |
||||
'"Choose" arrow between the two boxes.' |
||||
), |
||||
[field_name] |
||||
) |
||||
); |
||||
|
||||
var filter_p = quickElement('p', selector_available, '', 'id', field_id + '_filter'); |
||||
filter_p.className = 'selector-filter'; |
||||
|
||||
var search_filter_label = quickElement('label', filter_p, '', 'for', field_id + '_input'); |
||||
|
||||
quickElement( |
||||
'span', search_filter_label, '', |
||||
'class', 'help-tooltip search-label-icon', |
||||
'title', interpolate(gettext("Type into this box to filter down the list of available %s."), [field_name]) |
||||
); |
||||
|
||||
filter_p.appendChild(document.createTextNode(' ')); |
||||
|
||||
var filter_input = quickElement('input', filter_p, '', 'type', 'text', 'placeholder', gettext("Filter")); |
||||
filter_input.id = field_id + '_input'; |
||||
|
||||
selector_available.appendChild(from_box); |
||||
var choose_all = quickElement('a', selector_available, gettext('Choose all'), 'title', interpolate(gettext('Click to choose all %s at once.'), [field_name]), 'href', 'javascript:void(0);', 'id', field_id + '_add_all_link'); |
||||
choose_all.className = 'selector-chooseall'; |
||||
|
||||
// <ul class="selector-chooser">
|
||||
var selector_chooser = quickElement('ul', selector_div); |
||||
selector_chooser.className = 'selector-chooser'; |
||||
var add_link = quickElement('a', quickElement('li', selector_chooser), gettext('Choose'), 'title', gettext('Choose'), 'href', 'javascript:void(0);', 'id', field_id + '_add_link'); |
||||
add_link.className = 'selector-add'; |
||||
var remove_link = quickElement('a', quickElement('li', selector_chooser), gettext('Remove'), 'title', gettext('Remove'), 'href', 'javascript:void(0);', 'id', field_id + '_remove_link'); |
||||
remove_link.className = 'selector-remove'; |
||||
|
||||
// <div class="selector-chosen">
|
||||
var selector_chosen = quickElement('div', selector_div); |
||||
selector_chosen.className = 'selector-chosen'; |
||||
var title_chosen = quickElement('h2', selector_chosen, interpolate(gettext('Chosen %s') + ' ', [field_name])); |
||||
quickElement( |
||||
'span', title_chosen, '', |
||||
'class', 'help help-tooltip help-icon', |
||||
'title', interpolate( |
||||
gettext( |
||||
'This is the list of chosen %s. You may remove some by ' + |
||||
'selecting them in the box below and then clicking the ' + |
||||
'"Remove" arrow between the two boxes.' |
||||
), |
||||
[field_name] |
||||
) |
||||
); |
||||
|
||||
var to_box = quickElement('select', selector_chosen, '', 'id', field_id + '_to', 'multiple', 'multiple', 'size', from_box.size, 'name', from_box.getAttribute('name')); |
||||
to_box.className = 'filtered'; |
||||
var clear_all = quickElement('a', selector_chosen, gettext('Remove all'), 'title', interpolate(gettext('Click to remove all chosen %s at once.'), [field_name]), 'href', 'javascript:void(0);', 'id', field_id + '_remove_all_link'); |
||||
clear_all.className = 'selector-clearall'; |
||||
|
||||
from_box.setAttribute('name', from_box.getAttribute('name') + '_old'); |
||||
|
||||
// Set up the JavaScript event handlers for the select box filter interface
|
||||
addEvent(choose_all, 'click', function() { SelectBox.move_all(field_id + '_from', field_id + '_to'); SelectFilter.refresh_icons(field_id); }); |
||||
addEvent(add_link, 'click', function() { SelectBox.move(field_id + '_from', field_id + '_to'); SelectFilter.refresh_icons(field_id); }); |
||||
addEvent(remove_link, 'click', function() { SelectBox.move(field_id + '_to', field_id + '_from'); SelectFilter.refresh_icons(field_id); }); |
||||
addEvent(clear_all, 'click', function() { SelectBox.move_all(field_id + '_to', field_id + '_from'); SelectFilter.refresh_icons(field_id); }); |
||||
addEvent(filter_input, 'keypress', function(e) { SelectFilter.filter_key_press(e, field_id); }); |
||||
addEvent(filter_input, 'keyup', function(e) { SelectFilter.filter_key_up(e, field_id); }); |
||||
addEvent(filter_input, 'keydown', function(e) { SelectFilter.filter_key_down(e, field_id); }); |
||||
addEvent(from_box, 'change', function(e) { SelectFilter.refresh_icons(field_id); }); |
||||
addEvent(to_box, 'change', function(e) { SelectFilter.refresh_icons(field_id); }); |
||||
addEvent(from_box, 'dblclick', function() { SelectBox.move(field_id + '_from', field_id + '_to'); SelectFilter.refresh_icons(field_id); }); |
||||
addEvent(to_box, 'dblclick', function() { SelectBox.move(field_id + '_to', field_id + '_from'); SelectFilter.refresh_icons(field_id); }); |
||||
addEvent(findForm(from_box), 'submit', function() { SelectBox.select_all(field_id + '_to'); }); |
||||
SelectBox.init(field_id + '_from'); |
||||
SelectBox.init(field_id + '_to'); |
||||
// Move selected from_box options to to_box
|
||||
SelectBox.move(field_id + '_from', field_id + '_to'); |
||||
|
||||
if (!is_stacked) { |
||||
// In horizontal mode, give the same height to the two boxes.
|
||||
var j_from_box = $(from_box); |
||||
var j_to_box = $(to_box); |
||||
var resize_filters = function() { j_to_box.height($(filter_p).outerHeight() + j_from_box.outerHeight()); }; |
||||
if (j_from_box.outerHeight() > 0) { |
||||
resize_filters(); // This fieldset is already open. Resize now.
|
||||
} else { |
||||
// This fieldset is probably collapsed. Wait for its 'show' event.
|
||||
j_to_box.closest('fieldset').one('show.fieldset', resize_filters); |
||||
} |
||||
} |
||||
|
||||
// Initial icon refresh
|
||||
SelectFilter.refresh_icons(field_id); |
||||
}, |
||||
refresh_icons: function(field_id) { |
||||
var from = $('#' + field_id + '_from'); |
||||
var to = $('#' + field_id + '_to'); |
||||
var is_from_selected = from.find('option:selected').length > 0; |
||||
var is_to_selected = to.find('option:selected').length > 0; |
||||
// Active if at least one item is selected
|
||||
$('#' + field_id + '_add_link').toggleClass('active', is_from_selected); |
||||
$('#' + field_id + '_remove_link').toggleClass('active', is_to_selected); |
||||
// Active if the corresponding box isn't empty
|
||||
$('#' + field_id + '_add_all_link').toggleClass('active', from.find('option').length > 0); |
||||
$('#' + field_id + '_remove_all_link').toggleClass('active', to.find('option').length > 0); |
||||
}, |
||||
filter_key_press: function(event, field_id) { |
||||
var from = document.getElementById(field_id + '_from'); |
||||
// don't submit form if user pressed Enter
|
||||
if ((event.which && event.which === 13) || (event.keyCode && event.keyCode === 13)) { |
||||
from.selectedIndex = 0; |
||||
SelectBox.move(field_id + '_from', field_id + '_to'); |
||||
from.selectedIndex = 0; |
||||
event.preventDefault(); |
||||
return false; |
||||
} |
||||
}, |
||||
filter_key_up: function(event, field_id) { |
||||
var from = document.getElementById(field_id + '_from'); |
||||
var temp = from.selectedIndex; |
||||
SelectBox.filter(field_id + '_from', document.getElementById(field_id + '_input').value); |
||||
from.selectedIndex = temp; |
||||
return true; |
||||
}, |
||||
filter_key_down: function(event, field_id) { |
||||
var from = document.getElementById(field_id + '_from'); |
||||
// right arrow -- move across
|
||||
if ((event.which && event.which === 39) || (event.keyCode && event.keyCode === 39)) { |
||||
var old_index = from.selectedIndex; |
||||
SelectBox.move(field_id + '_from', field_id + '_to'); |
||||
from.selectedIndex = (old_index === from.length) ? from.length - 1 : old_index; |
||||
return false; |
||||
} |
||||
// down arrow -- wrap around
|
||||
if ((event.which && event.which === 40) || (event.keyCode && event.keyCode === 40)) { |
||||
from.selectedIndex = (from.length === from.selectedIndex + 1) ? 0 : from.selectedIndex + 1; |
||||
} |
||||
// up arrow -- wrap around
|
||||
if ((event.which && event.which === 38) || (event.keyCode && event.keyCode === 38)) { |
||||
from.selectedIndex = (from.selectedIndex === 0) ? from.length - 1 : from.selectedIndex - 1; |
||||
} |
||||
return true; |
||||
} |
||||
}; |
||||
|
||||
})(django.jQuery); |
||||
@ -0,0 +1,146 @@ |
||||
/*global _actions_icnt, gettext, interpolate, ngettext*/ |
||||
(function($) { |
||||
'use strict'; |
||||
var lastChecked; |
||||
|
||||
$.fn.actions = function(opts) { |
||||
var options = $.extend({}, $.fn.actions.defaults, opts); |
||||
var actionCheckboxes = $(this); |
||||
var list_editable_changed = false; |
||||
var showQuestion = function() { |
||||
$(options.acrossClears).hide(); |
||||
$(options.acrossQuestions).show(); |
||||
$(options.allContainer).hide(); |
||||
}, |
||||
showClear = function() { |
||||
$(options.acrossClears).show(); |
||||
$(options.acrossQuestions).hide(); |
||||
$(options.actionContainer).toggleClass(options.selectedClass); |
||||
$(options.allContainer).show(); |
||||
$(options.counterContainer).hide(); |
||||
}, |
||||
reset = function() { |
||||
$(options.acrossClears).hide(); |
||||
$(options.acrossQuestions).hide(); |
||||
$(options.allContainer).hide(); |
||||
$(options.counterContainer).show(); |
||||
}, |
||||
clearAcross = function() { |
||||
reset(); |
||||
$(options.acrossInput).val(0); |
||||
$(options.actionContainer).removeClass(options.selectedClass); |
||||
}, |
||||
checker = function(checked) { |
||||
if (checked) { |
||||
showQuestion(); |
||||
} else { |
||||
reset(); |
||||
} |
||||
$(actionCheckboxes).prop("checked", checked) |
||||
.parent().parent().toggleClass(options.selectedClass, checked); |
||||
}, |
||||
updateCounter = function() { |
||||
var sel = $(actionCheckboxes).filter(":checked").length; |
||||
// _actions_icnt is defined in the generated HTML
|
||||
// and contains the total amount of objects in the queryset
|
||||
$(options.counterContainer).html(interpolate( |
||||
ngettext('%(sel)s of %(cnt)s selected', '%(sel)s of %(cnt)s selected', sel), { |
||||
sel: sel, |
||||
cnt: _actions_icnt |
||||
}, true)); |
||||
$(options.allToggle).prop("checked", function() { |
||||
var value; |
||||
if (sel === actionCheckboxes.length) { |
||||
value = true; |
||||
showQuestion(); |
||||
} else { |
||||
value = false; |
||||
clearAcross(); |
||||
} |
||||
return value; |
||||
}); |
||||
}; |
||||
// Show counter by default
|
||||
$(options.counterContainer).show(); |
||||
// Check state of checkboxes and reinit state if needed
|
||||
$(this).filter(":checked").each(function(i) { |
||||
$(this).parent().parent().toggleClass(options.selectedClass); |
||||
updateCounter(); |
||||
if ($(options.acrossInput).val() === 1) { |
||||
showClear(); |
||||
} |
||||
}); |
||||
$(options.allToggle).show().click(function() { |
||||
checker($(this).prop("checked")); |
||||
updateCounter(); |
||||
}); |
||||
$("a", options.acrossQuestions).click(function(event) { |
||||
event.preventDefault(); |
||||
$(options.acrossInput).val(1); |
||||
showClear(); |
||||
}); |
||||
$("a", options.acrossClears).click(function(event) { |
||||
event.preventDefault(); |
||||
$(options.allToggle).prop("checked", false); |
||||
clearAcross(); |
||||
checker(0); |
||||
updateCounter(); |
||||
}); |
||||
lastChecked = null; |
||||
$(actionCheckboxes).click(function(event) { |
||||
if (!event) { event = window.event; } |
||||
var target = event.target ? event.target : event.srcElement; |
||||
if (lastChecked && $.data(lastChecked) !== $.data(target) && event.shiftKey === true) { |
||||
var inrange = false; |
||||
$(lastChecked).prop("checked", target.checked) |
||||
.parent().parent().toggleClass(options.selectedClass, target.checked); |
||||
$(actionCheckboxes).each(function() { |
||||
if ($.data(this) === $.data(lastChecked) || $.data(this) === $.data(target)) { |
||||
inrange = (inrange) ? false : true; |
||||
} |
||||
if (inrange) { |
||||
$(this).prop("checked", target.checked) |
||||
.parent().parent().toggleClass(options.selectedClass, target.checked); |
||||
} |
||||
}); |
||||
} |
||||
$(target).parent().parent().toggleClass(options.selectedClass, target.checked); |
||||
lastChecked = target; |
||||
updateCounter(); |
||||
}); |
||||
$('form#changelist-form table#result_list tr').find('td:gt(0) :input').change(function() { |
||||
list_editable_changed = true; |
||||
}); |
||||
$('form#changelist-form button[name="index"]').click(function(event) { |
||||
if (list_editable_changed) { |
||||
return confirm(gettext("You have unsaved changes on individual editable fields. If you run an action, your unsaved changes will be lost.")); |
||||
} |
||||
}); |
||||
$('form#changelist-form input[name="_save"]').click(function(event) { |
||||
var action_changed = false; |
||||
$('select option:selected', options.actionContainer).each(function() { |
||||
if ($(this).val()) { |
||||
action_changed = true; |
||||
} |
||||
}); |
||||
if (action_changed) { |
||||
if (list_editable_changed) { |
||||
return confirm(gettext("You have selected an action, but you haven't saved your changes to individual fields yet. Please click OK to save. You'll need to re-run the action.")); |
||||
} else { |
||||
return confirm(gettext("You have selected an action, and you haven't made any changes on individual fields. You're probably looking for the Go button rather than the Save button.")); |
||||
} |
||||
} |
||||
}); |
||||
}; |
||||
/* Setup plugin defaults */ |
||||
$.fn.actions.defaults = { |
||||
actionContainer: "div.actions", |
||||
counterContainer: "span.action-counter", |
||||
allContainer: "div.actions span.all", |
||||
acrossInput: "div.actions input.select-across", |
||||
acrossQuestions: "div.actions span.question", |
||||
acrossClears: "div.actions span.clear", |
||||
allToggle: "#action-toggle", |
||||
selectedClass: "selected" |
||||
}; |
||||
})(django.jQuery); |
||||
@ -0,0 +1,6 @@ |
||||
(function(a){var f;a.fn.actions=function(q){var b=a.extend({},a.fn.actions.defaults,q),g=a(this),e=!1,k=function(){a(b.acrossClears).hide();a(b.acrossQuestions).show();a(b.allContainer).hide()},l=function(){a(b.acrossClears).show();a(b.acrossQuestions).hide();a(b.actionContainer).toggleClass(b.selectedClass);a(b.allContainer).show();a(b.counterContainer).hide()},m=function(){a(b.acrossClears).hide();a(b.acrossQuestions).hide();a(b.allContainer).hide();a(b.counterContainer).show()},n=function(){m(); |
||||
a(b.acrossInput).val(0);a(b.actionContainer).removeClass(b.selectedClass)},p=function(c){c?k():m();a(g).prop("checked",c).parent().parent().toggleClass(b.selectedClass,c)},h=function(){var c=a(g).filter(":checked").length;a(b.counterContainer).html(interpolate(ngettext("%(sel)s of %(cnt)s selected","%(sel)s of %(cnt)s selected",c),{sel:c,cnt:_actions_icnt},!0));a(b.allToggle).prop("checked",function(){var a;c===g.length?(a=!0,k()):(a=!1,n());return a})};a(b.counterContainer).show();a(this).filter(":checked").each(function(c){a(this).parent().parent().toggleClass(b.selectedClass); |
||||
h();1===a(b.acrossInput).val()&&l()});a(b.allToggle).show().click(function(){p(a(this).prop("checked"));h()});a("a",b.acrossQuestions).click(function(c){c.preventDefault();a(b.acrossInput).val(1);l()});a("a",b.acrossClears).click(function(c){c.preventDefault();a(b.allToggle).prop("checked",!1);n();p(0);h()});f=null;a(g).click(function(c){c||(c=window.event);var d=c.target?c.target:c.srcElement;if(f&&a.data(f)!==a.data(d)&&!0===c.shiftKey){var e=!1;a(f).prop("checked",d.checked).parent().parent().toggleClass(b.selectedClass, |
||||
d.checked);a(g).each(function(){if(a.data(this)===a.data(f)||a.data(this)===a.data(d))e=e?!1:!0;e&&a(this).prop("checked",d.checked).parent().parent().toggleClass(b.selectedClass,d.checked)})}a(d).parent().parent().toggleClass(b.selectedClass,d.checked);f=d;h()});a("form#changelist-form table#result_list tr").find("td:gt(0) :input").change(function(){e=!0});a('form#changelist-form button[name="index"]').click(function(a){if(e)return confirm(gettext("You have unsaved changes on individual editable fields. If you run an action, your unsaved changes will be lost."))}); |
||||
a('form#changelist-form input[name="_save"]').click(function(c){var d=!1;a("select option:selected",b.actionContainer).each(function(){a(this).val()&&(d=!0)});if(d)return e?confirm(gettext("You have selected an action, but you haven't saved your changes to individual fields yet. Please click OK to save. You'll need to re-run the action.")):confirm(gettext("You have selected an action, and you haven't made any changes on individual fields. You're probably looking for the Go button rather than the Save button."))})}; |
||||
a.fn.actions.defaults={actionContainer:"div.actions",counterContainer:"span.action-counter",allContainer:"div.actions span.all",acrossInput:"div.actions input.select-across",acrossQuestions:"div.actions span.question",acrossClears:"div.actions span.clear",allToggle:"#action-toggle",selectedClass:"selected"}})(django.jQuery); |
||||
@ -0,0 +1,364 @@ |
||||
/*global addEvent, Calendar, cancelEventPropagation, findPosX, findPosY, getStyle, get_format, gettext, interpolate, ngettext, quickElement, removeEvent*/ |
||||
// Inserts shortcut buttons after all of the following:
|
||||
// <input type="text" class="vDateField">
|
||||
// <input type="text" class="vTimeField">
|
||||
(function() { |
||||
'use strict'; |
||||
var DateTimeShortcuts = { |
||||
calendars: [], |
||||
calendarInputs: [], |
||||
clockInputs: [], |
||||
dismissClockFunc: [], |
||||
dismissCalendarFunc: [], |
||||
calendarDivName1: 'calendarbox', // name of calendar <div> that gets toggled
|
||||
calendarDivName2: 'calendarin', // name of <div> that contains calendar
|
||||
calendarLinkName: 'calendarlink',// name of the link that is used to toggle
|
||||
clockDivName: 'clockbox', // name of clock <div> that gets toggled
|
||||
clockLinkName: 'clocklink', // name of the link that is used to toggle
|
||||
shortCutsClass: 'datetimeshortcuts', // class of the clock and cal shortcuts
|
||||
timezoneWarningClass: 'timezonewarning', // class of the warning for timezone mismatch
|
||||
timezoneOffset: 0, |
||||
init: function() { |
||||
var body = document.getElementsByTagName('body')[0]; |
||||
var serverOffset = body.getAttribute('data-admin-utc-offset'); |
||||
if (serverOffset) { |
||||
var localOffset = new Date().getTimezoneOffset() * -60; |
||||
DateTimeShortcuts.timezoneOffset = localOffset - serverOffset; |
||||
} |
||||
|
||||
var inputs = document.getElementsByTagName('input'); |
||||
for (var i = 0; i < inputs.length; i++) { |
||||
var inp = inputs[i]; |
||||
if (inp.getAttribute('type') === 'text' && inp.className.match(/vTimeField/)) { |
||||
DateTimeShortcuts.addClock(inp); |
||||
DateTimeShortcuts.addTimezoneWarning(inp); |
||||
} |
||||
else if (inp.getAttribute('type') === 'text' && inp.className.match(/vDateField/)) { |
||||
DateTimeShortcuts.addCalendar(inp); |
||||
DateTimeShortcuts.addTimezoneWarning(inp); |
||||
} |
||||
} |
||||
}, |
||||
// Return the current time while accounting for the server timezone.
|
||||
now: function() { |
||||
var body = document.getElementsByTagName('body')[0]; |
||||
var serverOffset = body.getAttribute('data-admin-utc-offset'); |
||||
if (serverOffset) { |
||||
var localNow = new Date(); |
||||
var localOffset = localNow.getTimezoneOffset() * -60; |
||||
localNow.setTime(localNow.getTime() + 1000 * (serverOffset - localOffset)); |
||||
return localNow; |
||||
} else { |
||||
return new Date(); |
||||
} |
||||
}, |
||||
// Add a warning when the time zone in the browser and backend do not match.
|
||||
addTimezoneWarning: function(inp) { |
||||
var $ = django.jQuery; |
||||
var warningClass = DateTimeShortcuts.timezoneWarningClass; |
||||
var timezoneOffset = DateTimeShortcuts.timezoneOffset / 3600; |
||||
|
||||
// Only warn if there is a time zone mismatch.
|
||||
if (!timezoneOffset) { |
||||
return; |
||||
} |
||||
|
||||
// Check if warning is already there.
|
||||
if ($(inp).siblings('.' + warningClass).length) { |
||||
return; |
||||
} |
||||
|
||||
var message; |
||||
if (timezoneOffset > 0) { |
||||
message = ngettext( |
||||
'Note: You are %s hour ahead of server time.', |
||||
'Note: You are %s hours ahead of server time.', |
||||
timezoneOffset |
||||
); |
||||
} |
||||
else { |
||||
timezoneOffset *= -1; |
||||
message = ngettext( |
||||
'Note: You are %s hour behind server time.', |
||||
'Note: You are %s hours behind server time.', |
||||
timezoneOffset |
||||
); |
||||
} |
||||
message = interpolate(message, [timezoneOffset]); |
||||
|
||||
var $warning = $('<span>'); |
||||
$warning.attr('class', warningClass); |
||||
$warning.text(message); |
||||
|
||||
$(inp).parent() |
||||
.append($('<br>')) |
||||
.append($warning); |
||||
}, |
||||
// Add clock widget to a given field
|
||||
addClock: function(inp) { |
||||
var num = DateTimeShortcuts.clockInputs.length; |
||||
DateTimeShortcuts.clockInputs[num] = inp; |
||||
DateTimeShortcuts.dismissClockFunc[num] = function() { DateTimeShortcuts.dismissClock(num); return true; }; |
||||
|
||||
// Shortcut links (clock icon and "Now" link)
|
||||
var shortcuts_span = document.createElement('span'); |
||||
shortcuts_span.className = DateTimeShortcuts.shortCutsClass; |
||||
inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling); |
||||
var now_link = document.createElement('a'); |
||||
now_link.setAttribute('href', "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", -1);"); |
||||
now_link.appendChild(document.createTextNode(gettext('Now'))); |
||||
var clock_link = document.createElement('a'); |
||||
clock_link.setAttribute('href', 'javascript:DateTimeShortcuts.openClock(' + num + ');'); |
||||
clock_link.id = DateTimeShortcuts.clockLinkName + num; |
||||
quickElement( |
||||
'span', clock_link, '', |
||||
'class', 'clock-icon', |
||||
'title', gettext('Choose a Time') |
||||
); |
||||
shortcuts_span.appendChild(document.createTextNode('\u00A0')); |
||||
shortcuts_span.appendChild(now_link); |
||||
shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0')); |
||||
shortcuts_span.appendChild(clock_link); |
||||
|
||||
// Create clock link div
|
||||
//
|
||||
// Markup looks like:
|
||||
// <div id="clockbox1" class="clockbox module">
|
||||
// <h2>Choose a time</h2>
|
||||
// <ul class="timelist">
|
||||
// <li><a href="#">Now</a></li>
|
||||
// <li><a href="#">Midnight</a></li>
|
||||
// <li><a href="#">6 a.m.</a></li>
|
||||
// <li><a href="#">Noon</a></li>
|
||||
// <li><a href="#">6 p.m.</a></li>
|
||||
// </ul>
|
||||
// <p class="calendar-cancel"><a href="#">Cancel</a></p>
|
||||
// </div>
|
||||
|
||||
var clock_box = document.createElement('div'); |
||||
clock_box.style.display = 'none'; |
||||
clock_box.style.position = 'absolute'; |
||||
clock_box.className = 'clockbox module'; |
||||
clock_box.setAttribute('id', DateTimeShortcuts.clockDivName + num); |
||||
document.body.appendChild(clock_box); |
||||
addEvent(clock_box, 'click', cancelEventPropagation); |
||||
|
||||
quickElement('h2', clock_box, gettext('Choose a time')); |
||||
var time_list = quickElement('ul', clock_box); |
||||
time_list.className = 'timelist'; |
||||
quickElement("a", quickElement("li", time_list), gettext("Now"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", -1);"); |
||||
quickElement("a", quickElement("li", time_list), gettext("Midnight"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", 0);"); |
||||
quickElement("a", quickElement("li", time_list), gettext("6 a.m."), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", 6);"); |
||||
quickElement("a", quickElement("li", time_list), gettext("Noon"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", 12);"); |
||||
quickElement("a", quickElement("li", time_list), gettext("6 p.m."), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", 18);"); |
||||
|
||||
var cancel_p = quickElement('p', clock_box); |
||||
cancel_p.className = 'calendar-cancel'; |
||||
quickElement('a', cancel_p, gettext('Cancel'), 'href', 'javascript:DateTimeShortcuts.dismissClock(' + num + ');'); |
||||
django.jQuery(document).bind('keyup', function(event) { |
||||
if (event.which === 27) { |
||||
// ESC key closes popup
|
||||
DateTimeShortcuts.dismissClock(num); |
||||
event.preventDefault(); |
||||
} |
||||
}); |
||||
}, |
||||
openClock: function(num) { |
||||
var clock_box = document.getElementById(DateTimeShortcuts.clockDivName + num); |
||||
var clock_link = document.getElementById(DateTimeShortcuts.clockLinkName + num); |
||||
|
||||
// Recalculate the clockbox position
|
||||
// is it left-to-right or right-to-left layout ?
|
||||
if (getStyle(document.body, 'direction') !== 'rtl') { |
||||
clock_box.style.left = findPosX(clock_link) + 17 + 'px'; |
||||
} |
||||
else { |
||||
// since style's width is in em, it'd be tough to calculate
|
||||
// px value of it. let's use an estimated px for now
|
||||
// TODO: IE returns wrong value for findPosX when in rtl mode
|
||||
// (it returns as it was left aligned), needs to be fixed.
|
||||
clock_box.style.left = findPosX(clock_link) - 110 + 'px'; |
||||
} |
||||
clock_box.style.top = Math.max(0, findPosY(clock_link) - 30) + 'px'; |
||||
|
||||
// Show the clock box
|
||||
clock_box.style.display = 'block'; |
||||
addEvent(document, 'click', DateTimeShortcuts.dismissClockFunc[num]); |
||||
}, |
||||
dismissClock: function(num) { |
||||
document.getElementById(DateTimeShortcuts.clockDivName + num).style.display = 'none'; |
||||
removeEvent(document, 'click', DateTimeShortcuts.dismissClockFunc[num]); |
||||
}, |
||||
handleClockQuicklink: function(num, val) { |
||||
var d; |
||||
if (val === -1) { |
||||
d = DateTimeShortcuts.now(); |
||||
} |
||||
else { |
||||
d = new Date(1970, 1, 1, val, 0, 0, 0); |
||||
} |
||||
DateTimeShortcuts.clockInputs[num].value = d.strftime(get_format('TIME_INPUT_FORMATS')[0]); |
||||
DateTimeShortcuts.clockInputs[num].focus(); |
||||
DateTimeShortcuts.dismissClock(num); |
||||
}, |
||||
// Add calendar widget to a given field.
|
||||
addCalendar: function(inp) { |
||||
var num = DateTimeShortcuts.calendars.length; |
||||
|
||||
DateTimeShortcuts.calendarInputs[num] = inp; |
||||
DateTimeShortcuts.dismissCalendarFunc[num] = function() { DateTimeShortcuts.dismissCalendar(num); return true; }; |
||||
|
||||
// Shortcut links (calendar icon and "Today" link)
|
||||
var shortcuts_span = document.createElement('span'); |
||||
shortcuts_span.className = DateTimeShortcuts.shortCutsClass; |
||||
inp.parentNode.insertBefore(shortcuts_span, inp.nextSibling); |
||||
var today_link = document.createElement('a'); |
||||
today_link.setAttribute('href', 'javascript:DateTimeShortcuts.handleCalendarQuickLink(' + num + ', 0);'); |
||||
today_link.appendChild(document.createTextNode(gettext('Today'))); |
||||
var cal_link = document.createElement('a'); |
||||
cal_link.setAttribute('href', 'javascript:DateTimeShortcuts.openCalendar(' + num + ');'); |
||||
cal_link.id = DateTimeShortcuts.calendarLinkName + num; |
||||
quickElement( |
||||
'span', cal_link, '', |
||||
'class', 'date-icon', |
||||
'title', gettext('Choose a Date') |
||||
); |
||||
shortcuts_span.appendChild(document.createTextNode('\u00A0')); |
||||
shortcuts_span.appendChild(today_link); |
||||
shortcuts_span.appendChild(document.createTextNode('\u00A0|\u00A0')); |
||||
shortcuts_span.appendChild(cal_link); |
||||
|
||||
// Create calendarbox div.
|
||||
//
|
||||
// Markup looks like:
|
||||
//
|
||||
// <div id="calendarbox3" class="calendarbox module">
|
||||
// <h2>
|
||||
// <a href="#" class="link-previous">‹</a>
|
||||
// <a href="#" class="link-next">›</a> February 2003
|
||||
// </h2>
|
||||
// <div class="calendar" id="calendarin3">
|
||||
// <!-- (cal) -->
|
||||
// </div>
|
||||
// <div class="calendar-shortcuts">
|
||||
// <a href="#">Yesterday</a> | <a href="#">Today</a> | <a href="#">Tomorrow</a>
|
||||
// </div>
|
||||
// <p class="calendar-cancel"><a href="#">Cancel</a></p>
|
||||
// </div>
|
||||
var cal_box = document.createElement('div'); |
||||
cal_box.style.display = 'none'; |
||||
cal_box.style.position = 'absolute'; |
||||
cal_box.className = 'calendarbox module'; |
||||
cal_box.setAttribute('id', DateTimeShortcuts.calendarDivName1 + num); |
||||
document.body.appendChild(cal_box); |
||||
addEvent(cal_box, 'click', cancelEventPropagation); |
||||
|
||||
// next-prev links
|
||||
var cal_nav = quickElement('div', cal_box); |
||||
var cal_nav_prev = quickElement('a', cal_nav, '<', 'href', 'javascript:DateTimeShortcuts.drawPrev(' + num + ');'); |
||||
cal_nav_prev.className = 'calendarnav-previous'; |
||||
var cal_nav_next = quickElement('a', cal_nav, '>', 'href', 'javascript:DateTimeShortcuts.drawNext(' + num + ');'); |
||||
cal_nav_next.className = 'calendarnav-next'; |
||||
|
||||
// main box
|
||||
var cal_main = quickElement('div', cal_box, '', 'id', DateTimeShortcuts.calendarDivName2 + num); |
||||
cal_main.className = 'calendar'; |
||||
DateTimeShortcuts.calendars[num] = new Calendar(DateTimeShortcuts.calendarDivName2 + num, DateTimeShortcuts.handleCalendarCallback(num)); |
||||
DateTimeShortcuts.calendars[num].drawCurrent(); |
||||
|
||||
// calendar shortcuts
|
||||
var shortcuts = quickElement('div', cal_box); |
||||
shortcuts.className = 'calendar-shortcuts'; |
||||
quickElement('a', shortcuts, gettext('Yesterday'), 'href', 'javascript:DateTimeShortcuts.handleCalendarQuickLink(' + num + ', -1);'); |
||||
shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0')); |
||||
quickElement('a', shortcuts, gettext('Today'), 'href', 'javascript:DateTimeShortcuts.handleCalendarQuickLink(' + num + ', 0);'); |
||||
shortcuts.appendChild(document.createTextNode('\u00A0|\u00A0')); |
||||
quickElement('a', shortcuts, gettext('Tomorrow'), 'href', 'javascript:DateTimeShortcuts.handleCalendarQuickLink(' + num + ', +1);'); |
||||
|
||||
// cancel bar
|
||||
var cancel_p = quickElement('p', cal_box); |
||||
cancel_p.className = 'calendar-cancel'; |
||||
quickElement('a', cancel_p, gettext('Cancel'), 'href', 'javascript:DateTimeShortcuts.dismissCalendar(' + num + ');'); |
||||
django.jQuery(document).bind('keyup', function(event) { |
||||
if (event.which === 27) { |
||||
// ESC key closes popup
|
||||
DateTimeShortcuts.dismissCalendar(num); |
||||
event.preventDefault(); |
||||
} |
||||
}); |
||||
}, |
||||
openCalendar: function(num) { |
||||
var cal_box = document.getElementById(DateTimeShortcuts.calendarDivName1 + num); |
||||
var cal_link = document.getElementById(DateTimeShortcuts.calendarLinkName + num); |
||||
var inp = DateTimeShortcuts.calendarInputs[num]; |
||||
|
||||
// Determine if the current value in the input has a valid date.
|
||||
// If so, draw the calendar with that date's year and month.
|
||||
if (inp.value) { |
||||
var format = get_format('DATE_INPUT_FORMATS')[0]; |
||||
var selected = inp.value.strptime(format); |
||||
var year = selected.getUTCFullYear(); |
||||
var month = selected.getUTCMonth() + 1; |
||||
var re = /\d{4}/; |
||||
if (re.test(year.toString()) && month >= 1 && month <= 12) { |
||||
DateTimeShortcuts.calendars[num].drawDate(month, year, selected); |
||||
} |
||||
} |
||||
|
||||
// Recalculate the clockbox position
|
||||
// is it left-to-right or right-to-left layout ?
|
||||
if (getStyle(document.body, 'direction') !== 'rtl') { |
||||
cal_box.style.left = findPosX(cal_link) + 17 + 'px'; |
||||
} |
||||
else { |
||||
// since style's width is in em, it'd be tough to calculate
|
||||
// px value of it. let's use an estimated px for now
|
||||
// TODO: IE returns wrong value for findPosX when in rtl mode
|
||||
// (it returns as it was left aligned), needs to be fixed.
|
||||
cal_box.style.left = findPosX(cal_link) - 180 + 'px'; |
||||
} |
||||
cal_box.style.top = Math.max(0, findPosY(cal_link) - 75) + 'px'; |
||||
|
||||
cal_box.style.display = 'block'; |
||||
addEvent(document, 'click', DateTimeShortcuts.dismissCalendarFunc[num]); |
||||
}, |
||||
dismissCalendar: function(num) { |
||||
document.getElementById(DateTimeShortcuts.calendarDivName1 + num).style.display = 'none'; |
||||
removeEvent(document, 'click', DateTimeShortcuts.dismissCalendarFunc[num]); |
||||
}, |
||||
drawPrev: function(num) { |
||||
DateTimeShortcuts.calendars[num].drawPreviousMonth(); |
||||
}, |
||||
drawNext: function(num) { |
||||
DateTimeShortcuts.calendars[num].drawNextMonth(); |
||||
}, |
||||
handleCalendarCallback: function(num) { |
||||
var format = get_format('DATE_INPUT_FORMATS')[0]; |
||||
// the format needs to be escaped a little
|
||||
format = format.replace('\\', '\\\\'); |
||||
format = format.replace('\r', '\\r'); |
||||
format = format.replace('\n', '\\n'); |
||||
format = format.replace('\t', '\\t'); |
||||
format = format.replace("'", "\\'"); |
||||
return ["function(y, m, d) { DateTimeShortcuts.calendarInputs[", |
||||
num, |
||||
"].value = new Date(y, m-1, d).strftime('", |
||||
format, |
||||
"');DateTimeShortcuts.calendarInputs[", |
||||
num, |
||||
"].focus();document.getElementById(DateTimeShortcuts.calendarDivName1+", |
||||
num, |
||||
").style.display='none';}"].join(''); |
||||
}, |
||||
handleCalendarQuickLink: function(num, offset) { |
||||
var d = DateTimeShortcuts.now(); |
||||
d.setDate(d.getDate() + offset); |
||||
DateTimeShortcuts.calendarInputs[num].value = d.strftime(get_format('DATE_INPUT_FORMATS')[0]); |
||||
DateTimeShortcuts.calendarInputs[num].focus(); |
||||
DateTimeShortcuts.dismissCalendar(num); |
||||
} |
||||
}; |
||||
|
||||
addEvent(window, 'load', DateTimeShortcuts.init); |
||||
window.DateTimeShortcuts = DateTimeShortcuts; |
||||
})(); |
||||
@ -0,0 +1,181 @@ |
||||
/*global SelectBox, interpolate*/ |
||||
// Handles related-objects functionality: lookup link for raw_id_fields
|
||||
// and Add Another links.
|
||||
|
||||
(function($) { |
||||
'use strict'; |
||||
|
||||
function html_unescape(text) { |
||||
// Unescape a string that was escaped using django.utils.html.escape.
|
||||
text = text.replace(/</g, '<'); |
||||
text = text.replace(/>/g, '>'); |
||||
text = text.replace(/"/g, '"'); |
||||
text = text.replace(/'/g, "'"); |
||||
text = text.replace(/&/g, '&'); |
||||
return text; |
||||
} |
||||
|
||||
// IE doesn't accept periods or dashes in the window name, but the element IDs
|
||||
// we use to generate popup window names may contain them, therefore we map them
|
||||
// to allowed characters in a reversible way so that we can locate the correct
|
||||
// element when the popup window is dismissed.
|
||||
function id_to_windowname(text) { |
||||
text = text.replace(/\./g, '__dot__'); |
||||
text = text.replace(/\-/g, '__dash__'); |
||||
return text; |
||||
} |
||||
|
||||
function windowname_to_id(text) { |
||||
text = text.replace(/__dot__/g, '.'); |
||||
text = text.replace(/__dash__/g, '-'); |
||||
return text; |
||||
} |
||||
|
||||
function showAdminPopup(triggeringLink, name_regexp, add_popup) { |
||||
var name = triggeringLink.id.replace(name_regexp, ''); |
||||
name = id_to_windowname(name); |
||||
var href = triggeringLink.href; |
||||
if (add_popup) { |
||||
if (href.indexOf('?') === -1) { |
||||
href += '?_popup=1'; |
||||
} else { |
||||
href += '&_popup=1'; |
||||
} |
||||
} |
||||
var win = window.open(href, name, 'height=500,width=800,resizable=yes,scrollbars=yes'); |
||||
win.focus(); |
||||
return false; |
||||
} |
||||
|
||||
function showRelatedObjectLookupPopup(triggeringLink) { |
||||
return showAdminPopup(triggeringLink, /^lookup_/, true); |
||||
} |
||||
|
||||
function dismissRelatedLookupPopup(win, chosenId) { |
||||
var name = windowname_to_id(win.name); |
||||
var elem = document.getElementById(name); |
||||
if (elem.className.indexOf('vManyToManyRawIdAdminField') !== -1 && elem.value) { |
||||
elem.value += ',' + chosenId; |
||||
} else { |
||||
document.getElementById(name).value = chosenId; |
||||
} |
||||
win.close(); |
||||
} |
||||
|
||||
function showRelatedObjectPopup(triggeringLink) { |
||||
return showAdminPopup(triggeringLink, /^(change|add|delete)_/, false); |
||||
} |
||||
|
||||
function updateRelatedObjectLinks(triggeringLink) { |
||||
var $this = django.jQuery(triggeringLink); |
||||
var siblings = $this.nextAll('.change-related, .delete-related'); |
||||
if (!siblings.length) { |
||||
return; |
||||
} |
||||
var value = $this.val(); |
||||
if (value) { |
||||
siblings.each(function() { |
||||
var elm = django.jQuery(this); |
||||
elm.attr('href', elm.attr('data-href-template').replace('__fk__', value)); |
||||
}); |
||||
} else { |
||||
siblings.removeAttr('href'); |
||||
} |
||||
} |
||||
|
||||
function dismissAddRelatedObjectPopup(win, newId, newRepr) { |
||||
// newId and newRepr are expected to have previously been escaped by
|
||||
// django.utils.html.escape.
|
||||
newId = html_unescape(newId); |
||||
newRepr = html_unescape(newRepr); |
||||
var name = windowname_to_id(win.name); |
||||
var elem = document.getElementById(name); |
||||
if (elem) { |
||||
var elemName = elem.nodeName.toUpperCase(); |
||||
if (elemName === 'SELECT') { |
||||
elem.options[elem.options.length] = new Option(newRepr, newId, true, true); |
||||
} else if (elemName === 'INPUT') { |
||||
if (elem.className.indexOf('vManyToManyRawIdAdminField') !== -1 && elem.value) { |
||||
elem.value += ',' + newId; |
||||
} else { |
||||
elem.value = newId; |
||||
} |
||||
} |
||||
// Trigger a change event to update related links if required.
|
||||
django.jQuery(elem).trigger('change'); |
||||
} else { |
||||
var toId = name + "_to"; |
||||
var o = new Option(newRepr, newId); |
||||
SelectBox.add_to_cache(toId, o); |
||||
SelectBox.redisplay(toId); |
||||
} |
||||
win.close(); |
||||
} |
||||
|
||||
function dismissChangeRelatedObjectPopup(win, objId, newRepr, newId) { |
||||
objId = html_unescape(objId); |
||||
newRepr = html_unescape(newRepr); |
||||
var id = windowname_to_id(win.name).replace(/^edit_/, ''); |
||||
var selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]); |
||||
var selects = django.jQuery(selectsSelector); |
||||
selects.find('option').each(function() { |
||||
if (this.value === objId) { |
||||
this.innerHTML = newRepr; |
||||
this.value = newId; |
||||
} |
||||
}); |
||||
win.close(); |
||||
} |
||||
|
||||
function dismissDeleteRelatedObjectPopup(win, objId) { |
||||
objId = html_unescape(objId); |
||||
var id = windowname_to_id(win.name).replace(/^delete_/, ''); |
||||
var selectsSelector = interpolate('#%s, #%s_from, #%s_to', [id, id, id]); |
||||
var selects = django.jQuery(selectsSelector); |
||||
selects.find('option').each(function() { |
||||
if (this.value === objId) { |
||||
django.jQuery(this).remove(); |
||||
} |
||||
}).trigger('change'); |
||||
win.close(); |
||||
} |
||||
|
||||
// Global for testing purposes
|
||||
window.html_unescape = html_unescape; |
||||
window.id_to_windowname = id_to_windowname; |
||||
window.windowname_to_id = windowname_to_id; |
||||
|
||||
window.showRelatedObjectLookupPopup = showRelatedObjectLookupPopup; |
||||
window.dismissRelatedLookupPopup = dismissRelatedLookupPopup; |
||||
window.showRelatedObjectPopup = showRelatedObjectPopup; |
||||
window.updateRelatedObjectLinks = updateRelatedObjectLinks; |
||||
window.dismissAddRelatedObjectPopup = dismissAddRelatedObjectPopup; |
||||
window.dismissChangeRelatedObjectPopup = dismissChangeRelatedObjectPopup; |
||||
window.dismissDeleteRelatedObjectPopup = dismissDeleteRelatedObjectPopup; |
||||
|
||||
// Kept for backward compatibility
|
||||
window.showAddAnotherPopup = showRelatedObjectPopup; |
||||
window.dismissAddAnotherPopup = dismissAddRelatedObjectPopup; |
||||
|
||||
$(document).ready(function() { |
||||
$('body').on('click', '.related-widget-wrapper-link', function(e) { |
||||
e.preventDefault(); |
||||
if (this.href) { |
||||
var event = $.Event('django:show-related', {href: this.href}); |
||||
$(this).trigger(event); |
||||
if (!event.isDefaultPrevented()) { |
||||
showRelatedObjectPopup(this); |
||||
} |
||||
} |
||||
}); |
||||
$('body').on('change', '.related-widget-wrapper select', function(e) { |
||||
var event = $.Event('django:update-related'); |
||||
$(this).trigger(event); |
||||
if (!event.isDefaultPrevented()) { |
||||
updateRelatedObjectLinks(this); |
||||
} |
||||
}); |
||||
$('.related-widget-wrapper select').trigger('change'); |
||||
}); |
||||
|
||||
})(django.jQuery); |
||||
@ -0,0 +1,178 @@ |
||||
/*global gettext, get_format, quickElement, removeChildren*/ |
||||
/* |
||||
calendar.js - Calendar functions by Adrian Holovaty |
||||
depends on core.js for utility functions like removeChildren or quickElement |
||||
*/ |
||||
|
||||
(function() { |
||||
'use strict'; |
||||
// CalendarNamespace -- Provides a collection of HTML calendar-related helper functions
|
||||
var CalendarNamespace = { |
||||
monthsOfYear: gettext('January February March April May June July August September October November December').split(' '), |
||||
daysOfWeek: gettext('S M T W T F S').split(' '), |
||||
firstDayOfWeek: parseInt(get_format('FIRST_DAY_OF_WEEK')), |
||||
isLeapYear: function(year) { |
||||
return (((year % 4) === 0) && ((year % 100) !== 0 ) || ((year % 400) === 0)); |
||||
}, |
||||
getDaysInMonth: function(month, year) { |
||||
var days; |
||||
if (month === 1 || month === 3 || month === 5 || month === 7 || month === 8 || month === 10 || month === 12) { |
||||
days = 31; |
||||
} |
||||
else if (month === 4 || month === 6 || month === 9 || month === 11) { |
||||
days = 30; |
||||
} |
||||
else if (month === 2 && CalendarNamespace.isLeapYear(year)) { |
||||
days = 29; |
||||
} |
||||
else { |
||||
days = 28; |
||||
} |
||||
return days; |
||||
}, |
||||
draw: function(month, year, div_id, callback, selected) { // month = 1-12, year = 1-9999
|
||||
var today = new Date(); |
||||
var todayDay = today.getDate(); |
||||
var todayMonth = today.getMonth() + 1; |
||||
var todayYear = today.getFullYear(); |
||||
var todayClass = ''; |
||||
|
||||
// Use UTC functions here because the date field does not contain time
|
||||
// and using the UTC function variants prevent the local time offset
|
||||
// from altering the date, specifically the day field. For example:
|
||||
//
|
||||
// ```
|
||||
// var x = new Date('2013-10-02');
|
||||
// var day = x.getDate();
|
||||
// ```
|
||||
//
|
||||
// The day variable above will be 1 instead of 2 in, say, US Pacific time
|
||||
// zone.
|
||||
var isSelectedMonth = false; |
||||
if (typeof selected !== 'undefined') { |
||||
isSelectedMonth = (selected.getUTCFullYear() === year && (selected.getUTCMonth() + 1) === month); |
||||
} |
||||
|
||||
month = parseInt(month); |
||||
year = parseInt(year); |
||||
var calDiv = document.getElementById(div_id); |
||||
removeChildren(calDiv); |
||||
var calTable = document.createElement('table'); |
||||
quickElement('caption', calTable, CalendarNamespace.monthsOfYear[month - 1] + ' ' + year); |
||||
var tableBody = quickElement('tbody', calTable); |
||||
|
||||
// Draw days-of-week header
|
||||
var tableRow = quickElement('tr', tableBody); |
||||
for (var i = 0; i < 7; i++) { |
||||
quickElement('th', tableRow, CalendarNamespace.daysOfWeek[(i + CalendarNamespace.firstDayOfWeek) % 7]); |
||||
} |
||||
|
||||
var startingPos = new Date(year, month - 1, 1 - CalendarNamespace.firstDayOfWeek).getDay(); |
||||
var days = CalendarNamespace.getDaysInMonth(month, year); |
||||
|
||||
var nonDayCell; |
||||
|
||||
// Draw blanks before first of month
|
||||
tableRow = quickElement('tr', tableBody); |
||||
for (i = 0; i < startingPos; i++) { |
||||
nonDayCell = quickElement('td', tableRow, ' '); |
||||
nonDayCell.className = "nonday"; |
||||
} |
||||
|
||||
// Draw days of month
|
||||
var currentDay = 1; |
||||
for (i = startingPos; currentDay <= days; i++) { |
||||
if (i % 7 === 0 && currentDay !== 1) { |
||||
tableRow = quickElement('tr', tableBody); |
||||
} |
||||
if ((currentDay === todayDay) && (month === todayMonth) && (year === todayYear)) { |
||||
todayClass = 'today'; |
||||
} else { |
||||
todayClass = ''; |
||||
} |
||||
|
||||
// use UTC function; see above for explanation.
|
||||
if (isSelectedMonth && currentDay === selected.getUTCDate()) { |
||||
if (todayClass !== '') { |
||||
todayClass += " "; |
||||
} |
||||
todayClass += "selected"; |
||||
} |
||||
|
||||
var cell = quickElement('td', tableRow, '', 'class', todayClass); |
||||
|
||||
quickElement('a', cell, currentDay, 'href', 'javascript:void(' + callback + '(' + year + ',' + month + ',' + currentDay + '));'); |
||||
currentDay++; |
||||
} |
||||
|
||||
// Draw blanks after end of month (optional, but makes for valid code)
|
||||
while (tableRow.childNodes.length < 7) { |
||||
nonDayCell = quickElement('td', tableRow, ' '); |
||||
nonDayCell.className = "nonday"; |
||||
} |
||||
|
||||
calDiv.appendChild(calTable); |
||||
} |
||||
}; |
||||
|
||||
// Calendar -- A calendar instance
|
||||
function Calendar(div_id, callback, selected) { |
||||
// div_id (string) is the ID of the element in which the calendar will
|
||||
// be displayed
|
||||
// callback (string) is the name of a JavaScript function that will be
|
||||
// called with the parameters (year, month, day) when a day in the
|
||||
// calendar is clicked
|
||||
this.div_id = div_id; |
||||
this.callback = callback; |
||||
this.today = new Date(); |
||||
this.currentMonth = this.today.getMonth() + 1; |
||||
this.currentYear = this.today.getFullYear(); |
||||
if (typeof selected !== 'undefined') { |
||||
this.selected = selected; |
||||
} |
||||
} |
||||
Calendar.prototype = { |
||||
drawCurrent: function() { |
||||
CalendarNamespace.draw(this.currentMonth, this.currentYear, this.div_id, this.callback, this.selected); |
||||
}, |
||||
drawDate: function(month, year, selected) { |
||||
this.currentMonth = month; |
||||
this.currentYear = year; |
||||
|
||||
if(selected) { |
||||
this.selected = selected; |
||||
} |
||||
|
||||
this.drawCurrent(); |
||||
}, |
||||
drawPreviousMonth: function() { |
||||
if (this.currentMonth === 1) { |
||||
this.currentMonth = 12; |
||||
this.currentYear--; |
||||
} |
||||
else { |
||||
this.currentMonth--; |
||||
} |
||||
this.drawCurrent(); |
||||
}, |
||||
drawNextMonth: function() { |
||||
if (this.currentMonth === 12) { |
||||
this.currentMonth = 1; |
||||
this.currentYear++; |
||||
} |
||||
else { |
||||
this.currentMonth++; |
||||
} |
||||
this.drawCurrent(); |
||||
}, |
||||
drawPreviousYear: function() { |
||||
this.currentYear--; |
||||
this.drawCurrent(); |
||||
}, |
||||
drawNextYear: function() { |
||||
this.currentYear++; |
||||
this.drawCurrent(); |
||||
} |
||||
}; |
||||
window.Calendar = Calendar; |
||||
})(); |
||||
@ -0,0 +1,26 @@ |
||||
/*global gettext*/ |
||||
(function($) { |
||||
'use strict'; |
||||
$(document).ready(function() { |
||||
// Add anchor tag for Show/Hide link
|
||||
$("fieldset.collapse").each(function(i, elem) { |
||||
// Don't hide if fields in this fieldset have errors
|
||||
if ($(elem).find("div.errors").length === 0) { |
||||
$(elem).addClass("collapsed").find("h2").first().append(' (<a id="fieldsetcollapser' + |
||||
i + '" class="collapse-toggle" href="#">' + gettext("Show") + |
||||
'</a>)'); |
||||
} |
||||
}); |
||||
// Add toggle to anchor tag
|
||||
$("fieldset.collapse a.collapse-toggle").click(function(ev) { |
||||
if ($(this).closest("fieldset").hasClass("collapsed")) { |
||||
// Show
|
||||
$(this).text(gettext("Hide")).closest("fieldset").removeClass("collapsed").trigger("show.fieldset", [$(this).attr("id")]); |
||||
} else { |
||||
// Hide
|
||||
$(this).text(gettext("Show")).closest("fieldset").addClass("collapsed").trigger("hide.fieldset", [$(this).attr("id")]); |
||||
} |
||||
return false; |
||||
}); |
||||
}); |
||||
})(django.jQuery); |
||||
@ -0,0 +1,2 @@ |
||||
(function(a){a(document).ready(function(){a("fieldset.collapse").each(function(b,c){0===a(c).find("div.errors").length&&a(c).addClass("collapsed").find("h2").first().append(' (<a id="fieldsetcollapser'+b+'" class="collapse-toggle" href="#">'+gettext("Show")+"</a>)")});a("fieldset.collapse a.collapse-toggle").click(function(b){a(this).closest("fieldset").hasClass("collapsed")?a(this).text(gettext("Hide")).closest("fieldset").removeClass("collapsed").trigger("show.fieldset",[a(this).attr("id")]):a(this).text(gettext("Show")).closest("fieldset").addClass("collapsed").trigger("hide.fieldset", |
||||
[a(this).attr("id")]);return!1})})})(django.jQuery); |
||||
@ -0,0 +1,266 @@ |
||||
// Core javascript helper functions
|
||||
|
||||
// basic browser identification & version
|
||||
var isOpera = (navigator.userAgent.indexOf("Opera") >= 0) && parseFloat(navigator.appVersion); |
||||
var isIE = ((document.all) && (!isOpera)) && parseFloat(navigator.appVersion.split("MSIE ")[1].split(";")[0]); |
||||
|
||||
// Cross-browser event handlers.
|
||||
function addEvent(obj, evType, fn) { |
||||
'use strict'; |
||||
if (obj.addEventListener) { |
||||
obj.addEventListener(evType, fn, false); |
||||
return true; |
||||
} else if (obj.attachEvent) { |
||||
var r = obj.attachEvent("on" + evType, fn); |
||||
return r; |
||||
} else { |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
function removeEvent(obj, evType, fn) { |
||||
'use strict'; |
||||
if (obj.removeEventListener) { |
||||
obj.removeEventListener(evType, fn, false); |
||||
return true; |
||||
} else if (obj.detachEvent) { |
||||
obj.detachEvent("on" + evType, fn); |
||||
return true; |
||||
} else { |
||||
return false; |
||||
} |
||||
} |
||||
|
||||
function cancelEventPropagation(e) { |
||||
'use strict'; |
||||
if (!e) { |
||||
e = window.event; |
||||
} |
||||
e.cancelBubble = true; |
||||
if (e.stopPropagation) { |
||||
e.stopPropagation(); |
||||
} |
||||
} |
||||
|
||||
// quickElement(tagType, parentReference [, textInChildNode, attribute, attributeValue ...]);
|
||||
function quickElement() { |
||||
'use strict'; |
||||
var obj = document.createElement(arguments[0]); |
||||
if (arguments[2]) { |
||||
var textNode = document.createTextNode(arguments[2]); |
||||
obj.appendChild(textNode); |
||||
} |
||||
var len = arguments.length; |
||||
for (var i = 3; i < len; i += 2) { |
||||
obj.setAttribute(arguments[i], arguments[i + 1]); |
||||
} |
||||
arguments[1].appendChild(obj); |
||||
return obj; |
||||
} |
||||
|
||||
// "a" is reference to an object
|
||||
function removeChildren(a) { |
||||
'use strict'; |
||||
while (a.hasChildNodes()) { |
||||
a.removeChild(a.lastChild); |
||||
} |
||||
} |
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Cross-browser xmlhttp object
|
||||
// from http://jibbering.com/2002/4/httprequest.html
|
||||
// ----------------------------------------------------------------------------
|
||||
var xmlhttp; |
||||
/*@cc_on @*/ |
||||
/*@if (@_jscript_version >= 5) |
||||
try { |
||||
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); |
||||
} catch (e) { |
||||
try { |
||||
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); |
||||
} catch (E) { |
||||
xmlhttp = false; |
||||
} |
||||
} |
||||
@else |
||||
xmlhttp = false; |
||||
@end @*/ |
||||
if (!xmlhttp && typeof XMLHttpRequest !== 'undefined') { |
||||
xmlhttp = new XMLHttpRequest(); |
||||
} |
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Find-position functions by PPK
|
||||
// See http://www.quirksmode.org/js/findpos.html
|
||||
// ----------------------------------------------------------------------------
|
||||
function findPosX(obj) { |
||||
'use strict'; |
||||
var curleft = 0; |
||||
if (obj.offsetParent) { |
||||
while (obj.offsetParent) { |
||||
curleft += obj.offsetLeft - ((isOpera) ? 0 : obj.scrollLeft); |
||||
obj = obj.offsetParent; |
||||
} |
||||
// IE offsetParent does not include the top-level
|
||||
if (isIE && obj.parentElement) { |
||||
curleft += obj.offsetLeft - obj.scrollLeft; |
||||
} |
||||
} else if (obj.x) { |
||||
curleft += obj.x; |
||||
} |
||||
return curleft; |
||||
} |
||||
|
||||
function findPosY(obj) { |
||||
'use strict'; |
||||
var curtop = 0; |
||||
if (obj.offsetParent) { |
||||
while (obj.offsetParent) { |
||||
curtop += obj.offsetTop - ((isOpera) ? 0 : obj.scrollTop); |
||||
obj = obj.offsetParent; |
||||
} |
||||
// IE offsetParent does not include the top-level
|
||||
if (isIE && obj.parentElement) { |
||||
curtop += obj.offsetTop - obj.scrollTop; |
||||
} |
||||
} else if (obj.y) { |
||||
curtop += obj.y; |
||||
} |
||||
return curtop; |
||||
} |
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Date object extensions
|
||||
// ----------------------------------------------------------------------------
|
||||
(function() { |
||||
'use strict'; |
||||
Date.prototype.getTwelveHours = function() { |
||||
var hours = this.getHours(); |
||||
if (hours === 0) { |
||||
return 12; |
||||
} |
||||
else { |
||||
return hours <= 12 ? hours : hours - 12; |
||||
} |
||||
}; |
||||
|
||||
Date.prototype.getTwoDigitMonth = function() { |
||||
return (this.getMonth() < 9) ? '0' + (this.getMonth() + 1) : (this.getMonth() + 1); |
||||
}; |
||||
|
||||
Date.prototype.getTwoDigitDate = function() { |
||||
return (this.getDate() < 10) ? '0' + this.getDate() : this.getDate(); |
||||
}; |
||||
|
||||
Date.prototype.getTwoDigitTwelveHour = function() { |
||||
return (this.getTwelveHours() < 10) ? '0' + this.getTwelveHours() : this.getTwelveHours(); |
||||
}; |
||||
|
||||
Date.prototype.getTwoDigitHour = function() { |
||||
return (this.getHours() < 10) ? '0' + this.getHours() : this.getHours(); |
||||
}; |
||||
|
||||
Date.prototype.getTwoDigitMinute = function() { |
||||
return (this.getMinutes() < 10) ? '0' + this.getMinutes() : this.getMinutes(); |
||||
}; |
||||
|
||||
Date.prototype.getTwoDigitSecond = function() { |
||||
return (this.getSeconds() < 10) ? '0' + this.getSeconds() : this.getSeconds(); |
||||
}; |
||||
|
||||
Date.prototype.getHourMinute = function() { |
||||
return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute(); |
||||
}; |
||||
|
||||
Date.prototype.getHourMinuteSecond = function() { |
||||
return this.getTwoDigitHour() + ':' + this.getTwoDigitMinute() + ':' + this.getTwoDigitSecond(); |
||||
}; |
||||
|
||||
Date.prototype.strftime = function(format) { |
||||
var fields = { |
||||
c: this.toString(), |
||||
d: this.getTwoDigitDate(), |
||||
H: this.getTwoDigitHour(), |
||||
I: this.getTwoDigitTwelveHour(), |
||||
m: this.getTwoDigitMonth(), |
||||
M: this.getTwoDigitMinute(), |
||||
p: (this.getHours() >= 12) ? 'PM' : 'AM', |
||||
S: this.getTwoDigitSecond(), |
||||
w: '0' + this.getDay(), |
||||
x: this.toLocaleDateString(), |
||||
X: this.toLocaleTimeString(), |
||||
y: ('' + this.getFullYear()).substr(2, 4), |
||||
Y: '' + this.getFullYear(), |
||||
'%': '%' |
||||
}; |
||||
var result = '', i = 0; |
||||
while (i < format.length) { |
||||
if (format.charAt(i) === '%') { |
||||
result = result + fields[format.charAt(i + 1)]; |
||||
++i; |
||||
} |
||||
else { |
||||
result = result + format.charAt(i); |
||||
} |
||||
++i; |
||||
} |
||||
return result; |
||||
}; |
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// String object extensions
|
||||
// ----------------------------------------------------------------------------
|
||||
String.prototype.pad_left = function(pad_length, pad_string) { |
||||
var new_string = this; |
||||
for (var i = 0; new_string.length < pad_length; i++) { |
||||
new_string = pad_string + new_string; |
||||
} |
||||
return new_string; |
||||
}; |
||||
|
||||
String.prototype.strptime = function(format) { |
||||
var split_format = format.split(/[.\-/]/); |
||||
var date = this.split(/[.\-/]/); |
||||
var i = 0; |
||||
var day, month, year; |
||||
while (i < split_format.length) { |
||||
switch (split_format[i]) { |
||||
case "%d": |
||||
day = date[i]; |
||||
break; |
||||
case "%m": |
||||
month = date[i] - 1; |
||||
break; |
||||
case "%Y": |
||||
year = date[i]; |
||||
break; |
||||
case "%y": |
||||
year = date[i]; |
||||
break; |
||||
} |
||||
++i; |
||||
} |
||||
// Create Date object from UTC since the parsed value is supposed to be
|
||||
// in UTC, not local time. Also, the calendar uses UTC functions for
|
||||
// date extraction.
|
||||
return new Date(Date.UTC(year, month, day)); |
||||
}; |
||||
|
||||
})(); |
||||
// ----------------------------------------------------------------------------
|
||||
// Get the computed style for and element
|
||||
// ----------------------------------------------------------------------------
|
||||
function getStyle(oElm, strCssRule) { |
||||
'use strict'; |
||||
var strValue = ""; |
||||
if(document.defaultView && document.defaultView.getComputedStyle) { |
||||
strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule); |
||||
} |
||||
else if(oElm.currentStyle) { |
||||
strCssRule = strCssRule.replace(/\-(\w)/g, function(strMatch, p1) { |
||||
return p1.toUpperCase(); |
||||
}); |
||||
strValue = oElm.currentStyle[strCssRule]; |
||||
} |
||||
return strValue; |
||||
} |
||||
@ -0,0 +1,275 @@ |
||||
/*global DateTimeShortcuts, SelectFilter*/ |
||||
/** |
||||
* Django admin inlines |
||||
* |
||||
* Based on jQuery Formset 1.1 |
||||
* @author Stanislaus Madueke (stan DOT madueke AT gmail DOT com) |
||||
* @requires jQuery 1.2.6 or later |
||||
* |
||||
* Copyright (c) 2009, Stanislaus Madueke |
||||
* All rights reserved. |
||||
* |
||||
* Spiced up with Code from Zain Memon's GSoC project 2009 |
||||
* and modified for Django by Jannis Leidel, Travis Swicegood and Julien Phalip. |
||||
* |
||||
* Licensed under the New BSD License |
||||
* See: http://www.opensource.org/licenses/bsd-license.php
|
||||
*/ |
||||
(function($) { |
||||
'use strict'; |
||||
$.fn.formset = function(opts) { |
||||
var options = $.extend({}, $.fn.formset.defaults, opts); |
||||
var $this = $(this); |
||||
var $parent = $this.parent(); |
||||
var updateElementIndex = function(el, prefix, ndx) { |
||||
var id_regex = new RegExp("(" + prefix + "-(\\d+|__prefix__))"); |
||||
var replacement = prefix + "-" + ndx; |
||||
if ($(el).prop("for")) { |
||||
$(el).prop("for", $(el).prop("for").replace(id_regex, replacement)); |
||||
} |
||||
if (el.id) { |
||||
el.id = el.id.replace(id_regex, replacement); |
||||
} |
||||
if (el.name) { |
||||
el.name = el.name.replace(id_regex, replacement); |
||||
} |
||||
}; |
||||
var totalForms = $("#id_" + options.prefix + "-TOTAL_FORMS").prop("autocomplete", "off"); |
||||
var nextIndex = parseInt(totalForms.val(), 10); |
||||
var maxForms = $("#id_" + options.prefix + "-MAX_NUM_FORMS").prop("autocomplete", "off"); |
||||
// only show the add button if we are allowed to add more items,
|
||||
// note that max_num = None translates to a blank string.
|
||||
var showAddButton = maxForms.val() === '' || (maxForms.val() - totalForms.val()) > 0; |
||||
$this.each(function(i) { |
||||
$(this).not("." + options.emptyCssClass).addClass(options.formCssClass); |
||||
}); |
||||
if ($this.length && showAddButton) { |
||||
var addButton; |
||||
if ($this.prop("tagName") === "TR") { |
||||
// If forms are laid out as table rows, insert the
|
||||
// "add" button in a new table row:
|
||||
var numCols = this.eq(-1).children().length; |
||||
$parent.append('<tr class="' + options.addCssClass + '"><td colspan="' + numCols + '"><a href="javascript:void(0)">' + options.addText + "</a></tr>"); |
||||
addButton = $parent.find("tr:last a"); |
||||
} else { |
||||
// Otherwise, insert it immediately after the last form:
|
||||
$this.filter(":last").after('<div class="' + options.addCssClass + '"><a href="javascript:void(0)">' + options.addText + "</a></div>"); |
||||
addButton = $this.filter(":last").next().find("a"); |
||||
} |
||||
addButton.click(function(e) { |
||||
e.preventDefault(); |
||||
var template = $("#" + options.prefix + "-empty"); |
||||
var row = template.clone(true); |
||||
row.removeClass(options.emptyCssClass) |
||||
.addClass(options.formCssClass) |
||||
.attr("id", options.prefix + "-" + nextIndex); |
||||
if (row.is("tr")) { |
||||
// If the forms are laid out in table rows, insert
|
||||
// the remove button into the last table cell:
|
||||
row.children(":last").append('<div><a class="' + options.deleteCssClass + '" href="javascript:void(0)">' + options.deleteText + "</a></div>"); |
||||
} else if (row.is("ul") || row.is("ol")) { |
||||
// If they're laid out as an ordered/unordered list,
|
||||
// insert an <li> after the last list item:
|
||||
row.append('<li><a class="' + options.deleteCssClass + '" href="javascript:void(0)">' + options.deleteText + "</a></li>"); |
||||
} else { |
||||
// Otherwise, just insert the remove button as the
|
||||
// last child element of the form's container:
|
||||
row.children(":first").append('<span><a class="' + options.deleteCssClass + '" href="javascript:void(0)">' + options.deleteText + "</a></span>"); |
||||
} |
||||
row.find("*").each(function() { |
||||
updateElementIndex(this, options.prefix, totalForms.val()); |
||||
}); |
||||
// Insert the new form when it has been fully edited
|
||||
row.insertBefore($(template)); |
||||
// Update number of total forms
|
||||
$(totalForms).val(parseInt(totalForms.val(), 10) + 1); |
||||
nextIndex += 1; |
||||
// Hide add button in case we've hit the max, except we want to add infinitely
|
||||
if ((maxForms.val() !== '') && (maxForms.val() - totalForms.val()) <= 0) { |
||||
addButton.parent().hide(); |
||||
} |
||||
// The delete button of each row triggers a bunch of other things
|
||||
row.find("a." + options.deleteCssClass).click(function(e1) { |
||||
e1.preventDefault(); |
||||
// Remove the parent form containing this button:
|
||||
row.remove(); |
||||
nextIndex -= 1; |
||||
// If a post-delete callback was provided, call it with the deleted form:
|
||||
if (options.removed) { |
||||
options.removed(row); |
||||
} |
||||
$(document).trigger('formset:removed', [row, options.prefix]); |
||||
// Update the TOTAL_FORMS form count.
|
||||
var forms = $("." + options.formCssClass); |
||||
$("#id_" + options.prefix + "-TOTAL_FORMS").val(forms.length); |
||||
// Show add button again once we drop below max
|
||||
if ((maxForms.val() === '') || (maxForms.val() - forms.length) > 0) { |
||||
addButton.parent().show(); |
||||
} |
||||
// Also, update names and ids for all remaining form controls
|
||||
// so they remain in sequence:
|
||||
var i, formCount; |
||||
var updateElementCallback = function() { |
||||
updateElementIndex(this, options.prefix, i); |
||||
}; |
||||
for (i = 0, formCount = forms.length; i < formCount; i++) { |
||||
updateElementIndex($(forms).get(i), options.prefix, i); |
||||
$(forms.get(i)).find("*").each(updateElementCallback); |
||||
} |
||||
}); |
||||
// If a post-add callback was supplied, call it with the added form:
|
||||
if (options.added) { |
||||
options.added(row); |
||||
} |
||||
$(document).trigger('formset:added', [row, options.prefix]); |
||||
}); |
||||
} |
||||
return this; |
||||
}; |
||||
|
||||
/* Setup plugin defaults */ |
||||
$.fn.formset.defaults = { |
||||
prefix: "form", // The form prefix for your django formset
|
||||
addText: "add another", // Text for the add link
|
||||
deleteText: "remove", // Text for the delete link
|
||||
addCssClass: "add-row", // CSS class applied to the add link
|
||||
deleteCssClass: "delete-row", // CSS class applied to the delete link
|
||||
emptyCssClass: "empty-row", // CSS class applied to the empty row
|
||||
formCssClass: "dynamic-form", // CSS class applied to each form in a formset
|
||||
added: null, // Function called each time a new form is added
|
||||
removed: null // Function called each time a form is deleted
|
||||
}; |
||||
|
||||
|
||||
// Tabular inlines ---------------------------------------------------------
|
||||
$.fn.tabularFormset = function(options) { |
||||
var $rows = $(this); |
||||
var alternatingRows = function(row) { |
||||
$($rows.selector).not(".add-row").removeClass("row1 row2") |
||||
.filter(":even").addClass("row1").end() |
||||
.filter(":odd").addClass("row2"); |
||||
}; |
||||
|
||||
var reinitDateTimeShortCuts = function() { |
||||
// Reinitialize the calendar and clock widgets by force
|
||||
if (typeof DateTimeShortcuts !== "undefined") { |
||||
$(".datetimeshortcuts").remove(); |
||||
DateTimeShortcuts.init(); |
||||
} |
||||
}; |
||||
|
||||
var updateSelectFilter = function() { |
||||
// If any SelectFilter widgets are a part of the new form,
|
||||
// instantiate a new SelectFilter instance for it.
|
||||
if (typeof SelectFilter !== 'undefined') { |
||||
$('.selectfilter').each(function(index, value) { |
||||
var namearr = value.name.split('-'); |
||||
SelectFilter.init(value.id, namearr[namearr.length - 1], false); |
||||
}); |
||||
$('.selectfilterstacked').each(function(index, value) { |
||||
var namearr = value.name.split('-'); |
||||
SelectFilter.init(value.id, namearr[namearr.length - 1], true); |
||||
}); |
||||
} |
||||
}; |
||||
|
||||
var initPrepopulatedFields = function(row) { |
||||
row.find('.prepopulated_field').each(function() { |
||||
var field = $(this), |
||||
input = field.find('input, select, textarea'), |
||||
dependency_list = input.data('dependency_list') || [], |
||||
dependencies = []; |
||||
$.each(dependency_list, function(i, field_name) { |
||||
dependencies.push('#' + row.find('.field-' + field_name).find('input, select, textarea').attr('id')); |
||||
}); |
||||
if (dependencies.length) { |
||||
input.prepopulate(dependencies, input.attr('maxlength')); |
||||
} |
||||
}); |
||||
}; |
||||
|
||||
$rows.formset({ |
||||
prefix: options.prefix, |
||||
addText: options.addText, |
||||
formCssClass: "dynamic-" + options.prefix, |
||||
deleteCssClass: "inline-deletelink", |
||||
deleteText: options.deleteText, |
||||
emptyCssClass: "empty-form", |
||||
removed: alternatingRows, |
||||
added: function(row) { |
||||
initPrepopulatedFields(row); |
||||
reinitDateTimeShortCuts(); |
||||
updateSelectFilter(); |
||||
alternatingRows(row); |
||||
} |
||||
}); |
||||
|
||||
return $rows; |
||||
}; |
||||
|
||||
// Stacked inlines ---------------------------------------------------------
|
||||
$.fn.stackedFormset = function(options) { |
||||
var $rows = $(this); |
||||
var updateInlineLabel = function(row) { |
||||
$($rows.selector).find(".inline_label").each(function(i) { |
||||
var count = i + 1; |
||||
$(this).html($(this).html().replace(/(#\d+)/g, "#" + count)); |
||||
}); |
||||
}; |
||||
|
||||
var reinitDateTimeShortCuts = function() { |
||||
// Reinitialize the calendar and clock widgets by force, yuck.
|
||||
if (typeof DateTimeShortcuts !== "undefined") { |
||||
$(".datetimeshortcuts").remove(); |
||||
DateTimeShortcuts.init(); |
||||
} |
||||
}; |
||||
|
||||
var updateSelectFilter = function() { |
||||
// If any SelectFilter widgets were added, instantiate a new instance.
|
||||
if (typeof SelectFilter !== "undefined") { |
||||
$(".selectfilter").each(function(index, value) { |
||||
var namearr = value.name.split('-'); |
||||
SelectFilter.init(value.id, namearr[namearr.length - 1], false); |
||||
}); |
||||
$(".selectfilterstacked").each(function(index, value) { |
||||
var namearr = value.name.split('-'); |
||||
SelectFilter.init(value.id, namearr[namearr.length - 1], true); |
||||
}); |
||||
} |
||||
}; |
||||
|
||||
var initPrepopulatedFields = function(row) { |
||||
row.find('.prepopulated_field').each(function() { |
||||
var field = $(this), |
||||
input = field.find('input, select, textarea'), |
||||
dependency_list = input.data('dependency_list') || [], |
||||
dependencies = []; |
||||
$.each(dependency_list, function(i, field_name) { |
||||
dependencies.push('#' + row.find('.form-row .field-' + field_name).find('input, select, textarea').attr('id')); |
||||
}); |
||||
if (dependencies.length) { |
||||
input.prepopulate(dependencies, input.attr('maxlength')); |
||||
} |
||||
}); |
||||
}; |
||||
|
||||
$rows.formset({ |
||||
prefix: options.prefix, |
||||
addText: options.addText, |
||||
formCssClass: "dynamic-" + options.prefix, |
||||
deleteCssClass: "inline-deletelink", |
||||
deleteText: options.deleteText, |
||||
emptyCssClass: "empty-form", |
||||
removed: updateInlineLabel, |
||||
added: function(row) { |
||||
initPrepopulatedFields(row); |
||||
reinitDateTimeShortCuts(); |
||||
updateSelectFilter(); |
||||
updateInlineLabel(row); |
||||
} |
||||
}); |
||||
|
||||
return $rows; |
||||
}; |
||||
})(django.jQuery); |
||||
@ -0,0 +1,9 @@ |
||||
(function(b){b.fn.formset=function(d){var a=b.extend({},b.fn.formset.defaults,d),e=b(this);d=e.parent();var k=function(a,f,l){var c=new RegExp("("+f+"-(\\d+|__prefix__))");f=f+"-"+l;b(a).prop("for")&&b(a).prop("for",b(a).prop("for").replace(c,f));a.id&&(a.id=a.id.replace(c,f));a.name&&(a.name=a.name.replace(c,f))},h=b("#id_"+a.prefix+"-TOTAL_FORMS").prop("autocomplete","off"),l=parseInt(h.val(),10),f=b("#id_"+a.prefix+"-MAX_NUM_FORMS").prop("autocomplete","off"),c=""===f.val()||0<f.val()-h.val(); |
||||
e.each(function(f){b(this).not("."+a.emptyCssClass).addClass(a.formCssClass)});if(e.length&&c){var m;"TR"===e.prop("tagName")?(e=this.eq(-1).children().length,d.append('<tr class="'+a.addCssClass+'"><td colspan="'+e+'"><a href="javascript:void(0)">'+a.addText+"</a></tr>"),m=d.find("tr:last a")):(e.filter(":last").after('<div class="'+a.addCssClass+'"><a href="javascript:void(0)">'+a.addText+"</a></div>"),m=e.filter(":last").next().find("a"));m.click(function(c){c.preventDefault();c=b("#"+a.prefix+ |
||||
"-empty");var g=c.clone(!0);g.removeClass(a.emptyCssClass).addClass(a.formCssClass).attr("id",a.prefix+"-"+l);g.is("tr")?g.children(":last").append('<div><a class="'+a.deleteCssClass+'" href="javascript:void(0)">'+a.deleteText+"</a></div>"):g.is("ul")||g.is("ol")?g.append('<li><a class="'+a.deleteCssClass+'" href="javascript:void(0)">'+a.deleteText+"</a></li>"):g.children(":first").append('<span><a class="'+a.deleteCssClass+'" href="javascript:void(0)">'+a.deleteText+"</a></span>");g.find("*").each(function(){k(this, |
||||
a.prefix,h.val())});g.insertBefore(b(c));b(h).val(parseInt(h.val(),10)+1);l+=1;""!==f.val()&&0>=f.val()-h.val()&&m.parent().hide();g.find("a."+a.deleteCssClass).click(function(c){c.preventDefault();g.remove();--l;a.removed&&a.removed(g);b(document).trigger("formset:removed",[g,a.prefix]);c=b("."+a.formCssClass);b("#id_"+a.prefix+"-TOTAL_FORMS").val(c.length);(""===f.val()||0<f.val()-c.length)&&m.parent().show();var d,e,h=function(){k(this,a.prefix,d)};d=0;for(e=c.length;d<e;d++)k(b(c).get(d),a.prefix, |
||||
d),b(c.get(d)).find("*").each(h)});a.added&&a.added(g);b(document).trigger("formset:added",[g,a.prefix])})}return this};b.fn.formset.defaults={prefix:"form",addText:"add another",deleteText:"remove",addCssClass:"add-row",deleteCssClass:"delete-row",emptyCssClass:"empty-row",formCssClass:"dynamic-form",added:null,removed:null};b.fn.tabularFormset=function(d){var a=b(this),e=function(l){b(a.selector).not(".add-row").removeClass("row1 row2").filter(":even").addClass("row1").end().filter(":odd").addClass("row2")}, |
||||
k=function(){"undefined"!==typeof SelectFilter&&(b(".selectfilter").each(function(a,b){var c=b.name.split("-");SelectFilter.init(b.id,c[c.length-1],!1)}),b(".selectfilterstacked").each(function(a,b){var c=b.name.split("-");SelectFilter.init(b.id,c[c.length-1],!0)}))},h=function(a){a.find(".prepopulated_field").each(function(){var f=b(this).find("input, select, textarea"),c=f.data("dependency_list")||[],d=[];b.each(c,function(b,c){d.push("#"+a.find(".field-"+c).find("input, select, textarea").attr("id"))}); |
||||
d.length&&f.prepopulate(d,f.attr("maxlength"))})};a.formset({prefix:d.prefix,addText:d.addText,formCssClass:"dynamic-"+d.prefix,deleteCssClass:"inline-deletelink",deleteText:d.deleteText,emptyCssClass:"empty-form",removed:e,added:function(a){h(a);"undefined"!==typeof DateTimeShortcuts&&(b(".datetimeshortcuts").remove(),DateTimeShortcuts.init());k();e(a)}});return a};b.fn.stackedFormset=function(d){var a=b(this),e=function(d){b(a.selector).find(".inline_label").each(function(a){a+=1;b(this).html(b(this).html().replace(/(#\d+)/g, |
||||
"#"+a))})},k=function(){"undefined"!==typeof SelectFilter&&(b(".selectfilter").each(function(a,b){var c=b.name.split("-");SelectFilter.init(b.id,c[c.length-1],!1)}),b(".selectfilterstacked").each(function(a,b){var c=b.name.split("-");SelectFilter.init(b.id,c[c.length-1],!0)}))},h=function(a){a.find(".prepopulated_field").each(function(){var d=b(this).find("input, select, textarea"),c=d.data("dependency_list")||[],e=[];b.each(c,function(b,c){e.push("#"+a.find(".form-row .field-"+c).find("input, select, textarea").attr("id"))}); |
||||
e.length&&d.prepopulate(e,d.attr("maxlength"))})};a.formset({prefix:d.prefix,addText:d.addText,formCssClass:"dynamic-"+d.prefix,deleteCssClass:"inline-deletelink",deleteText:d.deleteText,emptyCssClass:"empty-form",removed:e,added:function(a){h(a);"undefined"!==typeof DateTimeShortcuts&&(b(".datetimeshortcuts").remove(),DateTimeShortcuts.init());k();e(a)}});return a}})(django.jQuery); |
||||
@ -0,0 +1,8 @@ |
||||
/*global django:true, jQuery:false*/ |
||||
/* Puts the included jQuery into our own namespace using noConflict and passing |
||||
* it 'true'. This ensures that the included jQuery doesn't pollute the global |
||||
* namespace (i.e. this preserves pre-existing values for both window.$ and |
||||
* window.jQuery). |
||||
*/ |
||||
var django = django || {}; |
||||
django.jQuery = jQuery.noConflict(true); |
||||
@ -0,0 +1,42 @@ |
||||
/*global URLify*/ |
||||
(function($) { |
||||
'use strict'; |
||||
$.fn.prepopulate = function(dependencies, maxLength, allowUnicode) { |
||||
/* |
||||
Depends on urlify.js |
||||
Populates a selected field with the values of the dependent fields, |
||||
URLifies and shortens the string. |
||||
dependencies - array of dependent fields ids |
||||
maxLength - maximum length of the URLify'd string |
||||
allowUnicode - Unicode support of the URLify'd string |
||||
*/ |
||||
return this.each(function() { |
||||
var prepopulatedField = $(this); |
||||
|
||||
var populate = function() { |
||||
// Bail if the field's value has been changed by the user
|
||||
if (prepopulatedField.data('_changed')) { |
||||
return; |
||||
} |
||||
|
||||
var values = []; |
||||
$.each(dependencies, function(i, field) { |
||||
field = $(field); |
||||
if (field.val().length > 0) { |
||||
values.push(field.val()); |
||||
} |
||||
}); |
||||
prepopulatedField.val(URLify(values.join(' '), maxLength, allowUnicode)); |
||||
}; |
||||
|
||||
prepopulatedField.data('_changed', false); |
||||
prepopulatedField.change(function() { |
||||
prepopulatedField.data('_changed', true); |
||||
}); |
||||
|
||||
if (!prepopulatedField.val()) { |
||||
$(dependencies.join(',')).keyup(populate).change(populate).focus(populate); |
||||
} |
||||
}); |
||||
}; |
||||
})(django.jQuery); |
||||
@ -0,0 +1 @@ |
||||
(function(c){c.fn.prepopulate=function(e,f,g){return this.each(function(){var a=c(this),b=function(){if(!a.data("_changed")){var b=[];c.each(e,function(a,d){d=c(d);0<d.val().length&&b.push(d.val())});a.val(URLify(b.join(" "),f,g))}};a.data("_changed",!1);a.change(function(){a.data("_changed",!0)});a.val()||c(e.join(",")).keyup(b).change(b).focus(b)})}})(django.jQuery); |
||||
@ -0,0 +1,106 @@ |
||||
(function() { |
||||
'use strict'; |
||||
var timeParsePatterns = [ |
||||
// 9
|
||||
{ |
||||
re: /^\d{1,2}$/i, |
||||
handler: function(bits) { |
||||
if (bits[0].length === 1) { |
||||
return '0' + bits[0] + ':00'; |
||||
} else { |
||||
return bits[0] + ':00'; |
||||
} |
||||
} |
||||
}, |
||||
// 13:00
|
||||
{ |
||||
re: /^\d{2}[:.]\d{2}$/i, |
||||
handler: function(bits) { |
||||
return bits[0].replace('.', ':'); |
||||
} |
||||
}, |
||||
// 9:00
|
||||
{ |
||||
re: /^\d[:.]\d{2}$/i, |
||||
handler: function(bits) { |
||||
return '0' + bits[0].replace('.', ':'); |
||||
} |
||||
}, |
||||
// 3 am / 3 a.m. / 3am
|
||||
{ |
||||
re: /^(\d+)\s*([ap])(?:.?m.?)?$/i, |
||||
handler: function(bits) { |
||||
var hour = parseInt(bits[1]); |
||||
if (hour === 12) { |
||||
hour = 0; |
||||
} |
||||
if (bits[2].toLowerCase() === 'p') { |
||||
if (hour === 12) { |
||||
hour = 0; |
||||
} |
||||
return (hour + 12) + ':00'; |
||||
} else { |
||||
if (hour < 10) { |
||||
return '0' + hour + ':00'; |
||||
} else { |
||||
return hour + ':00'; |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
// 3.30 am / 3:15 a.m. / 3.00am
|
||||
{ |
||||
re: /^(\d+)[.:](\d{2})\s*([ap]).?m.?$/i, |
||||
handler: function(bits) { |
||||
var hour = parseInt(bits[1]); |
||||
var mins = parseInt(bits[2]); |
||||
if (mins < 10) { |
||||
mins = '0' + mins; |
||||
} |
||||
if (hour === 12) { |
||||
hour = 0; |
||||
} |
||||
if (bits[3].toLowerCase() === 'p') { |
||||
if (hour === 12) { |
||||
hour = 0; |
||||
} |
||||
return (hour + 12) + ':' + mins; |
||||
} else { |
||||
if (hour < 10) { |
||||
return '0' + hour + ':' + mins; |
||||
} else { |
||||
return hour + ':' + mins; |
||||
} |
||||
} |
||||
} |
||||
}, |
||||
// noon
|
||||
{ |
||||
re: /^no/i, |
||||
handler: function(bits) { |
||||
return '12:00'; |
||||
} |
||||
}, |
||||
// midnight
|
||||
{ |
||||
re: /^mid/i, |
||||
handler: function(bits) { |
||||
return '00:00'; |
||||
} |
||||
} |
||||
]; |
||||
|
||||
function parseTimeString(s) { |
||||
for (var i = 0; i < timeParsePatterns.length; i++) { |
||||
var re = timeParsePatterns[i].re; |
||||
var handler = timeParsePatterns[i].handler; |
||||
var bits = re.exec(s); |
||||
if (bits) { |
||||
return handler(bits); |
||||
} |
||||
} |
||||
return s; |
||||
} |
||||
|
||||
window.parseTimeString = parseTimeString; |
||||
})(); |
||||
@ -0,0 +1,171 @@ |
||||
/*global XRegExp*/ |
||||
(function() { |
||||
'use strict'; |
||||
|
||||
var LATIN_MAP = { |
||||
'À': 'A', 'Á': 'A', 'Â': 'A', 'Ã': 'A', 'Ä': 'A', 'Å': 'A', 'Æ': 'AE', |
||||
'Ç': 'C', 'È': 'E', 'É': 'E', 'Ê': 'E', 'Ë': 'E', 'Ì': 'I', 'Í': 'I', |
||||
'Î': 'I', 'Ï': 'I', 'Ð': 'D', 'Ñ': 'N', 'Ò': 'O', 'Ó': 'O', 'Ô': 'O', |
||||
'Õ': 'O', 'Ö': 'O', 'Ő': 'O', 'Ø': 'O', 'Ù': 'U', 'Ú': 'U', 'Û': 'U', |
||||
'Ü': 'U', 'Ű': 'U', 'Ý': 'Y', 'Þ': 'TH', 'Ÿ': 'Y', 'ß': 'ss', 'à': 'a', |
||||
'á': 'a', 'â': 'a', 'ã': 'a', 'ä': 'a', 'å': 'a', 'æ': 'ae', 'ç': 'c', |
||||
'è': 'e', 'é': 'e', 'ê': 'e', 'ë': 'e', 'ì': 'i', 'í': 'i', 'î': 'i', |
||||
'ï': 'i', 'ð': 'd', 'ñ': 'n', 'ò': 'o', 'ó': 'o', 'ô': 'o', 'õ': 'o', |
||||
'ö': 'o', 'ő': 'o', 'ø': 'o', 'ù': 'u', 'ú': 'u', 'û': 'u', 'ü': 'u', |
||||
'ű': 'u', 'ý': 'y', 'þ': 'th', 'ÿ': 'y' |
||||
}; |
||||
var LATIN_SYMBOLS_MAP = { |
||||
'©': '(c)' |
||||
}; |
||||
var GREEK_MAP = { |
||||
'α': 'a', 'β': 'b', 'γ': 'g', 'δ': 'd', 'ε': 'e', 'ζ': 'z', 'η': 'h', |
||||
'θ': '8', 'ι': 'i', 'κ': 'k', 'λ': 'l', 'μ': 'm', 'ν': 'n', 'ξ': '3', |
||||
'ο': 'o', 'π': 'p', 'ρ': 'r', 'σ': 's', 'τ': 't', 'υ': 'y', 'φ': 'f', |
||||
'χ': 'x', 'ψ': 'ps', 'ω': 'w', 'ά': 'a', 'έ': 'e', 'ί': 'i', 'ό': 'o', |
||||
'ύ': 'y', 'ή': 'h', 'ώ': 'w', 'ς': 's', 'ϊ': 'i', 'ΰ': 'y', 'ϋ': 'y', |
||||
'ΐ': 'i', 'Α': 'A', 'Β': 'B', 'Γ': 'G', 'Δ': 'D', 'Ε': 'E', 'Ζ': 'Z', |
||||
'Η': 'H', 'Θ': '8', 'Ι': 'I', 'Κ': 'K', 'Λ': 'L', 'Μ': 'M', 'Ν': 'N', |
||||
'Ξ': '3', 'Ο': 'O', 'Π': 'P', 'Ρ': 'R', 'Σ': 'S', 'Τ': 'T', 'Υ': 'Y', |
||||
'Φ': 'F', 'Χ': 'X', 'Ψ': 'PS', 'Ω': 'W', 'Ά': 'A', 'Έ': 'E', 'Ί': 'I', |
||||
'Ό': 'O', 'Ύ': 'Y', 'Ή': 'H', 'Ώ': 'W', 'Ϊ': 'I', 'Ϋ': 'Y' |
||||
}; |
||||
var TURKISH_MAP = { |
||||
'ş': 's', 'Ş': 'S', 'ı': 'i', 'İ': 'I', 'ç': 'c', 'Ç': 'C', 'ü': 'u', |
||||
'Ü': 'U', 'ö': 'o', 'Ö': 'O', 'ğ': 'g', 'Ğ': 'G' |
||||
}; |
||||
var ROMANIAN_MAP = { |
||||
'ă': 'a', 'î': 'i', 'ș': 's', 'ț': 't', 'â': 'a', |
||||
'Ă': 'A', 'Î': 'I', 'Ș': 'S', 'Ț': 'T', 'Â': 'A' |
||||
}; |
||||
var RUSSIAN_MAP = { |
||||
'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'yo', |
||||
'ж': 'zh', 'з': 'z', 'и': 'i', 'й': 'j', 'к': 'k', 'л': 'l', 'м': 'm', |
||||
'н': 'n', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't', 'у': 'u', |
||||
'ф': 'f', 'х': 'h', 'ц': 'c', 'ч': 'ch', 'ш': 'sh', 'щ': 'sh', 'ъ': '', |
||||
'ы': 'y', 'ь': '', 'э': 'e', 'ю': 'yu', 'я': 'ya', |
||||
'А': 'A', 'Б': 'B', 'В': 'V', 'Г': 'G', 'Д': 'D', 'Е': 'E', 'Ё': 'Yo', |
||||
'Ж': 'Zh', 'З': 'Z', 'И': 'I', 'Й': 'J', 'К': 'K', 'Л': 'L', 'М': 'M', |
||||
'Н': 'N', 'О': 'O', 'П': 'P', 'Р': 'R', 'С': 'S', 'Т': 'T', 'У': 'U', |
||||
'Ф': 'F', 'Х': 'H', 'Ц': 'C', 'Ч': 'Ch', 'Ш': 'Sh', 'Щ': 'Sh', 'Ъ': '', |
||||
'Ы': 'Y', 'Ь': '', 'Э': 'E', 'Ю': 'Yu', 'Я': 'Ya' |
||||
}; |
||||
var UKRAINIAN_MAP = { |
||||
'Є': 'Ye', 'І': 'I', 'Ї': 'Yi', 'Ґ': 'G', 'є': 'ye', 'і': 'i', |
||||
'ї': 'yi', 'ґ': 'g' |
||||
}; |
||||
var CZECH_MAP = { |
||||
'č': 'c', 'ď': 'd', 'ě': 'e', 'ň': 'n', 'ř': 'r', 'š': 's', 'ť': 't', |
||||
'ů': 'u', 'ž': 'z', 'Č': 'C', 'Ď': 'D', 'Ě': 'E', 'Ň': 'N', 'Ř': 'R', |
||||
'Š': 'S', 'Ť': 'T', 'Ů': 'U', 'Ž': 'Z' |
||||
}; |
||||
var POLISH_MAP = { |
||||
'ą': 'a', 'ć': 'c', 'ę': 'e', 'ł': 'l', 'ń': 'n', 'ó': 'o', 'ś': 's', |
||||
'ź': 'z', 'ż': 'z', |
||||
'Ą': 'A', 'Ć': 'C', 'Ę': 'E', 'Ł': 'L', 'Ń': 'N', 'Ó': 'O', 'Ś': 'S', |
||||
'Ź': 'Z', 'Ż': 'Z' |
||||
}; |
||||
var LATVIAN_MAP = { |
||||
'ā': 'a', 'č': 'c', 'ē': 'e', 'ģ': 'g', 'ī': 'i', 'ķ': 'k', 'ļ': 'l', |
||||
'ņ': 'n', 'š': 's', 'ū': 'u', 'ž': 'z', |
||||
'Ā': 'A', 'Č': 'C', 'Ē': 'E', 'Ģ': 'G', 'Ī': 'I', 'Ķ': 'K', 'Ļ': 'L', |
||||
'Ņ': 'N', 'Š': 'S', 'Ū': 'U', 'Ž': 'Z' |
||||
}; |
||||
var ARABIC_MAP = { |
||||
'أ': 'a', 'ب': 'b', 'ت': 't', 'ث': 'th', 'ج': 'g', 'ح': 'h', 'خ': 'kh', 'د': 'd', |
||||
'ذ': 'th', 'ر': 'r', 'ز': 'z', 'س': 's', 'ش': 'sh', 'ص': 's', 'ض': 'd', 'ط': 't', |
||||
'ظ': 'th', 'ع': 'aa', 'غ': 'gh', 'ف': 'f', 'ق': 'k', 'ك': 'k', 'ل': 'l', 'م': 'm', |
||||
'ن': 'n', 'ه': 'h', 'و': 'o', 'ي': 'y' |
||||
}; |
||||
var LITHUANIAN_MAP = { |
||||
'ą': 'a', 'č': 'c', 'ę': 'e', 'ė': 'e', 'į': 'i', 'š': 's', 'ų': 'u', |
||||
'ū': 'u', 'ž': 'z', |
||||
'Ą': 'A', 'Č': 'C', 'Ę': 'E', 'Ė': 'E', 'Į': 'I', 'Š': 'S', 'Ų': 'U', |
||||
'Ū': 'U', 'Ž': 'Z' |
||||
}; |
||||
var SERBIAN_MAP = { |
||||
'ђ': 'dj', 'ј': 'j', 'љ': 'lj', 'њ': 'nj', 'ћ': 'c', 'џ': 'dz', |
||||
'đ': 'dj', 'Ђ': 'Dj', 'Ј': 'j', 'Љ': 'Lj', 'Њ': 'Nj', 'Ћ': 'C', |
||||
'Џ': 'Dz', 'Đ': 'Dj' |
||||
}; |
||||
var AZERBAIJANI_MAP = { |
||||
'ç': 'c', 'ə': 'e', 'ğ': 'g', 'ı': 'i', 'ö': 'o', 'ş': 's', 'ü': 'u', |
||||
'Ç': 'C', 'Ə': 'E', 'Ğ': 'G', 'İ': 'I', 'Ö': 'O', 'Ş': 'S', 'Ü': 'U' |
||||
}; |
||||
|
||||
var ALL_DOWNCODE_MAPS = [ |
||||
LATIN_MAP, |
||||
LATIN_SYMBOLS_MAP, |
||||
GREEK_MAP, |
||||
TURKISH_MAP, |
||||
ROMANIAN_MAP, |
||||
RUSSIAN_MAP, |
||||
UKRAINIAN_MAP, |
||||
CZECH_MAP, |
||||
POLISH_MAP, |
||||
LATVIAN_MAP, |
||||
ARABIC_MAP, |
||||
LITHUANIAN_MAP, |
||||
SERBIAN_MAP, |
||||
AZERBAIJANI_MAP |
||||
]; |
||||
|
||||
var Downcoder = { |
||||
'Initialize': function() { |
||||
if (Downcoder.map) { // already made
|
||||
return; |
||||
} |
||||
Downcoder.map = {}; |
||||
Downcoder.chars = []; |
||||
for (var i = 0; i < ALL_DOWNCODE_MAPS.length; i++) { |
||||
var lookup = ALL_DOWNCODE_MAPS[i]; |
||||
for (var c in lookup) { |
||||
if (lookup.hasOwnProperty(c)) { |
||||
Downcoder.map[c] = lookup[c]; |
||||
} |
||||
} |
||||
} |
||||
for (var k in Downcoder.map) { |
||||
if (Downcoder.map.hasOwnProperty(k)) { |
||||
Downcoder.chars.push(k); |
||||
} |
||||
} |
||||
Downcoder.regex = new RegExp(Downcoder.chars.join('|'), 'g'); |
||||
} |
||||
}; |
||||
|
||||
function downcode(slug) { |
||||
Downcoder.Initialize(); |
||||
return slug.replace(Downcoder.regex, function(m) { |
||||
return Downcoder.map[m]; |
||||
}); |
||||
} |
||||
|
||||
|
||||
function URLify(s, num_chars, allowUnicode) { |
||||
// changes, e.g., "Petty theft" to "petty-theft"
|
||||
// remove all these words from the string before urlifying
|
||||
if (!allowUnicode) { |
||||
s = downcode(s); |
||||
} |
||||
var removelist = [ |
||||
"a", "an", "as", "at", "before", "but", "by", "for", "from", "is", |
||||
"in", "into", "like", "of", "off", "on", "onto", "per", "since", |
||||
"than", "the", "this", "that", "to", "up", "via", "with" |
||||
]; |
||||
var r = new RegExp('\\b(' + removelist.join('|') + ')\\b', 'gi'); |
||||
s = s.replace(r, ''); |
||||
// if downcode doesn't hit, the char will be stripped here
|
||||
if (allowUnicode) { |
||||
// Keep Unicode letters including both lowercase and uppercase
|
||||
// characters, whitespace, and dash; remove other characters.
|
||||
s = XRegExp.replace(s, XRegExp('[^-_\\p{L}\\p{N}\\s]', 'g'), ''); |
||||
} else { |
||||
s = s.replace(/[^-\w\s]/g, ''); // remove unneeded chars
|
||||
} |
||||
s = s.replace(/^\s+|\s+$/g, ''); // trim leading/trailing spaces
|
||||
s = s.replace(/[-\s]+/g, '-'); // convert spaces to hyphens
|
||||
s = s.toLowerCase(); // convert to lowercase
|
||||
return s.substring(0, num_chars); // trim to first num_chars chars
|
||||
} |
||||
window.URLify = URLify; |
||||
})(); |
||||
@ -0,0 +1,26 @@ |
||||
Copyright jQuery Foundation and other contributors, https://jquery.org/ |
||||
|
||||
This software consists of voluntary contributions made by many |
||||
individuals. For exact contribution history, see the revision history |
||||
available at https://github.com/jquery/jquery |
||||
|
||||
==== |
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining |
||||
a copy of this software and associated documentation files (the |
||||
"Software"), to deal in the Software without restriction, including |
||||
without limitation the rights to use, copy, modify, merge, publish, |
||||
distribute, sublicense, and/or sell copies of the Software, and to |
||||
permit persons to whom the Software is furnished to do so, subject to |
||||
the following conditions: |
||||
|
||||
The above copyright notice and this permission notice shall be |
||||
included in all copies or substantial portions of the Software. |
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND |
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE |
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION |
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION |
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
||||
@ -0,0 +1,21 @@ |
||||
The MIT License |
||||
|
||||
Copyright (c) 2007-2012 Steven Levithan <http://xregexp.com/> |
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy |
||||
of this software and associated documentation files (the "Software"), to deal |
||||
in the Software without restriction, including without limitation the rights |
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |
||||
copies of the Software, and to permit persons to whom the Software is |
||||
furnished to do so, subject to the following conditions: |
||||
|
||||
The above copyright notice and this permission notice shall be included in |
||||
all copies or substantial portions of the Software. |
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN |
||||
THE SOFTWARE. |
||||
@ -0,0 +1,360 @@ |
||||
#monkey_404 { |
||||
width: 800px; |
||||
height: 480px; |
||||
position: absolute; |
||||
left: 50%; |
||||
top: 50%; |
||||
margin-left: -400px; |
||||
margin-top: -240px; |
||||
} |
||||
#monkey_404 .st0 { |
||||
fill: #E8EBED; |
||||
} |
||||
#monkey_404 .st1 { |
||||
fill: #FFFFFF; |
||||
} |
||||
#monkey_404 .st2 { |
||||
fill: none; |
||||
stroke: #89949B; |
||||
stroke-width: 3; |
||||
stroke-linecap: round; |
||||
stroke-linejoin: round; |
||||
stroke-miterlimit: 10; |
||||
} |
||||
#monkey_404 .st3 { |
||||
fill: #E8EBED; |
||||
stroke: #89949B; |
||||
stroke-width: 3; |
||||
stroke-linecap: round; |
||||
stroke-linejoin: round; |
||||
stroke-miterlimit: 10; |
||||
} |
||||
#monkey_404 .st4 { |
||||
fill: #FFFFFF; |
||||
stroke: #89949B; |
||||
stroke-width: 3; |
||||
stroke-linecap: round; |
||||
stroke-linejoin: round; |
||||
stroke-miterlimit: 10; |
||||
} |
||||
#monkey_404 .st5 { |
||||
fill: none; |
||||
stroke: #89949B; |
||||
stroke-width: 3; |
||||
stroke-linecap: round; |
||||
stroke-linejoin: round; |
||||
stroke-miterlimit: 10; |
||||
} |
||||
#monkey_404 .st6 { |
||||
fill: none; |
||||
stroke: #89949B; |
||||
stroke-width: 4; |
||||
stroke-linecap: round; |
||||
stroke-linejoin: round; |
||||
stroke-miterlimit: 10; |
||||
} |
||||
#monkey_404 .st7 { |
||||
fill: #FFFFFF; |
||||
stroke: #89949B; |
||||
stroke-width: 2; |
||||
stroke-linecap: round; |
||||
stroke-linejoin: round; |
||||
stroke-miterlimit: 10; |
||||
} |
||||
#monkey_404 .st8 { |
||||
fill: #89949B; |
||||
} |
||||
#monkey_404 .st9 { |
||||
fill: #89949B; |
||||
} |
||||
#monkey_404 .st10 { |
||||
fill: none; |
||||
stroke: #89949B; |
||||
stroke-width: 2; |
||||
stroke-linecap: round; |
||||
stroke-linejoin: round; |
||||
stroke-miterlimit: 10; |
||||
} |
||||
#monkey_404 .st11 { |
||||
fill: #FFFFFF; |
||||
} |
||||
#monkey_404 .st12 { |
||||
fill: #FFFFFF; |
||||
stroke: #8894A0; |
||||
stroke-width: 3; |
||||
stroke-linecap: round; |
||||
stroke-linejoin: round; |
||||
stroke-miterlimit: 10; |
||||
} |
||||
#monkey_404 .st13 { |
||||
fill: #FFFFFF; |
||||
stroke: #89949B; |
||||
stroke-width: 3; |
||||
stroke-linecap: round; |
||||
stroke-linejoin: round; |
||||
stroke-miterlimit: 10; |
||||
} |
||||
#monkey_404 .st14 { |
||||
fill: none; |
||||
stroke: #89949B; |
||||
stroke-linecap: round; |
||||
stroke-linejoin: round; |
||||
stroke-miterlimit: 10; |
||||
} |
||||
#monkey_404 .st15 { |
||||
fill: none; |
||||
stroke: #89949B; |
||||
stroke-linecap: round; |
||||
stroke-linejoin: round; |
||||
stroke-miterlimit: 10; |
||||
} |
||||
#monkey_404 #arm { |
||||
-webkit-transform-origin: 155px 292px; |
||||
-moz-transform-origin: 155px 292px; |
||||
-o-transform-origin: 155px 292px; |
||||
-ms-transform-origin: 155px 292px; |
||||
transform-origin: 155px 292px; |
||||
-webkit-transform: rotateZ(-2deg); |
||||
-moz-transform: rotateZ(-2deg); |
||||
-o-transform: rotateZ(-2deg); |
||||
-ms-transform: rotateZ(-2deg); |
||||
transform: rotateZ(-2deg); |
||||
} |
||||
#monkey_404 #monkey { |
||||
-webkit-animation: monkey-breathe 3s infinite ease-in-out; |
||||
-moz-animation: monkey-breathe 3s infinite ease-in-out; |
||||
-o-animation: monkey-breathe 3s infinite ease-in-out; |
||||
animation: monkey-breathe 3s infinite ease-in-out; |
||||
} |
||||
#monkey_404 #zelda, |
||||
#monkey_404 #tetris, |
||||
#monkey_404 #moon, |
||||
#monkey_404 #star_a, |
||||
#monkey_404 #star_b, |
||||
#monkey_404 #star_c, |
||||
#monkey_404 #star_d, |
||||
#monkey_404 #number_4, |
||||
#monkey_404 #number_4_2, |
||||
#monkey_404 #number_0, |
||||
#monkey_404 #sword { |
||||
-webkit-animation: levitate 3s infinite ease-in-out; |
||||
-moz-animation: levitate 3s infinite ease-in-out; |
||||
-o-animation: levitate 3s infinite ease-in-out; |
||||
animation: levitate 3s infinite ease-in-out; |
||||
} |
||||
#monkey_404 #zelda { |
||||
-webkit-animation-delay: 0s; |
||||
-moz-animation-delay: 0s; |
||||
-o-animation-delay: 0s; |
||||
animation-delay: 0s; |
||||
-webkit-animation-duration: 3s; |
||||
-moz-animation-duration: 3s; |
||||
-o-animation-duration: 3s; |
||||
animation-duration: 3s; |
||||
} |
||||
#monkey_404 #tetris { |
||||
-webkit-animation-delay: 1s; |
||||
-moz-animation-delay: 1s; |
||||
-o-animation-delay: 1s; |
||||
animation-delay: 1s; |
||||
-webkit-animation-duration: 3s; |
||||
-moz-animation-duration: 3s; |
||||
-o-animation-duration: 3s; |
||||
animation-duration: 3s; |
||||
} |
||||
#monkey_404 #moon { |
||||
-webkit-animation-delay: 0.5s; |
||||
-moz-animation-delay: 0.5s; |
||||
-o-animation-delay: 0.5s; |
||||
animation-delay: 0.5s; |
||||
-webkit-animation-duration: 3s; |
||||
-moz-animation-duration: 3s; |
||||
-o-animation-duration: 3s; |
||||
animation-duration: 3s; |
||||
} |
||||
#monkey_404 #star_a { |
||||
-webkit-animation-delay: 0s; |
||||
-moz-animation-delay: 0s; |
||||
-o-animation-delay: 0s; |
||||
animation-delay: 0s; |
||||
-webkit-animation-duration: 3s; |
||||
-moz-animation-duration: 3s; |
||||
-o-animation-duration: 3s; |
||||
animation-duration: 3s; |
||||
} |
||||
#monkey_404 #star_b { |
||||
-webkit-animation-delay: 0.5s; |
||||
-moz-animation-delay: 0.5s; |
||||
-o-animation-delay: 0.5s; |
||||
animation-delay: 0.5s; |
||||
-webkit-animation-duration: 3s; |
||||
-moz-animation-duration: 3s; |
||||
-o-animation-duration: 3s; |
||||
animation-duration: 3s; |
||||
} |
||||
#monkey_404 #star_c { |
||||
-webkit-animation-delay: 1s; |
||||
-moz-animation-delay: 1s; |
||||
-o-animation-delay: 1s; |
||||
animation-delay: 1s; |
||||
-webkit-animation-duration: 3s; |
||||
-moz-animation-duration: 3s; |
||||
-o-animation-duration: 3s; |
||||
animation-duration: 3s; |
||||
} |
||||
#monkey_404 #star_d { |
||||
-webkit-animation-delay: 1.5s; |
||||
-moz-animation-delay: 1.5s; |
||||
-o-animation-delay: 1.5s; |
||||
animation-delay: 1.5s; |
||||
-webkit-animation-duration: 3s; |
||||
-moz-animation-duration: 3s; |
||||
-o-animation-duration: 3s; |
||||
animation-duration: 3s; |
||||
} |
||||
#monkey_404 #number_4 { |
||||
-webkit-animation-delay: 0s; |
||||
-moz-animation-delay: 0s; |
||||
-o-animation-delay: 0s; |
||||
animation-delay: 0s; |
||||
-webkit-animation-duration: 3s; |
||||
-moz-animation-duration: 3s; |
||||
-o-animation-duration: 3s; |
||||
animation-duration: 3s; |
||||
} |
||||
#monkey_404 #number_4_2 { |
||||
-webkit-animation-delay: 1s; |
||||
-moz-animation-delay: 1s; |
||||
-o-animation-delay: 1s; |
||||
animation-delay: 1s; |
||||
-webkit-animation-duration: 3s; |
||||
-moz-animation-duration: 3s; |
||||
-o-animation-duration: 3s; |
||||
animation-duration: 3s; |
||||
} |
||||
#monkey_404 #number_0 { |
||||
-webkit-animation-delay: 0.5s; |
||||
-moz-animation-delay: 0.5s; |
||||
-o-animation-delay: 0.5s; |
||||
animation-delay: 0.5s; |
||||
-webkit-animation-duration: 3s; |
||||
-moz-animation-duration: 3s; |
||||
-o-animation-duration: 3s; |
||||
animation-duration: 3s; |
||||
} |
||||
#monkey_404 #sword { |
||||
-webkit-animation-delay: 1.5s; |
||||
-moz-animation-delay: 1.5s; |
||||
-o-animation-delay: 1.5s; |
||||
animation-delay: 1.5s; |
||||
-webkit-animation-duration: 3s; |
||||
-moz-animation-duration: 3s; |
||||
-o-animation-duration: 3s; |
||||
animation-duration: 3s; |
||||
} |
||||
#monkey_404 #eye_left { |
||||
-webkit-transform-origin: 191px 257px; |
||||
-moz-transform-origin: 191px 257px; |
||||
-o-transform-origin: 191px 257px; |
||||
-ms-transform-origin: 191px 257px; |
||||
transform-origin: 191px 257px; |
||||
-webkit-animation: blink-l 12s infinite ease-in-out; |
||||
-moz-animation: blink-l 12s infinite ease-in-out; |
||||
-o-animation: blink-l 12s infinite ease-in-out; |
||||
animation: blink-l 12s infinite ease-in-out; |
||||
} |
||||
#monkey_404 #eye_right { |
||||
-webkit-transform-origin: 205px 256px; |
||||
-moz-transform-origin: 205px 256px; |
||||
-o-transform-origin: 205px 256px; |
||||
-ms-transform-origin: 205px 256px; |
||||
transform-origin: 205px 256px; |
||||
-webkit-animation: blink-r 12s infinite ease-in-out; |
||||
-moz-animation: blink-r 12s infinite ease-in-out; |
||||
-o-animation: blink-r 12s infinite ease-in-out; |
||||
animation: blink-r 12s infinite ease-in-out; |
||||
} |
||||
lesshat-selector { |
||||
-lh-property: 0; } |
||||
@-webkit-keyframes arm-rotate{ 0% { -webkit-transform: rotateZ(-3deg);} 50% { -webkit-transform: rotateZ(6deg);}} |
||||
@-moz-keyframes arm-rotate{ 0% { -moz-transform: rotateZ(-3deg);} 50% { -moz-transform: rotateZ(6deg);}} |
||||
@-o-keyframes arm-rotate{ 0% { -o-transform: rotateZ(-3deg);} 50% { -o-transform: rotateZ(6deg);}} |
||||
@keyframes arm-rotate{ 0% {-webkit-transform: rotateZ(-3deg);-moz-transform: rotateZ(-3deg);-ms-transform: rotateZ(-3deg);transform: rotateZ(-3deg);} 50% {-webkit-transform: rotateZ(6deg);-moz-transform: rotateZ(6deg);-ms-transform: rotateZ(6deg);transform: rotateZ(6deg);}; |
||||
} |
||||
lesshat-selector { |
||||
-lh-property: 0; } |
||||
@-webkit-keyframes arm-rotate{ 0% { -webkit-transform: rotateZ(-3deg);} 50% { -webkit-transform: rotateZ(6deg);}} |
||||
@-moz-keyframes arm-rotate{ 0% { -moz-transform: rotateZ(-3deg);} 50% { -moz-transform: rotateZ(6deg);}} |
||||
@-o-keyframes arm-rotate{ 0% { -o-transform: rotateZ(-3deg);} 50% { -o-transform: rotateZ(6deg);}} |
||||
@keyframes arm-rotate{ 0% {-webkit-transform: rotateZ(-3deg);-moz-transform: rotateZ(-3deg);-ms-transform: rotateZ(-3deg);transform: rotateZ(-3deg);} 50% {-webkit-transform: rotateZ(6deg);-moz-transform: rotateZ(6deg);-ms-transform: rotateZ(6deg);transform: rotateZ(6deg);}; |
||||
} |
||||
lesshat-selector { |
||||
-lh-property: 0; } |
||||
@-webkit-keyframes monkey-breathe{ 0% { -webkit-transform: translate3d(0,0,0);} 50% { -webkit-transform: translate3d(0,1px,0);}} |
||||
@-moz-keyframes monkey-breathe{ 0% { -moz-transform: translate3d(0,0,0);} 50% { -moz-transform: translate3d(0,1px,0);}} |
||||
@-o-keyframes monkey-breathe{ 0% { -o-transform: translate3d(0,0,0);} 50% { -o-transform: translate3d(0,1px,0);}} |
||||
@keyframes monkey-breathe{ 0% {-webkit-transform: translate3d(0,0,0);-moz-transform: translate3d(0,0,0);-ms-transform: translate3d(0,0,0);transform: translate3d(0,0,0);} 50% {-webkit-transform: translate3d(0,1px,0);-moz-transform: translate3d(0,1px,0);-ms-transform: translate3d(0,1px,0);transform: translate3d(0,1px,0);}; |
||||
} |
||||
lesshat-selector { |
||||
-lh-property: 0; } |
||||
@-webkit-keyframes monkey-breathe{ 0% { -webkit-transform: translate3d(0,0,0);} 50% { -webkit-transform: translate3d(0,1px,0);}} |
||||
@-moz-keyframes monkey-breathe{ 0% { -moz-transform: translate3d(0,0,0);} 50% { -moz-transform: translate3d(0,1px,0);}} |
||||
@-o-keyframes monkey-breathe{ 0% { -o-transform: translate3d(0,0,0);} 50% { -o-transform: translate3d(0,1px,0);}} |
||||
@keyframes monkey-breathe{ 0% {-webkit-transform: translate3d(0,0,0);-moz-transform: translate3d(0,0,0);-ms-transform: translate3d(0,0,0);transform: translate3d(0,0,0);} 50% {-webkit-transform: translate3d(0,1px,0);-moz-transform: translate3d(0,1px,0);-ms-transform: translate3d(0,1px,0);transform: translate3d(0,1px,0);}; |
||||
} |
||||
lesshat-selector { |
||||
-lh-property: 0; } |
||||
@-webkit-keyframes levitate{ 0% { -webkit-transform: translate3d(0,0,0);} 50% { -webkit-transform: translate3d(0,5px,0);}} |
||||
@-moz-keyframes levitate{ 0% { -moz-transform: translate3d(0,0,0);} 50% { -moz-transform: translate3d(0,5px,0);}} |
||||
@-o-keyframes levitate{ 0% { -o-transform: translate3d(0,0,0);} 50% { -o-transform: translate3d(0,5px,0);}} |
||||
@keyframes levitate{ 0% {-webkit-transform: translate3d(0,0,0);-moz-transform: translate3d(0,0,0);-ms-transform: translate3d(0,0,0);transform: translate3d(0,0,0);} 50% {-webkit-transform: translate3d(0,5px,0);-moz-transform: translate3d(0,5px,0);-ms-transform: translate3d(0,5px,0);transform: translate3d(0,5px,0);}; |
||||
} |
||||
lesshat-selector { |
||||
-lh-property: 0; } |
||||
@-webkit-keyframes levitate{ 0% { -webkit-transform: translate3d(0,0,0);} 50% { -webkit-transform: translate3d(0,5px,0);}} |
||||
@-moz-keyframes levitate{ 0% { -moz-transform: translate3d(0,0,0);} 50% { -moz-transform: translate3d(0,5px,0);}} |
||||
@-o-keyframes levitate{ 0% { -o-transform: translate3d(0,0,0);} 50% { -o-transform: translate3d(0,5px,0);}} |
||||
@keyframes levitate{ 0% {-webkit-transform: translate3d(0,0,0);-moz-transform: translate3d(0,0,0);-ms-transform: translate3d(0,0,0);transform: translate3d(0,0,0);} 50% {-webkit-transform: translate3d(0,5px,0);-moz-transform: translate3d(0,5px,0);-ms-transform: translate3d(0,5px,0);transform: translate3d(0,5px,0);}; |
||||
} |
||||
lesshat-selector { |
||||
-lh-property: 0; } |
||||
@-webkit-keyframes star{ 0% { -webkit-transform: translate3d(0,0,0) rotateZ(0deg);} 50% { -webkit-transform: translate3d(0,5px,0) rotateZ(180deg);}} |
||||
@-moz-keyframes star{ 0% { -moz-transform: translate3d(0,0,0) rotateZ(0deg);} 50% { -moz-transform: translate3d(0,5px,0) rotateZ(180deg);}} |
||||
@-o-keyframes star{ 0% { -o-transform: translate3d(0,0,0) rotateZ(0deg);} 50% { -o-transform: translate3d(0,5px,0) rotateZ(180deg);}} |
||||
@keyframes star{ 0% {-webkit-transform: translate3d(0,0,0) rotateZ(0deg);-moz-transform: translate3d(0,0,0) rotateZ(0deg);-ms-transform: translate3d(0,0,0) rotateZ(0deg);transform: translate3d(0,0,0) rotateZ(0deg);} 50% {-webkit-transform: translate3d(0,5px,0) rotateZ(180deg);-moz-transform: translate3d(0,5px,0) rotateZ(180deg);-ms-transform: translate3d(0,5px,0) rotateZ(180deg);transform: translate3d(0,5px,0) rotateZ(180deg);}; |
||||
} |
||||
lesshat-selector { |
||||
-lh-property: 0; } |
||||
@-webkit-keyframes star{ 0% { -webkit-transform: translate3d(0,0,0) rotateZ(0deg);} 50% { -webkit-transform: translate3d(0,5px,0) rotateZ(180deg);}} |
||||
@-moz-keyframes star{ 0% { -moz-transform: translate3d(0,0,0) rotateZ(0deg);} 50% { -moz-transform: translate3d(0,5px,0) rotateZ(180deg);}} |
||||
@-o-keyframes star{ 0% { -o-transform: translate3d(0,0,0) rotateZ(0deg);} 50% { -o-transform: translate3d(0,5px,0) rotateZ(180deg);}} |
||||
@keyframes star{ 0% {-webkit-transform: translate3d(0,0,0) rotateZ(0deg);-moz-transform: translate3d(0,0,0) rotateZ(0deg);-ms-transform: translate3d(0,0,0) rotateZ(0deg);transform: translate3d(0,0,0) rotateZ(0deg);} 50% {-webkit-transform: translate3d(0,5px,0) rotateZ(180deg);-moz-transform: translate3d(0,5px,0) rotateZ(180deg);-ms-transform: translate3d(0,5px,0) rotateZ(180deg);transform: translate3d(0,5px,0) rotateZ(180deg);}; |
||||
} |
||||
lesshat-selector { |
||||
-lh-property: 0; } |
||||
@-webkit-keyframes blink-l{ 0% { -webkit-transform: rotateX(0deg); } 2% { -webkit-transform: rotateX(80deg); } 4%,20% { -webkit-transform: rotateX(0deg); } 22% { -webkit-transform: rotateX(80deg); } 24%,30% { -webkit-transform: rotateX(0deg); } 32% { -webkit-transform: rotateX(80deg); } 34%,70% { -webkit-transform: rotateX(0deg); } 72% { -webkit-transform: rotateX(80deg); } 74%,100% { -webkit-transform: rotateX(0deg); }} |
||||
@-moz-keyframes blink-l{ 0% { -moz-transform: rotateX(0deg); } 2% { -moz-transform: rotateX(80deg); } 4%,20% { -moz-transform: rotateX(0deg); } 22% { -moz-transform: rotateX(80deg); } 24%,30% { -moz-transform: rotateX(0deg); } 32% { -moz-transform: rotateX(80deg); } 34%,70% { -moz-transform: rotateX(0deg); } 72% { -moz-transform: rotateX(80deg); } 74%,100% { -moz-transform: rotateX(0deg); }} |
||||
@-o-keyframes blink-l{ 0% { -o-transform: rotateX(0deg); } 2% { -o-transform: rotateX(80deg); } 4%,20% { -o-transform: rotateX(0deg); } 22% { -o-transform: rotateX(80deg); } 24%,30% { -o-transform: rotateX(0deg); } 32% { -o-transform: rotateX(80deg); } 34%,70% { -o-transform: rotateX(0deg); } 72% { -o-transform: rotateX(80deg); } 74%,100% { -o-transform: rotateX(0deg); }} |
||||
@keyframes blink-l{ 0% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 2% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 4%,20% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 22% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 24%,30% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 32% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 34%,70% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 72% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 74%,100% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); }; |
||||
} |
||||
lesshat-selector { |
||||
-lh-property: 0; } |
||||
@-webkit-keyframes blink-l{ 0% { -webkit-transform: rotateX(0deg); } 2% { -webkit-transform: rotateX(80deg); } 4%,20% { -webkit-transform: rotateX(0deg); } 22% { -webkit-transform: rotateX(80deg); } 24%,30% { -webkit-transform: rotateX(0deg); } 32% { -webkit-transform: rotateX(80deg); } 34%,70% { -webkit-transform: rotateX(0deg); } 72% { -webkit-transform: rotateX(80deg); } 74%,100% { -webkit-transform: rotateX(0deg); }} |
||||
@-moz-keyframes blink-l{ 0% { -moz-transform: rotateX(0deg); } 2% { -moz-transform: rotateX(80deg); } 4%,20% { -moz-transform: rotateX(0deg); } 22% { -moz-transform: rotateX(80deg); } 24%,30% { -moz-transform: rotateX(0deg); } 32% { -moz-transform: rotateX(80deg); } 34%,70% { -moz-transform: rotateX(0deg); } 72% { -moz-transform: rotateX(80deg); } 74%,100% { -moz-transform: rotateX(0deg); }} |
||||
@-o-keyframes blink-l{ 0% { -o-transform: rotateX(0deg); } 2% { -o-transform: rotateX(80deg); } 4%,20% { -o-transform: rotateX(0deg); } 22% { -o-transform: rotateX(80deg); } 24%,30% { -o-transform: rotateX(0deg); } 32% { -o-transform: rotateX(80deg); } 34%,70% { -o-transform: rotateX(0deg); } 72% { -o-transform: rotateX(80deg); } 74%,100% { -o-transform: rotateX(0deg); }} |
||||
@keyframes blink-l{ 0% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 2% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 4%,20% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 22% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 24%,30% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 32% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 34%,70% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 72% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 74%,100% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); }; |
||||
} |
||||
lesshat-selector { |
||||
-lh-property: 0; } |
||||
@-webkit-keyframes blink-r{ 0% { -webkit-transform: rotateX(0deg); } 2% { -webkit-transform: rotateX(80deg); } 4%,30% { -webkit-transform: rotateX(0deg); } 32% { -webkit-transform: rotateX(80deg); } 34%,50% { -webkit-transform: rotateX(0deg); } 52% { -webkit-transform: rotateX(80deg); } 54%,100% { -webkit-transform: rotateX(0deg); } } |
||||
@-moz-keyframes blink-r{ 0% { -moz-transform: rotateX(0deg); } 2% { -moz-transform: rotateX(80deg); } 4%,30% { -moz-transform: rotateX(0deg); } 32% { -moz-transform: rotateX(80deg); } 34%,50% { -moz-transform: rotateX(0deg); } 52% { -moz-transform: rotateX(80deg); } 54%,100% { -moz-transform: rotateX(0deg); } } |
||||
@-o-keyframes blink-r{ 0% { -o-transform: rotateX(0deg); } 2% { -o-transform: rotateX(80deg); } 4%,30% { -o-transform: rotateX(0deg); } 32% { -o-transform: rotateX(80deg); } 34%,50% { -o-transform: rotateX(0deg); } 52% { -o-transform: rotateX(80deg); } 54%,100% { -o-transform: rotateX(0deg); } } |
||||
@keyframes blink-r{ 0% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 2% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 4%,30% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 32% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 34%,50% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 52% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 54%,100% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } ; |
||||
} |
||||
lesshat-selector { |
||||
-lh-property: 0; } |
||||
@-webkit-keyframes blink-r{ 0% { -webkit-transform: rotateX(0deg); } 2% { -webkit-transform: rotateX(80deg); } 4%,30% { -webkit-transform: rotateX(0deg); } 32% { -webkit-transform: rotateX(80deg); } 34%,50% { -webkit-transform: rotateX(0deg); } 52% { -webkit-transform: rotateX(80deg); } 54%,100% { -webkit-transform: rotateX(0deg); } } |
||||
@-moz-keyframes blink-r{ 0% { -moz-transform: rotateX(0deg); } 2% { -moz-transform: rotateX(80deg); } 4%,30% { -moz-transform: rotateX(0deg); } 32% { -moz-transform: rotateX(80deg); } 34%,50% { -moz-transform: rotateX(0deg); } 52% { -moz-transform: rotateX(80deg); } 54%,100% { -moz-transform: rotateX(0deg); } } |
||||
@-o-keyframes blink-r{ 0% { -o-transform: rotateX(0deg); } 2% { -o-transform: rotateX(80deg); } 4%,30% { -o-transform: rotateX(0deg); } 32% { -o-transform: rotateX(80deg); } 34%,50% { -o-transform: rotateX(0deg); } 52% { -o-transform: rotateX(80deg); } 54%,100% { -o-transform: rotateX(0deg); } } |
||||
@keyframes blink-r{ 0% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 2% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 4%,30% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 32% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 34%,50% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } 52% {-webkit-transform: rotateX(80deg);-moz-transform: rotateX(80deg);-ms-transform: rotateX(80deg);transform: rotateX(80deg); } 54%,100% {-webkit-transform: rotateX(0deg);-moz-transform: rotateX(0deg);-ms-transform: rotateX(0deg);transform: rotateX(0deg); } ; |
||||
} |
||||
@ -0,0 +1,123 @@ |
||||
@media (min-width: 768px) { |
||||
.app-aside, |
||||
.app-asider, |
||||
.navbar-header { |
||||
width: 200px; |
||||
background: #fff !important; |
||||
} |
||||
.navbar-collapse, |
||||
.app-content, |
||||
.app-footer { |
||||
margin-left: 200px; |
||||
} |
||||
.app-aside-right { |
||||
position: absolute; |
||||
top: 50px; |
||||
right: 0; |
||||
bottom: 0; |
||||
z-index: 1000; |
||||
} |
||||
.app-aside-right.pos-fix { |
||||
z-index: 1010; |
||||
} |
||||
.visible-folded { |
||||
display: none; |
||||
} |
||||
.app-aside-folded .hidden-folded { |
||||
display: none !important; |
||||
} |
||||
.app-aside-folded .visible-folded { |
||||
display: inherit; |
||||
} |
||||
.app-aside-folded .text-center-folded { |
||||
text-align: center; |
||||
} |
||||
.app-aside-folded .pull-none-folded { |
||||
float: none !important; |
||||
} |
||||
.app-aside-folded .w-auto-folded { |
||||
width: auto; |
||||
} |
||||
.app-aside-folded .app-aside, |
||||
.app-aside-folded .navbar-header { |
||||
width: 60px; |
||||
} |
||||
.app-aside-folded .navbar-collapse, |
||||
.app-aside-folded .app-content, |
||||
.app-aside-folded .app-footer { |
||||
margin-left: 60px; |
||||
} |
||||
.app-aside-folded .app-header .navbar-brand { |
||||
display: block; |
||||
padding: 0; |
||||
} |
||||
.app-aside-fixed .app-header .navbar-header { |
||||
position: fixed; |
||||
} |
||||
.app-aside-fixed .aside-wrap { |
||||
position: fixed; |
||||
top: 50px; |
||||
bottom: 0; |
||||
left: 0; |
||||
z-index: 1000; |
||||
width: 199px; |
||||
overflow: hidden; |
||||
} |
||||
.app-aside-fixed .aside-wrap .navi-wrap { |
||||
position: relative; |
||||
width: 217px; |
||||
height: 100%; |
||||
overflow-x: hidden; |
||||
overflow-y: scroll; |
||||
-webkit-overflow-scrolling: touch; |
||||
} |
||||
.app-aside-fixed .aside-wrap .navi-wrap::-webkit-scrollbar { |
||||
-webkit-appearance: none; |
||||
} |
||||
.app-aside-fixed .aside-wrap .navi-wrap::-webkit-scrollbar:vertical { |
||||
width: 17px; |
||||
} |
||||
.app-aside-fixed .aside-wrap .navi-wrap > * { |
||||
width: 200px; |
||||
} |
||||
.smart .app-aside-fixed .aside-wrap .navi-wrap { |
||||
width: 200px; |
||||
} |
||||
.app-aside-fixed.app-aside-folded .app-aside { |
||||
position: fixed; |
||||
top: 0; |
||||
bottom: 0; |
||||
z-index: 1010; |
||||
} |
||||
.app-aside-fixed.app-aside-folded .aside-wrap { |
||||
width: 59px; |
||||
} |
||||
.app-aside-fixed.app-aside-folded .aside-wrap .navi-wrap { |
||||
width: 77px; |
||||
} |
||||
.app-aside-fixed.app-aside-folded .aside-wrap .navi-wrap > * { |
||||
width: 60px; |
||||
} |
||||
.smart .app-aside-fixed.app-aside-folded .aside-wrap .navi-wrap { |
||||
width: 60px; |
||||
} |
||||
.bg-auto:before { |
||||
position: absolute; |
||||
top: 0; |
||||
bottom: 0; |
||||
z-index: -1; |
||||
width: inherit; |
||||
background-color: inherit; |
||||
border: inherit; |
||||
content: ""; |
||||
} |
||||
.bg-auto.b-l:before { |
||||
margin-left: -1px; |
||||
} |
||||
.bg-auto.b-r:before { |
||||
margin-right: -1px; |
||||
} |
||||
.col.show { |
||||
display: table-cell !important; |
||||
} |
||||
} |
||||
@ -0,0 +1,415 @@ |
||||
/* Product grid */ |
||||
|
||||
.grid { |
||||
position: relative; |
||||
overflow: hidden; |
||||
margin: 0 auto; |
||||
padding: 1.5em 0 8em; |
||||
text-align: center; |
||||
-webkit-user-select: none; |
||||
-moz-user-select: none; |
||||
-ms-user-select: none; |
||||
user-select: none; |
||||
-webkit-touch-callout: none; |
||||
-khtml-user-select: none; |
||||
} |
||||
|
||||
/* Loader */ |
||||
.grid__loader { |
||||
display: none; |
||||
margin: 3em auto 0; |
||||
} |
||||
|
||||
.grid--loading .grid__loader { |
||||
display: block; |
||||
} |
||||
|
||||
/* Clearfix */ |
||||
|
||||
.grid:after { |
||||
content: ''; |
||||
display: block; |
||||
clear: both; |
||||
} |
||||
|
||||
/* Grid items */ |
||||
|
||||
.grid__sizer, |
||||
.grid__item { |
||||
position: relative; |
||||
float: left; |
||||
width: 20%; |
||||
padding: .75em; |
||||
} |
||||
|
||||
.no-touch .grid__sizer, |
||||
.no-touch .grid__item { |
||||
padding: .75em .75em 1.25em; |
||||
} |
||||
|
||||
.grid--loading .grid__item { |
||||
visibility: hidden; |
||||
} |
||||
|
||||
.grid__item--size-a { |
||||
width: 40%; |
||||
} |
||||
|
||||
/* Gallery */ |
||||
|
||||
.slider { |
||||
padding: 0; |
||||
border-radius: 5px; |
||||
background: #24252a; |
||||
} |
||||
|
||||
.no-touch .slider { |
||||
padding: 0 0 1.25em; |
||||
} |
||||
|
||||
.slider__item { |
||||
width: 100%; |
||||
padding: 1em; |
||||
} |
||||
|
||||
.slider__item img { |
||||
width: 100%; |
||||
} |
||||
/* Flickity page dots */ |
||||
|
||||
.slider .flickity-page-dots { |
||||
bottom: 20px; |
||||
opacity: 0; |
||||
-webkit-transition: opacity .3s; |
||||
transition: opacity .3s; |
||||
} |
||||
|
||||
.no-touch .slider:hover .flickity-page-dots { |
||||
opacity: 1; |
||||
} |
||||
|
||||
.slider .flickity-page-dots .dot { |
||||
background: #131417; |
||||
} |
||||
|
||||
/* Product meta */ |
||||
|
||||
.meta { |
||||
position: relative; |
||||
margin: 10px 0 0; |
||||
padding: 0 60px 0 0; |
||||
text-align: left; |
||||
} |
||||
|
||||
.meta__brand { |
||||
font-size: .85em; |
||||
font-weight: bold; |
||||
display: block; |
||||
color: #595b64; |
||||
} |
||||
|
||||
.meta__title { |
||||
font-size: .95em; |
||||
font-weight: bold; |
||||
margin: 0; |
||||
padding: .4em 0 .1em; |
||||
} |
||||
|
||||
.meta__price { |
||||
font-size: .95em; |
||||
font-weight: bold; |
||||
position: absolute; |
||||
top: .45em; |
||||
right: .25em; |
||||
color: #595b64; |
||||
} |
||||
|
||||
/* Action style */ |
||||
|
||||
.action { |
||||
font-family: Avenir, 'Helvetica Neue', 'Lato', 'Segoe UI', Helvetica, Arial, sans-serif; |
||||
font-size: 1.05em; |
||||
position: relative; |
||||
overflow: hidden; |
||||
margin: 0; |
||||
padding: .25em; |
||||
cursor: pointer; |
||||
color: #fff; |
||||
border: none; |
||||
background: none; |
||||
} |
||||
|
||||
.action:focus { |
||||
outline: none; |
||||
} |
||||
|
||||
.action--button { |
||||
color: #5c5edc; |
||||
} |
||||
|
||||
.no-touch .action--button:hover { |
||||
color: #fff; |
||||
outline: none; |
||||
} |
||||
|
||||
.text-hidden { |
||||
position: absolute; |
||||
top: 200%; |
||||
} |
||||
|
||||
/* Add to cart button */ |
||||
|
||||
.action--buy { |
||||
position: absolute; |
||||
top: 0; |
||||
right: 0; |
||||
padding: 1.85em 2.35em; |
||||
-webkit-transition: opacity .3s, -webkit-transform .3s; |
||||
transition: opacity .3s, transform .3s; |
||||
-webkit-transform: translate3d(-5px, 0, 0); |
||||
transform: translate3d(-5px, 0, 0); |
||||
} |
||||
|
||||
.no-touch .action--buy { |
||||
opacity: 0; |
||||
} |
||||
|
||||
.no-touch .grid__item:hover .action--buy { |
||||
opacity: 1; |
||||
-webkit-transform: translate3d(0, 0, 0); |
||||
transform: translate3d(0, 0, 0); |
||||
} |
||||
|
||||
/* Fixed bottom bar */ |
||||
|
||||
.bar { |
||||
position: fixed; |
||||
z-index: 100; |
||||
bottom: 0; |
||||
left: 0; |
||||
width: 100%; |
||||
padding: 1.75em 5em; |
||||
text-align: center; |
||||
background: #191a1b; |
||||
-webkit-transform: translate3d(0, 0, 0); |
||||
/* Fix for Chrome flicker on Mac ...party like we're in 2012! */ |
||||
} |
||||
|
||||
.flexbox .filter { |
||||
} |
||||
|
||||
/* Filter */ |
||||
|
||||
.filter__label { |
||||
font-size: .85em; |
||||
display: inline-block; |
||||
margin: 0 2%; |
||||
font-weight: bold; |
||||
color: #393A3F; |
||||
} |
||||
|
||||
.filter__item { |
||||
margin: 0 10px; |
||||
padding: 10px 15px; |
||||
vertical-align: middle; |
||||
color: #333; |
||||
} |
||||
|
||||
.filter__item--selected { |
||||
padding: 10px 15px; |
||||
border-radius: 3px; |
||||
background: #ffcd00; |
||||
} |
||||
|
||||
.filter__item .icon { |
||||
font-size: 1.75em; |
||||
display: none; |
||||
} |
||||
|
||||
/* Shopping cart */ |
||||
|
||||
.cart { |
||||
font-size: 1.5em; |
||||
position: absolute; |
||||
top: 0; |
||||
right: 0; |
||||
overflow: hidden; |
||||
height: 100%; |
||||
padding: 0 1.195em; |
||||
cursor: pointer; |
||||
color: #abacae; |
||||
border: none; |
||||
background-color: #131415; |
||||
} |
||||
|
||||
.no-touch .cart:focus, |
||||
.no-touch .cart:hover { |
||||
color: #fff; |
||||
outline: none; |
||||
} |
||||
|
||||
.cart--animate .cart__icon { |
||||
-webkit-animation: cartAnim .4s forwards; |
||||
animation: cartAnim .4s forwards; |
||||
} |
||||
|
||||
@-webkit-keyframes cartAnim { |
||||
50% { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(50px, 0, 0); |
||||
transform: translate3d(50px, 0, 0); |
||||
} |
||||
51% { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(-50px, 0, 0); |
||||
transform: translate3d(-50px, 0, 0); |
||||
} |
||||
100% { |
||||
opacity: 1; |
||||
-webkit-transform: translate3d(0, 0, 0); |
||||
transform: translate3d(0, 0, 0); |
||||
} |
||||
} |
||||
|
||||
@keyframes cartAnim { |
||||
50% { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(50px, 0, 0); |
||||
transform: translate3d(50px, 0, 0); |
||||
} |
||||
51% { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(-50px, 0, 0); |
||||
transform: translate3d(-50px, 0, 0); |
||||
} |
||||
100% { |
||||
opacity: 1; |
||||
-webkit-transform: translate3d(0, 0, 0); |
||||
transform: translate3d(0, 0, 0); |
||||
} |
||||
} |
||||
|
||||
.cart__count { |
||||
font-size: 9px; |
||||
font-weight: bold; |
||||
line-height: 15px; |
||||
position: absolute; |
||||
top: 50%; |
||||
right: 20px; |
||||
width: 15px; |
||||
height: 15px; |
||||
margin: -16px 0 0 0; |
||||
text-align: center; |
||||
color: #fff; |
||||
border-radius: 50%; |
||||
background: #5c5edc; |
||||
} |
||||
|
||||
.cart--animate .cart__count { |
||||
-webkit-animation: countAnim .4s forwards; |
||||
animation: countAnim .4s forwards; |
||||
} |
||||
|
||||
@-webkit-keyframes countAnim { |
||||
50% { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(0, 80px, 0); |
||||
transform: translate3d(0, 80px, 0); |
||||
} |
||||
51% { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(0, -80px, 0); |
||||
transform: translate3d(0, -80px, 0); |
||||
} |
||||
100% { |
||||
opacity: 1; |
||||
-webkit-transform: translate3d(0, 0, 0); |
||||
transform: translate3d(0, 0, 0); |
||||
} |
||||
} |
||||
|
||||
@keyframes countAnim { |
||||
50% { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(0, 80px, 0); |
||||
transform: translate3d(0, 80px, 0); |
||||
} |
||||
51% { |
||||
opacity: 0; |
||||
-webkit-transform: translate3d(0, -80px, 0); |
||||
transform: translate3d(0, -80px, 0); |
||||
} |
||||
100% { |
||||
opacity: 1; |
||||
-webkit-transform: translate3d(0, 0, 0); |
||||
transform: translate3d(0, 0, 0); |
||||
} |
||||
} |
||||
/* Resize grid items on smaller screens */ |
||||
|
||||
@media screen and (max-width: 65em) { |
||||
.grid__sizer, |
||||
.grid__item, |
||||
.grid__item--size-a { |
||||
width: 33.333%; |
||||
} |
||||
} |
||||
|
||||
@media screen and (max-width: 50em) { |
||||
.grid__sizer, |
||||
.grid__item, |
||||
.grid__item--size-a { |
||||
width: 50%; |
||||
} |
||||
.bar { |
||||
padding-left: 0; |
||||
text-align: left; |
||||
} |
||||
} |
||||
|
||||
@media screen and (max-width: 40em) { |
||||
.bar { |
||||
padding: .5em 4.5em .5em 0; |
||||
} |
||||
.flexbox .filter { |
||||
-webkit-justify-content: space-around; |
||||
justify-content: space-around; |
||||
padding: 0; |
||||
width: 100%; |
||||
} |
||||
.filter__item { |
||||
height: 100%; |
||||
width: 100%; |
||||
border: none; |
||||
margin-left: 0; |
||||
} |
||||
.filter__item .icon { |
||||
display: inline-block; |
||||
} |
||||
.filter__label, |
||||
.action__text { |
||||
display: none; |
||||
} |
||||
.cart { |
||||
padding: 0 1em; |
||||
} |
||||
} |
||||
|
||||
@media screen and (max-width: 25em) { |
||||
.grid { |
||||
max-width: 100%; |
||||
} |
||||
.grid__loader { |
||||
margin: 0 auto; |
||||
} |
||||
.grid__sizer, |
||||
.grid__item, |
||||
.grid__item--size-a { |
||||
width: 100%; |
||||
} |
||||
.action--buy { |
||||
font-size: 1.5em; |
||||
padding: 1.15em 1.5em; |
||||
-webkit-tap-highlight-color: transparent; |
||||
} |
||||
} |
||||
@ -0,0 +1,696 @@ |
||||
@charset "UTF-8"; |
||||
|
||||
$simditor-button-height: 40px; |
||||
$simditor-button-width: 46px; |
||||
|
||||
.simditor { |
||||
position: relative; |
||||
border: 1px solid #c9d8db; |
||||
|
||||
.simditor-wrapper { |
||||
position: relative; |
||||
background: #ffffff; |
||||
|
||||
& > textarea { |
||||
display: none !important; |
||||
width: 100%; |
||||
box-sizing: border-box; |
||||
font-family: monaco; |
||||
font-size: 16px; |
||||
line-height: 1.6; |
||||
border: none; |
||||
padding: 22px 15px 40px; |
||||
min-height: 300px; |
||||
outline: none; |
||||
background: transparent; |
||||
resize: none; |
||||
} |
||||
|
||||
.simditor-placeholder { |
||||
display: none; |
||||
position: absolute; |
||||
left: 0; |
||||
z-index: 0; |
||||
padding: 22px 15px; |
||||
font-size: 16px; |
||||
font-family: arial, sans-serif; |
||||
line-height: 1.5; |
||||
color: #999999; |
||||
background: transparent; |
||||
} |
||||
|
||||
&.toolbar-floating { |
||||
.simditor-toolbar { |
||||
position: fixed; |
||||
top: 0; |
||||
z-index: 10; |
||||
box-shadow: 0 0 6px rgba(0,0,0,0.1); |
||||
} |
||||
} |
||||
|
||||
.simditor-image-loading { |
||||
width: 100%; |
||||
height: 100%; |
||||
position: absolute; |
||||
top: 0; |
||||
left: 0; |
||||
z-index: 2; |
||||
|
||||
.progress { |
||||
width: 100%; |
||||
height: 100%; |
||||
background: rgba(0,0,0,0.4); |
||||
position: absolute; |
||||
bottom: 0; |
||||
left: 0; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.simditor-body { |
||||
padding: 22px 15px 40px; |
||||
min-height: 300px; |
||||
outline: none; |
||||
cursor: text; |
||||
position: relative; |
||||
z-index: 1; |
||||
background: transparent; |
||||
|
||||
a.selected { |
||||
background: #b3d4fd; |
||||
} |
||||
|
||||
a.simditor-mention { |
||||
cursor: pointer; |
||||
} |
||||
|
||||
.simditor-table { |
||||
position: relative; |
||||
|
||||
&.resizing { |
||||
cursor: col-resize; |
||||
} |
||||
|
||||
.simditor-resize-handle { |
||||
position: absolute; |
||||
left: 0; |
||||
top: 0; |
||||
width: 10px; |
||||
height: 100%; |
||||
cursor: col-resize; |
||||
} |
||||
} |
||||
|
||||
pre { |
||||
/*min-height: 28px;*/ |
||||
box-sizing: border-box; |
||||
-moz-box-sizing: border-box; |
||||
word-wrap: break-word!important; |
||||
white-space: pre-wrap!important; |
||||
} |
||||
|
||||
img { |
||||
cursor: pointer; |
||||
|
||||
&.selected { |
||||
box-shadow: 0 0 0 4px #cccccc; |
||||
} |
||||
} |
||||
} |
||||
|
||||
.simditor-paste-bin { |
||||
position: fixed; |
||||
bottom: 10px; |
||||
right: 10px; |
||||
width: 1px; |
||||
height: 20px; |
||||
font-size: 1px; |
||||
line-height: 1px; |
||||
overflow: hidden; |
||||
padding: 0; |
||||
margin: 0; |
||||
opacity: 0; |
||||
-webkit-user-select: text; |
||||
} |
||||
|
||||
.simditor-toolbar { |
||||
border-bottom: 1px solid #eeeeee; |
||||
background: #ffffff; |
||||
width: 100%; |
||||
|
||||
& > ul { |
||||
margin: 0; |
||||
padding: 0 0 0 6px; |
||||
list-style: none; |
||||
|
||||
& > li { |
||||
position: relative; |
||||
display: inline-block; |
||||
font-size: 0; |
||||
|
||||
& > span.separator { |
||||
display: inline-block; |
||||
background: #cfcfcf; |
||||
width: 1px; |
||||
height: 18px; |
||||
margin: ($simditor-button-height - 18px) / 2 15px; |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
& > .toolbar-item { |
||||
display: inline-block; |
||||
width: $simditor-button-width; |
||||
height: $simditor-button-height; |
||||
outline: none; |
||||
color: #333333; |
||||
font-size: 15px; |
||||
line-height: $simditor-button-height; |
||||
vertical-align: middle; |
||||
text-align: center; |
||||
text-decoration: none; |
||||
|
||||
span { |
||||
opacity: 0.6; |
||||
|
||||
&.simditor-icon { |
||||
display: inline; |
||||
line-height: normal; |
||||
} |
||||
} |
||||
|
||||
&:hover span { |
||||
opacity: 1; |
||||
} |
||||
|
||||
&.active { |
||||
background: #eeeeee; |
||||
|
||||
span { |
||||
opacity: 1; |
||||
} |
||||
} |
||||
|
||||
&.disabled { |
||||
cursor: default; |
||||
|
||||
span { |
||||
opacity: 0.3; |
||||
} |
||||
} |
||||
|
||||
&.toolbar-item-title { |
||||
span:before { |
||||
content: "H"; |
||||
font-size: 19px; |
||||
font-weight: bold; |
||||
font-family: 'Times New Roman'; |
||||
} |
||||
|
||||
&.active-h1 span:before { |
||||
content: 'H1'; |
||||
font-size: 18px; |
||||
} |
||||
|
||||
&.active-h2 span:before { |
||||
content: 'H2'; |
||||
font-size: 18px; |
||||
} |
||||
|
||||
&.active-h3 span:before { |
||||
content: 'H3'; |
||||
font-size: 18px; |
||||
} |
||||
} |
||||
|
||||
&.toolbar-item-image { |
||||
position: relative; |
||||
overflow: hidden; |
||||
|
||||
& > input[type=file] { |
||||
position: absolute; |
||||
right: 0px; |
||||
top: 0px; |
||||
opacity: 0; |
||||
font-size: 100px; |
||||
cursor: pointer; |
||||
} |
||||
} |
||||
} |
||||
|
||||
&.menu-on { |
||||
.toolbar-item { |
||||
position: relative; |
||||
z-index: 20; |
||||
background: #ffffff; |
||||
box-shadow: 0 1px 4px rgba(0,0,0,0.3); |
||||
|
||||
span { |
||||
opacity: 1; |
||||
} |
||||
} |
||||
|
||||
.toolbar-menu { |
||||
display: block; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.toolbar-menu { |
||||
display: none; |
||||
position: absolute; |
||||
top: $simditor-button-height; |
||||
left: 0; |
||||
z-index: 21; |
||||
background: #ffffff; |
||||
text-align: left; |
||||
box-shadow: 0 0 4px rgba(0,0,0,0.3); |
||||
|
||||
&:before { |
||||
content: ''; |
||||
display: block; |
||||
width: $simditor-button-width; |
||||
height: 4px; |
||||
background: #ffffff; |
||||
position: absolute; |
||||
top: -3px; |
||||
left: 0; |
||||
} |
||||
|
||||
ul { |
||||
min-width: 160px; |
||||
list-style: none; |
||||
margin: 0; |
||||
padding: 10px 1px; |
||||
|
||||
& > li { |
||||
|
||||
.menu-item { |
||||
display: block; |
||||
font-size:16px; |
||||
line-height: 2em; |
||||
padding: 0 10px; |
||||
text-decoration: none; |
||||
color: #666666; |
||||
|
||||
&:hover { |
||||
background: #f6f6f6; |
||||
} |
||||
|
||||
&.menu-item-h1 { |
||||
font-size: 24px; |
||||
color: #333333; |
||||
} |
||||
|
||||
&.menu-item-h2 { |
||||
font-size: 22px; |
||||
color: #333333; |
||||
} |
||||
|
||||
&.menu-item-h3 { |
||||
font-size: 20px; |
||||
color: #333333; |
||||
} |
||||
|
||||
&.menu-item-h4 { |
||||
font-size: 18px; |
||||
color: #333333; |
||||
} |
||||
|
||||
&.menu-item-h5 { |
||||
font-size: 16px; |
||||
color: #333333; |
||||
} |
||||
} |
||||
|
||||
.separator { |
||||
display: block; |
||||
border-top: 1px solid #cccccc; |
||||
height: 0; |
||||
line-height: 0; |
||||
font-size: 0; |
||||
margin: 6px 0; |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
&.toolbar-menu-color { |
||||
width: 96px; |
||||
|
||||
.color-list { |
||||
height: 40px; |
||||
margin: 10px 6px 6px 10px; |
||||
padding: 0; |
||||
|
||||
min-width: 0; |
||||
|
||||
li { |
||||
float: left; |
||||
margin: 0 4px 4px 0; |
||||
|
||||
.font-color { |
||||
display: block; |
||||
width: 16px; |
||||
height: 16px; |
||||
background: #dfdfdf; |
||||
border-radius: 2px; |
||||
|
||||
&:hover { |
||||
opacity: 0.8; |
||||
} |
||||
|
||||
&.font-color-default { |
||||
background: #333333; |
||||
} |
||||
} |
||||
|
||||
$font-colors: #E33737 #e28b41 #c8a732 #209361 #418caf #aa8773 #999999; |
||||
$i: 1; |
||||
@each $color in $font-colors { |
||||
.font-color-#{$i} { |
||||
background: $color; |
||||
} |
||||
$i: $i + 1; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
&.toolbar-menu-table { |
||||
.menu-create-table { |
||||
background: #ffffff; |
||||
padding: 1px; |
||||
|
||||
table { |
||||
border: none; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; |
||||
table-layout: fixed; |
||||
|
||||
td { |
||||
padding: 0; |
||||
cursor: pointer; |
||||
|
||||
&:before { |
||||
width: 16px; |
||||
height: 16px; |
||||
border: 1px solid #ffffff; |
||||
background: #f3f3f3; |
||||
display: block; |
||||
content: '' |
||||
} |
||||
|
||||
&.selected:before { |
||||
background: #cfcfcf; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.menu-edit-table { |
||||
display: none; |
||||
|
||||
ul { |
||||
li { |
||||
white-space: nowrap; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
&.toolbar-menu-image { |
||||
.menu-item-upload-image { |
||||
position: relative; |
||||
overflow: hidden; |
||||
|
||||
input[type=file] { |
||||
position: absolute; |
||||
right: 0px; |
||||
top: 0px; |
||||
opacity: 0; |
||||
font-size: 100px; |
||||
cursor: pointer; |
||||
} |
||||
} |
||||
} |
||||
|
||||
&.toolbar-menu-alignment { |
||||
width: 100%; |
||||
ul { |
||||
min-width: 100%; |
||||
} |
||||
.menu-item { |
||||
text-align: center; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
.simditor-popover { |
||||
display: none; |
||||
padding: 5px 8px 0; |
||||
background: #ffffff; |
||||
box-shadow: 0 1px 4px rgba(0,0,0,0.4); |
||||
border-radius: 2px; |
||||
position: absolute; |
||||
z-index: 2; |
||||
|
||||
.settings-field { |
||||
margin: 0 0 5px 0; |
||||
font-size: 12px; |
||||
height: 25px; |
||||
line-height: 25px; |
||||
|
||||
label { |
||||
display: inline-block; |
||||
margin: 0 5px 0 0; |
||||
} |
||||
|
||||
input[type=text] { |
||||
display: inline-block; |
||||
width: 200px; |
||||
box-sizing: border-box; |
||||
font-size: 12px; |
||||
|
||||
&.image-size { |
||||
width: 83px; |
||||
} |
||||
} |
||||
|
||||
.times { |
||||
display: inline-block; |
||||
width: 26px; |
||||
font-size: 12px; |
||||
text-align: center; |
||||
} |
||||
} |
||||
|
||||
&.link-popover .btn-unlink, |
||||
&.image-popover .btn-upload, |
||||
&.image-popover .btn-restore { |
||||
display: inline-block; |
||||
margin: 0 0 0 5px; |
||||
color: #333333; |
||||
font-size: 14px; |
||||
outline: 0; |
||||
|
||||
span { |
||||
opacity: 0.6; |
||||
} |
||||
|
||||
&:hover span { |
||||
opacity: 1; |
||||
} |
||||
} |
||||
|
||||
&.image-popover .btn-upload { |
||||
position: relative; |
||||
display: inline-block; |
||||
overflow: hidden; |
||||
vertical-align: middle; |
||||
|
||||
input[type=file] { |
||||
position: absolute; |
||||
right: 0px; |
||||
top: 0px; |
||||
opacity: 0; |
||||
height: 100%; |
||||
width: 28px; |
||||
} |
||||
} |
||||
} |
||||
|
||||
&.simditor-mobile { |
||||
.simditor-wrapper.toolbar-floating .simditor-toolbar { |
||||
position: absolute; |
||||
top: 0; |
||||
z-index: 10; |
||||
box-shadow: 0 0 6px rgba(0,0,0,0.1); |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
|
||||
.simditor .simditor-body, .editor-style { |
||||
font-size: 16px; |
||||
font-family: arial, sans-serif; |
||||
line-height: 1.6; |
||||
color: #333; |
||||
outline: none; |
||||
word-wrap: break-word; |
||||
|
||||
& > :first-child { |
||||
margin-top: 0!important; |
||||
} |
||||
|
||||
a{ color: #4298BA; text-decoration: none; word-break: break-all;} |
||||
a:visited{ color: #4298BA; } |
||||
a:hover{ color: #0F769F; } |
||||
a:active{ color:#9E792E; } |
||||
a:hover, a:active{ outline: 0; } |
||||
|
||||
h1,h2,h3,h4,h5,h6 { |
||||
font-weight: normal; |
||||
margin: 40px 0 20px; |
||||
color: #000000; |
||||
} |
||||
|
||||
h1 { font-size: 24px; } |
||||
h2 { font-size: 22px; } |
||||
h3 { font-size: 20px; } |
||||
h4 { font-size: 18px; } |
||||
h5 { font-size: 16px; } |
||||
h6 { font-size: 16px; } |
||||
|
||||
p, div { |
||||
word-wrap: break-word; |
||||
margin: 0 0 15px 0; |
||||
color: #333; |
||||
word-wrap: break-word; |
||||
} |
||||
|
||||
b, strong { |
||||
font-weight: bold; |
||||
} |
||||
|
||||
i, em { |
||||
font-style: italic; |
||||
} |
||||
|
||||
u { |
||||
text-decoration: underline; |
||||
} |
||||
|
||||
strike, del { |
||||
text-decoration: line-through; |
||||
} |
||||
|
||||
ul, ol { |
||||
list-style:disc outside none; |
||||
margin: 15px 0; |
||||
padding: 0 0 0 40px; |
||||
line-height: 1.6; |
||||
|
||||
ul, ol { |
||||
padding-left: 30px; |
||||
} |
||||
|
||||
ul { |
||||
list-style: circle outside none; |
||||
|
||||
ul { |
||||
list-style: square outside none; |
||||
} |
||||
} |
||||
} |
||||
|
||||
ol { |
||||
list-style:decimal; |
||||
} |
||||
|
||||
blockquote { |
||||
border-left: 6px solid #ddd; |
||||
padding: 5px 0 5px 10px; |
||||
margin: 15px 0 15px 15px; |
||||
|
||||
& > :first-child { |
||||
margin-top: 0; |
||||
} |
||||
} |
||||
|
||||
code { |
||||
display: inline-block; |
||||
padding: 0 4px; |
||||
margin: 0 5px; |
||||
background: #eeeeee; |
||||
border-radius: 3px; |
||||
font-size: 13px; |
||||
font-family: 'monaco', 'Consolas', "Liberation Mono", Courier, monospace; |
||||
} |
||||
|
||||
pre { |
||||
padding: 10px 5px 10px 10px; |
||||
margin: 15px 0; |
||||
display: block; |
||||
line-height: 18px; |
||||
background: #F0F0F0; |
||||
border-radius: 3px; |
||||
font-size:13px; |
||||
font-family: 'monaco', 'Consolas', "Liberation Mono", Courier, monospace; |
||||
white-space: pre; |
||||
word-wrap: normal; |
||||
overflow-x: auto; |
||||
|
||||
code { |
||||
display: block; |
||||
padding: 0; |
||||
margin: 0; |
||||
background: none; |
||||
border-radius: 0; |
||||
} |
||||
} |
||||
|
||||
hr { |
||||
display: block; |
||||
height: 0px; |
||||
border: 0; |
||||
border-top: 1px solid #ccc; |
||||
margin: 15px 0; |
||||
padding: 0; |
||||
} |
||||
|
||||
table { |
||||
width: 100%; |
||||
table-layout: fixed; |
||||
border-collapse: collapse; |
||||
border-spacing: 0; |
||||
margin: 15px 0; |
||||
|
||||
thead { |
||||
background-color: #f9f9f9; |
||||
} |
||||
|
||||
td, th { |
||||
min-width: 40px; |
||||
height: 30px; |
||||
border: 1px solid #ccc; |
||||
vertical-align: top; |
||||
padding: 2px 4px; |
||||
text-align: left; |
||||
box-sizing: border-box; |
||||
|
||||
&.active { |
||||
background-color: #ffffee; |
||||
} |
||||
} |
||||
} |
||||
|
||||
|
||||
img { |
||||
margin: 0 5px; |
||||
vertical-align: middle; |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,141 @@ |
||||
/*! Flickity v1.0.2 |
||||
http://flickity.metafizzy.co |
||||
---------------------------------------------- */ |
||||
|
||||
.flickity-enabled { |
||||
position: relative; |
||||
} |
||||
|
||||
.flickity-enabled:focus { outline: none; } |
||||
|
||||
.flickity-viewport { |
||||
overflow: hidden; |
||||
position: relative; |
||||
height: 100%; |
||||
} |
||||
|
||||
.flickity-slider { |
||||
position: absolute; |
||||
width: 100%; |
||||
height: 100%; |
||||
} |
||||
|
||||
/* draggable */ |
||||
|
||||
.flickity-enabled.is-draggable { |
||||
-webkit-tap-highlight-color: transparent; |
||||
tap-highlight-color: transparent; |
||||
-webkit-user-select: none; |
||||
-moz-user-select: none; |
||||
-ms-user-select: none; |
||||
user-select: none; |
||||
} |
||||
|
||||
.flickity-enabled.is-draggable .flickity-viewport { |
||||
cursor: move; |
||||
cursor: -webkit-grab; |
||||
cursor: grab; |
||||
} |
||||
|
||||
.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down { |
||||
cursor: -webkit-grabbing; |
||||
cursor: grabbing; |
||||
} |
||||
|
||||
/* ---- previous/next buttons ---- */ |
||||
|
||||
.flickity-prev-next-button { |
||||
position: absolute; |
||||
top: 50%; |
||||
width: 44px; |
||||
height: 44px; |
||||
border: none; |
||||
border-radius: 50%; |
||||
background: white; |
||||
background: hsla(0, 0%, 100%, 0.75); |
||||
cursor: pointer; |
||||
/* vertically center */ |
||||
-webkit-transform: translateY(-50%); |
||||
-ms-transform: translateY(-50%); |
||||
transform: translateY(-50%); |
||||
} |
||||
|
||||
.flickity-prev-next-button:hover { background: white; } |
||||
|
||||
.flickity-prev-next-button:focus { |
||||
outline: none; |
||||
box-shadow: 0 0 0 5px #09F; |
||||
} |
||||
|
||||
.flickity-prev-next-button:active { |
||||
filter: alpha(opacity=60); /* IE8 */ |
||||
opacity: 0.6; |
||||
} |
||||
|
||||
.flickity-prev-next-button.previous { left: 10px; } |
||||
.flickity-prev-next-button.next { right: 10px; } |
||||
/* right to left */ |
||||
.flickity-rtl .flickity-prev-next-button.previous { |
||||
left: auto; |
||||
right: 10px; |
||||
} |
||||
.flickity-rtl .flickity-prev-next-button.next { |
||||
right: auto; |
||||
left: 10px; |
||||
} |
||||
|
||||
.flickity-prev-next-button:disabled { |
||||
filter: alpha(opacity=30); /* IE8 */ |
||||
opacity: 0.3; |
||||
cursor: auto; |
||||
} |
||||
|
||||
.flickity-prev-next-button svg { |
||||
position: absolute; |
||||
left: 20%; |
||||
top: 20%; |
||||
width: 60%; |
||||
height: 60%; |
||||
} |
||||
|
||||
.flickity-prev-next-button .arrow { |
||||
fill: #333; |
||||
} |
||||
|
||||
/* color & size if no SVG - IE8 and Android 2.3 */ |
||||
.flickity-prev-next-button.no-svg { |
||||
color: #333; |
||||
font-size: 26px; |
||||
} |
||||
|
||||
/* ---- page dots ---- */ |
||||
|
||||
.flickity-page-dots { |
||||
position: absolute; |
||||
width: 100%; |
||||
bottom: -25px; |
||||
padding: 0; |
||||
margin: 0; |
||||
list-style: none; |
||||
text-align: center; |
||||
line-height: 1; |
||||
} |
||||
|
||||
.flickity-rtl .flickity-page-dots { direction: rtl; } |
||||
|
||||
.flickity-page-dots .dot { |
||||
display: inline-block; |
||||
width: 10px; |
||||
height: 10px; |
||||
margin: 0 8px; |
||||
background: #333; |
||||
border-radius: 50%; |
||||
filter: alpha(opacity=25); /* IE8 */ |
||||
opacity: 0.25; |
||||
cursor: pointer; |
||||
} |
||||
|
||||
.flickity-page-dots .dot.is-selected { |
||||
filter: alpha(opacity=100); /* IE8 */ |
||||
opacity: 1; |
||||
} |
||||
@ -0,0 +1,52 @@ |
||||
@font-face { |
||||
font-family: 'Source Sans Pro'; |
||||
font-style: normal; |
||||
font-weight: 300; |
||||
src: local('Source Sans Pro Light'), local('SourceSansPro-Light'), url('../fonts/sourcesanspro/sourcesanspro-light.woff') format('woff'); |
||||
} |
||||
@font-face { |
||||
font-family: 'Source Sans Pro'; |
||||
font-style: normal; |
||||
font-weight: 400; |
||||
src: local('Source Sans Pro'), local('SourceSansPro-Regular'), url('../fonts/sourcesanspro/sourcesanspro.woff') format('woff'); |
||||
} |
||||
@font-face { |
||||
font-family: 'Source Sans Pro'; |
||||
font-style: normal; |
||||
font-weight: 700; |
||||
src: local('Source Sans Pro Bold'), local('SourceSansPro-Bold'), url('../fonts/sourcesanspro/sourcesanspro-bold.woff') format('woff'); |
||||
} |
||||
|
||||
@font-face { |
||||
font-family: 'exo_2bold'; |
||||
src: url('../fonts/Exo2-Bold-webfont.eot'); |
||||
src: url('../fonts/Exo2-Bold-webfont.eot?#iefix') format('embedded-opentype'), |
||||
url('../fonts/Exo2-Bold-webfont.woff') format('woff'), |
||||
url('../fonts/Exo2-Bold-webfont.ttf') format('truetype'), |
||||
url('../fonts/Exo2-Bold-webfont.svg#exo_2bold') format('svg'); |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
} |
||||
|
||||
@font-face { |
||||
font-family: 'exo_2light'; |
||||
src: url('../fonts/Exo2-Light-webfont.eot'); |
||||
src: url('../fonts/Exo2-Light-webfont.eot?#iefix') format('embedded-opentype'), |
||||
url('../fonts/Exo2-Light-webfont.woff') format('woff'), |
||||
url('../fonts/Exo2-Light-webfont.ttf') format('truetype'), |
||||
url('../fonts/Exo2-Light-webfont.svg#exo_2light') format('svg'); |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
|
||||
} |
||||
|
||||
@font-face { |
||||
font-family: 'exo_2regular'; |
||||
src: url('../fonts/Exo2-Regular-webfont.eot'); |
||||
src: url('../fonts/Exo2-Regular-webfont.eot?#iefix') format('embedded-opentype'), |
||||
url('../fonts/Exo2-Regular-webfont.woff') format('woff'), |
||||
url('../fonts/Exo2-Regular-webfont.ttf') format('truetype'), |
||||
url('../fonts/Exo2-Regular-webfont.svg#exo_2regular') format('svg'); |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
} |
||||
@ -0,0 +1,11 @@ |
||||
.hc__menu__login{ |
||||
display: none; |
||||
} |
||||
.hc__footer__r{ |
||||
display: none; |
||||
} |
||||
.hc__reply__box__textarea::placeholder{ |
||||
text-align: center; |
||||
} |
||||
*::-webkit-input-placeholder { opacity:0; } |
||||
*::-moz-placeholder { opacity:0; } /* ff 4-18 */ |
||||
@ -0,0 +1,117 @@ |
||||
.ui-widget { |
||||
} |
||||
|
||||
.ui-widget-content { |
||||
border-radius: 3px; |
||||
background: #fff; |
||||
color: #383838; |
||||
} |
||||
|
||||
.ui-dialog { |
||||
overflow:hidden;position:absolute;top:0;left:0;outline:0; z-index: 2001; |
||||
box-shadow: 0 1px 10px rgba(0, 0, 0, .5), -5px 0 10px -23px rgba(0, 0, 0, .8), 5px 0 10px -13px rgba(0, 0, 0, .8), 0 0 0 rgba(0, 0, 0, .3) inset; |
||||
} |
||||
|
||||
#success { |
||||
padding: 0; |
||||
margin: 0; |
||||
} |
||||
|
||||
.ui-dialog .ui-dialog-content { |
||||
position:relative;border:0;padding:.5em 1em;background:none;overflow:auto |
||||
} |
||||
|
||||
.ui-widget-header { |
||||
background:#fff;color:#333;font-weight:bold |
||||
} |
||||
|
||||
.ui-dialog .ui-dialog-titlebar { |
||||
padding: 0.4em 1em; |
||||
position: relative; |
||||
background: #fff; |
||||
color: #666; |
||||
margin: 10px; |
||||
} |
||||
.ui-icon, .ui-widget-content .ui-icon{ |
||||
background-image: url("/static/img/1409200426_delete_remove_close_exit_trash-16.png"); |
||||
} |
||||
.ui-dialog-titlebar-close{ |
||||
position:absolute;right:.5em;top:50%;width:16px;margin:-10px 0 0 0;padding:1px;height:16px;border: 0; |
||||
background: #fff url("/static/img/1409200426_delete_remove_close_exit_trash-16.png") no-repeat; |
||||
cursor: pointer; |
||||
outline: 0; |
||||
} |
||||
.ui-button-icon-only .ui-icon{ |
||||
left: 50%; |
||||
margin-left: -8px; |
||||
} |
||||
.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon{ |
||||
position: absolute; |
||||
top: 50%; |
||||
margin-top: -8px; |
||||
} |
||||
.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1000;} |
||||
.ui-widget-overlay { |
||||
<!--background: #666666 url("/static/img/ui-bg_diagonals-thick_20_666666_40x40.png") 50% 50% repeat;--> |
||||
background: none; |
||||
opacity: .5; |
||||
filter: Alpha(Opacity=50); |
||||
} |
||||
.ui-button{ |
||||
display: inline-block; |
||||
position: relative; |
||||
padding: 0; |
||||
line-height: normal; |
||||
margin-right: .1em; |
||||
cursor: pointer; |
||||
vertical-align: middle; |
||||
text-align: center; |
||||
overflow: visible; |
||||
} |
||||
.ui-dialog .ui-dialog-buttonpane button { |
||||
margin: .5em .4em .5em 0; |
||||
cursor: pointer; |
||||
font-family: Arial, sans-serif; |
||||
padding: 7px; |
||||
color: #666; |
||||
border: 1px solid #ccc; |
||||
font-weight: bold; |
||||
background: rgba(0, 0, 0, .4); |
||||
background: -webkit-linear-gradient(top, rgba(0, 0, 0, .2) 0, rgba(0, 0, 0, .4) 100%); |
||||
background: -moz-linear-gradient(top, rgba(0, 0, 0, .2) 0, rgba(0, 0, 0, .4) 100%); |
||||
background: -o-linear-gradient(top, rgba(0, 0, 0, .2) 0, rgba(0, 0, 0, .4) 100%); |
||||
background: linear-gradient(to bottom, rgba(0, 0, 0, .2) 0, rgba(0, 0, 0, .4) 100%); |
||||
-moz-box-shadow: 0 1px 0 rgba(0, 0, 0, .07); |
||||
box-shadow: 0 1px 0 rgba(0, 0, 0, .07); |
||||
border-radius: 3px; |
||||
background: #fff; |
||||
background: -webkit-linear-gradient(top, #fff 0, #eee 100%); |
||||
background: -moz-linear-gradient(top, #fff 0, #eee 100%); |
||||
background: -o-linear-gradient(top, #fff 0, #eee 100%); |
||||
background: linear-gradient(to bottom, #fff 0, #eee 100%); |
||||
border-radius: 2px; |
||||
outline: 0; |
||||
} |
||||
.ui-dialog .ui-dialog-buttonpane button:hover{ |
||||
color: #333; |
||||
} |
||||
.validateTips { |
||||
background: #ffc; |
||||
min-height: 15px; |
||||
width: 100%; |
||||
padding: 2%; |
||||
font-size: 13px; |
||||
text-align: justify; |
||||
color: green; |
||||
margin-bottom: 5px; |
||||
} |
||||
.ui-dialog-buttonpane{ |
||||
background: #f1f1f1; |
||||
padding: 0 1em; |
||||
border-top: 1px solid #ccc; |
||||
border-radius: 0; |
||||
} |
||||
.noclose .ui-dialog-titlebar-close |
||||
{ |
||||
display:none; |
||||
} |
||||
@ -0,0 +1,6 @@ |
||||
/*! jQuery UI - v1.11.4 - 2016-06-14 |
||||
* http://jqueryui.com |
||||
* Includes: core.css, autocomplete.css, menu.css |
||||
* Copyright jQuery Foundation and other contributors; Licensed MIT */ |
||||
|
||||
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0} |
||||
@ -0,0 +1,5 @@ |
||||
/*! jQuery UI - v1.11.4 - 2016-06-14 |
||||
* http://jqueryui.com |
||||
* Copyright jQuery Foundation and other contributors; Licensed MIT */ |
||||
|
||||
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:none}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{position:relative;margin:0;padding:3px 1em 3px .4em;cursor:pointer;min-height:0;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0} |
||||
@ -0,0 +1,171 @@ |
||||
/* jquery.Jcrop.css v0.9.12 - MIT License */ |
||||
/* |
||||
The outer-most container in a typical Jcrop instance |
||||
If you are having difficulty with formatting related to styles |
||||
on a parent element, place any fixes here or in a like selector |
||||
|
||||
You can also style this element if you want to add a border, etc |
||||
A better method for styling can be seen below with .jcrop-light |
||||
(Add a class to the holder and style elements for that extended class) |
||||
*/ |
||||
.jcrop-holder { |
||||
direction: ltr; |
||||
text-align: left; |
||||
margin: 0 auto; |
||||
border-radius: 5px; |
||||
padding: 10px; |
||||
} |
||||
.jcrop-keymgr{ |
||||
display: none; |
||||
} |
||||
/* Selection Border */ |
||||
.jcrop-vline, |
||||
.jcrop-hline { |
||||
background: #ffffff url("/static/img/Jcrop.gif"); |
||||
font-size: 0; |
||||
position: absolute; |
||||
} |
||||
.jcrop-vline { |
||||
height: 100%; |
||||
width: 1px !important; |
||||
} |
||||
.jcrop-vline.right { |
||||
right: 0; |
||||
} |
||||
.jcrop-hline { |
||||
height: 1px !important; |
||||
width: 100%; |
||||
} |
||||
.jcrop-hline.bottom { |
||||
bottom: 0; |
||||
} |
||||
/* Invisible click targets */ |
||||
.jcrop-tracker { |
||||
height: 100%; |
||||
width: 100%; |
||||
/* "turn off" link highlight */ |
||||
-webkit-tap-highlight-color: transparent; |
||||
/* disable callout, image save panel */ |
||||
-webkit-touch-callout: none; |
||||
/* disable cut copy paste */ |
||||
-webkit-user-select: none; |
||||
} |
||||
/* Selection Handles */ |
||||
.jcrop-handle { |
||||
background-color: #333333; |
||||
border: 1px #eeeeee solid; |
||||
width: 7px; |
||||
height: 7px; |
||||
font-size: 1px; |
||||
} |
||||
.jcrop-handle.ord-n { |
||||
left: 50%; |
||||
margin-left: -4px; |
||||
margin-top: -4px; |
||||
top: 0; |
||||
} |
||||
.jcrop-handle.ord-s { |
||||
bottom: 0; |
||||
left: 50%; |
||||
margin-bottom: -4px; |
||||
margin-left: -4px; |
||||
} |
||||
.jcrop-handle.ord-e { |
||||
margin-right: -4px; |
||||
margin-top: -4px; |
||||
right: 0; |
||||
top: 50%; |
||||
} |
||||
.jcrop-handle.ord-w { |
||||
left: 0; |
||||
margin-left: -4px; |
||||
margin-top: -4px; |
||||
top: 50%; |
||||
} |
||||
.jcrop-handle.ord-nw { |
||||
left: 0; |
||||
margin-left: -4px; |
||||
margin-top: -4px; |
||||
top: 0; |
||||
} |
||||
.jcrop-handle.ord-ne { |
||||
margin-right: -4px; |
||||
margin-top: -4px; |
||||
right: 0; |
||||
top: 0; |
||||
} |
||||
.jcrop-handle.ord-se { |
||||
bottom: 0; |
||||
margin-bottom: -4px; |
||||
margin-right: -4px; |
||||
right: 0; |
||||
} |
||||
.jcrop-handle.ord-sw { |
||||
bottom: 0; |
||||
left: 0; |
||||
margin-bottom: -4px; |
||||
margin-left: -4px; |
||||
} |
||||
/* Dragbars */ |
||||
.jcrop-dragbar.ord-n, |
||||
.jcrop-dragbar.ord-s { |
||||
height: 7px; |
||||
width: 100%; |
||||
} |
||||
.jcrop-dragbar.ord-e, |
||||
.jcrop-dragbar.ord-w { |
||||
height: 100%; |
||||
width: 7px; |
||||
} |
||||
.jcrop-dragbar.ord-n { |
||||
margin-top: -4px; |
||||
} |
||||
.jcrop-dragbar.ord-s { |
||||
bottom: 0; |
||||
margin-bottom: -4px; |
||||
} |
||||
.jcrop-dragbar.ord-e { |
||||
margin-right: -4px; |
||||
right: 0; |
||||
} |
||||
.jcrop-dragbar.ord-w { |
||||
margin-left: -4px; |
||||
} |
||||
/* The "jcrop-light" class/extension */ |
||||
.jcrop-light .jcrop-vline, |
||||
.jcrop-light .jcrop-hline { |
||||
background: #ffffff; |
||||
filter: alpha(opacity=70) !important; |
||||
opacity: .70!important; |
||||
} |
||||
.jcrop-light .jcrop-handle { |
||||
-moz-border-radius: 3px; |
||||
-webkit-border-radius: 3px; |
||||
background-color: #000000; |
||||
border-color: #ffffff; |
||||
border-radius: 3px; |
||||
} |
||||
/* The "jcrop-dark" class/extension */ |
||||
.jcrop-dark .jcrop-vline, |
||||
.jcrop-dark .jcrop-hline { |
||||
background: #000000; |
||||
filter: alpha(opacity=70) !important; |
||||
opacity: 0.7 !important; |
||||
} |
||||
.jcrop-dark .jcrop-handle { |
||||
-moz-border-radius: 3px; |
||||
-webkit-border-radius: 3px; |
||||
background-color: #ffffff; |
||||
border-color: #000000; |
||||
border-radius: 3px; |
||||
} |
||||
/* Simple macro to turn off the antlines */ |
||||
.solid-line .jcrop-vline, |
||||
.solid-line .jcrop-hline { |
||||
background: #ffffff; |
||||
} |
||||
/* Fix for twitter bootstrap et al. */ |
||||
.jcrop-holder img, |
||||
img.jcrop-preview { |
||||
max-width: none; |
||||
} |
||||
@ -0,0 +1,274 @@ |
||||
/*! fancyBox v2.1.5 fancyapps.com | fancyapps.com/fancybox/#license */ |
||||
.fancybox-wrap, |
||||
.fancybox-skin, |
||||
.fancybox-outer, |
||||
.fancybox-inner, |
||||
.fancybox-image, |
||||
.fancybox-wrap iframe, |
||||
.fancybox-wrap object, |
||||
.fancybox-nav, |
||||
.fancybox-nav span, |
||||
.fancybox-tmp |
||||
{ |
||||
padding: 0; |
||||
margin: 0; |
||||
border: 0; |
||||
outline: none; |
||||
vertical-align: top; |
||||
} |
||||
|
||||
.fancybox-wrap { |
||||
position: absolute; |
||||
top: 0; |
||||
left: 0; |
||||
z-index: 8020; |
||||
} |
||||
|
||||
.fancybox-skin { |
||||
position: relative; |
||||
background: #f9f9f9; |
||||
color: #444; |
||||
text-shadow: none; |
||||
-webkit-border-radius: 4px; |
||||
-moz-border-radius: 4px; |
||||
border-radius: 4px; |
||||
} |
||||
|
||||
.fancybox-opened { |
||||
z-index: 8030; |
||||
} |
||||
|
||||
.fancybox-opened .fancybox-skin { |
||||
-webkit-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); |
||||
-moz-box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); |
||||
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5); |
||||
} |
||||
|
||||
.fancybox-outer, .fancybox-inner { |
||||
position: relative; |
||||
} |
||||
|
||||
.fancybox-inner { |
||||
overflow: hidden; |
||||
} |
||||
|
||||
.fancybox-type-iframe .fancybox-inner { |
||||
-webkit-overflow-scrolling: touch; |
||||
} |
||||
|
||||
.fancybox-error { |
||||
color: #444; |
||||
font: 14px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; |
||||
margin: 0; |
||||
padding: 15px; |
||||
white-space: nowrap; |
||||
} |
||||
|
||||
.fancybox-image, .fancybox-iframe { |
||||
display: block; |
||||
width: 100%; |
||||
height: 100%; |
||||
} |
||||
|
||||
.fancybox-image { |
||||
max-width: 100%; |
||||
max-height: 100%; |
||||
} |
||||
|
||||
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { |
||||
background-image: url('/static/img/fancybox_sprite.png'); |
||||
} |
||||
|
||||
#fancybox-loading { |
||||
position: fixed; |
||||
top: 50%; |
||||
left: 50%; |
||||
margin-top: -22px; |
||||
margin-left: -22px; |
||||
background-position: 0 -108px; |
||||
opacity: 0.8; |
||||
cursor: pointer; |
||||
z-index: 8060; |
||||
} |
||||
|
||||
#fancybox-loading div { |
||||
width: 44px; |
||||
height: 44px; |
||||
background: url('/static/img/fancybox_loading.gif') center center no-repeat; |
||||
} |
||||
|
||||
.fancybox-close { |
||||
position: absolute; |
||||
top: -18px; |
||||
right: -18px; |
||||
width: 36px; |
||||
height: 36px; |
||||
cursor: pointer; |
||||
z-index: 8040; |
||||
} |
||||
|
||||
.fancybox-nav { |
||||
position: absolute; |
||||
top: 0; |
||||
width: 40%; |
||||
height: 100%; |
||||
cursor: pointer; |
||||
text-decoration: none; |
||||
background: transparent url('/static/img/blank.gif'); /* helps IE */ |
||||
-webkit-tap-highlight-color: rgba(0,0,0,0); |
||||
z-index: 8040; |
||||
} |
||||
|
||||
.fancybox-prev { |
||||
left: 0; |
||||
} |
||||
|
||||
.fancybox-next { |
||||
right: 0; |
||||
} |
||||
|
||||
.fancybox-nav span { |
||||
position: absolute; |
||||
top: 50%; |
||||
width: 36px; |
||||
height: 34px; |
||||
margin-top: -18px; |
||||
cursor: pointer; |
||||
z-index: 8040; |
||||
visibility: hidden; |
||||
} |
||||
|
||||
.fancybox-prev span { |
||||
left: 10px; |
||||
background-position: 0 -36px; |
||||
} |
||||
|
||||
.fancybox-next span { |
||||
right: 10px; |
||||
background-position: 0 -72px; |
||||
} |
||||
|
||||
.fancybox-nav:hover span { |
||||
visibility: visible; |
||||
} |
||||
|
||||
.fancybox-tmp { |
||||
position: absolute; |
||||
top: -99999px; |
||||
left: -99999px; |
||||
visibility: hidden; |
||||
max-width: 99999px; |
||||
max-height: 99999px; |
||||
overflow: visible !important; |
||||
} |
||||
|
||||
/* Overlay helper */ |
||||
|
||||
.fancybox-lock { |
||||
overflow: hidden !important; |
||||
width: auto; |
||||
} |
||||
|
||||
.fancybox-lock body { |
||||
overflow: hidden !important; |
||||
} |
||||
|
||||
.fancybox-lock-test { |
||||
overflow-y: hidden !important; |
||||
} |
||||
|
||||
.fancybox-overlay { |
||||
position: absolute; |
||||
top: 0; |
||||
left: 0; |
||||
overflow: hidden; |
||||
display: none; |
||||
z-index: 8010; |
||||
background: url('/static/img/fancybox_overlay.png'); |
||||
} |
||||
|
||||
.fancybox-overlay-fixed { |
||||
position: fixed; |
||||
bottom: 0; |
||||
right: 0; |
||||
} |
||||
|
||||
.fancybox-lock .fancybox-overlay { |
||||
overflow: auto; |
||||
overflow-y: scroll; |
||||
} |
||||
|
||||
/* Title helper */ |
||||
|
||||
.fancybox-title { |
||||
visibility: hidden; |
||||
font: normal 13px/20px "Helvetica Neue",Helvetica,Arial,sans-serif; |
||||
position: relative; |
||||
text-shadow: none; |
||||
z-index: 8050; |
||||
} |
||||
|
||||
.fancybox-opened .fancybox-title { |
||||
visibility: visible; |
||||
} |
||||
|
||||
.fancybox-title-float-wrap { |
||||
position: absolute; |
||||
bottom: 0; |
||||
right: 50%; |
||||
margin-bottom: -35px; |
||||
z-index: 8050; |
||||
text-align: center; |
||||
} |
||||
|
||||
.fancybox-title-float-wrap .child { |
||||
display: inline-block; |
||||
margin-right: -100%; |
||||
padding: 2px 20px; |
||||
background: transparent; /* Fallback for web browsers that doesn't support RGBa */ |
||||
background: rgba(0, 0, 0, 0.8); |
||||
-webkit-border-radius: 15px; |
||||
-moz-border-radius: 15px; |
||||
border-radius: 15px; |
||||
text-shadow: 0 1px 2px #222; |
||||
color: #FFF; |
||||
font-weight: bold; |
||||
line-height: 24px; |
||||
white-space: nowrap; |
||||
} |
||||
|
||||
.fancybox-title-outside-wrap { |
||||
position: relative; |
||||
margin-top: 10px; |
||||
color: #fff; |
||||
} |
||||
|
||||
.fancybox-title-inside-wrap { |
||||
padding-top: 10px; |
||||
} |
||||
|
||||
.fancybox-title-over-wrap { |
||||
position: absolute; |
||||
bottom: 0; |
||||
left: 0; |
||||
color: #fff; |
||||
padding: 10px; |
||||
background: #000; |
||||
background: rgba(0, 0, 0, .8); |
||||
} |
||||
|
||||
/*Retina graphics!*/ |
||||
@media only screen and (-webkit-min-device-pixel-ratio: 1.5), |
||||
only screen and (min--moz-device-pixel-ratio: 1.5), |
||||
only screen and (min-device-pixel-ratio: 1.5){ |
||||
|
||||
#fancybox-loading, .fancybox-close, .fancybox-prev span, .fancybox-next span { |
||||
background-image: url('/static/img/fancybox_sprite@2x.png'); |
||||
background-size: 44px 152px; /*The size of the normal image, half the size of the hi-res image*/ |
||||
} |
||||
|
||||
#fancybox-loading div { |
||||
background-image: url('/static/img/fancybox_loading@2x.gif'); |
||||
background-size: 24px 24px; /*The size of the normal image, half the size of the hi-res image*/ |
||||
} |
||||
} |
||||
@ -0,0 +1 @@ |
||||
.kladr-error{color:#cb3e27}#kladr_autocomplete ul{position:absolute;display:block;margin:0;padding:0;border:1px solid #c4c4c4;background-color:#fff;z-index:9999;overflow-x:hidden;overflow-y:auto;min-width:200px;max-height:420px;color:#313131}#kladr_autocomplete li{display:list-item;list-style-type:none;margin:0;padding:8px 10px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#kladr_autocomplete li+li{border-top:1px solid #ededed}#kladr_autocomplete li:hover{background-color:#f2f2f2;cursor:pointer}#kladr_autocomplete li.active{background-color:#e9e9e9}#kladr_autocomplete a{text-decoration:none}#kladr_autocomplete strong{color:#038ebd}#kladr_autocomplete .spinner{position:absolute;display:block;margin:0;padding:0;width:16px;height:16px;background:url("/static/img/spinner.png") center center no-repeat;z-index:9999} |
||||
@ -0,0 +1,39 @@ |
||||
.chart { |
||||
} |
||||
.pieTip { |
||||
z-index: 2100; |
||||
position: absolute; |
||||
float: left; |
||||
min-width: 30px; |
||||
max-width: 300px; |
||||
padding: 5px 18px 6px; |
||||
border-radius: 2px; |
||||
background: rgba(255,255,255,.97); |
||||
color: #444; |
||||
font-size: 15px; |
||||
text-shadow: 0 1px 0 #fff; |
||||
text-transform: uppercase; |
||||
text-align: center; |
||||
line-height: 1.3; |
||||
letter-spacing: .06em; |
||||
box-shadow: 0 0 3px rgba(0,0,0,0.2), 0 1px 2px rgba(0,0,0,0.5); |
||||
-webkit-transform: all .3s; |
||||
-moz-transform: all .3s; |
||||
-ms-transform: all .3s; |
||||
-o-transform: all .3s; |
||||
transform: all .3s; |
||||
pointer-events: none; |
||||
} |
||||
.pieTip:after { |
||||
position: absolute; |
||||
left: 50%; |
||||
bottom: -6px; |
||||
content: ""; |
||||
height: 0; |
||||
margin: 0 0 0 -6px; |
||||
border-right: 5px solid transparent; |
||||
border-left: 5px solid transparent; |
||||
border-top: 6px solid rgba(255,255,255,.95); |
||||
line-height: 0; |
||||
} |
||||
.chart path { cursor: pointer; } |
||||
@ -0,0 +1,4 @@ |
||||
@charset "UTF-8"; |
||||
|
||||
@import 'fonticon'; |
||||
@import 'editor'; |
||||
@ -0,0 +1,754 @@ |
||||
@font-face { |
||||
font-family: 'simple-line-icons'; |
||||
src: url('../fonts/Simple-Line-Icons.eot?-i3a2kk'); |
||||
src: url('../fonts/Simple-Line-Icons.eot?#iefix-i3a2kk') format('embedded-opentype'), url('../fonts/Simple-Line-Icons.ttf?-i3a2kk') format('truetype'), url('../fonts/Simple-Line-Icons.woff2?-i3a2kk') format('woff2'), url('../fonts/Simple-Line-Icons.woff?-i3a2kk') format('woff'), url('../fonts/Simple-Line-Icons.svg?-i3a2kk#simple-line-icons') format('svg'); |
||||
font-weight: normal; |
||||
font-style: normal; |
||||
} |
||||
/* |
||||
Use the following CSS code if you want to have a class per icon. |
||||
Instead of a list of all class selectors, you can use the generic [class*="icon-"] selector, but it's slower: |
||||
*/ |
||||
.icon-user, |
||||
.icon-people, |
||||
.icon-user-female, |
||||
.icon-user-follow, |
||||
.icon-user-following, |
||||
.icon-user-unfollow, |
||||
.icon-login, |
||||
.icon-logout, |
||||
.icon-emotsmile, |
||||
.icon-phone, |
||||
.icon-call-end, |
||||
.icon-call-in, |
||||
.icon-call-out, |
||||
.icon-map, |
||||
.icon-location-pin, |
||||
.icon-direction, |
||||
.icon-directions, |
||||
.icon-compass, |
||||
.icon-layers, |
||||
.icon-menu, |
||||
.icon-list, |
||||
.icon-options-vertical, |
||||
.icon-options, |
||||
.icon-arrow-down, |
||||
.icon-arrow-left, |
||||
.icon-arrow-right, |
||||
.icon-arrow-up, |
||||
.icon-arrow-up-circle, |
||||
.icon-arrow-left-circle, |
||||
.icon-arrow-right-circle, |
||||
.icon-arrow-down-circle, |
||||
.icon-check, |
||||
.icon-clock, |
||||
.icon-plus, |
||||
.icon-close, |
||||
.icon-trophy, |
||||
.icon-screen-smartphone, |
||||
.icon-screen-desktop, |
||||
.icon-plane, |
||||
.icon-notebook, |
||||
.icon-mustache, |
||||
.icon-mouse, |
||||
.icon-magnet, |
||||
.icon-energy, |
||||
.icon-disc, |
||||
.icon-cursor, |
||||
.icon-cursor-move, |
||||
.icon-crop, |
||||
.icon-chemistry, |
||||
.icon-speedometer, |
||||
.icon-shield, |
||||
.icon-screen-tablet, |
||||
.icon-magic-wand, |
||||
.icon-hourglass, |
||||
.icon-graduation, |
||||
.icon-ghost, |
||||
.icon-game-controller, |
||||
.icon-fire, |
||||
.icon-eyeglass, |
||||
.icon-envelope-open, |
||||
.icon-envelope-letter, |
||||
.icon-bell, |
||||
.icon-badge, |
||||
.icon-anchor, |
||||
.icon-wallet, |
||||
.icon-vector, |
||||
.icon-speech, |
||||
.icon-puzzle, |
||||
.icon-printer, |
||||
.icon-present, |
||||
.icon-playlist, |
||||
.icon-pin, |
||||
.icon-picture, |
||||
.icon-handbag, |
||||
.icon-globe-alt, |
||||
.icon-globe, |
||||
.icon-folder-alt, |
||||
.icon-folder, |
||||
.icon-film, |
||||
.icon-feed, |
||||
.icon-drop, |
||||
.icon-drawar, |
||||
.icon-docs, |
||||
.icon-doc, |
||||
.icon-diamond, |
||||
.icon-cup, |
||||
.icon-calculator, |
||||
.icon-bubbles, |
||||
.icon-briefcase, |
||||
.icon-book-open, |
||||
.icon-basket-loaded, |
||||
.icon-basket, |
||||
.icon-bag, |
||||
.icon-action-undo, |
||||
.icon-action-redo, |
||||
.icon-wrench, |
||||
.icon-umbrella, |
||||
.icon-trash, |
||||
.icon-tag, |
||||
.icon-support, |
||||
.icon-frame, |
||||
.icon-size-fullscreen, |
||||
.icon-size-actual, |
||||
.icon-shuffle, |
||||
.icon-share-alt, |
||||
.icon-share, |
||||
.icon-rocket, |
||||
.icon-question, |
||||
.icon-pie-chart, |
||||
.icon-pencil, |
||||
.icon-note, |
||||
.icon-loop, |
||||
.icon-home, |
||||
.icon-grid, |
||||
.icon-graph, |
||||
.icon-microphone, |
||||
.icon-music-tone-alt, |
||||
.icon-music-tone, |
||||
.icon-earphones-alt, |
||||
.icon-earphones, |
||||
.icon-equalizer, |
||||
.icon-like, |
||||
.icon-dislike, |
||||
.icon-control-start, |
||||
.icon-control-rewind, |
||||
.icon-control-play, |
||||
.icon-control-pause, |
||||
.icon-control-forward, |
||||
.icon-control-end, |
||||
.icon-volume-1, |
||||
.icon-volume-2, |
||||
.icon-volume-off, |
||||
.icon-calender, |
||||
.icon-bulb, |
||||
.icon-chart, |
||||
.icon-ban, |
||||
.icon-bubble, |
||||
.icon-camrecorder, |
||||
.icon-camera, |
||||
.icon-cloud-download, |
||||
.icon-cloud-upload, |
||||
.icon-envelope, |
||||
.icon-eye, |
||||
.icon-flag, |
||||
.icon-heart, |
||||
.icon-info, |
||||
.icon-key, |
||||
.icon-link, |
||||
.icon-lock, |
||||
.icon-lock-open, |
||||
.icon-magnifier, |
||||
.icon-magnifier-add, |
||||
.icon-magnifier-remove, |
||||
.icon-paper-clip, |
||||
.icon-paper-plane, |
||||
.icon-power, |
||||
.icon-refresh, |
||||
.icon-reload, |
||||
.icon-settings, |
||||
.icon-star, |
||||
.icon-symble-female, |
||||
.icon-symbol-male, |
||||
.icon-target, |
||||
.icon-credit-card, |
||||
.icon-paypal, |
||||
.icon-social-tumblr, |
||||
.icon-social-twitter, |
||||
.icon-social-facebook, |
||||
.icon-social-instagram, |
||||
.icon-social-linkedin, |
||||
.icon-social-pintarest, |
||||
.icon-social-github, |
||||
.icon-social-gplus, |
||||
.icon-social-reddit, |
||||
.icon-social-skype, |
||||
.icon-social-dribbble, |
||||
.icon-social-behance, |
||||
.icon-social-foursqare, |
||||
.icon-social-soundcloud, |
||||
.icon-social-spotify, |
||||
.icon-social-stumbleupon, |
||||
.icon-social-youtube, |
||||
.icon-social-dropbox { |
||||
font-family: 'simple-line-icons'; |
||||
speak: none; |
||||
font-style: normal; |
||||
font-weight: normal; |
||||
font-variant: normal; |
||||
text-transform: none; |
||||
line-height: 1; |
||||
/* Better Font Rendering =========== */ |
||||
-webkit-font-smoothing: antialiased; |
||||
-moz-osx-font-smoothing: grayscale; |
||||
} |
||||
.icon-user:before { |
||||
content: "\e005"; |
||||
} |
||||
.icon-people:before { |
||||
content: "\e001"; |
||||
} |
||||
.icon-user-female:before { |
||||
content: "\e000"; |
||||
} |
||||
.icon-user-follow:before { |
||||
content: "\e002"; |
||||
} |
||||
.icon-user-following:before { |
||||
content: "\e003"; |
||||
} |
||||
.icon-user-unfollow:before { |
||||
content: "\e004"; |
||||
} |
||||
.icon-login:before { |
||||
content: "\e066"; |
||||
} |
||||
.icon-logout:before { |
||||
content: "\e065"; |
||||
} |
||||
.icon-emotsmile:before { |
||||
content: "\e021"; |
||||
} |
||||
.icon-phone:before { |
||||
content: "\e600"; |
||||
} |
||||
.icon-call-end:before { |
||||
content: "\e048"; |
||||
} |
||||
.icon-call-in:before { |
||||
content: "\e047"; |
||||
} |
||||
.icon-call-out:before { |
||||
content: "\e046"; |
||||
} |
||||
.icon-map:before { |
||||
content: "\e033"; |
||||
} |
||||
.icon-location-pin:before { |
||||
content: "\e096"; |
||||
} |
||||
.icon-direction:before { |
||||
content: "\e042"; |
||||
} |
||||
.icon-directions:before { |
||||
content: "\e041"; |
||||
} |
||||
.icon-compass:before { |
||||
content: "\e045"; |
||||
} |
||||
.icon-layers:before { |
||||
content: "\e034"; |
||||
} |
||||
.icon-menu:before { |
||||
content: "\e601"; |
||||
} |
||||
.icon-list:before { |
||||
content: "\e067"; |
||||
} |
||||
.icon-options-vertical:before { |
||||
content: "\e602"; |
||||
} |
||||
.icon-options:before { |
||||
content: "\e603"; |
||||
} |
||||
.icon-arrow-down:before { |
||||
content: "\e604"; |
||||
} |
||||
.icon-arrow-left:before { |
||||
content: "\e605"; |
||||
} |
||||
.icon-arrow-right:before { |
||||
content: "\e606"; |
||||
} |
||||
.icon-arrow-up:before { |
||||
content: "\e607"; |
||||
} |
||||
.icon-arrow-up-circle:before { |
||||
content: "\e078"; |
||||
} |
||||
.icon-arrow-left-circle:before { |
||||
content: "\e07a"; |
||||
} |
||||
.icon-arrow-right-circle:before { |
||||
content: "\e079"; |
||||
} |
||||
.icon-arrow-down-circle:before { |
||||
content: "\e07b"; |
||||
} |
||||
.icon-check:before { |
||||
content: "\e080"; |
||||
} |
||||
.icon-clock:before { |
||||
content: "\e081"; |
||||
} |
||||
.icon-plus:before { |
||||
content: "\e095"; |
||||
} |
||||
.icon-close:before { |
||||
content: "\e082"; |
||||
} |
||||
.icon-trophy:before { |
||||
content: "\e006"; |
||||
} |
||||
.icon-screen-smartphone:before { |
||||
content: "\e010"; |
||||
} |
||||
.icon-screen-desktop:before { |
||||
content: "\e011"; |
||||
} |
||||
.icon-plane:before { |
||||
content: "\e012"; |
||||
} |
||||
.icon-notebook:before { |
||||
content: "\e013"; |
||||
} |
||||
.icon-mustache:before { |
||||
content: "\e014"; |
||||
} |
||||
.icon-mouse:before { |
||||
content: "\e015"; |
||||
} |
||||
.icon-magnet:before { |
||||
content: "\e016"; |
||||
} |
||||
.icon-energy:before { |
||||
content: "\e020"; |
||||
} |
||||
.icon-disc:before { |
||||
content: "\e022"; |
||||
} |
||||
.icon-cursor:before { |
||||
content: "\e06e"; |
||||
} |
||||
.icon-cursor-move:before { |
||||
content: "\e023"; |
||||
} |
||||
.icon-crop:before { |
||||
content: "\e024"; |
||||
} |
||||
.icon-chemistry:before { |
||||
content: "\e026"; |
||||
} |
||||
.icon-speedometer:before { |
||||
content: "\e007"; |
||||
} |
||||
.icon-shield:before { |
||||
content: "\e00e"; |
||||
} |
||||
.icon-screen-tablet:before { |
||||
content: "\e00f"; |
||||
} |
||||
.icon-magic-wand:before { |
||||
content: "\e017"; |
||||
} |
||||
.icon-hourglass:before { |
||||
content: "\e018"; |
||||
} |
||||
.icon-graduation:before { |
||||
content: "\e019"; |
||||
} |
||||
.icon-ghost:before { |
||||
content: "\e01a"; |
||||
} |
||||
.icon-game-controller:before { |
||||
content: "\e01b"; |
||||
} |
||||
.icon-fire:before { |
||||
content: "\e01c"; |
||||
} |
||||
.icon-eyeglass:before { |
||||
content: "\e01d"; |
||||
} |
||||
.icon-envelope-open:before { |
||||
content: "\e01e"; |
||||
} |
||||
.icon-envelope-letter:before { |
||||
content: "\e01f"; |
||||
} |
||||
.icon-bell:before { |
||||
content: "\e027"; |
||||
} |
||||
.icon-badge:before { |
||||
content: "\e028"; |
||||
} |
||||
.icon-anchor:before { |
||||
content: "\e029"; |
||||
} |
||||
.icon-wallet:before { |
||||
content: "\e02a"; |
||||
} |
||||
.icon-vector:before { |
||||
content: "\e02b"; |
||||
} |
||||
.icon-speech:before { |
||||
content: "\e02c"; |
||||
} |
||||
.icon-puzzle:before { |
||||
content: "\e02d"; |
||||
} |
||||
.icon-printer:before { |
||||
content: "\e02e"; |
||||
} |
||||
.icon-present:before { |
||||
content: "\e02f"; |
||||
} |
||||
.icon-playlist:before { |
||||
content: "\e030"; |
||||
} |
||||
.icon-pin:before { |
||||
content: "\e031"; |
||||
} |
||||
.icon-picture:before { |
||||
content: "\e032"; |
||||
} |
||||
.icon-handbag:before { |
||||
content: "\e035"; |
||||
} |
||||
.icon-globe-alt:before { |
||||
content: "\e036"; |
||||
} |
||||
.icon-globe:before { |
||||
content: "\e037"; |
||||
} |
||||
.icon-folder-alt:before { |
||||
content: "\e039"; |
||||
} |
||||
.icon-folder:before { |
||||
content: "\e089"; |
||||
} |
||||
.icon-film:before { |
||||
content: "\e03a"; |
||||
} |
||||
.icon-feed:before { |
||||
content: "\e03b"; |
||||
} |
||||
.icon-drop:before { |
||||
content: "\e03e"; |
||||
} |
||||
.icon-drawar:before { |
||||
content: "\e03f"; |
||||
} |
||||
.icon-docs:before { |
||||
content: "\e040"; |
||||
} |
||||
.icon-doc:before { |
||||
content: "\e085"; |
||||
} |
||||
.icon-diamond:before { |
||||
content: "\e043"; |
||||
} |
||||
.icon-cup:before { |
||||
content: "\e044"; |
||||
} |
||||
.icon-calculator:before { |
||||
content: "\e049"; |
||||
} |
||||
.icon-bubbles:before { |
||||
content: "\e04a"; |
||||
} |
||||
.icon-briefcase:before { |
||||
content: "\e04b"; |
||||
} |
||||
.icon-book-open:before { |
||||
content: "\e04c"; |
||||
} |
||||
.icon-basket-loaded:before { |
||||
content: "\e04d"; |
||||
} |
||||
.icon-basket:before { |
||||
content: "\e04e"; |
||||
} |
||||
.icon-bag:before { |
||||
content: "\e04f"; |
||||
} |
||||
.icon-action-undo:before { |
||||
content: "\e050"; |
||||
} |
||||
.icon-action-redo:before { |
||||
content: "\e051"; |
||||
} |
||||
.icon-wrench:before { |
||||
content: "\e052"; |
||||
} |
||||
.icon-umbrella:before { |
||||
content: "\e053"; |
||||
} |
||||
.icon-trash:before { |
||||
content: "\e054"; |
||||
} |
||||
.icon-tag:before { |
||||
content: "\e055"; |
||||
} |
||||
.icon-support:before { |
||||
content: "\e056"; |
||||
} |
||||
.icon-frame:before { |
||||
content: "\e038"; |
||||
} |
||||
.icon-size-fullscreen:before { |
||||
content: "\e057"; |
||||
} |
||||
.icon-size-actual:before { |
||||
content: "\e058"; |
||||
} |
||||
.icon-shuffle:before { |
||||
content: "\e059"; |
||||
} |
||||
.icon-share-alt:before { |
||||
content: "\e05a"; |
||||
} |
||||
.icon-share:before { |
||||
content: "\e05b"; |
||||
} |
||||
.icon-rocket:before { |
||||
content: "\e05c"; |
||||
} |
||||
.icon-question:before { |
||||
content: "\e05d"; |
||||
} |
||||
.icon-pie-chart:before { |
||||
content: "\e05e"; |
||||
} |
||||
.icon-pencil:before { |
||||
content: "\e05f"; |
||||
} |
||||
.icon-note:before { |
||||
content: "\e060"; |
||||
} |
||||
.icon-loop:before { |
||||
content: "\e064"; |
||||
} |
||||
.icon-home:before { |
||||
content: "\e069"; |
||||
} |
||||
.icon-grid:before { |
||||
content: "\e06a"; |
||||
} |
||||
.icon-graph:before { |
||||
content: "\e06b"; |
||||
} |
||||
.icon-microphone:before { |
||||
content: "\e063"; |
||||
} |
||||
.icon-music-tone-alt:before { |
||||
content: "\e061"; |
||||
} |
||||
.icon-music-tone:before { |
||||
content: "\e062"; |
||||
} |
||||
.icon-earphones-alt:before { |
||||
content: "\e03c"; |
||||
} |
||||
.icon-earphones:before { |
||||
content: "\e03d"; |
||||
} |
||||
.icon-equalizer:before { |
||||
content: "\e06c"; |
||||
} |
||||
.icon-like:before { |
||||
content: "\e068"; |
||||
} |
||||
.icon-dislike:before { |
||||
content: "\e06d"; |
||||
} |
||||
.icon-control-start:before { |
||||
content: "\e06f"; |
||||
} |
||||
.icon-control-rewind:before { |
||||
content: "\e070"; |
||||
} |
||||
.icon-control-play:before { |
||||
content: "\e071"; |
||||
} |
||||
.icon-control-pause:before { |
||||
content: "\e072"; |
||||
} |
||||
.icon-control-forward:before { |
||||
content: "\e073"; |
||||
} |
||||
.icon-control-end:before { |
||||
content: "\e074"; |
||||
} |
||||
.icon-volume-1:before { |
||||
content: "\e09f"; |
||||
} |
||||
.icon-volume-2:before { |
||||
content: "\e0a0"; |
||||
} |
||||
.icon-volume-off:before { |
||||
content: "\e0a1"; |
||||
} |
||||
.icon-calender:before { |
||||
content: "\e075"; |
||||
} |
||||
.icon-bulb:before { |
||||
content: "\e076"; |
||||
} |
||||
.icon-chart:before { |
||||
content: "\e077"; |
||||
} |
||||
.icon-ban:before { |
||||
content: "\e07c"; |
||||
} |
||||
.icon-bubble:before { |
||||
content: "\e07d"; |
||||
} |
||||
.icon-camrecorder:before { |
||||
content: "\e07e"; |
||||
} |
||||
.icon-camera:before { |
||||
content: "\e07f"; |
||||
} |
||||
.icon-cloud-download:before { |
||||
content: "\e083"; |
||||
} |
||||
.icon-cloud-upload:before { |
||||
content: "\e084"; |
||||
} |
||||
.icon-envelope:before { |
||||
content: "\e086"; |
||||
} |
||||
.icon-eye:before { |
||||
content: "\e087"; |
||||
} |
||||
.icon-flag:before { |
||||
content: "\e088"; |
||||
} |
||||
.icon-heart:before { |
||||
content: "\e08a"; |
||||
} |
||||
.icon-info:before { |
||||
content: "\e08b"; |
||||
} |
||||
.icon-key:before { |
||||
content: "\e08c"; |
||||
} |
||||
.icon-link:before { |
||||
content: "\e08d"; |
||||
} |
||||
.icon-lock:before { |
||||
content: "\e08e"; |
||||
} |
||||
.icon-lock-open:before { |
||||
content: "\e08f"; |
||||
} |
||||
.icon-magnifier:before { |
||||
content: "\e090"; |
||||
} |
||||
.icon-magnifier-add:before { |
||||
content: "\e091"; |
||||
} |
||||
.icon-magnifier-remove:before { |
||||
content: "\e092"; |
||||
} |
||||
.icon-paper-clip:before { |
||||
content: "\e093"; |
||||
} |
||||
.icon-paper-plane:before { |
||||
content: "\e094"; |
||||
} |
||||
.icon-power:before { |
||||
content: "\e097"; |
||||
} |
||||
.icon-refresh:before { |
||||
content: "\e098"; |
||||
} |
||||
.icon-reload:before { |
||||
content: "\e099"; |
||||
} |
||||
.icon-settings:before { |
||||
content: "\e09a"; |
||||
} |
||||
.icon-star:before { |
||||
content: "\e09b"; |
||||
} |
||||
.icon-symble-female:before { |
||||
content: "\e09c"; |
||||
} |
||||
.icon-symbol-male:before { |
||||
content: "\e09d"; |
||||
} |
||||
.icon-target:before { |
||||
content: "\e09e"; |
||||
} |
||||
.icon-credit-card:before { |
||||
content: "\e025"; |
||||
} |
||||
.icon-paypal:before { |
||||
content: "\e608"; |
||||
} |
||||
.icon-social-tumblr:before { |
||||
content: "\e00a"; |
||||
} |
||||
.icon-social-twitter:before { |
||||
content: "\e009"; |
||||
} |
||||
.icon-social-facebook:before { |
||||
content: "\e00b"; |
||||
} |
||||
.icon-social-instagram:before { |
||||
content: "\e609"; |
||||
} |
||||
.icon-social-linkedin:before { |
||||
content: "\e60a"; |
||||
} |
||||
.icon-social-pintarest:before { |
||||
content: "\e60b"; |
||||
} |
||||
.icon-social-github:before { |
||||
content: "\e60c"; |
||||
} |
||||
.icon-social-gplus:before { |
||||
content: "\e60d"; |
||||
} |
||||
.icon-social-reddit:before { |
||||
content: "\e60e"; |
||||
} |
||||
.icon-social-skype:before { |
||||
content: "\e60f"; |
||||
} |
||||
.icon-social-dribbble:before { |
||||
content: "\e00d"; |
||||
} |
||||
.icon-social-behance:before { |
||||
content: "\e610"; |
||||
} |
||||
.icon-social-foursqare:before { |
||||
content: "\e611"; |
||||
} |
||||
.icon-social-soundcloud:before { |
||||
content: "\e612"; |
||||
} |
||||
.icon-social-spotify:before { |
||||
content: "\e613"; |
||||
} |
||||
.icon-social-stumbleupon:before { |
||||
content: "\e614"; |
||||
} |
||||
.icon-social-youtube:before { |
||||
content: "\e008"; |
||||
} |
||||
.icon-social-dropbox:before { |
||||
content: "\e00c"; |
||||
} |
||||
@ -0,0 +1,112 @@ |
||||
.hex-particle-container { |
||||
width: 600px; |
||||
height: 600px; |
||||
display: block; |
||||
position: fixed; |
||||
margin-left: -300px; |
||||
margin-top: -300px; |
||||
top: 50%; |
||||
left: 50%; |
||||
} |
||||
|
||||
.hex-p { |
||||
display: none; |
||||
-webkit-transform: translate(200, 200); |
||||
transform: translate(200, 200); |
||||
} |
||||
|
||||
.hex-particle-blue { |
||||
fill: #2196bd; |
||||
} |
||||
.hex-particle-lightblue { |
||||
fill: #4bbfbf; |
||||
} |
||||
.hex-particle-purple { |
||||
fill: #9776b5; |
||||
} |
||||
.hex-particle-violet { |
||||
fill: #d25e9f; |
||||
} |
||||
.hex-particle-green { |
||||
fill: #4daf65; |
||||
} |
||||
.hex-particle-red { |
||||
fill: #d63d3d; |
||||
} |
||||
.hex-particle-orange { |
||||
fill: #f26b3f; |
||||
} |
||||
|
||||
.overlay { |
||||
-webkit-perspective: 600px; |
||||
perspective: 600px; |
||||
position: fixed; |
||||
width: 100%; |
||||
height: 100%; |
||||
background: none; |
||||
-webkit-transform: translateZ(0); |
||||
transform: translateZ(0); |
||||
} |
||||
|
||||
.award-container { |
||||
display: none; |
||||
width: 650px; |
||||
height: 80px; |
||||
position: fixed; |
||||
left: 50%; |
||||
top: 50%; |
||||
margin-left: -325px; |
||||
font-family: 'Open Sans'; |
||||
} |
||||
.award-container img { |
||||
position: absolute; |
||||
top: -25px; |
||||
left: -20px; |
||||
width: 130px; |
||||
height: 130px; |
||||
} |
||||
.award-container .content { |
||||
overflow: hidden; |
||||
position: relative; |
||||
background: #3e3e3c; |
||||
border-radius: 10px; |
||||
box-sizing: border-box; |
||||
padding: 30px; |
||||
height: 63px; |
||||
white-space: no-wrap; |
||||
margin-top: 8px; |
||||
color: #FFF; |
||||
} |
||||
.award-container .unlocked { |
||||
text-transform: uppercase; |
||||
font-size: 11px; |
||||
font-weight: 300; |
||||
text-align: center; |
||||
position: absolute; |
||||
top: 5px; |
||||
padding-left: 10px; |
||||
width: 600px; |
||||
} |
||||
.award-container .achievement { |
||||
font-size: 30px; |
||||
font-weight: 300; |
||||
text-align: center; |
||||
position: absolute; |
||||
font-family: 'Lobster'; |
||||
top: 18px; |
||||
padding-left: 10px; |
||||
width: 600px; |
||||
} |
||||
.award-container .achievement:before { |
||||
content: open-quote; |
||||
} |
||||
.award-container .achievement:after { |
||||
content: close-quote; |
||||
} |
||||
.award-container .close { |
||||
position: absolute; |
||||
top: 5px; |
||||
right: 5px; |
||||
cursor: pointer; |
||||
color: #666; |
||||
} |
||||
@ -0,0 +1,104 @@ |
||||
figure, figcaption { |
||||
display: block; |
||||
} |
||||
|
||||
.transition { |
||||
-webkit-transition: top 400ms linear; |
||||
-moz-transition: top 400ms linear; |
||||
-ms-transition: top 400ms linear; |
||||
-o-transition: top 400ms linear; |
||||
transition: top 400ms linear; |
||||
} |
||||
|
||||
.timeTo { |
||||
font-family: Tahoma, Verdana, Aial, sans-serif; |
||||
font-size: 28px; |
||||
line-height: 108%; |
||||
font-weight: bold; |
||||
height: 32px; |
||||
} |
||||
|
||||
.timeTo span { |
||||
vertical-align: top; |
||||
font-size: 10px; |
||||
padding: 0 10px; |
||||
position: relative; |
||||
top: 10px; |
||||
} |
||||
#countdown{ |
||||
|
||||
} |
||||
|
||||
.timeTo.timeTo-white div { |
||||
color: black; |
||||
background: #ffffff; /* Old browsers */ |
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#cccccc',GradientType=0 ); /* IE6-9 */ |
||||
border: 13px solid #fff; |
||||
border-radius: 3px; |
||||
margin-left: 10px; |
||||
} |
||||
.timeTo.timeTo-black div { |
||||
color: white; |
||||
background: #45484d; /* Old browsers */ |
||||
background: -moz-linear-gradient(top, #45484d 0%, #000000 100%); /* FF3.6+ */ |
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#45484d), color-stop(100%,#000000)); /* Chrome,Safari4+ */ |
||||
background: -webkit-linear-gradient(top, #45484d 0%,#000000 100%); /* Chrome10+,Safari5.1+ */ |
||||
background: -o-linear-gradient(top, #45484d 0%,#000000 100%); /* Opera 11.10+ */ |
||||
background: -ms-linear-gradient(top, #45484d 0%,#000000 100%); /* IE10+ */ |
||||
background: linear-gradient(to bottom, #45484d 0%,#000000 100%); /* W3C */ |
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#45484d', endColorstr='#000000',GradientType=0 ); /* IE6-9 */ |
||||
} |
||||
|
||||
.timeTo.timeTo-black .timeTo-alert { |
||||
background: #a74444; /* Old browsers */ |
||||
background: -moz-linear-gradient(top, #a74444 0%, #3f0000 67%); /* FF3.6+ */ |
||||
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#a74444), color-stop(67%,#3f0000)); /* Chrome,Safari4+ */ |
||||
background: -webkit-linear-gradient(top, #a74444 0%,#3f0000 67%); /* Chrome10+,Safari5.1+ */ |
||||
background: -o-linear-gradient(top, #a74444 0%,#3f0000 67%); /* Opera 11.10+ */ |
||||
background: -ms-linear-gradient(top, #a74444 0%,#3f0000 67%); /* IE10+ */ |
||||
background: linear-gradient(to bottom, #a74444 0%,#3f0000 67%); /* W3C */ |
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#a74444', endColorstr='#3f0000',GradientType=0 ); /* IE6-9 */ |
||||
} |
||||
|
||||
.timeTo.timeTo-white .timeTo-alert { |
||||
background: #ffffff; /* Old browsers */ |
||||
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#e17373',GradientType=0 ); /* IE6-9 */ |
||||
} |
||||
|
||||
.timeTo figure { |
||||
display: inline-block; |
||||
margin: 0; |
||||
padding: 0; |
||||
} |
||||
.timeTo figcaption { |
||||
text-align: center; |
||||
/*font-size: 12px;*/ |
||||
line-height: 80%; |
||||
font-weight: normal; |
||||
color: #888; |
||||
} |
||||
|
||||
.timeTo div { |
||||
position: relative; |
||||
display: inline-block; |
||||
width: 50px; |
||||
height: 60px; |
||||
overflow: hidden; |
||||
} |
||||
.timeTo div.first { |
||||
margin-left: 0 !important; |
||||
} |
||||
|
||||
.timeTo ul { |
||||
list-style-type: none; |
||||
margin: 0; |
||||
padding: 0; |
||||
position: absolute; |
||||
left: 3px; |
||||
} |
||||
|
||||
.timeTo ul li { |
||||
margin: 0; |
||||
padding: 0; |
||||
list-style: none; |
||||
} |
||||
@ -0,0 +1,53 @@ |
||||
.timer_block { |
||||
background:url(../img/timer1.jpg) no-repeat center top; |
||||
width: 100%; |
||||
height: 804px; |
||||
min-width: 1200px; |
||||
} |
||||
|
||||
.timer_block .timer { |
||||
background:url(../img/bg.png) no-repeat center left; |
||||
width: 650px; |
||||
height: 76px; |
||||
position: absolute; |
||||
top:650px; |
||||
left: 512px; |
||||
} |
||||
.timer_block .timer_wrapp { |
||||
margin: 14px 0 0 14px; |
||||
} |
||||
.timer_block .day, |
||||
.timer_block .hour, |
||||
.timer_block .min, |
||||
.timer_block .sec { |
||||
color: #000; |
||||
font-family: Arial; |
||||
font-weight: bold; |
||||
font-size: 54px; |
||||
line-height: 52px; |
||||
text-align: center; |
||||
letter-spacing: 35px; |
||||
} |
||||
.timer_block .top_line div { |
||||
vertical-align: top; |
||||
display: inline-block; |
||||
} |
||||
|
||||
.timer_block .block { |
||||
width: 123px; |
||||
height: 76px; |
||||
margin-right: 30px; |
||||
position: relative; |
||||
top: -15px; |
||||
} |
||||
.timer_block .last { |
||||
width: 123px; |
||||
} |
||||
.timer_block .desc { |
||||
color: #fff; |
||||
text-align: center; |
||||
width: 93px; |
||||
font-family: 'proxima_nova_blblack'; |
||||
font-size: 14px; |
||||
margin-top: -20px; |
||||
} |
||||
@ -0,0 +1,4 @@ |
||||
.form-row.field-traceback p { |
||||
font-family: monospace; |
||||
white-space: pre; |
||||
} |
||||
@ -0,0 +1,608 @@ |
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
||||
<head> |
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript" charset="utf-8"></script> |
||||
<script src="specimen_files/easytabs.js" type="text/javascript" charset="utf-8"></script> |
||||
<link rel="stylesheet" href="specimen_files/specimen_stylesheet.css" type="text/css" charset="utf-8" /> |
||||
<link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" /> |
||||
|
||||
<style type="text/css"> |
||||
body{ |
||||
font-family: 'exo_2bold'; |
||||
} |
||||
</style> |
||||
|
||||
<title>Exo 2 Bold Specimen</title> |
||||
|
||||
|
||||
<script type="text/javascript" charset="utf-8"> |
||||
$(document).ready(function() { |
||||
$('#container').easyTabs({defaultContent:1}); |
||||
}); |
||||
</script> |
||||
</head> |
||||
|
||||
<body> |
||||
<div id="container"> |
||||
<div id="header"> |
||||
Exo 2 Bold </div> |
||||
<ul class="tabs"> |
||||
<li><a href="#specimen">Specimen</a></li> |
||||
<li><a href="#layout">Sample Layout</a></li> |
||||
<li><a href="#glyphs">Glyphs & Languages</a></li> |
||||
<li><a href="#installing">Installing Webfonts</a></li> |
||||
|
||||
</ul> |
||||
|
||||
<div id="main_content"> |
||||
|
||||
|
||||
<div id="specimen"> |
||||
|
||||
<div class="section"> |
||||
<div class="grid12 firstcol"> |
||||
<div class="huge">AaBb</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="section"> |
||||
<div class="glyph_range">A​B​C​D​E​F​G​H​I​J​K​L​M​N​O​P​Q​R​S​T​U​V​W​X​Y​Z​a​b​c​d​e​f​g​h​i​j​k​l​m​n​o​p​q​r​s​t​u​v​w​x​y​z​1​2​3​4​5​6​7​8​9​0​&​.​,​?​!​@​(​)​#​$​%​*​+​-​=​:​;</div> |
||||
</div> |
||||
<div class="section"> |
||||
<div class="grid12 firstcol"> |
||||
<table class="sample_table"> |
||||
<tr><td>10</td><td class="size10">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>11</td><td class="size11">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>12</td><td class="size12">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>13</td><td class="size13">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>14</td><td class="size14">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>16</td><td class="size16">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>18</td><td class="size18">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>20</td><td class="size20">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>24</td><td class="size24">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>30</td><td class="size30">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>36</td><td class="size36">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>48</td><td class="size48">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>60</td><td class="size60">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>72</td><td class="size72">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>90</td><td class="size90">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
</table> |
||||
|
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
|
||||
|
||||
<div class="section" id="bodycomparison"> |
||||
|
||||
|
||||
<div id="xheight"> |
||||
<div class="fontbody">◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼body</div><div class="arialbody">body</div><div class="verdanabody">body</div><div class="georgiabody">body</div></div> |
||||
<div class="fontbody" style="z-index:1"> |
||||
body<span>Exo 2 Bold</span> |
||||
</div> |
||||
<div class="arialbody" style="z-index:1"> |
||||
body<span>Arial</span> |
||||
</div> |
||||
<div class="verdanabody" style="z-index:1"> |
||||
body<span>Verdana</span> |
||||
</div> |
||||
<div class="georgiabody" style="z-index:1"> |
||||
body<span>Georgia</span> |
||||
</div> |
||||
|
||||
|
||||
|
||||
</div> |
||||
|
||||
|
||||
<div class="section psample psample_row1" id=""> |
||||
|
||||
<div class="grid2 firstcol"> |
||||
<p class="size10"><span>10.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid3"> |
||||
<p class="size11"><span>11.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid3"> |
||||
<p class="size12"><span>12.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid4"> |
||||
<p class="size13"><span>13.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="white_blend"></div> |
||||
|
||||
</div> |
||||
<div class="section psample psample_row2" id=""> |
||||
<div class="grid3 firstcol"> |
||||
<p class="size14"><span>14.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid4"> |
||||
<p class="size16"><span>16.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid5"> |
||||
<p class="size18"><span>18.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
|
||||
<div class="white_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
<div class="section psample psample_row3" id=""> |
||||
<div class="grid5 firstcol"> |
||||
<p class="size20"><span>20.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
</div> |
||||
<div class="grid7"> |
||||
<p class="size24"><span>24.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
</div> |
||||
|
||||
<div class="white_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
<div class="section psample psample_row4" id=""> |
||||
<div class="grid12 firstcol"> |
||||
<p class="size30"><span>30.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
</div> |
||||
<div class="white_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
|
||||
|
||||
<div class="section psample psample_row1 fullreverse"> |
||||
<div class="grid2 firstcol"> |
||||
<p class="size10"><span>10.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid3"> |
||||
<p class="size11"><span>11.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid3"> |
||||
<p class="size12"><span>12.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid4"> |
||||
<p class="size13"><span>13.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="black_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
<div class="section psample psample_row2 fullreverse"> |
||||
<div class="grid3 firstcol"> |
||||
<p class="size14"><span>14.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid4"> |
||||
<p class="size16"><span>16.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid5"> |
||||
<p class="size18"><span>18.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="black_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
<div class="section psample fullreverse psample_row3" id=""> |
||||
<div class="grid5 firstcol"> |
||||
<p class="size20"><span>20.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
</div> |
||||
<div class="grid7"> |
||||
<p class="size24"><span>24.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
</div> |
||||
|
||||
<div class="black_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
<div class="section psample fullreverse psample_row4" id="" style="border-bottom: 20px #000 solid;"> |
||||
<div class="grid12 firstcol"> |
||||
<p class="size30"><span>30.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
</div> |
||||
<div class="black_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
|
||||
|
||||
|
||||
</div> |
||||
|
||||
<div id="layout"> |
||||
|
||||
<div class="section"> |
||||
|
||||
<div class="grid12 firstcol"> |
||||
<h1>Lorem Ipsum Dolor</h1> |
||||
<h2>Etiam porta sem malesuada magna mollis euismod</h2> |
||||
|
||||
<p class="byline">By <a href="#link">Aenean Lacinia</a></p> |
||||
</div> |
||||
</div> |
||||
<div class="section"> |
||||
<div class="grid8 firstcol"> |
||||
<p class="large">Donec sed odio dui. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p> |
||||
|
||||
|
||||
<h3>Pellentesque ornare sem</h3> |
||||
|
||||
<p>Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas faucibus mollis interdum. Donec ullamcorper nulla non metus auctor fringilla. Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit. </p> |
||||
|
||||
<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. </p> |
||||
|
||||
<p>Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur. </p> |
||||
|
||||
<p>Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec ullamcorper nulla non metus auctor fringilla. </p> |
||||
|
||||
<h3>Cras mattis consectetur</h3> |
||||
|
||||
<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras mattis consectetur purus sit amet fermentum. </p> |
||||
|
||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam quis risus eget urna mollis ornare vel eu leo. Cras mattis consectetur purus sit amet fermentum.</p> |
||||
</div> |
||||
|
||||
<div class="grid4 sidebar"> |
||||
|
||||
<div class="box reverse"> |
||||
<p class="last">Nullam quis risus eget urna mollis ornare vel eu leo. Donec ullamcorper nulla non metus auctor fringilla. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. </p> |
||||
</div> |
||||
|
||||
<p class="caption">Maecenas sed diam eget risus varius.</p> |
||||
|
||||
<p>Vestibulum id ligula porta felis euismod semper. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Vestibulum id ligula porta felis euismod semper. Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p> |
||||
|
||||
|
||||
|
||||
<p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean lacinia bibendum nulla sed consectetur. Nullam quis risus eget urna mollis ornare vel eu leo. </p> |
||||
|
||||
<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec ullamcorper nulla non metus auctor fringilla. Maecenas faucibus mollis interdum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p> |
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div id="glyphs"> |
||||
<div class="section"> |
||||
<div class="grid12 firstcol"> |
||||
|
||||
<h1>Language Support</h1> |
||||
<p>The subset of Exo 2 Bold in this kit supports the following languages:<br /> |
||||
|
||||
Cyrillic, English </p> |
||||
<h1>Glyph Chart</h1> |
||||
<p>The subset of Exo 2 Bold in this kit includes all the glyphs listed below. Unicode entities are included above each glyph to help you insert individual characters into your layout.</p> |
||||
<div id="glyph_chart"> |
||||
|
||||
<div><p>&#13;</p> </div> |
||||
<div><p>&#32;</p> </div> |
||||
<div><p>&#33;</p>!</div> |
||||
<div><p>&#34;</p>"</div> |
||||
<div><p>&#35;</p>#</div> |
||||
<div><p>&#36;</p>$</div> |
||||
<div><p>&#37;</p>%</div> |
||||
<div><p>&#38;</p>&</div> |
||||
<div><p>&#39;</p>'</div> |
||||
<div><p>&#40;</p>(</div> |
||||
<div><p>&#41;</p>)</div> |
||||
<div><p>&#42;</p>*</div> |
||||
<div><p>&#43;</p>+</div> |
||||
<div><p>&#44;</p>,</div> |
||||
<div><p>&#45;</p>-</div> |
||||
<div><p>&#46;</p>.</div> |
||||
<div><p>&#47;</p>/</div> |
||||
<div><p>&#48;</p>0</div> |
||||
<div><p>&#49;</p>1</div> |
||||
<div><p>&#50;</p>2</div> |
||||
<div><p>&#51;</p>3</div> |
||||
<div><p>&#52;</p>4</div> |
||||
<div><p>&#53;</p>5</div> |
||||
<div><p>&#54;</p>6</div> |
||||
<div><p>&#55;</p>7</div> |
||||
<div><p>&#56;</p>8</div> |
||||
<div><p>&#57;</p>9</div> |
||||
<div><p>&#58;</p>:</div> |
||||
<div><p>&#59;</p>;</div> |
||||
<div><p>&#60;</p><</div> |
||||
<div><p>&#61;</p>=</div> |
||||
<div><p>&#62;</p>></div> |
||||
<div><p>&#63;</p>?</div> |
||||
<div><p>&#64;</p>@</div> |
||||
<div><p>&#65;</p>A</div> |
||||
<div><p>&#66;</p>B</div> |
||||
<div><p>&#67;</p>C</div> |
||||
<div><p>&#68;</p>D</div> |
||||
<div><p>&#69;</p>E</div> |
||||
<div><p>&#70;</p>F</div> |
||||
<div><p>&#71;</p>G</div> |
||||
<div><p>&#72;</p>H</div> |
||||
<div><p>&#73;</p>I</div> |
||||
<div><p>&#74;</p>J</div> |
||||
<div><p>&#75;</p>K</div> |
||||
<div><p>&#76;</p>L</div> |
||||
<div><p>&#77;</p>M</div> |
||||
<div><p>&#78;</p>N</div> |
||||
<div><p>&#79;</p>O</div> |
||||
<div><p>&#80;</p>P</div> |
||||
<div><p>&#81;</p>Q</div> |
||||
<div><p>&#82;</p>R</div> |
||||
<div><p>&#83;</p>S</div> |
||||
<div><p>&#84;</p>T</div> |
||||
<div><p>&#85;</p>U</div> |
||||
<div><p>&#86;</p>V</div> |
||||
<div><p>&#87;</p>W</div> |
||||
<div><p>&#88;</p>X</div> |
||||
<div><p>&#89;</p>Y</div> |
||||
<div><p>&#90;</p>Z</div> |
||||
<div><p>&#91;</p>[</div> |
||||
<div><p>&#92;</p>\</div> |
||||
<div><p>&#93;</p>]</div> |
||||
<div><p>&#94;</p>^</div> |
||||
<div><p>&#95;</p>_</div> |
||||
<div><p>&#96;</p>`</div> |
||||
<div><p>&#97;</p>a</div> |
||||
<div><p>&#98;</p>b</div> |
||||
<div><p>&#99;</p>c</div> |
||||
<div><p>&#100;</p>d</div> |
||||
<div><p>&#101;</p>e</div> |
||||
<div><p>&#102;</p>f</div> |
||||
<div><p>&#103;</p>g</div> |
||||
<div><p>&#104;</p>h</div> |
||||
<div><p>&#105;</p>i</div> |
||||
<div><p>&#106;</p>j</div> |
||||
<div><p>&#107;</p>k</div> |
||||
<div><p>&#108;</p>l</div> |
||||
<div><p>&#109;</p>m</div> |
||||
<div><p>&#110;</p>n</div> |
||||
<div><p>&#111;</p>o</div> |
||||
<div><p>&#112;</p>p</div> |
||||
<div><p>&#113;</p>q</div> |
||||
<div><p>&#114;</p>r</div> |
||||
<div><p>&#115;</p>s</div> |
||||
<div><p>&#116;</p>t</div> |
||||
<div><p>&#117;</p>u</div> |
||||
<div><p>&#118;</p>v</div> |
||||
<div><p>&#119;</p>w</div> |
||||
<div><p>&#120;</p>x</div> |
||||
<div><p>&#121;</p>y</div> |
||||
<div><p>&#122;</p>z</div> |
||||
<div><p>&#123;</p>{</div> |
||||
<div><p>&#124;</p>|</div> |
||||
<div><p>&#125;</p>}</div> |
||||
<div><p>&#126;</p>~</div> |
||||
<div><p>&#162;</p>¢</div> |
||||
<div><p>&#163;</p>£</div> |
||||
<div><p>&#165;</p>¥</div> |
||||
<div><p>&#168;</p>¨</div> |
||||
<div><p>&#169;</p>©</div> |
||||
<div><p>&#171;</p>«</div> |
||||
<div><p>&#174;</p>®</div> |
||||
<div><p>&#180;</p>´</div> |
||||
<div><p>&#184;</p>¸</div> |
||||
<div><p>&#187;</p>»</div> |
||||
<div><p>&#710;</p>ˆ</div> |
||||
<div><p>&#730;</p>˚</div> |
||||
<div><p>&#732;</p>˜</div> |
||||
<div><p>&#1025;</p>Ё</div> |
||||
<div><p>&#1026;</p>Ђ</div> |
||||
<div><p>&#1027;</p>Ѓ</div> |
||||
<div><p>&#1028;</p>Є</div> |
||||
<div><p>&#1029;</p>Ѕ</div> |
||||
<div><p>&#1030;</p>І</div> |
||||
<div><p>&#1031;</p>Ї</div> |
||||
<div><p>&#1032;</p>Ј</div> |
||||
<div><p>&#1033;</p>Љ</div> |
||||
<div><p>&#1034;</p>Њ</div> |
||||
<div><p>&#1035;</p>Ћ</div> |
||||
<div><p>&#1036;</p>Ќ</div> |
||||
<div><p>&#1037;</p>Ѝ</div> |
||||
<div><p>&#1038;</p>Ў</div> |
||||
<div><p>&#1039;</p>Џ</div> |
||||
<div><p>&#1040;</p>А</div> |
||||
<div><p>&#1041;</p>Б</div> |
||||
<div><p>&#1042;</p>В</div> |
||||
<div><p>&#1043;</p>Г</div> |
||||
<div><p>&#1044;</p>Д</div> |
||||
<div><p>&#1045;</p>Е</div> |
||||
<div><p>&#1046;</p>Ж</div> |
||||
<div><p>&#1047;</p>З</div> |
||||
<div><p>&#1048;</p>И</div> |
||||
<div><p>&#1049;</p>Й</div> |
||||
<div><p>&#1050;</p>К</div> |
||||
<div><p>&#1051;</p>Л</div> |
||||
<div><p>&#1052;</p>М</div> |
||||
<div><p>&#1053;</p>Н</div> |
||||
<div><p>&#1054;</p>О</div> |
||||
<div><p>&#1055;</p>П</div> |
||||
<div><p>&#1056;</p>Р</div> |
||||
<div><p>&#1057;</p>С</div> |
||||
<div><p>&#1058;</p>Т</div> |
||||
<div><p>&#1059;</p>У</div> |
||||
<div><p>&#1060;</p>Ф</div> |
||||
<div><p>&#1061;</p>Х</div> |
||||
<div><p>&#1062;</p>Ц</div> |
||||
<div><p>&#1063;</p>Ч</div> |
||||
<div><p>&#1064;</p>Ш</div> |
||||
<div><p>&#1065;</p>Щ</div> |
||||
<div><p>&#1066;</p>Ъ</div> |
||||
<div><p>&#1067;</p>Ы</div> |
||||
<div><p>&#1068;</p>Ь</div> |
||||
<div><p>&#1069;</p>Э</div> |
||||
<div><p>&#1070;</p>Ю</div> |
||||
<div><p>&#1071;</p>Я</div> |
||||
<div><p>&#1072;</p>а</div> |
||||
<div><p>&#1073;</p>б</div> |
||||
<div><p>&#1074;</p>в</div> |
||||
<div><p>&#1075;</p>г</div> |
||||
<div><p>&#1076;</p>д</div> |
||||
<div><p>&#1077;</p>е</div> |
||||
<div><p>&#1078;</p>ж</div> |
||||
<div><p>&#1079;</p>з</div> |
||||
<div><p>&#1080;</p>и</div> |
||||
<div><p>&#1081;</p>й</div> |
||||
<div><p>&#1082;</p>к</div> |
||||
<div><p>&#1083;</p>л</div> |
||||
<div><p>&#1084;</p>м</div> |
||||
<div><p>&#1085;</p>н</div> |
||||
<div><p>&#1086;</p>о</div> |
||||
<div><p>&#1087;</p>п</div> |
||||
<div><p>&#1088;</p>р</div> |
||||
<div><p>&#1089;</p>с</div> |
||||
<div><p>&#1090;</p>т</div> |
||||
<div><p>&#1091;</p>у</div> |
||||
<div><p>&#1092;</p>ф</div> |
||||
<div><p>&#1093;</p>х</div> |
||||
<div><p>&#1094;</p>ц</div> |
||||
<div><p>&#1095;</p>ч</div> |
||||
<div><p>&#1096;</p>ш</div> |
||||
<div><p>&#1097;</p>щ</div> |
||||
<div><p>&#1098;</p>ъ</div> |
||||
<div><p>&#1099;</p>ы</div> |
||||
<div><p>&#1100;</p>ь</div> |
||||
<div><p>&#1101;</p>э</div> |
||||
<div><p>&#1102;</p>ю</div> |
||||
<div><p>&#1103;</p>я</div> |
||||
<div><p>&#1105;</p>ё</div> |
||||
<div><p>&#1106;</p>ђ</div> |
||||
<div><p>&#1107;</p>ѓ</div> |
||||
<div><p>&#1108;</p>є</div> |
||||
<div><p>&#1109;</p>ѕ</div> |
||||
<div><p>&#1110;</p>і</div> |
||||
<div><p>&#1111;</p>ї</div> |
||||
<div><p>&#1112;</p>ј</div> |
||||
<div><p>&#1113;</p>љ</div> |
||||
<div><p>&#1114;</p>њ</div> |
||||
<div><p>&#1115;</p>ћ</div> |
||||
<div><p>&#1116;</p>ќ</div> |
||||
<div><p>&#1117;</p>ѝ</div> |
||||
<div><p>&#1118;</p>ў</div> |
||||
<div><p>&#1119;</p>џ</div> |
||||
<div><p>&#1168;</p>Ґ</div> |
||||
<div><p>&#1169;</p>ґ</div> |
||||
<div><p>&#1200;</p>Ұ</div> |
||||
<div><p>&#1201;</p>ұ</div> |
||||
<div><p>&#1206;</p>Ҷ</div> |
||||
<div><p>&#1207;</p>ҷ</div> |
||||
<div><p>&#1210;</p>Һ</div> |
||||
<div><p>&#1216;</p>Ӏ</div> |
||||
<div><p>&#8211;</p>–</div> |
||||
<div><p>&#8212;</p>—</div> |
||||
<div><p>&#8216;</p>‘</div> |
||||
<div><p>&#8217;</p>’</div> |
||||
<div><p>&#8218;</p>‚</div> |
||||
<div><p>&#8220;</p>“</div> |
||||
<div><p>&#8221;</p>”</div> |
||||
<div><p>&#8222;</p>„</div> |
||||
<div><p>&#8226;</p>•</div> |
||||
<div><p>&#8230;</p>…</div> |
||||
<div><p>&#8249;</p>‹</div> |
||||
<div><p>&#8250;</p>›</div> |
||||
<div><p>&#8364;</p>€</div> |
||||
<div><p>&#8482;</p>™</div> |
||||
<div><p>&#9724;</p>◼</div> |
||||
</div> |
||||
</div> |
||||
|
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
|
||||
<div id="specs"> |
||||
|
||||
</div> |
||||
|
||||
<div id="installing"> |
||||
<div class="section"> |
||||
<div class="grid7 firstcol"> |
||||
<h1>Installing Webfonts</h1> |
||||
|
||||
<p>Webfonts are supported by all major browser platforms but not all in the same way. There are currently four different font formats that must be included in order to target all browsers. This includes TTF, WOFF, EOT and SVG.</p> |
||||
|
||||
<h2>1. Upload your webfonts</h2> |
||||
<p>You must upload your webfont kit to your website. They should be in or near the same directory as your CSS files.</p> |
||||
|
||||
<h2>2. Include the webfont stylesheet</h2> |
||||
<p>A special CSS @font-face declaration helps the various browsers select the appropriate font it needs without causing you a bunch of headaches. Learn more about this syntax by reading the <a href="http://www.fontspring.com/blog/further-hardening-of-the-bulletproof-syntax">Fontspring blog post</a> about it. The code for it is as follows:</p> |
||||
|
||||
|
||||
<code> |
||||
@font-face{ |
||||
font-family: 'MyWebFont'; |
||||
src: url('WebFont.eot'); |
||||
src: url('WebFont.eot?#iefix') format('embedded-opentype'), |
||||
url('WebFont.woff') format('woff'), |
||||
url('WebFont.ttf') format('truetype'), |
||||
url('WebFont.svg#webfont') format('svg'); |
||||
} |
||||
</code> |
||||
|
||||
<p>We've already gone ahead and generated the code for you. All you have to do is link to the stylesheet in your HTML, like this:</p> |
||||
<code><link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" /></code> |
||||
|
||||
<h2>3. Modify your own stylesheet</h2> |
||||
<p>To take advantage of your new fonts, you must tell your stylesheet to use them. Look at the original @font-face declaration above and find the property called "font-family." The name linked there will be what you use to reference the font. Prepend that webfont name to the font stack in the "font-family" property, inside the selector you want to change. For example:</p> |
||||
<code>p { font-family: 'WebFont', Arial, sans-serif; }</code> |
||||
|
||||
<h2>4. Test</h2> |
||||
<p>Getting webfonts to work cross-browser <em>can</em> be tricky. Use the information in the sidebar to help you if you find that fonts aren't loading in a particular browser.</p> |
||||
</div> |
||||
|
||||
<div class="grid5 sidebar"> |
||||
<div class="box"> |
||||
<h2>Troubleshooting<br />Font-Face Problems</h2> |
||||
<p>Having trouble getting your webfonts to load in your new website? Here are some tips to sort out what might be the problem.</p> |
||||
|
||||
<h3>Fonts not showing in any browser</h3> |
||||
|
||||
<p>This sounds like you need to work on the plumbing. You either did not upload the fonts to the correct directory, or you did not link the fonts properly in the CSS. If you've confirmed that all this is correct and you still have a problem, take a look at your .htaccess file and see if requests are getting intercepted.</p> |
||||
|
||||
<h3>Fonts not loading in iPhone or iPad</h3> |
||||
|
||||
<p>The most common problem here is that you are serving the fonts from an IIS server. IIS refuses to serve files that have unknown MIME types. If that is the case, you must set the MIME type for SVG to "image/svg+xml" in the server settings. Follow these instructions from Microsoft if you need help.</p> |
||||
|
||||
<h3>Fonts not loading in Firefox</h3> |
||||
|
||||
<p>The primary reason for this failure? You are still using a version Firefox older than 3.5. So upgrade already! If that isn't it, then you are very likely serving fonts from a different domain. Firefox requires that all font assets be served from the same domain. Lastly it is possible that you need to add WOFF to your list of MIME types (if you are serving via IIS.)</p> |
||||
|
||||
<h3>Fonts not loading in IE</h3> |
||||
|
||||
<p>Are you looking at Internet Explorer on an actual Windows machine or are you cheating by using a service like Adobe BrowserLab? Many of these screenshot services do not render @font-face for IE. Best to test it on a real machine.</p> |
||||
|
||||
<h3>Fonts not loading in IE9</h3> |
||||
|
||||
<p>IE9, like Firefox, requires that fonts be served from the same domain as the website. Make sure that is the case.</p> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
</div> |
||||
<div id="footer"> |
||||
<p>©2010-2011 Font Squirrel. All rights reserved.</p> |
||||
</div> |
||||
</div> |
||||
</body> |
||||
</html> |
||||
|
After Width: | Height: | Size: 152 KiB |
@ -0,0 +1,608 @@ |
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
||||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
||||
<head> |
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
||||
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript" charset="utf-8"></script> |
||||
<script src="specimen_files/easytabs.js" type="text/javascript" charset="utf-8"></script> |
||||
<link rel="stylesheet" href="specimen_files/specimen_stylesheet.css" type="text/css" charset="utf-8" /> |
||||
<link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" /> |
||||
|
||||
<style type="text/css"> |
||||
body{ |
||||
font-family: 'exo_2light'; |
||||
} |
||||
</style> |
||||
|
||||
<title>Exo 2 Light Regular Specimen</title> |
||||
|
||||
|
||||
<script type="text/javascript" charset="utf-8"> |
||||
$(document).ready(function() { |
||||
$('#container').easyTabs({defaultContent:1}); |
||||
}); |
||||
</script> |
||||
</head> |
||||
|
||||
<body> |
||||
<div id="container"> |
||||
<div id="header"> |
||||
Exo 2 Light Regular </div> |
||||
<ul class="tabs"> |
||||
<li><a href="#specimen">Specimen</a></li> |
||||
<li><a href="#layout">Sample Layout</a></li> |
||||
<li><a href="#glyphs">Glyphs & Languages</a></li> |
||||
<li><a href="#installing">Installing Webfonts</a></li> |
||||
|
||||
</ul> |
||||
|
||||
<div id="main_content"> |
||||
|
||||
|
||||
<div id="specimen"> |
||||
|
||||
<div class="section"> |
||||
<div class="grid12 firstcol"> |
||||
<div class="huge">AaBb</div> |
||||
</div> |
||||
</div> |
||||
|
||||
<div class="section"> |
||||
<div class="glyph_range">A​B​C​D​E​F​G​H​I​J​K​L​M​N​O​P​Q​R​S​T​U​V​W​X​Y​Z​a​b​c​d​e​f​g​h​i​j​k​l​m​n​o​p​q​r​s​t​u​v​w​x​y​z​1​2​3​4​5​6​7​8​9​0​&​.​,​?​!​@​(​)​#​$​%​*​+​-​=​:​;</div> |
||||
</div> |
||||
<div class="section"> |
||||
<div class="grid12 firstcol"> |
||||
<table class="sample_table"> |
||||
<tr><td>10</td><td class="size10">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>11</td><td class="size11">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>12</td><td class="size12">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>13</td><td class="size13">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>14</td><td class="size14">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>16</td><td class="size16">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>18</td><td class="size18">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>20</td><td class="size20">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>24</td><td class="size24">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>30</td><td class="size30">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>36</td><td class="size36">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>48</td><td class="size48">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>60</td><td class="size60">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>72</td><td class="size72">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
<tr><td>90</td><td class="size90">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</td></tr> |
||||
</table> |
||||
|
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
|
||||
|
||||
<div class="section" id="bodycomparison"> |
||||
|
||||
|
||||
<div id="xheight"> |
||||
<div class="fontbody">◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼◼body</div><div class="arialbody">body</div><div class="verdanabody">body</div><div class="georgiabody">body</div></div> |
||||
<div class="fontbody" style="z-index:1"> |
||||
body<span>Exo 2 Light Regular</span> |
||||
</div> |
||||
<div class="arialbody" style="z-index:1"> |
||||
body<span>Arial</span> |
||||
</div> |
||||
<div class="verdanabody" style="z-index:1"> |
||||
body<span>Verdana</span> |
||||
</div> |
||||
<div class="georgiabody" style="z-index:1"> |
||||
body<span>Georgia</span> |
||||
</div> |
||||
|
||||
|
||||
|
||||
</div> |
||||
|
||||
|
||||
<div class="section psample psample_row1" id=""> |
||||
|
||||
<div class="grid2 firstcol"> |
||||
<p class="size10"><span>10.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid3"> |
||||
<p class="size11"><span>11.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid3"> |
||||
<p class="size12"><span>12.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid4"> |
||||
<p class="size13"><span>13.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="white_blend"></div> |
||||
|
||||
</div> |
||||
<div class="section psample psample_row2" id=""> |
||||
<div class="grid3 firstcol"> |
||||
<p class="size14"><span>14.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid4"> |
||||
<p class="size16"><span>16.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid5"> |
||||
<p class="size18"><span>18.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
|
||||
<div class="white_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
<div class="section psample psample_row3" id=""> |
||||
<div class="grid5 firstcol"> |
||||
<p class="size20"><span>20.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
</div> |
||||
<div class="grid7"> |
||||
<p class="size24"><span>24.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
</div> |
||||
|
||||
<div class="white_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
<div class="section psample psample_row4" id=""> |
||||
<div class="grid12 firstcol"> |
||||
<p class="size30"><span>30.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
</div> |
||||
<div class="white_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
|
||||
|
||||
<div class="section psample psample_row1 fullreverse"> |
||||
<div class="grid2 firstcol"> |
||||
<p class="size10"><span>10.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid3"> |
||||
<p class="size11"><span>11.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid3"> |
||||
<p class="size12"><span>12.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid4"> |
||||
<p class="size13"><span>13.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="black_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
<div class="section psample psample_row2 fullreverse"> |
||||
<div class="grid3 firstcol"> |
||||
<p class="size14"><span>14.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid4"> |
||||
<p class="size16"><span>16.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="grid5"> |
||||
<p class="size18"><span>18.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
|
||||
</div> |
||||
<div class="black_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
<div class="section psample fullreverse psample_row3" id=""> |
||||
<div class="grid5 firstcol"> |
||||
<p class="size20"><span>20.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
</div> |
||||
<div class="grid7"> |
||||
<p class="size24"><span>24.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
</div> |
||||
|
||||
<div class="black_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
<div class="section psample fullreverse psample_row4" id="" style="border-bottom: 20px #000 solid;"> |
||||
<div class="grid12 firstcol"> |
||||
<p class="size30"><span>30.</span>Aenean lacinia bibendum nulla sed consectetur. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Nullam id dolor id nibh ultricies vehicula ut id elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Nulla vitae elit libero, a pharetra augue.</p> |
||||
</div> |
||||
<div class="black_blend"></div> |
||||
|
||||
</div> |
||||
|
||||
|
||||
|
||||
|
||||
</div> |
||||
|
||||
<div id="layout"> |
||||
|
||||
<div class="section"> |
||||
|
||||
<div class="grid12 firstcol"> |
||||
<h1>Lorem Ipsum Dolor</h1> |
||||
<h2>Etiam porta sem malesuada magna mollis euismod</h2> |
||||
|
||||
<p class="byline">By <a href="#link">Aenean Lacinia</a></p> |
||||
</div> |
||||
</div> |
||||
<div class="section"> |
||||
<div class="grid8 firstcol"> |
||||
<p class="large">Donec sed odio dui. Morbi leo risus, porta ac consectetur ac, vestibulum at eros. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p> |
||||
|
||||
|
||||
<h3>Pellentesque ornare sem</h3> |
||||
|
||||
<p>Maecenas sed diam eget risus varius blandit sit amet non magna. Maecenas faucibus mollis interdum. Donec ullamcorper nulla non metus auctor fringilla. Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam id dolor id nibh ultricies vehicula ut id elit. </p> |
||||
|
||||
<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. </p> |
||||
|
||||
<p>Nulla vitae elit libero, a pharetra augue. Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Aenean lacinia bibendum nulla sed consectetur. </p> |
||||
|
||||
<p>Nullam quis risus eget urna mollis ornare vel eu leo. Nullam quis risus eget urna mollis ornare vel eu leo. Maecenas sed diam eget risus varius blandit sit amet non magna. Donec ullamcorper nulla non metus auctor fringilla. </p> |
||||
|
||||
<h3>Cras mattis consectetur</h3> |
||||
|
||||
<p>Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Aenean lacinia bibendum nulla sed consectetur. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Cras mattis consectetur purus sit amet fermentum. </p> |
||||
|
||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Nullam quis risus eget urna mollis ornare vel eu leo. Cras mattis consectetur purus sit amet fermentum.</p> |
||||
</div> |
||||
|
||||
<div class="grid4 sidebar"> |
||||
|
||||
<div class="box reverse"> |
||||
<p class="last">Nullam quis risus eget urna mollis ornare vel eu leo. Donec ullamcorper nulla non metus auctor fringilla. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Lorem ipsum dolor sit amet, consectetur adipiscing elit. </p> |
||||
</div> |
||||
|
||||
<p class="caption">Maecenas sed diam eget risus varius.</p> |
||||
|
||||
<p>Vestibulum id ligula porta felis euismod semper. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Vestibulum id ligula porta felis euismod semper. Sed posuere consectetur est at lobortis. Maecenas sed diam eget risus varius blandit sit amet non magna. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p> |
||||
|
||||
|
||||
|
||||
<p>Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Aenean lacinia bibendum nulla sed consectetur. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean lacinia bibendum nulla sed consectetur. Nullam quis risus eget urna mollis ornare vel eu leo. </p> |
||||
|
||||
<p>Praesent commodo cursus magna, vel scelerisque nisl consectetur et. Donec ullamcorper nulla non metus auctor fringilla. Maecenas faucibus mollis interdum. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. </p> |
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div id="glyphs"> |
||||
<div class="section"> |
||||
<div class="grid12 firstcol"> |
||||
|
||||
<h1>Language Support</h1> |
||||
<p>The subset of Exo 2 Light Regular in this kit supports the following languages:<br /> |
||||
|
||||
Cyrillic, English </p> |
||||
<h1>Glyph Chart</h1> |
||||
<p>The subset of Exo 2 Light Regular in this kit includes all the glyphs listed below. Unicode entities are included above each glyph to help you insert individual characters into your layout.</p> |
||||
<div id="glyph_chart"> |
||||
|
||||
<div><p>&#13;</p> </div> |
||||
<div><p>&#32;</p> </div> |
||||
<div><p>&#33;</p>!</div> |
||||
<div><p>&#34;</p>"</div> |
||||
<div><p>&#35;</p>#</div> |
||||
<div><p>&#36;</p>$</div> |
||||
<div><p>&#37;</p>%</div> |
||||
<div><p>&#38;</p>&</div> |
||||
<div><p>&#39;</p>'</div> |
||||
<div><p>&#40;</p>(</div> |
||||
<div><p>&#41;</p>)</div> |
||||
<div><p>&#42;</p>*</div> |
||||
<div><p>&#43;</p>+</div> |
||||
<div><p>&#44;</p>,</div> |
||||
<div><p>&#45;</p>-</div> |
||||
<div><p>&#46;</p>.</div> |
||||
<div><p>&#47;</p>/</div> |
||||
<div><p>&#48;</p>0</div> |
||||
<div><p>&#49;</p>1</div> |
||||
<div><p>&#50;</p>2</div> |
||||
<div><p>&#51;</p>3</div> |
||||
<div><p>&#52;</p>4</div> |
||||
<div><p>&#53;</p>5</div> |
||||
<div><p>&#54;</p>6</div> |
||||
<div><p>&#55;</p>7</div> |
||||
<div><p>&#56;</p>8</div> |
||||
<div><p>&#57;</p>9</div> |
||||
<div><p>&#58;</p>:</div> |
||||
<div><p>&#59;</p>;</div> |
||||
<div><p>&#60;</p><</div> |
||||
<div><p>&#61;</p>=</div> |
||||
<div><p>&#62;</p>></div> |
||||
<div><p>&#63;</p>?</div> |
||||
<div><p>&#64;</p>@</div> |
||||
<div><p>&#65;</p>A</div> |
||||
<div><p>&#66;</p>B</div> |
||||
<div><p>&#67;</p>C</div> |
||||
<div><p>&#68;</p>D</div> |
||||
<div><p>&#69;</p>E</div> |
||||
<div><p>&#70;</p>F</div> |
||||
<div><p>&#71;</p>G</div> |
||||
<div><p>&#72;</p>H</div> |
||||
<div><p>&#73;</p>I</div> |
||||
<div><p>&#74;</p>J</div> |
||||
<div><p>&#75;</p>K</div> |
||||
<div><p>&#76;</p>L</div> |
||||
<div><p>&#77;</p>M</div> |
||||
<div><p>&#78;</p>N</div> |
||||
<div><p>&#79;</p>O</div> |
||||
<div><p>&#80;</p>P</div> |
||||
<div><p>&#81;</p>Q</div> |
||||
<div><p>&#82;</p>R</div> |
||||
<div><p>&#83;</p>S</div> |
||||
<div><p>&#84;</p>T</div> |
||||
<div><p>&#85;</p>U</div> |
||||
<div><p>&#86;</p>V</div> |
||||
<div><p>&#87;</p>W</div> |
||||
<div><p>&#88;</p>X</div> |
||||
<div><p>&#89;</p>Y</div> |
||||
<div><p>&#90;</p>Z</div> |
||||
<div><p>&#91;</p>[</div> |
||||
<div><p>&#92;</p>\</div> |
||||
<div><p>&#93;</p>]</div> |
||||
<div><p>&#94;</p>^</div> |
||||
<div><p>&#95;</p>_</div> |
||||
<div><p>&#96;</p>`</div> |
||||
<div><p>&#97;</p>a</div> |
||||
<div><p>&#98;</p>b</div> |
||||
<div><p>&#99;</p>c</div> |
||||
<div><p>&#100;</p>d</div> |
||||
<div><p>&#101;</p>e</div> |
||||
<div><p>&#102;</p>f</div> |
||||
<div><p>&#103;</p>g</div> |
||||
<div><p>&#104;</p>h</div> |
||||
<div><p>&#105;</p>i</div> |
||||
<div><p>&#106;</p>j</div> |
||||
<div><p>&#107;</p>k</div> |
||||
<div><p>&#108;</p>l</div> |
||||
<div><p>&#109;</p>m</div> |
||||
<div><p>&#110;</p>n</div> |
||||
<div><p>&#111;</p>o</div> |
||||
<div><p>&#112;</p>p</div> |
||||
<div><p>&#113;</p>q</div> |
||||
<div><p>&#114;</p>r</div> |
||||
<div><p>&#115;</p>s</div> |
||||
<div><p>&#116;</p>t</div> |
||||
<div><p>&#117;</p>u</div> |
||||
<div><p>&#118;</p>v</div> |
||||
<div><p>&#119;</p>w</div> |
||||
<div><p>&#120;</p>x</div> |
||||
<div><p>&#121;</p>y</div> |
||||
<div><p>&#122;</p>z</div> |
||||
<div><p>&#123;</p>{</div> |
||||
<div><p>&#124;</p>|</div> |
||||
<div><p>&#125;</p>}</div> |
||||
<div><p>&#126;</p>~</div> |
||||
<div><p>&#162;</p>¢</div> |
||||
<div><p>&#163;</p>£</div> |
||||
<div><p>&#165;</p>¥</div> |
||||
<div><p>&#168;</p>¨</div> |
||||
<div><p>&#169;</p>©</div> |
||||
<div><p>&#171;</p>«</div> |
||||
<div><p>&#174;</p>®</div> |
||||
<div><p>&#180;</p>´</div> |
||||
<div><p>&#184;</p>¸</div> |
||||
<div><p>&#187;</p>»</div> |
||||
<div><p>&#710;</p>ˆ</div> |
||||
<div><p>&#730;</p>˚</div> |
||||
<div><p>&#732;</p>˜</div> |
||||
<div><p>&#1025;</p>Ё</div> |
||||
<div><p>&#1026;</p>Ђ</div> |
||||
<div><p>&#1027;</p>Ѓ</div> |
||||
<div><p>&#1028;</p>Є</div> |
||||
<div><p>&#1029;</p>Ѕ</div> |
||||
<div><p>&#1030;</p>І</div> |
||||
<div><p>&#1031;</p>Ї</div> |
||||
<div><p>&#1032;</p>Ј</div> |
||||
<div><p>&#1033;</p>Љ</div> |
||||
<div><p>&#1034;</p>Њ</div> |
||||
<div><p>&#1035;</p>Ћ</div> |
||||
<div><p>&#1036;</p>Ќ</div> |
||||
<div><p>&#1037;</p>Ѝ</div> |
||||
<div><p>&#1038;</p>Ў</div> |
||||
<div><p>&#1039;</p>Џ</div> |
||||
<div><p>&#1040;</p>А</div> |
||||
<div><p>&#1041;</p>Б</div> |
||||
<div><p>&#1042;</p>В</div> |
||||
<div><p>&#1043;</p>Г</div> |
||||
<div><p>&#1044;</p>Д</div> |
||||
<div><p>&#1045;</p>Е</div> |
||||
<div><p>&#1046;</p>Ж</div> |
||||
<div><p>&#1047;</p>З</div> |
||||
<div><p>&#1048;</p>И</div> |
||||
<div><p>&#1049;</p>Й</div> |
||||
<div><p>&#1050;</p>К</div> |
||||
<div><p>&#1051;</p>Л</div> |
||||
<div><p>&#1052;</p>М</div> |
||||
<div><p>&#1053;</p>Н</div> |
||||
<div><p>&#1054;</p>О</div> |
||||
<div><p>&#1055;</p>П</div> |
||||
<div><p>&#1056;</p>Р</div> |
||||
<div><p>&#1057;</p>С</div> |
||||
<div><p>&#1058;</p>Т</div> |
||||
<div><p>&#1059;</p>У</div> |
||||
<div><p>&#1060;</p>Ф</div> |
||||
<div><p>&#1061;</p>Х</div> |
||||
<div><p>&#1062;</p>Ц</div> |
||||
<div><p>&#1063;</p>Ч</div> |
||||
<div><p>&#1064;</p>Ш</div> |
||||
<div><p>&#1065;</p>Щ</div> |
||||
<div><p>&#1066;</p>Ъ</div> |
||||
<div><p>&#1067;</p>Ы</div> |
||||
<div><p>&#1068;</p>Ь</div> |
||||
<div><p>&#1069;</p>Э</div> |
||||
<div><p>&#1070;</p>Ю</div> |
||||
<div><p>&#1071;</p>Я</div> |
||||
<div><p>&#1072;</p>а</div> |
||||
<div><p>&#1073;</p>б</div> |
||||
<div><p>&#1074;</p>в</div> |
||||
<div><p>&#1075;</p>г</div> |
||||
<div><p>&#1076;</p>д</div> |
||||
<div><p>&#1077;</p>е</div> |
||||
<div><p>&#1078;</p>ж</div> |
||||
<div><p>&#1079;</p>з</div> |
||||
<div><p>&#1080;</p>и</div> |
||||
<div><p>&#1081;</p>й</div> |
||||
<div><p>&#1082;</p>к</div> |
||||
<div><p>&#1083;</p>л</div> |
||||
<div><p>&#1084;</p>м</div> |
||||
<div><p>&#1085;</p>н</div> |
||||
<div><p>&#1086;</p>о</div> |
||||
<div><p>&#1087;</p>п</div> |
||||
<div><p>&#1088;</p>р</div> |
||||
<div><p>&#1089;</p>с</div> |
||||
<div><p>&#1090;</p>т</div> |
||||
<div><p>&#1091;</p>у</div> |
||||
<div><p>&#1092;</p>ф</div> |
||||
<div><p>&#1093;</p>х</div> |
||||
<div><p>&#1094;</p>ц</div> |
||||
<div><p>&#1095;</p>ч</div> |
||||
<div><p>&#1096;</p>ш</div> |
||||
<div><p>&#1097;</p>щ</div> |
||||
<div><p>&#1098;</p>ъ</div> |
||||
<div><p>&#1099;</p>ы</div> |
||||
<div><p>&#1100;</p>ь</div> |
||||
<div><p>&#1101;</p>э</div> |
||||
<div><p>&#1102;</p>ю</div> |
||||
<div><p>&#1103;</p>я</div> |
||||
<div><p>&#1105;</p>ё</div> |
||||
<div><p>&#1106;</p>ђ</div> |
||||
<div><p>&#1107;</p>ѓ</div> |
||||
<div><p>&#1108;</p>є</div> |
||||
<div><p>&#1109;</p>ѕ</div> |
||||
<div><p>&#1110;</p>і</div> |
||||
<div><p>&#1111;</p>ї</div> |
||||
<div><p>&#1112;</p>ј</div> |
||||
<div><p>&#1113;</p>љ</div> |
||||
<div><p>&#1114;</p>њ</div> |
||||
<div><p>&#1115;</p>ћ</div> |
||||
<div><p>&#1116;</p>ќ</div> |
||||
<div><p>&#1117;</p>ѝ</div> |
||||
<div><p>&#1118;</p>ў</div> |
||||
<div><p>&#1119;</p>џ</div> |
||||
<div><p>&#1168;</p>Ґ</div> |
||||
<div><p>&#1169;</p>ґ</div> |
||||
<div><p>&#1200;</p>Ұ</div> |
||||
<div><p>&#1201;</p>ұ</div> |
||||
<div><p>&#1206;</p>Ҷ</div> |
||||
<div><p>&#1207;</p>ҷ</div> |
||||
<div><p>&#1210;</p>Һ</div> |
||||
<div><p>&#1216;</p>Ӏ</div> |
||||
<div><p>&#8211;</p>–</div> |
||||
<div><p>&#8212;</p>—</div> |
||||
<div><p>&#8216;</p>‘</div> |
||||
<div><p>&#8217;</p>’</div> |
||||
<div><p>&#8218;</p>‚</div> |
||||
<div><p>&#8220;</p>“</div> |
||||
<div><p>&#8221;</p>”</div> |
||||
<div><p>&#8222;</p>„</div> |
||||
<div><p>&#8226;</p>•</div> |
||||
<div><p>&#8230;</p>…</div> |
||||
<div><p>&#8249;</p>‹</div> |
||||
<div><p>&#8250;</p>›</div> |
||||
<div><p>&#8364;</p>€</div> |
||||
<div><p>&#8482;</p>™</div> |
||||
<div><p>&#9724;</p>◼</div> |
||||
</div> |
||||
</div> |
||||
|
||||
|
||||
</div> |
||||
</div> |
||||
|
||||
|
||||
<div id="specs"> |
||||
|
||||
</div> |
||||
|
||||
<div id="installing"> |
||||
<div class="section"> |
||||
<div class="grid7 firstcol"> |
||||
<h1>Installing Webfonts</h1> |
||||
|
||||
<p>Webfonts are supported by all major browser platforms but not all in the same way. There are currently four different font formats that must be included in order to target all browsers. This includes TTF, WOFF, EOT and SVG.</p> |
||||
|
||||
<h2>1. Upload your webfonts</h2> |
||||
<p>You must upload your webfont kit to your website. They should be in or near the same directory as your CSS files.</p> |
||||
|
||||
<h2>2. Include the webfont stylesheet</h2> |
||||
<p>A special CSS @font-face declaration helps the various browsers select the appropriate font it needs without causing you a bunch of headaches. Learn more about this syntax by reading the <a href="http://www.fontspring.com/blog/further-hardening-of-the-bulletproof-syntax">Fontspring blog post</a> about it. The code for it is as follows:</p> |
||||
|
||||
|
||||
<code> |
||||
@font-face{ |
||||
font-family: 'MyWebFont'; |
||||
src: url('WebFont.eot'); |
||||
src: url('WebFont.eot?#iefix') format('embedded-opentype'), |
||||
url('WebFont.woff') format('woff'), |
||||
url('WebFont.ttf') format('truetype'), |
||||
url('WebFont.svg#webfont') format('svg'); |
||||
} |
||||
</code> |
||||
|
||||
<p>We've already gone ahead and generated the code for you. All you have to do is link to the stylesheet in your HTML, like this:</p> |
||||
<code><link rel="stylesheet" href="stylesheet.css" type="text/css" charset="utf-8" /></code> |
||||
|
||||
<h2>3. Modify your own stylesheet</h2> |
||||
<p>To take advantage of your new fonts, you must tell your stylesheet to use them. Look at the original @font-face declaration above and find the property called "font-family." The name linked there will be what you use to reference the font. Prepend that webfont name to the font stack in the "font-family" property, inside the selector you want to change. For example:</p> |
||||
<code>p { font-family: 'WebFont', Arial, sans-serif; }</code> |
||||
|
||||
<h2>4. Test</h2> |
||||
<p>Getting webfonts to work cross-browser <em>can</em> be tricky. Use the information in the sidebar to help you if you find that fonts aren't loading in a particular browser.</p> |
||||
</div> |
||||
|
||||
<div class="grid5 sidebar"> |
||||
<div class="box"> |
||||
<h2>Troubleshooting<br />Font-Face Problems</h2> |
||||
<p>Having trouble getting your webfonts to load in your new website? Here are some tips to sort out what might be the problem.</p> |
||||
|
||||
<h3>Fonts not showing in any browser</h3> |
||||
|
||||
<p>This sounds like you need to work on the plumbing. You either did not upload the fonts to the correct directory, or you did not link the fonts properly in the CSS. If you've confirmed that all this is correct and you still have a problem, take a look at your .htaccess file and see if requests are getting intercepted.</p> |
||||
|
||||
<h3>Fonts not loading in iPhone or iPad</h3> |
||||
|
||||
<p>The most common problem here is that you are serving the fonts from an IIS server. IIS refuses to serve files that have unknown MIME types. If that is the case, you must set the MIME type for SVG to "image/svg+xml" in the server settings. Follow these instructions from Microsoft if you need help.</p> |
||||
|
||||
<h3>Fonts not loading in Firefox</h3> |
||||
|
||||
<p>The primary reason for this failure? You are still using a version Firefox older than 3.5. So upgrade already! If that isn't it, then you are very likely serving fonts from a different domain. Firefox requires that all font assets be served from the same domain. Lastly it is possible that you need to add WOFF to your list of MIME types (if you are serving via IIS.)</p> |
||||
|
||||
<h3>Fonts not loading in IE</h3> |
||||
|
||||
<p>Are you looking at Internet Explorer on an actual Windows machine or are you cheating by using a service like Adobe BrowserLab? Many of these screenshot services do not render @font-face for IE. Best to test it on a real machine.</p> |
||||
|
||||
<h3>Fonts not loading in IE9</h3> |
||||
|
||||
<p>IE9, like Firefox, requires that fonts be served from the same domain as the website. Make sure that is the case.</p> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
</div> |
||||
<div id="footer"> |
||||
<p>©2010-2011 Font Squirrel. All rights reserved.</p> |
||||
</div> |
||||
</div> |
||||
</body> |
||||
</html> |
||||