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.
- package/LICENSE +21 -0
- package/README.md +479 -0
- package/dist/cybercore.css +3546 -0
- package/dist/cybercore.css.map +1 -0
- package/dist/cybercore.min.css +3 -0
- package/dist/cybercore.min.css.map +1 -0
- package/package.json +214 -0
- package/src/cybercore.d.ts +107 -0
- package/src/icons/README.md +378 -0
- package/src/icons/defs/_template.ts +27 -0
- package/src/icons/defs/actions/check.ts +36 -0
- package/src/icons/defs/actions/copy.ts +37 -0
- package/src/icons/defs/actions/cut.ts +44 -0
- package/src/icons/defs/actions/delete.ts +42 -0
- package/src/icons/defs/actions/download.ts +36 -0
- package/src/icons/defs/actions/drag.ts +60 -0
- package/src/icons/defs/actions/edit.ts +36 -0
- package/src/icons/defs/actions/filter.ts +33 -0
- package/src/icons/defs/actions/index.ts +28 -0
- package/src/icons/defs/actions/link.ts +40 -0
- package/src/icons/defs/actions/minus.ts +42 -0
- package/src/icons/defs/actions/paste.ts +39 -0
- package/src/icons/defs/actions/pin.ts +36 -0
- package/src/icons/defs/actions/plus.ts +46 -0
- package/src/icons/defs/actions/redo.ts +37 -0
- package/src/icons/defs/actions/refresh.ts +36 -0
- package/src/icons/defs/actions/save.ts +36 -0
- package/src/icons/defs/actions/search.ts +37 -0
- package/src/icons/defs/actions/share.ts +45 -0
- package/src/icons/defs/actions/sort.ts +39 -0
- package/src/icons/defs/actions/undo.ts +37 -0
- package/src/icons/defs/actions/unlink.ts +44 -0
- package/src/icons/defs/actions/upload.ts +36 -0
- package/src/icons/defs/actions/x.ts +40 -0
- package/src/icons/defs/communication/at-sign.ts +37 -0
- package/src/icons/defs/communication/bell-off.ts +44 -0
- package/src/icons/defs/communication/bell.ts +37 -0
- package/src/icons/defs/communication/inbox.ts +40 -0
- package/src/icons/defs/communication/index.ts +15 -0
- package/src/icons/defs/communication/mail.ts +40 -0
- package/src/icons/defs/communication/message.ts +42 -0
- package/src/icons/defs/communication/phone-off.ts +35 -0
- package/src/icons/defs/communication/phone.ts +36 -0
- package/src/icons/defs/communication/send.ts +37 -0
- package/src/icons/defs/communication/video-call.ts +44 -0
- package/src/icons/defs/data/calendar.ts +55 -0
- package/src/icons/defs/data/chart-bar.ts +48 -0
- package/src/icons/defs/data/chart-line.ts +41 -0
- package/src/icons/defs/data/chart-pie.ts +42 -0
- package/src/icons/defs/data/clock.ts +37 -0
- package/src/icons/defs/data/cloud-download.ts +41 -0
- package/src/icons/defs/data/cloud-upload.ts +41 -0
- package/src/icons/defs/data/cloud.ts +36 -0
- package/src/icons/defs/data/database.ts +50 -0
- package/src/icons/defs/data/hash.ts +43 -0
- package/src/icons/defs/data/index.ts +19 -0
- package/src/icons/defs/data/percent.ts +39 -0
- package/src/icons/defs/data/sync.ts +43 -0
- package/src/icons/defs/data/table.ts +50 -0
- package/src/icons/defs/data/timer.ts +47 -0
- package/src/icons/defs/files/archive.ts +39 -0
- package/src/icons/defs/files/attachment.ts +34 -0
- package/src/icons/defs/files/clipboard.ts +45 -0
- package/src/icons/defs/files/file-archive.ts +45 -0
- package/src/icons/defs/files/file-audio.ts +41 -0
- package/src/icons/defs/files/file-code.ts +41 -0
- package/src/icons/defs/files/file-image.ts +41 -0
- package/src/icons/defs/files/file-minus.ts +37 -0
- package/src/icons/defs/files/file-plus.ts +41 -0
- package/src/icons/defs/files/file-text.ts +41 -0
- package/src/icons/defs/files/file-video.ts +37 -0
- package/src/icons/defs/files/file.ts +34 -0
- package/src/icons/defs/files/folder-open.ts +34 -0
- package/src/icons/defs/files/folder-plus.ts +38 -0
- package/src/icons/defs/files/folder.ts +30 -0
- package/src/icons/defs/files/index.ts +20 -0
- package/src/icons/defs/index.ts +58 -0
- package/src/icons/defs/media/camera-off.ts +39 -0
- package/src/icons/defs/media/camera.ts +34 -0
- package/src/icons/defs/media/fast-forward.ts +34 -0
- package/src/icons/defs/media/image.ts +39 -0
- package/src/icons/defs/media/index.ts +22 -0
- package/src/icons/defs/media/mic-off.ts +44 -0
- package/src/icons/defs/media/mic.ts +39 -0
- package/src/icons/defs/media/music.ts +39 -0
- package/src/icons/defs/media/pause.ts +36 -0
- package/src/icons/defs/media/play.ts +34 -0
- package/src/icons/defs/media/rewind.ts +34 -0
- package/src/icons/defs/media/skip-back.ts +34 -0
- package/src/icons/defs/media/skip-forward.ts +34 -0
- package/src/icons/defs/media/stop.ts +34 -0
- package/src/icons/defs/media/video.ts +39 -0
- package/src/icons/defs/media/volume-high.ts +39 -0
- package/src/icons/defs/media/volume-low.ts +34 -0
- package/src/icons/defs/media/volume-off.ts +34 -0
- package/src/icons/defs/navigation/arrow-down.ts +34 -0
- package/src/icons/defs/navigation/arrow-left.ts +34 -0
- package/src/icons/defs/navigation/arrow-right.ts +34 -0
- package/src/icons/defs/navigation/arrow-up.ts +34 -0
- package/src/icons/defs/navigation/chevron-down.ts +31 -0
- package/src/icons/defs/navigation/chevron-left.ts +31 -0
- package/src/icons/defs/navigation/chevron-right.ts +31 -0
- package/src/icons/defs/navigation/chevron-up.ts +31 -0
- package/src/icons/defs/navigation/external-link.ts +37 -0
- package/src/icons/defs/navigation/home.ts +34 -0
- package/src/icons/defs/navigation/index.ts +19 -0
- package/src/icons/defs/navigation/maximize.ts +36 -0
- package/src/icons/defs/navigation/menu-dots.ts +42 -0
- package/src/icons/defs/navigation/menu.ts +42 -0
- package/src/icons/defs/navigation/minimize.ts +32 -0
- package/src/icons/defs/security/eye-off.ts +42 -0
- package/src/icons/defs/security/eye.ts +37 -0
- package/src/icons/defs/security/fingerprint.ts +51 -0
- package/src/icons/defs/security/index.ts +20 -0
- package/src/icons/defs/security/key.ts +43 -0
- package/src/icons/defs/security/lock.ts +40 -0
- package/src/icons/defs/security/log-in.ts +40 -0
- package/src/icons/defs/security/log-out.ts +40 -0
- package/src/icons/defs/security/shield-check.ts +34 -0
- package/src/icons/defs/security/shield-x.ts +38 -0
- package/src/icons/defs/security/shield.ts +36 -0
- package/src/icons/defs/security/unlock.ts +40 -0
- package/src/icons/defs/security/user-minus.ts +39 -0
- package/src/icons/defs/security/user-plus.ts +43 -0
- package/src/icons/defs/security/user.ts +41 -0
- package/src/icons/defs/security/users.ts +43 -0
- package/src/icons/defs/social/award.ts +41 -0
- package/src/icons/defs/social/bookmark-filled.ts +24 -0
- package/src/icons/defs/social/bookmark.ts +25 -0
- package/src/icons/defs/social/flag.ts +35 -0
- package/src/icons/defs/social/heart-filled.ts +24 -0
- package/src/icons/defs/social/heart.ts +25 -0
- package/src/icons/defs/social/index.ts +11 -0
- package/src/icons/defs/social/star-filled.ts +24 -0
- package/src/icons/defs/social/star.ts +25 -0
- package/src/icons/defs/social/thumbs-down.ts +42 -0
- package/src/icons/defs/social/thumbs-up.ts +42 -0
- package/src/icons/defs/social/trending.ts +36 -0
- package/src/icons/defs/status/battery-charging.ts +30 -0
- package/src/icons/defs/status/battery-full.ts +30 -0
- package/src/icons/defs/status/battery-low.ts +31 -0
- package/src/icons/defs/status/error.ts +31 -0
- package/src/icons/defs/status/help.ts +30 -0
- package/src/icons/defs/status/index.ts +12 -0
- package/src/icons/defs/status/info.ts +30 -0
- package/src/icons/defs/status/loading.ts +52 -0
- package/src/icons/defs/status/offline.ts +28 -0
- package/src/icons/defs/status/online.ts +30 -0
- package/src/icons/defs/status/progress.ts +31 -0
- package/src/icons/defs/status/success.ts +27 -0
- package/src/icons/defs/status/warning.ts +30 -0
- package/src/icons/defs/tech/api.ts +55 -0
- package/src/icons/defs/tech/bluetooth.ts +33 -0
- package/src/icons/defs/tech/bug.ts +58 -0
- package/src/icons/defs/tech/chip.ts +80 -0
- package/src/icons/defs/tech/circuit.ts +57 -0
- package/src/icons/defs/tech/code.ts +36 -0
- package/src/icons/defs/tech/cpu.ts +58 -0
- package/src/icons/defs/tech/git-branch.ts +41 -0
- package/src/icons/defs/tech/git-commit.ts +38 -0
- package/src/icons/defs/tech/git-merge.ts +46 -0
- package/src/icons/defs/tech/git-pull.ts +50 -0
- package/src/icons/defs/tech/globe.ts +36 -0
- package/src/icons/defs/tech/index.ts +27 -0
- package/src/icons/defs/tech/memory.ts +61 -0
- package/src/icons/defs/tech/qr-code.ts +81 -0
- package/src/icons/defs/tech/server.ts +45 -0
- package/src/icons/defs/tech/settings.ts +33 -0
- package/src/icons/defs/tech/signal.ts +43 -0
- package/src/icons/defs/tech/sliders.ts +63 -0
- package/src/icons/defs/tech/terminal.ts +36 -0
- package/src/icons/defs/tech/wifi-off.ts +43 -0
- package/src/icons/defs/tech/wifi.ts +38 -0
- package/src/icons/defs/tech/zap.ts +30 -0
- package/src/icons/icon-list.ts +305 -0
- package/src/icons/index.ts +95 -0
- package/src/icons/individual.ts +210 -0
- package/src/icons/registry.ts +2276 -0
- package/src/icons/svg/actions/check.svg +5 -0
- package/src/icons/svg/actions/copy.svg +6 -0
- package/src/icons/svg/actions/cut.svg +7 -0
- package/src/icons/svg/actions/delete.svg +7 -0
- package/src/icons/svg/actions/download.svg +5 -0
- package/src/icons/svg/actions/drag.svg +8 -0
- package/src/icons/svg/actions/edit.svg +5 -0
- package/src/icons/svg/actions/filter.svg +4 -0
- package/src/icons/svg/actions/link.svg +6 -0
- package/src/icons/svg/actions/minus.svg +7 -0
- package/src/icons/svg/actions/paste.svg +6 -0
- package/src/icons/svg/actions/pin.svg +5 -0
- package/src/icons/svg/actions/plus.svg +8 -0
- package/src/icons/svg/actions/redo.svg +5 -0
- package/src/icons/svg/actions/refresh.svg +5 -0
- package/src/icons/svg/actions/save.svg +5 -0
- package/src/icons/svg/actions/search.svg +5 -0
- package/src/icons/svg/actions/share.svg +7 -0
- package/src/icons/svg/actions/sort.svg +6 -0
- package/src/icons/svg/actions/undo.svg +5 -0
- package/src/icons/svg/actions/unlink.svg +7 -0
- package/src/icons/svg/actions/upload.svg +5 -0
- package/src/icons/svg/actions/x.svg +6 -0
- package/src/icons/svg/communication/at-sign.svg +5 -0
- package/src/icons/svg/communication/bell-off.svg +8 -0
- package/src/icons/svg/communication/bell.svg +5 -0
- package/src/icons/svg/communication/inbox.svg +6 -0
- package/src/icons/svg/communication/mail.svg +6 -0
- package/src/icons/svg/communication/message.svg +6 -0
- package/src/icons/svg/communication/phone-off.svg +4 -0
- package/src/icons/svg/communication/phone.svg +5 -0
- package/src/icons/svg/communication/send.svg +5 -0
- package/src/icons/svg/communication/video-call.svg +7 -0
- package/src/icons/svg/data/calendar.svg +11 -0
- package/src/icons/svg/data/chart-bar.svg +6 -0
- package/src/icons/svg/data/chart-line.svg +5 -0
- package/src/icons/svg/data/chart-pie.svg +6 -0
- package/src/icons/svg/data/clock.svg +5 -0
- package/src/icons/svg/data/cloud-download.svg +5 -0
- package/src/icons/svg/data/cloud-upload.svg +5 -0
- package/src/icons/svg/data/cloud.svg +4 -0
- package/src/icons/svg/data/database.svg +7 -0
- package/src/icons/svg/data/hash.svg +6 -0
- package/src/icons/svg/data/percent.svg +5 -0
- package/src/icons/svg/data/sync.svg +6 -0
- package/src/icons/svg/data/table.svg +7 -0
- package/src/icons/svg/data/timer.svg +7 -0
- package/src/icons/svg/files/archive.svg +5 -0
- package/src/icons/svg/files/attachment.svg +4 -0
- package/src/icons/svg/files/clipboard.svg +6 -0
- package/src/icons/svg/files/file-archive.svg +7 -0
- package/src/icons/svg/files/file-audio.svg +6 -0
- package/src/icons/svg/files/file-code.svg +6 -0
- package/src/icons/svg/files/file-image.svg +6 -0
- package/src/icons/svg/files/file-minus.svg +5 -0
- package/src/icons/svg/files/file-plus.svg +6 -0
- package/src/icons/svg/files/file-text.svg +6 -0
- package/src/icons/svg/files/file-video.svg +5 -0
- package/src/icons/svg/files/file.svg +4 -0
- package/src/icons/svg/files/folder-open.svg +4 -0
- package/src/icons/svg/files/folder-plus.svg +5 -0
- package/src/icons/svg/files/folder.svg +3 -0
- package/src/icons/svg/media/camera-off.svg +5 -0
- package/src/icons/svg/media/camera.svg +4 -0
- package/src/icons/svg/media/fast-forward.svg +4 -0
- package/src/icons/svg/media/image.svg +5 -0
- package/src/icons/svg/media/mic-off.svg +6 -0
- package/src/icons/svg/media/mic.svg +5 -0
- package/src/icons/svg/media/music.svg +5 -0
- package/src/icons/svg/media/pause.svg +4 -0
- package/src/icons/svg/media/play.svg +4 -0
- package/src/icons/svg/media/rewind.svg +4 -0
- package/src/icons/svg/media/skip-back.svg +4 -0
- package/src/icons/svg/media/skip-forward.svg +4 -0
- package/src/icons/svg/media/stop.svg +4 -0
- package/src/icons/svg/media/video.svg +5 -0
- package/src/icons/svg/media/volume-high.svg +5 -0
- package/src/icons/svg/media/volume-low.svg +4 -0
- package/src/icons/svg/media/volume-off.svg +4 -0
- package/src/icons/svg/navigation/arrow-down.svg +4 -0
- package/src/icons/svg/navigation/arrow-left.svg +4 -0
- package/src/icons/svg/navigation/arrow-right.svg +4 -0
- package/src/icons/svg/navigation/arrow-up.svg +4 -0
- package/src/icons/svg/navigation/chevron-down.svg +3 -0
- package/src/icons/svg/navigation/chevron-left.svg +3 -0
- package/src/icons/svg/navigation/chevron-right.svg +3 -0
- package/src/icons/svg/navigation/chevron-up.svg +3 -0
- package/src/icons/svg/navigation/external-link.svg +5 -0
- package/src/icons/svg/navigation/home.svg +4 -0
- package/src/icons/svg/navigation/maximize.svg +3 -0
- package/src/icons/svg/navigation/menu-dots.svg +5 -0
- package/src/icons/svg/navigation/menu.svg +5 -0
- package/src/icons/svg/navigation/minimize.svg +3 -0
- package/src/icons/svg/security/eye-off.svg +6 -0
- package/src/icons/svg/security/eye.svg +5 -0
- package/src/icons/svg/security/fingerprint.svg +9 -0
- package/src/icons/svg/security/key.svg +7 -0
- package/src/icons/svg/security/lock.svg +6 -0
- package/src/icons/svg/security/log-in.svg +6 -0
- package/src/icons/svg/security/log-out.svg +6 -0
- package/src/icons/svg/security/shield-check.svg +4 -0
- package/src/icons/svg/security/shield-x.svg +5 -0
- package/src/icons/svg/security/shield.svg +5 -0
- package/src/icons/svg/security/unlock.svg +6 -0
- package/src/icons/svg/security/user-minus.svg +5 -0
- package/src/icons/svg/security/user-plus.svg +6 -0
- package/src/icons/svg/security/user.svg +6 -0
- package/src/icons/svg/security/users.svg +6 -0
- package/src/icons/svg/social/award.svg +5 -0
- package/src/icons/svg/social/bookmark-filled.svg +3 -0
- package/src/icons/svg/social/bookmark.svg +3 -0
- package/src/icons/svg/social/flag.svg +4 -0
- package/src/icons/svg/social/heart-filled.svg +3 -0
- package/src/icons/svg/social/heart.svg +3 -0
- package/src/icons/svg/social/star-filled.svg +3 -0
- package/src/icons/svg/social/star.svg +3 -0
- package/src/icons/svg/social/thumbs-down.svg +5 -0
- package/src/icons/svg/social/thumbs-up.svg +5 -0
- package/src/icons/svg/social/trending.svg +4 -0
- package/src/icons/svg/status/battery-charging.svg +5 -0
- package/src/icons/svg/status/battery-full.svg +5 -0
- package/src/icons/svg/status/battery-low.svg +5 -0
- package/src/icons/svg/status/error.svg +5 -0
- package/src/icons/svg/status/help.svg +5 -0
- package/src/icons/svg/status/info.svg +5 -0
- package/src/icons/svg/status/loading.svg +10 -0
- package/src/icons/svg/status/offline.svg +4 -0
- package/src/icons/svg/status/online.svg +5 -0
- package/src/icons/svg/status/progress.svg +5 -0
- package/src/icons/svg/status/success.svg +4 -0
- package/src/icons/svg/status/warning.svg +5 -0
- package/src/icons/svg/tech/api.svg +10 -0
- package/src/icons/svg/tech/bluetooth.svg +4 -0
- package/src/icons/svg/tech/bug.svg +11 -0
- package/src/icons/svg/tech/chip.svg +16 -0
- package/src/icons/svg/tech/circuit.svg +15 -0
- package/src/icons/svg/tech/code.svg +5 -0
- package/src/icons/svg/tech/cpu.svg +12 -0
- package/src/icons/svg/tech/git-branch.svg +6 -0
- package/src/icons/svg/tech/git-commit.svg +5 -0
- package/src/icons/svg/tech/git-merge.svg +7 -0
- package/src/icons/svg/tech/git-pull.svg +8 -0
- package/src/icons/svg/tech/globe.svg +5 -0
- package/src/icons/svg/tech/memory.svg +12 -0
- package/src/icons/svg/tech/qr-code.svg +9 -0
- package/src/icons/svg/tech/server.svg +7 -0
- package/src/icons/svg/tech/settings.svg +4 -0
- package/src/icons/svg/tech/signal.svg +7 -0
- package/src/icons/svg/tech/sliders.svg +11 -0
- package/src/icons/svg/tech/terminal.svg +5 -0
- package/src/icons/svg/tech/wifi-off.svg +7 -0
- package/src/icons/svg/tech/wifi.svg +6 -0
- package/src/icons/svg/tech/zap.svg +3 -0
- package/src/icons/types.ts +73 -0
- package/src/icons/utils.ts +216 -0
- package/src/scss/components/_alerts.scss +76 -0
- package/src/scss/components/_badges.scss +198 -0
- package/src/scss/components/_buttons.scss +180 -0
- package/src/scss/components/_cards.scss +178 -0
- package/src/scss/components/_dropdown.scss +213 -0
- package/src/scss/components/_index.scss +19 -0
- package/src/scss/components/_inputs.scss +193 -0
- package/src/scss/components/_modal.scss +303 -0
- package/src/scss/components/_nav.scss +116 -0
- package/src/scss/components/_progress.scss +218 -0
- package/src/scss/components/_skeleton.scss +337 -0
- package/src/scss/components/_spinner.scss +300 -0
- package/src/scss/components/_tables.scss +244 -0
- package/src/scss/components/_tabs.scss +327 -0
- package/src/scss/components/_terminal.scss +259 -0
- package/src/scss/core/_base.scss +25 -0
- package/src/scss/core/_index.scss +6 -0
- package/src/scss/core/_layers.scss +5 -0
- package/src/scss/core/_mixins.scss +96 -0
- package/src/scss/core/_reset.scss +26 -0
- package/src/scss/core/_typography.scss +43 -0
- package/src/scss/core/_variables.scss +163 -0
- package/src/scss/cybercore.scss +46 -0
- package/src/scss/effects/_datastream.scss +43 -0
- package/src/scss/effects/_glitch.scss +389 -0
- package/src/scss/effects/_index.scss +9 -0
- package/src/scss/effects/_neon-border.scss +107 -0
- package/src/scss/effects/_noise.scss +75 -0
- package/src/scss/effects/_scanlines.scss +86 -0
- package/src/scss/utilities/_accessibility.scss +57 -0
- package/src/scss/utilities/_animation.scss +246 -0
- package/src/scss/utilities/_backgrounds.scss +201 -0
- package/src/scss/utilities/_borders.scss +198 -0
- package/src/scss/utilities/_display.scss +33 -0
- package/src/scss/utilities/_filters.scss +279 -0
- package/src/scss/utilities/_flex.scss +95 -0
- package/src/scss/utilities/_grid.scss +68 -0
- package/src/scss/utilities/_icons.scss +152 -0
- package/src/scss/utilities/_index.scss +35 -0
- package/src/scss/utilities/_interactivity.scss +186 -0
- package/src/scss/utilities/_layout.scss +202 -0
- package/src/scss/utilities/_position.scss +168 -0
- package/src/scss/utilities/_shadows.scss +164 -0
- package/src/scss/utilities/_sizing.scss +229 -0
- package/src/scss/utilities/_spacing.scss +185 -0
- package/src/scss/utilities/_text.scss +177 -0
- package/src/scss/utilities/_transforms.scss +212 -0
- package/src/scss/utilities/_transitions.scss +174 -0
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
# Cyber Icons
|
|
2
|
+
|
|
3
|
+
Cyberpunk-themed SVG icon system for CYBERCORE CSS. Production-ready,
|
|
4
|
+
tree-shakeable, and fully typed.
|
|
5
|
+
|
|
6
|
+
## Features
|
|
7
|
+
|
|
8
|
+
- **150+ icon specs** across 10 categories
|
|
9
|
+
- **Stroke-based design** - scales perfectly at any size
|
|
10
|
+
- **currentColor** - inherits text color automatically
|
|
11
|
+
- **Zero dependencies** - pure SVG
|
|
12
|
+
- **Tree-shakeable** - import only what you need
|
|
13
|
+
- **TypeScript** - full type definitions
|
|
14
|
+
- **Accessible** - aria-label support built-in
|
|
15
|
+
|
|
16
|
+
## Installation
|
|
17
|
+
|
|
18
|
+
Icons are included with CYBERCORE CSS:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install cybercore-css
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Quick Start
|
|
25
|
+
|
|
26
|
+
### Simple HTML/CSS (No Build Tools)
|
|
27
|
+
|
|
28
|
+
Copy SVG files directly from `node_modules/cybercore-css/src/icons/svg/` or use
|
|
29
|
+
the CDN:
|
|
30
|
+
|
|
31
|
+
```html
|
|
32
|
+
<!-- Include CSS for icon utilities -->
|
|
33
|
+
<link
|
|
34
|
+
rel="stylesheet"
|
|
35
|
+
href="https://unpkg.com/cybercore-css/dist/cybercore.min.css"
|
|
36
|
+
/>
|
|
37
|
+
|
|
38
|
+
<!-- Option 1: Copy SVG inline -->
|
|
39
|
+
<span class="cyber-icon cyber-icon--cyan" style="width: 24px; height: 24px;">
|
|
40
|
+
<svg
|
|
41
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
42
|
+
viewBox="0 0 24 24"
|
|
43
|
+
fill="none"
|
|
44
|
+
stroke="currentColor"
|
|
45
|
+
stroke-width="1.5"
|
|
46
|
+
stroke-linecap="round"
|
|
47
|
+
stroke-linejoin="round"
|
|
48
|
+
>
|
|
49
|
+
<polyline points="4 17 10 11 4 5" />
|
|
50
|
+
<line x1="12" y1="19" x2="20" y2="19" />
|
|
51
|
+
</svg>
|
|
52
|
+
</span>
|
|
53
|
+
|
|
54
|
+
<!-- Option 2: Use as background image -->
|
|
55
|
+
<span class="my-icon"></span>
|
|
56
|
+
<style>
|
|
57
|
+
.my-icon {
|
|
58
|
+
width: 24px;
|
|
59
|
+
height: 24px;
|
|
60
|
+
background-image: url('path/to/terminal.svg');
|
|
61
|
+
background-size: contain;
|
|
62
|
+
}
|
|
63
|
+
</style>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
**Icon CSS Classes:**
|
|
67
|
+
|
|
68
|
+
- `.cyber-icon--cyan` / `--magenta` / `--yellow` / `--green` - Color variants
|
|
69
|
+
- `.cyber-icon--sm` (16px) / `--md` (24px) / `--lg` (32px) / `--xl` (48px) -
|
|
70
|
+
Sizes
|
|
71
|
+
- `.cyber-icon--spin` / `--pulse` / `--glitch` - Animations
|
|
72
|
+
|
|
73
|
+
### React / Next.js / Vite
|
|
74
|
+
|
|
75
|
+
```tsx
|
|
76
|
+
import { renderIcon, getRegisteredIcons } from 'cybercore-css/icons';
|
|
77
|
+
|
|
78
|
+
function App() {
|
|
79
|
+
return (
|
|
80
|
+
<div>
|
|
81
|
+
{/* Method 1: Render as HTML string */}
|
|
82
|
+
<span
|
|
83
|
+
dangerouslySetInnerHTML={{
|
|
84
|
+
__html: renderIcon('terminal', { size: 24, color: 'cyan' }),
|
|
85
|
+
}}
|
|
86
|
+
/>
|
|
87
|
+
|
|
88
|
+
{/* Method 2: Create a reusable Icon component */}
|
|
89
|
+
<Icon name="shield" size={32} color="magenta" />
|
|
90
|
+
</div>
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Reusable Icon Component
|
|
95
|
+
function Icon({ name, size = 24, color = 'current', className = '' }) {
|
|
96
|
+
return (
|
|
97
|
+
<span
|
|
98
|
+
className={`cyber-icon ${className}`}
|
|
99
|
+
style={{
|
|
100
|
+
color: color !== 'current' ? `var(--cyber-${color}-500)` : undefined,
|
|
101
|
+
}}
|
|
102
|
+
dangerouslySetInnerHTML={{ __html: renderIcon(name, { size }) }}
|
|
103
|
+
/>
|
|
104
|
+
);
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Vue.js
|
|
109
|
+
|
|
110
|
+
```vue
|
|
111
|
+
<template>
|
|
112
|
+
<span v-html="iconHtml" class="cyber-icon"></span>
|
|
113
|
+
</template>
|
|
114
|
+
|
|
115
|
+
<script setup>
|
|
116
|
+
import { computed } from 'vue';
|
|
117
|
+
import { renderIcon } from 'cybercore-css/icons';
|
|
118
|
+
|
|
119
|
+
const props = defineProps({
|
|
120
|
+
name: String,
|
|
121
|
+
size: { type: Number, default: 24 },
|
|
122
|
+
color: { type: String, default: 'cyan' },
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
const iconHtml = computed(() =>
|
|
126
|
+
renderIcon(props.name, { size: props.size, color: props.color })
|
|
127
|
+
);
|
|
128
|
+
</script>
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### Svelte
|
|
132
|
+
|
|
133
|
+
```svelte
|
|
134
|
+
<script>
|
|
135
|
+
import { renderIcon } from 'cybercore-css/icons';
|
|
136
|
+
|
|
137
|
+
export let name = 'terminal';
|
|
138
|
+
export let size = 24;
|
|
139
|
+
export let color = 'cyan';
|
|
140
|
+
|
|
141
|
+
$: html = renderIcon(name, { size, color });
|
|
142
|
+
</script>
|
|
143
|
+
|
|
144
|
+
<span class="cyber-icon" {@html html}></span>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Usage
|
|
148
|
+
|
|
149
|
+
### Import Everything
|
|
150
|
+
|
|
151
|
+
```ts
|
|
152
|
+
import * as CyberIcons from 'cybercore-css/icons';
|
|
153
|
+
|
|
154
|
+
// Render an icon
|
|
155
|
+
const html = CyberIcons.renderIcon('terminal', {
|
|
156
|
+
size: 24,
|
|
157
|
+
color: 'cyan',
|
|
158
|
+
});
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Import Specific Functions
|
|
162
|
+
|
|
163
|
+
```ts
|
|
164
|
+
import { renderIcon, getIcon, icons } from 'cybercore-css/icons';
|
|
165
|
+
|
|
166
|
+
// Get raw SVG string
|
|
167
|
+
const svg = getIcon('terminal');
|
|
168
|
+
|
|
169
|
+
// Render with options
|
|
170
|
+
const html = renderIcon('terminal', { size: 32, color: 'magenta' });
|
|
171
|
+
|
|
172
|
+
// Access registry directly
|
|
173
|
+
const chipSvg = icons.chip.svg;
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Tree-Shakeable Imports (Optimal Bundle Size)
|
|
177
|
+
|
|
178
|
+
For the smallest bundle, import icons directly and use `renderIconDef`:
|
|
179
|
+
|
|
180
|
+
```ts
|
|
181
|
+
// Import only the icons you need
|
|
182
|
+
import { renderIconDef } from 'cybercore-css/icons';
|
|
183
|
+
import { terminal, chip } from 'cybercore-css/icons/defs/tech';
|
|
184
|
+
import { arrowUp } from 'cybercore-css/icons/defs/navigation';
|
|
185
|
+
|
|
186
|
+
// Render with full options - bundler only includes these 3 icons
|
|
187
|
+
const html = renderIconDef(terminal, { size: 24, color: 'cyan' });
|
|
188
|
+
const chipHtml = renderIconDef(chip, { size: 32, variant: 'solid' });
|
|
189
|
+
|
|
190
|
+
// Access SVG directly
|
|
191
|
+
element.innerHTML = arrowUp.svg;
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
**Why this works for tree-shaking:**
|
|
195
|
+
|
|
196
|
+
- `renderIcon('terminal')` - NOT tree-shakeable (needs full registry for string
|
|
197
|
+
lookup)
|
|
198
|
+
- `renderIconDef(terminal)` - Tree-shakeable (bundler sees the direct import)
|
|
199
|
+
|
|
200
|
+
### Legacy Individual Imports
|
|
201
|
+
|
|
202
|
+
```ts
|
|
203
|
+
import {
|
|
204
|
+
ChipIcon,
|
|
205
|
+
TerminalIcon,
|
|
206
|
+
SignalIcon,
|
|
207
|
+
} from 'cybercore-css/icons/individual';
|
|
208
|
+
|
|
209
|
+
// Each export is the raw SVG string
|
|
210
|
+
element.innerHTML = ChipIcon;
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Sprite Sheet (For Many Icons)
|
|
214
|
+
|
|
215
|
+
```ts
|
|
216
|
+
import { createSpriteSheet, renderIconRef } from 'cybercore-css/icons';
|
|
217
|
+
|
|
218
|
+
// Add sprite sheet once to your HTML
|
|
219
|
+
document.body.insertAdjacentHTML('beforeend', createSpriteSheet());
|
|
220
|
+
|
|
221
|
+
// Then reference icons by ID (smaller HTML)
|
|
222
|
+
const html = renderIconRef('terminal', { size: 24 });
|
|
223
|
+
// Output: <svg><use href="#cyber-icon-terminal"/></svg>
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Data URI (For CSS)
|
|
227
|
+
|
|
228
|
+
```ts
|
|
229
|
+
import { getIconDataUri } from 'cybercore-css/icons';
|
|
230
|
+
|
|
231
|
+
const uri = getIconDataUri('chip', '#00f0ff');
|
|
232
|
+
// Use in CSS: background-image: url(${uri});
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## API Reference
|
|
236
|
+
|
|
237
|
+
### `renderIcon(name, options?)`
|
|
238
|
+
|
|
239
|
+
Renders an icon as an HTML string. **Not tree-shakeable** - use for convenience
|
|
240
|
+
when bundle size isn't critical.
|
|
241
|
+
|
|
242
|
+
| Option | Type | Default | Description |
|
|
243
|
+
| ------------- | --------------------------------------------------------- | ----------- | ------------------------ |
|
|
244
|
+
| `size` | `16 \| 20 \| 24 \| 32 \| 48 \| 64` | `24` | Icon size in pixels |
|
|
245
|
+
| `color` | `'cyan' \| 'magenta' \| 'yellow' \| 'green' \| 'current'` | `'current'` | Color variant |
|
|
246
|
+
| `variant` | `'outline' \| 'solid' \| 'duotone' \| 'glitch'` | `'outline'` | Icon variant |
|
|
247
|
+
| `className` | `string` | `''` | Additional CSS classes |
|
|
248
|
+
| `aria-label` | `string` | - | Accessibility label |
|
|
249
|
+
| `aria-hidden` | `boolean` | `true` | Hide from screen readers |
|
|
250
|
+
|
|
251
|
+
### `renderIconDef(icon, options?)`
|
|
252
|
+
|
|
253
|
+
Renders an icon from its definition. **Tree-shakeable** - bundler only includes
|
|
254
|
+
icons you import.
|
|
255
|
+
|
|
256
|
+
```ts
|
|
257
|
+
import { renderIconDef } from 'cybercore-css/icons';
|
|
258
|
+
import { terminal } from 'cybercore-css/icons/defs/tech';
|
|
259
|
+
|
|
260
|
+
const html = renderIconDef(terminal, { size: 24, color: 'cyan' });
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
Same options as `renderIcon`.
|
|
264
|
+
|
|
265
|
+
### `getIconSvg(icon, variant?)`
|
|
266
|
+
|
|
267
|
+
Returns the SVG string from an icon definition. **Tree-shakeable**.
|
|
268
|
+
|
|
269
|
+
```ts
|
|
270
|
+
import { getIconSvg } from 'cybercore-css/icons';
|
|
271
|
+
import { shield } from 'cybercore-css/icons/defs/security';
|
|
272
|
+
|
|
273
|
+
const svg = getIconSvg(shield, 'solid');
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### `getIcon(name, variant?)`
|
|
277
|
+
|
|
278
|
+
Returns the raw SVG string for an icon by name, or `null` if not found. **Not
|
|
279
|
+
tree-shakeable**.
|
|
280
|
+
|
|
281
|
+
### `iconExists(name)`
|
|
282
|
+
|
|
283
|
+
Returns `true` if the icon exists in the registry.
|
|
284
|
+
|
|
285
|
+
### `createSpriteSheet()`
|
|
286
|
+
|
|
287
|
+
Generates an SVG sprite sheet containing all icons.
|
|
288
|
+
|
|
289
|
+
### `getIconDataUri(name, color?)`
|
|
290
|
+
|
|
291
|
+
Returns a data URI for use in CSS `background-image`.
|
|
292
|
+
|
|
293
|
+
## Icon Categories
|
|
294
|
+
|
|
295
|
+
| Category | Description | Examples |
|
|
296
|
+
| --------------- | ----------------- | ---------------------------------------- |
|
|
297
|
+
| `navigation` | UI navigation | arrow-up, chevron-right, home, menu |
|
|
298
|
+
| `actions` | User interactions | search, edit, delete, copy, download |
|
|
299
|
+
| `media` | Audio/video | play, pause, volume-high, camera |
|
|
300
|
+
| `communication` | Messaging | bell, message, mail, send |
|
|
301
|
+
| `data` | Analytics | chart-bar, database, calendar, clock |
|
|
302
|
+
| `security` | Auth & privacy | lock, key, shield, eye, user |
|
|
303
|
+
| `tech` | Development | terminal, code, chip, server, git-branch |
|
|
304
|
+
| `files` | Documents | file, folder, clipboard, attachment |
|
|
305
|
+
| `status` | Feedback | info, warning, error, success, loading |
|
|
306
|
+
| `social` | Social | heart, star, thumbs-up, bookmark |
|
|
307
|
+
|
|
308
|
+
## Design Guidelines
|
|
309
|
+
|
|
310
|
+
When creating new icons, follow these rules:
|
|
311
|
+
|
|
312
|
+
### Structure
|
|
313
|
+
|
|
314
|
+
- **ViewBox**: Always `0 0 24 24`
|
|
315
|
+
- **Stroke-based**: Use `fill="none" stroke="currentColor"`
|
|
316
|
+
- **Stroke width**: Always `1.5`
|
|
317
|
+
- **Line caps**: Use `stroke-linecap="round" stroke-linejoin="round"`
|
|
318
|
+
|
|
319
|
+
### Template
|
|
320
|
+
|
|
321
|
+
```svg
|
|
322
|
+
<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">
|
|
323
|
+
<!-- Icon paths here -->
|
|
324
|
+
</svg>
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### Style
|
|
328
|
+
|
|
329
|
+
- Keep it simple - icons should be recognizable at 16px
|
|
330
|
+
- Use geometric shapes with subtle cyber/tech details
|
|
331
|
+
- Avoid complex gradients or effects
|
|
332
|
+
- Test at multiple sizes: 16, 24, 32, 48px
|
|
333
|
+
|
|
334
|
+
### Don'ts
|
|
335
|
+
|
|
336
|
+
- No inline styles
|
|
337
|
+
- No embedded scripts
|
|
338
|
+
- No raster images
|
|
339
|
+
- No external references
|
|
340
|
+
- No proprietary fonts
|
|
341
|
+
|
|
342
|
+
## Validation
|
|
343
|
+
|
|
344
|
+
Run the validation script to check all icons:
|
|
345
|
+
|
|
346
|
+
```bash
|
|
347
|
+
npm run validate:icons
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
This checks:
|
|
351
|
+
|
|
352
|
+
- SVG structure and attributes
|
|
353
|
+
- Security (no scripts or event handlers)
|
|
354
|
+
- Consistency (stroke width, viewBox)
|
|
355
|
+
- Coverage (implemented vs. specified)
|
|
356
|
+
|
|
357
|
+
## Contributing Icons
|
|
358
|
+
|
|
359
|
+
1. Check `icon-list.ts` for icons that need to be created
|
|
360
|
+
2. Create the SVG following the design guidelines
|
|
361
|
+
3. Add to `registry.ts` with proper metadata
|
|
362
|
+
4. Add individual export to `individual.ts`
|
|
363
|
+
5. Run validation and tests
|
|
364
|
+
|
|
365
|
+
## Color Palette
|
|
366
|
+
|
|
367
|
+
Icons work with the CYBERCORE color system:
|
|
368
|
+
|
|
369
|
+
| Color | CSS Variable | Hex |
|
|
370
|
+
| ------- | --------------------- | --------- |
|
|
371
|
+
| Cyan | `--cyber-cyan-500` | `#00f0ff` |
|
|
372
|
+
| Magenta | `--cyber-magenta-500` | `#ff00aa` |
|
|
373
|
+
| Yellow | `--cyber-yellow-500` | `#f0ff00` |
|
|
374
|
+
| Green | `--cyber-green-500` | `#00ff88` |
|
|
375
|
+
|
|
376
|
+
## License
|
|
377
|
+
|
|
378
|
+
MIT - Part of CYBERCORE CSS
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Icon Name
|
|
3
|
+
* @category category-name
|
|
4
|
+
*
|
|
5
|
+
* TEMPLATE FILE - Copy this to create a new icon definition
|
|
6
|
+
* Filename: icon-name.ts (kebab-case)
|
|
7
|
+
* Export name: iconName (camelCase)
|
|
8
|
+
*/
|
|
9
|
+
import type { IconDefinition } from '../types';
|
|
10
|
+
|
|
11
|
+
export const iconName: IconDefinition = {
|
|
12
|
+
name: 'icon-name', // kebab-case, matches filename
|
|
13
|
+
category: 'navigation', // navigation|actions|media|communication|data|security|tech|files|status|social
|
|
14
|
+
description: 'Brief description of the icon',
|
|
15
|
+
tags: ['tag1', 'tag2', 'tag3'],
|
|
16
|
+
svg: `<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">
|
|
17
|
+
<!-- Icon paths here -->
|
|
18
|
+
</svg>`,
|
|
19
|
+
// Optional: Add variants
|
|
20
|
+
// variants: {
|
|
21
|
+
// solid: `<svg>...</svg>`,
|
|
22
|
+
// duotone: `<svg>...</svg>`,
|
|
23
|
+
// glitch: `<svg>...</svg>`,
|
|
24
|
+
// },
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export default iconName;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Check Icon
|
|
3
|
+
* @category actions
|
|
4
|
+
*/
|
|
5
|
+
import type { IconDefinition } from '../../types';
|
|
6
|
+
|
|
7
|
+
export const check: IconDefinition = {
|
|
8
|
+
name: 'check',
|
|
9
|
+
category: 'actions',
|
|
10
|
+
description: 'Confirm or mark complete',
|
|
11
|
+
tags: ['check', 'checkmark', 'confirm', 'done', 'success'],
|
|
12
|
+
svg: `<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">
|
|
13
|
+
<path d="M20 6L9 17l-5-5"/>
|
|
14
|
+
<circle cx="9" cy="17" r="1"/>
|
|
15
|
+
<line x1="7" y1="10" x2="9" y2="12"/>
|
|
16
|
+
</svg>`,
|
|
17
|
+
variants: {
|
|
18
|
+
solid: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
19
|
+
<path d="M20.71 5.29a1 1 0 0 1 0 1.42l-11 11a1 1 0 0 1-1.42 0l-5-5a1 1 0 1 1 1.42-1.42L9 15.59l10.29-10.3a1 1 0 0 1 1.42 0z"/>
|
|
20
|
+
</svg>`,
|
|
21
|
+
duotone: `<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">
|
|
22
|
+
<path d="M4 12l5 5L20 6" fill="currentColor" opacity="0.3"/>
|
|
23
|
+
<path d="M20 6L9 17l-5-5"/>
|
|
24
|
+
<circle cx="9" cy="17" r="1"/>
|
|
25
|
+
<line x1="7" y1="10" x2="9" y2="12"/>
|
|
26
|
+
</svg>`,
|
|
27
|
+
glitch: `<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">
|
|
28
|
+
<path d="M20 6L9 17l-5-5" transform="translate(1,-1)" opacity="0.5"/>
|
|
29
|
+
<path d="M20 6L9 17l-5-5"/>
|
|
30
|
+
<circle cx="9" cy="17" r="1"/>
|
|
31
|
+
<line x1="7" y1="10" x2="9" y2="12"/>
|
|
32
|
+
</svg>`,
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export default check;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copy Icon
|
|
3
|
+
* @category actions
|
|
4
|
+
*/
|
|
5
|
+
import type { IconDefinition } from '../../types';
|
|
6
|
+
|
|
7
|
+
export const copy: IconDefinition = {
|
|
8
|
+
name: 'copy',
|
|
9
|
+
category: 'actions',
|
|
10
|
+
description: 'Copy to clipboard',
|
|
11
|
+
tags: ['copy', 'clipboard', 'duplicate', 'clone', 'paste'],
|
|
12
|
+
svg: `<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">
|
|
13
|
+
<rect x="9" y="8" width="11" height="11" rx="2"/>
|
|
14
|
+
<path d="M5 15H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>
|
|
15
|
+
</svg>`,
|
|
16
|
+
variants: {
|
|
17
|
+
solid: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
18
|
+
<path d="M11 2a2 2 0 0 0-2 2v1H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2H9V4a2 2 0 0 0-2-2zm0 7h8a2 2 0 0 1 2 2v8H7V9h4zm2 3a1 1 0 0 0-1 1v3a1 1 0 0 0 2 0v-3a1 1 0 0 0-1-1zm2 1a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2h-2z"/>
|
|
19
|
+
</svg>`,
|
|
20
|
+
duotone: `<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">
|
|
21
|
+
<rect x="9" y="9" width="12" height="12" rx="2" fill="currentColor" opacity="0.3"/>
|
|
22
|
+
<rect x="9" y="9" width="12" height="12" rx="2"/>
|
|
23
|
+
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>
|
|
24
|
+
<line x1="12" y1="13" x2="12" y2="17"/>
|
|
25
|
+
<line x1="15" y1="15" x2="18" y2="15"/>
|
|
26
|
+
</svg>`,
|
|
27
|
+
glitch: `<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">
|
|
28
|
+
<rect x="9" y="9" width="12" height="12" rx="2" transform="translate(1,-1)" opacity="0.5"/>
|
|
29
|
+
<rect x="9" y="9" width="12" height="12" rx="2"/>
|
|
30
|
+
<path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"/>
|
|
31
|
+
<line x1="12" y1="13" x2="12" y2="17"/>
|
|
32
|
+
<line x1="15" y1="15" x2="18" y2="15"/>
|
|
33
|
+
</svg>`,
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export default copy;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cut Icon
|
|
3
|
+
* @category actions
|
|
4
|
+
*/
|
|
5
|
+
import type { IconDefinition } from '../../types';
|
|
6
|
+
|
|
7
|
+
export const cut: IconDefinition = {
|
|
8
|
+
name: 'cut',
|
|
9
|
+
category: 'actions',
|
|
10
|
+
description: 'Cut to clipboard',
|
|
11
|
+
tags: ['cut', 'scissors', 'clipboard', 'remove', 'snip'],
|
|
12
|
+
svg: `<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">
|
|
13
|
+
<circle cx="6" cy="18" r="2"/>
|
|
14
|
+
<circle cx="18" cy="18" r="2"/>
|
|
15
|
+
<path d="M8 18l4-9 4 9"/>
|
|
16
|
+
<path d="M12 9l8-6"/>
|
|
17
|
+
<line x1="8" y1="3" x2="12" y2="9"/>
|
|
18
|
+
</svg>`,
|
|
19
|
+
variants: {
|
|
20
|
+
solid: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
21
|
+
<path d="M6 15a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm12 0a3 3 0 1 0 0 6 3 3 0 0 0 0-6zm-9.5 1.5l3.5-7.5 3.5 7.5h-7zm3.5-8.5l7.5-5.5a1 1 0 0 1 1.2 1.6l-8 5.9a1 1 0 0 1-1.4 0L4.3 3.6a1 1 0 1 1 1.2-1.6L12 7.5z"/>
|
|
22
|
+
</svg>`,
|
|
23
|
+
duotone: `<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">
|
|
24
|
+
<circle cx="6" cy="18" r="2" fill="currentColor" opacity="0.3"/>
|
|
25
|
+
<circle cx="18" cy="18" r="2" fill="currentColor" opacity="0.3"/>
|
|
26
|
+
<circle cx="6" cy="18" r="2"/>
|
|
27
|
+
<circle cx="18" cy="18" r="2"/>
|
|
28
|
+
<path d="M8 18l4-9 4 9"/>
|
|
29
|
+
<path d="M12 9l8-6"/>
|
|
30
|
+
<line x1="8" y1="3" x2="12" y2="9"/>
|
|
31
|
+
</svg>`,
|
|
32
|
+
glitch: `<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">
|
|
33
|
+
<circle cx="6" cy="18" r="2" transform="translate(1,-1)" opacity="0.5"/>
|
|
34
|
+
<circle cx="18" cy="18" r="2" transform="translate(1,-1)" opacity="0.5"/>
|
|
35
|
+
<circle cx="6" cy="18" r="2"/>
|
|
36
|
+
<circle cx="18" cy="18" r="2"/>
|
|
37
|
+
<path d="M8 18l4-9 4 9"/>
|
|
38
|
+
<path d="M12 9l8-6"/>
|
|
39
|
+
<line x1="8" y1="3" x2="12" y2="9"/>
|
|
40
|
+
</svg>`,
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export default cut;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delete Icon
|
|
3
|
+
* @category actions
|
|
4
|
+
*/
|
|
5
|
+
import type { IconDefinition } from '../../types';
|
|
6
|
+
|
|
7
|
+
export const deleteIcon: IconDefinition = {
|
|
8
|
+
name: 'delete',
|
|
9
|
+
category: 'actions',
|
|
10
|
+
description: 'Delete or remove content',
|
|
11
|
+
tags: ['delete', 'trash', 'remove', 'discard', 'bin'],
|
|
12
|
+
svg: `<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">
|
|
13
|
+
<path d="M3 6h18"/>
|
|
14
|
+
<path d="M8 6V4h8v2"/>
|
|
15
|
+
<path d="M19 6v14H5V6"/>
|
|
16
|
+
<line x1="10" y1="11" x2="10" y2="16"/>
|
|
17
|
+
<line x1="14" y1="11" x2="14" y2="16"/>
|
|
18
|
+
</svg>`,
|
|
19
|
+
variants: {
|
|
20
|
+
solid: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
21
|
+
<path d="M3 5a1 1 0 0 0 0 2h18a1 1 0 0 0 0-2H3zm5 0V4a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v1H8zM5 8v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V8H5zm5 2a1 1 0 0 1 1 1v5a1 1 0 0 1-2 0v-5a1 1 0 0 1 1-1zm4 0a1 1 0 0 1 1 1v5a1 1 0 0 1-2 0v-5a1 1 0 0 1 1-1z"/>
|
|
22
|
+
</svg>`,
|
|
23
|
+
duotone: `<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">
|
|
24
|
+
<path d="M19 6v14H5V6" fill="currentColor" opacity="0.3"/>
|
|
25
|
+
<path d="M3 6h18"/>
|
|
26
|
+
<path d="M8 6V4h8v2"/>
|
|
27
|
+
<path d="M19 6v14H5V6"/>
|
|
28
|
+
<line x1="10" y1="11" x2="10" y2="16"/>
|
|
29
|
+
<line x1="14" y1="11" x2="14" y2="16"/>
|
|
30
|
+
</svg>`,
|
|
31
|
+
glitch: `<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">
|
|
32
|
+
<path d="M19 6v14H5V6" transform="translate(1,-1)" opacity="0.5"/>
|
|
33
|
+
<path d="M3 6h18"/>
|
|
34
|
+
<path d="M8 6V4h8v2"/>
|
|
35
|
+
<path d="M19 6v14H5V6"/>
|
|
36
|
+
<line x1="10" y1="11" x2="10" y2="16"/>
|
|
37
|
+
<line x1="14" y1="11" x2="14" y2="16"/>
|
|
38
|
+
</svg>`,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export default deleteIcon;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Download Icon
|
|
3
|
+
* @category actions
|
|
4
|
+
*/
|
|
5
|
+
import type { IconDefinition } from '../../types';
|
|
6
|
+
|
|
7
|
+
export const download: IconDefinition = {
|
|
8
|
+
name: 'download',
|
|
9
|
+
category: 'actions',
|
|
10
|
+
description: 'Download file or data',
|
|
11
|
+
tags: ['download', 'save', 'export', 'arrow-down', 'fetch'],
|
|
12
|
+
svg: `<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">
|
|
13
|
+
<path d="M12 3v12m0 0l-4-4m4 4l4-4"/>
|
|
14
|
+
<path d="M3 17v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2"/>
|
|
15
|
+
<line x1="7" y1="21" x2="17" y2="21"/>
|
|
16
|
+
</svg>`,
|
|
17
|
+
variants: {
|
|
18
|
+
solid: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
19
|
+
<path d="M12 2a1 1 0 0 1 1 1v9.59l2.29-2.3a1 1 0 1 1 1.42 1.42l-4 4a1 1 0 0 1-1.42 0l-4-4a1 1 0 1 1 1.42-1.42L11 12.59V3a1 1 0 0 1 1-1zM3 16a1 1 0 0 1 1 1v2a1 1 0 0 0 1 1h14a1 1 0 0 0 1-1v-2a1 1 0 0 1 2 0v2a3 3 0 0 1-3 3H5a3 3 0 0 1-3-3v-2a1 1 0 0 1 1-1z"/>
|
|
20
|
+
</svg>`,
|
|
21
|
+
duotone: `<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">
|
|
22
|
+
<path d="M3 17v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2" fill="currentColor" opacity="0.3"/>
|
|
23
|
+
<path d="M12 3v12m0 0l-4-4m4 4l4-4"/>
|
|
24
|
+
<path d="M3 17v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2"/>
|
|
25
|
+
<line x1="7" y1="21" x2="17" y2="21"/>
|
|
26
|
+
</svg>`,
|
|
27
|
+
glitch: `<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">
|
|
28
|
+
<path d="M12 3v12m0 0l-4-4m4 4l4-4" transform="translate(1,-1)" opacity="0.5"/>
|
|
29
|
+
<path d="M12 3v12m0 0l-4-4m4 4l4-4"/>
|
|
30
|
+
<path d="M3 17v2a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-2"/>
|
|
31
|
+
<line x1="7" y1="21" x2="17" y2="21"/>
|
|
32
|
+
</svg>`,
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export default download;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drag Icon
|
|
3
|
+
* @category actions
|
|
4
|
+
*/
|
|
5
|
+
import type { IconDefinition } from '../../types';
|
|
6
|
+
|
|
7
|
+
export const drag: IconDefinition = {
|
|
8
|
+
name: 'drag',
|
|
9
|
+
category: 'actions',
|
|
10
|
+
description: 'Drag handle for reordering',
|
|
11
|
+
tags: ['drag', 'handle', 'grip', 'move', 'reorder'],
|
|
12
|
+
svg: `<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">
|
|
13
|
+
<circle cx="9" cy="6" r="1"/>
|
|
14
|
+
<circle cx="15" cy="6" r="1"/>
|
|
15
|
+
<circle cx="9" cy="12" r="1"/>
|
|
16
|
+
<circle cx="15" cy="12" r="1"/>
|
|
17
|
+
<circle cx="9" cy="18" r="1"/>
|
|
18
|
+
<circle cx="15" cy="18" r="1"/>
|
|
19
|
+
</svg>`,
|
|
20
|
+
variants: {
|
|
21
|
+
solid: `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
|
|
22
|
+
<circle cx="9" cy="6" r="1.5"/>
|
|
23
|
+
<circle cx="15" cy="6" r="1.5"/>
|
|
24
|
+
<circle cx="9" cy="12" r="1.5"/>
|
|
25
|
+
<circle cx="15" cy="12" r="1.5"/>
|
|
26
|
+
<circle cx="9" cy="18" r="1.5"/>
|
|
27
|
+
<circle cx="15" cy="18" r="1.5"/>
|
|
28
|
+
</svg>`,
|
|
29
|
+
duotone: `<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">
|
|
30
|
+
<circle cx="9" cy="6" r="1" fill="currentColor" opacity="0.3"/>
|
|
31
|
+
<circle cx="15" cy="6" r="1" fill="currentColor" opacity="0.3"/>
|
|
32
|
+
<circle cx="9" cy="12" r="1" fill="currentColor" opacity="0.3"/>
|
|
33
|
+
<circle cx="15" cy="12" r="1" fill="currentColor" opacity="0.3"/>
|
|
34
|
+
<circle cx="9" cy="18" r="1" fill="currentColor" opacity="0.3"/>
|
|
35
|
+
<circle cx="15" cy="18" r="1" fill="currentColor" opacity="0.3"/>
|
|
36
|
+
<circle cx="9" cy="6" r="1"/>
|
|
37
|
+
<circle cx="15" cy="6" r="1"/>
|
|
38
|
+
<circle cx="9" cy="12" r="1"/>
|
|
39
|
+
<circle cx="15" cy="12" r="1"/>
|
|
40
|
+
<circle cx="9" cy="18" r="1"/>
|
|
41
|
+
<circle cx="15" cy="18" r="1"/>
|
|
42
|
+
</svg>`,
|
|
43
|
+
glitch: `<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">
|
|
44
|
+
<circle cx="9" cy="6" r="1" transform="translate(1,-1)" opacity="0.5"/>
|
|
45
|
+
<circle cx="15" cy="6" r="1" transform="translate(1,-1)" opacity="0.5"/>
|
|
46
|
+
<circle cx="9" cy="12" r="1" transform="translate(1,-1)" opacity="0.5"/>
|
|
47
|
+
<circle cx="15" cy="12" r="1" transform="translate(1,-1)" opacity="0.5"/>
|
|
48
|
+
<circle cx="9" cy="18" r="1" transform="translate(1,-1)" opacity="0.5"/>
|
|
49
|
+
<circle cx="15" cy="18" r="1" transform="translate(1,-1)" opacity="0.5"/>
|
|
50
|
+
<circle cx="9" cy="6" r="1"/>
|
|
51
|
+
<circle cx="15" cy="6" r="1"/>
|
|
52
|
+
<circle cx="9" cy="12" r="1"/>
|
|
53
|
+
<circle cx="15" cy="12" r="1"/>
|
|
54
|
+
<circle cx="9" cy="18" r="1"/>
|
|
55
|
+
<circle cx="15" cy="18" r="1"/>
|
|
56
|
+
</svg>`,
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
export default drag;
|