UNPKG

md-editor-v3

Version:

Markdown editor for vue3, developed in jsx and typescript, dark theme、beautify content by prettier、render articles directly、paste or clip the picture and upload it...

898 lines (870 loc) 20.9 kB
@charset "UTF-8"; @import '@vavt/markdown-theme/css/all.css'; .md-editor-checkbox { cursor: pointer; width: 12px; height: 12px; border: 1px solid var(--md-border-color); background-color: var(--md-bk-color-outstand); border-radius: 2px; line-height: 1; text-align: center; } .md-editor-checkbox::after { content: ""; font-weight: bold; } .md-editor-checkbox-checked::after { content: "✓"; } .md-editor-divider { position: relative; display: inline-block; width: 1px; inset-block-start: 0.1em; height: 0.9em; margin-block: 0; margin-inline: 8px; background-color: var(--md-border-color); } .md-editor-dropdown { overflow: hidden; box-sizing: border-box; position: absolute; transition: all 0.3s; opacity: 1; z-index: 20000; background-color: var(--md-bk-color); } .md-editor-dropdown-hidden { opacity: 0; visibility: hidden; } .md-editor-dropdown-overlay { margin-block-start: 6px; } .md-editor-modal-mask { position: fixed; inset-block-start: 0; inset-inline-end: 0; inset-block-end: 0; inset-inline-start: 0; z-index: 20000; height: 100%; background-color: var(--md-modal-mask); } .md-editor-modal { display: block; background-color: var(--md-bk-color); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; border-radius: 3px; border: 1px solid var(--md-border-color); position: fixed; z-index: 20001; box-shadow: var(--md-modal-shadow); } .md-editor-modal-header { cursor: grab; display: flex; justify-content: space-between; padding-block: 10px; padding-inline: 24px; color: var(--md-color); font-weight: 600; font-size: 16px; line-height: 22px; word-wrap: break-word; user-select: none; border-block-end: 1px solid var(--md-border-color); position: relative; } .md-editor-modal-body { padding-block: 20px; padding-inline: 20px; font-size: 14px; word-wrap: break-word; height: calc(100% - 43px); box-sizing: border-box; } .md-editor-modal .md-editor-modal-func { position: absolute; inset-block-start: 10px; inset-inline-end: 10px; } .md-editor-modal .md-editor-modal-func .md-editor-modal-adjust, .md-editor-modal .md-editor-modal-func .md-editor-modal-close { cursor: pointer; width: 24px; height: 24px; line-height: 24px; text-align: center; display: inline-block; } .md-editor-modal .md-editor-modal-func .md-editor-modal-adjust { padding-inline-end: 10px; } .animation { animation-duration: 0.15s; animation-fill-mode: forwards; } @keyframes zoomIn { from { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); } 50% { opacity: 1; } } .zoom-in { animation-name: zoomIn; animation-duration: 0.15s; animation-fill-mode: forwards; } @keyframes zoomOut { from { opacity: 1; } 50% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); } to { opacity: 0; } } .zoom-out { animation-name: zoomOut; animation-duration: 0.15s; animation-fill-mode: forwards; } .md-editor-custom-scrollbar { position: relative; overflow: hidden; height: 100%; } .md-editor-custom-scrollbar__track { position: absolute; inset-block-start: 0; inset-inline-end: 0; width: 6px; height: 100%; background: var(--md-scrollbar-bg-color); } .md-editor-custom-scrollbar__thumb { position: absolute; width: 6px; background: var(--md-scrollbar-thumb-color); border-radius: 4px; cursor: pointer; transition: background 0.2s; } .md-editor-custom-scrollbar__thumb:hover { background: var(--md-scrollbar-thumb-hover-color); } .md-editor-content { direction: ltr; position: relative; display: flex; flex: 1; height: 0; flex-shrink: 0; } .md-editor-content-wrapper { display: flex; flex: 1; width: 0; position: relative; } .md-editor-resize-operate { position: absolute; width: 2px; height: 100%; background-color: var(--md-bk-color); z-index: 1; cursor: col-resize; } .md-editor-input-wrapper { height: 100%; box-sizing: border-box; } .md-editor-preview-wrapper { position: relative; height: 100%; box-sizing: border-box; overflow: auto; scrollbar-width: none; } [dir=rtl] .md-editor-preview-wrapper { direction: rtl; } .md-editor-preview-wrapper::-webkit-scrollbar { display: none; } .md-editor-html { font-size: 16px; word-break: break-all; } .md-editor-catalog-editor { position: relative; overflow-x: hidden; overflow-y: auto; height: 100%; background-color: var(--md-bk-color); border-inline-start: 1px solid var(--md-border-color); width: 200px; box-sizing: border-box; margin-block: 0; margin-inline: 0; padding-block: 5px; padding-inline: 10px; font-size: 14px; font-variant: tabular-nums; line-height: 1.5; list-style: none; font-feature-settings: "tnum"; scrollbar-width: none; } .md-editor-catalog-editor::-webkit-scrollbar { display: none; } .md-editor-catalog-fixed { position: absolute; inset-block-start: 0; inset-inline-end: 0; z-index: 10002; } .md-editor-catalog-flat { position: initial; flex-shrink: 0; } .md-editor-footer { height: 24px; flex-shrink: 0; font-size: 12px; color: var(--md-color); border-block-start: 1px solid var(--md-border-color); display: flex; justify-content: space-between; } .md-editor-footer-item { display: inline-flex; align-items: center; height: 100%; padding-block: 0; padding-inline: 10px; } .md-editor-footer-item + .md-editor-footer-item { padding-inline-start: 0; } .md-editor-footer-label { padding-inline-end: 5px; line-height: 1; } .md-editor-clip { position: relative; display: flex; height: calc(100% - 52px); } .md-editor-clip-main, .md-editor-clip-preview { width: 50%; height: 100%; border: 1px solid var(--md-border-color); } .md-editor-clip-main { margin-inline-end: 1em; } .md-editor-clip-main .md-editor-clip-cropper { position: relative; width: 100%; height: 100%; } .md-editor-clip-main .md-editor-clip-cropper .md-editor-clip-delete { position: absolute; inset-block-start: 0; inset-inline-end: 0; font-size: 0; background-color: var(--md-bk-color-outstand); border-end-start-radius: 4px; color: var(--md-color); cursor: pointer; } .md-editor-clip-main .md-editor-clip-upload { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; cursor: pointer; } .md-editor-clip-main .md-editor-clip-upload .md-editor-icon, .md-editor-clip-main .md-editor-clip-upload .md-editor-iconfont { width: auto; height: 40px; font-size: 40px; } .md-editor-clip-preview-target { width: 100%; height: 100%; overflow: hidden; } .md-editor-form-item { margin-block-end: 20px; text-align: center; } .md-editor-form-item:last-of-type { margin-block-end: 0; } .md-editor-label { font-size: 14px; color: var(--md-color); width: 80px; text-align: center; display: inline-block; } .md-editor-input { border-radius: 4px; padding-block: 4px; padding-inline: 11px; color: var(--md-color); font-size: 14px; line-height: 1.5715; background-color: var(--md-bk-color); background-image: none; border: 1px solid var(--md-border-color); transition: all 0.2s; } .md-editor-input:focus, .md-editor-input:hover { border-color: var(--md-border-hover-color); outline: 0; } .md-editor-input:focus { border-color: var(--md-border-active-color); } .md-editor-btn { font-weight: 400; text-align: center; vertical-align: middle; cursor: pointer; border: 1px solid var(--md-border-color); white-space: nowrap; user-select: none; height: 32px; padding-block: 0; padding-inline: 15px; font-size: 14px; border-radius: 4px; transition: all 0.2s linear; color: var(--md-color); background-color: var(--md-bk-color); border-color: var(--md-border-color); margin-inline-start: 10px; } .md-editor-btn:first-of-type { margin-inline-start: 0; } .md-editor-btn:hover { color: var(--md-hover-color); background-color: var(--md-bk-color); border-color: var(--md-border-hover-color); } .md-editor-btn-row { width: 100%; } @media (max-width: 688px) { .md-editor-modal-clip .md-editor-modal { max-width: calc(100% - 20px); max-height: calc(100% - 20px); margin-block: 10px; margin-inline: 10px; inset-inline-start: 0 !important; } .md-editor-modal-clip .md-editor-clip { flex-direction: column; } .md-editor-modal-clip .md-editor-clip-main, .md-editor-modal-clip .md-editor-clip-preview { width: 100%; height: 0; flex: 1; } .md-editor-modal-clip .md-editor-clip-main { margin-block-end: 1em; } } .md-editor-menu { margin-block: 0; margin-inline: 0; padding-block: 0; padding-inline: 0; border-radius: 3px; border: 1px solid var(--md-border-color); background-color: inherit; } .md-editor-menu-item { list-style: none; font-size: 12px; color: var(--md-color); padding-block: 4px; padding-inline: 10px; cursor: pointer; line-height: 16px; } .md-editor-menu-item:first-of-type { padding-block-start: 8px; } .md-editor-menu-item:last-of-type { padding-block-end: 8px; } .md-editor-menu-item:hover { background-color: var(--md-bk-hover-color); } .md-editor-table-shape { padding-block: 4px; padding-inline: 4px; border-radius: 3px; border: 1px solid var(--md-border-color); display: flex; flex-direction: column; } .md-editor-table-shape-row { display: flex; } .md-editor-table-shape-col { padding-block: 2px; padding-inline: 2px; cursor: pointer; } .md-editor-table-shape-col-default { width: 16px; height: 16px; background-color: #e0e0e0; border-radius: 3px; transition: all 0.2s; } .md-editor-table-shape-col-include { background-color: #aaa; } .md-editor-toolbar-wrapper { overflow-x: auto; overflow-y: hidden; scrollbar-width: none; flex-shrink: 0; padding-block: 4px; padding-inline: 4px; border-block-end: 1px solid var(--md-border-color); } .md-editor-toolbar-wrapper::-webkit-scrollbar { height: 0 !important; } .md-editor-toolbar { display: flex; justify-content: space-between; align-items: center; box-sizing: content-box; } .md-editor-toolbar-item { color: var(--md-color); display: flex; flex-direction: column; align-items: center; margin-block: 0; margin-inline: 2px; padding-block: 0; padding-inline: 2px; transition: all 0.3s; border-radius: 3px; cursor: pointer; list-style: none; user-select: none; text-align: center; border: none; background-color: transparent; } .md-editor-toolbar-item-name { font-size: 12px; word-break: keep-all; white-space: nowrap; } .md-editor-toolbar-item:not([disabled]):hover { background-color: var(--md-bk-color-outstand); } .md-editor-toolbar-active { background-color: var(--md-bk-color-outstand); } .md-editor-toolbar-left, .md-editor-toolbar-right { padding-block: 1px; padding-inline: 0; display: flex; align-items: center; } .md-editor .md-editor-stn .md-editor-toolbar-item { padding-block: 0; padding-inline: 6px; } .md-editor-dark .md-editor-table-shape-col-default { background-color: #222; } .md-editor-dark .md-editor-table-shape-col-include { background-color: #555; } .md-editor-floating-toolbar { padding-block: 4px; padding-inline: 4px; display: flex; align-items: center; } .md-editor-floating-toolbar-container { opacity: 0; transition: opacity 120ms ease-out; transition-delay: 20ms; will-change: opacity; } .md-editor-floating-toolbar-container[data-state=visible] { opacity: 1; } .md-editor-floating-toolbar-container .cm-tooltip-arrow { transition: opacity 120ms ease-out; opacity: 0; } .md-editor-floating-toolbar-container[data-state=visible] .cm-tooltip-arrow { opacity: 1; } .md-editor .cm-editor { direction: ltr; font-size: 14px; height: 100%; } .md-editor .cm-editor.cm-focused { outline: none; } .md-editor .cm-editor .cm-tooltip.cm-tooltip-autocomplete { border-radius: 3px; } .md-editor .cm-editor .cm-tooltip.cm-tooltip-autocomplete > ul { border-radius: 3px; min-width: fit-content; max-width: fit-content; } .md-editor .cm-editor .cm-tooltip.cm-tooltip-autocomplete > ul li { background-color: var(--md-bk-color); color: var(--md-color); padding-block: 4px; padding-inline: 10px; line-height: 16px; } .md-editor .cm-editor .cm-tooltip.cm-tooltip-autocomplete > ul li .cm-completionIcon { width: auto; } .md-editor .cm-editor .cm-tooltip.cm-tooltip-autocomplete > ul li[aria-selected] { background-color: var(--md-bk-hover-color); } .md-editor .cm-editor .cm-tooltip.cm-tooltip-autocomplete .cm-completionInfo { margin-block-start: -2px; margin-inline-start: 3px; padding-block: 4px; padding-inline: 9px; border-radius: 3px; overflow: hidden; background-color: var(--md-bk-hover-color); color: var(--md-color); } .md-editor .cm-scroller { scrollbar-width: none; } .md-editor .cm-scroller::-webkit-scrollbar { display: none; } .md-editor .cm-scroller .cm-content[contenteditable=true] { margin-block: 10px; margin-inline: 10px; min-height: calc(100% - 20px); } .md-editor .cm-scroller .cm-gutters + .cm-content[contenteditable=true] { margin-block: 0; margin-inline: 0; min-height: 100%; } .md-editor .cm-scroller .cm-line { line-height: inherit; } .md-editor1 .cm-scroller { font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace; line-height: 20px; } .md-editor .cm-search .cm-textfield { border-radius: 4px; padding-block: 4px; padding-inline: 11px; color: var(--md-color); font-size: 10px; background-image: none; border: 1px solid var(--md-border-color); transition: all 0.2s; } .md-editor .cm-search .cm-textfield:focus, .md-editor .cm-search .cm-textfield:hover { border-color: var(--md-border-hover-color); outline: 0; } .md-editor .cm-search .cm-textfield:focus { border-color: var(--md-border-active-color); } .md-editor .cm-search .cm-button { font-weight: 400; text-align: center; vertical-align: middle; cursor: pointer; border: 1px solid var(--md-border-color); white-space: nowrap; user-select: none; height: 20px; padding-block: 0; padding-inline: 15px; font-size: 10px; border-radius: 4px; transition: all 0.2s linear; color: var(--md-color); background-color: inherit; background-image: none; border-color: var(--md-border-color); } .md-editor .cm-search .cm-button:first-of-type { margin-inline-start: 0; } .md-editor .cm-search .cm-button:hover { color: var(--md-hover-color); background-color: inherit; border-color: var(--md-border-hover-color); } .md-editor .cm-search input[type=checkbox] { vertical-align: sub; } .md-editor .cm-search input[type=checkbox]::after { display: block; content: ""; font-weight: bold; cursor: pointer; width: 12px; height: 12px; border: 1px solid var(--md-border-color); background-color: var(--md-bk-color-outstand); border-radius: 2px; line-height: 1; text-align: center; } .md-editor .cm-search input[type=checkbox]:checked::after { content: "✓"; color: var(--md-color); } .md-editor .cm-search button[name=close] { color: inherit; cursor: pointer; inset-inline-end: 6px; } [dir=rtl] .md-editor-catalog { direction: rtl; } .md-editor-catalog-indicator { height: 18px; width: 4px; background-color: #73d13d; position: absolute; border-radius: 4px; transition: top 0.3s; } .md-editor-catalog > .md-editor-catalog-link { padding-block: 5px; padding-inline: 8px; } .md-editor-catalog-link { padding-block: 5px; padding-inline-start: 1em; display: flex; flex-direction: column; } .md-editor-catalog-link span { display: inline-block; width: 100%; position: relative; overflow: hidden; color: var(--md-color); white-space: nowrap; text-overflow: ellipsis; transition: color 0.3s; cursor: pointer; line-height: 18px; } .md-editor-catalog-link span:hover { color: #73d13d; } .md-editor-catalog-wrapper > .md-editor-catalog-link { padding-block-start: 5px; padding-block-end: 5px; } .md-editor-catalog-wrapper > .md-editor-catalog-link:first-of-type { padding-block-start: 10px; } .md-editor-catalog-wrapper > .md-editor-catalog-link:last-of-type { padding-block-end: 0; } .md-editor-catalog-active > span { color: #73d13d; } .md-editor-catalog-dark { --md-color: #999; --md-hover-color: #bbb; --md-bk-color: #000; --md-bk-color-outstand: #333; --md-bk-hover-color: #1b1a1a; --md-border-color: #2d2d2d; --md-border-hover-color: #636262; --md-border-active-color: #777; --md-modal-mask: #00000073; --md-modal-shadow: 0px 6px 24px 2px rgba(0, 0, 0, 0.4); --md-scrollbar-bg-color: #0f0f0f; --md-scrollbar-thumb-color: #2d2d2d; --md-scrollbar-thumb-hover-color: #3a3a3a; --md-scrollbar-thumb-active-color: #3a3a3a; } .md-editor { --md-color: #3f4a54; --md-hover-color: #000; --md-bk-color: #fff; --md-bk-color-outstand: #f2f2f2; --md-bk-hover-color: #f5f7fa; --md-border-color: #e6e6e6; --md-border-hover-color: #b9b9b9; --md-border-active-color: #999; --md-modal-mask: #00000073; --md-modal-shadow: 0px 6px 24px 2px rgba(0, 0, 0, 0.0980392157); --md-scrollbar-bg-color: #e2e2e2; --md-scrollbar-thumb-color: rgba(0, 0, 0, 0.3019607843); --md-scrollbar-thumb-hover-color: rgba(0, 0, 0, 0.3490196078); --md-scrollbar-thumb-active-color: rgba(0, 0, 0, 0.3803921569); color: var(--md-color); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI Variable", "Segoe UI", system-ui, ui-sans-serif, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; width: 100%; height: 500px; position: relative; box-sizing: border-box; border: 1px solid var(--md-border-color); display: flex; flex-direction: column; overflow: hidden; background-color: var(--md-bk-color); } .md-editor .md-editor-fullscreen { position: fixed !important; inset-block-start: 0; inset-inline-end: 0; inset-block-end: 0; inset-inline-start: 0; width: auto !important; height: auto !important; z-index: 10000; } .md-editor svg.md-editor-icon { width: 16px; height: 16px; padding-block: 4px; padding-inline: 4px; fill: none; overflow: hidden; display: block; box-sizing: content-box; } .md-editor .lucide-list, .md-editor .lucide-list-ordered, .md-editor .lucide-list-todo { width: 18px; height: 18px; padding-block: 3px; padding-inline: 3px; } .md-editor-preview { font-size: 16px; word-break: break-all; display: flow-root; padding-block: 10px; padding-inline: 20px; } .md-editor-modal-container { --md-color: #3f4a54; --md-hover-color: #000; --md-bk-color: #fff; --md-bk-color-outstand: #f2f2f2; --md-bk-hover-color: #f5f7fa; --md-border-color: #e6e6e6; --md-border-hover-color: #b9b9b9; --md-border-active-color: #999; --md-modal-mask: #00000073; --md-modal-shadow: 0px 6px 24px 2px rgba(0, 0, 0, 0.0980392157); --md-scrollbar-bg-color: #e2e2e2; --md-scrollbar-thumb-color: rgba(0, 0, 0, 0.3019607843); --md-scrollbar-thumb-hover-color: rgba(0, 0, 0, 0.3490196078); --md-scrollbar-thumb-active-color: rgba(0, 0, 0, 0.3803921569); color: var(--md-color); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI Variable", "Segoe UI", system-ui, ui-sans-serif, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji"; } .md-editor-modal-container .lucide-x { width: 20px; height: 20px; padding-block: 2px; padding-inline: 2px; } .md-editor-modal-container .lucide-minimize-2, .md-editor-modal-container .lucide-maximize-2 { width: 18px; height: 18px; padding-block: 2px; padding-inline: 2px; } .md-editor-previewOnly { border: none; height: auto; overflow: visible; } .md-editor-previewOnly .md-editor-content { height: 100%; } .md-editor-previewOnly .md-editor-preview { padding-block: 0; padding-inline: 0; } .md-editor-previewOnly .md-editor-preview-wrapper { overflow: visible; } .md-editor-dark, .md-editor-modal-container[data-theme=dark] { --md-color: #999; --md-hover-color: #bbb; --md-bk-color: #000; --md-bk-color-outstand: #333; --md-bk-hover-color: #1b1a1a; --md-border-color: #2d2d2d; --md-border-hover-color: #636262; --md-border-active-color: #777; --md-modal-mask: #00000073; --md-modal-shadow: 0px 6px 24px 2px rgba(0, 0, 0, 0.4); --md-scrollbar-bg-color: #0f0f0f; --md-scrollbar-thumb-color: #2d2d2d; --md-scrollbar-thumb-hover-color: #3a3a3a; --md-scrollbar-thumb-active-color: #3a3a3a; } .medium-zoom-overlay, .medium-zoom-image--opened { z-index: 100001; } .md-editor-fullscreen { position: fixed !important; inset-block-start: 0; inset-inline-end: 0; inset-block-end: 0; inset-inline-start: 0; width: auto !important; height: auto !important; z-index: 10000; } .md-editor-disabled { cursor: not-allowed !important; opacity: 0.6; }