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,26 @@
1
+ // ============================================================
2
+ // Minimal CSS Reset
3
+ // ============================================================
4
+
5
+ @layer reset {
6
+ *,
7
+ *::before,
8
+ *::after {
9
+ box-sizing: border-box;
10
+ margin: 0;
11
+ padding: 0;
12
+ }
13
+
14
+ html {
15
+ font-size: 16px;
16
+ color-scheme: dark;
17
+ -webkit-font-smoothing: antialiased;
18
+ scroll-behavior: smooth;
19
+ }
20
+
21
+ @media (prefers-reduced-motion: reduce) {
22
+ html {
23
+ scroll-behavior: auto;
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,43 @@
1
+ // ============================================================
2
+ // Typography System
3
+ // ============================================================
4
+
5
+ @layer base {
6
+ // Headings
7
+ h1,
8
+ h2,
9
+ h3,
10
+ h4,
11
+ h5,
12
+ h6 {
13
+ font-family: var(--font-display);
14
+ font-weight: 700;
15
+ line-height: 1.1;
16
+ letter-spacing: 0.02em;
17
+ text-transform: uppercase;
18
+ }
19
+
20
+ h1 {
21
+ font-size: var(--text-5xl);
22
+ }
23
+
24
+ h2 {
25
+ font-size: var(--text-4xl);
26
+ }
27
+
28
+ h3 {
29
+ font-size: var(--text-3xl);
30
+ }
31
+
32
+ h4 {
33
+ font-size: var(--text-2xl);
34
+ }
35
+
36
+ h5 {
37
+ font-size: var(--text-xl);
38
+ }
39
+
40
+ h6 {
41
+ font-size: var(--text-lg);
42
+ }
43
+ }
@@ -0,0 +1,163 @@
1
+ // ============================================================
2
+ // Design Tokens - CSS Custom Properties
3
+ // ============================================================
4
+
5
+ @layer theme {
6
+ :root {
7
+ // --------------------------------------------------------
8
+ // Color System
9
+ // --------------------------------------------------------
10
+
11
+ // Primary Cyans (optimized: removed unused 100, 200, 800 shades)
12
+ --cyber-cyan-300: #87eaf2;
13
+ --cyber-cyan-400: #54d1db;
14
+ --cyber-cyan-500: #00f0ff;
15
+ --cyber-cyan-600: #00c4cc;
16
+ --cyber-cyan-700: #0097a7;
17
+ --cyber-cyan-900: #005d6a;
18
+
19
+ // Hot Magentas (optimized: removed unused 100-400, 600, 800, 900 shades)
20
+ --cyber-magenta-500: #ff2a6d;
21
+ --cyber-magenta-700: #b31248;
22
+
23
+ // Electric Yellows (optimized: removed unused 100-400, 600, 800, 900 shades)
24
+ --cyber-yellow-500: #fcee0a;
25
+ --cyber-yellow-700: #aca406;
26
+
27
+ // Toxic Greens (optimized: removed unused 100-300, 600, 800 shades)
28
+ --cyber-green-400: #43ff83;
29
+ --cyber-green-500: #05ffa1;
30
+ --cyber-green-700: #03a969;
31
+ --cyber-green-900: #015331;
32
+
33
+ // Void Blacks (optimized: removed unused 600 shade)
34
+ --cyber-void-100: #2a2d3a;
35
+ --cyber-void-200: #1f2230;
36
+ --cyber-void-300: #181a25;
37
+ --cyber-void-400: #12141d;
38
+ --cyber-void-500: #0d0e14;
39
+ --cyber-void-700: #07080c;
40
+ --cyber-void-800: #040508;
41
+ --cyber-void-900: #010204;
42
+
43
+ // Chrome Grays (optimized: removed unused 700-900 shades)
44
+ --cyber-chrome-100: #f0f1f5;
45
+ --cyber-chrome-200: #d1d4de;
46
+ --cyber-chrome-300: #b2b7c7;
47
+ --cyber-chrome-400: #939ab0;
48
+ --cyber-chrome-500: #747d99;
49
+ --cyber-chrome-600: #5c647a;
50
+
51
+ // --------------------------------------------------------
52
+ // Semantic Colors
53
+ // --------------------------------------------------------
54
+
55
+ --color-bg-primary: var(--cyber-void-500);
56
+ --color-bg-secondary: var(--cyber-void-400);
57
+ --color-bg-tertiary: var(--cyber-void-300);
58
+ --color-bg-elevated: var(--cyber-void-200);
59
+ --color-text-primary: var(--cyber-chrome-100);
60
+ --color-text-secondary: var(--cyber-chrome-300);
61
+ --color-text-muted: var(--cyber-chrome-500);
62
+ --color-border-default: var(--cyber-void-100);
63
+
64
+ // --------------------------------------------------------
65
+ // Glows
66
+ // --------------------------------------------------------
67
+
68
+ --glow-cyan:
69
+ 0 0 20px var(--cyber-cyan-500),
70
+ 0 0 40px color-mix(in srgb, var(--cyber-cyan-500) 50%, transparent),
71
+ 0 0 80px color-mix(in srgb, var(--cyber-cyan-500) 25%, transparent);
72
+ --glow-magenta:
73
+ 0 0 20px var(--cyber-magenta-500),
74
+ 0 0 40px color-mix(in srgb, var(--cyber-magenta-500) 50%, transparent);
75
+ --glow-yellow:
76
+ 0 0 20px var(--cyber-yellow-500),
77
+ 0 0 40px color-mix(in srgb, var(--cyber-yellow-500) 50%, transparent);
78
+ --glow-green:
79
+ 0 0 20px var(--cyber-green-500),
80
+ 0 0 40px color-mix(in srgb, var(--cyber-green-500) 50%, transparent);
81
+ --glow-text-cyan:
82
+ 0 0 10px var(--cyber-cyan-500),
83
+ 0 0 20px color-mix(in srgb, var(--cyber-cyan-500) 60%, transparent);
84
+
85
+ // --------------------------------------------------------
86
+ // Typography
87
+ // --------------------------------------------------------
88
+
89
+ --font-display: "Rajdhani", "Orbitron", system-ui, sans-serif;
90
+ --font-body: "Exo 2", system-ui, sans-serif;
91
+ --font-mono: "JetBrains Mono", monospace;
92
+
93
+ // Type Scale
94
+ --text-xs: clamp(0.64rem, 0.59rem + 0.24vw, 0.75rem);
95
+ --text-sm: clamp(0.8rem, 0.74rem + 0.32vw, 0.94rem);
96
+ --text-base: clamp(1rem, 0.93rem + 0.37vw, 1.18rem);
97
+ --text-lg: clamp(1.25rem, 1.16rem + 0.47vw, 1.47rem);
98
+ --text-xl: clamp(1.56rem, 1.45rem + 0.59vw, 1.84rem);
99
+ --text-2xl: clamp(1.95rem, 1.81rem + 0.74vw, 2.3rem);
100
+ --text-3xl: clamp(2.44rem, 2.26rem + 0.92vw, 2.87rem);
101
+ --text-4xl: clamp(3.05rem, 2.83rem + 1.15vw, 3.58rem);
102
+ --text-5xl: clamp(3.81rem, 3.54rem + 1.44vw, 4.48rem);
103
+
104
+ // Letter Spacing
105
+ --tracking-wide: 0.05em;
106
+ --tracking-wider: 0.1em;
107
+
108
+ // --------------------------------------------------------
109
+ // Spacing
110
+ // --------------------------------------------------------
111
+
112
+ --space-3xs: clamp(0.25rem, 0.23rem + 0.09vw, 0.31rem);
113
+ --space-2xs: clamp(0.5rem, 0.46rem + 0.18vw, 0.63rem);
114
+ --space-xs: clamp(0.75rem, 0.7rem + 0.28vw, 0.94rem);
115
+ --space-sm: clamp(1rem, 0.93rem + 0.37vw, 1.25rem);
116
+ --space-md: clamp(1.5rem, 1.39rem + 0.56vw, 1.88rem);
117
+ --space-lg: clamp(2rem, 1.86rem + 0.74vw, 2.5rem);
118
+ --space-xl: clamp(3rem, 2.78rem + 1.11vw, 3.75rem);
119
+ --space-2xl: clamp(4rem, 3.71rem + 1.48vw, 5rem);
120
+ --space-3xl: clamp(6rem, 5.57rem + 2.22vw, 7.5rem);
121
+
122
+ // --------------------------------------------------------
123
+ // Borders
124
+ // --------------------------------------------------------
125
+
126
+ --radius-sm: 2px;
127
+ --radius-md: 4px;
128
+ --radius-lg: 8px;
129
+ --radius-full: 9999px;
130
+ --radius-cyber: 0 12px 0 12px;
131
+ --border-thin: 1px;
132
+ --border-medium: 2px;
133
+ --border-thick: 3px;
134
+
135
+ // --------------------------------------------------------
136
+ // Animation
137
+ // --------------------------------------------------------
138
+
139
+ --ease-cyber: cubic-bezier(0.77, 0, 0.175, 1);
140
+ --ease-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
141
+ --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
142
+ --duration-fast: 150ms;
143
+ --duration-normal: 300ms;
144
+ --duration-slow: 500ms;
145
+ --transition-fast: var(--duration-fast) ease;
146
+ --transition-base: var(--duration-normal) ease;
147
+ --transition-slow: var(--duration-slow) ease;
148
+
149
+ // --------------------------------------------------------
150
+ // Z-Index (optimized: removed unused --z-base, --z-raised, --z-overlay)
151
+ // --------------------------------------------------------
152
+
153
+ --z-sticky: 100;
154
+ --z-modal: 1000;
155
+
156
+ // --------------------------------------------------------
157
+ // Effects (optimized: removed unused --chromatic-offset)
158
+ // --------------------------------------------------------
159
+
160
+ --noise-opacity: 0.03;
161
+ --scanline-opacity: 0.04;
162
+ }
163
+ }
@@ -0,0 +1,46 @@
1
+ // ============================================================
2
+ // CYBERCORE CSS Framework
3
+ // A pure CSS cyberpunk design system
4
+ // ============================================================
5
+
6
+ // Layer order for cascade control
7
+ @use "core/layers";
8
+
9
+ // Core system (required)
10
+ @use "core/variables";
11
+ @use "core/reset";
12
+ @use "core/base";
13
+ @use "core/typography";
14
+
15
+ // Components (modular - import what you need)
16
+ @use "components/buttons";
17
+ @use "components/cards";
18
+ @use "components/inputs";
19
+ @use "components/progress";
20
+ @use "components/badges";
21
+ @use "components/alerts";
22
+ @use "components/tables";
23
+ @use "components/nav";
24
+ @use "components/tabs";
25
+ @use "components/modal";
26
+ @use "components/dropdown";
27
+ @use "components/terminal";
28
+ @use "components/spinner";
29
+ @use "components/skeleton";
30
+
31
+ // Effects (modular - import what you need)
32
+ @use "effects/noise";
33
+ @use "effects/scanlines";
34
+ @use "effects/glitch";
35
+ @use "effects/neon-border";
36
+ @use "effects/datastream";
37
+
38
+ // Utilities
39
+ @use "utilities/display";
40
+ @use "utilities/flex";
41
+ @use "utilities/grid";
42
+ @use "utilities/spacing";
43
+ @use "utilities/text";
44
+ @use "utilities/accessibility";
45
+ @use "utilities/animation";
46
+ @use "utilities/icons";
@@ -0,0 +1,43 @@
1
+ // ============================================================
2
+ // Datastream Effect - Animated vertical data flow
3
+ // ============================================================
4
+
5
+ @layer components {
6
+ .cyber-datastream {
7
+ position: relative;
8
+
9
+ &::before {
10
+ content: "";
11
+ position: absolute;
12
+ z-index: 1;
13
+ border-radius: inherit;
14
+ background: linear-gradient(
15
+ 180deg,
16
+ transparent 0%,
17
+ color-mix(in srgb, var(--cyber-cyan-500) 30%, transparent) 50%,
18
+ transparent 100%
19
+ );
20
+ background-size: 100% 200%;
21
+ animation: datastream 3s linear infinite;
22
+ pointer-events: none;
23
+ inset: 0;
24
+ }
25
+ }
26
+
27
+ @keyframes datastream {
28
+ 0% {
29
+ background-position: 0% 0%;
30
+ }
31
+
32
+ 100% {
33
+ background-position: 0% 200%;
34
+ }
35
+ }
36
+
37
+ // Respect reduced motion preference
38
+ @media (prefers-reduced-motion: reduce) {
39
+ .cyber-datastream::before {
40
+ animation: none;
41
+ }
42
+ }
43
+ }
@@ -0,0 +1,389 @@
1
+ // ============================================================
2
+ // Glitch Effect - Chromatic aberration and distortion
3
+ // ============================================================
4
+
5
+ @layer components {
6
+ // Glitch Heading - Text with animated chromatic aberration
7
+ .cyber-heading {
8
+ position: relative;
9
+ display: inline-block;
10
+ color: var(--cyber-cyan-500);
11
+ text-shadow:
12
+ 0 0 10px var(--cyber-cyan-500),
13
+ 0 0 20px color-mix(in srgb, var(--cyber-cyan-500) 60%, transparent);
14
+
15
+ &::before,
16
+ &::after {
17
+ content: attr(data-text);
18
+ position: absolute;
19
+ top: 0;
20
+ left: 0;
21
+ width: 100%;
22
+ height: 100%;
23
+ opacity: 80%;
24
+ will-change: transform, clip-path;
25
+ }
26
+
27
+ &::before {
28
+ z-index: -1;
29
+ color: var(--cyber-magenta-500);
30
+ animation: glitch-1 8s infinite linear alternate-reverse;
31
+ }
32
+
33
+ &::after {
34
+ z-index: -1;
35
+ color: var(--cyber-cyan-300);
36
+ animation: glitch-2 6s infinite linear alternate;
37
+ }
38
+ }
39
+
40
+ @keyframes glitch-1 {
41
+ 0%,
42
+ 100% {
43
+ transform: translate(-2px, 0);
44
+ clip-path: inset(0 0 95% 0);
45
+ }
46
+
47
+ 10% {
48
+ transform: translate(2px, 0);
49
+ clip-path: inset(30% 0 40% 0);
50
+ }
51
+
52
+ 20% {
53
+ transform: translate(-1px, 0);
54
+ clip-path: inset(70% 0 10% 0);
55
+ }
56
+
57
+ 30% {
58
+ transform: translate(1px, 0);
59
+ clip-path: inset(10% 0 60% 0);
60
+ }
61
+
62
+ 40% {
63
+ transform: translate(-2px, 0);
64
+ clip-path: inset(80% 0 5% 0);
65
+ }
66
+
67
+ 50% {
68
+ transform: translate(2px, 0);
69
+ clip-path: inset(20% 0 55% 0);
70
+ }
71
+
72
+ 60% {
73
+ transform: translate(-1px, 0);
74
+ clip-path: inset(50% 0 30% 0);
75
+ }
76
+
77
+ 70% {
78
+ transform: translate(1px, 0);
79
+ clip-path: inset(5% 0 85% 0);
80
+ }
81
+
82
+ 80% {
83
+ transform: translate(-2px, 0);
84
+ clip-path: inset(45% 0 35% 0);
85
+ }
86
+
87
+ 90% {
88
+ transform: translate(2px, 0);
89
+ clip-path: inset(85% 0 5% 0);
90
+ }
91
+ }
92
+
93
+ @keyframes glitch-2 {
94
+ 0%,
95
+ 100% {
96
+ transform: translate(2px, 0);
97
+ clip-path: inset(95% 0 0 0);
98
+ }
99
+
100
+ 10% {
101
+ transform: translate(-2px, 0);
102
+ clip-path: inset(40% 0 30% 0);
103
+ }
104
+
105
+ 20% {
106
+ transform: translate(1px, 0);
107
+ clip-path: inset(10% 0 70% 0);
108
+ }
109
+
110
+ 30% {
111
+ transform: translate(-1px, 0);
112
+ clip-path: inset(60% 0 10% 0);
113
+ }
114
+
115
+ 40% {
116
+ transform: translate(2px, 0);
117
+ clip-path: inset(5% 0 80% 0);
118
+ }
119
+
120
+ 50% {
121
+ transform: translate(-2px, 0);
122
+ clip-path: inset(55% 0 20% 0);
123
+ }
124
+
125
+ 60% {
126
+ transform: translate(1px, 0);
127
+ clip-path: inset(30% 0 50% 0);
128
+ }
129
+
130
+ 70% {
131
+ transform: translate(-1px, 0);
132
+ clip-path: inset(85% 0 5% 0);
133
+ }
134
+
135
+ 80% {
136
+ transform: translate(2px, 0);
137
+ clip-path: inset(35% 0 45% 0);
138
+ }
139
+
140
+ 90% {
141
+ transform: translate(-2px, 0);
142
+ clip-path: inset(5% 0 85% 0);
143
+ }
144
+ }
145
+
146
+ // Respect reduced motion preference for cyber-heading
147
+ @media (prefers-reduced-motion: reduce) {
148
+ .cyber-heading {
149
+ &::before,
150
+ &::after {
151
+ opacity: 0%;
152
+ transform: none;
153
+ animation: none;
154
+ clip-path: none;
155
+ }
156
+ }
157
+ }
158
+
159
+ .cyber-glitch {
160
+ --glitch-color-1: var(--cyber-cyan-500, #00f0ff);
161
+ --glitch-color-2: var(--cyber-magenta-500, #ff2a6d);
162
+ --glitch-offset: 2px;
163
+ --glitch-duration: 3s;
164
+
165
+ position: relative;
166
+
167
+ // Chromatic aberration layers
168
+ &::before,
169
+ &::after {
170
+ content: attr(data-text);
171
+ position: absolute;
172
+ overflow: hidden;
173
+ color: inherit;
174
+ background: inherit;
175
+ pointer-events: none;
176
+ inset: 0;
177
+ will-change: transform, clip-path;
178
+ }
179
+
180
+ // Cyan channel offset
181
+ &::before {
182
+ color: var(--glitch-color-1);
183
+ animation: cyber-glitch-1 var(--glitch-duration) infinite linear alternate-reverse;
184
+ clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%);
185
+ mix-blend-mode: screen;
186
+ }
187
+
188
+ // Magenta channel offset
189
+ &::after {
190
+ color: var(--glitch-color-2);
191
+ animation: cyber-glitch-2 var(--glitch-duration) infinite linear alternate-reverse;
192
+ clip-path: polygon(0 55%, 100% 55%, 100% 100%, 0 100%);
193
+ mix-blend-mode: screen;
194
+ }
195
+
196
+ // Intense glitch variant
197
+ &--intense {
198
+ --glitch-offset: 4px;
199
+ --glitch-duration: 1.5s;
200
+
201
+ &::before {
202
+ animation: cyber-glitch-intense-1 var(--glitch-duration) infinite;
203
+ }
204
+
205
+ &::after {
206
+ animation: cyber-glitch-intense-2 var(--glitch-duration) infinite;
207
+ }
208
+ }
209
+
210
+ // Hover-only glitch
211
+ &--hover {
212
+ &::before,
213
+ &::after {
214
+ opacity: 0%;
215
+ animation: none;
216
+ }
217
+
218
+ &:hover::before,
219
+ &:hover::after {
220
+ opacity: 100%;
221
+ }
222
+
223
+ &:hover::before {
224
+ animation: cyber-glitch-1 0.3s infinite linear alternate-reverse;
225
+ }
226
+
227
+ &:hover::after {
228
+ animation: cyber-glitch-2 0.3s infinite linear alternate-reverse;
229
+ }
230
+ }
231
+
232
+ // Subtle glitch for continuous use
233
+ &--subtle {
234
+ --glitch-offset: 1px;
235
+
236
+ &::before,
237
+ &::after {
238
+ opacity: 70%;
239
+ }
240
+ }
241
+ }
242
+
243
+ // Standard glitch animations
244
+ @keyframes cyber-glitch-1 {
245
+ 0%,
246
+ 100% {
247
+ transform: translate(0);
248
+ clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%);
249
+ }
250
+
251
+ 20% {
252
+ transform: translate(calc(var(--glitch-offset) * -1), 0);
253
+ clip-path: polygon(0 15%, 100% 15%, 100% 30%, 0 30%);
254
+ }
255
+
256
+ 40% {
257
+ transform: translate(var(--glitch-offset), 0);
258
+ clip-path: polygon(0 5%, 100% 5%, 100% 20%, 0 20%);
259
+ }
260
+
261
+ 60% {
262
+ transform: translate(calc(var(--glitch-offset) * -0.5), 0);
263
+ clip-path: polygon(0 35%, 100% 35%, 100% 50%, 0 50%);
264
+ }
265
+
266
+ 80% {
267
+ transform: translate(var(--glitch-offset), 0);
268
+ clip-path: polygon(0 0, 100% 0, 100% 10%, 0 10%);
269
+ }
270
+ }
271
+
272
+ @keyframes cyber-glitch-2 {
273
+ 0%,
274
+ 100% {
275
+ transform: translate(0);
276
+ clip-path: polygon(0 55%, 100% 55%, 100% 100%, 0 100%);
277
+ }
278
+
279
+ 20% {
280
+ transform: translate(var(--glitch-offset), 0);
281
+ clip-path: polygon(0 70%, 100% 70%, 100% 85%, 0 85%);
282
+ }
283
+
284
+ 40% {
285
+ transform: translate(calc(var(--glitch-offset) * -1), 0);
286
+ clip-path: polygon(0 80%, 100% 80%, 100% 95%, 0 95%);
287
+ }
288
+
289
+ 60% {
290
+ transform: translate(calc(var(--glitch-offset) * 0.5), 0);
291
+ clip-path: polygon(0 60%, 100% 60%, 100% 75%, 0 75%);
292
+ }
293
+
294
+ 80% {
295
+ transform: translate(calc(var(--glitch-offset) * -1), 0);
296
+ clip-path: polygon(0 90%, 100% 90%, 100% 100%, 0 100%);
297
+ }
298
+ }
299
+
300
+ // Intense glitch with more aggressive distortion
301
+ @keyframes cyber-glitch-intense-1 {
302
+ 0% {
303
+ transform: translate(0);
304
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
305
+ }
306
+
307
+ 5% {
308
+ transform: translate(var(--glitch-offset), calc(var(--glitch-offset) * -1));
309
+ clip-path: polygon(0 5%, 100% 5%, 100% 10%, 0 10%);
310
+ }
311
+
312
+ 10% {
313
+ transform: translate(calc(var(--glitch-offset) * -2), 0);
314
+ clip-path: polygon(0 20%, 100% 20%, 100% 25%, 0 25%);
315
+ }
316
+
317
+ 15% {
318
+ transform: translate(0);
319
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
320
+ }
321
+
322
+ 50% {
323
+ transform: translate(calc(var(--glitch-offset) * -1), var(--glitch-offset));
324
+ clip-path: polygon(0 40%, 100% 40%, 100% 50%, 0 50%);
325
+ }
326
+
327
+ 55% {
328
+ transform: translate(var(--glitch-offset), 0);
329
+ clip-path: polygon(0 60%, 100% 60%, 100% 70%, 0 70%);
330
+ }
331
+
332
+ 60%,
333
+ 100% {
334
+ transform: translate(0);
335
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
336
+ }
337
+ }
338
+
339
+ @keyframes cyber-glitch-intense-2 {
340
+ 0% {
341
+ transform: translate(0);
342
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
343
+ }
344
+
345
+ 7% {
346
+ transform: translate(calc(var(--glitch-offset) * -1), var(--glitch-offset));
347
+ clip-path: polygon(0 75%, 100% 75%, 100% 80%, 0 80%);
348
+ }
349
+
350
+ 12% {
351
+ transform: translate(var(--glitch-offset), 0);
352
+ clip-path: polygon(0 85%, 100% 85%, 100% 95%, 0 95%);
353
+ }
354
+
355
+ 17% {
356
+ transform: translate(0);
357
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
358
+ }
359
+
360
+ 45% {
361
+ transform: translate(var(--glitch-offset), calc(var(--glitch-offset) * -1));
362
+ clip-path: polygon(0 30%, 100% 30%, 100% 35%, 0 35%);
363
+ }
364
+
365
+ 52% {
366
+ transform: translate(calc(var(--glitch-offset) * -2), 0);
367
+ clip-path: polygon(0 15%, 100% 15%, 100% 25%, 0 25%);
368
+ }
369
+
370
+ 58%,
371
+ 100% {
372
+ transform: translate(0);
373
+ clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
374
+ }
375
+ }
376
+
377
+ // Respect reduced motion preference
378
+ @media (prefers-reduced-motion: reduce) {
379
+ .cyber-glitch {
380
+ &::before,
381
+ &::after {
382
+ opacity: 0%;
383
+ transform: none;
384
+ animation: none;
385
+ clip-path: none;
386
+ }
387
+ }
388
+ }
389
+ }