@delvicons/icons
Version:
DelvIcons - Comprehensive icon library with static and animated SVG icons for all frameworks
113 lines (106 loc) • 2.18 kB
text/typescript
export interface IconProps {
size?: number | string;
color?: string;
className?: string;
animated?: boolean;
}
export interface AnimatedIconProps extends IconProps {
duration?: string;
timing?: string;
iteration?: string;
}
export type IconName = 'arrow-right' | 'loading-spinner' | 'heart-beat';
export interface IconCategory {
name: string;
description: string;
}
export interface IconData {
name: string;
category: keyof typeof categories;
tags: string[];
type: 'static' | 'animated';
variants: Record<string, string>;
animations?: {
default: {
duration: string;
timing: string;
iteration: string;
};
};
}
export const categories = {
"arrows": {
"name": "Arrows",
"description": "Directional arrows and navigation icons"
},
"feedback": {
"name": "Feedback",
"description": "Loading states, notifications, and user feedback"
},
"emotions": {
"name": "Emotions",
"description": "Hearts, likes, reactions, and emotional expressions"
}
} as const;
export const icons = {
"arrow-right": {
"name": "Arrow Right",
"category": "arrows",
"tags": [
"arrow",
"right",
"next",
"forward",
"navigation"
],
"type": "static",
"variants": {
"outline": "arrow-right.svg"
}
},
"loading-spinner": {
"name": "Loading Spinner",
"category": "feedback",
"tags": [
"loading",
"spinner",
"progress",
"wait",
"animated"
],
"type": "animated",
"variants": {
"animated": "loading-spinner.svg"
},
"animations": {
"default": {
"duration": "2s",
"timing": "linear",
"iteration": "infinite"
}
}
},
"heart-beat": {
"name": "Heart Beat",
"category": "emotions",
"tags": [
"heart",
"like",
"love",
"favorite",
"animated",
"pulse"
],
"type": "animated",
"variants": {
"animated": "heart-beat.svg"
},
"animations": {
"default": {
"duration": "2s",
"timing": "ease-in-out",
"iteration": "infinite"
}
}
}
} as const;