4 /* Set height, width, borders, and global font properties here */
12 padding: 4px 0; /* Vertical padding around content */
15 padding: 0 4px; /* Horizontal padding of content */
18 .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
19 background-color: white; /* The little square between H and V scrollbars */
25 border-right: 1px solid #ddd;
26 background-color: #f7f7f7;
29 .CodeMirror-linenumbers {}
30 .CodeMirror-linenumber {
38 .CodeMirror-guttermarker { color: black; }
39 .CodeMirror-guttermarker-subtle { color: #999; }
44 border-left: 1px solid black;
48 /* Shown when moving in bi-directional text */
49 .CodeMirror div.CodeMirror-secondarycursor {
50 border-left: 1px solid silver;
52 .cm-fat-cursor .CodeMirror-cursor {
57 .cm-fat-cursor div.CodeMirror-cursors {
61 .cm-animate-fat-cursor {
64 -webkit-animation: blink 1.06s steps(1) infinite;
65 -moz-animation: blink 1.06s steps(1) infinite;
66 animation: blink 1.06s steps(1) infinite;
67 background-color: #7e7;
69 @-moz-keyframes blink {
71 50% { background-color: transparent; }
74 @-webkit-keyframes blink {
76 50% { background-color: transparent; }
81 50% { background-color: transparent; }
85 /* Can style cursor different in overwrite (non-insert) mode */
86 .CodeMirror-overwrite .CodeMirror-cursor {}
88 .cm-tab { display: inline-block; text-decoration: inherit; }
92 left: 0; right: 0; top: -50px; bottom: -20px;
96 border-left: 1px solid #ccc;
103 .cm-s-default .cm-header {color: blue;}
104 .cm-s-default .cm-quote {color: #090;}
105 .cm-negative {color: #d44;}
106 .cm-positive {color: #292;}
107 .cm-header, .cm-strong {font-weight: bold;}
108 .cm-em {font-style: italic;}
109 .cm-link {text-decoration: underline;}
110 .cm-strikethrough {text-decoration: line-through;}
112 .cm-s-default .cm-keyword {color: #708;}
113 .cm-s-default .cm-atom {color: #219;}
114 .cm-s-default .cm-number {color: #164;}
115 .cm-s-default .cm-def {color: #00f;}
116 .cm-s-default .cm-variable,
117 .cm-s-default .cm-punctuation,
118 .cm-s-default .cm-property,
119 .cm-s-default .cm-operator {}
120 .cm-s-default .cm-variable-2 {color: #05a;}
121 .cm-s-default .cm-variable-3 {color: #085;}
122 .cm-s-default .cm-comment {color: #a50;}
123 .cm-s-default .cm-string {color: #a11;}
124 .cm-s-default .cm-string-2 {color: #f50;}
125 .cm-s-default .cm-meta {color: #555;}
126 .cm-s-default .cm-qualifier {color: #555;}
127 .cm-s-default .cm-builtin {color: #30a;}
128 .cm-s-default .cm-bracket {color: #997;}
129 .cm-s-default .cm-tag {color: #170;}
130 .cm-s-default .cm-attribute {color: #00c;}
131 .cm-s-default .cm-hr {color: #999;}
132 .cm-s-default .cm-link {color: #00c;}
134 .cm-s-default .cm-error {color: #f00;}
135 .cm-invalidchar {color: #f00;}
137 .CodeMirror-composing { border-bottom: 2px solid; }
139 /* Default styles for common addons */
141 div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
142 div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
143 .CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
144 .CodeMirror-activeline-background {background: #e8f2ff;}
148 /* The rest of this file contains styles related to the mechanics of
149 the editor. You probably shouldn't touch them. */
158 overflow: scroll !important; /* Things will break if this is overridden */
159 /* 30px is the magic margin used to hide the element's real scrollbars */
160 /* See overflow: hidden in .CodeMirror */
161 margin-bottom: -30px; margin-right: -30px;
162 padding-bottom: 30px;
164 outline: none; /* Prevent dragging from highlighting the element */
169 border-right: 30px solid transparent;
172 /* The fake, visible scrollbars. Used to force redraw during scrolling
173 before actual scrolling happens, thus preventing shaking and
174 flickering artifacts. */
175 .CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
180 .CodeMirror-vscrollbar {
185 .CodeMirror-hscrollbar {
190 .CodeMirror-scrollbar-filler {
193 .CodeMirror-gutter-filler {
197 .CodeMirror-gutters {
198 position: absolute; left: 0; top: 0;
205 display: inline-block;
207 margin-bottom: -30px;
209 .CodeMirror-gutter-wrapper {
212 background: none !important;
213 border: none !important;
215 .CodeMirror-gutter-background {
220 .CodeMirror-gutter-elt {
225 .CodeMirror-gutter-wrapper ::selection { background-color: transparent }
226 .CodeMirror-gutter-wrapper ::-moz-selection { background-color: transparent }
230 min-height: 1px; /* prevents collapsing before first draw */
233 /* Reset some styles that the rest of the page might have set */
234 -moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
236 background: transparent;
241 line-height: inherit;
246 -webkit-tap-highlight-color: transparent;
247 -webkit-font-variant-ligatures: contextual;
248 font-variant-ligatures: contextual;
254 .CodeMirror-wrap pre {
255 word-wrap: break-word;
256 white-space: pre-wrap;
260 .CodeMirror-linebackground {
262 left: 0; right: 0; top: 0; bottom: 0;
266 .CodeMirror-linewidget {
272 .CodeMirror-widget {}
274 .CodeMirror-rtl pre { direction: rtl; }
280 /* Force content-box sizing for the elements where we expect it */
285 .CodeMirror-linenumber {
286 -moz-box-sizing: content-box;
287 box-sizing: content-box;
290 .CodeMirror-measure {
300 pointer-events: none;
302 .CodeMirror-measure pre { position: static; }
304 div.CodeMirror-cursors {
309 div.CodeMirror-dragcursors {
313 .CodeMirror-focused div.CodeMirror-cursors {
317 .CodeMirror-selected { background: #d9d9d9; }
318 .CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
319 .CodeMirror-crosshair { cursor: crosshair; }
320 .CodeMirror-line::selection, .CodeMirror-line > span::selection, .CodeMirror-line > span > span::selection { background: #d7d4f0; }
321 .CodeMirror-line::-moz-selection, .CodeMirror-line > span::-moz-selection, .CodeMirror-line > span > span::-moz-selection { background: #d7d4f0; }
325 background: rgba(255, 255, 0, .4);
328 /* Used to force a border model for a node */
329 .cm-force-border { padding-right: .1px; }
332 /* Hide the cursor when printing */
333 .CodeMirror div.CodeMirror-cursors {
338 /* See issue #2901 */
339 .cm-tab-wrap-hack:after { content: ''; }
341 /* Help users use markselection to safely style text background */
342 span.CodeMirror-selectedtext { background: none; }
346 MDN-LIKE Theme - Mozilla
348 Report bugs/issues here: https://github.com/codemirror/CodeMirror/issues
351 The mdn-like theme is inspired on the displayed code examples at: https://developer.mozilla.org/en-US/docs/Web/CSS/animation
354 .cm-s-mdn-like.CodeMirror { color: #999; background-color: #fff; }
355 .cm-s-mdn-like div.CodeMirror-selected { background: #cfc; }
356 .cm-s-mdn-like .CodeMirror-line::selection, .cm-s-mdn-like .CodeMirror-line > span::selection, .cm-s-mdn-like .CodeMirror-line > span > span::selection { background: #cfc; }
357 .cm-s-mdn-like .CodeMirror-line::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span::-moz-selection, .cm-s-mdn-like .CodeMirror-line > span > span::-moz-selection { background: #cfc; }
359 .cm-s-mdn-like .CodeMirror-gutters { background: #f8f8f8; border-left: 6px solid rgba(0,83,159,0.65); color: #333; }
360 .cm-s-mdn-like .CodeMirror-linenumber { color: #aaa; padding-left: 8px; }
361 .cm-s-mdn-like .CodeMirror-cursor { border-left: 2px solid #222; }
363 .cm-s-mdn-like .cm-keyword { color: #6262FF; }
364 .cm-s-mdn-like .cm-atom { color: #F90; }
365 .cm-s-mdn-like .cm-number { color: #ca7841; }
366 .cm-s-mdn-like .cm-def { color: #8DA6CE; }
367 .cm-s-mdn-like span.cm-variable-2, .cm-s-mdn-like span.cm-tag { color: #690; }
368 .cm-s-mdn-like span.cm-variable-3, .cm-s-mdn-like span.cm-def, .cm-s-mdn-like span.cm-type { color: #07a; }
370 .cm-s-mdn-like .cm-variable { color: #07a; }
371 .cm-s-mdn-like .cm-property { color: #905; }
372 .cm-s-mdn-like .cm-qualifier { color: #690; }
374 .cm-s-mdn-like .cm-operator { color: #cda869; }
375 .cm-s-mdn-like .cm-comment { color:#777; font-weight:normal; }
376 .cm-s-mdn-like .cm-string { color:#07a; font-style:italic; }
377 .cm-s-mdn-like .cm-string-2 { color:#bd6b18; } /*?*/
378 .cm-s-mdn-like .cm-meta { color: #000; } /*?*/
379 .cm-s-mdn-like .cm-builtin { color: #9B7536; } /*?*/
380 .cm-s-mdn-like .cm-tag { color: #997643; }
381 .cm-s-mdn-like .cm-attribute { color: #d6bb6d; } /*?*/
382 .cm-s-mdn-like .cm-header { color: #FF6400; }
383 .cm-s-mdn-like .cm-hr { color: #AEAEAE; }
384 .cm-s-mdn-like .cm-link { color:#ad9361; font-style:italic; text-decoration:none; }
385 .cm-s-mdn-like .cm-error { border-bottom: 1px solid red; }
387 div.cm-s-mdn-like .CodeMirror-activeline-background { background: #efefff; }
388 div.cm-s-mdn-like span.CodeMirror-matchingbracket { outline:1px solid grey; color: inherit; }
390 .cm-s-mdn-like.CodeMirror { background-image: url(data:image/png;base64,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); }
393 * Custom BookStack overrides
395 .CodeMirror, .CodeMirror pre {
402 border: 1px solid #DDD;;
405 .cm-s-mdn-like .CodeMirror-gutters { background: #f8f8f8; border-left: 0; color: #333; }
407 .code-fill .CodeMirror {
424 background-color: #EEE;
427 border: 1px solid #DDD;
431 transition: all ease-in 240ms;
434 pointer-events: none;
436 transition: transform ease-in 240ms;
437 transform: translateY(0);
440 background-color: lighten($positive, 10%);
443 transform: translateY(-3px);
447 .CodeMirror:hover .CodeMirror-copy {