app.less 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402
  1. @import './style/iconfont.less';
  2. @import './style/hn.less';
  3. /**app.wxss**/
  4. // .container {
  5. // height: 100%;
  6. // display: flex;
  7. // flex-direction: column;
  8. // align-items: center;
  9. // justify-content: space-between;
  10. // padding: 200rpx 0;
  11. // box-sizing: border-box;
  12. // }
  13. // BEGIN GLOBAL
  14. page {
  15. box-sizing: border-box;
  16. padding-bottom: calc(constant(safe-area-inset-bottom) + 96rpx);
  17. padding-bottom: calc(env(safe-area-inset-bottom) + 96rpx);
  18. --td-error-color: #da3276;
  19. .t-button--danger {
  20. background-color: var(--td-error-color);
  21. border: 1px solid var(--td-error-color);
  22. }
  23. }
  24. .page-wrap {
  25. display: flex;
  26. height: 100vh;
  27. flex-direction: column;
  28. .page-content {
  29. flex: 1;
  30. overflow: auto;
  31. }
  32. .page-footer {
  33. flex-shrink: 0;
  34. }
  35. }
  36. .page-loading {
  37. position: fixed;
  38. top: 0;
  39. left: 0;
  40. right: 0;
  41. width: 100vw;
  42. display: flex;
  43. justify-content: center;
  44. align-items: center;
  45. }
  46. // END GLOBAL
  47. // BEGIN TDESIGN
  48. .t-button--primary {
  49. background: #333 !important;
  50. color: #fff;
  51. }
  52. .btn-gray-plain {
  53. &.t-button--text {
  54. color: #999;
  55. }
  56. }
  57. // END TDESIGN
  58. // BEGIN BOOTSTRAP
  59. .text-black {
  60. color: #333 !important;
  61. }
  62. .w-100 {
  63. width: 100%;
  64. }
  65. .h-100 {
  66. height: 100%;
  67. }
  68. .round {
  69. border-radius: 50%;
  70. }
  71. .text-center {
  72. text-align: center;
  73. }
  74. .text-right {
  75. text-align: right;
  76. }
  77. .text-light {
  78. font-weight: lighter;
  79. }
  80. .text-bold {
  81. font-weight: bold;
  82. }
  83. .text-single {
  84. overflow: hidden;
  85. white-space: nowrap;
  86. text-overflow: ellipsis;
  87. }
  88. .gray-1 {
  89. color: #333 !important;
  90. }
  91. .gray-2 {
  92. color: #555 !important;
  93. }
  94. .gray-3 {
  95. color: #777 !important;
  96. }
  97. .gray-4 {
  98. color: #999 !important;
  99. }
  100. @fontsizes: 24rpx, 28rpx, 32rpx, 36rpx, 40rpx, 44rpx;
  101. @fontsizeNames: xs, sm, md, lg, xl, xxl;
  102. .FontSize(1,6);
  103. .FontSize(@index, @maxIndex) when (@maxIndex >= @index) {
  104. @fontname: extract(@fontsizeNames, @index);
  105. .text-@{fontname} {
  106. font-size: extract(@fontsizes, @index) !important;
  107. }
  108. .FontSize(@index + 1, @maxIndex);
  109. }
  110. .overflow-auto {
  111. overflow: auto;
  112. }
  113. .overflow-hidden {
  114. overflow: hidden;
  115. }
  116. button.clear {
  117. padding: 0;
  118. line-height: 1;
  119. background: transparent;
  120. &::after {
  121. border: 0;
  122. }
  123. }
  124. image.clear {
  125. image-rendering: -moz-crisp-edges; /* Firefox */
  126. image-rendering: -o-crisp-edges; /* Opera */
  127. image-rendering: -webkit-optimize-contrast; /* Safari */
  128. image-rendering: optimize-contrast; /* CSS3 Proposed */
  129. image-rendering: crisp-edges; /* CSS4 Proposed */
  130. // image-rendering: pixelated; /* CSS4 Proposed */
  131. -ms-interpolation-mode: nearest-neighbor; /* IE8+ */
  132. }
  133. .imagewrap {
  134. clear: both;
  135. image {
  136. float: left;
  137. }
  138. }
  139. .image {
  140. width: 100%;
  141. }
  142. .d-flex {
  143. display: flex;
  144. }
  145. .flex-1 {
  146. flex: 1;
  147. }
  148. .shrink-0 {
  149. flex-shrink: 0;
  150. }
  151. .flex-column {
  152. flex-direction: column;
  153. }
  154. .flex-row {
  155. flex-direction: row;
  156. }
  157. .flex-wrap {
  158. flex-wrap: wrap;
  159. }
  160. .align-items-center {
  161. align-items: center;
  162. }
  163. .align-items-stretch {
  164. align-items: stretch;
  165. }
  166. .align-items-start {
  167. align-items: flex-start;
  168. }
  169. .align-items-end {
  170. align-items: flex-end;
  171. }
  172. .align-self-stretch {
  173. align-self: stretch;
  174. }
  175. .justify-content-center {
  176. justify-content: center;
  177. }
  178. .justify-content-space-between {
  179. justify-content: space-between;
  180. }
  181. .justify-content-space-around {
  182. justify-content: space-around;
  183. }
  184. .justify-content-space-around {
  185. justify-content: space-around;
  186. }
  187. .justify-content-space-around {
  188. justify-content: space-around;
  189. }
  190. .justify-content-end {
  191. justify-content: flex-end;
  192. }
  193. @sizes: 0px, 5px, 8px, 12px, 16px, 25px, 30px, 50px;
  194. .MarginPadding(0, 8);
  195. .MarginPadding(@index, @maxIndex) when (@maxIndex > @index) {
  196. .m-@{index} {
  197. margin: extract(@sizes, @index + 1) !important;
  198. }
  199. .mx-@{index} {
  200. margin-left: extract(@sizes, @index + 1) !important;
  201. margin-right: extract(@sizes, @index + 1) !important;
  202. }
  203. .my-@{index} {
  204. margin-top: extract(@sizes, @index + 1) !important;
  205. margin-bottom: extract(@sizes, @index + 1) !important;
  206. }
  207. .ml-@{index} {
  208. margin-left: extract(@sizes, @index + 1) !important;
  209. }
  210. .mr-@{index} {
  211. margin-right: extract(@sizes, @index + 1) !important;
  212. }
  213. .mt-@{index} {
  214. margin-top: extract(@sizes, @index + 1) !important;
  215. }
  216. .mb-@{index} {
  217. margin-bottom: extract(@sizes, @index + 1) !important;
  218. }
  219. .p-@{index} {
  220. padding: extract(@sizes, @index + 1) !important;
  221. }
  222. .px-@{index} {
  223. padding-left: extract(@sizes, @index + 1) !important;
  224. padding-right: extract(@sizes, @index + 1) !important;
  225. }
  226. .py-@{index} {
  227. padding-top: extract(@sizes, @index + 1) !important;
  228. padding-bottom: extract(@sizes, @index + 1) !important;
  229. }
  230. .pl-@{index} {
  231. padding-left: extract(@sizes, @index + 1) !important;
  232. }
  233. .pr-@{index} {
  234. padding-right: extract(@sizes, @index + 1) !important;
  235. }
  236. .pt-@{index} {
  237. padding-top: extract(@sizes, @index + 1) !important;
  238. }
  239. .pb-@{index} {
  240. padding-bottom: extract(@sizes, @index + 1) !important;
  241. }
  242. .MarginPadding(@index + 1, @maxIndex);
  243. }
  244. .van-row {
  245. &::after {
  246. display: table;
  247. clear: both;
  248. content: '';
  249. }
  250. }
  251. .van-col {
  252. float: left;
  253. box-sizing: border-box;
  254. }
  255. .generate(24);
  256. .generate(@n, @i: 1) when (@i =< @n) {
  257. .van-col--@{i} {
  258. width: @i * (100% / 24);
  259. }
  260. .van-col--offset-@{i} {
  261. margin-left: @i * (100% / 24);
  262. }
  263. .generate(@n, (@i + 1));
  264. }
  265. .gendelay(24);
  266. .gendelay(@n, @i: 1) when (@i =< @n) {
  267. .delay-@{i} {
  268. animation-delay: @i * 0.1s !important;
  269. }
  270. .gendelay(@n, (@i + 1));
  271. }
  272. .defimage {
  273. width: 100%;
  274. height: 100%;
  275. }
  276. // END BOOTSTRAP
  277. .emptyblock {
  278. background-size: 128rpx 128rpx;
  279. background-position: center center;
  280. position: relative;
  281. display: block;
  282. &.wait {
  283. background-color: #efefef;
  284. background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgwNTc0NTI3MDY2IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjIxMDY3IiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxwYXRoIGQ9Ik04MTkuMiA0MTQuNzJjMC0xMC4yNC05LjIxNi0xOS40NTYtMTkuNDU2LTE5LjQ1Nkg1MzEuNDU2Yy0xMC4yNCAwLTE5LjQ1NiA5LjIxNi0xOS40NTYgMTkuNDU2djM3Ljg4OGMwIDEwLjI0IDkuMjE2IDE5LjQ1NiAxOS40NTYgMTkuNDU2aDE4Mi4yNzJMNTE2LjA5NiA3MTQuNzUyczAgMS4wMjQtMS4wMjQgMS4wMjRjLTIuMDQ4IDMuMDcyLTQuMDk2IDcuMTY4LTQuMDk2IDExLjI2NHYzNy44ODhjMCAxMC4yNCA5LjIxNiAxOS40NTYgMTkuNDU2IDE5LjQ1NmgyNjkuMzEyYzEwLjI0IDAgMTkuNDU2LTkuMjE2IDE5LjQ1Ni0xOS40NTZWNzI3LjA0YzAtMTAuMjQtOS4yMTYtMTkuNDU2LTE5LjQ1Ni0xOS40NTZINjIwLjU0NGwxOTQuNTYtMjM4LjU5MmMzLjA3Mi00LjA5NiA0LjA5Ni04LjE5MiAzLjA3Mi0xMy4zMTJ2LTQwLjk2ek01MTIgMjU5LjA3MmMwLTEwLjI0LTkuMjE2LTE5LjQ1Ni0xOS40NTYtMTkuNDU2SDIyNC4yNTZjLTEwLjI0IDAtMTkuNDU2IDkuMjE2LTE5LjQ1NiAxOS40NTZWMjk2Ljk2YzAgMTAuMjQgOS4yMTYgMTkuNDU2IDE5LjQ1NiAxOS40NTZoMTgyLjI3MkwyMDguODk2IDU1OS4xMDRzMCAxLjAyNC0xLjAyNCAxLjAyNGMtMi4wNDggMy4wNzItMy4wNzIgNi4xNDQtMy4wNzIgMTAuMjR2MzcuODg4YzAgMTAuMjQgOS4yMTYgMTkuNDU2IDE5LjQ1NiAxOS40NTZoMjY5LjMxMmMxMC4yNCAwIDE5LjQ1Ni05LjIxNiAxOS40NTYtMTkuNDU2di0zNy44ODhjMC0xMC4yNC05LjIxNi0xOS40NTYtMTkuNDU2LTE5LjQ1NkgzMTMuMzQ0bDE5NC41Ni0yMzguNTkyYzMuMDcyLTQuMDk2IDQuMDk2LTguMTkyIDMuMDcyLTEzLjMxMnYtMzkuOTM2eiIgZmlsbD0iI0ZGRkZGRiIgcC1pZD0iMjEwNjgiPjwvcGF0aD48L3N2Zz4=)
  285. no-repeat;
  286. animation: fadeInOut 1s infinite;
  287. }
  288. &.nocontent {
  289. background-color: #efefef;
  290. background-image: #efefef
  291. url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNjgwNTc2MjEwNDE3IiBjbGFzcz0iaWNvbiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjM3Mzg3IiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiPjxwYXRoIGQ9Ik05MTIuNjcyIDMwNi42MjRMNTEzLjY5NiA2NC45NmwtMTYwLjM1MiA5NmExNiAxNiAwIDAgMCAxMy44MjQgMjguNzA0bDIuNTkyLTEuMjggMTQzLjg0LTg2LjA4IDM2Ny4xMDQgMjIyLjMzNnYzNjIuMzA0bC0zNjcuMDQgMjIyLjMzNkwxNDQuOTYgNjg2LjkxMnYtNzguMzM2YTE2IDE2IDAgMCAwLTEzLjEyLTE1Ljc0NGwtMi44OC0wLjI1NmExNiAxNiAwIDAgMC0xNS43NDQgMTMuMTJsLTAuMjU2IDIuODh2OTYuNDQ4bDQwMC43MDQgMjQxLjY2NCAzOTkuMDQtMjQxLjY2NFYzMDYuNjI0eiIgZmlsbD0iIzVENkQ3RSIgb3BhY2l0eT0iLjMiIHAtaWQ9IjM3Mzg4Ij48L3BhdGg+PHBhdGggZD0iTTgyOS42IDg3MC4yMDhhMTYgMTYgMCAwIDEtMTkuNTIgNi4xNDRsLTIuNTYtMS4zNDQtMTM1LjA0LTg2Ljk0NCAwLjAzMi0yMTMuNjY0LTIyMy42OC0xNDUuOTJWMTU2LjY3MmwtNjUuOTg0LTQ0LjQxNmExNiAxNiAwIDAgMS01LjcyOC0xOS42OGwxLjQwOC0yLjU2YTE2IDE2IDAgMCAxIDE5LjY4LTUuNjk2bDIuNTI4IDEuMzc2IDgwLjA5NiA1My45MnYyNzEuNjE2bDIyMy42OCAxNDUuODU2djIxMy41NjhsMTIwLjMyIDc3LjQ0YTE2IDE2IDAgMCAxIDYuMTEyIDE5LjU4NGwtMS4zNDQgMi41NnoiIGZpbGw9IiNDNDlGNzQiIHAtaWQ9IjM3Mzg5Ij48L3BhdGg+PC9zdmc+);
  292. background-size: 88rpx 88rpx;
  293. }
  294. @keyframes fadeInOut {
  295. 0% {
  296. opacity: 0.5;
  297. }
  298. 60% {
  299. opacity: 1;
  300. }
  301. 100% {
  302. opacity: 0.5;
  303. }
  304. }
  305. }
  306. .reloadblock {
  307. width: 100vw;
  308. height: 80vh;
  309. display: flex;
  310. align-items: center;
  311. justify-content: center;
  312. }
  313. .randombtn {
  314. width: 174rpx;
  315. height: 46rpx;
  316. display: inline-block;
  317. transition: all 0.2s cubic-bezier(0.075, 0.82, 0.165, 1);
  318. image {
  319. width: 100%;
  320. height: 100%;
  321. float: left;
  322. }
  323. &-hover {
  324. opacity: 0.5;
  325. transform: scale3d(1, -1, 1);
  326. }
  327. }