Skip to content

Upload

Upload

Component for uploading files with drag-and-drop support and progress indication.

Import

import Upload from '@primitivekit/svelte/Upload.svelte';

Basic Usage

<Upload>Content</Upload>

Props

No props available.

Customization

The Upload component supports CSS variables for complete customization:

<Upload style={{
  '--upload-bg-color': '#007bff',
  '--upload-text-color': '#ffffff'
}}>Custom</Upload>

Design Tokens

The following design tokens are available for customization:

  • --upload-border-width
  • --upload-border-style
  • --upload-border-color
  • --upload-border-radius
  • --upload-background
  • --upload-padding
  • --upload-min-height
  • --upload-cursor
  • --upload-transition-duration
  • --upload-transition-timing
  • … and 38 more

Accessibility

The Upload component is fully accessible and follows WCAG 2.1 AA standards:

  • ✅ Semantic HTML elements
  • ✅ Keyboard accessible
  • ✅ Focus visible indicator
  • ✅ Proper ARIA attributes
  • ✅ Screen reader compatible
  • ✅ Touch target size (44x44px minimum)
  • ✅ Color contrast compliance

Keyboard Navigation

KeyAction
TabMove focus to/from component
EnterActivate component
SpaceActivate component

Related Components

  • Button - Interactive button component with multiple variants, sizes, and states for triggering actions.
  • Input - Text input field component with validation, icons, and various input types.
  • Select - Dropdown component for selecting one or multiple options from a list.
  • Checkbox - Form input component for selecting one or multiple options from a set.
  • Radio - Form input component for selecting a single option from a set of mutually exclusive choices.

See Also