Skip to content

Commit 9c89808

Browse files
realmarcinclaude
andcommitted
Add toggleable dark theme + reduced-motion guard to CommunityMech site
Additive dark-mode sweep across all reviewed pages (landing, browser, UMAP/graph, and 265 per-community pages) plus the shared style.css. - Vendor theme-toggle.js at web root (docs/); OS prefers-color-scheme default + persisted data-theme toggle. Included on every reviewed page (root: theme-toggle.js; communities/*: ../theme-toggle.js). - Per-page dark blocks redefine each page's own tokens by role using the CommunityMech slate palette (bg #101420, surface #1a1f2e, ink #e8ecf4, muted #99a2b5, line #2a3142, accent #6ea6f0, hero #1d2740; brightened status colors). Both @media (prefers-color-scheme: dark) and :root[data-theme="dark"] variants; OS default yields to explicit light. - Landing: map --pastel-b->bg, --pastel-a->hero; dark translucent stat/ footer surfaces; accent buttons get dark text. - Browser (token-less): targeted dark overrides for the specific selectors. - UMAP/graph: plot bg -> --surface, .point stroke -> --surface, legend symbol stroke driven from --point-stroke var. - Community network: label fills driven from --net-label var; plot bg follows --card; dark chip/box tints. - Reduced-motion guard added to every page and style.css. Edited templates AND every generated output identically (no re-render), so template and docs stay in sync. Light appearance unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 88fc4bc commit 9c89808

275 files changed

Lines changed: 7264 additions & 800 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

docs/browser.html

Lines changed: 78 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,83 @@
413413
color: #64748b;
414414
font-size: 0.875rem;
415415
}
416-
</style>
416+
/* ---- Dark theme (OS default; superseded by the toggle) ---- */
417+
@media (prefers-color-scheme: dark){
418+
:root:not([data-theme="light"]){--card:#1a1f2e; --ink:#e8ecf4; --line:#2a3142; --accent:#6ea6f0;}
419+
:root:not([data-theme="light"]) body{background:#101420;color:#e8ecf4}
420+
:root:not([data-theme="light"]) header{background:linear-gradient(135deg,#1d2740,#101420);border-bottom-color:#2a3142}
421+
:root:not([data-theme="light"]) header .home-link{color:#6ea6f0}
422+
:root:not([data-theme="light"]) h1{color:#e8ecf4}
423+
:root:not([data-theme="light"]) .subtitle{color:#99a2b5}
424+
:root:not([data-theme="light"]) .filter-panel{background:#1a1f2e;border-color:#2a3142}
425+
:root:not([data-theme="light"]) .filter-panel h3{color:#e8ecf4}
426+
:root:not([data-theme="light"]) .search-container input{background:#101420;border-color:#2a3142;color:#e8ecf4}
427+
:root:not([data-theme="light"]) .clear-btn{color:#99a2b5}
428+
:root:not([data-theme="light"]) .clear-btn:hover{color:#e8ecf4}
429+
:root:not([data-theme="light"]) .search-results-count{color:#99a2b5;border-bottom-color:#2a3142}
430+
:root:not([data-theme="light"]) .facet-section{border-bottom-color:#2a3142}
431+
:root:not([data-theme="light"]) .facet-toggle{color:#99a2b5}
432+
:root:not([data-theme="light"]) .facet-actions button{background:#101420;border-color:#2a3142;color:#e8ecf4}
433+
:root:not([data-theme="light"]) .facet-actions button:hover{background:#232a3d}
434+
:root:not([data-theme="light"]) .facet-checkbox:hover{background:rgba(255,255,255,.04)}
435+
:root:not([data-theme="light"]) .facet-count{color:#99a2b5}
436+
:root:not([data-theme="light"]) .active-filters{background:rgba(251,191,36,.12);border-color:#fbbf24}
437+
:root:not([data-theme="light"]) .btn-reset{background:#101420;border-color:#fbbf24;color:#e8ecf4}
438+
:root:not([data-theme="light"]) .btn-reset:hover{background:rgba(251,191,36,.15)}
439+
:root:not([data-theme="light"]) .filter-tag{background:#101420;border-color:#2a3142;color:#e8ecf4}
440+
:root:not([data-theme="light"]) .filter-tag-remove{color:#99a2b5}
441+
:root:not([data-theme="light"]) .filter-tag-remove:hover{color:#f87171}
442+
:root:not([data-theme="light"]) .umap-link{background:#1a1f2e;border-color:#6ea6f0}
443+
:root:not([data-theme="light"]) .umap-link h2{color:#6ea6f0}
444+
:root:not([data-theme="light"]) .umap-link p{color:#99a2b5}
445+
:root:not([data-theme="light"]) .umap-link a{background:#6ea6f0;color:#101420}
446+
:root:not([data-theme="light"]) .umap-link a:hover{background:#8fbcf5}
447+
:root:not([data-theme="light"]) .community-card{background:#1a1f2e;border-color:#2a3142}
448+
:root:not([data-theme="light"]) .community-card h2{color:#6ea6f0}
449+
:root:not([data-theme="light"]) .community-card .description{color:#99a2b5}
450+
:root:not([data-theme="light"]) .badge-category{background:#232a3d;color:#cbd5e1}
451+
:root:not([data-theme="light"]) .badge-member-count{background:#232a3d;color:#cbd5e1}
452+
:root:not([data-theme="light"]) footer{border-top-color:#2a3142;color:#99a2b5}
453+
}
454+
:root[data-theme="dark"]{--card:#1a1f2e; --ink:#e8ecf4; --line:#2a3142; --accent:#6ea6f0;}
455+
:root[data-theme="dark"] body{background:#101420;color:#e8ecf4}
456+
:root[data-theme="dark"] header{background:linear-gradient(135deg,#1d2740,#101420);border-bottom-color:#2a3142}
457+
:root[data-theme="dark"] header .home-link{color:#6ea6f0}
458+
:root[data-theme="dark"] h1{color:#e8ecf4}
459+
:root[data-theme="dark"] .subtitle{color:#99a2b5}
460+
:root[data-theme="dark"] .filter-panel{background:#1a1f2e;border-color:#2a3142}
461+
:root[data-theme="dark"] .filter-panel h3{color:#e8ecf4}
462+
:root[data-theme="dark"] .search-container input{background:#101420;border-color:#2a3142;color:#e8ecf4}
463+
:root[data-theme="dark"] .clear-btn{color:#99a2b5}
464+
:root[data-theme="dark"] .clear-btn:hover{color:#e8ecf4}
465+
:root[data-theme="dark"] .search-results-count{color:#99a2b5;border-bottom-color:#2a3142}
466+
:root[data-theme="dark"] .facet-section{border-bottom-color:#2a3142}
467+
:root[data-theme="dark"] .facet-toggle{color:#99a2b5}
468+
:root[data-theme="dark"] .facet-actions button{background:#101420;border-color:#2a3142;color:#e8ecf4}
469+
:root[data-theme="dark"] .facet-actions button:hover{background:#232a3d}
470+
:root[data-theme="dark"] .facet-checkbox:hover{background:rgba(255,255,255,.04)}
471+
:root[data-theme="dark"] .facet-count{color:#99a2b5}
472+
:root[data-theme="dark"] .active-filters{background:rgba(251,191,36,.12);border-color:#fbbf24}
473+
:root[data-theme="dark"] .btn-reset{background:#101420;border-color:#fbbf24;color:#e8ecf4}
474+
:root[data-theme="dark"] .btn-reset:hover{background:rgba(251,191,36,.15)}
475+
:root[data-theme="dark"] .filter-tag{background:#101420;border-color:#2a3142;color:#e8ecf4}
476+
:root[data-theme="dark"] .filter-tag-remove{color:#99a2b5}
477+
:root[data-theme="dark"] .filter-tag-remove:hover{color:#f87171}
478+
:root[data-theme="dark"] .umap-link{background:#1a1f2e;border-color:#6ea6f0}
479+
:root[data-theme="dark"] .umap-link h2{color:#6ea6f0}
480+
:root[data-theme="dark"] .umap-link p{color:#99a2b5}
481+
:root[data-theme="dark"] .umap-link a{background:#6ea6f0;color:#101420}
482+
:root[data-theme="dark"] .umap-link a:hover{background:#8fbcf5}
483+
:root[data-theme="dark"] .community-card{background:#1a1f2e;border-color:#2a3142}
484+
:root[data-theme="dark"] .community-card h2{color:#6ea6f0}
485+
:root[data-theme="dark"] .community-card .description{color:#99a2b5}
486+
:root[data-theme="dark"] .badge-category{background:#232a3d;color:#cbd5e1}
487+
:root[data-theme="dark"] .badge-member-count{background:#232a3d;color:#cbd5e1}
488+
:root[data-theme="dark"] footer{border-top-color:#2a3142;color:#99a2b5}
489+
@media (prefers-reduced-motion: reduce){
490+
*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
491+
}
492+
</style>
417493
</head>
418494
<body>
419495
<header>
@@ -9155,5 +9231,6 @@ <h2>m-CAFEs Brachypodium Reduced Complexity Consortia</h2>
91559231
// Initialize facets when page loads
91569232
initializeFacets();
91579233
</script>
9234+
<script src="theme-toggle.js"></script>
91589235
</body>
91599236
</html>

docs/communities/AMD_Acidophile_Heterotroph_Network.html

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,29 @@
342342
.network-tooltip strong {
343343
color: #93c5fd;
344344
}
345-
</style>
345+
/* ---- Dark theme (OS default; superseded by the toggle) ---- */
346+
@media (prefers-color-scheme: dark){
347+
:root:not([data-theme="light"]){--primary:#6ea6f0; --secondary:#99a2b5; --background:#101420; --card:#1a1f2e; --border:#2a3142; --text:#e8ecf4; --text-muted:#99a2b5; --success:#34d399; --warning:#fbbf24; --net-label:#cbd5e1;}
348+
:root:not([data-theme="light"]) header{background:linear-gradient(135deg,#1d2740,#101420);border-bottom-color:#2a3142}
349+
:root:not([data-theme="light"]) th{background:#232a3d}
350+
:root:not([data-theme="light"]) .interaction-type{background:rgba(52,211,153,.14);color:#34d399}
351+
:root:not([data-theme="light"]) .interaction-flow{background:rgba(255,255,255,.04)}
352+
:root:not([data-theme="light"]) .evidence-item{background:rgba(251,191,36,.10);border-left-color:#fbbf24}
353+
:root:not([data-theme="light"]) .empty-state{background:rgba(255,255,255,.03);border-color:#2a3142;color:#99a2b5}
354+
:root:not([data-theme="light"]) .role-badge{background:rgba(180,153,240,.16);color:#c4b5fd}
355+
}
356+
:root[data-theme="dark"]{--primary:#6ea6f0; --secondary:#99a2b5; --background:#101420; --card:#1a1f2e; --border:#2a3142; --text:#e8ecf4; --text-muted:#99a2b5; --success:#34d399; --warning:#fbbf24; --net-label:#cbd5e1;}
357+
:root[data-theme="dark"] header{background:linear-gradient(135deg,#1d2740,#101420);border-bottom-color:#2a3142}
358+
:root[data-theme="dark"] th{background:#232a3d}
359+
:root[data-theme="dark"] .interaction-type{background:rgba(52,211,153,.14);color:#34d399}
360+
:root[data-theme="dark"] .interaction-flow{background:rgba(255,255,255,.04)}
361+
:root[data-theme="dark"] .evidence-item{background:rgba(251,191,36,.10);border-left-color:#fbbf24}
362+
:root[data-theme="dark"] .empty-state{background:rgba(255,255,255,.03);border-color:#2a3142;color:#99a2b5}
363+
:root[data-theme="dark"] .role-badge{background:rgba(180,153,240,.16);color:#c4b5fd}
364+
@media (prefers-reduced-motion: reduce){
365+
*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
366+
}
367+
</style>
346368
</head>
347369
<body>
348370
<header>
@@ -2014,15 +2036,15 @@ <h2>Environmental Factors</h2>
20142036
.attr("text-anchor", "middle")
20152037
.attr("dy", function(d) { return d.abundance === "DOMINANT" ? 30 : 24; })
20162038
.attr("font-size", "10px")
2017-
.attr("fill", "#475569");
2039+
.style("fill", "var(--net-label, #475569)");
20182040

20192041
// Labels for interactions (multi-line, centered in rectangle)
20202042
node.filter(function(d) { return d.type === "interaction"; })
20212043
.each(function(d) {
20222044
var textElem = d3.select(this).append("text")
20232045
.attr("text-anchor", "middle")
20242046
.attr("font-size", "9px")
2025-
.attr("fill", "#475569")
2047+
.style("fill", "var(--net-label, #475569)")
20262048
.style("pointer-events", "none");
20272049

20282050
// Word-wrap text to fit in rectangle (max ~24 chars per line)
@@ -2140,5 +2162,6 @@ <h2>Environmental Factors</h2>
21402162
})();
21412163
</script>
21422164

2165+
<script src="../theme-toggle.js"></script>
21432166
</body>
21442167
</html>

docs/communities/AMD_Nitrososphaerota_Archaeal.html

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,29 @@
342342
.network-tooltip strong {
343343
color: #93c5fd;
344344
}
345-
</style>
345+
/* ---- Dark theme (OS default; superseded by the toggle) ---- */
346+
@media (prefers-color-scheme: dark){
347+
:root:not([data-theme="light"]){--primary:#6ea6f0; --secondary:#99a2b5; --background:#101420; --card:#1a1f2e; --border:#2a3142; --text:#e8ecf4; --text-muted:#99a2b5; --success:#34d399; --warning:#fbbf24; --net-label:#cbd5e1;}
348+
:root:not([data-theme="light"]) header{background:linear-gradient(135deg,#1d2740,#101420);border-bottom-color:#2a3142}
349+
:root:not([data-theme="light"]) th{background:#232a3d}
350+
:root:not([data-theme="light"]) .interaction-type{background:rgba(52,211,153,.14);color:#34d399}
351+
:root:not([data-theme="light"]) .interaction-flow{background:rgba(255,255,255,.04)}
352+
:root:not([data-theme="light"]) .evidence-item{background:rgba(251,191,36,.10);border-left-color:#fbbf24}
353+
:root:not([data-theme="light"]) .empty-state{background:rgba(255,255,255,.03);border-color:#2a3142;color:#99a2b5}
354+
:root:not([data-theme="light"]) .role-badge{background:rgba(180,153,240,.16);color:#c4b5fd}
355+
}
356+
:root[data-theme="dark"]{--primary:#6ea6f0; --secondary:#99a2b5; --background:#101420; --card:#1a1f2e; --border:#2a3142; --text:#e8ecf4; --text-muted:#99a2b5; --success:#34d399; --warning:#fbbf24; --net-label:#cbd5e1;}
357+
:root[data-theme="dark"] header{background:linear-gradient(135deg,#1d2740,#101420);border-bottom-color:#2a3142}
358+
:root[data-theme="dark"] th{background:#232a3d}
359+
:root[data-theme="dark"] .interaction-type{background:rgba(52,211,153,.14);color:#34d399}
360+
:root[data-theme="dark"] .interaction-flow{background:rgba(255,255,255,.04)}
361+
:root[data-theme="dark"] .evidence-item{background:rgba(251,191,36,.10);border-left-color:#fbbf24}
362+
:root[data-theme="dark"] .empty-state{background:rgba(255,255,255,.03);border-color:#2a3142;color:#99a2b5}
363+
:root[data-theme="dark"] .role-badge{background:rgba(180,153,240,.16);color:#c4b5fd}
364+
@media (prefers-reduced-motion: reduce){
365+
*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
366+
}
367+
</style>
346368
</head>
347369
<body>
348370
<header>
@@ -1768,15 +1790,15 @@ <h2>Environmental Factors</h2>
17681790
.attr("text-anchor", "middle")
17691791
.attr("dy", function(d) { return d.abundance === "DOMINANT" ? 30 : 24; })
17701792
.attr("font-size", "10px")
1771-
.attr("fill", "#475569");
1793+
.style("fill", "var(--net-label, #475569)");
17721794

17731795
// Labels for interactions (multi-line, centered in rectangle)
17741796
node.filter(function(d) { return d.type === "interaction"; })
17751797
.each(function(d) {
17761798
var textElem = d3.select(this).append("text")
17771799
.attr("text-anchor", "middle")
17781800
.attr("font-size", "9px")
1779-
.attr("fill", "#475569")
1801+
.style("fill", "var(--net-label, #475569)")
17801802
.style("pointer-events", "none");
17811803

17821804
// Word-wrap text to fit in rectangle (max ~24 chars per line)
@@ -1894,5 +1916,6 @@ <h2>Environmental Factors</h2>
18941916
})();
18951917
</script>
18961918

1919+
<script src="../theme-toggle.js"></script>
18971920
</body>
18981921
</html>

docs/communities/ANME_SRB_Marine_Methane_Seep_Consortium.html

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,29 @@
342342
.network-tooltip strong {
343343
color: #93c5fd;
344344
}
345-
</style>
345+
/* ---- Dark theme (OS default; superseded by the toggle) ---- */
346+
@media (prefers-color-scheme: dark){
347+
:root:not([data-theme="light"]){--primary:#6ea6f0; --secondary:#99a2b5; --background:#101420; --card:#1a1f2e; --border:#2a3142; --text:#e8ecf4; --text-muted:#99a2b5; --success:#34d399; --warning:#fbbf24; --net-label:#cbd5e1;}
348+
:root:not([data-theme="light"]) header{background:linear-gradient(135deg,#1d2740,#101420);border-bottom-color:#2a3142}
349+
:root:not([data-theme="light"]) th{background:#232a3d}
350+
:root:not([data-theme="light"]) .interaction-type{background:rgba(52,211,153,.14);color:#34d399}
351+
:root:not([data-theme="light"]) .interaction-flow{background:rgba(255,255,255,.04)}
352+
:root:not([data-theme="light"]) .evidence-item{background:rgba(251,191,36,.10);border-left-color:#fbbf24}
353+
:root:not([data-theme="light"]) .empty-state{background:rgba(255,255,255,.03);border-color:#2a3142;color:#99a2b5}
354+
:root:not([data-theme="light"]) .role-badge{background:rgba(180,153,240,.16);color:#c4b5fd}
355+
}
356+
:root[data-theme="dark"]{--primary:#6ea6f0; --secondary:#99a2b5; --background:#101420; --card:#1a1f2e; --border:#2a3142; --text:#e8ecf4; --text-muted:#99a2b5; --success:#34d399; --warning:#fbbf24; --net-label:#cbd5e1;}
357+
:root[data-theme="dark"] header{background:linear-gradient(135deg,#1d2740,#101420);border-bottom-color:#2a3142}
358+
:root[data-theme="dark"] th{background:#232a3d}
359+
:root[data-theme="dark"] .interaction-type{background:rgba(52,211,153,.14);color:#34d399}
360+
:root[data-theme="dark"] .interaction-flow{background:rgba(255,255,255,.04)}
361+
:root[data-theme="dark"] .evidence-item{background:rgba(251,191,36,.10);border-left-color:#fbbf24}
362+
:root[data-theme="dark"] .empty-state{background:rgba(255,255,255,.03);border-color:#2a3142;color:#99a2b5}
363+
:root[data-theme="dark"] .role-badge{background:rgba(180,153,240,.16);color:#c4b5fd}
364+
@media (prefers-reduced-motion: reduce){
365+
*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
366+
}
367+
</style>
346368
</head>
347369
<body>
348370
<header>
@@ -1045,15 +1067,15 @@ <h2>Environmental Factors</h2>
10451067
.attr("text-anchor", "middle")
10461068
.attr("dy", function(d) { return d.abundance === "DOMINANT" ? 30 : 24; })
10471069
.attr("font-size", "10px")
1048-
.attr("fill", "#475569");
1070+
.style("fill", "var(--net-label, #475569)");
10491071

10501072
// Labels for interactions (multi-line, centered in rectangle)
10511073
node.filter(function(d) { return d.type === "interaction"; })
10521074
.each(function(d) {
10531075
var textElem = d3.select(this).append("text")
10541076
.attr("text-anchor", "middle")
10551077
.attr("font-size", "9px")
1056-
.attr("fill", "#475569")
1078+
.style("fill", "var(--net-label, #475569)")
10571079
.style("pointer-events", "none");
10581080

10591081
// Word-wrap text to fit in rectangle (max ~24 chars per line)
@@ -1171,5 +1193,6 @@ <h2>Environmental Factors</h2>
11711193
})();
11721194
</script>
11731195

1196+
<script src="../theme-toggle.js"></script>
11741197
</body>
11751198
</html>

docs/communities/Aalborg_East_Full_Scale_EBPR_Community.html

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,29 @@
342342
.network-tooltip strong {
343343
color: #93c5fd;
344344
}
345-
</style>
345+
/* ---- Dark theme (OS default; superseded by the toggle) ---- */
346+
@media (prefers-color-scheme: dark){
347+
:root:not([data-theme="light"]){--primary:#6ea6f0; --secondary:#99a2b5; --background:#101420; --card:#1a1f2e; --border:#2a3142; --text:#e8ecf4; --text-muted:#99a2b5; --success:#34d399; --warning:#fbbf24; --net-label:#cbd5e1;}
348+
:root:not([data-theme="light"]) header{background:linear-gradient(135deg,#1d2740,#101420);border-bottom-color:#2a3142}
349+
:root:not([data-theme="light"]) th{background:#232a3d}
350+
:root:not([data-theme="light"]) .interaction-type{background:rgba(52,211,153,.14);color:#34d399}
351+
:root:not([data-theme="light"]) .interaction-flow{background:rgba(255,255,255,.04)}
352+
:root:not([data-theme="light"]) .evidence-item{background:rgba(251,191,36,.10);border-left-color:#fbbf24}
353+
:root:not([data-theme="light"]) .empty-state{background:rgba(255,255,255,.03);border-color:#2a3142;color:#99a2b5}
354+
:root:not([data-theme="light"]) .role-badge{background:rgba(180,153,240,.16);color:#c4b5fd}
355+
}
356+
:root[data-theme="dark"]{--primary:#6ea6f0; --secondary:#99a2b5; --background:#101420; --card:#1a1f2e; --border:#2a3142; --text:#e8ecf4; --text-muted:#99a2b5; --success:#34d399; --warning:#fbbf24; --net-label:#cbd5e1;}
357+
:root[data-theme="dark"] header{background:linear-gradient(135deg,#1d2740,#101420);border-bottom-color:#2a3142}
358+
:root[data-theme="dark"] th{background:#232a3d}
359+
:root[data-theme="dark"] .interaction-type{background:rgba(52,211,153,.14);color:#34d399}
360+
:root[data-theme="dark"] .interaction-flow{background:rgba(255,255,255,.04)}
361+
:root[data-theme="dark"] .evidence-item{background:rgba(251,191,36,.10);border-left-color:#fbbf24}
362+
:root[data-theme="dark"] .empty-state{background:rgba(255,255,255,.03);border-color:#2a3142;color:#99a2b5}
363+
:root[data-theme="dark"] .role-badge{background:rgba(180,153,240,.16);color:#c4b5fd}
364+
@media (prefers-reduced-motion: reduce){
365+
*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important;}
366+
}
367+
</style>
346368
</head>
347369
<body>
348370
<header>
@@ -1240,15 +1262,15 @@ <h2>Environmental Factors</h2>
12401262
.attr("text-anchor", "middle")
12411263
.attr("dy", function(d) { return d.abundance === "DOMINANT" ? 30 : 24; })
12421264
.attr("font-size", "10px")
1243-
.attr("fill", "#475569");
1265+
.style("fill", "var(--net-label, #475569)");
12441266

12451267
// Labels for interactions (multi-line, centered in rectangle)
12461268
node.filter(function(d) { return d.type === "interaction"; })
12471269
.each(function(d) {
12481270
var textElem = d3.select(this).append("text")
12491271
.attr("text-anchor", "middle")
12501272
.attr("font-size", "9px")
1251-
.attr("fill", "#475569")
1273+
.style("fill", "var(--net-label, #475569)")
12521274
.style("pointer-events", "none");
12531275

12541276
// Word-wrap text to fit in rectangle (max ~24 chars per line)
@@ -1366,5 +1388,6 @@ <h2>Environmental Factors</h2>
13661388
})();
13671389
</script>
13681390

1391+
<script src="../theme-toggle.js"></script>
13691392
</body>
13701393
</html>

0 commit comments

Comments
 (0)