Skip to content

Commit bd62051

Browse files
committed
feat: style improvements
1 parent b73a70e commit bd62051

15 files changed

+431
-202
lines changed

src/ui/PodcastView/EpisodeList.svelte

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,8 @@
9696
align-items: stretch;
9797
justify-content: flex-start;
9898
width: 100%;
99+
height: 100%;
100+
overflow: hidden;
99101
}
100102
101103
.podcast-episode-list {
@@ -104,32 +106,41 @@
104106
align-items: stretch;
105107
justify-content: flex-start;
106108
width: 100%;
107-
height: 100%;
108-
gap: 0.25rem;
109+
flex: 1 1 auto;
110+
overflow-y: auto;
111+
overflow-x: hidden;
112+
}
113+
114+
.podcast-episode-list p {
115+
padding: 1.5rem;
116+
text-align: center;
117+
color: var(--text-muted);
109118
}
110119
111120
.episode-list-menu {
112121
display: flex;
113122
flex-direction: row;
114-
justify-content: right;
123+
justify-content: flex-end;
115124
align-items: center;
116-
gap: 1rem;
125+
gap: 0.5rem;
117126
width: 100%;
118-
padding-left: 0.5rem;
119-
padding-right: 0.5rem;
127+
padding: 0.5rem 0.75rem;
128+
border-bottom: 1px solid var(--background-modifier-border);
129+
background: var(--background-secondary);
120130
}
121131
122132
.episode-list-search {
123-
width: 100%;
124-
margin-bottom: 0.5rem;
133+
flex: 1 1 auto;
134+
min-width: 0;
125135
}
126136
127137
.episode-list-loading {
128138
display: flex;
129139
align-items: center;
130140
justify-content: center;
131141
gap: 0.75rem;
132-
padding: 1rem 0;
142+
padding: 2rem 1rem;
133143
color: var(--text-muted);
144+
font-size: 0.9rem;
134145
}
135146
</style>

src/ui/PodcastView/EpisodeListHeader.svelte

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,25 @@
1414
.podcast-header {
1515
display: flex;
1616
flex-direction: column;
17-
justify-content: space-around;
17+
justify-content: center;
1818
align-items: center;
19-
padding: 0.5rem;
19+
gap: 0.75rem;
20+
padding: 1rem;
21+
}
22+
23+
#podcast-artwork {
24+
width: 5rem;
25+
height: 5rem;
26+
border-radius: 0.5rem;
27+
object-fit: cover;
28+
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
2029
}
2130
2231
.podcast-heading {
32+
margin: 0;
33+
font-size: 1.125rem;
34+
font-weight: 600;
2335
text-align: center;
36+
color: var(--text-normal);
2437
}
2538
</style>

src/ui/PodcastView/EpisodeListItem.svelte

Lines changed: 52 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@
6464
src={episode.artworkUrl}
6565
alt={episode.title}
6666
fadeIn={true}
67-
width="5rem"
68-
height="5rem"
67+
width="100%"
68+
height="100%"
6969
class="podcast-episode-thumbnail"
7070
/>
7171
</div>
@@ -83,61 +83,95 @@
8383
display: flex;
8484
flex-direction: row;
8585
justify-content: flex-start;
86-
align-items: flex-start;
87-
padding: 0.5rem;
88-
min-height: 5rem;
86+
align-items: center;
87+
padding: 0.625rem 0.75rem;
88+
min-height: 4.5rem;
8989
width: 100%;
90-
border: solid 1px var(--background-divider);
90+
border: none;
91+
border-bottom: 1px solid var(--background-modifier-border);
9192
gap: 0.75rem;
9293
background: transparent;
9394
text-align: left;
95+
cursor: pointer;
96+
transition: background-color 120ms ease;
97+
}
98+
99+
.podcast-episode-item:last-child {
100+
border-bottom: none;
94101
}
95102
96103
.podcast-episode-item:focus-visible {
97104
outline: 2px solid var(--interactive-accent);
98-
outline-offset: 2px;
105+
outline-offset: -2px;
106+
border-radius: 0.25rem;
99107
}
100108
101109
.podcast-episode-item:hover {
102-
background-color: var(--background-divider);
110+
background-color: var(--background-secondary-alt);
111+
}
112+
113+
.podcast-episode-item:active {
114+
background-color: var(--background-modifier-border);
103115
}
104116
105117
.strikeout {
106118
text-decoration: line-through;
119+
opacity: 0.6;
107120
}
108121
109122
.podcast-episode-information {
110123
display: flex;
111124
flex-direction: column;
112-
justify-content: space-between;
125+
justify-content: center;
113126
align-items: flex-start;
127+
gap: 0.25rem;
114128
flex: 1 1 auto;
115129
min-width: 0;
116130
}
117131
118132
.episode-item-date {
119-
color: gray;
133+
font-size: 0.75rem;
134+
font-weight: 500;
135+
letter-spacing: 0.025em;
136+
color: var(--text-muted);
137+
}
138+
139+
.episode-item-title {
140+
font-size: 0.9rem;
141+
line-height: 1.4;
142+
color: var(--text-normal);
143+
overflow: hidden;
144+
text-overflow: ellipsis;
145+
display: -webkit-box;
146+
-webkit-line-clamp: 2;
147+
line-clamp: 2;
148+
-webkit-box-orient: vertical;
120149
}
121150
122151
.podcast-episode-thumbnail-container {
123-
flex: 0 0 5rem;
124-
width: 5rem;
125-
height: 5rem;
126-
max-width: 5rem;
127-
max-height: 5rem;
152+
flex: 0 0 3.5rem;
153+
width: 3.5rem;
154+
height: 3.5rem;
128155
display: flex;
129156
align-items: center;
130157
justify-content: center;
131158
background: var(--background-secondary);
132-
border-radius: 15%;
159+
border-radius: 0.375rem;
133160
overflow: hidden;
134161
}
135162
163+
@media (min-width: 400px) {
164+
.podcast-episode-thumbnail-container {
165+
flex: 0 0 4rem;
166+
width: 4rem;
167+
height: 4rem;
168+
}
169+
}
170+
136171
:global(.podcast-episode-thumbnail) {
137172
width: 100%;
138173
height: 100%;
139174
object-fit: cover;
140-
border-radius: 15%;
141-
cursor: pointer !important;
175+
border-radius: 0.375rem;
142176
}
143177
</style>

0 commit comments

Comments
 (0)