Jump to content
You must now use your email address to sign in [click for more info] ×

Define all colors used in a document as a palette with global colors possible?


Recommended Posts

Hello,

I'm currently working on layouts for printed maps. I would like to change the colors for individual object groups such as federal highways, motorways, forests, etc. In Illustrator there is a practical function "Define all colors used" for this purpose. This creates a list with all the colors used as global colors. Changing the colors now is a breeze. I found this function in Affinity Designer, but the colors are not global so I have to manually select and recolor all objects. Am I doing something wrong?

Link to comment
Share on other sites

1 hour ago, PeterB. said:

found this function in Affinity Designer, but the colors are not global

Colors, by default, are not global.

You can create global colors, and assign them to objects, and then if you edit the color all the objects will change. This requires that you create a Document Palette, and that you create the colors as Global before assigning them. Though it should be possible to perform a Select Same for a non-global color, and replace it in all objects with a global color that you have defined later.

-- Walt
Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases
PC:
    Desktop:  Windows 11 Pro, version 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 

    Laptop:  Windows 11 Pro, version 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
iPad:  iPad Pro M1, 12.9": iPadOS 17.4.1, Apple Pencil 2, Magic Keyboard 
Mac:  2023 M2 MacBook Air 15", 16GB memory, macOS Sonoma 14.4.1

Link to comment
Share on other sites

thank you @walt.farrell I think i forgot an important part. I use maps from OpenStreetMap and download PDFs from them. But then I have to recolor them accoring to my clients wishes. In Illustrator it is pretty easy to do this with the mentioned function, but I haven't seen anything like it in Affinity Designer.

Link to comment
Share on other sites

2 minutes ago, PeterB. said:

but I haven't seen anything like it in Affinity Designer

A similar approach would be Select >> Select Same >> Fill Colour and pick the colour of your choice from a saved default palette.

------
Windows 10 | i5-8500 CPU | Intel UHD 630 Graphics | 32 GB RAM | Latest Retail and Beta versions of complete Affinity range installed

Link to comment
Share on other sites

9 minutes ago, PeterB. said:

but I haven't seen anything like it in Affinity Designer

Yeah, I was wondering when this feature will be fully implemented.

Because, as you said: the first part is already there – they just have to go the next step and make these colours global (like you already can with a single colour/object) and after that assign these (now global) colours back to the objects from which they came from.

 

Sounds to me like a simple script. ...if Affinity were scriptable. But what do I know – I'm not a "real" programmer...

  • Main machine: iMac 2019 (21,5-inch 4k, 6core), 64GB RAM, 1TB nvme + 2TB ssd, running on Mac OS 13;
  • Display setup: 28" 5k Display (primary) + 21,5" iMac4k-Display for studio panels (secondary);
  • Keyboard layout: german apple extended keyboard (aluminium);

 

Link to comment
Share on other sites

8 hours ago, woefi said:

Sounds to me like a simple script. ...if Affinity were scriptable.

You can use a global macro utility to speed it up a bit.
You may still need to hover the pointer over each swatch because there is no way to target a swatch directly, other than defining coordinates relative to the window bounds, or relative to the last pointer position. But the right-clicking and the context menu selection is executed by the macro via keyboard shortcut.

Here what this macro looks like in Keyboard Maestro (Mac only):

ade_km_macro_make_global_swatch.png.214e3933923c5d467e36a2ba689ad169.png

On Mac, any menu item can be selected by typing it on the keyboard, hence typing "make g" is enough. There are other ways to select menu items, but this method is the easiest. Then confirmed by Return.

If a swatch is already marked global, running this macro will select "Overprint". That's because when typing "m…" on a menu where no menu item starts with an "M", it will select the next best item alphabetically, and that's "Overprint" in this context menu. I haven't found a way around it yet, although I'm quite sure there is some. But to disable overprint again, simply run the macro one more time.

If you're using the list view in the Swatches panel, the macro could be enhanced by adding a loop and move the mouse relative from the last location downwards to the next list item. That might be manageable e.g. in small batches, like looping 10 times.

Here the above macro in action:

