Markdown To PDF
Markdown To PDF
1. Definitions
UI (User Interface):
The set of tools, windows, and components (e.g., buttons, title bars, icons) that allow users to interact with a device or application. It’s not limited to computers
or mobile devices—think ATMs or routers too.
Example: Clicking a folder icon opens a window with a title bar and content area.
UX (User Experience):
The overall experience a user has with a product, focusing on how it works in the real world—its ease of use, intuitiveness, and satisfaction. It’s about the
interaction, not just the function.
Example: A coffee maker button that clicks properly improves the experience; if it fails, it frustrates the user.
2. UI vs. UX
UI:
UX:
Key Insight:
3. UI Frameworks
Here’s a rundown of the frameworks covered, grouped by platform. Know their purpose and key traits.
Desktop Frameworks:
QT:
Cross-platform (Windows, Linux, macOS, Android, iOS).
Written in C++, with bindings for Python, Rust, etc.
Two libraries: QT Widgets (traditional desktop) and QT Quick (modern, uses QML).
Examples: VLC, Google Earth, Telegram.
GTK:
Open-source, written in C, used in Linux desktops (GNOME, XFCE).
Supports XML for UI design.
Examples: Firefox, GIMP, Inkscape.
Windows Forms:
Part of .NET, for Windows desktop apps.
Drag-and-drop design in Visual Studio; can run on Linux with Wine/Mono.
Example: NaviCat.
WPF (Windows Presentation Foundation):
.NET framework, uses XAML to separate UI from logic.
Windows-only, supports 2D/3D graphics and animations.
Benefit: Designers and coders can work separately.
JavaFX:
Java-based, uses FXML for UI, supports desktop and mobile.
Dropped from new Java SE, now in OpenJFX.
Supports CSS styling, 2D/3D.
Java Snapkit:
Modern Java UI library, runs on desktop and browsers (via CheerpJ).
Aims to blend Swing simplicity with JavaFX richness.
Iced:
Rust-based, experimental, cross-platform.
Used in System76’s Cosmic Desktop for Linux.
Mobile Frameworks:
Cordova:
Builds hybrid mobile apps using HTML, CSS, JavaScript.
Write once, deploy to multiple platforms (like Electron for desktop).
Ionic:
Open-source SDK for hybrid apps, supports Angular, React, Vue.
Builds mobile, desktop, and web apps with web tech.
Web Frameworks:
Bootstrap:
CSS framework for responsive web design.
Uses a 12-column grid with sizes (sm, md, lg, xl) for different screens.
Includes components like cards and badges.
Tailwind:
Utility-first CSS framework for custom designs.
More flexible than Bootstrap but requires more class-writing.
Web Assembly (Wasm):
Not a framework, but a tech to run C#, Rust, etc., in browsers.
Used by Flutter and Blazor for web support.
Blazor:
Web framework using C# and HTML, runs via Web Assembly or server-side SignalR.
Part of ASP.NET.
PrimeTech:
Provides UI component libraries (PrimeNG, PrimeReact, PrimeVue).
Enhances web elements with modern features.
Other Frameworks:
Flutter:
Google’s UI SDK for mobile, web, and desktop from one codebase.
Uses Dart, supports Web Assembly for web.
.NET MAUI:
.NET framework for native mobile/desktop apps with C# and XAML.
Evolution of Xamarin.Forms, single codebase for multiple platforms.
1. Colors
What is Color?
Definition: Color arises from light waves of varying lengths reflected by objects. The reflected wavelengths determine the perceived color, as seen by our eyes
or camera sensors.
Prism Effect: A prism splits white light into a rainbow, demonstrating how colors are components of light.
Materials:
Transparent : Allows all light to pass through (e.g., clear glass).
Translucent: Reflects specific colors while letting others pass (e.g., green glass reflects green light).
Color Wheel
HSV in Practice
Use a single hue with varied saturation and value to create cohesive palettes (e.g., brand color, text, borders).
Contrast Ratios : Ensure accessibility with ratios like 4.5:1 for text against backgrounds (WCAG Level AA standard).
Color Psychology
Color Palettes
Definition: A consistent set of colors for UI design, enhancing aesthetics and brand identity.
WCAG Guidelines:
Level AA : 4.5:1 contrast for text, 3:1 for large text or borders.
Level AAA: 7:1 for text, 4.5:1 for large text.
Examples:
Solarized: 16 colors, balanced for light/dark modes, reduces eye strain.
Nord: 16 pastel colors, bluish and calming, ideal for minimal designs.
Color Temperature
Color Blindness
Types:
Red-Green (Protanopia, Deuteranopia).
Blue-Yellow (Tritanopia).
Monochromacy (grayscale vision).
Design Tip : Use high contrast and focus on lightness differences for accessibility.
2. Fonts
Types of Fonts
Printing Fonts: Optimized for print (e.g., Times New Roman, Arial).
UI Fonts: Designed for screens (e.g., Tahoma, Segoe UI).
Cross-Use: Possible but less effective outside intended purpose.
Fixed Width (Monospaced) : Equal character width (e.g., Source Code Pro), ideal for code editors and predictable UI layouts.
Variable Width : Natural letter widths (e.g., Segoe UI), better for readability in general UI.
Famous UI Fonts
3. Icons
Quickly convey actions or statuses (e.g., save as a floppy disk, play as an arrow).
Familiarity reduces learning curve for users.
Icon Formats
Icon Fonts
Concept : Icons as scalable, colorable vector glyphs (like text), but monochromatic.
Examples:
Font Awesome: 1608 free icons, widely used (38% of sites with third-party fonts).
Simple Line: 160 icons for everyday use.
Master the color wheel and selection methods (e.g., complementary, triadic).
Understand HSV and its role in creating cohesive, accessible designs.
Know WCAG contrast ratios (4.5:1 for text, 3:1 for borders).
Recognize color psychology’s optional role in UI.
Fonts:
Icons:
Definition: Visual effects are changes in the user interface (UI) that occur in response to user actions or shifts in the application’s state. Examples include a
button changing color when clicked or a shadow appearing to indicate depth.
Purpose: They provide visual feedback, helping users understand interactions and enhancing the overall user experience (UX).
2. Design Styles
Skeuomorphic Design :
Description : Digital objects mimic real-world counterparts (e.g., a trash can icon resembling a physical trash can).
History: Popularized in the 1980s by Steve Jobs and Apple to make interfaces intuitive for new users.
Pros : Flattens the learning curve by leveraging familiarity with physical objects.
Cons: Can become cluttered and unnecessary as users grow accustomed to digital environments.
Modern Use: Re-emerged in smartwatches to mimic traditional watch faces, blending digital and analog experiences.
Flat Design :
Description : Emphasizes minimalism with simple shapes and minimal visual effects (e.g., Windows 8 tiles, iOS 7).
Purpose: Prioritizes visual clarity and simplicity, reacting against skeuomorphism’s clutter.
Pros : Clean and modern aesthetic.
Cons: Lack of depth cues (e.g., shadows) can obscure element hierarchy, making interfaces harder to navigate.
Flat 2.0 :
Description : Merges flat design’s minimalism with subtle skeuomorphic elements like shadows (e.g., Microsoft’s Fluent Design with its “frosty glass”
effect).
Purpose: Balances modern aesthetics with usability by reintroducing depth and visual cues.
Pros : Offers clarity and hierarchy without excessive ornamentation.
Shadows:
Use: Indicate depth and stacking order (e.g., drop shadows suggest an element is in front, inner shadows suggest it’s behind).
Application: Especially valuable in mobile design to maximize limited screen space by suggesting a third dimension.
Color Changes:
Use: Highlight state changes or errors (e.g., red borders on invalid inputs, lighter button tones on hover).
Key Note : Must be paired with additional feedback (e.g., error messages) to clarify the reason for the change, avoiding confusion.
Cursor Changes :
Use: Signal interactivity or application state (e.g., pointer becomes a text caret over text fields, a hand over links, or a spinner during processing).
Purpose: Provides immediate feedback on possible actions.
Spinners :
Use: Indicate processing without showing progress (e.g., rotating arches or moving geometric shapes behind frosty glass).
Purpose: Prevents the UI from appearing frozen during background tasks.
Progress Bars:
Use: Show task completion (e.g., a filling rectangle with a percentage) or act as indeterminate indicators (e.g., a rocking bar similar to spinners).
Purpose: Communicates progress or ongoing activity to the user.
Animations:
Use: Enhance transitions or aesthetics (e.g., sliding dialogs, fading effects, minimizing with a “magic lamp” effect).
Caution: Should prioritize functionality over eye candy, ensuring they don’t overwhelm the user.
4. Key Principles
Visual Feedback :
Essential for informing users about the success of actions or the application’s state (e.g., a button darkening when clicked confirms an action).
Use with Caution:
Effects must serve a purpose beyond aesthetics. Ask: Does it improve usability? Does it distract from the UI’s main function? Apply or remove
accordingly.
Definition: Platform-specific recommendations ensuring applications align with their environments for consistency and usability.
Importance: Helps applications blend seamlessly into their ecosystems (e.g., font sizes, button placements).
Notable Example : Apple’s HIG, which sets a standard for cohesive design across its platforms.
6. Trends in UI/UX
Cyclical Nature: Design styles evolve like fashion, often revisiting old ideas (e.g., iPhone’s shift from rounded to straight to rounded corners).
Influence: Driven by user familiarity, technological advances, and cultural shifts.
Visual Effects : Understand their role in feedback and usability, with examples like shadows, color changes, and animations.
Design Styles:
Skeuomorphic: Real-world mimicry for intuitiveness.
Flat: Minimalist clarity with potential depth issues.
Flat 2.0 : Hybrid approach for modern usability.
Specific Effects : Know their purposes (e.g., shadows for depth, spinners for processing) and best practices (e.g., pairing color changes with text).
Principles: Emphasize feedback and purposeful application of effects.
HIG: Recognize their role in consistency, with Apple’s HIG as a prime example.
Trends: Note the cyclical evolution of design styles.