diff --git a/dist/css/index.css b/dist/css/index.css index 6009ab1..b9fd109 100644 --- a/dist/css/index.css +++ b/dist/css/index.css @@ -79,6 +79,46 @@ ul, ol { margin-bottom: 1rem; } +small { + font-size: 0.875em; +} + +hr { + margin: 1rem 0; + color: var(--text-secondary); + border: 0; + border-top: 1px solid; + opacity: 0.7; +} + +blockquote { + border-left: 4px solid var(--border-color); + margin: 1.5em 0; + padding: 0.5em 1em; + background-color: var(--background-secondary); +} + +blockquote p { + margin: 0; +} + +/* ===== TYPOGRAPHY (Element Styles) ===== */ +h3 { + font-size: 1.75rem; + font-weight: 500; + line-height: 1.2; + margin-top: 0; + margin-bottom: 0.5rem; +} + +h5 { + font-size: 1.25rem; + font-weight: 500; + line-height: 1.2; + margin-top: 0; + margin-bottom: 0.5rem; +} + /* ===== GRID SYSTEM ===== */ .container { --bs-gutter-x: 1.5rem; @@ -177,177 +217,6 @@ ul, ol { } } -/* ===== SPACING UTILITIES ===== */ -.m-0 { margin: 0 !important; } -.mt-1 { margin-top: 0.25rem !important; } -.mt-3 { margin-top: 1rem !important; } -.mt-4 { margin-top: 1.5rem !important; } -.mb-0 { margin-bottom: 0 !important; } -.mb-1 { margin-bottom: 0.25rem !important; } -.mb-3 { margin-bottom: 1rem !important; } -.mb-auto { margin-bottom: auto !important; } -.my-2 { margin-top: 0.5rem !important; margin-bottom: 0.5rem !important; } -.my-4 { margin-top: 1.5rem !important; margin-bottom: 1.5rem !important; } -.mx-2 { margin-left: 0.5rem !important; margin-right: 0.5rem !important; } -.mx-3 { margin-left: 1rem !important; margin-right: 1rem !important; } -.mx-auto { margin-left: auto !important; margin-right: auto !important; } - -.p-4 { padding: 1.5rem !important; } -.px-0 { padding-left: 0 !important; padding-right: 0 !important; } -.py-0 { padding-top: 0 !important; padding-bottom: 0 !important; } -.py-3 { padding-top: 1rem !important; padding-bottom: 1rem !important; } -.pt-3 { padding-top: 1rem !important; } -.pb-0 { padding-bottom: 0 !important; } -.ps-3 { padding-left: 1rem !important; } - -/* ===== DISPLAY UTILITIES ===== */ -.d-none { display: none !important; } -.d-inline { display: inline !important; } -.d-inline-block { display: inline-block !important; } -.d-block { display: block !important; } -.d-flex { display: flex !important; } - -@media (min-width: 768px) { - .d-md-none { display: none !important; } - .d-md-inline { display: inline !important; } - .d-md-block { display: block !important; } -} - -@media (min-width: 992px) { - .d-lg-none { display: none !important; } - .d-lg-inline { display: inline !important; } - .d-lg-inline-block { display: inline-block !important; } - .d-lg-block { display: block !important; } - .d-lg-flex { display: flex !important; } -} - -/* ===== FLEXBOX UTILITIES ===== */ -.flex-column { flex-direction: column !important; } -.flex-nowrap { flex-wrap: nowrap !important; } -.flex-grow-1 { flex-grow: 1 !important; } -.justify-content-between { justify-content: space-between !important; } -.justify-content-end { justify-content: flex-end !important; } -.justify-content-evenly { justify-content: space-evenly !important; } -.align-items-center { align-items: center !important; } - -@media (min-width: 768px) { - .flex-md-row { flex-direction: row !important; } -} - -/* ===== GAP UTILITIES ===== */ -.gap-2 { gap: 0.5rem !important; } -.gap-3 { gap: 1rem !important; } - -@media (min-width: 576px) { - .gap-sm-5 { gap: 3rem !important; } -} - -/* ===== TYPOGRAPHY ===== */ -h3 { - font-size: 1.75rem; - font-weight: 500; - line-height: 1.2; - margin-top: 0; - margin-bottom: 0.5rem; -} - -.h2 { - font-size: 2rem; - font-weight: 500; - line-height: 1.2; - margin: 0; -} - -.h4 { - font-size: 1.5rem; - font-weight: 500; - line-height: 1.2; - margin: 0; -} - -.h5 { - font-size: 1.25rem; - font-weight: 500; - line-height: 1.2; - margin: 0; -} - -h5 { - font-size: 1.25rem; - font-weight: 500; - line-height: 1.2; - margin-top: 0; - margin-bottom: 0.5rem; -} - -.text-center { text-align: center !important; } -.text-start { text-align: left !important; } -.fst-italic { font-style: italic !important; } -.lh-1 { line-height: 1 !important; } - -small { - font-size: 0.875em; -} - -/* ===== COLOR UTILITIES ===== */ -.text-secondary { - color: var(--text-secondary) !important; -} - -.text-muted { - color: var(--text-secondary) !important; -} - -.text-body-emphasis { - color: var(--text-color) !important; -} - -.bg-body-secondary { - background-color: var(--background-secondary) !important; -} - -.link-secondary { - color: var(--text-secondary) !important; - text-decoration: none; -} - -.link-secondary:hover { - color: var(--link-hover-color) !important; -} - -.border-secondary { - border-color: var(--border-color) !important; -} - -/* ===== BORDERS ===== */ -.border { - border: 1px solid var(--border-color) !important; -} - -.border-bottom { - border-bottom: 1px solid var(--border-color) !important; -} - -.rounded { - border-radius: 0.375rem !important; -} - -/* ===== SHADOWS ===== */ -.shadow-sm { - box-shadow: 0 0.125rem 0.25rem var(--shadow-color) !important; -} - -.shadow { - box-shadow: 0 0.5rem 1rem var(--shadow-color) !important; -} - -/* ===== POSITIONING ===== */ -.position-relative { position: relative !important; } -.position-static { position: static !important; } - -/* ===== SIZING ===== */ -.w-100 { width: 100% !important; } - /* ===== NAVIGATION ===== */ .navbar { position: relative; @@ -415,19 +284,9 @@ small { border: 1px solid var(--border-color); } -/* ===== HR ===== */ -hr { - margin: 1rem 0; - color: var(--border-color); - border: 0; - border-top: 1px solid; - opacity: 0.25; -} - /* ===== LINKS ===== */ .link { font-family: var(--link-font-family); - color: var(--link-color); text-decoration: none; } @@ -498,17 +357,6 @@ hr { color: var(--secondary-text); } -blockquote { - border-left: 4px solid var(--border-color); - margin: 1.5em 0; - padding: 0.5em 1em; - background-color: var(--background-secondary); -} - -blockquote p { - margin: 0; -} - footer { margin-top: 0rem; padding: 1rem 0; @@ -539,7 +387,163 @@ footer { } } -/* ===== TRANSITIONS ===== */ .transition-shadow { transition: box-shadow 0.2s ease-in-out; } + +/* ===== UTILITIES (must be last to override component styles) ===== */ + +/* Typography utilities */ +.h2 { + font-size: 2rem; + font-weight: 500; + line-height: 1.2; + margin: 0; +} + +.h4 { + font-size: 1.5rem; + font-weight: 500; + line-height: 1.2; + margin: 0; +} + +.h5 { + font-size: 1.25rem; + font-weight: 500; + line-height: 1.2; + margin: 0; +} + +.text-center { text-align: center; } +.text-start { text-align: left; } +.fst-italic { font-style: italic; } +.lh-1 { line-height: 1; } + +/* Color utilities */ +.text-secondary { + color: var(--text-secondary); +} + +.text-muted { + color: var(--text-secondary); +} + +.text-body-emphasis { + color: var(--text-color); +} + +.bg-body-secondary { + background-color: var(--background-secondary); +} + +.link-secondary { + color: var(--text-secondary); + text-decoration: none; +} + +.link-secondary:hover { + color: var(--link-hover-color); +} + +.border-secondary { + border-color: var(--border-color); +} + +/* Border utilities */ +.border { + border: 1px solid var(--border-color); +} + +.border-bottom { + border-bottom: 1px solid var(--border-color); +} + +header.border-bottom { + border-bottom: 4px double var(--text-secondary); +} + +.rounded { + border-radius: 0.375rem; +} + +/* Shadow utilities */ +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem var(--shadow-color); +} + +.shadow { + box-shadow: 0 0.5rem 1rem var(--shadow-color); +} + +/* Positioning utilities */ +.position-relative { position: relative; } +.position-static { position: static; } + +/* Sizing utilities */ +.w-100 { width: 100%; } + +/* Display utilities */ +.d-none { display: none; } +.d-inline { display: inline; } +.d-inline-block { display: inline-block; } +.d-block { display: block; } +.d-flex { display: flex; } + +@media (min-width: 768px) { + .d-md-none { display: none; } + .d-md-inline { display: inline; } + .d-md-block { display: block; } +} + +@media (min-width: 992px) { + .d-lg-none { display: none; } + .d-lg-inline { display: inline; } + .d-lg-inline-block { display: inline-block; } + .d-lg-block { display: block; } + .d-lg-flex { display: flex; } +} + +/* Flexbox utilities */ +.flex-column { flex-direction: column; } +.flex-nowrap { flex-wrap: nowrap; } +.flex-grow-1 { flex-grow: 1; } +.justify-content-between { justify-content: space-between; } +.justify-content-end { justify-content: flex-end; } +.justify-content-evenly { justify-content: space-evenly; } +.align-items-center { align-items: center; } + +@media (min-width: 768px) { + .flex-md-row { flex-direction: row; } +} + +/* Gap utilities */ +.gap-2 { gap: 0.5rem; } +.gap-3 { gap: 1rem; } + +@media (min-width: 576px) { + .gap-sm-5 { gap: 3rem; } +} + +/* Spacing utilities */ +.m-0 { margin: 0; } +.mt-1 { margin-top: 0.25rem; } +.mt-3 { margin-top: 1rem; } +.mt-4 { margin-top: 1.5rem; } +.mb-0 { margin-bottom: 0; } +.mb-1 { margin-bottom: 0.25rem; } +.mb-3 { margin-bottom: 1rem; } +.mb-auto { margin-bottom: auto; } +.my-2 { margin-top: 0.5rem; margin-bottom: 0.5rem; } +.my-4 { margin-top: 1.5rem; margin-bottom: 1.5rem; } +.mx-2 { margin-left: 0.5rem; margin-right: 0.5rem; } +.mx-3 { margin-left: 1rem; margin-right: 1rem; } +.mx-auto { margin-left: auto; margin-right: auto; } + +.p-4 { padding: 1.5rem; } +.px-0 { padding-left: 0; padding-right: 0; } +.py-0 { padding-top: 0; padding-bottom: 0; } +.py-3 { padding-top: 1rem; padding-bottom: 1rem; } +.pt-3 { padding-top: 1rem; } +.pb-0 { padding-bottom: 0; } +.ps-3 { padding-left: 1rem; } diff --git a/dist/index.html b/dist/index.html index 14b6c4a..5e8c65c 100644 --- a/dist/index.html +++ b/dist/index.html @@ -102,12 +102,7 @@ -
+

Biography - Yan Lin

diff --git a/templates/index.html b/templates/index.html index 50dbd07..a433518 100644 --- a/templates/index.html +++ b/templates/index.html @@ -1,12 +1,7 @@ {% extends 'base.html' %} {% block title %}Yan Lin's Homepage{% endblock %} {% block navigation %} {% include 'partials/navigation.html' %} {% endblock %} {% block content %} -

+

Biography - Yan Lin