/* * Mingling Dev Docs — Dark theme (Minimal / technical) * Dark gray-blue, sans-serif body, crisp monospace code */ * { -webkit-font-smoothing: antialiased; -webkit-overflow-scrolling: touch; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -webkit-text-size-adjust: none; -webkit-touch-callout: none; box-sizing: border-box; } body:not(.ready) { overflow: hidden; } body:not(.ready) [data-cloak], body:not(.ready) .app-nav, body:not(.ready) > nav { display: none; } div#app { font-size: 30px; font-weight: lighter; margin: 40vh auto; text-align: center; } div#app:empty::before { content: "Loading..."; } img.emoji { height: 1.2em; vertical-align: middle; } span.emoji { font-family: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 1.2em; vertical-align: middle; } /* ── Progress bar ── */ .progress { background-color: #58a6ff; height: 2px; left: 0; position: fixed; right: 0; top: 0; transition: width 0.2s, opacity 0.4s; width: 0%; z-index: 999999; } /* ── Search ── */ .search a:hover { color: #58a6ff; } .search .search-keyword { color: #58a6ff; font-style: normal; font-weight: 600; } /* ── Base ── */ html, body { height: 100%; } body { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; background-color: #0d1117; color: #e6edf3; font-family: system-ui, -apple-system, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif; font-size: 15px; line-height: 1.7; letter-spacing: 0; margin: 0; overflow-x: hidden; } img { max-width: 100%; } a[disabled] { cursor: not-allowed; opacity: 0.6; } kbd { border: solid 1px #30363d; border-radius: 4px; display: inline-block; font-size: 12px !important; line-height: 14px; margin-bottom: 3px; padding: 3px 6px; vertical-align: middle; } /* ── Nav bar (top) ── */ .app-nav { font-family: system-ui, -apple-system, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif; margin: 0 0 0 auto; position: fixed; right: 30px; top: 10px; z-index: 10; } .app-nav a { color: #8b949e; font-size: 14px; padding: 6px 14px; text-decoration: none; transition: color 0.15s; } .app-nav a:hover { color: #58a6ff; } .app-nav a.active { color: #58a6ff; } /* ── Top nav bar (shared class with dev-doc.html) ── */ .dev-nav a { color: #8b949e; } .dev-nav a:hover { color: #58a6ff; } /* ── GitHub corner ── */ .github-corner { position: fixed; right: 0; top: 0; z-index: 999; } .github-corner svg { fill: #e6edf3; height: 60px; width: 60px; } /* ── Main layout ── */ main { display: block; height: 100%; margin-left: 300px; overflow-y: auto; position: relative; -webkit-overflow-scrolling: touch; } /* ── Anchor links ── */ .anchor { display: block; cursor: pointer; text-decoration: none; transition: all 0.15s; } .anchor span { color: #e6edf3; } .anchor:hover { text-decoration: underline; } /* ── Sidebar ── */ .sidebar { background: #161b22; border-right: 1px solid #30363d; bottom: 0; left: 0; overflow-y: auto; position: fixed; top: 0; width: 300px; z-index: 1; -webkit-overflow-scrolling: touch; } .sidebar > h1 { border-bottom: 1px solid #30363d; font-size: 18px; font-weight: 600; margin: 0; padding: 16px 20px; line-height: 1.4; } .sidebar > h1 a { color: #e6edf3; text-decoration: none; } .sidebar > h1 a:hover { color: #58a6ff; } .sidebar .sidebar-nav { padding: 12px 0 40px; } .sidebar li.collapse .app-sub-sidebar { display: none; } .sidebar ul { list-style: none; margin: 0; padding: 0; } .sidebar li > p { font-weight: 600; margin: 0; } .sidebar ul, .sidebar ul li { list-style: none; } .sidebar ul li a { border-right: 2px solid transparent; color: #e6edf3; display: block; font-size: 14px; line-height: 1.6; padding: 6px 20px; text-decoration: none; transition: all 0.1s; } .sidebar ul li a:hover { color: #58a6ff; background: rgba(88, 166, 255, 0.08); } .sidebar ul li ul { padding-left: 16px; } .sidebar ul li.active > a { border-right-color: #58a6ff; color: #58a6ff; font-weight: 600; background: rgba(88, 166, 255, 0.12); } .sidebar::-webkit-scrollbar { width: 4px; } .sidebar::-webkit-scrollbar-thumb { background: transparent; border-radius: 2px; } .sidebar:hover::-webkit-scrollbar-thumb { background: #30363d; } .sidebar:hover::-webkit-scrollbar-track { background: transparent; } /* ── Sidebar toggle ── */ .sidebar-toggle { background: transparent; border: none; bottom: 0; cursor: pointer; left: 0; outline: none; padding: 10px; position: absolute; text-align: center; transition: opacity 0.3s; width: 284px; z-index: 10; display: none; } .sidebar-toggle:hover .sidebar-toggle-button { opacity: 0.6; } .sidebar-toggle span { background: #58a6ff; border-radius: 1px; display: block; height: 2px; margin-bottom: 4px; width: 16px; } body.sticky .sidebar, body.sticky .sidebar-toggle { position: fixed; } /* ── Content area ── */ .content { display: block; padding-bottom: 60px; padding-top: 24px; } .markdown-section { margin: 0 auto; max-width: 880px; padding: 24px 40px 40px; position: relative; } .markdown-section > * { box-sizing: border-box; } .markdown-section > :first-child { margin-top: 0 !important; } .markdown-section hr { border: none; border-top: 1px solid #30363d; margin: 32px 0; } .markdown-section table { border-collapse: collapse; border-spacing: 0; display: block; margin: 24px 0; overflow: auto; width: 100%; } .markdown-section th { background: #161b22; border: 1px solid #30363d; font-weight: 600; padding: 8px 12px; text-align: left; } .markdown-section td { border: 1px solid #30363d; padding: 8px 12px; } .markdown-section tr:nth-child(2n) { background: #161b22; } /* ── Headings ── */ .markdown-section h1, .markdown-section h2, .markdown-section h3, .markdown-section h4, .markdown-section strong { color: #f0f6fc; font-weight: 600; } .markdown-section h1 { border-bottom: 1px solid #30363d; font-size: 28px; margin: 0 0 20px; padding-bottom: 8px; } .markdown-section h2 { border-bottom: 1px solid #30363d; font-size: 22px; margin: 28px 0 16px; padding-bottom: 6px; } .markdown-section h3 { font-size: 18px; margin: 24px 0 12px; } .markdown-section h4 { font-size: 16px; margin: 20px 0 10px; } .markdown-section h5 { font-size: 15px; margin: 16px 0 8px; } .markdown-section h6 { color: #8b949e; font-size: 14px; margin: 14px 0 8px; } .markdown-section a { color: #58a6ff; text-decoration: none; } .markdown-section a:hover { text-decoration: underline; } /* ── Inline code ── */ .markdown-section code { background: rgba(240, 246, 252, 0.08); border-radius: 4px; font-family: "JetBrains Mono", "Fira Code", "Cascadia Code", "SF Mono", "Fira Mono", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace; font-size: 13px; margin: 0; padding: 2px 6px; word-break: break-word; } /* ── Code blocks ── */ .markdown-section pre { background: #161b22; border: 1px solid #30363d; border-radius: 6px; font-family: "JetBrains Mono", "Fira Code", "Cascadia Code", "SF Mono", "Fira Mono", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace; font-size: 13px; line-height: 1.6; margin: 16px 0; overflow: auto; padding: 16px; position: relative; word-wrap: normal; } .markdown-section pre > code { background: transparent; border: none; border-radius: 0; font-size: 13px; margin: 0; padding: 0; white-space: pre; word-break: normal; } /* ── Blockquote ── */ .markdown-section blockquote { border-left: 4px solid #30363d; color: #8b949e; margin: 16px 0; padding: 0 16px; } /* ── Tip / warn callouts ── */ .markdown-section p.tip { background: rgba(88, 166, 255, 0.1); border-left: 4px solid #58a6ff; border-radius: 4px; padding: 12px 16px; } .markdown-section p.tip:before { color: #58a6ff; content: "💡"; font-weight: 600; margin-right: 6px; } .markdown-section p.tip code { background: rgba(88, 166, 255, 0.15); } .markdown-section p.warn { background: rgba(210, 153, 34, 0.15); border-left: 4px solid #d29922; border-radius: 4px; padding: 12px 16px; } .markdown-section ul.task-list > li { list-style: none; } /* ── Prism token overrides (dark) ── */ .token.cdata, .token.comment, .token.doctype, .token.prolog { color: #8b949e; } .token.namespace { opacity: 0.7; } .token.boolean, .token.number { color: #79c0ff; } .token.punctuation { color: #e6edf3; } .token.property { color: #79c0ff; } .token.tag { color: #7ee787; } .token.string { color: #a5d6ff; } .token.selector { color: #d2a8ff; } .token.attr-name { color: #79c0ff; } .language-css .token.string, .style .token.string, .token.entity, .token.url { color: #a5d6ff; } .token.attr-value, .token.control, .token.directive, .token.unit { color: #a5d6ff; } .token.function { color: #d2a8ff; } .token.keyword { color: #ff7b72; } .token.atrule, .token.regex, .token.statement { color: #a5d6ff; } .token.placeholder, .token.variable { color: #ffa657; } .token.deleted { text-decoration: line-through; } .token.inserted { text-decoration: none; } .token.italic { font-style: italic; } .token.bold, .token.important { font-weight: 700; } .token.important { color: #ff7b72; } .token.entity { cursor: help; } code .token { -moz-osx-font-smoothing: initial; -webkit-font-smoothing: initial; min-height: 24px; } /* ── Search panel ── */ .search { border-bottom: 1px solid #30363d; padding: 12px 16px 0; } .search .input-wrap { position: relative; } .search .input-wrap input[type="search"] { background: #0d1117; border: 1px solid #30363d; border-radius: 6px; color: #e6edf3; font-family: system-ui, -apple-system, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif; font-size: 14px; outline: none; padding: 6px 32px 6px 12px; width: 100%; } .search .input-wrap input[type="search"]::placeholder { color: #8b949e; } .search .input-wrap input[type="search"]:focus { border-color: #58a6ff; box-shadow: 0 0 0 3px rgba(88, 166, 255, 0.15); } .search .input-wrap .clear-button { background: transparent; border: none; color: #8b949e; cursor: pointer; font-size: 18px; line-height: 1; padding: 0 8px; position: absolute; right: 4px; top: 50%; transform: translateY(-50%); } .search .input-wrap .clear-button:hover { color: #e6edf3; } .search .results-panel { padding: 8px 0; } .search .results-panel a { color: #e6edf3; display: block; font-size: 14px; padding: 4px 16px; text-decoration: none; } .search .results-panel a:hover { color: #58a6ff; } /* ── App name in sidebar header ── */ .app-name-link { color: #e6edf3; font-size: 18px; font-weight: 600; text-decoration: none; } /* ── Iframe ── */ .markdown-section iframe { border: 1px solid #30363d; border-radius: 6px; } /* ── Prev/Next nav ── */ .page-nav { border-top: 1px solid #30363d; display: flex; margin-top: 40px; padding-top: 24px; } .page-nav a { border: 1px solid #30363d; border-radius: 6px; color: #e6edf3; display: inline-flex; flex: 1 1 50%; font-size: 14px; gap: 8px; max-width: 50%; padding: 12px 20px; text-decoration: none; transition: border-color 0.15s; } .page-nav a:hover { border-color: #58a6ff; } .page-nav .nav-prev { justify-content: flex-start; margin-right: 8px; } .page-nav .nav-next { justify-content: flex-end; margin-left: auto; } .page-nav a:only-child { max-width: 50%; } .page-nav .nav-label { font-size: 12px; opacity: 0.6; } .page-nav .nav-title { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } /* ── Responsive ── */ @media screen and (max-width: 768px) { .github-corner, .sidebar-toggle, .sidebar { position: fixed; } .app-nav { margin-top: 0; } .app-nav li ul { background: #0d1117; border: 1px solid #30363d; } main { margin-left: 0; overflow-y: auto; } .sidebar { border-right: 1px solid #30363d; left: -300px; transition: left 0.25s ease; } .content { padding-top: 20px; } .app-nav, .github-corner { opacity: 1; transition: opacity 0.25s ease; } .sidebar-toggle { background: #0d1117; border: 1px solid #30363d; border-radius: 0 4px 4px 0; display: flex; flex-direction: column; left: 0; padding: 8px; position: fixed; top: 10px; width: auto; z-index: 20; } body.close .sidebar { left: 0; } body.close .sidebar-toggle { left: 300px; } body.close .content { opacity: 0.3; pointer-events: none; } body.close .app-nav, body.close .github-corner { opacity: 0; pointer-events: none; } } @media print { .github-corner, .sidebar-toggle, .sidebar, .app-nav { display: none; } main { margin-left: 0; } }