@jis3r/icons 1.10.0 → 1.12.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/dist/components/navbar.svelte +1 -1
- package/dist/icons/images.svelte +99 -0
- package/dist/icons/images.svelte.d.ts +19 -0
- package/dist/icons/index.js +24 -0
- package/dist/icons/lightbulb.svelte +142 -0
- package/dist/icons/lightbulb.svelte.d.ts +19 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/package.json +2 -2
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
<header
|
|
53
53
|
class="bg-background bg-opacity-40 fixed top-0 z-50 h-[72px] w-full border-b backdrop-blur-xl"
|
|
54
54
|
>
|
|
55
|
-
<nav class="container flex items-center justify-between py-4">
|
|
55
|
+
<nav class="container mx-auto flex max-w-7xl items-center justify-between py-4">
|
|
56
56
|
<a href="/" class="cursor-pointer text-base"> moving icons </a>
|
|
57
57
|
<div class="flex gap-1">
|
|
58
58
|
<Button
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
/**
|
|
3
|
+
* @typedef {Object} Props
|
|
4
|
+
* @property {string} [color]
|
|
5
|
+
* @property {number} [size]
|
|
6
|
+
* @property {number} [strokeWidth]
|
|
7
|
+
* @property {boolean} [isHovered]
|
|
8
|
+
* @property {string} [class]
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/** @type {Props} */
|
|
12
|
+
let {
|
|
13
|
+
color = 'currentColor',
|
|
14
|
+
size = 24,
|
|
15
|
+
strokeWidth = 2,
|
|
16
|
+
isHovered = false,
|
|
17
|
+
class: className = ''
|
|
18
|
+
} = $props();
|
|
19
|
+
|
|
20
|
+
function handleMouseEnter() {
|
|
21
|
+
isHovered = true;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function handleMouseLeave() {
|
|
25
|
+
isHovered = false;
|
|
26
|
+
}
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<div
|
|
30
|
+
class={className}
|
|
31
|
+
aria-label="images"
|
|
32
|
+
role="img"
|
|
33
|
+
onmouseenter={handleMouseEnter}
|
|
34
|
+
onmouseleave={handleMouseLeave}
|
|
35
|
+
>
|
|
36
|
+
<svg
|
|
37
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
38
|
+
width={size}
|
|
39
|
+
height={size}
|
|
40
|
+
viewBox="0 0 24 24"
|
|
41
|
+
fill="none"
|
|
42
|
+
stroke={color}
|
|
43
|
+
stroke-width={strokeWidth}
|
|
44
|
+
stroke-linecap="round"
|
|
45
|
+
stroke-linejoin="round"
|
|
46
|
+
>
|
|
47
|
+
<path
|
|
48
|
+
d="m22 11-1.296-1.296a2.4 2.4 0 0 0-3.408 0L11 16"
|
|
49
|
+
class="images-path-1"
|
|
50
|
+
class:animate={isHovered}
|
|
51
|
+
/>
|
|
52
|
+
<path
|
|
53
|
+
d="M4 8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2"
|
|
54
|
+
class="images-path-2"
|
|
55
|
+
class:animate={isHovered}
|
|
56
|
+
/>
|
|
57
|
+
<circle
|
|
58
|
+
cx="13"
|
|
59
|
+
cy="7"
|
|
60
|
+
r="1"
|
|
61
|
+
fill="currentColor"
|
|
62
|
+
class="images-circle"
|
|
63
|
+
class:animate={isHovered}
|
|
64
|
+
/>
|
|
65
|
+
<rect x="8" y="2" width="14" height="14" rx="2" class="images-rect" class:animate={isHovered} />
|
|
66
|
+
</svg>
|
|
67
|
+
</div>
|
|
68
|
+
|
|
69
|
+
<style>
|
|
70
|
+
div {
|
|
71
|
+
display: inline-block;
|
|
72
|
+
}
|
|
73
|
+
.images-path-1,
|
|
74
|
+
.images-path-2,
|
|
75
|
+
.images-circle,
|
|
76
|
+
.images-rect {
|
|
77
|
+
transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.images-path-1.animate {
|
|
81
|
+
transform: translate(-3px, 3px);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.images-path-2.animate {
|
|
85
|
+
transform: translate(3px, -3px);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.images-circle.animate {
|
|
89
|
+
transform: translate(-3px, 3px);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.images-rect.animate {
|
|
93
|
+
transform: translate(-3px, 3px);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
svg {
|
|
97
|
+
overflow: visible;
|
|
98
|
+
}
|
|
99
|
+
</style>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export default Images;
|
|
2
|
+
type Images = {
|
|
3
|
+
$on?(type: string, callback: (e: any) => void): () => void;
|
|
4
|
+
$set?(props: Partial<Props>): void;
|
|
5
|
+
};
|
|
6
|
+
declare const Images: import("svelte").Component<{
|
|
7
|
+
color?: string;
|
|
8
|
+
size?: number;
|
|
9
|
+
strokeWidth?: number;
|
|
10
|
+
isHovered?: boolean;
|
|
11
|
+
class?: string;
|
|
12
|
+
}, {}, "">;
|
|
13
|
+
type Props = {
|
|
14
|
+
color?: string;
|
|
15
|
+
size?: number;
|
|
16
|
+
strokeWidth?: number;
|
|
17
|
+
isHovered?: boolean;
|
|
18
|
+
class?: string;
|
|
19
|
+
};
|
package/dist/icons/index.js
CHANGED
|
@@ -259,6 +259,7 @@ import house from './house.svelte';
|
|
|
259
259
|
import houseWifi from './house-wifi.svelte';
|
|
260
260
|
import imageDown from './image-down.svelte';
|
|
261
261
|
import imageOff from './image-off.svelte';
|
|
262
|
+
import images from './images.svelte';
|
|
262
263
|
import imageUp from './image-up.svelte';
|
|
263
264
|
import infinity from './infinity.svelte';
|
|
264
265
|
import kanban from './kanban.svelte';
|
|
@@ -274,6 +275,7 @@ import layoutGrid from './layout-grid.svelte';
|
|
|
274
275
|
import layoutPanelLeft from './layout-panel-left.svelte';
|
|
275
276
|
import layoutPanelTop from './layout-panel-top.svelte';
|
|
276
277
|
import layoutTemplate from './layout-template.svelte';
|
|
278
|
+
import lightbulb from './lightbulb.svelte';
|
|
277
279
|
import lightbulbOff from './lightbulb-off.svelte';
|
|
278
280
|
import link2Off from './link-2-off.svelte';
|
|
279
281
|
import listCheck from './list-check.svelte';
|
|
@@ -3265,6 +3267,22 @@ let ICONS_LIST = [
|
|
|
3265
3267
|
tags: ['picture', 'photo', 'upload', 'import'],
|
|
3266
3268
|
categories: ['photography', 'text', 'multimedia', 'files']
|
|
3267
3269
|
},
|
|
3270
|
+
{
|
|
3271
|
+
name: 'images',
|
|
3272
|
+
icon: images,
|
|
3273
|
+
tags: [
|
|
3274
|
+
'picture',
|
|
3275
|
+
'photo',
|
|
3276
|
+
'multiple',
|
|
3277
|
+
'copy',
|
|
3278
|
+
'gallery',
|
|
3279
|
+
'album',
|
|
3280
|
+
'collection',
|
|
3281
|
+
'slideshow',
|
|
3282
|
+
'showcase'
|
|
3283
|
+
],
|
|
3284
|
+
categories: ['photography', 'text', 'multimedia', 'files']
|
|
3285
|
+
},
|
|
3268
3286
|
{
|
|
3269
3287
|
name: 'infinity',
|
|
3270
3288
|
icon: infinity,
|
|
@@ -3391,6 +3409,12 @@ let ICONS_LIST = [
|
|
|
3391
3409
|
tags: ['window', 'webpage', 'block', 'section'],
|
|
3392
3410
|
categories: ['layout']
|
|
3393
3411
|
},
|
|
3412
|
+
{
|
|
3413
|
+
name: 'lightbulb',
|
|
3414
|
+
icon: lightbulb,
|
|
3415
|
+
tags: ['idea', 'bright', 'lights'],
|
|
3416
|
+
categories: ['photography']
|
|
3417
|
+
},
|
|
3394
3418
|
{
|
|
3395
3419
|
name: 'lightbulb-off',
|
|
3396
3420
|
icon: lightbulbOff,
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
<script>
|
|
2
|
+
/**
|
|
3
|
+
* @typedef {Object} Props
|
|
4
|
+
* @property {string} [color]
|
|
5
|
+
* @property {number} [size]
|
|
6
|
+
* @property {number} [strokeWidth]
|
|
7
|
+
* @property {boolean} [isHovered]
|
|
8
|
+
* @property {string} [class]
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/** @type {Props} */
|
|
12
|
+
let {
|
|
13
|
+
color = 'currentColor',
|
|
14
|
+
size = 24,
|
|
15
|
+
strokeWidth = 2,
|
|
16
|
+
isHovered = false,
|
|
17
|
+
class: className = ''
|
|
18
|
+
} = $props();
|
|
19
|
+
|
|
20
|
+
function handleMouseEnter() {
|
|
21
|
+
isHovered = true;
|
|
22
|
+
|
|
23
|
+
setTimeout(() => {
|
|
24
|
+
isHovered = false;
|
|
25
|
+
}, 1100);
|
|
26
|
+
}
|
|
27
|
+
</script>
|
|
28
|
+
|
|
29
|
+
<div class={className} aria-label="lightbulb" role="img" onmouseenter={handleMouseEnter}>
|
|
30
|
+
<svg
|
|
31
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
32
|
+
width={size}
|
|
33
|
+
height={size}
|
|
34
|
+
viewBox="0 0 24 24"
|
|
35
|
+
fill="none"
|
|
36
|
+
stroke={color}
|
|
37
|
+
stroke-width={strokeWidth}
|
|
38
|
+
stroke-linecap="round"
|
|
39
|
+
stroke-linejoin="round"
|
|
40
|
+
class="lightbulb-icon"
|
|
41
|
+
class:animate={isHovered}
|
|
42
|
+
>
|
|
43
|
+
<path
|
|
44
|
+
d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5"
|
|
45
|
+
class="lightbulb-path1"
|
|
46
|
+
/>
|
|
47
|
+
<path d="M9 18h6" class="lightbulb-path2" />
|
|
48
|
+
<path d="M10 22h4" class="lightbulb-path3" />
|
|
49
|
+
</svg>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<style>
|
|
53
|
+
div {
|
|
54
|
+
display: inline-block;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.lightbulb-icon {
|
|
58
|
+
overflow: visible;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.lightbulb-path1 {
|
|
62
|
+
transform-origin: bottom center;
|
|
63
|
+
transform-box: fill-box;
|
|
64
|
+
fill: transparent;
|
|
65
|
+
transition: fill 0s;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.lightbulb-path2 {
|
|
69
|
+
transform-origin: bottom center;
|
|
70
|
+
transform-box: fill-box;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.lightbulb-icon.animate .lightbulb-path1 {
|
|
74
|
+
animation:
|
|
75
|
+
lightbulb-rotate1 0.8s ease-in-out forwards,
|
|
76
|
+
lightbulb-fill-opacity 0.3s ease-in-out 0.4s forwards;
|
|
77
|
+
fill: currentColor;
|
|
78
|
+
fill-opacity: 0;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.lightbulb-icon:not(.animate) .lightbulb-path1 {
|
|
82
|
+
fill: transparent;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.lightbulb-icon.animate .lightbulb-path2 {
|
|
86
|
+
animation: lightbulb-rotate2 0.8s ease-in-out forwards;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
@keyframes lightbulb-rotate1 {
|
|
90
|
+
0% {
|
|
91
|
+
transform: rotate(0deg);
|
|
92
|
+
}
|
|
93
|
+
40% {
|
|
94
|
+
transform: rotate(-20deg);
|
|
95
|
+
}
|
|
96
|
+
60% {
|
|
97
|
+
transform: rotate(15deg);
|
|
98
|
+
}
|
|
99
|
+
80% {
|
|
100
|
+
transform: rotate(-7deg);
|
|
101
|
+
}
|
|
102
|
+
100% {
|
|
103
|
+
transform: rotate(0deg);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@keyframes lightbulb-fill-opacity {
|
|
108
|
+
0% {
|
|
109
|
+
fill-opacity: 0;
|
|
110
|
+
}
|
|
111
|
+
40% {
|
|
112
|
+
fill-opacity: 1;
|
|
113
|
+
}
|
|
114
|
+
60% {
|
|
115
|
+
fill-opacity: 0;
|
|
116
|
+
}
|
|
117
|
+
80% {
|
|
118
|
+
fill-opacity: 1;
|
|
119
|
+
}
|
|
120
|
+
100% {
|
|
121
|
+
fill-opacity: 0;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
@keyframes lightbulb-rotate2 {
|
|
126
|
+
0% {
|
|
127
|
+
transform: rotate(0deg);
|
|
128
|
+
}
|
|
129
|
+
40% {
|
|
130
|
+
transform: rotate(0deg);
|
|
131
|
+
}
|
|
132
|
+
60% {
|
|
133
|
+
transform: rotate(10deg);
|
|
134
|
+
}
|
|
135
|
+
80% {
|
|
136
|
+
transform: rotate(-5deg);
|
|
137
|
+
}
|
|
138
|
+
100% {
|
|
139
|
+
transform: rotate(0deg);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
</style>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export default Lightbulb;
|
|
2
|
+
type Lightbulb = {
|
|
3
|
+
$on?(type: string, callback: (e: any) => void): () => void;
|
|
4
|
+
$set?(props: Partial<Props>): void;
|
|
5
|
+
};
|
|
6
|
+
declare const Lightbulb: import("svelte").Component<{
|
|
7
|
+
color?: string;
|
|
8
|
+
size?: number;
|
|
9
|
+
strokeWidth?: number;
|
|
10
|
+
isHovered?: boolean;
|
|
11
|
+
class?: string;
|
|
12
|
+
}, {}, "">;
|
|
13
|
+
type Props = {
|
|
14
|
+
color?: string;
|
|
15
|
+
size?: number;
|
|
16
|
+
strokeWidth?: number;
|
|
17
|
+
isHovered?: boolean;
|
|
18
|
+
class?: string;
|
|
19
|
+
};
|
package/dist/index.d.ts
CHANGED
|
@@ -260,6 +260,7 @@ export { default as House } from "./icons/house.svelte";
|
|
|
260
260
|
export { default as ImageDown } from "./icons/image-down.svelte";
|
|
261
261
|
export { default as ImageOff } from "./icons/image-off.svelte";
|
|
262
262
|
export { default as ImageUp } from "./icons/image-up.svelte";
|
|
263
|
+
export { default as Images } from "./icons/images.svelte";
|
|
263
264
|
export { default as Infinity } from "./icons/infinity.svelte";
|
|
264
265
|
export { default as Kanban } from "./icons/kanban.svelte";
|
|
265
266
|
export { default as KeyRound } from "./icons/key-round.svelte";
|
|
@@ -275,6 +276,7 @@ export { default as LayoutPanelLeft } from "./icons/layout-panel-left.svelte";
|
|
|
275
276
|
export { default as LayoutPanelTop } from "./icons/layout-panel-top.svelte";
|
|
276
277
|
export { default as LayoutTemplate } from "./icons/layout-template.svelte";
|
|
277
278
|
export { default as LightbulbOff } from "./icons/lightbulb-off.svelte";
|
|
279
|
+
export { default as Lightbulb } from "./icons/lightbulb.svelte";
|
|
278
280
|
export { default as Link2Off } from "./icons/link-2-off.svelte";
|
|
279
281
|
export { default as ListCheck } from "./icons/list-check.svelte";
|
|
280
282
|
export { default as ListChecks } from "./icons/list-checks.svelte";
|
package/dist/index.js
CHANGED
|
@@ -260,6 +260,7 @@ export { default as House } from './icons/house.svelte';
|
|
|
260
260
|
export { default as ImageDown } from './icons/image-down.svelte';
|
|
261
261
|
export { default as ImageOff } from './icons/image-off.svelte';
|
|
262
262
|
export { default as ImageUp } from './icons/image-up.svelte';
|
|
263
|
+
export { default as Images } from './icons/images.svelte';
|
|
263
264
|
export { default as Infinity } from './icons/infinity.svelte';
|
|
264
265
|
export { default as Kanban } from './icons/kanban.svelte';
|
|
265
266
|
export { default as KeyRound } from './icons/key-round.svelte';
|
|
@@ -275,6 +276,7 @@ export { default as LayoutPanelLeft } from './icons/layout-panel-left.svelte';
|
|
|
275
276
|
export { default as LayoutPanelTop } from './icons/layout-panel-top.svelte';
|
|
276
277
|
export { default as LayoutTemplate } from './icons/layout-template.svelte';
|
|
277
278
|
export { default as LightbulbOff } from './icons/lightbulb-off.svelte';
|
|
279
|
+
export { default as Lightbulb } from './icons/lightbulb.svelte';
|
|
278
280
|
export { default as Link2Off } from './icons/link-2-off.svelte';
|
|
279
281
|
export { default as ListCheck } from './icons/list-check.svelte';
|
|
280
282
|
export { default as ListChecks } from './icons/list-checks.svelte';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jis3r/icons",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.0",
|
|
4
4
|
"description": "beautifully crafted, moving icons. for svelte.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"svelte",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@sveltejs/adapter-auto": "^6.0.1",
|
|
50
50
|
"@sveltejs/kit": "^2.26.1",
|
|
51
51
|
"@sveltejs/package": "^2.0.0",
|
|
52
|
-
"@sveltejs/vite-plugin-svelte": "^
|
|
52
|
+
"@sveltejs/vite-plugin-svelte": "^6.2.1",
|
|
53
53
|
"@tailwindcss/vite": "^4.1.16",
|
|
54
54
|
"@types/eslint": "^9.6.0",
|
|
55
55
|
"autoprefixer": "^10.4.20",
|