koishi-plugin-chat-patch 3.0.2 → 5.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/client/vue/index.vue +60 -634
  2. package/client/web/dist/assets/AppIcon-DIku6-h0.png +0 -0
  3. package/client/web/dist/assets/AppIconDark-BYymN71t.png +0 -0
  4. package/client/web/dist/assets/CapacitorAppIcon-CSZwNhvi.png +0 -0
  5. package/client/web/dist/assets/CapacitorAppIconDark-BMvMOzsg.png +0 -0
  6. package/client/web/dist/assets/Chat-CTdyeaX2.css +1 -0
  7. package/client/web/dist/assets/Chat-DkZvD7d8.js +28 -0
  8. package/client/web/dist/assets/MealHungryPan-Beos3lRI.js +1 -0
  9. package/client/web/dist/assets/MsgBody-aZ4_aija.js +1 -0
  10. package/client/web/dist/assets/MsgBody.vue_vue_type_script_setup_true_lang-CPZjRLp6.js +67 -0
  11. package/client/web/dist/assets/NapcatAppIcon-C7VOAkW9.png +0 -0
  12. package/client/web/dist/assets/Vue-lEhHouxB.png +0 -0
  13. package/client/web/dist/assets/append_darwin-CqBNU62J.css +1 -0
  14. package/client/web/dist/assets/append_full_vibrancy-j0D2LM9m.css +1 -0
  15. package/client/web/dist/assets/append_linux-uhxeBqeC.css +1 -0
  16. package/client/web/dist/assets/append_linux_vibrancy-COiZq8MS.css +1 -0
  17. package/client/web/dist/assets/append_napcat-DV8CAyAd.css +1 -0
  18. package/client/web/dist/assets/append_new-407Lo5_V.css +1 -0
  19. package/client/web/dist/assets/append_vibrancy-6FHctkOY.css +1 -0
  20. package/client/web/dist/assets/append_win32-srmD-78y.css +1 -0
  21. package/client/web/dist/assets/cakes-CxTVKdnK.svg +189 -0
  22. package/client/web/dist/assets/core-DhEqZVGG.js +1 -0
  23. package/client/web/dist/assets/event-Cadp6m6J.js +1 -0
  24. package/client/web/dist/assets/index-CPTXiemn.js +4045 -0
  25. package/client/web/dist/assets/index-Cg_esKB0.js +1 -0
  26. package/client/web/dist/assets/index-Cln012sP.css +1 -0
  27. package/client/web/dist/assets//346/226/271/346/255/243/345/226/265/345/221/234/344/275/223-CJKIKBn3.ttf +0 -0
  28. package/client/web/dist/assets//346/234/237/345/276/205-C90_OY60.png +0 -0
  29. package/client/web/dist/bcui/css/color-dark.css +35 -0
  30. package/client/web/dist/bcui/css/color-light.css +35 -0
  31. package/client/web/dist/bcui/css/style.css +468 -0
  32. package/client/web/dist/bcui/js/main.js +193 -0
  33. package/client/web/dist/css/append-dark.css +13 -0
  34. package/client/web/dist/css/append-light.css +13 -0
  35. package/client/web/dist/css/append-napcat-dark.css +14 -0
  36. package/client/web/dist/css/append-napcat-light.css +14 -0
  37. package/client/web/dist/favicon.ico +0 -0
  38. package/client/web/dist/img/icons/icon-for-fuck-apple.png +0 -0
  39. package/client/web/dist/img/icons/icon-maskable.png +0 -0
  40. package/client/web/dist/img/icons/icon.png +0 -0
  41. package/client/web/dist/img/icons/icon.svg +10 -0
  42. package/client/web/dist/index.html +22 -0
  43. package/client/web/dist/robots.txt +2 -0
  44. package/client/web/dist/sw.js +58 -0
  45. package/client/web/env.d.ts +56 -0
  46. package/client/web/index.html +21 -0
  47. package/client/web/package-lock.json +3419 -0
  48. package/client/web/package.json +62 -0
  49. package/client/web/public/bcui/css/color-dark.css +35 -0
  50. package/client/web/public/bcui/css/color-light.css +35 -0
  51. package/client/web/public/bcui/css/style.css +468 -0
  52. package/client/web/public/bcui/js/main.js +193 -0
  53. package/client/web/public/css/append-dark.css +13 -0
  54. package/client/web/public/css/append-light.css +13 -0
  55. package/client/web/public/css/append-napcat-dark.css +14 -0
  56. package/client/web/public/css/append-napcat-light.css +14 -0
  57. package/client/web/public/favicon.ico +0 -0
  58. package/client/web/public/img/icons/icon-for-fuck-apple.png +0 -0
  59. package/client/web/public/img/icons/icon-maskable.png +0 -0
  60. package/client/web/public/img/icons/icon.png +0 -0
  61. package/client/web/public/img/icons/icon.svg +10 -0
  62. package/client/web/public/robots.txt +2 -0
  63. package/client/web/public/sw.js +58 -0
  64. package/client/web/scripts/copy-bcui.mjs +17 -0
  65. package/client/web/src/App.vue +1127 -0
  66. package/client/web/src/assets/css/append/append_darwin.css +68 -0
  67. package/client/web/src/assets/css/append/append_full_vibrancy.css +290 -0
  68. package/client/web/src/assets/css/append/append_linux.css +125 -0
  69. package/client/web/src/assets/css/append/append_linux_vibrancy.css +22 -0
  70. package/client/web/src/assets/css/append/append_napcat.css +35 -0
  71. package/client/web/src/assets/css/append/append_new.css +843 -0
  72. package/client/web/src/assets/css/append/append_vibrancy.css +113 -0
  73. package/client/web/src/assets/css/append/append_win32.css +109 -0
  74. package/client/web/src/assets/css/append/mobile/append_mobile_horizontal.css +349 -0
  75. package/client/web/src/assets/css/append/mobile/append_mobile_vertical.css +96 -0
  76. package/client/web/src/assets/css/chat.css +2104 -0
  77. package/client/web/src/assets/css/msg.css +941 -0
  78. package/client/web/src/assets/css/options.css +811 -0
  79. package/client/web/src/assets/css/sys_notice.css +62 -0
  80. package/client/web/src/assets/css/view.css +2105 -0
  81. package/client/web/src/assets/font//346/226/271/346/255/243/345/226/265/345/221/234/344/275/223.ttf +0 -0
  82. package/client/web/src/assets/img/Vue.png +0 -0
  83. package/client/web/src/assets/img/cakes.svg +189 -0
  84. package/client/web/src/assets/img/icons/AppIcon.png +0 -0
  85. package/client/web/src/assets/img/icons/AppIconDark.png +0 -0
  86. package/client/web/src/assets/img/icons/CapacitorAppIcon.png +0 -0
  87. package/client/web/src/assets/img/icons/CapacitorAppIconDark.png +0 -0
  88. package/client/web/src/assets/img/icons/NapcatAppIcon.png +0 -0
  89. package/client/web/src/assets/img/icons/NapcatAppIconDark.png +0 -0
  90. package/client/web/src/assets/img/icons/exit.png +0 -0
  91. package/client/web/src/assets/img/icons/pen.png +0 -0
  92. package/client/web/src/assets/img/stars.svg +89 -0
  93. package/client/web/src/assets/img//346/234/237/345/276/205.png +0 -0
  94. package/client/web/src/assets/l10n/_About I10n.md +35 -0
  95. package/client/web/src/assets/l10n/_l10nconfig.json +7 -0
  96. package/client/web/src/assets/l10n/zh-CN.po +1941 -0
  97. package/client/web/src/assets/logo.png +0 -0
  98. package/client/web/src/assets/pathMap/LLOneBot.yaml +2 -0
  99. package/client/web/src/assets/pathMap/Lagrange.OneBot.yaml +180 -0
  100. package/client/web/src/assets/pathMap/NapCat.Onebot.yaml +224 -0
  101. package/client/web/src/assets/pathMap/SnowLuma.yaml +80 -0
  102. package/client/web/src/assets/qed.txt +1 -0
  103. package/client/web/src/components/AboutPan.vue +197 -0
  104. package/client/web/src/components/BulletinBody.vue +129 -0
  105. package/client/web/src/components/DepPan.vue +310 -0
  106. package/client/web/src/components/EmojiFace.vue +32 -0
  107. package/client/web/src/components/FacePan.vue +461 -0
  108. package/client/web/src/components/FileBody.vue +129 -0
  109. package/client/web/src/components/FileManager.vue +532 -0
  110. package/client/web/src/components/FriendBody.vue +54 -0
  111. package/client/web/src/components/GlobalSessionSearchBar.vue +301 -0
  112. package/client/web/src/components/History.vue +49 -0
  113. package/client/web/src/components/LazyLottie.vue +82 -0
  114. package/client/web/src/components/MergePan.vue +127 -0
  115. package/client/web/src/components/MsgBody.vue +1478 -0
  116. package/client/web/src/components/MusicPlayer.vue +549 -0
  117. package/client/web/src/components/NoticeBody.vue +168 -0
  118. package/client/web/src/components/QzonePermissionPan.vue +150 -0
  119. package/client/web/src/components/RawMsgRenderPreviewPan.vue +190 -0
  120. package/client/web/src/components/ThemeColorPickerPan.vue +420 -0
  121. package/client/web/src/components/TinySessionBody.vue +51 -0
  122. package/client/web/src/components/UmamiInfoPan.vue +1549 -0
  123. package/client/web/src/components/UpdatePan.vue +263 -0
  124. package/client/web/src/components/ViewerCom.vue +1360 -0
  125. package/client/web/src/components/VoiceMsg.vue +626 -0
  126. package/client/web/src/components/WelPan.vue +894 -0
  127. package/client/web/src/components/msg-body/.gitkeep +0 -0
  128. package/client/web/src/components/msg-component/JsonSegComp.vue +138 -0
  129. package/client/web/src/components/msg-component/XmlSegComp.vue +132 -0
  130. package/client/web/src/components/msg-component/jsonComp/AutoReply.vue +97 -0
  131. package/client/web/src/components/msg-component/jsonComp/Contact.lua.vue +129 -0
  132. package/client/web/src/components/msg-component/jsonComp/Feed.lua.vue +94 -0
  133. package/client/web/src/components/msg-component/jsonComp/Forum.vue +84 -0
  134. package/client/web/src/components/msg-component/jsonComp/Mannounce.vue +111 -0
  135. package/client/web/src/components/msg-component/jsonComp/Map.vue +52 -0
  136. package/client/web/src/components/msg-component/jsonComp/Miniapp.lua.vue +53 -0
  137. package/client/web/src/components/msg-component/jsonComp/Miniapp.vue +69 -0
  138. package/client/web/src/components/msg-component/jsonComp/Music.lua.vue +135 -0
  139. package/client/web/src/components/msg-component/jsonComp/Tuwen.lua.vue +56 -0
  140. package/client/web/src/components/notice-component/.gitkeep +0 -0
  141. package/client/web/src/components/notice-component/MealHungryPan.vue +119 -0
  142. package/client/web/src/components/tooltip/CustomFaceTooltip.vue +22 -0
  143. package/client/web/src/components/tooltip/Tooltip.vue +50 -0
  144. package/client/web/src/components/tooltip/Tooltips.vue +14 -0
  145. package/client/web/src/components/tooltip/UserInfoTooltip.vue +69 -0
  146. package/client/web/src/function/base.ts +238 -0
  147. package/client/web/src/function/connect.ts +2042 -0
  148. package/client/web/src/function/debug.ts +10 -0
  149. package/client/web/src/function/elements/information.ts +141 -0
  150. package/client/web/src/function/elements/system.ts +101 -0
  151. package/client/web/src/function/elements/vueComp.ts +62 -0
  152. package/client/web/src/function/favicon.ts +76 -0
  153. package/client/web/src/function/input.ts +69 -0
  154. package/client/web/src/function/model/emoji.ts +127 -0
  155. package/client/web/src/function/model/img.ts +150 -0
  156. package/client/web/src/function/model/msg-body.ts +51 -0
  157. package/client/web/src/function/msg.ts +2674 -0
  158. package/client/web/src/function/notify.ts +225 -0
  159. package/client/web/src/function/option.ts +749 -0
  160. package/client/web/src/function/satori-model.ts +818 -0
  161. package/client/web/src/function/satori.ts +325 -0
  162. package/client/web/src/function/sender.ts +178 -0
  163. package/client/web/src/function/tooltip.ts +49 -0
  164. package/client/web/src/function/utils/appUtil.ts +2288 -0
  165. package/client/web/src/function/utils/avatarUtil.ts +31 -0
  166. package/client/web/src/function/utils/backgroundUtil.ts +110 -0
  167. package/client/web/src/function/utils/linkViewUtil.ts +101 -0
  168. package/client/web/src/function/utils/localHistoryUtil.ts +517 -0
  169. package/client/web/src/function/utils/msgUtil.ts +1242 -0
  170. package/client/web/src/function/utils/pinyin.ts +141 -0
  171. package/client/web/src/function/utils/recordUtil.ts +187 -0
  172. package/client/web/src/function/utils/sessionUtil.ts +114 -0
  173. package/client/web/src/function/utils/systemUtil.ts +664 -0
  174. package/client/web/src/main.ts +91 -0
  175. package/client/web/src/pages/Chat.vue +3453 -0
  176. package/client/web/src/pages/Friends.vue +636 -0
  177. package/client/web/src/pages/Info.vue +717 -0
  178. package/client/web/src/pages/Messages.vue +875 -0
  179. package/client/web/src/pages/Options.vue +82 -0
  180. package/client/web/src/pages/Qzone.vue +1178 -0
  181. package/client/web/src/pages/chat-view/ChatDanmaku.vue +759 -0
  182. package/client/web/src/pages/chat-view/ChatGlagame.vue +642 -0
  183. package/client/web/src/pages/chat-view/ChatTerminal.vue +1044 -0
  184. package/client/web/src/pages/chat-view/SystemNotice.vue +171 -0
  185. package/client/web/src/pages/options/OptAccount.vue +107 -0
  186. package/client/web/src/pages/options/OptAddon.vue +185 -0
  187. package/client/web/src/pages/options/OptDev.vue +704 -0
  188. package/client/web/src/pages/options/OptFunction.vue +403 -0
  189. package/client/web/src/pages/options/OptInfo.vue +165 -0
  190. package/client/web/src/pages/options/OptView.vue +846 -0
  191. package/client/web/src/runtime/backend.ts +310 -0
  192. package/client/web/src/state/auth.ts +14 -0
  193. package/client/web/src/state/chat.ts +36 -0
  194. package/client/web/src/state/connection.ts +20 -0
  195. package/client/web/src/state/contact.ts +37 -0
  196. package/client/web/src/state/qzone.ts +18 -0
  197. package/client/web/src/state/sessionHistory.ts +25 -0
  198. package/client/web/src/state/settings.ts +18 -0
  199. package/client/web/src/state/sticker.ts +10 -0
  200. package/client/web/src/state/ui.ts +56 -0
  201. package/client/web/tsconfig.json +27 -0
  202. package/client/web/tsconfig.tsbuildinfo +1 -0
  203. package/client/web/vite.config.ts +33 -0
  204. package/dist/index.js +1 -12
  205. package/dist/style.css +1 -1
  206. package/lib/index.js +2070 -2077
  207. package/package.json +15 -2
  208. package/readme.md +0 -22
  209. package/src/bootstrap.ts +71 -0
  210. package/src/cache.ts +319 -0
  211. package/src/config.ts +23 -35
  212. package/src/database.ts +650 -0
  213. package/src/index.ts +27 -59
  214. package/src/media.ts +302 -0
  215. package/src/recorder.ts +175 -0
  216. package/src/self-message.ts +456 -0
  217. package/src/server.d.ts +26 -0
  218. package/src/types.ts +108 -48
  219. package/src/web.ts +712 -0
  220. package/client/vue/chat-logic.ts +0 -683
  221. package/client/vue/composables/useChatActions.ts +0 -61
  222. package/client/vue/composables/useChatData.ts +0 -185
  223. package/client/vue/composables/useImageCache.ts +0 -281
  224. package/client/vue/composables/useVideoCache.ts +0 -125
  225. package/client/vue/types.ts +0 -72
  226. package/lib/api-handlers.d.ts +0 -25
  227. package/lib/config.d.ts +0 -14
  228. package/lib/file-manager.d.ts +0 -124
  229. package/lib/index.d.ts +0 -17
  230. package/lib/logger.d.ts +0 -9
  231. package/lib/message-handler.d.ts +0 -35
  232. package/lib/types.d.ts +0 -57
  233. package/lib/utils.d.ts +0 -18
  234. package/src/api-handlers.ts +0 -646
  235. package/src/file-manager.ts +0 -1436
  236. package/src/message-handler.ts +0 -507
  237. package/src/utils.ts +0 -189
