chore(visitenkarte): upload source files

Ich moechte nicht, dass der source code irgendwie wegkommt falls ich mal
meinen Zugriff verlieren sollte.

Jetzt ist er hier fuer ewig. Hehe >:)

Authored-by: Aviac <aviac@mailbox.org>
This commit is contained in:
aviac - 2024-01-15 18:44:31 +01:00
parent a53b6d8ac0
commit c5622515ee
Signed by: aviac
GPG Key ID: 644781002BDEA982
4 changed files with 122 additions and 0 deletions

View File

@ -0,0 +1,16 @@
# How to render it yourself
- typst.app
- get an account
- start empty project
- copy everything from main.typ to the file
- upload the two images there as well
- done
# Is there a way to do this not in the web app?
- Certainly! I haven't tried it yet. Feel free to find it out!
# Useful
- Docs @ https://typst.app/docs/reference/

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 MiB

BIN
typst/visitenkarte/cms.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

106
typst/visitenkarte/main.typ Normal file
View File

@ -0,0 +1,106 @@
#import "@preview/codetastic:0.2.2": qrcode;
#let page_size = (width: 8.5cm, height: 5.3cm);
#set text(font: "PT Sans");
#set page(
..page_size,
background: [
#image(
// src: https://www.freepik.com/free-ai-image/cute-fish-ice-cream-fantasy-backdrop-generated-by-ai_41213126.htm#query=seamless%20chaos&position=34&from_view=keyword&track=ais
"background.jpg",
width: 255pt,
height: 180pt)
],
// to make the back side
margin: (left: -1pt, right: 0pt)
);
#let front_content = [#image("cms.png", width: 120pt, height: auto)]];
#let round_dots(diff: length) = {
return (thickness: 2pt, cap: "round", dash: (0pt, diff));
};
#let transparent = color.linear-rgb(0,0,0,0)
#let cell = rect.with(
radius: 6pt,
stroke: none
);
#let shadow_box(body, fill: luma(150), shadow-color: luma(240), shadow: 3pt, shadow-radius: 2pt, width: 170pt, height: 50pt) = {
rect(fill: fill, stroke: (paint: transparent), width: width + shadow, height: height + shadow, inset: (left: -2pt, top: -2pt), radius: 1.5 * shadow-radius)[
#align(top + left)[
#rect(fill: shadow-color, stroke: (paint: black, thickness: 0.5pt), inset: (left: 5pt, right:0pt), width: width, height: height, radius: shadow-radius)[
#body
]
]
]
};
#let info_content = [
#set text(size: 8pt);
#grid(
columns: (20%, 70%),
row-gutter: -6pt,
rows: auto,
cell[*Email:*], cell[schule\@c3d2.de],
cell[*Adresse:*], cell[Zentralwerk, Riesaer Straße 32],
cell[*Treffen:*], cell[zweiter Mittwoch im Monat],
cell[], cell[letzter Donnerstag im Monat],
);
]
#let info_content3 = [
#text(size: 8pt)[
- #text(weight: "semibold")[Email]: #h(10pt) schule\@c3d2.de
- #text(weight: "semibold")[Adresse]: #h(3pt) Zentralwerk, Riesaer Straße 32
- #text(weight: "semibold")[Treff]: #h(15pt) immer am 2. Mittwoch im Monat 18 Uhr
]
];
#let other_content = [
#text(size: 8pt)[Du hast Lust bei uns mit-zuwirken oder möchtest allgemein gern mehr zu Chaos macht Schule wissen? Scanne den Code und schau auf unserer Seite vorbei!]
];
#let circle_radius = 68pt;
#align(
center + horizon)[
#circle(
fill: white,
stroke: (paint: black, thickness: 0.75pt),
radius: circle_radius)[
#circle(
fill: white,
// magic number to make the circle seemless
stroke: (paint: luma(100), ..round_dots(diff: 3.0pt)),
radius: circle_radius - 4pt)[
#front_content
]
]
]
#align(left + horizon)[
#rect(fill: white, width: 193pt, height: 200pt, inset: 0pt, stroke: black)[
#rect(fill: white, stroke: (paint:black, thickness: 0.6pt), width: 190pt, height: 175pt, inset: 0pt)[
#box(inset: (left: 12pt, top: 4pt, right: 0pt))[
#align(center)[
#shadow_box(shadow-radius: 2pt, shadow: 1pt)[
#align(left + horizon)[
#info_content
]
]
]
#rect(fill: white, stroke: white, inset: (left: 0pt, top: -13pt))[
#box(width: 100pt)[
#other_content
]
#box(width: 60pt, inset: (left: 5pt, right: -10pt, bottom: -5pt, top: 5pt))[
#text(size: 5.5pt)[https://c3d2.de/schule.html]
#qrcode("https://c3d2.de/schule.html", width: 60pt)
]
]
]
]
]
]