kb-ui-vue 0.2.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 (225) hide show
  1. package/dist/components/Alert/Alert.vue.d.ts +26 -0
  2. package/dist/components/Alert/index.d.ts +4 -0
  3. package/dist/components/Avatar/Avatar.vue.d.ts +20 -0
  4. package/dist/components/Avatar/index.d.ts +4 -0
  5. package/dist/components/Badge/Badge.vue.d.ts +28 -0
  6. package/dist/components/Badge/index.d.ts +4 -0
  7. package/dist/components/Breadcrumb/Breadcrumb.vue.d.ts +15 -0
  8. package/dist/components/Breadcrumb/index.d.ts +4 -0
  9. package/dist/components/Button/Button.vue.d.ts +32 -0
  10. package/dist/components/Button/index.d.ts +4 -0
  11. package/dist/components/Calendar/Calendar.vue.d.ts +12 -0
  12. package/dist/components/Calendar/index.d.ts +4 -0
  13. package/dist/components/Card/Card.vue.d.ts +23 -0
  14. package/dist/components/Card/index.d.ts +4 -0
  15. package/dist/components/Carousel/Carousel.vue.d.ts +18 -0
  16. package/dist/components/Carousel/index.d.ts +4 -0
  17. package/dist/components/Cascader/Cascader.vue.d.ts +21 -0
  18. package/dist/components/Cascader/index.d.ts +4 -0
  19. package/dist/components/Checkbox/Checkbox.vue.d.ts +27 -0
  20. package/dist/components/Checkbox/index.d.ts +4 -0
  21. package/dist/components/Collapse/Collapse.vue.d.ts +35 -0
  22. package/dist/components/Collapse/index.d.ts +4 -0
  23. package/dist/components/ColorPicker/ColorPicker.vue.d.ts +12 -0
  24. package/dist/components/ColorPicker/index.d.ts +4 -0
  25. package/dist/components/CountUp/CountUp.vue.d.ts +20 -0
  26. package/dist/components/CountUp/index.d.ts +4 -0
  27. package/dist/components/DatePicker/DatePicker.vue.d.ts +14 -0
  28. package/dist/components/DatePicker/index.d.ts +4 -0
  29. package/dist/components/Descriptions/Descriptions.vue.d.ts +19 -0
  30. package/dist/components/Descriptions/index.d.ts +4 -0
  31. package/dist/components/Dialog/Dialog.vue.d.ts +35 -0
  32. package/dist/components/Dialog/index.d.ts +4 -0
  33. package/dist/components/Divider/Divider.vue.d.ts +20 -0
  34. package/dist/components/Divider/index.d.ts +4 -0
  35. package/dist/components/Drawer/Drawer.vue.d.ts +31 -0
  36. package/dist/components/Drawer/index.d.ts +4 -0
  37. package/dist/components/Dropdown/Dropdown.vue.d.ts +31 -0
  38. package/dist/components/Dropdown/index.d.ts +4 -0
  39. package/dist/components/Empty/Empty.vue.d.ts +21 -0
  40. package/dist/components/Empty/index.d.ts +4 -0
  41. package/dist/components/Form/Form.vue.d.ts +38 -0
  42. package/dist/components/Form/FormItem.vue.d.ts +21 -0
  43. package/dist/components/Form/index.d.ts +5 -0
  44. package/dist/components/Grid/Col.vue.d.ts +20 -0
  45. package/dist/components/Grid/Row.vue.d.ts +22 -0
  46. package/dist/components/Grid/constants.d.ts +1 -0
  47. package/dist/components/Grid/index.d.ts +5 -0
  48. package/dist/components/Icon/Icon.vue.d.ts +10 -0
  49. package/dist/components/Icon/index.d.ts +4 -0
  50. package/dist/components/Input/Input.vue.d.ts +29 -0
  51. package/dist/components/Input/index.d.ts +4 -0
  52. package/dist/components/InputNumber/InputNumber.vue.d.ts +20 -0
  53. package/dist/components/InputNumber/index.d.ts +4 -0
  54. package/dist/components/InputPassword/InputPassword.vue.d.ts +16 -0
  55. package/dist/components/InputPassword/index.d.ts +4 -0
  56. package/dist/components/List/List.vue.d.ts +26 -0
  57. package/dist/components/List/index.d.ts +4 -0
  58. package/dist/components/Loading/Loading.vue.d.ts +12 -0
  59. package/dist/components/Loading/index.d.ts +4 -0
  60. package/dist/components/Message/Message.vue.d.ts +10 -0
  61. package/dist/components/Message/index.d.ts +16 -0
  62. package/dist/components/Notification/Notification.vue.d.ts +11 -0
  63. package/dist/components/Notification/index.d.ts +16 -0
  64. package/dist/components/Pagination/Pagination.vue.d.ts +18 -0
  65. package/dist/components/Pagination/index.d.ts +4 -0
  66. package/dist/components/Popconfirm/Popconfirm.vue.d.ts +28 -0
  67. package/dist/components/Popconfirm/index.d.ts +4 -0
  68. package/dist/components/Popover/Popover.vue.d.ts +28 -0
  69. package/dist/components/Popover/index.d.ts +4 -0
  70. package/dist/components/Progress/Progress.vue.d.ts +21 -0
  71. package/dist/components/Progress/index.d.ts +4 -0
  72. package/dist/components/Radio/Radio.vue.d.ts +27 -0
  73. package/dist/components/Radio/index.d.ts +4 -0
  74. package/dist/components/Rate/Rate.vue.d.ts +17 -0
  75. package/dist/components/Rate/index.d.ts +4 -0
  76. package/dist/components/Result/Result.vue.d.ts +21 -0
  77. package/dist/components/Result/index.d.ts +4 -0
  78. package/dist/components/Search/Search.vue.d.ts +18 -0
  79. package/dist/components/Search/index.d.ts +4 -0
  80. package/dist/components/Segmented/Segmented.vue.d.ts +19 -0
  81. package/dist/components/Segmented/index.d.ts +4 -0
  82. package/dist/components/Select/Select.vue.d.ts +26 -0
  83. package/dist/components/Select/index.d.ts +4 -0
  84. package/dist/components/Skeleton/Skeleton.vue.d.ts +22 -0
  85. package/dist/components/Skeleton/index.d.ts +4 -0
  86. package/dist/components/Slider/Slider.vue.d.ts +20 -0
  87. package/dist/components/Slider/index.d.ts +4 -0
  88. package/dist/components/Space/Space.vue.d.ts +24 -0
  89. package/dist/components/Space/index.d.ts +4 -0
  90. package/dist/components/Statistic/Statistic.vue.d.ts +29 -0
  91. package/dist/components/Statistic/index.d.ts +4 -0
  92. package/dist/components/Steps/Steps.vue.d.ts +15 -0
  93. package/dist/components/Steps/index.d.ts +4 -0
  94. package/dist/components/Switch/Switch.vue.d.ts +16 -0
  95. package/dist/components/Switch/index.d.ts +4 -0
  96. package/dist/components/Table/Table.vue.d.ts +34 -0
  97. package/dist/components/Table/index.d.ts +4 -0
  98. package/dist/components/Tabs/Tabs.vue.d.ts +30 -0
  99. package/dist/components/Tabs/index.d.ts +4 -0
  100. package/dist/components/Tag/Tag.vue.d.ts +28 -0
  101. package/dist/components/Tag/index.d.ts +4 -0
  102. package/dist/components/Textarea/Textarea.vue.d.ts +20 -0
  103. package/dist/components/Textarea/index.d.ts +4 -0
  104. package/dist/components/Timeline/Timeline.vue.d.ts +13 -0
  105. package/dist/components/Timeline/index.d.ts +4 -0
  106. package/dist/components/Tooltip/Tooltip.vue.d.ts +24 -0
  107. package/dist/components/Tooltip/index.d.ts +4 -0
  108. package/dist/components/Transfer/Transfer.vue.d.ts +18 -0
  109. package/dist/components/Transfer/index.d.ts +4 -0
  110. package/dist/components/Tree/Tree.vue.d.ts +17 -0
  111. package/dist/components/Tree/index.d.ts +4 -0
  112. package/dist/components/Upload/Upload.vue.d.ts +55 -0
  113. package/dist/components/Upload/index.d.ts +4 -0
  114. package/dist/components/Watermark/Watermark.vue.d.ts +28 -0
  115. package/dist/components/Watermark/index.d.ts +4 -0
  116. package/dist/index.cjs +1 -0
  117. package/dist/index.d.ts +117 -0
  118. package/dist/index.js +2410 -0
  119. package/dist/styles/Alert.css +68 -0
  120. package/dist/styles/Avatar.css +31 -0
  121. package/dist/styles/Badge.css +49 -0
  122. package/dist/styles/Breadcrumb.css +28 -0
  123. package/dist/styles/Button.css +108 -0
  124. package/dist/styles/Calendar.css +79 -0
  125. package/dist/styles/Card.css +40 -0
  126. package/dist/styles/Carousel.css +87 -0
  127. package/dist/styles/Cascader.css +75 -0
  128. package/dist/styles/Checkbox.css +62 -0
  129. package/dist/styles/Collapse.css +49 -0
  130. package/dist/styles/ColorPicker.css +36 -0
  131. package/dist/styles/CountUp.css +4 -0
  132. package/dist/styles/DatePicker.css +33 -0
  133. package/dist/styles/Descriptions.css +44 -0
  134. package/dist/styles/Dialog.css +42 -0
  135. package/dist/styles/Divider.css +37 -0
  136. package/dist/styles/Drawer.css +81 -0
  137. package/dist/styles/Dropdown.css +40 -0
  138. package/dist/styles/Empty.css +24 -0
  139. package/dist/styles/Form.css +33 -0
  140. package/dist/styles/Grid.css +194 -0
  141. package/dist/styles/Icon.css +5 -0
  142. package/dist/styles/Input.css +79 -0
  143. package/dist/styles/InputNumber.css +40 -0
  144. package/dist/styles/InputPassword.css +42 -0
  145. package/dist/styles/List.css +29 -0
  146. package/dist/styles/Loading.css +27 -0
  147. package/dist/styles/Message.css +32 -0
  148. package/dist/styles/Notification.css +50 -0
  149. package/dist/styles/Pagination.css +57 -0
  150. package/dist/styles/Popconfirm.css +53 -0
  151. package/dist/styles/Popover.css +54 -0
  152. package/dist/styles/Progress.css +38 -0
  153. package/dist/styles/Radio.css +60 -0
  154. package/dist/styles/Rate.css +21 -0
  155. package/dist/styles/Result.css +41 -0
  156. package/dist/styles/Search.css +46 -0
  157. package/dist/styles/Segmented.css +32 -0
  158. package/dist/styles/Select.css +108 -0
  159. package/dist/styles/Skeleton.css +40 -0
  160. package/dist/styles/Slider.css +46 -0
  161. package/dist/styles/Space.css +27 -0
  162. package/dist/styles/Statistic.css +31 -0
  163. package/dist/styles/Steps.css +83 -0
  164. package/dist/styles/Switch.css +39 -0
  165. package/dist/styles/Table.css +43 -0
  166. package/dist/styles/Tabs.css +41 -0
  167. package/dist/styles/Tag.css +71 -0
  168. package/dist/styles/Textarea.css +43 -0
  169. package/dist/styles/Timeline.css +70 -0
  170. package/dist/styles/Tooltip.css +42 -0
  171. package/dist/styles/Transfer.css +64 -0
  172. package/dist/styles/Tree.css +50 -0
  173. package/dist/styles/Upload.css +66 -0
  174. package/dist/styles/Watermark.css +17 -0
  175. package/dist/styles/all.css +103 -0
  176. package/dist/styles/dark.css +10 -0
  177. package/dist/styles/index.css +2953 -0
  178. package/dist/styles/themes/amber.css +14 -0
  179. package/dist/styles/themes/aurora.css +15 -0
  180. package/dist/styles/themes/autumn.css +18 -0
  181. package/dist/styles/themes/business.css +20 -0
  182. package/dist/styles/themes/candy.css +21 -0
  183. package/dist/styles/themes/cartoon.css +31 -0
  184. package/dist/styles/themes/coffee.css +18 -0
  185. package/dist/styles/themes/cyber.css +37 -0
  186. package/dist/styles/themes/cyberpunk.css +32 -0
  187. package/dist/styles/themes/danqing.css +27 -0
  188. package/dist/styles/themes/flat.css +18 -0
  189. package/dist/styles/themes/forest.css +20 -0
  190. package/dist/styles/themes/gameboy.css +33 -0
  191. package/dist/styles/themes/glass.css +39 -0
  192. package/dist/styles/themes/gold.css +26 -0
  193. package/dist/styles/themes/gothic.css +20 -0
  194. package/dist/styles/themes/gradient.css +18 -0
  195. package/dist/styles/themes/ink.css +16 -0
  196. package/dist/styles/themes/lava.css +15 -0
  197. package/dist/styles/themes/macaron.css +27 -0
  198. package/dist/styles/themes/matcha.css +18 -0
  199. package/dist/styles/themes/memphis.css +25 -0
  200. package/dist/styles/themes/midnight.css +27 -0
  201. package/dist/styles/themes/minimal.css +36 -0
  202. package/dist/styles/themes/mint.css +20 -0
  203. package/dist/styles/themes/mono.css +36 -0
  204. package/dist/styles/themes/morandi.css +18 -0
  205. package/dist/styles/themes/neon.css +16 -0
  206. package/dist/styles/themes/neonlight.css +20 -0
  207. package/dist/styles/themes/ocean.css +20 -0
  208. package/dist/styles/themes/pastel.css +21 -0
  209. package/dist/styles/themes/pop.css +33 -0
  210. package/dist/styles/themes/retro.css +35 -0
  211. package/dist/styles/themes/rose.css +14 -0
  212. package/dist/styles/themes/rounded.css +18 -0
  213. package/dist/styles/themes/sakura.css +20 -0
  214. package/dist/styles/themes/sky.css +20 -0
  215. package/dist/styles/themes/spring.css +18 -0
  216. package/dist/styles/themes/starry.css +15 -0
  217. package/dist/styles/themes/sunset.css +18 -0
  218. package/dist/styles/themes/teal.css +14 -0
  219. package/dist/styles/themes/terminal.css +44 -0
  220. package/dist/styles/themes/vaporwave.css +27 -0
  221. package/dist/styles/themes/violet.css +14 -0
  222. package/dist/styles/themes/wabi.css +27 -0
  223. package/dist/styles/themes/winter.css +20 -0
  224. package/dist/styles/tokens.css +55 -0
  225. package/package.json +45 -0
