char/sorcery
static-files based git repo viewer
git clone https://git.t4t.associates/char/sorcery
6f745f9
main
1@font-face { 2font-family : "InterVariable" ; 3src : local ( "Inter Variable" ), local ( "InterVariable" ), url ( "/fonts/inter/InterVariable.woff2" ) format ( "woff2" ); 4font-weight : 100 900 ; 5font-style : normal; 6font-display : swap; 7} 8@font-face { 9font-family : "InterVariable" ; 10src : local ( "Inter Variable Italic" ), local ( "InterVariableItalic" ), url ( "/fonts/inter/InterVariable-Italic.woff2" ) format ( "woff2" ); 11font-weight : 100 900 ; 12font-style : italic; 13font-display : swap; 14} 15@font-face { 16font-family : "Ioskeley" ; 17src : local ( "Ioskeley Mono" ), local ( "Ioskeley-Mono" ), url ( "/fonts/ioskeley/IoskeleyMono-Regular.woff2" ) format ( "woff2" ); 18font-weight : 400 ; 19font-style : normal; 20font-display : swap; 21} 22@font-face { 23font-family : "Ioskeley" ; 24src : local ( "Ioskeley Mono Medium" ), local ( "Ioskeley-Mono-Medium" ), url ( "/fonts/ioskeley/IoskeleyMono-Medium.woff2" ) format ( "woff2" ); 25font-weight : 500 ; 26font-style : normal; 27font-display : swap; 28} 29@font-face { 30font-family : "Ioskeley" ; 31src : local ( "Ioskeley Mono Semibold" ), local ( "Ioskeley-Mono-Semibold" ), url ( "/fonts/ioskeley/IoskeleyMono-SemiBold.woff2" ) format ( "woff2" ); 32font-weight : 600 ; 33font-style : normal; 34font-display : swap; 35} 36 37/* palette & syntax colours lifted from char.lt */ 38: root { 39--bg-col : # 100e11 ; 40--bg-col-2 : # 181419 ; 41--bg-col-3 : # 211a22 ; 42 43--fg-col : # f3eef2 ; 44--fg-col-mute : # 958792 ; 45 46--accent-col : # ff9df5 ; 47--accent-col-mute-1 : # b86caf ; 48--accent-col-mute-2 : # 493045 ; 49--accent-col-fade-1 : # ffd0fb ; 50 51--hl-comment : # 9da8bb ; 52--hl-keyword : # 9bedff ; 53--hl-builtin : # ff94d1 ; 54--hl-string : # 95ffc3 ; 55--hl-ident : # d8a8ff ; 56--hl-number : var ( --hl-string ); 57 58--font-mono : "Ioskeley" , ui-monospace, "SF Mono" , "Cascadia Code" , "Roboto Mono" , monospace; 59} 60 61* { 62box-sizing : border-box; 63} 64 65html { 66color-scheme : dark; 67font-family : "InterVariable" , "Inter" , sans-serif; 68line-height : 1.5 ; 69text-rendering : optimizeLegibility; 70background : var ( --bg-col ); 71color : var ( --fg-col ); 72} 73 74body { 75max-width : 64 rem ; 76margin : 0 auto; 77padding : 1.5 rem 1.25 rem 4 rem ; 78} 79 80:: selection { 81background-color : # 6d3567 ; 82} 83 84/* type scale: 0.75 / 0.875 / 1 / 1.5 / 1.75rem. Ioskeley has a larger 85x-height than Inter, so mono sits a step down to read as the same size. */ 86h1 { font-size : 1.75 rem ; font-weight : 520 ; margin : 0 0 0.75 em ; line-height : 1.08 ; } 87h1 : has ( + . desc ) { margin-bottom : 0.25 em ; } 88h2 { font-size : 1.5 rem ; font-weight : 650 ; margin-top : 2 rem ; } 89/* repositories page: user headings sit directly on their list */ 90h2 : has ( + . catalog ) { margin-bottom : 0 ; } 91 92pre , code , kbd , . code , . cid , . sha , . path , table . diff , table . commit-meta td { 93font-family : var ( --font-mono ); 94font-size : 0.875 rem ; 95font-weight : 500 ; 96} 97pre , table . diff { 98-webkit-text-size-adjust : 100 % ; 99text-size-adjust : 100 % ; 100} 101time { font-variant-numeric : tabular-nums; } 102 103/* chrome links are bare and signal with colour; only prose underlines */ 104a { color : var ( --accent-col ); text-decoration : none; } 105a : hover { color : var ( --accent-col-fade-1 ); } 106. readme a { 107text-decoration : underline; 108text-decoration-thickness : 1 px ; 109text-underline-offset : 0.2 em ; 110} 111 112progress { accent-color : var ( --accent-col ); } 113 114noscript . callout { 115margin : 0 0 1.5 rem ; 116padding : 0.6 rem 1 rem ; 117background : var ( --bg-col-2 ); 118border : 1 px solidvar ( --accent-col-mute-2 ); 119color : var ( --fg-col-mute ); 120font-size : 0.875 rem ; 121 122p { margin : 0 ; } 123} 124 125/* ref switcher (static only), crumbs, stats, actions; 126its rule separates the chrome from the content below */ 127. topbar { 128display : flex; 129flex-wrap : wrap; 130gap : 0.75 rem ; 131align-items : center; 132margin : 0 0 1.5 rem ; 133padding : 0 0 0.75 rem ; 134border-bottom : 1 px solidvar ( --accent-col-mute-2 ); 135font-size : 0.875 rem ; 136} 137. topbar : has ( + . languages ) { margin-bottom : 0 ; border-bottom : none; } 138. topbar nav . crumbs { margin : 0 ; white-space : nowrap; overflow-x : auto; } 139. topbar > . actions { 140display : flex; 141gap : 0.75 rem ; 142margin-left : auto; 143white-space : nowrap; 144} 145. topbar > . actions : empty { display : none; } 146 147a . back { 148display : inline-block; 149margin-bottom : 0.75 rem ; 150color : var ( --fg-col-mute ); 151} 152a . back : hover { color : var ( --accent-col ); } 153 154details . switcher { position : relative; } 155details . switcher > summary { 156list-style : none; 157cursor : pointer; 158background : var ( --bg-col-2 ); 159border : 1 px solidvar ( --accent-col-mute-2 ); 160padding : 0.2 em 0.75 em ; 161font-weight : 650 ; 162} 163details . switcher > summary :: -webkit-details-marker { display : none; } 164details . switcher > summary :: after { content : " ▾" ; color : var ( --fg-col-mute ); } 165details . switcher [open ]> summary { background : var ( --bg-col-3 ); } 166details . switcher > . menu { 167position : absolute; 168z-index : 1 ; 169top : calc ( 100 % + 0.25 rem ); 170left : 0 ; 171min-width : 14 rem ; 172max-height : 60 vh ; 173overflow-y : auto; 174background : var ( --bg-col-2 ); 175border : 1 px solidvar ( --accent-col-mute-2 ); 176padding : 0.4 rem 0 ; 177display : flex; 178flex-direction : column; 179} 180details . switcher > . menu strong { 181padding : 0.3 rem 0.75 rem 0.1 rem ; 182color : var ( --fg-col-mute ); 183font-size : 0.75 rem ; 184text-transform : uppercase; 185letter-spacing : 0.05 em ; 186} 187details . switcher > . menu a { 188padding : 0.15 rem 0.75 rem ; 189color : var ( --fg-col ); 190white-space : nowrap; 191} 192details . switcher > . menu a : hover { background : var ( --accent-col-mute-2 ); } 193details . switcher > . menu a . current { color : var ( --accent-col ); font-weight : 650 ; } 194details . switcher > . menu a . all { color : var ( --fg-col-mute ); margin-top : 0.25 rem ; } 195 196nav . crumbs { color : var ( --fg-col-mute ); } 197nav . crumbs . cur { color : var ( --fg-col ); } 198 199. view-stats { 200display : inline-flex; 201align-items : center; 202gap : 0.75 rem ; 203color : var ( --fg-col-mute ); 204white-space : nowrap; 205} 206. snapshot-commit { 207display : flex; 208align-items : baseline; 209flex-wrap : wrap; 210gap : 0.4 rem ; 211margin : 0 0 0.75 rem ; 212color : var ( --fg-col-mute ); 213font-size : 0.875 rem ; 214} 215. view-stats > span + span :: before { 216content : "" ; 217width : 3 px ; 218height : 3 px ; 219border : 1.5 px solidvar ( --fg-col-mute ); 220border-radius : 50 % ; 221background : var ( --fg-col-mute ); 222} 223. view-stats > span { 224display : inline-flex; 225align-items : center; 226gap : 0.75 rem ; 227} 228. snapshot-commit . commit-message { color : var ( --fg-col ); } 229. snapshot-commit a . commit-message : hover { color : var ( --accent-col ); } 230. snapshot-sha { 231margin-left : auto; 232padding : 0.1 em 0.55 em ; 233background : var ( --bg-col-2 ); 234color : var ( --fg-col-mute ); 235} 236a . snapshot-sha : hover { color : var ( --accent-col ); } 237. history-status { min-height : 1.3 rem ; margin-top : 0 ; } 238. history-log { margin-top : 0.25 rem ; } 239. history-log . deleted { color : var ( --hl-builtin ); } 240@media ( max-width : 760 px ) { 241. snapshot-sha { margin-left : 0 ; } 242} 243. meta { 244display : flex; 245align-items : center; 246gap : 0.75 rem ; 247color : var ( --fg-col-mute ); 248font-size : 0.875 rem ; 249} 250 251/* Small circle separators between adjacent segments, as tangled. The 252segments are inline-flex so the dot centres geometrically against the 253text; vertical-align can't do this portably. */ 254. meta > span , 255. who > * { 256display : inline-flex; 257align-items : center; 258} 259. meta > span + span :: before , 260. who > * + * :: before , 261nav . crumbs > . label :: before { 262content : "" ; 263width : 3 px ; 264height : 3 px ; 265border : 1.5 px solidvar ( --fg-col-mute ); 266border-radius : 50 % ; 267background : var ( --fg-col-mute ); 268margin-right : 0.75 rem ; 269} 270nav . crumbs > . label :: before { 271display : inline-block; 272vertical-align : middle; 273margin : 0 0.75 rem ; 274} 275. desc { color : var ( --fg-col-mute ); margin : 0 ; } 276 277/* repo header: name and description beside the clone command, which is 278read once and shouldn't outweigh them */ 279header . repo { 280display : grid; 281grid-template-columns : minmax ( 50 % , 1 fr ) auto; 282gap : 1 rem 2 rem ; 283align-items : center; 284margin : 0 0 1.5 rem ; 285} 286@media ( max-width : 760 px ) { 287header . repo { grid-template-columns : 1 fr ; } 288} 289 290/* root pages: file listing beside the recent-commits log */ 291/* columns stretch to the row height so the divider spans it fully */ 292. overview { 293display : grid; 294grid-template-columns : repeat ( 2 , minmax ( 0 , 1 fr )); 295} 296/* structural boundary: stronger than the per-row rules, like .readme's */ 297. overview > . files { 298padding-right : 1.25 rem ; 299border-right : 1 px solidvar ( --accent-col-mute-1 ); 300} 301. overview > . commits { 302padding-left : 1.25 rem ; 303} 304@media ( max-width : 920 px ) { 305. overview { grid-template-columns : minmax ( 0 , 1 fr ); gap : 2 rem ; } 306. overview > . files { padding-right : 0 ; border-right : 0 ; } 307. overview > . commits { padding-left : 0 ; } 308} 309 310/* the overview owns its divider from a following readme, so the readme's 311margin sits below the line rather than above it */ 312. overview : has ( + . readme ) { 313padding-bottom : 1.5 rem ; 314border-bottom : 1 px solidvar ( --accent-col-mute-1 ); 315} 316. overview + . readme { 317margin-top : 1.5 rem ; 318border-top : 0 ; 319padding-top : 0 ; 320} 321 322. overview h2 , 323h2 . file-heading { 324margin : 0 0 0.25 rem ; 325font-size : 0.875 rem ; 326font-weight : 650 ; 327color : var ( --fg-col-mute ); 328text-align : right; 329} 330. overview h2 > a { color : inherit; } 331. overview h2 > a : hover { color : var ( --accent-col ); } 332ol . log { list-style : none; margin : 0 ; padding : 0 ; } 333ol . log li { 334padding : 0.4 rem 0 ; 335border-top : 1 px solidvar ( --accent-col-mute-2 ); 336} 337ol . log . cid { color : var ( --hl-ident ); } 338ol . log . sha { color : var ( --fg-col-mute ); } 339ol . log a : is (. cid , . sha ): hover { color : var ( --accent-col ); } 340ol . log . msg { display : block; overflow : hidden; text-overflow : ellipsis; white-space : nowrap; } 341ol . log . who { 342float : right; 343display : inline-flex; 344align-items : center; 345gap : 0.5 rem ; 346color : var ( --fg-col-mute ); 347font-size : 0.875 rem ; 348} 349ol . log . who > * + * :: before { margin-right : 0.5 rem ; } 350/* hold ten two-line rows so paging doesn't shift the readme below */ 351. overview > . commits > ol . log . paginated : not (. exhausted ) { 352min-height : calc ( 10 * ( 2 lh + 0.8 rem + 1 px )); 353} 354. log-pagination { justify-content : space-between; margin : 0.4 rem 0 0 ; } 355button . log-page-button { 356appearance : none; 357border : 0 ; 358padding : 0 ; 359background : none; 360color : var ( --accent-col ); 361font : inherit; 362cursor : pointer; 363} 364button . log-page-button : hover { color : var ( --accent-col-fade-1 ); } 365button . log-page-button : disabled { color : var ( --fg-col-mute ); cursor : default; } 366 367. catalog { 368margin : 0 ; 369padding : 0 ; 370list-style : none; 371} 372. catalog a { 373display : grid; 374grid-template-columns : minmax ( 10 rem , 1 fr ) minmax ( 0 , 4 fr ); 375gap : 0.75 rem ; 376width : 100 % ; 377padding : 0.25 rem 0 ; 378border-top : 1 px solidvar ( --accent-col-mute-2 ); 379} 380. catalog . msg { color : var ( --fg-col-mute ); } 381. catalog a : hover { background : var ( --bg-col-2 ); } 382. catalog a : focus-visible { outline : 1 px solidvar ( --accent-col ); outline-offset : 2 px ; } 383@media ( max-width : 35 rem ) { 384. catalog a { grid-template-columns : 1 fr ; gap : 0 ; } 385} 386 387table . list { border-collapse : collapse; width : 100 % ; } 388/* rows carry their top edge: a line under the heading, none after the last row */ 389table . list td { 390padding : 0.25 rem 0.75 rem 0.25 rem 0 ; 391border-top : 1 px solidvar ( --accent-col-mute-2 ); 392} 393table . list td . size , table . list td . date { 394color : var ( --fg-col-mute ); 395text-align : right; 396white-space : nowrap; 397font-variant-numeric : tabular-nums; 398} 399table . list td . msg { color : var ( --fg-col-mute ); } 400 401/* blob view: each logical line shares a grid row with its number, so wrapped 402source makes that row taller without displacing the following numbers */ 403pre . code { 404display : grid; 405grid-template-columns : max-contentminmax ( 0 , 1 fr ); 406margin : 0 ; 407padding : 1 rem 0 ; 408background : var ( --bg-col-2 ); 409border-left : 2 px solidvar ( --accent-col-mute-1 ); 410line-height : 1.45 ; 411} 412. code-line { display : contents; } 413. code-break { 414position : absolute; 415width : 0 ; 416height : 0 ; 417overflow : hidden; 418} 419pre . code . ln { 420padding-left : 0.75 rem ; 421padding-right : 0.6 rem ; 422text-align : right; 423color : var ( --fg-col-mute ); 424user-select : none; 425border-right : 1 px solidvar ( --accent-col-mute-2 ); 426} 427pre . code a . ln : hover { color : var ( --fg-col ); } 428pre . code a . ln : target { color : var ( --accent-col ); font-weight : 600 ; } 429. code-text { 430min-width : 0 ; 431min-height : 1 lh ; 432padding-left : 1 rem ; 433padding-right : 1 rem ; 434white-space : pre-wrap; 435overflow-wrap : anywhere; 436} 437 438/* markdown blob pages: no-JS rendered/code tabs */ 439. markdown-view { 440display : grid; 441grid-template-columns : repeat ( 2 , max-content) 1 fr ; 442gap : 0 0.25 rem ; 443} 444. markdown-view > input { 445position : absolute; 446width : 1 px ; 447height : 1 px ; 448opacity : 0 ; 449} 450. markdown-view > label { 451cursor : pointer; 452padding : 0.2 em 0.75 em ; 453border : 1 px solidvar ( --accent-col-mute-2 ); 454color : var ( --fg-col-mute ); 455} 456. markdown-view > input : focus-visible + label { outline : 2 px solidvar ( --accent-col ); } 457. markdown-view > input : checked + label { 458color : var ( --accent-col ); 459background : var ( --bg-col-2 ); 460border-color : var ( --accent-col-mute-1 ); 461font-weight : 650 ; 462} 463. markdown-view > . rendered , 464. markdown-view > . code-panel { 465display : none; 466grid-column : 1 / -1 ; 467} 468# markdown-rendered : checked ~ . rendered , 469# markdown-code : checked ~ . code-panel { display : block; } 470. markdown-view > . readme { margin-top : 1 rem ; } 471. markdown-view > . code-panel { margin-top : 1 rem ; } 472 473. readme { 474width : 100 % ; 475margin-top : 2.5 rem ; 476border-top : 1 px solidvar ( --accent-col-mute-1 ); 477padding-top : 0.5 rem ; 478overflow-wrap : anywhere; 479} 480/* a readme's own title sits under the page h1, so its headings step down */ 481. readme h1 { font-size : 1.5 rem ; font-weight : 650 ; } 482. readme h2 { font-size : 1.25 rem ; } 483. readme pre { 484background : var ( --bg-col-2 ); 485border-left : 2 px solidvar ( --accent-col-mute-1 ); 486padding : 1 rem ; 487overflow-x : auto; 488line-height : 1.45 ; 489} 490. readme code { 491background : var ( --bg-col-2 ); 492padding : 0.125 em 0.25 em ; 493margin : 0 0.125 em ; 494font-size : 0.875 em ; 495} 496. readme pre code { background : none; padding : 0 ; margin : 0 ; font-size : inherit; } 497. readme img { max-width : 100 % ; } 498. readme blockquote { 499border-left : 2 px solidvar ( --accent-col-mute-1 ); 500margin : 1.5 rem 0 ; 501padding-left : 1 rem ; 502color : var ( --fg-col-mute ); 503} 504. readme table { border-collapse : collapse; } 505. readme th , . readme td { border : 1 px solidvar ( --accent-col-mute-2 ); padding : 0.25 rem 0.6 rem ; } 506 507/* right-aligned in the header, so the accent rule sits on the outer edge */ 508pre . clone { 509margin : 0 ; 510background : var ( --bg-col-2 ); 511border : 1 px solidvar ( --accent-col-mute-2 ); 512border-right : 2 px solidvar ( --accent-col-mute-1 ); 513padding : 0.6 rem 1 rem ; 514overflow-x : auto; 515} 516 517. languages { margin : 0 0 1.5 rem ; } 518. languages summary { 519display : flex; 520gap : 2 px ; 521height : 0.5 rem ; 522overflow : hidden; 523cursor : pointer; 524list-style : none; 525} 526. languages summary :: -webkit-details-marker { display : none; } 527. languages summary > span : not (. language-label ) { display : block; } 528. languages . language-label { 529position : absolute; 530width : 1 px ; 531height : 1 px ; 532overflow : hidden; 533clip-path : inset ( 50 % ); 534} 535. languages ul { 536display : flex; 537flex-wrap : wrap; 538gap : 0.5 rem 1.25 rem ; 539margin : 0 ; 540padding : 0.5 rem 0 0 ; 541list-style : none; 542} 543. languages li { display : flex; align-items : center; gap : 0.4 rem ; font-size : 0.875 rem ; } 544. languages li i { width : 0.65 rem ; height : 0.65 rem ; border-radius : 50 % ; } 545. languages li small { color : var ( --fg-col-mute ); } 546. languages li a { color : inherit; } 547. languages li a : hover { color : var ( --accent-col ); } 548 549/* client-rendered commit view, laid out like tangled's commit page. the 550subject and body read as one block; the metadata table and the diff each 551sit a full step below */ 552. commit-view . commit-subject { margin : 0.25 rem 0 0 ; } 553. commit-view . commit-body { 554white-space : pre-wrap; 555font : inherit; 556color : var ( --fg-col-mute ); 557margin : 0.5 rem 0 0 ; 558} 559 560table . commit-meta { 561border-collapse : collapse; 562margin-top : 1.5 rem ; 563font-size : 0.875 rem ; 564} 565table . commit-meta th { 566text-align : left; 567font-weight : 400 ; 568color : var ( --fg-col-mute ); 569padding : 0.05 rem 1.5 rem 0.05 rem 0 ; 570vertical-align : top; 571} 572table . commit-meta td { word-break : break-all; } 573 574. add-count { color : var ( --hl-string ); } 575. del-count { color : var ( --hl-builtin ); } 576. diffstat { margin : 1.5 rem 0 0 ; } 577 578. commit-view . status . added { color : var ( --hl-string ); } 579. commit-view . status . deleted { color : var ( --hl-builtin ); } 580. commit-view . status . modified { color : var ( --fg-col-mute ); } 581 582. file-diff { 583margin-top : 0.75 rem ; 584border : 1 px solidvar ( --accent-col-mute-2 ); 585} 586. file-diff + . file-diff { margin-top : 1.5 rem ; } 587. file-diff > summary { 588display : flex; 589align-items : baseline; 590gap : 0.75 rem ; 591padding : 0.35 rem 0.75 rem ; 592background : var ( --bg-col-2 ); 593color : var ( --fg-col-mute ); 594font-size : 0.875 rem ; 595cursor : pointer; 596list-style : none; 597} 598. file-diff > summary :: -webkit-details-marker { display : none; } 599. file-diff > summary :: before { 600content : "" ; 601position : relative; 602top : -0.17 rem ; 603width : 0.4 rem ; 604height : 0.4 rem ; 605flex : none; 606align-self : baseline; 607border-right : 1.5 px solid currentColor; 608border-bottom : 1.5 px solid currentColor; 609transform : rotate ( 45 deg ); 610} 611. file-diff : not ( [open ]) > summary :: before { 612top : -0.1 rem ; 613transform : rotate ( -45 deg ); 614} 615. file-diff > summary : focus-visible { outline : 2 px solidvar ( --accent-col ); outline-offset : 2 px ; } 616. file-summary-content { 617display : inline-flex; 618align-items : baseline; 619flex-wrap : wrap; 620gap : 0 0.6 rem ; 621flex : 1 ; 622min-width : 0 ; 623} 624. file-summary-content . path { 625color : var ( --fg-col ); 626font-weight : 600 ; 627overflow-wrap : anywhere; 628} 629. file-summary-content . file-actions { 630display : inline-flex; 631align-items : baseline; 632gap : 0.6 rem ; 633margin-left : auto; 634} 635. file-diff . binary-note { padding : 0.5 rem 0.75 rem ; } 636. file-diff . generated-note { color : var ( --fg-col-mute ); font-style : italic; } 637 638table . diff { 639width : 100 % ; 640border-collapse : collapse; 641border-top : 1 px solidvar ( --accent-col-mute-2 ); 642line-height : 1.5 ; 643} 644table . diff td { padding : 0 0.6 rem ; } 645table . diff td . text { white-space : pre-wrap; word-break : break-word; width : 100 % ; } 646table . diff td . text :: before { 647content : " " ; 648display : inline-block; 649width : 1 ch ; 650margin-right : 0.5 ch ; 651} 652table . diff tr . add td . text :: before { content : "+" ; color : var ( --hl-string ); } 653table . diff tr . del td . text :: before { content : "-" ; color : var ( --hl-builtin ); } 654table . diff td . ln { 655text-align : right; 656color : var ( --fg-col-mute ); 657user-select : none; 658white-space : nowrap; 659min-width : 2.5 rem ; 660} 661table . diff tr . hunk td { 662color : var ( --fg-col-mute ); 663background : var ( --bg-col-2 ); 664padding-top : 0.15 rem ; 665padding-bottom : 0.15 rem ; 666} 667table . diff tr . add { background : color-mix ( in srgb, var ( --hl-string ) 9 % , transparent); } 668table . diff tr . del { background : color-mix ( in srgb, var ( --hl-builtin ) 9 % , transparent); } 669 670/* syntax highlighting, as char.lt */ 671a-c , a-cd , a-er { 672color : var ( --hl-comment ); 673} 674 675a-k , a-kc , a-ko , a-kd , a-ke , a-kf , a-ki , a-kp , a-kr , a-kt , a-ky , a-km , a-dr , 676a-in , a-sc , a-rp , a-cn , a-ex , a-pp , 677a-co , a-cb , a-m , 678a-tu , a-tr { 679color : var ( --hl-keyword ); 680font-weight : 600 ; 681} 682 683/* builtins & types */ 684a-t , a-tb , a-tq , a-tf , a-fb { 685color : var ( --hl-builtin ); 686} 687 688a-s , a-ss , a-se , a-rx , a-ch , a-cs { 689color : var ( --hl-string ); 690} 691 692a-n { 693color : var ( --hl-number ); 694} 695 696a-f , a-fm , a-fd , a-fc , a-cr , a-ns , 697a-tg , a-td , a-at , a-pr , a-vm , a-l { 698color : var ( --hl-ident ); 699} 700 701a-da { color : var ( --hl-string ); } 702a-dd { color : var ( --hl-comment ); } 703 704a-em { font-style : italic; } 705a-st , a-tt { font-weight : 600 ; } 706a-tx { text-decoration : line-through; } 707 708/* match the old behaviour of only colouring shell-script variables */ 709. language-bash a-v , . language-shell a-v , . language-zsh a-v { 710color : var ( --hl-ident ); 711}