<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Imperavi Articles</title><link>https://imperavi.com</link><description><![CDATA[This is a blog about design systems, typography and so on.]]></description><item><title>The missing principles of timeless design</title><link>https://imperavi.com/blog/the-missing-principles-of-timeless-design</link><description><![CDATA[
    Trends change fast. Principles don’t.
<p>Design moves in cycles. Every few years, new styles appear: neubrutalism, skeuomorphism, glassmorphism, flat, minimal.
With every wave, designers ask the same thing: why do some designs stay relevant while others fade almost instantly?</p><p>The answer is not in the style but in the structure behind it. Timeless design is built on clarity, proportion, and logic. It does not depend on aesthetics. It depends on principles that keep it readable, balanced, and alive no matter the decade.</p><h2>Timeless ≠ Minimal</h2><p>Minimalism is often mistaken for timelessness. Clean layouts, white space, and neutral colors can look refined, but that alone does not make a design last. Timeless design is not about how little you use. It is about how clearly everything fits together.</p><p>In timeless design, simplicity has structure behind it. Every proportion, margin, and type size exists for a reason. Many modern interfaces look minimal but lack this logic. The result is emptiness, not clarity.</p><p>True timelessness is not reduction for the sake of style. It is reduction for the sake of meaning.</p><figure>
    <img src="https://imperavi.com/data/blog/8-the-missing-principles-of-timeless-design/01-01.png" srcset="https://imperavi.com/data/blog/8-the-missing-principles-of-timeless-design/01-01@2x.png 2x" width="740" height="418">
    <figcaption>
        A timeless layout built on structure and proportion.
    </figcaption>
</figure><p>Aligned to the left, the layout creates a clear reading flow and visual rhythm. Hierarchy feels intentional: the headline leads, the text breathes, and the button balances the composition. Simplicity here is structural, not visual.</p><p>Everything is built on harmonious relations between type sizes, color weights, and spacing. Vertical distances follow clear proportions, and small forms like buttons have balanced padding and subtle rounding. This kind of simplicity feels calm and deliberate — it invites clarity instead of enforcing it.</p><figure>
    <img src="https://imperavi.com/data/blog/8-the-missing-principles-of-timeless-design/01-02.png" srcset="https://imperavi.com/data/blog/8-the-missing-principles-of-timeless-design/01-02@2x.png 2x" width="740" height="370">
    <figcaption>
        A simple layout that looks clean but feels empty.
    </figcaption>
</figure><p>Centered alignment creates visual neutrality but removes structure. Proportions feel arbitrary, rhythm disappears, and the button breaks the hierarchy. This kind of simplicity looks clean but feels uncertain — order replaced by emptiness.</p><p>The lead text has poor contrast and feels disconnected from the rest. The pill button looks weak and purposeless, with uneven padding that breaks balance. The design may still function because the button draws attention, yet compositionally it feels unstable and unreliable.</p><h2>Structure before Style</h2><p>Timeless design begins with structure. Systems, not styles, make design last. A strong grid, clear hierarchy, and modular relationships hold everything together long after colors or trends change.</p>]]></description><pubDate>Thu, 23 Oct 2025 00:00:00 +0000</pubDate><guid>https://imperavi.com/blog/the-missing-principles-of-timeless-design</guid></item><item><title>Why most design systems fail and what actually works</title><link>https://imperavi.com/blog/why-most-design-systems-fail-and-what-actually-works</link><description><![CDATA[Most design systems don’t die in a single moment. They fade slowly and quietly as updates stop, ownership blurs, and people quietly stop using it. It’s rarely bad design that kills them. It’s what happens when a system forgets why it exists.<p>Almost every company wants to systematize design. They build libraries, documentation, and tokens. But within a year, the system stops feeling alive. The reason isn’t the tools. It’s the lack of practice in keeping the system aligned, growing, and relevant.</p><p>Over the years, I’ve seen systems break for the same reasons again and again. Here’s what really causes them to fade and what makes them last.</p><h2>They start as libraries, not as products</h2><figure>
    <img src="https://imperavi.com/data/blog/7-why-most-design-systems-fail-and-what-actually-works/01.png" srcset="https://imperavi.com/data/blog/7-why-most-design-systems-fail-and-what-actually-works/01@2x.png 2x" width="740" height="370">
