style.css 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. .chat-container {
  2. display: flex;
  3. flex-direction: column;
  4. min-height: 100vh;
  5. }
  6. .messages-area {
  7. flex: 1;
  8. padding: 16px;
  9. }
  10. .session-group {
  11. margin-bottom: 24px;
  12. border-radius: 8px;
  13. padding: 16px;
  14. }
  15. .session-group.pending {
  16. opacity: 0.7;
  17. }
  18. .session-group.failed {
  19. border: 1px solid #ff4d4f;
  20. background-color: #fff2f0;
  21. }
  22. .user-message,
  23. .assistant-message {
  24. margin-bottom: 12px;
  25. }
  26. .user-message {
  27. display: flex;
  28. justify-content: flex-end;
  29. }
  30. .user-message .message-content {
  31. border: 1px solid rgba(128, 128, 128, 0.5);
  32. background-color: rgba(255, 255, 255, 0.5);
  33. }
  34. .message-header {
  35. display: flex;
  36. justify-content: space-between;
  37. align-items: center;
  38. margin-bottom: 8px;
  39. }
  40. .role-label {
  41. font-weight: bold;
  42. color: #1890ff;
  43. }
  44. .message-content {
  45. padding: 12px;
  46. border-radius: 6px;
  47. background-color: #f5f5f5;
  48. }
  49. .version-switcher {
  50. margin: 8px 0;
  51. text-align: center;
  52. }
  53. .chat-input {
  54. border-top: 1px solid #d9d9d9;
  55. padding: 16px;
  56. }
  57. .streaming-message .cursor {
  58. animation: blink 1s infinite;
  59. }
  60. @keyframes blink {
  61. 0%,
  62. 50% {
  63. opacity: 1;
  64. }
  65. 51%,
  66. 100% {
  67. opacity: 0;
  68. }
  69. }
  70. .retry-section {
  71. padding: 12px;
  72. background-color: #fff2f0;
  73. border: 1px solid #ffccc7;
  74. border-radius: 6px;
  75. margin-bottom: 12px;
  76. display: flex;
  77. justify-content: space-between;
  78. align-items: center;
  79. }
  80. .error-message {
  81. color: #ff4d4f;
  82. font-size: 14px;
  83. }
  84. .status-indicator {
  85. margin-left: 8px;
  86. font-size: 12px;
  87. }
  88. .status-indicator.pending {
  89. color: #1890ff;
  90. }
  91. .status-indicator.failed {
  92. color: #ff4d4f;
  93. }
  94. .tool-calls {
  95. margin-bottom: 12px;
  96. padding: 8px;
  97. background-color: #f0f0f0;
  98. border-radius: 4px;
  99. }
  100. .tool-result {
  101. margin-bottom: 8px;
  102. }
  103. .tool-label {
  104. font-size: 12px;
  105. color: #666;
  106. font-weight: bold;
  107. }
  108. .tool-content {
  109. margin-top: 4px;
  110. font-family: monospace;
  111. font-size: 12px;
  112. padding: 4px;
  113. background-color: #fff;
  114. border-radius: 2px;
  115. }
  116. .token-info {
  117. margin-top: 8px;
  118. font-size: 12px;
  119. color: #666;
  120. text-align: right;
  121. }
  122. .edit-area {
  123. margin-top: 8px;
  124. }
  125. .edit-actions {
  126. margin-top: 8px;
  127. text-align: right;
  128. }
  129. .edit-actions .ant-btn {
  130. margin-left: 8px;
  131. }
  132. .input-area {
  133. position: relative;
  134. }
  135. .input-actions {
  136. position: absolute;
  137. right: 8px;
  138. bottom: 8px;
  139. display: flex;
  140. align-items: center;
  141. }
  142. .version-info {
  143. font-size: 12px;
  144. color: #666;
  145. padding: 0 8px;
  146. user-select: none;
  147. }
  148. .model-info {
  149. font-size: 12px;
  150. color: #666;
  151. background-color: #f0f0f0;
  152. padding: 2px 6px;
  153. border-radius: 4px;
  154. }
  155. .streaming-indicator {
  156. font-size: 12px;
  157. color: #1890ff;
  158. animation: pulse 1.5s infinite;
  159. }
  160. @keyframes pulse {
  161. 0% {
  162. opacity: 0.6;
  163. }
  164. 50% {
  165. opacity: 1;
  166. }
  167. 100% {
  168. opacity: 0.6;
  169. }
  170. }