# ArrowStyle

Import it from `@grafloria/engine`.

```ts
interface ArrowStyle
```

**Properties**

| Name | Type | Default | Description |
| --- | --- | --- | --- |
| `type` | `'none' \| 'arrow' \| 'circle' \| 'square' \| 'diamond' \| 'crow-foot' \| 'one' \| 'zero-or-one' \| 'zero-or-many' \| 'one-or-many' \| 'hollow-diamond' \| 'filled-diamond' \| 'generalization' \| 'open-arrow' \| 'double-arrow' \| 'cross' \| 'bar' \| 'dot' \| 'oval' \| 'half-arrow-left' \| 'half-arrow-right' \| 'custom' \| (string & {})` |  |  |
| `size` | `number` |  |  |
| `filled` | `boolean` |  |  |
| `width?` | `number` |  |  |
| `offset?` | `number` |  |  |
| `color?` | `string` |  |  |
| `path?` | `string` |  | Raw SVG path data for a `type: 'custom'` marker. Drawn in the marker's LOCAL frame: the origin is the anchor the renderer pulls back from the endpoint, +x is the direction of travel. Scale it yourself (or read `size` when you build the string). |
| `marker?` | `string` |  | Name of a marker registered via `registerMarker`. Set it with `type: 'custom'` (or simply put the registered name in `type`). |
| `tipOffset?` | `number` |  | Distance from the custom marker's local origin to its visual TIP, in the +x direction. The renderer pulls the marker back from the path endpoint by exactly this much so the tip lands on the port. Registered markers supply their own default; this overrides it. Default 0 for an unregistered `path` marker (i.e. the tip is at the origin). |
