Logo

dev-resources.site

for different kinds of informations.

5 dicas de design de um front-end pra UI Designers

Published at
11/29/2024
Categories
beginners
braziliandevs
ui
uidesign
Author
lixeletto
Author
9 person written this
lixeletto
open
5 dicas de design de um front-end pra UI Designers

Trabalho como front-end há mais de 5 anos e minhas interações com pessoas de produto sempre me trouxeram percepções muito ricas de como o planejamento e criação interagem com o desenvolvimento.

Nesse artigo eu trago 5 pontos cruciais do que aprendi nessas interações.

1º Dica - Entre um breakpoint e outro, sempre manipule os elementos proporcionalmente

Nos breakpoints desktop, tablet e mobile o quadrado no centro fica 20% menor, mas e numa tela 545 x 1017px de dimensão?

Se você teve que fazer uma regra de 3 pra descobrir, saiba que no front-end tem que fazer a mesma coisa pra manter a proporção nos breakpoints que você não declara.

Prefira diminuir ou aumentar valores sem usar números mágicos, isso torna possível calcular o aspecto do componente proporcionalmente com base em qualquer dimensão de tela.

4 frames do figma com tamanhos diferentes, o primeiro é de um macbook air, o segundo de um ipad pro, o terceiro tem altura e largura arbitrários e o último é um iphone 16

No exemplo abaixo o padding (espaçamento interno) das variantes de tamanho dos botões abaixo aumenta em 4px entre si, isso faz com que possamos declarar algo como:

.btn {
  padding: calc(
    var(--btn-base-size) + (
      var(--btn-increment) * var(--btn-size-index)
    )
  );
}
Enter fullscreen mode Exit fullscreen mode

Essa expressão equivale à soma do tamanho base do padding do botão (8px) à 4 vezes o índice do tamanho do botão (0 - small, 1 - regular, 2 - large). Pensando em um botão do tipo large, seria 8 + (4 * 2) = 16.

Isso é útil pro desenvolvimento pois uma mudança na proporção geraria apenas uma alteração no código, incluir uma nova variante seria apenas incluir um novo índice. O mesmo layout pode ter por debaixo um código muito ou pouquíssimo resiliente, as decisões de layout que pessoas designers tomam são capazes de afetar nosso leque de opções.

2º Dica - Existem definições de acessibilidade pra textos, evite tomar essas decisões por estética

O tamanho mínimo indicado pra fontes de corpo de texto é 16px, o que pode parecer pequeno ao se desenvolver em frames maiores, levando designers menos experientes a criar componentes ou blocos de texto maiores do que o necessário.

Além do tamanho da fonte, temos padrões de altura de linha, largura de texto, contraste de figura e fundo e zoom. Esses padrões nos ajudam a criar layouts que funcionam pra todas as pessoas, não só as videntes neurotípicas.

No critério de sucesso 1.4.8 (Apresentação visual) da WCAG (em inglês) temos alguns exemplos de formatos que facilitam a legibilidade pra pessoas com deficiências cognitivas ou baixa visão, tradução livre:

  • A largura total dos glifos não pode superar 80 caracteres (40 se caracteres CJK - Chinês, Japonês ou Coreano).
  • O texto não pode estar no formato justificado (alinhado nas margens da direita e da esquerda).
  • O espaçamento de linha (leading) é pelo menos "um espaço e meio" em parágrafos, e a distância entre parágrafos deve ser 1.5x maior que o espaçamento da linha.

Outro ponto é que pra web é melhor que as escalas de fontes sigam padrões compreensíveis. A escala de múltiplos de 4px por exemplo é útil pra adequação em dispositivos retina, mas também pra pessoas do front-end declararem rems sem números mágicos.

Abaixo, um artigo do Zack MacTavish sobre o grid system de 8px, em inglês.

Deixem o golden ratio pro design gráfico, por favor!

3º Dica - Não nomeiem seus tokens de forma arbitrária

Por exemplo, tokens de cor com nomes como deep-pink ou brand-grey não definem o contexto da aplicação (fill, background, border, etc), não indicam o estado que os utiliza (default, active, hover, pressed, etc).

Padrão de nomenclatura de tokens do Nathan Curtis, link em inglês<br>
https://medium.com/eightshapes-llc/naming-tokens-in-design-systems-9e86c7444676

