diff options
Diffstat (limited to 'src/styles')
| -rw-r--r-- | src/styles/index.css | 332 | ||||
| -rw-r--r-- | src/styles/post.css | 129 | ||||
| -rw-r--r-- | src/styles/resume.css | 299 | ||||
| -rw-r--r-- | src/styles/resume.mobile.css | 25 | ||||
| -rw-r--r-- | src/styles/sitemap.css | 130 |
5 files changed, 915 insertions, 0 deletions
diff --git a/src/styles/index.css b/src/styles/index.css new file mode 100644 index 0000000..3856449 --- /dev/null +++ b/src/styles/index.css @@ -0,0 +1,332 @@ +:root { + --bg: transparent; + --color: black; + --link-color: darkviolet; + --image-border: rgba(0, 0, 0, 0.3); + --image-border-hover: rgba(0, 0, 0, 0.7); + --image-overlay: rgba(0, 0, 0, 0.7); + --theme-btn-bg: white; + --theme-btn-border: gray; + --theme-btn-color: black; + --input-focus-border: lightgray; + --action-button-border: #f0f0f0; +} + +@media (prefers-color-scheme: dark) { + :root:not([data-theme="light"]) { + --bg: rgba(13, 17, 23, 0.92); + --color: #e6edf3; + --link-color: #b083f0; + --image-border: rgba(255, 255, 255, 0.2); + --image-border-hover: rgba(255, 255, 255, 0.5); + --image-overlay: rgba(0, 0, 0, 0.85); + --theme-btn-bg: #21262d; + --theme-btn-border: #444c56; + --theme-btn-color: #e6edf3; + --input-focus-border: #586069; + --action-button-border: #30363d; + } +} + +[data-theme="dark"] { + --bg: rgba(13, 17, 23, 0.92); + --color: #e6edf3; + --link-color: #b083f0; + --image-border: rgba(255, 255, 255, 0.2); + --image-border-hover: rgba(255, 255, 255, 0.5); + --image-overlay: rgba(0, 0, 0, 0.85); + --theme-btn-bg: #21262d; + --theme-btn-border: #444c56; + --theme-btn-color: #e6edf3; + --input-focus-border: #586069; + --action-button-border: #30363d; +} + +body { + width: 50vw; + height: calc(100vh - 2rem); + font-family: "Noto Sans", 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + font-size: 14px; + background-color: var(--bg); + color: var(--color); + padding: 0; + margin: auto; +} + +header { + width: 100%; +} + +header > h1 { + font-weight: bold; + font-size: 2rem; + padding-top: 1rem; + padding-bottom: 0.5rem; + margin: 0; +} + +header > nav { + margin-top: 1rem; + margin-bottom: 1rem; + padding-left: 0.25rem; +} + +header > nav > ul { + display: flex; + flex-direction: row; + list-style-type: none; + margin: 0; + padding: 0; + gap: 1rem; +} + +header > nav > ul > li { + display: flex; + align-items: center; +} + +header > nav > ul a { + text-decoration: none; + color: var(--link-color); + font-size: 1rem; + border-bottom: 1px solid transparent; +} + +header > nav > ul a:hover { + opacity: 0.8; + text-decoration: underline; +} + +h1 { + font-size: 2.5rem; +} + +h2 { + font-size: 1.5rem; + margin-bottom: 0rem; + margin-top: 2rem; +} + +section { + width: 100%; +} + +p { + text-align: left; +} + +a { + color: var(--link-color); +} + +a:hover { + opacity: 0.7; +} + +/* Theme toggle button */ +#theme-toggle { + background: none; + border: 1px solid var(--theme-btn-border); + color: var(--link-color); + border-radius: 3px; + padding: 0.1rem 0.5rem; + cursor: pointer; + font-size: 0.85rem; + font-family: inherit; +} + +#theme-toggle:hover { + opacity: 0.8; +} + +/* Image styling */ +#image_container { + display: flex; + flex-direction: row; + transition: transform 100ms ease-in-out; + flex: 0 1 auto; + width: 100%; + overflow: auto; +} + +#image_container .image_item { + width: 240px; + transition: opacity 100ms ease-in-out; + padding: 0; + margin: 0; + padding-right: 12px; + cursor: pointer; + position: relative; +} + +#image_container .image_item:hover > img { + border: 2px solid var(--image-border-hover); +} + +.image_item > figcaption { + font-size: 10px; + font-style: italic; +} + +.image_item > img { + width: inherit; + border-radius: 3px; + border: 2px solid var(--image-border); +} + +.image_item_expanded_container { + position: fixed; + width: 100vw; + height: 100vh; + background-color: var(--image-overlay); + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + z-index: 1000; +} + +.image_item_expanded_container > .image_item { + width: 35vw; + opacity: 1.0 !important; +} + +input { + outline: none; + border: 1px solid transparent; + border-radius: 2px; + font-size: 1rem; + padding: 0.5rem; +} + +input:focus { + border: 1px solid var(--input-focus-border); +} + +.action_button { + border: 1px solid var(--action-button-border); + border-radius: 2px; + width: 108px; + height: 2rem; +} + +.action_button:hover { + cursor: pointer; + opacity: 0.9; +} + +/* Theme display */ +#theme_container { + position: fixed; + top: 0; + left: 0; + width: 100vw; + height: 100vh; + background-color: transparent; + z-index: -1; +} + +#theme_canvas { + width: 100%; + height: 100%; + z-index: -1; +} + +/* Theme Selector */ +#theme_section { + position: fixed; + bottom: 1rem; + left: 0; + width: 100%; + text-align: center; +} + +#theme_selector { + display: flex; + align-items: center; + justify-content: center; + bottom: 1rem; + pointer-events: all; + opacity: 1; + transition: opacity 150ms linear; + gap: 2rem; +} + +#theme_selector.hidden { + pointer-events: none; + opacity: 0; +} + +#theme_selector > button { + width: 6rem; + height: 2rem; + border-radius: 3px; + border: 1px solid var(--theme-btn-border); + color: var(--theme-btn-color); + background-color: var(--theme-btn-bg); + cursor: pointer; + transition: opacity 100ms linear; +} + +#theme_selector > button:hover { + opacity: 0.8; +} + +#theme_selector > #theme_button_default { +} + +#theme_selector > #theme_button_autumn { + background-color: orange; +} + +#theme_selector > #theme_button_winter { + background-color: #79C0D7; +} + +#theme_selector > #theme_button_spring { + background-color: #00FF7F; +} + +#theme_selector > #theme_button_summer { + background-color: yellow; +} + +.theme_button_text { + margin-left: 0.5rem; +} + +/* Phone screen adjustments */ +@media only screen and (device-width: 1280px), +only screen and (max-width:1280px) { + header > h1 { + font-size: 1.5rem; + } + + body { + width: 80vw !important; + } +} + +@media only screen and (device-width: 960px), +only screen and (max-width:960px) { + #theme_selector { + margin-left: 1rem; + margin-right: 1rem; + } + .theme_button_text { + display: none; + } + + #theme_selector > button { + width: 100%; + } + + .image_item_expanded_container > .image_item { + width: 80vw; + } + + #carousel > button { + font-size: 6rem; + top: calc(50% - 4rem); + } +} diff --git a/src/styles/post.css b/src/styles/post.css new file mode 100644 index 0000000..33b8729 --- /dev/null +++ b/src/styles/post.css @@ -0,0 +1,129 @@ +:root { + --code-bg: #F5F0FF; + --code-border: #D5C8F0; + --code-inline-color: #D0372D; + --meta-color: #707183; +} + +@media (prefers-color-scheme: dark) { + :root:not([data-theme="light"]) { + --code-bg: #1e1b2e; + --code-border: #3d3560; + --code-inline-color: #ff9090; + --meta-color: #8b929e; + } +} + +[data-theme="dark"] { + --code-bg: #1e1b2e; + --code-border: #3d3560; + --code-inline-color: #ff9090; + --meta-color: #8b929e; +} + +pre { + background-color: var(--code-bg); + border: 1px solid var(--code-border); + border-radius: 2px; + padding: 1rem; + overflow: auto; + font-size: 0.8rem; +} + +code { + font-family: "Consolas" sans-serif; + color: var(--code-inline-color); +} + +/* Shiki dual-theme support */ +.astro-code, .astro-code span { + color: var(--shiki-light) !important; + background-color: var(--shiki-light-bg) !important; +} + +@media (prefers-color-scheme: dark) { + :root:not([data-theme="light"]) .astro-code, + :root:not([data-theme="light"]) .astro-code span { + color: var(--shiki-dark) !important; + background-color: var(--shiki-dark-bg) !important; + } +} + +[data-theme="dark"] .astro-code, +[data-theme="dark"] .astro-code span { + color: var(--shiki-dark) !important; + background-color: var(--shiki-dark-bg) !important; +} + +.underline { + text-decoration: underline; +} + +.org-article-title { + display: flex; + flex-direction: row; + justify-content: space-between; +} + +.org-article-title h1 { + margin: 0; + font-family: "Space Grotesk", sans-serif; +} + +.org-article-content { + padding-bottom: 10vh; +} + +.org-article-content h2, +.org-article-content h3, +.org-article-content h4 { + position: relative; + font-family: "Space Grotesk", sans-serif; +} + +.org-article-content h2 { + font-size: 1.6rem; + border-bottom: 2px solid var(--link-color); + padding-bottom: 0.2rem; +} + +.org-article-content h3 { + font-size: 1.2rem; + color: var(--link-color); +} + +.org-article-content h2 > a.heading-anchor, +.org-article-content h3 > a.heading-anchor, +.org-article-content h4 > a.heading-anchor { + position: absolute; + left: -1.4em; + top: 0; + opacity: 0; + text-decoration: none; + font-weight: normal; + color: var(--link-color); + transition: opacity 100ms ease; +} + +.org-article-content h2:hover > a.heading-anchor, +.org-article-content h3:hover > a.heading-anchor, +.org-article-content h4:hover > a.heading-anchor { + opacity: 1; +} + +.figure p { + text-align: center; +} + +.org-article-title > h1 { + margin-bottom: 0; +} + +.org-article-title > span { + color: var(--meta-color); +} + +#org-div-home-and-up { + display: flex; + column-gap: 8px; +} diff --git a/src/styles/resume.css b/src/styles/resume.css new file mode 100644 index 0000000..3cbf769 --- /dev/null +++ b/src/styles/resume.css @@ -0,0 +1,299 @@ +@font-face { + font-family: Ubuntu; + src: url(/fonts/Ubuntu-M.ttf); + } + +:root { + --resume-bg: white; + --resume-color: black; + --resume-link-color: #343231; + --resume-section-bg: #583759; + --resume-section-color: white; + --skills-bar-bg: white; + --skills-table-border: gray; + --skills-table-inner-border: lightgray; + --skills-table-th-color: #2E4C6D; + --experience-hover-color: #583759; +} + +@media (prefers-color-scheme: dark) { + :root:not([data-theme="light"]) { + --resume-bg: #161b22; + --resume-color: #e6edf3; + --resume-link-color: #8b949e; + --resume-section-bg: #3d2b5e; + --resume-section-color: #e6edf3; + --skills-bar-bg: #21262d; + --skills-table-border: #444c56; + --skills-table-inner-border: #30363d; + --skills-table-th-color: #79b8ff; + --experience-hover-color: #b083f0; + } +} + +[data-theme="dark"] { + --resume-bg: #161b22; + --resume-color: #e6edf3; + --resume-link-color: #8b949e; + --resume-section-bg: #3d2b5e; + --resume-section-color: #e6edf3; + --skills-bar-bg: #21262d; + --skills-table-border: #444c56; + --skills-table-inner-border: #30363d; + --skills-table-th-color: #79b8ff; + --experience-hover-color: #b083f0; +} + +html { + overflow-y: overlay; + font-size: 16px; +} + +header { + padding-bottom: 1rem; +} + +#actions_container { + padding-bottom: 1rem; + + display: flex; + flex-direction: row; + justify-content: flex-end; +} + +#resume { + position: relative; + text-align: left; + background-color: var(--resume-bg); + color: var(--resume-color); + font-family: 'Ubuntu', Tahoma, Geneva, Verdana, sans-serif; + line-height: 1.325rem; +} + +#resume_container { + display: flex; + flex-direction: row; +} + +#resume a { + color: var(--resume-link-color); +} + +#resume_sidebar { + width: 13rem; + margin-right: 1.5rem; +} + +#resume_header { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; + flex-direction: column; + align-items: flex-start; + margin-bottom: 2rem; +} + +.resume_header_name { + font-size: 2rem; + line-height: 2rem; + font-variant: small-caps; + word-wrap: break-word; + padding: 0; + margin: 0; + margin-bottom: 1rem; +} + +#resume_header_contact { + margin-top: 1rem; + display: flex; + flex-direction: row; + flex-direction: column; +} + +#resume_header_contact span { + margin-bottom: 0.5rem; + font-size: 1rem; + display: flex; + flex-direction: row; + align-items: center; +} + +#resume_header_contact i { + margin-right: 0.5rem; + font-style: normal; +} + +.resume_section { + width: 100%; + text-align: left; + font-size: 1rem; +} + +.resume_section > h2 { + font-size: 1.125rem; + font-variant: small-caps; + font-weight: bold; + padding: 0; + margin: 0; + padding: 0.25rem; + background-color: var(--resume-section-bg); + color: var(--resume-section-color); +} + +.resume_section_content { + padding: 0.5rem; +} + +.experience-header > div { + display: flex; + flex-direction: row; + justify-content: space-between; +} + +.experience-item:hover { + color: var(--experience-hover-color); +} + +.experience-item ul { + margin-top: 0.5rem; +} + +.experience-item li { + width: 100%; +} + +.experience-tech { + font-size: 1rem; + width: 100%; + display: flex; + flex-direction: row; + justify-content: flex-start; + margin-top: 0.2rem; +} + +.experience-tech > svg { + width: 1.125rem; + height: 1.125rem; + margin-right: 0.5rem; +} + +.skills_table_container { + display: flex; + flex-direction: column; +} + +.skills_table { + width: 100%; + border-spacing: 0; + border: 1px solid var(--skills-table-border); + border-radius: 2px; + margin-bottom: 2rem; +} + +.skills_table th { + text-align: center; +} + +.skills_table th, .skills_table tr:not(:last-child) td { + border-bottom: 1px solid var(--skills-table-inner-border); +} + +.skills_table tr th { + color: var(--skills-table-th-color); +} + +.skills_table td, th { + font-size: 0.9rem; + padding: 0.35rem 0.5rem; + width: 50%; +} + +#skills_section { + display: flex; + flex-direction: column; +} + +.skills_section_item { + display: flex; + flex-direction: column; + margin-bottom: 1.5rem; +} + +.skills_section_bar { + position: relative; + width: 100%; + height: 1rem; + background-color: var(--skills-bar-bg); + border-radius: 3px; + border: 1px solid var(--skills-table-inner-border); +} + +.skills_section_bar_fill { + position: absolute; + top: 0; + left: 0; + height: 100%; + width: 100%; + background-image: linear-gradient(to right,#007acc, #00E091); + border-radius: 3px; + background-size: 12rem 100%; +} + +.skills_section_bar_fill.one { + width: 20%; +} + +.skills_section_bar_fill.two { + width: 40%; +} + +.skills_section_bar_fill.three { + width: 60%; +} + +.skills_section_bar_fill.four { + width: 80%; +} + +.skills_section_bar_fill.five { + width: 100%; +} + +.skills_section_label { + width: 100%; + margin-top: 0.25rem; + color: var(--resume-color); + font-size: 1rem; +} + + +/** Web-only **/ +#resume_button_container { + width: 100%; + text-align: right; + margin-right: 1rem; + margin-bottom: 1rem; + +} + +#resume_button_container > button { + border: none; + background-color: transparent; + font-size: 20px; +} + +#resume_button_container > button:hover { + cursor: pointer; + opacity: 0.8; +} + +#resume.resume_fullscreen { + position: fixed; + top: 0; + left: 0; + padding: 2rem; + width: calc(100vw - 4rem); + height: calc(100vh - 4rem); + overflow: auto; +} diff --git a/src/styles/resume.mobile.css b/src/styles/resume.mobile.css new file mode 100644 index 0000000..016095b --- /dev/null +++ b/src/styles/resume.mobile.css @@ -0,0 +1,25 @@ +@media (max-width: 767.98px) { + #resume { + font-size: 12px; + } + + #resume_container { + flex-direction: column; + } + + #resume_header { + flex-direction: row; + } + + #resume_sidebar { + width: 100%; + } + + .skills_table_container { + width: 100%; + justify-content: space-evenly; + display: flex; + flex-direction: row; + column-gap: 4px; + } +} diff --git a/src/styles/sitemap.css b/src/styles/sitemap.css new file mode 100644 index 0000000..afe3f6a --- /dev/null +++ b/src/styles/sitemap.css @@ -0,0 +1,130 @@ +.sitemap_tags { + display: flex; + flex-direction: row; + gap: 0.5rem; + align-items: center; + margin-left: auto; +} + +.sitemap_tag { + padding: 0.25rem 0.75rem; + background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%); + color: #1976d2; + border-radius: 4px; + font-size: 0.7rem; + font-weight: 500; + border: 1px solid #90caf9; +} + +.sitemap_tag p { + margin: 0; + display: flex; + align-items: center; + flex-wrap: wrap; + gap: 0.5rem; + font-size: 0.75rem; +} + +.org-ul { + list-style: none; + padding: 0; +} + +.org-ul > li { + display: flex; + flex-direction: row; + align-items: center; + gap: 0.25rem; + position: relative; + margin-bottom: 0.25rem; +} + +.org-ul > li > p { + margin: 0; + font-size: 0.5rem; +} + +.org-ul > li > p > a { + color: #0066cc; + text-decoration: none; + font-weight: 600; + font-size: 1rem; +} + +.org-ul > li > p > a:hover { + text-decoration: underline; + color: #004499; +} + +.org-ul > li > p > a:after { + text-decoration: underline; + color: #004499; +} + +.org-article-title { + width: 100%; + text-align: right; +} + +#tag-filter-container { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 0.75rem; +} + +.tag-filter-item { + display: flex; + flex-direction: row; + align-items: center; + padding: 0.35rem; + border-radius: 2px; + justify-content: center; + font-style: italic; + background: linear-gradient(135deg, purple 0%, darkviolet 100%); + color: white; + font-size: 0.75rem; + letter-spacing: 0.3px; + transition: all 0.3s ease; +} + +.tag-filter-item:hover { + background: linear-gradient(135deg, gray 0%, darkviolet 100%); + cursor: pointer; +} + +.tag-filter-item.disabled { + background: linear-gradient(135deg, #e0e0e0 0%, #c0c0c0 100%); + color: #666; + border-color: #999; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); + opacity: 0.7; +} + +.tag-filter-item.disabled:hover { + opacity: 1; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); +} + +.post-date { + position: absolute; + bottom: 0.75rem; + right: 1rem; + font-size: 0.75rem; + color: #666; + font-style: italic; +} + +.sitemap_date { + font-size: 0.8rem; + color: #666; + font-style: italic; +} + +.sitemap_date p { + margin: 0; +} + +.sitemap_date p::before { + content: 'created on '; +} |
