diff --git a/customize.dist/messages.js b/customize.dist/messages.js index 666072d6a..5e29c8b79 100755 --- a/customize.dist/messages.js +++ b/customize.dist/messages.js @@ -147,6 +147,9 @@ define(req, function(AppConfig, Default, Language) { Messages.previous_templateList = "Previous template list"; Messages.contact_mastodon = 'Mastodon'; // XXX Messages.contact_forum = 'Forum'; // XXX + Messages.toolbar_text_tools = "Text tools"; + Messages.toolbar_show_text_tools = "Show text tools"; + Messages.toolbar_hide_text_tools = "Hide text tools"; return Messages; diff --git a/customize.dist/src/less2/include/markdown.less b/customize.dist/src/less2/include/markdown.less index 16e6654ed..42e5ea0d8 100644 --- a/customize.dist/src/less2/include/markdown.less +++ b/customize.dist/src/less2/include/markdown.less @@ -289,3 +289,32 @@ } } +//reusable styling for the markdown toggle button across all apps + .markdown-toolbar-button-style() { + padding: 3px 5px; + height: fit-content; + margin: 0; + line-height: 1; + border-radius: @variables_radius; + display: inline-flex; + background-color: @cp_toolbar-bottom-bg; + color: @cp_toolbar-bottom-fg; + + &:hover { + background-color: fade(@cryptpad_text_col, 20%); + border-color: @cryptpad_text_col; + color: @cryptpad_text_col; + } + + &.cp-toolbar-button-active { + background-color: @cp_toolbar-bg; + border-color: @cp_toolbar-fg; + color: @cp_toolbar-fg; + + &:hover { + background-color: fade(@cryptpad_text_col, 20%); + } + } +} + + diff --git a/customize.dist/src/less2/include/toolbar.less b/customize.dist/src/less2/include/toolbar.less index a4af61ba3..8c9bd286f 100644 --- a/customize.dist/src/less2/include/toolbar.less +++ b/customize.dist/src/less2/include/toolbar.less @@ -64,7 +64,10 @@ } .cp-markdown-toolbar { - height: @toolbar_line-height; + min-height: @toolbar_line-height; + padding: 0.1rem 0; + height: auto; + flex-wrap: wrap; background-color: @cp_toolbar-bg; color: @cp_toolbar-fg; display: none; @@ -74,7 +77,10 @@ border-radius: @variables_radius; color: @toolbar-color; .toolbar_button; - font: normal normal normal 14px/1 FontAwesome; + .fa { + font: normal normal normal 14px/1 FontAwesome; + font-family: FontAwesome; + } &:hover { background-color: contrast(@cp_toolbar-bg, darken(@cp_toolbar-bg, 5%), lighten(@cp_toolbar-bg, 5%)); } @@ -85,6 +91,11 @@ button:nth-of-type(1) { margin-left: 0.3rem; } + @media screen and (max-width: @browser_media-medium-screen) { + button:nth-of-type(1) { + margin-left: 0; + } + } } .cp-toolbar-container { @@ -400,7 +411,6 @@ .fa { font: normal normal normal 14px/1 FontAwesome; - font-family: FontAwesome; } .tools_unselectable(); diff --git a/www/code/inner.js b/www/code/inner.js index b445aaa20..b0d7dab2b 100644 --- a/www/code/inner.js +++ b/www/code/inner.js @@ -578,6 +578,13 @@ define([ framework.setCursorGetter(CodeMirror.getCursor); editor.on('cursorActivity', updateCursor); + editor.setOption("extraKeys", { + "Esc": function(cm, event) { + event.preventDefault(); + document.body.focus(); + } + }); + framework.onEditableChange(function () { editor.setOption('readOnly', framework.isLocked() || framework.isReadOnly()); }); diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js index 3ffb4f079..224af8fec 100644 --- a/www/common/common-ui-elements.js +++ b/www/common/common-ui-elements.js @@ -905,7 +905,8 @@ define([ case 'toggle': button = $(h('button.cp-toolbar-tools', { //title: data.title || '', // TODO display if the label text is collapsed - 'aria-label': data.text || Messages.toolbar_tools // Fallback + 'aria-label': data.text || Messages.toolbar_tools, // Fallback + 'aria-pressed': false }, [ h('i.fa.' + (data.icon || 'fa-wrench')), h('span.cp-toolbar-name', data.text || Messages.toolbar_tools) @@ -923,6 +924,7 @@ define([ button.click(function (e) { data.element.toggle(); var isVisible = data.element.is(':visible'); + button.attr('aria-pressed', isVisible ? 'true' : 'false'); if (callback) { callback(isVisible); } if (isVisible) { button.addClass('cp-toolbar-button-active'); @@ -1157,20 +1159,40 @@ define([ }; for (var k in actions) { let $b = $('