v3: added comment likes, added votes/likes list view, added db migrations mechanism, updated project dependencies
All checks were successful
Build and Publish Docker Image / build-and-push (push) Successful in 42s
All checks were successful
Build and Publish Docker Image / build-and-push (push) Successful in 42s
This commit is contained in:
95
src/App.css
95
src/App.css
@@ -1272,6 +1272,19 @@ body.has-player .fab-new {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.vote-count-clickable {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
/* Padding+matching negative margin enlarges the click target without
|
||||
shifting layout — the box grows but its visual position is unchanged. */
|
||||
padding: 0.4rem;
|
||||
margin: -0.4rem;
|
||||
}
|
||||
|
||||
.vote-count-clickable:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* ── Dump OP line ── */
|
||||
.dump-op {
|
||||
display: flex;
|
||||
@@ -2176,6 +2189,63 @@ body.has-player .fab-new {
|
||||
background: var(--color-header-user-bg-hover);
|
||||
}
|
||||
|
||||
.user-list-popover {
|
||||
/* position/top/left set inline (fixed, anchored to the trigger's viewport rect) */
|
||||
min-width: 180px;
|
||||
max-height: 280px;
|
||||
overflow-y: auto;
|
||||
background: var(--color-surface);
|
||||
border: 2px solid var(--color-border-subtle);
|
||||
border-radius: 10px;
|
||||
padding: 0.35rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.15rem;
|
||||
z-index: 100;
|
||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.user-list-popover-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
padding: 0.35rem 0.5rem;
|
||||
border-radius: 7px;
|
||||
text-decoration: none;
|
||||
color: var(--color-text);
|
||||
font-size: 0.85rem;
|
||||
font-weight: 600;
|
||||
transition: background 0.12s;
|
||||
}
|
||||
|
||||
.user-list-popover-item:hover {
|
||||
background: var(--color-header-user-bg-hover);
|
||||
}
|
||||
|
||||
.user-list-popover-status {
|
||||
margin: 0;
|
||||
padding: 0.5rem 0.6rem;
|
||||
font-size: 0.8rem;
|
||||
color: var(--color-text-muted);
|
||||
}
|
||||
|
||||
.user-list-popover-load-more {
|
||||
background: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
padding: 0.4rem 0.6rem;
|
||||
font-size: 0.8rem;
|
||||
font-weight: 600;
|
||||
color: var(--color-accent);
|
||||
text-align: left;
|
||||
font-family: inherit;
|
||||
}
|
||||
|
||||
.user-list-popover-load-more:disabled {
|
||||
opacity: 0.5;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/* ── Auth card ── */
|
||||
.auth-card {
|
||||
width: 100%;
|
||||
@@ -3560,6 +3630,31 @@ body.has-player .fab-new {
|
||||
background: color-mix(in srgb, var(--color-danger) 10%, transparent);
|
||||
}
|
||||
|
||||
.comment-action-btn--liked {
|
||||
color: var(--color-danger);
|
||||
border-color: color-mix(in srgb, var(--color-danger) 40%, transparent);
|
||||
background: color-mix(in srgb, var(--color-danger) 10%, transparent);
|
||||
}
|
||||
|
||||
.comment-action-btn--liked:hover {
|
||||
color: var(--color-danger);
|
||||
border-color: color-mix(in srgb, var(--color-danger) 60%, transparent);
|
||||
background: color-mix(in srgb, var(--color-danger) 16%, transparent);
|
||||
}
|
||||
|
||||
.like-count-clickable {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
/* Padding+matching negative margin enlarges the click target without
|
||||
shifting layout — the box grows but its visual position is unchanged. */
|
||||
padding: 0.3rem;
|
||||
margin: -0.3rem;
|
||||
}
|
||||
|
||||
.like-count-clickable:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.comment-replies {
|
||||
padding-left: max(0.4rem, calc(1.25rem - var(--depth, 0) * 0.1rem));
|
||||
margin-left: max(0.25rem, calc(1.1rem - var(--depth, 0) * 0.09rem));
|
||||
|
||||
Reference in New Issue
Block a user