#let pill(fill, content) = { block( inset: 4pt, fill: fill, radius: 3pt, text(black, [#content]), ) } #let education(degree, university, from, to, location, content) = { grid( align: horizon, rows: (auto, auto), columns: (auto, auto, auto), grid.cell( inset: ( bottom: 6pt, ), colspan: 3, stack( dir: ltr, spacing: 6pt, text(13pt, [*#degree*]), pill(luma(230), [#from - #to]), pill(luma(200), location), ), ), text(luma(90), [*#university*]), ) v(4pt) content } #let work(role, company, from, to, location, content) = { grid( align: horizon, rows: (auto, auto), columns: (auto, auto, auto), grid.cell( inset: ( bottom: 6pt, ), colspan: 3, stack( dir: ltr, spacing: 6pt, text(13pt, [*#role*]), pill(luma(230), [#from - #to]), pill(luma(200), location), ), ), text(luma(90), [*#company*]), ) v(4pt) content } #let cv( short, name, positions, email, phone, address, doc ) = { set page( paper: "a4", margin: 12pt ) set text(11pt, font: "Victor Mono") grid( columns: (1fr, 3fr), rows: 130pt, block( height: 100%, clip: true, radius: 10pt, image("../assets/profile.jpg"), ), block( radius: 10pt, width: 100%, height: 100%, fill: black, inset: ( top: 16pt, left: 18pt ), stack( spacing: 12pt, stack( dir: ltr, spacing: 10pt, text(red, 22pt, [\$ dennis\@schöpf \~>]), text(white, 22pt, [*lebenslauf*]), ), text( white, 14pt, positions.join("\n", last: " & "), ), v(16pt), stack( spacing: 6pt, stack( dir: ltr, spacing: 6pt, text(red, 12pt, [\$ \~>]), text(white, 12pt, [*kontakt*]), ), text( white, 11pt, (email, phone, address).join(" ++ "), ) ), ) ) ) set align(left) doc }