chat-window.css 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. /* ============================================================
  2. * lib/components/chat-window.css · 仿微信一对一聊天窗
  3. * 只使用 tokens.css 的 --chat-* 与 --bg-*/--text-*/--radius-*,双主题自适应。
  4. * ============================================================ */
  5. chat-window { display: block; width: 100%; }
  6. chat-window .cw {
  7. max-width: 400px;
  8. margin: 0 auto;
  9. background: var(--chat-bg);
  10. border: 1px solid var(--border-strong);
  11. border-radius: var(--radius-lg);
  12. overflow: hidden;
  13. font-family: var(--font-body);
  14. font-size: 14px;
  15. line-height: 1.55;
  16. color: var(--text-2);
  17. }
  18. chat-window .cw-empty { padding: 24px; text-align: center; color: var(--text-4); }
  19. /* 顶部条 */
  20. chat-window .cw-bar {
  21. padding: 10px 14px;
  22. background: var(--chat-bar-bg);
  23. border-bottom: 1px solid var(--border-subtle);
  24. text-align: center;
  25. color: var(--chat-bar-text);
  26. font-size: 13px;
  27. letter-spacing: .05em;
  28. }
  29. chat-window .cw-bar .cw-sub {
  30. display: block;
  31. font-family: var(--font-mono);
  32. font-size: 11px;
  33. opacity: .7;
  34. letter-spacing: .08em;
  35. }
  36. /* 消息区 */
  37. chat-window .cw-body { padding: 14px 13px; display: flex; flex-direction: column; gap: 7px; }
  38. chat-window .cw-time {
  39. text-align: center;
  40. color: var(--chat-time);
  41. font-size: 11px;
  42. font-family: var(--font-mono);
  43. margin-bottom: 4px;
  44. }
  45. chat-window .cw-divider {
  46. text-align: center;
  47. color: var(--chat-time);
  48. font-size: 11px;
  49. margin: 6px 0;
  50. letter-spacing: .1em;
  51. }
  52. /* 一条消息 */
  53. chat-window .cw-msg {
  54. display: flex;
  55. gap: 8px;
  56. align-items: flex-end;
  57. max-width: 100%;
  58. }
  59. chat-window .cw-msg.out { flex-direction: row-reverse; }
  60. chat-window .cw-ava {
  61. flex: 0 0 32px;
  62. height: 32px;
  63. border-radius: 50%;
  64. background: var(--chat-avatar-bg);
  65. color: var(--chat-avatar-text);
  66. display: flex;
  67. align-items: center;
  68. justify-content: center;
  69. font-size: 13px;
  70. font-weight: 700;
  71. }
  72. chat-window .cw-bub {
  73. max-width: 74%;
  74. padding: 6px 11px;
  75. border-radius: 2px 8px 8px 8px;
  76. background: var(--chat-in-bg);
  77. color: var(--chat-in-text);
  78. word-break: break-word;
  79. }
  80. chat-window .cw-msg.out .cw-bub {
  81. border-radius: 8px 2px 8px 8px;
  82. background: var(--chat-out-bg);
  83. color: var(--chat-out-text);
  84. }
  85. chat-window .cw-bub b { font-weight: 700; }
  86. /* 转账卡 */
  87. chat-window .cw-bub-transfer {
  88. border: 1px solid var(--chat-card-border);
  89. background: var(--chat-card-bg);
  90. display: flex;
  91. flex-direction: column;
  92. gap: 2px;
  93. }
  94. chat-window .cw-tf-label { color: var(--chat-link); font-weight: 700; font-size: 12px; }
  95. chat-window .cw-tf-amt { font-size: 17px; font-weight: 700; color: var(--brand-ok); }
  96. /* 图片消息 */
  97. chat-window .cw-img { width: 100%; border-radius: 6px; }
  98. chat-window .cw-cap { margin-top: 4px; font-size: 12px; color: var(--chat-time); }
  99. /* 引语 */
  100. chat-window .cw-bub-quote { border-left: 3px solid var(--chat-link); }
  101. chat-window .cw-q-src { margin-top: 4px; font-size: 11px; color: var(--chat-time); }
  102. /* 底部条 */
  103. chat-window .cw-foot {
  104. padding: 8px 14px;
  105. background: var(--chat-bar-bg);
  106. border-top: 1px solid var(--border-subtle);
  107. color: var(--chat-time);
  108. font-size: 11px;
  109. font-family: var(--font-mono);
  110. text-align: center;
  111. letter-spacing: .06em;
  112. }