---
title: title
---

The `title` macro adds a title to a pattern part.

It is provided by [plugin-annotations](/reference/plugins/annotations), which is
part of [core-plugins](/reference/plugins/core) (so it is available by default).

## Signature

```js
macro('title', {
  String align = 'left',
  Boolean append = false,
  Point at,
  String brand = 'FreeSewing',
  Boolean cutlist = true,
  Number dy = 8,
  Boolean force = false,
  String id = 'title',
  Mixed notes = false,
  String nr,
  Number rotation = 0,
  Number scale = 1,
  String title = 'plugin-annotations:noName',
  classes = {
    String date: 'text-sm fill-current',
    String name: 'fill-note',
    String notes: 'text-md fill-current',
    String nr: 'text-4xl fill-note font-bold',
    String title: 'text-lg fill-current font-bold',
  }
})
```

## Example

<Example caption="An example of the title macro">
```js
({ Point, Path, paths, macro, store, part }) => {

  // This is where name/version/etc. is supposed to be stored
  store.set('data.version', 3)
  store.set('data.name', 'Example')
  store.set('data.for', 'Sorcha')

  macro('title', {
    nr: 8,
    title: 'The Title',
    at: new Point(0,0),
    brand: 'Bazooka Crew',
    notes: [
      "You can use any brand you want",
      "\n",
      "but if you plan to contribute your",
      "\n",
      "design, you should use the default",
      "\n",
      "(btw: These are the notes)"
    ]
  })

  // Prevent clipping
  paths.diag = new Path()
    .move(new Point(-20,-50))
    .move(new Point(120,55))

  return part
}
```
</Example>

## Configuration

| Property   | Default | Type                | Description |
| ----------:| :-----: | ------------------- | ----------- |
| `align`    | `left`  | String              | Horizontal text alignment. One of `left`, `right`, or `center` |
| `append`   | `false` | Boolean             | Set this to `true` to append the `nr`, rather than overwrite it |
| `at`       |         | [Point](/reference/api/point) | The point at which to insert the title |
| `brand`    | `FreeSewing`  | String | Brand name will prefix the design name |
| `classes.date`  | `text-sm fill-current`  | String | CSS classes for the date |
| `classes.name`  | `fill-note`  | String | CSS classes for the name |
| `classes.notes`  | `text-md fill-current`  | String | CSS classes for the notes |
| `classes.nr`  | `text-4xl fill-note font-bold`  | String | CSS classes for the nr |
| `classes.title`  | `text-lg fill-current font-bold`  | String | CSS classes for the title |
| `cutlist`  | `true`  | Boolean             | Set this to `true` to prepend notes with the cutting instructions |
| `dy`       | `8`     | Number              | SVG-equivalent of line height, controls the vertical spacing between text lines |
| `force`    | `false` | `boolean`           | Set this to `true` to display the macro output even when `complete` is `false` |
| `id`       | `title` | `string` | The ID of this macro instance. See [Removing macros and the role of the macro id](/reference/macros#removing-macros-and-the-role-of-the-macro-id) |
| `notes`    | | String or Array | Any notes to go under the title |
| `nr`       |         | String              | The number of the pattern part |
| `rotation` | `0`     | Number              | Rotation in degrees |
| `scale`    | 1       | Number              | An optional scaling factor to make the title bigger/smaller |
| `title`    | `plugin-annotations:noName` | String | The name of the pattern part |
| `prefix`   |         | String              | A prefix to add to the created points. This allow for more than 1 title per part, as long as you give them a different prefix.|


## Notes

- This macro takes the `complete` setting into account and won't output anything when both complete and `force` are `false`.
- This macro will check the value of `store.version` and `store.name` for the design version and name. These are auto-set by core.
- This macro will check the value of `store.for` for info of who this pattern was generated for. This is something to be done at run-time by your frontend.
- The `notes` property can be a string or an array of strings.
