brew/docs/Diagram-Guidelines.md

46 lines
1.7 KiB
Markdown
Raw Normal View History

# Diagram Guidelines
## Preferred file format
For complex diagrams, use the `.drawio.svg` format.
Files with the `.drawio.svg` extension are SVG files with embedded [draw.io](https://www.diagrams.net/) source code. Using that format lends itself to a developer-friendly workflow: it is valid SVG, plays well with `git diff` and can be edited in lock-step using various online and offline flavours of draw.io. If you use VS Code, you can use an [extension](https://marketplace.visualstudio.com/items?itemName=hediet.vscode-drawio) for draw.io integration.
Files in the `.drawio.svg` format can be processed offline.
## Embedding a diagram into Markdown
To embed a `.drawio.svg` file into Markdown, use the same syntax as for any image. Example: `![My diagram](my-diagram.drawio.svg)`
Mind that GitHub doesnt allow styling in Markdown documents. Where styling is allowed (e.g. in the exported brew.sh version of the documentation), always set a background colour of `white` for the diagram. Thats the colour draw.io assumes, and keeps the diagram easy to read in dark mode without further customization. You can use the CSS selector `img[src$=".drawio.svg"]` for styling.
## Example
Example for an SVG image embedded into Markdown:
```md
![Example diagram: Managing Pull Requests](assets/img/docs/managing-pull-requests.drawio.svg)
```
Result:
![Example diagram: Managing Pull Requests](assets/img/docs/managing-pull-requests.drawio.svg)
Example for styling (where allowed):
```css
img[src$=".drawio.svg"] {
background-color: white;
margin-bottom: 20px;
padding: 5%;
width: 90%;
}
@media (prefers-color-scheme: dark) {
img[src$=".drawio.svg"] {
filter: invert(85%);
-webkit-filter: invert(85%);
}
}
```