experience.scss 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  1. .exp-list {
  2. padding-bottom: 40rpx;
  3. }
  4. .section {
  5. border-bottom: 1rpx solid #E5E5E5;
  6. padding: 30rpx 0 40rpx; // Reduced top padding to move list upward
  7. &:first-child {
  8. padding-top: 10rpx; // Special fix to push the first item up
  9. }
  10. &.border-none {
  11. border-bottom: none;
  12. }
  13. .section-header {
  14. display: flex;
  15. justify-content: space-between;
  16. align-items: center;
  17. margin-bottom: 30rpx;
  18. .section-title {
  19. font-size: 32rpx; // Reduced from 38rpx to match hierarchy
  20. font-weight: 600;
  21. color: #333333; // Match the label color in profile page
  22. }
  23. .icon-plus {
  24. width: 52rpx;
  25. height: 52rpx;
  26. border-radius: 50%;
  27. background-color: #F0F6FF; // Soft blue solid background
  28. position: relative;
  29. border: none; // Removed outline for cleaner look
  30. transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
  31. // Create perfect centered cross icon using pseudo elements to avoid OS font baseline misalignment
  32. &::before,
  33. &::after {
  34. content: '';
  35. position: absolute;
  36. top: 50%;
  37. left: 50%;
  38. transform: translate(-50%, -50%);
  39. background-color: $brand-primary;
  40. border-radius: 2rpx;
  41. transition: background-color 0.2s;
  42. }
  43. // horizontal line
  44. &::before {
  45. width: 24rpx;
  46. height: 4rpx;
  47. }
  48. // vertical line
  49. &::after {
  50. width: 4rpx;
  51. height: 24rpx;
  52. }
  53. &:active {
  54. background-color: $brand-primary;
  55. transform: scale(0.92);
  56. &::before,
  57. &::after {
  58. background-color: #FFFFFF;
  59. }
  60. }
  61. }
  62. }
  63. .item-list {
  64. display: flex;
  65. flex-direction: column;
  66. .empty-state {
  67. display: flex;
  68. flex-direction: column;
  69. align-items: center;
  70. justify-content: center;
  71. padding: 50rpx 0;
  72. background-color: #F8FAFF;
  73. border-radius: 20rpx;
  74. margin: 16rpx 0;
  75. border: 2rpx dashed #D6E4FF;
  76. .empty-icon {
  77. width: 72rpx;
  78. height: 72rpx;
  79. margin-bottom: 24rpx;
  80. }
  81. .empty-text {
  82. font-size: 26rpx;
  83. color: #9AADD1;
  84. }
  85. }
  86. .item {
  87. display: flex;
  88. justify-content: space-between;
  89. align-items: center;
  90. padding: 32rpx 28rpx; // Increased padding for an airy feel
  91. margin: 16rpx 0;
  92. background: linear-gradient(145deg, #F8FAFF 0%, #EFF4FF 100%); // Highly elegant tinted blue background
  93. border: 2rpx solid #EAF0FF;
  94. border-radius: 20rpx;
  95. box-shadow: 0 4rpx 12rpx rgba(31, 108, 255, 0.04);
  96. transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  97. position: relative; // added for icon-close
  98. .icon-close {
  99. position: absolute;
  100. top: -12rpx;
  101. right: -12rpx;
  102. width: 32rpx;
  103. height: 32rpx;
  104. border-radius: 50%;
  105. background-color: #E6F0FF; // 淡蓝色背景
  106. display: flex;
  107. justify-content: center;
  108. align-items: center;
  109. z-index: 10;
  110. transition: all 0.2s;
  111. box-shadow: 0 2rpx 6rpx rgba(31, 108, 255, 0.1); // 添加极淡色阴影增强分离感
  112. &::before,
  113. &::after {
  114. content: '';
  115. position: absolute;
  116. width: 14rpx;
  117. height: 3rpx;
  118. background-color: #6B93E0; // 浅蓝色叉号
  119. border-radius: 2rpx;
  120. transition: all 0.2s;
  121. }
  122. &::before {
  123. transform: rotate(45deg);
  124. }
  125. &::after {
  126. transform: rotate(-45deg);
  127. }
  128. &:active {
  129. background-color: #FFDEE0;
  130. transform: scale(0.9);
  131. &::before,
  132. &::after {
  133. background-color: #FF4D4F;
  134. }
  135. }
  136. }
  137. &:active {
  138. background: #EAF2FF;
  139. transform: scale(0.98);
  140. box-shadow: 0 2rpx 6rpx rgba(31, 108, 255, 0.06);
  141. }
  142. .item-content {
  143. flex: 1;
  144. padding-right: 30rpx;
  145. .title-row {
  146. display: flex;
  147. justify-content: space-between;
  148. align-items: flex-start;
  149. margin-bottom: 12rpx;
  150. .item-title {
  151. font-size: 30rpx; // Reduced from 32rpx
  152. font-weight: 600; // Stand out
  153. color: #1A1A1A;
  154. line-height: 1.4;
  155. flex: 1;
  156. }
  157. .status-tags {
  158. display: flex;
  159. align-items: center;
  160. margin-left: 16rpx;
  161. .tag-hidden {
  162. font-size: 20rpx;
  163. color: #9AADD1;
  164. background-color: rgba(154, 173, 209, 0.12);
  165. padding: 4rpx 12rpx;
  166. border-radius: 6rpx;
  167. font-weight: 500;
  168. border: 1rpx solid rgba(154, 173, 209, 0.2);
  169. }
  170. }
  171. }
  172. .item-desc {
  173. display: flex;
  174. justify-content: space-between;
  175. align-items: center;
  176. margin-bottom: 0;
  177. margin-top: 12rpx;
  178. .desc-text {
  179. font-size: 26rpx;
  180. color: #555555;
  181. line-height: 1.5;
  182. flex: 1;
  183. }
  184. .item-time {
  185. font-size: 24rpx;
  186. color: #666666;
  187. font-weight: 500;
  188. white-space: nowrap;
  189. margin-left: 20rpx;
  190. }
  191. }
  192. .item-detail {
  193. font-size: 26rpx;
  194. color: #666666;
  195. line-height: 1.6;
  196. margin-top: 12rpx;
  197. display: -webkit-box;
  198. -webkit-box-orient: vertical;
  199. -webkit-line-clamp: 3;
  200. line-clamp: 3;
  201. overflow: hidden;
  202. }
  203. }
  204. .arrow {
  205. width: 14rpx; // Reduced size for delicacy
  206. height: 14rpx;
  207. border-right: 3rpx solid #9AADD1; // Changed to a sleek grayish-blue matching the card
  208. border-top: 3rpx solid #9AADD1;
  209. transform: rotate(45deg);
  210. margin-left: 10rpx;
  211. border-radius: 2rpx; // Soften the sharp corner slightly
  212. }
  213. }
  214. }
  215. }
  216. .custom-modal {
  217. position: fixed;
  218. top: 0;
  219. left: 0;
  220. right: 0;
  221. bottom: 0;
  222. z-index: 999;
  223. visibility: hidden;
  224. opacity: 0;
  225. transition: all 0.3s;
  226. display: flex;
  227. justify-content: center;
  228. align-items: center;
  229. &.is-show {
  230. visibility: visible;
  231. opacity: 1;
  232. .modal-content {
  233. transform: scale(1);
  234. opacity: 1;
  235. }
  236. }
  237. .modal-mask {
  238. position: absolute;
  239. width: 100%;
  240. height: 100%;
  241. background-color: rgba(0, 0, 0, 0.4);
  242. }
  243. .modal-content {
  244. position: relative;
  245. width: 600rpx;
  246. background-color: #FFFFFF;
  247. border-radius: 24rpx;
  248. transform: scale(0.9);
  249. opacity: 0;
  250. transition: all 0.3s;
  251. overflow: hidden;
  252. .modal-title {
  253. font-size: 36rpx;
  254. font-weight: 600;
  255. color: #1A1A1A;
  256. text-align: center;
  257. padding: 40rpx 0 20rpx;
  258. }
  259. .modal-body {
  260. font-size: 32rpx;
  261. color: #666666;
  262. text-align: center;
  263. padding: 0 40rpx 50rpx;
  264. line-height: 1.5;
  265. }
  266. .modal-footer {
  267. display: flex;
  268. justify-content: space-between;
  269. align-items: center;
  270. padding: 0 40rpx 40rpx;
  271. view {
  272. flex: 1;
  273. height: 80rpx;
  274. display: flex;
  275. justify-content: center;
  276. align-items: center;
  277. font-size: 30rpx;
  278. font-weight: 500;
  279. border-radius: 40rpx;
  280. transition: all 0.25s;
  281. &:active {
  282. transform: scale(0.96);
  283. }
  284. }
  285. .btn-cancel {
  286. background-color: #F0F4FC;
  287. color: #555555;
  288. margin-right: 24rpx;
  289. }
  290. .btn-confirm {
  291. background: linear-gradient(135deg, $brand-primary 0%, #0052D9 100%);
  292. color: #FFFFFF;
  293. box-shadow: 0 8rpx 16rpx rgba(31, 108, 255, 0.2);
  294. }
  295. }
  296. }
  297. }