Full (complete, exhaustive) guide to Styles and Style precedence?

I’m having a good bit of trouble wrapping my mind around the full “OmniOutliner’s Style Model”. Is there a complete guide available?

The issue that’s evading my grasp today is how to make text in a column smaller than the default text for the row. I understand that OO gives precedence to the Row Style over the Column Style (why?? — columns seem to contain data about rows, not vice versa; columns make rows more specific, not vice versa; rows are records, columns are attributes), but I see weirdness beyond that.

Here is the Styles Attributes Inspector when a cell (is that what they are called?) in the first column (the “Topic” column — and what is it called when I change the name? In what ways is this first column different from other columns?) :

(Ignore the window title “Outline” — I likely had my mouse over the Outline tab icon when I snapped the screen — but a sensitive designer might find it odd to use a window title to show what used to be a tool-tip for an icon.)

Row Level Styles take precedence over Document Styles.

Here is the Styles Attributes Inspector when a cell in a column is selected:

(Added: my confusion got the better of me. “Picture” is the column title, not the row title as identified.)

Reading up from the bottom, as we are taught to do in the Omni Group guide “Working in OmniOutliner 4”, some other kind of Row Style (not the Row Level Style, and not a Named Style) takes precedence over Row Level Style, which takes precedence over the Column Style (what is the OO name for this — it confusingly takes its Style name from the column header?) which in turn takes precedence over the Document Style.

Now in this case, the Style parameter listed in the top-most Style are applied to only the cell in the column. I changed the font size by selected the text in the column cell (format: “Rich Text” as shown in the Column Inspector) and making is smaller with the keyboard shortcut ⌘- ({Command}+{minus}). The text in the first column is unaffected by this change — it shows in size 18. Why is this top-precedence Style called “Row”?

I have another column that is formatted as “Pop-up List”. I cannot change the font size by using a keyboard shortcut. I can change the font size by pasting a style when a cell in the column has the focus (pasting via ⌥⌘v). When I do so, the entire row changes to that point size, except the text in the Rich Text column that has been already re-sized.

I sense power here — and I’d like to harness it. Right now it just doesn’t make sense to me. I don’t know how the Styles Model is programmed. For my use of OO, it is important that I know and understand. Which is why I’m looking for a complete guide to Styles and styled-parts. Rows, columns, cells, column formats, Row Levels Styles, Text Styles (er … “Named Styles”), Row Styles — what exactly are these entities, and how exactly do they mesh?

I’ll try to answer these the best I can

Yes, the intersection of a row and column is a cell.
The “Topic” column is the default name for the outline column. It is different from the other columns because it is the only one that shows the outline structure. Other columns can not indent with the structure.

In your example image, from bottom to top you have:

  • Whole Document
  • Picture (the style of the “Picture” column)
  • Level 3 Rows
  • Row "Straighten Blade and Bla… (the style of the row who’s outline column cell begins with “Straighten Blade and Bla…”

Column styles are simply referred to as “column styles” or the “style of the [title] column”

Named styles do not have their own place in this hierarchy. Named styles can be applied to any of the hierarchy levels instead of directly applying individual attributes to those levels.

The more completely style hierarchy is:

  • Whole Document
  • Column style
  • Level style
  • Individual row style
  • Text insertion (the style of specific text in a cell)

I might need some clarification on this bit. It sounds like you were inspecting a column that isn’t the outline column since you mention the “first column” is unaffected which I’m assuming the first column is the outline column (columns can be rearranged for this to not be the case). However, the screenshot does not match up with this. Based on my assumptions and your description, it should say “Text insertion” at the top, like this:

Or “Selected text” if you have text in the cell selected. With the top style being a row style, font size 11 should be getting applied to the whole row. Now, it could be that if you inspected the text in the first column that that text actually has a text insertion style of font size 18. It would look like this in the inspector:

I’m afraid I can’t fully clarify what’s going on here without additional information.

Only “Rich Text” type column support styling on the text in individual cells. The content in non-rich text columns will still be styled by any whole document/column/row level/row style, but you can not select that content and apply a style to just that. So, your description is not quite making sense to me. If you’re pasting into a pop-up column, it should not appear with any styles that the source contains. Nor should it be changing the style attributes of other cells of that row. There were was for this to happen in OmniOutliner 3, but I can’t think of any way for that to happen with v4, though I could be forgetting about something.

As I previously mentioned, Named Styles are not a level of the hierarchy, but text style is (select some text and apply a style). Named styles are purely a collection of style attributes that can be applied anywhere.

If you’d like further clarification, it would be great to email support with sample documents and steps to take, so we can see the exact state of the document. Hope this helps!