A lot of the concepts may seem simple. But many of them are easy traps to fall into. Most of them are concepts that may look nice on screen but have usibility issues. An interface should almost always weigh usability over looks.
Sentence case is always the way to go. We are taught to read in sentences. When we read words, we look more at the shapes of the words than each individual letter. That being said, USING ALL UPPERCASE CAN MAKE THINGS REALLY HARD FOR A USER TO READ. There is no place in UI for uppercase text, it can be "pretty" in design, but the experience is hurt greatly by how difficult it becomes to read.
If you are making an logo, uppercase can be ok, because you are making and image / icon. Anything that is meant to be read should never use uppercase text.
Allow the eyes room to breath. Make sure you apply enough line height that text isn't squished. 150% of the font size is a good place to start, giving 50% of the fonts height between two lines. More on line height
Don't use a font that is too thin. It can look nice to use a thin font, but remember the text has to be read with human eyes. No matter how pretty the thinnest font it, consider giving something with a little more weight to be more readible.
Consider using the font native to the device itself. iPhone app? Use the default San Francisco font. Android app? Use the default Roboto font. On the web? Use system fonts. A custom font can be a cool look, however giving the user something they are used to once again improves readibility.
Most of the time a label is more appropriate. The biggest issues with placeholders is that they dissapear when you start typing. A label is clear and doesn't dissapear when you type. Using a placeholder as an example can also lead to confusion by the user whether something is already entered. More on placeholders
| Bad usage of placeholders | Context dissaprears when form is completed |
|---|---|
![]() |
![]() |
Keep spacing even around objects can help make a more cohesive interface and make things fit on an interface better.
Hamburger menus can be unavoidable. However, if you can do without it, get rid of it. Hamburger menus are where all featues / actions in an interface go to die. On a mobile app? Use a tab bar instead.

