<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Cüneyt Çakar</title>
    <description>The latest articles on Forem by Cüneyt Çakar (@olmstedian).</description>
    <link>https://forem.com/olmstedian</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3551358%2Fe3f4a7cd-d6ca-4216-b378-e3a313dcd485.jpeg</url>
      <title>Forem: Cüneyt Çakar</title>
      <link>https://forem.com/olmstedian</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/olmstedian"/>
    <language>en</language>
    <item>
      <title>Building Spexop: A Journey in Design System Development</title>
      <dc:creator>Cüneyt Çakar</dc:creator>
      <pubDate>Wed, 05 Nov 2025 11:10:38 +0000</pubDate>
      <link>https://forem.com/olmstedian/building-spexop-a-journey-in-design-system-development-jkm</link>
      <guid>https://forem.com/olmstedian/building-spexop-a-journey-in-design-system-development-jkm</guid>
      <description>&lt;p&gt;Hey there. &lt;/p&gt;

&lt;p&gt;I wanted to share a bit about building Spexop, a design system that started as a personal project and has slowly grown into something I'm actually pretty happy with. This isn't a "how we built the perfect design system" post—more like a casual reflection on what I've learned along the way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Beginning&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It started with my desire to build my own design system instead of trying to be an expert on existing ones. I was working on sensitive applications, and I needed something I could understand completely, control fully, and trust implicitly. Existing design systems were great, but they were someone else's vision—someone else's decisions about what mattered and what didn't.&lt;/p&gt;

&lt;p&gt;I found myself reaching for the same patterns over and over again. Grid layouts, buttons, forms, cards—you know the drill. After the third or fourth time copy-pasting the same component code, I thought, "maybe I should just make a library for this."&lt;/p&gt;

&lt;p&gt;So I did. I started with the basics: a Grid component, a Button, a Card. Nothing revolutionary, just components that worked the way I wanted them to work. I wrapped them up in a package, published it to npm, and called it a day.&lt;/p&gt;

&lt;p&gt;Except it wasn't really a day. It was more like the start of something that would occupy way more of my time than I initially planned. But building my own design system meant I could understand every line of code, every design decision, every trade-off. And for the sensitive applications I was working on, that control mattered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Philosophy Shift&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Early on, I realized that if I was going to build a design system, I should probably have some guiding principles. I didn't want to just create another component library that looked nice but didn't really help developers think differently about building interfaces.&lt;/p&gt;

&lt;p&gt;So I started thinking about what mattered to me:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Primitives before patterns&lt;/strong&gt; - Master the grid system first, then build complex things&lt;br&gt;
&lt;strong&gt;Borders before shadows&lt;/strong&gt; - Clean, minimal aesthetics with strong borders instead of heavy shadows&lt;br&gt;
&lt;strong&gt;Typography before decoration&lt;/strong&gt; - Use font weight for hierarchy, not lighter colors&lt;br&gt;
&lt;strong&gt;Tokens before magic numbers&lt;/strong&gt; - Everything should use design tokens&lt;br&gt;
&lt;strong&gt;Composition before complexity&lt;/strong&gt; - Build up from simple parts&lt;br&gt;
&lt;strong&gt;Standards before frameworks&lt;/strong&gt; - Use web platform fundamentals&lt;br&gt;
&lt;strong&gt;Accessibility before aesthetics&lt;/strong&gt; - WCAG AA+ compliance by default&lt;/p&gt;

&lt;p&gt;These seven principles became "The Spexop Way." It sounds a bit pretentious when I type it out, but honestly, it's just the way I think about building things. And it's helped me make decisions when I'm not sure which direction to go.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Component Library&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fast forward a bit, and I've got 60+ components. That number still surprises me when I write it down. It started with five grid primitives (Grid, GridItem, Stack, Container, Spacer), and then I just kept adding things as I needed them.&lt;/p&gt;

&lt;p&gt;Navigation components came next—TopBar, Sidebar, Navigation. Then forms, buttons, cards, overlays. Each time I built something for a project, I'd think, "this could be useful for others too," and I'd add it to the library.&lt;/p&gt;

