update.css 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. .updae_from {
  2. width: 100%;
  3. height: 100%;
  4. background: linear-gradient(180deg, #C1FAE2 0%, #FFFFFF 10%);
  5. border-radius: 8px;
  6. position: relative;
  7. }
  8. .update_content {
  9. position: relative;
  10. z-index: 2;
  11. display: flex;
  12. flex-direction: column;
  13. padding: 30px;
  14. }
  15. .update_title {
  16. font-family: PingFangSC, PingFang SC;
  17. font-weight: 500;
  18. font-size: 20px;
  19. color: #1F2937;
  20. line-height: 28px;
  21. text-align: left;
  22. font-style: normal;
  23. margin-bottom: 44px;
  24. }
  25. .update_list {
  26. margin-top: 20px;
  27. font-family: PingFangSC, PingFang SC;
  28. font-weight: 400;
  29. font-size: 16px;
  30. color: #4B5563;
  31. line-height: 30px;
  32. text-align: left;
  33. font-style: normal;
  34. }
  35. .group_link {
  36. margin: 5px 0;
  37. }
  38. .update_bg {
  39. width: 100%;
  40. position: absolute;
  41. top: -10px;
  42. left: 0;
  43. z-index: 0;
  44. }
  45. .skin_updae_from {
  46. border-radius: 8px;
  47. }
  48. /* 更新按钮样式 - 移动端(顶部导航栏) */
  49. .layout-right #update-notification {
  50. position: relative;
  51. margin-right: 8px;
  52. }
  53. .layout-right #update-notification a {
  54. display: flex;
  55. align-items: center;
  56. justify-content: center;
  57. gap: 4px;
  58. padding: 6px 12px;
  59. border-radius: 16px;
  60. background: linear-gradient(135deg, #00d4aa 0%, #0099cc 100%);
  61. color: white !important;
  62. text-decoration: none;
  63. transition: all 0.3s ease;
  64. box-shadow: 0 4px 15px rgba(0, 212, 170, 0.4);
  65. border: none;
  66. font-size: 12px;
  67. font-weight: 500;
  68. min-height: 32px;
  69. white-space: nowrap;
  70. position: relative;
  71. overflow: hidden;
  72. backdrop-filter: blur(10px);
  73. text-align: center;
  74. }
  75. .layout-right #update-notification a::before {
  76. content: '';
  77. position: absolute;
  78. top: 0;
  79. left: 0;
  80. right: 0;
  81. bottom: 0;
  82. background: linear-gradient(135deg, rgba(255, 255, 255, 0.1) 0%, rgba(255, 255, 255, 0.05) 100%);
  83. border-radius: 20px;
  84. opacity: 0;
  85. transition: opacity 0.3s ease;
  86. }
  87. .layout-right #update-notification a:hover::before {
  88. opacity: 1;
  89. }
  90. .layout-right #update-notification a:hover {
  91. box-shadow: 0 8px 25px rgba(0, 212, 170, 0.5);
  92. background: linear-gradient(135deg, #40cc92 0%, #0088b3 100%);
  93. }
  94. .layout-right #update-notification a:active {
  95. transform: translateY(0);
  96. box-shadow: 0 4px 15px rgba(102, 126, 234, 0.4);
  97. }
  98. /* 移动端特殊优化 */
  99. @media (max-width: 768px) {
  100. .layout-right #update-notification {
  101. margin-right: 4px;
  102. }
  103. .layout-right #update-notification a {
  104. padding: 6px 10px;
  105. font-size: 12px;
  106. min-height: 32px;
  107. border-radius: 16px;
  108. gap: 4px;
  109. max-width: 80px;
  110. }
  111. .layout-right #update-notification a:hover {
  112. transform: none;
  113. box-shadow: 0 4px 15px rgba(0, 212, 170, 0.4);
  114. }
  115. .layout-right #update-notification i {
  116. font-size: 13px;
  117. }
  118. .layout-right #update-notification span {
  119. font-size: 12px;
  120. font-weight: 500;
  121. }
  122. }
  123. /* 超小屏幕优化 */
  124. @media (max-width: 480px) {
  125. .layout-right #update-notification {
  126. margin-right: 2px;
  127. }
  128. .layout-right #update-notification a {
  129. padding: 0px 8px;
  130. font-size: 11px;
  131. right: -55px;
  132. min-height: 28px;
  133. border-radius: 14px;
  134. gap: 3px;
  135. min-width: 36px;
  136. max-width: 70px;
  137. top: -13px;
  138. padding-top: 26px;
  139. }
  140. .layout-right #update-notification a:hover {
  141. transform: none;
  142. box-shadow: 0 4px 15px rgba(0, 212, 170, 0.4);
  143. }
  144. .layout-right #update-notification i {
  145. font-size: 12px;
  146. }
  147. .layout-right #update-notification span {
  148. font-size: 11px;
  149. }
  150. /* 超小屏幕隐藏小红点,避免过于拥挤 */
  151. .layout-right #update-notification::after {
  152. display: none;
  153. }
  154. }
  155. /* 触摸设备优化 */
  156. @media (hover: none) and (pointer: coarse) {
  157. .layout-right #update-notification a:hover {
  158. /* 触摸设备禁用悬停效果 */
  159. transform: none;
  160. box-shadow: 0 4px 15px rgba(0, 212, 170, 0.4);
  161. }
  162. .layout-right #update-notification a:active {
  163. transform: scale(0.95);
  164. background: linear-gradient(135deg, #40cc92 0%, #0088b3 100%);
  165. }
  166. }
  167. /* PC端更新按钮样式(bottom-nav) */
  168. .bottom-nav #update-notification {
  169. position: relative;
  170. margin-right: 8px;
  171. }
  172. .bottom-nav #update-notification a {
  173. display: flex;
  174. align-items: center;
  175. gap: 8px;
  176. padding: 10px 20px;
  177. border-radius: 25px;
  178. background: linear-gradient(135deg, #00d4aa 0%, #0099cc 100%);
  179. color: white !important;
  180. text-decoration: none;
  181. transition: all 0.3s ease;
  182. box-shadow: 0 6px 20px rgba(0, 212, 170, 0.4);
  183. border: none;
  184. font-size: 14px;
  185. font-weight: 500;
  186. min-height: 40px;
  187. position: relative;
  188. overflow: hidden;
  189. backdrop-filter: blur(10px);
  190. }
  191. .bottom-nav #update-notification a::before {
  192. content: '';
  193. position: absolute;
  194. top: 0;
  195. left: 0;
  196. right: 0;
  197. bottom: 0;
  198. background: linear-gradient(135deg, rgba(255, 255, 255, 0.15) 0%, rgba(255, 255, 255, 0.05) 100%);
  199. border-radius: 25px;
  200. opacity: 0;
  201. transition: opacity 0.3s ease;
  202. }
  203. .bottom-nav .layui-layout-right {
  204. top: -1px;
  205. }
  206. .bottom-nav #update-notification a:hover::before {
  207. opacity: 1;
  208. }
  209. .bottom-nav #update-notification a:hover {
  210. transform: translateY(-3px);
  211. box-shadow: 0 10px 30px rgba(0, 212, 170, 0.5);
  212. background: linear-gradient(135deg, #40cc92 0%, #0088b3 100%);
  213. }
  214. .bottom-nav #update-notification a:active {
  215. transform: translateY(0);
  216. box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
  217. }
  218. /* 图标样式 */
  219. #update-notification i {
  220. color: white !important;
  221. font-size: 13px;
  222. filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
  223. transition: transform 0.3s ease;
  224. }
  225. .bottom-nav #update-notification i {
  226. font-size: 16px;
  227. }
  228. /* 文字样式 */
  229. #update-notification span {
  230. color: white !important;
  231. font-weight: 500;
  232. letter-spacing: 0.3px;
  233. text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  234. line-height: 1;
  235. display: inline-block;
  236. vertical-align: middle;
  237. text-align: center;
  238. }
  239. /* 悬停时图标旋转效果 */
  240. #update-notification a:hover i {
  241. transform: rotate(180deg);
  242. }
  243. /* 更新按钮显示时的动画效果 */
  244. #update-notification.show {
  245. animation: slideInRight 0.5s ease-out;
  246. }
  247. @keyframes slideInRight {
  248. from {
  249. opacity: 0;
  250. transform: translateX(30px);
  251. }
  252. to {
  253. opacity: 1;
  254. transform: translateX(0);
  255. }
  256. }
  257. /* 更新按钮上的小红点 - 通用 */
  258. #update-notification::after {
  259. content: '';
  260. position: absolute;
  261. width: 6px;
  262. height: 6px;
  263. background: #ff6b6b;
  264. border-radius: 50%;
  265. animation: blink 2s infinite;
  266. box-shadow: 0 0 0 2px rgba(255, 107, 107, 0.3);
  267. z-index: 1;
  268. }
  269. /* 移动端小红点位置 */
  270. .layout-right #update-notification::after {
  271. top: 8px;
  272. right: 8px;
  273. width: 6px;
  274. height: 6px;
  275. }
  276. /* 移动端小红点位置调整 */
  277. @media (max-width: 768px) {
  278. .layout-right #update-notification::after {
  279. top: 10px;
  280. right: 10px;
  281. width: 7px;
  282. height: 7px;
  283. }
  284. }
  285. /* PC端小红点位置 */
  286. .bottom-nav #update-notification::after {
  287. top: 8px;
  288. right: 10px;
  289. }
  290. @keyframes blink {
  291. 0%,
  292. 50% {
  293. opacity: 1;
  294. transform: scale(1);
  295. }
  296. 51%,
  297. 100% {
  298. opacity: 0.4;
  299. transform: scale(0.8);
  300. }
  301. }
  302. @keyframes pulse {
  303. 0% {
  304. transform: scale(1);
  305. }
  306. 50% {
  307. transform: scale(1.02);
  308. }
  309. 100% {
  310. transform: scale(1);
  311. }
  312. }
  313. /* 更新按钮呼吸灯效果 */
  314. @keyframes breathe {
  315. 0%,
  316. 100% {
  317. box-shadow: 0 4px 15px rgba(0, 212, 170, 0.4);
  318. }
  319. 50% {
  320. box-shadow: 0 4px 20px rgba(0, 212, 170, 0.6);
  321. }
  322. }
  323. .layout-right #update-notification a,
  324. .bottom-nav #update-notification a {
  325. animation: breathe 3s ease-in-out infinite;
  326. }