336 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
			
		
		
	
	
			336 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			SCSS
		
	
	
	
	
	
@use "./syntax.scss";
 | 
						|
@use "./callouts.scss";
 | 
						|
@use "./variables.scss" as *;
 | 
						|
 | 
						|
html {
 | 
						|
  scroll-behavior: smooth;
 | 
						|
}
 | 
						|
 | 
						|
body {
 | 
						|
  margin: 0;
 | 
						|
  max-width: 100%;
 | 
						|
  box-sizing: border-box;
 | 
						|
  background-color: var(--light);
 | 
						|
  font-family: var(--bodyFont);
 | 
						|
}
 | 
						|
 | 
						|
.text-highlight {
 | 
						|
  background-color: #fff236aa;
 | 
						|
  padding: 0 0.1rem;
 | 
						|
  border-radius: 5px;
 | 
						|
}
 | 
						|
 | 
						|
p, ul, text, a, tr, td, li, ol, ul, .katex {
 | 
						|
  color: var(--darkgray);
 | 
						|
  fill: var(--darkgray);
 | 
						|
}
 | 
						|
 | 
						|
a {
 | 
						|
  font-weight: 600;
 | 
						|
  text-decoration: none;
 | 
						|
  transition: color 0.2s ease;
 | 
						|
  color: var(--secondary);
 | 
						|
 | 
						|
  &:hover {
 | 
						|
    color: var(--tertiary) !important;
 | 
						|
  }
 | 
						|
 | 
						|
  &.internal {
 | 
						|
    text-decoration: none;
 | 
						|
    background-color: var(--highlight);
 | 
						|
    padding: 0 0.1rem;
 | 
						|
    border-radius: 5px;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
.desktop-only {
 | 
						|
  display: initial;
 | 
						|
  @media all and (max-width: $fullPageWidth) {
 | 
						|
    display: none;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
.mobile-only {
 | 
						|
  display: none;
 | 
						|
  @media all and (max-width: $fullPageWidth) {
 | 
						|
    display: initial;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
.page {
 | 
						|
  @media all and (max-width: $fullPageWidth) {
 | 
						|
    margin: 0 5vw;
 | 
						|
  }
 | 
						|
 | 
						|
  & p {
 | 
						|
    overflow-wrap: anywhere;
 | 
						|
  }
 | 
						|
 | 
						|
  & article {
 | 
						|
    & > h1 {
 | 
						|
      font-size: 2rem;
 | 
						|
    }
 | 
						|
 | 
						|
    & ul:has(input[type='checkbox']) {
 | 
						|
      list-style-type: none;
 | 
						|
      padding-left: 0;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  & > #quartz-body {
 | 
						|
    width: 100%;
 | 
						|
    display: flex;
 | 
						|
    @media all and (max-width: $fullPageWidth) {
 | 
						|
      flex-direction: column;
 | 
						|
    }
 | 
						|
 | 
						|
    & .sidebar {
 | 
						|
      flex: 1;
 | 
						|
      display: flex;
 | 
						|
      flex-direction: column;
 | 
						|
      gap: 2rem;
 | 
						|
      top: 0;
 | 
						|
      width: $sidePanelWidth;
 | 
						|
      margin-top: $topSpacing;
 | 
						|
      box-sizing: border-box;
 | 
						|
      padding: 0 4rem;
 | 
						|
      position: fixed;
 | 
						|
      @media all and (max-width: $fullPageWidth) {
 | 
						|
        position: initial;
 | 
						|
        flex-direction: row;
 | 
						|
        padding: 0;
 | 
						|
        width: initial;
 | 
						|
        margin-top: 4rem;
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    & .sidebar.left {
 | 
						|
      left: calc(calc(100vw - $pageWidth) / 2 - $sidePanelWidth);
 | 
						|
      @media all and (max-width: $fullPageWidth) {
 | 
						|
        gap: 1rem;
 | 
						|
        align-items: center;
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    & .sidebar.right {
 | 
						|
      right: calc(calc(100vw - $pageWidth) / 2 - $sidePanelWidth);
 | 
						|
      & > * {
 | 
						|
        @media all and (max-width: $fullPageWidth) {
 | 
						|
          flex: 1;
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  & .page-header {
 | 
						|
    width: $pageWidth;
 | 
						|
    margin: $topSpacing auto 0 auto;
 | 
						|
    @media all and (max-width: $fullPageWidth) {
 | 
						|
      width: initial;
 | 
						|
      margin-top: 2rem;
 | 
						|
    }
 | 
						|
  }
 | 
						|
 | 
						|
  & .center, & footer {
 | 
						|
    width: $pageWidth;
 | 
						|
    margin-left: auto;
 | 
						|
    margin-right: auto;
 | 
						|
    @media all and (max-width: $fullPageWidth) {
 | 
						|
      width: initial;
 | 
						|
      margin-left: 0;
 | 
						|
      margin-right: 0;
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
input[type="checkbox"] {
 | 
						|
  transform: translateY(2px);
 | 
						|
  color: var(--secondary);
 | 
						|
  border-color: var(--lightgray);
 | 
						|
  background-color: var(--light);
 | 
						|
}
 | 
						|
 | 
						|
blockquote {
 | 
						|
  margin: 1rem 0;
 | 
						|
  border-left: 3px solid var(--secondary);
 | 
						|
  padding-left: 1rem;
 | 
						|
  transition: border-color 0.2s ease;
 | 
						|
}
 | 
						|
 | 
						|
h1,
 | 
						|
h2,
 | 
						|
h3,
 | 
						|
h4,
 | 
						|
h5,
 | 
						|
h6,
 | 
						|
thead {
 | 
						|
  font-family: var(--headerFont);
 | 
						|
  color: var(--dark);
 | 
						|
  font-weight: revert;
 | 
						|
  margin: 2rem 0 0;
 | 
						|
 | 
						|
  article > & > a {
 | 
						|
    color: var(--dark);
 | 
						|
    &.internal {
 | 
						|
      background-color: transparent;
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
h1, h2, h3, h4, h5, h6 {
 | 
						|
  &[id] > a[href^="#"] {
 | 
						|
    margin: 0 0.5rem;
 | 
						|
    opacity: 0;
 | 
						|
    transition: opacity 0.2s ease;
 | 
						|
    transform: translateY(-0.1rem);
 | 
						|
    display: inline-block;
 | 
						|
    font-family: var(--codeFont);
 | 
						|
    user-select: none;
 | 
						|
  }
 | 
						|
  &[id]:hover > a {
 | 
						|
    opacity: 1;
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
div[data-rehype-pretty-code-fragment] {
 | 
						|
  line-height: 1.5rem;
 | 
						|
  position: relative;
 | 
						|
 | 
						|
  & > div[data-rehype-pretty-code-title] {
 | 
						|
    font-family: var(--codeFont);
 | 
						|
    font-size: 0.9rem;
 | 
						|
    padding: 0.1rem 0.8rem;
 | 
						|
    border: 1px solid var(--lightgray);
 | 
						|
    width: max-content;
 | 
						|
    border-radius: 5px;
 | 
						|
    margin-bottom: -0.8rem;
 | 
						|
    color: var(--darkgray);
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
pre {
 | 
						|
  font-family: var(--codeFont);
 | 
						|
  padding: 0.5rem;
 | 
						|
  border-radius: 5px;
 | 
						|
  overflow-x: auto;
 | 
						|
  border: 1px solid var(--lightgray);
 | 
						|
 | 
						|
  & > code {
 | 
						|
    background: none;
 | 
						|
    padding: 0;
 | 
						|
    font-size: 0.85rem;
 | 
						|
    counter-reset: line;
 | 
						|
    counter-increment: line 0;
 | 
						|
    display: grid;
 | 
						|
 | 
						|
    & .line {
 | 
						|
      padding: 0 0.25rem;
 | 
						|
      box-sizing: border-box;
 | 
						|
      border-left: 3px solid transparent;
 | 
						|
 | 
						|
      &.highlighted {
 | 
						|
        background-color: var(--highlight);
 | 
						|
        border-left: 3px solid var(--secondary);
 | 
						|
      }
 | 
						|
 | 
						|
      &::before {
 | 
						|
        content: counter(line);
 | 
						|
        counter-increment: line;
 | 
						|
        width: 1rem;
 | 
						|
        margin-right: 1rem;
 | 
						|
        display: inline-block;
 | 
						|
        text-align: right;
 | 
						|
        color: rgba(115, 138, 148, 0.4);
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
code {
 | 
						|
  font-size: 0.9em;
 | 
						|
  color: var(--dark);
 | 
						|
  font-family: var(--codeFont);
 | 
						|
  border-radius: 5px;
 | 
						|
  padding: 0.1rem 0.2rem;
 | 
						|
  background: var(--lightgray);
 | 
						|
}
 | 
						|
 | 
						|
tbody, li, p {
 | 
						|
  line-height: 1.5rem;
 | 
						|
}
 | 
						|
 | 
						|
table {
 | 
						|
  border: 2px solid var(--gray);
 | 
						|
  width: 100%;
 | 
						|
  padding: 1.5rem;
 | 
						|
  border-collapse: collapse;
 | 
						|
}
 | 
						|
 | 
						|
td, th {
 | 
						|
  padding: 0.2rem 1rem;
 | 
						|
  border: 2px solid var(--gray);
 | 
						|
}
 | 
						|
 | 
						|
img {
 | 
						|
  max-width: 100%;
 | 
						|
  border-radius: 5px;
 | 
						|
  margin: 1rem 0;
 | 
						|
}
 | 
						|
 | 
						|
p > img + em {
 | 
						|
  display: block;
 | 
						|
  transform: translateY(-1rem);
 | 
						|
}
 | 
						|
 | 
						|
hr {
 | 
						|
  width: 100%;
 | 
						|
  margin: 2rem auto;
 | 
						|
  height: 1px;
 | 
						|
  border: none;
 | 
						|
  background-color: var(--lightgray);
 | 
						|
}
 | 
						|
 | 
						|
section {
 | 
						|
  margin: 2rem auto;
 | 
						|
  border-top: 1px solid var(--lightgray);
 | 
						|
 | 
						|
  & > #footnote-label {
 | 
						|
    & > a {
 | 
						|
      color: var(--dark);
 | 
						|
    }
 | 
						|
  }
 | 
						|
  
 | 
						|
  & ol, & ul {
 | 
						|
    padding: 0 1em
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
audio, video {
 | 
						|
  width: 100%;
 | 
						|
  border-radius: 5px;
 | 
						|
}
 | 
						|
 | 
						|
.spacer {
 | 
						|
  flex: 1 1 auto;
 | 
						|
}
 | 
						|
 | 
						|
ul.overflow, ol.overflow {
 | 
						|
  height: 400px;
 | 
						|
  overflow-y: scroll;
 | 
						|
 | 
						|
  & > li:last-of-type {
 | 
						|
    margin-bottom: 50px;
 | 
						|
  }
 | 
						|
 | 
						|
  &:after {
 | 
						|
    pointer-events: none;
 | 
						|
    content: '';
 | 
						|
    width: 100%;
 | 
						|
    height: 50px;    
 | 
						|
    position: absolute;
 | 
						|
    left: 0;
 | 
						|
    bottom: 0;
 | 
						|
    background: linear-gradient(transparent 0px, var(--light));
 | 
						|
  }
 | 
						|
}
 |