The Board view presents sub-notes in columns for a Kanban-like experience. Each column represents a possible value for a status label, which can be adjusted.

## Creating a Kanban board

Right click on an existing note in the Note Tree and select Insert child note and look for Kanban Board.

## How it works

When first creating a collection of Board type, a few subnotes will be created, each having a `#status` label set. The board then groups each note by the value of the status attribute.

Notes are displayed recursively, so even the child notes of the child notes will be displayed. However, unlike the Table, the notes are not displayed in a hierarchy.

## Interaction

### Working with columns

- Create a new column by pressing Add Column near the last column.
  - Once pressed, a text box will be displayed to set the name of the column. Press `Enter` to confirm, or `Escape` to dismiss.
- To reorder a column, simply hold the mouse over the title and drag it to the desired position.
- To delete a column, right click on its title and select Delete column.
- To rename a column, click on the note title.
  - Press Enter to confirm.
  - Upon renaming a column, the corresponding status attribute of all its notes will be changed in bulk.
- If there are many columns, use the mouse wheel to scroll.

### Working with notes

- Create a new note in any column by pressing New item
  - Enter the name of the note and press `Enter` or click away. To dismiss the creation of a new note, simply press `Escape` or leave the name empty.
  - Once created, the new note will have an attribute (`status` label by default) set to the name of the column.
- To open the note, simply click on it.
- To change the title of the note directly from the board, hover the mouse over its card and press the edit button on the right.
- To change the state of a note, simply drag a note from one column to the other to change its state.
- The order of the notes in each column corresponds to their position in the tree.
  - It's possible to reorder notes simply by dragging them to the desired position within the same columns.
  - It's also possible to drag notes across columns, at the desired position.
- For more options, right click on a note to display a context menu with the following options:
  - Open the note in a new tab/split/window or quick edit.
  - Move the note to any column.
  - Insert a new note above/below the current one.
  - Archive/unarchive the current note.
  - Delete the current note.
- If there are many notes within the column, move the mouse over the column and use the mouse wheel to scroll.

### Working with the note tree

It's also possible to add items on the board using the Note Tree.

1. Select the desired note in the Note Tree.
2. Hold the mouse on the note and drag it to the to the desired column.

This works for:

- Notes that are not children of the board, case in which a clone will be created.
- Notes that are children of the board, but not yet assigned on the board.
- Notes that are children of the board, case in which they will be moved to the new column.

### Keyboard interaction

The board view has mild support for keyboard-based navigation:

- Use `Tab` and `Shift`+`Tab` to navigate between column titles, notes and the “New item” button for each of the columns, in sequential order.
- To rename a column or a note, press `F2` while it is focused.
- To open a specific note or create a new item, press `Enter` while it is focused.
- To dismiss a rename of a note or a column, press `Escape`.

## Configuration

### Displaying custom attributes

Since v0.100.0, note attributes can be displayed on the board to enhance it with custom information such as adding a Due date for your tasks.

This feature works exclusively via attribute definitions (Promoted Attributes). The easiest way to add these is:

1. Go to board note.
2. In the ribbon select Owned Attributes → plus button → Add new label/relation definition.
3. Configure the attribute as desired.
4. Check Inheritable to make it applicable to child notes automatically.

After creating the attribute, click on a note and fill in the promoted attributes which should then reflect inside the board.

Of note:

- Both promoted and non-promoted attribute definitions are supported. The only difference is that non-promoted attributes don't have an “Alias” for assigning a custom name.
- Both “Single value” and “Multi value” attributes are supported. In case of multi-value, a badge is displayed for every instance of the attribute.
- All label types are supported, including dates, booleans and URLs.
- Relation attributes are also supported as well, showing a link with the target note title and icon.
- Currently, it's not possible to adjust which promoted attributes are displayed, since all promoted attributes will be displayed (except the `board:groupBy` one). There are plans to improve upon this being able to hide promoted attributes individually.

### Grouping by another label

By default, the label used to group the notes is `#status`. It is possible to use a different label if needed by defining a label named `#board:groupBy`with the value being the attribute to use (with or without `#` attribute prefix).

### Grouping by relations

A more advanced use-case is grouping by Relations.

During this mode:

- The columns represent the target notes of a relation.
- When creating a new column, a note is selected instead of a column name.
- The column icon will match the target note.
- Moving notes between columns will change its relation.
- Renaming an existing column will change the target note of all the notes in that column.

Using relations instead of labels has some benefits:

- The status/grouping of the notes is visible outside the Kanban board, for example on the Note Map.
- Columns can have icons.
- Renaming columns is less intensive since it simply involves changing the note title of the target note instead of having to do a bulk rename.

To do so:

1. First, create a Kanban board from scratch and not a template:

2. Assign `#viewType=board #hidePromotedAttributes` to emulate the default template.

3. Set `#board:groupBy` to the name of a relation to group by, including the `~` prefix (e.g. `~status`).

4. Optionally, use Promoted Attributes for easy status change within the note:

       #relation:status(inheritable)="promoted,alias=Status,single"