Soft icons for crisp interfaces.
367 icons in stroke and solid, drawn on a 24px grid. Free and MIT licensed for every major framework.
Stroke when it rests.
Solid when it's chosen.
Every icon ships in both styles under the same name, so an active state is a one-word import change.
import { HomeIcon } from "@softstroke/react""@softstroke/react/solid"Built for real screens.
Tab bars that feel native
Tap a tab: its icon turns solid while the rest stay stroke.
Dashboards that stay calm
Readable at 18px in a busy sidebar, with one weight throughout.
Menus people scan
Even 1.5px strokes keep a long list of actions quiet and aligned.
Controls with clear states
Play, pause, like. Each state change is a swap from stroke to solid.
Tab bars that feel native. Tap a tab: its icon turns solid while the rest stay stroke.
Tuesday, 10 Nov
Morning, Mira
3 tasks left
1 of 4 done today
Tasks
See all
Overview
$18,240
+12.4%
14
+2
326
+8.1%
Done
Low Tide
Harbour Lights
Seven screens, one icon set
Menus, tab bars, dashboards and app cards, drawn with nothing but Softstroke. Each one lists the icons it uses.
Works where you build.
Native packages for every major framework, plain SVG for everything else, and a CDN when you just need one icon.
import { HomeIcon } from "@softstroke/react";
<HomeIcon size={24} strokeWidth={1.5} />Make them yours.
Size, stroke width and color are plain props. Try them.
Tree-shakable. Your bundle gets only the icons you import.
About 0.4 KB each. Optimised paths, no runtime, no fonts to load.


