This commit is contained in:
2025-10-22 15:39:40 +08:00
commit b0b510fac1
2720 changed files with 415933 additions and 0 deletions

View File

@@ -0,0 +1,17 @@
// AbsoluteLayout
.@{prefix}-abs-layout {
position: relative;
}
html .@{prefix}-abs-layout-item, .@{prefix}-abs-end {
position: absolute;
}
.@{prefix}-abs-end {
width: 1px; height: 1px;
}
.@{prefix}-container-body.@{prefix}-abs-layout {
overflow: hidden;
}

View File

@@ -0,0 +1,10 @@
// Animations
.@{prefix}-fade {
opacity: 0;
.transition(opacity .15s linear);
&.@{prefix}-in {
opacity: 1;
}
}

View File

@@ -0,0 +1,115 @@
// Arrows
.@{prefix}-arrow-up {
margin-top: 12px;
}
.@{prefix}-arrow-down {
margin-top: -12px;
}
.@{prefix}-arrow:before,
.@{prefix}-arrow:after {
position: absolute;
left: 50%;
display: block;
width: 0;
height: 0;
border-style: solid;
border-color: transparent;
content: "";
}
.@{prefix}-arrow.@{prefix}-arrow-up:before {
top: -9px;
border-bottom-color: @panel-border;
border-width: 0 9px 9px;
margin-left: -9px;
}
.@{prefix}-arrow.@{prefix}-arrow-down:before {
bottom: -9px;
border-top-color: @panel-border;
border-width: 9px 9px 0;
margin-left: -9px;
}
.@{prefix}-arrow.@{prefix}-arrow-up:after {
top: -8px;
border-bottom-color: @panel-bg;
border-width: 0 8px 8px;
margin-left: -8px;
}
.@{prefix}-arrow.@{prefix}-arrow-down:after {
bottom: -8px;
border-top-color: @panel-bg;
border-width: 8px 8px 0;
margin-left: -8px;
}
.@{prefix}-arrow.@{prefix}-arrow-left:before,
.@{prefix}-arrow.@{prefix}-arrow-left:after {
margin: 0;
}
.@{prefix}-arrow.@{prefix}-arrow-left:before {
left: 8px;
}
.@{prefix}-arrow.@{prefix}-arrow-left:after {
left: 9px;
}
.@{prefix}-arrow.@{prefix}-arrow-right:before,
.@{prefix}-arrow.@{prefix}-arrow-right:after {
left: auto;
margin: 0;
}
.@{prefix}-arrow.@{prefix}-arrow-right:before {
right: 8px;
}
.@{prefix}-arrow.@{prefix}-arrow-right:after {
right: 9px;
}
.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-left:before {
left: -9px;
top: 50%;
border-right-color: @panel-border;
border-width: 9px 9px 9px 0;
margin-top: -9px;
}
.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-left:after {
left: -8px;
top: 50%;
border-right-color: @panel-bg;
border-width: 8px 8px 8px 0;
margin-top: -8px;
}
.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-left {
margin-left: 12px;
}
.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-right:before {
right: -9px;
top: 50%;
border-left-color: @panel-border;
border-width: 9px 0 9px 9px;
margin-top: -9px;
}
.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-right:after {
right: -8px;
top: 50%;
border-left-color: @panel-bg;
border-width: 8px 0 8px 8px;
margin-top: -8px;
}
.@{prefix}-arrow.@{prefix}-arrow-center.@{prefix}-arrow.@{prefix}-arrow-right {
margin-left: -14px;
}

View File

@@ -0,0 +1,21 @@
// BrowseButton
.@{prefix}-browsebutton {
position: relative;
overflow: hidden;
& button {
position: relative;
z-index: 1;
}
& input {
.opacity(0);
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 0;
}
}

View File

@@ -0,0 +1,191 @@
// Button
.@{prefix}-btn {
border: 1px solid mix(rgb(red(@btn-border-right), green(@btn-border-right), blue(@btn-border-right)), @panel-bg, 30%);
border-color: @btn-border-top @btn-border-right @btn-border-bottom @btn-border-left;
position: relative;
text-shadow: @text-shadow;
background: @btn-bg;
.inline-block();
.border-radius(3px);
.box-shadow(@btn-box-shadow);
&:hover, &:active {
background: @btn-bg-hover;
color: @btn-text-hover;
border-color: @btn-border-hover;
}
&:focus {
background: @btn-bg-focus;
color: @btn-text-focus;
border-color: @btn-border-focus;
}
&.@{prefix}-disabled button, &.@{prefix}-disabled:hover button {
cursor: default;
.box-shadow(none);
.opacity(@btn-box-disabled-opacity);
}
&.@{prefix}-active,
&.@{prefix}-active:hover,
&.@{prefix}-active:focus,
&.@{prefix}-active:active {
.box-shadow(@btn-box-shadow-active);
background: @btn-bg-active;
color: @btn-text-active;
border-color: @btn-border-active;
}
&.@{prefix}-active button, &.@{prefix}-active:hover button,
&.@{prefix}-active i, &.@{prefix}-active:hover i {
color: @btn-text-active;
}
&:hover .@{prefix}-caret {
border-top-color: @btn-chevron-hover;
}
&.@{prefix}-active .@{prefix}-caret, &.@{prefix}-active:hover .@{prefix}-caret {
border-top-color: @btn-chevron-active;
}
}
.@{prefix}-btn button {
padding: @btn-padding;
font-size: @font-size;
line-height: @line-height;
*line-height: @line-height - 4px;
cursor: pointer;
color: @btn-text;
text-align: center;
// Fixes for default inner padding of button
overflow: visible; // IE7
-webkit-appearance: none; // WebKit
&::-moz-focus-inner { // Gecko
border: 0;
padding: 0;
}
}
.@{prefix}-btn i {
text-shadow: 1px 1px @btn-text-shadow;
}
.@{prefix}-primary.@{prefix}-btn-has-text {
min-width: 50px;
}
.@{prefix}-primary {
color: @btn-primary-text;
border: 1px solid transparent;
border-color: @btn-primary-border;
background-color: @btn-primary-bg;
&:hover, &:focus {
background-color: @btn-primary-bg-hover;
border-color: @btn-primary-border-hover;
}
&.@{prefix}-disabled button, &.@{prefix}-disabled:hover button {
cursor: default;
.box-shadow(none);
.opacity(@btn-box-disabled-opacity);
}
&.@{prefix}-active, &.@{prefix}-active:hover, &:not(.@{prefix}-disabled):active {
background-color: @btn-primary-bg-active;
.box-shadow(@btn-box-shadow-active);
}
}
.@{prefix}-primary button, .@{prefix}-primary button i {
color: @btn-primary-text;
text-shadow: 1px 1px @btn-primary-text-shadow;
}
.@{prefix}-btn .@{prefix}-txt {
font-size: inherit;
line-height: inherit;
color: inherit;
}
.@{prefix}-btn-large button {
padding: 9px 14px;
font-size: @font-size + 2px;
line-height: normal;
.border-radius(5px);
}
.@{prefix}-btn-large i {
margin-top: 2px;
}
.@{prefix}-btn-small button {
padding: 1px 5px;
font-size: @font-size - 2px;
*padding-bottom: 2px;
}
.@{prefix}-btn-small i {
line-height: 20px;
vertical-align: top;
*line-height: 18px;
}
.@{prefix}-btn .@{prefix}-caret {
margin-top: 8px;
margin-left: 0;
}
.@{prefix}-btn-small .@{prefix}-caret {
margin-top: 8px;
margin-left: 0;
}
.@{prefix}-caret {
.inline-block();
width: 0; height: 0;
vertical-align: top;
border-top: 4px solid @btn-chevron;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
content: "";
}
.@{prefix}-disabled .@{prefix}-caret {
border-top-color: @text-disabled;
}
.@{prefix}-caret.@{prefix}-up {
border-bottom: 4px solid @btn-chevron;
border-top: 0;
}
.@{prefix}-btn-flat {
border: 0;
background: transparent;
.border-radius(0);
.box-shadow(none);
filter: none;
}
.@{prefix}-btn-flat:hover, .@{prefix}-btn-flat.@{prefix}-active, .@{prefix}-btn-flat:focus, .@{prefix}-btn-flat:active {
border: 0;
background: @menubar-bg-active;
filter: none;
.box-shadow(none);
}
.@{prefix}-btn-has-text .@{prefix}-ico {
padding-right: 5px;
}
// RTL
.@{prefix}-rtl .@{prefix}-btn button {
direction: rtl;
}

View File

@@ -0,0 +1,75 @@
// ButtonGroup
.@{prefix}-toolbar .@{prefix}-btn-group {
margin: 0;
padding: 2px 0;
}
.btn-group-border-left(@border-color) when (@has-button-borders = true) {
border-left: 1px solid @border-color;
}
.btn-group-border-right(@border-color) when (@has-button-borders = true) {
border-right: 1px solid @border-color;
}
.@{prefix}-btn-group .@{prefix}-btn {
border-width: @btn-group-border-width;
margin: 0;
.border-radius(0);
margin-left: @flow-layout-spacing;
}
.@{prefix}-btn-group .@{prefix}-btn when (@has-button-borders = true) {
border-left-width: 0;
border-right-width: 0;
margin-left: 0;
}
.@{prefix}-btn-group:not(:first-child) when (@has-button-borders = true) {
padding-left: 1px;
margin-left: 1px;
}
.@{prefix}-btn-group:not(:first-child) when (@has-button-borders = false) {
border-left: 1px solid darken(@btn-bg, 15%);
padding-left: 0;
margin-left: @flow-layout-spacing;
}
.@{prefix}-btn-group {
.border-radius(3px 0 0 3px);
.btn-group-border-left(@btn-border-left);
margin-left: 2px;
}
.@{prefix}-btn-group .@{prefix}-last {
.border-radius(0 3px 3px 0);
.btn-group-border-right(@btn-border-right);
}
.@{prefix}-btn-group .@{prefix}-first.@{prefix}-last {
.border-radius(3px);
}
.@{prefix}-btn-group .@{prefix}-btn.@{prefix}-flow-layout-item {
margin: 0;
}
// RTL
.@{prefix}-rtl .@{prefix}-btn-group .@{prefix}-btn {
margin-left: 0;
margin-right: @flow-layout-spacing;
}
.@{prefix}-rtl .@{prefix}-btn-group .@{prefix}-first {
margin-right: 0;
}
.@{prefix}-rtl .@{prefix}-btn-group:not(:first-child) {
border-left: none;
border-right:1px solid darken(@btn-bg, 15%);
padding-right: @flow-layout-spacing + 2px;
margin-right: @flow-layout-spacing + 2px;
}

View File

@@ -0,0 +1,46 @@
// Checkbox
.@{prefix}-checkbox {
cursor: pointer;
}
i.@{prefix}-i-checkbox {
margin: 0 3px 0 0;
border: 1px solid @checkbox-border;
.border-radius(3px);
.box-shadow(@checkbox-box-shadow);
background-color: @checkbox-bg;
text-indent: -10em;
overflow: hidden;
}
.@{prefix}-checked i.@{prefix}-i-checkbox {
color: @btn-text;
font-size: 16px;
line-height: 16px;
text-indent: 0;
}
.@{prefix}-checkbox:focus i.@{prefix}-i-checkbox, .@{prefix}-checkbox.@{prefix}-focus i.@{prefix}-i-checkbox {
border: 1px solid @checkbox-border-focus;
.box-shadow(@checkbox-box-shadow-focus);
}
.@{prefix}-checkbox.@{prefix}-disabled .@{prefix}-label, .@{prefix}-checkbox.@{prefix}-disabled i.@{prefix}-i-checkbox {
color: mix(@text, @panel-bg, 40%);
}
.@{prefix}-checkbox .@{prefix}-label {
vertical-align: middle;
}
// RTL
.@{prefix}-rtl .@{prefix}-checkbox {
direction: rtl;
text-align: right;
}
.@{prefix}-rtl i.@{prefix}-i-checkbox {
margin: 0 0 0 3px;
}

View File

@@ -0,0 +1,6 @@
// ColorBox
.@{prefix}-colorbox i {
border: 1px solid @textbox-border;
width: 14px; height: 14px;
}

View File

@@ -0,0 +1,72 @@
// ColorButton
.@{prefix}-colorbutton .@{prefix}-ico {
position: relative;
}
.@{prefix}-colorbutton-grid {
margin: 4px;
}
/*
.@{prefix}-colorbutton button {
padding-right: 6px;
padding-left: 6px;
}
*/
.@{prefix}-colorbutton .@{prefix}-preview {
padding-right: 3px;
display: block;
position: absolute;
left: 50%;
top: 50%;
margin-left: -17px;
margin-top: 7px;
background: gray;
width: 13px;
height: 2px;
overflow: hidden;
}
.@{prefix}-colorbutton.@{prefix}-btn-small .@{prefix}-preview {
margin-left: -16px;
padding-right: 0;
width: 16px;
}
/*
.@{prefix}-colorbutton .@{prefix}-open {
padding-left: 4px;
padding-right: 4px;
border-left: 1px solid transparent;
}
.@{prefix}-colorbutton:hover .@{prefix}-open {
border-color: darken(@btn-bg, 20%);
}
.@{prefix}-colorbutton.@{prefix}-btn-small .@{prefix}-open {
padding: 0 3px 0 3px;
}
*/
// RTL
.@{prefix}-rtl .@{prefix}-colorbutton {
direction: rtl;
}
.@{prefix}-rtl .@{prefix}-colorbutton .@{prefix}-preview {
margin-left: 0;
padding-right: 0;
padding-left: 3px;
}
.@{prefix}-rtl .@{prefix}-colorbutton.@{prefix}-btn-small .@{prefix}-preview {
margin-left: 0;
padding-right: 0;
padding-left: 2px;
}
.@{prefix}-rtl .@{prefix}-colorbutton .@{prefix}-open {
padding-left: 4px;
padding-right: 4px;
border-left: 0;
}

View File

@@ -0,0 +1,80 @@
// ColorPicker
.@{prefix}-colorpicker {
position: relative;
width: 250px;
height: 220px;
}
.@{prefix}-colorpicker-sv {
position: absolute;
top: 0; left: 0;
width: 90%;
height: 100%;
border: 1px solid @colorpicker-border;
cursor: crosshair;
overflow: hidden;
}
.@{prefix}-colorpicker-h-chunk {
width: 100%;
}
.@{prefix}-colorpicker-overlay1, .@{prefix}-colorpicker-overlay2 {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}
.@{prefix}-colorpicker-overlay1 {
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff');
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=1,startColorstr='#ffffff', endColorstr='#00ffffff')";
background: linear-gradient(to right, rgba(255,255,255,1), rgba(255,255,255,0));
}
.@{prefix}-colorpicker-overlay2 {
filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000');
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr='#00000000', endColorstr='#000000')";
background: linear-gradient(to bottom, rgba(0,0,0,0), rgba(0,0,0,1));
}
.@{prefix}-colorpicker-selector1 {
background: none;
position: absolute;
width: 12px;
height: 12px;
margin: -8px 0 0 -8px;
border: 1px solid black;
border-radius: 50%;
}
.@{prefix}-colorpicker-selector2 {
position: absolute;
width: 10px;
height: 10px;
border: 1px solid white;
border-radius: 50%;
}
.@{prefix}-colorpicker-h {
position: absolute;
top: 0; right: 0;
width: 6.5%;
height: 100%;
border: 1px solid @colorpicker-border;
cursor: crosshair;
}
.@{prefix}-colorpicker-h-marker {
margin-top: -4px;
position: absolute;
top: 0;
left: -1px;
width: 100%;
border: 1px solid @colorpicker-hue-border;
background: @colorpicker-hue-bg;
height: 4px;
z-index: 100;
}

View File

@@ -0,0 +1,93 @@
// ComboBox
.@{prefix}-combobox {
position: relative;
.inline-block();
.border-radius(3px);
.box-shadow(@textbox-box-shadow);
*height: 32px;
}
.@{prefix}-combobox input {
border: 1px solid @textbox-border;
border-right-color: @combobox-border;
height: 28px;
}
.@{prefix}-combobox.@{prefix}-disabled input {
color: mix(@text, @textbox-bg, 40%);
}
.@{prefix}-combobox.@{prefix}-has-open input {
.border-radius(4px 0 0 4px);
}
.@{prefix}-combobox .@{prefix}-btn {
border: 1px solid @textbox-border;
border-left: 0;
.border-radius(0 4px 4px 0);
margin: 0;
}
.@{prefix}-combobox button {
padding-right: 8px;
padding-left: 8px;
}
.@{prefix}-combobox.@{prefix}-disabled .@{prefix}-btn button {
cursor: default;
.box-shadow(none);
.opacity(@btn-box-disabled-opacity);
}
.@{prefix}-combobox .@{prefix}-status {
position: absolute;
right: 2px;
top: 50%;
line-height: 16px;
margin-top: -8px;
font-size: 12px;
width: 15px;
height: 15px;
text-align: center;
cursor: pointer;
}
.@{prefix}-combobox.@{prefix}-has-status input {
padding-right: 20px;
}
.@{prefix}-combobox.@{prefix}-has-open .@{prefix}-status {
right: 37px;
}
.@{prefix}-combobox .@{prefix}-status.@{prefix}-i-warning {
color: @combobox-warning-text;
}
.@{prefix}-combobox .@{prefix}-status.@{prefix}-i-checkmark {
color: @combobox-success-text;
}
.@{prefix}-menu.@{prefix}-combobox-menu {
border-top: 0;
margin-top: 0;
max-height: 200px;
.@{prefix}-menu-item {
padding: 4px 6px 4px 4px;
font-size: 11px;
}
.@{prefix}-menu-item-sep {
padding: 0;
}
.@{prefix}-text, .@{prefix}-text b {
font-size: 11px;
}
.@{prefix}-menu-item-link, .@{prefix}-menu-item-link b {
font-size: 11px;
}
}

View File

@@ -0,0 +1,9 @@
// Container
.@{prefix}-container, .@{prefix}-container-body {
display: block;
}
.@{prefix}-autoscroll {
overflow: hidden;
}

View File

@@ -0,0 +1,9 @@
/* Content.Inline.less */
@import "Variables.less";
@import "Mixins.less";
@import "Content.Objects.less";
.mce-content-body {
line-height: @content-line-height;
}

View File

@@ -0,0 +1,215 @@
/* Content.Objects.less */
.mce-content-body .mce-reset {
margin: 0; padding: 0; border: 0; outline: 0;
vertical-align: top; background: transparent;
text-decoration: none; color: black;
font-family: Arial;
font-size: 11px; text-shadow: none; float: none;
position: static; width: auto; height: auto;
white-space: nowrap; cursor: inherit;
line-height: normal; font-weight: normal;
text-align: left;
-webkit-tap-highlight-color: transparent;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
box-sizing: content-box;
direction: ltr;
max-width: none;
}
.mce-object {
border: 1px dotted #3A3A3A;
background: #D5D5D5 url(img/object.gif) no-repeat center;
}
.mce-preview-object {
display: inline-block;
position: relative;
margin: 0 2px 0 2px;
line-height: 0;
border: 1px solid gray;
}
.mce-preview-object[data-mce-selected="2"] .mce-shim {
display: none;
}
.mce-preview-object .mce-shim {
position: absolute;
top: 0; left: 0;
width: 100%; height: 100%;
background: url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7);
}
figure.align-left {
float: left;
}
figure.align-right {
float: right;
}
figure.image.align-center {
display: table;
margin-left: auto;
margin-right: auto;
}
figure.image {
display: inline-block;
border: 1px solid gray;
margin: 0 2px 0 1px;
background: #f5f2f0;
}
figure.image img {
margin: 8px 8px 0 8px;
}
figure.image figcaption {
margin: 6px 8px 6px 8px;
text-align: center;
}
.mce-toc {
border: 1px solid gray;
}
.mce-toc h2 {
margin: 4px;
}
.mce-toc li {
list-style-type: none;
}
.mce-pagebreak {
cursor: default;
display: block;
border: 0;
width: 100%;
height: 5px;
border: 1px dashed #666;
margin-top: 15px;
page-break-before: always;
}
@media print {
.mce-pagebreak {
border: 0px;
}
}
.mce-item-anchor {
cursor: default;
display: inline-block;
-webkit-user-select: all;
-webkit-user-modify: read-only;
-moz-user-select: all;
-moz-user-modify: read-only;
user-select: all;
user-modify: read-only;
width: 9px !important;
height: 9px !important;
border: 1px dotted #3A3A3A;
background: #D5D5D5 url(img/anchor.gif) no-repeat center;
}
.mce-nbsp, .mce-shy {
background: #AAA;
}
.mce-shy::after {
content: '-';
}
.mce-match-marker {
background: #AAA;
color: #fff;
}
.mce-match-marker-selected {
background: #3399ff;
color: #fff;
}
.mce-spellchecker-word {
border-bottom: 2px solid rgba(208, 2, 27, 0.5);
cursor: default;
}
.mce-spellchecker-grammar {
border-bottom: 2px solid #008000;
cursor: default;
}
.mce-item-table, .mce-item-table td, .mce-item-table th, .mce-item-table caption {
border: 1px dashed #BBB;
}
td[data-mce-selected], th[data-mce-selected] {
background-color: @content-selection-bg !important;
}
.mce-edit-focus {
outline: 1px dotted #333;
}
.mce-content-body {
*[contentEditable=false] *[contentEditable=true]:focus {
outline: 2px solid @content-block-focus;
}
*[contentEditable=false] *[contentEditable=true]:hover {
outline: 2px solid @content-block-hover;
}
*[contentEditable=false][data-mce-selected] {
outline: 2px solid @content-block-selected;
}
&.mce-content-readonly {
*[contentEditable=true]:focus, *[contentEditable=true]:hover {
outline: none;
}
}
*[data-mce-selected="inline-boundary"] {
background: @content-boundary-bg;
}
.mce-item-anchor[data-mce-selected] {
background: #D5D5D5 url(img/anchor.gif) no-repeat center;
}
hr {
cursor: default;
}
/* Fixes TINY-1618
Safari sets -webkit-nbsp-mode to "space" on contenteditable="true"
tables, making it impossible to enter spaces into small table cells
*/
table {
-webkit-nbsp-mode: normal;
}
}
/* Table Resizing */
.ephox-snooker-resizer-bar {
background-color: @content-selection-bg;
opacity: 0.0;
}
.ephox-snooker-resizer-cols {
cursor: col-resize;
}
.ephox-snooker-resizer-rows {
cursor: row-resize;
}
.ephox-snooker-resizer-bar.ephox-snooker-resizer-bar-dragging {
opacity: 0.2;
}

View File

@@ -0,0 +1,27 @@
/* Content.less */
@import "Variables.less";
body {
background-color: #FFFFFF;
color: #000000;
font-family: @content-font-family;
font-size: @content-font-size;
line-height: @content-line-height;
scrollbar-3dlight-color: #F0F0EE;
scrollbar-arrow-color: #676662;
scrollbar-base-color: #F0F0EE;
scrollbar-darkshadow-color: #DDDDDD;
scrollbar-face-color: #E0E0DD;
scrollbar-highlight-color: #F0F0EE;
scrollbar-shadow-color: #F0F0EE;
scrollbar-track-color: #F5F5F5;
}
td, th {
font-family: @content-font-family;
font-size: @content-font-size;
}
@import "Mixins.less";
@import "Content.Objects.less";

View File

@@ -0,0 +1,62 @@
// CropRect
.@{prefix}-croprect-container {
position: absolute;
top: 0;
left: 0;
}
.@{prefix}-croprect-handle {
position: absolute;
top: 0; left: 0;
width: 20px; height: 20px;
border: 2px solid white;
}
.@{prefix}-croprect-handle-nw {
border-width: 2px 0 0 2px;
margin: -2px 0 0 -2px;
cursor: nw-resize;
top: 100px; left: 100px;
}
.@{prefix}-croprect-handle-ne {
border-width: 2px 2px 0 0;
margin: -2px 0 0 -20px;
cursor: ne-resize;
top: 100px; left: 200px;
}
.@{prefix}-croprect-handle-sw {
border-width: 0 0 2px 2px;
margin: -20px 2px 0 -2px;
cursor: sw-resize;
top: 200px; left: 100px;
}
.@{prefix}-croprect-handle-se {
border-width: 0 2px 2px 0;
margin: -20px 0 0 -20px;
cursor: se-resize;
top: 200px; left: 200px;
}
.@{prefix}-croprect-handle-move {
position: absolute;
cursor: move;
border: 0;
}
.@{prefix}-croprect-block {
.opacity(@window-modalblock-opacity);
position: absolute;
background: black;
}
.@{prefix}-croprect-handle:focus {
border-color: @textbox-border-focus;
}
.@{prefix}-croprect-handle-move:focus {
outline: 1px solid @textbox-border-focus;
}

View File

@@ -0,0 +1,27 @@
// DropZone
.@{prefix}-dropzone {
border: 3px dashed gray;
text-align: center;
& span {
text-transform: uppercase;
display: inline-block;
vertical-align: middle;
}
&:after {
content:"";
height: 100%;
display: inline-block;
vertical-align: middle;
}
&.@{prefix}-disabled {
.opacity(@btn-box-disabled-opacity);
&.@{prefix}-dragenter {
cursor: not-allowed;
}
}
}

View File

@@ -0,0 +1,15 @@
// FieldSet
.@{prefix}-fieldset {
border: 0 solid #9E9E9E;
.border-radius(3px);
}
.@{prefix}-fieldset > .@{prefix}-container-body {
margin-top: -15px;
}
.@{prefix}-fieldset-title {
margin-left: 5px;
padding: 0 5px 0 5px;
}

View File

@@ -0,0 +1,5 @@
// RTL
.@{prefix}-rtl .@{prefix}-filepicker input {
direction: ltr;
}

View File

@@ -0,0 +1,9 @@
// FitLayout
.@{prefix}-fit-layout {
.inline-block();
}
.@{prefix}-fit-layout-item {
position: absolute;
}

View File

@@ -0,0 +1,93 @@
// FloatPanel
.@{prefix}-floatpanel {
position: absolute;
.box-shadow(@floatpanel-box-shadow);
}
.@{prefix}-floatpanel.@{prefix}-fixed {
position: fixed;
}
// Popover panel
.@{prefix}-floatpanel .@{prefix}-arrow,
.@{prefix}-floatpanel .@{prefix}-arrow:after {
position: absolute;
display: block;
width: 0;
height: 0;
border-color: transparent;
border-style: solid;
}
.@{prefix}-floatpanel .@{prefix}-arrow {
border-width: @popover-arrow-outer-width;
}
.@{prefix}-floatpanel .@{prefix}-arrow:after {
border-width: @popover-arrow-width;
content: "";
}
.@{prefix}-floatpanel.@{prefix}-popover {
.reset-gradient();
.border-radius(6px);
.box-shadow(@floatpanel-box-shadow);
top: 0;
left: 0;
background: @popover-bg;
border: 1px solid @panel-border;
border: 1px solid @popover-arrow-outer;
&.@{prefix}-bottom {
margin-top: @popover-arrow-width;
*margin-top: 0;
& > .@{prefix}-arrow {
left: 50%;
margin-left: -@popover-arrow-outer-width;
border-top-width: 0;
border-bottom-color: @panel-border;
border-bottom-color: @popover-arrow-outer;
top: -@popover-arrow-outer-width;
&:after {
top: 1px;
margin-left: -@popover-arrow-width;
border-top-width: 0;
border-bottom-color: @popover-arrow;
}
}
}
&.@{prefix}-top {
margin-top: -@popover-arrow-width;
*margin-top: 0;
& > .@{prefix}-arrow {
left: 50%;
margin-left: -@popover-arrow-outer-width;
border-bottom-width: 0;
border-top-color: @panel-border;
// border-bottom-color: @popover-arrow-outer;
top: auto;
bottom: -@popover-arrow-outer-width;
&:after {
bottom: 1px;
margin-left: -@popover-arrow-width;
border-bottom-width: 0;
border-top-color: @popover-arrow;
}
}
}
&.@{prefix}-bottom, &.@{prefix}-top {
&.@{prefix}-start { margin-left: -22px; }
&.@{prefix}-start > .@{prefix}-arrow { left: 20px; }
&.@{prefix}-end { margin-left: 22px; }
&.@{prefix}-end > .@{prefix}-arrow { right: 10px; left: auto; }
}
}