&lt;p&gt;The interesting part, at least to me, is how the structure evolved. I started with a flat list of components, but that didn't scale well. Now components are organized by category: primitives, navigation, forms, buttons, cards, layout, overlays, display, settings, advanced, and animations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Theme System&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The theme system was probably the most challenging part to get right. I wanted something that was flexible but not overly complex. I tried a few different approaches before landing on what we have now.&lt;/p&gt;

&lt;p&gt;The current system uses CSS custom properties (CSS variables) for everything. You can define a theme as a JavaScript object, and it gets converted to CSS variables that components consume. It's simple, performant, and works with any CSS framework.&lt;/p&gt;

&lt;p&gt;I've included 13 pre-built themes (tech, startup, healthcare, finance, ecommerce, etc.), but you can easily create your own. The theme generator can export to 29+ different formats, which is probably overkill, but it's useful when you need to integrate with different tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Going Provider-Free&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;One of the bigger architectural decisions was moving away from React Context providers. I know, I know—everyone uses providers. But I wanted something simpler, something that didn't require wrapping your entire app in multiple provider components.&lt;/p&gt;

&lt;p&gt;So I built utility hooks instead. useToastUtil, useModalUtil, useThemeUtil, etc. They work standalone, without providers. You just call the hook and use it. It's a bit different from what most React developers are used to, but I think it's cleaner.&lt;/p&gt;

&lt;p&gt;The migration from providers to utilities was a bit of a pain, but I think it was worth it. The API is simpler, and there's less boilerplate. Plus, you can use these utilities anywhere in your app without worrying about provider hierarchy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Icons Package&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I didn't plan on building an icons package initially. But I needed icons for the components, and I didn't want to force people to use a specific icon library. So I created @spexop/icons with 269 icons.&lt;/p&gt;

&lt;p&gt;It's not the biggest icon library out there, but it covers the basics well. Each icon has a filled variant, and I've included some brand icons too. They're all SVG-based, tree-shakeable, and fully typed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The CLI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At some point, I realized that getting started with Spexop could be easier. So I built a CLI tool that scaffolds new projects. You can run npx @spexop/cli create my-app and get a fully set up project in seconds.&lt;/p&gt;

&lt;p&gt;It's not a huge feature, but it removes friction. And removing friction is one of those small things that can make a big difference in developer experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developer Tools&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I've also been working on some developer tools around Spexop. There's a VSCode extension (still at version 0.0.1, so it's early days) that provides code snippets and IntelliSense for Spexop components. It's available on the VSCode Marketplace, but it's still a work in progress.&lt;/p&gt;

&lt;p&gt;I'm also building an MCP (Model Context Protocol) server for Spexop, though it's not published yet. The idea is to make it easier for AI assistants to understand and work with Spexop components. It's one of those side projects that might be useful, or might just be me overthinking things. We'll see.&lt;/p&gt;

&lt;p&gt;Speaking of AI assistants, I've been working with them quite a bit for haste. They're great for getting things done faster, especially when you're building something as large as a design system. I can focus on the big decisions and architecture while letting AI handle some of the repetitive work. It's been a game changer for productivity, honestly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I've Learned&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Building a design system is harder than I thought it would be. Not because the code is complex (though some of it is), but because of all the decisions you have to make. Every API choice matters. Every naming convention matters. Every breaking change affects real people using your library.&lt;/p&gt;

&lt;p&gt;I've made mistakes. I've deprecated features. I've changed APIs. I've broken things and had to fix them. And I've learned that's okay. It's part of the process.&lt;/p&gt;

&lt;p&gt;The most important thing I've learned is to listen to feedback. When people report bugs or suggest features, I try to understand what they're really trying to accomplish. Sometimes the answer isn't adding a new component—it's fixing an existing one or improving the documentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Community&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm grateful for everyone who's tried Spexop, reported bugs, suggested improvements, or just said "hey, this is cool." Building something in public is weird sometimes, but it's also really rewarding.&lt;/p&gt;

