Details that make interfaces feel better
The article outlines several techniques to enhance user interfaces, emphasizing the cumulative effect of small details. Key strategies include:
Text Management
- Text Wrapping: Use
text-wrap: balanceto distribute text evenly and avoid orphaned words, enhancing readability.
Visual Consistency
- Concentric Border Radius: Apply a formula where the outer border radius equals the inner radius plus padding, ensuring consistent appearances in nested elements.
Icon Animation
- Contextual Animation: Implement animations for icon opacity, scale, and blur to create smoother transitions.
Text Rendering
- Crisp Text: On macOS, use
-webkit-font-smoothing: antialiasedto render text thinner and crisper for improved readability.
Numerical Display
- Tabular Numbers: Apply
font-variant-numeric: tabular-numsto ensure numbers align properly, especially during updates.
Animation Interruption
- Interruptible Animations: Prefer CSS transitions for interactions, as they allow interruptions, unlike keyframe animations.
Element Animation
- Staggered Entries: Break down animations into smaller components with delays, enhancing the smoothness of entering content.
- Subtle Exits: Use less conspicuous animations for exiting elements to prevent visual overload.
Design Alignment
- Optical Alignment: Align elements optically rather than geometrically for a more visually appealing layout.
Shadow Usage
- Shadows over Borders: Use box-shadows instead of borders for depth and adaptability to various backgrounds.
Image Enhancement
- Image Outlines: Add a subtle outline to images to create depth and integrate them with design systems.
The article also introduces a skill package available on GitHub that incorporates these techniques, encouraging further contributions and feedback from users. You can install and apply this skill to projects using npx skills add jakubkrehel/make-interfaces-feel-better.