diff options
| -rw-r--r-- | main.typ | 122 | ||||
| -rw-r--r-- | title.svg | 16 |
2 files changed, 138 insertions, 0 deletions
diff --git a/main.typ b/main.typ new file mode 100644 index 0000000..55afd6e --- /dev/null +++ b/main.typ @@ -0,0 +1,122 @@ +#set text( + font: "Gentium Book", + size: 12pt, + lang: "en", + region: "us", + script: "latn", +) +#set par( + leading: 0.5em, + spacing: 1em, + linebreaks: "optimized", +) +#set page( + width: 4.5in, + height: 5.5in, + margin: (x: 0.5in, y: 0.75in), +) +#set document( + title: "The Lightened Black", + author: "Mica White", + description: "A story of a sleepless night alone" +) + +#let black = cmyk(0%, 0%, 0%, 100%) +#let white = cmyk(0%, 0%, 0%, 0%) +#let page-white(body) = [ + #set page(fill: white) + #set text(fill: black) + #body +] +#let page-black(body) = [ + #set page(fill: black) + #set text(fill: white) + #body +] +#let page-red(body) = [ + #set page(fill: cmyk(0%, 40%, 40%, 0%)) + #set text(fill: black) + #body +] + +#let eyes(name) = pad( + top: 0.25in, + bottom: 0.25in, + align(center, image("eye-" + name + ".svg", width: 50%)) +) + +#let titlepage = { + counter(page).update(0) + context page( + margin: ( top: 25% ), + numbering: none, + fill: black, //gradient.radial(cmyk(0%, 0%, 0%, 75%), black), + align(center)[ + #show: set text(fill: white, font: "Amita") + #align(end, image("title.svg", width: 100%, alt: "The Lightened Black")) + #document.author.map( + (author) => par(text(size: 1.15em, author)) + ).join() + ] + ) +} +#let copyrightpage(content) = { + counter(page).update(0) + page( + numbering: none, + align(center, content) + ) +} + +#show: page-white + +#copyrightpage[ +Copyright #sym.copyright 2026 by Mica White + +#linebreak() + +Any resemblance to actual persons or events would be very disappointing. + +#linebreak() + +First edition +] +#titlepage + +#let left() = { + let current = counter(page).get() + calc.odd(current.first()) +} +#set page( + header: context { + align(center, text( + size: 0.9em, + if left() { + "The Lightened Black" + } else { + "Mica White" + } + )) + }, + footer: context { + align( + if left() {start} else {end}, + text( + size: 0.9em, + [#counter(page).get().first()] + ), + ) + }, +) + +#eyes("open") +#lorem(50) +#show: page-black +#eyes("closed") +#lorem(50) +#show: page-white +#eyes("open-tears") +#lorem(50) +#show: page-red +#align(center, image("eye-bloody.svg")) +#lorem(50) diff --git a/title.svg b/title.svg new file mode 100644 index 0000000..14a02f8 --- /dev/null +++ b/title.svg @@ -0,0 +1,16 @@ +<svg version="1.1" width="575" height="100" xmlns="http://www.w3.org/2000/svg"> + <g style="overflow:hidden; text-anchor: start; font-size:50; font-family: Impact, sans-serif"> + <defs> + <filter id="glow" x="-30%" y="-30%" width="160%" height="160%"> + <feGaussianBlur stdDeviation="10 10" result="glow"/> + <feMerge> + <feMergeNode in="glow"/> + <feMergeNode in="glow"/> + <feMergeNode in="glow"/> + </feMerge> + </filter> + </defs> + <text style="filter: url(#glow); fill: #777" x="60" y="55">The Lightened Black</text> + <text x="60" y="55" style="fill: white;">The Lightened Black</text> + </g> +</svg> |
