UNPKG

@penaprieto/design-system

Version:

Multi-brand React design system with design tokens from Figma

185 lines (162 loc) 5.09 kB
/* Base FileUpload */ .ds-file-upload { display: flex; flex-direction: column; gap: var(--size3, 12px); -webkit-font-smoothing: antialiased; width: 100%; } /* Label */ .ds-file-upload__label { font-family: var(--body-small-fontFamily, var(--font-family, 'Satoshi', sans-serif)); font-size: var(--body-small-fontSize, 14px); font-weight: var(--body-small-fontWeight, 400); line-height: var(--body-small-lineHeight, 150%); color: var(--semantic-text-corp-primary); } /* Dropzone */ .ds-file-upload__dropzone { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--size3, 12px); padding: var(--size8, 64px) var(--size6, 32px); background-color: var(--text-field-bg-default); border: 2px dashed var(--text-field-border-default); border-radius: var(--br-sm, 8px); cursor: pointer; transition: all 0.2s ease-in-out; position: relative; } .ds-file-upload__dropzone:hover:not(.ds-file-upload--disabled .ds-file-upload__dropzone) { border-color: var(--text-field-border-hover); background-color: var(--dropdown-bg-hover); } .ds-file-upload__dropzone--dragging { border-color: var(--text-field-border-focus); background-color: var(--dropdown-bg-active); } /* Hidden input */ .ds-file-upload__input { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; } /* Icon */ .ds-file-upload__icon { color: var(--semantic-icon-default-default); display: flex; align-items: center; justify-content: center; } /* Text */ .ds-file-upload__text { display: flex; flex-direction: column; align-items: center; gap: var(--size1, 4px); text-align: center; } .ds-file-upload__primary-text { font-family: var(--body-regular-fontFamily, var(--font-family, 'Satoshi', sans-serif)); font-size: var(--body-regular-fontSize, 16px); font-weight: var(--body-regular-fontWeight, 400); line-height: var(--body-regular-lineHeight, 150%); color: var(--semantic-text-corp-primary); } .ds-file-upload__link-text { font-family: var(--body-regular-fontFamily, var(--font-family, 'Satoshi', sans-serif)); font-size: var(--body-regular-fontSize, 16px); font-weight: var(--body-regular-fontWeight, 400); line-height: var(--body-regular-lineHeight, 150%); color: var(--semantic-text-indigo-primary); text-decoration: underline; } /* Hint */ .ds-file-upload__hint { font-family: var(--body-small-fontFamily, var(--font-family, 'Satoshi', sans-serif)); font-size: var(--body-small-fontSize, 14px); font-weight: var(--body-small-fontWeight, 400); line-height: var(--body-small-lineHeight, 150%); color: var(--semantic-text-corp-secondary); text-align: center; } /* Files list */ .ds-file-upload__files { display: flex; flex-direction: column; gap: var(--size2, 8px); } .ds-file-upload__file { display: flex; align-items: center; gap: var(--size3, 12px); padding: var(--size3, 12px); background-color: var(--semantic-bg-surface-default); border: 1px solid var(--semantic-border-default-default); border-radius: var(--br-xs, 4px); } .ds-file-upload__file-icon { color: var(--semantic-icon-default-default); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .ds-file-upload__file-info { flex: 1; min-width: 0; } .ds-file-upload__file-name { font-family: var(--body-regular-fontFamily, var(--font-family, 'Satoshi', sans-serif)); font-size: var(--body-regular-fontSize, 16px); font-weight: var(--body-regular-fontWeight, 400); line-height: var(--body-regular-lineHeight, 150%); color: var(--semantic-text-corp-primary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .ds-file-upload__file-size { font-family: var(--body-small-fontFamily, var(--font-family, 'Satoshi', sans-serif)); font-size: var(--body-small-fontSize, 14px); font-weight: var(--body-small-fontWeight, 400); line-height: var(--body-small-lineHeight, 150%); color: var(--semantic-text-corp-secondary); } /* Helper */ .ds-file-upload__helper { font-family: var(--body-small-fontFamily, var(--font-family, 'Satoshi', sans-serif)); font-size: var(--body-small-fontSize, 14px); font-weight: var(--body-small-fontWeight, 400); line-height: var(--body-small-lineHeight, 150%); color: var(--semantic-text-corp-secondary); } /* Error */ .ds-file-upload--error .ds-file-upload__dropzone { border-color: var(--text-field-border-error); } .ds-file-upload--error .ds-file-upload__helper { color: var(--semantic-text-error); } /* Disabled */ .ds-file-upload--disabled .ds-file-upload__dropzone { background-color: var(--text-field-bg-disabled); cursor: not-allowed; opacity: 0.6; } .ds-file-upload--disabled .ds-file-upload__label, .ds-file-upload--disabled .ds-file-upload__primary-text, .ds-file-upload--disabled .ds-file-upload__link-text { color: var(--semantic-text-corp-disabled); } .ds-file-upload--disabled .ds-file-upload__icon { color: var(--semantic-icon-default-disabled); }