mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-26 12:27:06 +00:00 
			
		
		
		
	Fine tune markdown editor toolbar (#24046)
1. Remove unnecessary `btn-link` `muted` classes
* Link is link, button is button, I can't see a real requirement to make
a button like a link.
* If anyone insists, please help to show me real example from modern
frameworks / websites, how and why they do so.
    * No need to duplicate a lot of class names on similar elements
* Declare styles clearly, for example, `markdown-toolbar` itself should
have `display: flex`, but not use `gt-df` to overwrite the `display:
block`.
2. Remove unnecessary `role` attribute
    * https://github.com/github/markdown-toolbar-element/issues/70
* The `markdown-toolbar-element` does want to add `role=button`, but
there is a bug.
* So we do the similar thing as upstream does (add the role by JS),
until they fix their bugs.
3. Indent `markdown-switch-easymde` (before it doesn't have a proper
indent)
Screenshot:

			
			
This commit is contained in:
		| @@ -19,28 +19,28 @@ Template Attributes: | ||||
| 	</div> | ||||
| 	{{end}} | ||||
| 	<div class="ui tab active" data-tab-panel="markdown-writer"> | ||||
| 		<markdown-toolbar class="gt-df gt-ac gt-gap-3"> | ||||
| 		<markdown-toolbar class="gt-gap-3"> | ||||
| 			<div class="markdown-toolbar-group"> | ||||
| 				<md-header role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.heading.tooltip"}}">{{svg "octicon-heading"}}</md-header> | ||||
| 				<md-bold role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.bold.tooltip"}}">{{svg "octicon-bold"}}</md-bold> | ||||
| 				<md-italic role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.italic.tooltip"}}">{{svg "octicon-italic"}}</md-italic> | ||||
| 				<md-header class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.heading.tooltip"}}">{{svg "octicon-heading"}}</md-header> | ||||
| 				<md-bold class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.bold.tooltip"}}">{{svg "octicon-bold"}}</md-bold> | ||||
| 				<md-italic class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.italic.tooltip"}}">{{svg "octicon-italic"}}</md-italic> | ||||
| 			</div> | ||||
| 			<div class="markdown-toolbar-group"> | ||||
| 				<md-quote role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.quote.tooltip"}}">{{svg "octicon-quote"}}</md-quote> | ||||
| 				<md-code role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.code.tooltip"}}">{{svg "octicon-code"}}</md-code> | ||||
| 				<md-link role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.link.tooltip"}}">{{svg "octicon-link"}}</md-link> | ||||
| 				<md-quote class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.quote.tooltip"}}">{{svg "octicon-quote"}}</md-quote> | ||||
| 				<md-code class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.code.tooltip"}}">{{svg "octicon-code"}}</md-code> | ||||
| 				<md-link class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.link.tooltip"}}">{{svg "octicon-link"}}</md-link> | ||||
| 			</div> | ||||
| 			<div class="markdown-toolbar-group"> | ||||
| 				<md-unordered-list role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.list.unordered.tooltip"}}">{{svg "octicon-list-unordered"}}</md-unordered-list> | ||||
| 				<md-ordered-list role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.list.ordered.tooltip"}}">{{svg "octicon-list-ordered"}}</md-ordered-list> | ||||
| 				<md-task-list role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.list.task.tooltip"}}">{{svg "octicon-tasklist"}}</md-task-list> | ||||
| 				<md-unordered-list class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.list.unordered.tooltip"}}">{{svg "octicon-list-unordered"}}</md-unordered-list> | ||||
| 				<md-ordered-list class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.list.ordered.tooltip"}}">{{svg "octicon-list-ordered"}}</md-ordered-list> | ||||
| 				<md-task-list class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.list.task.tooltip"}}">{{svg "octicon-tasklist"}}</md-task-list> | ||||
| 			</div> | ||||
| 			<div class="markdown-toolbar-group"> | ||||
| 				<md-mention role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.mention.tooltip"}}">{{svg "octicon-mention"}}</md-mention> | ||||
| 				<md-ref role="button" class="markdown-toolbar-button btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.ref.tooltip"}}">{{svg "octicon-cross-reference"}}</md-ref> | ||||
| 				<md-mention class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.mention.tooltip"}}">{{svg "octicon-mention"}}</md-mention> | ||||
| 				<md-ref class="markdown-toolbar-button" data-tooltip-content="{{.locale.Tr "editor.buttons.ref.tooltip"}}">{{svg "octicon-cross-reference"}}</md-ref> | ||||
| 			</div> | ||||
| 			<div class="markdown-toolbar-group gt-f1 gt-je"> | ||||
| 			<button class="markdown-toolbar-button markdown-switch-easymde btn-link muted" data-tooltip-content="{{.locale.Tr "editor.buttons.switch_to_legacy.tooltip"}}">{{svg "octicon-arrow-switch"}}</button> | ||||
| 			<div class="markdown-toolbar-group"> | ||||
| 				<button class="markdown-toolbar-button markdown-switch-easymde" data-tooltip-content="{{.locale.Tr "editor.buttons.switch_to_legacy.tooltip"}}">{{svg "octicon-arrow-switch"}}</button> | ||||
| 			</div> | ||||
| 		</markdown-toolbar> | ||||
| 		<text-expander keys=": @"> | ||||
|   | ||||
| @@ -328,27 +328,14 @@ progress::-moz-progress-bar { | ||||
|   user-select: none; | ||||
| } | ||||
|  | ||||
| .btn-link { | ||||
|   background: none; | ||||
|   border: none; | ||||
|   color: var(--color-primary); | ||||
| } | ||||
|  | ||||
| a:hover, | ||||
| .btn-link:hover { | ||||
|   text-decoration: underline; | ||||
| } | ||||
|  | ||||
| a, | ||||
| .ui.breadcrumb a, | ||||
| .btn-link { | ||||
| .ui.breadcrumb a { | ||||
|   color: var(--color-primary); | ||||
|   cursor: pointer; | ||||
|   text-decoration-skip-ink: all; | ||||
| } | ||||
|  | ||||
| a.muted, | ||||
| .btn-link.muted, | ||||
| .muted-links a { | ||||
|   color: inherit; | ||||
| } | ||||
| @@ -356,7 +343,6 @@ a.muted, | ||||
| a:hover, | ||||
| a.muted:hover, | ||||
| a.muted:hover [class*="color-text"], | ||||
| .btn-link.muted:hover, | ||||
| .muted-links a:hover, | ||||
| .ui.breadcrumb a:hover { | ||||
|   color: var(--color-primary); | ||||
|   | ||||
| @@ -4,7 +4,8 @@ | ||||
|  | ||||
| .combo-markdown-editor markdown-toolbar { | ||||
|   cursor: default; | ||||
|   display: block; | ||||
|   display: flex; | ||||
|   align-items: center; | ||||
|   padding-bottom: 10px; | ||||
| } | ||||
|  | ||||
| @@ -12,9 +13,21 @@ | ||||
|   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; | ||||
| } | ||||
|  | ||||
| .combo-markdown-editor .markdown-toolbar-button:hover { | ||||
|   color: var(--color-primary); | ||||
| } | ||||
|  | ||||
| .ui.form .combo-markdown-editor textarea.markdown-text-editor, | ||||
|   | ||||
| @@ -70,7 +70,10 @@ class ComboMarkdownEditor { | ||||
|  | ||||
|     this.textareaMarkdownToolbar = this.container.querySelector('markdown-toolbar'); | ||||
|     this.textareaMarkdownToolbar.setAttribute('for', this.textarea.id); | ||||
|  | ||||
|     for (const el of this.textareaMarkdownToolbar.querySelectorAll('.markdown-toolbar-button')) { | ||||
|       // upstream bug: The role code is never executed in base MarkdownButtonElement https://github.com/github/markdown-toolbar-element/issues/70 | ||||
|       el.setAttribute('role', 'button'); | ||||
|     } | ||||
|     this.switchToEasyMDEButton = this.container.querySelector('.markdown-switch-easymde'); | ||||
|     this.switchToEasyMDEButton?.addEventListener('click', async (e) => { | ||||
|       e.preventDefault(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 wxiaoguang
					wxiaoguang