View File

@@ -0,0 +1,36 @@
// FlowLayout
.@{prefix}-flow-layout-item {
.inline-block();
}
.@{prefix}-flow-layout-item {
margin: @flow-layout-spacing 0 @flow-layout-spacing @flow-layout-spacing;
}
.@{prefix}-flow-layout-item.@{prefix}-last {
margin-right: @flow-layout-spacing;
}
.@{prefix}-flow-layout {
white-space: normal;
}
.@{prefix}-tinymce-inline .@{prefix}-flow-layout {
white-space: nowrap;
}
// RTL
.@{prefix}-rtl .@{prefix}-flow-layout {
text-align: right;
direction: rtl;
}
.@{prefix}-rtl .@{prefix}-flow-layout-item {
margin: @flow-layout-spacing @flow-layout-spacing @flow-layout-spacing 0;
}
.@{prefix}-rtl .@{prefix}-flow-layout-item.@{prefix}-last {
margin-left: @flow-layout-spacing;
}

View File

@@ -0,0 +1,181 @@
/* Icons */
@font-face {
font-family: 'tinymce';
src:url('fonts/tinymce.eot');
src:url('fonts/tinymce.eot?#iefix') format('embedded-opentype'),
url('fonts/tinymce.woff') format('woff'),
url('fonts/tinymce.ttf') format('truetype'),
url('fonts/tinymce.svg#tinymce') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'tinymce-small';
src:url('fonts/tinymce-small.eot');
src:url('fonts/tinymce-small.eot?#iefix') format('embedded-opentype'),
url('fonts/tinymce-small.woff') format('woff'),
url('fonts/tinymce-small.ttf') format('truetype'),
url('fonts/tinymce-small.svg#tinymce') format('svg');
font-weight: normal;
font-style: normal;
}
.@{prefix}-ico {
font-family: 'tinymce', Arial;
font-style: normal;
font-weight: normal;
font-variant: normal;
font-size: @icon-size;
line-height: @icon-size;
speak: none;
vertical-align: text-top;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
display: inline-block;
background: transparent center center;
background-size: cover;
width: @icon-box;
height: @icon-box;
color: @btn-text;
}
.@{prefix}-btn-small .@{prefix}-ico {
font-family: 'tinymce-small', Arial;
}
.@{prefix}-i-save:before { content: "\e000"; }
.@{prefix}-i-newdocument:before { content: "\e001"; }
.@{prefix}-i-fullpage:before { content: "\e002"; }
.@{prefix}-i-alignleft:before { content: "\e003"; }
.@{prefix}-i-aligncenter:before { content: "\e004"; }
.@{prefix}-i-alignright:before { content: "\e005"; }
.@{prefix}-i-alignjustify:before { content: "\e006"; }
.@{prefix}-i-alignnone:before { content: "\e003"; }
.@{prefix}-i-cut:before { content: "\e007"; }
.@{prefix}-i-paste:before { content: "\e008"; }
.@{prefix}-i-searchreplace:before { content: "\e009"; }
.@{prefix}-i-bullist:before { content: "\e00a"; }
.@{prefix}-i-numlist:before { content: "\e00b"; }
.@{prefix}-i-indent:before { content: "\e00c"; }
.@{prefix}-i-outdent:before { content: "\e00d"; }
.@{prefix}-i-blockquote:before { content: "\e00e"; }
.@{prefix}-i-undo:before { content: "\e00f"; }
.@{prefix}-i-redo:before { content: "\e010"; }
.@{prefix}-i-link:before { content: "\e011"; }
.@{prefix}-i-unlink:before { content: "\e012"; }
.@{prefix}-i-anchor:before { content: "\e013"; }
.@{prefix}-i-image:before { content: "\e014"; }
.@{prefix}-i-media:before { content: "\e015"; }
.@{prefix}-i-help:before { content: "\e016"; }
.@{prefix}-i-code:before { content: "\e017"; }
.@{prefix}-i-insertdatetime:before { content: "\e018"; }
.@{prefix}-i-preview:before { content: "\e019"; }
.@{prefix}-i-forecolor:before { content: "\e01a"; }
.@{prefix}-i-backcolor:before { content: "\e01a"; }
.@{prefix}-i-table:before { content: "\e01b"; }
.@{prefix}-i-hr:before { content: "\e01c"; }
.@{prefix}-i-removeformat:before { content: "\e01d"; }
.@{prefix}-i-subscript:before { content: "\e01e"; }
.@{prefix}-i-superscript:before { content: "\e01f"; }
.@{prefix}-i-charmap:before { content: "\e020"; }
.@{prefix}-i-emoticons:before { content: "\e021"; }
.@{prefix}-i-print:before { content: "\e022"; }
.@{prefix}-i-fullscreen:before { content: "\e023"; }
.@{prefix}-i-spellchecker:before { content: "\e024"; }
.@{prefix}-i-nonbreaking:before { content: "\e025"; }
.@{prefix}-i-template:before { content: "\e026"; }
.@{prefix}-i-pagebreak:before { content: "\e027"; }
.@{prefix}-i-restoredraft:before { content: "\e028"; }
.@{prefix}-i-bold:before { content: "\e02a"; }
.@{prefix}-i-italic:before { content: "\e02b"; }
.@{prefix}-i-underline:before { content: "\e02c"; }
.@{prefix}-i-strikethrough:before { content: "\e02d"; }
.@{prefix}-i-visualchars:before { content: "\e02e"; }
.@{prefix}-i-visualblocks:before { content: "\e02e"; }
.@{prefix}-i-ltr:before { content: "\e02f"; }
.@{prefix}-i-rtl:before { content: "\e030"; }
.@{prefix}-i-copy:before { content: "\e031"; }
.@{prefix}-i-resize:before { content: "\e032"; }
.@{prefix}-i-browse:before { content: "\e034"; }
.@{prefix}-i-pastetext:before { content: "\e035"; }
.@{prefix}-i-rotateleft:before { content: "\eaa8"; }
.@{prefix}-i-rotateright:before { content: "\eaa9"; }
.@{prefix}-i-crop:before { content: "\ee78"; }
.@{prefix}-i-editimage:before { content: "\e915"; }
.@{prefix}-i-options:before { content: "\ec6a"; }
.@{prefix}-i-flipv:before { content: "\eaaa"; }
.@{prefix}-i-fliph:before { content: "\eaac"; }
.@{prefix}-i-zoomin:before { content: "\eb35"; }
.@{prefix}-i-zoomout:before { content: "\eb36"; }
.@{prefix}-i-sun:before { content: "\eccc"; }
.@{prefix}-i-moon:before { content: "\eccd"; }
.@{prefix}-i-arrowleft:before { content: "\edc0"; }
.@{prefix}-i-arrowright:before { content: "\e93c"; }
.@{prefix}-i-drop:before { content: "\e935"; }
.@{prefix}-i-contrast:before { content: "\ecd4"; }
.@{prefix}-i-sharpen:before { content: "\eba7"; }
.@{prefix}-i-resize2:before { content: "\edf9"; }
.@{prefix}-i-orientation:before { content: "\e601"; }
.@{prefix}-i-invert:before { content: "\e602"; }
.@{prefix}-i-gamma:before { content: "\e600"; }
.@{prefix}-i-remove:before { content: "\ed6a"; }
.@{prefix}-i-tablerowprops:before { content: "\e604"; }
.@{prefix}-i-tablecellprops:before { content: "\e605"; }
.@{prefix}-i-table2:before { content: "\e606"; }
.@{prefix}-i-tablemergecells:before { content: "\e607"; }
.@{prefix}-i-tableinsertcolbefore:before { content: "\e608"; }
.@{prefix}-i-tableinsertcolafter:before { content: "\e609"; }
.@{prefix}-i-tableinsertrowbefore:before { content: "\e60a"; }
.@{prefix}-i-tableinsertrowafter:before { content: "\e60b"; }
.@{prefix}-i-tablesplitcells:before { content: "\e60d"; }
.@{prefix}-i-tabledelete:before { content: "\e60e"; }
.@{prefix}-i-tableleftheader:before { content: "\e62a"; }
.@{prefix}-i-tabletopheader:before { content: "\e62b"; }
.@{prefix}-i-tabledeleterow:before { content: "\e800"; }
.@{prefix}-i-tabledeletecol:before { content: "\e801"; }
.@{prefix}-i-codesample:before { content: "\e603"; }
.@{prefix}-i-fill:before { content: "\e902"; }
.@{prefix}-i-borderwidth:before { content: "\e903"; }
.@{prefix}-i-line:before { content: "\e904"; }
.@{prefix}-i-count:before { content: "\e905"; }
.@{prefix}-i-translate:before { content: "\e907"; }
.@{prefix}-i-drag:before { content: "\e908"; }
.@{prefix}-i-home:before { content: "\e90b"; }
.@{prefix}-i-upload:before { content: "\e914"; }
.@{prefix}-i-bubble:before { content: "\e91c"; }
.@{prefix}-i-user:before { content: "\e91d"; }
.@{prefix}-i-lock:before { content: "\e926"; }
.@{prefix}-i-unlock:before { content: "\e927"; }
.@{prefix}-i-settings:before { content: "\e928"; }
.@{prefix}-i-remove2:before { content: "\e92a"; }
.@{prefix}-i-menu:before { content: "\e92d"; }
.@{prefix}-i-warning:before { content: "\e930"; }
.@{prefix}-i-question:before { content: "\e931"; }
.@{prefix}-i-pluscircle:before { content: "\e932"; }
.@{prefix}-i-info:before { content: "\e933"; }
.@{prefix}-i-notice:before { content: "\e934"; }
.@{prefix}-i-arrowup:before { content: "\e93b"; }
.@{prefix}-i-arrowdown:before { content: "\e93d"; }
.@{prefix}-i-arrowup2:before { content: "\e93f"; }
.@{prefix}-i-arrowdown2:before { content: "\e940"; }
.@{prefix}-i-menu2:before { content: "\e941"; }
.@{prefix}-i-newtab:before { content: "\e961"; }
.@{prefix}-i-a11y:before { content: "\e900"; }
.@{prefix}-i-plus:before { content: "\e93a"; }
.@{prefix}-i-insert:before { content: "\e93a"; }
.@{prefix}-i-minus:before { content: "\e939"; }
.@{prefix}-i-books:before { content: "\e911"; }
.@{prefix}-i-reload:before { content: "\e906"; }
.@{prefix}-i-toc:before { content: "\e901"; }
.@{prefix}-i-checkmark:before { content: "\e033"; }
.@{prefix}-i-format-painter:before { content: "\e909"; }
.@{prefix}-i-checkbox:before, .@{prefix}-i-selected:before {
content: "\e033";
}
.@{prefix}-i-insert { font-size: 14px; }
.@{prefix}-i-selected { visibility: hidden; }
i.@{prefix}-i-backcolor { text-shadow: none; background: @colorbtn-backcolor-bg; }

View File

@@ -0,0 +1,6 @@
// Iframe
.@{prefix}-iframe {
border: 0 solid @iframe-border;
width: 100%; height: 100%;
}

View File

@@ -0,0 +1,25 @@
// ImagePanel
.@{prefix}-imagepanel {
overflow: auto;
background: black;
}
.@{prefix}-imagepanel-bg {
position: absolute;
background: url('data:image/gif;base64,R0lGODdhDAAMAIABAMzMzP///ywAAAAADAAMAAACFoQfqYeabNyDMkBQb81Uat85nxguUAEAOw==');
}
.@{prefix}-imagepanel img {
position: absolute;
}
.@{prefix}-imagetool.@{prefix}-btn .@{prefix}-ico {
display: block;
width: 20px;
height: 20px;
text-align: center;
line-height: 20px;
font-size: 20px;
padding: 5px;
}

View File

@@ -0,0 +1,71 @@
// InfoBox
.@{prefix}-infobox {
.inline-block();
text-shadow: @text-shadow;
overflow: hidden;
border: 1px solid red;
div {
display: block;
margin: 5px;
button {
position: absolute;
top: 50%; right: 4px;
cursor: pointer;
margin-top: -8px;
display: none;
}
button:focus {
outline: 2px solid @btn-border-hover;
}
}
}
.@{prefix}-infobox.@{prefix}-has-help {
div {
margin-right: 25px;
}
button {
display: block;
}
}
.@{prefix}-infobox.@{prefix}-success {
background: @infobox-success-bg;
border-color: @infobox-success-border;
div {
color: @infobox-success-text;
}
}
.@{prefix}-infobox.@{prefix}-warning {
background: @infobox-warning-bg;
border-color: @infobox-warning-border;
div {
color: @infobox-warning-text;
}
}
.@{prefix}-infobox.@{prefix}-error {
background: @infobox-error-bg;
border-color: @infobox-error-border;
div {
color: @infobox-error-text;
}
}
// RTL
.@{prefix}-rtl .@{prefix}-infobox {
div {
text-align: right;
direction: rtl;
}
}

