keyboard-layout-editor/kb.css
Ian Prest e075ee3ad3 Fix rendering of profiles on non-rectangular keys.
-- Now setting background-size & background-position properties on the
keycap foregrounds (which are the elements that have gradients applied).
-- Now, instead of each section getting its own gradient, they each get
the *same* gradient... so when they are laid on top of each other, the
gradients match.
-- This is just about perfect for DCS (cylindrical).
-- The effect is less convincing for DSA/SA caps; ideally we'd be able
to "blend" the two gradients together somehow, but CSS doesn't support
non-normal blend-modes, and I don't want to get into <canvas> rendering.
2013-11-09 16:16:58 -05:00

231 lines
No EOL
9.1 KiB
CSS

@font-face {
font-family: 'engravers_gothic_fsregular';
src: url('fonts/EngraversGothic-Regular-webfont.eot');
src: url('fonts/EngraversGothic-Regular-webfont.eot?#iefix') format('embedded-opentype'),
url('fonts/EngraversGothic-Regular-webfont.woff') format('woff'),
url('fonts/EngraversGothic-Regular-webfont.ttf') format('truetype'),
url('fonts/EngraversGothic-Regular-webfont.svg#engravers_gothic_fsregular') format('svg');
font-weight: normal;
font-style: normal;
}
html, body {
height: 100%;
font-family: "Segoe UI", "Arial", "Helvetica", sans-serif;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
cursor: default;
}
.body {
margin: 10px;
}
/* Wrapper for page content to push down footer */
#wrap {
min-height: 100%;
height: auto !important;
height: 100%;
/* Negative indent footer by its height */
margin: 0 auto -70px;
/* Pad bottom by footer height */
padding: 0 0 60px;
}
/* Set the fixed height of the footer here */
#footer {
height: 70px;
background-color: #f5f5f5;
}
/* The keyboard background */
#keyboard {
padding: 5px;
position:relative;
border: solid 1px #ddd;
border-radius: 6px;
background-color: #eee;
min-height: 64px;
-webkit-box-sizing:content-box;
-moz-box-sizing:content-box;
box-sizing:content-box;
margin-top: 10px;
margin-bottom: 10px;
}
.key {
position: relative;
display:table;
-webkit-box-sizing:content-box;
-moz-box-sizing:content-box;
box-sizing:content-box;
}
/* The external border of the keycap */
.keyborder {
position: absolute;
border-radius: 5px;
border: solid 1px black;
-webkit-box-sizing:content-box;
-moz-box-sizing:content-box;
box-sizing:content-box;
}
.keyborder.inner { opacity: 0.1; }
.hover .keyborder { border-color: green; }
.selected .keyborder { border-color: red; }
.ghosted { opacity: 0.4; }
/* The sides of the cap (darker) */
.keybg {
position: absolute;
border-radius: 5px;
-webkit-box-sizing:content-box;
-moz-box-sizing:content-box;
box-sizing:content-box;
}
/* The face of the cap */
.keyfg {
font-family: "Helvetica", "Arial", sans-serif;
position: absolute;
border-radius: 3px;
display:table-cell;
-webkit-box-sizing:content-box;
-moz-box-sizing:content-box;
box-sizing:content-box;
}
.keyfg .keylabel.textsize1 { font-size: 8px; line-height: 1em; }
.keyfg .keylabel.textsize2 { font-size: 10px; line-height: 1em; }
.keyfg .keylabel.textsize3 { font-size: 12px; line-height: 1em; }
.keyfg .keylabel.textsize4 { font-size: 14px; line-height: 1em; }
.keyfg .keylabel.textsize5 { font-size: 16px; line-height: 1em; }
.keyfg .keylabel.textsize6 { font-size: 18px; line-height: 1em; }
.keyfg .keylabel.textsize7 { font-size: 20px; line-height: 1em; }
.keyfg .keylabel.textsize8 { font-size: 22px; line-height: 1em; }
.keyfg .keylabel.textsize9 { font-size: 24px; line-height: 1em; }
.keyfg .keylabel hr { display: inline; }
.keyfg .keylabel hr:before {
position: relative;
display: block;
overflow: hidden;
white-space: nowrap;
content: "\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500\2500";
}
.DCS .keyfg {
background: -moz-linear-gradient(left, rgba(0,0,0,0) 0%, rgba(0,0,0,0.1) 40%, rgba(0,0,0,0.1) 60%, rgba(0,0,0,0) 100%);
background: -webkit-gradient(linear, left top, right top, color-stop(0%,rgba(0,0,0,0)), color-stop(40%,rgba(0,0,0,0.1)), color-stop(60%,rgba(0,0,0,0.1)), color-stop(100%,rgba(0,0,0,0)));
background: -webkit-linear-gradient(left, rgba(0,0,0,0) 0%,rgba(0,0,0,0.1) 40%,rgba(0,0,0,0.1) 60%,rgba(0,0,0,0) 100%);
background: -o-linear-gradient(left, rgba(0,0,0,0) 0%,rgba(0,0,0,0.1) 40%,rgba(0,0,0,0.1) 60%,rgba(0,0,0,0) 100%);
background: -ms-linear-gradient(left, rgba(0,0,0,0) 0%,rgba(0,0,0,0.1) 40%,rgba(0,0,0,0.1) 60%,rgba(0,0,0,0) 100%);
background: linear-gradient(to right, rgba(0,0,0,0) 0%,rgba(0,0,0,0.1) 40%,rgba(0,0,0,0.1) 60%,rgba(0,0,0,0) 100%);
background-repeat: no-repeat;
}
.DSA .keyborder.inner, .SA .keyborder.inner { margin-top: 3px; border-radius: 8px; }
.DSA .keyfg, .SA .keyfg {
font-family: 'engravers_gothic_fsregular'; /* substitute for Gorton Modified */
border-radius: 8px;
margin-top: 3px;
background: -moz-radial-gradient(center, ellipse cover, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.1) 10%, rgba(0,0,0,0) 100%);
background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(0,0,0,0.1)), color-stop(10%,rgba(0,0,0,0.1)), color-stop(100%,rgba(0,0,0,0)));
background: -webkit-radial-gradient(center, ellipse cover, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0.1) 10%,rgba(0,0,0,0) 100%);
background: -o-radial-gradient(center, ellipse cover, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0.1) 10%,rgba(0,0,0,0) 100%);
background: -ms-radial-gradient(center, ellipse cover, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0.1) 10%,rgba(0,0,0,0) 100%);
background: radial-gradient(ellipse at center, rgba(0,0,0,0.1) 0%,rgba(0,0,0,0.1) 10%,rgba(0,0,0,0) 100%);
background-repeat: no-repeat;
}
.DCS.SPACE .keyfg, .DSA.SPACE .keyfg, .SA.SPACE .keyfg {
background: -moz-linear-gradient(top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 20%, rgba(0,0,0,0) 40%, rgba(0,0,0,0.1) 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(0,0,0,0.1)), color-stop(20%, rgba(0,0,0,0)), color-stop(40%, rgba(0,0,0,0)), color-stop(100%, rgba(0,0,0,0.1)));
background: -webkit-linear-gradient(top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 20%, rgba(0,0,0,0) 40%, rgba(0,0,0,0.1) 100%);
background: -o-linear-gradient(top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 20%, rgba(0,0,0,0) 40%, rgba(0,0,0,0.1) 100%);
background: -ms-linear-gradient(top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 20%, rgba(0,0,0,0) 40%, rgba(0,0,0,0.1) 100%);
background: linear-gradient(to bottom, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 20%, rgba(0,0,0,0) 40%, rgba(0,0,0,0.1) 100%);
background-repeat: no-repeat;
}
/* Key labels */
.keylabels { display: table; }
.keylabel { display: table-row; position: absolute; left:2px; top:2px; right:2px; bottom:2px; }
.keylabel > div { display: table-cell; }
.keylabel3>div, .keylabel4>div, .keylabel6>div, .keylabel8>div { text-align: right; }
.keylabel7>div, .keylabel8>div { vertical-align: middle; }
.keylabel2>div, .keylabel4>div { vertical-align: bottom; }
.keylabel5, .keylabel6 { top:100%; margin-top:0px; font-size: 10px !important; white-space:nowrap; overflow: hidden;}
.DSA .keylabel5, .DSA .keylabel6, .SA .keylabel5, .SA .keylabel6 { margin-top:-1px; font-size: 9px !important; }
.keylabel1.centerx-true>div, .keylabel2.centerx-true>div, .keylabel5.centerf-true>div, .keylabel7.centerx-true>div { text-align: center; }
.keylabel1.centery-true>div, .keylabel3.centery-true>div { vertical-align: middle; }
/* color swatches */
#swatches {
list-style-type: none;
-webkit-margin-before: 0em;
-webkit-margin-after: 0em;
-webkit-margin-start: 0px;
-webkit-margin-end: 0px;
-webkit-padding-start: 0px;
}
.swatch {
display: inline-block;
position:relative;
width: 16px;
height: 32px;
border:solid 1px #888;
margin-right:-1px;
margin-bottom:-6px;
padding:0px;
}
#swatches.disabled .swatch {
background-color: rgb(235,235,228) !important;
}
.swatch .highlight { display:none; }
.swatch.selected-bg .highlight.bg { display:block; z-index:100; width: 6px; height: 6px; border: solid 1px black; background: white; opacity; 0.75; position:absolute; left:7px; top:23px; }
.swatch.selected-fg .highlight.fg { display:block; z-index:100; width: 6px; height: 6px; border: solid 1px white; background: black; opacity; 0.75; position:absolute; left:1px; top:23px; }
/* general styles */
.hidden { display: none; }
.error { border: solid 2px rgb(217,83,79); }
#selectionRectangle { position: absolute; border: dashed 2px red; }
#rawdata {
width: 100%;
height: 200px;
font-family: "Consolas", "Courier New", "Courier", monospace;
}
#rawdata-error {
font-family: "Consolas", "Courier New", "Courier", monospace;
white-space: pre;
}
.tab-content {
border-left: 1px solid #ddd;
border-right: 1px solid #ddd;
border-bottom: 1px solid #ddd;
padding-top: 15px;
padding-bottom: 15px;
}
#properties.row { padding-left:30px; }
.form-horizontal .control-label {
float:left;
padding-right: 5px;
padding-top: 3px;
width: 120px;
}
.form-horizontal input { margin-bottom: 2px; }
.shortcuts tr > td:first-child { text-align:right; padding-right: 6px; padding-top: 3px;}
.shortcuts .shortcut { background-color: #444; color: white; padding: 1px 6px; border-radius:6px; }
.checkbox-label { font-weight: normal; padding-left: 4px; }
/* Tooltip modifications */
.hint--rounded:after { width: 300px; }
.hint:after, [data-hint]:after { white-space: pre-line; }
.hint:before, .hint:after, [data-hint]:before, [data-hint]:after { -webkit-transition: 0.1s ease; -moz-transition: 0.1s ease; transition: 0.1s ease; }
#swap-colors { position: relative; top: 15px; }
.color-name { display: inline-block; min-width: 3em; font-size: 10px; white-space: nowrap; }