[NB] Editing saved styles

Is there a way to edit a saved style, or can styles only be redefined in whole from one already used in the text? (Through “Redefine… style from selection”)

The process is to change the format of a paragraph with that style, then ‘Redefine from selection’, as you suggest.

Well, I hereby suggest a new feature (which is actually old - common in “word processors”): editing styles.

The current process is simple, quick and effective: make the change to a paragraph, then update the style. What would having additional complexity add?

(That’s a genuine question, BTW, not sarcasm. I used styles in Word heavily for years, but Word itself is a warning against the unnecessary complication of simple procedures, as anyone who used the far better method pre-2003 will remember… Scrivener’s approach works and I don’t see what benefit you’d get from adding a new layer of dialogue.)

I appreciate you making that clear, and I agree regarding Word.

Why would you want that? Usability. We expect functionality to reside where it is needed; if modifying one thing requires changing another which is conceptually unrelated and some distance away (esp. if it’s the text, which is the conceptual core of the program) then it’s a problem. Take for example a well-designed car - it’s UI is compact and well-organized: the a/c controls are grouped, because their functionality is related. Would it be any more complicated to handle them if they were twenty centimetres apart rather than two? Not at all, but it would be less convenient.

But that doesn’t apply here, does it?

You have a style which you want to alter. You make the changes you want to text of that style, right click and choose ‘Redefine the style’, press enter at the dialogue box and then every paragraph / unit using that style in the document is updated automatically.

In your terms, the functionality is there where it’s needed because you’re acting directly on the text. Having a separate process to do it (presumably via additional dialogue boxes as in Word) introduces further distance, it doesn’t decrease it?

What changes are you envisaging which would make this simpler?

But you’re not looking to act on the text - you’re looking to act on the styles. What if I want to modify the styles (or create new ones) without modifying the text? Then I need to do three actions instead of two: modify the text, derive the style, then restore the text - an overly-complicated procedure for something that should be straightforward.

The text shouldn’t be a control element for anything, just data. Using the text as a means for modifying other elements’ functionality complicates the mental model and harms usability.

It’s hardly a great burden, is it? To create a new one (Style B) from an existing one (Style A):

  1. Highlight a paragraph current styled ‘A’ and make the changes.
  2. Create new style from selection and call it ‘B’
  3. Click back on Style A in the Style panel.

To modify an existing style:

  1. Highlight the style, and make the changes
  2. Choose redefine style.

For your method, you’d open the dialogue then

  1. Choose the style in the list of styles you want to modify and duplicate it
  2. Make the changes
    [3. Apply the style to your chosen paragraph.]


  1. Create new style
  2. Format it from scratch.
    [3. Apply the style to your chosen paragraph]

All you’re really doing is rearranging the order of the steps and in your method you’re adding a new layer of complexity in the programming, for what appears to be little difference in effort or the end product. Both are equally valid—you’re just used to working one way. So was I initially, but after ten minutes, it just became the way things are done.

BTW, I’m not for a minute suggesting that additional ways of doing things aren’t welcome, or that the developers shouldn’t do it. That’s up to them whether they think the additional programming effort is worth it.


Why would you modify a chunk of text that is in Style A to create Style B and change it back?

Why wouldn’t you just create the chunk of text that should be in Style B, modify it, and create style B? Done.

Actually, I can see why the OP would occasionally want to do this. Say you’re creating a series of headings, all of which use the same basic format, but only differ in one or two aspects (size / bold etc). Then it can be useful to use one as a template and spawn the others off that — the current method does it effectively and efficiently enough, I think.

Again, you’re both assuming I want to apply that style now. I don’t. I want to deal with the formatting now, and apply it later. It’s a different usage scenario than what you’re both suggesting, which the current way - which uses the text as a controller for the styles - complicates needlessly.

Breaking down the steps:

  1. Restyle text
  2. R-click style, choose “redefine”
  3. Undo change


  1. R-click style
  2. Restyle style
  3. Accept


  1. The first method starts with modifying the text, the second starts with the styles. If I want to modify the styles alone, the second makes much more sense.
  2. The first uses the text as a controller for the styles, the second doesn’t use it at all. In terms of the mental model, the text is a passive container of text (a data element), not a tool for manipulating other elements (a controller). Complecting these functionalities means complicating the mental model (which is worse given that the text is at the heart of Scrivener, and should really be left for its own devices whenever possible).

In terms of implementation, you don’t actually need to do much: You can reuse the existing styles dialogue, making the lines themselves editable. A user could then re/define the styles in place, using the existing toolbar. This is probably the simplest solution both in terms of UX and implementation:

  1. R-click style, choose “edit style”
  2. Cursor starts blinking in line
  3. Modify the style using the “regular” toolbar, optionally editing the name as well
  4. Press Enter (or Esc)
  5. Style is saved and applied as needed (or discarded)

It seems to me reading the second part of your post that you’re not using the Styles Panel, you’re only using the Menu commands. That would explain why we seem to be talking at cross purposes, because really, the current method allows you to do what you want with no difficulty.

The Styles Panel is provided for just this sort of scenario. It stays on the screen and allows you to “re/define the styles in place, using the existing toolbar” as you are asking for, and your highlighted text is retained.

Try this.

  1. enter a line of text and highlight and format it
  2. Choose the style panel (Ctl-s on the Mac) (Format > Styles > Show Styles Panel)
  3. Press the + button, name it Style A, press enter.
  4. Reformat the text for style b (it’s still highlighted)
  5. Press the + button, name it Style B, press enter.
  6. Reformat the text for style c (it’s still highlighted)
  7. Press the + button, name it Style C, press enter.
    8 ) Rinse and repeat

At the end, click in the style panel on the original style and you’re back where you started, if that’s where you want to be. You can set up the styles for a complete document within a minute or two this way — and of course once you’ve set them up they can be transferred to other projects.

One advantage of this way is that you see the paragraph style in context with those above and below it, so you can judge the effect of eg spacing before / after in context.


That’s exactly what I’m talking about.

Excellent. Glad it helped.

What I mean is this is the problematic scenario I was referring to all along.

Right oh.

Still, I hope this conversation will have least shown you (and any others watching) that there is a simple way to achieve what you want to do, even if the steps aren’t to your liking at the moment. The developer will decide whether he wants to add the additional method in due course.

Of course there’s a method - there’s a method in Word and Latex too - the question is of ease and comfort. Editing styles through the text is like chopping vegetables on the dining table instead of in the kitchen - sure, it’s possible, and “the veggies will eventually get there”, but do you really want to do that? Wouldn’t you rather do the prep in the kitchen and keep the table clean?

I’ve already given you one way in which the current method is superior (the ability to see the effect of paragraph spacing in context): the process itself is simple, logical and ‘comfortable’. Nothing you have suggested offers any practical advantages over this method: you’re simply used to doing it a different way.

That’s absolutely fine and the developer may well decide it’s worth the additional programming effort to add another method of achieving the same thing. Until then you have a way of achieving what you want to do (which is why I replied in the first place, because it wasn’t clear that you understood that it was possible). Unless you have any specific questions over the use of styles, I’ll leave it there.

And I’ve shown you two in which it’s inferior. That being said, I’m not suggesting taking it away, I’m suggesting an enhancement.

The same could be said…