AssetUploader.module.css 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. .wrapper {
  2. display: flex;
  3. flex-direction: column;
  4. gap: 16px;
  5. }
  6. /* 模式切换 */
  7. .tabs {
  8. display: flex;
  9. border: 1px solid var(--color-border);
  10. border-radius: 8px;
  11. overflow: hidden;
  12. }
  13. .tab {
  14. flex: 1;
  15. padding: 8px 0;
  16. border: none;
  17. background: white;
  18. font-size: 13px;
  19. font-weight: 500;
  20. color: var(--color-text-secondary);
  21. cursor: pointer;
  22. transition: all 0.2s;
  23. }
  24. .tab:first-child {
  25. border-right: 1px solid var(--color-border);
  26. }
  27. .tabActive {
  28. background: var(--color-primary);
  29. color: white;
  30. }
  31. /* URL 输入行 */
  32. .urlRow {
  33. display: flex;
  34. gap: 8px;
  35. }
  36. .urlInput {
  37. flex: 1;
  38. padding: 10px 14px;
  39. border: 1px solid var(--color-border);
  40. border-radius: 8px;
  41. font-size: 13px;
  42. outline: none;
  43. font-family: monospace;
  44. }
  45. .urlInput:focus {
  46. border-color: var(--color-primary);
  47. }
  48. .urlBtn {
  49. padding: 10px 20px;
  50. border: none;
  51. border-radius: 8px;
  52. background: var(--color-primary);
  53. color: white;
  54. font-size: 13px;
  55. font-weight: 500;
  56. white-space: nowrap;
  57. }
  58. .urlBtn:disabled {
  59. opacity: 0.5;
  60. cursor: not-allowed;
  61. }
  62. .dropZone {
  63. display: flex;
  64. flex-direction: column;
  65. align-items: center;
  66. justify-content: center;
  67. gap: 6px;
  68. padding: 28px;
  69. border: 2px dashed var(--color-border);
  70. border-radius: var(--radius);
  71. cursor: pointer;
  72. transition: border-color 0.2s, background 0.2s;
  73. }
  74. .dropZone:hover {
  75. border-color: var(--color-primary);
  76. background: rgba(0, 113, 227, 0.03);
  77. }
  78. .fileInput {
  79. display: none;
  80. }
  81. .dropIcon {
  82. font-size: 32px;
  83. }
  84. .dropText {
  85. font-size: 14px;
  86. font-weight: 500;
  87. }
  88. .dropHint {
  89. font-size: 12px;
  90. color: var(--color-text-secondary);
  91. }
  92. .fileList {
  93. background: #fafafa;
  94. border-radius: 8px;
  95. padding: 12px;
  96. }
  97. .fileListHeader {
  98. display: flex;
  99. justify-content: space-between;
  100. align-items: center;
  101. font-size: 13px;
  102. font-weight: 500;
  103. margin-bottom: 8px;
  104. padding-bottom: 8px;
  105. border-bottom: 1px solid var(--color-border);
  106. }
  107. .clearBtn {
  108. background: none;
  109. border: none;
  110. color: var(--color-error);
  111. font-size: 12px;
  112. }
  113. .fileItem {
  114. display: flex;
  115. align-items: center;
  116. gap: 8px;
  117. padding: 4px 0;
  118. font-size: 13px;
  119. }
  120. .thumb {
  121. width: 36px;
  122. height: 36px;
  123. object-fit: cover;
  124. border-radius: 4px;
  125. border: 1px solid var(--color-border);
  126. flex-shrink: 0;
  127. }
  128. .fileOk { color: var(--color-success); }
  129. .fileMissing { color: var(--color-text-secondary); }
  130. .fileName {
  131. font-family: monospace;
  132. font-size: 12px;
  133. background: #eee;
  134. padding: 1px 6px;
  135. border-radius: 3px;
  136. }
  137. .fileLabel {
  138. flex: 1;
  139. color: var(--color-text-secondary);
  140. font-size: 12px;
  141. }
  142. .fileSize {
  143. font-size: 12px;
  144. color: var(--color-text-secondary);
  145. }
  146. .warnings {
  147. background: #fff3cd;
  148. border: 1px solid #ffc107;
  149. border-radius: 6px;
  150. padding: 8px 12px;
  151. font-size: 13px;
  152. color: #856404;
  153. }
  154. .warnings p {
  155. margin: 2px 0;
  156. }
  157. .error {
  158. color: var(--color-error);
  159. font-size: 13px;
  160. }
  161. .hint {
  162. color: var(--color-warning);
  163. font-size: 13px;
  164. }