// 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; }