react-tech-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (199) hide show
  1. package/LICENSE +82 -0
  2. package/README.en.md +36 -0
  3. package/README.md +412 -0
  4. package/dist/DataCard/index.cjs +1 -0
  5. package/dist/DataCard/index.js +5 -0
  6. package/dist/DataCard/style.css +1 -0
  7. package/dist/DataCard.d.ts +1 -0
  8. package/dist/DecorationLine/index.cjs +1 -0
  9. package/dist/DecorationLine/index.js +5 -0
  10. package/dist/DecorationLine/style.css +1 -0
  11. package/dist/DecorationLine.d.ts +1 -0
  12. package/dist/DigitalNumber/index.cjs +1 -0
  13. package/dist/DigitalNumber/index.js +5 -0
  14. package/dist/DigitalNumber/style.css +1 -0
  15. package/dist/DigitalNumber.d.ts +1 -0
  16. package/dist/Drawer/index.cjs +1 -0
  17. package/dist/Drawer/index.js +5 -0
  18. package/dist/Drawer/style.css +1 -0
  19. package/dist/Drawer.d.ts +1 -0
  20. package/dist/FloatingButton/index.cjs +1 -0
  21. package/dist/FloatingButton/index.js +5 -0
  22. package/dist/FloatingButton/style.css +1 -0
  23. package/dist/FloatingButton.d.ts +1 -0
  24. package/dist/FlowLight/index.cjs +1 -0
  25. package/dist/FlowLight/index.js +5 -0
  26. package/dist/FlowLight/style.css +1 -0
  27. package/dist/FlowLight.d.ts +1 -0
  28. package/dist/Icon/index.cjs +1 -0
  29. package/dist/Icon/index.js +6 -0
  30. package/dist/Icon/style.css +1 -0
  31. package/dist/Icon.d.ts +1 -0
  32. package/dist/Masonry/index.cjs +1 -0
  33. package/dist/Masonry/index.js +5 -0
  34. package/dist/Masonry/style.css +1 -0
  35. package/dist/Masonry.d.ts +1 -0
  36. package/dist/Modal/index.cjs +1 -0
  37. package/dist/Modal/index.js +5 -0
  38. package/dist/Modal/style.css +1 -0
  39. package/dist/Modal.d.ts +1 -0
  40. package/dist/Popconfirm/index.cjs +1 -0
  41. package/dist/Popconfirm/index.js +5 -0
  42. package/dist/Popconfirm/style.css +1 -0
  43. package/dist/Popconfirm.d.ts +1 -0
  44. package/dist/QRCode/index.cjs +1 -0
  45. package/dist/QRCode/index.js +5 -0
  46. package/dist/QRCode/style.css +1 -0
  47. package/dist/QRCode.d.ts +1 -0
  48. package/dist/ScreenAdapter/index.cjs +1 -0
  49. package/dist/ScreenAdapter/index.js +5 -0
  50. package/dist/ScreenAdapter/style.css +1 -0
  51. package/dist/ScreenAdapter.d.ts +1 -0
  52. package/dist/ScrollTable/index.cjs +1 -0
  53. package/dist/ScrollTable/index.js +5 -0
  54. package/dist/ScrollTable/style.css +1 -0
  55. package/dist/ScrollTable.d.ts +1 -0
  56. package/dist/Skeleton/index.cjs +1 -0
  57. package/dist/Skeleton/index.js +5 -0
  58. package/dist/Skeleton/style.css +1 -0
  59. package/dist/Skeleton.d.ts +1 -0
  60. package/dist/StatusIndicator/index.cjs +1 -0
  61. package/dist/StatusIndicator/index.js +5 -0
  62. package/dist/StatusIndicator/style.css +1 -0
  63. package/dist/StatusIndicator.d.ts +1 -0
  64. package/dist/TechBorder/index.cjs +1 -0
  65. package/dist/TechBorder/index.js +5 -0
  66. package/dist/TechBorder/style.css +1 -0
  67. package/dist/TechBorder.d.ts +1 -0
  68. package/dist/TechButton/index.cjs +1 -0
  69. package/dist/TechButton/index.js +5 -0
  70. package/dist/TechButton/style.css +1 -0
  71. package/dist/TechButton.d.ts +1 -0
  72. package/dist/TechTitle/index.cjs +1 -0
  73. package/dist/TechTitle/index.js +5 -0
  74. package/dist/TechTitle/style.css +1 -0
  75. package/dist/TechTitle.d.ts +1 -0
  76. package/dist/ThemeProvider/index.cjs +1 -0
  77. package/dist/ThemeProvider/index.js +8 -0
  78. package/dist/ThemeProvider/style.css +1 -0
  79. package/dist/ThemeProvider.d.ts +1 -0
  80. package/dist/Toast/index.cjs +1 -0
  81. package/dist/Toast/index.js +5 -0
  82. package/dist/Toast/style.css +1 -0
  83. package/dist/Toast.d.ts +1 -0
  84. package/dist/assets/jsx-runtime-B3A9vq2e.css +1 -0
  85. package/dist/chunks/DataCard-CY4njdg1.js +61 -0
  86. package/dist/chunks/DataCard-DjcUGxo9.cjs +1 -0
  87. package/dist/chunks/DecorationLine-Be4QQyry.cjs +1 -0
  88. package/dist/chunks/DecorationLine-CaZYIYl6.js +45 -0
  89. package/dist/chunks/DigitalNumber-BNklEz-G.js +60 -0
  90. package/dist/chunks/DigitalNumber-BWP5OjvN.cjs +1 -0
  91. package/dist/chunks/Drawer-CuoztnnD.cjs +1 -0
  92. package/dist/chunks/Drawer-u77zScbz.js +69 -0
  93. package/dist/chunks/FloatingButton-DcNfUVcB.js +109 -0
  94. package/dist/chunks/FloatingButton-nOl8ZHul.cjs +1 -0
  95. package/dist/chunks/FlowLight-Brrwyxcv.js +62 -0
  96. package/dist/chunks/FlowLight-DLBCaU07.cjs +1 -0
  97. package/dist/chunks/Icon-HxIzkEdE.js +147 -0
  98. package/dist/chunks/Icon-ISAK5vLx.cjs +1 -0
  99. package/dist/chunks/Masonry-CxVB3-w9.js +84 -0
  100. package/dist/chunks/Masonry-LPU0R1mE.cjs +1 -0
  101. package/dist/chunks/Modal-BfCALRKS.js +63 -0
  102. package/dist/chunks/Modal-DxqX4m57.cjs +1 -0
  103. package/dist/chunks/Popconfirm-C3npOXd6.js +112 -0
  104. package/dist/chunks/Popconfirm-CgPdSp84.cjs +1 -0
  105. package/dist/chunks/QRCode-B2Sdq1f6.cjs +8 -0
  106. package/dist/chunks/QRCode-BRcujxUT.js +1535 -0
  107. package/dist/chunks/ScreenAdapter-CugXUEoe.js +61 -0
  108. package/dist/chunks/ScreenAdapter-DpfmLRd5.cjs +1 -0
  109. package/dist/chunks/ScrollTable-B21j9zGn.cjs +1 -0
  110. package/dist/chunks/ScrollTable-NgSlPEKj.js +98 -0
  111. package/dist/chunks/Skeleton-CKvua4DB.cjs +1 -0
  112. package/dist/chunks/Skeleton-CQvCi-N8.js +76 -0
  113. package/dist/chunks/StatusIndicator-CliH19aT.js +40 -0
  114. package/dist/chunks/StatusIndicator-DhPwugAy.cjs +1 -0
  115. package/dist/chunks/TechBorder-Cu-JqkTf.js +45 -0
  116. package/dist/chunks/TechBorder-KTRXvzVv.cjs +1 -0
  117. package/dist/chunks/TechButton-CTrXjlsD.js +42 -0
  118. package/dist/chunks/TechButton-DYdIWO-l.cjs +1 -0
  119. package/dist/chunks/TechTitle-B3pkYIbI.cjs +1 -0
  120. package/dist/chunks/TechTitle-DfLwdrV5.js +41 -0
  121. package/dist/chunks/ThemeProvider-CGtZuVnU.cjs +1 -0
  122. package/dist/chunks/ThemeProvider-uEdKkbFn.js +206 -0
  123. package/dist/chunks/Toast-CedBaeZV.cjs +1 -0
  124. package/dist/chunks/Toast-DdlPSfu0.js +79 -0
  125. package/dist/chunks/index-CcykAxZN.js +6 -0
  126. package/dist/chunks/index-pCtiW2Id.cjs +1 -0
  127. package/dist/chunks/jsx-runtime-7asRZgsb.cjs +30 -0
  128. package/dist/chunks/jsx-runtime-C6iVud2f.js +630 -0
  129. package/dist/components/DataCard/DataCard.d.ts +18 -0
  130. package/dist/components/DataCard/entry.d.ts +3 -0
  131. package/dist/components/DataCard/index.d.ts +2 -0
  132. package/dist/components/DecorationLine/DecorationLine.d.ts +14 -0
  133. package/dist/components/DecorationLine/entry.d.ts +3 -0
  134. package/dist/components/DecorationLine/index.d.ts +2 -0
  135. package/dist/components/DigitalNumber/DigitalNumber.d.ts +17 -0
  136. package/dist/components/DigitalNumber/entry.d.ts +3 -0
  137. package/dist/components/DigitalNumber/index.d.ts +2 -0
  138. package/dist/components/Drawer/Drawer.d.ts +18 -0
  139. package/dist/components/Drawer/entry.d.ts +3 -0
  140. package/dist/components/Drawer/index.d.ts +2 -0
  141. package/dist/components/FloatingButton/FloatingButton.d.ts +24 -0
  142. package/dist/components/FloatingButton/entry.d.ts +3 -0
  143. package/dist/components/FloatingButton/index.d.ts +2 -0
  144. package/dist/components/FlowLight/FlowLight.d.ts +14 -0
  145. package/dist/components/FlowLight/entry.d.ts +3 -0
  146. package/dist/components/FlowLight/index.d.ts +2 -0
  147. package/dist/components/Icon/Icon.d.ts +16 -0
  148. package/dist/components/Icon/entry.d.ts +4 -0
  149. package/dist/components/Icon/index.d.ts +3 -0
  150. package/dist/components/Masonry/Masonry.d.ts +23 -0
  151. package/dist/components/Masonry/entry.d.ts +3 -0
  152. package/dist/components/Masonry/index.d.ts +2 -0
  153. package/dist/components/Modal/Modal.d.ts +18 -0
  154. package/dist/components/Modal/entry.d.ts +3 -0
  155. package/dist/components/Modal/index.d.ts +2 -0
  156. package/dist/components/Popconfirm/Popconfirm.d.ts +19 -0
  157. package/dist/components/Popconfirm/entry.d.ts +3 -0
  158. package/dist/components/Popconfirm/index.d.ts +2 -0
  159. package/dist/components/QRCode/QRCode.d.ts +19 -0
  160. package/dist/components/QRCode/entry.d.ts +3 -0
  161. package/dist/components/QRCode/index.d.ts +2 -0
  162. package/dist/components/ScreenAdapter/ScreenAdapter.d.ts +13 -0
  163. package/dist/components/ScreenAdapter/entry.d.ts +3 -0
  164. package/dist/components/ScreenAdapter/index.d.ts +2 -0
  165. package/dist/components/ScrollTable/ScrollTable.d.ts +23 -0
  166. package/dist/components/ScrollTable/entry.d.ts +3 -0
  167. package/dist/components/ScrollTable/index.d.ts +2 -0
  168. package/dist/components/Skeleton/Skeleton.d.ts +16 -0
  169. package/dist/components/Skeleton/entry.d.ts +3 -0
  170. package/dist/components/Skeleton/index.d.ts +2 -0
  171. package/dist/components/StatusIndicator/StatusIndicator.d.ts +14 -0
  172. package/dist/components/StatusIndicator/entry.d.ts +3 -0
  173. package/dist/components/StatusIndicator/index.d.ts +2 -0
  174. package/dist/components/TechBorder/TechBorder.d.ts +15 -0
  175. package/dist/components/TechBorder/entry.d.ts +3 -0
  176. package/dist/components/TechBorder/index.d.ts +2 -0
  177. package/dist/components/TechButton/TechButton.d.ts +15 -0
  178. package/dist/components/TechButton/entry.d.ts +3 -0
  179. package/dist/components/TechButton/index.d.ts +2 -0
  180. package/dist/components/TechTitle/TechTitle.d.ts +14 -0
  181. package/dist/components/TechTitle/entry.d.ts +3 -0
  182. package/dist/components/TechTitle/index.d.ts +2 -0
  183. package/dist/components/ThemeProvider/ThemeProvider.d.ts +42 -0
  184. package/dist/components/ThemeProvider/entry.d.ts +3 -0
  185. package/dist/components/ThemeProvider/index.d.ts +2 -0
  186. package/dist/components/Toast/Toast.d.ts +23 -0
  187. package/dist/components/Toast/entry.d.ts +3 -0
  188. package/dist/components/Toast/index.d.ts +2 -0
  189. package/dist/index/index.cjs +1 -0
  190. package/dist/index/index.js +49 -0
  191. package/dist/index/style.css +41 -0
  192. package/dist/index.d.ts +31 -0
  193. package/dist/jsx-runtime/style.css +1 -0
  194. package/dist/theme/index.cjs +1 -0
  195. package/dist/theme/index.d.ts +46 -0
  196. package/dist/theme/index.js +48 -0
  197. package/dist/theme.d.ts +1 -0
  198. package/dist/utils/index.d.ts +8 -0
  199. package/package.json +165 -0
