theme.css 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. /* Font links ------------------------------------------------------------- */
  2. @font-face {
  3. font-family:"Open Sans";
  4. font-weight: 400;
  5. font-style: normal;
  6. src: local("Open Sans Regular"),
  7. url("/fonts/open-sans/open-sans-regular.woff2") format("woff2"),
  8. url("/fonts/open-sans/open-sans-regular.woff") format("woff");
  9. }
  10. @font-face {
  11. font-family:"Open Sans";
  12. font-weight: 400;
  13. font-style: italic;
  14. src: local("Open Sans Italic"),
  15. url("/fonts/open-sans/open-sans-italic.woff2") format("woff2"),
  16. url("/fonts/open-sans/open-sans-italic.woff") format("woff");
  17. }
  18. @font-face {
  19. font-family:"Open Sans";
  20. font-weight: 500;
  21. font-style: normal;
  22. src: local("Open Sans SemiBold"),
  23. url("/fonts/open-sans/open-sans-semibold.woff2") format("woff2"),
  24. url("/fonts/open-sans/open-sans-semibold.woff") format("woff");
  25. }
  26. @font-face {
  27. font-family:"Open Sans";
  28. font-weight: 500;
  29. font-style: italic;
  30. src: local("Open Sans SemiBold Italic"),
  31. url("/fonts/open-sans/open-sans-semibold-italic.woff2") format("woff2"),
  32. url("/fonts/open-sans/open-sans-semibold-italic.woff") format("woff");
  33. }
  34. @font-face {
  35. font-family:"Open Sans";
  36. font-weight: 600;
  37. font-style: normal;
  38. src: local("Open Sans Bold"),
  39. url("/fonts/open-sans/open-sans-bold.woff2") format("woff2"),
  40. url("/fonts/open-sans/open-sans-bold.woff") format("woff");
  41. }
  42. @font-face {
  43. font-family:"Open Sans";
  44. font-weight: 600;
  45. font-style: italic;
  46. src: local("Open Sans Bold Italic"),
  47. url("/fonts/open-sans/open-sans-bold-italic.woff2") format("woff2"),
  48. url("/fonts/open-sans/open-sans-bold-italic.woff") format("woff");
  49. }
  50. @font-face {
  51. font-family:"Hack";
  52. font-weight: 400;
  53. font-style: normal;
  54. src: local("Hack Regular"),
  55. url("/fonts/hack/hack-regular.woff2") format("woff2"),
  56. url("/fonts/hack/hack-regular.woff") format("woff");
  57. }
  58. /* General ---------------------------------------------------------------- */
  59. /* Default light theme */
  60. :root, :root.light {
  61. /* Font declarations */
  62. --sans-font: Open Sans, Noto Sans, Helvetica, sans-serif;
  63. --mono-font: Hack, Noto Mono, Courier, monospace;
  64. /* Effect transitions */
  65. --link-trans: color 0.5s, background 0.5s, ease-in-out;
  66. --img-trans: opacity 0.5s ease-in-out;
  67. /* Palette */
  68. --orange: #ff851b;
  69. --dark-orange: #c27d42;
  70. --light-gray: #c8c8c8; /* (HS)L: 200/255 */
  71. --gray: #808080; /* (HS)L: 128/255 */
  72. --gray-240: #f0f0f0; /* (HS)L: 240/255 */
  73. --gray-100: #646464; /* (HS)L: 100/255 */
  74. --gray-50: #323232; /* (HS)L: 50/255 */
  75. /* Sections */
  76. --bg-color: #fff;
  77. --text-color: var(--gray-100);
  78. --heading-color: var(--gray-100);
  79. --link-color: var(--orange);
  80. --link-hover-color: var(--gray-50);
  81. --link-visited-color: var(--dark-orange);
  82. --nav-link-color: var(--gray);
  83. --nav-link-hover-color: var(--orange);
  84. --main-title-link-color: var(--link-color);
  85. --main-title-link-hover-color: var(--link-hover-color);
  86. --toc-title-color: var(--gray);
  87. --toc-bg-color: var(--gray-240);
  88. --toc-link-color: var(--link-color);
  89. --toc-link-hover-color: var(--link-hover-color);
  90. /* Syntax highlighting */
  91. --code-border-color: var(--light-gray);
  92. --code-bg-color: var(--gray-240);
  93. --code-text-color: var(--gray);
  94. --code-error-color: #c60901;
  95. --code-datatype-color: var(--gray-50);
  96. --code-string-color: var(--orange);
  97. }
  98. * {
  99. margin: 0;
  100. padding: 0;
  101. box-sizing: border-box;
  102. }
  103. html {
  104. background: var(--bg-color);
  105. color: var(--text-color);
  106. font-family: var(--sans-font);
  107. font-size: 62.5%;
  108. }
  109. h1, h2, h3, h4, h5, h6 {
  110. color: var(--heading-color);
  111. word-wrap: break-word;
  112. }
  113. h1 {
  114. margin: 4rem 0 2rem;
  115. font-size: 2.8rem;
  116. }
  117. h2 {
  118. margin: 3rem 0 1.5rem;
  119. font-size: 2.4rem;
  120. }
  121. h3 {
  122. margin: 3rem 0 1.5rem;
  123. font-size: 2.2rem;
  124. }
  125. a {
  126. font-weight: 500;
  127. color: var(--link-color);
  128. text-decoration: none;
  129. }
  130. a:hover {
  131. color: var(--link-hover-color);
  132. transition: var(--link-trans);
  133. }
  134. a:visited { color: var(--link-visited-color); }
  135. code {
  136. font-family: var(--mono-font);
  137. }
  138. /* Sections --------------------------------------------------------------- */
  139. .header {
  140. margin: 5rem auto;
  141. }
  142. .header-title {
  143. text-align: center;
  144. margin: 0 auto 1.6rem;
  145. font-size: 3.8rem;
  146. }
  147. .header-title__link, .header-title__link:hover {
  148. background: none;
  149. color: var(--heading-color);
  150. text-decoration: none;
  151. }
  152. .nav {
  153. margin: 0 auto;
  154. }
  155. .nav__link {
  156. font-size: 2rem;
  157. font-weight: 400;
  158. color: var(--nav-link-color);
  159. text-decoration: none;
  160. }
  161. .nav__link:hover {
  162. color: var(--nav-link-hover-color);
  163. }
  164. .main {
  165. font-size: 1.6rem;
  166. word-wrap: break-word;
  167. }
  168. .main-title { font-size: 2.6rem; }
  169. .main-title a { color: var(--main-title-link-color); }
  170. .main-title a:hover { color: var(--main-title-link-hover-color); }
  171. .main p { margin: 1.5rem 0; }
  172. .main ul { list-style: none; }
  173. .main ul li:before {
  174. content: "•";
  175. padding: 0 0.5rem 0 0;
  176. }
  177. .toc {
  178. margin: 2rem 0 4rem;
  179. background: var(--toc-bg-color);
  180. border-radius: 0.5rem;
  181. }
  182. .toc-title {
  183. margin: 0 0 1rem;
  184. font-size: 2rem;
  185. font-weight: 600;
  186. color: var(--toc-title-color);
  187. }
  188. .toc a {
  189. font-weight: 400;
  190. color: var(--toc-link-color);
  191. }
  192. .toc a:hover { color: var(--toc-link-hover-color); }
  193. .toc ul { list-style: none; }
  194. .toc ul li:before { content: unset; }
  195. .toc ul li ul li { margin: 0 0 0 1.2rem; }
  196. .toc ul li ul li ul li { margin: 0 0 0 2.6rem; }
  197. .footer {
  198. margin: 4rem auto;
  199. font-size: 1.2rem;
  200. }
  201. .footer p {
  202. margin: 1rem 0;
  203. text-align: center;
  204. }
  205. .footer a[rel="license"]:hover {
  206. background: none;
  207. }
  208. .footer a[rel="license"] img {
  209. margin: 1rem auto;
  210. border: 0;
  211. opacity: 0.8;
  212. }
  213. .footer a[rel="license"] img:hover {
  214. opacity: 1.0;
  215. transition: var(--img-trans);
  216. }
  217. /* Syntax highlighting ---------------------------------------------------- */
  218. div.sourceCode {
  219. padding: 0 1rem;
  220. border-top: 1.2rem solid var(--code-border-color);
  221. border-radius: 0.5rem;
  222. background: var(--code-bg-color);
  223. }
  224. pre.sourceCode {
  225. padding: 2rem 0;
  226. background: var(--code-bg-color);
  227. overflow: auto;
  228. }
  229. .sourceLine, .sourceLine:hover {
  230. background: var(--code-bg-color);
  231. color: var(--code-text-color);
  232. }
  233. .sourceLine .er { color: var(--code-error-color); }
  234. .sourceLine .dt { color: var(--code-datatype-color); }
  235. .sourceLine .st { color: var(--code-string-color); }
  236. /* Media queries ---------------------------------------------------------- */
  237. @media (max-width: 689px) {
  238. .header, .main, .footer { padding: 0 2rem; }
  239. /* Stack nav items */
  240. .nav { width: 18rem; }
  241. .nav__link { display: block; }
  242. /* TOC spans full width */
  243. .toc {
  244. margin: 0 -2rem;
  245. padding: 4rem 2rem;
  246. }
  247. }
  248. @media (min-width: 690px) {
  249. .header, .main, .footer { padding: 0 5rem; }
  250. /* Horizontal nav */
  251. .nav { text-align: center; }
  252. .nav__link {
  253. margin: 0 1rem;
  254. display: inline;
  255. }
  256. /* TOC is 45% of min-width */
  257. .toc {
  258. margin: 0;
  259. padding: 4rem;
  260. width: 31rem;
  261. }
  262. }
  263. @media (min-width: 960px) {
  264. /* Center sections, set fixed width */
  265. .header, .main, .footer {
  266. width: 95rem;
  267. margin-left: auto;
  268. margin-right: auto;
  269. }
  270. }
  271. /* Dark theme ------------------------------------------------------------- */
  272. @media (prefers-color-scheme: dark) {
  273. :root {
  274. /* Palette */
  275. --orange: #ff851b;
  276. --dark-orange: #c27d42;
  277. --light-gray: #c8c8c8; /* (HS)L: 200/255 */
  278. --gray: #808080; /* (HS)L: 128/255 */
  279. --gray-50: #323232; /* (HS)L: 50/255 */
  280. --gray-35: #232323; /* (HS)L: 35/255 */
  281. /* Sections */
  282. --bg-color: var(--gray-50);
  283. --text-color: var(--light-gray);
  284. --heading-color: var(--light-gray);
  285. --link-color: var(--orange);
  286. --link-hover-color: var(--light-gray);
  287. --link-visited-color: var(--dark-orange);
  288. --nav-link-color: var(--light-gray);
  289. --nav-link-hover-color: var(--orange);
  290. --main-title-link-color: var(--link-color);
  291. --main-title-link-hover-color: var(--link-hover-color);
  292. --toc-title-color: var(--gray);
  293. --toc-bg-color: var(--gray-35);
  294. --toc-link-color: var(--link-color);
  295. --toc-link-hover-color: var(--link-hover-color);
  296. /* Syntax highlighting */
  297. --code-border-color: #ed9c55; /* light orange */
  298. --code-bg-color: var(--gray-35);
  299. --code-text-color: #555; /* (HS)L: 85/255 */
  300. --code-error-color: #c60901; /* red */
  301. --code-datatype-color: var(--gray);
  302. --code-string-color: #ed9c55;
  303. }
  304. }
  305. /* Repeat inside a .dark class to continue to support theme selection links in
  306. * the nav. The .dark and .light classes allow users to override the media
  307. * query-detected setting via the selection links if desired. */
  308. :root.dark {
  309. /* Palette */
  310. --orange: #ff851b;
  311. --dark-orange: #c27d42;
  312. --light-gray: #c8c8c8; /* (HS)L: 200/255 */
  313. --gray: #808080; /* (HS)L: 128/255 */
  314. --gray-50: #323232; /* (HS)L: 50/255 */
  315. --gray-35: #232323; /* (HS)L: 35/255 */
  316. /* Sections */
  317. --bg-color: var(--gray-50);
  318. --text-color: var(--light-gray);
  319. --heading-color: var(--light-gray);
  320. --link-color: var(--orange);
  321. --link-hover-color: var(--light-gray);
  322. --link-visited-color: var(--dark-orange);
  323. --nav-link-color: var(--light-gray);
  324. --nav-link-hover-color: var(--orange);
  325. --main-title-link-color: var(--link-color);
  326. --main-title-link-hover-color: var(--link-hover-color);
  327. --toc-title-color: var(--gray);
  328. --toc-bg-color: var(--gray-35);
  329. --toc-link-color: var(--link-color);
  330. --toc-link-hover-color: var(--link-hover-color);
  331. /* Syntax highlighting */
  332. --code-border-color: #ed9c55; /* light orange */
  333. --code-bg-color: var(--gray-35);
  334. --code-text-color: #555; /* (HS)L: 85/255 */
  335. --code-error-color: #c60901; /* red */
  336. --code-datatype-color: var(--gray);
  337. --code-string-color: #ed9c55;
  338. }