98 lines
2.8 KiB
CSS
98 lines
2.8 KiB
CSS
/* Navigation Island - from original Yew project CSS */
|
||
/* Navigation Island - simplified transform-based collapse/expand */
|
||
.nav-island {
|
||
position: fixed;
|
||
right: 28px;
|
||
bottom: 16px;
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: flex-end;
|
||
background: var(--bg-medium); /* Was rgba(30,32,40,0.98), using common.css variable, assuming full opacity is acceptable */
|
||
border-radius: var(--border-radius-large); /* Was 14px, using common.css variable (16px) */
|
||
box-shadow: 0 8px 32px 0 rgba(0,0,0,0.18), 0 1.5px 8px 0 rgba(0,0,0,0.10); /* Keeping specific shadow */
|
||
padding: 4px 9px;
|
||
z-index: 9000;
|
||
overflow: hidden;
|
||
transition: width 0.42s ease;
|
||
will-change: width;
|
||
}
|
||
|
||
.nav-island.collapsed {
|
||
width: 88px;
|
||
}
|
||
|
||
.nav-island.collapsed:hover:not(.clicked),
|
||
.nav-island.collapsed:focus-within:not(.clicked) {
|
||
width: 720px; /* 9 buttons × (82px + 6px margin) + padding = ~816px */
|
||
}
|
||
|
||
.nav-island.clicked {
|
||
width: 88px !important;
|
||
}
|
||
|
||
.nav-island-buttons {
|
||
display: flex;
|
||
flex-direction: row;
|
||
align-items: flex-end;
|
||
gap: 0;
|
||
white-space: nowrap;
|
||
transition: transform 0.42s ease;
|
||
will-change: transform;
|
||
}
|
||
|
||
.nav-island.collapsed .nav-island-buttons {
|
||
transform: translateX(-6px); /* Small offset to keep first button visible */
|
||
}
|
||
|
||
.nav-island.collapsed:hover:not(.clicked) .nav-island-buttons,
|
||
.nav-island.collapsed:focus-within:not(.clicked) .nav-island-buttons {
|
||
transform: translateX(0);
|
||
}
|
||
|
||
.nav-island.clicked .nav-island-buttons {
|
||
transform: translateX(-6px) !important;
|
||
}
|
||
|
||
.nav-button {
|
||
width: 82px;
|
||
background-color: transparent;
|
||
color: var(--text-secondary); /* Common.css variable */
|
||
border: 1px solid transparent;
|
||
border-radius: var(--border-radius-medium); /* Was 10px, using common.css variable (8px) */
|
||
font-size: 0.85em;
|
||
font-weight: 400;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
justify-content: center;
|
||
gap: 4px;
|
||
cursor: pointer;
|
||
transition: background 0.2s, color 0.2s, border 0.2s;
|
||
margin-right: 6px;
|
||
outline: none;
|
||
padding: 10px 15px;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.nav-button i {
|
||
font-size: 1.2em;
|
||
}
|
||
|
||
.nav-button:hover {
|
||
background-color: color-mix(in srgb, var(--primary-accent) 10%, transparent); /* Common.css primary with alpha */
|
||
color: var(--primary-accent); /* Common.css variable */
|
||
border-color: var(--primary-accent); /* Common.css variable */
|
||
}
|
||
|
||
.nav-button.active {
|
||
background-color: var(--primary-accent); /* Common.css variable */
|
||
color: var(--bg-dark); /* Common.css variable */
|
||
font-weight: 600;
|
||
box-shadow: 0 0 10px var(--primary-accent); /* Glow with common primary */
|
||
}
|
||
|
||
.nav-button.active:hover {
|
||
background-color: var(--primary-accent); /* Common.css variable, keep active color on hover */
|
||
color: var(--bg-dark); /* Common.css variable */
|
||
}
|