Skip to content

Writing Space

The Writing Space is one of the three views of Stuck with the Bookshelf and the Book Page. It is also the main view and the one you will see most of the time (to understand what I mean by that, you can take a look at this page).

I will start by listing some of the characteristics of that space. More complex features can be found in following pages but most of the features here are at still least disablable so you might want to take a lookt at Workflow's Preferences for a list of all existing preferences.

The Writing Space's most basic state includes:

  • The Canva
    • Chapter title
    • Chapter contents
  • The top bar with (from left to right):
    • The App Name = a button leading to the Bookshelf
    • Per-context Menus
    • The Book title = a button to the Book Page
    • Light/Dark toggles
    • minimize, maximize, close
  • The bottom bar with (from left to right):
    • "Last saved: XX:XX"
    • Word count
    • Spell Check (language + vocabulary)
    • Zoom

The Canva

The Canva is an infinitely scrolleable writing space with neither page nor pagination and no visible delimitation with the background. It only holds one chapter at a time.

It is highly configurable and independent from the exportation formatting as far semantic formatting is concerned. When I say "semantic formatting" I'm talking about any formatting that is purely a question of preference and is applied broadly to the text without it having any impact on meaning: font, font size, font style, font weight, line width, line height, first-line indent size, overall alignement. Semantic formatting includes: bold, italics, specific alignment.

You can easily configure the zoom, approximate number of character per line, line heigh, paragraph spacing, first-line indent size, font and alignement. By default, the app considers the writing space to be a global configuration but it's possible to change that in Preferences.

Typewriter Scrolling

When it comes to the writing experience, the default is a typewriter-like scrolling which centers the current line on the page. You can also configure a gradient around the centered line for better focus.

Warning

The gradient, like the typewriter scrolling, didn't exist in the legacy app. It must not be forgotten!

Write-Only Mode

Although it is disabled by default, the app also offers a write-only mode that prevents backspace and delete keys from working.

It also offers a lock option so it's harder to disable.

Idea: Write-Only Lock

I was thinking it ought to me someting that takes a bit of time but that can't be forgotten. I was thinking of making it a random arithmetic operation. Something simple like addition/substraction but with high enough numbers that it takes a bit of a moment to work out. They might hate me, but they chose to use the lock, so...

Multiple names for the same command

I do need to give this some thoughts. People are not going to read the documentation before using Stuck. I'm the first person to be confused when two things that do the same thing are given different names. A single command will have a single set of shortcuts and a single description. And I think every single command should avec a concise but crystal clear tooltip describing what it does. But I don't know if it's enough, and that's what I need to think about.

Stuck doesn't quite abide by the classic File/Edit/View/etc. format.

The main difference isn't so much about the names of the menus themselves, but that I've specifically rid the UI of the intent of having each command only appear once. Instead, I've tried to cover the different contexts and intents that can lead to a user reaching for specific command.

Because it is the same command, it has the same set of shortcuts and the same description, but it appears under two (or more) names so that it can be found easily in two (or more) different mindsets.

The description appears as a tooltip on (relatively long) hover.

Example

A good example for this is the command close_active_book. You can find it both under Books > (view) > Exit to Bookshelf and Manuscript > (lifecycle) > Close Book. The description, in both cases would be something like "Saves and closes the current book, shifting view to Bookshelf."

Note

In the example above (view) and (lifecycles) are written as such because they are not actually visible to the user. For commands to be grouped, the spaces they're grouped in must be named. However, in the UI, they only appear as separators.

Chapter Navigation

Keyboard and optional button navigation for moving to previous or next chapter.

idea

Have two different next chapter buttons:

  • One is always present (if enabled in preferences) and leads to where you left off in the chapter in this session
  • The other appears at the end on the chapter and loads the next chapter from the start (ignoring any remembered caret position) for reading.

Another option is to have a vim-like command mode (not at all so fleshed-out, I'm only saying that because i don't think i like the concept of a read-only mode--here it's more of a review mode) in which the button automatically shift to sending you to the beginning of the page (maybe that should be a preference as well). As long as you don't move the caret, it will still remember the previous place.