Docs
1869 icons in 10 styles, drawn from Lucide 1.53.0. Each style is an icon font, and every icon has the same codepoint in every style.
Flutter
Add the package, then use any style class. Single-layer styles are plain IconData for Icon; two-layer styles (Duotone, Twotone, Bulk) draw with AshlarLayeredIcon.
$ flutter pub add ashlar_icons
The pub.dev release is pending. Until it lands, the command above will not find the package.
import 'package:ashlar_icons/ashlar_icons.dart';
Icon(AshlarIconsRoundedStroke.calendar, size: 24)
Icon(AshlarIconsSharpSolid.calendar)
AshlarLayeredIcon(
AshlarIconsRoundedDuotone.calendar,
color: Colors.indigo,
secondaryColor: Colors.indigo.shade100, // optional; defaults to color at 40%
)
Every icon is a const IconData, so release builds keep only the glyphs you use.
Web
<link rel="stylesheet" href="https://icons.ashlar.ke/ashlar-icons.css">
<i class="ash ash-rounded-stroke ash-calendar"></i>
<i class="ash ash-sharp-solid ash-calendar"></i>
<i class="ash ash-rounded-duotone ash-calendar"></i>
Icons take the text colour and font size. For two-layer styles, set --ash-secondary to colour the faint layer and --ash-secondary-opacity to change its strength.
.brand-icon {
color: #5b3df5;
font-size: 32px;
--ash-secondary: #c4b5fd;
--ash-secondary-opacity: 1;
}
SVG
Every icon in every style is at https://icons.ashlar.ke/svg/<style>/<name>.svg, using currentColor. The icon browser copies and downloads them with your colours, and exports PNGs.
Styles
| Style | What it is | Flutter class |
|---|---|---|
| Rounded Stroke | Lucide as drawn: 2px strokes, round caps and joins | AshlarIconsRoundedStroke |
| Rounded Solid | Outer shapes filled, inner details cut out | AshlarIconsRoundedSolid |
| Rounded Duotone | Stroke over a faint fill of the outer shapes | AshlarIconsRoundedDuotone |
| Rounded Twotone | Outer strokes, inner details faint | AshlarIconsRoundedTwotone |
| Rounded Bulk | Faint solid shapes, details at full strength | AshlarIconsRoundedBulk |
| Standard Stroke | Corner radii halved, mitred joins | AshlarIconsStandardStroke |
| Standard Solid | Standard corners, filled | AshlarIconsStandardSolid |
| Standard Duotone | Standard corners, stroke over a faint fill | AshlarIconsStandardDuotone |
| Sharp Stroke | Square corners and caps | AshlarIconsSharpStroke |
| Sharp Solid | Square corners, filled | AshlarIconsSharpSolid |
Icons with no closed outer shape (arrows, chevrons, most lines) look the same in Stroke and Solid, and have no faint layer in Duotone and Bulk.
Codepoints never change
Codepoints live in a locked registry. An icon keeps its codepoint forever, new icons are appended, and removed names are never reused, so upgrading cannot swap one icon for another. Icons Lucide renamed keep their old names as deprecated Dart constants and CSS classes.
Licence
ISC, the same as Lucide, whose designs these are. Icons Lucide took from Feather keep their MIT notice. Free for any use, commercial included, with no account and no limits.