md-editor-rt
Version:
Markdown editor for react, developed in jsx and typescript, dark theme、beautify content by prettier、render articles directly、paste or clip the picture and upload it...
893 lines (866 loc) • 20.7 kB
CSS
@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;
}
@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 ;
}
.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 ;
}
.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-editor .ͼ1 .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-modal-mask: #00000073;
--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-shadow: 0px 6px 24px 2px #00000066;
--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-modal-mask: #00000073;
--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-shadow: 0px 6px 24px 2px #00000019;
--md-scrollbar-bg-color: #e2e2e2;
--md-scrollbar-thumb-color: #0000004d;
--md-scrollbar-thumb-hover-color: #00000059;
--md-scrollbar-thumb-active-color: #00000061;
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 ;
inset-block-start: 0;
inset-inline-end: 0;
inset-block-end: 0;
inset-inline-start: 0;
width: auto ;
height: auto ;
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-modal-mask: #00000073;
--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-shadow: 0px 6px 24px 2px #00000019;
--md-scrollbar-bg-color: #e2e2e2;
--md-scrollbar-thumb-color: #0000004d;
--md-scrollbar-thumb-hover-color: #00000059;
--md-scrollbar-thumb-active-color: #00000061;
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-modal-mask: #00000073;
--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-shadow: 0px 6px 24px 2px #00000066;
--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 ;
inset-block-start: 0;
inset-inline-end: 0;
inset-block-end: 0;
inset-inline-start: 0;
width: auto ;
height: auto ;
z-index: 10000;
}
.md-editor-disabled {
cursor: not-allowed ;
opacity: 0.6;
}