/* Colors */ :root { --background-color: white; --header-background-color: #202020; --text-color: black; --background-text-color: white; --button-text-color: white; --link-color: #3983C4; --pre-color: #F7F7F7; --table-color: #F7F7F7; --table-border-color: lightgray; --quote-color: #777777; --ruler-start: #ccc; --ruler-middle: #333; img.logo { filter: brightness(0%); /* black as --text-color */ } } @media (prefers-color-scheme: dark) { :root { --background-color: #2d2d2d; --text-color: #d2d2d2; --background-text-color: #d2d2d2; --button-text-color: #d2d2d2; --pre-color: #555555; --table-color: #555555; --quote-color: #a2a2a2; --ruler-start: #333; --ruler-middle: #ccc; img.logo { /* --text-color converted using https://codepen.io/sosuke/pen/Pjoqqp */ filter: invert(100%) sepia(0%) saturate(7228%) hue-rotate(67deg) brightness(81%) contrast(105%); /* #d2d2d2 */ } } } img.logo { height: 100%; } .logolinks a + a { margin-left: 0.5em; } .header { background:var(--header-background-color); } .header-grid { display:grid; grid-template-columns: 1fr fit-content(200px); grid-template-areas: 'main-nav logolinks' 'header header'; width: 100%; max-width: 1024px; margin: 0 auto; /* center horizontally */ } /* grid container */ .main-grid { display:grid; grid-template-areas: 'page-content' 'sidebar' 'footer'; width: 100%; max-width: 1024px; margin: 0 auto; /* center horizontally */ } /* general column padding */ .main-grid > * { padding:1rem; } /* assign columns to grid areas */ .header-grid > .header { grid-area:header; font-size: 1.5em; /* h2 size */ padding: 0 1rem 1rem 1rem; /* trbl */ } .header-grid > .main-nav { padding: 0.5em 1rem; grid-area:main-nav; font-size: 0.9em; display: flex; align-items: center; } .header-grid > .logolinks { grid-area:logolinks; height: 1em; padding: 0rem 1rem; margin: auto 0; /* center vertically */ } .main-grid > .page-content { grid-area:page-content; } .main-grid > .sidebar { grid-area:sidebar; padding-top: 0em; } .main-grid > .sidebar hr { margin-top: 0em; } .main-grid > .footer { grid-area:footer; } .main-grid > .header, .main-grid > .main-nav { padding:0.5em; } @media (min-width:768px) { /* Consider switching sidebar/main-nav to the left */ .header-grid { grid-template-columns: 1fr fit-content(200px) 280px; grid-template-areas: 'header logolinks main-nav'; } .header-grid > .header { padding:1rem; } .header-grid > .logolinks { padding:1rem 0; } .header-grid > .main-nav { /* justify-content: center;*/ } .main-grid { grid-template-columns: 1fr 280px; grid-template-areas: 'page-content sidebar' 'footer footer'; } } .header-grid > .header { color: var(--background-text-color); } /* General margins/reset */ body, h1, h2, h3, h4, h5, h6, p, blockquote, pre, hr, dl, dd, ol, ul, figure { margin: 0; padding: 0; } h1 { margin-bottom: 0.5em; } h2 { margin-top: 0.8em; margin-bottom: 0.8em; } h3 { margin-top: 0.7em; margin-bottom: 0.7em; } p + p { margin: 1em 0; } p,ul,ol { line-height: 1.4; } ul,ol { margin-top: 1em; margin-bottom: 1em; padding-left: 20px; } /* Paragraph at top should not have a top margin */ main.page-content > p:first-child { margin-top: 0; } /* General styling */ body { background-color: var(--background-color); color: var(--text-color); font-family: -apple-system, "Helvetica Neue", "Lucida Grande", sans-serif; font-size: initial; } a { color: var(--link-color); } .post-header a { color: var(--text-color); } a:link { background: inherit; text-decoration: none; } a:visited { filter: brightness(150%); background: inherit; } a:hover { text-decoration:underline; } a.navigation+a.navigation { padding-left: 1.2em; } /* Specific styling */ .main-grid > .footer { padding: 10px; font-size: 0.7em; text-align: center; } .header-grid > .main-nav { } .header-grid > .main-nav a + a { padding-left: 0.3em; } .main-grid > .sidebar { font-size: 0.8em; } /* Don't wrap long blog post titles */ .main-grid > .sidebar .links li { text-wrap: nowrap; color: var(--link-color); overflow: hidden; text-overflow: ellipsis; } /* Block code segments */ pre { margin: 10px 0px; padding: 8px; border-radius: 5px; background-color: var(--pre-color); /* Tricky to avoid this */ white-space: pre-wrap; } code { padding: 0 0.25em; background-color: var(--pre-color); border-radius: 3px; } pre > code { margin: 0; padding: 0; } /* Tables */ table { border-radius: 5px 5px 5px 5px; background-color: var(--table-color); border-collapse: collapse; margin: 1em auto; font-size: 0.9em; } th { padding: 0.5em; } td { border-top: 1px solid lightgray; padding: 0.5em; } td+td,th+th { border-left: 1px solid lightgray; } /* Layout debug coloring */ /* .header-grid > .header { background:#f97171; } .header-grid > .main-nav { background:gray; } .main-grid > .page-content { background:#fff; } .main-grid > .sidebar { background:#f5d55f; } .main-grid > .footer { background:#72c2f1; } */ /* Image centering */ img.centerframe, img.center { display: block; margin-left: auto; margin-right: auto; } /* Horizontal ruler */ hr { margin-top: 1em; margin-bottom: 1em; border: 0; height: 1px; background: var(--ruler-middle); background-image: linear-gradient(to right, var(--ruler-start), var(--ruler-middle), var(--ruler-start)); } /* Positioning date below blog posts */ p.post-meta { margin: 0; font-size: 0.8em; } .post-header h1 { margin-bottom: 0em; } .post-header { margin-bottom: 1em; } div.center { text-align: center; } /* Download / Purchase buttons */ .btn-dl {background-image: linear-gradient(to bottom, #3983C4 0%, #042D6A 100%)} .btn-dl { border: none; padding: 0.5em 1.5em; text-align: center; transition: 0.5s; background-size: auto 200%; color: var(--button-text-color); border-radius: 10px; } .btn-dl:hover { background-position: bottom center; text-decoration: none; } /* The following is from Standard.mmTheme */ /* Footnotes */ div.footnotes { font-size: 0.8em; } div.footnotes li p { margin: 0.2em 0; } .sidebar ul { list-style-type: none; margin-top: 0.5em; margin-bottom: 0.5em; } .sidebar > ul { padding: 0; list-style-type: none; } .quotes ul { margin: 0.5em 0 0 0; padding: 0; list-style-type: none; } .quotes ul li { margin: 0 0 5px; padding-left: 5px; border-left: 2px solid var(--quote-color); color: var(--quote-color); } .quotes ul { margin: 0.5em 0 0 0; padding: 0; list-style-type: none; } blockquote { margin: 1em 0; padding-left: 5px; border-left: 2px solid var(--quote-color); color: var(--quote-color); }