Some checks failed
continuous-integration/drone/push Build is failing
- Replace all hardcoded group.links.slice(0, 5) with ExpandableGroup component - Updated renderGridLayout, renderCardsLayout, renderCompactLayout, renderSidebarLayout - Fixed icon display in ExpandableGroup component - Improved styling for button-style links - All group layouts now support expandable link lists with 'Show X more links' functionality
167 lines
2.6 KiB
CSS
167 lines
2.6 KiB
CSS
.expandToggle {
|
|
margin-top: 1rem;
|
|
position: relative;
|
|
}
|
|
|
|
.expandButton {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-height: 50px;
|
|
font-weight: 500;
|
|
transition: all 0.2s ease;
|
|
border-radius: 10px;
|
|
|
|
&:hover {
|
|
transform: translateY(-1px);
|
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
}
|
|
}
|
|
|
|
.expandOverlay {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
border-radius: 10px;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.linkItem {
|
|
position: relative;
|
|
margin-bottom: 0.75rem;
|
|
}
|
|
|
|
.linkContent {
|
|
display: block;
|
|
text-decoration: none;
|
|
color: inherit;
|
|
transition: all 0.2s ease;
|
|
position: relative;
|
|
overflow: hidden;
|
|
border-radius: 10px;
|
|
border: none;
|
|
background: white;
|
|
width: 100%;
|
|
text-align: left;
|
|
|
|
&:hover {
|
|
text-decoration: none;
|
|
color: inherit;
|
|
transform: translateY(-2px);
|
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
}
|
|
}
|
|
|
|
.linkInner {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 0.75rem;
|
|
border-radius: 10px;
|
|
position: relative;
|
|
z-index: 1;
|
|
width: 100%;
|
|
}
|
|
|
|
.linkIcon {
|
|
width: 20px;
|
|
height: 20px;
|
|
object-fit: cover;
|
|
border-radius: 4px;
|
|
margin-right: 0.75rem;
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.linkInfo {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.linkTitle {
|
|
margin: 0;
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
color: inherit;
|
|
}
|
|
|
|
.linkDescription {
|
|
margin: 0.25rem 0 0 0;
|
|
font-size: 0.75rem;
|
|
color: #6c757d;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.linkOverlay {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
pointer-events: none;
|
|
border-radius: 10px;
|
|
z-index: 2;
|
|
}
|
|
|
|
/* Layout-specific styles */
|
|
.linkItem :global(.grid-link) {
|
|
.linkInner {
|
|
flex-direction: column;
|
|
text-align: center;
|
|
padding: 1.5rem;
|
|
}
|
|
|
|
.linkIcon {
|
|
width: 60px;
|
|
height: 60px;
|
|
margin-right: 0;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.linkTitle, .linkDescription {
|
|
white-space: normal;
|
|
text-align: center;
|
|
}
|
|
}
|
|
|
|
.linkItem :global(.cards-link) {
|
|
.linkInner {
|
|
padding: 1.25rem;
|
|
}
|
|
|
|
.linkIcon {
|
|
width: 50px;
|
|
height: 50px;
|
|
}
|
|
}
|
|
|
|
.linkItem :global(.timeline-link) {
|
|
.linkInner {
|
|
padding: 1rem 1.25rem;
|
|
border-left: 4px solid var(--theme-color, #007bff);
|
|
}
|
|
}
|
|
|
|
.linkItem :global(.magazine-link) {
|
|
.linkInner {
|
|
flex-direction: column;
|
|
padding: 1.5rem;
|
|
}
|
|
|
|
.linkIcon {
|
|
width: 80px;
|
|
height: 80px;
|
|
margin-right: 0;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.linkTitle, .linkDescription {
|
|
white-space: normal;
|
|
text-align: center;
|
|
}
|
|
} |