All checks were successful
Deploy Docusaurus Site / deploy (push) Successful in 29s
266 lines
5.5 KiB
CSS
266 lines
5.5 KiB
CSS
/* ===== Animations ===== */
|
|
@keyframes fadeInUp {
|
|
from { opacity: 0; transform: translateY(24px); }
|
|
to { opacity: 1; transform: translateY(0); }
|
|
}
|
|
|
|
@keyframes blink {
|
|
0%, 100% { opacity: 1; }
|
|
50% { opacity: 0; }
|
|
}
|
|
|
|
/* ===== Main ===== */
|
|
.main {
|
|
min-height: calc(100vh - 60px);
|
|
}
|
|
|
|
/* ===== Hero ===== */
|
|
.hero {
|
|
position: relative;
|
|
padding: 5rem 2rem 4rem;
|
|
text-align: center;
|
|
overflow: hidden;
|
|
background:
|
|
radial-gradient(circle, var(--ifm-color-primary) 1px, transparent 1px) 0 0 / 24px 24px,
|
|
linear-gradient(180deg, var(--ifm-background-surface-color) 0%, var(--ifm-background-color) 100%);
|
|
background-blend-mode: overlay;
|
|
}
|
|
|
|
[data-theme='dark'] .hero {
|
|
background:
|
|
radial-gradient(circle, rgba(59,130,246,0.15) 1px, transparent 1px) 0 0 / 24px 24px,
|
|
linear-gradient(180deg, var(--ifm-background-surface-color) 0%, var(--ifm-background-color) 100%);
|
|
}
|
|
|
|
:root .hero {
|
|
background:
|
|
radial-gradient(circle, rgba(37,99,235,0.12) 1px, transparent 1px) 0 0 / 24px 24px,
|
|
linear-gradient(180deg, var(--ifm-background-surface-color) 0%, var(--ifm-background-color) 100%);
|
|
}
|
|
|
|
.heroInner {
|
|
max-width: 960px;
|
|
margin: 0 auto;
|
|
animation: fadeInUp 0.6s ease both;
|
|
}
|
|
|
|
.heroPrompt {
|
|
font-family: var(--site-font-mono, 'JetBrains Mono', monospace);
|
|
font-size: 1.1rem;
|
|
color: var(--ifm-color-emphasis-600);
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
.heroTitle {
|
|
font-family: var(--site-font-mono, 'JetBrains Mono', monospace);
|
|
font-size: 3rem;
|
|
margin-bottom: 0.5rem;
|
|
display: inline-block;
|
|
}
|
|
|
|
.cursor {
|
|
display: inline-block;
|
|
width: 0.6ch;
|
|
height: 1em;
|
|
background: var(--ifm-color-primary);
|
|
margin-left: 4px;
|
|
vertical-align: text-bottom;
|
|
animation: blink 1s step-end infinite;
|
|
}
|
|
|
|
.heroSubtitle {
|
|
font-family: var(--site-font-mono, 'JetBrains Mono', monospace);
|
|
font-size: 1.1rem;
|
|
color: var(--ifm-color-emphasis-600);
|
|
margin: 0 0 1.5rem 0;
|
|
}
|
|
|
|
.skillTags {
|
|
display: flex;
|
|
justify-content: center;
|
|
gap: 0.75rem;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.skillTag {
|
|
font-family: var(--site-font-mono, 'JetBrains Mono', monospace);
|
|
font-size: 0.8rem;
|
|
padding: 0.3rem 0.9rem;
|
|
border-radius: 999px;
|
|
border: 1px solid var(--ifm-color-primary);
|
|
color: var(--ifm-color-primary);
|
|
background: transparent;
|
|
font-weight: 500;
|
|
}
|
|
|
|
/* ===== Content ===== */
|
|
.content {
|
|
max-width: 960px;
|
|
margin: 0 auto;
|
|
padding: 2rem;
|
|
}
|
|
|
|
.twoCol {
|
|
display: grid;
|
|
grid-template-columns: 1fr 1fr;
|
|
gap: 2rem;
|
|
}
|
|
|
|
/* ===== Sections ===== */
|
|
.section {
|
|
margin-bottom: 3rem;
|
|
animation: fadeInUp 0.6s ease both;
|
|
}
|
|
|
|
.section:nth-child(1) { animation-delay: 0.1s; }
|
|
.section:nth-child(2) { animation-delay: 0.25s; }
|
|
.sectionWorks { animation-delay: 0.4s; }
|
|
|
|
.sectionTitle {
|
|
font-family: var(--site-font-mono, 'JetBrains Mono', monospace);
|
|
font-size: 1.3rem;
|
|
margin-bottom: 0.25rem;
|
|
color: var(--ifm-color-primary);
|
|
}
|
|
|
|
.sectionDesc {
|
|
font-size: 0.85rem;
|
|
color: var(--ifm-color-emphasis-600);
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
/* ===== Post Cards ===== */
|
|
.posts {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 0.75rem;
|
|
}
|
|
|
|
.postCard {
|
|
display: block;
|
|
padding: 1.1rem 1.25rem;
|
|
border-radius: 8px;
|
|
background: var(--ifm-background-surface-color);
|
|
border: 1px solid var(--ifm-color-emphasis-200);
|
|
border-left: 3px solid var(--ifm-color-primary);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.postCard:hover {
|
|
border-color: var(--ifm-color-primary);
|
|
border-left-color: var(--ifm-color-primary);
|
|
transform: scale(1.02);
|
|
box-shadow: 0 0 16px rgba(var(--ifm-color-primary-rgb, 46,133,85), 0.25);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
|
|
[data-theme='dark'] .postCard:hover {
|
|
box-shadow: 0 0 16px rgba(59,130,246,0.25);
|
|
}
|
|
|
|
.postTitle {
|
|
font-size: 1rem;
|
|
margin: 0 0 0.4rem 0;
|
|
}
|
|
|
|
.postMeta {
|
|
display: flex;
|
|
gap: 0.75rem;
|
|
font-size: 0.8rem;
|
|
color: var(--ifm-color-emphasis-600);
|
|
}
|
|
|
|
.postDate {
|
|
font-family: var(--site-font-mono, 'JetBrains Mono', monospace);
|
|
}
|
|
|
|
.postTag {
|
|
font-family: var(--site-font-mono, 'JetBrains Mono', monospace);
|
|
background: var(--ifm-color-emphasis-100);
|
|
padding: 0.1rem 0.5rem;
|
|
border-radius: 4px;
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
/* ===== Works ===== */
|
|
.works {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
|
|
gap: 1rem;
|
|
}
|
|
|
|
.workCard {
|
|
display: block;
|
|
padding: 1.25rem;
|
|
border-radius: 8px;
|
|
background: var(--ifm-background-surface-color);
|
|
border: 1px solid var(--ifm-color-emphasis-200);
|
|
border-left: 3px solid var(--ifm-color-primary);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.workCard:hover {
|
|
border-color: var(--ifm-color-primary);
|
|
border-left-color: var(--ifm-color-primary);
|
|
transform: scale(1.02);
|
|
box-shadow: 0 0 16px rgba(var(--ifm-color-primary-rgb, 46,133,85), 0.25);
|
|
text-decoration: none;
|
|
color: inherit;
|
|
}
|
|
|
|
[data-theme='dark'] .workCard:hover {
|
|
box-shadow: 0 0 16px rgba(59,130,246,0.25);
|
|
}
|
|
|
|
.workName {
|
|
font-size: 1.1rem;
|
|
margin: 0 0 0.5rem 0;
|
|
}
|
|
|
|
.workDescription {
|
|
font-size: 0.85rem;
|
|
color: var(--ifm-color-emphasis-600);
|
|
margin: 0;
|
|
}
|
|
|
|
.moreLink {
|
|
display: inline-block;
|
|
margin-top: 0.75rem;
|
|
font-size: 0.85rem;
|
|
font-family: var(--site-font-mono, 'JetBrains Mono', monospace);
|
|
color: var(--ifm-color-primary);
|
|
}
|
|
|
|
.moreLink:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
/* ===== Responsive ===== */
|
|
@media (max-width: 768px) {
|
|
.heroTitle {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.heroPrompt {
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.heroSubtitle {
|
|
font-size: 0.95rem;
|
|
}
|
|
|
|
.content {
|
|
padding: 1rem;
|
|
}
|
|
|
|
.twoCol {
|
|
grid-template-columns: 1fr;
|
|
gap: 0;
|
|
}
|
|
}
|