feat: add icon components
This commit is contained in:
parent
f64cd08ec9
commit
3eb8ddcbc4
17
src/components/icons/authjs.tsx
Normal file
17
src/components/icons/authjs.tsx
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import * as React from "react";
|
||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
const AuthJSIcon = (props: SVGProps<SVGSVGElement>) => (
|
||||||
|
<svg
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
fill="currentColor"
|
||||||
|
stroke="currentColor"
|
||||||
|
strokeWidth="1"
|
||||||
|
className="size-[34px]"
|
||||||
|
>
|
||||||
|
<title>Auth.js</title>
|
||||||
|
<path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z" />
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
|
||||||
|
export default AuthJSIcon;
|
23
src/components/icons/bluesky.tsx
Normal file
23
src/components/icons/bluesky.tsx
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import React from "react";
|
||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://icon-sets.iconify.design/fa6-brands/bluesky/
|
||||||
|
*/
|
||||||
|
export function Fa6BrandsBluesky(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={512}
|
||||||
|
height={512}
|
||||||
|
viewBox="0 0 512 512"
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<title>Bluesky</title>
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2c42.1-31.6 110.3-56 110.3 21.8c0 15.5-8.9 130.5-14.1 149.2c-18.2 64.8-84.4 81.4-143.3 71.3C456 322 482.2 380 425.6 438c-107.4 110.2-154.3-27.6-166.3-62.9c-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8c-12 35.3-59 173.1-166.3 62.9c-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1C10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
23
src/components/icons/github.tsx
Normal file
23
src/components/icons/github.tsx
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import React from "react";
|
||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://icon-sets.iconify.design/fa6-brands/github/
|
||||||
|
*/
|
||||||
|
export function FaBrandsGitHub(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={46.5}
|
||||||
|
height={48}
|
||||||
|
viewBox="0 0 496 512"
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<title>GitHub</title>
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6c-3.3.3-5.6-1.3-5.6-3.6c0-2 2.3-3.6 5.2-3.6c3-.3 5.6 1.3 5.6 3.6m-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9c2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3m44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9c.3 2 2.9 3.3 5.9 2.6c2.9-.7 4.9-2.6 4.6-4.6c-.3-1.9-3-3.2-5.9-2.9M244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2c12.8 2.3 17.3-5.6 17.3-12.1c0-6.2-.3-40.4-.3-61.4c0 0-70 15-84.7-29.8c0 0-11.4-29.1-27.8-36.6c0 0-22.9-15.7 1.6-15.4c0 0 24.9 2 38.6 25.8c21.9 38.6 58.6 27.5 72.9 20.9c2.3-16 8.8-27.1 16-33.7c-55.9-6.2-112.3-14.3-112.3-110.5c0-27.5 7.6-41.3 23.6-58.9c-2.6-6.5-11.1-33.3 2.6-67.9c20.9-6.5 69 27 69 27c20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27c13.7 34.7 5.2 61.4 2.6 67.9c16 17.7 25.8 31.5 25.8 58.9c0 96.5-58.9 104.2-114.8 110.5c9.2 7.9 17 22.9 17 46.4c0 33.7-.3 75.4-.3 83.6c0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252C496 113.3 383.5 8 244.8 8M97.2 352.9c-1.3 1-1 3.3.7 5.2c1.6 1.6 3.9 2.3 5.2 1c1.3-1 1-3.3-.7-5.2c-1.6-1.6-3.9-2.3-5.2-1m-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9c1.6 1 3.6.7 4.3-.7c.7-1.3-.3-2.9-2.3-3.9c-2-.6-3.6-.3-4.3.7m32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2c2.3 2.3 5.2 2.6 6.5 1c1.3-1.3.7-4.3-1.3-6.2c-2.2-2.3-5.2-2.6-6.5-1m-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2c-1.4-2.3-4-3.3-5.6-2"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
23
src/components/icons/google.tsx
Normal file
23
src/components/icons/google.tsx
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import React from "react";
|
||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://icon-sets.iconify.design/fa6-brands/google/
|
||||||
|
*/
|
||||||
|
export function FaBrandsGoogle(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={45.75}
|
||||||
|
height={48}
|
||||||
|
viewBox="0 0 488 512"
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<title>Google</title>
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M488 261.8C488 403.3 391.1 504 248 504C110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6c98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
135
src/components/icons/icons.tsx
Normal file
135
src/components/icons/icons.tsx
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
import {
|
||||||
|
ArrowRightIcon,
|
||||||
|
BadgeDollarSignIcon,
|
||||||
|
BookOpenIcon,
|
||||||
|
ChartLineIcon,
|
||||||
|
ChartNoAxesCombinedIcon,
|
||||||
|
CircleDollarSignIcon,
|
||||||
|
CircleUserRoundIcon,
|
||||||
|
ComponentIcon,
|
||||||
|
CreditCardIcon,
|
||||||
|
DatabaseIcon,
|
||||||
|
EyeIcon,
|
||||||
|
FileTextIcon,
|
||||||
|
FilterIcon,
|
||||||
|
GiftIcon,
|
||||||
|
GithubIcon,
|
||||||
|
GlobeIcon,
|
||||||
|
GridIcon,
|
||||||
|
HomeIcon,
|
||||||
|
ImageIcon,
|
||||||
|
LayoutDashboardIcon,
|
||||||
|
LayoutGridIcon,
|
||||||
|
LayoutPanelLeftIcon,
|
||||||
|
Loader2Icon,
|
||||||
|
type LucideIcon,
|
||||||
|
MailCheckIcon,
|
||||||
|
MailIcon,
|
||||||
|
MailboxIcon,
|
||||||
|
MapIcon,
|
||||||
|
NewspaperIcon,
|
||||||
|
NotebookPenIcon,
|
||||||
|
PaletteIcon,
|
||||||
|
RocketIcon,
|
||||||
|
SearchIcon,
|
||||||
|
SettingsIcon,
|
||||||
|
ShieldCheckIcon,
|
||||||
|
SmartphoneIcon,
|
||||||
|
SmileIcon,
|
||||||
|
SquareChartGanttIcon,
|
||||||
|
TagsIcon,
|
||||||
|
UploadIcon,
|
||||||
|
VideoIcon,
|
||||||
|
WandSparklesIcon,
|
||||||
|
WorkflowIcon,
|
||||||
|
WrenchIcon
|
||||||
|
} from "lucide-react";
|
||||||
|
import { FaBrandsGitHub } from "../icons/github";
|
||||||
|
import { FaBrandsGoogle } from "../icons/google";
|
||||||
|
import { LogosProductHunt } from "../icons/product-hunt";
|
||||||
|
import { FaBrandsXTwitter } from "../icons/twitter";
|
||||||
|
import AuthJSIcon from "./authjs";
|
||||||
|
import { Fa6BrandsBluesky } from "./bluesky";
|
||||||
|
import { NextjsIcon } from "./nextjs";
|
||||||
|
import { SimpleIconsResend } from "./resend";
|
||||||
|
import { SimpleIconsSanity } from "./sanity";
|
||||||
|
import { SimpleIconsShadcnui } from "./shadcnui";
|
||||||
|
import { SimpleIconsStripe } from "./stripe";
|
||||||
|
import { SimpleIconsTailwindcss } from "./tailwindcss";
|
||||||
|
import { SimpleIconsVercel } from "./vercel";
|
||||||
|
import { IonLogoYoutube } from "./youtube";
|
||||||
|
|
||||||
|
export type Icon = LucideIcon;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Lucide Icons
|
||||||
|
* https://lucide.dev/icons/
|
||||||
|
*
|
||||||
|
* 2. Radix Icons
|
||||||
|
* https://www.radix-ui.com/icons
|
||||||
|
*/
|
||||||
|
export const Icons = {
|
||||||
|
spinner: Loader2Icon,
|
||||||
|
|
||||||
|
// used by name
|
||||||
|
arrowRight: ArrowRightIcon,
|
||||||
|
search: SearchIcon,
|
||||||
|
category: LayoutGridIcon,
|
||||||
|
tag: TagsIcon,
|
||||||
|
blog: FileTextIcon,
|
||||||
|
features: WandSparklesIcon,
|
||||||
|
pricing: CreditCardIcon,
|
||||||
|
demo: RocketIcon,
|
||||||
|
showcase: LayoutGridIcon,
|
||||||
|
docs: BookOpenIcon,
|
||||||
|
globe: GlobeIcon,
|
||||||
|
home: HomeIcon,
|
||||||
|
dashboard: LayoutDashboardIcon,
|
||||||
|
submit: UploadIcon,
|
||||||
|
settings: SettingsIcon,
|
||||||
|
email: MailIcon,
|
||||||
|
layout: LayoutPanelLeftIcon,
|
||||||
|
component: ComponentIcon,
|
||||||
|
grid: GridIcon,
|
||||||
|
eye: EyeIcon,
|
||||||
|
rocket: RocketIcon,
|
||||||
|
image: ImageIcon,
|
||||||
|
smartphone: SmartphoneIcon,
|
||||||
|
palette: PaletteIcon,
|
||||||
|
chartLine: ChartLineIcon,
|
||||||
|
gift: GiftIcon,
|
||||||
|
user: CircleUserRoundIcon,
|
||||||
|
chartNoAxes: ChartNoAxesCombinedIcon,
|
||||||
|
|
||||||
|
map: MapIcon,
|
||||||
|
video: VideoIcon,
|
||||||
|
notebook: NotebookPenIcon,
|
||||||
|
mailcheck: MailCheckIcon,
|
||||||
|
mailbox: MailboxIcon,
|
||||||
|
newspaper: NewspaperIcon,
|
||||||
|
smile: SmileIcon,
|
||||||
|
wrench: WrenchIcon,
|
||||||
|
database: DatabaseIcon,
|
||||||
|
githubLucide: GithubIcon,
|
||||||
|
filter: FilterIcon,
|
||||||
|
money: BadgeDollarSignIcon,
|
||||||
|
sponsor: CircleDollarSignIcon,
|
||||||
|
shieldCheck: ShieldCheckIcon,
|
||||||
|
workflow: WorkflowIcon,
|
||||||
|
squareChartGantt: SquareChartGanttIcon,
|
||||||
|
|
||||||
|
github: FaBrandsGitHub,
|
||||||
|
google: FaBrandsGoogle,
|
||||||
|
twitter: FaBrandsXTwitter,
|
||||||
|
bluesky: Fa6BrandsBluesky,
|
||||||
|
youtube: IonLogoYoutube,
|
||||||
|
productHunt: LogosProductHunt,
|
||||||
|
nextjs: NextjsIcon,
|
||||||
|
authjs: AuthJSIcon,
|
||||||
|
shadcnui: SimpleIconsShadcnui,
|
||||||
|
tailwindcss: SimpleIconsTailwindcss,
|
||||||
|
sanity: SimpleIconsSanity,
|
||||||
|
resend: SimpleIconsResend,
|
||||||
|
stripe: SimpleIconsStripe,
|
||||||
|
vercel: SimpleIconsVercel,
|
||||||
|
};
|
78
src/components/icons/nextjs.tsx
Normal file
78
src/components/icons/nextjs.tsx
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
import * as React from "react";
|
||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://svgl.app/
|
||||||
|
*/
|
||||||
|
export function NextjsIcon(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
width="1em"
|
||||||
|
height="1em"
|
||||||
|
viewBox="0 0 180 180"
|
||||||
|
fill="none"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<title>Next.js</title>
|
||||||
|
<mask
|
||||||
|
id="mask0_408_139"
|
||||||
|
style={{
|
||||||
|
maskType: "alpha",
|
||||||
|
}}
|
||||||
|
maskUnits="userSpaceOnUse"
|
||||||
|
x={0}
|
||||||
|
y={0}
|
||||||
|
width={180}
|
||||||
|
height={180}
|
||||||
|
>
|
||||||
|
<circle cx={90} cy={90} r={90} fill="black" />
|
||||||
|
</mask>
|
||||||
|
<g mask="url(#mask0_408_139)">
|
||||||
|
<circle
|
||||||
|
cx={90}
|
||||||
|
cy={90}
|
||||||
|
r={87}
|
||||||
|
fill="black"
|
||||||
|
stroke="white"
|
||||||
|
strokeWidth={6}
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
d="M149.508 157.52L69.142 54H54V125.97H66.1136V69.3836L139.999 164.845C143.333 162.614 146.509 160.165 149.508 157.52Z"
|
||||||
|
fill="url(#paint0_linear_408_139)"
|
||||||
|
/>
|
||||||
|
<rect
|
||||||
|
x={115}
|
||||||
|
y={54}
|
||||||
|
width={12}
|
||||||
|
height={72}
|
||||||
|
fill="url(#paint1_linear_408_139)"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
<defs>
|
||||||
|
<linearGradient
|
||||||
|
id="paint0_linear_408_139"
|
||||||
|
x1={109}
|
||||||
|
y1={116.5}
|
||||||
|
x2={144.5}
|
||||||
|
y2={160.5}
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
>
|
||||||
|
<stop stopColor="white" />
|
||||||
|
<stop offset={1} stopColor="white" stopOpacity={0} />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="paint1_linear_408_139"
|
||||||
|
x1={121}
|
||||||
|
y1={54}
|
||||||
|
x2={120.799}
|
||||||
|
y2={106.875}
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
>
|
||||||
|
<stop stopColor="white" />
|
||||||
|
<stop offset={1} stopColor="white" stopOpacity={0} />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
40
src/components/icons/product-hunt.tsx
Normal file
40
src/components/icons/product-hunt.tsx
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://icon-sets.iconify.design/logos/producthunt/
|
||||||
|
*/
|
||||||
|
export function LogosProductHunt(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={48}
|
||||||
|
height={48}
|
||||||
|
viewBox="0 0 256 256"
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<title>Product Hunt</title>
|
||||||
|
<defs>
|
||||||
|
<linearGradient
|
||||||
|
id="logosProducthunt0"
|
||||||
|
x1="50%"
|
||||||
|
x2="50%"
|
||||||
|
y1="0%"
|
||||||
|
y2="100%"
|
||||||
|
>
|
||||||
|
<stop offset="0%" stopColor="#da552f" />
|
||||||
|
<stop offset="100%" stopColor="#d04b25" />
|
||||||
|
</linearGradient>
|
||||||
|
</defs>
|
||||||
|
<g fill="none" fillRule="evenodd">
|
||||||
|
<path
|
||||||
|
fill="url(#logosProducthunt0)"
|
||||||
|
d="M128 256c70.694 0 128-57.306 128-128S198.694 0 128 0S0 57.306 0 128s57.306 128 128 128"
|
||||||
|
/>
|
||||||
|
<path
|
||||||
|
fill="#fff"
|
||||||
|
d="M96 76.8v102.4h19.2v-32h29.056c19.296-.512 34.944-16.16 34.944-35.2c0-19.552-15.648-35.2-34.944-35.2zm48.493 51.2H115.2V96h29.293c8.563 0 15.507 7.168 15.507 16s-6.944 16-15.507 16"
|
||||||
|
/>
|
||||||
|
</g>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
23
src/components/icons/resend.tsx
Normal file
23
src/components/icons/resend.tsx
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import React from "react";
|
||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://icon-sets.iconify.design/simple-icons/resend/
|
||||||
|
*/
|
||||||
|
export function SimpleIconsResend(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={48}
|
||||||
|
height={48}
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<title>Resend</title>
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M2.023 0v24h5.553v-8.434h2.998L15.326 24h6.65l-5.372-9.258a7.65 7.65 0 0 0 3.316-3.016q1.063-1.815 1.062-4.08q0-2.194-1.062-3.91q-1.063-1.747-2.95-2.742Q15.12 0 12.823 0Zm5.553 4.87h4.219q1.097 0 1.851.376q.788.378 1.2 1.098q.412.685.412 1.611c0 .926-.126 1.165-.378 1.645q-.343.72-1.03 1.13q-.651.379-1.542.38H7.576Z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
23
src/components/icons/sanity.tsx
Normal file
23
src/components/icons/sanity.tsx
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import React from "react";
|
||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://icon-sets.iconify.design/simple-icons/sanity/
|
||||||
|
*/
|
||||||
|
export function SimpleIconsSanity(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={48}
|
||||||
|
height={48}
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<title>Sanity</title>
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M7.394 7.31a6 6 0 0 1-.833-.68c-.913-.91-1.38-2.067-1.38-3.568v-.575C6.699.929 9.039 0 11.828 0c5.394 0 8.515 2.8 9.285 6.74H16.22c-.54-1.554-1.89-2.764-4.352-2.764c-2.422 0-4.136 1.276-4.473 3.334h-.002ZM4.683 3.062c0 3.236 2.034 5.162 6.106 6.177l4.316.983c3.854.87 6.2 3.03 6.2 6.55a6.6 6.6 0 0 1-1.436 4.239c0-3.511-1.85-5.409-6.31-6.55l-4.236-.946c-3.393-.76-6.011-2.536-6.011-6.36a6.58 6.58 0 0 1 1.37-4.093ZM17.18 16.484c-.292 2.235-2.092 3.495-4.698 3.495c-2.314 0-4.048-.946-4.703-2.99H2.694C3.518 21.44 7.224 24 12.519 24c2.828 0 5.277-.87 6.85-2.439v-.55c0-1.66-.433-2.876-1.342-3.816a5.5 5.5 0 0 0-.847-.71z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
23
src/components/icons/shadcnui.tsx
Normal file
23
src/components/icons/shadcnui.tsx
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import React from "react";
|
||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://icon-sets.iconify.design/simple-icons/shadcnui/
|
||||||
|
*/
|
||||||
|
export function SimpleIconsShadcnui(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={48}
|
||||||
|
height={48}
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<title>Shadcn UI</title>
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M22.219 11.784L11.784 22.219a1.045 1.045 0 0 0 1.476 1.476L23.695 13.26a1.045 1.045 0 0 0-1.476-1.476M20.132.305L.305 20.132a1.045 1.045 0 0 0 1.476 1.476L21.608 1.781A1.045 1.045 0 0 0 20.132.305"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
23
src/components/icons/stripe.tsx
Normal file
23
src/components/icons/stripe.tsx
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import React from "react";
|
||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://icon-sets.iconify.design/simple-icons/stripe/
|
||||||
|
*/
|
||||||
|
export function SimpleIconsStripe(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={48}
|
||||||
|
height={48}
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<title>Stripe</title>
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409c0-.831.683-1.305 1.901-1.305c2.227 0 4.515.858 6.09 1.631l.89-5.494C18.252.975 15.697 0 12.165 0C9.667 0 7.589.654 6.104 1.872C4.56 3.147 3.757 4.992 3.757 7.218c0 4.039 2.467 5.76 6.476 7.219c2.585.92 3.445 1.574 3.445 2.583c0 .98-.84 1.545-2.354 1.545c-1.875 0-4.965-.921-6.99-2.109l-.9 5.555C5.175 22.99 8.385 24 11.714 24c2.641 0 4.843-.624 6.328-1.813c1.664-1.305 2.525-3.236 2.525-5.732c0-4.128-2.524-5.851-6.594-7.305z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
23
src/components/icons/tailwindcss.tsx
Normal file
23
src/components/icons/tailwindcss.tsx
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import React from "react";
|
||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://icon-sets.iconify.design/simple-icons/tailwindcss/
|
||||||
|
*/
|
||||||
|
export function SimpleIconsTailwindcss(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={48}
|
||||||
|
height={48}
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<title>Tailwind CSS</title>
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M12.001 4.8q-4.8 0-6 4.8q1.8-2.4 4.2-1.8c.913.228 1.565.89 2.288 1.624C13.666 10.618 15.027 12 18.001 12q4.8 0 6-4.8q-1.8 2.4-4.2 1.8c-.913-.228-1.565-.89-2.288-1.624C16.337 6.182 14.976 4.8 12.001 4.8m-6 7.2q-4.8 0-6 4.8q1.8-2.4 4.2-1.8c.913.228 1.565.89 2.288 1.624c1.177 1.194 2.538 2.576 5.512 2.576q4.8 0 6-4.8q-1.8 2.4-4.2 1.8c-.913-.228-1.565-.89-2.288-1.624C10.337 13.382 8.976 12 6.001 12"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
23
src/components/icons/twitter.tsx
Normal file
23
src/components/icons/twitter.tsx
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import React from "react";
|
||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://icon-sets.iconify.design/fa6-brands/x-twitter/
|
||||||
|
*/
|
||||||
|
export function FaBrandsXTwitter(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={48}
|
||||||
|
height={48}
|
||||||
|
viewBox="0 0 512 512"
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<title>X (Twitter)</title>
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M389.2 48h70.6L305.6 224.2L487 464H345L233.7 318.6L106.5 464H35.8l164.9-188.5L26.8 48h145.6l100.5 132.9zm-24.8 373.8h39.1L151.1 88h-42z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
20
src/components/icons/vercel.tsx
Normal file
20
src/components/icons/vercel.tsx
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import React from "react";
|
||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://icon-sets.iconify.design/simple-icons/vercel/
|
||||||
|
*/
|
||||||
|
export function SimpleIconsVercel(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={48}
|
||||||
|
height={48}
|
||||||
|
viewBox="0 0 24 24"
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<title>Vercel</title>
|
||||||
|
<path fill="currentColor" d="M24 22.525H0l12-21.05z" />
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
23
src/components/icons/youtube.tsx
Normal file
23
src/components/icons/youtube.tsx
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
import React from "react";
|
||||||
|
import type { SVGProps } from "react";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* https://icon-sets.iconify.design/ion/logo-youtube/
|
||||||
|
*/
|
||||||
|
export function IonLogoYoutube(props: SVGProps<SVGSVGElement>) {
|
||||||
|
return (
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width={48}
|
||||||
|
height={48}
|
||||||
|
viewBox="0 0 512 512"
|
||||||
|
{...props}
|
||||||
|
>
|
||||||
|
<title>YouTube</title>
|
||||||
|
<path
|
||||||
|
fill="currentColor"
|
||||||
|
d="M508.64 148.79c0-45-33.1-81.2-74-81.2C379.24 65 322.74 64 265 64h-18c-57.6 0-114.2 1-169.6 3.6C36.6 67.6 3.5 104 3.5 149C1 184.59-.06 220.19 0 255.79q-.15 53.4 3.4 106.9c0 45 33.1 81.5 73.9 81.5c58.2 2.7 117.9 3.9 178.6 3.8q91.2.3 178.6-3.8c40.9 0 74-36.5 74-81.5c2.4-35.7 3.5-71.3 3.4-107q.34-53.4-3.26-106.9M207 353.89v-196.5l145 98.2Z"
|
||||||
|
/>
|
||||||
|
</svg>
|
||||||
|
);
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user