@jis3r/icons 1.11.0 → 1.12.1
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/badge-check.svelte +35 -12
- package/dist/icons/index.js +7 -0
- package/dist/icons/lightbulb.svelte +142 -0
- package/dist/icons/lightbulb.svelte.d.ts +19 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -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
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
|
|
23
23
|
setTimeout(() => {
|
|
24
24
|
isHovered = false;
|
|
25
|
-
},
|
|
25
|
+
}, 1200);
|
|
26
26
|
}
|
|
27
27
|
</script>
|
|
28
28
|
|
|
@@ -42,8 +42,9 @@
|
|
|
42
42
|
>
|
|
43
43
|
<path
|
|
44
44
|
d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z"
|
|
45
|
+
class="badge-path"
|
|
45
46
|
/>
|
|
46
|
-
<path d="
|
|
47
|
+
<path d="m9 12 2 2 4-4" class="check-path" />
|
|
47
48
|
</svg>
|
|
48
49
|
</div>
|
|
49
50
|
|
|
@@ -55,26 +56,48 @@
|
|
|
55
56
|
overflow: visible;
|
|
56
57
|
}
|
|
57
58
|
|
|
59
|
+
.badge-path {
|
|
60
|
+
transform-origin: center;
|
|
61
|
+
transition: transform 1.2s ease-in-out;
|
|
62
|
+
}
|
|
63
|
+
|
|
58
64
|
.check-path {
|
|
59
|
-
stroke-dasharray:
|
|
65
|
+
stroke-dasharray: 10;
|
|
60
66
|
stroke-dashoffset: 0;
|
|
67
|
+
opacity: 1;
|
|
61
68
|
transition:
|
|
62
|
-
stroke-dashoffset
|
|
63
|
-
opacity 0.
|
|
69
|
+
stroke-dashoffset 1.2s ease-in-out,
|
|
70
|
+
opacity 0.01s ease-in-out;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.badge-check-icon.animate .badge-path {
|
|
74
|
+
animation: scaleBadge 1.2s ease-in-out;
|
|
64
75
|
}
|
|
65
76
|
|
|
66
77
|
.badge-check-icon.animate .check-path {
|
|
67
|
-
animation:
|
|
78
|
+
animation: drawCheck 1.2s ease-in-out;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
@keyframes scaleBadge {
|
|
82
|
+
0% {
|
|
83
|
+
transform: scale(1);
|
|
84
|
+
}
|
|
85
|
+
50% {
|
|
86
|
+
transform: scale(0.9);
|
|
87
|
+
}
|
|
88
|
+
100% {
|
|
89
|
+
transform: scale(1);
|
|
90
|
+
}
|
|
68
91
|
}
|
|
69
92
|
|
|
70
|
-
@keyframes
|
|
93
|
+
@keyframes drawCheck {
|
|
71
94
|
0% {
|
|
72
|
-
stroke-dashoffset:
|
|
73
|
-
opacity:
|
|
95
|
+
stroke-dashoffset: 0;
|
|
96
|
+
opacity: 1;
|
|
74
97
|
}
|
|
75
|
-
|
|
76
|
-
stroke-dashoffset:
|
|
77
|
-
opacity:
|
|
98
|
+
50% {
|
|
99
|
+
stroke-dashoffset: 10;
|
|
100
|
+
opacity: 1;
|
|
78
101
|
}
|
|
79
102
|
100% {
|
|
80
103
|
stroke-dashoffset: 0;
|
package/dist/icons/index.js
CHANGED
|
@@ -275,6 +275,7 @@ import layoutGrid from './layout-grid.svelte';
|
|
|
275
275
|
import layoutPanelLeft from './layout-panel-left.svelte';
|
|
276
276
|
import layoutPanelTop from './layout-panel-top.svelte';
|
|
277
277
|
import layoutTemplate from './layout-template.svelte';
|
|
278
|
+
import lightbulb from './lightbulb.svelte';
|
|
278
279
|
import lightbulbOff from './lightbulb-off.svelte';
|
|
279
280
|
import link2Off from './link-2-off.svelte';
|
|
280
281
|
import listCheck from './list-check.svelte';
|
|
@@ -3408,6 +3409,12 @@ let ICONS_LIST = [
|
|
|
3408
3409
|
tags: ['window', 'webpage', 'block', 'section'],
|
|
3409
3410
|
categories: ['layout']
|
|
3410
3411
|
},
|
|
3412
|
+
{
|
|
3413
|
+
name: 'lightbulb',
|
|
3414
|
+
icon: lightbulb,
|
|
3415
|
+
tags: ['idea', 'bright', 'lights'],
|
|
3416
|
+
categories: ['photography']
|
|
3417
|
+
},
|
|
3411
3418
|
{
|
|
3412
3419
|
name: 'lightbulb-off',
|
|
3413
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
|
@@ -276,6 +276,7 @@ export { default as LayoutPanelLeft } from "./icons/layout-panel-left.svelte";
|
|
|
276
276
|
export { default as LayoutPanelTop } from "./icons/layout-panel-top.svelte";
|
|
277
277
|
export { default as LayoutTemplate } from "./icons/layout-template.svelte";
|
|
278
278
|
export { default as LightbulbOff } from "./icons/lightbulb-off.svelte";
|
|
279
|
+
export { default as Lightbulb } from "./icons/lightbulb.svelte";
|
|
279
280
|
export { default as Link2Off } from "./icons/link-2-off.svelte";
|
|
280
281
|
export { default as ListCheck } from "./icons/list-check.svelte";
|
|
281
282
|
export { default as ListChecks } from "./icons/list-checks.svelte";
|
package/dist/index.js
CHANGED
|
@@ -276,6 +276,7 @@ export { default as LayoutPanelLeft } from './icons/layout-panel-left.svelte';
|
|
|
276
276
|
export { default as LayoutPanelTop } from './icons/layout-panel-top.svelte';
|
|
277
277
|
export { default as LayoutTemplate } from './icons/layout-template.svelte';
|
|
278
278
|
export { default as LightbulbOff } from './icons/lightbulb-off.svelte';
|
|
279
|
+
export { default as Lightbulb } from './icons/lightbulb.svelte';
|
|
279
280
|
export { default as Link2Off } from './icons/link-2-off.svelte';
|
|
280
281
|
export { default as ListCheck } from './icons/list-check.svelte';
|
|
281
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.1",
|
|
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",
|