CSS: file-drop
.instui-file-drop — A file dropzone with hover, accepted, and rejected states.
Source: file-drop.css
Accessibility
Wrap a native <input type="file"> in the <label> drop zone so it stays a real, labelled file control that the keyboard and assistive tech can operate.
Usage
css
@import "@pantoken/components/components.css";
@import "@pantoken/components/file-drop.css";Examples
html
<label class="instui-file-drop" id="fd">
<span class="instui-icon -icon-cloud-upload"></span>
<div class="instui-text"><strong>Drag an image here</strong>, or click to browse.</div>
<div class="instui-text -size-sm instui-fg-muted" id="fd-msg">PNG or JPG up to 5 MB.</div>
<input type="file" id="fd-input">
</label>Structure
text
.instui-file-drop
[class*="-icon-"] (0..1)
text (component)
strong
text (component)
inputflowchart TD
n0[".instui-file-drop"]:::cssdoc-root
n1("[class*="-icon-"]"):::cssdoc-part
n2(["text"]):::cssdoc-component
n3("strong"):::cssdoc-part
n4(["text"]):::cssdoc-component
n5("input"):::cssdoc-part
n0 -.->|0..1| n1
n2 --> n3
n0 --> n2
n0 --> n4
n0 --> n5
click n2 "/api/css/text.md"
click n4 "/api/css/text.md"
classDef cssdoc-root stroke-width:1px;
classDef cssdoc-part stroke-width:1px;
classDef cssdoc-slot stroke-width:1px;
classDef cssdoc-component stroke-width:1px;
Modifiers
| Modifier | Description |
|---|---|
.-accepted | Drag state for an acceptable file. |
.-hover | Hover or drag-over state. |
.-icon-* | Render the leading dropzone glyph icon. |
.-rejected | Drag state for a rejected file. |
Tokens consumed
| Token | Type | Value |
|---|---|---|
--instui-color-text-base | <color> | light-dark(#273540, #F2F4F5)LightDark |
--instui-component-file-drop-accepted-color | <color> | light-dark(#1D354F, #EEF4FD)LightDark |
--instui-component-file-drop-background-color | <color> | light-dark(#ffffff, #1C222B)LightDark |
--instui-component-file-drop-border-color | <color> | light-dark(#7E8792, #5F6E7A)LightDark |
--instui-component-file-drop-border-radius | <length> | 1rem |
--instui-component-file-drop-border-style | none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset | dashed |
--instui-component-file-drop-border-width | <length> | 0.0625rem |
--instui-component-file-drop-hover-border-color | <color> | light-dark(#1D354F, #EEF4FD)LightDark |
--instui-component-file-drop-rejected-color | <color> | light-dark(#CF1F24, #F56050)LightDark |
--instui-spacing-space-lg | <length> | 1rem |