A Guide to Palettes

Diagrams 2.0 Macaw, the biggest update to our app, has just been released. In addition to optimizations for macOS Big Sur and Apple Silicon Macs, it introduces a lot of new functionality. In this post, we’ll explore the most significant addition: palettes. For a detailed overview of all features and improvements, please head over to the release notes.

Getting Started

Up until now, Diagrams let you pick from a fixed set of shapes and colors for elements and arrow types for relationships. Over the past few months, we’ve received plenty of requests from you, our users. The message was clear: You want more flexibility. And we heard your feedback and agreed that the single static palette was simply too restrictive. That’s why we removed this limitation with Diagrams 2.0, and for the first time, enabled each of your documents to have its own different palette.

We’ve mentioned the term “palette” a few times already, but what do we mean exactly? Let’s take a closer look. A palette is a collection of element and relationship types. Every document contains exactly one palette, which is specified upon document creation and can be further adjusted. Each type within the palette encodes a meaning and visual appearance for diagram objects it’s applied to. The association between an element or relationship and its type is permanent, meaning that changing the attributes of a type affects all objects associated with that type. Pfff, do these definitions sound overwhelming? Then let’s get more practical.

Getting-Started.png

When you create a new document, you’re asked to select a palette. There are multiple options, and you can choose the one that best fits your use case. The most straightforward way is to start with one of the three built-in palette presets (A): Universal, Grayscale, or Flowchart. Another option is to start with an empty palette and build your types later (B).

Once you’ve created a few documents with custom palettes, you can leverage a third option and load a palette from an existing document to reuse it in a new document (C).

Palette Customization

After a document is created, you can start constructing a diagram using types from the palette you selected, but you can also customize the palette to fit your needs. You can add new types, remove unnecessary types, or change the appearance of existing types. There’s a new palette customization interface for this purpose, which is accessible from the toolbar (Palette), from the main menu (Palette > Customize Palette…), or via Cmd+1.

Palette-Customization.png
  1. List of all element or relationship types

  2. Create and remove types

  3. Indicator of change

  4. Preview of selected type

  5. Optional title of selected type

  6. Visual attributes of selected type

  7. Indicator and details view listing all changes from the session

The left pane lists all available element or relationship types, depending on the tab selected in the top bar. The selected type is reflected in the right pane; it shows a preview and allows you to name it and configure its visual attributes.

While many of the preexisting visual attributes were brought over from Diagrams 1.0, with Diagrams 2.0, we’ve introduced a bunch of new ones as well. When it comes to elements, you can set the shape, color, and text in the caption. And in the case of relationships, you can set the line style, configure arrow heads separately at each of the ends, and format the label.

Once you’re done editing the palette, you can apply changes and save them in your document. This workflow is efficient when performing a multistep customization of the palette, as it allows you to make all changes at once. However, you can also access type editing directly from the canvas.

For example, when adding a new element via a double-click on the canvas, you can click the “+ New” button and create a new type using a familiar interface. The ability to create or edit types on the fly while working on your diagram keeps you from interrupting your flow.

Palette-Customization-2.png

Creating Custom Palettes

With all these preset options, you might be wondering why you’d ever want to start with an empty palette. What’s the point of creating a diagram with no types at hand? Well, starting with a clean slate gives you the freedom to build your palette as you go while working on a diagram at the same time. Moreover, this approach makes it possible to craft a personalized palette that isn’t cluttered with types you don’t need.

Creating a palette from scratch might be the right approach when you have a specific idea in mind or you want to build a diagram one step at a time. Depending on your use case, you might be better off starting with a preset, quickly outlining the diagram, and converting the types from the preset to an organized palette. If you’d like to work in a more freeform manner, you can simply use one of the generic presets and disregard the palette logic.

Embracing the palette, organizing your types, and giving them meaning by naming them comes with many benefits. Not only do your diagrams become better structured and more consistent, but the ability to reuse your types makes you faster and more efficient. This is even applicable across multiple documents, since you can reuse your personalized palettes in new documents.

Now that we’ve covered the theory, let’s talk examples for a moment. The image below shows a variety of palettes. Along with the Flowchart palette that’s available as a built-in preset, you can find palettes extracted from diagrams in our examples library. If you’re looking for a source of inspiration, go check them out.

Create-Custom-Palettes.png

It’s completely up to you if and how you configure your palettes. Diagrams doesn’t dictate which palettes to use or how exactly to organize your types. It does give you tools and just enough freedom to get creative. We believe this unique approach is ideal because our users come from different domains and have different use cases, and our app caters to all those possibilities. The “one-size-fits-all” rule doesn’t always apply.

Where Does This Lead?

If you’re coming from Diagrams 1.0 and you were a true fan of its simple nature, don’t worry. While we made the app more powerful, we tried to keep the palette functionality as unobstructive as possible. Enriching the app’s capabilities without compromising on simplicity is a general principle we strive for, and we think we delivered on it this time.

You might be surprised to discover we didn’t introduce an inspector sidebar that would enable changing attributes directly on the canvas selection. This pattern, which is common in apps that are seemingly similar to Diagrams, doesn’t fit with our semantic approach or our overall vision for the app. We see Diagrams as a diagramming app that supports you primarily when working in a structured manner.

That being said, we see a lot of possibilities of how to expand on the new palette functionality. While you can already import palettes from existing documents, it’s certainly possible to build a general import/export for palettes or even add support for storing your palettes as presets. Now that the visual attributes of element and relationship types can be set individually, there are so many directions we could take this, and boy, do we have a lot of ideas!

With version 2.0, the app has made a major step toward its maturity, but there are still many fundamental features we’d like to add, especially related to the canvas and system integration. The work on the palette kept us busy over the past couple of months, and we’re now ready to continue focusing on our roadmap. But we can assure you that Diagrams has a brighter future than ever. To follow along on our journey, you can find us on Twitter or subscribe to our newsletter. Until next time!