/* VARIABLES with default LIGHT MODE */ :root { --bg-main: #fffff0; --bg-special: #e9d79f; --border-radius-max: 250px; --border-radius-default: 12px; --border-radius-minimal: 5px; --font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Helvetica Neue", Arial, sans-serif; --font-size-default: 1rem; --font-size-h1: 2rem; --font-size-small: 0.85rem; --gap-default: 1rem; --gap-medium: 1.5rem; --gap-large: 2rem; --gap-small: 0.5rem; --glow: 0 0 0 3px rgba(233, 215, 159, 0.24); --line-height-default: 1.5; --line-height-heading: 1.2; --link-color: #996100; --link-hover: #b58900; --margin-padding-Y-default: 20px 0; --margin-padding-Y-big: 40px 0; --margin-padding-Y-small: 10px 0; --shadow-default: 0 2px 6px rgba(30, 30, 30, 0.15); --text-color: #1e1e1e; } /* BASE SETTINGS */ *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } html { font-family: var(--font-family); font-size: var(--font-size-default); line-height: var(--line-height-default); scroll-behavior: smooth; & .theme-toggle .icon-moon { display: block; } & .theme-toggle .icon-sun { display: none; } /* DARK MODE */ &[data-theme="dark"] { --bg-main: #0a234a; --bg-special: #1e4a73; --glow: rgba(79, 195, 247, 0.24); --link-color: #4fc3f7; --link-hover: #039be5; --shadow-default: 0 2px 6px rgba(224, 224, 224, 0.15); --text-color: #e0e0e0; & .theme-toggle .icon-moon { display: none; } & .theme-toggle .icon-sun { display: block; } } } body { background-color: var(--bg-main); color: var(--text-color); display: grid; grid-template-rows: auto auto 1fr auto; /* Ensure header & navmenu at top, main taking up main space, footer at bottom */ margin: 1.5rem auto; max-width: 740px; min-height: 100vh; } main { margin: 0.5rem 0; p { margin-bottom: var(--gap-default); } /* Avoid affecting icon imgs in header & footer */ & img { border-radius: var(--border-radius-minimal); max-width: 90%; @media (max-width: 768px) { max-width: 100%; } } @media (max-width: 1024px) { margin: 20px; } } /* TYPOGRAPHY & text elements */ a { color: var(--link-color); font-weight: bold; &:hover { color: var(--link-hover); text-decoration: none; } } blockquote { border-left: 4px solid var(--bg-special); font-style: italic; margin: var(--gap-large); padding-left: var(--gap-default); @media (max-width: 1024px) { margin: var(--gap-large) 0; } } dl { margin: var(--gap-large) 0; dt { color: var(--link-color); font-weight: bold; padding: var(--margin-padding-Y-small); } dd { line-height: var(--line-height-body); padding-left: var(--gap-medium); } } figure { font-style: italic; margin: var(--gap-small) 0 var(--gap-default) 0; text-align: center; } h1, h2, h3, h4, h5, h6 { line-height: var(--line-height-heading); margin: var(--gap-large) 0 var(--gap-default); } h1 { font-size: var(--font-size-h1); } h2 { font-size: 1.7rem; } h3 { font-size: 1.5rem; } h4 { font-size: 1.2rem; } h5 { font-size: 1.1rem; } h6 { font-size: var(--font-size-default); } hr { border: none; border-top: 2px solid var(--bg-special); color: var(--bg-special); } /* Lists generated from markdown text */ ol, ul { padding-left: var(--gap-medium); margin-bottom: var(--gap-default); } /* Lists for site navigation */ ul[class$="list"] { list-style: none; padding-left: 0; margin-bottom: 0; } section { margin: var(--margin-padding-Y-default); } time { font-style: italic; } ::selection { background-color: var(--link-hover); color: var(--bg-main); } /* SPECIAL ELEMENTS */ /* Code line */ p > code { background-color: var(--bg-special); border-radius: var(--border-radius-minimal); font-size: 0.9rem; padding: 0.2rem 0.4rem; } /* Code block */ .highlight { margin: 1rem auto; & > pre { border-radius: var(--border-radius-minimal); max-width: 715px; overflow-x: auto; /* enables horizontal scrolling */ padding: 0.5rem; @media (max-width: 768px) { max-width: 330px; -webkit-overflow-scrolling: touch; /* iOS Safari only */ } } } /* Description list centered with borders */ .dl-borders-centered { border-bottom: 2px dotted var(--link-color); border-top: 2px dotted var(--link-color); margin: var(--gap-large) auto; padding: var(--gap-default) 0; width: fit-content; }