Files
5chan/src/views/mod-queue/mod-queue.module.css
T

489 lines
8.5 KiB
CSS
Raw Normal View History

2026-01-07 16:03:02 +01:00
.container {
padding: 10px;
max-width: 1000px;
margin: 0 auto;
}
.header {
margin-bottom: 10px;
}
.title {
font-size: 1.5em;
font-weight: bold;
}
.controls {
2026-01-07 16:03:02 +01:00
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10px;
flex-wrap: wrap;
gap: 10px;
}
.controlsLeft {
display: flex;
align-items: center;
}
.controlsRight {
display: flex;
align-items: center;
2026-01-07 16:03:02 +01:00
}
.alertThresholdSetting {
display: flex;
align-items: center;
gap: 8px;
}
.alertThresholdSetting label {
display: flex;
align-items: center;
gap: 8px;
font-size: 13px;
}
.alertThresholdInput {
width: 50px;
2026-01-08 16:43:14 +01:00
}
2026-01-08 16:43:14 +01:00
.tableWrapper {
border: var(--mod-queue-table-border);
2026-01-07 16:03:02 +01:00
}
.tableHeader {
display: flex;
2026-01-11 16:57:09 +01:00
gap: 1px;
2026-01-07 16:03:02 +01:00
font-weight: bold;
2026-01-11 16:19:51 +01:00
font-size: 9pt;
text-transform: capitalize;
}
2026-01-11 16:57:09 +01:00
.numberHeader,
.excerptHeader,
.timeHeader,
.actionsHeader {
background: var(--mod-queue-header-background-color);
padding: 5px;
}
.numberHeader {
2026-01-12 20:08:56 +01:00
min-width: 60px;
flex-shrink: 0;
2026-01-07 16:03:02 +01:00
}
.excerptHeader {
flex-grow: 1;
}
.timeHeader {
2026-01-11 16:57:09 +01:00
width: 210px;
2026-01-07 16:03:02 +01:00
text-align: right;
flex-shrink: 0;
white-space: nowrap;
2026-01-07 16:03:02 +01:00
}
.actionsHeader {
width: 150px;
flex-shrink: 0;
text-align: right;
}
.empty {
padding: 20px;
text-align: center;
2026-01-08 16:43:14 +01:00
color: var(--mod-queue-time-color);
2026-01-07 16:03:02 +01:00
}
.footer {
padding: 10px;
display: flex;
justify-content: center;
}
.error {
padding: 10px;
text-align: center;
}
2026-01-07 16:03:02 +01:00
/* ModQueueRow styles */
.row {
display: flex;
2026-01-11 16:19:51 +01:00
border: none;
2026-01-07 16:03:02 +01:00
align-items: center;
2026-01-11 16:57:09 +01:00
gap: 1px;
margin-top: 1px;
2026-01-08 16:43:14 +01:00
color: var(--body-font-color);
2026-01-11 16:19:51 +01:00
font-size: 9pt;
2026-01-07 16:03:02 +01:00
}
2026-01-11 16:57:09 +01:00
.number,
.excerpt,
.time,
.actions {
padding: 2px 5px;
}
/* Odd rows - standalone class needed for CSS Modules export */
.rowOdd {}
2026-01-11 16:57:09 +01:00
/* Odd rows - theme-specific background colors applied to cells */
:global(body.yotsuba) .rowOdd .number,
:global(body.yotsuba) .rowOdd .excerpt,
:global(body.yotsuba) .rowOdd .time,
:global(body.yotsuba) .rowOdd .actions {
2026-01-11 16:19:51 +01:00
background-color: #ede2d4;
}
2026-01-11 16:57:09 +01:00
:global(body.yotsuba-b) .rowOdd .number,
:global(body.yotsuba-b) .rowOdd .excerpt,
:global(body.yotsuba-b) .rowOdd .time,
:global(body.yotsuba-b) .rowOdd .actions {
2026-01-11 16:19:51 +01:00
background-color: #e0e5f6;
}
2026-01-11 16:57:09 +01:00
:global(body.futaba) .rowOdd .number,
:global(body.futaba) .rowOdd .excerpt,
:global(body.futaba) .rowOdd .time,
:global(body.futaba) .rowOdd .actions {
2026-01-11 16:19:51 +01:00
background-color: #ede2d4;
}
2026-01-11 16:57:09 +01:00
:global(body.burichan) .rowOdd .number,
:global(body.burichan) .rowOdd .excerpt,
:global(body.burichan) .rowOdd .time,
:global(body.burichan) .rowOdd .actions {
2026-01-11 16:19:51 +01:00
background-color: #e0e5f6;
}
2026-01-11 16:57:09 +01:00
:global(body.tomorrow) .rowOdd .number,
:global(body.tomorrow) .rowOdd .excerpt,
:global(body.tomorrow) .rowOdd .time,
:global(body.tomorrow) .rowOdd .actions {
2026-01-11 16:19:51 +01:00
background-color: rgba(255, 255, 255, 0.1);
}
2026-01-11 16:57:09 +01:00
:global(body.photon) .rowOdd .number,
:global(body.photon) .rowOdd .excerpt,
:global(body.photon) .rowOdd .time,
:global(body.photon) .rowOdd .actions {
2026-01-11 16:19:51 +01:00
background-color: #888;
2026-01-07 16:03:02 +01:00
}
.number {
2026-01-12 20:08:56 +01:00
min-width: 60px;
flex-shrink: 0;
}
2026-01-07 16:03:02 +01:00
.excerpt {
flex-grow: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
min-width: 0;
}
.excerpt a {
2026-01-08 16:43:14 +01:00
text-decoration: var(--post-link-text-decoration);
color: var(--post-link-text-color);
2026-01-07 16:03:02 +01:00
}
.excerpt a:hover {
2026-01-08 16:43:14 +01:00
text-decoration: var(--post-link-text-decoration-hover);
color: var(--post-link-text-color-hover);
2026-01-07 16:03:02 +01:00
}
.time {
2026-01-11 16:57:09 +01:00
width: 210px;
2026-01-07 16:03:02 +01:00
flex-shrink: 0;
text-align: right;
white-space: nowrap;
2026-01-07 16:03:02 +01:00
}
.alert {
2026-01-08 16:43:14 +01:00
color: var(--mod-queue-alert-color);
2026-01-07 16:03:02 +01:00
font-weight: bold;
animation: blink 2s infinite;
}
2026-01-12 20:08:56 +01:00
.alertWrapper {
/* Container for the time ago indicator with parentheses, hidden on mobile */
}
2026-01-07 16:03:02 +01:00
@keyframes blink {
0% { opacity: 1; }
50% { opacity: 0.5; }
100% { opacity: 1; }
}
.actions {
width: 150px;
flex-shrink: 0;
display: flex;
gap: 4px;
justify-content: flex-end;
align-items: center;
2026-01-07 16:03:02 +01:00
}
2026-01-12 20:08:56 +01:00
.actionButtons {
display: inline;
}
.mobileCard {
border: var(--mod-queue-table-border);
background: var(--post-mobile-background-color, transparent);
padding: 8px;
margin: 6px 0;
display: flex;
flex-direction: column;
gap: 6px;
}
.cardHeader {
display: flex;
justify-content: space-between;
font-size: 9pt;
font-weight: bold;
}
.cardNumber {
color: var(--body-font-color);
}
.cardTime {
white-space: nowrap;
}
.cardContent {
font-size: 9pt;
color: var(--body-font-color);
}
.cardContent a {
text-decoration: var(--post-link-text-decoration);
color: var(--post-link-text-color);
}
.cardContent a:hover {
text-decoration: var(--post-link-text-decoration-hover);
color: var(--post-link-text-color-hover);
}
.cardActions {
display: flex;
justify-content: flex-end;
gap: 8px;
}
/* Desktop: buttons styled as text links (same as board buttons) */
2026-01-08 16:43:14 +01:00
@media (min-width: 640px) {
.actions {
display: block;
text-align: right;
}
2026-01-08 16:43:14 +01:00
.button {
all: unset;
cursor: pointer;
text-transform: capitalize;
color: var(--button-desktop-text-color);
text-decoration: var(--button-text-decoration);
display: inline;
2026-01-08 16:43:14 +01:00
font-family: inherit;
}
2026-01-07 16:03:02 +01:00
2026-01-08 16:43:14 +01:00
.button:hover {
color: var(--button-desktop-text-color-hover);
cursor: pointer;
2026-01-08 16:43:14 +01:00
}
.button:disabled {
opacity: 0.5;
cursor: not-allowed;
}
2026-01-07 16:03:02 +01:00
}
/* Status indicators (spans only) - bold, green/red, no underline */
span.approve {
color: green;
font-weight: 700;
text-decoration: none;
2026-01-08 16:43:14 +01:00
}
span.approve:hover {
color: green;
2026-01-07 16:03:02 +01:00
}
span.reject {
color: red;
font-weight: 700;
text-decoration: none;
2026-01-08 16:43:14 +01:00
}
span.reject:hover {
color: red;
2026-01-07 16:03:02 +01:00
}
/* ModQueueBoardFilter styles */
.filterContainer {
display: flex;
align-items: center;
gap: 8px;
}
/* ModQueueButton styles */
.modQueueButtonCount {
font-weight: bold;
}
2026-01-08 16:43:14 +01:00
/* Number blinking, changing color to red */
.modQueueButtonCountAlert {
animation: blinkColor 2s infinite;
}
@keyframes blinkColor {
0% {
color: inherit;
}
50% {
color: var(--mod-queue-alert-color);
}
100% {
color: inherit;
}
2026-01-07 16:03:02 +01:00
}
2026-01-12 20:08:56 +01:00
/* Mobile Layout - keeps table structure like desktop, just narrower columns */
@media (max-width: 639px) {
2026-01-12 20:08:56 +01:00
.container {
padding: 5px;
}
2026-01-07 16:03:02 +01:00
.header {
margin-bottom: 10px;
}
.controls {
2026-01-07 16:03:02 +01:00
flex-direction: column;
align-items: flex-start;
}
2026-01-12 20:08:56 +01:00
.tableHeader {
font-size: 8pt;
}
.numberHeader {
min-width: 28px;
}
.timeHeader {
width: 90px;
}
.actionsHeader {
width: 80px;
}
.row {
font-size: 8pt;
}
/* Remove background colors for rows on mobile */
:global(body.yotsuba) .rowOdd .number,
:global(body.yotsuba) .rowOdd .excerpt,
:global(body.yotsuba) .rowOdd .time,
:global(body.yotsuba) .rowOdd .actions,
:global(body.yotsuba-b) .rowOdd .number,
:global(body.yotsuba-b) .rowOdd .excerpt,
:global(body.yotsuba-b) .rowOdd .time,
:global(body.yotsuba-b) .rowOdd .actions,
:global(body.futaba) .rowOdd .number,
:global(body.futaba) .rowOdd .excerpt,
:global(body.futaba) .rowOdd .time,
:global(body.futaba) .rowOdd .actions,
:global(body.burichan) .rowOdd .number,
:global(body.burichan) .rowOdd .excerpt,
:global(body.burichan) .rowOdd .time,
:global(body.burichan) .rowOdd .actions,
:global(body.tomorrow) .rowOdd .number,
:global(body.tomorrow) .rowOdd .excerpt,
:global(body.tomorrow) .rowOdd .time,
:global(body.tomorrow) .rowOdd .actions,
:global(body.photon) .rowOdd .number,
:global(body.photon) .rowOdd .excerpt,
:global(body.photon) .rowOdd .time,
:global(body.photon) .rowOdd .actions {
background-color: transparent;
}
.number {
min-width: 28px;
}
.excerpt {
white-space: normal;
overflow: visible;
text-overflow: clip;
word-wrap: break-word;
}
.time {
width: 90px;
white-space: normal;
overflow: visible;
text-overflow: clip;
word-wrap: break-word;
}
/* Hide the time ago indicator (including parentheses) on mobile to save space */
.alertWrapper {
display: none;
}
.actions {
width: 80px;
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 2px;
}
.actionButtons {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 2px;
}
.buttonWrapper {
display: inline;
}
/* Keep desktop-style text buttons on mobile */
.button {
all: unset;
cursor: pointer;
text-transform: capitalize;
color: var(--button-desktop-text-color);
text-decoration: var(--button-text-decoration);
display: inline;
font-family: inherit;
font-size: 8pt;
}
.button:hover {
color: var(--button-desktop-text-color-hover);
cursor: pointer;
}
.button:disabled {
opacity: 0.5;
cursor: not-allowed;
}
2026-01-07 16:03:02 +01:00
}