Author Archive

Understanding why Semantic HTML is important, as told by TypeScript

August 15th, 2018 No comments

What a great technological analogy by Mandy Michael. A reminder that TypeScript…

makes use of static typing so, for example, you can give your variables a type when you write your code and then TypeScript checks the types at compile time and will throw an error if the variable is given a value of a different type.

In other words, you have a variable age that you declare to be a number, the value for age has to stay a number otherwise TypeScript will yell at you. That type checking is a valuable thing that helps thwart bugs and keep code robust.

This is the same with HTML. If you use the

everywhere, you aren’t making the most of language. Because of this it’s important that you actively choose what the right element is and don’t just use the default

And hey, if you’re into TypeScript, it’s notable it just went 3.0.

Direct Link to ArticlePermalink

The post Understanding why Semantic HTML is important, as told by TypeScript appeared first on CSS-Tricks.

Categories: Designing, Others Tags:

Creating the “Perfect” CSS System

August 15th, 2018 No comments

My pal Lindsay Grizzard wrote about creating a CSS system that works across an organization and all of the things to keep in mind when starting a new project:

Getting other developers and designers to use the standardized rules is essential. When starting a project, get developers onboard with your CSS, JS and even HTML conventions from the start. Meet early and often to discuss every library, framework, mental model, and gem you are interested in using and take feedback seriously. Simply put, if they absolutely hate BEM and refuse to write it, don’t use BEM. You can explore working around this with linters, but forcing people to use a naming convention they hate isn’t going to make your job any easier. Hopefully, you will be able to convince them why the extra underscores are useful, but finding a middle ground where everyone will participate in some type of system is the priority.

I totally agree and the important point I noted here is that all of this work is a collaborative process and compromise is vital when making a system of styles that are scalable and cohesive. In my experience, at least, it’s real easy to walk into a room with all the rules written down and new guidelines ready to be enforced, but that never works out in the end.

Ethan Marcotte riffed on Lindsay’s post in an article called Weft and described why that’s not always a successful approach:

Broad strokes here, but I feel our industry tends to invert Lindsay’s model: we often start by identifying a technical solution to a problem, before understanding its broader context. Put another way, I think we often focus on designing or building an element, without researching the other elements it should connect to—without understanding the system it lives in.

Direct Link to ArticlePermalink

The post Creating the “Perfect” CSS System appeared first on CSS-Tricks.

Categories: Designing, Others Tags:

How Efficient Logo Designs Influence Clients’ Decisions

August 15th, 2018 No comments
efficient logos

The Logo and the Brand are simply inseparable. A strong logo is as essential for branding as a strong branding is essential for a logo. But there’s one piece that unifies the two: the brand identity. When it comes to creating a successful business, its identity is the foundation that holds everything together.

Brands can be seen as the emotional and intellectual protection of a company. Clients associate their opinion regarding a product or service based on its brand. Here’s where the name of the company, the logo, and its identity plays a major role.

The identity of a business includes all the visual aspects that contribute to making it unique. These include color schemes, packaging, fonts, products, and most important, logos.

The logos are symbols that tell apart any type of organization. We are talking about visual clues that can trigger the emotional responses mentioned earlier. Essentially, the logo’s design represents the brand’s foundation and it is crucial for the visual identity. Some of the best logo designs can make a company world-wide known.

The Siren Design

Let’s think of the undeniable success of the Starbucks’s two-legged mermaid. Chosen initially due to the companies origins, the name Starbuck comes from Moby Dick, and the home city Seattle is built around the harbor. The siren’s logo evolved together with the brand, which became a global reference with over 20,000 store around the world. Its estimated value is 77,87 billion dollars.

efficient logos

Source: LogoDesignLove

After the most recent rebranding process from 2011, the creative team from Starbucks doesn’t feel like the name of the company or the word “coffee” should be on the logo. For this company worth billions, the siren is enough.

She is not a real person, but we kind of think of her as one. She’s the biggest symbol of our brand, really, other than our partners (employees). She’s the face of it,” said Steve Murray, a creative director in the Starbucks Global Creative Studio.

Web design

Starbucks is an amazing example for what a logo with a universal character can do to achieve the success of a global brand. But don’t forget that the logo makes up only a small part of the identity of a company. The market is flooded with businesses nowadays; in order to have a voice in this “chaos,” the companies need to make their brands renown digitally. This begins with incorporating logos in web design.

We live in an era of information that comes in abundantly – a raw truth that is less likely to change any time soon. As a result, transmitting information quickly and clearly is crucial factor in the sustainability of a business on the digital market. Therefore, the digital branding depends on utilizing powerful images that identify, but not explain. These images bring up memories and experiences in the mind of the client in no-time. The images need to be interactive, and are able to bring a brand to life on the screen. The logos are images.

Adding the logos to web design becomes a major party of the global branding. The well created logos have the power to assure a trust and loyalty feeling in relation to the company. Take Apple, Coca-Cola, and Microsoft for example. These giants have a well constructed action plan regarding the integration of the logo in webdesign. Actually, most of the times, their logos act as turn on/off buttons for the website. Not only do they use their logos to stimulate trust in their products, but they also stimulate similar feelings online.

efficient logos

Source: Elmundo

Mobile Apps

We certainly are a digital society. But we also are part of a mobile era. In 2016, the usage of Mobile Data has surpassed internet usage on desktop for the first time in history. Ever since, the usage of mobile data has been increasing steadfastly.

efficient logos

Source: StatCounter

But what determines such dramatic usage of mobile gadgets? Interactivity. The more the digital media continues to grow, the more the requests and the consumers’ need raise. The consumers want interactive experiences that engage them and make the information come to life on their screens.

Let’s review: the efficient logos identify the brand, but do not explain them. The logo is simply the “touch face” that triggers memories in relation to the brand.


How can we conclude all of these? We are part of an economy that constantly changes and evolves. Without efficient web and mobile platforms, any business is inevitably lost and forgotten. The truth is that establishing a firm presence online is essential for your brand. But an online presence and a successful brand requires a solid foundation, a visual identity/ The first step in setting this identity is the make of an well-designed logo.

We hope all this information opened your eyes towards the importance of a good-looking, powerful logo. We welcome any quality design-related content on our blog. If you are interested in having your work featured here, email us at

Read More at How Efficient Logo Designs Influence Clients’ Decisions

Categories: Designing, Others Tags:

Practical CSS Scroll Snapping

August 15th, 2018 No comments

CSS scroll snapping allows you to lock the viewport to certain elements or locations after a user has finished scrolling. It’s great for building interactions like this one:

Live Demo

Browser support and basic usage

Browser support for CSS scroll snapping has improved significantly since it was introduced in 2016, with Google Chrome (69+), Firefox, Edge, and Safari all supporting some version of it.

This browser support data is from Caniuse, which has more detail. A number indicates that browser supports the feature at that version and up.


Chrome Opera Firefox IE Edge Safari
69 No 63 11* 18* 11

Mobile / Tablet

iOS Safari Opera Mobile Opera Mini Android Android Chrome Android Firefox
11.0-11.2 No No No No 60

Scroll snapping is used by setting the scroll-snap-type property on a container element and the scroll-snap-align property on elements inside it. When the container element is scrolled, it will snap to the child elements you’ve defined. In its most basic form, it looks like this:

<div class='container'>
  <section class='child'></section>
  <section class='child'></section>
  <section class='child'></section>
.container {
  scroll-snap-type: y mandatory;

.child {
  scroll-snap-align: start;

This is different to the first version of the spec, which allowed you to set snap-points manually using the repeat keyword:

.container {
  scroll-snap-points-y: repeat(300px);

This method is pretty limited. Since it only allows evenly-spaced snap points, you can’t really build an interface that snaps to different-sized elements. If elements change their shape across different screen sizes, you’re also bound to run into issues.

At the time of this writing, Firefox, Internet Explorer, and Edge support the older version of the spec, while Chrome (69+) and Safari support the newer, element-based method.

You can use both methods alongside each other (if your layout allows it) to support both groups of browsers:

.container {
  scroll-snap-type: mandatory;
  scroll-snap-points-y: repeat(300px);
  scroll-snap-type: y mandatory;

.child {
  scroll-snap-align: start;

I’d argue a more flexible option is to use the element-based syntax exclusively and loading a polyfill to support browsers that don’t yet support it. This is the method I’m using in the examples below.

Unfortunately the polyfill doesn’t come with a browser bundle, so it’s a bit tricky to use if you’re not using a build process. The easiest way around this I’ve found is to link to the script on and initializing it using cssScrollSnapPolyfill() once the DOM is loaded. It’s also worth pointing out that this polyfill only supports the element-based syntax, not the repeat-method.

Parent container properties

As with any property, it’s a good idea to get familiar with the values they accept. Scroll snap properties are applied to both parent and child elements, with specific values for each. Sort of the same way flexbox and grid do, where the parent becomes a “flex” or “grid” container. In this case, the parent becomes a snap container, if you will.

Here are the properties and values for the parent container and how they work.

scroll-snap-type “mandatory” vs. “proximity”

The mandatory value means the browser has to snap to a snap point whenever the user stops scrolling. The proximity property is less strict—it means the browser may snap to a snap point if it seems appropriate. In my experience this tends to kick in when you stop scrolling within a few hundred pixels of a snap point.

See the Pen Scroll-snap-type “Mandatory” vs “Proximity” by Max Kohler (@maxakohler) on CodePen.

In my own work, I’ve found that mandatory makes for a more consistent user experience, but it can also be dangerous, as the spec points out. Picture a scenario where an element inside a scrolling container is taller than the viewport:

If that container is set to scroll-snap-type: mandatory, it will always snap either to the top of the element or the top of the one below, making the middle part of the tall element impossible to scroll to.


By default content will snap to the very edges of the container. You can change that by setting the scroll-padding property on the container. It follows the same syntax as the regular padding property.

This can be useful if your layout has elements that could get in the way of the content, like a fixed header.

Properties on the children

Now let’s move on over to the properties for child elements.


This lets you specify which part of the element is supposed to snap to the container. It has three possible values: start, center, and end.

These are relative to the scroll direction. If you’re scrolling vertically, start refers to the top edge of the element. If you’re scrolling horizontally, it refers to the left edge. center and end follow the same principle. You can set a different values for each scroll direction separated by a space.

scroll-snap-stop “normal” vs. “always”

By default, scroll snapping only kicks in when the user stops scrolling, meaning they can skip over several snap points before coming to a stop.

You can change this by setting scroll-snap-stop: always on any child element. This forces the scroll container to stop on that element before the user can continue to scroll.

At the time of this writing no browser supports scroll-snap-stop natively, though there is a tracking bug for Chrome.

Let’s look at some examples of scroll snap in use.

Example 1: Vertical list

To make a vertical list snap to each list element only takes a few lines of CSS. First, we tell the container to snap along its vertical axis:

.container {
  scroll-snap-type: y mandatory;

Then, we define the snap points. Here, we’re specifying that the top of each list element is going to be a snap point:

.child {
  scroll-snap-align: start;

See the Pen Vertical List by Max Kohler (@maxakohler) on CodePen.

Example 2: Horizontal slider

To make a horizontal slider, we tell the container to snap along its x-axis. We’re also using scroll-padding to make sure the child elements snap to the center of the container.

.container {
  scroll-snap-type: x mandatory;
  scroll-padding: 50%;

Then, we tell the container which points to snap to. To center the gallery, we define the center point of each element as a snap point.

.child {
  scroll-snap-align: center;

See the Pen Horizontal, different sized images by Max Kohler (@maxakohler) on CodePen.

Example 3: Vertical full screen

We can set the snap points directly on the element:

body {
  scroll-snap-type: y mandatory;

Then, we make each section the size of the viewport and define the top edge as a snap point:

section {
  height: 100vh;
  width: 100vw;
  scroll-snap-align: start;

See the Pen Vertical Full-Screen by Max Kohler (@maxakohler) on CodePen.

Example 4: Horizontal full screen

This is the same sort of concept as the vertical version, but with the snap point on the x-axis instead.

body {
  scroll-snap-type: x mandatory;

section {
  height: 100vh;
  width: 100vw;
  scroll-snap-align: start;

See the Pen Horizontal Full-Screen by Max Kohler (@maxakohler) on CodePen.

Example 5: 2D image grid

Scroll snapping can work in two directions at the same time. Again, we can set scroll-snap-type directly on the element:

.container {
  scroll-snap-type: both mandatory;

Then, we define the top-left corner of each tile as a snap point:

.tile {
  scroll-snap-align: start;

See the Pen 2d Snapping by Max Kohler (@maxakohler) on CodePen.

Some thoughts on user experience

Messing with scrolling is risky business. Since it’s such a fundamental part of interacting with the web, changing it in any way can feel jarring—the term scrolljacking used to get thrown around to describe that sort of experience.

The great thing about CSS-based scroll snapping is that you’re not taking direct control over the scroll position. Instead you’re just giving the browser a list of positions to snap in a way that is appropriate to the platform, input method, and user preferences. This means a scrolling interface you build is going to feel just like the native interface (i.e using the same animations, etc.) on whatever platform it’s viewed on.

To me, this is the key advantage of CSS scroll snapping over JavaScript libraries that offer similar functionality.

This works fairly well in my experience, especially on mobile. Maybe this is because scroll snapping is already part of the native UI on mobile platforms. (Picture the home screens on iOS and Android—they’re essentially horizontal sliders with snap points.) The interaction on Chrome on Android is particularly nice because it feels like regular scrolling, but the viewport always happens to come to a stop at a snap point:

There’s definitely some fancy maths going on to make this happen. Thanks to CSS scroll snapping, we’re getting it for free.

Of course, we shouldn’t start throwing snap points onto everything. Things like article pages do just fine without them. But I think they can be a nice enhancement in the right situation—image galleries, slideshows seem like good candidates, but maybe there’s potential beyond that.


If done thoughtfully, scroll snapping can be a useful design tool. CSS snap points allow you to hook into the browser’s native scrolling interaction, so your interface feel seamless and smooth. With a JavaScript API potentially on the horizon, these are going to become even more powerful. Still, a light touch is probably the way to go.

The post Practical CSS Scroll Snapping appeared first on CSS-Tricks.

Categories: Designing, Others Tags:

8 Design Mistakes That Spell Disaster

August 15th, 2018 No comments

Just like anything else, product design can be done well, and it can be done poorly. When a product is designed well, users don’t notice it. But when a product is designed poorly, users not only notice, but also complain.

In this article, I want to share five the most common things that lead to bad product design.

1. Adding Too Many Features to a Product

All too often designers think about features as a synonymous with value. They believe that the more features they add to the product, the more valuable it adds for the user. As a result, a lot of products are designed with too many unnecessary features which detract from the product’s primary purpose. This effect is known as feature creep—a continuous addition of new product features beyond the original scope.

Here are two tips that will help you avoid this common pitfall:

  • When designing a product, it’s important to focus on its core value. Identify what’s most important and prioritize it. Cut any feature or content that doesn’t drive towards this value.
  • Ask ‘why’ instead of ‘how.’ When starting working on a new product, the biggest question should be not how we design a particular feature but why need to design it.

2. Skipping the Prototyping Phase

‘Why we need to create a prototype when we can create a real product and test it on the market?’ By thinking in this way, designers put the maximum effort on creating a high fidelity design that they ship on the market. Unfortunately, after the market release product team often realize that some parts of the design need to be changed. And the cost of the change often will be significant because the team will need to modify the real product, not a paper or digital prototype.

Prototyping helps product teams to test product design prior to market release. Testing can be done with real users. According to the NNGroup, testing with five users identifies 85% of usability problems. That’s why the results of the testing will make it clear whether the design works for users or not.

3. Becoming too Attached to a Design

It’s not that rare when designers fall in love with a design they create. When designers become too attached to design elements, it’s difficult to redesign or get rid of them. It becomes extremely hard to comprehend the critiques—designers start to take it personally. As a result, design decisions become too biased. The effect is known as confirmation bias—when designers search for, interpret, favor, and recall information in a way that confirms their preexisting beliefs.

It is possible to minimize the effect of confirmation bias by inviting designers into user testing sessions. Nothing can be compared with a feeling when you see a real person interact with a product you’ve designed. It helps designers realize that they design for their users, not for themselves. As a result, it becomes much easier to adjust design according to the user needs.

4. Making Assumptions instead of Conducting Proper Research

Almost everybody who designs digital products had a moment when they say “I am a user too, so I know what is good or bad for users.” After that designers come up with assumptions—assumptions about what can make the user live better.

It’s great when designers have personal feelings, but it’s wrong when designers allow personal feelings take over the process. Every design decision, no matter how it was arrived at, still needs to be verified. It’s excellent when design decisions are a result of user research. It’s much better when you clearly understand what your users need and then design based on that.

5. Not Involving Users in the Design Process

No matter whether a team is refining an existing product or designing a brand new product, it’s always essential to harness users in the process of knowledge exploration. Bad design is often a result of not thinking adequately about end users’ needs.

UX practitioners should not only gather knowledge about users, but they also share this information with stakeholders. It will help to create a shared understanding of real user needs.

6. Thinking about Design as a Linear Process

Some product teams believe that product design is a linear process which starts with ideation and ends with a product release. Following this process, they establish a goal at the beginning and strive to ship a product that is designed according to the goal.

In reality, product design is a highly iterative process—to release a product with excellent user experience, designers have to try a lot of different approaches before selecting the one that will be the best for their users. They might even adjust the goal, when they see that it’s required.

7. Not Building a Collaborative Environment

In a team that has a problem with collaboration, designers and developers don’t have a shared understanding of what they want to achieve. As a result, designers and developers stay in their silos.

Focus on creating a close collaboration between design and technical team members. Instead of design and development being sequential, these two activities should go in parallel.

8. Trying to Reinvent the Wheel

‘It’s boring to do something that everyone else is doing.’ With such idea, many designers have a temptation to try and reinvent the wheel — to design something new, something that nobody tried before. But what designers forget is that there are many solutions on the market, and each demands our time. With each product that has different interactions, users need to learn it. In our fast-paced world, users often don’t have to learn how to use a new product.

Before reinventing the wheel, designers have to evaluate the effort required from the users’ side. In most cases, the effort will be significant. As a result, it’s much safer to design familiar—creating a design that will be familiar for the majority of users.

Add Realistic Chalk and Sketch Lettering Effects with Sketch’it – only $5!


Categories: Designing, Others Tags:

20 Free Useful Photoshop Tutorials to Create Websites

August 14th, 2018 No comments
Useful Photoshop Tutorials

“I like the color very much, but can you change it? This is the kind of style I want for my website, with a little bit of 90’s, indie, minimalist, and elegance added to it. Can we change… like everything?” These useful Photoshop tutorials we are featuring today will teach you how to avoid such commentaries from your clients.

It’s not that easy to create a website design from scratch. Websites have a lot of tiny details which need your attention. Besides, there are always a lot of requirements from your clients. I bet you’ve heard “I will know if I like it when I see it” dozens of times. Designing a website has strict steps, such as creating a header and footer, but sometimes you need to think out of the box, as well.

Here is a list of 20 useful free Photoshop tutorials which will help you create simple websites today. It will come in handy for beginner designers who just started their way and want to improve their skills. You’re going to learn how to create a simple grid-based layout, design a stylish timeline portfolio, and build vintage-styled site. With no further ado:

1. Design a Stylish Timeline Portfolio Page Using Photoshop

2. Designing a Simple Instagram Based Portfolio in Photoshop


3. Create a Watercolor-Themed Website Design with Photoshop


4. Designing a “Coming Soon” Page in Photoshop


5. Designing an Elegant Blog Layout in Photoshop


6. Design an Elegant Photography Website in Photoshop


7. Create a Nature Inspired Painted Background in Photoshop


8. Design a Forest Inspired Tumblr Theme in Photoshop


9. How to create a distinguishable textured web layout in Photoshop


10. Design a clean sports web layout in magazine-style with Photoshop


11. Complete Guide to Creating a Blog Website Layout


12. How To Create a Sleek Grid Based Website Design


13. How to create a vintage Photoshop file


14. Design a Warm, Cheerful Website Interface in Adobe Photoshop


15. Make a Stylishly Elegant Portfolio Web Design in Photoshop


16. How to Make a Beautiful Landing Page with Photoshop


17. Create an Elegant Portfolio Web Design in Photoshop


18. How to create a professional and clean web layout (with PSD-to-HTML conversion)


19. Design a Clean e-Commerce Website Interface in Photoshop


20. Design a Textured Outdoors Website in Photoshop


If these tutorials helped your work process flow smoother, we would highly appreciate if you shared them with your fellow graphic designers and web developers. You never know when you help a friend in need. Also, visit us every day for more snippets of advice, tips, and inspiration.

Read More at 20 Free Useful Photoshop Tutorials to Create Websites

Categories: Designing, Others Tags:

An Event Apart

August 14th, 2018 No comments

Just the other day in a Slack group I hang out in someone asked “what web design events is everyone going to and loving?” An Event Apart is always my immediate answer. I’ve gotten to speak a number of An Event Apart events, which is an incredible honor and always a good time. So from that perspective, I love it. I can tell you that it’s the most well-run conference I go to that gets all the details right.

But I’ve also attended An Event Apart as a paying attendee and loved that. There is something about An Event Apart that gets the speakers to really bring their A-game, and you get to watch that A-game over and over for a couple of days.

Upcoming Events in 2018:

About AEA

Learn from the best: An Event Apart’s speakers aren’t merely industry leaders with years of experience and deep insight. They’re also engaging, inspiring thinkers who are passionate about sharing what they’ve learned and helping you level up your skills.

And because our editorial team works closely with those speakers, you’ll find that each presentation sheds light on the next—that the event is not merely a collection of disparate talks, but a curated, cutting-edge curriculum for the modern designer, coder, and strategist. A curriculum that continues after the conference ends, with slides, articles, videos, and other resources shared freely on our website.

At An Event Apart, you won’t just learn what’s happening right now. You’ll also look ahead to what’s next. Topics people heard about on our stage before the rest of the industry knew they were coming: responsive web design, mobile-first practices, content strategy, responsive content strategy, and, now, intrinsic web design and variable fonts.

To design a better experience, attend a better-designed UX conference.

AEA Discount Code

Make sure to use AEACP to get $100 of any 2 or 3 day event!

The post An Event Apart appeared first on CSS-Tricks.

Categories: Designing, Others Tags:

The possibilities of the color-adjust property

August 14th, 2018 No comments

The Open Web continues to show up in places we would have never originally expected to find it: our phones, televisions, watches, books, video game consoles, fast food menus, gas pumps, elevators, cars—even our refrigerators.

By not making too many or too strict assumptions about how the web should be used, it remains flexible and adaptable. These qualities have allowed it to outperform closed technologies like Flash and Silverlight.

With the web’s growth comes new features to better accommodate its new form factors and use cases. One feature I’m excited about is the color-adjust property, proposed in CSS Color Module Level 4. It is an acknowledgement that the web will continue to show up on devices that have less-than-stellar displays.

There are two values for color-adjust: economy and exact. A value of exact tells the browser it shouldn’t make adjustments to the colors declared in the stylesheet:

.card { 
  background-color: #98b3c7;
  border-bottom: 0.25rem solid #7c92a3;
  color: #f3f3f3;
  color-adjust: exact;

The color-adjust: exact; declaration in this example forces the browser to render all colors as accurately as possible on anything with a class of card applied to it. Accurate meaning being as close as possible based on the host device’s best ability.

The description for the economy value in the specification reads as, “The user agent should make adjustments to the page’s styling as it deems necessary and prudent for the output device.” It places trust in the browser’s hands, allowing it to make adjustments to color values as it sees fit.

Best ability

Handing control over to a browser might seem a little scary at first. As an industry, we’re really great at bikeshedding the heck out of color systems. And that’s a great thing! The use of color, including proper contrast ratios, is an incredibly important aspect of design, and can oftentimes make or break a product.

But we need to understand that our platonically ideal design might not be able to be experienced in the real world as intended. Not everyone owns a device that outputs to a Retina display with a luxurious DCI-P3 color space; nor do they always have perfect vision or ideal lighting conditions. In these kinds of circumstances, it’s better to bend, not break.

We now live in a Mobile, Small, Portrait, Slow, Interlace, Monochrome, Coarse, Non-Hover, First world. Limited color displays aren’t as rare as you think, and are probably only going to get more commonplace as time goes on. I’d especially like to call attention to the rise of internet use by low income populations and emerging markets. With that comes cheaper devices with lower-quality displays.

Browser support

At the time of this article’s publishing, color-adjust has been supported since Firefox 48 (and Android Firefox 60):

This browser support data is from Caniuse, which has more detail. A number indicates that browser supports the feature at that version and up.


Chrome Opera Firefox IE Edge Safari
19* 15* 48 No 18 6*

Mobile / Tablet

iOS Safari Opera Mobile Opera Mini Android Android Chrome Android Firefox
12 No No 67 67 60

Chrome and Safari, both WebKit browsers, require a vendor-prefixed declaration of -webkit-print-color-adjust. Curiously, -webkit-print signals that their implementation of this property is only intended for print. While the W3C documentation does mention use cases for printing, it is phrased in such a way as to not be limited to it.

People still print webpages! Paper doesn’t require a data plan, nor does its connection drop when you go underground. Just yesterday, I saw someone on the train who was using a collection of printed sites to study for their next exam. And here’s your galaxy brain moment: printed pages are just limited color displays.

I’d also be remiss if I didn’t mention situations where print styles are missing or poorly-authored, potentially forcing a printer to waste ink in an attempt to do what the stylesheet asks of it. Printer ink is hideously expensive—minding this does your (or your IT department’s) budget a solid.

Potential uses

Before we get any further, I want to state the following is all personal theorizing based off the phrasing in the W3C specification—targeting, but not limited to printing.

I think color-adjust could be one of those properties that could find a home explicitly declared in the body selector, where it can best take advantage of the Cascade:

body {
  color-adjust: economy;

This declaration says, “Every time I declare color in this website, use the values I specify. If you can’t, that’s cool—do what you think is best.” That’s a lot better than the browser trying to literally interpret styling instructions at all cost, potentially rendering the page as completely illegible.

You could declare color-adjust in a more specific way, say nested in a @supports at-rule inside of a print media query, but that’s unnecessary extra work. It would fail to accommodate things like High Contrast Mode and the upcoming color gamut media feature. Better to embrace the unknown and cast a wide net.

I’m also very curious to see how color-adjust could work in conjunction with other browser capabilities, say the Ambient Light Sensor API (RIP Battery Status API). It’d be neat if there were opportunities to experiment with other specialized display modes—macOS’ Night Shift, Increased Contrast, Grayscale, and Reduce Transparency options all come to mind.

A note about accessibility

I’m wondering if software (browser preference toggle or extension, bookmarklet, etc.) could be written to override what the device’s hardware reports itself as being. Much like User Agent spoofing, it could “trick” a browser into thinking it has a limited color display, using economy to force better contrast between text and background color. This would be a lot like some browser’s reading modes, only page layout would be better preserved.

That being said, I don’t think color-adjust is a silver bullet for all color-related accessibility concerns. We can’t always know the device and context our websites and web apps will show up in, including what colors color-adjust would ultimately render as. Because of this, it’s still important to mind your color contrast ratios.

Bending, not breaking

color-adjust feels like a natural extension of Jen Simmons’ Intrinsic Web Design: fluid and squishy UI, proportional sizing, media queries as needed, and simple declarations that do the heavy lifting.

The beauty of the CSS Cascade means you can gracefully create intent, then adjust as needed. color-adjust‘s documentation specifically mentions a situation where it could be useful to ensure a table’s zebra striping is is retained when printed to make it easier to read. Such a tweak can be scoped to a single selector, without having to spend time undoing it for every other component.

body {
  color-adjust: economy;

tr {
  color-adjust: exact;

The beauty of CSS’ fault tolerance means browsers that don’t understand this declaration will ignore it and continue parsing the rest of of the stylesheet. Browsers that do support it can take advantage of it, without any complicated build tool configuration or dangerous User Agent sniffing.

It is important to make our web sites and web apps design adapt to the user’s environment and circumstances, and not the other way around. Good user experiences meet the user where they are, not where we hope they’ll be.

The post The possibilities of the color-adjust property appeared first on CSS-Tricks.

Categories: Designing, Others Tags:

Create Beautiful Websites Easily with YOOtheme Pro

August 14th, 2018 No comments

YOOtheme Pro is a premium site builder from YOOtheme. The culmination of over a decade of design and development for WordPress and Joomla, it’s a professional-grade solution for creating and managing beautiful websites.

Every client loves the power of a content management system, but not all clients have the same needs, challenges, or priorities. YOOtheme Pro is one of only a handful of solutions that embraces both WordPress, and Joomla, giving your clients the choice they value and opening up a wider market for professional web designers.

YOOtheme Pro gives you the flexibility to create any type of content, anywhere in your design; It provides an intuitive drag and drop interface that allows you to add, edit, rearrange, and delete content at will; Best of all it allows clients to maintain content in the same familiar CMS dashboard that they’re familiar with.


YOOtheme Pro for Designers

YOOtheme Pro has been built to help designers maximize the time they spend being creative. It provides beautiful presets, stunning layouts, and battle-tested design patterns that fast track your design process.

Designing your site is simple thanks to the drag and drop interface, and real-time changes in the live preview ensure you’ll always end up with exactly what you intended. YOOtheme Pro is particularly adept at producing minimal design. Adored by designers and clients alike, the simplicity of minimalism, and its proven effectiveness in UX, will be engaging for years to come; delivering timeless, robust design that outlasts short-lived trends.

When you’re happy with your site design, it’s ready to go, no fuss, no delays, and no expensive developers. You can even save sections in your library to be reused on other projects, making sure that next time it will be even easier to be launch-ready.

YOOtheme Pro for Developers

YOOtheme Pro is just as beneficial for developers as it is for designers. The code engine produces high-quality semantic code that not only meets best practices, but is ideal for search engine ranking too.

The codebase is also designed to be extensible, so you can easily build on what is output. YOOtheme Pro provides hundreds of site feature options, but for anything you can’t simply drop in, you can add custom JavaScript, or CSS and Less. The style customizer allows you to create your own master style, and you can customize the UI components on your site using YOOtheme’s open source UI kit—the aptly named UIKit. You even benefit from access to over 600 Google Fonts, which are stored locally, giving you a boost in your Google PageSpeed ranking.

All sites that YOOtheme Pro outputs are fully responsive, with a grid that responds to the viewport, meaning that your site will function perfectly on any device.

YOOtheme Pro even fully supports WooCommerce, WordPress’ most popular shop option, so you can develop e-commerce sites with ease.

YOOtheme Pro for Business

YOOtheme Pro includes over a hundred page layouts, crafted by professional designers, that allow you to select a pre-designed layout for your content and simply slot it in.

There are over 30 distinct elements that can easily be added to any YOOtheme Pro site, ranging from simple image holders, to full galleries, from social media links, to blockquotes. If they aren’t enough to meet your needs, you can add custom elements for truly unique content.

There are over 60 different master styles to choose from; switch between styles at will, and watch your site update before your eyes. Feel free to get creative, safe in the knowledge that you can revert back at any time.

The pre-made themes all come with access to carefully curated, free-to-use images, so you don’t even need to worry about gathering content for your site. Additionally, YOOtheme Pro seamlessly integrates the popular Unsplash library that provides quality, free-to-use photos. You can search through the library without having to leave YOOtheme Pro.

Get YOOtheme Pro

Starting from just €49 (approx. $57), YOOtheme Pro is one of the most comprehensive site builders on the market.

Whether you choose to develop for WordPress or Joomla, the same intuitive interface will help you build a beautiful site in minutes.

For designers and developers, there are few simpler ways to design and build modern, CMS-powered websites.

[– This is a sponsored post on behalf of YOOtheme –]

Add Realistic Chalk and Sketch Lettering Effects with Sketch’it – only $5!


Categories: Designing, Others Tags:

What is the Difference Between Lean and Design Thinking?

August 14th, 2018 No comments

I get this question a lot.

The next question after that would be: aren’t they the same?

I posted this question on my twitter feed and here are some great replies. Thanks guys!

Apples and oranges. Lean and agile are methodologies for the product development process. DT is about understanding the user from step 1, whether that is in the product process, the strategy process, or any other business aspect. Much more broad than lean or agile.

— Santiago Castillo (@Casti_io) July 16, 2018

All think of the client, DT focuses on the feeling and the experience, lean more for smoother process. Perhaps in agile and lean, aesthetics don’t have as much value? Many differences, but hard to put on words. All are i.e. user centric but a bit differently

— Irina Kujanpää (@IKujanpaa) July 8, 2018

I’m not going to go into the details of each process as there are tons of great articles written on it. The value-add I can offer is to discuss these two process at a conceptual level so that we may understand when and how best to apply them.

The reason for much of the confusion is that there are a lot of similarities between the two processes. I like to describe Lean and Design Thinking as 2 sides of the same coin, but the context of use is very different. What does not help is when presentations I have seen on Lean methodology uses Design Thinking as part of their repertoire of tools.

So both take a human-centered approach to understand what customers or stakeholders require, and then redirecting the focus on delivering to what they want. Both processes use an iterative methodology as a way to learn, refine and validate our offerings to ensure that they are correct. But the similarities go as far as this.

The way I usually explain the difference is as follows:

Lean focuses on optimising a process by removing waste so that you can deliver on the best experience as possible for your customer. This assumes that this “experience” is right for your customer in the first place. Design Thinking is what you use to determine if it’s right or not.

To expand on this, Lean (as described by a good friend at IBM) is a project management methodology that allows for quick changes or improvements, with a focus on delivering the highest quality product or solution. Design Thinking asks a simple question: knowing now what our customers are looking for, what are our opportunities for our business so that we can continue to remain relevant to our customers in the future.

Here is a handy table for your conscious consumption.

I love to hear your thoughts, please do drop me a message below if you have any.

The post What is the Difference Between Lean and Design Thinking? appeared first on Design Sojourn. Please click above if you cannot see this post.

Categories: Designing, Others Tags: