Diffdown is a real-time collaborative Markdown editor/previewer built on the AT Protocol diffdown.com
at ad49f775009bddebc87dada17a608d9dbcdc1ee3 201 lines 3.8 kB view raw
1.editor-page { 2 position: fixed; 3 top: 49px; /* navbar height */ 4 left: 0; 5 right: 0; 6 bottom: 0; 7 display: flex; 8 flex-direction: column; 9} 10 11.editor-toolbar { 12 display: flex; 13 justify-content: space-between; 14 align-items: center; 15 padding: 0.5rem 1rem; 16 border-bottom: 1px solid var(--border); 17 background: var(--bg-card); 18 flex-shrink: 0; 19} 20 21.toolbar-actions { 22 display: flex; 23 align-items: center; 24 gap: 0.75rem; 25 flex-shrink: 0; 26} 27 28@media (max-width: 600px) { 29 .editor-toolbar { 30 flex-wrap: wrap; 31 gap: 0.4rem; 32 padding: 0.4rem 0.75rem; 33 } 34 35 .breadcrumb { 36 flex: 1 1 100%; 37 min-width: 0; 38 } 39 40 .toolbar-actions { 41 flex: 1 1 100%; 42 gap: 0.4rem; 43 overflow-x: auto; 44 padding-bottom: 0.1rem; 45 } 46} 47 48.btn-outline.active { 49 background: var(--primary); 50 color: #fff; 51} 52 53.title-input { 54 background: transparent; 55 border: none; 56 border-bottom: 1px solid transparent; 57 color: var(--text); 58 font-size: 0.9rem; 59 padding: 0.1rem 0.25rem; 60 min-width: 12rem; 61 max-width: 30rem; 62 outline: none; 63} 64 65.title-input:hover, 66.title-input:focus { 67 border-bottom-color: var(--border); 68} 69 70.editor-split { 71 display: flex; 72 flex: 1; 73 overflow: hidden; 74 min-height: 0; 75} 76 77.editor-pane { 78 flex: 1; 79 overflow: hidden; 80 min-height: 0; 81 border-right: 1px solid var(--border); 82} 83 84#editor { 85 height: 100%; 86} 87 88.editor-pane .cm-editor { 89 height: 100%; 90} 91 92.preview-pane { 93 flex: 1; 94 overflow: auto; 95 padding: 1.5rem; 96 background: var(--bg-card); 97} 98 99/* Rich text (WYSIWYG) editor container */ 100.editor-rich { 101 flex: 1; 102 overflow: auto; 103 padding: 2rem 1.5rem; 104 display: flex; 105 flex-direction: column; 106 align-items: center; 107 background: var(--bg); 108} 109 110.editor-rich .milkdown { 111 width: 100%; 112 max-width: 720px; 113 outline: none; 114 cursor: text; 115 background: var(--bg-card); 116 border: 1px solid var(--border); 117 border-radius: var(--radius); 118 box-shadow: 0 2px 12px rgba(0,0,0,0.08); 119 padding: 3rem 3.5rem; 120} 121 122/* Milkdown prose styles — match markdown.css */ 123.editor-rich .milkdown .ProseMirror { 124 outline: none; 125 min-height: 60vh; 126} 127 128.editor-rich .milkdown .ProseMirror p { 129 margin-bottom: 1.25em; 130} 131 132.editor-rich .milkdown .ProseMirror ul, 133.editor-rich .milkdown .ProseMirror ol { 134 padding-left: 1.5rem; 135} 136 137.editor-rich .milkdown .ProseMirror li { 138 margin-bottom: 0.25em; 139} 140 141.editor-rich .milkdown .ProseMirror li > p { 142 margin-bottom: 0; 143} 144 145/* Source/Wrap/Preview buttons hidden in rich text mode */ 146.source-only { 147 display: none; 148} 149 150/* Link editing tooltip */ 151.link-tooltip { 152 position: fixed; 153 z-index: 200; 154 display: none; 155 align-items: center; 156 gap: 0.4rem; 157 background: var(--bg-card); 158 border: 1px solid var(--border); 159 border-radius: var(--radius); 160 padding: 0.35rem 0.5rem; 161 box-shadow: 0 4px 16px rgba(0,0,0,0.15); 162} 163 164.link-tooltip.visible { 165 display: flex; 166} 167 168.link-tooltip input { 169 width: 260px; 170 border: 1px solid var(--border); 171 border-radius: var(--radius); 172 background: var(--bg); 173 color: var(--text); 174 padding: 0.2rem 0.5rem; 175 font-size: 0.83rem; 176 outline: none; 177} 178 179.link-tooltip input:focus { 180 border-color: var(--primary); 181} 182 183.link-tooltip button { 184 background: none; 185 border: 1px solid var(--border); 186 border-radius: var(--radius); 187 color: var(--text-muted); 188 cursor: pointer; 189 font-size: 0.8rem; 190 padding: 0.2rem 0.45rem; 191 white-space: nowrap; 192 line-height: 1.4; 193} 194 195.link-tooltip button:first-of-type { 196 background: var(--primary); 197 border-color: var(--primary); 198 color: #fff; 199} 200 201.link-tooltip button:hover { opacity: 0.8; }