@@ -0,0 +1,18 @@
1
+ /* 主题:莫兰迪(低饱和高级灰) */
2
+ [data-theme='morandi'] {
3
+ --kb-color-primary: #9c8f7d;
4
+ --kb-color-success: #8f9e8f;
5
+ --kb-color-warning: #b3a07d;
6
+ --kb-color-danger: #a07d7d;
7
+ --kb-color-info: #7d8f9c;
8
+ --kb-color-bg: #f2f0ec;
9
+ --kb-color-bg-elevated: #e9e5dd;
10
+ --kb-color-border: #d5cfc3;
11
+ --kb-color-text-1: #4a443c;
12
+ --kb-color-text-2: #7a7266;
13
+ --kb-color-text-3: #b0a99c;
14
+ --kb-radius-sm: 8px;
15
+ --kb-radius-md: 12px;
16
+ --kb-radius-lg: 16px;
17
+ --kb-color-primary-gradient: linear-gradient(135deg, #b3a99a, #8d8272);
18
+ }
@@ -0,0 +1,16 @@
1
+ /* 涓婚锛氶湏铏癸紙鏆楀鑽у厜锛? */
2
+ [data-theme='neon'] {
3
+ --kb-color-primary: #22d3ee;
4
+ --kb-color-success: #4ade80;
5
+ --kb-color-warning: #fbbf24;
6
+ --kb-color-danger: #fb7185;
7
+ --kb-color-info: #a78bfa;
8
+ --kb-color-bg: #0b0f19;
9
+ --kb-color-bg-elevated: #131a2a;
10
+ --kb-color-border: #243049;
11
+ --kb-color-text-1: #e2e8f0;
12
+ --kb-color-text-2: #94a3b8;
13
+ --kb-color-text-3: #475569;
14
+ --kb-shadow-1: 0 1px 2px rgb(0 0 0 / 60%);
15
+ --kb-shadow-2: 0 4px 16px rgb(34 211 238 / 15%);
16
+ }
@@ -0,0 +1,20 @@
1
+ /* 主题:浅色霓虹(白底荧光) */
2
+ [data-theme='neonlight'] {
3
+ --kb-color-primary: #00d4ff;
4
+ --kb-color-success: #0f8;
5
+ --kb-color-warning: #ffd500;
6
+ --kb-color-danger: #ff2d78;
7
+ --kb-color-info: #b967ff;
8
+ --kb-color-bg: #fff;
9
+ --kb-color-bg-elevated: #f2fbff;
10
+ --kb-color-border: #d0f2ff;
11
+ --kb-color-text-1: #00283a;
12
+ --kb-color-text-2: #006a8a;
13
+ --kb-color-text-3: #00a8d4;
14
+ --kb-radius-sm: 6px;
15
+ --kb-radius-md: 10px;
16
+ --kb-radius-lg: 14px;
17
+ --kb-shadow-1: 0 2px 8px rgb(0 212 255 / 20%);
18
+ --kb-shadow-2: 0 8px 28px rgb(0 212 255 / 30%);
19
+ --kb-color-primary-gradient: linear-gradient(135deg, #00ff9d, #00d4ff 60%, #b967ff);
20
+ }
@@ -0,0 +1,20 @@
1
+ /* 椋庢牸锛氭捣娲嬶紙娣辫摑 + 姘磋壊锛? */
2
+ [data-theme='ocean'] {
3
+ --kb-color-primary: #0284c7;
4
+ --kb-color-success: #0d9488;
5
+ --kb-color-warning: #eab308;
6
+ --kb-color-danger: #e11d48;
7
+ --kb-color-info: #0369a1;
8
+ --kb-color-bg: #f0f9ff;
9
+ --kb-color-bg-elevated: #e0f2fe;
10
+ --kb-color-border: #bae6fd;
11
+ --kb-color-text-1: #0c4a6e;
12
+ --kb-color-text-2: #0369a1;
13
+ --kb-color-text-3: #7dd3fc;
14
+ --kb-radius-sm: 8px;
15
+ --kb-radius-md: 12px;
16
+ --kb-radius-lg: 20px;
17
+ --kb-shadow-1: 0 2px 8px rgb(2 132 199 / 15%);
18
+ --kb-shadow-2: 0 8px 28px rgb(2 132 199 / 25%);
19
+ --kb-color-primary-gradient: linear-gradient(135deg, #38bdf8, #0284c7);
20
+ }
@@ -0,0 +1,21 @@
1
+ /* 主题:粉彩(低饱和柔和) */
2
+ [data-theme='pastel'] {
3
+ --kb-color-primary: #b8a8e0;
4
+ --kb-color-success: #a8d8b8;
5
+ --kb-color-warning: #f5d5a8;
6
+ --kb-color-danger: #e8a8a8;
7
+ --kb-color-info: #a8c8e0;
8
+ --kb-color-bg: #fbfafc;
9
+ --kb-color-bg-elevated: #f2eef8;
10
+ --kb-color-border: #e2d8f0;
11
+ --kb-color-text-1: #4a3f5c;
12
+ --kb-color-text-2: #7a6f8c;
13
+ --kb-color-text-3: #b5a9c8;
14
+ --kb-radius-sm: 12px;
15
+ --kb-radius-md: 18px;
16
+ --kb-radius-lg: 26px;
17
+ --kb-radius-round: 999px;
18
+ --kb-shadow-1: 0 2px 10px rgb(184 168 224 / 18%);
19
+ --kb-shadow-2: 0 8px 30px rgb(184 168 224 / 25%);
20
+ --kb-color-primary-gradient: linear-gradient(135deg, #c8b8e8, #b8a8e0);
21
+ }
@@ -0,0 +1,33 @@
1
+ /* 主题:波普(亮黄红蓝粗边框) */
2
+ [data-theme='pop'] {
3
+ --kb-color-primary: #ff2d55;
4
+ --kb-color-success: #00c7be;
5
+ --kb-color-warning: #fc0;
6
+ --kb-color-danger: #ff2d55;
7
+ --kb-color-info: #0095ff;
8
+ --kb-color-bg: #fff9e6;
9
+ --kb-color-bg-elevated: #fff0b3;
10
+ --kb-color-border: #000;
11
+ --kb-color-text-1: #000;
12
+ --kb-color-text-2: #333;
13
+ --kb-color-text-3: #999;
14
+ --kb-radius-sm: 0;
15
+ --kb-radius-md: 0;
16
+ --kb-radius-lg: 0;
17
+ --kb-radius-round: 0;
18
+ --kb-shadow-1: none;
19
+ --kb-shadow-2: none;
20
+ --kb-color-primary-gradient: var(--kb-color-primary);
21
+ --kb-font-family:
22
+ 'Impact', 'Arial Black', sans-serif;
23
+ }
24
+
25
+ [data-theme='pop'] .kb-button:not(.kb-button--plain) {
26
+ border: 3px solid var(--kb-color-text-1);
27
+ text-transform: uppercase;
28
+ }
29
+
30
+ [data-theme='pop'] .kb-card,
31
+ [data-theme='pop'] .kb-dialog {
32
+ border: 3px solid var(--kb-color-text-1);
33
+ }
@@ -0,0 +1,35 @@
1
+ /* 妞嬪孩鐗搁敍姘槻閸欍倖濮ら崚濠忕礄缁娊绮嶇痪?+ 閸欏瞼鍤庢潏瑙勵攱閿? */
2
+ [data-theme='retro'] {
3
+ --kb-color-primary: #8b5a2b;
4
+ --kb-color-success: #6b7a3f;
5
+ --kb-color-warning: #a16207;
6
+ --kb-color-danger: #7f1d1d;
7
+ --kb-color-info: #5c4033;
8
+ --kb-color-bg: #f5efe0;
9
+ --kb-color-bg-elevated: #efe6d0;
10
+ --kb-color-border: #8b5a2b;
11
+ --kb-color-text-1: #3e2f1c;
12
+ --kb-color-text-2: #6b5636;
13
+ --kb-color-text-3: #a08b6a;
14
+ --kb-radius-sm: 0;
15
+ --kb-radius-md: 0;
16
+ --kb-radius-lg: 0;
17
+ --kb-radius-round: 0;
18
+ --kb-shadow-1: none;
19
+ --kb-shadow-2: none;
20
+ --kb-color-primary-gradient: var(--kb-color-primary);
21
+ --kb-font-family:
22
+ 'Noto Serif SC', 'Songti SC', georgia, serif;
23
+ }
24
+
25
+ [data-theme='retro'] .kb-card,
26
+ [data-theme='retro'] .kb-dialog,
27
+ [data-theme='retro'] .kb-button:not(.kb-button--plain) {
28
+ box-shadow: 3px 3px 0 var(--kb-color-primary);
29
+ }
30
+
31
+ [data-theme='retro'] .kb-card__header,
32
+ [data-theme='retro'] .kb-dialog__header {
33
+ border-bottom: 2px double var(--kb-color-border);
34
+ letter-spacing: 2px;
35
+ }
@@ -0,0 +1,14 @@
1
+ /* 涓婚锛氱帿鐟帮紙娓╂煍绮夌孩锛? */
2
+ [data-theme='rose'] {
3
+ --kb-color-primary: #e11d48;
4
+ --kb-color-success: #16a34a;
5
+ --kb-color-warning: #ea580c;
6
+ --kb-color-danger: #be123c;
7
+ --kb-color-info: #db2777;
8
+ --kb-color-bg: #fffbfc;
9
+ --kb-color-bg-elevated: #fff1f3;
10
+ --kb-color-border: #ffe4e6;
11
+ --kb-color-text-1: #881337;
12
+ --kb-color-text-2: #9f1239;
13
+ --kb-color-text-3: #fda4af;
14
+ }
@@ -0,0 +1,18 @@
1
+ /* 椋庢牸锛氬渾娑︾硸鏋滐紙澶у渾瑙?+ 鏌斿拰闃村奖锛? */
2
+ [data-theme='rounded'] {
3
+ --kb-color-primary: #6366f1;
4
+ --kb-color-success: #10b981;
5
+ --kb-color-warning: #f59e0b;
6
+ --kb-color-danger: #f43f5e;
7
+ --kb-color-info: #06b6d4;
8
+ --kb-color-bg: #fffdfd;
9
+ --kb-color-bg-elevated: #f5f3ff;
10
+ --kb-color-border: #e9e5ff;
11
+ --kb-radius-sm: 10px;
12
+ --kb-radius-md: 16px;
13
+ --kb-radius-lg: 24px;
14
+ --kb-radius-round: 999px;
15
+ --kb-shadow-1: 0 2px 8px rgb(99 102 241 / 12%);
16
+ --kb-shadow-2: 0 8px 24px rgb(99 102 241 / 18%);
17
+ --kb-color-primary-gradient: linear-gradient(135deg, #818cf8, #6366f1);
18
+ }
@@ -0,0 +1,20 @@
1
+ /* 主题:樱花(浅粉 + 柔和春意) */
2
+ [data-theme='sakura'] {
3
+ --kb-color-primary: #f472b6;
4
+ --kb-color-success: #86efac;
5
+ --kb-color-warning: #fcd34d;
6
+ --kb-color-danger: #fb7185;
7
+ --kb-color-info: #a5b4fc;
8
+ --kb-color-bg: #fff7fb;
9
+ --kb-color-bg-elevated: #fdeef7;
10
+ --kb-color-border: #fbcfe8;
11
+ --kb-color-text-1: #831843;
12
+ --kb-color-text-2: #be185d;
13
+ --kb-color-text-3: #f9a8d4;
14
+ --kb-radius-sm: 10px;
15
+ --kb-radius-md: 16px;
16
+ --kb-radius-lg: 24px;
17
+ --kb-shadow-1: 0 2px 8px rgb(244 114 182 / 15%);
18
+ --kb-shadow-2: 0 8px 28px rgb(244 114 182 / 22%);
19
+ --kb-color-primary-gradient: linear-gradient(135deg, #f9a8d4, #f472b6);
20
+ }
@@ -0,0 +1,20 @@
1
+ /* 主题:天空(明亮蓝白) */
2
+ [data-theme='sky'] {
3
+ --kb-color-primary: #0284c7;
4
+ --kb-color-success: #16a34a;
5
+ --kb-color-warning: #d97706;
6
+ --kb-color-danger: #dc2626;
7
+ --kb-color-info: #0ea5e9;
8
+ --kb-color-bg: #f8fafc;
9
+ --kb-color-bg-elevated: #eff6ff;
10
+ --kb-color-border: #bfdbfe;
11
+ --kb-color-text-1: #0c4a6e;
12
+ --kb-color-text-2: #075985;
13
+ --kb-color-text-3: #7dd3fc;
14
+ --kb-radius-sm: 6px;
15
+ --kb-radius-md: 10px;
16
+ --kb-radius-lg: 16px;
17
+ --kb-shadow-1: 0 2px 8px rgb(2 132 199 / 12%);
18
+ --kb-shadow-2: 0 8px 28px rgb(2 132 199 / 18%);
19
+ --kb-color-primary-gradient: linear-gradient(135deg, #38bdf8, #0284c7);
20
+ }
@@ -0,0 +1,18 @@
1
+ /* 主题:春(嫩绿 + 鹅黄) */
2
+ [data-theme='spring'] {
3
+ --kb-color-primary: #22c55e;
4
+ --kb-color-success: #4ade80;
5
+ --kb-color-warning: #facc15;
6
+ --kb-color-danger: #f87171;
7
+ --kb-color-info: #38bdf8;
8
+ --kb-color-bg: #f7fef7;
9
+ --kb-color-bg-elevated: #ecfdf0;
10
+ --kb-color-border: #d1fae5;
11
+ --kb-color-text-1: #14532d;
12
+ --kb-color-text-2: #166534;
13
+ --kb-color-text-3: #86efac;
14
+ --kb-radius-sm: 8px;
15
+ --kb-radius-md: 12px;
16
+ --kb-radius-lg: 18px;
17
+ --kb-color-primary-gradient: linear-gradient(135deg, #86efac, #22c55e);
18
+ }
@@ -0,0 +1,15 @@
1
+ /* 主题:星空(深蓝 + 星点) */
2
+ [data-theme='starry'] {
3
+ --kb-color-primary: #818cf8;
4
+ --kb-color-success: #34d399;
5
+ --kb-color-warning: #fbbf24;
6
+ --kb-color-danger: #fb7185;
7
+ --kb-color-info: #38bdf8;
8
+ --kb-color-bg: #0b1120;
9
+ --kb-color-bg-elevated: #131c33;
10
+ --kb-color-border: #243255;
11
+ --kb-color-text-1: #e2e8f0;
12
+ --kb-color-text-2: #94a3b8;
13
+ --kb-color-text-3: #475569;
14
+ --kb-color-primary-gradient: linear-gradient(135deg, #a5b4fc, #6366f1);
15
+ }
@@ -0,0 +1,18 @@
1
+ /* 主题:日落(橙粉渐变暖色) */
2
+ [data-theme='sunset'] {
3
+ --kb-color-primary: #fb7185;
4
+ --kb-color-success: #fbbf24;
5
+ --kb-color-warning: #fb923c;
6
+ --kb-color-danger: #ef4444;
7
+ --kb-color-info: #f472b6;
8
+ --kb-color-bg: #fff7f5;
9
+ --kb-color-bg-elevated: #ffebe6;
10
+ --kb-color-border: #ffd6cc;
11
+ --kb-color-text-1: #5b1f12;
12
+ --kb-color-text-2: #a83d22;
13
+ --kb-color-text-3: #e88a6f;
14
+ --kb-radius-sm: 10px;
15
+ --kb-radius-md: 16px;
16
+ --kb-radius-lg: 24px;
17
+ --kb-color-primary-gradient: linear-gradient(135deg, #fb923c, #fb7185 55%, #f472b6);
18
+ }
@@ -0,0 +1,14 @@
1
+ /* 涓婚锛氶潚纰э紙娓呮柊闈掔豢锛? */
2
+ [data-theme='teal'] {
3
+ --kb-color-primary: #0d9488;
4
+ --kb-color-success: #059669;
5
+ --kb-color-warning: #ca8a04;
6
+ --kb-color-danger: #e11d48;
7
+ --kb-color-info: #0891b2;
8
+ --kb-color-bg: #fff;
9
+ --kb-color-bg-elevated: #f0fdfa;
10
+ --kb-color-border: #ccfbf1;
11
+ --kb-color-text-1: #134e4a;
12
+ --kb-color-text-2: #115e59;
13
+ --kb-color-text-3: #5eead4;
14
+ }
@@ -0,0 +1,44 @@
1
+ /* 椋庢牸锛氬鍙ょ粓绔紙绛夊瀛椾綋 + 缁块粦 + 閿愯锛? */
2
+ [data-theme='terminal'] {
3
+ --kb-color-primary: #22c55e;
4
+ --kb-color-success: #4ade80;
5
+ --kb-color-warning: #facc15;
6
+ --kb-color-danger: #f87171;
7
+ --kb-color-info: #38bdf8;
8
+ --kb-color-bg: #0a0f0a;
9
+ --kb-color-bg-elevated: #101810;
10
+ --kb-color-border: #1f3d23;
11
+ --kb-color-text-1: #86efac;
12
+ --kb-color-text-2: #4ade80;
13
+ --kb-color-text-3: #22c55e;
14
+ --kb-radius-sm: 0;
15
+ --kb-radius-md: 0;
16
+ --kb-radius-lg: 0;
17
+ --kb-radius-round: 0;
18
+ --kb-shadow-1: none;
19
+ --kb-shadow-2: none;
20
+ --kb-color-primary-gradient: var(--kb-color-primary);
21
+ --kb-font-family:
22
+ 'Cascadia Code', 'Consolas', 'Courier New', ui-monospace, monospace;
23
+ }
24
+
25
+ [data-theme='terminal'] .kb-button {
26
+ text-transform: uppercase;
27
+ letter-spacing: 1px;
28
+ }
29
+
30
+ [data-theme='terminal'] .kb-button--primary {
31
+ border: 1px solid var(--kb-color-primary);
32
+ background: transparent;
33
+ color: var(--kb-color-primary);
34
+ }
35
+
36
+ [data-theme='terminal'] .kb-button--primary:hover:not(.kb-button--disabled) {
37
+ background: var(--kb-color-primary);
38
+ color: var(--kb-color-bg);
39
+ }
40
+
41
+ [data-theme='terminal'] .kb-card,
42
+ [data-theme='terminal'] .kb-dialog {
43
+ border: 1px solid var(--kb-color-primary);
44
+ }
@@ -0,0 +1,27 @@
1
+ /* 风格:蒸汽波(粉紫霓虹 + 复古未来) */
2
+ [data-theme='vaporwave'] {
3
+ --kb-color-primary: #ff2e97;
4
+ --kb-color-success: #00d2ff;
5
+ --kb-color-warning: #ffe14d;
6
+ --kb-color-danger: #ff3860;
7
+ --kb-color-info: #9d4edd;
8
+ --kb-color-bg: #1a0b2e;
9
+ --kb-color-bg-elevated: #2a1450;
10
+ --kb-color-border: #4a2d8a;
11
+ --kb-color-text-1: #f5e6ff;
12
+ --kb-color-text-2: #c4a6e8;
13
+ --kb-color-text-3: #7a5cb0;
14
+ --kb-radius-sm: 4px;
15
+ --kb-radius-md: 8px;
16
+ --kb-radius-lg: 12px;
17
+ --kb-shadow-1: 0 0 8px rgb(255 46 151 / 25%);
18
+ --kb-shadow-2: 0 0 24px rgb(255 46 151 / 35%);
19
+ --kb-color-primary-gradient: linear-gradient(135deg, #00d2ff, #ff2e97);
20
+ --kb-font-family:
21
+ 'Courier New', monospace;
22
+ }
23
+
24
+ [data-theme='vaporwave'] .kb-card,
25
+ [data-theme='vaporwave'] .kb-dialog {
26
+ border: 1px solid var(--kb-color-primary);
27
+ }
@@ -0,0 +1,14 @@
1
+ /* 涓婚锛氱传缃楀叞锛堜紭闆呯传锛? */
2
+ [data-theme='violet'] {
3
+ --kb-color-primary: #7c3aed;
4
+ --kb-color-success: #059669;
5
+ --kb-color-warning: #d97706;
6
+ --kb-color-danger: #e11d48;
7
+ --kb-color-info: #6366f1;
8
+ --kb-color-bg: #fff;
9
+ --kb-color-bg-elevated: #f5f3ff;
10
+ --kb-color-border: #e4e0f5;
11
+ --kb-color-text-1: #2e1065;
12
+ --kb-color-text-2: #5b21b6;
13
+ --kb-color-text-3: #a78bfa;
14
+ }
@@ -0,0 +1,27 @@
1
+ /* 风格:日式侘寂(米白灰 + 高级克制) */
2
+ [data-theme='wabi'] {
3
+ --kb-color-primary: #7c6f64;
4
+ --kb-color-success: #8a9a5b;
5
+ --kb-color-warning: #c8a45d;
6
+ --kb-color-danger: #a05d5d;
7
+ --kb-color-info: #6d7a83;
8
+ --kb-color-bg: #f4f1ea;
9
+ --kb-color-bg-elevated: #ebe6db;
10
+ --kb-color-border: #ddd6c8;
11
+ --kb-color-text-1: #3d3832;
12
+ --kb-color-text-2: #6b655b;
13
+ --kb-color-text-3: #a8a094;
14
+ --kb-radius-sm: 2px;
15
+ --kb-radius-md: 4px;
16
+ --kb-radius-lg: 6px;
17
+ --kb-shadow-1: 0 1px 4px rgb(61 56 50 / 8%);
18
+ --kb-shadow-2: 0 6px 20px rgb(61 56 50 / 12%);
19
+ --kb-color-primary-gradient: var(--kb-color-primary);
20
+ --kb-font-family:
21
+ 'Noto Serif SC', 'Songti SC', 'Hiragino Mincho ProN', serif;
22
+ }
23
+
24
+ [data-theme='wabi'] .kb-button {
25
+ font-weight: 400;
26
+ letter-spacing: 2px;
27
+ }
@@ -0,0 +1,20 @@
1
+ /* 主题:冬(冰雪蓝白 + 冷冽) */
2
+ [data-theme='winter'] {
3
+ --kb-color-primary: #38bdf8;
4
+ --kb-color-success: #34d399;
5
+ --kb-color-warning: #a5b4fc;
6
+ --kb-color-danger: #60a5fa;
7
+ --kb-color-info: #818cf8;
8
+ --kb-color-bg: #f0f9ff;
9
+ --kb-color-bg-elevated: #e0f2fe;
10
+ --kb-color-border: #bae6fd;
11
+ --kb-color-text-1: #0c4a6e;
12
+ --kb-color-text-2: #075985;
13
+ --kb-color-text-3: #7dd3fc;
14
+ --kb-radius-sm: 10px;
15
+ --kb-radius-md: 16px;
16
+ --kb-radius-lg: 24px;
17
+ --kb-shadow-1: 0 2px 10px rgb(56 189 248 / 20%);
18
+ --kb-shadow-2: 0 8px 32px rgb(56 189 248 / 28%);
19
+ --kb-color-primary-gradient: linear-gradient(135deg, #7dd3fc, #38bdf8);
20
+ }
@@ -0,0 +1,55 @@
1
+ :root {
2
+ /* 品牌色 */
3
+ --kb-color-primary: #3b82f6;
4
+ --kb-color-success: #16a34a;
5
+ --kb-color-warning: #f59e0b;
6
+ --kb-color-danger: #dc2626;
7
+ --kb-color-info: #64748b;
8
+
9
+ /* 渐变变体(风格主题可覆盖,默认与实色一致) */
10
+ --kb-color-primary-gradient: linear-gradient(135deg, var(--kb-color-primary), var(--kb-color-primary));
11
+ --kb-color-success-gradient: linear-gradient(135deg, var(--kb-color-success), var(--kb-color-success));
12
+
13
+ /* 中性色 */
14
+ --kb-color-bg: #fff;
15
+ --kb-color-bg-elevated: #f8fafc;
16
+ --kb-color-border: #e2e8f0;
17
+ --kb-color-text-1: #0f172a;
18
+ --kb-color-text-2: #475569;
19
+ --kb-color-text-3: #94a3b8;
20
+
21
+ /* 圆角 */
22
+ --kb-radius-sm: 4px;
23
+ --kb-radius-md: 6px;
24
+ --kb-radius-lg: 10px;
25
+ --kb-radius-round: 999px;
26
+
27
+ /* 阴影 */
28
+ --kb-shadow-1: 0 1px 2px rgb(0 0 0 / 5%);
29
+ --kb-shadow-2: 0 4px 12px rgb(0 0 0 / 8%);
30
+
31
+ /* 字体 */
32
+ --kb-font-family:
33
+ -apple-system, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
34
+ --kb-font-size-xs: 12px;
35
+ --kb-font-size-sm: 13px;
36
+ --kb-font-size-md: 14px;
37
+ --kb-font-size-lg: 16px;
38
+ --kb-font-size-xl: 20px;
39
+
40
+ /* 间距(4px 基数) */
41
+ --kb-space-1: 4px;
42
+ --kb-space-2: 8px;
43
+ --kb-space-3: 12px;
44
+ --kb-space-4: 16px;
45
+ --kb-space-5: 20px;
46
+ --kb-space-6: 24px;
47
+
48
+ /* 过渡 */
49
+ --kb-transition-duration: 0.2s;
50
+ --kb-transition-timing: ease;
51
+
52
+ /* 层级 */
53
+ --kb-z-index-message: 2000;
54
+ --kb-z-index-modal: 1000;
55
+ }
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "kb-ui-vue",
3
+ "version": "0.2.0",
4
+ "type": "module",
5
+ "files": [
6
+ "dist"
7
+ ],
8
+ "main": "./dist/index.cjs",
9
+ "module": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js",
15
+ "require": "./dist/index.cjs"
16
+ },
17
+ "./styles/*": "./dist/styles/*",
18
+ "./package.json": "./package.json"
19
+ },
20
+ "sideEffects": [
21
+ "**/*.css"
22
+ ],
23
+ "publishConfig": { "access": "public" },
24
+ "peerDependencies": {
25
+ "vue": "^3.4.0"
26
+ },
27
+ "scripts": {
28
+ "dev": "vite",
29
+ "build": "vue-tsc --noEmit && vite build && node scripts/build-styles.mjs",
30
+ "test": "vitest run",
31
+ "typecheck": "vue-tsc --noEmit",
32
+ "lint": "eslint . && stylelint \"src/**/*.css\" --allow-empty-input"
33
+ },
34
+ "devDependencies": {
35
+ "@vitejs/plugin-vue": "^6.0.8",
36
+ "@vue/test-utils": "^2.4.11",
37
+ "jsdom": "^30.0.1",
38
+ "typescript": "^5.9.3",
39
+ "vite": "^8.2.1",
40
+ "vite-plugin-dts": "^5.0.3",
41
+ "vitest": "^4.1.10",
42
+ "vue": "^3.5.41",
43
+ "vue-tsc": "^3.3.9"
44
+ }
45
+ }