Packages
corex
0.1.0-beta.4
0.1.2
0.1.1
0.1.0
0.1.0-rc.1
0.1.0-rc.0
0.1.0-beta.5
0.1.0-beta.4
0.1.0-beta.3
0.1.0-beta.2
0.1.0-beta.1
0.1.0-alpha.33
0.1.0-alpha.32
0.1.0-alpha.31
0.1.0-alpha.30
0.1.0-alpha.29
0.1.0-alpha.28
0.1.0-alpha.27
0.1.0-alpha.26
0.1.0-alpha.25
0.1.0-alpha.24
0.1.0-alpha.23
0.1.0-alpha.22
0.1.0-alpha.21
0.1.0-alpha.20
0.1.0-alpha.19
0.1.0-alpha.18
0.1.0-alpha.17
0.1.0-alpha.16
0.1.0-alpha.15
0.1.0-alpha.14
0.1.0-alpha.13
0.1.0-alpha.12
0.1.0-alpha.11
0.1.0-alpha.10
0.1.0-alpha.9
0.1.0-alpha.8
0.1.0-alpha.7
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
Accessible and unstyled UI components library written in Elixir and TypeScript that integrates Zag.js state machines into the Phoenix Framework.
Current section
Files
Jump to
Current section
Files
priv/design/corex/components/file-upload.css
@import "../main.css";
@layer components {
.file-upload {
width: 100%;
max-width: var(--container-md);
margin-inline: auto;
}
.file-upload[data-loading] [data-scope="file-upload"][data-part="root"] {
@apply ui-loading;
}
.file-upload[data-loading] [data-scope="file-upload"][data-part="hidden-input"],
.file-upload[data-loading] [data-scope="file-upload"][data-part="hidden-input-sentinel"] {
opacity: 0;
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
overflow: hidden;
clip-path: inset(50%);
pointer-events: none;
}
.file-upload [data-scope="file-upload"][data-part="hidden-input"],
.file-upload [data-scope="file-upload"][data-part="hidden-input-sentinel"] {
opacity: 0;
position: absolute;
width: 1px;
height: 1px;
margin: -1px;
overflow: hidden;
clip-path: inset(50%);
}
.file-upload [data-scope="file-upload"][data-part="root"] {
@apply ui-root;
display: flex;
flex-direction: column;
align-items: center;
gap: var(--spacing-space);
width: 100%;
}
.file-upload [data-scope="file-upload"][data-part="root"][data-readonly],
.file-upload [data-scope="file-upload"][data-part="root"][data-read-only] {
@apply ui-readonly;
}
.file-upload [data-scope="file-upload"][data-part="label"] {
@apply ui-label;
align-self: stretch;
text-align: center;
}
.file-upload [data-scope="file-upload"][data-part="region"] {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
align-self: stretch;
gap: var(--spacing-space);
border: 1px dashed var(--color-border);
border-radius: var(--radius-md);
padding: var(--spacing-space);
width: 100%;
box-sizing: border-box;
}
.file-upload [data-scope="file-upload"][data-part="region"]:has([data-scope="file-upload"][data-part="dropzone"][data-dragging]) {
border-color: var(--color-brand);
background: color-mix(in srgb, var(--color-brand) 8%, transparent);
}
.file-upload [data-scope="file-upload"][data-part="dropzone"] {
display: flex;
flex-direction: column;
align-items: center;
align-self: stretch;
flex: 1 1 auto;
min-height: 0;
cursor: pointer;
text-align: center;
}
.file-upload [data-scope="file-upload"][data-part="trigger"] {
@apply ui-trigger;
}
.file-upload [data-scope="file-upload"][data-part="item-group"] {
list-style: none;
align-self: stretch;
width: 100%;
min-width: 0;
border: 1px solid var(--color-border);
border-radius: var(--radius-md);
background-color: var(--color-ui);
overflow: hidden;
display: flex;
flex-direction: column;
gap: var(--spacing-space);
padding-block: var(--spacing-space);
}
.file-upload [data-scope="file-upload"][data-part="item-group"]:not(:has(li)) {
display: none;
}
.file-upload [data-scope="file-upload"][data-part="item"] {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
min-width: 0;
gap: var(--spacing-space);
padding: 0;
margin: 0;
}
.file-upload [data-scope="file-upload"][data-part="item-lead"] {
flex: 0 0 auto;
display: flex;
align-items: center;
justify-content: center;
}
.file-upload [data-scope="file-upload"][data-part="item-lead"]:empty {
display: none;
}
.file-upload [data-scope="file-upload"][data-part="item-preview"] {
width: var(--spacing-size);
height: var(--spacing-size);
flex-shrink: 0;
overflow: hidden;
border-radius: var(--radius-md);
display: flex;
align-items: center;
justify-content: center;
background-color: var(--color-border);
margin-inline: var(--spacing-space-sm);
}
.file-upload [data-scope="file-upload"][data-part="item-preview-image"] {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: var(--radius-md);
}
.file-upload [data-scope="file-upload"][data-part="item-name"] {
@apply ui-label;
flex: 1 1 0;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
}
.file-upload [data-scope="file-upload"][data-part="item-size-text"] {
@apply ui-label;
font-weight: var(--font-weight-medium);
}
.file-upload [data-scope="file-upload"][data-part="item-delete-trigger"] {
@apply ui-trigger ui-trigger--sm ui-trigger--square ui-trigger--alert;
margin-inline-end: var(--spacing-space);
}
.file-upload [data-scope="file-upload"][data-part="error"] {
@apply ui-error;
}
}