Essas convenções permitem que criemos melhores tokens na aplicação sem precisar constantemente consultar o Figma ou zero-height pra saber pra que serve ou qual aplicação desses tokens.

Eles serem agnósticos de cor é importante pra possibilitar dark mode ou white label precisar "traduzi-los".

Um exemplo dessa tradução pra dark mode é a lib de CSS Open Props.

Theming na documentação do open props. Nesse trecho a documentação descreve o uso de variáveis de cor, ex: orange-6 ou purple-1 em variáveis de contexto como text-1-light ou surface-1-dark

Supondo que a aplicação tem dark mode, se criássemos apenas tokens de cor como purple-200 ou orange-light, faria sentido substituir esses mesmos tokens por uma cor mais escura ou diferente?
Quando criamos tokens referentes a contexto e estado é pra evitar a perda de semântica de tokens específicos.

Imagem do artigo design tokens cheatsheet de oscar gonzales no medium
Design tokens cheatsheet, Oscar Gonzales - 2021, em inglês

4ª Dica - Evitem criar experiências de leitura diferentes do desktop pro mobile

A decisão de reorganizar ou sumir com elementos nos breakpoints menores não pode ser arbitrária. Sua hierarquia visual só é útil pra pessoas videntes, mais gente do que você imagina vai ler o site como texto ou navegar ele através do teclado.

Uma sequência de conteúdo com significado é um dos pilares mais básicos de uma boa acessibilidade e isso é problema seu também, designer. Critério de sucesso 1.3.2, Sequência com significado, da WCAG (em inglês).

A experiência mobile precisa mudar? Experimente ler seu layout como um texto corrido, esse copy ainda precisa fazer sentido!

5ª Dica - Texto alternativo e contraste é problema de designer também

Toda imagem que vem sem indicação de texto alternativo ou todo botão de ícone que vem sem label da ação é um momento que uma pessoa desenvolvedora precisa atuar como UX Writer.

Guia do HandTalk sobre a escrita de textos alternativos

Não esqueçam que todo problema de contraste começa no Figma primeiro!


Cês adicionariam alguma dica aqui? Tem algo que não faz sentido? Bora conversar!

uidesign Article's
30 articles in total
Favicon
Ship mobile apps faster with React-Native-Blossom-UI
Favicon
How Thoughtful UI/UX Design Drives Digital Success (And Why Your Brand Needs It)
Favicon
How I built UI-Forest: Ui-Library
Favicon
UI Design Trends: Exploring Modern Aesthetics
Favicon
Color Theory in UI Design
Favicon
The Basics of UI vs UX
Favicon
iPhone 16 Mockup for Figma
Favicon
If the setting is missing, add it yourself
Favicon
16 Free Resources You Should Know for Design Inspiration
Favicon
The Power of Design Systems: How to Create and Maintain a Consistent Design Language
Favicon
Designing Beautiful Dashboard Layouts with Tailwind CSS
Favicon
Navigating the Web Development Landscape: Finding Your Role
Favicon
Como o Figma Virou Parte do Meu Dia a Dia no Front-End
Favicon
Building Modern Websites and Managing Online Presence with Expertise in Magento, WordPress, & Shopify
Favicon
UI/UX Testing: Why It’s Important for Your Project
Favicon
Domina el arte de la personalización en Ionic: Crea paletas de colores únicas paso a paso
Favicon
This API Client Has A Brilliant Landing Page Trick
Favicon
Discover the 9 Best Open-Source Alternatives to Postman
Favicon
5 Tips to improve your UI Designs
Favicon
Transform Digital Platforms with Custom UI/UX Design Solutions
Favicon
Top 10 Books on Design System that i Read last year
Favicon
Tailwind tip: Managing a long list of utility classes in a single line of code
Favicon
Why Wireframing Matters in UI/UX Design
Favicon
Secrets to Designing a Great API
Favicon
Streamline Your API Design Workflow: Using Schemas with EchoAPI
Favicon
EchoAPI vs. Postman: Why EchoAPI is the Superior Choice for API Management
Favicon
Desizen: Empowering Designers with Practical UI/UX Challenges Introduction
Favicon
5 dicas de design de um front-end pra UI Designers
Favicon
Biometrics and Security: Designing for Trust in Web and Mobile Apps
Favicon
Touch-Friendly UI Design: Best Practices to Ensure Seamless Mobile Interactions

Featured ones: