文件
catch-the-fish/resources/less/forum.less
T
2026-07-31 00:13:44 +08:00

256 行
4.4 KiB
Plaintext

.catchthefish-table {
width: 100%;
border-collapse: collapse;
th, td {
padding: 5px 10px;
text-align: left;
border-bottom: 1px solid var(--control-bg, #eee);
}
tr:nth-child(odd) td {
background: var(--control-bg, #fafafa);
}
img {
max-height: 40px;
}
.Avatar {
width: 24px;
height: 24px;
font-size: 12px;
line-height: 24px;
}
}
.catchthefish-basket {
position: fixed;
z-index: 1000;
bottom: 16px;
right: 16px;
width: 220px;
background: var(--body-bg);
border: 1px solid var(--control-bg, #ddd);
border-radius: 12px;
box-shadow: 0 8px 28px rgba(0, 0, 0, 0.18);
padding: 12px;
text-align: center;
}
.catchthefish-basket-title {
font-weight: bold;
}
.catchthefish-basket-fish {
cursor: move;
max-width: 150px;
margin: 8px auto;
padding: 6px;
border: 2px solid transparent;
border-radius: 10px;
touch-action: manipulation;
&.active {
border-color: var(--primary-color);
background: var(--control-bg, #f0f0f0);
}
}
.catchthefish-basket-entry {
user-select: none;
}
.catchthefish-drop-area {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
border: 4px dashed #dedede;
border-radius: 20px;
background: rgba(255, 255, 255, 0.5);
display: flex;
align-items: center;
justify-content: center;
color: #dedede;
font-weight: bold;
font-size: 2em;
z-index: 5;
}
.catchthefish-moving-fish {
position: absolute;
top: 10px;
left: 50%;
width: 140px;
opacity: 0.9;
animation: 14s swim linear infinite;
cursor: pointer;
&.catchthefish-animate-flip .catchthefish-image {
animation: 14s flip linear infinite;
}
&.catchthefish-animate-reverse {
animation-name: swim-reverse;
&.catchthefish-animate-flip .catchthefish-image {
animation-name: flip-reverse;
}
}
}
.UserCard,
.DiscussionHero {
position: relative;
}
.catchthefish-name {
text-align: center;
font-weight: bold;
}
.catchthefish-image {
max-width: 100%;
}
@media (max-width: 767px) {
.catchthefish-basket {
left: 8px;
right: 8px;
bottom: 8px;
width: auto;
max-height: 42vh;
overflow-y: auto;
padding: 10px;
}
.catchthefish-basket p {
margin: 4px 0 8px;
font-size: 12px;
}
.catchthefish-basket-entry {
display: inline-block;
width: 92px;
vertical-align: top;
margin: 0 4px;
}
.catchthefish-basket-fish {
max-width: 76px;
cursor: pointer;
}
.catchthefish-basket-time {
font-size: 11px;
line-height: 1.3;
}
.catchthefish-drop-area {
font-size: 1.1em;
border-width: 3px;
border-radius: 12px;
background: rgba(255, 255, 255, 0.75);
}
}
.catchthefish-no-image {
background: black;
color: white;
display: flex;
align-items: center;
justify-content: center;
padding: 5px;
}
.catchthefish-catch-modal {
text-align: center;
.catchthefish-image {
display: block;
width: 80%;
margin: 0 auto 20px;
}
.Avatar {
width: 24px;
height: 24px;
font-size: 12px;
line-height: 24px;
}
}
@keyframes swim {
0% {
transform: translateX(-200px);
}
48% {
transform: translateX(200px);
}
50% {
transform: translateX(200px);
}
98% {
transform: translateX(-200px);
}
100% {
transform: translateX(-200px);
}
}
@keyframes swim-reverse {
0% {
transform: translateX(200px);
}
48% {
transform: translateX(-200px);
}
50% {
transform: translateX(-200px);
}
98% {
transform: translateX(200px);
}
100% {
transform: translateX(200px);
}
}
@keyframes flip {
0% {
transform: scaleX(-1);
}
48% {
transform: scaleX(-1);
}
50% {
transform: scaleX(1);
}
98% {
transform: scaleX(1);
}
100% {
transform: scaleX(-1);
}
}
@keyframes flip-reverse {
0% {
transform: scaleX(1);
}
48% {
transform: scaleX(1);
}
50% {
transform: scaleX(-1);
}
98% {
transform: scaleX(-1);
}
100% {
transform: scaleX(1);
}
}