Upload
The upload icon represents the action of transferring data to a remote location.
Exports at 24 × 24 px
Code
Upload in your framework
In any framework. Customize it above, and the code follows.
export const UploadIcon = (props: React.SVGProps<SVGSVGElement>) => (
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 16 16" fill="none" stroke="currentColor" {...props}>
<path fill="none" stroke="currentColor" strokeLinecap="round" strokeLinejoin="round" strokeWidth="1.5" d="m3.75 2.75h9m-8.5 6.5 4-3.5 4 3.5m-4 5v-8.5"/>
</svg>
);Other libraries
Upload in 8 more libraries
Each library draws it its own way. Open one to compare.
Charm Icons
More like it
Icons that share its tags, in the same style.
Search Charm Icons
Skip the copy and paste. With Pro, your AI agent finds and installs any Charm Icons icon from a prompt.
Get ProTags
Browse by tag
Upload is tagged file, data, cloud and 2 more. Related tags follow; each opens its icons from every library.
Pricing
Charm Icons MCP, with Pro
Ask for Upload or any of 262 Charm Icons icons and your agent installs it. The MCP comes with every Pro plan, with 6,000+ blocks and 14 premium templates. The icons stay free.
4.9/5 out of 5 · 150+ reviewsfrom 150+ founders and developers.
- Secure checkout via Stripe
- Code lives in your repo
- Keep what you've shipped if you cancel
- License terms
FAQ
Frequently asked questions
What the Upload icon means and where it's used, then how to install, style, label and license it.
The upload icon represents the action of transferring data to a remote location. The visual design features a simple path shape, symbolizing the movement of data. This symbol originates from digital interfaces.
The upload icon appears in software related to file sharing, such as Google Drive's upload or Dropbox's file transfer. It is also used in e-commerce platforms like Shopify or WooCommerce to represent file uploads.
From a UX perspective, the upload icon communicates the idea of data transfer or sharing. It helps users understand that a feature or application allows for uploading files or data.
Upload is one of 262 icons in Charm Icons, made by Jay Newey and released under MIT. It is drawn on a 16 × 16 grid with a 1.5 stroke.
Sign in (it's free), then open Get icon, Install with shadcn CLI, and pick your package manager to copy the command. It adds UploadIcon to components/icons/charm-upload.tsx: one file, a size prop (24 by default) and every SVG prop, with no icon package.
Copy it as React (from Get icon, or the Code section): a typed UploadIcon component you paste into your project, with no package to install. Only the icons you import reach your bundle. It works in Next.js and any React app.
Open Get icon, then Copy as code, and pick Vue, Svelte, Angular, Solid or Preact; the Code section shows each one too. Every version is one self-contained component with the SVG inside, and SVG and data URL copies are there for plain HTML and CSS.
With Pro, the shadcn.io MCP server lets Claude Code, Cursor or any MCP client find the Upload icon, or any of 262 Charm Icons icons, and install it from a prompt.
It's drawn in currentColor, so it takes the text color wherever you use it: a class like text-primary recolors it. To bake a color in, set one in Customize before you copy.
Set width and height on the component, or a class like size-6. It's drawn on a 16 × 16 grid, so it stays sharp at any size. Customize also sets the size it exports at, its padding and rotation, and its stroke.
Upload is a line icon drawn with a stroke width of 1.5. Change it in Customize before you copy, or pass strokeWidth to the installed component when all of its strokes share one width.
Yes. It follows the text color, so with text-foreground (or any theme token) it changes with your light and dark themes. The icon is a vector, so it needs no separate dark asset.
Next to a visible label it's decoration: add aria-hidden="true" so screen readers skip it. Standing alone, as in an icon button, give the button a name instead, like aria-label="Upload", so screen readers say what it does.
Yes. UploadIcon passes every SVG prop to the svg element, so <UploadIcon aria-hidden="true" /> works, and so do role="img" with aria-label, or a title child, when it carries meaning on its own.
Yes. Open Get icon, then Download file: SVG for code or design tools like Figma; PNG, WebP or JPEG at 512px; or an ICO favicon with 16, 32 and 48px inside. Each one uses what you set in Customize.
Yes. MIT allows commercial use; keep the license notice when you ship the icons' source files. The full terms are in the license, linked on this page.
No visible credit is required: MIT only asks that you keep the license notice if you ship the icons' source files. Icons installed with the shadcn CLI already start with a comment naming Charm Icons, Jay Newey and the license.
Yes. Copying and downloading it is free, and the shadcn CLI install only needs a free account.
8 other libraries draw an icon called Upload. The Other libraries section on this page shows each one, so you can compare them and open the one that fits your style.
Its tags are file, data, cloud, transfer and upload. Each tag page lists the icons that carry it from every library, which is the quickest way to find a match for Upload in another set.
4.9 out of 5 from 150+ developers
Install Upload from a prompt
MCP, 6,000+ blocks and 14 premium templates in every Pro plan. The icons stay free.
Get Pro