Sameer Rana
mohammed.imtiaz-ahmed@student.uni-halle.de
1. Introduction
UI and UX Design is an important part of creating applications, especially on the web. A well-designed website or app presents the user with the necessary functionality in a clear and easy to understand manner and helps improve their experience.
People are attracted to visually appealing and pleasing things, and this should be kept in mind while designing applications.
It is essential knowledge for any developer to know at least the fundamental concepts of designing user-friendly, responsive and satisfactory experiences, since anything they build is ultimately meant for the user and has to meet their expectations of quality.
There are several resources and guides which outline the key elements involved in UI/UX design, but first we must understand the difference between subjectivity and objectivity.
1.1. Subjectivity vs Objectivity
Subjectivity is based on or influenced by the personal feelings, tastes and opinions of people.
Objectivity on the other hand is not influenced by personal feelings and is more about the consideration, evaluation and representation of facts.
Good design involves both subjectivity and objectivity. However, it is good to start with the core objective design principles first and implement them, as that lays a solid foundation for us to then develop our own subjective preferences and styles later on.
1.2. Design Roles
User Researcher: Understands user behaviours & needs, gathers and analyses user data, conducts surveys, interviews and takes part in usability testing. Guide to learning the user
UX Designer: Responsible for the overall feel of the product, focuses on how the users will interact with the product, uses wireframing and prototyping tools to create roadmaps for other designers and developers.
UI Designer: Focuses on designing the user interface. This includes all the visual elements like the layout, typography, colours etc. Takes the requirements and learnings from User Researchers and UX Designers and turns them into detailed, interactive mockups for developers to implement.
Testers: Tests the websites and apps for usability and effectiveness after they’re created. This includes finding out what grabs users’ attention, where they spend their time, and what they actually do on the website/app. There are several other parameters involved in this process such as A/B testing, heatmaps and behaviour analytics. Tools they use include: Optimizely (A/B Testing) and Hotjar (Heatmap analytics).
2. Resources
2.1. Books & Websites for reference and knowledge
Core aspects of graphic design theory
2.2. Courses, Tutorials and Guides
2.3. Some Cool Tools
3. UI Fundamentals
3.1. Whitespace
Also referred to as „negative space“, it is the empty space between the elements in the user interface. Affects visibility and cleanliness. The primary properties used to define whitespace in HTML & CSS are padding and margin for the space between the elements on the page and line height for space between lines text.
3.2. Colour
Colour is usually the first thing a user notices because eyes tend to be instantly drawn to colour. It is thus extremely important to choose and use the right ones in a design.
Colour Psychology and Colour Theory deals with how each colour expresses a certain meaning to a certain group of people.
Why is this important? Depending on the company the UI is for and the target audience, choosing the right colours can make a major difference in communicating the purpose and idea of the application or website.
We want to elicit the right emotions in the target demographic and project the right images, tell the right stories and convey the right messages.
Choosing the right colour palette must involve a careful consideration of this fact, what values and emotions do we want to express and which colours work best for that.
We should also consider complementary and analogous colours to see which colours go together and which don’t and which create good or bad contrast.
3.3. Contrast
Contrast is the difference in visual properties like brightness and colour between different elements like a button and a background, or between the text on a page and its background. Bad contrast makes things hard to see and causes irritation for the users.
Contrast of elements on the web is guided by the WCAG (Web Content Accessibility Guidelines). They set out clear contrast ratios that have to be achieved by a design. This is also to make sure that those with visual impairments are able to clearly make out the different elements on a page.
There are several tools one can use to make sure the elements they are designing achieve these ratios. Browser extensions, plugins in design apps, websites etc. (https://colourcontrast.cc/)
3.4. Scale
The size, how big or small something is, of every UI element has to be carefully considered. Bad scale can cause elements to be hard to see, or might assign incorrect level of importance to elements (by either highlighting or undermining them)
Another aspect of scale which relates to text and user interface design is how wide or narrow written text is on a page. Having the right size allows better reading comprehension for the user.
3.5. Alignment
Alignment is the process of ensuring that every element is positioned correctly in relation to other elements.
Alignment is usually achieved with the help of an invisible grid. If we imagine all elements on a page to have their own x and y-axis, placing elements on a common axis can improve structure.
We could either centre align all elements or align all other elements to the left most axis (of the first element) in order to achieve a common alignment for all.
3.6. Typography
One of the most important and wide-ranging elements of UI design. Good typography requires a good understanding of other design fundamentals and some typography specific considerations.
These include: Font choices, font sizes (scale), letter spacing & line height, font styles (weight, italics etc.), colour & contrast, visual hierarchy and alignment.
This is a very large field in itself, and there are several things one can focus on. A good starting tip for example is to not use more than two font families in a design.
Tools exist which allow pairing and comparing different fonts to see how they work together (https://www.pairandcompare.net/). Fonts express the style and feel of the page and are a very important part of the design concept of any app. (No Comic Sans on a bank website!)
Two big font families are Serif and Sans-Serif with subfamilies within them like Old Style, Transitional, Modern and Slab-Serif for Serif and Grotesque, Neo-grotesque, Humanist and Geometric for Sans-Serif.
3.7. Visual Hierarchy
Every element on a user interface has a level of importance. Some are more important than the others. Visual hierarchy is the definition of how this importance is established.
This done by using all the other design fundamentals we learnt about above.
4. A note on User Experience (UX) Design
Design sometimes can come down to what we establish as looking good and what we want the user to like and accept. However, the way a user actually uses a website or app or tool is oftentimes completely different to the pre laid down design.
Good user experience is meant to be invisible. It is meant to be unobtrusive, simple, and make the user feel like they have the freedom and the ability to just do what they wish to do and achieve their goals.
4.1. Simplicity
Keeping things simple is more often than not the better approach and prevents overwhelming the user. There are interesting approaches to how different cultures and countries approach this. Look at these two examples:
(Bonus: German web design)
4.2. Consistency
Keep designs consistent between pages. Having inconsistent elements like different styles or layouts for nav bars can confuse the user and cause frustration when they go from one part of the website to another.
4.3. Reading Patterns
There have been studies done that track users eyes as they read pages. Aligning and laying out text in the right way can increase the amount of information the user actually takes in from the website.
4.4. All Platform Design (Mobile First)
It is very important to start the design with a focus on users on mobile devices. Improperly scaled and unresponsive websites provide an unusable experience for users
On the other hand, websites which were designed purely for mobile should not look the same on desktops. This is also an example of bad design and makes for a horrible user experience.
4.5. Don’t employ Dark Patterns
Dark patterns are when designers use these UI fundamentals to direct users to click on ads or perform other actions that they don’t want.
Like switching the position “Cancel” or “Close” buttons with the “OK” or “Next” buttons instead of the standard, usual positions, or using visual hierarchy to make the cancel button more prominent.
This is done to make the user accidentally cancel an action that they wanted to do if the action is not in the company’s best interests and profits. Like cancelling subscriptions.
5. Designing a Frontend: Wireframes, Mockups & Prototypes
5.1. What Do They Mean?
5.1.1. Wireframe
Wireframes are the blueprints (Skeletons) of the design. They involve rough sketches of where everything will go on the page.
There are no colours or fancy designs yet and instead, just boxes and lines to say where everything is to be positioned. This could mean simply a box for the logo, a rectangle for the navigation bar, squares for images, lines for text etc.
It is usually the first step towards figuring out the overall layout and structure of the application.
5.1.2. Mockup
Mockups are when we fill in the wireframes from before with graphics assets. They are a detailed visualisation of what the app or site will look like when all components like the branding, colours, logos, fonts, images and spacing have been added.
Mockups are still static, they don’t have any interactivity yet.
5.1.3. Prototype
Prototypes are clickable versions of the mockups, where buttons work, and you can click from page to page to see how things feel and should work.
They are used for testing the interactions, flows and user experiences before actually implementing it in code and programming the app.
This is a simulation of how the app or website will behave created by connecting together different layouts or mockups with triggers, animations and transitions.
5.2. How To Make Them?
Penpot, Lunacy, Figma, Adobe XD, Sketch, Balsamiq
Inkscape, Adobe Illustrator, Adobe Photoshop, Canva
5.3. What Does The Workflow Look Like?
Wireframe ➡ Mockup ➡ Prototype ➡ Code implementation (HTML markup + CSS styles + JS functionality or using Frontend frameworks like React, Angular, Vue etc.)
5.4. Some Examples Of Good And Bad Designs
7. Applying it all to our Projektseminar
The steps we have to take in order to achieve a successful design implementation for our app are as follows:
Research our contractors ⇾ AfA, Uni Halle, Stadt Zeitz, Stadtarchiv and their design philosophies, brand colours etc. (+ vibes)
Understand our target demographic and the mood we wish to convey with our application such as for example: friendly, approachable, kid-friendly, straightforward, easy to use etc.
Check if we must abide by any set guidelines like barrier-free accessibility requirements, sign language support etc.
Choose the right colour palette and the right fonts.
Make and gather graphic assets that work with the chosen design.
Create a prototype of the UI, and test it with the target demographic / contract providers.
Implement the design ideas and choices to our application during development and review it for usability and effectiveness throughout the process. We can automate some level of this testing using tools like google lighthouse
Conduct user surveys and interviews to see if our design communicates our intentions as wish and meets the expectations of our users.