&lt;p&gt;I don't have a huge community yet, but the people who do use Spexop seem to genuinely like it. That's enough for me.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What's Next&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm not entirely sure, to be honest. I'm still actively developing Spexop, adding components, fixing bugs, improving the documentation. There are always things to improve.&lt;/p&gt;

&lt;p&gt;I'd like to add more components, refine the API, improve the documentation. Maybe build a visual theme builder (I've started on this, but it's not ready yet). Maybe add React Native support (there's already a basic package, but it needs work).&lt;/p&gt;

&lt;p&gt;But mostly, I just want to keep building things that are useful. That's the goal, really. Build useful things, and if other people find them useful too, that's a bonus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final Thoughts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Building Spexop has been a journey. It's taken more time than I expected, but I've learned a lot along the way. I've made something I'm proud of, even if it's not perfect.&lt;/p&gt;

&lt;p&gt;If you're thinking about building a design system, my advice would be: start small, iterate often, and don't be afraid to change things. Also, document everything. Future you will thank present you.&lt;/p&gt;

&lt;p&gt;If you want to check out Spexop, you can find it at spexop.com. The docs are at docs.spexop.com, and the code is on GitHub.&lt;/p&gt;

&lt;p&gt;Thanks for reading. If you have questions or feedback, feel free to reach out. I'm always happy to chat about design systems, React, or really anything development-related.&lt;/p&gt;

&lt;p&gt;Spexop Design System - Built with TypeScript &amp;amp; React (for now)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://spexop.com" rel="noopener noreferrer"&gt;Website&lt;/a&gt; • &lt;a href="https://docs.spexop.com" rel="noopener noreferrer"&gt;Docs&lt;/a&gt; • &lt;a href="https://github.com/spexop-ui/spexop-packages" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; • &lt;a href="https://www.npmjs.com/org/spexop" rel="noopener noreferrer"&gt;npm&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>designsystem</category>
      <category>react</category>
      <category>typescript</category>
    </item>
    <item>
      <title>@spexop/react v0.3.1: Building with Primitives-First Philosophy</title>
      <dc:creator>Cüneyt Çakar</dc:creator>
      <pubDate>Tue, 21 Oct 2025 15:11:13 +0000</pubDate>
      <link>https://forem.com/olmstedian/spexopreact-v031-building-with-primitives-first-philosophy-1ok3</link>
      <guid>https://forem.com/olmstedian/spexopreact-v031-building-with-primitives-first-philosophy-1ok3</guid>
      <description>&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;@spexop/react&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;v0.3.1:&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Building&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;with&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Primitives-First&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Philosophy"&lt;/span&gt;
&lt;span class="na"&gt;published&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="na"&gt;tags&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;react, typescript, webdev, opensource&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

&lt;span class="gh"&gt;# @spexop/react v0.3.1: Building with Primitives-First Philosophy&lt;/span&gt;

I'm excited to share the latest release of @spexop/react - a React component library that emphasizes mastering fundamentals before building complexity.

&lt;span class="gu"&gt;## The Primitives-First Approach&lt;/span&gt;

Instead of jumping straight to complex components, Spexop encourages starting with 5 grid primitives:
&lt;span class="p"&gt;-&lt;/span&gt; Grid
&lt;span class="p"&gt;-&lt;/span&gt; GridItem
&lt;span class="p"&gt;-&lt;/span&gt; Stack
&lt;span class="p"&gt;-&lt;/span&gt; Container
&lt;span class="p"&gt;-&lt;/span&gt; Spacer

Master these, then compose them into sophisticated interfaces. This leads to more maintainable code and better design consistency.

&lt;span class="gu"&gt;## What's New in v0.3.1&lt;/span&gt;

&lt;span class="gu"&gt;### 13 New Components&lt;/span&gt;

&lt;span class="gs"&gt;**Data Components**&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
tsx&lt;br&gt;
import { DataTable } from '@spexop/react';&lt;/p&gt;