@@ -0,0 +1,2105 @@
1
+ html,
2
+ body {
3
+ font-family: Helvetica, Arial, Verdana, Tahoma, sans-serif;
4
+ background: var(--color-main);
5
+ position: relative;
6
+ text-autospace: normal;
7
+ user-select: none;
8
+ overflow: hidden;
9
+ height: 100%;
10
+ padding: 0;
11
+ margin: 0;
12
+ }
13
+ *, *::before, *::after {
14
+ -webkit-user-select: none !important;
15
+ -moz-user-select: none !important;
16
+ user-select: none !important;
17
+ }
18
+ input, textarea, [contenteditable="true"] {
19
+ -webkit-user-select: text !important;
20
+ -moz-user-select: text !important;
21
+ user-select: text !important;
22
+ }
23
+ input::placeholder {
24
+ color: var(--color-font-2);
25
+ }
26
+ select:focus,
27
+ textarea:focus {
28
+ outline: none;
29
+ }
30
+ ::-webkit-scrollbar {
31
+ height: 7px;
32
+ }
33
+
34
+ .custom-focus {
35
+ outline: none;
36
+ }
37
+ .custom-focus:focus-visible {
38
+ animation: custom-focus .1s ease-out forwards;
39
+ }
40
+
41
+ @keyframes custom-focus {
42
+ 0% {
43
+ outline: 15px solid rgba(127, 145, 222, 0);
44
+ }
45
+ 100% {
46
+ outline: 3px solid rgba(127, 145, 222, 1);
47
+ }
48
+ }
49
+
50
+ .vc-switch {
51
+ background: var(--color-main) !important;
52
+ display: none !important;
53
+ }
54
+
55
+ .mac-controller {
56
+ -webkit-app-region: drag;
57
+ z-index: 100;
58
+ position: absolute;
59
+ width: 100%;
60
+ height: 30px;
61
+ }
62
+
63
+ .dev-bar {
64
+ transition: opacity 0.3s, transform 0.4s;
65
+ background: var(--color-bg-yellow);
66
+ display: flex;
67
+ align-items: end;
68
+ justify-content: center;
69
+ color: var(--color-font-2);
70
+ font-size: 0.7rem;
71
+ box-shadow: 0 0 10px var(--color-shader);
72
+ position: absolute;
73
+ width: 100%;
74
+ padding: 10px 0;
75
+ z-index: 100;
76
+ height: calc(var(--safe-area-top) + 10px);
77
+ }
78
+ .dev-bar.onloading {
79
+ transform: translateY(-100%);
80
+ }
81
+ .dev-bar.win {
82
+ background: transparent !important;
83
+ width: calc(100% - 180px);
84
+ box-shadow: unset;
85
+ left: 90px;
86
+ }
87
+ .lyric-bar {
88
+ transition: opacity 0.3s;
89
+ background: var(--color-card-2);
90
+ display: flex;
91
+ align-items: end;
92
+ justify-content: center;
93
+ color: var(--color-font-2);
94
+ font-size: 0.7rem;
95
+ box-shadow: 0 0 10px var(--color-shader);
96
+ position: absolute;
97
+ width: 100%;
98
+ padding: 10px 0;
99
+ z-index: 99;
100
+ height: calc(var(--safe-area-top) + 10px);
101
+ }
102
+
103
+ .top-bar {
104
+ -webkit-app-region: drag;
105
+ box-shadow: 0 0 10px 0 rgb(0 0 0 / 28%);
106
+ background: var(--color-card-2);
107
+ margin-bottom: 10px;
108
+ flex-direction: row;
109
+ position: absolute;
110
+ display: flex;
111
+ height: 40px;
112
+ width: 100%;
113
+ z-index: 999;
114
+ }
115
+ .top-bar.win {
116
+ background: var(--color-bg-yellow);
117
+ }
118
+ .top-bar > div.bar-button {
119
+ -webkit-app-region: no-drag;
120
+ cursor: pointer;
121
+ height: 40px;
122
+ width: 55px;
123
+ }
124
+ .top-bar > div.space {
125
+ flex: 1;
126
+ }
127
+ .top-bar > div.controller {
128
+ -webkit-app-region: no-drag;
129
+ display: flex;
130
+ }
131
+ .top-bar > div.controller > div {
132
+ cursor: pointer;
133
+ transition: background 0.2s;
134
+ justify-content: center;
135
+ border-radius: 7px;
136
+ display: flex;
137
+ margin: 4px 1px;
138
+ padding: 9px;
139
+ width: 26px;
140
+ }
141
+ .top-bar > div.controller > div.min > svg {
142
+ transform: scale(0.9);
143
+ }
144
+ .top-bar > div.controller > div.reflush > svg {
145
+ transform: scale(0.9);
146
+ }
147
+ .top-bar > div.controller > div.close {
148
+ margin-right: 4px;
149
+ }
150
+ .top-bar > div.controller > div:hover {
151
+ background: var(--color-card-1);
152
+ }
153
+ .top-bar > div.controller > div.close:hover {
154
+ background: #f20000dd;
155
+ }
156
+ .top-bar > div.controller > div > svg {
157
+ color: var(--color-font);
158
+ height: 16px;
159
+ }
160
+ .top-bar > div.controller > div.close:hover > svg {
161
+ color: #fff;
162
+ }
163
+
164
+ .load-view {
165
+ background: transparent;
166
+ display: flex;
167
+ align-items: center;
168
+ justify-content: center;
169
+ position: absolute;
170
+ height: 100vh;
171
+ z-index: 99;
172
+ width: 100vw;
173
+ left: 0;
174
+ top: 0;
175
+ }
176
+ .load-view svg {
177
+ animation: rotate 1.5s linear infinite;
178
+ color: var(--color-font-r);
179
+ opacity: 0.5;
180
+ width: 5vw;
181
+ height: 100vh;
182
+ }
183
+ #app,
184
+ #base-app {
185
+ overflow: hidden;
186
+ height: 100%;
187
+ }
188
+ #base-app {
189
+ transition: transform 0.2s;
190
+ }
191
+ #base-app.no-touch {
192
+ transform: rotate(180deg);
193
+ padding-bottom: 30px;
194
+ }
195
+ #base-app.withBar {
196
+ height: calc(100% - 40px);
197
+ padding-top: 40px;
198
+ }
199
+
200
+ .main-bg {
201
+ transition: transform 0.4s, opacity 0.8s;
202
+ opacity: 1;
203
+ position: absolute;
204
+ width: 100%;
205
+ height: 100%;
206
+ top: 0;
207
+ left: 0;
208
+ z-index: -999;
209
+ }
210
+ .main-bg.onloading {
211
+ transform: scale(0.9);
212
+ opacity: 0;
213
+ }
214
+
215
+ .main-body {
216
+ transition: transform 0.4s, opacity 0.5s;
217
+ flex-direction: row;
218
+ margin-top: 0;
219
+ display: flex;
220
+ height: 100%;
221
+ opacity: 1;
222
+ }
223
+ .main-body.onloading {
224
+ transform: scale(0.9);
225
+ opacity: 0;
226
+ }
227
+ .main-body > ul {
228
+ transition: transform 0.4s;
229
+ cursor: pointer;
230
+ list-style-type: none;
231
+ background: var(--color-card-2);
232
+ flex-direction: column;
233
+ display: flex;
234
+ height: 100%;
235
+ border: none;
236
+ min-width: 75px;
237
+ padding: 0 0 calc(var(--safe-area-bottom) + 10px) 0;
238
+ margin: 0;
239
+ }
240
+ .main-body > ul.onloading {
241
+ transform: translateX(-100%);
242
+ }
243
+ .side-bar-space {
244
+ flex: 1;
245
+ }
246
+ .main-body > ul > li {
247
+ padding: 0 3px;
248
+ display: flex;
249
+ justify-content: center;
250
+ margin-top: 20px;
251
+ flex-direction: column;
252
+ align-items: center;
253
+ }
254
+ .main-body > ul > li > svg {
255
+ padding-bottom: 10px !important;
256
+ }
257
+ .main-body > ul > li > span {
258
+ font-size: 0.85rem;
259
+ text-align: center;
260
+ color: var(--color-font);
261
+ display: none;
262
+ }
263
+ .main-body > ul > li:first-child {
264
+ margin-top: 10px;
265
+ }
266
+ .main-body > ul > li:last-child {
267
+ margin-bottom: 10px;
268
+ }
269
+ .main-body > ul > li::after {
270
+ display: none;
271
+ }
272
+ .main-body > ul > li.active > svg {
273
+ background-color: var(--color-main);
274
+ color: var(--color-font-r);
275
+ }
276
+ .main-body > ul > li > svg {
277
+ transition:
278
+ background 0.3s,
279
+ fill 0.3s;
280
+ color: var(--color-font-1);
281
+ border-radius: 7px;
282
+ padding: 15px;
283
+ height: 20px;
284
+ width: 20px;
285
+ }
286
+ .main-body > div {
287
+ height: 100%;
288
+ width: 100%;
289
+ padding: 0;
290
+ flex: 1;
291
+ }
292
+ .main-body > div > div {
293
+ height: 100%;
294
+ }
295
+
296
+ .home-body {
297
+ background: var(--color-bg);
298
+ justify-content: center;
299
+ flex-direction: row;
300
+ align-items: center;
301
+ display: flex;
302
+ height: 100%;
303
+ width: 100%;
304
+ }
305
+
306
+ .quick-login {
307
+ background: var(--color-card-1);
308
+ box-shadow: unset !important;
309
+ padding: 15px;
310
+ }
311
+ .quick-login > div.title {
312
+ align-items: center;
313
+ margin-bottom: 15px;
314
+ display: flex;
315
+ }
316
+ .quick-login > div.title > span {
317
+ flex: 1;
318
+ text-align: left;
319
+ color: var(--color-font-1);
320
+ margin-left: 10px;
321
+ font-size: 0.9rem;
322
+ display: block;
323
+ }
324
+ .quick-login > div.title > a {
325
+ background: var(--color-main);
326
+ margin: 0;
327
+ color: var(--color-font-r);
328
+ border-radius: 7px;
329
+ padding: 3px 10px;
330
+ cursor: pointer;
331
+ }
332
+ .quick-login > div.list {
333
+ max-height: calc(calc(1rem + 30px) * 2);
334
+ overflow-y: scroll;
335
+ }
336
+ .quick-login > div.list > div {
337
+ background: var(--color-card-2);
338
+ margin-top: 5px;
339
+ padding: 10px 15px;
340
+ border-radius: 7px;
341
+ cursor: pointer;
342
+ display: flex;
343
+ }
344
+ .quick-login > div.list > div > span {
345
+ flex: 1;
346
+ text-align: left;
347
+ color: var(--color-font-1);
348
+ }
349
+ .quick-login > div.list > div > div {
350
+ width: 1rem;
351
+ height: 1rem;
352
+ background: var(--color-card-1);
353
+ border-radius: 100%;
354
+ margin-top: 0.2rem;
355
+ }
356
+ .quick-login > div.list > div > div > div {
357
+ background: var(--color-card-1);
358
+ width: calc(100% - 0.4rem);
359
+ height: calc(100% - 0.4rem);
360
+ border: 0.2rem solid var(--color-card-1);
361
+ border-radius: 100%;
362
+ }
363
+ .quick-login > div.list > div.select > div > div {
364
+ background: var(--color-main);
365
+ }
366
+
367
+ .login-pan-card {
368
+ background: var(--color-card);
369
+ padding: 40px 30px;
370
+ text-align: center;
371
+ max-width: 310px;
372
+ overflow: visible;
373
+ }
374
+ .login-pan-card > svg {
375
+ color: var(--color-main);
376
+ height: 25%;
377
+ width: 25%;
378
+ }
379
+ .login-pan-card p {
380
+ color: var(--color-main);
381
+ font-size: 1rem;
382
+ margin: 20px;
383
+ }
384
+ .login-pan-card label {
385
+ background: var(--color-card-1);
386
+ width: calc(100% - 42px);
387
+ align-items: center;
388
+ transition: all 0.3s;
389
+ border-radius: 50px;
390
+ margin-top: 10px;
391
+ padding: 0 20px;
392
+ display: flex;
393
+ }
394
+ .login-pan-card label:focus-within {
395
+ background: var(--color-card-2);
396
+ }
397
+ .login-pan-card label:focus-within > svg {
398
+ color: var(--color-main);
399
+ }
400
+ .login-pan-card label:focus-within > input {
401
+ outline: none;
402
+ }
403
+ .login-pan-card label > input {
404
+ background: transparent;
405
+ width: 100%;
406
+ height: 40px;
407
+ flex: 1;
408
+ }
409
+ .login-pan-card label > svg {
410
+ color: var(--color-font);
411
+ transition: fill 0.3s;
412
+ height: 15px;
413
+ width: 15px;
414
+ }
415
+ .login-pan-card label.default {
416
+ background: unset;
417
+ border: none;
418
+ }
419
+ .login-pan-card label.default > input {
420
+ background: unset;
421
+ height: auto;
422
+ flex: unset;
423
+ width: auto;
424
+ }
425
+ .login-pan-card label.default > a {
426
+ margin-left: 10px;
427
+ margin-top: 0;
428
+ }
429
+ .login-pan-card button {
430
+ margin-top: 30px;
431
+ height: 40px;
432
+ width: 100%;
433
+ }
434
+ .login-pan-card a {
435
+ color: var(--color-font);
436
+ font-size: 0.9rem;
437
+ margin-top: 10px;
438
+ cursor: pointer;
439
+ display: block;
440
+ opacity: 0.7;
441
+ }
442
+
443
+ /* 地址输入区域容器 */
444
+ .address-input-container {
445
+ position: relative;
446
+ margin-left: auto;
447
+ margin-right: auto;
448
+ }
449
+
450
+ /* 地址输入框容器 */
451
+ .address-input-wrapper {
452
+ position: relative !important;
453
+ overflow: visible !important;
454
+ width: 100%;
455
+ margin: 0 !important;
456
+ }
457
+
458
+ /* 历史选择下拉触发按钮 */
459
+ .history-dropdown-trigger {
460
+ position: absolute;
461
+ right: 15px;
462
+ top: 50%;
463
+ transform: translateY(-50%);
464
+ width: 32px;
465
+ height: 32px;
466
+ display: flex;
467
+ align-items: center;
468
+ justify-content: center;
469
+ cursor: pointer;
470
+ border-radius: 8px;
471
+ transition: all 0.2s;
472
+ color: var(--color-font-2);
473
+ z-index: 2;
474
+ }
475
+ .history-dropdown-trigger:hover {
476
+ color: var(--color-main);
477
+ }
478
+ .history-dropdown-trigger > svg {
479
+ width: 14px;
480
+ height: 14px;
481
+ transition: transform 0.2s;
482
+ }
483
+ .history-dropdown-trigger:hover > svg {
484
+ transform: translateY(2px);
485
+ }
486
+
487
+ /* 历史下拉菜单 */
488
+ .history-dropdown-menu {
489
+ background: rgba(var(--color-card-rgb), 0.4) !important;
490
+ backdrop-filter: blur(10px);
491
+ position: absolute;
492
+ top: calc(100% + 5px);
493
+ left: 0;
494
+ right: 0;
495
+ max-height: 320px;
496
+ overflow-y: auto;
497
+ padding: 6px !important;
498
+ z-index: 1000;
499
+ box-shadow: 0 0 5px var(--color-shader);
500
+ animation: dropdown-appear 0.2s ease;
501
+ border-radius: 15px;
502
+ }
503
+
504
+ @keyframes dropdown-appear {
505
+ from {
506
+ opacity: 0;
507
+ transform: translateY(-8px);
508
+ }
509
+ to {
510
+ opacity: 1;
511
+ transform: translateY(0);
512
+ }
513
+ }
514
+
515
+ .history-dropdown-item {
516
+ display: flex;
517
+ align-items: center;
518
+ gap: 12px;
519
+ padding: 7px 9px;
520
+ border-radius: 10px;
521
+ cursor: pointer;
522
+ transition: background 0.2s;
523
+ margin-bottom: 4px;
524
+ }
525
+ .history-dropdown-item:last-child {
526
+ margin-bottom: 0;
527
+ }
528
+ .history-dropdown-item:hover {
529
+ background: var(--color-card-2);
530
+ }
531
+ .history-dropdown-item.selected {
532
+ background: var(--color-card-2);
533
+ }
534
+
535
+ .history-item-avatar {
536
+ width: 36px;
537
+ height: 36px;
538
+ border-radius: 50%;
539
+ overflow: hidden;
540
+ flex-shrink: 0;
541
+ background: var(--color-card-1);
542
+ }
543
+ .history-item-avatar img {
544
+ width: 100%;
545
+ height: 100%;
546
+ object-fit: cover;
547
+ }
548
+
549
+ .history-item-content {
550
+ flex: 1;
551
+ min-width: 0;
552
+ display: flex;
553
+ flex-direction: column;
554
+ gap: 2px;
555
+ }
556
+
557
+ .history-item-name {
558
+ color: var(--color-font-1);
559
+ font-size: 0.9rem;
560
+ font-weight: 500;
561
+ overflow: hidden;
562
+ text-overflow: ellipsis;
563
+ white-space: nowrap;
564
+ }
565
+
566
+ .history-item-detail {
567
+ color: var(--color-font-2);
568
+ font-size: 0.75rem;
569
+ overflow: hidden;
570
+ text-overflow: ellipsis;
571
+ white-space: nowrap;
572
+ }
573
+
574
+ .history-item-delete {
575
+ padding: 6px;
576
+ border-radius: 6px;
577
+ color: var(--color-font-2);
578
+ transition: all 0.2s;
579
+ flex-shrink: 0;
580
+ opacity: 0.6;
581
+ }
582
+ .history-item-delete:hover {
583
+ background: var(--color-card-2);
584
+ color: var(--color-error);
585
+ opacity: 1;
586
+ }
587
+ .history-item-delete > svg {
588
+ width: 13px;
589
+ height: 13px;
590
+ }
591
+
592
+ .wave-pan {
593
+ width: calc(100% + 60px);
594
+ margin-bottom: -50px;
595
+ margin-top: -90px;
596
+ overflow: hidden;
597
+ z-index: -1;
598
+ float: left;
599
+ }
600
+ .wave-pan > svg {
601
+ fill: var(--color-card-2);
602
+ }
603
+ .wave-pan > svg > g > use {
604
+ opacity: 0.5;
605
+ }
606
+ .wave-pan > svg > g > use:last-child {
607
+ opacity: 1;
608
+ }
609
+
610
+ .friend-view {
611
+ overflow: hidden;
612
+ flex-direction: row;
613
+ user-select: none;
614
+ display: flex;
615
+ height: 100%;
616
+ width: 100%;
617
+ }
618
+ .friend-view > div:last-child {
619
+ justify-content: center;
620
+ align-items: center;
621
+ display: flex;
622
+ flex: 1;
623
+ }
624
+ .friend-view > div:last-child > div {
625
+ background: var(--color-card-1);
626
+ text-align: center;
627
+ padding: 40px;
628
+ }
629
+ .friend-view > div:last-child > div > svg {
630
+ color: var(--color-main);
631
+ width: 50px;
632
+ height: 50px;
633
+ }
634
+ .friend-view > div:last-child > div > span {
635
+ font-size: 0.9rem;
636
+ margin-top: 10px;
637
+ display: block;
638
+ }
639
+
640
+ .friend-list {
641
+ background: var(--color-card-1);
642
+ transition: transform 0.3s;
643
+ flex-direction: column;
644
+ overflow: hidden;
645
+ display: flex;
646
+ width: 300px;
647
+ }
648
+ .friend-list > div {
649
+ transition: opacity 0.3s;
650
+ }
651
+ .friend-list .small {
652
+ display: none;
653
+ }
654
+ .friend-list > div:first-child {
655
+ margin: 15px;
656
+ }
657
+ .friend-list > div:first-child > div.base {
658
+ border-radius: 7px 7px 0 0;
659
+ align-items: center;
660
+ font-size: 1rem;
661
+ padding: 10px;
662
+ display: flex;
663
+ color: var(--color-font);
664
+ }
665
+ .friend-list > div:first-child > div.base > svg {
666
+ margin: 5px;
667
+ }
668
+ .friend-list > div:first-child > div.base > span {
669
+ font-weight: bold;
670
+ flex: 1;
671
+ min-width: 0;
672
+ overflow: hidden;
673
+ white-space: nowrap;
674
+ text-overflow: clip;
675
+ -webkit-mask-image: linear-gradient(to right, black 0%, black 65%, transparent 100%);
676
+ mask-image: linear-gradient(to right, black 0%, black 65%, transparent 100%);
677
+ }
678
+ .friend-list > div:first-child > div.base > a,
679
+ .friend-list > div:first-child > div.small > span > a {
680
+ background: var(--color-main);
681
+ color: var(--color-font-r);
682
+ font-weight: normal;
683
+ border-radius: 1rem;
684
+ padding: 3px 10px;
685
+ font-size: 0.7rem;
686
+ }
687
+ .friend-list > div:first-child > div.small > span > a {
688
+ margin-left: 10px;
689
+ }
690
+ .friend-list > div:first-child > div.base.only {
691
+ border-radius: 7px;
692
+ }
693
+ .friend-list > div:first-child > div.small {
694
+ display: none;
695
+ }
696
+ .friend-list > div:first-child > div.small > span {
697
+ background: var(--color-main);
698
+ color: var(--color-font-r);
699
+ align-items: center;
700
+ border-radius: 7px;
701
+ text-wrap: nowrap;
702
+ padding: 0 20px;
703
+ font-size: 1rem;
704
+ display: flex;
705
+ height: 50px;
706
+ flex: 1;
707
+ }
708
+ .friend-list > div:first-child > div > svg {
709
+ color: var(--color-font);
710
+ cursor: pointer;
711
+ opacity: 0.7;
712
+ height: 1rem;
713
+ }
714
+ .friend-list > div:first-child label {
715
+ height: calc(1rem + 20px);
716
+ align-items: center;
717
+ display: flex;
718
+ width: 100%;
719
+ background: var(--color-card-2);
720
+ border-bottom: 1px solid var(--color-font-2);
721
+ border-radius: 7px;
722
+ opacity: 0.7;
723
+ }
724
+ .friend-list > div:first-child label > svg {
725
+ color: var(--color-font-1);
726
+ margin: 0 10px;
727
+ height: 0.9rem;
728
+ }
729
+ .friend-list > div:first-child label > input {
730
+ background: transparent;
731
+ font-size: 0.8rem;
732
+ padding: 0 15px;
733
+ height: 100%;
734
+ width: 100%;
735
+ margin: 0;
736
+ border: 0;
737
+ flex: 1;
738
+ }
739
+ .friend-list > div:last-child {
740
+ width: calc(100% - 5px);
741
+ padding: 0 1px 0 5px;
742
+ -webkit-box-flex: 1;
743
+ overflow-y: scroll;
744
+ font-size: 1rem;
745
+ height: 100%;
746
+ flex: 1;
747
+ }
748
+ .friend-list > div:last-child::-webkit-scrollbar {
749
+ display: none;
750
+ }
751
+ .friend-list > div:last-child.open > div.active {
752
+ background: var(--color-main) !important;
753
+ color: var(--color-font-r) !important;
754
+ }
755
+ .friend-list-space {
756
+ background: var(--color-bg);
757
+ }
758
+
759
+ .friend-list.show {
760
+ transform: translateX(-100%);
761
+ }
762
+ .friend-list.show > div {
763
+ opacity: 0;
764
+ }
765
+ .group-assist-message-list {
766
+ transition: margin 0.3s, opacity 0.4s;
767
+ margin-right: -300px;
768
+ opacity: 0;
769
+ z-index: 1;
770
+ }
771
+ .group-assist-message-list.show {
772
+ margin-left: -300px;
773
+ margin-right: 0;
774
+ transform: unset;
775
+ opacity: 1;
776
+ }
777
+ .group-assist-message-list.show > div {
778
+ opacity: 1;
779
+ }
780
+
781
+ .friend-body {
782
+ cursor: pointer;
783
+ display: flex;
784
+ flex-direction: row;
785
+ color: var(--color-font);
786
+ margin: 10px;
787
+ padding: 10px;
788
+ border-radius: 7px;
789
+ transform: translate(0, 0);
790
+ transition:
791
+ background 0.2s,
792
+ color 0.2s,
793
+ backdrop-filter 0.2s,
794
+ transform 0.2s;
795
+ }
796
+ .friend-body.active {
797
+ background: var(--color-main);
798
+ color: var(--color-font-r);
799
+ }
800
+ .friend-body.active > svg {
801
+ background: var(--color-card-2);
802
+ color: var(--color-main);
803
+ }
804
+ .friend-body.onmenu,
805
+ .friend-body:hover {
806
+ background: var(--color-card-2) !important;
807
+ }
808
+ .friend-body.active:hover {
809
+ background: var(--color-main) !important;
810
+ }
811
+ .friend-body img {
812
+ border: 2px solid var(--color-card-2);
813
+ pointer-events: none;
814
+ border-radius: 7px;
815
+ height: 50px;
816
+ width: 50px;
817
+ object-fit: cover;
818
+ }
819
+ .friend-body > svg {
820
+ transition:
821
+ background 0.3s,
822
+ color 0.3s;
823
+ background: var(--color-card-2);
824
+ color: var(--color-font);
825
+ pointer-events: none;
826
+ border-radius: 7px;
827
+ padding: 15px;
828
+ height: 25px;
829
+ width: 25px;
830
+ }
831
+ .friend-body > div {
832
+ flex: 1;
833
+ margin-left: 10px;
834
+ overflow: hidden;
835
+ }
836
+ .friend-body > div:nth-child(1) {
837
+ flex: unset;
838
+ width: 4px;
839
+ background: var(--color-main);
840
+ border-radius: 4px;
841
+ margin-right: 10px;
842
+ transform: scaleY(0);
843
+ display: unset !important;
844
+ transition:
845
+ transform 0.3s,
846
+ margin 0.3s;
847
+ margin-left: -13px;
848
+ }
849
+ .friend-body.active > div:nth-child(1) {
850
+ background: var(--color-font);
851
+ }
852
+ .friend-body > div:nth-child(1).new {
853
+ transform: scaleY(0.5);
854
+ margin-left: 3px;
855
+ }
856
+ .friend-body > div p {
857
+ font-weight: bold;
858
+ margin: 0;
859
+ margin-top: 3px;
860
+ white-space: nowrap;
861
+ text-overflow: ellipsis;
862
+ overflow: hidden;
863
+ }
864
+ .friend-body > div > div {
865
+ align-items: center;
866
+ display: flex;
867
+ }
868
+ .friend-body > div > div a {
869
+ color: var(--color-font-1);
870
+ text-overflow: ellipsis;
871
+ white-space: nowrap;
872
+ overflow: hidden;
873
+ font-size: 0.9rem;
874
+ flex: 1;
875
+ }
876
+ .friend-body > div > div a.highlight {
877
+ color: #f20000dd;
878
+ }
879
+ /* .friend-body > div > div a.nick {
880
+ } */
881
+ .friend-body.active > div > div a {
882
+ color: var(--color-font-1-r);
883
+ }
884
+ .friend-body > div > div a.time {
885
+ flex: unset;
886
+ margin-left: 15px;
887
+ font-size: 0.8rem;
888
+ opacity: 0.7;
889
+ overflow: unset;
890
+ }
891
+ .friend-body > div > div svg {
892
+ width: 0.6rem;
893
+ color: var(--color-font);
894
+ opacity: 0.7;
895
+ transform: rotate(45deg);
896
+ margin-right: 5px;
897
+ }
898
+ .friend-body.active > div > div svg {
899
+ color: var(--color-font-r);
900
+ }
901
+ .friend-body > a {
902
+ font-size: 0.9rem;
903
+ color: var(--color-font-2);
904
+ }
905
+ .friend-body.active > a {
906
+ color: var(--color-font-1-r);
907
+ }
908
+
909
+ .msg-menu-body {
910
+ border: 1px solid var(--color-shader);
911
+ background: rgba(var(--color-bg-rgb), 0.7);
912
+ box-shadow: 0 0 5px var(--color-shader);
913
+ backdrop-filter: blur(50px);
914
+ transition: transform 0.1s;
915
+ transform-origin: top;
916
+ transform: scaleY(0);
917
+ pointer-events: all;
918
+ min-height: unset;
919
+ min-width: 100px;
920
+ max-width: 130px;
921
+ padding: 10px;
922
+ }
923
+ .msg-menu-body.topOut {
924
+ transition:
925
+ transform 0.1s,
926
+ margin-top 0.2s;
927
+ }
928
+ .msg-menu-body.show {
929
+ transform: scaleY(1);
930
+ }
931
+ .menu div.item,
932
+ .msg-menu-body > div {
933
+ transition: background 0.3s;
934
+ background: transparent;
935
+ align-items: center;
936
+ border-radius: 7px;
937
+ padding: 3px 15px;
938
+ cursor: pointer;
939
+ display: flex;
940
+ flex-direction: row-reverse;
941
+ justify-content: space-between;
942
+ }
943
+ .msg-menu-body > div:hover {
944
+ background: var(--color-main);
945
+ }
946
+ .menu div.item > svg {
947
+ margin-right: 0 !important;
948
+ height: 1rem;
949
+ width: 1rem !important;
950
+ }
951
+ .msg-menu-body > div > div > svg {
952
+ transition:
953
+ color 0.3s,
954
+ opacity 0.3s;
955
+ color: var(--color-font-1);
956
+ margin-top: 7px;
957
+ height: 1rem;
958
+ width: 1rem;
959
+ }
960
+ .msg-menu-body > div:hover > div > svg {
961
+ color: var(--color-font-r);
962
+ opacity: 1;
963
+ }
964
+ .msg-menu-body > div > a {
965
+ color: var(--color-font);
966
+ text-overflow: ellipsis;
967
+ transition: color 0.3s;
968
+ white-space: nowrap;
969
+ overflow: hidden;
970
+ margin-right: 10px;
971
+ }
972
+ .msg-menu-body > div:hover > a {
973
+ color: var(--color-font-r);
974
+ }
975
+
976
+ .ss-range {
977
+ --range-dot-height: 26px;
978
+ --range-dot-border: 3px;
979
+ --range-dot-width: 3px;
980
+ --range-height: 26px;
981
+
982
+ --range-width: calc(var(--range-dot-width) + calc(var(--range-dot-border) * 2));
983
+ --range-width-half: calc(var(--range-width) / 2);
984
+
985
+ position: relative;
986
+ flex-direction: row !important;
987
+ display: flex !important;
988
+ }
989
+ .ss-range input {
990
+ background-image: linear-gradient(var(--color-main), var(--color-main));
991
+ background-size: calc(var(--range-precent) - var(--range-width)) 100%;
992
+ background-color: var(--color-card-1);
993
+ background-repeat: no-repeat;
994
+ height: var(--range-height);
995
+ border-radius: 7px;
996
+ cursor: pointer;
997
+ min-width: 100%;
998
+
999
+ -webkit-appearance: none;
1000
+ appearance: none;
1001
+ }
1002
+ .ss-range div {
1003
+ margin-left: max(calc(var(--range-width-half) + 1px),
1004
+ calc(var(--range-precent) - var(--range-width-half) - 1px));
1005
+
1006
+ border: var(--range-dot-border) solid var(--color-card);
1007
+ box-shadow: 0 0 5px var(--color-shader);
1008
+ border-radius: var(--range-width-half);
1009
+ height: var(--range-dot-height);
1010
+ width: var(--range-dot-width);
1011
+ background: var(--color-main);
1012
+ transform: translateX(-50%);
1013
+ pointer-events: none;
1014
+ position: absolute;
1015
+ z-index: 1;
1016
+ top: 1px;
1017
+ }
1018
+ .ss-range span {
1019
+ line-height: var(--range-height);
1020
+ transform: translateX(-50%);
1021
+ color: var(--color-font);
1022
+ pointer-events: none;
1023
+ margin-left: -50%;
1024
+ }
1025
+ .ss-range input::-webkit-slider-thumb,
1026
+ .ss-range input::-moz-range-thumb {
1027
+ opacity: 0;
1028
+ }
1029
+ .ss-range input::-webkit-slider-runnable-track {
1030
+ opacity: 0;
1031
+ }
1032
+
1033
+ .app-msg {
1034
+ flex-direction: column-reverse;
1035
+ justify-content: flex-start;
1036
+ height: calc(100% - 20px - var(--safe-area-bottom));
1037
+ width: calc(100% - 20px);
1038
+ pointer-events: none;
1039
+ position: absolute;
1040
+ padding-left: 90px;
1041
+ display: flex;
1042
+ z-index: 10;
1043
+ left: 0;
1044
+ top: 0;
1045
+ }
1046
+ .app-msg > div {
1047
+ box-shadow: 0 0 5px var(--color-shader);
1048
+ background: var(--color-main);
1049
+ overflow-wrap: anywhere;
1050
+ align-items: center;
1051
+ pointer-events: all;
1052
+ width: fit-content;
1053
+ border-radius: 7px;
1054
+ padding: 10px 20px;
1055
+ margin-top: 5px;
1056
+ max-width: 20%;
1057
+ display: flex;
1058
+ }
1059
+ .app-msg > div svg {
1060
+ color: var(--color-font-r);
1061
+ }
1062
+ .app-msg > div > div:first-child > svg {
1063
+ color: var(--color-font-r);
1064
+ margin-top: 5px;
1065
+ height: 1rem;
1066
+ }
1067
+ .app-msg > div > a {
1068
+ color: var(--color-font-r);
1069
+ margin: 0 10px;
1070
+ }
1071
+ .app-msg > div > div:last-child {
1072
+ border-radius: 7px;
1073
+ cursor: pointer;
1074
+ height: 20px;
1075
+ width: 20px;
1076
+ }
1077
+ .app-msg > div > div:last-child:hover {
1078
+ background: rgba(0, 0, 0, 0.03);
1079
+ }
1080
+ .app-msg > div > div:last-child > svg {
1081
+ color: var(--color-font-1-r);
1082
+ margin-left: 5px;
1083
+ margin-top: 3px;
1084
+ height: 1rem;
1085
+ }
1086
+
1087
+ .pop-box {
1088
+ position: absolute;
1089
+ user-select: none;
1090
+ height: 100%;
1091
+ z-index: 50;
1092
+ width: 100%;
1093
+ left: 0;
1094
+ top: 0;
1095
+ }
1096
+ .pop-box > div:last-child {
1097
+ background: var(--color-card-2);
1098
+ height: calc(100% + 40px);
1099
+ width: calc(100% + 40px);
1100
+ opacity: 0.7;
1101
+ margin: -20px;
1102
+ }
1103
+ .pop-box-body {
1104
+ transform: translate(-50%, -50%);
1105
+ flex-direction: column;
1106
+ transition: all 0.3s;
1107
+ margin-top: 50vh;
1108
+ position: absolute;
1109
+ width: fit-content;
1110
+ margin-left: 50%;
1111
+ min-width: 360px;
1112
+ display: flex;
1113
+ z-index: 20;
1114
+ overflow: visible;
1115
+ }
1116
+ .pop-box-body.full {
1117
+ height: calc(100vh - 120px);
1118
+ transform: unset !important;
1119
+ margin: 60px 20px 0 20px;
1120
+ width: calc(100% - 80px);
1121
+ }
1122
+ .pop-box-body.full iframe {
1123
+ height: calc(100vh - 145px);
1124
+ }
1125
+ .pop-box-body.full.window {
1126
+ height: calc(100vh - 80px);
1127
+ margin: 30px 20px 0 20px;
1128
+ }
1129
+ .pop-box-body.full.window iframe {
1130
+ height: calc(100vh - 105px);
1131
+ }
1132
+ .pop-box-body > header {
1133
+ align-items: center;
1134
+ display: flex;
1135
+ }
1136
+ .pop-box-body > header > div:first-child {
1137
+ background: transparent;
1138
+ margin-right: 10px;
1139
+ height: 1rem;
1140
+ width: unset;
1141
+ }
1142
+ .pop-box-body > header svg {
1143
+ color: var(--color-font);
1144
+ height: 1rem;
1145
+ }
1146
+ .pop-box-body > header svg:last-child {
1147
+ cursor: pointer;
1148
+ }
1149
+ .pop-box-body > header a {
1150
+ color: var(--color-font);
1151
+ font-weight: bold;
1152
+ font-size: 1rem;
1153
+ flex: 1;
1154
+ }
1155
+ .pop-box-body > div:not(:last-child) {
1156
+ padding: 20px;
1157
+ }
1158
+ .pop-box-body > div.button {
1159
+ background: var(--color-card-1);
1160
+ margin: 0 -20px -20px -20px;
1161
+ border-radius: 0 0 7px 7px;
1162
+ justify-content: flex-end;
1163
+ flex-direction: row;
1164
+ align-items: center;
1165
+ padding: 15px;
1166
+ display: flex;
1167
+ }
1168
+ .pop-box-body > div.button > button {
1169
+ background: var(--color-card-2);
1170
+ color: var(--color-font);
1171
+ margin-left: 10px;
1172
+ padding: 0 15px;
1173
+ cursor: pointer;
1174
+ }
1175
+ .pop-box-body > div.button > button.master {
1176
+ background: var(--color-main);
1177
+ color: var(--color-font-r);
1178
+ }
1179
+
1180
+ .pop-box-more {
1181
+ position: absolute;
1182
+ margin-left: -20px;
1183
+ margin-top: 20px;
1184
+ z-index: -1;
1185
+ width: 100%;
1186
+ }
1187
+ .pop-box-more > div {
1188
+ box-shadow: 0 0 3px var(--color-bg);
1189
+ background: var(--color-card);
1190
+ border-radius: 0 0 7px 7px;
1191
+ margin: 0 10px;
1192
+ height: 10px;
1193
+ }
1194
+ .pop-box-more > div.hid {
1195
+ height: 0;
1196
+ }
1197
+
1198
+ .update-info {
1199
+ margin: -20px -20px 0px;
1200
+ flex-direction: column;
1201
+ align-items: center;
1202
+ display: flex;
1203
+ }
1204
+ .update-info > span {
1205
+ color: var(--color-main);
1206
+ font-weight: bold;
1207
+ font-size: 1rem;
1208
+ }
1209
+ .update-info > a {
1210
+ color: var(--color-font-2);
1211
+ font-size: 0.8rem;
1212
+ }
1213
+ .update-info > div {
1214
+ width: calc(100% - 30px);
1215
+ }
1216
+
1217
+ .update-info > div.title {
1218
+ align-items: center;
1219
+ margin-top: 10px;
1220
+ display: flex;
1221
+ }
1222
+ .update-info > div.title > img {
1223
+ outline: 2px solid var(--color-main);
1224
+ border: 1px solid var(--color-bg);
1225
+ height: calc(1.5rem - 3px);
1226
+ border-radius: 100%;
1227
+ }
1228
+ .update-info > div.title > a {
1229
+ color: var(--color-main);
1230
+ margin-left: 10px;
1231
+ flex: 1;
1232
+ }
1233
+ .update-info > div.title > span {
1234
+ color: var(--color-font-2);
1235
+ font-size: 0.8rem;
1236
+ }
1237
+ .update-info > div.info {
1238
+ background: var(--color-bg);
1239
+ flex-direction: column;
1240
+ align-items: flex-start;
1241
+ border-radius: 7px;
1242
+ margin-top: 15px;
1243
+ padding: 15px;
1244
+ display: flex;
1245
+ }
1246
+ .update-info > div.info > span {
1247
+ color: var(--color-main);
1248
+ }
1249
+ .update-info > div.info > span::before {
1250
+ content: '\2022';
1251
+ }
1252
+ .update-info > div.info > div {
1253
+ overflow-y: scroll;
1254
+ max-height: 20vh;
1255
+ margin-top: 10px;
1256
+ width: 100%;
1257
+ }
1258
+ .update-info > div.info > div > div > span {
1259
+ color: var(--color-font);
1260
+ }
1261
+
1262
+ .hiden-home {
1263
+ display: none !important;
1264
+ }
1265
+
1266
+ .qq-err-card {
1267
+ margin: -40px -30px -20px -30px;
1268
+ }
1269
+ .qq-err-card > div:first-child {
1270
+ display: flex;
1271
+ flex-direction: row;
1272
+ align-items: center;
1273
+ margin: -5px;
1274
+ height: 2rem;
1275
+ }
1276
+ .qq-err-card > div:first-child img {
1277
+ margin-right: 10px;
1278
+ }
1279
+ .qq-err-card > div:first-child span {
1280
+ font-size: 0.9rem;
1281
+ color: var(--color-font);
1282
+ flex: 1;
1283
+ }
1284
+ .qq-err-card > div:first-child span span {
1285
+ opacity: 0.1;
1286
+ margin-left: 5px;
1287
+ color: var(--color-font-2);
1288
+ }
1289
+ .qq-err-card > div:first-child svg {
1290
+ cursor: pointer;
1291
+ height: 1.5rem;
1292
+ width: 1.5rem;
1293
+ color: var(--color-font-2);
1294
+ }
1295
+ .qq-err-card > div:last-child {
1296
+ padding: 10px;
1297
+ color: var(--color-font);
1298
+ margin: 0 -8px -3px -8px;
1299
+ }
1300
+
1301
+ .qq-err-card > div:last-child hr {
1302
+ margin: 5px 0;
1303
+ background: var(--color-font-2);
1304
+ opacity: 0.7;
1305
+ border-bottom: 1px solid #fff;
1306
+ }
1307
+ .qq-err-card > div:last-child > div:first-child {
1308
+ display: flex;
1309
+ flex-direction: row;
1310
+ align-items: center;
1311
+ padding: 10px;
1312
+ }
1313
+ .qq-err-card > div:last-child > div:first-child img {
1314
+ margin-right: 15px;
1315
+ }
1316
+ .qq-err-card > div:last-child > div:first-child span {
1317
+ font-size: 0.7rem;
1318
+ }
1319
+ .qq-err-card > div:last-child > div:last-child {
1320
+ display: flex;
1321
+ flex-direction: column;
1322
+ font-size: 0.7rem;
1323
+ }
1324
+ .qq-err-card > div:last-child > div:last-child div {
1325
+ display: flex;
1326
+ align-items: center;
1327
+ margin: 5px 0;
1328
+ }
1329
+ .qq-err-card > div:last-child > div:last-child textarea {
1330
+ max-height: 100px;
1331
+ height: 100px;
1332
+ border: 0;
1333
+ margin: 10px 0;
1334
+ border-bottom: 1px solid var(--color-font-2);
1335
+ border-radius: 3px;
1336
+ background: var(--color-bg);
1337
+ padding: 10px;
1338
+ color: var(--color-font-2);
1339
+ }
1340
+ .qq-err-card > div:last-child > div:last-child button {
1341
+ width: 90px;
1342
+ border: 1px solid #007bff;
1343
+ border-radius: 7px;
1344
+ background: var(--color-bg);
1345
+ color: var(--color-font);
1346
+ }
1347
+ .qq-err-card-err {
1348
+ color: var(--color-font-2);
1349
+ margin-bottom: 10px;
1350
+ }
1351
+ .qq-err-card-err span:last-child {
1352
+ flex: 1;
1353
+ text-align: center;
1354
+ }
1355
+ .qq-err-card-err a {
1356
+ color: #007bff;
1357
+ position: absolute;
1358
+ right: 15px;
1359
+ cursor: pointer;
1360
+ }
1361
+ .qq-err-card-err a span:first-child {
1362
+ transform: rotate(90deg);
1363
+ display: inline-block;
1364
+ margin-right: 5px;
1365
+ }
1366
+
1367
+ .view-iframe {
1368
+ margin: -40px -40px -20px -40px;
1369
+ width: calc(100% + 80px);
1370
+ border-radius: 7px;
1371
+ border: none;
1372
+ }
1373
+
1374
+ .mask-background {
1375
+ background-color: rgba(var(--color-card-2-rgb), 0.7);
1376
+ transition: background 0.3s;
1377
+ position: absolute;
1378
+ height: 100%;
1379
+ width: 100%;
1380
+ left: 0;
1381
+ top: 0;
1382
+ z-index: 50;
1383
+ }
1384
+
1385
+ .global-session-search-bar {
1386
+ display: flex;
1387
+ flex-direction: column;
1388
+ position: absolute;
1389
+ width: 60vw;
1390
+ top: 20vh;
1391
+ left: 50%;
1392
+ transform: translateX(-50%);
1393
+ max-height: 50vh;
1394
+ transition: height 0.2s;
1395
+ z-index: 20;
1396
+ box-shadow: 0 0 5px var(--color-shader);
1397
+ }
1398
+
1399
+ .global-session-search-bar > hr {
1400
+ color: var(--color-card-2);
1401
+ width: 100%;
1402
+ }
1403
+
1404
+ .global-session-search-bar > input {
1405
+ max-width: unset;
1406
+ min-height: 35px;
1407
+ }
1408
+
1409
+ .global-session-search-bar > div {
1410
+ padding-right: 5px;
1411
+ overflow-x: hidden;
1412
+ overflow-y: scroll;
1413
+ }
1414
+
1415
+ .global-session-search-bar > div > div {
1416
+ display: flex;
1417
+ align-items: center;
1418
+ }
1419
+
1420
+ .global-session-search-bar > div > div > :nth-child(1) {
1421
+ flex: 1;
1422
+ }
1423
+
1424
+ .global-session-search-bar > div > div.session-item {
1425
+ margin-bottom: 5px;
1426
+ border-radius: 7px;
1427
+ }
1428
+
1429
+ .global-session-search-bar > div > div.session-item:hover {
1430
+ background-color: var(--color-card-2);
1431
+ }
1432
+
1433
+ .global-session-search-bar > div > div.session-item.selected {
1434
+ background-color: var(--color-card-2);
1435
+ }
1436
+
1437
+ .global-session-search-bar > div > div.session-item > div {
1438
+ width: -webkit-fill-available;
1439
+ pointer-events: none;
1440
+ }
1441
+
1442
+ .global-session-search-bar > div > div.session-item > span {
1443
+ color: var(--color-font-1);
1444
+ font-size: 0.8rem;
1445
+ margin-right: 10px;
1446
+ }
1447
+
1448
+ .global-session-search-bar-enter-active,
1449
+ .global-session-search-bar-leave-active {
1450
+ z-index: 20;
1451
+ transition: opacity 0.2s;
1452
+ }
1453
+
1454
+ .global-session-search-bar-enter-from,
1455
+ .global-session-search-bar-leave-to {
1456
+ opacity: 0.0;
1457
+ }
1458
+
1459
+ .viewer-bar {
1460
+ position: absolute;
1461
+ z-index: 31;
1462
+ width: 80%;
1463
+ margin-left: 10%;
1464
+ margin-right: 10%;
1465
+ display: flex;
1466
+ transition: opacity 0.2s;
1467
+ }
1468
+
1469
+ .viewer-bar::before,
1470
+ .viewer-bar::after {
1471
+ content: '';
1472
+ margin: auto;
1473
+ }
1474
+
1475
+ .viewer-tool-config-bar {
1476
+ bottom: calc(3% + 80px + var(--safe-area-bottom));
1477
+ }
1478
+
1479
+ .viewer-tool-config-bar > div.color {
1480
+ width: 24px;
1481
+ height: 24px;
1482
+ border: solid 3px var(--color-card);
1483
+ background-color: var(--color);
1484
+ margin: 5px;
1485
+ border-radius: 7px;
1486
+ transition: 0.2s;
1487
+ }
1488
+
1489
+ .viewer-tool-config-bar > div.line-width {
1490
+ width: 20px;
1491
+ height: 20px;
1492
+ padding: 5px;
1493
+ margin: 5px;
1494
+ background-color: var(--color-main);
1495
+ border-radius: 7px;
1496
+ transition: 0.2s;
1497
+ display: flex;
1498
+ }
1499
+
1500
+ .viewer-tool-config-bar > div.line-width > div {
1501
+ width: var(--line-width);
1502
+ height: var(--line-width);
1503
+ background-color: var(--color-card);
1504
+ margin: auto;
1505
+ border-radius: var(--line-width);
1506
+ }
1507
+
1508
+ .viewer-tool-config-bar > div.color:hover,
1509
+ .viewer-tool-config-bar > div.line-width:hover {
1510
+ transform: rotate(45deg);
1511
+ }
1512
+
1513
+ .viewer-tool-config-bar > svg.rect-is-fill {
1514
+ width: 20px;
1515
+ height: 20px;
1516
+ padding: 5px;
1517
+ margin: 5px;
1518
+ color: var(--color-card);
1519
+ background-color: var(--color-main);
1520
+ border-radius: 7px;
1521
+ transition: 0.2s;
1522
+ }
1523
+
1524
+ .viewer-tool-config-bar > hr {
1525
+ width: 0px;
1526
+ margin: auto 2px;
1527
+ height: 15px;
1528
+ border: solid 1px var(--color-font);
1529
+ }
1530
+
1531
+ .viewer-tool-config-bar > svg:hover {
1532
+ background-color: var(--color-font);
1533
+ }
1534
+
1535
+ .viewer-tool-config-bar > div.active {
1536
+ border-radius: 15px;
1537
+ }
1538
+
1539
+ .viewer-button-bar {
1540
+ bottom: calc(3% + var(--safe-area-bottom));
1541
+ opacity: 0;
1542
+ }
1543
+
1544
+ .viewer-button-bar.force-show,
1545
+ .viewer-button-bar:hover {
1546
+ opacity: 1;
1547
+ }
1548
+
1549
+ .viewer-button-bar > svg {
1550
+ cursor: pointer;
1551
+ width: 15px;
1552
+ height: 15px;
1553
+ margin: 0 5px;
1554
+ padding: 15px;
1555
+ background-color: var(--color-main);
1556
+ color: var(--color-card);
1557
+ border-radius: 10px;
1558
+ transition: background 0.2s;
1559
+ flex-shrink: 1;
1560
+ }
1561
+
1562
+ .viewer-button-bar > svg:hover {
1563
+ background-color: var(--color-font-2);
1564
+ color: var(--color-font-r);
1565
+ }
1566
+
1567
+ .viewer-button-bar > svg.active {
1568
+ border-radius: 30px;
1569
+ }
1570
+
1571
+ .viewer-button-bar > hr {
1572
+ display: block;
1573
+ height: 25px;
1574
+ margin: auto 10px;
1575
+ border: solid 1px var(--color-font-2);
1576
+ border-radius: 2px;
1577
+ opacity: 0.7;
1578
+ flex-shrink: 1;
1579
+ }
1580
+
1581
+ .viewer-button-enter-active,
1582
+ .viewer-button-leave-active {
1583
+ transition: all 0.2s;
1584
+ }
1585
+
1586
+ .viewer-button-enter-from,
1587
+ .viewer-button-leave-to {
1588
+ transform: translate(0, 100%);
1589
+ opacity: 1;
1590
+ }
1591
+
1592
+ .viewer-tool-config-enter-from,
1593
+ .viewer-tool-config-leave-to {
1594
+ width: 1px !important;
1595
+ height: 1px !important;
1596
+ margin-top: auto !important;
1597
+ margin-bottom: auto !important;
1598
+ opacity: 0;
1599
+ }
1600
+
1601
+ .viewer-bar.dragging {
1602
+ opacity: 0;
1603
+ pointer-events: none;
1604
+ }
1605
+
1606
+ .viewer-img {
1607
+ position: absolute;
1608
+ top: 0;
1609
+ left: 0;
1610
+ height: 100vh;
1611
+ width: 100vw;
1612
+ }
1613
+
1614
+ .viewer-img > canvas {
1615
+ display: block;
1616
+ width: 100vw;
1617
+ height: 100vh;
1618
+ object-fit: contain;
1619
+ }
1620
+
1621
+ .viewer-img > img,
1622
+ .viewer-img > canvas {
1623
+ margin-top: calc(50vh - var(--height) * var(--scale) / 2 + var(--y));
1624
+ margin-left: calc(50vw - var(--width) * var(--scale) / 2 + var(--x));
1625
+ transition: all 0.2s;
1626
+ width: calc(var(--width) * var(--scale));
1627
+ height: calc(var(--height) * var(--scale));
1628
+ transform-origin: center;
1629
+ transform: rotate(var(--rotate));
1630
+ }
1631
+
1632
+ .viewer-img.grab > img,
1633
+ .viewer-img.grab > canvas {
1634
+ transition: none;
1635
+ }
1636
+
1637
+ .viewer.loading {
1638
+ box-shadow: 0 0 5px var(--color-shader);
1639
+ transform: translate(-50%, -50%);
1640
+ background: var(--color-card);
1641
+ flex-direction: column;
1642
+ border-radius: 7px;
1643
+ position: absolute;
1644
+ padding: 10px;
1645
+ display: flex;
1646
+ opacity: 1;
1647
+ left: 50%;
1648
+ top: 50%;
1649
+ }
1650
+
1651
+ .viewer.loading > svg {
1652
+ color: var(--color-main);
1653
+ font-size: 1.1rem;
1654
+ }
1655
+
1656
+ .viewer-img > div.scrollbar {
1657
+ user-select: none;
1658
+ cursor: pointer;
1659
+ position: absolute;
1660
+ background: rgba(var(--color-bg-rgb), 0.7);
1661
+ z-index: 10;
1662
+ opacity: 0;
1663
+ transition: opacity 0.3s;
1664
+ }
1665
+
1666
+ .viewer-img > div.x {
1667
+ left: 0;
1668
+ bottom: 8px;
1669
+ width: 100vw;
1670
+ height: 12px;
1671
+ }
1672
+
1673
+ .viewer-img > div.y {
1674
+ right: 8px;
1675
+ top: 0;
1676
+ width: 12px;
1677
+ height: 100vh;
1678
+ }
1679
+
1680
+ .viewer-img.grab > div.scrollbar,
1681
+ .viewer-img.zooming > div.scrollbar,
1682
+ .viewer-img > div.scrollbar.dragging,
1683
+ .viewer-img > div.scrollbar:hover {
1684
+ opacity: 1;
1685
+ }
1686
+
1687
+ .viewer-img > div.scrollbar > div.scrollbar-thumb {
1688
+ position: absolute;
1689
+ background: var(--color-main);
1690
+ opacity: 0.7;
1691
+ border-radius: 4px;
1692
+ }
1693
+
1694
+ .viewer-img > div.x > div.scrollbar-thumb {
1695
+ left: calc(var(--pos) * 100vw);
1696
+ top: 2px;
1697
+ width: max(calc(var(--thumb) * 100vw), 40px);
1698
+ height: 8px;
1699
+ }
1700
+
1701
+ .viewer-img > div.y > div.scrollbar-thumb {
1702
+ top: calc(var(--pos) * 100vh);
1703
+ right: 2px;
1704
+ height: max(calc(var(--thumb) * 100vh), 40px);
1705
+ width: 8px;
1706
+ }
1707
+
1708
+ .viewer-change-img-next-leave-active,
1709
+ .viewer-change-img-next-enter-active,
1710
+ .viewer-change-img-prev-leave-active,
1711
+ .viewer-change-img-prev-enter-active {
1712
+ transition: all 0.15s ease-in-out;
1713
+ }
1714
+
1715
+ .viewer-change-img-prev-enter-from,
1716
+ .viewer-change-img-next-leave-to {
1717
+ transform: translateX(-100%);
1718
+ }
1719
+
1720
+ .viewer-change-img-prev-leave-to,
1721
+ .viewer-change-img-next-enter-from {
1722
+ transform: translateX(100%);
1723
+ }
1724
+
1725
+ .cursor-grab {
1726
+ cursor: grab;
1727
+ }
1728
+
1729
+ .cursor-grabbing {
1730
+ cursor: grabbing;
1731
+ }
1732
+
1733
+ .cursor-exit {
1734
+ cursor: url(../../assets/img/icons/exit.png), auto;
1735
+ }
1736
+
1737
+ .cursor-not-allowed {
1738
+ cursor: not-allowed
1739
+ }
1740
+
1741
+ .cursor-pen {
1742
+ cursor: url(../../assets/img/icons/pen.png) 0 24, auto;
1743
+ }
1744
+
1745
+ .cursor-crosshair {
1746
+ cursor: crosshair;
1747
+ }
1748
+
1749
+
1750
+ @media (max-width: 700px) {
1751
+ /* 侧栏及主布局自适应 */
1752
+ .main-body {
1753
+ flex-direction: column-reverse;
1754
+ }
1755
+ .main-body > div {
1756
+ height: calc(100% - 75px);
1757
+ }
1758
+ .main-body > ul {
1759
+ padding-top: 0 !important;
1760
+ justify-content: center;
1761
+ height: 75px !important;
1762
+ align-items: center;
1763
+ flex-direction: row;
1764
+ min-width: 100% !important;
1765
+ z-index: 20;
1766
+ }
1767
+ .main-body > ul.onloading {
1768
+ transform: translateY(100%);
1769
+ }
1770
+ .main-body > ul > li {
1771
+ margin-top: 0;
1772
+ margin-bottom: 0 !important;
1773
+ }
1774
+ .side-bar-space {
1775
+ display: none;
1776
+ }
1777
+ /* 二级侧栏 */
1778
+ .friend-list {
1779
+ transition: width 0.3s;
1780
+ width: 80px;
1781
+ }
1782
+ .friend-list.open {
1783
+ width: 300px;
1784
+ }
1785
+ .friend-list.open .small {
1786
+ display: flex;
1787
+ }
1788
+ .friend-list > div:first-child {
1789
+ margin-bottom: 0 !important;
1790
+ }
1791
+ .friend-list > div:first-child > div.base {
1792
+ display: none;
1793
+ }
1794
+ .friend-list > div:first-child > div.small {
1795
+ align-items: center;
1796
+ display: flex;
1797
+ height: 60px;
1798
+ width: 100%;
1799
+ }
1800
+ .group-assist-message-list:not(.open) > div:first-child > div.small {
1801
+ flex-direction: column;
1802
+ height: 120px;
1803
+ }
1804
+ .friend-list > div:first-child > div.small > div.reload {
1805
+ display: none;
1806
+ }
1807
+ .friend-list.open > div:first-child > div.small > div.reload {
1808
+ background: var(--color-card-2);
1809
+ display: flex !important;
1810
+ margin-right: 10px;
1811
+ }
1812
+ .friend-list.open > div:first-child > div.small > div.reload > svg {
1813
+ color: var(--color-font);
1814
+ }
1815
+ .friend-list > div:first-child > div.small > div {
1816
+ background: var(--color-main);
1817
+ justify-content: center;
1818
+ align-items: center;
1819
+ border-radius: 7px;
1820
+ cursor: pointer;
1821
+ display: flex;
1822
+ height: 50px;
1823
+ width: 50px;
1824
+ }
1825
+ .group-assist-message-list:not(.open) > div:first-child > div.small > div {
1826
+ margin: 0 0 10px 0 !important;
1827
+ }
1828
+ .friend-list > div:first-child > div.small > label {
1829
+ margin-right: 10px;
1830
+ height: 50px;
1831
+ flex: 1;
1832
+ }
1833
+ .friend-list.open > div:first-child > div.small > label {
1834
+ display: flex !important;
1835
+ }
1836
+
1837
+ .friend-list.open > div:first-child > div.small > div:last-child {
1838
+ margin-left: 10px;
1839
+ }
1840
+ .friend-list > div:first-child > div.small > div > svg {
1841
+ color: var(--color-font-r);
1842
+ height: 17px;
1843
+ opacity: 1;
1844
+ }
1845
+ .friend-list > div:first-child label {
1846
+ border-radius: 7px;
1847
+ display: none;
1848
+ }
1849
+ .friend-list > div:last-child.open > div:not(.list),
1850
+ .friend-list > div:last-child.open > div.list > div > div {
1851
+ padding: 10px !important;
1852
+ margin: 10px !important;
1853
+ }
1854
+ .friend-list > div:last-child.open > div > div,
1855
+ .friend-list > div:last-child.open > div.list > div > div > div {
1856
+ display: block;
1857
+ }
1858
+ .friend-list > div:first-child > div.small > span {
1859
+ display: none;
1860
+ }
1861
+ .friend-list.open > div:first-child > div.small > span {
1862
+ display: flex;
1863
+ }
1864
+
1865
+ .group-assist-message-list {
1866
+ margin-right: -100%;
1867
+ }
1868
+ .group-assist-message-list.show {
1869
+ margin-left: -50%;
1870
+ margin-right: 0;
1871
+ }
1872
+
1873
+ .friend-body {
1874
+ background: transparent !important;
1875
+ justify-content: center;
1876
+ padding: 10px 0;
1877
+ margin: 0;
1878
+ }
1879
+ .friend-body > div {
1880
+ display: none;
1881
+ }
1882
+ .friend-body img {
1883
+ height: 45px;
1884
+ width: 45px;
1885
+ }
1886
+ .friend-body > svg {
1887
+ height: 20px;
1888
+ width: 20px;
1889
+ }
1890
+ .friend-body.active:hover {
1891
+ background: var(--color-card-2) !important;
1892
+ }
1893
+ .friend-body.active img {
1894
+ border: 2px solid var(--color-main);
1895
+ }
1896
+ .friend-body > div:nth-child(1) {
1897
+ transform: scaleY(1) !important;
1898
+ position: absolute;
1899
+ display: none !important;
1900
+ }
1901
+ .friend-body > div:nth-child(1).new {
1902
+ border-radius: 100%;
1903
+ display: block !important;
1904
+ height: 15px;
1905
+ width: 15px;
1906
+ right: -3px;
1907
+ top: 4px;
1908
+ }
1909
+ /* 应用消息 */
1910
+ .app-msg {
1911
+ height: calc(100% - 90px - var(--safe-area-bottom));
1912
+ padding-left: 20px;
1913
+ }
1914
+ .app-msg > div {
1915
+ max-width: calc(100% - 80px);
1916
+ }
1917
+ /* 右击菜单 */
1918
+ .msg-menu-body {
1919
+ width: 30%;
1920
+ }
1921
+ .msg-menu-body > div {
1922
+ padding: 5px 15px;
1923
+ }
1924
+ }
1925
+
1926
+ @media (max-width: 500px) {
1927
+ /* 全局通用弹窗 */
1928
+ .pop-box-body {
1929
+ max-height: calc(100vh - 80px);
1930
+ transform: unset !important;
1931
+ width: calc(100% - 80px);
1932
+ min-width: unset;
1933
+ margin: 20px;
1934
+ bottom: 0;
1935
+ }
1936
+ .pop-box-body.full {
1937
+ width: calc(100% - 70px) !important;
1938
+ margin-bottom: 20px !important;
1939
+ }
1940
+ .pop-box-more {
1941
+ display: none;
1942
+ }
1943
+ /* 二级侧栏 */
1944
+ .friend-list {
1945
+ width: 100% !important;
1946
+ }
1947
+ .friend-list .small {
1948
+ display: flex !important;
1949
+ }
1950
+ .friend-body > div {
1951
+ display: block !important;
1952
+ }
1953
+ .friend-view > div:last-child {
1954
+ display: none !important;
1955
+ }
1956
+ .friend-list > div:last-child > div:not(.list),
1957
+ .friend-list > div:last-child > div.list > div > div {
1958
+ padding: 10px !important;
1959
+ margin: 10px !important;
1960
+ }
1961
+ .friend-list > div:first-child > div.small > span {
1962
+ display: flex !important;
1963
+ margin-right: 0;
1964
+ }
1965
+ .friend-list > div:first-child > div.small > div:last-child {
1966
+ display: none;
1967
+ }
1968
+ .friend-list > div:first-child > div.small > div:not(:last-child) {
1969
+ margin-right: 20px !important;
1970
+ }
1971
+ .friend-list > div:first-child > div.small > div.reload,
1972
+ .friend-list > div:first-child > div.small > label {
1973
+ display: flex !important;
1974
+ }
1975
+ .friend-list-space {
1976
+ overflow: hidden;
1977
+ width: 0;
1978
+ }
1979
+
1980
+ .group-assist-message-list {
1981
+ margin-right: -100% !important;
1982
+ }
1983
+ .group-assist-message-list.show {
1984
+ margin-left: -100% !important;
1985
+ margin-right: 0;
1986
+ }
1987
+
1988
+ .viewer-bar {
1989
+ width: 25px;
1990
+ margin: 20px;
1991
+ }
1992
+ .viewer-button-bar {
1993
+ top: var(--safe-area--viewer-top);
1994
+ left: 0;
1995
+ flex-direction: column;
1996
+ }
1997
+ .viewer-button-bar > svg {
1998
+ margin: 5px 0;
1999
+ }
2000
+ .viewer-button-bar > hr {
2001
+ margin: 10px 0;
2002
+ transform: translate(calc(-25px / 4), 0);
2003
+ width: 25px;
2004
+ height: 0;
2005
+ }
2006
+
2007
+ .viewer-button-enter-from,
2008
+ .viewer-button-leave-to {
2009
+ transform: translate(75px, 0);
2010
+ opacity: 1;
2011
+ }
2012
+
2013
+ .viewer-tool-config-bar {
2014
+ bottom: var(--safe-area-bottom);
2015
+ justify-content: center;
2016
+ flex-wrap: wrap;
2017
+ width: 90%;
2018
+ }
2019
+ .viewer-tool-config-bar::before,
2020
+ .viewer-tool-config-bar::after {
2021
+ display: none;
2022
+ }
2023
+ .viewer-tool-config-bar > hr:not(:nth-last-child(2)) {
2024
+ width: 100%;
2025
+ height: 5px;
2026
+ opacity: 0;
2027
+ }
2028
+ }
2029
+
2030
+ /* 全局淡入淡出动画 */
2031
+ .v-enter-active,
2032
+ .v-leave-active {
2033
+ transition: all 0.4s ease;
2034
+ }
2035
+ .v-enter-active > div.ss-card,
2036
+ .v-leave-active > div.ss-card {
2037
+ transition: all 0.2s ease;
2038
+ }
2039
+
2040
+ .v-enter-from,
2041
+ .v-leave-to {
2042
+ opacity: 0;
2043
+ }
2044
+ /* 如果里面有卡片,触发卡片浮入浮出动画 */
2045
+ /* TODO: 对于本来就使用 translate 定位的卡片会失效(或者出问题) */
2046
+ .v-enter-from > div.ss-card {
2047
+ transform: translateY(-20px);
2048
+ }
2049
+ .v-leave-to > div.ss-card {
2050
+ transform: translateY(20px);
2051
+ }
2052
+
2053
+ .history-box > .space {
2054
+ display: flex;
2055
+ flex-direction: column;
2056
+ align-items: center;
2057
+ padding: 30px;
2058
+ }
2059
+ .history-box > .space > svg {
2060
+ font-size: 50px;
2061
+ color: var(--color-main);
2062
+ }
2063
+
2064
+ .history-box > .main {
2065
+ display: flex;
2066
+ flex-direction: column;
2067
+ overflow-y: scroll;
2068
+ overflow-x: hidden;
2069
+ max-height: 60vh;
2070
+ }
2071
+
2072
+ .history-box > .main > div {
2073
+ display: flex;
2074
+ align-items: center;
2075
+ padding: 5px;
2076
+ border-radius: 7px;
2077
+ }
2078
+
2079
+ .history-box > .main > div:hover {
2080
+ background-color: var(--color-card-2);
2081
+ }
2082
+
2083
+ .history-box > .main > div > img {
2084
+ width: 30px;
2085
+ height: 30px;
2086
+ object-fit: cover;
2087
+ border-radius: 7px;
2088
+ border: 2px solid var(--color-main);
2089
+ margin-right: 5px;
2090
+ }
2091
+
2092
+ @keyframes wordsLoop {
2093
+ 0% {
2094
+ transform: translateX(0px);
2095
+ }
2096
+ 25% {
2097
+ transform: translateX(0px);
2098
+ }
2099
+ 75% {
2100
+ transform: translateX(calc(-100% + 2.35rem));
2101
+ }
2102
+ 100% {
2103
+ transform: translateX(calc(-100% + 2.35rem));
2104
+ }
2105
+ }