chat.wxss 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. /* pages/chat/chat.wxss */
  2. .container {
  3. display: flex;
  4. flex-direction: column;
  5. height: 100vh;
  6. background: linear-gradient(180deg, #f8f9ff 0%, #f5f5f5 100%);
  7. }
  8. .messages-container {
  9. flex: 1;
  10. padding: 30rpx;
  11. overflow-y: auto;
  12. }
  13. .messages {
  14. display: flex;
  15. flex-direction: column;
  16. gap: 30rpx;
  17. }
  18. .message-row {
  19. display: flex;
  20. align-items: flex-end;
  21. gap: 16rpx;
  22. }
  23. .row-right {
  24. flex-direction: row-reverse;
  25. }
  26. .row-left {
  27. flex-direction: row;
  28. }
  29. .message-item {
  30. display: flex;
  31. flex-direction: column;
  32. max-width: 70%;
  33. animation: fadeIn 0.3s ease;
  34. }
  35. @keyframes fadeIn {
  36. from {
  37. opacity: 0;
  38. transform: translateY(10rpx);
  39. }
  40. to {
  41. opacity: 1;
  42. transform: translateY(0);
  43. }
  44. }
  45. .user-message {
  46. align-self: flex-end;
  47. }
  48. .user-message .message-content {
  49. background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  50. color: #fff;
  51. border-radius: 20rpx 20rpx 4rpx 20rpx;
  52. padding: 20rpx 24rpx;
  53. box-shadow: 0 4rpx 12rpx rgba(102, 126, 234, 0.3);
  54. }
  55. .assistant-message {
  56. align-self: flex-start;
  57. }
  58. .assistant-message .message-content {
  59. background: #fff;
  60. color: #333;
  61. border-radius: 20rpx 20rpx 20rpx 4rpx;
  62. padding: 20rpx 24rpx;
  63. box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
  64. border: 1rpx solid #f0f0f0;
  65. }
  66. .avatar {
  67. width: 56rpx;
  68. height: 56rpx;
  69. border-radius: 50%;
  70. display: flex;
  71. align-items: center;
  72. justify-content: center;
  73. font-size: 26rpx;
  74. font-weight: 600;
  75. color: #fff;
  76. box-shadow: 0 4rpx 12rpx rgba(0,0,0,0.08);
  77. }
  78. .avatar-user {
  79. background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  80. }
  81. .avatar-assistant {
  82. background: linear-gradient(135deg, #36d1dc 0%, #5b86e5 100%);
  83. }
  84. .message-text {
  85. font-size: 28rpx;
  86. line-height: 1.6;
  87. word-wrap: break-word;
  88. }
  89. .message-time {
  90. font-size: 22rpx;
  91. color: #999;
  92. margin-top: 8rpx;
  93. padding: 0 8rpx;
  94. }
  95. .user-message .message-time, .time-right {
  96. text-align: right;
  97. }
  98. .assistant-message .message-time, .time-left {
  99. text-align: left;
  100. }
  101. .input-container {
  102. display: flex;
  103. align-items: center;
  104. padding: 20rpx 30rpx;
  105. padding-bottom: calc(20rpx + env(safe-area-inset-bottom));
  106. background: #fff;
  107. border-top: 1rpx solid #e0e0e0;
  108. box-shadow: 0 -4rpx 20rpx rgba(0, 0, 0, 0.05);
  109. }
  110. .input-box {
  111. flex: 1;
  112. height: 72rpx;
  113. padding: 0 24rpx;
  114. background: #f5f5f5;
  115. border-radius: 36rpx;
  116. font-size: 28rpx;
  117. margin-right: 20rpx;
  118. transition: background 0.2s ease, box-shadow 0.2s ease;
  119. }
  120. .input-box:focus {
  121. background: #fff;
  122. box-shadow: 0 0 0 4rpx rgba(102,126,234,0.15);
  123. }
  124. .send-btn {
  125. width: 120rpx;
  126. height: 72rpx;
  127. line-height: 72rpx;
  128. background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  129. color: #fff;
  130. border-radius: 36rpx;
  131. font-size: 28rpx;
  132. border: none;
  133. font-weight: 500;
  134. }
  135. .send-btn::after {
  136. border: none;
  137. }
  138. .send-btn[disabled] {
  139. background: #ccc;
  140. color: #999;
  141. }
  142. .loading {
  143. text-align: center;
  144. padding: 40rpx;
  145. font-size: 26rpx;
  146. color: #999;
  147. }
  148. .empty {
  149. text-align: center;
  150. padding: 160rpx 40rpx;
  151. color: #8b8b8b;
  152. }
  153. .empty-icon { font-size: 120rpx; opacity: 0.25; }
  154. .empty-title { display:block; margin-top: 24rpx; font-size: 30rpx; color:#666; font-weight: 600; }
  155. .empty-tip { display:block; margin-top: 10rpx; font-size: 26rpx; color:#9aa0a6; }