diff --git a/skins/elastic/styles/colors.less b/skins/elastic/styles/colors.less
index f4a8d9f36..8fe0727b1 100644
--- a/skins/elastic/styles/colors.less
+++ b/skins/elastic/styles/colors.less
@@ -102,7 +102,8 @@
// Forms
-@color-input-border: @color-border;
+@color-input-border: rgba(0, 0, 0, 0.15); /* from Bootstrap's .form-control */
+@color-input-addon-background: #e9ecef; /* from Bootstrap's .input-group-addon */
@color-recipient-input-border: @color-input-border;
@color-recipient-input-background: #f4f4f4;
diff --git a/skins/elastic/styles/widgets/forms.less b/skins/elastic/styles/widgets/forms.less
index f02453d4f..86fad00cf 100644
--- a/skins/elastic/styles/widgets/forms.less
+++ b/skins/elastic/styles/widgets/forms.less
@@ -380,9 +380,54 @@ html.touch input.icon-checkbox + label {
}
-/*** TinyMCE editor ***/
+/*** HTML editor widget (and TinyMCE editor) ***/
-.mce-tinymce.mce-container.mce-panel {
- border-radius: .25rem;
- overflow: hidden;
+.mce-tinymce {
+ &.mce-container.mce-panel {
+ border-radius: .25rem;
+ border-color: @color-input-border;
+ overflow: hidden;
+ }
+
+ .mce-btn,
+ .mce-panel {
+ background-color: @color-input-addon-background;
+ }
+}
+
+.html-editor {
+ position: relative;
+ display: flex;
+
+ & > .nav {
+ border-color: transparent;
+ z-index: 1;
+ position: absolute;
+ top: 1px;
+ right: 1rem;
+
+ a.active {
+ border-color: @color-input-border !important;
+
+ &.mode-html {
+ background-color: @color-input-addon-background;
+ border-bottom-color: @color-input-addon-background !important;
+ }
+
+ &.mode-plain {
+ border-bottom-color: #fff !important;
+ }
+ }
+
+ a:hover {
+ border-bottom-color: transparent;
+ }
+ }
+
+ & > .mce-tinymce,
+ & > textarea {
+ margin-top: 2.55rem;
+ font-family: monospace;
+ width: 100%;
+ }
}
diff --git a/skins/elastic/templates/compose.html b/skins/elastic/templates/compose.html
index 386d073f4..ce12256b2 100644
--- a/skins/elastic/templates/compose.html
+++ b/skins/elastic/templates/compose.html
@@ -71,7 +71,7 @@