...
This commit is contained in:
		
							
								
								
									
										594
									
								
								static/style.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										594
									
								
								static/style.css
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,594 @@ | ||||
| /* CSS Variables for theming */ | ||||
| :root { | ||||
|     --bg-primary: #ffffff; | ||||
|     --bg-secondary: #f8f9fa; | ||||
|     --bg-tertiary: #f6f8fa; | ||||
|     --text-primary: #24292e; | ||||
|     --text-secondary: #6a737d; | ||||
|     --border-color: #dee2e6; | ||||
|     --border-light: #eaecef; | ||||
|     --link-color: #0366d6; | ||||
|     --accent-color: #0d6efd; | ||||
|     --code-bg: rgba(27, 31, 35, 0.05); | ||||
|     --scrollbar-track: #f1f1f1; | ||||
|     --scrollbar-thumb: #888; | ||||
|     --scrollbar-thumb-hover: #555; | ||||
| } | ||||
|  | ||||
| /* Dark mode variables */ | ||||
| body.dark-mode { | ||||
|     --bg-primary: #0d1117; | ||||
|     --bg-secondary: #161b22; | ||||
|     --bg-tertiary: #1c2128; | ||||
|     --text-primary: #e6edf3; | ||||
|     --text-secondary: #8b949e; | ||||
|     --border-color: #30363d; | ||||
|     --border-light: #21262d; | ||||
|     --link-color: #58a6ff; | ||||
|     --accent-color: #1f6feb; | ||||
|     --code-bg: rgba(110, 118, 129, 0.15); | ||||
|     --scrollbar-track: #161b22; | ||||
|     --scrollbar-thumb: #484f58; | ||||
|     --scrollbar-thumb-hover: #6e7681; | ||||
| } | ||||
|  | ||||
| /* Global styles */ | ||||
| html, body { | ||||
|     height: 100%; | ||||
|     margin: 0; | ||||
|     padding: 0; | ||||
|     overflow: hidden; | ||||
| } | ||||
|  | ||||
| body { | ||||
|     display: flex; | ||||
|     flex-direction: column; | ||||
|     background-color: var(--bg-primary); | ||||
|     color: var(--text-primary); | ||||
|     transition: background-color 0.3s ease, color 0.3s ease; | ||||
| } | ||||
|  | ||||
| .container-fluid { | ||||
|     flex: 1; | ||||
|     padding: 0; | ||||
|     overflow: hidden; | ||||
| } | ||||
|  | ||||
| .row { | ||||
|     margin: 0; | ||||
| } | ||||
|  | ||||
| /* Navbar */ | ||||
| .navbar { | ||||
|     z-index: 1000; | ||||
|     background-color: var(--bg-secondary) !important; | ||||
|     border-bottom: 1px solid var(--border-color); | ||||
|     transition: background-color 0.3s ease; | ||||
| } | ||||
|  | ||||
| .navbar-brand { | ||||
|     color: var(--text-primary) !important; | ||||
| } | ||||
|  | ||||
| .btn { | ||||
|     transition: all 0.2s ease; | ||||
| } | ||||
|  | ||||
| /* Dark mode toggle button */ | ||||
| .dark-mode-toggle { | ||||
|     background: none; | ||||
|     border: 1px solid var(--border-color); | ||||
|     color: var(--text-primary); | ||||
|     padding: 0.375rem 0.75rem; | ||||
|     border-radius: 0.25rem; | ||||
|     cursor: pointer; | ||||
|     font-size: 1.2rem; | ||||
|     transition: all 0.2s ease; | ||||
| } | ||||
|  | ||||
| .dark-mode-toggle:hover { | ||||
|     background-color: var(--bg-tertiary); | ||||
| } | ||||
|  | ||||
| /* Sidebar */ | ||||
| .sidebar { | ||||
|     height: calc(100vh - 56px); | ||||
|     overflow-y: auto; | ||||
|     padding: 0; | ||||
|     background-color: var(--bg-secondary); | ||||
|     border-right: 1px solid var(--border-color); | ||||
|     transition: background-color 0.3s ease; | ||||
| } | ||||
|  | ||||
| .sidebar h6 { | ||||
|     color: var(--text-primary); | ||||
|     background-color: var(--bg-tertiary); | ||||
|     transition: background-color 0.3s ease; | ||||
| } | ||||
|  | ||||
| .list-group-item { | ||||
|     cursor: pointer; | ||||
|     border-radius: 0; | ||||
|     border-left: 0; | ||||
|     border-right: 0; | ||||
|     background-color: var(--bg-secondary); | ||||
|     color: var(--text-primary); | ||||
|     border-color: var(--border-color); | ||||
|     transition: background-color 0.2s ease, color 0.2s ease; | ||||
| } | ||||
|  | ||||
| .list-group-item:first-child { | ||||
|     border-top: 0; | ||||
| } | ||||
|  | ||||
| .list-group-item.active { | ||||
|     background-color: var(--accent-color); | ||||
|     border-color: var(--accent-color); | ||||
|     color: #ffffff; | ||||
| } | ||||
|  | ||||
| .list-group-item:hover:not(.active) { | ||||
|     background-color: var(--bg-tertiary); | ||||
| } | ||||
|  | ||||
| /* Editor pane */ | ||||
| .editor-pane { | ||||
|     height: calc(100vh - 56px); | ||||
|     display: flex; | ||||
|     flex-direction: column; | ||||
|     padding: 0; | ||||
|     border-right: 1px solid var(--border-color); | ||||
|     background-color: var(--bg-primary); | ||||
|     transition: background-color 0.3s ease; | ||||
| } | ||||
|  | ||||
| .editor-pane input[type="text"] { | ||||
|     background-color: var(--bg-primary); | ||||
|     color: var(--text-primary); | ||||
|     border-color: var(--border-color); | ||||
|     transition: background-color 0.3s ease, color 0.3s ease; | ||||
| } | ||||
|  | ||||
| .editor-pane input[type="text"]:focus { | ||||
|     background-color: var(--bg-primary); | ||||
|     color: var(--text-primary); | ||||
|     border-color: var(--accent-color); | ||||
| } | ||||
|  | ||||
| #editorContainer { | ||||
|     flex: 1; | ||||
|     overflow: hidden; | ||||
| } | ||||
|  | ||||
| .CodeMirror { | ||||
|     height: 100%; | ||||
|     font-family: 'Consolas', 'Monaco', 'Courier New', monospace; | ||||
|     font-size: 14px; | ||||
|     line-height: 1.6; | ||||
|     transition: all 0.2s ease; | ||||
| } | ||||
|  | ||||
| .CodeMirror.drag-over { | ||||
|     border: 3px dashed var(--accent-color); | ||||
|     background-color: rgba(13, 110, 253, 0.05); | ||||
| } | ||||
|  | ||||
| /* Dark mode CodeMirror adjustments */ | ||||
| body.dark-mode .CodeMirror { | ||||
|     background-color: #1c2128; | ||||
|     color: #e6edf3; | ||||
| } | ||||
|  | ||||
| body.dark-mode .CodeMirror-gutters { | ||||
|     background-color: #161b22; | ||||
|     border-right: 1px solid #30363d; | ||||
| } | ||||
|  | ||||
| body.dark-mode .CodeMirror-linenumber { | ||||
|     color: #8b949e; | ||||
| } | ||||
|  | ||||
| /* Preview pane */ | ||||
| .preview-pane { | ||||
|     height: calc(100vh - 56px); | ||||
|     overflow-y: auto; | ||||
|     background-color: var(--bg-primary); | ||||
|     padding: 0; | ||||
|     transition: background-color 0.3s ease; | ||||
| } | ||||
|  | ||||
| #preview { | ||||
|     padding: 20px; | ||||
|     max-width: 100%; | ||||
|     word-wrap: break-word; | ||||
|     color: var(--text-primary); | ||||
|     transition: color 0.3s ease; | ||||
| } | ||||
|  | ||||
| /* Markdown preview styles */ | ||||
| #preview h1, #preview h2, #preview h3, #preview h4, #preview h5, #preview h6 { | ||||
|     margin-top: 24px; | ||||
|     margin-bottom: 16px; | ||||
|     font-weight: 600; | ||||
|     line-height: 1.25; | ||||
|     color: var(--text-primary); | ||||
| } | ||||
|  | ||||
| #preview h1 { | ||||
|     font-size: 2em; | ||||
|     border-bottom: 1px solid var(--border-light); | ||||
|     padding-bottom: 0.3em; | ||||
| } | ||||
|  | ||||
| #preview h2 { | ||||
|     font-size: 1.5em; | ||||
|     border-bottom: 1px solid var(--border-light); | ||||
|     padding-bottom: 0.3em; | ||||
| } | ||||
|  | ||||
| #preview h3 { | ||||
|     font-size: 1.25em; | ||||
| } | ||||
|  | ||||
| #preview p { | ||||
|     margin-bottom: 16px; | ||||
|     line-height: 1.6; | ||||
|     color: var(--text-primary); | ||||
| } | ||||
|  | ||||
| #preview code { | ||||
|     background-color: var(--code-bg); | ||||
|     border-radius: 3px; | ||||
|     font-size: 85%; | ||||
|     margin: 0; | ||||
|     padding: 0.2em 0.4em; | ||||
|     font-family: 'Consolas', 'Monaco', 'Courier New', monospace; | ||||
|     color: var(--text-primary); | ||||
| } | ||||
|  | ||||
| #preview pre { | ||||
|     background-color: #2d2d2d !important; | ||||
|     border-radius: 6px; | ||||
|     padding: 16px; | ||||
|     overflow: auto; | ||||
|     line-height: 1.45; | ||||
|     margin-bottom: 16px; | ||||
| } | ||||
|  | ||||
| #preview pre code { | ||||
|     background-color: transparent !important; | ||||
|     border: 0; | ||||
|     display: block; | ||||
|     line-height: inherit; | ||||
|     margin: 0; | ||||
|     overflow: visible; | ||||
|     padding: 0 !important; | ||||
|     word-wrap: normal; | ||||
|     font-family: 'Consolas', 'Monaco', 'Courier New', monospace; | ||||
|     font-size: 14px; | ||||
| } | ||||
|  | ||||
| /* Prism theme override for better visibility */ | ||||
| #preview pre[class*="language-"] { | ||||
|     background-color: #2d2d2d !important; | ||||
|     margin: 0; | ||||
| } | ||||
|  | ||||
| #preview code[class*="language-"] { | ||||
|     background-color: transparent !important; | ||||
| } | ||||
|  | ||||
| #preview blockquote { | ||||
|     border-left: 4px solid var(--border-light); | ||||
|     color: var(--text-secondary); | ||||
|     padding-left: 16px; | ||||
|     margin-left: 0; | ||||
|     margin-bottom: 16px; | ||||
| } | ||||
|  | ||||
| #preview ul, #preview ol { | ||||
|     margin-bottom: 16px; | ||||
|     padding-left: 2em; | ||||
| } | ||||
|  | ||||
| #preview li { | ||||
|     margin-bottom: 4px; | ||||
| } | ||||
|  | ||||
| #preview table { | ||||
|     border-collapse: collapse; | ||||
|     width: 100%; | ||||
|     margin-bottom: 16px; | ||||
| } | ||||
|  | ||||
| #preview table th, | ||||
| #preview table td { | ||||
|     border: 1px solid var(--border-light); | ||||
|     padding: 6px 13px; | ||||
| } | ||||
|  | ||||
| #preview table th { | ||||
|     background-color: var(--bg-tertiary); | ||||
|     font-weight: 600; | ||||
| } | ||||
|  | ||||
| #preview table tr:nth-child(2n) { | ||||
|     background-color: var(--bg-tertiary); | ||||
| } | ||||
|  | ||||
| #preview img { | ||||
|     max-width: 100%; | ||||
|     height: auto; | ||||
|     margin: 16px 0; | ||||
| } | ||||
|  | ||||
| #preview hr { | ||||
|     height: 4px; | ||||
|     padding: 0; | ||||
|     margin: 24px 0; | ||||
|     background-color: var(--border-light); | ||||
|     border: 0; | ||||
| } | ||||
|  | ||||
| #preview a { | ||||
|     color: var(--link-color); | ||||
|     text-decoration: none; | ||||
| } | ||||
|  | ||||
| #preview a:hover { | ||||
|     text-decoration: underline; | ||||
| } | ||||
|  | ||||
| /* Mermaid diagrams */ | ||||
| .mermaid { | ||||
|     text-align: center; | ||||
|     margin: 20px 0; | ||||
| } | ||||
|  | ||||
| /* Dark mode mermaid adjustments */ | ||||
| body.dark-mode .mermaid { | ||||
|     filter: invert(0.9) hue-rotate(180deg); | ||||
| } | ||||
|  | ||||
| body.dark-mode .mermaid svg { | ||||
|     background-color: transparent !important; | ||||
| } | ||||
|  | ||||
| /* Scrollbar styling */ | ||||
| ::-webkit-scrollbar { | ||||
|     width: 10px; | ||||
|     height: 10px; | ||||
| } | ||||
|  | ||||
| ::-webkit-scrollbar-track { | ||||
|     background: var(--scrollbar-track); | ||||
| } | ||||
|  | ||||
| ::-webkit-scrollbar-thumb { | ||||
|     background: var(--scrollbar-thumb); | ||||
|     border-radius: 5px; | ||||
| } | ||||
|  | ||||
| ::-webkit-scrollbar-thumb:hover { | ||||
|     background: var(--scrollbar-thumb-hover); | ||||
| } | ||||
|  | ||||
| /* Responsive adjustments */ | ||||
| @media (max-width: 768px) { | ||||
|     .sidebar { | ||||
|         display: none; | ||||
|     } | ||||
|      | ||||
|     .editor-pane, | ||||
|     .preview-pane { | ||||
|         height: 50vh; | ||||
|     } | ||||
| } | ||||
|  | ||||
| /* File list item styling */ | ||||
| .file-item { | ||||
|     display: flex; | ||||
|     justify-content: space-between; | ||||
|     align-items: center; | ||||
| } | ||||
|  | ||||
| .file-name { | ||||
|     flex: 1; | ||||
|     overflow: hidden; | ||||
|     text-overflow: ellipsis; | ||||
|     white-space: nowrap; | ||||
| } | ||||
|  | ||||
| .file-size { | ||||
|     font-size: 0.75rem; | ||||
|     color: var(--text-secondary); | ||||
|     margin-left: 8px; | ||||
| } | ||||
|  | ||||
| /* Toast notifications dark mode */ | ||||
| body.dark-mode .toast { | ||||
|     background-color: var(--bg-secondary); | ||||
|     color: var(--text-primary); | ||||
|     border: 1px solid var(--border-color); | ||||
| } | ||||
|  | ||||
| body.dark-mode .toast-header { | ||||
|     background-color: var(--bg-tertiary); | ||||
|     color: var(--text-primary); | ||||
|     border-bottom: 1px solid var(--border-color); | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| /* File Tree Styles */ | ||||
| .file-tree { | ||||
|     user-select: none; | ||||
|     font-size: 14px; | ||||
| } | ||||
|  | ||||
| .tree-node { | ||||
|     padding: 4px 8px; | ||||
|     cursor: pointer; | ||||
|     border-radius: 4px; | ||||
|     transition: background-color 0.15s ease; | ||||
|     display: flex; | ||||
|     align-items: center; | ||||
|     gap: 6px; | ||||
| } | ||||
|  | ||||
| .tree-node:hover { | ||||
|     background-color: var(--bg-tertiary); | ||||
| } | ||||
|  | ||||
| .tree-node.active { | ||||
|     background-color: var(--accent-color); | ||||
|     color: white; | ||||
| } | ||||
|  | ||||
| .tree-node.drag-over { | ||||
|     background-color: rgba(13, 110, 253, 0.2); | ||||
|     border: 2px dashed var(--accent-color); | ||||
| } | ||||
|  | ||||
| .tree-node-content { | ||||
|     display: flex; | ||||
|     align-items: center; | ||||
|     gap: 6px; | ||||
|     flex: 1; | ||||
| } | ||||
|  | ||||
| .tree-node-icon { | ||||
|     font-size: 16px; | ||||
|     width: 16px; | ||||
|     text-align: center; | ||||
| } | ||||
|  | ||||
| .tree-node-name { | ||||
|     flex: 1; | ||||
|     overflow: hidden; | ||||
|     text-overflow: ellipsis; | ||||
|     white-space: nowrap; | ||||
| } | ||||
|  | ||||
| .tree-node-toggle { | ||||
|     width: 16px; | ||||
|     height: 16px; | ||||
|     display: flex; | ||||
|     align-items: center; | ||||
|     justify-content: center; | ||||
|     font-size: 12px; | ||||
|     transition: transform 0.2s ease; | ||||
| } | ||||
|  | ||||
| .tree-node-toggle.expanded { | ||||
|     transform: rotate(90deg); | ||||
| } | ||||
|  | ||||
| .tree-children { | ||||
|     margin-left: 16px; | ||||
|     border-left: 1px solid var(--border-color); | ||||
|     padding-left: 8px; | ||||
| } | ||||
|  | ||||
| .tree-children.collapsed { | ||||
|     display: none; | ||||
| } | ||||
|  | ||||
| /* Context Menu */ | ||||
| .context-menu { | ||||
|     position: fixed; | ||||
|     background-color: var(--bg-primary); | ||||
|     border: 1px solid var(--border-color); | ||||
|     border-radius: 6px; | ||||
|     box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); | ||||
|     z-index: 10000; | ||||
|     min-width: 180px; | ||||
|     max-width: 200px; | ||||
|     width: auto; | ||||
|     padding: 4px 0; | ||||
| } | ||||
|  | ||||
| body.dark-mode .context-menu { | ||||
|     box-shadow: 0 4px 12px rgba(0, 0, 0, 0.5); | ||||
| } | ||||
|  | ||||
| .context-menu-item { | ||||
|     padding: 8px 16px; | ||||
|     cursor: pointer; | ||||
|     display: flex; | ||||
|     align-items: center; | ||||
|     gap: 10px; | ||||
|     color: var(--text-primary); | ||||
|     transition: background-color 0.15s ease; | ||||
| } | ||||
|  | ||||
| .context-menu-item:hover { | ||||
|     background-color: var(--bg-tertiary); | ||||
| } | ||||
|  | ||||
| .context-menu-item i { | ||||
|     width: 16px; | ||||
|     text-align: center; | ||||
| } | ||||
|  | ||||
| .context-menu-divider { | ||||
|     height: 1px; | ||||
|     background-color: var(--border-color); | ||||
|     margin: 4px 0; | ||||
| } | ||||
|  | ||||
| /* Drag and Drop */ | ||||
| .dragging { | ||||
|     opacity: 0.5; | ||||
| } | ||||
|  | ||||
| .drop-indicator { | ||||
|     height: 2px; | ||||
|     background-color: var(--accent-color); | ||||
|     margin: 2px 0; | ||||
| } | ||||
|  | ||||
| /* Modal for rename/new folder */ | ||||
| .modal-backdrop.show { | ||||
|     opacity: 0.5; | ||||
| } | ||||
|  | ||||
| /* File size badge */ | ||||
| .file-size-badge { | ||||
|     font-size: 10px; | ||||
|     color: var(--text-secondary); | ||||
|     margin-left: auto; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| /* Dark mode tree and sidebar fixes */ | ||||
| body.dark-mode .sidebar { | ||||
|     background-color: var(--bg-secondary); | ||||
| } | ||||
|  | ||||
| body.dark-mode .tree-node { | ||||
|     color: var(--text-primary); | ||||
| } | ||||
|  | ||||
| body.dark-mode .tree-node:hover { | ||||
|     background-color: var(--bg-tertiary); | ||||
| } | ||||
|  | ||||
| body.dark-mode .tree-node-name { | ||||
|     color: var(--text-primary); | ||||
| } | ||||
|  | ||||
| body.dark-mode .tree-node-size { | ||||
|     color: var(--text-secondary); | ||||
| } | ||||
|  | ||||
| body.dark-mode .sidebar h6 { | ||||
|     color: var(--text-primary); | ||||
|     background-color: var(--bg-tertiary); | ||||
| } | ||||
|  | ||||
| body.dark-mode .tree-children { | ||||
|     border-left-color: var(--border-color); | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user