View File

@@ -0,0 +1,38 @@
// Label
.@{prefix}-label {
.inline-block();
text-shadow: @text-shadow;
overflow: hidden;
}
.@{prefix}-label.@{prefix}-autoscroll {
overflow: auto;
}
.@{prefix}-label.@{prefix}-disabled {
color: @text-disabled;
}
.@{prefix}-label.@{prefix}-multiline {
white-space: pre-wrap;
}
.@{prefix}-label.@{prefix}-success {
color: @text-success;
}
.@{prefix}-label.@{prefix}-warning {
color: @text-warning;
}
.@{prefix}-label.@{prefix}-error {
color: @text-error;
}
// RTL
.@{prefix}-rtl .@{prefix}-label {
text-align: right;
direction: rtl;
}

View File

@@ -0,0 +1,26 @@
// ListBox
.@{prefix}-listbox button {
text-align: left;
padding-right: 20px;
position: relative;
}
.@{prefix}-listbox .@{prefix}-caret {
position: absolute;
margin-top: -2px;
right: 8px;
top: 50%;
}
// RTL
.@{prefix}-rtl .@{prefix}-listbox .@{prefix}-caret {
right: auto;
left: 8px;
}
.@{prefix}-rtl .@{prefix}-listbox button {
padding-right: 10px;
padding-left: 20px;
}

View File

@@ -0,0 +1,68 @@
// Menu
.@{prefix}-menu {
position: absolute;
left: 0; top: 0;
.reset-gradient();
z-index: 1000;
padding: 5px 0 5px 0;
margin: @menu-margin;
min-width: @menu-min-width;
background: @menu-bg;
border: 1px solid mix(rgb(red(@menu-border), green(@menu-border), blue(@menu-border)), @panel-bg, round(alpha(@menu-border) * 200));
border: 1px solid @menu-border;
z-index: 1002;
.border-radius(6px);
.box-shadow(@menu-box-shadow);
max-height: @menu-max-height;
overflow: auto;
overflow-x: hidden;
&.@{prefix}-animate {
opacity: 0.01;
transform: rotateY(10deg) rotateX(-10deg);
transform-origin: left top;
}
&.@{prefix}-menu-align {
.@{prefix}-menu-shortcut, .@{prefix}-caret {
position: absolute;
right: 0;
}
}
}
.@{prefix}-menu i {
display: none;
}
.@{prefix}-menu-has-icons i {
display: inline-block;
}
.@{prefix}-menu.@{prefix}-in {
&.@{prefix}-animate {
opacity: 1;
transform: rotateY(0) rotateX(0);
transition: opacity .075s ease, transform .1s ease;
}
}
.@{prefix}-menu-sub-tr-tl { margin: -6px 0 0 -1px; }
.@{prefix}-menu-sub-br-bl { margin: 6px 0 0 -1px; }
.@{prefix}-menu-sub-tl-tr { margin: -6px 0 0 1px; }
.@{prefix}-menu-sub-bl-br { margin: 6px 0 0 1px; }
// RTL
.@{prefix}-rtl {
.@{prefix}-menu-item .@{prefix}-ico {
padding-right: 0;
padding-left: 4px;
}
&.@{prefix}-menu-align .@{prefix}-caret, .@{prefix}-menu-shortcut {
right: auto;
left: 0;
}
}

View File

@@ -0,0 +1,39 @@
/* MenuBar */
.@{prefix}-menubar {
border: 1px solid @menubar-border;
}
.@{prefix}-menubar .@{prefix}-menubtn {
border-color: transparent;
background: transparent;
.border-radius(0);
.box-shadow(none);
filter: none;
}
.@{prefix}-menubar .@{prefix}-menubtn button span {
color: @text;
}
.@{prefix}-menubar .@{prefix}-caret {
border-top-color: @menubar-chevron;
}
.@{prefix}-menubar .@{prefix}-active, .@{prefix}-menubar .@{prefix}-menubtn:hover {
.@{prefix}-caret {
border-top-color: @menubar-chevron-active;
}
}
.@{prefix}-menubar .@{prefix}-menubtn:hover, .@{prefix}-menubar .@{prefix}-menubtn.@{prefix}-active, .@{prefix}-menubar .@{prefix}-menubtn:focus {
border-color: @btn-border-hover;
background: @menu-bg;
filter: none;
.box-shadow(none);
}
.@{prefix}-menubar .@{prefix}-menubtn.@{prefix}-active {
border-bottom: none;
z-index: 65537;
}

View File

@@ -0,0 +1,49 @@
/* MenuButton */
div.@{prefix}-menubtn.@{prefix}-opened {
border-bottom-color: @btn-bg;
z-index: 65537;
}
div.@{prefix}-menubtn.@{prefix}-opened.@{prefix}-opened-under {
z-index: 0;
}
.@{prefix}-menubtn button {
color: @btn-text;
}
.@{prefix}-menubtn.@{prefix}-btn-small span {
font-size: @font-size - 2px;
}
.@{prefix}-menubtn.@{prefix}-fixed-width span {
display: inline-block;
overflow-x: hidden;
text-overflow: ellipsis;
width: 90px;
}
.@{prefix}-menubtn.@{prefix}-fixed-width.@{prefix}-btn-small span {
width: 70px;
}
.@{prefix}-menubtn .@{prefix}-caret {
*margin-top: 6px;
}
// RTL
.@{prefix}-rtl {
.@{prefix}-menubtn button {
direction: rtl;
text-align: right;
}
.@{prefix}-menubtn.@{prefix}-fixed-width span {
direction: rtl;
text-align: right;
}
}

View File

@@ -0,0 +1,174 @@
// MenuItem
.@{prefix}-menu-item {
display: block;
padding: 6px 4px 6px 4px;
clear: both;
font-weight: normal;
line-height: 20px;
color: @menuitem-text;
white-space: nowrap;
cursor: pointer;
line-height: normal;
border-left: 4px solid transparent;
margin-bottom: 1px;
.@{prefix}-text, .@{prefix}-text b {
line-height: 1;
vertical-align: initial;
}
.@{prefix}-caret {
margin-top: 4px;
margin-right: 6px;
border-top: 4px solid transparent;
border-bottom: 4px solid transparent;
border-left: 4px solid @menuitem-chevron;
}
.@{prefix}-menu-shortcut {
display: inline-block;
padding: 0 10px 0 20px;
color: @menuitem-shortcut;
}
.@{prefix}-ico {
padding-right: 4px;
}
&:hover, &:focus {
background: @menuitem-bg-hover;
.@{prefix}-menu-shortcut {
color: @menuitem-shortcut;
}
.@{prefix}-text, .@{prefix}-ico {
color: @menuitem-text-hover;
}
}
&.@{prefix}-selected {
background: @menuitem-bg-selected;
.@{prefix}-text, .@{prefix}-ico {
color: @menuitem-text-selected;
}
}
&.@{prefix}-active.@{prefix}-menu-item-normal {
background: @menuitem-bg-active;
.@{prefix}-text, .@{prefix}-ico {
color: @menuitem-text-active;
}
}
&.@{prefix}-active.@{prefix}-menu-item-checkbox {
.@{prefix}-ico {
visibility: visible;
}
}
&.@{prefix}-disabled, &.@{prefix}-disabled:hover {
background: @menuitem-bg-disabled;
&:focus {
background: @menuitem-bg-hover;
}
.@{prefix}-text, .@{prefix}-ico {
color: @menuitem-text-disabled;
}
}
&.@{prefix}-menu-item-preview.@{prefix}-active {
border-left: 5px solid @menuitem-preview-border-active;
background: @menuitem-bg;
.@{prefix}-text, .@{prefix}-ico {
color: @menuitem-text;
}
&:hover {
background: @menuitem-bg-hover;
}
}
}
.@{prefix}-menu-item-link {
color: #093;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
b {
color: #093;
}
}
.@{prefix}-menu-item-ellipsis {
display: block;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
.@{prefix}-menu-item:hover *, .@{prefix}-menu-item.@{prefix}-selected *, .@{prefix}-menu-item:focus * {
color: @menuitem-text-inverse;
}
div.@{prefix}-menu .@{prefix}-menu-item-sep, .@{prefix}-menu-item-sep:hover {
border: 0;
padding: 0;
height: 1px;
margin: 9px 1px;
overflow: hidden;
background: @menuitem-separator-top;
border-bottom: 1px solid @menuitem-separator-bottom;
cursor: default;
filter: none;
}
div.@{prefix}-menu .@{prefix}-menu-item b {
font-weight: bold;
}
.@{prefix}-menu-item-indent-1 { padding-left: 20px; }
.@{prefix}-menu-item-indent-2 { padding-left: 35px; }
.@{prefix}-menu-item-indent-2 { padding-left: 35px; }
.@{prefix}-menu-item-indent-3 { padding-left: 40px; }
.@{prefix}-menu-item-indent-4 { padding-left: 45px; }
.@{prefix}-menu-item-indent-5 { padding-left: 50px; }
.@{prefix}-menu-item-indent-6 { padding-left: 55px; }
// RTL
.@{prefix}-menu.@{prefix}-rtl {
direction: rtl;
}
.@{prefix}-rtl .@{prefix}-menu-item {
text-align: right;
direction: rtl;
padding: 6px 12px 6px 15px;
}
.@{prefix}-rtl .@{prefix}-menu-item .@{prefix}-caret {
margin-left: 6px;
margin-right: 0;
border-right: 4px solid @menuitem-chevron;
border-left: 0;
}
.@{prefix}-rtl .@{prefix}-menu-item.@{prefix}-selected .@{prefix}-caret, .@{prefix}-rtl .@{prefix}-menu-item:focus .@{prefix}-caret, .@{prefix}-rtl .@{prefix}-menu-item:hover .@{prefix}-caret {
border-left-color: transparent;
border-right-color: @menuitem-chevron-selected;
}
.@{prefix}-rtl {
.@{prefix}-menu-item .@{prefix}-ico {
padding-right: 0;
padding-left: 4px;
}
}

View File

@@ -0,0 +1,65 @@
// Mixins
.opacity(@opacity) {
opacity: @opacity;
@opacityie: @opacity * 100;
filter: ~"alpha(opacity=@{opacityie})";
zoom: 1;
}
.vertical-gradient(@startColor, @endColor) when (@has-gradients = true) {
background-color: mix(@startColor, @endColor, 60%);
background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), to(@endColor)); // Safari 4+, Chrome 2+
background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+
background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10
background-image: linear-gradient(to bottom, @startColor, @endColor); // Standard, IE10
background-repeat: repeat-x;
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)", argb(@startColor), argb(@endColor)));
zoom: 1;
}
.vertical-gradient(@startColor, @endColor) when (@has-gradients = false) {
background-color: mix(@startColor, @endColor, 60%);
}
.border-radius(@radius) when (@has-radius = true) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
border-radius: @radius;
}
.box-shadow(@shadowA, @shadowB:X, ...) when (@has-boxshadow = true) {
// Multiple shadow solution from http://toekneestuck.com/blog/2012/05/15/less-css-arguments-variable/
@props: ~`"@{arguments}".replace(/[\[\]]|\,\sX/g, '')`;
-webkit-box-shadow: @props;
-moz-box-shadow: @props;
box-shadow: @props;
}
.transition(@transition) {
-webkit-transition: @transition;
transition: @transition;
}
.inline-block() {
display: inline-block;
*display: inline;
*zoom: 1;
}
.reset-gradient() {
filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
background: transparent;
}
.word-wrap {
word-wrap: break-word;
-ms-word-break: break-all;
word-break: break-all;
word-break: break-word;
-ms-hyphens: auto;
-moz-hyphens: auto;
-webkit-hyphens: auto;
hyphens: auto;
}

View File

@@ -0,0 +1,140 @@
// notification
.@{prefix}-notification {
position: absolute;
background-color: @notification-bg;
padding: 5px;
margin-top: 5px;
border-width: 1px;
border-style: solid;
border-color: @notification-border;
transition: transform 100ms ease-in, opacity 150ms ease-in;
opacity: 0;
box-sizing: border-box;
}
.@{prefix}-notification.@{prefix}-in {
opacity: 1;
}
.@{prefix}-notification-success {
background-color: @notification-success-bg;
border-color: @notification-success-border;
}
.@{prefix}-notification-info {
background-color: @notification-info-bg;
border-color: @notification-info-border;
}
.@{prefix}-notification-warning {
background-color: @notification-warning-bg;
border-color: @notification-warning-border;
}
.@{prefix}-notification-error {
background-color: @notification-error-bg;
border-color: @notification-error-border;
}
.@{prefix}-notification.@{prefix}-has-close {
padding-right: 15px;
}
.@{prefix}-notification .@{prefix}-ico {
margin-top: 5px;
}
.@{prefix}-notification-inner {
.word-wrap();
display: inline-block;
font-size: @notification-font-size;
margin: 5px 8px 4px 8px;
text-align: center;
white-space: normal;
color: @notification-info-text;
}
.@{prefix}-notification-inner a {
text-decoration: underline;
cursor: pointer;
}
.@{prefix}-notification .@{prefix}-progress {
margin-right: 8px;
}
.@{prefix}-notification .@{prefix}-progress .@{prefix}-text {
margin-top: 5px;
}
.@{prefix}-notification *, .@{prefix}-notification .@{prefix}-progress .@{prefix}-text {
color: @notification-text;
}
.@{prefix}-notification .@{prefix}-progress .@{prefix}-bar-container {
border-color: @notification-border;
}
.@{prefix}-notification .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar {
background-color: @notification-text;
}
.@{prefix}-notification-success *, .@{prefix}-notification-success .@{prefix}-progress .@{prefix}-text {
color: @notification-success-text;
}
.@{prefix}-notification-success .@{prefix}-progress .@{prefix}-bar-container {
border-color: @notification-success-border;
}
.@{prefix}-notification-success .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar {
background-color: @notification-success-text;
}
.@{prefix}-notification-info *, .@{prefix}-notification-info .@{prefix}-progress .@{prefix}-text {
color: @notification-info-text;
}
.@{prefix}-notification-info .@{prefix}-progress .@{prefix}-bar-container {
border-color: @notification-info-border;
}
.@{prefix}-notification-info .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar {
background-color: @notification-info-text;
}
.@{prefix}-notification-warning *, .@{prefix}-notification-warning .@{prefix}-progress .@{prefix}-text {
color: @notification-warning-text;
}
.@{prefix}-notification-warning .@{prefix}-progress .@{prefix}-bar-container {
border-color: @notification-warning-border;
}
.@{prefix}-notification-warning .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar {
background-color: @notification-warning-text;
}
.@{prefix}-notification-error *, .@{prefix}-notification-error .@{prefix}-progress .@{prefix}-text {
color: @notification-error-text;
}
.@{prefix}-notification-error .@{prefix}-progress .@{prefix}-bar-container {
border-color: @notification-error-border;
}
.@{prefix}-notification-error .@{prefix}-progress .@{prefix}-bar-container .@{prefix}-bar {
background-color: @notification-error-text;
}
.@{prefix}-notification .@{prefix}-close {
position: absolute;
top: 6px;
right: 8px;
font-size: 20px;
font-weight: bold;
line-height: 20px;
color: @window-head-close;
cursor: pointer;
}

