What They Are
Adobe says: "Smart Objects are layers that contain image data from raster or vector images, such as Photoshop or Illustrator files. Smart Objects preserve an image’s source content with all its original characteristics, enabling you to perform nondestructive editing to the layer."
I say: Smart Objects are magical containers. They can hold an image, a vector graphic, or a complex set of layers. You can duplicate a Smart Object many times within your file and update the Object once to change all instances. You can apply filters to a Smart Object non-destructively, so you can remove them at any time. You can also transform Smart Objects (scale, rotate, skew, distort, etc etc.) without losing the original image data or quality.
How They Work
Like everything else in Photoshop, there are multiple ways to create a Smart Object. You can:
- Start With A Vector. You can use File > Place to pull vector graphics (made in Illustrator) into your Photoshop file. Alternately, copy the artwork in Illustrator and paste it into your Photoshop document. A dialog box will come up with options for pasting - select "Smart Object". Once you've placed it, Photoshop maintains a direct link to the original graphic. If you try editing a Smart Object made from a vector it will open up right in Illustrator.
- Grab A Layer. Sometimes, a single layer might be a good candidate for Smart-Objectness. Say you have a bitmapped image you want to resize - but you're not sure what size you want it to be yet. Scaling things more than once (say, down 20% and then back up 20%) can ruin your pixel data fast, but making the image a Smart Object before you transform it will avoid this problem. Making one is easy - just right-click on a layer and select "Convert To Smart Object".
- ...Or Multiple Layers. This is my favorite way to use Smart Objects. You can turn a group of layers into a Smart Object, creating reusable components and cleaning up your layer palette. Again, right-click and "Convert to Smart Object" from the Options menu.
Once you've created a Smart Object, it'll look like this in the layer palette:
To edit a Smart Object once you've created it, double click on the layer. It will open up in a new window. Make your edits, then be sure to hit Save before closing. Once you save the Smart Object all instances of it will be updated in your main Photoshop document. Don't forget to save! If you close it without saving you will lose all your changes.
How I'm Using Them
I use Smart Objects frequently when working on mockups that use repeatable content. Say, for example, I'm working on a homepage design that shows excerpts from my 3 most recent blog posts. They're going to be about the same length and size, so I decide to just repeat the same excerpt three times to see how that will look in the layout. It's the perfect thing to use Smart Objects for.
I would make the first blog post example - including the title, date icon, text, link and separator. Something like this:
I would then select all these layers in the palette and Right-click > Convert to Smart Object.
Because it might be reused elsewhere, you'll notice I turned the date icon into it's own Smart Object. Yay for nesting! If I double-click on that, I'll get yet another window with its contents, like this:
Now, I can make two copies of the original Smart Object and space them out like so:
The payoff is simple. The copies act as instances, so updates made to one will be made to all. If I decide to change the titles to red and bold, I can do it once instead of three times. I can easily test out different visual elements (like adding a gradient to the entire chunk) and see immediately how it will look across all 3 instances.
I also use Smart Objects for their non-destructive editing goodness. Once something is a Smart Object you can scale it, rotate it, warp it, skew it, and applay all sorts of filters without losing the original data. You can also reorder the filters you've applied, which can be very handy. The filters remain editable, and you can take them off if you decide you don't want them. This type of thing is great for elements like a set of thumbnails in a gallery.
For a single comp, these aren't all that amazing. But when you start to design bigger sites they are invaluable. When we were designing Warrior X-Fit we produced over 20 design comps. Each comp used many of the same elements. To keep the process streamlined, I created a "tool kit" PSD with various elements in it. Smart Objects were an important part of the kit. I made a Smart Object for each resuable component so I could easily place them into my comps. In early design rounds I often put 5 or more comps (depending on file size) in a singe PSD file, separating them in top-level folders. That gives me the most bang for my buck with Smart Objects. They can *almost* act like style classes, if you do it right.
You can export the contents of a Smart Object into a separate .psb file. While you can't use this as an include type file, you can use it to speed up maintenance tasks. Say that, ten comps in, the client decides they want all of the date icons to use red instead of orange. Assuming you created a new PSD for each comp, you would normally have to go back in and change the date icon in each of the ten PSDs. If, however, you used a Smart Object, then you have another way to update. Make your changes to the exported .psb file. Then go into your Photoshop documents and select the old date Smart Object. Right-click, select "Replace Contents", and choose the newly updated .psb file. Ta-da! It's not as great as it could be, but it's a big step up from making tedious changes over and over again. For a better explanation, check out John Nack's post: Linked Smart Objects (Kinda)
Update: If you read through the comments, you'll see that Erik Wallace found a great script that lets you link Smart Objects the way you might in InDesign. More info on the script and how it works can be found here: <a href="http://ps-scripts.com/bb/viewtopic.php?t=3045">http://ps-scripts.com/bb/viewtopic.php?t=3045</a>
I like a clean layer palette so I tend to get crazy with Smart Objects. It's like putting all your stuff away in nicely labeled drawers. Did I mention I'm a little OCD? So. Yeah. Anyway....
Keeping Things Efficient
To be a Smart Object efficiency ninja, I suggest the following:
- If something is getting reused elsewhere on the page or in another file, make it a Smart Object.
- Don't be afraid to nest them.
- Use them for placeholder content, buttons, icons, backgrounds, separators, etc.
- Share them across comps (just remember to update them all if something changes)
- Set up a keyboard shortcut for quick access. Select Edit > Keyboard Shortcuts > Layer > Smart Objects > Group Into New Smart Object (and then set your shortcut)
- Smart Objects increase file size, and therefore slow things down
- Some (slightly less anal) people may not like having their artwork extracted into separate files
- You can't use linked layer masks on Smart Objects. Boo. (To get around this, put your Smart Object in a folder and put the mask on the folder instead.)
- Once something is a smart object there is no simple way to un-smart it they way you can ungroup layers. Instead, drag all the layers back into your document and delete the instance of the Smart Object.
- A Smart Object doesn't share all the behaviors of a regular layer. Some blending modes and filters don't work right. I don't run into this much, but you may.
Are you using Smart Objects in a different or unique way? Have useful tips? If so, please share! I'm always hoping to find more ways to speed up my work and keep things streamlined.