forgejo/web_src/css/editor/combomarkdowneditor.css
Danko Aleksejevs 36b6444f34 Remove tab key handling in markdown editor, add toolbar buttons instead, re #4072 #4142 (#4263)
We haven't decided much (to my knowledge), and I've been using the main branch in production (as one does) and found out even I myself rely on Tab sometimes working to move focus and have been caught off guard by it indenting lines instead.

So this removes Tab handling and instead adds two new buttons to the toolbar. The indentation logic is unchanged (other than now focusing the textarea during button handling, to ensure execCommand works, and thus undo history is preserved).

I'm not sure which terminology to use in tooltips. Could also add keyboard shortcuts for the whole toolbar eventually, but as is this is hopefully an better solution to the problems I previously created than un-merging the whole thing :)

<img width="414" alt="Screenshot with two new buttons" src="/attachments/b7af3aa4-a195-48d1-be0a-1559f25dce8e">

Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/4263
Reviewed-by: Otto <otto@codeberg.org>
Reviewed-by: Earl Warren <earl-warren@noreply.codeberg.org>
Co-authored-by: Danko Aleksejevs <danko@very.lv>
Co-committed-by: Danko Aleksejevs <danko@very.lv>
2024-06-30 13:03:32 +00:00

136 lines
2.9 KiB
CSS

.combo-markdown-editor {
width: 100%;
}
.combo-markdown-editor markdown-toolbar {
cursor: default;
display: flex;
align-items: center;
padding-bottom: 10px;
gap: .5rem;
flex-wrap: wrap;
}
.combo-markdown-editor .markdown-toolbar-group {
display: flex;
}
.combo-markdown-editor .markdown-toolbar-group:last-child {
flex: 1;
justify-content: flex-end;
}
.combo-markdown-editor .markdown-toolbar-button {
border: none;
background: none;
user-select: none;
padding: 5px;
cursor: pointer;
color: var(--color-text);
line-height: 20px;
}
.combo-markdown-editor .markdown-toolbar-button:hover {
color: var(--color-primary);
}
.ui.form .combo-markdown-editor textarea.markdown-text-editor,
.combo-markdown-editor textarea.markdown-text-editor {
display: block;
width: 100%;
max-height: calc(100vh - var(--min-height-textarea));
resize: vertical;
}
.combo-markdown-editor .CodeMirror-scroll {
max-height: calc(100vh - var(--min-height-textarea));
}
/* use the same styles as markup/content.css */
.combo-markdown-editor .CodeMirror-scroll .cm-header-1 {
font-size: 2em;
}
.combo-markdown-editor .CodeMirror-scroll .cm-header-2 {
font-size: 1.5em;
}
.combo-markdown-editor .CodeMirror-scroll .cm-header-3 {
font-size: 1.25em;
}
.combo-markdown-editor .CodeMirror-scroll .cm-header-4 {
font-size: 1em;
}
.combo-markdown-editor .CodeMirror-scroll .cm-header-5 {
font-size: 0.875em;
}
.combo-markdown-editor .CodeMirror-scroll .cm-header-6 {
font-size: 0.85em;
}
text-expander {
display: block;
position: relative;
}
text-expander .suggestions {
position: absolute;
min-width: 180px;
padding: 0;
margin-top: 24px;
list-style: none;
background: var(--color-box-body);
border-radius: var(--border-radius);
border: 1px solid var(--color-secondary);
box-shadow: 0 .5rem 1rem var(--color-shadow);
z-index: 100; /* needs to be > 20 to be on top of dropzone's .dz-details */
}
text-expander .suggestions li {
display: flex;
align-items: center;
cursor: pointer;
padding: 4px 8px;
font-weight: var(--font-weight-medium);
}
text-expander .suggestions li + li {
border-top: 1px solid var(--color-secondary-alpha-40);
}
text-expander .suggestions li:first-child {
border-radius: var(--border-radius) var(--border-radius) 0 0;
}
text-expander .suggestions li:last-child {
border-radius: 0 0 var(--border-radius) var(--border-radius);
}
text-expander .suggestions li:only-child {
border-radius: var(--border-radius);
}
text-expander .suggestions li:hover {
background: var(--color-hover);
}
text-expander .suggestions .fullname {
font-weight: var(--font-weight-normal);
margin-left: 4px;
color: var(--color-text-light-1);
}
text-expander .suggestions li[aria-selected="true"],
text-expander .suggestions li[aria-selected="true"] span {
background: var(--color-primary);
color: var(--color-primary-contrast);
}
text-expander .suggestions img {
width: 24px;
height: 24px;
margin-right: 8px;
}