공개: alpha.5 기준선 갱신

This commit is contained in:
Ian 2026-04-16 12:04:40 +09:00
commit 00da320d96
62 changed files with 883 additions and 175 deletions

91
branding/BRAND_GUIDE.md Normal file
View file

@ -0,0 +1,91 @@
# KoTalk Brand Guide
## Overview
This package turns the approved raster logo concept into a reusable production asset set for KoTalk.
- Reference intent: warm, calm, modern messenger mark
- Primary use: app icon, favicon, PWA icon, Windows icon, docs, release pages
- Master source: `branding/kotalk-logo-master.svg`
## File Inventory
### Master vectors
- `branding/kotalk-logo-master.svg`
- `branding/kotalk-logo-master.pdf`
- `branding/kotalk-logo-master.eps`
### PNG exports
- Transparent: `branding/png/kotalk-transparent-{1024|512|256|192|180|128|64|32|16}.png`
- White background: `branding/png/kotalk-white-1024.png`
- Mono black: `branding/png/kotalk-mono-black-1024.png`
- Mono white: `branding/png/kotalk-mono-white-1024.png`
- Inverse for dark surfaces: `branding/png/kotalk-inverse-1024.png`
### ICO exports
- Windows app icon: `branding/ico/kotalk.ico`
- Favicon bundle: `branding/ico/favicon.ico`
### Applied runtime assets
- Web app icons: `src/PhysOn.Web/public/`
- Desktop app icons: `src/PhysOn.Desktop/Assets/`
## Color System
### Core colors
- Ink: `#394350`
- Warm accent: `#F05B2B`
- Separator white: `#FFFFFF`
### Supporting backgrounds
- Paper: `#F7F3EE`
- Night: `#141922`
### Recommended backgrounds
- White: `#FFFFFF`
- Warm paper: `#F7F3EE`
- Dark surface: `#141922`
## Safe Area
- Artboard: `1024 x 1024`
- Recommended clear area from the artboard edge: `128px`
- Do not scale the visible mark so large that any speech bubble or the center chevron approaches the outer 12% of the square
## Minimum Use Size
- Preferred minimum digital size: `24px`
- Favicon minimum: `16px`
- When rendering below `24px`, use the packaged ICO or PNG exports instead of re-rasterizing from screenshots
## Usage Rules
- Keep the mark square, centered, and unrotated
- Use the transparent master for docs and UI surfaces when the background is already controlled
- Use the white background exports for launcher and touch icons
- Use the mono variants only where a single-color system is required
## Do Not
- Stretch or rotate the mark
- Add shadows, glow, gradients, glass, or texture
- Change the orange or dark brand colors arbitrarily
- Add pattern backgrounds behind the mark
- Recreate the logo from screenshots when the packaged vectors are available
## Regeneration
Run:
```bash
python scripts/branding/generate_kotalk_brand_assets.py
```
This regenerates the committed vector, PNG, ICO, and app-facing icon assets from the scripted master geometry.

BIN
branding/ico/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
branding/ico/kotalk.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View file

@ -0,0 +1,54 @@
%!PS-Adobe-3.0 EPSF-3.0
%%BoundingBox: 0 0 1024 1024
%%HiResBoundingBox: 0 0 1024 1024
%%LanguageLevel: 2
%%Pages: 1
%%EndComments
/roundrect {
/r exch def
/y2 exch def
/x2 exch def
/y exch def
/x exch def
newpath
x r add y moveto
x2 r sub y lineto
x2 r sub y r add r 270 360 arc
x2 y2 r sub lineto
x2 r sub y2 r sub r 0 90 arc
x r add y2 lineto
x r add y2 r sub r 90 180 arc
x y r add lineto
x r add y r add r 180 270 arc
closepath
} def
gsave
0 1024 translate
1 -1 scale
0.223529 0.262745 0.313725 setrgbcolor
218.00 312.00 584.00 602.00 22.00 roundrect fill
newpath
304.00 602.00 moveto
304.00 736.00 lineto
438.00 602.00 lineto
closepath fill
0.941176 0.356863 0.168627 setrgbcolor
446.00 312.00 812.00 602.00 22.00 roundrect fill
newpath
668.00 602.00 moveto
742.00 602.00 lineto
742.00 694.00 lineto
694.00 650.00 lineto
closepath fill
1.000000 1.000000 1.000000 setrgbcolor
newpath
490.00 328.00 moveto
582.00 328.00 lineto
446.00 457.00 lineto
582.00 586.00 lineto
490.00 586.00 lineto
338.00 457.00 lineto
closepath fill
grestore
showpage
%%EOF

