Consistency matters, they say...https://abs.twimg.com/emoji/v2/... draggable="false" alt="🤔" title="Denkendes Gesicht" aria-label="Emoji: Denkendes Gesicht">

Starting from today, I& #39;ll post one UI tip per day for the next 50 days!

Follow this thread https://abs.twimg.com/emoji/v2/... draggable="false" alt="👇" title="Rückhand Zeigefinger nach unten" aria-label="Emoji: Rückhand Zeigefinger nach unten">

https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #01 - Set the fixed width of your buttons if they have a loading state

Otherwise, they& #39;ll shrink when loading, and it looks terrible.
Consistency matters, they say...https://abs.twimg.com/emoji/v2/... draggable=Starting from today, I& #39;ll post one UI tip per day for the next 50 days!Follow this thread https://abs.twimg.com/emoji/v2/... draggable="false" alt="👇" title="Rückhand Zeigefinger nach unten" aria-label="Emoji: Rückhand Zeigefinger nach unten">https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #01 - Set the fixed width of your buttons if they have a loading stateOtherwise, they& #39;ll shrink when loading, and it looks terrible." title="Consistency matters, they say...https://abs.twimg.com/emoji/v2/... draggable="false" alt="🤔" title="Denkendes Gesicht" aria-label="Emoji: Denkendes Gesicht">Starting from today, I& #39;ll post one UI tip per day for the next 50 days!Follow this thread https://abs.twimg.com/emoji/v2/... draggable="false" alt="👇" title="Rückhand Zeigefinger nach unten" aria-label="Emoji: Rückhand Zeigefinger nach unten">https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #01 - Set the fixed width of your buttons if they have a loading stateOtherwise, they& #39;ll shrink when loading, and it looks terrible." class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #02 - Don& #39;t hide tips if it& #39;s unnecessary

Developers tend to hide tips under icons/tooltips/popups.

In this case, your users will be forced to hover every icon to read the tip.

It& #39;d be better to show tips right away, if possible. https://abs.twimg.com/emoji/v2/... draggable="false" alt="😊" title="Lächelndes Gesicht mit lächelnden Augen" aria-label="Emoji: Lächelndes Gesicht mit lächelnden Augen">
https://abs.twimg.com/emoji/v2/... draggable=Tip #02 - Don& #39;t hide tips if it& #39;s unnecessaryDevelopers tend to hide tips under icons/tooltips/popups.In this case, your users will be forced to hover every icon to read the tip.It& #39;d be better to show tips right away, if possible. https://abs.twimg.com/emoji/v2/... draggable="false" alt="😊" title="Lächelndes Gesicht mit lächelnden Augen" aria-label="Emoji: Lächelndes Gesicht mit lächelnden Augen">" title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #02 - Don& #39;t hide tips if it& #39;s unnecessaryDevelopers tend to hide tips under icons/tooltips/popups.In this case, your users will be forced to hover every icon to read the tip.It& #39;d be better to show tips right away, if possible. https://abs.twimg.com/emoji/v2/... draggable="false" alt="😊" title="Lächelndes Gesicht mit lächelnden Augen" aria-label="Emoji: Lächelndes Gesicht mit lächelnden Augen">" class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #05 - Avoid Z-Patterns

https://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> First case: the eye moves in a "Z" pattern, increasing cognitive load.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Second case: the eye moves almost by a straight line, much better.

It& #39;s still better to use one-column layout thought. But if you use 2 columns, take this into account.
https://abs.twimg.com/emoji/v2/... draggable= Tip #05 - Avoid Z-Patternshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> First case: the eye moves in a "Z" pattern, increasing cognitive load.https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Second case: the eye moves almost by a straight line, much better.It& #39;s still better to use one-column layout thought. But if you use 2 columns, take this into account." title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #05 - Avoid Z-Patternshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> First case: the eye moves in a "Z" pattern, increasing cognitive load.https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Second case: the eye moves almost by a straight line, much better.It& #39;s still better to use one-column layout thought. But if you use 2 columns, take this into account." class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #06 - Pay attention to heading margins in text

Quite a common mistake is having the wrong margin between two paragraphs.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> In the first case, it& #39;s not obvious which paragraph the heading belongs to

