index.wxss 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. .startup-page {
  2. height: 100vh;
  3. min-height: 100vh;
  4. position: relative;
  5. overflow: hidden;
  6. background:
  7. radial-gradient(ellipse 100% 72% at 50% 18%, rgba(124, 58, 237, 0.22), transparent 66%),
  8. linear-gradient(180deg, #050712 0%, #080a18 52%, #0b0d1d 100%);
  9. -webkit-user-select: none;
  10. user-select: none;
  11. }
  12. .startup-swiper {
  13. width: 100%;
  14. height: 100%;
  15. background:
  16. radial-gradient(ellipse 100% 70% at 50% 24%, rgba(124, 58, 237, 0.24), transparent 62%),
  17. linear-gradient(180deg, #050712 0%, #0b0d1d 100%);
  18. }
  19. .carousel-dots {
  20. position: absolute;
  21. bottom: 190rpx;
  22. bottom: calc(env(safe-area-inset-bottom) + 150rpx);
  23. left: 50%;
  24. display: flex;
  25. align-items: center;
  26. gap: 18rpx;
  27. width: auto;
  28. padding: 18rpx 28rpx;
  29. transform: translateX(-50%);
  30. border: 1rpx solid rgba(255, 255, 255, 0.12);
  31. border-radius: 999rpx;
  32. background: rgba(8, 10, 24, 0.54);
  33. box-shadow:
  34. 0 8rpx 48rpx rgba(0, 0, 0, 0.35),
  35. inset 0 1rpx 0 rgba(255, 255, 255, 0.08);
  36. z-index: 15;
  37. }
  38. .carousel-dot {
  39. width: 16rpx;
  40. height: 16rpx;
  41. margin: 0;
  42. border-radius: 999rpx;
  43. background: rgba(255, 255, 255, 0.35);
  44. opacity: 1;
  45. box-shadow: 0 0 0 1rpx rgba(255, 255, 255, 0.15);
  46. }
  47. .carousel-dot.is-active {
  48. width: 52rpx;
  49. background: linear-gradient(90deg, #a855f7 0%, #7c3aed 55%, #6d28d9 100%);
  50. box-shadow:
  51. 0 0 32rpx rgba(98, 28, 169, 0.55),
  52. 0 0 0 1rpx rgba(255, 255, 255, 0.25);
  53. }
  54. .startup-slide-image {
  55. width: 100%;
  56. height: 100%;
  57. display: block;
  58. }
  59. .startup-actions {
  60. position: absolute;
  61. left: 0;
  62. right: 0;
  63. bottom: 0;
  64. display: flex;
  65. justify-content: center;
  66. align-items: center;
  67. padding: 0 48rpx 56rpx;
  68. padding-bottom: calc(env(safe-area-inset-bottom) + 32rpx);
  69. box-sizing: border-box;
  70. z-index: 20;
  71. pointer-events: auto;
  72. }
  73. .enter-btn {
  74. position: relative;
  75. z-index: 1;
  76. box-sizing: border-box;
  77. width: 88%;
  78. min-height: 96rpx;
  79. max-width: 800rpx;
  80. padding: 20rpx 48rpx;
  81. border: 1rpx solid rgba(222, 205, 255, 0.72);
  82. border-radius: 999rpx;
  83. background:
  84. radial-gradient(circle at 18% 10%, rgba(255, 255, 255, 0.38), transparent 28%),
  85. linear-gradient(105deg, #7847ff 0%, #b13cff 34%, #6d4dff 66%, #268cff 100%);
  86. background-size: 100% 100%, 180% 100%;
  87. background-position: center, 0% 50%;
  88. color: #ffffff;
  89. font-size: 38rpx;
  90. font-weight: 750;
  91. letter-spacing: 0;
  92. line-height: 56rpx;
  93. text-shadow:
  94. 0 2rpx 16rpx rgba(255, 255, 255, 0.32),
  95. 0 4rpx 24rpx rgba(42, 13, 112, 0.7);
  96. overflow: hidden;
  97. box-shadow:
  98. 0 0 0 1rpx rgba(168, 121, 255, 0.22),
  99. 0 0 12rpx rgba(151, 71, 255, 0.24),
  100. 0 18rpx 42rpx rgba(66, 26, 171, 0.28),
  101. inset 0 2rpx 0 rgba(255, 255, 255, 0.54),
  102. inset 0 -12rpx 24rpx rgba(49, 17, 135, 0.2);
  103. animation: enter-btn-gradient 5s ease-in-out infinite;
  104. }
  105. .enter-btn::before {
  106. content: '';
  107. position: absolute;
  108. inset: 0;
  109. border-radius: inherit;
  110. background: linear-gradient(100deg, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0.02) 28%, rgba(255, 255, 255, 0.12) 100%);
  111. pointer-events: none;
  112. }
  113. .enter-btn::after {
  114. content: '';
  115. position: absolute;
  116. top: 2rpx;
  117. left: 9%;
  118. right: 9%;
  119. height: 42%;
  120. border-radius: 999rpx;
  121. background: linear-gradient(180deg, rgba(255, 255, 255, 0.34), transparent);
  122. pointer-events: none;
  123. }
  124. .enter-btn::after,
  125. .enter-btn::before {
  126. pointer-events: none;
  127. }
  128. .enter-btn[loading] {
  129. opacity: 0.88;
  130. animation-play-state: paused;
  131. }
  132. .enter-btn:active {
  133. transform: scale(0.98);
  134. filter: brightness(0.96) saturate(1.08);
  135. }
  136. @keyframes enter-btn-gradient {
  137. 0%,
  138. 100% {
  139. background-position: center, 0% 50%;
  140. }
  141. 50% {
  142. background-position: center, 100% 50%;
  143. }
  144. }
  145. @keyframes enter-btn-halo {
  146. 0%,
  147. 100% {
  148. background-position: 0% 50%;
  149. opacity: 0.28;
  150. transform: scale(0.998);
  151. }
  152. 50% {
  153. background-position: 100% 50%;
  154. opacity: 0.42;
  155. transform: scale(1.003);
  156. }
  157. }