Skip to content

Commit 66d2400

Browse files
nrjdalalshadcn
andauthored
feat(icons): the icons we all love and adore - remixicon (#9156)
* feat: remixicon * chore: update deps * chore: update icon * chore: fix issues * chore: build registry * chore: changeset * deps --------- Co-authored-by: shadcn <m@shadcn.com>
1 parent 682c989 commit 66d2400

742 files changed

Lines changed: 2227 additions & 639 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/shaky-walls-beg.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"shadcn": minor
3+
---
4+
5+
add remix icons

apps/v4/app/(create)/components/icon-library-picker.tsx

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ const IconPhosphor = lazy(() =>
4545
}))
4646
)
4747

48+
const IconRemixicon = lazy(() =>
49+
import("@/registry/icons/icon-remixicon").then((mod) => ({
50+
default: mod.IconRemixicon,
51+
}))
52+
)
53+
4854
const PREVIEW_ICONS = {
4955
lucide: [
5056
"CopyIcon",
@@ -110,6 +116,22 @@ const PREVIEW_ICONS = {
110116
"CaretDownIcon",
111117
"CaretRightIcon",
112118
],
119+
remixicon: [
120+
"RiFileCopyLine",
121+
"RiErrorWarningLine",
122+
"RiDeleteBinLine",
123+
"RiShareLine",
124+
"RiShoppingBagLine",
125+
"RiMoreLine",
126+
"RiLoaderLine",
127+
"RiAddLine",
128+
"RiSubtractLine",
129+
"RiArrowLeftLine",
130+
"RiArrowRightLine",
131+
"RiCheckLine",
132+
"RiArrowDownSLine",
133+
"RiArrowRightSLine",
134+
],
113135
}
114136

115137
const logos = {
@@ -194,6 +216,17 @@ const logos = {
194216
/>
195217
</svg>
196218
),
219+
remixicon: (
220+
<svg
221+
xmlns="http://www.w3.org/2000/svg"
222+
viewBox="0 0 24 24"
223+
width="24"
224+
height="24"
225+
fill="currentColor"
226+
>
227+
<path d="M12 2C17.5228 2 22 6.47715 22 12C22 15.3137 19.3137 18 16 18C12.6863 18 10 15.3137 10 12C10 11.4477 9.55228 11 9 11C8.44772 11 8 11.4477 8 12C8 16.4183 11.5817 20 16 20C16.8708 20 17.7084 19.8588 18.4932 19.6016C16.7458 21.0956 14.4792 22 12 22C6.6689 22 2.3127 17.8283 2.0166 12.5713C2.23647 9.45772 4.83048 7 8 7C11.3137 7 14 9.68629 14 13C14 13.5523 14.4477 14 15 14C15.5523 14 16 13.5523 16 13C16 8.58172 12.4183 5 8 5C6.50513 5 5.1062 5.41032 3.90918 6.12402C5.72712 3.62515 8.67334 2 12 2Z" />
228+
</svg>
229+
),
197230
}
198231

199232
export function IconLibraryPicker({
@@ -301,7 +334,9 @@ const IconLibraryPreview = memo(function IconLibraryPreview({
301334
? IconTabler
302335
: iconLibrary === "hugeicons"
303336
? IconHugeicons
304-
: IconPhosphor
337+
: iconLibrary === "phosphor"
338+
? IconPhosphor
339+
: IconRemixicon
305340

306341
return (
307342
<Suspense

apps/v4/app/(create)/components/icon-placeholder.tsx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ const IconPhosphor = lazy(() =>
3030
}))
3131
)
3232

33+
const IconRemixicon = lazy(() =>
34+
import("@/registry/icons/icon-remixicon").then((mod) => ({
35+
default: mod.IconRemixicon,
36+
}))
37+
)
38+
3339
export function IconPlaceholder({
3440
...props
3541
}: {
@@ -52,6 +58,9 @@ export function IconPlaceholder({
5258
{iconLibrary === "phosphor" && (
5359
<IconPhosphor name={iconName} {...props} />
5460
)}
61+
{iconLibrary === "remixicon" && (
62+
<IconRemixicon name={iconName} {...props} />
63+
)}
5564
</Suspense>
5665
)
5766
}

apps/v4/app/(create)/components/picker.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ function PickerSubTrigger({
139139
tabler="IconChevronRight"
140140
hugeicons="ArrowRight01Icon"
141141
phosphor="CaretRightIcon"
142+
remixicon="RiArrowRightSLine"
142143
className="ml-auto"
143144
/>
144145
</MenuPrimitive.SubmenuTrigger>
@@ -192,6 +193,7 @@ function PickerCheckboxItem({
192193
tabler="IconCheck"
193194
hugeicons="Tick02Icon"
194195
phosphor="CheckIcon"
196+
remixicon="RiCheckLine"
195197
/>
196198
</MenuPrimitive.CheckboxItemIndicator>
197199
</span>
@@ -233,6 +235,7 @@ function PickerRadioItem({
233235
tabler="IconCheck"
234236
hugeicons="Tick02Icon"
235237
phosphor="CheckIcon"
238+
remixicon="RiCheckLine"
236239
className="size-4 pointer-coarse:size-5"
237240
/>
238241
</MenuPrimitive.RadioItemIndicator>

apps/v4/app/(internal)/sink/components/dropdown-menu-demo.tsx

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ function DropdownMenuCheckboxes() {
118118
tabler="IconUser"
119119
hugeicons="UserIcon"
120120
phosphor="UserIcon"
121+
remixicon="RiUserLine"
121122
/>
122123
Profile
123124
</DropdownMenuItem>
@@ -127,6 +128,7 @@ function DropdownMenuCheckboxes() {
127128
tabler="IconCreditCard"
128129
hugeicons="CreditCardIcon"
129130
phosphor="CreditCardIcon"
131+
remixicon="RiBankCardLine"
130132
/>
131133
Billing
132134
</DropdownMenuItem>
@@ -136,6 +138,7 @@ function DropdownMenuCheckboxes() {
136138
tabler="IconSettings"
137139
hugeicons="SettingsIcon"
138140
phosphor="GearIcon"
141+
remixicon="RiSettings3Line"
139142
/>
140143
Settings
141144
</DropdownMenuItem>
@@ -171,6 +174,7 @@ function DropdownMenuCheckboxes() {
171174
tabler="IconLogout"
172175
hugeicons="LogoutIcon"
173176
phosphor="SignOutIcon"
177+
remixicon="RiLogoutBoxLine"
174178
/>
175179
Sign Out
176180
</DropdownMenuItem>
@@ -227,6 +231,7 @@ function DropdownMenuWithAvatar() {
227231
tabler="IconChevronsUpDown"
228232
hugeicons="ChevronUpDownIcon"
229233
phosphor="CaretUpDownIcon"
234+
remixicon="RiExpandUpDownLine"
230235
className="text-muted-foreground ml-auto"
231236
/>
232237
</Button>
@@ -257,6 +262,7 @@ function DropdownMenuWithAvatar() {
257262
tabler="IconSparkles"
258263
hugeicons="SparklesIcon"
259264
phosphor="SparklesIcon"
265+
remixicon="RiSparklingLine"
260266
/>
261267
Upgrade to Pro
262268
</DropdownMenuItem>
@@ -269,6 +275,7 @@ function DropdownMenuWithAvatar() {
269275
tabler="IconBadgeCheck"
270276
hugeicons="BadgeCheckIcon"
271277
phosphor="CheckCircleIcon"
278+
remixicon="RiVerifiedBadgeLine"
272279
/>
273280
Account
274281
</DropdownMenuItem>
@@ -278,6 +285,7 @@ function DropdownMenuWithAvatar() {
278285
tabler="IconCreditCard"
279286
hugeicons="CreditCardIcon"
280287
phosphor="CreditCardIcon"
288+
remixicon="RiBankCardLine"
281289
/>
282290
Billing
283291
</DropdownMenuItem>
@@ -287,6 +295,7 @@ function DropdownMenuWithAvatar() {
287295
tabler="IconBell"
288296
hugeicons="BellIcon"
289297
phosphor="BellIcon"
298+
remixicon="RiNotification3Line"
290299
/>
291300
Notifications
292301
</DropdownMenuItem>
@@ -298,6 +307,7 @@ function DropdownMenuWithAvatar() {
298307
tabler="IconLogout"
299308
hugeicons="LogoutIcon"
300309
phosphor="SignOutIcon"
310+
remixicon="RiLogoutBoxLine"
301311
/>
302312
Sign Out
303313
</DropdownMenuItem>
@@ -352,6 +362,7 @@ function DropdownMenuAvatarOnly() {
352362
tabler="IconSparkles"
353363
hugeicons="SparklesIcon"
354364
phosphor="SparklesIcon"
365+
remixicon="RiSparklingLine"
355366
/>
356367
Upgrade to Pro
357368
</DropdownMenuItem>
@@ -364,6 +375,7 @@ function DropdownMenuAvatarOnly() {
364375
tabler="IconBadgeCheck"
365376
hugeicons="BadgeCheckIcon"
366377
phosphor="CheckCircleIcon"
378+
remixicon="RiVerifiedBadgeLine"
367379
/>
368380
Account
369381
</DropdownMenuItem>
@@ -373,6 +385,7 @@ function DropdownMenuAvatarOnly() {
373385
tabler="IconCreditCard"
374386
hugeicons="CreditCardIcon"
375387
phosphor="CreditCardIcon"
388+
remixicon="RiBankCardLine"
376389
/>
377390
Billing
378391
</DropdownMenuItem>
@@ -382,6 +395,7 @@ function DropdownMenuAvatarOnly() {
382395
tabler="IconBell"
383396
hugeicons="BellIcon"
384397
phosphor="BellIcon"
398+
remixicon="RiNotification3Line"
385399
/>
386400
Notifications
387401
</DropdownMenuItem>
@@ -393,6 +407,7 @@ function DropdownMenuAvatarOnly() {
393407
tabler="IconLogout"
394408
hugeicons="LogoutIcon"
395409
phosphor="SignOutIcon"
410+
remixicon="RiLogoutBoxLine"
396411
/>
397412
Sign Out
398413
</DropdownMenuItem>
@@ -411,6 +426,7 @@ function DropdownMenuIconColor() {
411426
tabler="IconDots"
412427
hugeicons="MoreHorizontalCircle01Icon"
413428
phosphor="DotsThreeOutlineIcon"
429+
remixicon="RiMoreLine"
414430
/>
415431
<span className="sr-only">Toggle menu</span>
416432
</Button>
@@ -423,6 +439,7 @@ function DropdownMenuIconColor() {
423439
tabler="IconPencil"
424440
hugeicons="EditIcon"
425441
phosphor="PencilIcon"
442+
remixicon="RiPencilLine"
426443
/>
427444
Edit
428445
</DropdownMenuItem>
@@ -432,6 +449,7 @@ function DropdownMenuIconColor() {
432449
tabler="IconShare"
433450
hugeicons="ShareIcon"
434451
phosphor="ShareIcon"
452+
remixicon="RiShareLine"
435453
/>
436454
Share
437455
</DropdownMenuItem>
@@ -442,6 +460,7 @@ function DropdownMenuIconColor() {
442460
tabler="IconTrash"
443461
hugeicons="DeleteIcon"
444462
phosphor="TrashIcon"
463+
remixicon="RiDeleteBinLine"
445464
/>
446465
Delete
447466
</DropdownMenuItem>

apps/v4/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"@hugeicons/core-free-icons": "^1.2.1",
3232
"@hugeicons/react": "^1.1.1",
3333
"@phosphor-icons/react": "^2.1.10",
34+
"@remixicon/react": "^4.7.0",
3435
"@radix-ui/react-accessible-icon": "^1.1.1",
3536
"@radix-ui/react-accordion": "^1.2.12",
3637
"@radix-ui/react-alert-dialog": "^1.1.5",

0 commit comments

Comments
 (0)