Take a look at this gestalt law: https://twitter.com/vponamariov/status/1367117054663413762">https://twitter.com/vponamari...
https://abs.twimg.com/emoji/v2/... draggable=Tip #06 - Pay attention to heading margins in textQuite a common mistake is having the wrong margin between two paragraphs.https://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> In the first case, it& #39;s not obvious which paragraph the heading belongs toTake a look at this gestalt law: https://twitter.com/vponamari..." title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #06 - Pay attention to heading margins in textQuite a common mistake is having the wrong margin between two paragraphs.https://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> In the first case, it& #39;s not obvious which paragraph the heading belongs toTake a look at this gestalt law: https://twitter.com/vponamari..." class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #07 - Make it easy to copy things to the clipboard

It might be inconvenient for users to copy such things as URLs, tokens, etc. They might be using a touchpad or mobile phone.

The solution is: add a copy button https://abs.twimg.com/emoji/v2/... draggable="false" alt="😌" title="Erleichtertes Gesicht" aria-label="Emoji: Erleichtertes Gesicht">

The fewer actions required => The happier user is
https://abs.twimg.com/emoji/v2/... draggable=Tip #07 - Make it easy to copy things to the clipboardIt might be inconvenient for users to copy such things as URLs, tokens, etc. They might be using a touchpad or mobile phone.The solution is: add a copy button https://abs.twimg.com/emoji/v2/... draggable="false" alt="😌" title="Erleichtertes Gesicht" aria-label="Emoji: Erleichtertes Gesicht">The fewer actions required => The happier user is" title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #07 - Make it easy to copy things to the clipboardIt might be inconvenient for users to copy such things as URLs, tokens, etc. They might be using a touchpad or mobile phone.The solution is: add a copy button https://abs.twimg.com/emoji/v2/... draggable="false" alt="😌" title="Erleichtertes Gesicht" aria-label="Emoji: Erleichtertes Gesicht">The fewer actions required => The happier user is" class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #09 - Scroll the user to the first failed input in big forms on submit

Sometimes the form is so long that it doesn& #39;t fit the screen.

The user clicks the submit button and nothing happens for him. https://abs.twimg.com/emoji/v2/... draggable="false" alt="🤷‍♂️" title="Achselzuckender Mann" aria-label="Emoji: Achselzuckender Mann">

It& #39;s a good idea to scroll him to the first error instead https://abs.twimg.com/emoji/v2/... draggable="false" alt="☺️" title="Lächelndes Gesicht" aria-label="Emoji: Lächelndes Gesicht">
https://abs.twimg.com/emoji/v2/... draggable=Tip #09 - Scroll the user to the first failed input in big forms on submitSometimes the form is so long that it doesn& #39;t fit the screen.The user clicks the submit button and nothing happens for him. https://abs.twimg.com/emoji/v2/... draggable="false" alt="🤷‍♂️" title="Achselzuckender Mann" aria-label="Emoji: Achselzuckender Mann">It& #39;s a good idea to scroll him to the first error instead https://abs.twimg.com/emoji/v2/... draggable="false" alt="☺️" title="Lächelndes Gesicht" aria-label="Emoji: Lächelndes Gesicht">" title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #09 - Scroll the user to the first failed input in big forms on submitSometimes the form is so long that it doesn& #39;t fit the screen.The user clicks the submit button and nothing happens for him. https://abs.twimg.com/emoji/v2/... draggable="false" alt="🤷‍♂️" title="Achselzuckender Mann" aria-label="Emoji: Achselzuckender Mann">It& #39;s a good idea to scroll him to the first error instead https://abs.twimg.com/emoji/v2/... draggable="false" alt="☺️" title="Lächelndes Gesicht" aria-label="Emoji: Lächelndes Gesicht">" class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #10 - Watch your table borders

https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Don& #39;t use #000!

https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">For small tables, you can even omit borders by increasing space between rows.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">For large tables, you& #39;ll need some kind of divider: striped rows or borders

https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">No need for having border over the whole table
https://abs.twimg.com/emoji/v2/... draggable=Tip #10 - Watch your table bordershttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Don& #39;t use #000!https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">For small tables, you can even omit borders by increasing space between rows.https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">For large tables, you& #39;ll need some kind of divider: striped rows or bordershttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">No need for having border over the whole table" title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #10 - Watch your table bordershttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Don& #39;t use #000!https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">For small tables, you can even omit borders by increasing space between rows.https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">For large tables, you& #39;ll need some kind of divider: striped rows or bordershttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">No need for having border over the whole table" class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #13 - Limit the line length of your text

https://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> If the text is too wide our eyes move in "Z-pattern"

https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Limit your line length to ~50-60 characters for better readability.

Not a strict rule though, just make sure it& #39;s easy to read
https://abs.twimg.com/emoji/v2/... draggable=Tip #13 - Limit the line length of your texthttps://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> If the text is too wide our eyes move in "Z-pattern" https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Limit your line length to ~50-60 characters for better readability. Not a strict rule though, just make sure it& #39;s easy to read" title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #13 - Limit the line length of your texthttps://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> If the text is too wide our eyes move in "Z-pattern" https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Limit your line length to ~50-60 characters for better readability. Not a strict rule though, just make sure it& #39;s easy to read" class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #14 - Don& #39;t hide password rules

https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">If you have 1-2 password rules, display them right away somewhere near the input

https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">If you have complex rules, then make sure that while the user types his password, you highlight satisfied rules
https://abs.twimg.com/emoji/v2/... draggable=Tip #14 - Don& #39;t hide password ruleshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">If you have 1-2 password rules, display them right away somewhere near the inputhttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">If you have complex rules, then make sure that while the user types his password, you highlight satisfied rules" title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #14 - Don& #39;t hide password ruleshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">If you have 1-2 password rules, display them right away somewhere near the inputhttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">If you have complex rules, then make sure that while the user types his password, you highlight satisfied rules" class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #15 - Require fewer fields

Remember: every form is a barrier for users https://abs.twimg.com/emoji/v2/... draggable="false" alt="🚧" title="Baustellenschild" aria-label="Emoji: Baustellenschild">

The less effort we ask from the user, the more willingly he& #39;ll make it.

We can skip names, phone numbers, email/password confirmations.

We can even skip the password and generate it instead!
https://abs.twimg.com/emoji/v2/... draggable=Tip #15 - Require fewer fieldsRemember: every form is a barrier for users https://abs.twimg.com/emoji/v2/... draggable="false" alt="🚧" title="Baustellenschild" aria-label="Emoji: Baustellenschild"> The less effort we ask from the user, the more willingly he& #39;ll make it. We can skip names, phone numbers, email/password confirmations. We can even skip the password and generate it instead!" title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #15 - Require fewer fieldsRemember: every form is a barrier for users https://abs.twimg.com/emoji/v2/... draggable="false" alt="🚧" title="Baustellenschild" aria-label="Emoji: Baustellenschild"> The less effort we ask from the user, the more willingly he& #39;ll make it. We can skip names, phone numbers, email/password confirmations. We can even skip the password and generate it instead!" class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #16 - Use tick icons

People don& #39;t read long texts on landing pageshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🙅‍♂️" title="Mann gestikuliert „Nicht OK“" aria-label="Emoji: Mann gestikuliert „Nicht OK“">

Instead, they scan it. Usually without spending much time. So you don& #39;t have many chances to hook people& #39;s attention.

Ticks help a lot to make the landing more scannable.
https://abs.twimg.com/emoji/v2/... draggable=Tip #16 - Use tick iconsPeople don& #39;t read long texts on landing pageshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🙅‍♂️" title="Mann gestikuliert „Nicht OK“" aria-label="Emoji: Mann gestikuliert „Nicht OK“">Instead, they scan it. Usually without spending much time. So you don& #39;t have many chances to hook people& #39;s attention.Ticks help a lot to make the landing more scannable." title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #16 - Use tick iconsPeople don& #39;t read long texts on landing pageshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🙅‍♂️" title="Mann gestikuliert „Nicht OK“" aria-label="Emoji: Mann gestikuliert „Nicht OK“">Instead, they scan it. Usually without spending much time. So you don& #39;t have many chances to hook people& #39;s attention.Ticks help a lot to make the landing more scannable." class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #17 - Don& #39;t use many primary buttons

https://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> Having few primary buttons distracts users. They have to spend some time focusing their attention on the most important action

https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Use one primary button per page. One page. One form. One primary action.
https://abs.twimg.com/emoji/v2/... draggable=Tip #17 - Don& #39;t use many primary buttonshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> Having few primary buttons distracts users. They have to spend some time focusing their attention on the most important actionhttps://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Use one primary button per page. One page. One form. One primary action." title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #17 - Don& #39;t use many primary buttonshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> Having few primary buttons distracts users. They have to spend some time focusing their attention on the most important actionhttps://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Use one primary button per page. One page. One form. One primary action." class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #19 - Stripe tables with big data sets

https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">For small tables, you can remove borders/striping to reduce visual noise

https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">For big tables, it becomes hard to scan rows. So a divider or a zebra striping help users. Don& #39;t stripe small tables though!
https://abs.twimg.com/emoji/v2/... draggable=Tip #19 - Stripe tables with big data setshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">For small tables, you can remove borders/striping to reduce visual noisehttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">For big tables, it becomes hard to scan rows. So a divider or a zebra striping help users. Don& #39;t stripe small tables though!" title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #19 - Stripe tables with big data setshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">For small tables, you can remove borders/striping to reduce visual noisehttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">For big tables, it becomes hard to scan rows. So a divider or a zebra striping help users. Don& #39;t stripe small tables though!" class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #20 - Make links look like links

My favorite example: https://twitter.com/vponamariov/status/1374391016178946060

Could">https://twitter.com/vponamari... you find the link? https://abs.twimg.com/emoji/v2/... draggable="false" alt="🧐" title="Gesicht mit Monokel" aria-label="Emoji: Gesicht mit Monokel">

In menus/headers/etc it& #39;s usually easy to find them.

But in some places (especially texts) people sometimes really make them hard to notice.
https://abs.twimg.com/emoji/v2/... draggable=Tip #20 - Make links look like linksMy favorite example: https://twitter.com/vponamari... you find the link? https://abs.twimg.com/emoji/v2/... draggable="false" alt="🧐" title="Gesicht mit Monokel" aria-label="Emoji: Gesicht mit Monokel">In menus/headers/etc it& #39;s usually easy to find them.But in some places (especially texts) people sometimes really make them hard to notice." title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne">Tip #20 - Make links look like linksMy favorite example: https://twitter.com/vponamari... you find the link? https://abs.twimg.com/emoji/v2/... draggable="false" alt="🧐" title="Gesicht mit Monokel" aria-label="Emoji: Gesicht mit Monokel">In menus/headers/etc it& #39;s usually easy to find them.But in some places (especially texts) people sometimes really make them hard to notice." class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #21 - Don’t use dots for swiping gallery images

https://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> Dots are hard to hit. Check out Fitt’s law.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Use controls that are easy to interact with.

Big rectangles with arrows, thumbnails, parts of prev/next pictures.

It should be easy to hit controls, that& #39;s it.
https://abs.twimg.com/emoji/v2/... draggable= Tip #21 - Don’t use dots for swiping gallery imageshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> Dots are hard to hit. Check out Fitt’s law.https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Use controls that are easy to interact with. Big rectangles with arrows, thumbnails, parts of prev/next pictures.It should be easy to hit controls, that& #39;s it." title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #21 - Don’t use dots for swiping gallery imageshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> Dots are hard to hit. Check out Fitt’s law.https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Use controls that are easy to interact with. Big rectangles with arrows, thumbnails, parts of prev/next pictures.It should be easy to hit controls, that& #39;s it." class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #23 - Consider removing borders

Developers tend to put borders everywhere to visually separate blocks.

But having many borders doesn& #39;t look great. https://abs.twimg.com/emoji/v2/... draggable="false" alt="🙄" title="Gesicht mit rollenden Augen" aria-label="Emoji: Gesicht mit rollenden Augen">

You can use backgrounds or shadows to reduce visual clutter and make the UI feels lighter.
https://abs.twimg.com/emoji/v2/... draggable= Tip #23 - Consider removing bordersDevelopers tend to put borders everywhere to visually separate blocks.But having many borders doesn& #39;t look great. https://abs.twimg.com/emoji/v2/... draggable="false" alt="🙄" title="Gesicht mit rollenden Augen" aria-label="Emoji: Gesicht mit rollenden Augen">You can use backgrounds or shadows to reduce visual clutter and make the UI feels lighter." title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #23 - Consider removing bordersDevelopers tend to put borders everywhere to visually separate blocks.But having many borders doesn& #39;t look great. https://abs.twimg.com/emoji/v2/... draggable="false" alt="🙄" title="Gesicht mit rollenden Augen" aria-label="Emoji: Gesicht mit rollenden Augen">You can use backgrounds or shadows to reduce visual clutter and make the UI feels lighter." class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #29 - Help users to fill your forms

Validation is cool, but have you tried making it so simple that users fill the form on the first try?

You can help them

https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Provide masks
https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Pre-fill data if possible (e.g. current date)
https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Provide hints in advance
https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Autocomplete controls
https://abs.twimg.com/emoji/v2/... draggable= Tip #29 - Help users to fill your formsValidation is cool, but have you tried making it so simple that users fill the form on the first try?You can help themhttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Provide maskshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Pre-fill data if possible (e.g. current date)https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Provide hints in advancehttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Autocomplete controls" title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #29 - Help users to fill your formsValidation is cool, but have you tried making it so simple that users fill the form on the first try?You can help themhttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Provide maskshttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Pre-fill data if possible (e.g. current date)https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Provide hints in advancehttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Autocomplete controls" class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #30 - Set reasonable width of inputs

The width of inputs can help users understand what type of content you& #39;re asking for.

You don& #39;t have to fill the whole available space https://abs.twimg.com/emoji/v2/... draggable="false" alt="🙅‍♂️" title="Mann gestikuliert „Nicht OK“" aria-label="Emoji: Mann gestikuliert „Nicht OK“">

Along with grouping related inputs inline, you can make the form look much better
https://abs.twimg.com/emoji/v2/... draggable= Tip #30 - Set reasonable width of inputsThe width of inputs can help users understand what type of content you& #39;re asking for.You don& #39;t have to fill the whole available space https://abs.twimg.com/emoji/v2/... draggable="false" alt="🙅‍♂️" title="Mann gestikuliert „Nicht OK“" aria-label="Emoji: Mann gestikuliert „Nicht OK“">Along with grouping related inputs inline, you can make the form look much better" title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #30 - Set reasonable width of inputsThe width of inputs can help users understand what type of content you& #39;re asking for.You don& #39;t have to fill the whole available space https://abs.twimg.com/emoji/v2/... draggable="false" alt="🙅‍♂️" title="Mann gestikuliert „Nicht OK“" aria-label="Emoji: Mann gestikuliert „Nicht OK“">Along with grouping related inputs inline, you can make the form look much better" class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #32 - Don& #39;t hide input labels

Placeholders don& #39;t replace labels. https://abs.twimg.com/emoji/v2/... draggable="false" alt="🙅‍♂️" title="Mann gestikuliert „Nicht OK“" aria-label="Emoji: Mann gestikuliert „Nicht OK“">

When the user entered something in an input, the placeholder disappears leaving the user without no clue what the field means.

An only exception is maybe a login form with only two inputs.
https://abs.twimg.com/emoji/v2/... draggable= Tip #32 - Don& #39;t hide input labelsPlaceholders don& #39;t replace labels. https://abs.twimg.com/emoji/v2/... draggable="false" alt="🙅‍♂️" title="Mann gestikuliert „Nicht OK“" aria-label="Emoji: Mann gestikuliert „Nicht OK“">When the user entered something in an input, the placeholder disappears leaving the user without no clue what the field means.An only exception is maybe a login form with only two inputs." title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #32 - Don& #39;t hide input labelsPlaceholders don& #39;t replace labels. https://abs.twimg.com/emoji/v2/... draggable="false" alt="🙅‍♂️" title="Mann gestikuliert „Nicht OK“" aria-label="Emoji: Mann gestikuliert „Nicht OK“">When the user entered something in an input, the placeholder disappears leaving the user without no clue what the field means.An only exception is maybe a login form with only two inputs." class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #37 - Don& #39;t forget that the data can be large

It& #39;s a VERY common issue when data overflows its container.

There is no single approach to this.

You can:

https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Use dots (text-ellipsis)
https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Use "Show more" expanders
https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Hide some data under tooltips, icons