View file

@ -0,0 +1,73 @@
%PDF-1.7
%Çì<C387>¢
%%Invocation: gs -dBATCH -dNOPAUSE -dSAFER -sDEVICE=pdfwrite -sOutputFile=? ?
5 0 obj
<</Length 6 0 R/Filter /FlateDecode>>
stream
xœeKŽÄ D÷œcŽ1gˆ”Þ$‹™û/šž(B
dWÊ%~3l%ƒ®Ø÷+Á†X¹Öy‡Œ<Ú„ZjÇÿ^ ÷<C3B7>¯ÔƒÏ;w*[óSš÷€zaÌc
ìɘˆ¬þÁµˆÖ»¡ê¨¾ÑîŒÏ;c—O=Y:Ϊ?{•ÍÃùäð:æÿ;T<C5BD>âo—3Šh7UY.Ž™à \ãQIãeé` ËJ°X©ýgq#vý„3ãHÐ8R{²O:æÌô#Aó~oÜÚJ<C39A>ˆ—޳'h©=8|†ŽùÿΫ ¬KcÐ.lI08dw 6ŠGlö<6C>«nQs¤ŸôÏÆˆmendstream
endobj
6 0 obj
260
endobj
4 0 obj
<</Type/Page/MediaBox [0 0 595 842]
/Parent 3 0 R
/Resources<</ProcSet[/PDF]
>>
/Contents 5 0 R
>>
endobj
3 0 obj
<< /Type /Pages /Kids [
4 0 R
] /Count 1
>>
endobj
1 0 obj
<</Type /Catalog /Pages 3 0 R
/Metadata 7 0 R
>>
endobj
7 0 obj
<</Type/Metadata
/Subtype/XML/Length 1183>>stream
<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
<rdf:Description rdf:about="" xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 10.02.1'/>
<rdf:Description rdf:about="" xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2026-04-16T11:47:43+09:00</xmp:ModifyDate>
<xmp:CreateDate>2026-04-16T11:47:43+09:00</xmp:CreateDate>
<xmp:CreatorTool>UnknownApplication</xmp:CreatorTool></rdf:Description>
<rdf:Description rdf:about="" xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:310abc84-715b-11fc-0000-9524caef6f27'/>
<rdf:Description rdf:about="" xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>Untitled</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end='w'?>
endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 10.02.1)
/CreationDate(D:20260416114743+09'00')
/ModDate(D:20260416114743+09'00')>>endobj
xref
0 8
0000000000 65535 f
0000000615 00000 n
0000001938 00000 n
0000000556 00000 n
0000000442 00000 n
0000000093 00000 n
0000000423 00000 n
0000000679 00000 n
trailer
<< /Size 8 /Root 1 0 R /Info 2 0 R
/ID [<C1EC8B35441ABCA0F74E37FC93F2BE37><C1EC8B35441ABCA0F74E37FC93F2BE37>]
>>
startxref
2064
%%EOF

View file

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" fill="none">
<path d="M 240.00 312.00 H 780.00 A 22.00 22.00 0 0 1 802.00 334.00 V 892.00 A 22.00 22.00 0 0 1 780.00 914.00 H 240.00 A 22.00 22.00 0 0 1 218.00 892.00 V 334.00 A 22.00 22.00 0 0 1 240.00 312.00 Z" fill="#394350" />
<path d="M 304.00 602.00 L 304.00 736.00 L 438.00 602.00 Z" fill="#394350" />
<path d="M 468.00 312.00 H 1236.00 A 22.00 22.00 0 0 1 1258.00 334.00 V 892.00 A 22.00 22.00 0 0 1 1236.00 914.00 H 468.00 A 22.00 22.00 0 0 1 446.00 892.00 V 334.00 A 22.00 22.00 0 0 1 468.00 312.00 Z" fill="#F05B2B" />
<path d="M 668.00 602.00 L 742.00 602.00 L 742.00 694.00 L 694.00 650.00 Z" fill="#F05B2B" />
<path d="M 490.00 328.00 L 582.00 328.00 L 446.00 457.00 L 582.00 586.00 L 490.00 586.00 L 338.00 457.00 Z" fill="#FFFFFF" />
</svg>

After

Width:  |  Height:  |  Size: 831 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 922 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB