Chapters as rows, in two views, in their own colours
Three things Marc asked for, and one of them turned out to be the hinge
the other two hang from.
**A chapter is a row like any other.** Same grip, same drag, same place
in a hand-made arrangement as a note or a separator. That needed notes
and chapters numbered from *one* counter: numbered separately they are
two sequences that cannot be interleaved again, and a chapter dragged
between two notes springs back to the top. Positions therefore have to be
named rather than read off an array index, so POST /notes/reorder now
takes `positions: [{id, order}]` beside the older `ids`, and chapters
have a reorder route of their own.
**Two ways for a chapter to open**, chosen per account beside the
typeface, for the same reason that one lives there: it is a choice about
how your own notes are laid out and it should follow you to the phone.
Beside the list, its notes in a further column the way OneNote lays out
pages — the notebook's own list carrying on to the left, chapter rows and
all. Or unfolded under the chapter's own row, indented against a rule in
its colour. A phone has room for neither and fills the list instead, with
a way back, which is what it did before there was a choice.
**Its own colour**, from eight named ones rather than the full palette:
the point of chapters is that they are different places, and twenty
near-identical blues do not help anyone tell them apart.
The colour is validated on the way in — it is written by a browser, so
only a plain #rrggbb gets through and anything else becomes no colour.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
6cad632a0c
commit
d74fea4905
12 files changed
+640
-88
No files matched your search
@@ -105,6 +105,8 @@ export interface Chapter {
|
||||
id: string;
|
||||
notebookId: string;
|
||||
name: string;
|
||||
/** `#rrggbb` for its icon, so a shelf of chapters can be told apart. */
|
||||
color?: string | null;
|
||||
sortOrder: number;
|
||||
/** Set while a chapter created offline has not reached the server yet. */
|
||||
_pendingCreate?: boolean;
|
||||
@@ -129,8 +131,18 @@ export interface Notebook {
|
||||
/** How the note body is set. Presentation only — the export is unaffected. */
|
||||
export type NoteFont = "serif" | "sans" | "mono";
|
||||
|
||||
/**
|
||||
* How a chapter opens.
|
||||
*
|
||||
* "column" puts its notes in a further column beside the list, the way OneNote
|
||||
* lays out its pages; "inline" unfolds them under the chapter's own row. A
|
||||
* phone has room for neither and fills the screen either way, with a way back.
|
||||
*/
|
||||
export type ChapterView = "column" | "inline";
|
||||
|
||||
export interface UserPreferences {
|
||||
noteFont: NoteFont;
|
||||
chapterView?: ChapterView;
|
||||
}
|
||||
|
||||
export interface User {
|
||||
|
||||
Reference in new issue
Block a user