What I Learned
Core competencies and skills developed throughout this module
Understanding Users & Their Tasks
Started every design from the people who will use it and the goals they want to reach.
- Defining target groups and personas
- Describing use cases and user flows
- Deriving requirements for the interface
- Prioritising content by importance for the user
Sitemaps & Wireframes
Planned the structure of the application and the layout of each page before thinking about colours or details.
- Creating a sitemap as a page overview
- Sketching low-fidelity wireframes
- Designing a consistent grid and layout system
- Planning responsive layouts for mobile and desktop
Style Guide & Prototyping in Figma
Defined the visual language in a style guide and built an interactive prototype in Figma to test ideas early.
- Choosing colours, typography, spacing and icons
- Building reusable components and variants in Figma
- Linking screens into a clickable prototype
- Collecting feedback through simple usability tests
Components & Navigation
Implemented the design as consistent, reusable building blocks and a navigation that always shows users where they are.
- Translating the style guide into CSS custom properties
- Building buttons, cards and lists as reusable components
- Marking the active page and providing breadcrumbs
- Keeping interaction states (hover, focus, disabled) consistent
Forms & Feedback
Designed forms that are easy to fill in and give clear, immediate feedback on success and errors.
- Using visible labels and sensible input types
- Writing error messages that explain how to fix the problem
- Showing success messages and loading states
- Asking for confirmation before destructive actions
Accessibility & Usability
Checked the interface against accessibility guidelines and the dialogue principles of ISO 9241-110.
- Ensuring sufficient colour contrast according to WCAG
- Supporting keyboard navigation and visible focus
- Using semantic HTML, alt texts and ARIA where needed
- Applying self-descriptiveness, error tolerance and conformity with expectations
Code Examples
Practical examples from the module
/* Design tokens from the style guide, defined once and reused by every component */ :root { --color-primary: #2f5d50; --color-surface: #faf8f4; --color-text: #1d1d1b; --color-error: #b3261e; --font-body: "DM Sans", system-ui, sans-serif; --space-sm: 8px; --space-md: 16px; --radius: 10px; } .button { padding: var(--space-sm) var(--space-md); background: var(--color-primary); color: var(--color-surface); border-radius: var(--radius); font-family: var(--font-body); } .button:focus-visible { outline: 3px solid var(--color-text); outline-offset: 2px; }
<form action="send.php" method="post" novalidate> <!-- Every field has a visible label --> <label for="email">E-mail address</label> <input type="email" id="email" name="email" autocomplete="email" required aria-describedby="email-error" aria-invalid="true"> <!-- The error explains what went wrong and how to fix it --> <p id="email-error" class="field-error" role="alert"> Please enter a valid e-mail address, e.g. name@example.ch. </p> <button type="submit" class="button">Send message</button> </form>
Skills Acquired
Technologies and concepts mastered in this module
Key Takeaways
- Design for the user, not yourself: Every decision starts with the user's task.
- Plan before you style: Structure and layout come before colours and details.
- Consistency builds trust: A style guide keeps every page looking and behaving the same.
- Good errors help: A message should explain what went wrong and how to fix it.
- Accessible is better for everyone: Contrast, focus and labels help all users, not just some.