Skip to content

Commit 50d0009

Browse files
authored
Improve html repr in dark mode (Jupyterlab + Xarray docs) (pydata#10353)
* html repr fallback colors from pydata sphinx theme * doc: fix html reprs pydata sphinx theme dark mode * do not lighten or or darken too much row b-color
1 parent e00f1e8 commit 50d0009

File tree

2 files changed

+72
-16
lines changed

2 files changed

+72
-16
lines changed

doc/_static/style.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,11 @@ html[data-theme="dark"] .sd-card img[src*=".svg"] {
4444
.bd-content .sd-card .sd-card-body {
4545
background-color: unset !important;
4646
}
47+
48+
/* workaround Pydata Sphinx theme using light colors for widget cell outputs in dark-mode */
49+
/* works for many widgets but not for Xarray html reprs */
50+
/* https://github.com/pydata/pydata-sphinx-theme/issues/2189 */
51+
html[data-theme="dark"] div.cell_output .text_html:has(div.xr-wrap) {
52+
background-color: var(--pst-color-on-background) !important;
53+
color: var(--pst-color-text-base) !important;
54+
}

xarray/static/css/style.css

Lines changed: 64 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,28 +3,76 @@
33
*/
44

55
:root {
6-
--xr-font-color0: var(--jp-content-font-color0, rgba(0, 0, 0, 1));
7-
--xr-font-color2: var(--jp-content-font-color2, rgba(0, 0, 0, 0.54));
8-
--xr-font-color3: var(--jp-content-font-color3, rgba(0, 0, 0, 0.38));
9-
--xr-border-color: var(--jp-border-color2, #e0e0e0);
10-
--xr-disabled-color: var(--jp-layout-color3, #bdbdbd);
11-
--xr-background-color: var(--jp-layout-color0, white);
12-
--xr-background-color-row-even: var(--jp-layout-color1, white);
13-
--xr-background-color-row-odd: var(--jp-layout-color2, #eeeeee);
6+
--xr-font-color0: var(
7+
--jp-content-font-color0,
8+
var(--pst-color-text-base rgba(0, 0, 0, 1))
9+
);
10+
--xr-font-color2: var(
11+
--jp-content-font-color2,
12+
var(--pst-color-text-base, rgba(0, 0, 0, 0.54))
13+
);
14+
--xr-font-color3: var(
15+
--jp-content-font-color3,
16+
var(--pst-color-text-base, rgba(0, 0, 0, 0.38))
17+
);
18+
--xr-border-color: var(
19+
--jp-border-color2,
20+
hsl(from var(--pst-color-on-background, white) h s calc(l - 10))
21+
);
22+
--xr-disabled-color: var(
23+
--jp-layout-color3,
24+
hsl(from var(--pst-color-on-background, white) h s calc(l - 40))
25+
);
26+
--xr-background-color: var(
27+
--jp-layout-color0,
28+
var(--pst-color-on-background, white)
29+
);
30+
--xr-background-color-row-even: var(
31+
--jp-layout-color1,
32+
hsl(from var(--pst-color-on-background, white) h s calc(l - 5))
33+
);
34+
--xr-background-color-row-odd: var(
35+
--jp-layout-color2,
36+
hsl(from var(--pst-color-on-background, white) h s calc(l - 15))
37+
);
1438
}
1539

1640
html[theme="dark"],
1741
html[data-theme="dark"],
1842
body[data-theme="dark"],
1943
body.vscode-dark {
20-
--xr-font-color0: rgba(255, 255, 255, 1);
21-
--xr-font-color2: rgba(255, 255, 255, 0.54);
22-
--xr-font-color3: rgba(255, 255, 255, 0.38);
23-
--xr-border-color: #1f1f1f;
24-
--xr-disabled-color: #515151;
25-
--xr-background-color: #111111;
26-
--xr-background-color-row-even: #111111;
27-
--xr-background-color-row-odd: #313131;
44+
--xr-font-color0: var(
45+
--jp-content-font-color0,
46+
var(--pst-color-text-base, rgba(255, 255, 255, 1))
47+
);
48+
--xr-font-color2: var(
49+
--jp-content-font-color2,
50+
var(--pst-color-text-base, rgba(255, 255, 255, 0.54))
51+
);
52+
--xr-font-color3: var(
53+
--jp-content-font-color3,
54+
var(--pst-color-text-base, rgba(255, 255, 255, 0.38))
55+
);
56+
--xr-border-color: var(
57+
--jp-border-color2,
58+
hsl(from var(--pst-color-on-background, #111111) h s calc(l + 10))
59+
);
60+
--xr-disabled-color: var(
61+
--jp-layout-color3,
62+
hsl(from var(--pst-color-on-background, #111111) h s calc(l + 40))
63+
);
64+
--xr-background-color: var(
65+
--jp-layout-color0,
66+
var(--pst-color-on-background, #111111)
67+
);
68+
--xr-background-color-row-even: var(
69+
--jp-layout-color1,
70+
hsl(from var(--pst-color-on-background, #111111) h s calc(l + 5))
71+
);
72+
--xr-background-color-row-odd: var(
73+
--jp-layout-color2,
74+
hsl(from var(--pst-color-on-background, #111111) h s calc(l + 15))
75+
);
2876
}
2977

3078
.xr-wrap {

0 commit comments

Comments
 (0)