stream.css 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. /* 流式响应相关的样式 */
  2. /* 消息加载状态 */
  3. .message.loading .message-content {
  4. min-height: 24px;
  5. }
  6. /* 打字指示器动画 */
  7. .typing-indicator {
  8. display: inline-flex;
  9. align-items: center;
  10. margin: 0 auto;
  11. }
  12. .typing-indicator span {
  13. display: inline-block;
  14. width: 8px;
  15. height: 8px;
  16. background-color: rgba(99, 102, 241, 0.7);
  17. border-radius: 50%;
  18. margin: 0 2px;
  19. animation: bounce 1.4s infinite ease-in-out;
  20. }
  21. .typing-indicator span:nth-child(1) {
  22. animation-delay: 0s;
  23. }
  24. .typing-indicator span:nth-child(2) {
  25. animation-delay: 0.2s;
  26. }
  27. .typing-indicator span:nth-child(3) {
  28. animation-delay: 0.4s;
  29. }
  30. @keyframes bounce {
  31. 0%, 80%, 100% {
  32. transform: scale(0.6);
  33. }
  34. 40% {
  35. transform: scale(1);
  36. }
  37. }
  38. /* Markdown 内容样式 */
  39. .markdown-content {
  40. line-height: 1.6;
  41. }
  42. .markdown-content h1,
  43. .markdown-content h2,
  44. .markdown-content h3,
  45. .markdown-content h4,
  46. .markdown-content h5,
  47. .markdown-content h6 {
  48. margin-top: 1.5em;
  49. margin-bottom: 0.5em;
  50. font-weight: 600;
  51. color: var(--gray-900);
  52. }
  53. .markdown-content h1 {
  54. font-size: 1.8em;
  55. border-bottom: 1px solid rgba(99, 102, 241, 0.2);
  56. padding-bottom: 0.3em;
  57. }
  58. .markdown-content h2 {
  59. font-size: 1.5em;
  60. border-bottom: 1px solid rgba(99, 102, 241, 0.1);
  61. padding-bottom: 0.2em;
  62. }
  63. .markdown-content h3 {
  64. font-size: 1.3em;
  65. }
  66. .markdown-content p {
  67. margin-bottom: 1em;
  68. }
  69. .markdown-content ul,
  70. .markdown-content ol {
  71. padding-left: 1.5em;
  72. margin-bottom: 1em;
  73. }
  74. .markdown-content li {
  75. margin-bottom: 0.5em;
  76. }
  77. .markdown-content code {
  78. font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace;
  79. background-color: rgba(99, 102, 241, 0.08);
  80. padding: 0.2em 0.4em;
  81. border-radius: 3px;
  82. font-size: 0.9em;
  83. }
  84. .markdown-content pre {
  85. background-color: rgba(255, 255, 255, 0.7);
  86. backdrop-filter: blur(var(--blur-sm));
  87. -webkit-backdrop-filter: blur(var(--blur-sm));
  88. padding: 1em;
  89. border-radius: var(--radius);
  90. overflow-x: auto;
  91. margin-bottom: 1em;
  92. box-shadow: var(--shadow-sm);
  93. border: var(--glass-border);
  94. }
  95. .markdown-content pre code {
  96. background-color: transparent;
  97. padding: 0;
  98. font-size: 0.9em;
  99. color: inherit;
  100. }
  101. .markdown-content blockquote {
  102. border-left: 4px solid rgba(99, 102, 241, 0.4);
  103. padding-left: 1em;
  104. color: var(--gray-700);
  105. margin-bottom: 1em;
  106. background-color: rgba(99, 102, 241, 0.05);
  107. padding: 0.5em 1em;
  108. border-radius: 0 var(--radius) var(--radius) 0;
  109. }
  110. .markdown-content table {
  111. border-collapse: collapse;
  112. width: 100%;
  113. margin-bottom: 1em;
  114. background-color: rgba(255, 255, 255, 0.5);
  115. backdrop-filter: blur(var(--blur-sm));
  116. -webkit-backdrop-filter: blur(var(--blur-sm));
  117. border-radius: var(--radius);
  118. overflow: hidden;
  119. box-shadow: var(--shadow-sm);
  120. }
  121. .markdown-content th,
  122. .markdown-content td {
  123. border: 1px solid rgba(99, 102, 241, 0.2);
  124. padding: 0.75em;
  125. text-align: left;
  126. }
  127. .markdown-content th {
  128. background-color: rgba(99, 102, 241, 0.1);
  129. font-weight: 600;
  130. color: var(--gray-900);
  131. }