View File

@@ -0,0 +1,7 @@
// Panel
.@{prefix}-panel {
border: 0 solid mix(rgb(red(@panel-border), green(@panel-border), blue(@panel-border)), @panel-bg, 20%);
border: 0 solid @panel-border;
background-color: @panel-bg;
}

View File

@@ -0,0 +1,49 @@
// Path
.@{prefix}-path {
.inline-block();
padding: 8px;
white-space: normal;
font-size: inherit;
}
.@{prefix}-path .@{prefix}-txt {
display: inline-block;
padding-right: 3px;
}
.@{prefix}-path .@{prefix}-path-body {
display: inline-block;
}
.@{prefix}-path-item {
.inline-block();
cursor: pointer;
color: @path-text;
font-size: inherit;
text-transform: uppercase;
}
.@{prefix}-path-item:hover {
text-decoration: underline;
}
.@{prefix}-path-item:focus {
background: @path-bg-focus;
color: @path-text-focus;
}
.@{prefix}-path .@{prefix}-divider {
display: inline;
font-size: inherit;
}
.@{prefix}-disabled .@{prefix}-path-item {
color: @text-disabled;
}
// RTL
.@{prefix}-rtl .@{prefix}-path {
direction: rtl;
}

View File

@@ -0,0 +1,34 @@
// Progress
.@{prefix}-progress {
display: inline-block;
position: relative;
height: 20px;
}
.@{prefix}-progress .@{prefix}-bar-container {
display: inline-block;
width: 100px;
height: 100%;
margin-right: 8px;
border: 1px solid @progress-border;
overflow: hidden;
.border-radius(4px);
}
.@{prefix}-progress .@{prefix}-text {
display: inline-block;
margin-top: auto;
margin-bottom: auto;
font-size: 14px;
width: 40px;
color: @progress-text;
}
.@{prefix}-bar {
display: block;
width: 0%;
height: 100%;
background-color: @progress-bar-bg;
.transition(width .2s ease);
}

View File

@@ -0,0 +1 @@
// Radio - not implemented yet

View File

@@ -0,0 +1,32 @@
// Reset
.@{prefix}-container, .@{prefix}-container *, .@{prefix}-widget, .@{prefix}-widget *, .@{prefix}-reset {
margin: 0; padding: 0; border: 0; outline: 0;
vertical-align: top; background: transparent;
text-decoration: none; color: @text;
font-family: @font-family;
font-size: @font-size; text-shadow: none; float: none;
position: static; width: auto; height: auto;
white-space: nowrap; cursor: inherit;
-webkit-tap-highlight-color: transparent;
line-height: normal; font-weight: normal;
text-align: left;
-moz-box-sizing: content-box;
-webkit-box-sizing: content-box;
box-sizing: content-box;
direction: ltr;
max-width: none;
}
.@{prefix}-widget button {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
.@{prefix}-container *[unselectable] {
-moz-user-select: none;
-webkit-user-select: none;
-o-user-select: none;
user-select: none;
}

View File

@@ -0,0 +1,18 @@
.@{prefix}-container-body .@{prefix}-resizehandle {
position: absolute;
right: 0;
bottom: 0;
width: 16px;
height: 16px;
visibility: visible;
cursor: s-resize;
margin: 0;
}
.@{prefix}-container-body .@{prefix}-resizehandle-both {
cursor: se-resize;
}
i.@{prefix}-i-resize {
color: @text;
}

View File

@@ -0,0 +1,44 @@
// Scrollbar
.@{prefix}-scrollbar {
position: absolute;
width: 7px;
height: 100%;
top: 2px;
right: 2px;
.opacity(0.4);
}
.@{prefix}-scrollbar-h {
top: auto;
right: auto;
left: 2px;
bottom: 2px;
width: 100%;
height: 7px;
}
.@{prefix}-scrollbar-thumb {
position: absolute;
background-color: #000;
border: 1px solid #888;
border-color: rgba(85, 85, 85, .6);
width: 5px;
height: 100%;
.border-radius(7px);
}
.@{prefix}-scrollbar-h .@{prefix}-scrollbar-thumb {
width: 100%;
height: 5px;
}
.@{prefix}-scrollbar:hover, .@{prefix}-scrollbar.@{prefix}-active {
background-color: #AAA;
.opacity(0.6);
.border-radius(7px);
}
.@{prefix}-scroll {
position: relative;
}

View File

@@ -0,0 +1,6 @@
// SelectBox
.@{prefix}-selectbox {
background: @selectbox-bg;
border: 1px solid @selectbox-border;
}

View File

@@ -0,0 +1,52 @@
// Sidebar
.@{prefix}-edit-aria-container > .@{prefix}-container-body {
display: flex;
.@{prefix}-edit-area {
flex: 1;
}
.@{prefix}-sidebar > .@{prefix}-container-body {
display: flex;
align-items: stretch;
height: 100%;
}
.@{prefix}-sidebar-panel {
min-width: 250px;
max-width: 250px;
position: relative;
> .@{prefix}-container-body {
position: absolute;
width: 100%; height: 100%;
overflow: auto;
top: 0; left: 0;
}
}
}
.@{prefix}-sidebar-toolbar {
border: 0 solid @panel-border;
border-left-width: 1px;
.@{prefix}-btn {
border-left: 0;
border-right: 0;
}
.@{prefix}-btn.@{prefix}-active, .@{prefix}-btn.@{prefix}-active:hover {
background-color: @btn-bg-active;
button, button i {
color: @btn-primary-text;
text-shadow: 1px 1px @btn-primary-text-shadow;
}
}
}
.@{prefix}-sidebar-panel {
border: 0 solid @panel-border;
border-left-width: 1px;
}

View File

@@ -0,0 +1,51 @@
@import "Variables.less";
@import "Reset.less";
@import "Mixins.less";
@import "Animations.less";
@import "TinyMCE.less";
@import "CropRect.less";
@import "ImagePanel.less";
@import "Arrows.less";
@import "Sidebar.less";
@import "Container.less";
@import "Scrollable.less";
@import "Panel.less";
@import "FloatPanel.less";
@import "Window.less";
@import "ToolTip.less";
@import "Progress.less";
@import "Notification.less";
@import "AbsoluteLayout.less";
@import "Button.less";
@import "ButtonGroup.less";
@import "Checkbox.less";
@import "ComboBox.less";
@import "ColorBox.less";
@import "ColorButton.less";
@import "ColorPicker.less";
@import "Path.less";
@import "FieldSet.less";
@import "FitLayout.less";
@import "FlowLayout.less";
@import "Iframe.less";
@import "InfoBox.less";
@import "Label.less";
@import "MenuBar.less";
@import "MenuButton.less";
@import "MenuItem.less";
@import "Throbber.less";
@import "Menu.less";
@import "ListBox.less";
@import "Radio.less";
@import "ResizeHandle.less";
@import "SelectBox.less";
@import "Slider.less";
@import "Spacer.less";
@import "SplitButton.less";
@import "StackLayout.less";
@import "TabPanel.less";
@import "TextBox.less";
@import "DropZone.less";
@import "BrowseButton.less";
@import "Icons.less";
@import "FilePicker.less";

View File

@@ -0,0 +1,33 @@
// Slider
.@{prefix}-slider {
.border-radius(3px);
border: 1px solid @slider-border;
background: @slider-bg;
width: 100px;
height: 10px;
position: relative;
display: block;
}
.@{prefix}-slider.@{prefix}-vertical {
width: 10px;
height: 100px;
}
.@{prefix}-slider-handle {
.border-radius(3px);
border: 1px solid @slider-handle-border;
background: @slider-handle-bg;
display: block;
width: 13px;
height: 13px;
position: absolute;
top: 0; left: 0;
margin-left: -1px;
margin-top: -2px;
}
.@{prefix}-slider-handle:focus {
border-color: @slider-handle-border-focus;
}

View File

@@ -0,0 +1,5 @@
// Spacer
.@{prefix}-spacer {
visibility: hidden;
}

View File

@@ -0,0 +1,49 @@
// SplitButton
.@{prefix}-splitbtn {
&:hover .@{prefix}-open {
border-left: 1px solid @splitbtn-delimiter-hover;
}
.@{prefix}-open {
border-left: 1px solid @splitbtn-delimiter;
padding-right: 4px;
padding-left: 4px;
}
.@{prefix}-open:focus {
border-left: 1px solid @splitbtn-delimiter-focus;
}
.@{prefix}-open:hover, .@{prefix}-open:active {
border-left: 1px solid @splitbtn-delimiter-hover;
}
&.@{prefix}-active:hover .@{prefix}-open {
border-left: 1px solid @splitbtn-delimiter-active;
}
&.@{prefix}-opened {
border-color: @btn-border-hover;
}
}
.@{prefix}-splitbtn.@{prefix}-btn-small .@{prefix}-open {
padding: 0 3px 0 3px;
}
// RTL
.@{prefix}-rtl .@{prefix}-splitbtn {
direction: rtl;
text-align: right;
}
.@{prefix}-rtl .@{prefix}-splitbtn button {
padding-right: 4px;
padding-left: 4px;
}
.@{prefix}-rtl .@{prefix}-splitbtn .@{prefix}-open {
border-left: 0;
}

View File

@@ -0,0 +1,5 @@
// StackLayout
.@{prefix}-stack-layout-item {
display: block;
}

View File

@@ -0,0 +1,49 @@
// TabPanel
.@{prefix}-tabs {
display: block;
border-bottom: 1px solid @tab-border;
}
.@{prefix}-tabs,
.@{prefix}-tabs + .@{prefix}-container-body {
background: @tabs-bg;
}
.@{prefix}-tab {
.inline-block();
border: 1px solid @tab-border;
border-width: 0 1px 0 0;
background: @tab-bg;
padding: 8px 15px;
text-shadow: @text-shadow;
height: 13px;
cursor: pointer;
}
.@{prefix}-tab:hover {
background: @tab-bg-hover;
}
.@{prefix}-tab.@{prefix}-active {
background: @tab-bg-active;
border-bottom-color: transparent;
margin-bottom: -1px;
height: 14px;
}
.@{prefix}-tab:focus {
color: #2276d2;
}
// RTL
.@{prefix}-rtl .@{prefix}-tabs {
text-align: right;
direction: rtl;
}
.@{prefix}-rtl .@{prefix}-tab {
border-width: 0 0 0 1px;
}

View File

@@ -0,0 +1,41 @@
// TextBox
.@{prefix}-textbox {
background: @textbox-bg;
border: 1px solid @textbox-border;
.border-radius(3px);
.box-shadow(@textbox-box-shadow);
display: inline-block;
.transition(~"border linear .2s, box-shadow linear .2s");
height: 28px;
resize: none;
padding: 0 4px 0 4px;
white-space: pre-wrap;
*white-space: pre;
color: @text;
}
.@{prefix}-textbox:focus, .@{prefix}-textbox.@{prefix}-focus {
border-color: @textbox-border-focus;
.box-shadow(@textbox-box-shadow-focus);
}
.@{prefix}-placeholder .@{prefix}-textbox {
color: @textbox-text-placeholder;
}
.@{prefix}-textbox.@{prefix}-multiline {
padding: 4px;
height: auto;
}
.@{prefix}-textbox.@{prefix}-disabled {
color: mix(@text, @textbox-bg, 40%);
}
// RTL
.@{prefix}-rtl .@{prefix}-textbox {
text-align: right;
direction: rtl;
}

View File

@@ -0,0 +1,19 @@
// Throbber
.@{prefix}-throbber {
position: absolute;
top: 0; left: 0;
width: 100%; height: 100%;
.opacity(0.6);
background: @throbber-bg;
}
.@{prefix}-throbber-inline {
position: static;
height: 50px;
}
.@{prefix}-menu .@{prefix}-throbber-inline {
height: 25px;
background-size: contain;
}

View File

@@ -0,0 +1,252 @@
.@{prefix}-tinymce {
// Avoid FOUC
visibility: inherit !important;
position: relative;
}
.@{prefix}-fullscreen {
border: 0; padding: 0; margin: 0;
overflow: hidden;
height: 100%;
z-index: 100;
}
div.@{prefix}-fullscreen {
position: fixed;
top: 0; left: 0;
width: 100%;
height: auto;
}
.@{prefix}-tinymce {
display: block;
.border-radius(2px);
.box-shadow(@tinymce-box-shadow);
}
.@{prefix}-statusbar > .@{prefix}-container-body {
display: flex;
padding-right: 16px;
.@{prefix}-path {
flex: 1;
}
}
.@{prefix}-wordcount {
font-size: inherit;
text-transform: uppercase;
padding: 8px 0;
}
div.@{prefix}-edit-area {
background: #FFF;
filter: none;
}
.@{prefix}-statusbar {
position: relative;
}
.@{prefix}-statusbar .@{prefix}-container-body {
position: relative;
font-size: 11px;
}
.@{prefix}-fullscreen .@{prefix}-resizehandle {
display: none;
}
.@{prefix}-statusbar .@{prefix}-flow-layout-item {
margin: 0;
}
// Charmap
.@{prefix}-charmap {
border-collapse: collapse;
}
.@{prefix}-charmap td {
cursor: default;
border: 1px solid @panel-border;
width: 20px;
height: 20px;
line-height: 20px;
text-align: center;
vertical-align: middle;
padding: 2px;
}
.@{prefix}-charmap td div {
text-align: center;
}
.@{prefix}-charmap td:hover {
background: @btn-bg-hover;
}
.@{prefix}-grid td.@{prefix}-grid-cell div {
border: 1px solid @grid-border;
width: 15px; height: 15px;
margin: 0px;
cursor: pointer;
&:focus {
border-color: @grid-border-active;
}
&[disabled] {
cursor: not-allowed;
}
}
.@{prefix}-grid {
border-spacing: 2px;
border-collapse: separate;
a {
display: block;
border: 1px solid transparent;
&:hover, &:focus {
border-color: @grid-border-active;
}
}
}
.@{prefix}-grid-border {
margin: 0 4px 0 4px;
a {
border-color: @grid-border;
width: 13px; height: 13px;
}
a:hover, a.@{prefix}-active {
border-color: @grid-border-active;
background: @grid-bg-active;
}
}
.@{prefix}-text-center {
text-align: center;
}
div.@{prefix}-tinymce-inline {
width: 100%;
}
.@{prefix}-colorbtn-trans div {
text-align: center;
vertical-align: middle;
font-weight: bold;
font-size: 20px;
line-height: 16px;
color: mix(@text, #fff, 70%);
}
.@{prefix}-monospace {
font-family: "Courier New", Courier, monospace;
}
// Reduce double margins between toolbar rows
.@{prefix}-toolbar-grp when (@has-button-borders = true) {
padding-bottom: 2px;
}
.@{prefix}-toolbar-grp .@{prefix}-flow-layout-item {
margin-bottom: 0;
}
// Styles for inline dialog elements
.@{prefix}-container b {
font-weight: bold;
}
.@{prefix}-container p {
margin-bottom: 5px;
}
.@{prefix}-container a {
cursor: pointer;
color: @text-link;
&:hover {
text-decoration: underline;
}
}
.@{prefix}-container ul {
margin-left: 15px;
}
.@{prefix}-container .@{prefix}-table-striped {
border-collapse: collapse;
margin: 10px;
thead > tr {
background-color: @table-row-even;
th {
font-weight: bold;
}
}
td, th {
padding: 5px;
}
tr:nth-child(even) {
background-color: @table-row-even;
}
tbody > tr:hover {
background-color: @table-row-hover;
}
}
.@{prefix}-branding {
font-size: inherit;
text-transform: uppercase;
white-space: pre;
padding: 8px 0;
a {
font-size: inherit;
color: inherit;
}
}
.@{prefix}-top-part {
position: relative;
}
.@{prefix}-top-part::before {
//background-color: red;
content: '';
position: absolute;
.box-shadow(@top-part-box-shadow);
top: 0;
right: 0;
bottom: 0;
left: 0;
pointer-events: none;
}
// RTL
.@{prefix}-rtl .@{prefix}-wordcount {
left: 0;
right: auto;
}
.@{prefix}-rtl {
.@{prefix}-statusbar > .@{prefix}-container-body {
> *:last-child {
padding-right: 0;
padding-left: 10px;
}
}
.@{prefix}-path {
text-align: right;
padding-right: 16px;
}
}

View File

@@ -0,0 +1,134 @@
// Tooltip
.@{prefix}-tooltip {
position: absolute;
padding: 5px;
.opacity(0.8);
margin-top: 1px;
}
.@{prefix}-tooltip-inner {
font-size: @tooltip-font-size;
background-color: @tooltip-bg;
color: @tooltip-text;
max-width: 200px;
padding: 5px 8px 4px 8px;
text-align: center;
white-space: normal;
}
.@{prefix}-tooltip-inner {
.border-radius(3px);
}
.@{prefix}-tooltip-inner {
.box-shadow(@tooltip-box-shadow);
}
.@{prefix}-tooltip-arrow {
position: absolute;
width: 0;
height: 0;
line-height: 0;
border: 5px dashed @tooltip-bg;
}
.@{prefix}-tooltip-arrow-n {
border-bottom-color: @tooltip-bg;
}
.@{prefix}-tooltip-arrow-s {
border-top-color: @tooltip-bg;
}
.@{prefix}-tooltip-arrow-e {
border-left-color: @tooltip-bg;
}
.@{prefix}-tooltip-arrow-w {
border-right-color: @tooltip-bg;
}
.@{prefix}-tooltip-nw, .@{prefix}-tooltip-sw {
margin-left: -14px;
}
.@{prefix}-tooltip-ne, .@{prefix}-tooltip-se {
margin-left: 14px;
}
.@{prefix}-tooltip-n .@{prefix}-tooltip-arrow {
top: 0px;
left: 50%;
margin-left: -5px;
border-bottom-style: solid;
border-top: none;
border-left-color: transparent;
border-right-color: transparent;
}
.@{prefix}-tooltip-nw .@{prefix}-tooltip-arrow {
top: 0;
left: 10px;
border-bottom-style: solid;
border-top: none;
border-left-color: transparent;
border-right-color: transparent;
}
.@{prefix}-tooltip-ne .@{prefix}-tooltip-arrow {
top: 0;
right: 10px;
border-bottom-style: solid;
border-top: none;
border-left-color: transparent;
border-right-color: transparent;
}
.@{prefix}-tooltip-s .@{prefix}-tooltip-arrow {
bottom: 0;
left: 50%;
margin-left: -5px;
border-top-style: solid;
border-bottom: none;
border-left-color: transparent;
border-right-color: transparent;
}
.@{prefix}-tooltip-sw .@{prefix}-tooltip-arrow {
bottom: 0;
left: 10px;
border-top-style: solid;
border-bottom: none;
border-left-color: transparent;
border-right-color: transparent;
}
.@{prefix}-tooltip-se .@{prefix}-tooltip-arrow {
bottom: 0;
right: 10px;
border-top-style: solid;
border-bottom: none;
border-left-color: transparent;
border-right-color: transparent;
}
.@{prefix}-tooltip-e .@{prefix}-tooltip-arrow {
right: 0;
top: 50%;
margin-top: -5px;
border-left-style: solid;
border-right: none;
border-top-color: transparent;
border-bottom-color: transparent;
}
.@{prefix}-tooltip-w .@{prefix}-tooltip-arrow {
left: 0;
top: 50%;
margin-top: -5px;
border-right-style: solid;
border-left: none;
border-top-color: transparent;
border-bottom-color: transparent;
}

View File

@@ -0,0 +1,297 @@
// Variables
// Syntax: <control>-(<sub control>)-<bg|border|text>-(<state>)-(<extra>);
// Example: @btn-primary-bg-hover;
@prefix: mce;
@has-gradients: false;
@has-radius: false;
@has-boxshadow: true;
@has-button-borders: false;
@focus-border: #2276d2;
// Box shadows
@box-shadow-thin: 0 1px 2px rgba(0, 0, 0, .2);
@box-shadow-bold: 0 3px 7px rgba(0, 0, 0, .3);
// Default font
@font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
@font-size: 14px;
@line-height: 20px;
// Button icons
@icon-size: 16px;
@icon-box: 16px;
// Text colors
@text: #595959;
@text-inverse: white;
@text-disabled: #aaa;
@text-shadow: 0 1px 1px hsla(hue(@text-inverse), saturation(@text-inverse), lightness(@text-inverse), 0.75);
@text-error: #b94a48;
@text-warning: #c09853;
@text-success: #468847;
@text-link: #2276d2;
// Button:default
@btn-text: @text;
@btn-text-shadow: none;
@btn-text-disabled: @text-disabled;
@btn-bg: white;
@btn-border-top: transparent;
@btn-border-right: transparent;
@btn-border-bottom: transparent;
@btn-border-left: transparent;
@btn-box-shadow: none;
@btn-box-shadow-active: none;
@btn-box-disabled-opacity: 0.4;
@btn-padding: 4px 6px;
@btn-chevron: #b5bcc2;
// Button:hover
@btn-bg-hover: @btn-bg;
@btn-text-hover: @text;
@btn-border-hover: #e2e4e7;
@btn-chevron-hover: @btn-chevron;
// Button:focus
@btn-bg-focus: @btn-bg;
@btn-text-focus: @text;
@btn-border-focus: @btn-border-hover;
@btn-chevron-focus: @btn-chevron;
// Button:active
@btn-bg-active: #555c66;
@btn-text-active: white;
@btn-border-active: transparent;
@btn-chevron-active: white;
// Button primary
@btn-primary-bg: #2276d2;
@btn-primary-bg-hover: darken(@btn-primary-bg, 5%);
@btn-primary-bg-active: @btn-primary-bg-hover;
@btn-primary-text: @text-inverse;
@btn-primary-text-shadow: none;
@btn-primary-border-top: none;
@btn-primary-border-right: none;
@btn-primary-border-bottom: none;
@btn-primary-border-left: none;
@btn-primary-border: transparent;
@btn-primary-border-hover: transparent;
// SplitButton
@splitbtn-delimiter: transparent;
@splitbtn-delimiter-focus: @btn-border-hover;
@splitbtn-delimiter-hover: @splitbtn-delimiter-focus;
@splitbtn-delimiter-active: @btn-bg;
// Button group
@btn-group-border-width: 1px;
// Menu
@menu-bg: @btn-bg;
@menu-margin: -1px 0 0;
@menu-border: @btn-border-hover;
@menu-box-shadow: @box-shadow-thin;
@menu-min-width: 180px;
@menu-max-height: 500px;
@menubar-border: @btn-border-hover;
@menubar-bg-active: darken(@btn-bg, 10%);
@menubar-chevron: @btn-chevron;
@menubar-chevron-active: @btn-chevron;
// Menu item:default
@menuitem-text: @text;
@menuitem-text-inverse: @text;
@menuitem-chevron: @menuitem-text;
@menuitem-separator-top: transparent;
@menuitem-separator-bottom: rgba(0,0,0,0.1);
@menuitem-bg-active: @btn-bg-active;
@menuitem-text-active: @text-inverse;
@menuitem-preview-border-active: @btn-bg-active;
@menuitem-bg: @menu-bg;
@menuitem-shortcut: @text-disabled;
// Menu item:focus
@menuitem-border-focus: darken(@btn-bg, 20%);
// Menu item:hover
@menuitem-bg-hover: #ededee;
@menuitem-text-hover: @menuitem-text;
// Menu item:active
@menuitem-bg-active: @btn-bg-active;
@menuitem-text-active: @text-inverse;
@menuitem-chevron-active: @menuitem-text-inverse;
// Menu item:selected
@menuitem-bg-selected: @menuitem-bg-hover;
@menuitem-text-selected: @menuitem-text;
@menuitem-chevron-selected: @menuitem-text-inverse;
// Menu item:disabled
@menuitem-text-disabled: @text-disabled;
@menuitem-chevron-disabled: @text-disabled;
@menuitem-bg-disabled: @menuitem-bg;
// Panel
@panel-border: #c5c5c5;
@panel-bg: #fff;
// Tabs
@tab-border: @panel-border;
@tab-bg: @panel-bg;
@tab-bg-hover: #FDFDFD;
@tab-bg-active: #FDFDFD;
@tabs-bg: @panel-bg;
// Tooltip
@tooltip-bg: #000;
@tooltip-text: white;
@tooltip-font-size: 11px;
@tooltip-box-shadow: none;
// Notification
@notification-font-size: 14px;
@notification-bg: @panel-bg;
@notification-border: @panel-border;
@notification-text: @text;
@notification-success-bg: #dff0d8;
@notification-success-border: #d6e9c6;
@notification-success-text: #3c763d;
@notification-info-bg: #d9edf7;
@notification-info-border: #779ECB;
@notification-info-text: #31708f;
@notification-warning-bg: #fcf8e3;
@notification-warning-border: #faebcc;
@notification-warning-text: #8a6d3b;
@notification-error-bg: #f2dede;
@notification-error-border: #ebccd1;
@notification-error-text: #a94442;
// Infobox
@infobox-bg: @notification-bg;
@infobox-border: @notification-border;
@infobox-text: @notification-text;
@infobox-success-bg: @notification-success-bg;
@infobox-success-border: @notification-success-border;
@infobox-success-text: @notification-success-text;
@infobox-info-bg: @notification-info-bg;
@infobox-info-border: @notification-info-border;
@infobox-info-text: @notification-info-text;
@infobox-warning-bg: @notification-warning-bg;
@infobox-warning-border: @notification-warning-border;
@infobox-warning-text: @notification-warning-text;
@infobox-error-bg: @notification-error-bg;
@infobox-error-border: @notification-error-border;
@infobox-error-text: @notification-error-text;
// Window
@window-border: @panel-border;
@window-head-border: @window-border;
@window-head-close: mix(@text, @window-bg, 60%);
@window-head-close-hover: mix(@text, @window-bg, 40%);
@window-foot-border: @window-border;
@window-foot-bg: @window-bg;
@window-fullscreen-bg: #FFF;
@window-modalblock-bg: #FFF;
@window-modalblock-opacity: 0.5;
@window-box-shadow: @box-shadow-bold;
@window-bg: #FFF;
@window-title-font-size: 20px;
@window-btn-border: @panel-border;
@window-btn-border-hover: @window-btn-border;
@window-btn-border-focus: @focus-border;
// Popover
@popover-bg: @window-bg;
@popover-arrow-width: 10px;
@popover-arrow: @window-bg;
@popover-arrow-outer-width: @popover-arrow-width + 1;
@popover-arrow-outer: rgba(0, 0, 0, 0.25);
// Floatpanel
@floatpanel-box-shadow: @box-shadow-thin;
// Checkbox
@checkbox-bg: @btn-bg;
@checkbox-box-shadow: none;
@checkbox-box-shadow-focus: none;
@checkbox-border: @panel-border;
@checkbox-border-focus: @window-btn-border-focus;
// Path
@path-text: @text;
@path-bg-focus: @menuitem-bg-active;
@path-text-focus: @menuitem-text-active;
// Textbox
@textbox-text-placeholder: @text-disabled;
@textbox-box-shadow: none;
@textbox-bg: @panel-bg;
@textbox-border: @panel-border;
@textbox-border-focus: @focus-border;
@textbox-box-shadow-focus: none;
// Selectbox
@selectbox-bg: @textbox-bg;
@selectbox-border: @textbox-border;
// Throbber
@throbber-bg: @panel-bg url('img/loader.gif') no-repeat center center;
// Combobox
@combobox-border: @textbox-border;
@combobox-error-text: @text-error;
@combobox-warning-text: @text-warning;
@combobox-success-text: @text-success;
// Colorpicker
@colorpicker-border: @textbox-border;
@colorpicker-hue-bg: white;
@colorpicker-hue-border: black;
// Grid
@grid-bg-active: mix(#2276d2, @panel-bg, 30%);
@grid-border-active: mix(#2276d2, @panel-bg, 50%);
@grid-border: @panel-border;
// Misc
@colorbtn-backcolor-bg: #BBB;
@iframe-border: @panel-border;
// Slider
@slider-border: @panel-border;
@slider-bg: @panel-bg;
@slider-handle-border: @panel-border;
@slider-handle-bg: darken(@panel-bg, 10%);
@slider-handle-border-focus: @focus-border;
// Progress
@progress-border: #ccc;
@progress-bar-bg: #dfdfdf;
@progress-text: @text;
// Flow layout
@flow-layout-spacing: 2px;
// Table
@table-row-even: #fafafa;
@table-row-hover: darken(@table-row-even, 10%);
// Keeps Edge/Gecko from jumping up/down when the NBZWSP gets added/removed on Windows in particular.
// The documented default seem to be around 1.2 but depending on the font family/browser/os being used.
// However by comparing the rendering of adding/removing a forced line height 1.3 seems closer to the truth for
// the default font in tinymce and having a slightly higher value probably improves readability anyway.
@content-line-height: 1.3;
@content-font-family: Verdana, Arial, Helvetica, sans-serif;
@content-font-size: 14px;
@content-selection-bg: #2276d2;
@content-block-focus: @content-selection-bg;
@content-block-hover: @content-selection-bg;
@content-block-selected: @content-selection-bg;
@content-boundary-bg: #bfe6ff;
// Main tinymce ui
@top-part-box-shadow: @box-shadow-thin;
@tinymce-box-shadow: @box-shadow-thin;

View File

@@ -0,0 +1,147 @@
// Window
.@{prefix}-fullscreen {
border: 0; padding: 0; margin: 0;
overflow: hidden;
height: 100%;
}
div.@{prefix}-fullscreen {
position: fixed;
top: 0; left: 0;
}
#@{prefix}-modal-block {
.opacity(0);
position: fixed;
left: 0; top: 0;
width: 100%; height: 100%;
background: @window-modalblock-bg;
}
#@{prefix}-modal-block.@{prefix}-in {
.opacity(@window-modalblock-opacity);
}
.@{prefix}-window-move {
cursor: move;
}
.@{prefix}-window {
.border-radius(6px);
.box-shadow(@window-box-shadow);
.reset-gradient();
background: @window-bg;
position: fixed;
top: 0; left: 0;
opacity: 0;
transform: scale(0.1);
transition: transform 100ms ease-in, opacity 150ms ease-in;
}
.@{prefix}-window.@{prefix}-in {
transform: scale(1);
opacity: 1;
}
.@{prefix}-window-head {
padding: 9px 15px;
border-bottom: 1px solid @window-head-border;
position: relative;
}
.@{prefix}-window-head .@{prefix}-close {
position: absolute;
right: 0;
top: 0;
height: 38px;
width: 38px;
text-align: center;
cursor: pointer;
i {
color: @window-head-close;
}
}
.@{prefix}-close:hover i {
color: @window-head-close-hover;
}
.@{prefix}-window-head .@{prefix}-title {
line-height: 20px;
font-size: @window-title-font-size;
font-weight: bold;
text-rendering: optimizelegibility;
padding-right: 20px;
}
.@{prefix}-window .@{prefix}-container-body {
display: block;
}
.@{prefix}-foot {
display: block;
background-color: @window-foot-bg;
border-top: 1px solid @window-foot-border;
.border-radius(0 0 6px 6px);
}
.@{prefix}-window-head .@{prefix}-dragh {
position: absolute;
top: 0; left: 0;
cursor: move;
width: 90%;
height: 100%;
}
.@{prefix}-window iframe {
width: 100%;
height: 100%;
}
.@{prefix}-window.@{prefix}-fullscreen, .@{prefix}-window.@{prefix}-fullscreen .@{prefix}-foot {
.border-radius(0);
}
.@{prefix}-window-body .@{prefix}-listbox {
border-color: @btn-border-hover;
}
.@{prefix}-window {
.@{prefix}-btn:hover {
border-color: @window-btn-border-hover;
}
.@{prefix}-btn:focus {
border-color: @window-btn-border-focus;
}
}
.@{prefix}-window-body .@{prefix}-btn, .@{prefix}-foot .@{prefix}-btn {
border-color: @window-btn-border;
}
.@{prefix}-foot .@{prefix}-btn.@{prefix}-primary {
border-color: transparent;
}
// RTL
.@{prefix}-rtl .@{prefix}-window-head .@{prefix}-close {
position: absolute;
right: auto;
left: 0;
}
.@{prefix}-rtl .@{prefix}-window-head .@{prefix}-dragh {
left: auto;
right: 0;
}
.@{prefix}-rtl .@{prefix}-window-head .@{prefix}-title {
direction: rtl;
text-align: right;
padding-right: 0;
padding-left: 20px;
}

View File

@@ -0,0 +1,40 @@
.tinymce-mobile-android-container {
&.tinymce-mobile-android-maximized {
/* Android WebView only */
/* The min-height: 100vh is required for webview which we aren't supporting yet.
It breaks normal mode by making the container larger than the window height */
/*min-height: 100vh;*/
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
border: none;
background: @android-background-color;
display: flex;
flex-direction: column;
}
&:not(.tinymce-mobile-android-maximized) {
position: relative;
}
.tinymce-mobile-editor-socket {
display: flex;
flex-grow: 1;
iframe {
display: flex !important;
height: auto !important;
flex-grow: 1;
}
}
}
.tinymce-mobile-android-scroll-reload {
overflow: hidden;
}
:not(.tinymce-mobile-readonly-mode) > .tinymce-mobile-android-selection-context-toolbar {
margin-top: 23px;
}

View File

@@ -0,0 +1,31 @@
.mixin-menu-item {
border-radius: 50%;
width: @mask-button-size;
height: @mask-button-size;
.mixin-flex-and-centre;
}
.tinymce-mobile-content-tap-section {
font-size: @mask-button-font-size-large;
@media @tablets {
font-size: @mask-button-font-size-small;
}
.mixin-flex-and-centre;
flex-direction: column;
.tinymce-mobile-mask-tap-icon {
.mixin-menu-item;
color: @mask-button-background-color;
background-color: @mask-button-foreground-color;
}
.tinymce-mobile-mask-tap-icon:before {
font-family: 'tinymce-mobile';
content: "\e900"
}
&:not(.tinymce-mobile-mask-tap-icon-selected) .tinymce-mobile-mask-tap-icon {
z-index: @tinymce-mobile-mask-menu-zindex + 1;
}
}

View File

@@ -0,0 +1,22 @@
.tinymce-mobile-outer-container .tinymce-mobile-disabled-mask {
.mixin-flex-and-centre;
position: absolute;
width: 100%;
height: 100%;
top: 0px;
background: fadeout(@editor-mask-background-color, 50%);
.tinymce-mobile-content-container {
display: flex;
align-items: center;
justify-content: space-between;
border-radius: 50%;
flex-direction: column;
font-family: sans-serif;
font-size: 1em;
@import "mask-section.less";
}
}

View File

@@ -0,0 +1,120 @@
.tinymce-mobile-icon-arrow-back:before {
content: "\e5cd";
}
.tinymce-mobile-icon-image:before {
content: "\e412";
}
.tinymce-mobile-icon-cancel-circle:before {
content: "\e5c9";
}
.tinymce-mobile-icon-full-dot:before {
content: "\e061";
}
.tinymce-mobile-icon-align-center:before {
content: "\e234";
}
.tinymce-mobile-icon-align-left:before {
content: "\e236";
}
.tinymce-mobile-icon-align-right:before {
content: "\e237";
}
.tinymce-mobile-icon-bold:before {
content: "\e238";
}
.tinymce-mobile-icon-italic:before {
content: "\e23f";
}
.tinymce-mobile-icon-unordered-list:before {
content: "\e241";
}
.tinymce-mobile-icon-ordered-list:before {
content: "\e242";
}
.tinymce-mobile-icon-font-size:before {
content: "\e245";
}
.tinymce-mobile-icon-underline:before {
content: "\e249";
}
.tinymce-mobile-icon-link:before {
content: "\e157";
}
.tinymce-mobile-icon-unlink:before {
content: "\eca2";
}
.tinymce-mobile-icon-color:before {
content: "\e891";
}
.tinymce-mobile-icon-previous:before {
content: "\e314";
}
.tinymce-mobile-icon-next:before {
content: "\e315";
}
.tinymce-mobile-icon-large-font:before, .tinymce-mobile-icon-style-formats:before {
content: "\e264";
}
.tinymce-mobile-icon-undo:before {
content: "\e166";
}
.tinymce-mobile-icon-redo:before {
content: "\e15a";
}
.tinymce-mobile-icon-removeformat:before {
content: "\e239";
}
.tinymce-mobile-icon-small-font:before {
content: "\e906";
}
.tinymce-mobile-icon-readonly-back:before, .tinymce-mobile-format-matches:after {
content: "\e5ca";
}
.tinymce-mobile-icon-small-heading:before {
content: "small";
}
.tinymce-mobile-icon-large-heading:before {
content: "large";
}
.tinymce-mobile-icon-small-heading:before, .tinymce-mobile-icon-large-heading:before {
font-family: sans-serif;
font-size: 80%;
}
.tinymce-mobile-mask-edit-icon:before {
content: "\e254";
}
.tinymce-mobile-icon-back:before {
content: "\e5c4";
}
.tinymce-mobile-icon-heading:before {
/* TODO: Translate */
content: "Headings";
font-family: sans-serif;
font-weight: bold;
font-size: 80%;
}
.tinymce-mobile-icon-h1:before {
content: "H1";
font-weight: bold;
}
.tinymce-mobile-icon-h2:before {
content: "H2";
font-weight: bold;
}
.tinymce-mobile-icon-h3:before {
content: "H3";
font-weight: bold;
}

View File

@@ -0,0 +1,96 @@
@import "reset.less";
@import "variables.less";
@import "mobile-icons.less";
@import "mask.less";
@import "android.less";
@import "../toolstrip/toolstrip.less";
@import "../menu/dropup.less";
@import "../menu/styles-menu.less";
@font-face {
font-family: 'tinymce-mobile';
src: url('fonts/tinymce-mobile.woff?8x92w3') format('woff');
font-weight: normal;
font-style: normal;
}
@media (min-device-width: 700px) {
.tinymce-mobile-outer-container, .tinymce-mobile-outer-container input {
font-size: 25px;
}
}
@media (max-device-width: 700px) {
.tinymce-mobile-outer-container, .tinymce-mobile-outer-container input {
font-size: 18px;
}
}
.tinymce-mobile-icon {
font-family: 'tinymce-mobile';
}
.mixin-flex-and-centre {
display: flex;
align-items: center;
justify-content: center;
}
.mixin-flex-bar {
display: flex;
align-items: center;
height: 100%;
}
.tinymce-mobile-outer-container:not(.tinymce-mobile-fullscreen-maximized) {
.tinymce-mobile-editor-socket {
overflow: hidden;
height: 300px;
}
.tinymce-mobile-toolstrip {
display: none;
}
}
.tinymce-mobile-editor-socket {
.tinymce-mobile-mask-edit-icon {
position: fixed;
/* Note, on the iPod touch in landscape, this isn't visible when the navbar appears */
right: 2em;
bottom: 1em;
color: @mask-button-foreground-color;
background-color: @mask-button-background-color;
border-radius: 50%;
width: @mask-button-size;
height: @mask-button-size;
.mixin-flex-and-centre;
font-size: @mask-button-font-size-large;
@media @tablets {
font-size: @mask-button-font-size-small;
}
}
}
/*
Note, that if you don't include this (::-webkit-file-upload-button), the toolbar width gets
increased and the whole body becomes scrollable. It's important!
*/
input[type="file"]::-webkit-file-upload-button {
display: none;
}
// Media query for iphone only as the edit button cannot be placed correctly
@media @iphone-small-landscape {
.tinymce-mobile-ios-container {
.tinymce-mobile-editor-socket {
.tinymce-mobile-mask-edit-icon {
bottom: 50%;
}
}
}
}

View File

@@ -0,0 +1,14 @@
/* RESET all the things! */
.tinymce-mobile-outer-container {
all: initial;
display: block;
* {
box-sizing: initial;
line-height: 1;
margin: 0; padding: 0; border: 0; outline: 0;
text-shadow: none; float: none; white-space: nowrap;
cursor: inherit;
/* TBIO-3691, stop the gray flicker on touch. */
-webkit-tap-highlight-color: transparent;
}
}

View File

@@ -0,0 +1,37 @@
@tinymce-blue: #4682B4;
@toolstrip-background-color: #eceff1;
@toolstrip-foreground-color: #455a64;
@toolstrip-dark-background-color: @tinymce-blue;
@toolstrip-dark-color: #eceff1;
@toolstrip-input-background-color: lighten(@toolstrip-background-color, 20%);
@toolstrip-slider-background-color: darken(@toolstrip-background-color, 20%);
@toolstrip-input-foreground-color: @toolstrip-foreground-color;
@toolstrip-input-placeholder-foreground-color: #888;
@toolstrip-input-font-family: Sans-serif;
@toolstrip-input-icons-color: @toolstrip-input-placeholder-foreground-color;
@toolstrip-button-selected-background-color: @toolstrip-foreground-color;
@toolstrip-button-selected-color: @toolstrip-slider-background-color;
@toolstrip-thumb-background-color: @toolstrip-foreground-color;
@toolstrip-button-horizontal-padding: 0.5em;
@dropup-background-color: white;
@tinymce-mobile-mask-menu-zindex: 1;
@mask-button-foreground-color: white;
@mask-button-background-color: @tinymce-blue;
@quick-animation-time: .15s;
@android-background-color: rgba(255, 255, 255, 1.0);
@editor-mask-background-color: #333;
@mask-button-font-size-small: 1.2em;
@mask-button-font-size-large: 1.0em;
@mask-button-size: 2.1em;
@tablets: ~"only screen and (min-device-width:700px)";
@iphone-small-landscape: ~"only screen and (min-device-width : 320px) and (max-device-width : 568px) and (orientation : landscape)";
@landscape: ~"only screen and (orientation: landscape)";

View File

@@ -0,0 +1,20 @@
.tinymce-mobile-unfocused-selections .tinymce-mobile-unfocused-selection {
position: absolute;
display: inline-block;
/* Note: this file is used inside the content, so isn't part of theming */
background-color: green;
opacity: 0.5;
}
body {
-webkit-text-size-adjust: none;
}
body img {
/* this is related to the content margin */
max-width: 96vw;
}
body table img {
max-width: 95%;
}

View File

@@ -0,0 +1,40 @@
/* dropup */
/* TODO min-height for device size and orientation */
.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) {
min-height: 200px;
}
@media @landscape {
.tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) {
min-height: 200px;
}
}
@media @iphone-small-landscape {
.tinymce-mobile-ios-container .tinymce-mobile-dropup:not(.tinymce-mobile-dropup-closed) {
min-height: 150px;
}
}
.tinymce-mobile-dropup {
background: @dropup-background-color;
display: flex;
width: 100%;
overflow: hidden;
&.tinymce-mobile-dropup-shrinking {
transition: height 0.3s ease-out;
}
&.tinymce-mobile-dropup-growing {
transition: height 0.3s ease-in;
}
&.tinymce-mobile-dropup-closed {
flex-grow: 0;
}
&.tinymce-mobile-dropup-open:not(.tinymce-mobile-dropup-growing) {
flex-grow: 1;
}
}

