Or, “Why did it take me so long to figure this out?”
Tiny Techniques are bitesized design tricks to make you a better, faster designer in Sketch. Sometimes you’ll already be doing it…sometimes we’ll blow your mind.
Symbols are great because they’re reusable elements that you can insert throughout your document, and any time you update them, those changes cascade to each instance.
Unfortunately, you’re limited by what you can edit with overrides: Text, Colors, and Nested Symbols. That’s about it.
Sure, you can always create multiple progress bar symbols of varying widths and use them as overrides, but what’s the fun in that?!
I figured out a way to create a single progress bar symbol that lets you have complete control over the width of the progress bar.
PRAISE TO THE MOST HIGH.
To be honest, this is a really dumb hack, but it works perfectly.
The sleight-of-hand trick driving this entire solution is pinning. When you pin something on a single edge (left/right/top/bottom), that layer/group/stack will remain fixed at that edge and grow in the opposite direction:
The black dots are in a horizontal stack with 8px margins. First, I pin the stack to the right. When I duplicate the dots inside, they will grow to the left since I pinned it on the right side.
We can take advantage of this behavior in our progress bar symbol.
- Slider: Create a horizontal stack with 0px margin that contains a text layer at 0% opacity set to Auto width (not fixed!), and your progress bar fill. I’m using a nested color symbol so I can swap the bar color, but you can just use a plain old rectangle with a fill. This stack is pinned on the left edge.
- Bar Mask: This will mask the bar as it slides into the progress container. Think of it like a subway train arriving at the platform. You can’t see it until it appears in the opening.
- Container: This forms the container of your progress bar. It can be a solid fill or a border (whatever floats your ??).
Now here’s the trick:
Move the Slider stack layer off of the symbol artboard canvas. Make sure it’s still inside of the artboard and not floating in the document.
Since you’ve pinned the left edge of this stack and your text layer is set to Auto width, when you override the text layer, it’s going to push the bar to the right…and into the progress bar artboard.
You now have complete control over the length of the bar. You can even get fancy with how your progress bar looks…like how about some cool dots?
Download it for free!*
Visit my Medium post to download these progress bar symbols for free or leave a little tip for some 🍩’s (that’s a donut)
When I’m not spending WAY too much time perfecting ONE stupid little symbol, I’m working on Sketch design tools at UX Power Tools to make you a better, more efficient designer.