|
1 | 1 | code { |
2 | | - background-color: #eee; |
3 | | - padding: 2px 4px; |
| 2 | + background-color: var(--code-bg, #eee); |
| 3 | + padding: 2px 6px; |
4 | 4 | font-size: 0.9em; |
5 | | - color: #800; |
| 5 | + color: var(--link-color, #800); |
6 | 6 | border-radius: 4px; |
| 7 | + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; |
| 8 | + transition: background-color 0.3s ease, color 0.3s ease; |
7 | 9 | } |
8 | 10 |
|
9 | 11 | pre code { |
10 | 12 | background-color: transparent; |
11 | 13 | padding: 0; |
12 | 14 | font-size: 1em; |
13 | | - color: #222; |
| 15 | + color: var(--code-text, #222); |
14 | 16 | } |
15 | 17 |
|
16 | 18 | pre { |
17 | 19 | display: block; |
18 | | - padding: 9.5px; |
19 | | - margin: 10px 0 10px; |
| 20 | + padding: 12px 16px; |
| 21 | + margin: 16px 0; |
20 | 22 | font-size: 13px; |
21 | | - line-height: 1.42857143; |
22 | | - color: #333; |
23 | | - word-break: break-all; |
24 | | - word-wrap: break-word; |
25 | | - background-color: #f5f5f5; |
26 | | - border: 1px solid #ccc; |
27 | | - border-radius: 4px; |
28 | | - font-family: Menlo,Monaco,Consolas,"Courier New",monospace; |
| 23 | + line-height: 1.6; |
| 24 | + color: var(--code-text, #333); |
| 25 | + word-break: break-word; |
| 26 | + overflow-wrap: break-word; |
| 27 | + overflow-x: auto; |
| 28 | + background-color: var(--code-bg, #f5f5f5); |
| 29 | + border: 1px solid var(--border-color, #ccc); |
| 30 | + border-radius: 6px; |
| 31 | + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; |
| 32 | + box-shadow: 0 1px 3px var(--shadow, rgba(0, 0, 0, 0.1)); |
| 33 | + transition: background-color 0.3s ease, border-color 0.3s ease, color 0.3s ease; |
| 34 | +} |
| 35 | + |
| 36 | +/* Enable absolute positioning for copy button and improve hover effect */ |
| 37 | +pre { |
| 38 | + position: relative; |
| 39 | +} |
| 40 | + |
| 41 | +pre:hover { |
| 42 | + box-shadow: 0 2px 6px var(--shadow, rgba(0, 0, 0, 0.15)); |
29 | 43 | } |
30 | 44 |
|
31 | 45 | /* |
|
38 | 52 | display: block; |
39 | 53 | overflow-x: auto; |
40 | 54 | padding: 0.5em; |
41 | | - color: #333; |
42 | | - background: #f8f8f8; |
| 55 | + color: var(--code-text, #333); |
| 56 | + background: var(--code-bg, #f8f8f8); |
43 | 57 | -webkit-text-size-adjust: none; |
| 58 | + transition: background-color 0.3s ease, color 0.3s ease; |
44 | 59 | } |
45 | 60 |
|
46 | 61 | .hljs-comment, |
|
152 | 167 | .hljs-chunk { |
153 | 168 | color: #aaa; |
154 | 169 | } |
| 170 | + |
| 171 | +/* Dark mode support for syntax highlighting */ |
| 172 | +.code-theme-dark code { |
| 173 | + background-color: var(--code-bg, #2d2d2d); |
| 174 | + color: var(--link-color, #4a9eff); |
| 175 | +} |
| 176 | + |
| 177 | +.code-theme-dark pre { |
| 178 | + background-color: var(--code-bg, #2d2d2d); |
| 179 | + border-color: var(--border-color, #444); |
| 180 | + color: var(--code-text, #e0e0e0); |
| 181 | +} |
| 182 | + |
| 183 | +.code-theme-dark .hljs { |
| 184 | + background: var(--code-bg, #2d2d2d); |
| 185 | + color: var(--code-text, #e0e0e0); |
| 186 | +} |
| 187 | + |
| 188 | +.code-theme-dark .hljs-comment, |
| 189 | +.code-theme-dark .diff .hljs-header, |
| 190 | +.code-theme-dark .hljs-javadoc { |
| 191 | + color: #6a9955; |
| 192 | +} |
| 193 | + |
| 194 | +.code-theme-dark .hljs-keyword, |
| 195 | +.code-theme-dark .css .rule .hljs-keyword, |
| 196 | +.code-theme-dark .hljs-winutils, |
| 197 | +.code-theme-dark .nginx .hljs-title, |
| 198 | +.code-theme-dark .hljs-subst, |
| 199 | +.code-theme-dark .hljs-request, |
| 200 | +.code-theme-dark .hljs-status { |
| 201 | + color: #569cd6; |
| 202 | + font-weight: bold; |
| 203 | +} |
| 204 | + |
| 205 | +.code-theme-dark .hljs-number, |
| 206 | +.code-theme-dark .hljs-hexcolor, |
| 207 | +.code-theme-dark .ruby .hljs-constant { |
| 208 | + color: #b5cea8; |
| 209 | +} |
| 210 | + |
| 211 | +.code-theme-dark .hljs-string, |
| 212 | +.code-theme-dark .hljs-tag .hljs-value, |
| 213 | +.code-theme-dark .hljs-phpdoc, |
| 214 | +.code-theme-dark .hljs-dartdoc, |
| 215 | +.code-theme-dark .tex .hljs-formula { |
| 216 | + color: #ce9178; |
| 217 | +} |
| 218 | + |
| 219 | +.code-theme-dark .hljs-title, |
| 220 | +.code-theme-dark .hljs-id, |
| 221 | +.code-theme-dark .scss .hljs-preprocessor { |
| 222 | + color: #d7ba7d; |
| 223 | + font-weight: bold; |
| 224 | +} |
| 225 | + |
| 226 | +.code-theme-dark .hljs-class .hljs-title, |
| 227 | +.code-theme-dark .hljs-type, |
| 228 | +.code-theme-dark .vhdl .hljs-literal, |
| 229 | +.code-theme-dark .tex .hljs-command { |
| 230 | + color: #4ec9b0; |
| 231 | + font-weight: bold; |
| 232 | +} |
| 233 | + |
| 234 | +.code-theme-dark .hljs-tag, |
| 235 | +.code-theme-dark .hljs-tag .hljs-title, |
| 236 | +.code-theme-dark .hljs-rules .hljs-property, |
| 237 | +.code-theme-dark .django .hljs-tag .hljs-keyword { |
| 238 | + color: #569cd6; |
| 239 | + font-weight: normal; |
| 240 | +} |
| 241 | + |
| 242 | +.code-theme-dark .hljs-attribute, |
| 243 | +.code-theme-dark .hljs-variable, |
| 244 | +.code-theme-dark .lisp .hljs-body { |
| 245 | + color: #9cdcfe; |
| 246 | +} |
| 247 | + |
| 248 | +.code-theme-dark .hljs-regexp { |
| 249 | + color: #d16969; |
| 250 | +} |
| 251 | + |
| 252 | +.code-theme-dark .hljs-symbol, |
| 253 | +.code-theme-dark .ruby .hljs-symbol .hljs-string, |
| 254 | +.code-theme-dark .lisp .hljs-keyword, |
| 255 | +.code-theme-dark .clojure .hljs-keyword, |
| 256 | +.code-theme-dark .scheme .hljs-keyword, |
| 257 | +.code-theme-dark .tex .hljs-special, |
| 258 | +.code-theme-dark .hljs-prompt { |
| 259 | + color: #c586c0; |
| 260 | +} |
| 261 | + |
| 262 | +.code-theme-dark .hljs-built_in { |
| 263 | + color: #4fc1ff; |
| 264 | +} |
| 265 | + |
| 266 | +.code-theme-dark .hljs-preprocessor, |
| 267 | +.code-theme-dark .hljs-pragma, |
| 268 | +.code-theme-dark .hljs-pi, |
| 269 | +.code-theme-dark .hljs-doctype, |
| 270 | +.code-theme-dark .hljs-shebang, |
| 271 | +.code-theme-dark .hljs-cdata { |
| 272 | + color: #808080; |
| 273 | + font-weight: bold; |
| 274 | +} |
| 275 | + |
| 276 | +.code-theme-dark .hljs-deletion { |
| 277 | + background: #5a1d1d; |
| 278 | + color: #f48771; |
| 279 | +} |
| 280 | + |
| 281 | +.code-theme-dark .hljs-addition { |
| 282 | + background: #1e3a1e; |
| 283 | + color: #b5cea8; |
| 284 | +} |
| 285 | + |
| 286 | +.code-theme-dark .diff .hljs-change { |
| 287 | + background: #2d4d2d; |
| 288 | + color: #4ec9b0; |
| 289 | +} |
| 290 | + |
| 291 | +.code-theme-dark .hljs-chunk { |
| 292 | + color: #808080; |
| 293 | +} |
| 294 | + |
| 295 | +/* Accessibility: Ensure sufficient contrast for code */ |
| 296 | +code, |
| 297 | +pre, |
| 298 | +.hljs { |
| 299 | + /* WCAG AA compliant contrast ratios */ |
| 300 | + min-height: 1.5em; |
| 301 | +} |
| 302 | + |
| 303 | +/* Improve code block readability on small screens */ |
| 304 | +@media (max-width: 768px) { |
| 305 | + pre { |
| 306 | + font-size: 12px; |
| 307 | + padding: 10px; |
| 308 | + margin: 12px 0; |
| 309 | + } |
| 310 | + |
| 311 | + code { |
| 312 | + font-size: 0.85em; |
| 313 | + padding: 2px 4px; |
| 314 | + } |
| 315 | +} |
| 316 | + |
| 317 | +/* Print styles for code blocks */ |
| 318 | +@media print { |
| 319 | + pre { |
| 320 | + border: 1px solid #ccc; |
| 321 | + page-break-inside: avoid; |
| 322 | + background: #f5f5f5; |
| 323 | + color: #000; |
| 324 | + } |
| 325 | + |
| 326 | + code { |
| 327 | + background: #f0f0f0; |
| 328 | + color: #000; |
| 329 | + } |
| 330 | +} |
0 commit comments