Skip to content

Commit fc73430

Browse files
Improve output cells in dark mode (#679)
* Add palettes to pick colors logically in light and dark theme * Make plain outputs borderless if highlighted * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Fix typo --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent 60ed01d commit fc73430

File tree

1 file changed

+49
-12
lines changed

1 file changed

+49
-12
lines changed

myst_nb/static/mystnb.css

Lines changed: 49 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,60 @@
11
/* Variables */
22
:root {
3-
--mystnb-source-bg-color: #f7f7f7;
4-
--mystnb-stdout-bg-color: #fcfcfc;
5-
--mystnb-stderr-bg-color: #fdd;
6-
--mystnb-traceback-bg-color: #fcfcfc;
7-
--mystnb-source-border-color: #ccc;
3+
/*
4+
Following palettes are generated by using https://m2.material.io/design/color/the-color-system.html#tools-for-picking-colors
5+
- neutral palette with #fcfcfc and danger palette with #ffdddd as base colors.
6+
50 means lightest, 900 means darkest; less used intermediate shades are omitted
7+
but can be added when needed by accessing full palette from the above link.
8+
*/
9+
--mystnb-neutral-palette-50: #fcfcfc;
10+
--mystnb-neutral-palette-100: #f7f7f7;
11+
--mystnb-neutral-palette-400: #cccccc;
12+
--mystnb-neutral-palette-500: #afafaf;
13+
--mystnb-neutral-palette-800: #505050;
14+
--mystnb-neutral-palette-900: #2d2d2d;
15+
16+
--mystnb-danger-palette-50: #ffdddd;
17+
--mystnb-danger-palette-100: #f5acad;
18+
--mystnb-danger-palette-400: #c42029;
19+
--mystnb-danger-palette-500: #b40008;
20+
--mystnb-danger-palette-800: #850010;
21+
--mystnb-danger-palette-900: #680010;
22+
23+
/* MyST-NB specific variables; colors should be logically picked from palettes */
24+
--mystnb-source-bg-color: var(--mystnb-neutral-palette-100);
25+
--mystnb-stdout-bg-color: var(--mystnb-neutral-palette-50);
26+
--mystnb-stderr-bg-color: var(--mystnb-danger-palette-50);
27+
--mystnb-traceback-bg-color: var(--mystnb-neutral-palette-50);
28+
--mystnb-source-border-color: var(--mystnb-neutral-palette-400);
829
--mystnb-source-margin-color: green;
9-
--mystnb-stdout-border-color: #f7f7f7;
10-
--mystnb-stderr-border-color: #f7f7f7;
11-
--mystnb-traceback-border-color: #ffd6d6;
30+
--mystnb-stdout-border-color: var(--mystnb-neutral-palette-100);
31+
--mystnb-stderr-border-color: var(--mystnb-neutral-palette-100);
32+
--mystnb-traceback-border-color: var(--mystnb-danger-palette-100);
1233
--mystnb-hide-prompt-opacity: 70%;
1334
--mystnb-source-border-radius: .4em;
1435
--mystnb-source-border-width: 1px;
1536
--mystnb-scrollbar-width: 0.3rem;
1637
--mystnb-scrollbar-height: 0.3rem;
17-
--mystnb-scrollbar-thumb-color: #c1c1c1;
18-
--mystnb-scrollbar-thumb-hover-color: #a0a0a0;
38+
--mystnb-scrollbar-thumb-color: var(--mystnb-neutral-palette-400);
39+
--mystnb-scrollbar-thumb-hover-color: var(--mystnb-neutral-palette-500);
1940
--mystnb-scrollbar-thumb-border-radius: 0.25rem;
2041
}
2142

43+
/* Override colors in dark theme */
44+
html[data-theme="dark"] {
45+
--mystnb-source-bg-color: var(--mystnb-neutral-palette-800);
46+
--mystnb-stdout-bg-color: var(--mystnb-neutral-palette-900);
47+
--mystnb-stderr-bg-color: var(--mystnb-danger-palette-900);
48+
--mystnb-traceback-bg-color: var(--mystnb-neutral-palette-900);
49+
--mystnb-source-border-color: var(--mystnb-neutral-palette-500);
50+
--mystnb-stdout-border-color: var(--mystnb-neutral-palette-800);
51+
--mystnb-stderr-border-color: var(--mystnb-neutral-palette-800);
52+
--mystnb-traceback-border-color: var(--mystnb-danger-palette-800);
53+
--mystnb-scrollbar-thumb-color: var(--mystnb-neutral-palette-500);
54+
--mystnb-scrollbar-thumb-hover-color: var(--mystnb-neutral-palette-400);
55+
}
56+
57+
2258
/* Whole cell */
2359
div.container.cell {
2460
padding-left: 0;
@@ -73,8 +109,9 @@ div.cell_output div.output>div.highlight {
73109
box-shadow: none;
74110
}
75111

76-
.cell_output .output.text_plain,
77-
.cell_output .output.stream {
112+
.cell_output .output.text_plain:not(:has(.highlight)),
113+
.cell_output .output.stream:not(:has(.highlight)) {
114+
/* plain (or stream of) output, not containing a pygments-highlighted block */
78115
background: var(--mystnb-stdout-bg-color);
79116
border: 1px solid var(--mystnb-stdout-border-color);
80117
}

0 commit comments

Comments
 (0)