Branding: logo (light/dark), bird mark, icon, social preview, brand guide; logo in READMEs

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Nexoniarz 2026-10-08 19:24:31 +02:00
commit 01c5badc3e
15 changed files with 276 additions and 2 deletions

View file

@ -1,4 +1,9 @@
# Finch 🐦
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="assets/logo-dark.svg">
<img alt="Finch" src="assets/logo.svg" width="460">
</picture>
</p>
**Small, quick, sharp.** A programming language on LLVM with C-like syntax, simple enough
to learn in an hour and as fast as C.

View file

@ -1,4 +1,9 @@
# Finch 🐦
<p align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="assets/logo-dark.svg">
<img alt="Finch" src="assets/logo.svg" width="460">
</picture>
</p>
**Mały, zwinny, skuteczny.** Język programowania na LLVM ze składnią podobną do C,
na tyle prosty, że nauczysz się go w godzinę, i tak szybki jak C.

56
assets/BRAND.md Normal file
View file

@ -0,0 +1,56 @@
# Finch brand
> 🇵🇱 Opis po polsku jest niżej.
## Logo
| File | Use |
|---|---|
| `logo.svg` / `logo.png` | the bird + wordmark, for light backgrounds |
| `logo-dark.svg` / `logo-dark.png` | the same for dark backgrounds |
| `logo-mark.svg`, `logo-mark-dark.svg` | the bird alone |
| `icon.svg`, `icon.png`, `icon-256.png`, `favicon-64.png` | app icon / avatar / favicon |
| `social-preview.svg` / `social-preview.png` | GitHub social preview (1280×640) |
The wordmark is drawn with strokes (no font needed), lowercase, with an orange dot over the **i**.
Keep clear space around the logo of at least the height of the letter **n**. Don't recolor the bird,
stretch it, or put it on busy backgrounds.
## Colors
| Name | Hex | Use |
|---|---|---|
| Finch Orange | `#FF7A1A` | the bird, accents, the dot over the i |
| Glow | `#FFA24D` | light orange highlights |
| Seed | `#FFC145` | the beak, numbers in code |
| Ink | `#1B1F2A` | text, the wing, dark backgrounds |
| Slate | `#2E3445` | secondary dark |
| Cloud | `#F5F3EF` | text on dark, light backgrounds |
| Shell | `#FFF3E6` | the icon background |
## Type
Headlines and text: **Inter**. Code: **JetBrains Mono**.
## Voice
Short sentences. Plain words. Say what something does, then show it. Errors explain how to fix the problem.
Tagline: **Small, quick, sharp.**
---
## Marka Finch (po polsku)
**Logo:** pliki jak w tabeli wyżej. `logo.svg` jest na jasne tło, `logo-dark.svg` na ciemne,
`logo-mark*.svg` to sam ptak, `icon*` to ikona i awatar, a `social-preview.png` to podgląd linku na GitHubie.
Napis jest rysowany liniami (nie potrzebuje czcionki), małymi literami, z pomarańczową kropką nad **i**.
Zostaw wokół logo wolne miejsce co najmniej wysokości litery **n**. Nie zmieniaj kolorów ptaka, nie
rozciągaj go i nie kładź na pstrokatym tle.
**Kolory:** Finch Orange `#FF7A1A` (ptak, akcenty), Glow `#FFA24D`, Seed `#FFC145` (dziób),
Ink `#1B1F2A` (tekst, skrzydło, ciemne tło), Slate `#2E3445`, Cloud `#F5F3EF` (tekst na ciemnym), Shell `#FFF3E6` (tło ikony).
**Czcionki:** Inter do tekstu, JetBrains Mono do kodu.
**Styl wypowiedzi:** krótkie zdania, proste słowa. Najpierw powiedz, co coś robi, potem to pokaż.
Komunikaty błędów mówią, jak naprawić problem. Hasło: **Small, quick, sharp.** („Mały, zwinny, skuteczny”).

BIN
assets/favicon-64.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
assets/icon-256.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
assets/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

26
assets/icon.svg Normal file
View file

