We all know this piece of popular wisdom: “The devil is in the details”. Designers all know how true it is. Obviously, a poorly designed project will not be saved by thoughtfully designed details, but a well-designed project can be ruined by overlooked details.
This is particularly true for branding projects, that’s the reason why we have to hire a professional brand design agency for important projects. This kind of agency knows the importance of consistency and carefulness in branding design.
Don’t go wild in your font choice
Ask any graphic designer, he will tell you that typography is crucial to any good printed design. This also goes for digital projects, of course.
When you choose the typefaces that you will use in your branding project, make sure that you don’t go over two fonts, maximum three. You can make some tests to see how well they match, then stick to it. Having different fonts on packages than on your letterheads or banners is out of question.
Remember, your clients should be able to recognize your brand at first look, even if your design is in black-and-white.
Stay consistent with colors
The advice given above about font use can also apply to colors. Yes, you can use crazy and bold colors, but you should use it consistently and make sure you stay recognizable.
Clients associate a brand with colors. To be more accurate, they associate a brand with a color AND a color scheme. This means that you should be careful when adding new colors to your branding’s color scheme, as it can have a big impact on the brand.
Stick to your narrative
Your brand tells a story that your clients and prospects should instantly understand by the messages you are sending them. For example, nothing says environment-friendly like craft or recycled paper.
Each choice you are making, whether it’s the way you package your product or the medium chosen communicate, should follow that narrative and assure your clients of your branding.
We all know this piece of popular wisdom: “The devil is in the details”. Designers all know how true it is. Obviously, a poorly designed project will not be saved by thoughtfully designed details, but a well-designed project can be ruined by overlooked details.
This is particularly true for branding projects, that’s the reason why we have to hire a professional brand design agency for important projects. This kind of agency knows the importance of consistency and carefulness in branding design.
Don’t go wild in your font choice
Ask any graphic designer, he will tell you that typography is crucial to any good printed design. This also goes for digital projects, of course.
When you choose the typefaces that you will use in your branding project, make sure that you don’t go over two fonts, maximum three. You can make some tests to see how well they match, then stick to it. Having different fonts on packages than on your letterheads or banners is out of question.
Remember, your clients should be able to recognize your brand at first look, even if your design is in black-and-white.
Stay consistent with colors
The advice given above about font use can also apply to colors. Yes, you can use crazy and bold colors, but you should use it consistently and make sure you stay recognizable.
Clients associate a brand with colors. To be more accurate, they associate a brand with a color AND a color scheme. This means that you should be careful when adding new colors to your branding’s color scheme, as it can have a big impact on the brand.
Stick to your narrative
Your brand tells a story that your clients and prospects should instantly understand by the messages you are sending them. For example, nothing says environment-friendly like craft or recycled paper.
Each choice you are making, whether it’s the way you package your product or the medium chosen communicate, should follow that narrative and assure your clients of your branding.
The subject of scaling CSS came up a lot in a recent ShopTalk Show with Ben Frain. Ben has put a lot of thought into the subject, even writing a complete book on it, Enduring CSS, which is centered around a whole ECSS methodology.
He talked about how there are essentially two solutions for styling at scale:
Total isolation
Total abstraction
Total isolation is some version of writing styles scoped to some boundary that you’ve set up (like a component) in which those styles don’t leak in or out.
Total abstraction is some version of writing styles that are global, yet so generic and re-usable, that they have no unintended side effects.
Total isolation might come from <style scoped> in a .vue file, CSS modules in which CSS class selectors and HTML class attributes are dynamically generated gibberish, or a CSS-in-JS project, like glamerous. Even strictly-followed naming conventions like BEM can be a form of total isolation.
Total abstraction might come from a project, like Tachyons, that gives you a fixed set of class names to use for styling (Tailwind is like a configurable version of that), or a programmatic tool (like Atomizer) that turns specially named HTML class attributes into a stylesheet with exactly what it needs.
It’s the middle ground that has problems. It’s using a naming methodology, but not holding strictly to it. It’s using some styles in components, but also having a global stylesheet that does random other things. Or, it’s having lots of developers contributing to a styling system that has no strict rules and mixes global and scoped styles. Any stylesheet that grows and grows and grows. Fighting it by removing some unused styles isn’t a real solution (and here’s why).
Note that the web is a big place and not all projects need a scaling solution. A huge codebase with hundreds of developers that needs to be maintained for decades absolutely does. My personal site does not. I’ve had my fair share of styling problems, but I’ve never been so crippled by them that I’ve needed to implement something as strict as Atomic CSS (et al.) to get work done. Nor at at any job I’ve had so far. I see the benefits though.
Imagine the scale of Twitter.com over a decade! Nicolas has a great thread where he compares Twitter’s PWA against Twitter’s legacy desktop website.
The legacy site’s CSS is what happens when hundreds of people directly write CSS over many years. Specificity wars, redundancy, a house of cards that can’t be fixed. The result is extremely inefficient and error-prone styling that punishes users and developers alike.
I find GraphQL extremely fun and empowering tech to work with, even as a novice just getting started. You’ve probably heard the elevator pitch before: it allows you to ask for exactly the data you need whenever you need it (probably at the component level), and it arrives as lovely JSON data for your usage.
I see it used as part of modern website builds all the dang time. The overall vibe is, „I want to do whatever I want on the front end, and that actually allows for more back-end choices as well.” And by „whatever” on the front end, that generally means a fancy SPA-ish JavaScript-powered thing or a static-site generator-ish thing.
Here’s a quick smattering of articles that are everywhere these days. Instead of the actual article titles, I’ll rename with the stack parts.
I find GraphQL extremely fun and empowering tech to work with, even as a novice just getting started. You’ve probably heard the elevator pitch before: it allows you to ask for exactly the data you need whenever you need it (probably at the component level), and it arrives as lovely JSON data for your usage.
I see it used as part of modern website builds all the dang time. The overall vibe is, „I want to do whatever I want on the front end, and that actually allows for more back-end choices as well.” And by „whatever” on the front end, that generally means a fancy SPA-ish JavaScript-powered thing or a static-site generator-ish thing.
Here’s a quick smattering of articles that are everywhere these days. Instead of the actual article titles, I’ll rename with the stack parts.
Using render props in React is a technique for efficiently re-using code. According to the React documentation, „a component with a render prop takes a function that returns a React element and calls it instead of implementing its own render logic.” To understand what that means, let’s take a look at the render props pattern and then apply it to a couple of light examples.
The render props pattern
In working with render props, you pass a render function to a component that, in turn, returns a React element. This render function is defined by another component, and the receiving component shares what is passed through the render function.
Imagine, if you will, that our App is a gift box where App itself is the bow on top. If the box is the component we are creating and we open it, we’ll expose the props, states, functions and methods needed to make the component work once it’s called by render().
The render function of a component normally has all the JSX and such that form the DOM for that component. Instead, this component has a render function, this.props.render(), that will display a component that gets passed in via props.
In the Wrapper component, we specify the methods and state what gets exposed to the wrapped component. For this example, we need the increment and decrement methods. We have our default count set as 0. The logic is to either increment or decrement count depending on the method that is triggered, starting with a zero value.
If you take a look at the return() method, you’ll see that we are making use of this.props.render(). It is through this function that we pass methods and state from the Wrapper component so that the component that is being wrapped by it will make use of it.
To use it for our App component, the component will look like this:
The gain lies in the reusable power of render props, let’s create a component that can be used to handle a list of data which is obtainable from an API.
What do we want from the wrapper component this time? We want to pass the source link for the data we want to render to it, then make a GET request to obtain the data. When the data is obtained we then set it as the new state of the component and render it for display.
The data link will be passed as props to the Wrapper component. When we get the response from the server, we update list using what is returned from the server. The request is made to the server after the component mounts.
You can see that we pass the link as a prop, then we use ES6 de-structuring to get the state of the Wrapper component which is then rendered. The first time the component loads, we display loading text, which is replaced by the list of items once we get a response and data from the server.
The App component here is a class component since it does not manage state. We can transform it into a functional stateless component.
THE ORIGINAL? Volkswagen – City Emergency Brake – 2015
“It’s important to stop at the right moment”
Source : Coloribus
Agency : GMP Bucharest (Romania)
LESS ORIGINAL Mercedes Brake Assist –2018 “Brakes when it matters…”
Source : Adsoftheworld
Agency : Miami Ad School (GER)
THE ORIGINAL? Volkswagen – City Emergency Brake – 2015
“It’s important to stop at the right moment”
Source : Coloribus
Agency : GMP Bucharest (Romania)
LESS ORIGINAL Mercedes Brake Assist –2018 “Brakes when it matters…”
Source : Adsoftheworld
Agency : Miami Ad School (GER)
THE ORIGINAL? Volkswagen – City Emergency Brake – 2015
“It’s important to stop at the right moment”
Source : Coloribus
Agency : GMP Bucharest (Romania)
LESS ORIGINAL Mercedes Brake Assist –2018 “Brakes when it matters…”
Source : Adsoftheworld
Agency : Miami Ad School (GER)
In this tutorial, you will learn how to create an amazing rain photo effect in Adobe Photoshop. I will explain everything in so much detail that anyone can create it, even those who have just opened Photoshop for the first time.
The effect shown above is the one I will show you how to create in this tutorial. If you would like to create the even more advanced rain effect shown below, using just a single click and in only a few minutes, then check out my Dark Knight Photoshop Action.
What You’ll Need
To recreate the design above, you will need the following resources:
First, open the photo that you want to work with. To open your photo, go to File > Open, choose your photo, and click Open. Now, before we get started, just check a couple of things:
Your photo should be in RGB Color mode, 8 Bits/Channel. To check this, go to Image > Mode.
For best results, your photo size should be 2000–4000 px wide/high. To check this, go to Image > Image Size.
Your photo should be the Background layer. If it is not, go to Layer > New > Background from Layer.
2. How to Create the Rain
Step 1
In this section, we are going to create the rain. Go to Layer > New > Layer to create a new layer and name it Temp_1.
Step 2
Now press D on your keyboard to reset the swatches. Then, go to Edit > Fill and set Contents to Foreground Color, Mode to Normal, and Opacity to 100%.
Step 3
Go to Filter > Noise > Add Noise. Set the Amount to 20% andDistribution to Uniform, and check the Monochromatic option.
Step 4
Now go to Filter > Filter Gallery > Artistic > Paint Daubs and set the Brush Size to 5, Sharpness to 0, and Brush Type to Wide Blurry.
Step 5
Go to Filter > Filter Gallery > Texture > Grain and set the Intensity to 45, Contrast to 85, and Grain Type to Soft.
Step 6
Now go to Image > Auto Tone. Then, go to Image > Adjustments > Threshold and set the Threshold Level to 128.
Step 7
Go to Select > Color Range and set Select to Highlights, Fuzziness to 20%, and Range to 190.
Step 8
Now go to Layer > Layer Mask > Reveal Selection to add a layer mask that reveals the selected area of the layer.
Step 9
Right-click on the layer mask and choose Apply Layer Mask. Then, press Control-T on your keyboard and set the Width and Height of the layer to 103% as shown below:
Step 10
Now go to Filter > Blur > Motion Blur and set the Angle to 45° and Distance to 20 px.
Step 11
Press Control-J on your keyboard to duplicate this layer. Then, go to Filter > Blur > Gaussian Blur and set the Radius to 0.5 px.
Step 12
Now Control-click on the Temp_1 layer to select both layers at the same time and press Control-E on your keyboard to merge them into one layer. Then, name this layer Rain_1.
Step 13
Press Control-J on your keyboard to duplicate this layer. Then, press Control-T and set the Width and Height of the layer to 135% and the Angle to -1° as shown below:
Step 14
Now press Control-J on your keyboard twice to duplicate this layer twice. Then, Shift-click on the Rain_1 copy layer to select all layers in between, and press Control-E to merge them into one layer.
Step 15
Control-click on this layer thumbnail to make a selection of this layer. Then, go to Layer > Layer Mask > Reveal Selection to add a layer mask that reveals the selected area of the layer.
Step 16
Now press Control-J on your keyboard twice to duplicate this layer twice. After that, Shift-click on the Rain_1 copy 3 layer to select all layers in between, and press Control-E to merge them into one layer.
Step 17
Now go to Filter > Blur > Gaussian Blur and set the Radius to 1 px.
Step 18
Press Control-T on your keyboard and set the Angle to -3° as shown below:
Step 19
Now press Control-J on your keyboard five times to duplicate this layer five times. Then, Shift-click on the Rain_1 copy 5 layer to select all layers in between, and press Control-E to merge them into one layer.
Step 20
Control-click on this layer thumbnail to make a selection of this layer. Then, go to Layer > Layer Mask > Reveal Selection to add a layer mask that reveals the selected area of the layer.
Step 21
Now Right-click on the layer mask and choose Apply Layer Mask. Then, Control-click on this layer thumbnail to make a selection of this layer again. After that, go to Layer > Layer Mask > Reveal Selection to add a layer mask that reveals the selected area of the layer.
Step 22
In the Properties panel, set the Density of the layer mask to 80%.
Step 23
Now Right-click on the layer mask and choose Apply Layer Mask. Then, change the Opacity of this layer to 80%, name it Rain_2, and drag it just below the Rain_1 layer in the Layers panel.
Step 24
Press Control-J on your keyboard to duplicate this layer. Then, drag this layer to the top of the layers in the Layers panel. After that, go to Edit > Transform > Flip Horizontal and then to Edit > Transform Flip Vertical to flip this layer both horizontally and vertically.
Step 25
Now press Control-T on your keyboard and set the Width and Height of the layer to 150% as shown below:
Step 26
Press Control-A on your keyboard to make a selection of the whole canvas. Then, go to Layer > Layer Mask > Reveal Selection to add a layer mask that reveals the selected area of the layer.
Step 27
Now Right-click on the layer mask and choose Apply Layer Mask. Then, press Control-T and set the Width and Height of the layer to 180% and the Angle to -2° as shown below:
Step 28
Now go to Filter > Blur > Gaussian Blur and set the Radius to 5 px.
Step 29
Name this layer Rain_3 and drag it just below the Rain_2 layer in the Layers panel.
Step 30
Now select the Rain_1 layer and go to Layer > Layer Mask > Reveal All to add a layer mask that reveals the whole layer. Then, press D on your keyboard to reset the swatches and go to Filter > Render > Clouds.
Step 31
Now repeat the previous step for the Rain_2 and Rain_3 layers.
3. How to Make the Final Adjustments
Step 1
In this section, we are going to make some final adjustments. Select the Rain_1 layer, go to Layer > New Adjustment Layer > Curves to create a new selective color adjustment layer and name it Color Look.
Step 2
Now Double-click on this layer thumbnail and in the Properties panel enter the settings below:
Step 3
Press D on your keyboard to reset the swatches. Then, go to Layer > New Adjustment Layer > Gradient Map to create a new gradient map adjustment layer and name it Overall Contrast.
Step 4
Now change the Blending Mode of this layer to Overlay and set the Opacity to 21%.
Step 5
Go to Layer > New Adjustment Layer > Levels to create a new levels adjustment layer, and name it Overall Brightness.
Step 6
Now Double-click on this layer thumbnail and, in the Properties panel, enter the settings below:
Step 7
Go to Layer > New Adjustment Layer > Hue/Saturation to create a new hue/saturation adjustment layer and name it Overall Saturation.
Step 8
Now Double-click on this layer thumbnail and, in the Properties panel, set the Saturation to +22.
Step 9
Press Control-Alt-Shift-E on your keyboard to make a screenshot, and then press Control-Shift-U to desaturate this layer. Then, go to Filter > Other > High Pass and set the Radius to 2 px.
Step 10
Now change the Blending Mode of this layer to Overlay and name it Overall Sharpening.
You Made It!
Congratulations, you have succeeded! Here is our final result:
If you would like to create the even more advanced rain effect shown
below, using just a single click and in only a few minutes, then check
out my Dark Knight Photoshop Action.
The action will create highly detailed, stunning photo
effects from your photos with no work at all from your side! You simply
brush over your photo with a
color and play the action. It’s really that simple! The action
will do all the work for you, leaving you fully layered and customizable
results that you can further modify.
The action is made so that every time you run the action you will get a unique result, even if you use the same brushed area. The action will always
create a unique variation of rain, rocks, and textures, so you can create an
unlimited number of
results! The action also creates 20 preset color looks that you can
choose from.
The action comes with a detailed video tutorial that demonstrates how to use the action and customize the results to get the most out of the effect.
In this tutorial you will learn how to create an amazing typography effect. Everything will be explained in so much detail that you can create it even if…
In this tutorial, you will learn how to create an amazing photo effect inspired by the Grand Theft Auto V video game art style. Even if you’re a Photoshop…
In this tutorial, I’m going to teach you how to create a Photoshop sketch effect. You will learn how to turn your photos into amazing, advanced sketches. I…
Agregator najlepszych postów o designie, webdesignie, cssie i Internecie