View File

@@ -0,0 +1,77 @@
/* styles menu */
.tinymce-mobile-styles-menu {
overflow: hidden;
outline: 4px solid black;
position: relative;
width: 100%;
font-family: sans-serif;
[role="menu"] {
/*display: inline-block;*/
height: 100%;
position: absolute;
display: flex;
flex-direction: column;
width: 100%;
}
[role="menu"].transitioning {
transition: transform 0.5s ease-in-out;
}
& .tinymce-mobile-styles-item {
cursor: pointer;
padding: 1em 1em;
position: relative;
display: flex;
border-bottom: 1px solid #ddd;
color: @toolstrip-foreground-color;
}
& .tinymce-mobile-styles-collapser .tinymce-mobile-styles-collapse-icon:before {
font-family: 'tinymce-mobile';
content: "\e314";
color: @toolstrip-foreground-color;
}
& .tinymce-mobile-styles-item.tinymce-mobile-styles-item-is-menu:after {
font-family: 'tinymce-mobile';
content: "\e315";
position: absolute;
padding-left: 1em;
padding-right: 1em;
right: 0px;
color: @toolstrip-foreground-color;
}
& .tinymce-mobile-styles-item.tinymce-mobile-format-matches:after {
font-family: 'tinymce-mobile';
position: absolute;
padding-left: 1em;
padding-right: 1em;
right: 0px;
}
.tinymce-mobile-styles-separator, & .tinymce-mobile-styles-collapser {
border-top: rgb(69, 90, 100);
display: flex;
min-height: 2.5em;
padding-left: 1em;
padding-right: 1em;
align-items: center;
background: @toolstrip-background-color;
color: @toolstrip-foreground-color;
}
[data-transitioning-destination="before"][data-transitioning-state], [data-transitioning-state="before"] {
transform: translate(-100%);
}
[data-transitioning-destination="current"][data-transitioning-state], [data-transitioning-state="current"] {
transform: translate(0%);
}
[data-transitioning-destination="after"][data-transitioning-state], [data-transitioning-state="after"] {
transform: translate(100%);
}
}

View File

@@ -0,0 +1,52 @@
/* Note, this file is imported inside .tinymce-mobile-context-toolbar, so that prefix is on everything here. */
.tinymce-mobile-toolbar-group {
@import "serialised-dialogs.less";
@import "slider.less";
.mixin-flex-bar;
flex: 1;
padding-top: 0.4em;
padding-bottom: 0.4em;
.tinymce-mobile-serializer-wrapper,
&>div {
.mixin-flex-bar;
flex: 1;
}
.tinymce-mobile-serializer-wrapper {
flex-direction: column;
justify-content: center;
}
/* For widgets like the colour picker, use the whole height */
.tinymce-mobile-toolbar-group-item:not(.tinymce-mobile-serialised-dialog) {
height: 100%;
}
/* Make any buttons appearing on the left and right display in the centre (e.g. color edges) */
.tinymce-mobile-toolbar-group-item {
display: flex;
align-items: center;
}
.tinymce-mobile-dot-container {
display: flex;
}
input {
padding-top: 0.1em;
padding-bottom: 0.1em;
padding-left: 5px;
font-size: 0.85em;
flex-grow: 1;
background: @toolstrip-input-background-color;
border: none;
border-radius: 0px;
color: @toolstrip-input-foreground-color;
&::placeholder {
/* WebKit, Blink, Edge */
color: @toolstrip-input-placeholder-foreground-color;
}
}
}

View File

@@ -0,0 +1,41 @@
.tinymce-mobile-toolbar-group:first-of-type, .tinymce-mobile-toolbar-group:last-of-type {
background: @toolstrip-dark-background-color;
color: @toolstrip-dark-color;
}
.tinymce-mobile-toolbar-group {
.mixin-flex-bar;
flex-shrink: 1;
& > div {
.mixin-flex-bar;
flex: 1;
}
&.tinymce-mobile-exit-container {
background: #f44336;
}
&.tinymce-mobile-toolbar-scrollable-group {
// Allow the scrollable group to fill all the space between the edge groups
flex-grow: 1;
}
.tinymce-mobile-toolbar-group-item {
padding-left: @toolstrip-button-horizontal-padding;
padding-right: @toolstrip-button-horizontal-padding;
&.tinymce-mobile-toolbar-button {
display: flex;
align-items: center;
margin-left: 2px;
margin-right: 2px;
height: 80%;
&.tinymce-mobile-toolbar-button-selected {
background: @toolstrip-button-selected-background-color;
color: @toolstrip-button-selected-color;
}
}
}
}

View File

@@ -0,0 +1,81 @@
.tinymce-mobile-serialised-dialog {
display: flex;
overflow: hidden;
position: relative;
width: 100%;
min-height: 1.5em;
padding-left: 0em;
padding-right: 0em;
.tinymce-mobile-serialised-dialog-chain {
transition: left cubic-bezier(.4, 0, 1, 1) @quick-animation-time;
display: flex;
width: 100%;
height: 100%;
.tinymce-mobile-serialised-dialog-screen {
flex: 0 0 auto;
width: 100%;
display: flex;
justify-content: space-between;
input {
font-family: @toolstrip-input-font-family;
}
.tinymce-mobile-input-container {
display: flex;
flex-grow: 1;
position: relative;
.tinymce-mobile-input-container-x {
position: absolute;
right: 0px;
color: @toolstrip-input-icons-color;
font-size: 0.6em;
font-weight: bold;
background: inherit;
border-radius: 50%;
border: none;
align-self: center;
height: 100%;
padding-right: 2px;
}
&.tinymce-mobile-input-container-empty .tinymce-mobile-input-container-x {
display: none;
}
}
.tinymce-mobile-icon-previous, .tinymce-mobile-icon-next {
display: flex;
align-items: center;
&:before {
padding-left: 0.5em;
padding-right: 0.5em;
height: 100%;
display: flex;
align-items: center;
font-weight: bold;
}
&.tinymce-mobile-toolbar-navigation-disabled:before {
visibility: hidden;
}
}
}
}
}
.tinymce-mobile-dot-item {
margin: 0 2px;
font-size: 10px;
line-height: 10px;
padding-top: 3px;
color: @toolstrip-button-selected-color;
&.tinymce-mobile-dot-active {
color: @toolstrip-button-selected-background-color;
}
}

View File

@@ -0,0 +1,108 @@
.tinymce-mobile-slider {
display: flex;
flex: 1;
position: relative;
padding: .28em 0;
margin-left: 10%;
margin-right: 10%;
}
.tinymce-mobile-icon-large-font:before, .tinymce-mobile-icon-large-heading:before {
margin-right: .9em;
margin-left: .5em;
}
.tinymce-mobile-icon-small-font:before, .tinymce-mobile-icon-small-heading:before {
margin-left: .9em;
margin-right: .5em;
}
.tinymce-mobile-slider {
margin-left: 0px;
margin-right: 0px;
.tinymce-mobile-slider-size-container {
display: flex;
flex-grow: 1;
height: 100%;
align-items: center;
.tinymce-mobile-slider-size-line {
display: flex;
flex: 1;
margin-top: 0.3em;
margin-bottom: 0.3em;
background: @toolstrip-slider-background-color;
height: 0.2em;
}
}
&.tinymce-mobile-hue-slider-container {
padding-left: 2em;
padding-right: 2em;
.tinymce-mobile-slider-gradient-container {
display: flex;
flex-grow: 1;
height: 100%;
align-items: center;
.tinymce-mobile-slider-gradient {
display: flex;
flex: 1;
margin-top: 0.3em;
margin-bottom: 0.3em;
background: linear-gradient(to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 17%, hsl(120, 100%, 50%) 33%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 67%, hsl(300, 100%, 50%) 83%, hsl(360, 100%, 50%) 100%);
height: 0.2em;
}
}
.tinymce-mobile-hue-slider-black {
/* Not part of theming */
background: black;
width: 1.2em;
height: 0.2em;
margin-top: 0.3em;
margin-bottom: 0.3em;
}
.tinymce-mobile-hue-slider-white {
/* Not part of theming */
background: white;
width: 1.2em;
height: 0.2em;
margin-top: 0.3em;
margin-bottom: 0.3em;
}
}
.tinymce-mobile-slider-thumb {
position: absolute;
height: .5em;
width: .5em;
left: -10px;
display: flex;
align-items: center;
justify-content: center;
/* vertically centering trick (margin: auto, top: 0, bottom: 0). On iOS and Safari, if you leave
* out these values, then it shows the thumb at the top of the spectrum. This is probably because it is
* absolutely positioned with only a left value, and not a top. Note, on Chrome it seems to be fine without
* this approach.
*/
margin: auto;
top: 0;
bottom: 0;
transition : border 120ms cubic-bezier(0.39, 0.58, 0.57, 1);
background-color: @toolstrip-foreground-color;
background-clip: padding-box;
color: @toolstrip-background-color;
&.tinymce-mobile-thumb-active {
border: .5em solid rgba(136, 136, 136, 0.39);
}
border: .5em solid rgba(136, 136, 136, 0.0);
border-radius: 3em;
}
}

View File

@@ -0,0 +1,24 @@
.tinymce-mobile-toolstrip {
background: @toolstrip-background-color;
display: flex;
z-index: @tinymce-mobile-mask-menu-zindex;
flex: 0 0 auto;
.tinymce-mobile-toolbar {
display: flex;
flex: 1;
/* Make it no larger than the toolstrip, so that it needs to scroll */
width: 100%;
height: 2.5em;
align-items: center;
color: @toolstrip-foreground-color;
&:not(.tinymce-mobile-context-toolbar) {
@import "main-toolbar.less";
}
&.tinymce-mobile-context-toolbar {
@import "context-toolbar.less";
}
}
}