experience.scss 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328
  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. flex: 1;
  155. margin-bottom: 0;
  156. line-height: 1.4;
  157. padding-right: 40rpx; // Prevent overlap with close icon
  158. }
  159. }
  160. .item-desc {
  161. display: flex;
  162. justify-content: space-between;
  163. align-items: center;
  164. margin-bottom: 0;
  165. margin-top: 12rpx;
  166. .desc-text {
  167. font-size: 26rpx;
  168. color: #555555;
  169. line-height: 1.5;
  170. flex: 1;
  171. }
  172. .item-time {
  173. font-size: 24rpx;
  174. color: #666666;
  175. font-weight: 500;
  176. white-space: nowrap;
  177. margin-left: 20rpx;
  178. }
  179. }
  180. .item-detail {
  181. font-size: 26rpx;
  182. color: #666666;
  183. line-height: 1.6;
  184. margin-top: 12rpx;
  185. display: -webkit-box;
  186. -webkit-box-orient: vertical;
  187. -webkit-line-clamp: 3;
  188. line-clamp: 3;
  189. overflow: hidden;
  190. }
  191. }
  192. .arrow {
  193. width: 14rpx; // Reduced size for delicacy
  194. height: 14rpx;
  195. border-right: 3rpx solid #9AADD1; // Changed to a sleek grayish-blue matching the card
  196. border-top: 3rpx solid #9AADD1;
  197. transform: rotate(45deg);
  198. margin-left: 10rpx;
  199. border-radius: 2rpx; // Soften the sharp corner slightly
  200. }
  201. }
  202. }
  203. }
  204. .custom-modal {
  205. position: fixed;
  206. top: 0;
  207. left: 0;
  208. right: 0;
  209. bottom: 0;
  210. z-index: 999;
  211. visibility: hidden;
  212. opacity: 0;
  213. transition: all 0.3s;
  214. display: flex;
  215. justify-content: center;
  216. align-items: center;
  217. &.is-show {
  218. visibility: visible;
  219. opacity: 1;
  220. .modal-content {
  221. transform: scale(1);
  222. opacity: 1;
  223. }
  224. }
  225. .modal-mask {
  226. position: absolute;
  227. width: 100%;
  228. height: 100%;
  229. background-color: rgba(0, 0, 0, 0.4);
  230. }
  231. .modal-content {
  232. position: relative;
  233. width: 600rpx;
  234. background-color: #FFFFFF;
  235. border-radius: 24rpx;
  236. transform: scale(0.9);
  237. opacity: 0;
  238. transition: all 0.3s;
  239. overflow: hidden;
  240. .modal-title {
  241. font-size: 36rpx;
  242. font-weight: 600;
  243. color: #1A1A1A;
  244. text-align: center;
  245. padding: 40rpx 0 20rpx;
  246. }
  247. .modal-body {
  248. font-size: 32rpx;
  249. color: #666666;
  250. text-align: center;
  251. padding: 0 40rpx 50rpx;
  252. line-height: 1.5;
  253. }
  254. .modal-footer {
  255. display: flex;
  256. justify-content: space-between;
  257. align-items: center;
  258. padding: 0 40rpx 40rpx;
  259. view {
  260. flex: 1;
  261. height: 80rpx;
  262. display: flex;
  263. justify-content: center;
  264. align-items: center;
  265. font-size: 30rpx;
  266. font-weight: 500;
  267. border-radius: 40rpx;
  268. transition: all 0.25s;
  269. &:active {
  270. transform: scale(0.96);
  271. }
  272. }
  273. .btn-cancel {
  274. background-color: #F0F4FC;
  275. color: #555555;
  276. margin-right: 24rpx;
  277. }
  278. .btn-confirm {
  279. background: linear-gradient(135deg, $brand-primary 0%, #0052D9 100%);
  280. color: #FFFFFF;
  281. box-shadow: 0 8rpx 16rpx rgba(31, 108, 255, 0.2);
  282. }
  283. }
  284. }
  285. }