diff --git a/doc/api_assets/hljs.css b/doc/api_assets/hljs.css index 026a93e194efc3..dc5f1d41a65945 100644 --- a/doc/api_assets/hljs.css +++ b/doc/api_assets/hljs.css @@ -28,3 +28,20 @@ color: #666; font-weight: lighter; } + +.dark-mode .hljs-number, +.dark-mode .hljs-string, +.dark-mode .hljs-regexp { + color: var(--green4); +} + +.dark-mode .hljs-keyword, +.dark-mode .hljs-attribute { + color: #66d9ef; +} + +.dark-mode .hljs-doctag .hljs-type, +.dark-mode .hljs-doctag .hljs-variable, +.dark-mode .hljs-comment { + color: var(--gray7); +} diff --git a/doc/api_assets/style.css b/doc/api_assets/style.css index 242cc6a7d11db2..7f471a8c08a499 100644 --- a/doc/api_assets/style.css +++ b/doc/api_assets/style.css @@ -1,3 +1,55 @@ +/*--------------------- CSS Variables ----------------------------*/ +:root { + --black: #000000; + --black1: #090c15; + --black2: #2c3437; + --black3: #0d111d; + --white: #ffffff; + --white-smoke: #f2f2f2; + --grey-smoke: #e9edf0; + --red1: #d60027; + --red2: #d50027; + --red3: #ca5010; + --green1: #43853d; + --green2: #5a8147; + --green3: #454545; + --green4: #99cc7d; + --green5: #84ba64; + --gray1: #707070; + --gray2: #b4b4b4; + --gray3: #cccccc; + --gray4: #040404; + --gray5: #7a7a7a; + --gray6: #333333; + --gray7: #c1c1c1; + --grey8: #ddd; + + --color-brand-primary: var(--gray6); + --color-brand-secondary: var(--green1); + --color-text-primary: var(--gray6); + --color-text-secondary: var(--green2); + --color-fill-app: var(--white); + --color-text-nav: var(--gray3); + --highlight-background-color: var(--white-smoke); + --color-links: var(--green1); + --color-fill-side-nav: var(--gray6); + --api-stability-links-bg: rgba(255, 255, 255, .4) +} + +.dark-mode { + --color-links: var(--green5); + --color-fill-app: var(--black1); + --color-text-primary: var(--white); + --color-fill-side-nav: var(--black3); + --highlight-background-color: var(--black2); +} + +.dark-mode code, +.dark-mode tt { + color: var(--grey-smoke); + background-color: var(--highlight-background-color); +} + /*--------------------- Layout and Typography ----------------------------*/ html { font-size: 1rem; @@ -16,8 +68,8 @@ body { font-family: Lato, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Verdana, Tahoma, sans-serif; margin: 0; padding: 0; - color: #333; - background-color: #fff; + color: var(--color-text-primary); + background-color: var(--color-fill-app); } h1, h1 code { font-size: 2.5rem; } @@ -67,7 +119,7 @@ a.type { a:link, a:active, a:visited { - color: #43853d; + color: var(--color-links); text-decoration: none; border-radius: 2px; padding: 1px 3px; @@ -75,8 +127,8 @@ a:visited { a:hover, a:focus { - color: #fff; - background-color: #43853d; + color: var(--white); + background-color:var(--green1); outline: none; } @@ -109,7 +161,7 @@ em code { #gtoc > ul > li { display: inline; - border-right: 1px #000 solid; + border-right: 1px currentColor solid; margin-right: .4rem; padding-right: .4rem; } @@ -138,8 +190,8 @@ li.version-picker a span { } ol.version-picker { - background-color: #fff; - border: 1px solid #43853d; + background-color: var(--color-fill-app); + border: 1px solid var(--color-brand-secondary); border-radius: 0 0 2px 2px; display: none; list-style: none; @@ -175,14 +227,14 @@ ol.version-picker li:last-child a { } .api_stability { - color: #fff !important; + color: var(--white) !important; margin: 0 0 1rem; padding: 1rem; line-height: 1.5; } .api_stability * { - color: #fff !important; + color: var(--white) !important; } .api_stability a { @@ -192,7 +244,7 @@ ol.version-picker li:last-child a { .api_stability a:hover, .api_stability a:active, .api_stability a:focus { - background-color: rgba(255, 255, 255, .4); + background-color: var(--api-stability-links-bg); } .api_stability a code { @@ -200,15 +252,15 @@ ol.version-picker li:last-child a { } .api_stability_0 { - background-color: #d60027; + background-color: var(--red1); } .api_stability_1 { - background-color: #ca5010; + background-color: var(--red3); } .api_stability_2 { - background-color: #5a8147; + background-color: var(--green2); } .api_metadata { @@ -386,7 +438,7 @@ code { pre { padding: 1rem; vertical-align: top; - background-color: #f2f2f2; + background-color: var(--highlight-background-color); margin: 1rem; overflow-x: auto; } @@ -409,14 +461,14 @@ code.pre { } #intro a { - color: #ddd; + color: var(--grey8); font-weight: 700; } hr { background-color: transparent; border: medium none; - border-bottom: 1px solid #7a7a7a; + border-bottom: 1px solid var(--gray5); margin: 0 0 1rem; } @@ -442,8 +494,8 @@ hr { } #toc .stability_0::after { - background-color: #d50027; - color: #fff; + background-color: var(--red2); + color: var(--white); content: "deprecated"; margin-left: .25rem; padding: 1px 3px; @@ -488,7 +540,7 @@ a code { #column2.interior { width: 234px; - background-color: #333; + background-color: var(--color-fill-side-nav); position: fixed; left: 0; top: 0; @@ -500,7 +552,7 @@ a code { #column2 ul { list-style: none; margin: .9rem 0 .5rem; - background-color: #333; + background-color: var(--color-fill-side-nav); } #column2 > :first-child { @@ -532,7 +584,7 @@ a code { } #column2 ul li a { - color: #ccc; + color: var(--color-text-nav); border-radius: 0; } @@ -540,7 +592,7 @@ a code { #column2 ul li a.active:hover, #column2 ul li a.active:focus { font-weight: 700; - color: #fff; + color: var(--white); background-color: transparent; } @@ -548,7 +600,7 @@ a code { #intro a:focus, #column2 ul li a:hover, #column2 ul li a:focus { - color: #fff; + color: var(--white); background-color: transparent; } @@ -563,7 +615,7 @@ span > .mark:visited { span > .mark:hover, span > .mark:focus, span > .mark:active { - color: #43853d; + color: var(--color-brand-secondary); background-color: transparent; } @@ -577,7 +629,7 @@ kbd { border-radius: 3px; border: 1px solid #b4b4b4; box-shadow: 0 1px 1px rgba(0, 0, 0, .2); - color: #333; + color: var(--color-text-primary); display: inline-block; font-size: .85em; font-weight: 700; @@ -649,6 +701,23 @@ kbd { } } +.header-container { + display: flex; + align-items: center; + margin: 1.5rem 0 1rem; + justify-content: space-between; +} + +.header-container h1 { + margin: 0; +} + +.theme-toggle-btn { + border: none; + background: transparent; + outline: var(--brand3) dotted 2px; +} + @media only screen and (max-width: 1024px) { #content { overflow: visible; @@ -665,6 +734,28 @@ kbd { } } +.icon { + cursor: pointer; +} + +.dark-icon { + display: block; +} + +.light-icon { + fill: var(--white); + display: none; +} + +.dark-mode .dark-icon { + display: none; +} + +.dark-mode .light-icon { + fill: var(--white); + display: block; +} + @media print { html { height: auto; diff --git a/doc/template.html b/doc/template.html index 9e07b55c44e5e1..d7cc96062eaf6a 100644 --- a/doc/template.html +++ b/doc/template.html @@ -1,4 +1,4 @@ - + @@ -23,7 +23,20 @@
-

Node.js __VERSION__ Documentation

+
+

Node.js __VERSION__ Documentation

+ +
  • @@ -54,4 +67,40 @@

    Table of Contents

+