theme.css 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329
  1. /* General ---------------------------------------------------------------- */
  2. /* Default light theme */
  3. :root, :root.dark {
  4. /* Font declarations */
  5. --sans-font: Noto Sans, Helvetica, sans-serif;
  6. --mono-font: Noto Mono, Courier, monospace;
  7. /* Effect transitions */
  8. --link-trans: color 0.5s, background 0.5s, ease-in-out;
  9. --img-trans: opacity 0.5s ease-in-out;
  10. /* Palette */
  11. --orange: #aaaaff;
  12. --dark-orange: #ca8aff;
  13. --light-gray: #c8c8c8; /* (HS)L: 200/255 */
  14. --gray: #808080; /* (HS)L: 128/255 */
  15. --gray-240: #f0f0f0; /* (HS)L: 240/255 */
  16. --gray-100: #646464; /* (HS)L: 100/255 */
  17. --gray-50: #000000; /* (HS)L: 50/255 */
  18. --green: #00ff00;
  19. --green-desat: #40ff5c;
  20. /* Sections */
  21. --tr-even-row-color: #323264;
  22. --table-column-border-color: #0077cc;
  23. --bg-color: var(--gray-50);
  24. --text-color: var(--light-gray);
  25. --heading-color: var(--light-gray);
  26. --link-color: var(--orange);
  27. --link-hover-color: var(--light-gray);
  28. --link-visited-color: var(--dark-orange);
  29. --nav-link-color: var(--light-gray);
  30. --nav-link-hover-color: var(--orange);
  31. --main-title-link-color: var(--link-color);
  32. --main-title-link-hover-color: var(--link-hover-color);
  33. --toc-title-color: var(--gray);
  34. --toc-bg-color: var(--gray-35);
  35. --toc-link-color: var(--link-color);
  36. --toc-link-hover-color: var(--link-hover-color);
  37. /* Syntax highlighting */
  38. --code-border-color: var(--light-gray);
  39. --code-bg-color: var(--gray-240);
  40. --code-text-color: var(--gray);
  41. --code-error-color: #c60901;
  42. --code-datatype-color: var(--gray-50);
  43. --code-string-color: var(--orange);
  44. }
  45. * {
  46. margin: 0;
  47. padding: 0;
  48. box-sizing: border-box;
  49. }
  50. html {
  51. background: var(--bg-color);
  52. color: var(--text-color);
  53. font-family: var(--sans-font);
  54. font-size: 62.5%;
  55. }
  56. h1, h2, h3, h4, h5, h6 {
  57. color: var(--heading-color);
  58. word-wrap: break-word;
  59. }
  60. h1 {
  61. margin: 4rem 0 2rem;
  62. font-size: 2.8rem;
  63. }
  64. h2 {
  65. margin: 3rem 0 1.5rem;
  66. font-size: 2.4rem;
  67. }
  68. h3 {
  69. margin: 3rem 0 1.5rem;
  70. font-size: 2.2rem;
  71. }
  72. a {
  73. font-weight: 500;
  74. color: var(--link-color);
  75. text-decoration: underline;
  76. }
  77. a:hover {
  78. color: var(--link-hover-color);
  79. transition: var(--link-trans);
  80. }
  81. a:visited { color: var(--link-visited-color); }
  82. pre {
  83. border: 1px solid var(--green-desat);
  84. }
  85. code {
  86. font-family: var(--mono-font);
  87. }
  88. blockquote {
  89. background: #328;
  90. color: #CCC;
  91. font-family: serif;
  92. }
  93. table {
  94. width: 100%;
  95. }
  96. tr:nth-child(even) {
  97. background-color: var(--tr-even-row-color);
  98. }
  99. tr th {
  100. border-bottom: 1px solid var(--table-column-border-color);
  101. }
  102. tr td {
  103. border-bottom: 1px dotted var(--table-column-border-color);
  104. }
  105. dd {
  106. margin-left: 40px;
  107. }
  108. /* Sections --------------------------------------------------------------- */
  109. .header {
  110. margin: 5rem auto;
  111. }
  112. .header-title {
  113. text-align: center;
  114. margin: 0 auto 1.6rem;
  115. font-size: 3.8rem;
  116. }
  117. .header-title__link, .header-title__link:hover {
  118. background: none;
  119. color: var(--heading-color);
  120. text-decoration: underline;
  121. }
  122. .nav {
  123. margin: 0 auto;
  124. }
  125. .nav__link {
  126. font-size: 2rem;
  127. font-weight: 400;
  128. color: var(--nav-link-color);
  129. text-decoration: underline;
  130. }
  131. .nav__link:hover {
  132. color: var(--nav-link-hover-color);
  133. }
  134. .main {
  135. font-size: 1.6rem;
  136. word-wrap: break-word;
  137. }
  138. .main-title { font-size: 2.6rem; }
  139. .main-title a { color: var(--main-title-link-color); }
  140. .main-title a:hover { color: var(--main-title-link-hover-color); }
  141. .main p { margin: 1.5rem 0; }
  142. .main ol { margin: 0 0 0 2rem; }
  143. .main ol li { margin: 1rem 0; }
  144. .main ul {
  145. list-style: disc outside;
  146. margin: 0 0 0 2rem;
  147. }
  148. .main ul li { margin: 1rem 0; }
  149. .main ul li p { margin: 0; }
  150. .main ul li ul li { margin: 0 0 0 2.6rem; }
  151. .toc {
  152. margin: 2rem 0 4rem;
  153. background: var(--toc-bg-color);
  154. border-radius: 0.5rem;
  155. }
  156. .toc-title {
  157. margin: 0 0 1rem;
  158. font-size: 2rem;
  159. font-weight: 600;
  160. color: var(--toc-title-color);
  161. }
  162. .toc a {
  163. font-weight: 400;
  164. color: var(--toc-link-color);
  165. }
  166. .toc a:hover { color: var(--toc-link-hover-color); }
  167. .toc ul { list-style: none; }
  168. .toc ul li:before { content: unset; }
  169. .toc ul li ul li { margin: 0 0 0 1.2rem; }
  170. .toc ul li ul li ul li { margin: 0 0 0 2.6rem; }
  171. .footer {
  172. margin: 4rem auto;
  173. font-size: 1.2rem;
  174. }
  175. .footer p {
  176. margin: 1rem 0;
  177. text-align: center;
  178. }
  179. .footer a[rel="license"]:hover {
  180. background: none;
  181. }
  182. .footer a[rel="license"] img {
  183. margin: 1rem auto;
  184. border: 0;
  185. opacity: 0.8;
  186. }
  187. .footer a[rel="license"] img:hover {
  188. opacity: 1.0;
  189. transition: var(--img-trans);
  190. }
  191. .logo {
  192. margin: 0px auto;
  193. display: block;
  194. max-height: 480px;
  195. }
  196. .todo {
  197. color: #ff9c00;
  198. border: 1px solid #ff9c00;
  199. padding: 0 5px;
  200. }
  201. .done {
  202. color: violet;
  203. border: 1px solid violet;
  204. padding: 0 5px;
  205. }
  206. /* Syntax highlighting ---------------------------------------------------- */
  207. div.sourceCode {
  208. padding: 0 1rem;
  209. border-top: 1.2rem solid var(--code-border-color);
  210. border-radius: 0.5rem;
  211. background: var(--code-bg-color);
  212. }
  213. pre.sourceCode {
  214. padding: 2rem 0;
  215. background: var(--code-bg-color);
  216. overflow: auto;
  217. }
  218. .sourceLine, .sourceLine:hover {
  219. background: var(--code-bg-color);
  220. color: var(--code-text-color);
  221. }
  222. .sourceCode .er { color: var(--code-error-color); }
  223. .sourceCode .dt { color: var(--code-datatype-color); }
  224. .sourceCode .st { color: var(--code-string-color); }
  225. /* Indentation adjustment hack */
  226. code.sourceCode span[id^="cb"] { margin: 0 0 0 -4rem; }
  227. code.sourceCode:first-child { margin: 0 0 0 4rem; }
  228. code.sourceCode .dt { margin: 0 0 0 -2rem; }
  229. /* Media queries ---------------------------------------------------------- */
  230. @media (max-width: 689px) {
  231. .header, .main, .footer { padding: 0 2rem; }
  232. /* Scale header logo */
  233. .header-title__link img {
  234. max-width: 90%;
  235. position: relative;
  236. object-fit: cover;
  237. object-position: center;
  238. }
  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. }