Bjango home
Articles
Help
Contact
iStat Menus
iStat for iOS
Consume for iOS
Skala
Skala Preview
iStat Server
for Mac
See all apps

Noise and textures

Adding subtle noise or texture to UI elements can look great, but what’s the best way to do it?

The goal is to find the best method that maintains quality when scaled, but is also easy to implement and edit. The full criteria:

  • Number of layers used. Less is better.
  • Ability to scale—if the document is resized, will the effect maintain quality?
  • Can the noise be on top of the Color and Gradient Layer Styles?
  • Can the method be used with any texture, not just noise?

1 — Bitmap layer with noise

Probably the most obvious method for adding texture to a shape is to create a normal bitmap layer, fill it with a colour, select Filter > Noise > Add Noise, then apply a Vector Mask to match the element you’re adding noise to.

Using a high amount of noise, setting the layer blending mode to Luminosity and reducing the opacity will yield the most amount of control over the noise with the least amount of disturbance to the underlying layers. A noise setting of 48% gives a high dynamic range without clipping the noise (clipping results in higher contrast, which might not be desirable).

  • Layers: 2
  • Scales: No, texture will have to be recreated if the document is scaled
  • Works with Color and Gradient Layer Styles: Yes
  • Works with any texture: Yes

2 — Inner Glow Layer Style

Adding an Inner Glow Layer Style with the source set to centre and size to 0 will let you use the noise slider to add texture to any layer. It’s a good solution, provided you’re not already using the Glow Layer Style for something else. The noise is added above the Colour, Gradient and Pattern Layer Styles, which is great.

Unfortunately, the noise can only lighten or darken the underlying elements. The previous, bitmap layer method can add highlights and shade at once maintaining the average luminosity, and looks far better in my opinion.

  • Layers: 1
  • Scales: Yes, texture will be remade automatically
  • Works with Color and Gradient Layer Styles: Yes
  • Works with any texture: No

3 — Smart Object with Filter

Create a Solid Color Layer, convert it to a Smart Object, select Filter > Noise > Add Noise, apply a Vector Mask to match your element, set the layer blending mode to Luminosity and reduce the layer’s opacity.

It’s a fairly involved process, but can use a combination of effects that will be remade if the document gets scaled. Neato.

  • Layers: 2
  • Scales: Yes, texture will be remade automatically
  • Works with Color and Gradient Layer Styles: Yes
  • Works with any texture: No

4 — Pattern Overlay Layer Style

Start by creating a noise or a repeating pattern in a new document, then choose Edit > Define Pattern. Once you’ve defined the pattern, it’ll be available in the Pattern Overlay Layer Style options. As with previous methods, using Luminosity as a blending mode and reducing opacity to suit yields great results.

In hindsight, Pattern Overlay seems like a reasonably obvious way to add textures, but I didn’t think about using it until Erica and Louie mentioned it last week.

The Pattern Layer Style is composited below the Color and Gradient styles, ruining an otherwise perfect noise and texture method. Although, you can create a second layer that just holds the texture if you need to, or start with a Gradient Fill layer, sidestepping the limitation.

  • Layers: 1
  • Scales: Yes, but you’ll need to change the Layer Style scale to 100% after scaling
  • Works with Color and Gradient Layer Styles: No, the pattern appears underneath
  • Works with any texture: Yes

5 — Noise in Color Layer Style

I can’t help but think it’d be nice if Photoshop included a noise slider as part of the Color Layer Style. It’d certainly be handy and a lot simpler to use than most of the other methods outlined above. I have asked Adobe nicely to include the feature in Photoshop CS6. Maybe it’ll make an appearance some day soon.

  • Layers: 1
  • Scales: Yes, texture will be remade automatically
  • Works with Color and Gradient Layer Styles: Yes
  • Works with any texture: No
  • Actually exists: No

Which method is best?

Although a little cumbersome, creating a Gradient Fill Layer, adding a Pattern Layer Style then creating a Vector Mask seems to be the best method possible. It can be used to create flexible, scalable and editable single layer UI elements with a texture. As an added bonus, Gradient Fill Layers can be dithered, so it also produces the highest quality results.

I’ve created some examples below and included the source document, so you can see how they were built. Enjoy.

Download the PSD

Other articles

My app design workflow
Gradient maps
Strokes in Photoshop CS6
Just like print design
Layer tags
Using algebra to create paths
Sub-pixel text rendering
Photoshop Actions & Workflows
Scale Patterns to 100% script
Text in Photoshop CS6
Masking in Photoshop CS6
Illustrator and app design
Vector shapes in Photoshop CS6
Photoshop CS6 improvements
Pixels per inch is just a tag
PNG compression and iOS apps
Everything is a grid
Smart Objects
Exporting from Photoshop
Iterate Podcast
Pixel perfect rotation
Pixel perfect vector pasting
Pixel perfect vector nudging
What if iChat was one window?
Gradients
Designing for Retina display
Designing for Retina display, part two
A new Drobo Dashboard icon
Noise and textures
Photoshop CS6 wish list
What to do with all those extra pixels?
Photoshop roundrect roundup
Colour management and UI design
How many layers are in my PSD?
Dissecting iTunes and App Store links

About the author

Marc Edwards is the Director & Lead Designer at Bjango. Follow @marcedwards on Twitter and @marc on App.net.

  • Bjango on Twitter
  • Bjango on Dribbble
  • Bjango on GitHub
  • Bjango on App.net
  • RSS Feeds
  • Marc on App.net

©2013 Bjango Pty Ltd. All rights reserved. ABN 88 062 334 580.
Apple, the Apple logo, iPad, iPhone, and iPod touch are trademarks of Apple Inc., registered in the U.S. and other countries. App Store is a service mark of Apple Inc.
5 days accident free!