1# Glamour Style Guide 2 3The JSON files in this directory are generated from the default styles. To 4re-generate them, run: 5 6 go generate .. 7 8## Block Elements 9 10Block elements contain other elements and are rendered around them. All block 11elements support the following style settings: 12 13| Attribute | Value | Description | 14| ---------------- | ------ | ------------------------------------------------------------ | 15| block_prefix | string | Printed before the block's first element (in parent's style) | 16| block_suffix | string | Printed after the block's last element (in parent's style) | 17| prefix | string | Printed before the block's first element | 18| suffix | string | Printed after the block's last element | 19| indent | number | Specifies the indentation of the block | 20| indent_token | string | Specifies the indentation format | 21| margin | number | Specifies the margin around the block | 22| color | color | Defines the default text color for the block | 23| background_color | color | Defines the default background color for the block | 24 25Elements inside a block inherit the block's following style settings: 26 27| Attribute | Value | Description | 28| ---------------- | ----- | -------------------------------------------------- | 29| color | color | Defines the default text color for the block | 30| background_color | color | Defines the default background color for the block | 31| bold | bool | Increases text intensity | 32| faint | bool | Decreases text intensity | 33| italic | bool | Prints the text in italic | 34| crossed_out | bool | Enables strikethrough as text decoration | 35| underline | bool | Enables underline as text decoration | 36| overlined | bool | Enables overline as text decoration | 37| blink | bool | Enables blinking text | 38| conceal | bool | Conceals / hides the text | 39| inverse | bool | Swaps fore- & background colors | 40 41### document 42 43The `document` element represents the markdown's body. 44 45#### Example 46 47Style: 48 49```json 50"document": { 51 "indent": 2, 52 "background_color": "234", 53 "block_prefix": "\n", 54 "block_suffix": "\n" 55} 56``` 57 58--- 59 60### paragraph 61 62The `paragraph` element represents a paragraph in the document. 63 64#### Example 65 66Style: 67 68```json 69"paragraph": { 70 "margin": 4, 71 "color": "15", 72 "background_color": "235" 73} 74``` 75 76--- 77 78### heading 79 80The `heading` element represents a heading. 81 82### h1 - h6 83 84The `h1` to `h6` elements represent headings. `h1` defines the most important 85heading, `h6` the least important heading. Undefined attributes are inherited 86from the `heading` element. 87 88#### Example 89 90Markdown: 91 92```markdown 93# h1 94 95## h2 96 97### h3 98``` 99 100Style: 101 102```json 103"heading": { 104 "color": "15", 105 "background_color": "57" 106}, 107"h1": { 108 "prefix": "=> ", 109 "suffix": " <=", 110 "margin": 2, 111 "bold": true, 112 "background_color": "69" 113}, 114"h2": { 115 "prefix": "## ", 116 "margin": 4 117}, 118"h3": { 119 "prefix": "### ", 120 "margin": 6 121} 122``` 123 124Output: 125 126![Heading Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/heading.png) 127 128--- 129 130### block_quote 131 132The `block_quote` element represents a quote. 133 134#### Example 135 136Style: 137 138```json 139"block_quote": { 140 "color": "200", 141 "indent": 1, 142 "indent_token": "=> " 143} 144``` 145 146Output: 147 148![Block Quote Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/block_quote.png) 149 150--- 151 152### list 153 154The `list` element represents a list in the document. 155 156| Attribute | Value | Description | 157| ------------ | ------ | ------------------------------------------ | 158| level_indent | number | Specifies the indentation for nested lists | 159 160#### Example 161 162Style: 163 164```json 165"list": { 166 "color": "15", 167 "background_color": "52", 168 "level_indent": 4 169} 170``` 171 172--- 173 174### code_block 175 176The `code_block` element represents a block of code. 177 178| Attribute | Value | Description | 179| --------- | ------ | --------------------------------------------------------------- | 180| theme | string | Defines the [Chroma][chroma] theme used for syntax highlighting | 181 182[chroma]: https://github.com/alecthomas/chroma 183 184#### Example 185 186Style: 187 188```json 189"code_block": { 190 "color": "200", 191 "theme": "solarized-dark" 192} 193``` 194 195Output: 196 197![Code Block Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/code_block.png) 198 199--- 200 201### table 202 203The `table` element represents a table of data. 204 205#### Example 206 207Markdown: 208 209```markdown 210| Label | Value | 211| ------ | ----- | 212| First | foo | 213| Second | bar | 214``` 215 216Style: 217 218```json 219"table": { 220 "margin": 4 221} 222``` 223 224Output: 225 226![Table Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/table.png) 227 228## Inline Elements 229 230All inline elements support the following style settings: 231 232| Attribute | Value | Description | 233| ---------------- | ------ | ----------------------------------------------------- | 234| block_prefix | string | Printed before the element (in parent's style) | 235| block_suffix | string | Printed after the element (in parent's style) | 236| prefix | string | Printed before the element | 237| suffix | string | Printed after the element | 238| color | color | Defines the default text color for the document | 239| background_color | color | Defines the default background color for the document | 240| bold | bool | Increases text intensity | 241| faint | bool | Decreases text intensity | 242| italic | bool | Prints the text in italic | 243| crossed_out | bool | Enables strikethrough as text decoration | 244| underline | bool | Enables underline as text decoration | 245| overlined | bool | Enables overline as text decoration | 246| blink | bool | Enables blinking text | 247| conceal | bool | Conceals / hides the text | 248| inverse | bool | Swaps fore- & background colors | 249 250### text 251 252The `text` element represents a block of text. 253 254#### Example 255 256Style: 257 258```json 259"text": { 260 "bold": true, 261 "color": "15", 262 "background_color": "57" 263} 264``` 265 266--- 267 268### item 269 270The `item` element represents an item in a list. 271 272#### Example 273 274Markdown: 275 276```markdown 277- First Item 278 - Nested List Item 279- Second Item 280``` 281 282Style: 283 284```json 285"item": { 286 "block_prefix": "• " 287} 288``` 289 290Output: 291 292![List Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/list.png) 293 294--- 295 296### enumeration 297 298The `enumeration` element represents an item in an ordered list. 299 300#### Example 301 302Markdown: 303 304```markdown 3051. First Item 3062. Second Item 307``` 308 309Style: 310 311```json 312"enumeration": { 313 "block_prefix": ". " 314} 315``` 316 317Output: 318 319![Enumeration Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/enumeration.png) 320 321--- 322 323### task 324 325The `task` element represents a task item. 326 327| Attribute | Value | Description | 328| --------- | ------ | --------------------------- | 329| ticked | string | Prefix for finished tasks | 330| unticked | string | Prefix for unfinished tasks | 331 332#### Example 333 334Markdown: 335 336```markdown 337- [x] Finished Task 338- [ ] Outstanding Task 339``` 340 341Style: 342 343```json 344"task": { 345 "ticked": "✓ ", 346 "unticked": "✗ " 347} 348``` 349 350Output: 351 352![Task Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/task.png) 353 354--- 355 356### link 357 358The `link` element represents a link. 359 360#### Example 361 362Markdown: 363 364```markdown 365This is a [link](https://charm.sh). 366``` 367 368Style: 369 370```json 371"link": { 372 "color": "123", 373 "underline": true, 374 "block_prefix": "(", 375 "block_suffix": ")" 376} 377``` 378 379Output: 380 381![Link Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/link.png) 382 383--- 384 385### link_text 386 387The `link_text` element represents the text associated with a link. 388 389#### Example 390 391Style: 392 393```json 394"link_text": { 395 "color": "123", 396 "bold": true 397} 398``` 399 400--- 401 402### image 403 404The `image` element represents an image. 405 406#### Example 407 408Markdown: 409 410```markdown 411![Image](https://charm.sh/logo.png). 412``` 413 414Style: 415 416```json 417"image": { 418 "color": "123", 419 "block_prefix": "[Image: ", 420 "block_suffix": "]" 421} 422``` 423 424Output: 425 426![Image Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/image.png) 427 428--- 429 430### image_text 431 432The `image_text` element represents the text associated with an image. 433 434#### Example 435 436Style: 437 438```json 439"image_text": { 440 "color": "8" 441} 442``` 443 444--- 445 446### code 447 448The `code` element represents an inline code segment. 449 450#### Example 451 452Style: 453 454```json 455"code": { 456 "color": "200" 457} 458``` 459 460Output: 461 462![Code Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/code.png) 463 464--- 465 466### emph 467 468The `emph` element represents an emphasized text. 469 470#### Example 471 472Markdown: 473 474```markdown 475This text is *emphasized*. 476``` 477 478Style: 479 480```json 481"emph": { 482 "italic": true 483} 484``` 485 486Output: 487 488![Emph Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/emph.png) 489 490--- 491 492### strong 493 494The `strong` element represents important text. 495 496#### Example 497 498Markdown: 499 500```markdown 501This text is **strong**. 502``` 503 504Style: 505 506```json 507"strong": { 508 "bold": true 509} 510``` 511 512Output: 513 514![Strong Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/strong.png) 515 516--- 517 518### strikethrough 519 520The `strikethrough` element represents strikethrough text. 521 522#### Example 523 524Markdown: 525 526```markdown 527~~Scratch this~~. 528``` 529 530Style: 531 532```json 533"strikethrough": { 534 "crossed_out": true 535} 536``` 537 538Output: 539 540![Strikethrough Example](https://github.com/charmbracelet/glamour/raw/master/styles/examples/strikethrough.png) 541 542--- 543 544### hr 545 546The `hr` element represents a horizontal rule. 547 548#### Example 549 550Markdown: 551 552```markdown 553--- 554``` 555 556Style: 557 558```json 559"hr": { 560 "block_prefix": "---" 561} 562``` 563 564## html_block 565## html_span 566