@devchristian1337/dev-icons
Version:
A library to serve development-related icons
172 lines (122 loc) • 3.4 kB
Markdown
# Dev Icons
A comprehensive library of high-quality SVG icons for various development technologies and frameworks. All icons are optimized for quality, scalability, and modern design aesthetics.
## Installation
```bash
npm install @devchristian1337/dev-icons
```
## Features
- High-quality SVG icons
- TypeScript support
- Modern, consistent design
- Easy-to-use API
- Built-in validation
- Zero dependencies
- React component support
## Available Icons
Currently supported icons:
### Frontend Technologies
- HTML
- CSS
- JavaScript
- React
- Vue.js
- Angular (Classic & Modern versions)
- Bootstrap (Classic & Modern versions)
- TailwindCSS
### Backend & Programming Languages
- Node.js
- Python
- C#
- PHP
- Ruby
- Swift
- Kotlin
- Dart
- Java
### Frameworks & Libraries
- Django
- Flutter
- Electron
### Cloud & DevOps
- AWS
- Azure
- Docker
### Databases
- MongoDB
- MySQL
- PostgreSQL
### Design Tools
- Figma
### Development Tools & Services
- Git
- GitHub
- Copilot
## Usage
### React Component
The easiest way to use the icons is with the included React component:
```jsx
import { DevIcon } from "@devchristian1337/dev-icons";
function App() {
return (
<div>
{/* Basic usage */}
<DevIcon name="react" />
{/* Custom size */}
<DevIcon name="javascript" size={32} />
{/* With additional props */}
<DevIcon
name="nodejs"
size={48}
className="my-icon"
onClick={() => console.log("Icon clicked!")}
/>
</div>
);
}
```
The `DevIcon` component accepts the following props:
- `name` (required): The name of the icon to display
- `size` (optional): Size in pixels (both width and height), defaults to 24
- `className` (optional): Additional CSS classes
- All standard SVG attributes are also supported
### JavaScript/TypeScript API
You can also use the library programmatically:
```typescript
import devIcons from "@devchristian1337/dev-icons";
// Get all icons
const allIcons = devIcons.getAllIcons();
// Get a specific icon
const reactIcon = devIcons.getIcon("react");
if (reactIcon) {
console.log(reactIcon.name); // "React"
console.log(reactIcon.icon); // SVG content for React icon
}
// Check if an icon exists
const hasTailwind = devIcons.hasIcon("tailwindcss"); // true
// Get all available icon keys
const iconKeys = devIcons.getIconKeys(); // ['html', 'css', 'javascript', ...]
// Add a custom icon (must be SVG)
try {
devIcons.addIcon("customIcon", {
name: "Custom Icon",
icon: "<svg>...</svg>", // Your SVG content
});
} catch (error) {
if (error instanceof IconValidationError) {
console.error("Invalid SVG provided");
}
}
```
## Icon Object Structure
Each icon object contains:
- `name`: The display name of the technology (e.g., "React", "Node.js")
- `icon`: The complete SVG markup for the icon
## Validation
The library includes built-in validation to ensure all icons are valid SVG resources. Validation occurs:
- During library initialization
- When adding new icons via `addIcon()`
If an invalid SVG is provided, an `IconValidationError` will be thrown.
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
MIT