Initialize project with clean ignore rules

This commit is contained in:
2026-03-09 04:08:19 +00:00
commit be6bf12d35
85 changed files with 4285 additions and 0 deletions

89
assets/css/custom.css Normal file
View File

@@ -0,0 +1,89 @@
/* --- 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;
}