Another option would be using the MacOS Automator, creating a Services plugin with a Run AppleScript action that would perform more or less the same steps as the KM macro. Services plugins can be executed via keyboard shortcuts as well. (I'm already using a few with Affinity.)

MacBookAir 15": MacOS Ventura > Affinity v1, v2, v2 beta // MacBookPro 15" mid-2012: MacOS El Capitan > Affinity v1 / MacOS Catalina > Affinity v1, v2, v2 beta // iPad 8th: iPadOS 16 > Affinity v2

Link to comment
Share on other sites

11 hours ago, loukash said:

move the mouse relative from the last location downwards to the next list item

Actually that action can be appended to my above macro. No manual pointer/mouse movement necessary, just keep on pressing the keyboard shortcut until all visible swatches are marked as global. The distance is 20 19 px in small list view:

ade_km_macro_make_global_swatch2.png.6aefa0aa203a4537b36609dba51151c8.png

^ It's actually 19 px, hence the missed swatches in video below.

Edited by loukash

MacBookAir 15": MacOS Ventura > Affinity v1, v2, v2 beta // MacBookPro 15" mid-2012: MacOS El Capitan > Affinity v1 / MacOS Catalina > Affinity v1, v2, v2 beta // iPad 8th: iPadOS 16 > Affinity v2

Link to comment
Share on other sites

^ Well, that makes it pretty fast, considering the p.i.t.a. (pain in the arm) you'd have if wanting to right-click each of the 69 swatches manually:

A few times I was apparently too fast with the keyboard shortcuts so that a few swatches were missed. It might help to insert a "Pause: 0.1 s" action after each step.

MacBookAir 15": MacOS Ventura > Affinity v1, v2, v2 beta // MacBookPro 15" mid-2012: MacOS El Capitan > Affinity v1 / MacOS Catalina > Affinity v1, v2, v2 beta // iPad 8th: iPadOS 16 > Affinity v2

Link to comment
Share on other sites

6 hours ago, loukash said:

^ Well, that makes it pretty fast, considering the p.i.t.a. (pain in the arm) you'd have if wanting to right-click each of the 69 swatches manually:

Well, that's impressive although I was sure, if someone is determined to make it work, he will find sort of a workaround... but this absolutely has to be resolved inside the app by the Affinity-Team.

The important part is, the app already knew from which objects the swatch originated from, but it doesn't apply the global colour to it. So it is not linked, which is the whole point of a global colour swatch. Doing that by "select objects by colour" and then re-applying it (for all ~100 colour swatches) would be a second scripting workaround to make it work as a whole... 

That's more of a "pain in the brain" if you ask me.

 

A real (officially supported) scriptable approach would enable such wonderful tools like I have in Illu CS5:
(of course I would prefer to have a native menu command instead...)

  • Main machine: iMac 2019 (21,5-inch 4k, 6core), 64GB RAM, 1TB nvme + 2TB ssd, running on Mac OS 13;
  • Display setup: 28" 5k Display (primary) + 21,5" iMac4k-Display for studio panels (secondary);
  • Keyboard layout: german apple extended keyboard (aluminium);

 

Link to comment
Share on other sites

2 hours ago, woefi said:

this absolutely has to be resolved inside the app

Absolutely agreed.

 

2 hours ago, woefi said:

a second scripting workaround to make it work as a whole

Yeah. I was tired late at night to continue …

MacBookAir 15": MacOS Ventura > Affinity v1, v2, v2 beta // MacBookPro 15" mid-2012: MacOS El Capitan > Affinity v1 / MacOS Catalina > Affinity v1, v2, v2 beta // iPad 8th: iPadOS 16 > Affinity v2

Link to comment
Share on other sites

3 hours ago, woefi said:

A real (officially supported) scriptable approach would enable such wonderful tools

I hear you, and I'm sure Serif is aware of that demand as well:

forum.affinity.serif.com/index.php?/search/&q=scripting&quick=1

MacBookAir 15": MacOS Ventura > Affinity v1, v2, v2 beta // MacBookPro 15" mid-2012: MacOS El Capitan > Affinity v1 / MacOS Catalina > Affinity v1, v2, v2 beta // iPad 8th: iPadOS 16 > Affinity v2

Link to comment
Share on other sites

8 hours ago, woefi said:

That's more of a "pain in the brain" if you ask me.

I just wanted to propose a full workflow which would (optionally) involve a few other 3rd party macros like the one above, but would have been likely manageable.
Sadly, it doesn't work as easily as I would have thought because there seems to be a bug with the "Select Same" function:

 

MacBookAir 15": MacOS Ventura > Affinity v1, v2, v2 beta // MacBookPro 15" mid-2012: MacOS El Capitan > Affinity v1 / MacOS Catalina > Affinity v1, v2, v2 beta // iPad 8th: iPadOS 16 > Affinity v2

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.