Add Spotify integration, Next button navigation, and UI improvements

- Added Spotify links to all album cards with official green styling
- Implemented Next Album button for sequential navigation (albums 1-499)
- Fixed jump-to-rank to scroll to album card top instead of centering
- Moved share button to same row as album status for better layout
- Improved mobile UI: fixed theme selector overlap, full-width filter controls
- Grouped sort dropdown with reverse button for logical organization
- Updated README with new features and Spotify integration details
- Enhanced vertical alignment of status badges and share buttons
- Refined button sizing and spacing for consistent appearance

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Johan Lundberg 2025-07-02 01:18:42 +02:00
parent 2720eb1f4b
commit 75bbf157e7
7 changed files with 1118 additions and 77 deletions

View file

@ -305,6 +305,12 @@ body {
flex-wrap: wrap;
}
.sort-controls {
display: flex;
gap: 0.5rem;
align-items: center;
}
.filter-select {
padding: 0.75rem 1rem;
border: 2px solid #e1e5e9;
@ -570,25 +576,27 @@ body {
border-radius: 8px;
}
.album-status-row {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
}
.album-share {
position: absolute;
top: 1rem;
right: 1rem;
background: var(--primary-color);
color: var(--text-light);
border: none;
border-radius: 50%;
width: 36px;
height: 36px;
width: 32px;
height: 32px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
font-size: 1rem;
font-size: 0.875rem;
transition: all 0.3s ease;
opacity: 0;
transform: scale(0.8);
backdrop-filter: blur(10px);
flex-shrink: 0;
box-shadow: 0 2px 8px var(--shadow-color);
}
@ -596,11 +604,6 @@ body {
color: var(--text-light);
}
.album-card:hover .album-share {
opacity: 1;
transform: scale(1);
}
.album-share:hover {
background: var(--secondary-color);
transform: scale(1.1);
@ -612,7 +615,6 @@ body {
.album-share.copied {
background: var(--secondary-color);
opacity: 1;
}
.album-card:hover {
@ -671,7 +673,6 @@ body {
border-radius: 20px;
font-size: 0.8rem;
font-weight: 500;
align-self: flex-start;
}
.status-new {
@ -729,6 +730,13 @@ body {
text-align: center;
padding-top: 1rem;
border-top: 1px solid #eee;
display: flex;
flex-direction: column;
gap: 0.75rem;
align-items: center;
}
.album-links-row {
display: flex;
gap: 1rem;
justify-content: center;
@ -807,6 +815,11 @@ body {
font-family: inherit;
}
.next-album-link.next-album-link-wide {
width: 100%;
max-width: 300px;
}
.next-album-link:hover {
background: var(--primary-color);
color: var(--text-light);
@ -864,6 +877,10 @@ body {
/* Responsive design */
@media (max-width: 768px) {
.header {
padding-bottom: 2rem; /* Reduced padding */
}
.supertitle {
font-size: 1.2rem;
}
@ -874,11 +891,12 @@ body {
.subtitle {
font-size: 1rem;
margin-bottom: 0.5rem;
}
.header-theme-selector {
bottom: 0.5rem;
right: 0.5rem;
position: static;
margin-top: 1rem;
}
.theme-select-header {
@ -897,11 +915,27 @@ body {
}
.filters {
justify-content: center;
flex-direction: column;
width: 100%;
}
.sort-controls {
width: 100%;
display: grid;
grid-template-columns: 1fr auto;
gap: 0.5rem;
}
.filter-select {
width: 100%;
}
.sort-controls .filter-select {
width: auto;
}
.reverse-button {
min-width: auto;
width: auto;
padding: 0.75rem;
}
@ -922,6 +956,11 @@ body {
.theme-selector {
margin-left: 0;
width: 100%;
}
.theme-select {
width: 100%;
}
.album-card {
@ -945,9 +984,15 @@ body {
font-size: 5rem;
}
.album-share {
opacity: 1;
transform: scale(1);
.album-status-row {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.album-status {
margin-right: auto;
}
.stats {