portfolio / src /components /SkillsExpandHover.css
jashdoshi77's picture
mobile responsoveness
0275227
/* ─── Expand-on-Hover Panel Gallery ─── */
.expand-hover-container {
display: flex;
gap: 8px;
height: 450px;
width: 100%;
max-width: 1100px;
margin: 0 auto;
padding: 0;
overflow: hidden;
border-radius: 20px;
}
@media (max-width: 768px) {
.expand-hover-container {
height: 280px;
gap: 4px;
border-radius: 14px;
}
}
@media (max-width: 480px) {
.expand-hover-container {
height: 220px;
gap: 3px;
border-radius: 10px;
}
}
@media (max-width: 480px) {
.expand-hover-panel.collapsed {
flex: 0.3;
}
}
/* ─── Individual Panel ─── */
.expand-hover-panel {
position: relative;
flex: 1;
min-width: 0;
overflow: hidden;
border-radius: 16px;
cursor: pointer;
transition: flex 0.6s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.expand-hover-panel.expanded {
flex: 4;
}
.expand-hover-panel.collapsed {
flex: 0.6;
}
@media (max-width: 768px) {
.expand-hover-panel {
border-radius: 10px;
}
.expand-hover-panel.expanded {
flex: 5;
}
.expand-hover-panel.collapsed {
flex: 0.4;
}
}
/* ─── Panel Image ─── */
.expand-hover-image {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.6s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.expand-hover-panel:hover .expand-hover-image {
transform: scale(1.05);
}
/* ─── Dark Overlay ─── */
.expand-hover-overlay {
position: absolute;
inset: 0;
background: linear-gradient(to top,
rgba(0, 0, 0, 0.8) 0%,
rgba(0, 0, 0, 0.2) 40%,
rgba(0, 0, 0, 0.05) 100%);
transition: background 0.5s ease;
}
.expand-hover-panel.collapsed .expand-hover-overlay {
background: linear-gradient(to top,
rgba(0, 0, 0, 0.85) 0%,
rgba(0, 0, 0, 0.5) 100%);
}
/* ─── Content (Title + Subtitle) ─── */
.expand-hover-content {
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 1.5rem;
display: flex;
flex-direction: column;
gap: 4px;
z-index: 10;
}
@media (max-width: 768px) {
.expand-hover-content {
padding: 1rem;
}
}
.expand-hover-title {
font-size: 1.25rem;
font-weight: 600;
color: #fff;
white-space: nowrap;
transition: font-size 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
}
.expand-hover-panel.expanded .expand-hover-title {
font-size: 1.75rem;
}
.expand-hover-panel.collapsed .expand-hover-title {
font-size: 0.9rem;
writing-mode: vertical-rl;
text-orientation: mixed;
transform: rotate(180deg);
position: absolute;
bottom: 1.5rem;
left: 50%;
margin-left: -0.5em;
}
@media (max-width: 768px) {
.expand-hover-title {
font-size: 1rem;
}
.expand-hover-panel.expanded .expand-hover-title {
font-size: 1.25rem;
}
.expand-hover-panel.collapsed .expand-hover-title {
font-size: 0.75rem;
}
}
.expand-hover-subtitle {
font-size: 0.85rem;
color: rgba(255, 255, 255, 0.6);
white-space: nowrap;
overflow: hidden;
opacity: 0;
max-height: 0;
transition:
opacity 0.4s ease 0.15s,
max-height 0.4s ease;
}
.expand-hover-panel.expanded .expand-hover-subtitle {
opacity: 1;
max-height: 2rem;
}
@media (max-width: 768px) {
.expand-hover-subtitle {
font-size: 0.7rem;
}
}