I'm trying to create a clipping mask on a bunch of paths, but I need some way to be able to move the paths around afterwards:

For example, the shape is each of the 48 continental states of the US and the fill is the flag:

enter image description here

I want to be able to move the states around, but still have them keep the same fill position that they have: (that's why I can't use a pattern fill)

enter image description here

I tried selecting all the states and making them a single clipping mask, but that won't allow me to move them around afterwards.

Currently, the method I used, was to copy the flag 48 times and then select each state and make it it's own clipping mask. Very lengthy process and additionally, the file size is huge and saving the file is crazy (which also causes it to go exceptionally slow and possibly crash).

There must be an easier way to do this.

A tool called Divide Clipping Mask would be an amazing.

  • Is that Australia?
    – Joonas
    Commented Nov 9, 2018 at 7:44
  • @Joonas, nope, it's the US.
    – Welz
    Commented Nov 9, 2018 at 13:01

3 Answers 3


If the background is a vector

Instead of working with masks, do it with vectors.

  • Three layers:

    • STATES: empty
    • MAP: all the single vector states ungrouped
    • FLAG: as ungrouped vectors


  • Select a single vector from the STATE layer
  • Menu Object > Path > Divide Objects Below
  • Menu Object > Ungroup, maybe this step must be repeated
  • Select all the new vectors, they are all at the FLAG layer, group them and move them to the STATES Layer

enter image description here

  • Do the same with the other vectors from the MAP layer. Hiding the STATES layer allow you to see the work done.

My GIF has a mistake, where? 🤭

If the background is an image

  • Make the first mask > Copy > Paste in place
  • Select the next vector > Cut
  • Click twice the Mask to isolate the Clip Group
  • Click twice the Clip Group to isolate the Clipping Path
  • Paste in place
  • Delete the old Clipping Path vector, with this process you are replacing it
  • Click twice on an empty area of the document to exit the clipping mask edition
  • Repeat with the next vectors


  • This seems even more annoying (and harder to fix if I've made a mistake) than using tons of clipping masks.
    – Welz
    Commented Jul 3, 2018 at 15:24
  • Mistake? Even with the three hundred Cmd + Z? I think this job is annoying in any way.
    – user120647
    Commented Jul 3, 2018 at 15:27
  • I mean with a minor change to the fill artwork.
    – Welz
    Commented Jul 3, 2018 at 15:28

The only way I'm aware of to have a raster image clipped many times is to have many copies of the raster image. One for each clipping. And you'll find for something like 50, AI is going to get sluggish most likely.

To the best of my knowledge there's no way to mask an object several times, then have the masked content move independently with each mask, other than duplicating the masked image repeatedly. (Or masking vector content and then splitting the vectors for each mask).

The hurdle you are hitting is that you want a single piece of content to move freely with each mask. That's just not easily accomplished. You can move each mask easily, or move the entire masked image. But both is not feasible without additional set up.

Update after exploring an idea.

I was thinking about what the real issue is. It's that 50 copies of the same raster image, especially high resolution, typically makes AI horribly slow to work with. In addition, should the masked image need updated, editing it 50+ times would be a nightmare, at least to me. So how would I circumvent those issues?

The key.... Symbols ....

Whenever there is a need to duplicate the same thing multiple times, Symbols may be helpful. If it's a raster image, symbols can shed HUGE amounts off the file size compared to duplicating the raster image many times.

Embed the raster image and make it a Symbol. Symbols use one reference and then merely duplicate that reference rather than duplicating all the image data. So, by using a symbol you are really only using the raster image once then referring to it many times as opposed to embedding the same data many times.

  • Place the symbol behind the mask paths (The map),
  • Edit > Copy (Command/Ctrl+c)
  • Select one mask shape and the symbol
  • Object > Clipping Mask > Create (Command/Ctrl+7)
  • Edit > Paste In Back (Command/Ctrl+b)
  • Shift-select the next mask shape (so shape and symbol are selected)
  • Object > Clipping Mask > Create (Command/Ctrl+7)
  • Edit > Paste In Back (Command/Ctrl+b)
  • Shift-select the next mask shape
  • Object > Clipping Mask > Create (Command/Ctrl+7)
  • repeat, repeat, repeat, repeat.

(cmd-7, cmd-b, shift-select, repeat -- it's faster than it reads)

enter image description here

I used a pretty sloppy US map.... but I'm sure you get the idea.

This allows 1 image to be masked several times via symbol instances and each instance will allow you to move each mask and its contents independently of the other masks and their contents while maintaining the same relative mask position in relation to the overall raster image.

If you need to ever edit the raster image merely edit the Symbol - 1 edit to alter all symbol instances.

All this is essentially the same overall method you used but without duplicating the raster image. And using a symbol like this keeps file size low since the raster image is only taking up one chunk of data as opposed to 48/50 copies.

  • @WELZ updated with possible solution....
    – Scott
    Commented Nov 9, 2018 at 3:53
  • This is definitely the most efficient method I've seen.
    – Welz
    Commented Nov 9, 2018 at 13:11

I was looking for an answer to this issue and may have found an easier solution. Trying to group multiple objects and then using the clipping mask method didn't work. BUT if I selected all of the objects I wanted to fill and then select "Object: Compound Path: Make"; then selected the Compounded objects and the fill object; and then select "Object: Clipping Mask: Make," it worked.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.