@ -0,0 +1,26 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512">
<title>Finch</title>
<rect x="16" y="16" width="480" height="480" rx="112" fill="#FFF3E6"/>
<g transform="translate(22 18) scale(0.86)">
<g transform="translate(0 -26)">
<!-- tail: two feathers -->
<path d="M178 316 L60 360 Q50 374 64 382 L192 348 Z" fill="#1B1F2A"/>
<path d="M182 334 L78 398 Q72 412 88 414 L200 360 Z" fill="#2E3445"/>
<!-- body -->
<path d="M150 330 C150 220 240 140 330 140 C400 140 440 190 440 245 C440 330 370 392 280 395 C220 398 168 372 150 330 Z" fill="#FF7A1A"/>
<!-- belly light -->
<path d="M236 390 C336 398 428 330 438 254 C432 300 404 330 372 350 C336 372 290 384 236 390 Z" fill="#FFA24D"/>
<!-- wing, swept back -->
<path d="M352 256 C306 232 228 256 160 340 C244 336 318 316 352 256 Z" fill="#1B1F2A"/>
<path d="M330 260 C292 252 246 270 206 306" fill="none" stroke="#FFFFFF" stroke-width="9" stroke-linecap="round"/>
<!-- beak -->
<path d="M434 212 L494 234 L434 254 Z" fill="#FFC145"/>
<!-- eye -->
<circle cx="382" cy="206" r="16" fill="#1B1F2A"/>
<circle cx="388" cy="200" r="5" fill="#FFFFFF"/>
<!-- legs and branch -->
<path d="M276 394 L270 420 M316 390 L318 420" stroke="#1B1F2A" stroke-width="10" stroke-linecap="round"/>
<path d="M120 424 L440 424" stroke="#1B1F2A" stroke-width="14" stroke-linecap="round"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
assets/logo-dark.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

36
assets/logo-dark.svg Normal file
View file

@ -0,0 +1,36 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 300" width="1000" height="300">
<title>Finch</title>
<g transform="translate(0 6) scale(0.56)">
<g transform="translate(0 -26)">
<!-- tail: two feathers -->
<path d="M178 316 L60 360 Q50 374 64 382 L192 348 Z" fill="#F5F3EF"/>
<path d="M182 334 L78 398 Q72 412 88 414 L200 360 Z" fill="#C9C4BC"/>
<!-- body -->
<path d="M150 330 C150 220 240 140 330 140 C400 140 440 190 440 245 C440 330 370 392 280 395 C220 398 168 372 150 330 Z" fill="#FF7A1A"/>
<!-- belly light -->
<path d="M236 390 C336 398 428 330 438 254 C432 300 404 330 372 350 C336 372 290 384 236 390 Z" fill="#FFA24D"/>
<!-- wing, swept back -->
<path d="M352 256 C306 232 228 256 160 340 C244 336 318 316 352 256 Z" fill="#1B1F2A"/>
<path d="M330 260 C292 252 246 270 206 306" fill="none" stroke="#FFFFFF" stroke-width="9" stroke-linecap="round"/>
<!-- beak -->
<path d="M434 212 L494 234 L434 254 Z" fill="#FFC145"/>
<!-- eye -->
<circle cx="382" cy="206" r="16" fill="#1B1F2A"/>
<circle cx="388" cy="200" r="5" fill="#FFFFFF"/>
<!-- legs and branch -->
<path d="M276 394 L270 420 M316 390 L318 420" stroke="#F5F3EF" stroke-width="10" stroke-linecap="round"/>
<path d="M120 424 L440 424" stroke="#F5F3EF" stroke-width="14" stroke-linecap="round"/>
</g>
</g>
<g transform="translate(330 20)">
<g fill="none" stroke="#F5F3EF" stroke-width="30" stroke-linecap="round" stroke-linejoin="round">
<path d="M60 230 L60 112 C60 84 78 70 104 70"/>
<path d="M32 142 L98 142"/>
<path d="M150 146 L150 230"/>
<path d="M210 230 L210 146 M210 188 C210 162 230 142 258 142 C286 142 302 160 302 188 L302 230"/>
<path d="M428 162 C414 148 400 142 384 142 C356 142 336 162 336 187 C336 212 356 232 384 232 C400 232 414 226 428 212"/>
<path d="M478 230 L478 70 M478 188 C478 162 498 142 526 142 C554 142 570 160 570 188 L570 230"/>
</g>
<circle cx="150" cy="96" r="19" fill="#FF7A1A"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2 KiB

