Avatar Editor

Função
Esta molécula foi desenhada para suportar o upload de uma imagem de avatar principalmente durante o cadastro de um usuário. A recomendação é utilizá-la sozinha em uma tela, sem inputs adicionais.
Estrutura Básica

Espaçamentos
- horizontalMargin, como Margem Lateral
- verticalMargin, como Margens Superior e Inferior.
Átomos
- Átomo Avatar
- Átomo Button, como Botão 1
- Átomo Button, como Botão 2
- Átomo LabelButton, como Botão 3
Prop-Token Mapping
Props da Molécula
| Prop | Token | Default Value | Use |
|---|---|---|---|
| horizontalMargin | SpacingWide | 64 | 1 |
| verticalMargin | SpacingBase | 8 | 2 |
| avatarBaseProps | - | - | 4 |
| firstButtonBaseProps | - | - | 5 |
| secondButtonBaseProps | - | - | 6 |
| labelButtoBaseProps | - | - | 7 |
imageBaseProps
| Prop | Token | Default Value |
|---|---|---|
| size | SizeAvatarListLarge | 64 |
| borderColor | ColorPrimary | #A94CC9 |
| borderRadius | BorderRadiusAvatar | 32 |
| borderWidth | BorderWidthAvatar | 0 |
buttonBaseProps
Os tokens utilizados nos botões 1 e 2 são os mesmos, o que muda neles é o tipo: o botão 1 é regular e o 2 é outlined.
| buttonBaseProps | Token | Default Value |
|---|---|---|
| borderColor | ColorPrimary | #A94CC9 |
| borderRadius | BorderRadiusButton | 10 |
| borderWidth | BorderWidthButton | 1 |
| buttonColor | ColorPrimary | #A94CC9 |
| buttonHeight | HeightButtonBase | 32 |
| fontFamily | FontFamilyBase | undefined |
| fontSize | FontSizeButton | 12 |
| fontWeight | FontWeightStrong | Bold (700) |
| textCase | TextCaseButton | Uppercase |
| textColorRegular | ColorComplementary | #FFFFFF |
| textColorOutlined | ColorPrimary | #A94CC9 |
| disabledOpacity | OpacityDisabled | 0.3 |
| iconSize | SizeButtonIcon | 24 |
| iconPadding | SpacingBase | 8 |
labelButtonBaseProps
| labelBaseProps | Token | Default Value |
|---|---|---|
| fontFamily | FontFamilyButton | SF Pro Display / Robot |
| fontSize | FontSizeButton | 12 |
| fontWeight | FontWeightBold | Bold (700) |
| lineHeight | LineHeightBase | 20 |
| multilineLimit | MultilineLimitButton | 1 |
| textAlign | TextAlignmentButton | Center |
| textCase | TextCaseButton | Uppercase |
| textColor | ColorPrimary | #A94CC9 |
| opacity | OpacityDisabled | 0.3 |
Conteúdo
As possibilidades de conteúdo do botão são:
- Source: imagem do avatar
- Icon (firstButtonIcon e secondButtonIcon)
- Text (firstButtonText, secondButtonText e labelButtonText)
Tipos e Casos de Uso
Dois Botões
A molécula original é a que apresenta os 2 Botões.

Três Botões
Comportamento apresentado após a seleção da imagem.

Condensed

Esta variação foi desenhada para ser utilizada em telas que edição de perfil, juntamente com outros inputs de formulário. Ela tem a mesma função das outras, mas comporta somente um botão de editar imagem.
Existem algumas mudanças estruturais na molécula, apontadas abaixo:

Espaçamentos
- horizontalMarginAvatar, como Margem Lateral Avatar
- horizontalMarginButton, como Margem Lateral Botão
- verticalMargin, como Margens Superior e Inferior
Átomos
- Átomo Avatar
- Átomo Button
Prop-Token Mapping
Props da Molécula
| Prop | Token | Default Value | Use |
|---|---|---|---|
| horizontalMarginAvatar | SpacingInput | 24 | 1 |
| horizontarMarginButton | SpacingButton | 24 | 2 |
| verticalMargin | SpacingBase | 8 | 3 |
| avatarBaseProps | - | - | 4 |
| buttonBaseProps | - | - | 5 |
avatarBaseProps
| Prop | Token | Default Value |
|---|---|---|
| size | SizeAvatarListLarge | 64 |
| borderColor | ColorPrimary | #A94CC9 |
| borderRadius | BorderRadiusAvatar | 32 |
| borderWidth | BorderWidthAvatar | 0 |
buttonBaseProps
| buttonBaseProps | Token | Default Value |
|---|---|---|
| borderColor | ColorPrimary | #A94CC9 |
| borderRadius | BorderRadiusButton | 10 |
| borderWidth | BorderWidthButton | 1 |
| buttonColor | ColorPrimary | #A94CC9 |
| buttonHeight | HeightButtonBase | 32 |
| fontFamily | FontFamilyBase | undefined |
| fontSize | FontSizeButton | 12 |
| fontWeight | FontWeightStrong | Bold (700) |
| textCase | TextCaseButton | Uppercase |
| textColorRegular | ColorComplementary | #FFFFFF |
| textColorOutlined | ColorPrimary | #A94CC9 |
| disabledOpacity | OpacityDisabled | 0.3 |
| iconSize | SizeButtonIcon | 24 |
| iconPadding | SpacingBase | 8 |
Estados
A molécula não apresenta estados por si só. Observar os estados das moléculas Button (aqui) e Label Button (aqui). Eles se aplicam aos átomos desta molécula.
Responsividade
Conteúdo

Não recomendamos o uso de um texto longo no Text Label dos Botões. Estes devem conter instruções precisas e sucintas. No caso de um texto longo demais, este ganha reticências, o que prejudica a Experiência do Usuário.
Tamanho da Tela

Quando se reduz o tamanho da tela, os Botões diminuem junto, mantendo-se fixos os Horizontal Spacings. No caso extremo de uma tela muito pequena para o Text Label do Botão, este ganha reticências (observar com cuidado o conteúdo desta Label). O Átomo de Avatar mantém um tamanho fixo no centro da tela, sempre.