&lt;p&gt;
  columns={columns}&lt;br&gt;
  data={data}&lt;br&gt;
  sortable&lt;br&gt;
  filterable&lt;br&gt;
  pagination&lt;br&gt;
/&amp;gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
- **Feedback Components**

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
tsx&lt;br&gt;
import { Alert, Spinner, Progress } from '@spexop/react';&lt;/p&gt;

&lt;p&gt;Operation successful!&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
- **Typography Components**

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
tsx&lt;br&gt;
import { Heading, Text, Link } from '@spexop/react';&lt;/p&gt;

&lt;p&gt;Page Title&lt;br&gt;
Body text&lt;br&gt;
Documentation&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
### 33+ React Hooks

20+ new hooks for common patterns:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
tsx&lt;br&gt;
// Storage&lt;br&gt;
const [value, setValue] = useLocalStorage('key', defaultValue);&lt;/p&gt;

&lt;p&gt;// Browser APIs&lt;br&gt;
const isOnline = useOnline();&lt;br&gt;
const size = useWindowSize();&lt;/p&gt;

&lt;p&gt;// Interaction&lt;br&gt;
const ref = useClickOutside(() =&amp;gt; setIsOpen(false));&lt;/p&gt;

&lt;p&gt;// Utilities&lt;br&gt;
const debouncedValue = useDebounce(value, 500);&lt;br&gt;
const [copied, copy] = useCopyToClipboard();&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
### 100% Documentation

Every component (all 59!) now includes:

- Comprehensive README
- USAGE-GUIDE with practical examples
- Component tests
- TypeScript definitions

## The Design Philosophy

Spexop follows 7 core principles:

1. **Primitives before patterns** - Master the grid first
2. **Borders before shadows** - Clean 2px borders, not heavy shadows
3. **Typography before decoration** - Use font weight for hierarchy
4. **Tokens before magic numbers** - Design system consistency
5. **Composition before complexity** - Build from simple parts
6. **Standards before frameworks** - Web fundamentals
7. **Accessibility before aesthetics** - WCAG AA+ compliance

## Enhanced Components

### Carousel

Full-featured slideshow with:

- Touch/swipe support
- Keyboard navigation
- Thumbnails
- Auto-play
- Lazy loading

### CodeBlock v3

Redesigned with:

- Custom syntax highlighting
- Multi-framework support (React, Vue, Angular)
- Theme integration
- Performance optimizations

## Installation

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;br&gt;
npm install @spexop/&lt;a href="mailto:react@0.3.1"&gt;react@0.3.1&lt;/a&gt; @spexop/theme @spexop/icons&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
## Breaking Changes in v0.3.1

Animation imports changed:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
tsx&lt;br&gt;
// ❌ Old&lt;br&gt;
import { FadeIn } from '@spexop/react/animations';&lt;/p&gt;

