89 lines
3.0 KiB
CSS
89 lines
3.0 KiB
CSS
/* --- 1. Global Prose Rules --- */
|
|
.article-content.prose {
|
|
width: 100%;
|
|
max-width: 65ch;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
/* --- 2. Absolute Isolation Layout --- */
|
|
.single-post-wrapper {
|
|
display: flex;
|
|
flex-direction: column; /* On mobile, they stack normally */
|
|
width: 100%;
|
|
}
|
|
|
|
@media (min-width: 1280px) {
|
|
.single-post-wrapper {
|
|
display: block; /* Turns off Flexbox completely */
|
|
}
|
|
|
|
#main-content {
|
|
/* Standard block behavior: automatically centers prose within wrapper */
|
|
display: block;
|
|
}
|
|
|
|
#sidebar-toc {
|
|
/* Removes the TOC from document flow entirely */
|
|
position: absolute;
|
|
top: 0;
|
|
|
|
/* Math: Center of wrapper (50%) + half the prose width (32.5ch) + 2rem gap */
|
|
left: calc(50% + 32.5ch + 2rem);
|
|
|
|
/* The aside needs to be exactly 100% height of the wrapper for sticky to work */
|
|
height: 100%;
|
|
width: 256px;
|
|
}
|
|
}
|
|
|
|
/* --- 3. Sticky TOC Logic --- */
|
|
#sidebar-toc .toc {
|
|
position: sticky;
|
|
top: 6rem;
|
|
max-height: calc(100vh - 8rem);
|
|
overflow-y: auto;
|
|
padding-right: 1rem;
|
|
z-index: 10;
|
|
}
|
|
|
|
/* --- 4. Projects Page (Isolated) --- */
|
|
.projects-list {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
|
gap: 1.5rem;
|
|
}
|
|
|
|
/* --- Base Styles --- */
|
|
#resume-table p { padding: .5em }
|
|
.iframe-wrapper { position: relative; padding-bottom: 56.25%; padding-top: 25px; height: 0; }
|
|
.iframe-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
|
|
#resume-table { border-collapse: collapse }
|
|
#resume-table .statements td { font-style: italic; padding: 1em; text-align: center }
|
|
#resume-table .header { padding-top: 1em; padding-left: 1em; font-weight: 700; text-transform: uppercase; text-align: left }
|
|
.google-blue { color: #4285f4; font-weight: bolder; }
|
|
.google-red { color: #ea4335; font-weight: bolder; }
|
|
.google-yellow { color: #fbbc04; font-weight: bolder; }
|
|
.google-green { color: #34a853; font-weight: bolder; }
|
|
.header-google-blue { border-bottom: 4px solid #4285f4 }
|
|
.header-google-red { border-bottom: 4px solid #ea4335 }
|
|
.header-google-yellow { border-bottom: 4px solid #fbbc04 }
|
|
.header-google-green { border-bottom: 4px solid #34a853 }
|
|
#resume-table td, #resume-table tr { border-width: 0 }
|
|
#resume-table ul { margin-top: 0; margin-bottom: 0 }
|
|
#resume-table .section-header td { padding-top: .66em; font-weight: 700 }
|
|
#resume-table .role { padding: .66em; text-align: left }
|
|
#resume-table .dates { text-align: right; padding-right: 1em }
|
|
#resume-table .quote { text-align: center }
|
|
#resume-table .twitter-blue { color: #1da1f2; font-weight: bolder }
|
|
.center { text-align: center; padding: .5em }
|
|
img[src$='#center']{ display: block; margin: 0.7rem auto; }
|
|
img[src$='#floatleft']{ float:left; margin: 0.7rem; }
|
|
img[src$='#floatright']{ float:right; margin: 0.7rem; }
|
|
.homepage .content { text-align: left; }
|
|
|
|
|
|
/* Hide any TOC link that points to an element with the 'no-toc' class */
|
|
.toc-right a.no-toc-link,
|
|
.toc-inside a.no-toc-link {
|
|
display: none !important;
|
|
} |