3

Here's what I want to achieve:

enter image description here

pretty simple right? BUT, I'd like the text to remain editable in a simple manner, that is:

  • Editable text (no outlined font);
  • Only one line of text (any change has to be done once);
  • The text color must adapt when moving the text around.

I'tried many combination of masks with no luck... any idea?

1
  • Does it have to be done in illustrator? Clipping mask in photoshop could be what you're looking for.
    – Joonas
    Commented Jul 1, 2012 at 21:50

2 Answers 2

10

I believe this is as close as you can get.

Color Split
(To see the Appearance panel better in this image, right-click [Win] or Control-click [Mac] and choose Open Image in New Tab/Window)

Top fill is a red and black gradient. Both color stops are at the 50% location creating a straight line between the two colors.

Gradient

The two fills below the characters use Effect > Convert To Shape > Rectangle. To create the background rectangles. Then Effect > Distort & Transform > Transform is used to split that rectangle in half (actually scale it to 50%).

Note the 9 point origin setting. Both rectangles use the same settings with the exception of the origin point. You'll want to pick the appropriate side based on the color.

Transform

When done, this can be easily dragged to the Graphic Styles Panel so reapplying it to text in the future would merely take a single click.

This does keep the text live so it can be edited at any time. When the text changes the "split" will reamin at the 50% mark dynamically. The color split remains perpendicular to the baseline of the text at all times.

Be aware, altering kerning or tracking for the text will cause the gradient length to change thus making the gradient not split at the correct position. For this to work dynamically, it's best to leave kerning and tracking at the default values.

Note... this IS dynamic.
Animation

You're other desires are simply not possible. This is as close as you'll get with Illustrator and your restrictions. Not everything can be done with one object. You are expecting far too much from a single text object in any application.

3
  • +1 for the precision and the idea of using gradients, but it doesn't fit what I'm looking for: if I edit the text I'll have to readjust the gradient and that way it's not possible to cage the shape of the boundary between colors (say a curve instead of a straight line).
    – gregseth
    Commented Jul 1, 2012 at 20:57
  • 1
    As I posted.. this is as close as you're going to get. There's no other solution. You can change the text, and the gradient moves. Note the animation I've added to the answer. You simply can't change kerning or tracking. As for the curve.. that is not at all possible.
    – Scott
    Commented Jul 1, 2012 at 21:54
  • Wow. Awesome tricks like this are why I keep coming back to this site. Commented Jul 3, 2012 at 15:58
-1

I found a way: four squares. One black over a red one on the left. One red over a black one on the right. The text on top of the squares then selecting the text and the two topmost squares and Object > Clipping Mask > Make.

Here's the result:

enter image description here

The text is editable and I can give the squares any other shapes, it's still working.

3
  • That fails to meet several requirements you asked for. But I'm glad you worked something out.
    – Scott
    Commented Jul 2, 2012 at 19:32
  • I'm not sure which requirement you're referring to. The 3 in the OP are met and the additional one in the comment to your answer is met too (ok there's 2 shape to change instead of one).
    – gregseth
    Commented Jul 3, 2012 at 6:39
  • "ok there's 2 shape to change instead of one" Yup, that was one of your requirements. Without that requirement, there are several solutions.
    – Scott
    Commented Jul 16, 2012 at 8:29

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.