&lt;p&gt;// ✅ New&lt;br&gt;
import { FadeIn } from '@spexop/react';&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
See [Migration Guide](https://github.com/spexop-ui/spexop-design-system/blob/main/packages/react/MIGRATION-GUIDE.md) for details.

## Development Status

This is an active development release. While components follow design principles and include comprehensive documentation, the library is still evolving.

## Links in v0.3.1

- npm: &amp;lt;https://www.npmjs.com/package/@spexop/react&amp;gt;
- GitHub: &amp;lt;https://github.com/spexop-ui/spexop-design-system&amp;gt;
- Documentation: &amp;lt;https://spexop.com&amp;gt;

Feedback and contributions welcome! 🙌

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;br&gt;
bash&lt;/p&gt;

</description>
      <category>react</category>
      <category>typescript</category>
      <category>webdev</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Introducing @spexop/icons: A Modern React Icon Library with 262 Professional Icons</title>
      <dc:creator>Cüneyt Çakar</dc:creator>
      <pubDate>Thu, 09 Oct 2025 18:05:48 +0000</pubDate>
      <link>https://forem.com/olmstedian/introducing-spexopicons-a-modern-react-icon-library-with-262-professional-icons-2oh5</link>
      <guid>https://forem.com/olmstedian/introducing-spexopicons-a-modern-react-icon-library-with-262-professional-icons-2oh5</guid>
      <description>&lt;h1&gt;
  
  
  Introducing @spexop/icons: A Modern React Icon Library
&lt;/h1&gt;

&lt;p&gt;I'm excited to share &lt;strong&gt;@spexop/icons&lt;/strong&gt; - a professional icon library built specifically for modern React applications.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 Why Another Icon Library?
&lt;/h2&gt;

&lt;p&gt;Fair question! While there are many excellent icon libraries out there, I found myself repeatedly running into the same issues:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Bundle size concerns&lt;/strong&gt;: Importing entire libraries for just a handful of icons&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Missing variants&lt;/strong&gt;: Needing both outlined and filled versions of icons&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scattered dependencies&lt;/strong&gt;: Installing separate packages for brand/social icons&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript friction&lt;/strong&gt;: Poor or missing type definitions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility gaps&lt;/strong&gt;: Having to manually add ARIA attributes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;@spexop/icons&lt;/strong&gt; addresses all of these pain points.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✨ Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Comprehensive Icon Collection
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;262 carefully curated icons&lt;/strong&gt; across 20+ categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Navigation &amp;amp; Arrows (27)&lt;/li&gt;
&lt;li&gt;Actions &amp;amp; Editing (14)&lt;/li&gt;
&lt;li&gt;Communication (11)&lt;/li&gt;
&lt;li&gt;Media &amp;amp; Entertainment (14)&lt;/li&gt;
&lt;li&gt;Files &amp;amp; Folders (13)&lt;/li&gt;
&lt;li&gt;Social &amp;amp; Community (15)&lt;/li&gt;
&lt;li&gt;Weather (8)&lt;/li&gt;
&lt;li&gt;Development Tools (10)&lt;/li&gt;
&lt;li&gt;System &amp;amp; Status (20)&lt;/li&gt;
&lt;li&gt;...and more!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Filled Variants Built-In
&lt;/h3&gt;

&lt;p&gt;No need for separate packages! Includes filled versions of commonly used icons:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Heart&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;HeartFilled&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Star&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;StarFilled&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Bookmark&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;BookmarkFilled&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@spexop/icons&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Mix and match based on state&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;liked&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setLiked&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nf"&gt;setLiked&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;liked&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;liked&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;HeartFilled&lt;/span&gt; &lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"#ef4444"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Heart&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. Brand Icons Included
&lt;/h3&gt;

&lt;p&gt;30+ popular brand and social media icons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Facebook, Twitter/X, Instagram, LinkedIn&lt;/li&gt;
&lt;li&gt;GitHub, GitLab, Discord, Slack&lt;/li&gt;
&lt;li&gt;Apple, Google, Microsoft&lt;/li&gt;
&lt;li&gt;And many more!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No need for &lt;code&gt;react-icons&lt;/code&gt; just for brand logos.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Tree-Shakeable by Design
&lt;/h3&gt;

&lt;p&gt;Only pay for what you use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// This adds ~0.5KB to your bundle&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Settings&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@spexop/icons&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="c1"&gt;// Not this entire library&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;Icons&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@spexop/icons&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// ❌ Don't do this&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Built with modern bundlers in mind (Vite, Webpack 5+, Rollup).&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Fully Typed with TypeScript
&lt;/h3&gt;

&lt;p&gt;Strict TypeScript support with full IntelliSense:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;IconProps&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@spexop/icons&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kr"&gt;interface&lt;/span&gt; &lt;span class="nx"&gt;IconProps&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SVGProps&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;SVGSVGElement&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;size&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;title&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;className&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;strokeWidth&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="kr"&gt;number&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  6. Accessible by Default
&lt;/h3&gt;

&lt;p&gt;Every icon includes proper ARIA attributes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Search&lt;/span&gt; &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Search"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;span class="c1"&gt;// Renders with role="img" and aria-label="Search"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📦 Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Using pnpm&lt;/span&gt;
pnpm add @spexop/icons

&lt;span class="c"&gt;# Using npm&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; @spexop/icons

&lt;span class="c"&gt;# Using yarn&lt;/span&gt;
yarn add @spexop/icons
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🚀 Quick Start
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Basic Usage
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Settings&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Bell&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@spexop/icons&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;nav&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Home&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="na"&gt;size&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Settings&lt;/span&gt; &lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"#3b82f6"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Bell&lt;/span&gt; &lt;span class="na"&gt;strokeWidth&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mf"&gt;1.5&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;nav&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Customization
&lt;/h3&gt;

&lt;p&gt;Icons inherit color from CSS by default:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt; &lt;span class="na"&gt;style&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;#ef4444&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Home&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt; &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="cm"&gt;/* Will be red */&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or customize directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Settings&lt;/span&gt; 
  &lt;span class="na"&gt;size&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"#3b82f6"&lt;/span&gt;
  &lt;span class="na"&gt;strokeWidth&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
  &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"icon-rotate"&lt;/span&gt;
  &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"Application Settings"&lt;/span&gt;
&lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  With Tailwind CSS
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Home&lt;/span&gt; &lt;span class="na"&gt;className&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"w-6 h-6 text-blue-500 hover:text-blue-700"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Dynamic Icons
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;iconMap&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;home&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;settings&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;Settings&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;user&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;User&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;DynamicIcon&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="p"&gt;}:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nl"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;keyof&lt;/span&gt; &lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="nx"&gt;iconMap&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Icon&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;iconMap&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Icon&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🎨 Design Philosophy
&lt;/h2&gt;

&lt;p&gt;All icons follow consistent design principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;24×24 pixel base size&lt;/strong&gt;: Scales perfectly at any size&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2px stroke width&lt;/strong&gt;: Clean and readable&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minimal style&lt;/strong&gt;: Works with any design system&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Optimized SVGs&lt;/strong&gt;: Automatically processed with SVGO&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No hardcoded colors&lt;/strong&gt;: Fully customizable&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📊 Bundle Size
&lt;/h2&gt;

&lt;p&gt;One of the biggest advantages is the minimal bundle impact:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Import Style&lt;/th&gt;
&lt;th&gt;Bundle Impact&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Single icon&lt;/td&gt;
&lt;td&gt;~0.5KB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10 icons&lt;/td&gt;
&lt;td&gt;~5KB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Entire library (don't!)&lt;/td&gt;
&lt;td&gt;~57KB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gzipped&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~17KB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Compare this to libraries that force you to import everything!&lt;/p&gt;

&lt;h2&gt;
  
  
  🛠️ Technical Details
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Build Output
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ESM&lt;/strong&gt;: Modern &lt;code&gt;import&lt;/code&gt; syntax&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CJS&lt;/strong&gt;: Legacy &lt;code&gt;require()&lt;/code&gt; support
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript&lt;/strong&gt;: Full &lt;code&gt;.d.ts&lt;/code&gt; definitions&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source maps&lt;/strong&gt;: Included for debugging&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Zero Dependencies
&lt;/h3&gt;

&lt;p&gt;The published package has &lt;strong&gt;zero runtime dependencies&lt;/strong&gt;. Only peer dependency:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"peerDependencies"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"react"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"&amp;gt;=16.8.0"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Works with React 16.8+ (Hooks era) through React 19.&lt;/p&gt;

&lt;h3&gt;
  
  
  Browser Support
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Chrome (latest)&lt;/li&gt;
&lt;li&gt;Firefox (latest)&lt;/li&gt;
&lt;li&gt;Safari (latest)&lt;/li&gt;
&lt;li&gt;Edge (latest)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📚 Documentation
&lt;/h2&gt;

&lt;p&gt;Comprehensive documentation available:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Icon Catalog&lt;/strong&gt;: Browse all 262 icons with search&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;API Reference&lt;/strong&gt;: Complete props documentation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Examples&lt;/strong&gt;: Real-world usage patterns&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contributing Guide&lt;/strong&gt;: Add your own icons&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript Guide&lt;/strong&gt;: Advanced type usage&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🤝 Contributing
&lt;/h2&gt;

&lt;p&gt;This is an open-source project and contributions are welcome!&lt;/p&gt;

&lt;p&gt;Ways to contribute:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Request new icons&lt;/li&gt;
&lt;li&gt;Submit icon designs (SVG files)&lt;/li&gt;
&lt;li&gt;Improve documentation&lt;/li&gt;
&lt;li&gt;Report bugs&lt;/li&gt;
&lt;li&gt;Share feedback&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check out the &lt;a href="https://github.com/spexop-ui/icons/blob/main/CONTRIBUTING.md" rel="noopener noreferrer"&gt;Contributing Guide&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🗺️ Roadmap
&lt;/h2&gt;

&lt;p&gt;Plans for future releases:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;v0.2.0&lt;/strong&gt;: Animated icon variants&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;v0.3.0&lt;/strong&gt;: Additional size presets (16px, 20px, 32px)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;v1.0.0&lt;/strong&gt;: Stable API, 300+ icons&lt;/li&gt;
&lt;li&gt;Vue &amp;amp; Svelte versions (community request)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  🎓 Lessons Learned
&lt;/h2&gt;

&lt;p&gt;Building this library taught me:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;SVG optimization matters&lt;/strong&gt;: SVGO reduced file sizes by 40%&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tree-shaking isn't automatic&lt;/strong&gt;: Proper ESM structure is crucial&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript strict mode catches bugs&lt;/strong&gt;: Saved hours of debugging&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Documentation is half the work&lt;/strong&gt;: Good docs = happy users&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing in real projects&lt;/strong&gt;: Dogfooding reveals issues fast&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  🔗 Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;npm&lt;/strong&gt;: &lt;a href="https://www.npmjs.com/package/@spexop/icons" rel="noopener noreferrer"&gt;npmjs.com/package/@spexop/icons&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/spexop-ui/icons" rel="noopener noreferrer"&gt;github.com/spexop-ui/icons&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Icon Catalog&lt;/strong&gt;: &lt;a href="https://github.com/spexop-ui/icons/blob/main/ICONS.md" rel="noopener noreferrer"&gt;View all 262 icons&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Issues&lt;/strong&gt;: &lt;a href="https://github.com/spexop-ui/icons/issues" rel="noopener noreferrer"&gt;Report bugs or request features&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💬 Feedback Welcome!
&lt;/h2&gt;

&lt;p&gt;This is the first release, and I'd love to hear your thoughts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What icons are missing?&lt;/li&gt;
&lt;li&gt;What features would you like?&lt;/li&gt;
&lt;li&gt;How can we improve the DX?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Drop a comment below or open an issue on GitHub!&lt;/p&gt;




&lt;h2&gt;
  
  
  Try It Out!
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @spexop/icons
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Home&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Heart&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Github&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@spexop/icons&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;App&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Home&lt;/span&gt; &lt;span class="na"&gt;size&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;32&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"#667eea"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Heart&lt;/span&gt; &lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;"#ef4444"&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Github&lt;/span&gt; &lt;span class="na"&gt;size&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="mi"&gt;24&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Happy coding! 🚀&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Built by Spexop UI&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Cuneyt Cakar (&lt;a href="https://github.com/olmstedian" rel="noopener noreferrer"&gt;@olmstedian&lt;/a&gt;)&lt;br&gt;&lt;br&gt;
📧 &lt;a href="mailto:ccakar@spexop.com"&gt;ccakar@spexop.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;
🌐 &lt;a href="https://www.spexop.com" rel="noopener noreferrer"&gt;www.spexop.com&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you found this useful, give it a ❤️ and share with your network!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>react</category>
      <category>typescript</category>
      <category>opensource</category>
      <category>ui</category>
    </item>
  </channel>
</rss>
