@@ -190,13 +190,35 @@ def _write_estimator_html(
190
190
191
191
_STYLE = """
192
192
#$id {
193
- color: black;
193
+ --sklearn-color-text: black;
194
+ --sklearn-color-line: gray;
195
+ --sklearn-color-background: white;
196
+ --sklearn-color-background-box: #f0f8ff;
197
+ --sklearn-color-border-box: black;
198
+ --sklearn-color-icon: #696969;
199
+ --sklearn-color-active: #d4ebff;
200
+ --sklearn-color-highlight: #d4ebff;
201
+
202
+ @media (prefers-color-scheme: dark) {
203
+ --sklearn-color-text: white;
204
+ --sklearn-color-line: gray;
205
+ --sklearn-color-background: #111;
206
+ --sklearn-color-background-box: #424242;
207
+ --sklearn-color-border-box: white;
208
+ --sklearn-color-icon: #878787;
209
+ --sklearn-color-active: #616161;
210
+ --sklearn-color-highlight: #616161;
211
+ }
212
+ }
213
+
214
+ #$id {
215
+ color: var(--sklearn-color-text);
194
216
}
195
217
#$id pre{
196
218
padding: 0;
197
219
}
198
220
#$id div.sk-toggleable {
199
- background-color: white ;
221
+ background-color: var(--sklearn-color-background) ;
200
222
}
201
223
#$id label.sk-toggleable__label {
202
224
cursor: pointer;
@@ -211,26 +233,26 @@ def _write_estimator_html(
211
233
content: "▸";
212
234
float: left;
213
235
margin-right: 0.25em;
214
- color: #696969 ;
236
+ color: var(--sklearn-color-icon) ;
215
237
}
216
238
#$id label.sk-toggleable__label-arrow:hover:before {
217
- color: black ;
239
+ color: var(--sklearn-color-text) ;
218
240
}
219
241
#$id div.sk-estimator:hover label.sk-toggleable__label-arrow:before {
220
- color: black ;
242
+ color: var(--sklearn-color-text) ;
221
243
}
222
244
#$id div.sk-toggleable__content {
223
245
max-height: 0;
224
246
max-width: 0;
225
247
overflow: hidden;
226
248
text-align: left;
227
- background-color: #f0f8ff ;
249
+ background-color: var(--sklearn-color-background-box) ;
228
250
}
229
251
#$id div.sk-toggleable__content pre {
230
252
margin: 0.2em;
231
- color: black ;
253
+ color: var(--sklearn-color-text) ;
232
254
border-radius: 0.25em;
233
- background-color: #f0f8ff ;
255
+ background-color: var(--sklearn-color-background-box) ;
234
256
}
235
257
#$id input.sk-toggleable__control:checked~div.sk-toggleable__content {
236
258
max-height: 200px;
@@ -241,10 +263,10 @@ def _write_estimator_html(
241
263
content: "▾";
242
264
}
243
265
#$id div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {
244
- background-color: #d4ebff ;
266
+ background-color: var(--sklearn-color-active) ;
245
267
}
246
268
#$id div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {
247
- background-color: #d4ebff ;
269
+ background-color: var(--sklearn-color-active) ;
248
270
}
249
271
#$id input.sk-hidden--visually {
250
272
border: 0;
@@ -259,28 +281,28 @@ def _write_estimator_html(
259
281
}
260
282
#$id div.sk-estimator {
261
283
font-family: monospace;
262
- background-color: #f0f8ff ;
263
- border: 1px dotted black ;
284
+ background-color: var(--sklearn-color-background-box) ;
285
+ border: 1px dotted var(--sklearn-color-border-box) ;
264
286
border-radius: 0.25em;
265
287
box-sizing: border-box;
266
288
margin-bottom: 0.5em;
267
289
}
268
290
#$id div.sk-estimator:hover {
269
- background-color: #d4ebff ;
291
+ background-color: var(--sklearn-color-highlight) ;
270
292
}
271
293
#$id div.sk-parallel-item::after {
272
294
content: "";
273
295
width: 100%;
274
- border-bottom: 1px solid gray ;
296
+ border-bottom: 1px solid var(--sklearn-color-line) ;
275
297
flex-grow: 1;
276
298
}
277
299
#$id div.sk-label:hover label.sk-toggleable__label {
278
- background-color: #d4ebff ;
300
+ background-color: var(--sklearn-color-highlight) ;
279
301
}
280
302
#$id div.sk-serial::before {
281
303
content: "";
282
304
position: absolute;
283
- border-left: 1px solid gray ;
305
+ border-left: 1px solid var(--sklearn-color-line) ;
284
306
box-sizing: border-box;
285
307
top: 0;
286
308
bottom: 0;
@@ -291,7 +313,7 @@ def _write_estimator_html(
291
313
display: flex;
292
314
flex-direction: column;
293
315
align-items: center;
294
- background-color: white ;
316
+ background-color: var(--sklearn-color-background) ;
295
317
padding-right: 0.2em;
296
318
padding-left: 0.2em;
297
319
position: relative;
@@ -304,13 +326,13 @@ def _write_estimator_html(
304
326
display: flex;
305
327
align-items: stretch;
306
328
justify-content: center;
307
- background-color: white ;
329
+ background-color: var(--sklearn-color-background) ;
308
330
position: relative;
309
331
}
310
332
#$id div.sk-item::before, #$id div.sk-parallel-item::before {
311
333
content: "";
312
334
position: absolute;
313
- border-left: 1px solid gray ;
335
+ border-left: 1px solid var(--sklearn-color-line) ;
314
336
box-sizing: border-box;
315
337
top: 0;
316
338
bottom: 0;
@@ -322,7 +344,7 @@ def _write_estimator_html(
322
344
flex-direction: column;
323
345
z-index: 1;
324
346
position: relative;
325
- background-color: white ;
347
+ background-color: var(--sklearn-color-background) ;
326
348
}
327
349
#$id div.sk-parallel-item:first-child::after {
328
350
align-self: flex-end;
@@ -336,11 +358,11 @@ def _write_estimator_html(
336
358
width: 0;
337
359
}
338
360
#$id div.sk-dashed-wrapped {
339
- border: 1px dashed gray ;
361
+ border: 1px dashed var(--sklearn-color-line) ;
340
362
margin: 0 0.4em 0.5em 0.4em;
341
363
box-sizing: border-box;
342
364
padding-bottom: 0.4em;
343
- background-color: white ;
365
+ background-color: var(--sklearn-color-background) ;
344
366
}
345
367
#$id div.sk-label label {
346
368
font-family: monospace;
0 commit comments