cybercore-css 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 (381) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +479 -0
  3. package/dist/cybercore.css +3546 -0
  4. package/dist/cybercore.css.map +1 -0
  5. package/dist/cybercore.min.css +3 -0
  6. package/dist/cybercore.min.css.map +1 -0
  7. package/package.json +214 -0
  8. package/src/cybercore.d.ts +107 -0
  9. package/src/icons/README.md +378 -0
  10. package/src/icons/defs/_template.ts +27 -0
  11. package/src/icons/defs/actions/check.ts +36 -0
  12. package/src/icons/defs/actions/copy.ts +37 -0
  13. package/src/icons/defs/actions/cut.ts +44 -0
  14. package/src/icons/defs/actions/delete.ts +42 -0
  15. package/src/icons/defs/actions/download.ts +36 -0
  16. package/src/icons/defs/actions/drag.ts +60 -0
  17. package/src/icons/defs/actions/edit.ts +36 -0
  18. package/src/icons/defs/actions/filter.ts +33 -0
  19. package/src/icons/defs/actions/index.ts +28 -0
  20. package/src/icons/defs/actions/link.ts +40 -0
  21. package/src/icons/defs/actions/minus.ts +42 -0
  22. package/src/icons/defs/actions/paste.ts +39 -0
  23. package/src/icons/defs/actions/pin.ts +36 -0
  24. package/src/icons/defs/actions/plus.ts +46 -0
  25. package/src/icons/defs/actions/redo.ts +37 -0
  26. package/src/icons/defs/actions/refresh.ts +36 -0
  27. package/src/icons/defs/actions/save.ts +36 -0
  28. package/src/icons/defs/actions/search.ts +37 -0
  29. package/src/icons/defs/actions/share.ts +45 -0
  30. package/src/icons/defs/actions/sort.ts +39 -0
  31. package/src/icons/defs/actions/undo.ts +37 -0
  32. package/src/icons/defs/actions/unlink.ts +44 -0
  33. package/src/icons/defs/actions/upload.ts +36 -0
  34. package/src/icons/defs/actions/x.ts +40 -0
  35. package/src/icons/defs/communication/at-sign.ts +37 -0
  36. package/src/icons/defs/communication/bell-off.ts +44 -0
  37. package/src/icons/defs/communication/bell.ts +37 -0
  38. package/src/icons/defs/communication/inbox.ts +40 -0
  39. package/src/icons/defs/communication/index.ts +15 -0
  40. package/src/icons/defs/communication/mail.ts +40 -0
  41. package/src/icons/defs/communication/message.ts +42 -0
  42. package/src/icons/defs/communication/phone-off.ts +35 -0
  43. package/src/icons/defs/communication/phone.ts +36 -0
  44. package/src/icons/defs/communication/send.ts +37 -0
  45. package/src/icons/defs/communication/video-call.ts +44 -0
  46. package/src/icons/defs/data/calendar.ts +55 -0
  47. package/src/icons/defs/data/chart-bar.ts +48 -0
  48. package/src/icons/defs/data/chart-line.ts +41 -0
  49. package/src/icons/defs/data/chart-pie.ts +42 -0
  50. package/src/icons/defs/data/clock.ts +37 -0
  51. package/src/icons/defs/data/cloud-download.ts +41 -0
  52. package/src/icons/defs/data/cloud-upload.ts +41 -0
  53. package/src/icons/defs/data/cloud.ts +36 -0
  54. package/src/icons/defs/data/database.ts +50 -0
  55. package/src/icons/defs/data/hash.ts +43 -0
  56. package/src/icons/defs/data/index.ts +19 -0
  57. package/src/icons/defs/data/percent.ts +39 -0
  58. package/src/icons/defs/data/sync.ts +43 -0
  59. package/src/icons/defs/data/table.ts +50 -0
  60. package/src/icons/defs/data/timer.ts +47 -0
  61. package/src/icons/defs/files/archive.ts +39 -0
  62. package/src/icons/defs/files/attachment.ts +34 -0
  63. package/src/icons/defs/files/clipboard.ts +45 -0
  64. package/src/icons/defs/files/file-archive.ts +45 -0
  65. package/src/icons/defs/files/file-audio.ts +41 -0
  66. package/src/icons/defs/files/file-code.ts +41 -0
  67. package/src/icons/defs/files/file-image.ts +41 -0
  68. package/src/icons/defs/files/file-minus.ts +37 -0
  69. package/src/icons/defs/files/file-plus.ts +41 -0
  70. package/src/icons/defs/files/file-text.ts +41 -0
  71. package/src/icons/defs/files/file-video.ts +37 -0
  72. package/src/icons/defs/files/file.ts +34 -0
  73. package/src/icons/defs/files/folder-open.ts +34 -0
  74. package/src/icons/defs/files/folder-plus.ts +38 -0
  75. package/src/icons/defs/files/folder.ts +30 -0
  76. package/src/icons/defs/files/index.ts +20 -0
  77. package/src/icons/defs/index.ts +58 -0
  78. package/src/icons/defs/media/camera-off.ts +39 -0
  79. package/src/icons/defs/media/camera.ts +34 -0
  80. package/src/icons/defs/media/fast-forward.ts +34 -0
  81. package/src/icons/defs/media/image.ts +39 -0
  82. package/src/icons/defs/media/index.ts +22 -0
  83. package/src/icons/defs/media/mic-off.ts +44 -0
  84. package/src/icons/defs/media/mic.ts +39 -0
  85. package/src/icons/defs/media/music.ts +39 -0
  86. package/src/icons/defs/media/pause.ts +36 -0
  87. package/src/icons/defs/media/play.ts +34 -0
  88. package/src/icons/defs/media/rewind.ts +34 -0
  89. package/src/icons/defs/media/skip-back.ts +34 -0
  90. package/src/icons/defs/media/skip-forward.ts +34 -0
  91. package/src/icons/defs/media/stop.ts +34 -0
  92. package/src/icons/defs/media/video.ts +39 -0
  93. package/src/icons/defs/media/volume-high.ts +39 -0
  94. package/src/icons/defs/media/volume-low.ts +34 -0
  95. package/src/icons/defs/media/volume-off.ts +34 -0
  96. package/src/icons/defs/navigation/arrow-down.ts +34 -0
  97. package/src/icons/defs/navigation/arrow-left.ts +34 -0
  98. package/src/icons/defs/navigation/arrow-right.ts +34 -0
  99. package/src/icons/defs/navigation/arrow-up.ts +34 -0
  100. package/src/icons/defs/navigation/chevron-down.ts +31 -0
  101. package/src/icons/defs/navigation/chevron-left.ts +31 -0
  102. package/src/icons/defs/navigation/chevron-right.ts +31 -0
  103. package/src/icons/defs/navigation/chevron-up.ts +31 -0
  104. package/src/icons/defs/navigation/external-link.ts +37 -0
  105. package/src/icons/defs/navigation/home.ts +34 -0
  106. package/src/icons/defs/navigation/index.ts +19 -0
  107. package/src/icons/defs/navigation/maximize.ts +36 -0
  108. package/src/icons/defs/navigation/menu-dots.ts +42 -0
  109. package/src/icons/defs/navigation/menu.ts +42 -0
  110. package/src/icons/defs/navigation/minimize.ts +32 -0
  111. package/src/icons/defs/security/eye-off.ts +42 -0
  112. package/src/icons/defs/security/eye.ts +37 -0
  113. package/src/icons/defs/security/fingerprint.ts +51 -0
  114. package/src/icons/defs/security/index.ts +20 -0
  115. package/src/icons/defs/security/key.ts +43 -0
  116. package/src/icons/defs/security/lock.ts +40 -0
  117. package/src/icons/defs/security/log-in.ts +40 -0
  118. package/src/icons/defs/security/log-out.ts +40 -0
  119. package/src/icons/defs/security/shield-check.ts +34 -0
  120. package/src/icons/defs/security/shield-x.ts +38 -0
  121. package/src/icons/defs/security/shield.ts +36 -0
  122. package/src/icons/defs/security/unlock.ts +40 -0
  123. package/src/icons/defs/security/user-minus.ts +39 -0
  124. package/src/icons/defs/security/user-plus.ts +43 -0
  125. package/src/icons/defs/security/user.ts +41 -0
  126. package/src/icons/defs/security/users.ts +43 -0
  127. package/src/icons/defs/social/award.ts +41 -0
  128. package/src/icons/defs/social/bookmark-filled.ts +24 -0
  129. package/src/icons/defs/social/bookmark.ts +25 -0
  130. package/src/icons/defs/social/flag.ts +35 -0
  131. package/src/icons/defs/social/heart-filled.ts +24 -0
  132. package/src/icons/defs/social/heart.ts +25 -0
  133. package/src/icons/defs/social/index.ts +11 -0
  134. package/src/icons/defs/social/star-filled.ts +24 -0
  135. package/src/icons/defs/social/star.ts +25 -0
  136. package/src/icons/defs/social/thumbs-down.ts +42 -0
  137. package/src/icons/defs/social/thumbs-up.ts +42 -0
  138. package/src/icons/defs/social/trending.ts +36 -0
  139. package/src/icons/defs/status/battery-charging.ts +30 -0
  140. package/src/icons/defs/status/battery-full.ts +30 -0
  141. package/src/icons/defs/status/battery-low.ts +31 -0
  142. package/src/icons/defs/status/error.ts +31 -0
  143. package/src/icons/defs/status/help.ts +30 -0
  144. package/src/icons/defs/status/index.ts +12 -0
  145. package/src/icons/defs/status/info.ts +30 -0
  146. package/src/icons/defs/status/loading.ts +52 -0
  147. package/src/icons/defs/status/offline.ts +28 -0
  148. package/src/icons/defs/status/online.ts +30 -0
  149. package/src/icons/defs/status/progress.ts +31 -0
  150. package/src/icons/defs/status/success.ts +27 -0
  151. package/src/icons/defs/status/warning.ts +30 -0
  152. package/src/icons/defs/tech/api.ts +55 -0
  153. package/src/icons/defs/tech/bluetooth.ts +33 -0
  154. package/src/icons/defs/tech/bug.ts +58 -0
  155. package/src/icons/defs/tech/chip.ts +80 -0
  156. package/src/icons/defs/tech/circuit.ts +57 -0
  157. package/src/icons/defs/tech/code.ts +36 -0
  158. package/src/icons/defs/tech/cpu.ts +58 -0
  159. package/src/icons/defs/tech/git-branch.ts +41 -0
  160. package/src/icons/defs/tech/git-commit.ts +38 -0
  161. package/src/icons/defs/tech/git-merge.ts +46 -0
  162. package/src/icons/defs/tech/git-pull.ts +50 -0
  163. package/src/icons/defs/tech/globe.ts +36 -0
  164. package/src/icons/defs/tech/index.ts +27 -0
  165. package/src/icons/defs/tech/memory.ts +61 -0
  166. package/src/icons/defs/tech/qr-code.ts +81 -0
  167. package/src/icons/defs/tech/server.ts +45 -0
  168. package/src/icons/defs/tech/settings.ts +33 -0
  169. package/src/icons/defs/tech/signal.ts +43 -0
  170. package/src/icons/defs/tech/sliders.ts +63 -0
  171. package/src/icons/defs/tech/terminal.ts +36 -0
  172. package/src/icons/defs/tech/wifi-off.ts +43 -0
  173. package/src/icons/defs/tech/wifi.ts +38 -0
  174. package/src/icons/defs/tech/zap.ts +30 -0
  175. package/src/icons/icon-list.ts +305 -0
  176. package/src/icons/index.ts +95 -0
  177. package/src/icons/individual.ts +210 -0
  178. package/src/icons/registry.ts +2276 -0
  179. package/src/icons/svg/actions/check.svg +5 -0
  180. package/src/icons/svg/actions/copy.svg +6 -0
  181. package/src/icons/svg/actions/cut.svg +7 -0
  182. package/src/icons/svg/actions/delete.svg +7 -0
  183. package/src/icons/svg/actions/download.svg +5 -0
  184. package/src/icons/svg/actions/drag.svg +8 -0
  185. package/src/icons/svg/actions/edit.svg +5 -0
  186. package/src/icons/svg/actions/filter.svg +4 -0
  187. package/src/icons/svg/actions/link.svg +6 -0
  188. package/src/icons/svg/actions/minus.svg +7 -0
  189. package/src/icons/svg/actions/paste.svg +6 -0
  190. package/src/icons/svg/actions/pin.svg +5 -0
  191. package/src/icons/svg/actions/plus.svg +8 -0
  192. package/src/icons/svg/actions/redo.svg +5 -0
  193. package/src/icons/svg/actions/refresh.svg +5 -0
  194. package/src/icons/svg/actions/save.svg +5 -0
  195. package/src/icons/svg/actions/search.svg +5 -0
  196. package/src/icons/svg/actions/share.svg +7 -0
  197. package/src/icons/svg/actions/sort.svg +6 -0
  198. package/src/icons/svg/actions/undo.svg +5 -0
  199. package/src/icons/svg/actions/unlink.svg +7 -0
  200. package/src/icons/svg/actions/upload.svg +5 -0
  201. package/src/icons/svg/actions/x.svg +6 -0
  202. package/src/icons/svg/communication/at-sign.svg +5 -0
  203. package/src/icons/svg/communication/bell-off.svg +8 -0
  204. package/src/icons/svg/communication/bell.svg +5 -0
  205. package/src/icons/svg/communication/inbox.svg +6 -0
  206. package/src/icons/svg/communication/mail.svg +6 -0
  207. package/src/icons/svg/communication/message.svg +6 -0
  208. package/src/icons/svg/communication/phone-off.svg +4 -0
  209. package/src/icons/svg/communication/phone.svg +5 -0
  210. package/src/icons/svg/communication/send.svg +5 -0
  211. package/src/icons/svg/communication/video-call.svg +7 -0
  212. package/src/icons/svg/data/calendar.svg +11 -0
  213. package/src/icons/svg/data/chart-bar.svg +6 -0
  214. package/src/icons/svg/data/chart-line.svg +5 -0
  215. package/src/icons/svg/data/chart-pie.svg +6 -0
  216. package/src/icons/svg/data/clock.svg +5 -0
  217. package/src/icons/svg/data/cloud-download.svg +5 -0
  218. package/src/icons/svg/data/cloud-upload.svg +5 -0
  219. package/src/icons/svg/data/cloud.svg +4 -0
  220. package/src/icons/svg/data/database.svg +7 -0
  221. package/src/icons/svg/data/hash.svg +6 -0
  222. package/src/icons/svg/data/percent.svg +5 -0
  223. package/src/icons/svg/data/sync.svg +6 -0
  224. package/src/icons/svg/data/table.svg +7 -0
  225. package/src/icons/svg/data/timer.svg +7 -0
  226. package/src/icons/svg/files/archive.svg +5 -0
  227. package/src/icons/svg/files/attachment.svg +4 -0
  228. package/src/icons/svg/files/clipboard.svg +6 -0
  229. package/src/icons/svg/files/file-archive.svg +7 -0
  230. package/src/icons/svg/files/file-audio.svg +6 -0
  231. package/src/icons/svg/files/file-code.svg +6 -0
  232. package/src/icons/svg/files/file-image.svg +6 -0
  233. package/src/icons/svg/files/file-minus.svg +5 -0
  234. package/src/icons/svg/files/file-plus.svg +6 -0
  235. package/src/icons/svg/files/file-text.svg +6 -0
  236. package/src/icons/svg/files/file-video.svg +5 -0
  237. package/src/icons/svg/files/file.svg +4 -0
  238. package/src/icons/svg/files/folder-open.svg +4 -0
  239. package/src/icons/svg/files/folder-plus.svg +5 -0
  240. package/src/icons/svg/files/folder.svg +3 -0
  241. package/src/icons/svg/media/camera-off.svg +5 -0
  242. package/src/icons/svg/media/camera.svg +4 -0
  243. package/src/icons/svg/media/fast-forward.svg +4 -0
  244. package/src/icons/svg/media/image.svg +5 -0
  245. package/src/icons/svg/media/mic-off.svg +6 -0
  246. package/src/icons/svg/media/mic.svg +5 -0
  247. package/src/icons/svg/media/music.svg +5 -0
  248. package/src/icons/svg/media/pause.svg +4 -0
  249. package/src/icons/svg/media/play.svg +4 -0
  250. package/src/icons/svg/media/rewind.svg +4 -0
  251. package/src/icons/svg/media/skip-back.svg +4 -0
  252. package/src/icons/svg/media/skip-forward.svg +4 -0
  253. package/src/icons/svg/media/stop.svg +4 -0
  254. package/src/icons/svg/media/video.svg +5 -0
  255. package/src/icons/svg/media/volume-high.svg +5 -0
  256. package/src/icons/svg/media/volume-low.svg +4 -0
  257. package/src/icons/svg/media/volume-off.svg +4 -0
  258. package/src/icons/svg/navigation/arrow-down.svg +4 -0
  259. package/src/icons/svg/navigation/arrow-left.svg +4 -0
  260. package/src/icons/svg/navigation/arrow-right.svg +4 -0
  261. package/src/icons/svg/navigation/arrow-up.svg +4 -0
  262. package/src/icons/svg/navigation/chevron-down.svg +3 -0
  263. package/src/icons/svg/navigation/chevron-left.svg +3 -0
  264. package/src/icons/svg/navigation/chevron-right.svg +3 -0
  265. package/src/icons/svg/navigation/chevron-up.svg +3 -0
  266. package/src/icons/svg/navigation/external-link.svg +5 -0
  267. package/src/icons/svg/navigation/home.svg +4 -0
  268. package/src/icons/svg/navigation/maximize.svg +3 -0
  269. package/src/icons/svg/navigation/menu-dots.svg +5 -0
  270. package/src/icons/svg/navigation/menu.svg +5 -0
  271. package/src/icons/svg/navigation/minimize.svg +3 -0
  272. package/src/icons/svg/security/eye-off.svg +6 -0
  273. package/src/icons/svg/security/eye.svg +5 -0
  274. package/src/icons/svg/security/fingerprint.svg +9 -0
  275. package/src/icons/svg/security/key.svg +7 -0
  276. package/src/icons/svg/security/lock.svg +6 -0
  277. package/src/icons/svg/security/log-in.svg +6 -0
  278. package/src/icons/svg/security/log-out.svg +6 -0
  279. package/src/icons/svg/security/shield-check.svg +4 -0
  280. package/src/icons/svg/security/shield-x.svg +5 -0
  281. package/src/icons/svg/security/shield.svg +5 -0
  282. package/src/icons/svg/security/unlock.svg +6 -0
  283. package/src/icons/svg/security/user-minus.svg +5 -0
  284. package/src/icons/svg/security/user-plus.svg +6 -0
  285. package/src/icons/svg/security/user.svg +6 -0
  286. package/src/icons/svg/security/users.svg +6 -0
  287. package/src/icons/svg/social/award.svg +5 -0
  288. package/src/icons/svg/social/bookmark-filled.svg +3 -0
  289. package/src/icons/svg/social/bookmark.svg +3 -0
  290. package/src/icons/svg/social/flag.svg +4 -0
  291. package/src/icons/svg/social/heart-filled.svg +3 -0
  292. package/src/icons/svg/social/heart.svg +3 -0
  293. package/src/icons/svg/social/star-filled.svg +3 -0
  294. package/src/icons/svg/social/star.svg +3 -0
  295. package/src/icons/svg/social/thumbs-down.svg +5 -0
  296. package/src/icons/svg/social/thumbs-up.svg +5 -0
  297. package/src/icons/svg/social/trending.svg +4 -0
  298. package/src/icons/svg/status/battery-charging.svg +5 -0
  299. package/src/icons/svg/status/battery-full.svg +5 -0
  300. package/src/icons/svg/status/battery-low.svg +5 -0
  301. package/src/icons/svg/status/error.svg +5 -0
  302. package/src/icons/svg/status/help.svg +5 -0
  303. package/src/icons/svg/status/info.svg +5 -0
  304. package/src/icons/svg/status/loading.svg +10 -0
  305. package/src/icons/svg/status/offline.svg +4 -0
  306. package/src/icons/svg/status/online.svg +5 -0
  307. package/src/icons/svg/status/progress.svg +5 -0
  308. package/src/icons/svg/status/success.svg +4 -0
  309. package/src/icons/svg/status/warning.svg +5 -0
  310. package/src/icons/svg/tech/api.svg +10 -0
  311. package/src/icons/svg/tech/bluetooth.svg +4 -0
  312. package/src/icons/svg/tech/bug.svg +11 -0
  313. package/src/icons/svg/tech/chip.svg +16 -0
  314. package/src/icons/svg/tech/circuit.svg +15 -0
  315. package/src/icons/svg/tech/code.svg +5 -0
  316. package/src/icons/svg/tech/cpu.svg +12 -0
  317. package/src/icons/svg/tech/git-branch.svg +6 -0
  318. package/src/icons/svg/tech/git-commit.svg +5 -0
  319. package/src/icons/svg/tech/git-merge.svg +7 -0
  320. package/src/icons/svg/tech/git-pull.svg +8 -0
  321. package/src/icons/svg/tech/globe.svg +5 -0
  322. package/src/icons/svg/tech/memory.svg +12 -0
  323. package/src/icons/svg/tech/qr-code.svg +9 -0
  324. package/src/icons/svg/tech/server.svg +7 -0
  325. package/src/icons/svg/tech/settings.svg +4 -0
  326. package/src/icons/svg/tech/signal.svg +7 -0
  327. package/src/icons/svg/tech/sliders.svg +11 -0
  328. package/src/icons/svg/tech/terminal.svg +5 -0
  329. package/src/icons/svg/tech/wifi-off.svg +7 -0
  330. package/src/icons/svg/tech/wifi.svg +6 -0
  331. package/src/icons/svg/tech/zap.svg +3 -0
  332. package/src/icons/types.ts +73 -0
  333. package/src/icons/utils.ts +216 -0
  334. package/src/scss/components/_alerts.scss +76 -0
  335. package/src/scss/components/_badges.scss +198 -0
  336. package/src/scss/components/_buttons.scss +180 -0
  337. package/src/scss/components/_cards.scss +178 -0
  338. package/src/scss/components/_dropdown.scss +213 -0
  339. package/src/scss/components/_index.scss +19 -0
  340. package/src/scss/components/_inputs.scss +193 -0
  341. package/src/scss/components/_modal.scss +303 -0
  342. package/src/scss/components/_nav.scss +116 -0
  343. package/src/scss/components/_progress.scss +218 -0
  344. package/src/scss/components/_skeleton.scss +337 -0
  345. package/src/scss/components/_spinner.scss +300 -0
  346. package/src/scss/components/_tables.scss +244 -0
  347. package/src/scss/components/_tabs.scss +327 -0
  348. package/src/scss/components/_terminal.scss +259 -0
  349. package/src/scss/core/_base.scss +25 -0
  350. package/src/scss/core/_index.scss +6 -0
  351. package/src/scss/core/_layers.scss +5 -0
  352. package/src/scss/core/_mixins.scss +96 -0
  353. package/src/scss/core/_reset.scss +26 -0
  354. package/src/scss/core/_typography.scss +43 -0
  355. package/src/scss/core/_variables.scss +163 -0
  356. package/src/scss/cybercore.scss +46 -0
  357. package/src/scss/effects/_datastream.scss +43 -0
  358. package/src/scss/effects/_glitch.scss +389 -0
  359. package/src/scss/effects/_index.scss +9 -0
  360. package/src/scss/effects/_neon-border.scss +107 -0
  361. package/src/scss/effects/_noise.scss +75 -0
  362. package/src/scss/effects/_scanlines.scss +86 -0
  363. package/src/scss/utilities/_accessibility.scss +57 -0
  364. package/src/scss/utilities/_animation.scss +246 -0
  365. package/src/scss/utilities/_backgrounds.scss +201 -0
  366. package/src/scss/utilities/_borders.scss +198 -0
  367. package/src/scss/utilities/_display.scss +33 -0
  368. package/src/scss/utilities/_filters.scss +279 -0
  369. package/src/scss/utilities/_flex.scss +95 -0
  370. package/src/scss/utilities/_grid.scss +68 -0
  371. package/src/scss/utilities/_icons.scss +152 -0
  372. package/src/scss/utilities/_index.scss +35 -0
  373. package/src/scss/utilities/_interactivity.scss +186 -0
  374. package/src/scss/utilities/_layout.scss +202 -0
  375. package/src/scss/utilities/_position.scss +168 -0
  376. package/src/scss/utilities/_shadows.scss +164 -0
  377. package/src/scss/utilities/_sizing.scss +229 -0
  378. package/src/scss/utilities/_spacing.scss +185 -0
  379. package/src/scss/utilities/_text.scss +177 -0
  380. package/src/scss/utilities/_transforms.scss +212 -0
  381. package/src/scss/utilities/_transitions.scss +174 -0
