Files
HugoBlox-kit/modules/blox-tailwind/assets/css/blox/biography.css
T
George Cushen d5d2f04c2d chore: adopt Biome + Stylelint, modernize CI/CD, add security/support docs, minor JS fixes
- 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.
2025-09-17 03:17:38 +01:00

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%);
}