// recess: ignore
|
|
|
|
@toolbar-grey: #282828;
|
|
@button-grey: #808080;
|
|
@panel-grey: #C0C0C0;
|
|
@text-field-grey: #E5E5E5;
|
|
@link-blue: #0076C3;
|
|
|
|
@line-width: 2px;
|
|
@cell-size: 5 * @subcell-size;
|
|
@font-size: 10pt;
|
|
|
|
@toolbar-height: @cell-size;
|
|
@icon-small-size: 2 * @subcell-size;
|
|
|
|
@toolbutton-size: @toolbar-height - (4 * @line-width);
|
|
@toolbar-button-margin-top: (@toolbar-height / 2) - (2 * @line-width) -
|
|
(@icon-small-size / 2);
|
|
|
|
@input-text-padding: (2 * @line-width);
|
|
@input-text-line-height: 2 * @subcell-size;
|
|
@input-text-width: 3 * @cell-size;
|
|
@toolbar-input-height: (@toolbar-height / 2) - (@input-text-line-height / 2) -
|
|
(@input-text-padding + @line-width);
|
|
|
|
@button-small-size: @input-text-line-height + (2 * @input-text-padding) +
|
|
(2 * @line-width);
|
|
|
|
html {
|
|
height: 100%;
|
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
|
|
}
|
|
|
|
body {
|
|
position: relative;
|
|
height: 100%;
|
|
margin: 0;
|
|
font-family: sans-serif;
|
|
font-size: @font-size;
|
|
background-color: @panel-grey;
|
|
}
|
|
|
|
.unselectable {
|
|
-webkit-user-select: none;
|
|
-moz-user-select: none;
|
|
}
|
|
|
|
.pull-right {
|
|
float: right;
|
|
}
|
|
|
|
a {
|
|
color: @link-blue;
|
|
text-decoration: none;
|
|
}
|
|
|
|
/* Toolbar */
|
|
|
|
.toolbar {
|
|
height: @toolbar-height;
|
|
padding: 0 @toolbutton-size + (5 * @line-width);
|
|
color: white;
|
|
background-color: @toolbar-grey;
|
|
.unselectable;
|
|
}
|
|
|
|
/* Toolbar separator */
|
|
|
|
.toolbar hr {
|
|
display: inline-block;
|
|
height: 3 * @subcell-size;
|
|
margin: (@subcell-size - (@line-width * 3)) / 2;
|
|
margin-bottom: -1 * (@subcell-size + (@line-width * 3));
|
|
border: (@line-width / 2) solid @button-grey;
|
|
}
|
|
|
|
/* Toolbar toolbutton */
|
|
|
|
.toolbar .toolbutton {
|
|
position: relative;
|
|
width: @toolbutton-size;
|
|
height: @toolbutton-size;
|
|
margin: (2 * @line-width) @line-width;
|
|
color: white;
|
|
color: transparent;
|
|
background-color: transparent;
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
background-size: contain;
|
|
border: 0;
|
|
border-radius: @subcell-size / 2;
|
|
}
|
|
|
|
.toolbar .toolbutton:hover {
|
|
background-color: black;
|
|
}
|
|
|
|
.toolbar .toolbutton:active, .toolbar .toolbutton.active {
|
|
background-color: @button-grey;
|
|
}
|
|
|
|
.toolbar .toolbutton img {
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
|
|
.toolbar .toolbutton:before {
|
|
position: absolute;
|
|
right: -2 * @line-width;
|
|
bottom: -2 * @line-width;
|
|
display: block;
|
|
width: @cell-size;
|
|
height: @subcell-size;
|
|
background-color: transparent;
|
|
content: "";
|
|
}
|
|
|
|
.toolbar .toolbutton.invoker:before {
|
|
background-image: url('../icons/emblems/arrow-down.svg');
|
|
}
|
|
|
|
.toolbar #stop-button {
|
|
background-image: url('../icons/actions/activity-stop.svg');
|
|
}
|
|
|
|
/* Canvas */
|
|
|
|
#canvas {
|
|
position: absolute;
|
|
top: @toolbar-height;
|
|
bottom: 0;
|
|
width: 100%;
|
|
overflow-y: auto;
|
|
color: black;
|
|
background-color: @panel-grey;
|
|
}
|
|
|
|
/* Button */
|
|
|
|
button {
|
|
padding: @line-width (2 * @line-width);
|
|
line-height: @icon-small-size;
|
|
color: white;
|
|
background-color: @button-grey;
|
|
border: @line-width solid transparent;
|
|
border-radius: 2 * @subcell-size;
|
|
.unselectable;
|
|
}
|
|
|
|
button:hover {
|
|
background-color: @button-grey + #222;
|
|
border-color: @button-grey + #222;
|
|
}
|
|
|
|
button:active {
|
|
color: black;
|
|
background-color: white;
|
|
border-color: @button-grey;
|
|
}
|
|
|
|
button:focus {
|
|
border-color: white;
|
|
}
|
|
|
|
.toolbar button {
|
|
margin-top: @toolbar-button-margin-top;
|
|
}
|
|
|
|
/* Button with icon */
|
|
|
|
button.icon {
|
|
position: relative;
|
|
padding-left: @icon-small-size + (2 * @line-width);
|
|
}
|
|
|
|
button.icon span.ok {
|
|
background-image: url(../icons/actions/dialog-ok.svg);
|
|
}
|
|
|
|
button.icon:active span.ok {
|
|
background-image: url(../icons/actions/dialog-ok-active.svg);
|
|
}
|
|
|
|
button.icon span.cancel {
|
|
background-image: url(../icons/actions/dialog-cancel.svg);
|
|
}
|
|
|
|
button.icon:active span.cancel {
|
|
background-image: url(../icons/actions/dialog-cancel-active.svg);
|
|
}
|
|
|
|
button.icon span {
|
|
position: absolute;
|
|
display: inline-block;
|
|
width: @icon-small-size;
|
|
height: @icon-small-size;
|
|
background-color: transparent;
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
background-size: @icon-small-size @icon-small-size;
|
|
}
|
|
|
|
button.icon span {
|
|
top: @line-width;
|
|
left: @line-width;
|
|
}
|
|
|
|
/* One line text input */
|
|
|
|
input[type='text'] {
|
|
width: @input-text-width;
|
|
padding: @input-text-padding;
|
|
line-height: @input-text-line-height;
|
|
background-color: @text-field-grey;
|
|
border: @line-width solid @text-field-grey;
|
|
border-radius: 2 * @subcell-size;
|
|
outline: 0;
|
|
}
|
|
|
|
input[type='text']:focus {
|
|
background-color: white;
|
|
}
|
|
|
|
input[type='text']:disabled {
|
|
background-color: @button-grey;
|
|
border-color: @button-grey;
|
|
}
|
|
|
|
.toolbar input[type='text'], .palette .row input[type='text'] {
|
|
margin-top: @toolbar-input-height;
|
|
}
|
|
|
|
.palette .row input[type='text']:nth-last-child(1) {
|
|
margin-top: @toolbar-input-height - @line-width;
|
|
}
|
|
|
|
input[type='text'].expand {
|
|
width: calc(~"100%" - (2 * @input-text-padding + 2 * @line-width));
|
|
}
|
|
|
|
/* One line text input with buttons inside */
|
|
|
|
.icon-input {
|
|
position: relative;
|
|
display: inline-block;
|
|
}
|
|
|
|
.icon-input input[type='text'] {
|
|
width: @input-text-width + @input-text-padding - @button-small-size;
|
|
padding-right: @button-small-size;
|
|
}
|
|
|
|
.icon-input.expand {
|
|
width: 100%;
|
|
}
|
|
|
|
.icon-input.expand input[type='text'] {
|
|
width: calc(~"100%" - (@input-text-padding + 2 * @line-width +
|
|
@button-small-size));
|
|
}
|
|
|
|
.icon-input button {
|
|
position: absolute;
|
|
width: @button-small-size;
|
|
height: @button-small-size;
|
|
padding: 0;
|
|
background-size: @icon-small-size @icon-small-size;
|
|
}
|
|
|
|
.icon-input button.right {
|
|
right: 0;
|
|
margin: 0 0 0 -@button-small-size;
|
|
border-radius: 0 (2 * @subcell-size) (2 * @subcell-size) 0;
|
|
}
|
|
|
|
.icon-input button {
|
|
background-color: transparent;
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
border: 0;
|
|
}
|
|
|
|
.icon-input button {
|
|
top: @line-width;
|
|
}
|
|
|
|
.toolbar .icon-input button:hover {
|
|
background-color: transparent;
|
|
}
|
|
|
|
.toolbar .icon-input button {
|
|
top: @toolbar-input-height;
|
|
}
|
|
|
|
button.cancel {
|
|
background-image: url(../icons/actions/entry-cancel.svg);
|
|
}
|
|
|
|
button.cancel:active {
|
|
background-image: url(../icons/actions/entry-cancel-active.svg);
|
|
}
|
|
|
|
button.cancel:disabled {
|
|
background-image: url(../icons/actions/entry-cancel-disabled.svg);
|
|
}
|
|
|
|
/* Slider */
|
|
/* FIXME this is not fully Sugarized yet */
|
|
|
|
input[type='range'] {
|
|
height: @subcell-size;
|
|
cursor: pointer;
|
|
background-color: @button-grey;
|
|
border-radius: 2 * @subcell-size;
|
|
-webkit-appearance: none !important;
|
|
}
|
|
|
|
input[type='range']::-webkit-slider-thumb {
|
|
width: @icon-small-size;
|
|
height: @icon-small-size;
|
|
background-color: @panel-grey;
|
|
border: (2 * @line-width) solid @button-grey;
|
|
border-radius: @subcell-size;
|
|
-webkit-appearance: none !important;
|
|
}
|
|
|
|
input[type='range']::-webkit-slider-thumb:hover {
|
|
background-color: @panel-grey + #222;
|
|
border-color: @button-grey + #222;
|
|
}
|
|
|
|
.toolbar input[type='range'] {
|
|
margin-top: (@toolbar-height / 2) - (@subcell-size / 2);
|
|
}
|
|
|
|
/* Label */
|
|
|
|
label {
|
|
.unselectable;
|
|
}
|
|
|
|
/* Palette */
|
|
|
|
.palette {
|
|
position: absolute;
|
|
color: white;
|
|
pointer-events: none;
|
|
background-color: transparent;
|
|
}
|
|
|
|
.palette-invoker {
|
|
width: @cell-size - 2 * @line-width;
|
|
height: @cell-size - @line-width;
|
|
background-color: black;
|
|
background-position: @line-width @line-width;
|
|
background-repeat: no-repeat;
|
|
background-size: @toolbutton-size;
|
|
border: @line-width solid @button-grey;
|
|
border-bottom: 0;
|
|
}
|
|
|
|
.palette-invoker:after {
|
|
position: absolute;
|
|
top: 4 * @subcell-size;
|
|
left: 0;
|
|
display: block;
|
|
width: @cell-size;
|
|
height: @subcell-size;
|
|
background-color: transparent;
|
|
background-image: url('../icons/emblems/arrow-up.svg');
|
|
content: "";
|
|
}
|
|
|
|
.palette-invoker:before {
|
|
position: absolute;
|
|
top: @cell-size;
|
|
left: @line-width;
|
|
display: block;
|
|
width: @cell-size - 2 * @line-width;
|
|
height: @line-width;
|
|
background-color: black;
|
|
content: "";
|
|
}
|
|
|
|
.palette .wrapper {
|
|
max-width: 5 * @cell-size - 2 * @line-width;
|
|
min-width: 3 * @cell-size - 2 * @line-width;
|
|
min-height: @cell-size - 2 * @line-width;
|
|
pointer-events: auto;
|
|
background-color: black;
|
|
border: @line-width solid @button-grey;
|
|
}
|
|
|
|
.palette .header {
|
|
height: @cell-size - 2 * @line-width;
|
|
margin: 0 (@subcell-size / 2);
|
|
font-weight: bold;
|
|
line-height: @cell-size - 2 * @line-width;
|
|
.unselectable;
|
|
}
|
|
|
|
.palette hr {
|
|
border: (@line-width / 2) solid @button-grey;
|
|
}
|
|
|
|
.palette hr.header-separator {
|
|
margin-top: 0;
|
|
}
|
|
|
|
.palette .row {
|
|
height: @cell-size;
|
|
margin: 0 (@subcell-size / 2);
|
|
}
|
|
|
|
.palette .row:nth-last-child(1) {
|
|
height: @cell-size - 2 * @line-width;
|
|
}
|
|
|
|
.palette .row.small {
|
|
height: 2 * @subcell-size;
|
|
}
|
|
|
|
.palette .row.expand {
|
|
height: auto;
|
|
}
|
|
|
|
/* Palette menu */
|
|
|
|
.palette .menu {
|
|
padding: 0;
|
|
margin-top: @subcell-size;
|
|
margin-bottom: @subcell-size;
|
|
list-style-type: none;
|
|
}
|
|
|
|
.palette .menu button {
|
|
width: 100%;
|
|
padding-top: 0;
|
|
padding-bottom: 0;
|
|
margin-top: 0;
|
|
margin-bottom: 0;
|
|
line-height: 3 * @subcell-size;
|
|
text-align: left;
|
|
background-color: transparent;
|
|
border: 0;
|
|
border-radius: 0;
|
|
}
|
|
|
|
.palette .menu button:hover {
|
|
color: white;
|
|
background-color: @button-grey;
|
|
}
|
|
|
|
.palette .menu button.icon {
|
|
padding-left: 3 * @subcell-size + 2 * @line-width;
|
|
}
|
|
|
|
.palette .menu button.icon span {
|
|
top: 0;
|
|
left: 0;
|
|
width: 3 * @subcell-size;
|
|
height: 3 * @subcell-size;
|
|
}
|
|
|
|
/* Scrollbar */
|
|
|
|
::-webkit-scrollbar {
|
|
width: @subcell-size;
|
|
background-color: @button-grey;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
background-color: white;
|
|
border: @line-width solid #ddd;
|
|
border-radius: @subcell-size;
|
|
}
|
|
|
|
/* Grid for visual debugging and layout */
|
|
|
|
.grid {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
background-color: transparent;
|
|
}
|
|
|
|
.appearance(@value) {
|
|
-webkit-appearance: @value;
|
|
-moz-appearance: @value;
|
|
appearance: @value;
|
|
}
|
|
|
|
/* Checkbox and radio */
|
|
|
|
input[type='checkbox'],
|
|
input[type='radio'] {
|
|
width: @icon-small-size;
|
|
height: @icon-small-size;
|
|
margin: @line-width @line-width (2 * @line-width) @line-width;
|
|
vertical-align: middle;
|
|
background-position: center;
|
|
background-size: contain;
|
|
.appearance(none);
|
|
}
|
|
|
|
.toolbar input[type='checkbox'],
|
|
.toolbar input[type='radio'] {
|
|
margin-top: (@toolbar-height - @icon-small-size) / 2 - @line-width;
|
|
margin-bottom: (@toolbar-height - @icon-small-size) / 2 + @line-width;
|
|
}
|
|
|
|
input[type='checkbox'] {
|
|
background-image: url(../icons/actions/checkbox-unchecked.svg);
|
|
}
|
|
|
|
input[type='checkbox']:active {
|
|
background-image: url(../icons/actions/checkbox-checked-selected.svg);
|
|
}
|
|
|
|
input[type='checkbox']:checked:active {
|
|
background-image: url(../icons/actions/checkbox-checked-selected.svg);
|
|
}
|
|
|
|
input[type='checkbox']:checked {
|
|
background-image: url(../icons/actions/checkbox-checked.svg);
|
|
}
|
|
|
|
input[type='radio'] {
|
|
background-image: url(../icons/actions/radio.svg);
|
|
}
|
|
|
|
input[type='radio']:active {
|
|
background-image: url(../icons/actions/radio-selected.svg);
|
|
}
|
|
|
|
input[type='radio']:checked:active {
|
|
background-image: url(../icons/actions/radio-active-selected.svg);
|
|
}
|
|
|
|
input[type='radio']:checked {
|
|
background-image: url(../icons/actions/radio-active.svg);
|
|
}
|
|
|
|
/* Textarea */
|
|
|
|
textarea {
|
|
margin: @line-width;
|
|
border: @line-width solid @button-grey;
|
|
}
|
|
|
|
textarea.expand {
|
|
width: calc(~"100%" - (6 * (@line-width)));
|
|
}
|
|
|
|
/* Lists */
|
|
|
|
ul.flat-list {
|
|
padding: 0;
|
|
margin: 0;
|
|
list-style-type: none;
|
|
}
|
|
|
|
ul.flat-list li {
|
|
height: 3 * @subcell-size - @line-width;
|
|
line-height: 3 * @subcell-size - @line-width;
|
|
background-color: white;
|
|
border-bottom: @line-width dotted @panel-grey;
|
|
}
|
|
|
|
ul.flat-list li:nth-last-child(1) {
|
|
border-bottom: none;
|
|
}
|
|
|
|
ul.flat-list.big li {
|
|
height: 4 * @subcell-size - @line-width;
|
|
line-height: 4 * @subcell-size - @line-width;
|
|
}
|
|
|
|
ul.flat-list.striped li:nth-child(odd) {
|
|
background-color: @text-field-grey;
|
|
}
|
|
|
|
/* ActivityPalette */
|
|
|
|
#activity-palette .wrapper {
|
|
width: 5 * @cell-size - 2 * @line-width;
|
|
}
|