How one app made me a better designer and a more prepared developer
Paint Shop Pro
Sketch
Photoshop
Figma
Auto Layout
Automatic Resizing and Alignment
Responsive Design: Automatically adjusts the size and position of components based on their content and the size of the parent frame
Dynamic Resizing: Elements can resize dynamically to accommodate different content sizes, making it easy to create flexible layouts
Padding and Spacing
Padding: Define padding around the content within a frame to maintain consistent spacing
Spacing Between Items: Set fixed or variable spacing between items within an auto layout frame, ensuring even distribution
Direction Control
Horizontal or Vertical Layouts: Choose the direction in which items are arranged, either horizontally or vertically
Reverse Order: Reverse the order of items within the auto layout frame with a single click
Alignment Options
Alignment Controls: Align items to the left, right, center, top, bottom, or stretch them to fill the container
Distribution: Distribute items evenly within the auto layout frame
Components
Reusable Elements
Single Source of Truth: Create a component once and reuse it throughout your design, ensuring consistency
Instance Syncing: Any changes made to the master component automatically propagate to all instances, keeping designs synchronized
Overrides
Customizable Instances: Modify properties of individual instances (such as text, colors, or images) without affecting the master component
Retain Changes: Overrides remain intact even when the master component is updated, preserving customizations
Variants
Component States: Define different states or variations of a component (such as default, hover, active) within a single component set
Interactive Components: Easily switch between variants to represent different states and interactions in your design
Interactive Components
Prototyping: Use interactive components to create clickable prototypes that simulate real user interactions
Variants in Prototypes: Switch between component variants in prototypes to show different states and interactions
Component Libraries
Team Libraries: Share components across a team or organization by publishing them to a shared library
Updates and Versioning: Manage updates to shared components, ensuring everyone has access to the latest versions
Variables
Centralized Value Management
Global Values: Define variables that can be used throughout the entire design project, ensuring consistency and easy updates
Local Variables: Create variables scoped to specific components or frames for more granular control
Types of Variables
Colors: Store color values as variables, allowing for consistent color usage and easy updates
Text Styles: Define typography settings (font, size, weight, etc.) as variables for consistent text styling
Spacing: Manage spacing values (margins, padding, gaps) with variables to maintain consistent layout proportions
Dimensions: Use variables to set fixed sizes or responsive dimensions for elements
Numbers: Store numeric values that can be reused for any purpose, such as border radius, opacity, or other properties
Easy Updates
Single Source of Truth: Update a variable once, and all instances where it's used are automatically updated
Efficient Iterations: Quickly experiment with different values by changing variables without manually updating each instance
Theming and Styles
Theme Management: Define variables for different themes (e.g., light and dark modes) and switch between them effortlessly
Style Consistency: Ensure design consistency by using variables for common styles and themes
Styles
Centralized Management
Global Styles: Create styles that can be used across an entire project, ensuring consistency in design elements
Shared Libraries: Publish styles to team libraries so they can be reused across multiple projects and by different team members
Types of Styles
Color Styles: Define and reuse color palettes for fills, strokes, and effects, maintaining a consistent color scheme
Text Styles: Set and reuse typography settings, including font family, size, weight, line height, and letter spacing
Effects Styles: Manage effects such as shadows, blurs, and glows, applying them consistently across components
Grid Styles: Define grid and layout systems for frames and components to ensure consistent spacing and alignment
Efficiency and Consistency
Reusable Elements: Apply the same styles to multiple elements, ensuring design consistency and saving time
Batch Updates: Update a style once, and all instances where it’s applied are automatically updated
Easy Application and Overrides
Quick Application: Easily apply styles to elements through the properties panel or by using keyboard shortcuts
Overrides: Override styles on individual elements when needed without breaking the link to the base style, allowing for flexibility within a consistent framework
Prototypes
Interactive Links and Hotspots
Clickable Areas: Create hotspots on your design elements that link to other frames or components, enabling navigation between screens
Flow Connections: Draw connections between frames to define the user flow and interactions
Interactive Components
Component States: Use variants to create different states (e.g., default, hover, active) and switch between them based on user interactions
Interactive Variants: Define interactions within components to simulate real-world behavior, such as buttons changing state when clicked
Transitions and Animations
Smart Animate: Automatically animate changes between frames, creating smooth transitions based on layer properties like position, size, opacity, and rotation
Overlays
Modal Overlays: Create overlay effects for modals, dropdowns, tooltips, and other UI elements that appear above the main content
Positioning Options: Define where overlays appear relative to the trigger element or frame
Interactions and Triggers
Click and Tap: Define actions that occur on click or tap, simulating common user interactions
Hover and Mouse Enter/Leave: Set up hover states to provide visual feedback when users move their cursor over interactive elements
Responsive
Define Size Variables
Breakpoints: Create variables for different breakpoints (e.g., mobile, tablet, desktop) to handle layout changes across various screen sizes
Spacing and Dimensions: Use variables to define spacing, margins, and dimensions that can adapt to different screen sizes
Adaptive Layouts
Auto Layout: Combine auto layout with variable modes to create designs that adjust automatically based on the screen size
Conditional Resizing: Use variables to control how elements resize and reposition based on the active variable mode
Media Queries Simulation
Screen Size Modes: Define variable modes that simulate different screen sizes. Switch between these modes to see how your design responds to changes in viewport size
Responsive Components: Design components that change their layout or appearance based on the active size variable
Dark Mode
Color Variables
Theme Colors: Define color variables for both dark and light themes. Create variables for background colors, text colors, and other UI elements that need to change
Switchable Color Modes: Use variable modes to switch between dark and light color palettes