</figure><p>Many teams see their design system as a collection of components and sometimes a bit of formal documentation around them. It looks like a set of parts connected by style, but not by process or ownership. Yet a system is, above all, a product with its own cycles, methods, and maintenance.</p><p>The components may be polished and ready, but without regular updates, reviews, and real feedback from use, they stay detached pieces that quickly grow outdated — like any code left without care.</p><p><strong>What works</strong>: Treat your system like a living product. Give it ownership, a roadmap, and a way to learn from how it’s used.</p><h2>They’re built in isolation</h2><figure>
    <img src="https://imperavi.com/data/blog/7-why-most-design-systems-fail-and-what-actually-works/02.png" srcset="https://imperavi.com/data/blog/7-why-most-design-systems-fail-and-what-actually-works/02@2x.png 2x" width="740" height="370">
</figure><p>A common mistake is building a design system apart from the product, often by designers alone, disconnected from code. Even worse, when a system is created or copied without understanding the project’s goals or requirements.</p><p>Then integration begins, and everything breaks. No one wants to use the system; they ignore it and design by instinct instead. In broken systems, guessing often feels faster than following the rules.</p><p>Living systems are born through use, not before the project starts. A design system is the outcome of thinking through real problems: testing ideas, adjusting colors, refining spacing, and validating how components and patterns behave in real interfaces.</p><p><strong>What works</strong>: Build the system alongside the project. Build with the team that uses it. Test every principle in real context.</p><h2>They aim for consistency instead of clarity</h2>]]></description><pubDate>Tue, 21 Oct 2025 00:00:00 +0000</pubDate><guid>https://imperavi.com/blog/why-most-design-systems-fail-and-what-actually-works</guid></item><item><title>7 principles of a design system</title><link>https://imperavi.com/blog/7-principles-of-a-design-system</link><description><![CDATA[
    Seven principles that make design systems reliable — clear, flexible, and able to evolve with the product.
<p>A good design system isn’t defined by how many components it has, but by strong principles. These principles shape how the system grows, how decisions are made, and how easy it is to maintain.</p><p>They work at every level — from token structure and grid to a single component. If they hold, the system remains clear, flexible, and predictable even as the product grows, the team changes, and new tasks appear.</p><h2>1. Extendable</h2><p><em>Can you add something new without breaking what exists?</em></p><p>A good system doesn’t crack when it needs to expand. Adding new parts should feel natural, not a reason to reconsider the whole structure.</p><p>Extendability isn’t about quantity — it’s about construction. If the principles are right, you can add a new text size, a new color tone, or a component variation without risking existing relationships. When the architecture is sound, growth is organic, not chaotic.</p><p><strong>Example</strong>: you decide to add another blue tone or a new heading type. In a well-designed system, that’s a minute of work — one new value in an existing scale. In a weak system, it means changing dozens of styles and rebuilding the design.</p><h2>2. Modifiable</h2><p><em>How easily does the system accept change?</em></p><p>A system should change without pain. Real flexibility isn’t “anything goes”; it’s the ability to adapt without damaging the foundation.</p><p>Modifiability is a sign of architectural maturity. If you can swap the base font, adjust the type scale, or update tokens without a cascade of side effects, the system is truly alive. Change should be part of normal life, not an emergency.</p><p><strong>Example</strong>: you increase the base font size or tweak spacing density. If the interface still looks tidy and balanced afterward, the system is built well. If you’re fixing dozens of screens by hand, there’s no real flexibility — even if the structure looks thoughtful.</p><h2>3. Clarity</h2><p><em>Do people understand how the system works?</em></p>]]></description><pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate><guid>https://imperavi.com/blog/7-principles-of-a-design-system</guid></item><item><title>10 things I have learned doing design systems</title><link>https://imperavi.com/blog/10-things-i-have-learned-doing-design-systems</link><description><![CDATA[
    Design systems teach patience. They reveal how clarity is built step by step — through structure, language, and small daily choices that make work consistent and teams aligned.
<p>Every design system begins with enthusiasm, and almost always with an underestimation of what lies ahead. Over the years, I’ve seen systems appear, grow, and disappear. Some collapsed under their own weight. Others stayed alive and helped teams work better.</p><p>With time, I realized that a design system is not a tool but a process that goes far beyond components and color sets.</p><p>Here are ten things I’ve learned from building them again and again.</p><h2>1. The hardest part is not design, it’s alignment</h2><p>Agreeing <em>how</em> to work is harder than agreeing <em>how</em> something should look. Often, a designer builds a system alone, isolated from development. And when the design is ready, the team starts trying to “align” it with code. That’s when it becomes clear the system doesn’t actually work.</p><p>A design system must be tested from the first day, not at the end, but throughout the process. Every decision — colors, sizes, states — should be verified in code, in a real interface. It’s how you involve the team and connect design decisions with reality.</p><p>A simple example: in Figma, a hover color might look perfect. In a browser, it may be barely visible. Fixing this later means reworking the entire palette, shadows, and contrasts. One small detail can turn into hours of rework.</p><p>Alignment isn’t the result of meetings. It’s the result of collaboration. A system becomes alive only when designers, developers, and product people solve problems together in one continuous cycle.</p><h2>2. Tools change, structure doesn’t</h2><p>Today it’s Figma, tomorrow it will be something else. Not long ago, Sketch was the standard. Before that, it was Photoshop. Every time, it felt like the perfect tool for building systems — until a few years later, everything changed again.</p><p>Tools come and go, but principles stay. Architecture, naming, and token structure are the true core of a design system. They define how it’s built, how it can evolve, and how it can be transferred. Components and visual details are just the surface form of this core.</p><p>A good system lives independently of the tool that created it. If you switch platforms tomorrow, it shouldn’t fall apart. Whatever can be moved is the real system. The rest is only a shell.</p><h2>3. Good naming saves months</h2><p>Clear names create shared understanding. Confusing ones create meetings. A system’s language isn’t just labels — it’s its model of thinking. It shows how the team sees the product and how it makes decisions.</p>]]></description><pubDate>Wed, 15 Oct 2025 00:00:00 +0000</pubDate><guid>https://imperavi.com/blog/10-things-i-have-learned-doing-design-systems</guid></item><item><title>Vertical Rhythm in Typography</title><link>https://imperavi.com/blog/vertical-rhythm-in-typography</link><description><![CDATA[Rhythm in text is what makes it comfortable to read, helps maintain focus, and creates a sense of cohesion. All of this works together to build balance and harmony, making the content pleasant to absorb. It’s the kind of text people want to keep reading.<figure class="mb-10 mx-n8 md:mx-0">
    <img src="https://imperavi.com/data/blog/4-vertical-rhythm-in-typography/01.png" srcset="https://imperavi.com/data/blog/4-vertical-rhythm-in-typography/01@2x.png 2x">
