style.less 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. @primary-color: #2152d1;
  2. @text-color: #303133;
  3. // 遮罩层
  4. .update-notification-mask {
  5. position: fixed;
  6. top: 0;
  7. left: 0;
  8. right: 0;
  9. bottom: 0;
  10. background: rgba(0, 0, 0, 0.45);
  11. z-index: 9998;
  12. opacity: 0;
  13. transition: opacity 0.3s ease;
  14. &.show {
  15. opacity: 1;
  16. }
  17. }
  18. .update-notification {
  19. position: fixed;
  20. top: 50%;
  21. left: 50%;
  22. transform: translate(-50%, -50%) scale(0.8);
  23. width: 980px;
  24. max-width: 90vw;
  25. max-height: 85vh;
  26. background: #ffffff;
  27. border-radius: 0;
  28. box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  29. z-index: 9999;
  30. display: flex;
  31. flex-direction: column;
  32. overflow: hidden;
  33. opacity: 0;
  34. transition: all 0.3s cubic-bezier(0.23, 1, 0.32, 1);
  35. &.show {
  36. opacity: 1;
  37. transform: translate(-50%, -50%) scale(1);
  38. }
  39. &-header {
  40. padding: 20px 32px;
  41. border-bottom: none;
  42. display: flex;
  43. justify-content: space-between;
  44. align-items: center;
  45. position: relative;
  46. }
  47. &-title {
  48. display: flex;
  49. align-items: center;
  50. gap: 8px;
  51. font-size: 20px;
  52. font-weight: 600;
  53. flex: 1;
  54. }
  55. &-icon {
  56. font-size: 20px;
  57. color: @primary-color;
  58. }
  59. &-close {
  60. font-size: 16px;
  61. color: #8c8c8c;
  62. cursor: pointer;
  63. padding: 4px 8px;
  64. border-radius: 4px;
  65. transition: all 0.2s ease;
  66. display: flex;
  67. align-items: center;
  68. justify-content: center;
  69. margin-left: 16px;
  70. &:hover {
  71. color: @text-color;
  72. background: rgba(0, 0, 0, 0.06);
  73. }
  74. &:active {
  75. transform: scale(0.95);
  76. }
  77. }
  78. &-content {
  79. flex: 1;
  80. padding: 24px 40px;
  81. overflow-y: auto;
  82. overflow-x: hidden;
  83. font-size: 14px;
  84. line-height: 1.8;
  85. color: @text-color;
  86. min-height: 0;
  87. /* 自定义滚动条样式 */
  88. &::-webkit-scrollbar {
  89. width: 6px;
  90. }
  91. &::-webkit-scrollbar-track {
  92. background: #f5f5f5;
  93. }
  94. &::-webkit-scrollbar-thumb {
  95. background: #d9d9d9;
  96. border-radius: 3px;
  97. transition: background 0.2s;
  98. &:hover {
  99. background: #bfbfbf;
  100. }
  101. }
  102. /* Markdown 样式 */
  103. h1, h2, h3, h4, h5, h6 {
  104. color: @text-color;
  105. font-weight: 600;
  106. margin-top: 0;
  107. }
  108. h3 {
  109. font-size: 16px;
  110. margin: 0;
  111. padding: 10px 0;
  112. color: #262626;
  113. font-weight: 600;
  114. }
  115. h4 {
  116. font-size: 16px;
  117. margin: 0;
  118. color: #262626;
  119. font-weight: 600;
  120. line-height: 1.4;
  121. &.blue-title {
  122. color: #1677ff;
  123. }
  124. }
  125. p {
  126. margin: 0 0 8px 0;
  127. font-size: 14px;
  128. line-height: 1.8;
  129. color: #595959;
  130. &:last-child {
  131. margin-bottom: 0;
  132. }
  133. }
  134. /* 更新项左右布局样式 */
  135. .update-item {
  136. display: flex;
  137. align-items: flex-start;
  138. gap: 0;
  139. padding: 0;
  140. background: transparent;
  141. border-radius: 0;
  142. border: none;
  143. transition: all 0.3s ease;
  144. position: relative;
  145. height: 120px;
  146. overflow: hidden;
  147. &:first-of-type {
  148. margin-top: 0;
  149. }
  150. &:last-of-type {
  151. margin-bottom: 0;
  152. }
  153. &:hover {
  154. background: transparent;
  155. }
  156. &-image {
  157. flex-shrink: 0;
  158. width: 210px;
  159. min-width: 180px;
  160. height: 120px;
  161. display: flex;
  162. align-items: center;
  163. justify-content: center;
  164. background: transparent;
  165. border-radius: 0;
  166. overflow: hidden;
  167. padding: 0 0 0 30px;
  168. position: relative;
  169. margin-right: 0;
  170. &::after {
  171. content: '';
  172. position: absolute;
  173. right: 0;
  174. top: 50%;
  175. transform: translateY(-50%);
  176. width: 1px;
  177. height: 80px;
  178. background: linear-gradient(to bottom,
  179. rgba(232, 232, 232, 0) 0%,
  180. rgba(217, 217, 217, 0.4) 15%,
  181. #d9d9d9 50%,
  182. rgba(217, 217, 217, 0.4) 85%,
  183. rgba(232, 232, 232, 0) 100%);
  184. }
  185. img {
  186. width: 100%;
  187. height: 100%;
  188. object-fit: contain;
  189. margin: 0;
  190. border-radius: 0;
  191. padding: 0;
  192. transition: transform 0.3s ease;
  193. cursor: pointer;
  194. &:hover {
  195. transform: scale(1.02);
  196. }
  197. }
  198. }
  199. &-content {
  200. flex: 1;
  201. min-width: 0;
  202. height: 120px;
  203. padding-left: 32px;
  204. padding-top: 0;
  205. padding-right: 10px;
  206. display: flex;
  207. flex-direction: column;
  208. justify-content: flex-start;
  209. overflow-y: auto;
  210. overflow-x: hidden;
  211. /* 自定义滚动条样式 */
  212. &::-webkit-scrollbar {
  213. width: 4px;
  214. }
  215. &::-webkit-scrollbar-track {
  216. background: transparent;
  217. }
  218. &::-webkit-scrollbar-thumb {
  219. background: #d9d9d9;
  220. border-radius: 2px;
  221. transition: background 0.2s;
  222. &:hover {
  223. background: #bfbfbf;
  224. }
  225. }
  226. h3 {
  227. margin: 0;
  228. padding: 0;
  229. font-size: 16px;
  230. font-weight: 600;
  231. color: #262626;
  232. line-height: 1.4;
  233. letter-spacing: 0;
  234. a {
  235. color: #1677ff;
  236. font-size: 16px;
  237. font-weight: 600;
  238. font-style: italic;
  239. text-decoration: underline;
  240. transition: all 0.2s ease;
  241. &:hover {
  242. color: #1890ff;
  243. }
  244. }
  245. }
  246. h4 {
  247. margin-top: 0;
  248. margin-bottom: 0;
  249. font-size: 16px;
  250. font-weight: 600;
  251. color: #262626;
  252. line-height: 1.4;
  253. letter-spacing: 0;
  254. }
  255. p {
  256. margin: 10px 0 0 0;
  257. font-size: 14px;
  258. line-height: 1.8;
  259. color: #595959;
  260. &:first-of-type {
  261. margin-top: 12px;
  262. }
  263. & + p {
  264. margin-top: 8px;
  265. }
  266. }
  267. ul {
  268. margin: 12px 0 0 0;
  269. padding-left: 0;
  270. list-style: none;
  271. li {
  272. color: rgba(0, 0, 0, 0.65);
  273. font-size: 14px;
  274. line-height: 1.5;
  275. padding-left: 16px;
  276. position: relative;
  277. &::before {
  278. content: '•';
  279. position: absolute;
  280. left: 0;
  281. color: rgba(0, 0, 0, 0.65);
  282. font-size: 14px;
  283. }
  284. }
  285. }
  286. }
  287. }
  288. }
  289. &-footer {
  290. padding: 16px 32px;
  291. border-top: 1px solid #f0f0f0;
  292. display: flex;
  293. flex-direction: row-reverse;
  294. justify-content: flex-start;
  295. align-items: center;
  296. background: #fff;
  297. gap: 16px;
  298. .footer-notice {
  299. display: flex;
  300. align-items: center;
  301. gap: 0;
  302. transition: all 0.2s ease;
  303. &:hover {
  304. opacity: 0.8;
  305. .info-icon {
  306. color: #1677ff;
  307. }
  308. .notice-text {
  309. color: #3b3b3b;
  310. }
  311. }
  312. .info-icon {
  313. font-size: 14px;
  314. color: #595959;
  315. display: inline-flex;
  316. align-items: center;
  317. transition: color 0.2s ease;
  318. font-weight: 700;
  319. }
  320. .notice-text {
  321. font-size: 14px;
  322. color: #929292;
  323. transition: color 0.2s ease;
  324. font-weight: 600;
  325. }
  326. }
  327. }
  328. &-button {
  329. min-width: 88px;
  330. padding: 8px 32px;
  331. background: @primary-color;
  332. color: #ffffff;
  333. border: none;
  334. border-radius: 4px;
  335. font-size: 14px;
  336. cursor: pointer;
  337. transition: all 0.2s ease;
  338. font-weight: 400;
  339. &:hover {
  340. background: #1a42a8;
  341. }
  342. &:active {
  343. transform: scale(0.98);
  344. }
  345. }
  346. }