23
assets/logo-mark-dark.svg Normal file
View file

@ -0,0 +1,23 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512">
<title>Finch</title>
<g transform="translate(0 -26)">
<!-- tail: two feathers -->
<path d="M178 316 L60 360 Q50 374 64 382 L192 348 Z" fill="#F5F3EF"/>
<path d="M182 334 L78 398 Q72 412 88 414 L200 360 Z" fill="#C9C4BC"/>
<!-- body -->
<path d="M150 330 C150 220 240 140 330 140 C400 140 440 190 440 245 C440 330 370 392 280 395 C220 398 168 372 150 330 Z" fill="#FF7A1A"/>
<!-- belly light -->
<path d="M236 390 C336 398 428 330 438 254 C432 300 404 330 372 350 C336 372 290 384 236 390 Z" fill="#FFA24D"/>
<!-- wing, swept back -->
<path d="M352 256 C306 232 228 256 160 340 C244 336 318 316 352 256 Z" fill="#1B1F2A"/>
<path d="M330 260 C292 252 246 270 206 306" fill="none" stroke="#FFFFFF" stroke-width="9" stroke-linecap="round"/>
<!-- beak -->
<path d="M434 212 L494 234 L434 254 Z" fill="#FFC145"/>
<!-- eye -->
<circle cx="382" cy="206" r="16" fill="#1B1F2A"/>
<circle cx="388" cy="200" r="5" fill="#FFFFFF"/>
<!-- legs and branch -->
<path d="M276 394 L270 420 M316 390 L318 420" stroke="#F5F3EF" stroke-width="10" stroke-linecap="round"/>
<path d="M120 424 L440 424" stroke="#F5F3EF" stroke-width="14" stroke-linecap="round"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

23
assets/logo-mark.svg Normal file
View file

@ -0,0 +1,23 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" width="512" height="512">
<title>Finch</title>
<g transform="translate(0 -26)">
<!-- tail: two feathers -->
<path d="M178 316 L60 360 Q50 374 64 382 L192 348 Z" fill="#1B1F2A"/>
<path d="M182 334 L78 398 Q72 412 88 414 L200 360 Z" fill="#2E3445"/>
<!-- body -->
<path d="M150 330 C150 220 240 140 330 140 C400 140 440 190 440 245 C440 330 370 392 280 395 C220 398 168 372 150 330 Z" fill="#FF7A1A"/>
<!-- belly light -->
<path d="M236 390 C336 398 428 330 438 254 C432 300 404 330 372 350 C336 372 290 384 236 390 Z" fill="#FFA24D"/>
<!-- wing, swept back -->
<path d="M352 256 C306 232 228 256 160 340 C244 336 318 316 352 256 Z" fill="#1B1F2A"/>
<path d="M330 260 C292 252 246 270 206 306" fill="none" stroke="#FFFFFF" stroke-width="9" stroke-linecap="round"/>
<!-- beak -->
<path d="M434 212 L494 234 L434 254 Z" fill="#FFC145"/>
<!-- eye -->
<circle cx="382" cy="206" r="16" fill="#1B1F2A"/>
<circle cx="388" cy="200" r="5" fill="#FFFFFF"/>
<!-- legs and branch -->
<path d="M276 394 L270 420 M316 390 L318 420" stroke="#1B1F2A" stroke-width="10" stroke-linecap="round"/>
<path d="M120 424 L440 424" stroke="#1B1F2A" stroke-width="14" stroke-linecap="round"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

BIN
assets/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

36
assets/logo.svg Normal file
View file

@ -0,0 +1,36 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1000 300" width="1000" height="300">
<title>Finch</title>
<g transform="translate(0 6) scale(0.56)">
<g transform="translate(0 -26)">
<!-- tail: two feathers -->
<path d="M178 316 L60 360 Q50 374 64 382 L192 348 Z" fill="#1B1F2A"/>
<path d="M182 334 L78 398 Q72 412 88 414 L200 360 Z" fill="#2E3445"/>
<!-- body -->
<path d="M150 330 C150 220 240 140 330 140 C400 140 440 190 440 245 C440 330 370 392 280 395 C220 398 168 372 150 330 Z" fill="#FF7A1A"/>
<!-- belly light -->
<path d="M236 390 C336 398 428 330 438 254 C432 300 404 330 372 350 C336 372 290 384 236 390 Z" fill="#FFA24D"/>
<!-- wing, swept back -->
<path d="M352 256 C306 232 228 256 160 340 C244 336 318 316 352 256 Z" fill="#1B1F2A"/>
<path d="M330 260 C292 252 246 270 206 306" fill="none" stroke="#FFFFFF" stroke-width="9" stroke-linecap="round"/>
<!-- beak -->
<path d="M434 212 L494 234 L434 254 Z" fill="#FFC145"/>
<!-- eye -->
<circle cx="382" cy="206" r="16" fill="#1B1F2A"/>
<circle cx="388" cy="200" r="5" fill="#FFFFFF"/>
<!-- legs and branch -->
<path d="M276 394 L270 420 M316 390 L318 420" stroke="#1B1F2A" stroke-width="10" stroke-linecap="round"/>
<path d="M120 424 L440 424" stroke="#1B1F2A" stroke-width="14" stroke-linecap="round"/>
</g>
</g>
<g transform="translate(330 20)">
<g fill="none" stroke="#1B1F2A" stroke-width="30" stroke-linecap="round" stroke-linejoin="round">
<path d="M60 230 L60 112 C60 84 78 70 104 70"/>
<path d="M32 142 L98 142"/>
<path d="M150 146 L150 230"/>
<path d="M210 230 L210 146 M210 188 C210 162 230 142 258 142 C286 142 302 160 302 188 L302 230"/>
<path d="M428 162 C414 148 400 142 384 142 C356 142 336 162 336 187 C336 212 356 232 384 232 C400 232 414 226 428 212"/>
<path d="M478 230 L478 70 M478 188 C478 162 498 142 526 142 C554 142 570 160 570 188 L570 230"/>
</g>
<circle cx="150" cy="96" r="19" fill="#FF7A1A"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2 KiB

BIN
assets/social-preview.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

64
assets/social-preview.svg Normal file
View file

@ -0,0 +1,64 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 640" width="1280" height="640">
<defs>
<radialGradient id="glow" cx="0.18" cy="0.2" r="0.7">
<stop offset="0" stop-color="#FF7A1A" stop-opacity="0.22"/>
<stop offset="1" stop-color="#FF7A1A" stop-opacity="0"/>
</radialGradient>
</defs>
<rect width="1280" height="640" fill="#1B1F2A"/>
<rect width="1280" height="640" fill="url(#glow)"/>
<g transform="translate(64 110) scale(0.6)">
<g transform="translate(0 6) scale(0.56)">
<g transform="translate(0 -26)">
<!-- tail: two feathers -->
<path d="M178 316 L60 360 Q50 374 64 382 L192 348 Z" fill="#F5F3EF"/>
<path d="M182 334 L78 398 Q72 412 88 414 L200 360 Z" fill="#C9C4BC"/>
<!-- body -->
<path d="M150 330 C150 220 240 140 330 140 C400 140 440 190 440 245 C440 330 370 392 280 395 C220 398 168 372 150 330 Z" fill="#FF7A1A"/>
<!-- belly light -->
<path d="M236 390 C336 398 428 330 438 254 C432 300 404 330 372 350 C336 372 290 384 236 390 Z" fill="#FFA24D"/>
<!-- wing, swept back -->
<path d="M352 256 C306 232 228 256 160 340 C244 336 318 316 352 256 Z" fill="#1B1F2A"/>
<path d="M330 260 C292 252 246 270 206 306" fill="none" stroke="#FFFFFF" stroke-width="9" stroke-linecap="round"/>
<!-- beak -->
<path d="M434 212 L494 234 L434 254 Z" fill="#FFC145"/>
<!-- eye -->
<circle cx="382" cy="206" r="16" fill="#1B1F2A"/>
<circle cx="388" cy="200" r="5" fill="#FFFFFF"/>
<!-- legs and branch -->
<path d="M276 394 L270 420 M316 390 L318 420" stroke="#F5F3EF" stroke-width="10" stroke-linecap="round"/>
<path d="M120 424 L440 424" stroke="#F5F3EF" stroke-width="14" stroke-linecap="round"/>
</g>
</g>
<g transform="translate(330 20)">
<g fill="none" stroke="#F5F3EF" stroke-width="30" stroke-linecap="round" stroke-linejoin="round">
<path d="M60 230 L60 112 C60 84 78 70 104 70"/>
<path d="M32 142 L98 142"/>
<path d="M150 146 L150 230"/>
<path d="M210 230 L210 146 M210 188 C210 162 230 142 258 142 C286 142 302 160 302 188 L302 230"/>
<path d="M428 162 C414 148 400 142 384 142 C356 142 336 162 336 187 C336 212 356 232 384 232 C400 232 414 226 428 212"/>
<path d="M478 230 L478 70 M478 188 C478 162 498 142 526 142 C554 142 570 160 570 188 L570 230"/>
</g>
<circle cx="150" cy="96" r="19" fill="#FF7A1A"/>
</g>
</g>
<text x="70" y="370" font-family="Inter" font-weight="700" font-size="52" fill="#F5F3EF">Small, quick, sharp.</text>
<text x="70" y="430" font-family="Inter" font-size="27" fill="#C9C4BC">A programming language on LLVM.</text>
<text x="70" y="470" font-family="Inter" font-size="27" fill="#C9C4BC">As fast as C. Learn it in an hour.</text>
<text x="70" y="560" font-family="Inter" font-size="22" fill="#7D8590">github.com/Nexoniarz/Finch</text>
<rect x="690" y="120" width="530" height="440" rx="22" fill="#12151D" stroke="#2E3445" stroke-width="2"/>
<circle cx="722" cy="150" r="7" fill="#FF5F57"/><circle cx="746" cy="150" r="7" fill="#FEBC2E"/><circle cx="770" cy="150" r="7" fill="#28C840"/>
<g transform="translate(726 202)" font-family="JetBrainsMono Nerd Font Mono, JetBrains Mono, DejaVu Sans Mono, monospace" font-size="23" xml:space="preserve">
<text x="0" y="0"><tspan fill="#FF7A1A">struct</tspan><tspan fill="#F5F3EF"> Bird {</tspan></text>
<text x="0" y="34"><tspan fill="#F5F3EF"> str name</tspan></text>
<text x="0" y="68"><tspan fill="#F5F3EF"> int speed = </tspan><tspan fill="#FFC145">9</tspan></text>
<text x="0" y="102"><tspan fill="#F5F3EF">}</tspan></text>
<text x="0" y="170"><tspan fill="#FF7A1A">fn</tspan><tspan fill="#7AA2F7"> main</tspan><tspan fill="#F5F3EF">() {</tspan></text>
<text x="0" y="204"><tspan fill="#F5F3EF"> flock := [</tspan><tspan fill="#7AA2F7">Bird</tspan><tspan fill="#F5F3EF">(name: </tspan><tspan fill="#9ECE6A">"finch"</tspan><tspan fill="#F5F3EF">)]</tspan></text>
<text x="0" y="238"><tspan fill="#F5F3EF"> </tspan><tspan fill="#FF7A1A">for</tspan><tspan fill="#F5F3EF"> b </tspan><tspan fill="#FF7A1A">in</tspan><tspan fill="#F5F3EF"> flock {</tspan></text>
<text x="0" y="272"><tspan fill="#F5F3EF"> </tspan><tspan fill="#7AA2F7">print</tspan><tspan fill="#F5F3EF">(b.name, </tspan><tspan fill="#9ECE6A">"is fast"</tspan><tspan fill="#F5F3EF">)</tspan></text>
<text x="0" y="306"><tspan fill="#F5F3EF"> }</tspan></text>
<text x="0" y="340"><tspan fill="#F5F3EF">}</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB