From the Lab: On Color Modes, Screen Modes, Editor Modes and Environments or We put the full in fullscreen

With Ulysses 1, we pioneered a feature called fullscreen mode. Essentially, fullscreen mode took just the editor content of standard mode, and then offered a completely different user interface, namely one without any sort of chrome.

We also offered an option to show a paragraph counter, where you could attach bookmarks for quick navigation. This was only available in standard mode, though, since fullscreen hid all the chrome.

Last not least, we provided different “themes” based on whether you were writing in fullscreen or standard mode. Those themes consisted of different type faces and colors, so you could have Gentium 16pt black on white in standard mode, and Monaco 10pt yellow on black in fullscreen.

We later renamed “fullscreen” to console mode, and made the native OS X fullscreen mode just look like a window that took over the whole screen.

Ok.

Following our idea of keeping things simple, but still offering as much flexibility as possible, we took all of the above, threw it out of the (literal) window, and started from scratch.

And here’s what we’ll offer instead:

  1. Ulysses 3 will only have two screen modes: Windowed and the system’s own Fullscreen.
  2. Ulysses 3 will have two color modes: Light and Dark. These modes are not tied to the screen mode, but rather available as a switch, at all times.
  3. Ulysses 3 will also have three editor modes: “Classic”, “Paged”, and what we’re currently calling “Pure”. Paged mode will put a page-like border around your text, with paragraph numbers, bookmarks and other widgets, while pure mode will just be the text on a solid color. Classic mode will be a mix of both — like paged, but without the border. As with colors, the editor modes are not tied to a specific screen mode, but can also be switched at all times.
  4. All modes in Ulysses 3 will share the same font. This has so many benefits that I can’t list them all, but most importantly, it will allow us to keep constant line widths (think Daedalus portrait vs. landscape).

So that’s for flexibility. We know it sounds like a complete and utterly unmanageable mess.

So here’s how we’ll keep it simple:

With Ulysses 3, we will introduce what we’re currently calling “environments”. The concept should be familiar to anybody who ever woked with what other apps call “workspaces” or such.

Essentially, it’s about grouping certain interface settings — in our case: color-, screen- and editor mode, tool- and sidebar visibility –, and letting the user recall these settings at will.

Now, usually, “will” refers to a sub-menu with a list of possible workspaces, but if you’ve followed the rather long introduction to this post, you might already know where this is headed.

In Ulysses 3, environment settings are applied by various triggers: E.g., switching to fullscreen mode will trigger a “fullscreen” environment, while hiding everything except the editor may trigger a “Minimal” environment.

What’s cool about this approach is that it not only completely eliminates the current differentiation between standard mode and fullscreen/terminal mode. It also allows you to adjust your environment on-the-fly without going through hoops or having to do complicated setups.

This may not sound like much, but that’s a problem all good solutions have to face…

We will ship with a couple of such environments, and you will be able to create your own, based on a yet-to-be defined list of triggers.

And that’s that.