@@ -0,0 +1,11 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
2
+ <line x1="4" y1="21" x2="4" y2="14"/>
3
+ <line x1="4" y1="10" x2="4" y2="3"/>
4
+ <line x1="12" y1="21" x2="12" y2="12"/>
5
+ <line x1="12" y1="8" x2="12" y2="3"/>
6
+ <line x1="20" y1="21" x2="20" y2="16"/>
7
+ <line x1="20" y1="12" x2="20" y2="3"/>
8
+ <line x1="1" y1="14" x2="7" y2="14"/>
9
+ <line x1="9" y1="8" x2="15" y2="8"/>
10
+ <line x1="17" y1="16" x2="23" y2="16"/>
11
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
2
+ <rect x="2" y="4" width="20" height="16" rx="2"/>
3
+ <polyline points="6 9 9 12 6 15"/>
4
+ <line x1="12" y1="15" x2="18" y2="15"/>
5
+ </svg>
@@ -0,0 +1,7 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
2
+ <line x1="2" y1="2" x2="22" y2="22"/>
3
+ <path d="M8.5 16.5a5 5 0 0 1 7 0"/>
4
+ <path d="M5 12.55a11 11 0 0 1 5.5-2.5"/>
5
+ <path d="M13.5 10.05a11 11 0 0 1 5.5 2.5"/>
6
+ <circle cx="12" cy="20" r="1"/>
7
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
2
+ <path d="M5 12.55a11 11 0 0 1 14 0"/>
3
+ <path d="M7.5 15.5a7 7 0 0 1 9 0"/>
4
+ <path d="M10 18.5a3 3 0 0 1 4 0"/>
5
+ <circle cx="12" cy="21" r="0.5"/>
6
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
2
+ <polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/>
3
+ </svg>
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Cyber Icons - Type definitions
3
+ * Cyberpunk-themed SVG icon system for CYBERCORE CSS
4
+ */
5
+
6
+ /**
7
+ * Icon style variants
8
+ * - outline: Stroke-based, default style (1.5px stroke)
9
+ * - solid: Filled icons for emphasis
10
+ * - duotone: Two-tone with primary and secondary colors
11
+ * - glitch: Animated/glitchy variant for cyber effects
12
+ */
13
+ export type IconVariant = 'outline' | 'solid' | 'duotone' | 'glitch';
14
+
15
+ /**
16
+ * SVG content for each variant
17
+ */
18
+ export type IconVariants = {
19
+ [K in IconVariant]?: string;
20
+ };
21
+
22
+ export interface IconDefinition {
23
+ /** Unique identifier for the icon */
24
+ name: string;
25
+ /** Default SVG (outline variant) */
26
+ svg: string;
27
+ /** Additional style variants */
28
+ variants?: IconVariants;
29
+ /** Category for organization */
30
+ category: IconCategory;
31
+ /** Brief description of the icon's purpose */
32
+ description: string;
33
+ /** Suggested use cases */
34
+ tags: string[];
35
+ }
36
+
37
+ export type IconCategory =
38
+ | 'navigation'
39
+ | 'actions'
40
+ | 'media'
41
+ | 'communication'
42
+ | 'data'
43
+ | 'security'
44
+ | 'tech'
45
+ | 'files'
46
+ | 'status'
47
+ | 'social';
48
+
49
+ export type IconSize = 16 | 20 | 24 | 32 | 48 | 64;
50
+
51
+ export type IconColor = 'cyan' | 'magenta' | 'yellow' | 'green' | 'current';
52
+
53
+ export interface IconProps {
54
+ /** Icon name from the registry */
55
+ name: string;
56
+ /** Size in pixels (default: 24) */
57
+ size?: IconSize;
58
+ /** Color variant (default: 'current') */
59
+ color?: IconColor;
60
+ /** Style variant (default: 'outline') */
61
+ variant?: IconVariant;
62
+ /** Additional CSS classes */
63
+ className?: string;
64
+ /** Accessibility label */
65
+ 'aria-label'?: string;
66
+ /** Hide from screen readers (use when icon is decorative) */
67
+ 'aria-hidden'?: boolean;
68
+ }
69
+
70
+ /**
71
+ * Icon registry mapping names to definitions
72
+ */
73
+ export type IconRegistry = Record<string, IconDefinition>;
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Cyber Icons Utilities
3
+ * Helper functions for rendering and working with icons
4
+ */
5
+
6
+ import type { IconProps, IconColor, IconVariant, IconDefinition } from './types';
7
+ import { icons, isIconRegistered, getIconDefinition } from './registry';
8
+
9
+ /**
10
+ * Color map for CSS custom properties
11
+ */
12
+ const COLOR_MAP: Record<IconColor, string> = {
13
+ cyan: 'var(--cyber-cyan-500, #00f0ff)',
14
+ magenta: 'var(--cyber-magenta-500, #ff00aa)',
15
+ yellow: 'var(--cyber-yellow-500, #f0ff00)',
16
+ green: 'var(--cyber-green-500, #00ff88)',
17
+ current: 'currentColor',
18
+ };
19
+
20
+ /**
21
+ * Check if an icon exists in the registry
22
+ */
23
+ export function iconExists(name: string): boolean {
24
+ return isIconRegistered(name);
25
+ }
26
+
27
+ /**
28
+ * Check if an icon has a specific variant
29
+ */
30
+ export function hasVariant(name: string, variant: IconVariant): boolean {
31
+ const definition = getIconDefinition(name);
32
+ if (!definition) return false;
33
+ if (variant === 'outline') return true; // Default variant always exists
34
+ return !!definition.variants?.[variant];
35
+ }
36
+
37
+ /**
38
+ * Get available variants for an icon
39
+ */
40
+ export function getVariants(name: string): IconVariant[] {
41
+ const definition = getIconDefinition(name);
42
+ if (!definition) return [];
43
+
44
+ const variants: IconVariant[] = ['outline']; // Default always available
45
+ if (definition.variants) {
46
+ if (definition.variants.solid) variants.push('solid');
47
+ if (definition.variants.duotone) variants.push('duotone');
48
+ if (definition.variants.glitch) variants.push('glitch');
49
+ }
50
+ return variants;
51
+ }
52
+
53
+ /**
54
+ * Get the raw SVG string for an icon
55
+ * @param name Icon name
56
+ * @param variant Optional variant (default: 'outline')
57
+ */
58
+ export function getIcon(name: string, variant: IconVariant = 'outline'): string | null {
59
+ const definition = getIconDefinition(name);
60
+ if (!definition) return null;
61
+
62
+ // Return requested variant or fall back to default
63
+ if (variant === 'outline' || !definition.variants?.[variant]) {
64
+ return definition.svg;
65
+ }
66
+
67
+ return definition.variants[variant] ?? definition.svg;
68
+ }
69
+
70
+ /**
71
+ * Render an icon with options
72
+ */
73
+ export function renderIcon(name: string, options: Partial<IconProps> = {}): string {
74
+ const {
75
+ variant = 'outline',
76
+ size = 24,
77
+ color = 'current',
78
+ className = '',
79
+ 'aria-label': ariaLabel,
80
+ 'aria-hidden': ariaHidden = !ariaLabel,
81
+ } = options;
82
+
83
+ const svg = getIcon(name, variant);
84
+ if (!svg) {
85
+ console.warn(`[CyberIcons] Icon "${name}" not found in registry`);
86
+ return '';
87
+ }
88
+
89
+ // Build class list
90
+ const variantClass = variant !== 'outline' ? `cyber-icon--${variant}` : '';
91
+ const classes = ['cyber-icon', `cyber-icon--${name}`, variantClass, className]
92
+ .filter(Boolean)
93
+ .join(' ');
94
+
95
+ // Build style
96
+ const colorValue = COLOR_MAP[color] || color;
97
+ const style = `width: ${size}px; height: ${size}px; color: ${colorValue};`;
98
+
99
+ // Build accessibility attributes
100
+ const a11y = ariaHidden ? 'aria-hidden="true"' : `aria-label="${ariaLabel}" role="img"`;
101
+
102
+ // Inject attributes into SVG
103
+ return svg.replace('<svg', `<svg class="${classes}" style="${style}" ${a11y}`).trim();
104
+ }
105
+
106
+ /**
107
+ * Render an icon from its definition (tree-shakeable)
108
+ * Use this with direct icon imports for optimal bundle size
109
+ *
110
+ * @example
111
+ * import { renderIconDef } from 'cybercore-css/icons';
112
+ * import { terminal } from 'cybercore-css/icons/defs/tech';
113
+ *
114
+ * const html = renderIconDef(terminal, { size: 24, color: 'cyan' });
115
+ */
116
+ export function renderIconDef(icon: IconDefinition, options: Partial<IconProps> = {}): string {
117
+ const {
118
+ variant = 'outline',
119
+ size = 24,
120
+ color = 'current',
121
+ className = '',
122
+ 'aria-label': ariaLabel,
123
+ 'aria-hidden': ariaHidden = !ariaLabel,
124
+ } = options;
125
+
126
+ // Get SVG for requested variant
127
+ let svg: string;
128
+ if (variant === 'outline' || !icon.variants?.[variant]) {
129
+ svg = icon.svg;
130
+ } else {
131
+ svg = icon.variants[variant] ?? icon.svg;
132
+ }
133
+
134
+ // Build class list
135
+ const variantClass = variant !== 'outline' ? `cyber-icon--${variant}` : '';
136
+ const classes = ['cyber-icon', `cyber-icon--${icon.name}`, variantClass, className]
137
+ .filter(Boolean)
138
+ .join(' ');
139
+
140
+ // Build style
141
+ const colorValue = COLOR_MAP[color] || color;
142
+ const style = `width: ${size}px; height: ${size}px; color: ${colorValue};`;
143
+
144
+ // Build accessibility attributes
145
+ const a11y = ariaHidden ? 'aria-hidden="true"' : `aria-label="${ariaLabel}" role="img"`;
146
+
147
+ // Inject attributes into SVG
148
+ return svg.replace('<svg', `<svg class="${classes}" style="${style}" ${a11y}`).trim();
149
+ }
150
+
151
+ /**
152
+ * Get SVG string from icon definition (tree-shakeable)
153
+ */
154
+ export function getIconSvg(icon: IconDefinition, variant: IconVariant = 'outline'): string {
155
+ if (variant === 'outline' || !icon.variants?.[variant]) {
156
+ return icon.svg;
157
+ }
158
+ return icon.variants[variant] ?? icon.svg;
159
+ }
160
+
161
+ /**
162
+ * Create a sprite sheet of all icons (for embedding once in HTML)
163
+ */
164
+ export function createSpriteSheet(): string {
165
+ const symbols = Object.entries(icons)
166
+ .map(([name, def]) => {
167
+ // Convert SVG to symbol
168
+ const symbolContent = def.svg.replace(/<svg[^>]*>/, '').replace('</svg>', '');
169
+ return `<symbol id="cyber-icon-${name}" viewBox="0 0 24 24">${symbolContent}</symbol>`;
170
+ })
171
+ .join('\n');
172
+
173
+ return `<svg xmlns="http://www.w3.org/2000/svg" style="display: none;">\n${symbols}\n</svg>`;
174
+ }
175
+
176
+ /**
177
+ * Render icon using sprite reference (requires sprite sheet in DOM)
178
+ */
179
+ export function renderIconRef(name: string, options: Partial<IconProps> = {}): string {
180
+ const {
181
+ size = 24,
182
+ color = 'current',
183
+ className = '',
184
+ 'aria-label': ariaLabel,
185
+ 'aria-hidden': ariaHidden = !ariaLabel,
186
+ } = options;
187
+
188
+ const classes = ['cyber-icon', `cyber-icon--${name}`, className].filter(Boolean).join(' ');
189
+
190
+ const colorValue = COLOR_MAP[color] || color;
191
+ const style = `width: ${size}px; height: ${size}px; color: ${colorValue};`;
192
+
193
+ const a11y = ariaHidden ? 'aria-hidden="true"' : `aria-label="${ariaLabel}" role="img"`;
194
+
195
+ return `<svg class="${classes}" style="${style}" ${a11y}>
196
+ <use href="#cyber-icon-${name}"/>
197
+ </svg>`;
198
+ }
199
+
200
+ /**
201
+ * Get icon as data URI (for CSS background-image, etc.)
202
+ */
203
+ export function getIconDataUri(name: string, color?: string): string | null {
204
+ let svg = getIcon(name);
205
+ if (!svg) return null;
206
+
207
+ // Replace currentColor if a specific color is provided
208
+ if (color) {
209
+ svg = svg.replace(/currentColor/g, color);
210
+ }
211
+
212
+ // Encode for data URI
213
+ const encoded = encodeURIComponent(svg).replace(/'/g, '%27').replace(/"/g, '%22');
214
+
215
+ return `data:image/svg+xml,${encoded}`;
216
+ }
@@ -0,0 +1,76 @@
1
+ // ============================================================
2
+ // Alerts Component
3
+ // Notification alerts with icon badges
4
+ // ============================================================
5
+
6
+ @layer components {
7
+ .cyber-alert {
8
+ --alert-color: var(--cyber-cyan-500);
9
+
10
+ position: relative;
11
+ padding: var(--space-md);
12
+ padding-left: var(--space-xl);
13
+ border: var(--border-thin) solid var(--alert-color);
14
+ border-left: 4px solid var(--alert-color);
15
+ background: color-mix(in srgb, var(--alert-color) 10%, var(--color-bg-secondary));
16
+
17
+ // Icon badge via ::before pseudo-element
18
+ &::before {
19
+ content: "!";
20
+ position: absolute;
21
+ top: 50%;
22
+ left: var(--space-sm);
23
+ display: flex;
24
+ align-items: center;
25
+ justify-content: center;
26
+ width: 24px;
27
+ height: 24px;
28
+ font-family: var(--font-display);
29
+ font-size: var(--text-sm);
30
+ font-weight: 700;
31
+ line-height: 1;
32
+ color: var(--cyber-void-500);
33
+ background: var(--alert-color);
34
+ transform: translateY(-50%);
35
+ }
36
+
37
+ // Alert title
38
+ &__title {
39
+ margin-bottom: var(--space-2xs);
40
+ font-family: var(--font-display);
41
+ font-size: var(--text-sm);
42
+ font-weight: 700;
43
+ letter-spacing: 0.05em;
44
+ text-transform: uppercase;
45
+ color: var(--alert-color);
46
+ }
47
+
48
+ // --------------------------------------------------------
49
+ // Semantic Variants
50
+ // --------------------------------------------------------
51
+
52
+ &--warning {
53
+ --alert-color: var(--cyber-yellow-500);
54
+
55
+ &::before {
56
+ content: "\26A0"; // ⚠
57
+ }
58
+ }
59
+
60
+ &--error {
61
+ --alert-color: var(--cyber-magenta-500);
62
+
63
+ &::before {
64
+ content: "\2715"; // ✕
65
+ }
66
+ }
67
+
68
+ &--success {
69
+ --alert-color: var(--cyber-green-500);
70
+
71
+ &::before {
72
+ content: "\2713"; // ✓
73
+ }
74
+ }
75
+ }
76
+ }
@@ -0,0 +1,198 @@
1
+ // ============================================================
2
+ // Badges Component
3
+ // Inline pill badges with variants
4
+ // ============================================================
5
+
6
+ @layer components {
7
+ .cyber-badge {
8
+ display: inline-flex;
9
+ gap: var(--space-3xs);
10
+ align-items: center;
11
+ padding: var(--space-3xs) var(--space-sm);
12
+ border: var(--border-thin) solid var(--cyber-cyan-500);
13
+ border-radius: var(--radius-full);
14
+ font-family: var(--font-display);
15
+ font-size: var(--text-xs);
16
+ font-weight: 700;
17
+ letter-spacing: 0.05em;
18
+ text-transform: uppercase;
19
+ white-space: nowrap;
20
+ color: var(--cyber-cyan-500);
21
+ background: color-mix(in srgb, var(--cyber-cyan-500) 20%, transparent);
22
+ transition:
23
+ background var(--transition-fast),
24
+ box-shadow var(--transition-fast);
25
+
26
+ // Icon support
27
+ svg,
28
+ &__icon {
29
+ flex-shrink: 0;
30
+ width: 0.875em;
31
+ height: 0.875em;
32
+ }
33
+
34
+ // --------------------------------------------------------
35
+ // Color Variants
36
+ // --------------------------------------------------------
37
+
38
+ &--magenta {
39
+ border-color: var(--cyber-magenta-500);
40
+ color: var(--cyber-magenta-500);
41
+ background: color-mix(in srgb, var(--cyber-magenta-500) 20%, transparent);
42
+ }
43
+
44
+ &--yellow {
45
+ border-color: var(--cyber-yellow-500);
46
+ color: var(--cyber-yellow-500);
47
+ background: color-mix(in srgb, var(--cyber-yellow-500) 20%, transparent);
48
+ }
49
+
50
+ &--green {
51
+ border-color: var(--cyber-green-500);
52
+ color: var(--cyber-green-500);
53
+ background: color-mix(in srgb, var(--cyber-green-500) 20%, transparent);
54
+ }
55
+
56
+ &--chrome {
57
+ border-color: var(--cyber-chrome-500);
58
+ color: var(--cyber-chrome-300);
59
+ background: color-mix(in srgb, var(--cyber-chrome-500) 20%, transparent);
60
+ }
61
+
62
+ // --------------------------------------------------------
63
+ // Style Variants
64
+ // --------------------------------------------------------
65
+
66
+ &--filled {
67
+ border-color: var(--cyber-cyan-500);
68
+ color: var(--cyber-void-500);
69
+ background: var(--cyber-cyan-500);
70
+
71
+ &.cyber-badge--magenta {
72
+ border-color: var(--cyber-magenta-500);
73
+ background: var(--cyber-magenta-500);
74
+ }
75
+
76
+ &.cyber-badge--yellow {
77
+ border-color: var(--cyber-yellow-500);
78
+ background: var(--cyber-yellow-500);
79
+ }
80
+
81
+ &.cyber-badge--green {
82
+ border-color: var(--cyber-green-500);
83
+ background: var(--cyber-green-500);
84
+ }
85
+ }
86
+
87
+ &--ghost {
88
+ border-color: transparent;
89
+ background: transparent;
90
+
91
+ &:hover {
92
+ background: color-mix(in srgb, currentcolor 10%, transparent);
93
+ }
94
+ }
95
+
96
+ // --------------------------------------------------------
97
+ // Pulse Animation Variant
98
+ // Uses box-shadow animation on the badge itself
99
+ // --------------------------------------------------------
100
+
101
+ &--pulse {
102
+ animation: badge-pulse 2s ease-in-out infinite;
103
+ }
104
+
105
+ // --------------------------------------------------------
106
+ // Size Variants
107
+ // --------------------------------------------------------
108
+
109
+ &--sm {
110
+ padding: 2px var(--space-2xs);
111
+ font-size: 0.625rem;
112
+ }
113
+
114
+ &--lg {
115
+ padding: var(--space-2xs) var(--space-sm);
116
+ font-size: var(--text-sm);
117
+ }
118
+
119
+ // --------------------------------------------------------
120
+ // Counter Badge (for notifications)
121
+ // --------------------------------------------------------
122
+
123
+ &--counter {
124
+ justify-content: center;
125
+ min-width: 1.5rem;
126
+ height: 1.5rem;
127
+ padding: 0;
128
+ border-radius: 50%;
129
+ }
130
+
131
+ // --------------------------------------------------------
132
+ // Status indicators
133
+ // --------------------------------------------------------
134
+
135
+ &--online {
136
+ border-color: var(--cyber-green-500);
137
+ color: var(--cyber-green-500);
138
+ background: color-mix(in srgb, var(--cyber-green-500) 20%, transparent);
139
+
140
+ &::before {
141
+ content: "";
142
+ width: 6px;
143
+ height: 6px;
144
+ border-radius: 50%;
145
+ background: var(--cyber-green-500);
146
+ animation: badge-pulse 2s ease-in-out infinite;
147
+ }
148
+ }
149
+
150
+ &--offline {
151
+ border-color: var(--cyber-chrome-500);
152
+ color: var(--cyber-chrome-500);
153
+ background: color-mix(in srgb, var(--cyber-chrome-500) 20%, transparent);
154
+
155
+ &::before {
156
+ content: "";
157
+ width: 6px;
158
+ height: 6px;
159
+ border-radius: 50%;
160
+ background: var(--cyber-chrome-500);
161
+ }
162
+ }
163
+
164
+ &--busy {
165
+ border-color: var(--cyber-magenta-500);
166
+ color: var(--cyber-magenta-500);
167
+ background: color-mix(in srgb, var(--cyber-magenta-500) 20%, transparent);
168
+
169
+ &::before {
170
+ content: "";
171
+ width: 6px;
172
+ height: 6px;
173
+ border-radius: 50%;
174
+ background: var(--cyber-magenta-500);
175
+ animation: badge-pulse 1s ease-in-out infinite;
176
+ }
177
+ }
178
+ }
179
+
180
+ // Pulse animation - box-shadow animation matching demo
181
+ @keyframes badge-pulse {
182
+ 0%,
183
+ 100% {
184
+ box-shadow: 0 0 0 0 currentcolor;
185
+ }
186
+
187
+ 50% {
188
+ box-shadow: 0 0 0 6px transparent;
189
+ }
190
+ }
191
+
192
+ // Badge group
193
+ .cyber-badge-group {
194
+ display: inline-flex;
195
+ flex-wrap: wrap;
196
+ gap: var(--space-2xs);
197
+ }
198
+ }