and so on.
https://abs.twimg.com/emoji/v2/... draggable= Tip #37 - Don& #39;t forget that the data can be largeIt& #39;s a VERY common issue when data overflows its container.There is no single approach to this. You can:https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Use dots (text-ellipsis)https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Use "Show more" expandershttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Hide some data under tooltips, iconsand so on." title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #37 - Don& #39;t forget that the data can be largeIt& #39;s a VERY common issue when data overflows its container.There is no single approach to this. You can:https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Use dots (text-ellipsis)https://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Use "Show more" expandershttps://abs.twimg.com/emoji/v2/... draggable="false" alt="🔸" title="Kleine orangene Raute" aria-label="Emoji: Kleine orangene Raute">Hide some data under tooltips, iconsand so on." class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #41 - Make it clear that you have something below the fold

https://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> In the first picture, there is no hint that there is content below.

https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> In the second picture, it& #39;s clear. You don& #39;t even need arrows or pointers asking users to stroll down.
https://abs.twimg.com/emoji/v2/... draggable= Tip #41 - Make it clear that you have something below the foldhttps://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> In the first picture, there is no hint that there is content below.https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> In the second picture, it& #39;s clear. You don& #39;t even need arrows or pointers asking users to stroll down." title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #41 - Make it clear that you have something below the foldhttps://abs.twimg.com/emoji/v2/... draggable="false" alt="❌" title="Kreuzzeichen" aria-label="Emoji: Kreuzzeichen"> In the first picture, there is no hint that there is content below.https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> In the second picture, it& #39;s clear. You don& #39;t even need arrows or pointers asking users to stroll down." class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #42 - Don& #39;t use default file inputs

Just don& #39;t https://abs.twimg.com/emoji/v2/... draggable="false" alt="😡" title="Schmollendes Gesicht" aria-label="Emoji: Schmollendes Gesicht">

They look different everywhere, they have poor UX, they look ugly.

Use a custom one with:

https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Proper validation
https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Drag&Drop area
https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Hints, if they are necessary
https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Good looking UI
https://abs.twimg.com/emoji/v2/... draggable= Tip #42 - Don& #39;t use default file inputsJust don& #39;t https://abs.twimg.com/emoji/v2/... draggable="false" alt="😡" title="Schmollendes Gesicht" aria-label="Emoji: Schmollendes Gesicht">They look different everywhere, they have poor UX, they look ugly.Use a custom one with:https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Proper validationhttps://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Drag&Drop areahttps://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Hints, if they are necessaryhttps://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Good looking UI" title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #42 - Don& #39;t use default file inputsJust don& #39;t https://abs.twimg.com/emoji/v2/... draggable="false" alt="😡" title="Schmollendes Gesicht" aria-label="Emoji: Schmollendes Gesicht">They look different everywhere, they have poor UX, they look ugly.Use a custom one with:https://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Proper validationhttps://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Drag&Drop areahttps://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Hints, if they are necessaryhttps://abs.twimg.com/emoji/v2/... draggable="false" alt="✅" title="Fettes weißes Häkchen" aria-label="Emoji: Fettes weißes Häkchen"> Good looking UI" class="img-responsive" style="max-width:100%;"/>
https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #48 - Display the date when your article was published

I often google something and find related articles, but there is no date.

So, I& #39;m not sure how fresh the articles are.

E.g., if there is the "Top 10 plugins for Figma" article, how can I be sure they are actual? https://abs.twimg.com/emoji/v2/... draggable="false" alt="🤔" title="Denkendes Gesicht" aria-label="Emoji: Denkendes Gesicht">
https://abs.twimg.com/emoji/v2/... draggable= Tip #48 - Display the date when your article was publishedI often google something and find related articles, but there is no date.So, I& #39;m not sure how fresh the articles are. E.g., if there is the "Top 10 plugins for Figma" article, how can I be sure they are actual? https://abs.twimg.com/emoji/v2/... draggable="false" alt="🤔" title="Denkendes Gesicht" aria-label="Emoji: Denkendes Gesicht">" title="https://abs.twimg.com/emoji/v2/... draggable="false" alt="💡" title="Elektrische Glühbirne" aria-label="Emoji: Elektrische Glühbirne"> Tip #48 - Display the date when your article was publishedI often google something and find related articles, but there is no date.So, I& #39;m not sure how fresh the articles are. E.g., if there is the "Top 10 plugins for Figma" article, how can I be sure they are actual? https://abs.twimg.com/emoji/v2/... draggable="false" alt="🤔" title="Denkendes Gesicht" aria-label="Emoji: Denkendes Gesicht">" class="img-responsive" style="max-width:100%;"/>
You can follow @vponamariov.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: