mirror of
https://github.com/tiennm99/HugoBlox-kit.git
synced 2026-10-13 18:15:09 +00:00
- Linting/format - Replace ESLint/Prettier with Biome; remove old configs; add `biome.json`; update scripts - Tailwind-friendly `.stylelintrc.yaml`; Stylelint and Biome pass - Enable Biome across `modules/**`; prune legacy JS globals; ignore oversized `devicon.json` - Code fixes - `hb-theme.js`: avoid assignment-in-expressions; clearer dataset updates - `hugoblox-slides.js`: fix inner var scope (var → let); apply formatting - CI/CD - Split lint/build workflows; add path filters; Node via Corepack (pnpm from package.json) - Hugo pinned to env `HUGO_VERSION`; add consistency check vs `starters/academic-cv/hugoblox.yaml` - Nightly starters matrix build (academic-cv, landing-page); CodeQL weekly; resource caches - Workflows/Community - Greeter: switch to `pull_request_target`; add Contributor Guide to PR message - PR labeler for path-based labels - Repo policies/docs - `CODEOWNERS` for `@gcushen` - `SECURITY.md`, `SUPPORT.md` - Documented branch protection in `.github/settings.yml` - Move `CODE_OF_CONDUCT.md` to `.github/` - docs(zh): update `README.zh.md` translation Notes: - pnpm is sourced from `package.json: packageManager` via Corepack; no hard-coded pnpm versions in CI.
206 lines
4.4 KiB
CSS
206 lines
4.4 KiB
CSS
.resume-biography {
|
|
#profile {
|
|
text-align: center;
|
|
padding: 30px 10px;
|
|
position: relative;
|
|
}
|
|
|
|
/* Custom avatar size on homepage - size controlled by template params */
|
|
.avatar {
|
|
width: auto;
|
|
height: auto;
|
|
object-fit: cover;
|
|
}
|
|
|
|
.network-icon {
|
|
display: inline-flex;
|
|
flex-direction: row;
|
|
flex-wrap: wrap;
|
|
justify-content: center;
|
|
list-style: none;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
|
|
#profile .network-icon {
|
|
margin-top: 0.5rem;
|
|
}
|
|
|
|
.network-icon li {
|
|
margin-right: 10px;
|
|
@media (max-width: 640px) {
|
|
/* Min 48px Lighthouse tap targets on mobile */
|
|
margin-right: 12px;
|
|
}
|
|
}
|
|
|
|
.network-icon li:last-of-type {
|
|
margin-right: 0;
|
|
}
|
|
|
|
.network-icon li:hover {
|
|
transform: scale(1.2);
|
|
}
|
|
|
|
.big-icon {
|
|
font-size: 2rem;
|
|
}
|
|
|
|
.ul-interests li {
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.ul-edu li .description p.course {
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.ul-edu li .description p.institution {
|
|
font-size: 0.75rem;
|
|
}
|
|
|
|
.network-icon .big-icon {
|
|
font-size: 1.5rem;
|
|
}
|
|
|
|
.bio-text {
|
|
max-width: 680px;
|
|
}
|
|
}
|
|
|
|
/* Modern Biography Block Enhancements */
|
|
.resume-biography-modern {
|
|
/* Ensure proper stacking context for gradients and effects */
|
|
position: relative;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* Ruby pronunciation styling for modern look */
|
|
.ruby-modern {
|
|
ruby-position: over;
|
|
}
|
|
|
|
.ruby-modern rt {
|
|
font-size: 0.7em;
|
|
opacity: 0.8;
|
|
letter-spacing: 0.05em;
|
|
}
|
|
|
|
/* Enhanced backdrop blur support */
|
|
@supports (backdrop-filter: blur(10px)) {
|
|
.resume-biography-modern [class*="backdrop-blur"] {
|
|
backdrop-filter: blur(10px);
|
|
}
|
|
}
|
|
|
|
/* Smooth animations for all interactive elements */
|
|
.resume-biography-modern * {
|
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
}
|
|
|
|
/* Enhanced focus states for accessibility */
|
|
.resume-biography-modern a:focus-visible {
|
|
outline: 2px solid rgb(var(--color-primary-500));
|
|
outline-offset: 2px;
|
|
border-radius: 0.5rem;
|
|
}
|
|
|
|
/* Improved text selection styling */
|
|
.resume-biography-modern ::selection {
|
|
background-color: rgb(var(--color-primary-200) / 0.3);
|
|
color: rgb(var(--color-primary-900));
|
|
}
|
|
|
|
.dark .resume-biography-modern ::selection {
|
|
background-color: rgb(var(--color-primary-800) / 0.3);
|
|
color: rgb(var(--color-primary-100));
|
|
}
|
|
|
|
/* Enhanced gradient text support */
|
|
.resume-biography-modern .bg-clip-text {
|
|
-webkit-background-clip: text;
|
|
background-clip: text;
|
|
-webkit-text-fill-color: transparent;
|
|
}
|
|
|
|
/* Ensure text remains readable on fallback */
|
|
@supports not (background-clip: text) {
|
|
.resume-biography-modern .bg-clip-text {
|
|
color: rgb(var(--color-neutral-900));
|
|
}
|
|
|
|
.dark .resume-biography-modern .bg-clip-text {
|
|
color: rgb(var(--color-neutral-100));
|
|
}
|
|
}
|
|
|
|
.avatar-wrapper {
|
|
position: relative;
|
|
/* width and height controlled by template params */
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
|
|
.avatar-emoji {
|
|
position: absolute;
|
|
width: 40px;
|
|
height: 40px;
|
|
line-height: 40px;
|
|
border-radius: 100%;
|
|
bottom: 0;
|
|
right: 0;
|
|
text-align: center;
|
|
font-size: 20px;
|
|
background-color: #fff;
|
|
color: #000; /* override parent alpha */
|
|
box-shadow: 0 10px 20px rgb(0 0 0 / 4%), 0 2px 6px rgb(0 0 0 / 4%), 0 0 1px
|
|
rgb(0 0 0 / 4%);
|
|
}
|
|
|
|
.dark .avatar-emoji {
|
|
background-color: #000;
|
|
box-shadow: 0 10px 20px rgb(0 0 0 / 4%), 0 2px 6px rgb(0 0 0 / 4%), 0 0 1px
|
|
rgb(255 255 255 / 96%);
|
|
}
|
|
|
|
/* Biography Block */
|
|
|
|
.hbx-bg-gradient {
|
|
position: relative;
|
|
isolation: isolate;
|
|
}
|
|
|
|
.hbx-bg-gradient::before {
|
|
content: "";
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
z-index: -1;
|
|
background-attachment: fixed;
|
|
transition: opacity 0.5s ease-in-out;
|
|
opacity: 1;
|
|
}
|
|
|
|
/* Light Mode Gradient */
|
|
.hbx-bg-gradient::before {
|
|
background-image: radial-gradient(
|
|
at 20% 25%,
|
|
hsla(212, 80%, 95%, 1) 0px,
|
|
transparent 50%
|
|
), radial-gradient(at 75% 30%, hsla(160, 80%, 95%, 1) 0px, transparent 50%),
|
|
radial-gradient(at 25% 80%, hsla(280, 80%, 95%, 1) 0px, transparent 50%),
|
|
radial-gradient(at 75% 85%, hsla(30, 80%, 95%, 1) 0px, transparent 50%);
|
|
}
|
|
|
|
/* Dark Mode Gradient */
|
|
.dark .hbx-bg-gradient::before {
|
|
background-image: radial-gradient(
|
|
at 20% 25%,
|
|
hsla(212, 35%, 15%, 1) 0px,
|
|
transparent 50%
|
|
), radial-gradient(at 75% 30%, hsla(160, 35%, 15%, 1) 0px, transparent 50%),
|
|
radial-gradient(at 25% 80%, hsla(280, 35%, 15%, 1) 0px, transparent 50%),
|
|
radial-gradient(at 75% 85%, hsla(30, 35%, 15%, 1) 0px, transparent 50%);
|
|
}
|