</figure><p>Creating a well-balanced vertical rhythm often proves to be a challenging task for designers. This is because there are rarely clear and simple rules on where to start, what to rely on, and how to create a uniform and consistent rhythm system. Most advice boils down to vague 'visual assessment' or intuitive actions.</p><p>As a result, the outcome is often disappointing: paragraphs are not connected to headings, lists blend into the surrounding text, and sections turn into one indistinguishable block. Instead of structure, the content creates visual noise.</p><h2>Line Spacing</h2><p>Line spacing is a small detail that plays a big role in shaping the overall rhythm of your text. If lines are too tight, the text feels heavy and dense. Conversely, if the spacing is too large, the text starts to fall apart—both between the lines and between paragraphs.</p><p>A good line height for body text is typically <strong>1.6 or higher</strong>. This gives the text enough breathing room and makes it more pleasant to read. The ideal value often depends on the typeface you’re using. Fonts with a lower x-height can get away with a slightly smaller line height.</p><p>Start with <strong>1.5</strong> as a baseline and increase gradually until the rhythm feels right. In most cases, <strong>1.6</strong> works well across the board.</p><figure class="mb-10 mx-n8 md:mx-0">
    <img src="https://imperavi.com/data/blog/4-vertical-rhythm-in-typography/02.png" srcset="https://imperavi.com/data/blog/4-vertical-rhythm-in-typography/02@2x.png 2x">
</figure><p>For headings, line height should be reduced. Use a consistent value like <strong>1.2</strong> for all headings to give them a strong, grounded appearance, regardless of their size. If you prefer, you can go slightly higher—<strong>1.3</strong> also works nicely.</p><p>Just like with body text, it all depends on the font. Sometimes a slightly lower or higher value works better. But <strong>1.2</strong> is often a reliable sweet spot: lower than that and multi-line headings can feel cramped; higher than that and they may start to feel loose or fragmented.</p><h2>Spacing Between Paragraphs</h2><p>Finding the right spacing between paragraphs is the foundation of building vertical rhythm.</p><p>To calculate this spacing, you need to know the line spacing (line height) of your text. Then, simply divide that value by <strong>1.5</strong> — the result gives you an ideal paragraph spacing.</p><p>For example, if your line spacing is <strong>24px</strong>, dividing by 1.5 gives you <strong>16px</strong>. This is an optimal space between paragraphs that ensures visual balance.</p>]]></description><pubDate>Tue, 27 May 2025 00:00:00 +0000</pubDate><guid>https://imperavi.com/blog/vertical-rhythm-in-typography</guid></item><item><title>Designing semantic colors for your system</title><link>https://imperavi.com/blog/designing-semantic-colors-for-your-system</link><description><![CDATA[This is a continuation of the article “<a href="https://imperavi.com/blog/creating-a-color-palette-for-design-systems-revised-edition/">Creating a Color Palette for Design Systems</a>”. I recommend reading it first to understand how to build palettes, and then move on to this article.<h2>What are semantic colors?</h2><p>Semantic colors are colors assigned to convey specific meanings or states, such as “positive,” “negative,” “warning,” “primary,” etc. They link the visual elements of an interface to their function or state, making the design process intuitive.</p><p>For example, let’s say your primary color is red, and you’ve created a palette for this color with a complete set of tints and shades.</p><figure class="mb-10 mx-n8 md:mx-0">
    <img src="https://imperavi.com/data/blog/3-designing-semantic-colors-for-your-system/01-01.png" srcset="https://imperavi.com/data/blog/3-designing-semantic-colors-for-your-system/01-01@2x.png 2x">
    <figcaption>The red color palette in the design system.</figcaption>
</figure><p>Now you can use the created colors in your components and design elements. For instance, you’ll have red labels and buttons.</p><figure class="mb-10 mx-n8 md:mx-0">
    <img src="https://imperavi.com/data/blog/3-designing-semantic-colors-for-your-system/01-02.png" srcset="https://imperavi.com/data/blog/3-designing-semantic-colors-for-your-system/01-02@2x.png 2x">
    <figcaption>Using a color from the palette.</figcaption>
</figure><p>Everything seems logical and straightforward: you simply take the necessary tints and shades and apply them where needed. This works well until you need to change the primary color from red to blue during or after the design process. In such a case, you would have to manually update the color in every component.</p><p>Semantic colors eliminate this obstacle and allow you to create a system that simplifies the use of colors, especially when switching from one color to another.</p><figure class="mb-10 mx-n8 md:mx-0">
    <img src="https://imperavi.com/data/blog/3-designing-semantic-colors-for-your-system/01-03.png" srcset="https://imperavi.com/data/blog/3-designing-semantic-colors-for-your-system/01-03@2x.png 2x">
    <figcaption>Using semantic colors.</figcaption>
</figure><p>Semantic colors offer numerous advantages for designing, implementing, and using a design system. The key benefits include <strong>Consistency</strong>, <strong>Accessibility</strong>, <strong>Scalability</strong>, <strong>Flexibility</strong>, and <strong>Efficiency</strong>.</p><h3>Consistency</h3><p>Semantic colors ensure consistent use of colors across all components, enhancing both visual and functional coherence.</p>]]></description><pubDate>Mon, 23 Dec 2024 00:00:00 +0000</pubDate><guid>https://imperavi.com/blog/designing-semantic-colors-for-your-system</guid></item><item><title>Creating a color palette for design systems: revised edition</title><link>https://imperavi.com/blog/creating-a-color-palette-for-design-systems-revised-edition</link><description><![CDATA[Some time ago I wrote an article about "<a href="https://imperavi.com/blog/how-to-create-a-color-palette-for-design-systems/">How to create a color palette for design systems</a>". My article had some success and was read by tens of thousands of people. But time does not stand still and I strive for perfection in my work, so I present you an improved and updated article with all the additions and evolution of my approach.<h2>The basics of a color palette</h2><p>A color palette, sometimes referred to as a color scale, is a foundational element in any design project. It comprises a collection of tints and shades that represent the project’s core colors. These colors are then applied across various aspects of design, including UI components, states, illustrations, and the overall visual style. A thoughtfully designed palette streamlines the design process and simplifies routine tasks, ensuring a cohesive and efficient workflow.</p><figure class="mb-10 mx-n8 md:mx-0">
    <img src="https://imperavi.com/data/blog/2-creating-a-color-palette-for-design-systems-revised-edition/01-01.png" srcset="https://imperavi.com/data/blog/2-creating-a-color-palette-for-design-systems-revised-edition/01-01@2x.png 2x">
    <figcaption>Palettes are sets of tints and shades built from a base color.</figcaption>
</figure><p>Crafting an effective color palette is critical. A poorly designed palette can hinder progress and fail to meet the project’s needs. To avoid common pitfalls and save time when selecting tints and shades, we’ll explore a proven method that works universally across all designs and color schemes. This approach will act as a dependable guide, helping you navigate the design process from start to finish.</p><h2>Why you need a system</h2><p>Creating a color palette, especially one with numerous tints and shades, might seem unnecessary. In most types of design, a palette is often just a simple set of a few base colors.</p><figure class="mb-10 mx-n8 md:mx-0">
    <img src="https://imperavi.com/data/blog/2-creating-a-color-palette-for-design-systems-revised-edition/02-01.png" srcset="https://imperavi.com/data/blog/2-creating-a-color-palette-for-design-systems-revised-edition/02-01@2x.png 2x">
    <figcaption>In "physical" design, palettes are usually strictly limited, and that's enough. In UI design, you need a lot of colors to solve the user's needs. Images: Mahdy Hasan Hridoy and Pixsellz on Dribbble.com</figcaption>
</figure><p>But UI design has its own rules and goals. To achieve them, you need to implement diverse components in various contexts, for different design themes, devices, and so on. This requires creating a wide range of shades and expressing many nuances through color.</p><p>That’s why, in interface design, websites, or other informational systems, it’s rare to get by with a palette of just a couple of base colors. It would certainly be desirable—minimalistic, simple in appearance, and likely simple to work with. In fact, there are examples where designers try to follow the principles of minimalism by using a very limited number of colors.</p><figure class="mb-10 mx-n8 md:mx-0">
    <img src="https://imperavi.com/data/blog/2-creating-a-color-palette-for-design-systems-revised-edition/02-02.png" srcset="https://imperavi.com/data/blog/2-creating-a-color-palette-for-design-systems-revised-edition/02-02@2x.png 2x">
    <figcaption>Color specifications for iOS and iPadOS in Apple Human Interface Guidelines.</figcaption>
</figure><p>In the Human Interface Guidelines, Apple provides only a basic set of colors for designing on iOS and iPadOS, along with a few shades of gray. This approach appears clean and minimalist. At first glance, it seems to work without the need for numerous tints and shades.</p><p>However, in reality, those same guidelines include four times as many shades for different design themes and modes. Moreover, in the iOS and iPadOS design systems, you can even find some colors with transparency.</p>]]></description><pubDate>Sat, 07 Dec 2024 00:00:00 +0000</pubDate><guid>https://imperavi.com/blog/creating-a-color-palette-for-design-systems-revised-edition</guid></item><item><title>How to create a color palette for design systems</title><link>https://imperavi.com/blog/how-to-create-a-color-palette-for-design-systems</link><description><![CDATA[
    <p class="text text-large">
        A year later, I wrote <a href="https://imperavi.com/blog/creating-a-color-palette-for-design-systems-revised-edition/">a new article</a> on creating a color palette: an updated and expanded version.
        So, this version is less relevant, though conceptually it’s still solid.
    </p>
<h2>What is a color palette?</h2><p>Color palettes, also known as color scales, are essential for any design project as they consist of a set of tints and shades that define a project's semantic colors. These values are then used to shape the look of UI components, states, illustrations, and overall design style. A well-crafted color palette is a balanced tool that speeds up all design processes and takes care of routine tasks. </p><figure class="mb-10">
    <img src="https://imperavi.com/data/blog/1-how-to-create-a-color-palette-for-design-systems/01-01.png?s" srcset="https://imperavi.com/data/blog/1-how-to-create-a-color-palette-for-design-systems/01-01@2x.png?s 2x">
    <figcaption>Palettes are sets of tints and shades built from a base color.</figcaption>
</figure><p>Creating the perfect color palette is crucial, and sometimes, a wrongly created palette can get in the way of the work and not allow you to realize all the necessary needs of a project. To avoid such typical mistakes when creating a scale and save time picking tints and shades, we will look at a method that always works for any design and color. This method will serve as a reliable assistant throughout the project, from start to finish.</p><h2>Find your base colors</h2><p>Base colors are essential colors that establish the foundation of a design.  They dictate the overall appearance of the project, and serve as the basis for creating tints and shades of palettes. These colors are typically referred to as corporate colors, component states, black and white, specific product colors, accents, and various other purposes.</p><h3>Brand or primary color</h3><p>Choosing a brand or primary color is important for accentuating the main elements of a design. For websites and apps, the main accents are usually the action components such as buttons, links, and captions. </p><figure class="mb-10">
    <img src="https://imperavi.com/data/blog/1-how-to-create-a-color-palette-for-design-systems/02-01.png?s" srcset="https://imperavi.com/data/blog/1-how-to-create-a-color-palette-for-design-systems/02-01@2x.png?s 2x">
    <figcaption>Brand or primary colors are used for buttons, links and text/icon accents.</figcaption>
</figure><p>It's best to select an accent color from your corporate palette for consistency. However, if a suitable color is not available, you can choose any primary color that seems fitting. Don't worry too much about it, you can always change it later if needed. </p><figure class="mb-10">
    <img src="https://imperavi.com/data/blog/1-how-to-create-a-color-palette-for-design-systems/02-02.png?s" srcset="https://imperavi.com/data/blog/1-how-to-create-a-color-palette-for-design-systems/02-02@2x.png?s 2x">
    <figcaption>Brand color can be any color, depends on your project.</figcaption>
</figure><p>After selecting a color, test it on actual components to make sure it works well. Pay special attention to the contrast and brightness of the color. If the color is too bright or dark, adjust the saturation and lightness accordingly. </p>]]></description><pubDate>Thu, 23 Nov 2023 00:00:00 +0000</pubDate><guid>https://imperavi.com/blog/how-to-create-a-color-palette-for-design-systems</guid></item></channel></rss>