@@ -0,0 +1,41 @@
1
+ @import"https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700;800;900&family=Rajdhani:wght@300;400;500;600;700&display=swap";:root{--tech-primary: #00d4ff;--tech-primary-dark: #0098d4;--tech-primary-light: #33ddff;--tech-secondary: #0affb0;--tech-secondary-dark: #08c98a;--tech-accent: #ff6b35;--tech-warning: #ffd000;--tech-danger: #ff4757;--tech-success: #0affb0;--tech-bg-dark: #0a0e27;--tech-bg-medium: #0d1135;--tech-bg-light: #131842;--tech-bg-card: rgba(13, 17, 53, .85);--tech-bg-card-hover: rgba(19, 24, 66, .9);--tech-border: rgba(0, 212, 255, .3);--tech-border-active: rgba(0, 212, 255, .7);--tech-text-primary: #e8eaf6;--tech-text-secondary: rgba(232, 234, 246, .65);--tech-text-muted: rgba(232, 234, 246, .35);--tech-glow-primary: rgba(0, 212, 255, .15);--tech-glow-secondary: rgba(10, 255, 176, .15);--tech-font-digital: "Orbitron", "Rajdhani", "Courier New", monospace;--tech-font-title: "Rajdhani", "Microsoft YaHei", sans-serif;--tech-font-body: "Microsoft YaHei", "PingFang SC", sans-serif;--tech-duration-fast: .2s;--tech-duration-normal: .3s;--tech-duration-slow: .6s;--tech-duration-glow: 2s;--tech-easing: cubic-bezier(.4, 0, .2, 1)}@keyframes techGlow{0%,to{opacity:1}50%{opacity:.6}}@keyframes techPulse{0%,to{box-shadow:0 0 5px #00d4ff4d}50%{box-shadow:0 0 20px #00d4ff99}}@keyframes techScan{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@keyframes techBorderFlow{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes techFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes techSlideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes techNumberFlip{0%{transform:rotateX(90deg);opacity:0}to{transform:rotateX(0);opacity:1}}@keyframes techDotBlink{0%,to{opacity:1}50%{opacity:.3}}@keyframes techLineGrow{0%{width:0}to{width:100%}}@keyframes techRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--tech-bg-dark);color:var(--tech-text-primary);font-family:var(--tech-font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:var(--tech-bg-dark)}::-webkit-scrollbar-thumb{background:var(--tech-primary);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--tech-primary-light)}
2
+
3
+ .tech-data-card{position:relative;padding:20px 24px;border-radius:4px;overflow:hidden;box-sizing:border-box}.tech-data-card--animate{animation:techFadeIn .5s ease-out}.tech-data-card--default{background:var(--tech-bg-card);border:1px solid var(--tech-border)}.tech-data-card--gradient{background:linear-gradient(135deg,var(--tech-bg-card) 0%,rgba(0,212,255,.08) 100%);border:1px solid var(--tech-border)}.tech-data-card--glass{background:#0d113599;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--tech-border)}.tech-data-card--outline{background:transparent;border:1px solid var(--tech-card-color, var(--tech-primary));box-shadow:0 0 15px #00d4ff1a}.tech-data-card__corner{position:absolute;width:12px;height:12px;z-index:1}.tech-data-card__corner--tl{top:0;left:0;border-top:2px solid var(--tech-card-color, var(--tech-primary));border-left:2px solid var(--tech-card-color, var(--tech-primary))}.tech-data-card__corner--br{bottom:0;right:0;border-bottom:2px solid var(--tech-card-color, var(--tech-primary));border-right:2px solid var(--tech-card-color, var(--tech-primary))}.tech-data-card__header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.tech-data-card__icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:4px;background:var(--tech-glow-primary);color:var(--tech-card-color, var(--tech-primary));font-size:16px}.tech-data-card__title{font-size:14px;color:var(--tech-text-secondary);font-weight:500;letter-spacing:1px;text-transform:uppercase}.tech-data-card__body{position:relative}.tech-data-card__value-row{display:flex;align-items:baseline;gap:6px}.tech-data-card__value{font-family:var(--tech-font-digital);font-size:32px;font-weight:700;color:var(--tech-card-color, var(--tech-primary));line-height:1.2;text-shadow:0 0 10px var(--tech-glow-primary)}.tech-data-card__unit{font-size:14px;color:var(--tech-text-secondary);margin-left:4px}.tech-data-card__trend{display:flex;align-items:center;gap:4px;margin-top:8px;font-size:13px}.tech-data-card__trend--up{color:var(--tech-success)}.tech-data-card__trend--down{color:var(--tech-danger)}.tech-data-card__trend--flat{color:var(--tech-text-muted)}.tech-data-card__trend-icon{font-size:10px}.tech-data-card__trend-value{font-family:var(--tech-font-digital);font-weight:500}
4
+
5
+ .tech-decoration-line{position:relative}.tech-decoration-line--horizontal{width:var(--tech-line-length);height:var(--tech-line-thickness)}.tech-decoration-line--vertical{width:var(--tech-line-thickness);height:var(--tech-line-length)}.tech-decoration-line--solid{background:var(--tech-line-color)}.tech-decoration-line--dashed{background:repeating-linear-gradient(90deg,var(--tech-line-color) 0,var(--tech-line-color) 8px,transparent 8px,transparent 16px)}.tech-decoration-line--vertical.tech-decoration-line--dashed{background:repeating-linear-gradient(180deg,var(--tech-line-color) 0,var(--tech-line-color) 8px,transparent 8px,transparent 16px)}.tech-decoration-line--gradient{background:linear-gradient(90deg,transparent,var(--tech-line-color),transparent)}.tech-decoration-line--vertical.tech-decoration-line--gradient{background:linear-gradient(180deg,transparent,var(--tech-line-color),transparent)}.tech-decoration-line--animate.tech-decoration-line--gradient{background-size:200% 100%;animation:techBorderFlow 3s linear infinite}.tech-decoration-line--double{background:var(--tech-line-color);display:flex;flex-direction:column;justify-content:center}.tech-decoration-line__inner{height:1px;background:var(--tech-bg-dark);margin:1px 0}.tech-decoration-line--dot-wave{background:transparent;height:4px;overflow:hidden}.tech-decoration-line__dots{display:flex;gap:6px;align-items:center;height:100%}.tech-decoration-line__dot{width:3px;height:3px;border-radius:50%;background:var(--tech-line-color);flex-shrink:0}.tech-decoration-line--animate .tech-decoration-line__dot{animation:techDotBlink 1.5s ease-in-out infinite}
6
+
7
+ .tech-digital-number{display:inline-flex;align-items:baseline;gap:4px;font-family:var(--tech-font-digital)}.tech-digital-number__value{font-size:var(--tech-digital-size);font-weight:700;color:var(--tech-digital-color);text-shadow:0 0 10px currentColor,0 0 20px rgba(0,212,255,.3);letter-spacing:2px;transition:transform .3s ease}.tech-digital-number--flipping .tech-digital-number__value{animation:techNumberFlip .3s ease-out}.tech-digital-number__prefix,.tech-digital-number__suffix{font-size:calc(var(--tech-digital-size) * .4);color:var(--tech-text-secondary);font-weight:400}.tech-digital-number__prefix{margin-right:2px}.tech-digital-number__suffix{margin-left:4px}
8
+
9
+ .tech-drawer-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000}.tech-drawer-mask{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;animation:techDrawerMaskIn .3s ease}@keyframes techDrawerMaskIn{0%{opacity:0}to{opacity:1}}.tech-drawer{position:absolute;display:flex;flex-direction:column;background:var(--tech-bg-medium);border:1px solid var(--tech-border);overflow:hidden}.tech-drawer--right{top:0;right:0;bottom:0;border-right:none;border-top:none;border-bottom:none;animation:techDrawerSlideRight .3s cubic-bezier(.4,0,.2,1)}.tech-drawer--left{top:0;left:0;bottom:0;border-left:none;border-top:none;border-bottom:none;animation:techDrawerSlideLeft .3s cubic-bezier(.4,0,.2,1)}.tech-drawer--top{top:0;left:0;right:0;border-top:none;border-left:none;border-right:none;animation:techDrawerSlideTop .3s cubic-bezier(.4,0,.2,1)}.tech-drawer--bottom{bottom:0;left:0;right:0;border-bottom:none;border-left:none;border-right:none;animation:techDrawerSlideBottom .3s cubic-bezier(.4,0,.2,1)}@keyframes techDrawerSlideRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes techDrawerSlideLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes techDrawerSlideTop{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes techDrawerSlideBottom{0%{transform:translateY(100%)}to{transform:translateY(0)}}.tech-drawer--neon{border-color:var(--tech-primary);box-shadow:0 0 30px var(--tech-glow-primary),inset 0 0 30px var(--tech-glow-primary)}.tech-drawer--scan .tech-drawer__scan-line{display:block}.tech-drawer__scan-line{display:none;position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--tech-primary),transparent);animation:techDrawerScan 3s linear infinite;opacity:.5;z-index:2}@keyframes techDrawerScan{0%{top:0}to{top:100%}}.tech-drawer__corner{position:absolute;width:12px;height:12px;z-index:1}.tech-drawer__corner--tl{top:0;left:0;border-top:2px solid var(--tech-primary);border-left:2px solid var(--tech-primary)}.tech-drawer__corner--tr{top:0;right:0;border-top:2px solid var(--tech-primary);border-right:2px solid var(--tech-primary)}.tech-drawer__corner--bl{bottom:0;left:0;border-bottom:2px solid var(--tech-primary);border-left:2px solid var(--tech-primary)}.tech-drawer__corner--br{bottom:0;right:0;border-bottom:2px solid var(--tech-primary);border-right:2px solid var(--tech-primary)}.tech-drawer__edge-line{position:absolute;top:0;bottom:0;width:2px;background:linear-gradient(180deg,transparent 0%,var(--tech-primary) 20%,var(--tech-primary) 80%,transparent 100%);opacity:.4;z-index:1}.tech-drawer--right .tech-drawer__edge-line{left:0}.tech-drawer--left .tech-drawer__edge-line{right:0}.tech-drawer--neon .tech-drawer__edge-line{opacity:.8;box-shadow:0 0 8px var(--tech-glow-primary)}.tech-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--tech-border);flex-shrink:0}.tech-drawer--neon .tech-drawer__header{border-bottom-color:var(--tech-primary);box-shadow:0 2px 8px var(--tech-glow-primary)}.tech-drawer__title{font-size:16px;font-weight:600;color:var(--tech-primary);letter-spacing:2px;text-transform:uppercase}.tech-drawer__close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--tech-border);border-radius:2px;background:transparent;color:var(--tech-text-secondary);cursor:pointer;transition:all .2s}.tech-drawer__close:hover{border-color:var(--tech-primary);color:var(--tech-primary);box-shadow:0 0 8px var(--tech-glow-primary)}.tech-drawer__body{flex:1;padding:20px;overflow-y:auto;color:var(--text-secondary, var(--tech-text-secondary))}.tech-drawer__footer{padding:12px 20px;border-top:1px solid var(--tech-border);display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}.tech-drawer--neon .tech-drawer__footer{border-top-color:var(--tech-primary);box-shadow:0 -2px 8px var(--tech-glow-primary)}
10
+
11
+ .tech-fab{width:var(--tech-fab-size, 48px);height:var(--tech-fab-size, 48px);border-radius:50%;background:var(--tech-fab-bg-card, var(--tech-bg-card));border:1px solid var(--tech-fab-border, var(--tech-border));display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;overflow:visible;transition:background-color .3s,border-color .3s,box-shadow .3s,transform .2s;user-select:none;-webkit-user-select:none;touch-action:none}.tech-fab--draggable{cursor:grab}.tech-fab--dragging{cursor:grabbing;transform:scale(1.1);transition:background-color .3s,border-color .3s,box-shadow .3s}.tech-fab--hovered{border-color:var(--tech-fab-border-active, var(--tech-border-active));box-shadow:0 0 16px var(--tech-fab-glow, var(--tech-glow-primary))}.tech-fab__content{display:flex;align-items:center;justify-content:center;gap:6px;z-index:2;color:var(--tech-fab-text-primary, var(--tech-text-primary));pointer-events:none}.tech-fab__icon{display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1}.tech-fab__label{font-size:12px;white-space:nowrap;font-weight:500}.tech-fab__pulse{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:1px solid var(--tech-fab-primary, var(--tech-primary));opacity:0;animation:techFabPulse 2.5s ease-out infinite;pointer-events:none}@keyframes techFabPulse{0%{top:-4px;right:-4px;bottom:-4px;left:-4px;opacity:.6}to{top:-20px;right:-20px;bottom:-20px;left:-20px;opacity:0}}.tech-fab__corner{position:absolute;width:8px;height:8px;z-index:1;opacity:.5;transition:opacity .3s,border-color .3s}.tech-fab--hovered .tech-fab__corner{opacity:1}.tech-fab__corner--tl{top:4px;left:4px;border-top:2px solid var(--tech-fab-primary, var(--tech-primary));border-left:2px solid var(--tech-fab-primary, var(--tech-primary))}.tech-fab__corner--tr{top:4px;right:4px;border-top:2px solid var(--tech-fab-primary, var(--tech-primary));border-right:2px solid var(--tech-fab-primary, var(--tech-primary))}.tech-fab__corner--bl{bottom:4px;left:4px;border-bottom:2px solid var(--tech-fab-primary, var(--tech-primary));border-left:2px solid var(--tech-fab-primary, var(--tech-primary))}.tech-fab__corner--br{bottom:4px;right:4px;border-bottom:2px solid var(--tech-fab-primary, var(--tech-primary));border-right:2px solid var(--tech-fab-primary, var(--tech-primary))}.tech-fab--neon{border-color:var(--tech-fab-primary, var(--tech-primary));box-shadow:0 0 10px var(--tech-fab-glow, var(--tech-glow-primary))}.tech-fab--neon.tech-fab--hovered{box-shadow:0 0 20px var(--tech-fab-glow, var(--tech-glow-primary)),0 0 40px var(--tech-fab-glow, var(--tech-glow-primary))}.tech-fab--neon .tech-fab__content{color:var(--tech-fab-primary, var(--tech-primary))}.tech-fab--glow{border-color:var(--tech-fab-primary, var(--tech-primary));animation:techFabGlow 2s ease-in-out infinite alternate}.tech-fab--glow .tech-fab__content{color:var(--tech-fab-primary, var(--tech-primary))}@keyframes techFabGlow{0%{box-shadow:0 0 8px var(--tech-fab-glow, var(--tech-glow-primary)),0 0 16px var(--tech-fab-glow, var(--tech-glow-primary))}to{box-shadow:0 0 16px var(--tech-fab-glow, var(--tech-glow-primary)),0 0 32px var(--tech-fab-glow, var(--tech-glow-primary))}}.tech-fab--glass{background:#ffffff0d;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-color:#ffffff1a}.tech-fab--glass.tech-fab--hovered{background:#ffffff1a;border-color:var(--tech-fab-primary, var(--tech-primary));box-shadow:0 0 20px var(--tech-fab-glow, var(--tech-glow-primary))}.tech-fab--glass .tech-fab__corner{opacity:.3}.tech-fab--glass.tech-fab--hovered .tech-fab__corner{opacity:.8}
12
+
13
+ .tech-flow-light{position:relative;width:100%;height:100%;overflow:hidden;background:var(--tech-bg-dark)}.tech-flow-light__layer{position:absolute;top:0;right:0;bottom:0;left:0;opacity:var(--tech-flow-opacity, .6);pointer-events:none}.tech-flow-light__content{position:relative;z-index:2;width:100%;height:100%}.tech-flow-light--aurora .tech-flow-light__aurora{position:absolute;width:200%;height:60%;filter:blur(80px);opacity:var(--tech-flow-opacity, .6);pointer-events:none}.tech-flow-light__aurora--1{top:-20%;left:-50%;background:linear-gradient(90deg,transparent 0%,var(--tech-flow-color, var(--tech-primary)) 15%,transparent 30%,var(--tech-flow-color, var(--tech-secondary)) 50%,transparent 70%,var(--tech-flow-color, var(--tech-primary)) 85%,transparent 100%);animation:techAuroraMove1 calc(var(--tech-flow-speed, 6s) * 3) ease-in-out infinite}.tech-flow-light__aurora--2{top:-10%;left:-30%;background:linear-gradient(90deg,transparent 0%,var(--tech-flow-color, var(--tech-secondary)) 20%,transparent 40%,var(--tech-flow-color, var(--tech-primary)) 60%,transparent 80%,var(--tech-flow-color, var(--tech-secondary)) 95%,transparent 100%);animation:techAuroraMove2 calc(var(--tech-flow-speed, 6s) * 4) ease-in-out infinite;opacity:calc(var(--tech-flow-opacity, .6) * .7)}.tech-flow-light__aurora--3{top:-5%;left:-60%;background:linear-gradient(90deg,transparent 0%,var(--tech-flow-color, var(--tech-primary-dark, #0098d4)) 25%,transparent 50%,var(--tech-flow-color, var(--tech-primary)) 75%,transparent 100%);animation:techAuroraMove3 calc(var(--tech-flow-speed, 6s) * 5) ease-in-out infinite;opacity:calc(var(--tech-flow-opacity, .6) * .5)}@keyframes techAuroraMove1{0%,to{transform:translate(0) rotate(-3deg) scaleY(1)}33%{transform:translate(15%) rotate(2deg) scaleY(1.2)}66%{transform:translate(-10%) rotate(-1deg) scaleY(.9)}}@keyframes techAuroraMove2{0%,to{transform:translate(0) rotate(2deg) scaleY(1)}50%{transform:translate(-20%) rotate(-3deg) scaleY(1.3)}}@keyframes techAuroraMove3{0%,to{transform:translate(0) rotate(-1deg)}50%{transform:translate(25%) rotate(3deg)}}.tech-flow-light--grid .tech-flow-light__grid-canvas{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--tech-flow-color, var(--tech-border)) 1px,transparent 1px),linear-gradient(90deg,var(--tech-flow-color, var(--tech-border)) 1px,transparent 1px);background-size:40px 40px;opacity:var(--tech-flow-opacity, .6);animation:techGridFlow calc(var(--tech-flow-speed, 6s) * 2) linear infinite;pointer-events:none}.tech-flow-light--grid:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 50%,transparent 0%,var(--tech-bg-dark) 70%);pointer-events:none;z-index:1}@keyframes techGridFlow{0%{background-position:0 0}to{background-position:40px 40px}}.tech-flow-light--particle .tech-flow-light__particles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.tech-flow-light__particle{position:absolute;left:var(--tech-flow-px);top:var(--tech-flow-py);width:var(--tech-flow-pr, 2px);height:var(--tech-flow-pr, 2px);border-radius:50%;background:var(--tech-flow-color, var(--tech-primary));box-shadow:0 0 6px var(--tech-flow-color, var(--tech-primary));opacity:0;animation:techParticleFloat var(--tech-flow-pd, 3s) var(--tech-flow-ps, 2s) ease-in-out infinite}@keyframes techParticleFloat{0%{opacity:0;transform:translateY(0) scale(.5)}20%{opacity:var(--tech-flow-opacity, .6)}80%{opacity:var(--tech-flow-opacity, .6)}to{opacity:0;transform:translateY(-80px) scale(1.2)}}.tech-flow-light--wave .tech-flow-light__waves{position:absolute;bottom:0;left:0;right:0;height:50%;pointer-events:none}.tech-flow-light__wave{position:absolute;bottom:0;left:-50%;width:200%;height:100%;opacity:var(--tech-flow-opacity, .6)}.tech-flow-light__wave--1{background:linear-gradient(0deg,var(--tech-flow-color, var(--tech-primary)) 0%,transparent 60%);opacity:calc(var(--tech-flow-opacity, .6) * .15);animation:techWaveMove calc(var(--tech-flow-speed, 6s) * 1.5) linear infinite}.tech-flow-light__wave--2{background:linear-gradient(0deg,var(--tech-flow-color, var(--tech-secondary)) 0%,transparent 50%);opacity:calc(var(--tech-flow-opacity, .6) * .12);animation:techWaveMove calc(var(--tech-flow-speed, 6s) * 2) linear infinite reverse}.tech-flow-light__wave--3{background:linear-gradient(0deg,var(--tech-flow-color, var(--tech-primary)) 0%,transparent 40%);opacity:calc(var(--tech-flow-opacity, .6) * .08);animation:techWaveMove calc(var(--tech-flow-speed, 6s) * 2.5) linear infinite}@keyframes techWaveMove{0%{transform:translate(0) scaleY(1)}25%{transform:translate(-5%) scaleY(1.1)}50%{transform:translate(0) scaleY(.95)}75%{transform:translate(5%) scaleY(1.05)}to{transform:translate(0) scaleY(1)}}.tech-flow-light--low .tech-flow-light__aurora,.tech-flow-light--low .tech-flow-light__grid-canvas,.tech-flow-light--low .tech-flow-light__particles,.tech-flow-light--low .tech-flow-light__waves{filter:blur(2px) brightness(.5)}.tech-flow-light--high .tech-flow-light__aurora,.tech-flow-light--high .tech-flow-light__particles,.tech-flow-light--high .tech-flow-light__waves{filter:brightness(1.3)}.tech-flow-light--high .tech-flow-light__grid-canvas{filter:brightness(1.5)}
14
+
15
+ .tech-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--tech-icon-text, var(--tech-text-primary));line-height:1;flex-shrink:0;transition:color .3s,filter .3s}.tech-icon__svg{width:100%;height:100%;display:block}.tech-icon--clickable{cursor:pointer}.tech-icon--clickable:hover{color:var(--tech-icon-primary, var(--tech-primary));filter:drop-shadow(0 0 4px var(--tech-icon-glow, var(--tech-glow-primary)))}.tech-icon--neon{color:var(--tech-icon-primary, var(--tech-primary));filter:drop-shadow(0 0 6px var(--tech-icon-glow, var(--tech-glow-primary)))}.tech-icon--glow{color:var(--tech-icon-primary, var(--tech-primary));animation:techIconGlow 2s ease-in-out infinite alternate}@keyframes techIconGlow{0%{filter:drop-shadow(0 0 6px var(--tech-icon-glow, var(--tech-glow-primary))) drop-shadow(0 0 12px var(--tech-icon-glow, var(--tech-glow-primary)))}to{filter:drop-shadow(0 0 12px var(--tech-icon-glow, var(--tech-glow-primary))) drop-shadow(0 0 24px var(--tech-icon-glow, var(--tech-glow-primary)))}}.tech-icon--spin{animation:techIconSpin 1s linear infinite}@keyframes techIconSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
16
+
17
+ .tech-masonry{position:relative;display:flex;gap:var(--tech-masonry-gap, 12px);overflow:hidden}.tech-masonry__column{flex:1;display:flex;flex-direction:column;gap:var(--tech-masonry-gap, 12px);min-width:0}.tech-masonry--scan .tech-masonry__scan-line{display:block}.tech-masonry__scan-line{display:none;position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--tech-masonry-primary, var(--tech-primary)),transparent);animation:techMasonryScan 4s linear infinite;opacity:.5;z-index:2;pointer-events:none}@keyframes techMasonryScan{0%{top:0}to{top:100%}}.tech-masonry__item{position:relative;background:var(--tech-masonry-bg-card, var(--tech-bg-card));border:1px solid var(--tech-masonry-border, var(--tech-border));border-radius:4px;overflow:hidden;min-height:var(--tech-masonry-item-height, 200px);opacity:0;transform:translateY(20px) scale(.97);transition:opacity .5s ease,transform .5s ease,background-color .4s,border-color .4s,box-shadow .4s,color .4s;transition-delay:var(--tech-masonry-item-delay, 0ms)}.tech-masonry__item--visible{opacity:1;transform:translateY(0) scale(1)}.tech-masonry__item:hover{border-color:var(--tech-masonry-border-active, var(--tech-border-active));box-shadow:0 0 12px var(--tech-masonry-glow, var(--tech-glow-primary));background:var(--tech-masonry-bg-card-hover, var(--tech-bg-card-hover))}.tech-masonry__item-corner{position:absolute;width:10px;height:10px;z-index:1;opacity:.6;transition:opacity .3s,border-color .4s}.tech-masonry__item:hover .tech-masonry__item-corner{opacity:1}.tech-masonry__item-corner--tl{top:0;left:0;border-top:2px solid var(--tech-masonry-primary, var(--tech-primary));border-left:2px solid var(--tech-masonry-primary, var(--tech-primary))}.tech-masonry__item-corner--tr{top:0;right:0;border-top:2px solid var(--tech-masonry-primary, var(--tech-primary));border-right:2px solid var(--tech-masonry-primary, var(--tech-primary))}.tech-masonry__item-corner--bl{bottom:0;left:0;border-bottom:2px solid var(--tech-masonry-primary, var(--tech-primary));border-left:2px solid var(--tech-masonry-primary, var(--tech-primary))}.tech-masonry__item-corner--br{bottom:0;right:0;border-bottom:2px solid var(--tech-masonry-primary, var(--tech-primary));border-right:2px solid var(--tech-masonry-primary, var(--tech-primary))}.tech-masonry__item-content{padding:12px;color:var(--tech-masonry-text-primary, var(--tech-text-primary));transition:color .4s}.tech-masonry--neon .tech-masonry__item{border-color:var(--tech-masonry-primary, var(--tech-primary));box-shadow:0 0 8px var(--tech-masonry-glow, var(--tech-glow-primary))}.tech-masonry--neon .tech-masonry__item:hover{box-shadow:0 0 20px var(--tech-masonry-glow, var(--tech-glow-primary)),0 0 40px var(--tech-masonry-glow, var(--tech-glow-primary))}.tech-masonry--glass .tech-masonry__item{background:var(--tech-masonry-bg-card, var(--tech-bg-card));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:var(--tech-masonry-border, var(--tech-border))}.tech-masonry--glass .tech-masonry__item:hover{background:var(--tech-masonry-bg-card-hover, var(--tech-bg-card-hover));border-color:var(--tech-masonry-primary, var(--tech-primary));box-shadow:0 0 16px var(--tech-masonry-glow, var(--tech-glow-primary))}.tech-masonry--glass .tech-masonry__item-corner{opacity:.4}.tech-masonry--glass .tech-masonry__item:hover .tech-masonry__item-corner{opacity:1}
18
+
19
+ .tech-modal-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000}.tech-modal-mask{position:absolute;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.tech-modal-wrapper{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:24px}.tech-modal{position:relative;background:var(--tech-bg-medium);border:1px solid var(--tech-border);border-radius:4px;overflow:hidden;max-height:calc(100vh - 48px);display:flex;flex-direction:column}.tech-modal--animate{animation:techModalIn .3s ease-out}@keyframes techModalIn{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}.tech-modal--default{border-color:var(--tech-border);box-shadow:0 8px 40px #00000080,0 0 30px var(--tech-glow-primary)}.tech-modal--neon{border-color:var(--tech-primary);box-shadow:0 0 5px var(--tech-primary),0 0 15px var(--tech-glow-primary),0 8px 40px #00000080}.tech-modal--scan{border-color:var(--tech-border);box-shadow:0 8px 40px #00000080,0 0 30px var(--tech-glow-primary);overflow:hidden}.tech-modal__scan-line{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--tech-primary),transparent);z-index:2;animation:techScan 3s linear infinite}.tech-modal__corner{position:absolute;width:16px;height:16px;z-index:2}.tech-modal__corner--tl{top:0;left:0;border-top:2px solid var(--tech-primary);border-left:2px solid var(--tech-primary)}.tech-modal__corner--tr{top:0;right:0;border-top:2px solid var(--tech-primary);border-right:2px solid var(--tech-primary)}.tech-modal__corner--bl{bottom:0;left:0;border-bottom:2px solid var(--tech-primary);border-left:2px solid var(--tech-primary)}.tech-modal__corner--br{bottom:0;right:0;border-bottom:2px solid var(--tech-primary);border-right:2px solid var(--tech-primary)}.tech-modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--tech-border);background:#00d4ff08}.tech-modal__title{font-family:var(--tech-font-title);font-size:16px;font-weight:600;color:var(--tech-primary);letter-spacing:1px}.tech-modal__close{background:none;border:none;color:var(--tech-text-muted);font-size:16px;cursor:pointer;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.tech-modal__close:hover{color:var(--tech-primary);background:var(--tech-glow-primary)}.tech-modal__body{flex:1;padding:24px;overflow-y:auto;color:var(--tech-text-secondary);font-size:14px;line-height:1.8}.tech-modal__footer{display:flex;justify-content:flex-end;gap:12px;padding:12px 24px;border-top:1px solid var(--tech-border);background:#00d4ff05}
20
+
21
+ .tech-popconfirm{position:fixed;z-index:1050;min-width:240px;max-width:400px;background:var(--tech-bg-medium);border:1px solid var(--tech-border);border-radius:4px;padding:16px;opacity:0;transform:scale(.92);animation:techPopconfirmIn .25s cubic-bezier(.4,0,.2,1) forwards;overflow:hidden}@keyframes techPopconfirmIn{to{opacity:1;transform:scale(1)}}.tech-popconfirm--neon{border-color:var(--tech-primary);box-shadow:0 0 20px var(--tech-glow-primary),inset 0 0 20px var(--tech-glow-primary)}.tech-popconfirm--scan .tech-popconfirm__scan-line{display:block}.tech-popconfirm__scan-line{display:none;position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--tech-primary),transparent);animation:techPopconfirmScan 2s linear infinite;opacity:.5}@keyframes techPopconfirmScan{0%{top:0}to{top:100%}}.tech-popconfirm__corner{position:absolute;width:8px;height:8px;z-index:1}.tech-popconfirm__corner--tl{top:0;left:0;border-top:2px solid var(--tech-primary);border-left:2px solid var(--tech-primary)}.tech-popconfirm__corner--tr{top:0;right:0;border-top:2px solid var(--tech-primary);border-right:2px solid var(--tech-primary)}.tech-popconfirm__corner--bl{bottom:0;left:0;border-bottom:2px solid var(--tech-primary);border-left:2px solid var(--tech-primary)}.tech-popconfirm__corner--br{bottom:0;right:0;border-bottom:2px solid var(--tech-primary);border-right:2px solid var(--tech-primary)}.tech-popconfirm__arrow{position:absolute;width:8px;height:8px;background:var(--tech-bg-medium);border:1px solid var(--tech-border);transform:rotate(45deg)}.tech-popconfirm__arrow--top{bottom:-5px;left:50%;margin-left:-4px;border-top:none;border-left:none}.tech-popconfirm__arrow--bottom{top:-5px;left:50%;margin-left:-4px;border-bottom:none;border-right:none}.tech-popconfirm__arrow--left{right:-5px;top:50%;margin-top:-4px;border-bottom:none;border-left:none}.tech-popconfirm__arrow--right{left:-5px;top:50%;margin-top:-4px;border-top:none;border-right:none}.tech-popconfirm--neon .tech-popconfirm__arrow{border-color:var(--tech-primary)}.tech-popconfirm__title{font-size:14px;font-weight:600;color:var(--tech-primary);margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--tech-border);letter-spacing:1px}.tech-popconfirm__content{font-size:13px;color:var(--tech-text-secondary);line-height:1.6;margin-bottom:14px}.tech-popconfirm__actions{display:flex;justify-content:flex-end;gap:8px}.tech-popconfirm__btn{padding:4px 16px;font-size:12px;border-radius:2px;cursor:pointer;transition:all .2s;letter-spacing:1px;font-family:var(--tech-font-body)}.tech-popconfirm__btn--cancel{background:transparent;border:1px solid var(--tech-border);color:var(--tech-text-secondary)}.tech-popconfirm__btn--cancel:hover{border-color:var(--tech-text-secondary);color:var(--tech-text-primary)}.tech-popconfirm__btn--confirm{background:var(--tech-primary);border:1px solid var(--tech-primary);color:var(--tech-bg-dark);font-weight:600}.tech-popconfirm__btn--confirm:hover{box-shadow:0 0 10px var(--tech-glow-primary);background:var(--tech-primary-light)}.tech-popconfirm-trigger{display:inline-block}
22
+
23
+ .tech-qrcode{position:relative;display:inline-flex;flex-direction:column;align-items:center;padding:20px;background:var(--tech-bg-medium);border:1px solid var(--tech-border);border-radius:4px;overflow:hidden}.tech-qrcode--neon{border-color:var(--tech-primary);box-shadow:0 0 20px var(--tech-glow-primary),inset 0 0 20px var(--tech-glow-primary)}.tech-qrcode--scan .tech-qrcode__scan-line{display:block}.tech-qrcode__scan-line{display:none;position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--tech-primary),transparent);animation:techQRScan 2.5s linear infinite;opacity:.6;z-index:2}@keyframes techQRScan{0%{top:0}to{top:100%}}.tech-qrcode__corner{position:absolute;width:14px;height:14px;z-index:1}.tech-qrcode__corner--tl{top:0;left:0;border-top:2px solid var(--tech-primary);border-left:2px solid var(--tech-primary)}.tech-qrcode__corner--tr{top:0;right:0;border-top:2px solid var(--tech-primary);border-right:2px solid var(--tech-primary)}.tech-qrcode__corner--bl{bottom:0;left:0;border-bottom:2px solid var(--tech-primary);border-left:2px solid var(--tech-primary)}.tech-qrcode__corner--br{bottom:0;right:0;border-bottom:2px solid var(--tech-primary);border-right:2px solid var(--tech-primary)}.tech-qrcode__frame{position:relative;padding:8px;border:1px solid var(--tech-border);border-radius:2px;background:var(--tech-bg-dark)}.tech-qrcode--neon .tech-qrcode__frame{border-color:var(--tech-primary);box-shadow:0 0 10px var(--tech-glow-primary)}.tech-qrcode__inner{position:relative;display:flex;align-items:center;justify-content:center}.tech-qrcode__image{display:block;image-rendering:pixelated}.tech-qrcode__icon{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--tech-bg-dark);border:2px solid var(--tech-primary);border-radius:4px;padding:4px;display:flex;align-items:center;justify-content:center}.tech-qrcode__info{margin-top:12px;text-align:center}.tech-qrcode__title{font-size:14px;font-weight:600;color:var(--tech-primary);letter-spacing:1px;margin-bottom:4px}.tech-qrcode__desc{font-size:12px;color:var(--tech-text-secondary);max-width:240px;word-break:break-all}
24
+
25
+ .tech-screen-adapter,.tech-screen-bg--dark{background:var(--tech-bg-dark)}.tech-screen-bg--grid{background:var(--tech-bg-dark) linear-gradient(rgba(0,212,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,212,255,.03) 1px,transparent 1px);background-size:100% 100%,40px 40px,40px 40px}.tech-screen-bg--particles{background:radial-gradient(1px 1px at 20% 30%,rgba(0,212,255,.4),transparent),radial-gradient(1px 1px at 40% 70%,rgba(0,212,255,.3),transparent),radial-gradient(1px 1px at 60% 20%,rgba(10,255,176,.3),transparent),radial-gradient(1px 1px at 80% 50%,rgba(0,212,255,.35),transparent),radial-gradient(1px 1px at 10% 80%,rgba(0,212,255,.25),transparent),radial-gradient(1px 1px at 70% 90%,rgba(10,255,176,.2),transparent),radial-gradient(1px 1px at 90% 10%,rgba(0,212,255,.3),transparent),radial-gradient(1px 1px at 50% 50%,rgba(0,212,255,.2),transparent),var(--tech-bg-dark)}.tech-screen-adapter__content{box-sizing:border-box}
26
+
27
+ .tech-scroll-table{width:100%;overflow:hidden;font-size:14px}.tech-scroll-table__header{display:flex;align-items:center;height:var(--tech-table-row-height);background:linear-gradient(90deg,#00d4ff1a,#00d4ff0d);border-bottom:1px solid var(--tech-border)}.tech-scroll-table__header-cell{padding:0 12px;font-weight:600;color:var(--tech-table-header-color);font-size:13px;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tech-scroll-table__body{overflow:hidden;position:relative}.tech-scroll-table__scroll-wrapper{will-change:transform}.tech-scroll-table__row{display:flex;align-items:center;height:var(--tech-table-row-height);border-bottom:1px solid rgba(0,212,255,.06);transition:background .2s ease}.tech-scroll-table__row--hover:hover{background:#00d4ff0f}.tech-scroll-table__row:nth-child(2n){background:#00d4ff05}.tech-scroll-table__cell{padding:0 12px;color:var(--tech-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
28
+
29
+ .tech-skeleton{position:relative;overflow:hidden;background:var(--tech-bg-light);border:1px solid var(--tech-border)}.tech-skeleton--text{border-radius:2px}.tech-skeleton--rect{border-radius:4px}.tech-skeleton--circle{border-radius:50%}.tech-skeleton--animate:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(0,212,255,.06) 40%,rgba(0,212,255,.12) 50%,rgba(0,212,255,.06) 60%,transparent 100%);animation:techSkeletonShimmer 1.8s ease-in-out infinite}@keyframes techSkeletonShimmer{0%{left:-100%}to{left:100%}}.tech-skeleton--animate:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border:1px solid transparent;animation:techSkeletonPulse 2s ease-in-out infinite}@keyframes techSkeletonPulse{0%,to{border-color:transparent}50%{border-color:var(--tech-primary);box-shadow:0 0 6px var(--tech-glow-primary)}}.tech-skeleton-rows{display:flex;flex-direction:column}.tech-skeleton-card{position:relative;background:var(--tech-bg-medium);border:1px solid var(--tech-border);border-radius:4px;padding:16px;overflow:hidden}.tech-skeleton-card--animate:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(0,212,255,.04) 40%,rgba(0,212,255,.08) 50%,rgba(0,212,255,.04) 60%,transparent 100%);animation:techSkeletonShimmer 1.8s ease-in-out infinite}.tech-skeleton-card__header{display:flex;align-items:center;gap:12px}.tech-skeleton-card__footer{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:12px;border-top:1px solid var(--tech-border)}
30
+
31
+ .tech-status-indicator{display:inline-flex;align-items:center;gap:8px}.tech-status-indicator__dot{position:relative;border-radius:50%;background:var(--tech-status-color);box-shadow:0 0 6px var(--tech-status-color)}.tech-status-indicator--small .tech-status-indicator__dot{width:6px;height:6px}.tech-status-indicator--medium .tech-status-indicator__dot{width:8px;height:8px}.tech-status-indicator--large .tech-status-indicator__dot{width:12px;height:12px}.tech-status-indicator__pulse{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:50%;border:1px solid var(--tech-status-color);animation:techDotBlink 1.5s ease-in-out infinite}.tech-status-indicator--large .tech-status-indicator__pulse{top:-6px;right:-6px;bottom:-6px;left:-6px}.tech-status-indicator__label{font-size:13px;color:var(--tech-text-secondary);letter-spacing:.5px}
32
+
33
+ .tech-border{position:relative;box-sizing:border-box}.tech-border__content{position:relative;z-index:1;width:100%;height:100%}.tech-border--corner{border:var(--tech-border-width) solid var(--tech-border-color);background:var(--tech-bg-card)}.tech-border__corner{position:absolute;width:var(--tech-corner-size);height:var(--tech-corner-size);z-index:2}.tech-border__corner--tl{top:-1px;left:-1px;border-top:2px solid var(--tech-border-color);border-left:2px solid var(--tech-border-color)}.tech-border__corner--tr{top:-1px;right:-1px;border-top:2px solid var(--tech-border-color);border-right:2px solid var(--tech-border-color)}.tech-border__corner--bl{bottom:-1px;left:-1px;border-bottom:2px solid var(--tech-border-color);border-left:2px solid var(--tech-border-color)}.tech-border__corner--br{bottom:-1px;right:-1px;border-bottom:2px solid var(--tech-border-color);border-right:2px solid var(--tech-border-color)}.tech-border--animate .tech-border__corner{box-shadow:0 0 8px var(--tech-border-glow)}.tech-border--full{border:var(--tech-border-width) solid var(--tech-border-color);background:var(--tech-bg-card);box-shadow:inset 0 0 30px var(--tech-border-glow)}.tech-border--animate.tech-border--full{animation:techPulse 3s ease-in-out infinite}.tech-border--gradient{background:var(--tech-bg-card);border:none;padding:1px}.tech-border--gradient:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,var(--tech-border-color),transparent 40%,transparent 60%,var(--tech-border-color));z-index:0;border-radius:inherit}.tech-border--animate.tech-border--gradient:before{background:linear-gradient(135deg,var(--tech-border-color),transparent 40%,transparent 60%,var(--tech-border-color));background-size:200% 200%;animation:techBorderFlow 4s linear infinite}.tech-border--gradient .tech-border__content{background:var(--tech-bg-card);border-radius:inherit}.tech-border--scan{border:var(--tech-border-width) solid var(--tech-border-color);background:var(--tech-bg-card);overflow:hidden}.tech-border__scan-line{position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--tech-border-color),transparent);z-index:2;opacity:.6}.tech-border--animate .tech-border__scan-line{animation:techScan 3s linear infinite}.tech-border--neon{border:var(--tech-border-width) solid var(--tech-border-color);background:var(--tech-bg-card);box-shadow:0 0 5px var(--tech-border-color),0 0 10px var(--tech-border-glow),inset 0 0 5px var(--tech-border-glow)}.tech-border--animate.tech-border--neon{animation:techGlow 2s ease-in-out infinite}
34
+
35
+ .tech-button{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;cursor:pointer;font-family:var(--tech-font-title);font-weight:500;letter-spacing:1px;transition:all var(--tech-duration-normal) var(--tech-easing);overflow:hidden;white-space:nowrap;outline:none}.tech-button:disabled{opacity:.4;cursor:not-allowed}.tech-button--small{padding:6px 16px;font-size:12px;height:32px}.tech-button--medium{padding:8px 24px;font-size:14px;height:40px}.tech-button--large{padding:12px 32px;font-size:16px;height:48px}.tech-button--primary{background:linear-gradient(135deg,var(--tech-btn-color, var(--tech-primary)),var(--tech-primary-dark));color:var(--tech-bg-dark);border-color:var(--tech-btn-color, var(--tech-primary))}.tech-button--primary:hover:not(:disabled){box-shadow:0 0 20px #00d4ff66;transform:translateY(-1px)}.tech-button--secondary{background:linear-gradient(135deg,var(--tech-btn-color, var(--tech-secondary)),var(--tech-secondary-dark));color:var(--tech-bg-dark);border-color:var(--tech-btn-color, var(--tech-secondary))}.tech-button--secondary:hover:not(:disabled){box-shadow:0 0 20px #0affb066;transform:translateY(-1px)}.tech-button--outline{background:transparent;color:var(--tech-btn-color, var(--tech-primary));border-color:var(--tech-btn-color, var(--tech-primary))}.tech-button--outline:hover:not(:disabled){background:#00d4ff1a;box-shadow:0 0 15px #00d4ff33}.tech-button--ghost{background:transparent;color:var(--tech-btn-color, var(--tech-primary));border-color:transparent}.tech-button--ghost:hover:not(:disabled){background:#00d4ff14}.tech-button--neon{background:transparent;color:var(--tech-btn-color, var(--tech-primary));border-color:var(--tech-btn-color, var(--tech-primary));box-shadow:0 0 5px var(--tech-btn-color, var(--tech-primary)),inset 0 0 5px #00d4ff1a}.tech-button--neon:hover:not(:disabled){box-shadow:0 0 10px var(--tech-btn-color, var(--tech-primary)),0 0 20px #00d4ff4d,inset 0 0 10px #00d4ff26}.tech-button--glow{animation:techPulse 2s ease-in-out infinite}.tech-button__border-effect{position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s ease}.tech-button:hover:not(:disabled) .tech-button__border-effect{left:100%}.tech-button__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:techRotate .6s linear infinite}.tech-button__icon{display:flex;align-items:center;font-size:1em}.tech-button__text{display:inline-flex}
36
+
37
+ .tech-title{position:relative;font-family:var(--tech-font-title);font-weight:600;letter-spacing:2px;margin:0;padding:0}.tech-title--h1{font-size:28px;line-height:1.4}.tech-title--h2{font-size:22px;line-height:1.4}.tech-title--h3{font-size:18px;line-height:1.4}.tech-title--left{text-align:left}.tech-title--center{text-align:center}.tech-title--right{text-align:right}.tech-title--default{color:var(--tech-title-color, var(--tech-primary))}.tech-title--gradient{background:linear-gradient(90deg,var(--tech-title-color, var(--tech-primary)),var(--tech-primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.tech-title--glow{color:var(--tech-title-color, var(--tech-primary));text-shadow:0 0 10px var(--tech-title-color, var(--tech-primary)),0 0 30px rgba(0,212,255,.3)}.tech-title--animate.tech-title--glow{animation:techGlow 2s ease-in-out infinite}.tech-title--underline{display:flex;align-items:center;gap:4px;margin-top:8px}.tech-title--center .tech-title--underline{justify-content:center}.tech-title__underline-dot{width:4px;height:4px;background:var(--tech-title-color, var(--tech-primary));border-radius:50%;box-shadow:0 0 6px var(--tech-title-color, var(--tech-primary))}.tech-title__underline-line{flex:1;max-width:120px;height:1px;background:linear-gradient(90deg,var(--tech-title-color, var(--tech-primary)),transparent)}.tech-title--animate .tech-title__underline-line{animation:techLineGrow 1s ease-out}.tech-title--bracket{color:var(--tech-title-color, var(--tech-primary))}.tech-title__bracket{color:var(--tech-title-color, var(--tech-primary));font-weight:400;opacity:.7}.tech-title--animate .tech-title__bracket--left{animation:techSlideIn .5s ease-out}.tech-title--animate .tech-title__bracket--right{animation:techSlideIn .5s ease-out .1s both}.tech-title__text{display:inline}
38
+
39
+ .tech-theme-switcher{display:flex;gap:8px;flex-wrap:wrap}.tech-theme-swatch{position:relative;width:48px;height:48px;border-radius:8px;cursor:pointer;border:2px solid transparent;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.tech-theme-swatch:hover{transform:scale(1.1);box-shadow:0 0 12px var(--tech-glow-primary)}.tech-theme-swatch--active{border-color:var(--tech-primary);box-shadow:0 0 15px var(--tech-glow-primary)}.tech-theme-swatch__inner{position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:5px;display:flex;flex-direction:column;overflow:hidden}.tech-theme-swatch__bg{flex:1}.tech-theme-swatch__accent{height:4px}.tech-theme-swatch__label{position:absolute;bottom:-24px;left:50%;transform:translate(-50%);font-size:11px;color:var(--tech-text-secondary);white-space:nowrap;transition:color .2s}.tech-theme-swatch--active .tech-theme-swatch__label{color:var(--tech-primary)}
40
+
41
+ .tech-toast-container{position:fixed;top:24px;left:50%;transform:translate(-50%);z-index:2000;display:flex;flex-direction:column;align-items:center;gap:12px;pointer-events:none}.tech-toast{position:relative;display:flex;align-items:center;gap:10px;padding:12px 24px;min-width:280px;max-width:520px;background:var(--tech-bg-medium);border:1px solid var(--tech-border);border-radius:4px;pointer-events:auto;opacity:0;transform:translateY(-20px) scale(.95);transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.tech-toast--visible{opacity:1;transform:translateY(0) scale(1)}.tech-toast__scan-line{position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--tech-primary),transparent);animation:techToastScan 2s linear infinite;opacity:.6}@keyframes techToastScan{0%{transform:translate(-100%)}to{transform:translate(100%)}}.tech-toast__corner{position:absolute;width:10px;height:10px;z-index:1}.tech-toast__corner--tl{top:0;left:0;border-top:2px solid var(--tech-primary);border-left:2px solid var(--tech-primary)}.tech-toast__corner--tr{top:0;right:0;border-top:2px solid var(--tech-primary);border-right:2px solid var(--tech-primary)}.tech-toast__corner--bl{bottom:0;left:0;border-bottom:2px solid var(--tech-primary);border-left:2px solid var(--tech-primary)}.tech-toast__corner--br{bottom:0;right:0;border-bottom:2px solid var(--tech-primary);border-right:2px solid var(--tech-primary)}.tech-toast__icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:14px;position:relative}.tech-toast__loading-ring{position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid transparent;border-top-color:var(--tech-primary);border-radius:50%;animation:techToastSpin 1s linear infinite}@keyframes techToastSpin{to{transform:rotate(360deg)}}.tech-toast__content{flex:1;font-size:14px;line-height:1.5;color:var(--tech-text-primary);font-family:var(--tech-font-body)}.tech-toast__close{flex-shrink:0;background:none;border:none;color:var(--tech-text-muted);font-size:12px;cursor:pointer;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.tech-toast__close:hover{color:var(--tech-primary);background:var(--tech-glow-primary)}.tech-toast--info{border-color:var(--tech-border);box-shadow:0 4px 20px #0006,0 0 15px var(--tech-glow-primary)}.tech-toast--info .tech-toast__icon{color:var(--tech-primary);text-shadow:0 0 8px var(--tech-glow-primary)}.tech-toast--info .tech-toast__corner--tl,.tech-toast--info .tech-toast__corner--tr,.tech-toast--info .tech-toast__corner--bl,.tech-toast--info .tech-toast__corner--br{border-color:var(--tech-primary)}.tech-toast--success{border-color:#0affb066;box-shadow:0 4px 20px #0006,0 0 15px var(--tech-glow-secondary)}.tech-toast--success .tech-toast__icon{color:var(--tech-success);text-shadow:0 0 8px var(--tech-glow-secondary)}.tech-toast--success .tech-toast__corner--tl,.tech-toast--success .tech-toast__corner--tr,.tech-toast--success .tech-toast__corner--bl,.tech-toast--success .tech-toast__corner--br{border-color:var(--tech-success)}.tech-toast--success .tech-toast__scan-line{background:linear-gradient(90deg,transparent,var(--tech-success),transparent)}.tech-toast--warning{border-color:#ffd00066;box-shadow:0 4px 20px #0006,0 0 15px #ffd00026}.tech-toast--warning .tech-toast__icon{color:var(--tech-warning);text-shadow:0 0 8px rgba(255,208,0,.4)}.tech-toast--warning .tech-toast__corner--tl,.tech-toast--warning .tech-toast__corner--tr,.tech-toast--warning .tech-toast__corner--bl,.tech-toast--warning .tech-toast__corner--br{border-color:var(--tech-warning)}.tech-toast--warning .tech-toast__scan-line{background:linear-gradient(90deg,transparent,var(--tech-warning),transparent)}.tech-toast--error{border-color:#ff475766;box-shadow:0 4px 20px #0006,0 0 15px #ff475726}.tech-toast--error .tech-toast__icon{color:var(--tech-danger);text-shadow:0 0 8px rgba(255,71,87,.4)}.tech-toast--error .tech-toast__corner--tl,.tech-toast--error .tech-toast__corner--tr,.tech-toast--error .tech-toast__corner--bl,.tech-toast--error .tech-toast__corner--br{border-color:var(--tech-danger)}.tech-toast--error .tech-toast__scan-line{background:linear-gradient(90deg,transparent,var(--tech-danger),transparent)}.tech-toast--loading{border-color:var(--tech-border);box-shadow:0 4px 20px #0006,0 0 15px var(--tech-glow-primary)}.tech-toast--loading .tech-toast__icon{color:var(--tech-primary);text-shadow:0 0 8px var(--tech-glow-primary)}.tech-toast--loading .tech-toast__corner--tl,.tech-toast--loading .tech-toast__corner--tr,.tech-toast--loading .tech-toast__corner--bl,.tech-toast--loading .tech-toast__corner--br{border-color:var(--tech-primary);animation:techCornerPulse 1.5s ease-in-out infinite}@keyframes techCornerPulse{0%,to{opacity:1}50%{opacity:.4}}
@@ -0,0 +1,31 @@
1
+
2
+ export { ScreenAdapter } from './components/ScreenAdapter';
3
+ export { TechBorder } from './components/TechBorder';
4
+ export { DataCard } from './components/DataCard';
5
+ export { DigitalNumber } from './components/DigitalNumber';
6
+ export { TechTitle } from './components/TechTitle';
7
+ export { ScrollTable } from './components/ScrollTable';
8
+ export { StatusIndicator } from './components/StatusIndicator';
9
+ export { DecorationLine } from './components/DecorationLine';
10
+ export { TechButton } from './components/TechButton';
11
+ export { Modal } from './components/Modal';
12
+ export { FlowLight } from './components/FlowLight';
13
+ export { Toast } from './components/Toast';
14
+ export { ThemeProvider, useTheme, presetThemes, themeLabels } from './components/ThemeProvider';
15
+ export type { ThemeProviderProps, TechThemeVars, PartialTechThemeVars } from './components/ThemeProvider';
16
+ export { Popconfirm } from './components/Popconfirm';
17
+ export type { PopconfirmProps } from './components/Popconfirm';
18
+ export { Skeleton } from './components/Skeleton';
19
+ export type { SkeletonProps } from './components/Skeleton';
20
+ export { Drawer } from './components/Drawer';
21
+ export type { DrawerProps } from './components/Drawer';
22
+ export { QRCode } from './components/QRCode';
23
+ export type { QRCodeProps } from './components/QRCode';
24
+ export { Icon, iconNames } from './components/Icon';
25
+ export type { IconProps, IconName } from './components/Icon';
26
+ export { Masonry } from './components/Masonry';
27
+ export type { MasonryProps, MasonryItem } from './components/Masonry';
28
+ export { FloatingButton } from './components/FloatingButton';
29
+ export type { FloatingButtonProps } from './components/FloatingButton';
30
+ export { techTheme } from './theme';
31
+ export type { TechTheme } from './theme';
@@ -0,0 +1 @@
1
+ @import"https://fonts.googleapis.com/css2?family=Orbitron:wght@400;500;600;700;800;900&family=Rajdhani:wght@300;400;500;600;700&display=swap";:root{--tech-primary: #00d4ff;--tech-primary-dark: #0098d4;--tech-primary-light: #33ddff;--tech-secondary: #0affb0;--tech-secondary-dark: #08c98a;--tech-accent: #ff6b35;--tech-warning: #ffd000;--tech-danger: #ff4757;--tech-success: #0affb0;--tech-bg-dark: #0a0e27;--tech-bg-medium: #0d1135;--tech-bg-light: #131842;--tech-bg-card: rgba(13, 17, 53, .85);--tech-bg-card-hover: rgba(19, 24, 66, .9);--tech-border: rgba(0, 212, 255, .3);--tech-border-active: rgba(0, 212, 255, .7);--tech-text-primary: #e8eaf6;--tech-text-secondary: rgba(232, 234, 246, .65);--tech-text-muted: rgba(232, 234, 246, .35);--tech-glow-primary: rgba(0, 212, 255, .15);--tech-glow-secondary: rgba(10, 255, 176, .15);--tech-font-digital: "Orbitron", "Rajdhani", "Courier New", monospace;--tech-font-title: "Rajdhani", "Microsoft YaHei", sans-serif;--tech-font-body: "Microsoft YaHei", "PingFang SC", sans-serif;--tech-duration-fast: .2s;--tech-duration-normal: .3s;--tech-duration-slow: .6s;--tech-duration-glow: 2s;--tech-easing: cubic-bezier(.4, 0, .2, 1)}@keyframes techGlow{0%,to{opacity:1}50%{opacity:.6}}@keyframes techPulse{0%,to{box-shadow:0 0 5px #00d4ff4d}50%{box-shadow:0 0 20px #00d4ff99}}@keyframes techScan{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}@keyframes techBorderFlow{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes techFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes techSlideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes techNumberFlip{0%{transform:rotateX(90deg);opacity:0}to{transform:rotateX(0);opacity:1}}@keyframes techDotBlink{0%,to{opacity:1}50%{opacity:.3}}@keyframes techLineGrow{0%{width:0}to{width:100%}}@keyframes techRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--tech-bg-dark);color:var(--tech-text-primary);font-family:var(--tech-font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:var(--tech-bg-dark)}::-webkit-scrollbar-thumb{background:var(--tech-primary);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--tech-primary-light)}
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a={colors:{primary:"#00d4ff",primaryDark:"#0098d4",primaryLight:"#33ddff",secondary:"#0affb0",secondaryDark:"#08c98a",accent:"#ff6b35",accentLight:"#ff8f66",warning:"#ffd000",danger:"#ff4757",success:"#0affb0",bgDark:"#0a0e27",bgMedium:"#0d1135",bgLight:"#131842",bgCard:"rgba(13, 17, 53, 0.85)",bgCardHover:"rgba(19, 24, 66, 0.9)",border:"rgba(0, 212, 255, 0.3)",borderActive:"rgba(0, 212, 255, 0.7)",textPrimary:"#e8eaf6",textSecondary:"rgba(232, 234, 246, 0.65)",textMuted:"rgba(232, 234, 246, 0.35)",glowPrimary:"rgba(0, 212, 255, 0.15)",glowSecondary:"rgba(10, 255, 176, 0.15)"},fonts:{digital:'"Orbitron", "Rajdhani", "Courier New", monospace',title:'"Rajdhani", "Microsoft YaHei", sans-serif',body:'"Microsoft YaHei", "PingFang SC", sans-serif'},animation:{durationFast:"0.2s",durationNormal:"0.3s",durationSlow:"0.6s",durationGlow:"2s",easing:"cubic-bezier(0.4, 0, 0.2, 1)",easingBounce:"cubic-bezier(0.68, -0.55, 0.265, 1.55)"},shadows:{glow:"0 0 20px rgba(0, 212, 255, 0.3)",glowStrong:"0 0 40px rgba(0, 212, 255, 0.5)",glowSecondary:"0 0 20px rgba(10, 255, 176, 0.3)",card:"0 4px 30px rgba(0, 0, 0, 0.4)"}};exports.techTheme=a;
@@ -0,0 +1,46 @@
1
+ export declare const techTheme: {
2
+ readonly colors: {
3
+ readonly primary: "#00d4ff";
4
+ readonly primaryDark: "#0098d4";
5
+ readonly primaryLight: "#33ddff";
6
+ readonly secondary: "#0affb0";
7
+ readonly secondaryDark: "#08c98a";
8
+ readonly accent: "#ff6b35";
9
+ readonly accentLight: "#ff8f66";
10
+ readonly warning: "#ffd000";
11
+ readonly danger: "#ff4757";
12
+ readonly success: "#0affb0";
13
+ readonly bgDark: "#0a0e27";
14
+ readonly bgMedium: "#0d1135";
15
+ readonly bgLight: "#131842";
16
+ readonly bgCard: "rgba(13, 17, 53, 0.85)";
17
+ readonly bgCardHover: "rgba(19, 24, 66, 0.9)";
18
+ readonly border: "rgba(0, 212, 255, 0.3)";
19
+ readonly borderActive: "rgba(0, 212, 255, 0.7)";
20
+ readonly textPrimary: "#e8eaf6";
21
+ readonly textSecondary: "rgba(232, 234, 246, 0.65)";
22
+ readonly textMuted: "rgba(232, 234, 246, 0.35)";
23
+ readonly glowPrimary: "rgba(0, 212, 255, 0.15)";
24
+ readonly glowSecondary: "rgba(10, 255, 176, 0.15)";
25
+ };
26
+ readonly fonts: {
27
+ readonly digital: "\"Orbitron\", \"Rajdhani\", \"Courier New\", monospace";
28
+ readonly title: "\"Rajdhani\", \"Microsoft YaHei\", sans-serif";
29
+ readonly body: "\"Microsoft YaHei\", \"PingFang SC\", sans-serif";
30
+ };
31
+ readonly animation: {
32
+ readonly durationFast: "0.2s";
33
+ readonly durationNormal: "0.3s";
34
+ readonly durationSlow: "0.6s";
35
+ readonly durationGlow: "2s";
36
+ readonly easing: "cubic-bezier(0.4, 0, 0.2, 1)";
37
+ readonly easingBounce: "cubic-bezier(0.68, -0.55, 0.265, 1.55)";
38
+ };
39
+ readonly shadows: {
40
+ readonly glow: "0 0 20px rgba(0, 212, 255, 0.3)";
41
+ readonly glowStrong: "0 0 40px rgba(0, 212, 255, 0.5)";
42
+ readonly glowSecondary: "0 0 20px rgba(10, 255, 176, 0.3)";
43
+ readonly card: "0 4px 30px rgba(0, 0, 0, 0.4)";
44
+ };
45
+ };
46
+ export type TechTheme = typeof techTheme;
@@ -0,0 +1,48 @@
1
+ const a = {
2
+ colors: {
3
+ primary: "#00d4ff",
4
+ primaryDark: "#0098d4",
5
+ primaryLight: "#33ddff",
6
+ secondary: "#0affb0",
7
+ secondaryDark: "#08c98a",
8
+ accent: "#ff6b35",
9
+ accentLight: "#ff8f66",
10
+ warning: "#ffd000",
11
+ danger: "#ff4757",
12
+ success: "#0affb0",
13
+ bgDark: "#0a0e27",
14
+ bgMedium: "#0d1135",
15
+ bgLight: "#131842",
16
+ bgCard: "rgba(13, 17, 53, 0.85)",
17
+ bgCardHover: "rgba(19, 24, 66, 0.9)",
18
+ border: "rgba(0, 212, 255, 0.3)",
19
+ borderActive: "rgba(0, 212, 255, 0.7)",
20
+ textPrimary: "#e8eaf6",
21
+ textSecondary: "rgba(232, 234, 246, 0.65)",
22
+ textMuted: "rgba(232, 234, 246, 0.35)",
23
+ glowPrimary: "rgba(0, 212, 255, 0.15)",
24
+ glowSecondary: "rgba(10, 255, 176, 0.15)"
25
+ },
26
+ fonts: {
27
+ digital: '"Orbitron", "Rajdhani", "Courier New", monospace',
28
+ title: '"Rajdhani", "Microsoft YaHei", sans-serif',
29
+ body: '"Microsoft YaHei", "PingFang SC", sans-serif'
30
+ },
31
+ animation: {
32
+ durationFast: "0.2s",
33
+ durationNormal: "0.3s",
34
+ durationSlow: "0.6s",
35
+ durationGlow: "2s",
36
+ easing: "cubic-bezier(0.4, 0, 0.2, 1)",
37
+ easingBounce: "cubic-bezier(0.68, -0.55, 0.265, 1.55)"
38
+ },
39
+ shadows: {
40
+ glow: "0 0 20px rgba(0, 212, 255, 0.3)",
41
+ glowStrong: "0 0 40px rgba(0, 212, 255, 0.5)",
42
+ glowSecondary: "0 0 20px rgba(10, 255, 176, 0.3)",
43
+ card: "0 4px 30px rgba(0, 0, 0, 0.4)"
44
+ }
45
+ };
46
+ export {
47
+ a as techTheme
48
+ };
@@ -0,0 +1 @@
1
+ export * from './theme/index'
@@ -0,0 +1,8 @@
1
+ export declare function clsx(...args: (string | undefined | null | false)[]): string;
2
+ export declare function formatNumber(num: number, decimals?: number): string;
3
+ export declare function hexToRgba(hex: string, alpha: number): string;
4
+ export declare function getScale(width: number, height: number, designWidth: number, designHeight: number): {
5
+ scaleX: number;
6
+ scaleY: number;
7
+ scale: number;
8
+ };
package/package.json ADDED
@@ -0,0 +1,165 @@
1
+ {
2
+ "name": "react-tech-ui",
3
+ "version": "1.0.0",
4
+ "description": "科技风格React UI组件库,支持大屏页面使用",
5
+ "main": "dist/index/index.cjs",
6
+ "module": "dist/index/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "sideEffects": [
9
+ "**/*.css"
10
+ ],
11
+ "exports": {
12
+ ".": {
13
+ "import": "./dist/index/index.js",
14
+ "require": "./dist/index/index.cjs",
15
+ "types": "./dist/index.d.ts"
16
+ },
17
+ "./dist/style.css": "./dist/index/style.css",
18
+ "./theme": {
19
+ "import": "./dist/theme/index.js",
20
+ "require": "./dist/theme/index.cjs",
21
+ "types": "./dist/theme/index.d.ts"
22
+ },
23
+ "./ScreenAdapter": {
24
+ "import": "./dist/ScreenAdapter/index.js",
25
+ "require": "./dist/ScreenAdapter/index.cjs",
26
+ "types": "./dist/components/ScreenAdapter/ScreenAdapter.d.ts"
27
+ },
28
+ "./TechBorder": {
29
+ "import": "./dist/TechBorder/index.js",
30
+ "require": "./dist/TechBorder/index.cjs",
31
+ "types": "./dist/components/TechBorder/TechBorder.d.ts"
32
+ },
33
+ "./DataCard": {
34
+ "import": "./dist/DataCard/index.js",
35
+ "require": "./dist/DataCard/index.cjs",
36
+ "types": "./dist/components/DataCard/DataCard.d.ts"
37
+ },
38
+ "./DigitalNumber": {
39
+ "import": "./dist/DigitalNumber/index.js",
40
+ "require": "./dist/DigitalNumber/index.cjs",
41
+ "types": "./dist/components/DigitalNumber/DigitalNumber.d.ts"
42
+ },
43
+ "./TechTitle": {
44
+ "import": "./dist/TechTitle/index.js",
45
+ "require": "./dist/TechTitle/index.cjs",
46
+ "types": "./dist/components/TechTitle/TechTitle.d.ts"
47
+ },
48
+ "./ScrollTable": {
49
+ "import": "./dist/ScrollTable/index.js",
50
+ "require": "./dist/ScrollTable/index.cjs",
51
+ "types": "./dist/components/ScrollTable/ScrollTable.d.ts"
52
+ },
53
+ "./StatusIndicator": {
54
+ "import": "./dist/StatusIndicator/index.js",
55
+ "require": "./dist/StatusIndicator/index.cjs",
56
+ "types": "./dist/components/StatusIndicator/StatusIndicator.d.ts"
57
+ },
58
+ "./DecorationLine": {
59
+ "import": "./dist/DecorationLine/index.js",
60
+ "require": "./dist/DecorationLine/index.cjs",
61
+ "types": "./dist/components/DecorationLine/DecorationLine.d.ts"
62
+ },
63
+ "./TechButton": {
64
+ "import": "./dist/TechButton/index.js",
65
+ "require": "./dist/TechButton/index.cjs",
66
+ "types": "./dist/components/TechButton/TechButton.d.ts"
67
+ },
68
+ "./Modal": {
69
+ "import": "./dist/Modal/index.js",
70
+ "require": "./dist/Modal/index.cjs",
71
+ "types": "./dist/components/Modal/Modal.d.ts"
72
+ },
73
+ "./FlowLight": {
74
+ "import": "./dist/FlowLight/index.js",
75
+ "require": "./dist/FlowLight/index.cjs",
76
+ "types": "./dist/components/FlowLight/FlowLight.d.ts"
77
+ },
78
+ "./Toast": {
79
+ "import": "./dist/Toast/index.js",
80
+ "require": "./dist/Toast/index.cjs",
81
+ "types": "./dist/components/Toast/Toast.d.ts"
82
+ },
83
+ "./ThemeProvider": {
84
+ "import": "./dist/ThemeProvider/index.js",
85
+ "require": "./dist/ThemeProvider/index.cjs",
86
+ "types": "./dist/components/ThemeProvider/ThemeProvider.d.ts"
87
+ },
88
+ "./Popconfirm": {
89
+ "import": "./dist/Popconfirm/index.js",
90
+ "require": "./dist/Popconfirm/index.cjs",
91
+ "types": "./dist/components/Popconfirm/Popconfirm.d.ts"
92
+ },
93
+ "./Skeleton": {
94
+ "import": "./dist/Skeleton/index.js",
95
+ "require": "./dist/Skeleton/index.cjs",
96
+ "types": "./dist/components/Skeleton/Skeleton.d.ts"
97
+ },
98
+ "./Drawer": {
99
+ "import": "./dist/Drawer/index.js",
100
+ "require": "./dist/Drawer/index.cjs",
101
+ "types": "./dist/components/Drawer/Drawer.d.ts"
102
+ },
103
+ "./QRCode": {
104
+ "import": "./dist/QRCode/index.js",
105
+ "require": "./dist/QRCode/index.cjs",
106
+ "types": "./dist/components/QRCode/QRCode.d.ts"
107
+ },
108
+ "./Icon": {
109
+ "import": "./dist/Icon/index.js",
110
+ "require": "./dist/Icon/index.cjs",
111
+ "types": "./dist/components/Icon/Icon.d.ts"
112
+ },
113
+ "./Masonry": {
114
+ "import": "./dist/Masonry/index.js",
115
+ "require": "./dist/Masonry/index.cjs",
116
+ "types": "./dist/components/Masonry/Masonry.d.ts"
117
+ },
118
+ "./FloatingButton": {
119
+ "import": "./dist/FloatingButton/index.js",
120
+ "require": "./dist/FloatingButton/index.cjs",
121
+ "types": "./dist/components/FloatingButton/FloatingButton.d.ts"
122
+ }
123
+ },
124
+ "files": [
125
+ "dist"
126
+ ],
127
+ "scripts": {
128
+ "dev": "vite",
129
+ "build": "vite build",
130
+ "build:lib": "vite build --config vite.lib.config.ts",
131
+ "preview": "vite preview",
132
+ "typecheck": "tsc --noEmit"
133
+ },
134
+ "peerDependencies": {
135
+ "react": ">=18.0.0",
136
+ "react-dom": ">=18.0.0"
137
+ },
138
+ "dependencies": {
139
+ "qrcode": "^1.5.4"
140
+ },
141
+ "devDependencies": {
142
+ "@types/qrcode": "^1.5.6",
143
+ "@types/react": "^18.2.0",
144
+ "@types/react-dom": "^18.2.0",
145
+ "@vitejs/plugin-react": "^4.2.0",
146
+ "typescript": "^5.3.0",
147
+ "vite": "^5.0.0",
148
+ "vite-plugin-dts": "^3.7.0"
149
+ },
150
+ "license": "MIT",
151
+ "keywords": [
152
+ "react",
153
+ "ui",
154
+ "component-library",
155
+ "tech",
156
+ "dashboard",
157
+ "big-screen",
158
+ "科技风",
159
+ "大屏"
160
+ ],
161
+ "publishConfig": {
162
+ "access": "public",
163
+ "registry": "https://registry.npmjs.org/"
164
+ }
165
+ }