blob: f2b1ad21739a7c4df3ae1d22cd3a884cf41f7d11 [file] [log] [blame]
Akane121765b61a72025-05-17 13:52:25 +08001/* 基础布局样式 */
2.torrent-detail-container {
3 max-width: 1000px;
4 margin: 0 auto;
5 padding: 20px;
6 color: #333;
7}
8
9.back-button {
10 background: none;
11 border: none;
12 color: #3498db;
13 font-size: 16px;
14 cursor: pointer;
15 margin-bottom: 20px;
16 padding: 5px 10px;
17}
18
19.back-button:hover {
20 text-decoration: underline;
21}
22
23/* 种子信息区域 */
24.torrent-main {
25 display: flex;
26 gap: 30px;
27 margin-bottom: 40px;
28}
29
30.torrent-cover {
31 flex: 0 0 300px;
32}
33
34.cover-placeholder {
35 width: 100%;
36 height: 450px;
37 background-color: #eee;
38 display: flex;
39 align-items: center;
40 justify-content: center;
41 font-size: 72px;
42 color: #999;
43 border-radius: 5px;
44}
45
46.torrent-info {
47 flex: 1;
48}
49
50.torrent-title {
51 font-size: 28px;
52 margin-bottom: 20px;
53 color: #222;
54}
55
56.uploader-info {
57 display: flex;
58 align-items: center;
59 gap: 15px;
60 margin-bottom: 20px;
61}
62
63.uploader-avatar {
64 width: 40px;
65 height: 40px;
66 border-radius: 50%;
67 background-color: #3498db;
68 color: white;
69 display: flex;
70 align-items: center;
71 justify-content: center;
72 font-weight: bold;
73}
74
75.uploader-details {
76 flex: 1;
77}
78
79.uploader-name {
80 font-weight: bold;
81}
82
83.upload-time {
84 font-size: 14px;
85 color: #777;
86}
87
88.torrent-meta {
89 margin-bottom: 20px;
90}
91
92.torrent-meta p {
93 margin: 5px 0;
94}
95
96.torrent-description {
97 margin-bottom: 30px;
98 line-height: 1.6;
99}
100
101.interaction-buttons {
102 display: flex;
103 gap: 15px;
104}
105
106.interaction-buttons button {
107 padding: 8px 15px;
108 border: none;
109 border-radius: 4px;
110 cursor: pointer;
111 font-size: 14px;
112 transition: background-color 0.2s;
113}
114
115.like-button {
116 background-color: #f0f0f0;
117}
118
119.like-button:hover {
120 background-color: #e0e0e0;
121}
122
123.download-button {
124 background-color: #3498db;
125 color: white;
126}
127
128.download-button:hover {
129 background-color: #2980b9;
130}
131
132/* 评论区域样式 */
133.comments-section {
134 margin-top: 40px;
135}
136
137.comments-section h2 {
138 font-size: 22px;
139 margin-bottom: 20px;
140 padding-bottom: 10px;
141 border-bottom: 1px solid #eee;
142}
143
144.comment-form {
145 margin-bottom: 30px;
146}
147
148.comment-form textarea {
149 width: 100%;
150 padding: 10px;
151 border: 1px solid #ddd;
152 border-radius: 4px;
153 margin-bottom: 10px;
154 resize: vertical;
155 min-height: 80px;
156}
157
158.comment-form button {
159 background-color: #3498db;
160 color: white;
161 border: none;
162 padding: 8px 15px;
163 border-radius: 4px;
164 cursor: pointer;
165}
166
167.comment-form button:hover {
168 background-color: #2980b9;
169}
170
171.comment-list {
172 margin-top: 20px;
173}
174
175/* 评论项统一样式 */
176.comment-container {
177 margin-bottom: 15px;
178}
179
180.comment-item {
181 display: flex;
182 gap: 15px;
183 padding: 12px;
184 background: #fff;
185 border-radius: 8px;
186 border: 1px solid #eaeaea;
187}
188
189/* 副评论统一缩进 */
190.comment-container.is-reply {
191 margin-left: 40px;
192 position: relative;
193}
194
195/* 副评论连接线 */
196.comment-container.is-reply:before {
197 content: "";
198 position: absolute;
199 left: -20px;
200 top: 20px;
201 width: 15px;
202 height: 1px;
203 background: #ddd;
204}
205
206.comment-avatar {
207 flex: 0 0 40px;
208 height: 40px;
209 border-radius: 50%;
210 background-color: #e74c3c;
211 color: white;
212 display: flex;
213 align-items: center;
214 justify-content: center;
215 font-weight: bold;
216}
217
218.comment-content {
219 flex: 1;
220}
221
222.comment-header {
223 margin-bottom: 8px;
224}
225
226.comment-user {
227 font-weight: bold;
228 margin-right: 10px;
229}
230
231.reply-to {
232 color: #666;
233 font-size: 14px;
234 margin: 0 5px;
235}
236
237.comment-time {
238 font-size: 14px;
239 color: #777;
240}
241
242.comment-text {
243 margin-bottom: 10px;
244 line-height: 1.5;
245}
246
247.comment-actions {
248 display: flex;
249 gap: 15px;
250}
251
252.comment-actions button {
253 background: none;
254 border: none;
255 color: #3498db;
256 cursor: pointer;
257 font-size: 14px;
258 padding: 0;
259}
260
261.comment-actions button:hover {
262 text-decoration: underline;
263}
264
265/* 回复列表容器 */
266.replies-container {
267 margin-top: 15px;
268}
269
270/* 副评论背景色 */
271.comment-container.is-reply .comment-item {
272 background: #f9f9f9;
273}
274
275/* 回复表单样式 */
276.reply-form {
277 margin-top: 15px;
278}
279
280.reply-form textarea {
281 width: 100%;
282 padding: 8px;
283 border: 1px solid #ddd;
284 border-radius: 4px;
285 margin-bottom: 10px;
286 resize: vertical;
287 min-height: 60px;
288}
289
290.reply-actions {
291 display: flex;
292 gap: 10px;
293 justify-content: flex-end;
294}
295
296.reply-actions button {
297 padding: 5px 10px;
298 border: none;
299 border-radius: 3px;
300 cursor: pointer;
301 font-size: 13px;
302}
303
304.reply-actions button[type="button"] {
305 background-color: #f0f0f0;
306}
307
308.reply-actions button[type="submit"] {
309 background-color: #3498db;
310 color: white;
311}
312
313/* 加载和错误状态 */
314.loading {
315 text-align: center;
316 padding: 50px;
317 font-size: 18px;
318}
319
320.error {
321 color: #e74c3c;
322 text-align: center;
323 padding: 50px;
324 font-size: 18px;
325}
326/* 回复表单样式 */
327.reply-form {
328 margin-left: 50px;
329 margin-top: 10px;
330 background: #f5f5f5;
331 padding: 10px;
332 border-radius: 4px;
333}
334
335.reply-form textarea {
336 width: 100%;
337 padding: 8px;
338 border: 1px solid #ddd;
339 border-radius: 4px;
340 resize: vertical;
341}
342
343.reply-form-buttons {
344 display: flex;
345 gap: 10px;
346 margin-top: 8px;
347}
348
349.reply-form-buttons button {
350 padding: 5px 10px;
351 border: none;
352 border-radius: 4px;
353 cursor: pointer;
354}
355
356.reply-form-buttons button[type="submit"] {
357 background-color: #1890ff;
358 color: white;
359}
360
361.reply-form-buttons .cancel-reply {
362 background-color: #f5f5f5;
363 border: 1px solid #d9d9d9;
364}
365
366.comment-list {
367 margin-top: 20px;
368 border-top: 1px solid #eee;
369 padding-top: 20px;
370}
371
372.reply-form {
373 margin-left: 50px;
374 margin-top: 10px;
375 margin-bottom: 15px;
376 background: #f9f9f9;
377 padding: 12px;
378 border-radius: 6px;
379 border: 1px solid #eee;
380}
381
382.reply-form.nested-reply {
383 margin-left: 80px;
384}
385
386.reply-form textarea {
387 width: 100%;
388 padding: 10px;
389 border: 1px solid #ddd;
390 border-radius: 4px;
391 resize: vertical;
392 min-height: 60px;
393 font-family: inherit;
394 font-size: 14px;
395}
396
397.reply-form-buttons {
398 display: flex;
399 gap: 10px;
400 margin-top: 10px;
401}
402
403.reply-form-buttons button {
404 padding: 6px 12px;
405 border-radius: 4px;
406 cursor: pointer;
407 font-size: 13px;
408 transition: all 0.2s;
409}
410
411.reply-form-buttons button[type="submit"] {
412 background-color: #1890ff;
413 color: white;
414 border: none;
415}
416
417.reply-form-buttons button[type="submit"]:hover {
418 background-color: #40a9ff;
419}
420
421.reply-form-buttons .cancel-reply {
422 background-color: #f5f5f5;
423 border: 1px solid #d9d9d9;
424 color: #666;
425}
426
427.reply-form-buttons .cancel-reply:hover {
428 background-color: #e8e8e8;
429}
430
431/* 回复弹窗样式 */
432.reply-modal-overlay {
433 position: fixed;
434 top: 0;
435 left: 0;
436 right: 0;
437 bottom: 0;
438 background-color: rgba(0, 0, 0, 0.5);
439 display: flex;
440 justify-content: center;
441 align-items: center;
442 z-index: 1000;
443}
444
445.reply-modal {
446 background: white;
447 border-radius: 8px;
448 width: 90%;
449 max-width: 500px;
450 padding: 20px;
451 box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
452}
453
454.modal-header {
455 display: flex;
456 justify-content: space-between;
457 align-items: center;
458 margin-bottom: 15px;
459}
460
461.modal-header h3 {
462 margin: 0;
463 font-size: 18px;
464}
465
466.close-modal {
467 background: none;
468 border: none;
469 font-size: 24px;
470 cursor: pointer;
471 color: #666;
472}
473
474.reply-modal textarea {
475 width: 100%;
476 padding: 12px;
477 border: 1px solid #ddd;
478 border-radius: 4px;
479 resize: vertical;
480 min-height: 120px;
481 font-size: 14px;
482 margin-bottom: 15px;
483}
484
485.modal-actions {
486 display: flex;
487 justify-content: flex-end;
488 gap: 10px;
489}
490
491.modal-actions button {
492 padding: 8px 16px;
493 border-radius: 4px;
494 cursor: pointer;
495 font-size: 14px;
496}
497
498.cancel-btn {
499 background: #f5f5f5;
500 border: 1px solid #d9d9d9;
501 color: #666;
502}
503
504.cancel-btn:hover {
505 background: #e8e8e8;
506}
507
508.submit-btn {
509 background: #1890ff;
510 color: white;
511 border: none;
512}
513
514.submit-btn:hover {
515 background: #40a9ff;
516}