diff --git a/README.md b/README.md index db105ff..559f224 100644 --- a/README.md +++ b/README.md @@ -98,3 +98,7 @@ QR·4자리 코드는 기본 10분의 임시 공간 초대입니다. 초대 코 로그인 계정의 임시 저장과 받은 파일을 합쳐 개인별 2GiB로 제한합니다. 같은 원본은 한 계정에서 한 번 계산하고 다른 계정의 한도와 분리합니다. 한도가 차면 파일 수신·다운로드는 계속하고 받은 항목에 저장하지 않았다는 안내를 표시합니다. 익명 업로드는 기기 세션당 2GiB, 서버 전체 20GiB이며 화면에는 내역을 표시하지 않습니다. 근처 위치 검색과 기종 구분은 [기기 발견 문서](docs/NEARBY_DISCOVERY.md)를 참고하세요. 양쪽 기기가 위치를 허용하면 약 100m 내 기기를 표시하며, 대기 화면은 반복 목록 검색을 하지 않습니다. + +로고 원본은 `apps/web/public/logo.svg`, 아이콘 원본은 `apps/web/public/icon.svg`입니다. 헤더·서비스 정보 로고는 SVG 경로를 사용하므로 기기 기본 폰트에 영향을 받지 않습니다. 흰 글자는 테마에 맞춰 변경하고 청록색 점은 유지합니다. 아이콘 원본을 교체한 뒤 `node scripts/generate-icons.mjs`를 실행하면 192px·512px·Android maskable PNG가 다시 생성됩니다. + +기기 이름은 서버 DB에 저장되며 동일 브라우저의 기기 세션 쿠키가 유효한 동안 유지됩니다. 쿠키를 지우거나 다른 브라우저로 접속하면 새 기기로 인식됩니다. diff --git a/apps/web/public/icon-192.png b/apps/web/public/icon-192.png index 63848ae..96f415b 100644 Binary files a/apps/web/public/icon-192.png and b/apps/web/public/icon-192.png differ diff --git a/apps/web/public/icon-512.png b/apps/web/public/icon-512.png index 1e8f541..d5f748d 100644 Binary files a/apps/web/public/icon-512.png and b/apps/web/public/icon-512.png differ diff --git a/apps/web/public/icon-maskable.png b/apps/web/public/icon-maskable.png index 834dbe2..a001acc 100644 Binary files a/apps/web/public/icon-maskable.png and b/apps/web/public/icon-maskable.png differ diff --git a/apps/web/public/icon.svg b/apps/web/public/icon.svg index 5f6ccf1..2586ada 100644 --- a/apps/web/public/icon.svg +++ b/apps/web/public/icon.svg @@ -1 +1,12 @@ - + + + + + + + + + + + + diff --git a/apps/web/public/logo.svg b/apps/web/public/logo.svg new file mode 100644 index 0000000..d16444d --- /dev/null +++ b/apps/web/public/logo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/apps/web/src/App.vue b/apps/web/src/App.vue index 23d7141..1be53ed 100644 --- a/apps/web/src/App.vue +++ b/apps/web/src/App.vue @@ -40,6 +40,7 @@ import { version as appVersion } from '../package.json'; import AccountPanel from './AccountPanel.vue'; import SendComposer from './SendComposer.vue'; import InstallButton from './InstallButton.vue'; +import LogoMark from './LogoMark.vue'; import { createNearbySearch } from './nearbySearch'; import { useVisibleViewport } from './viewport'; useVisibleViewport(); @@ -631,7 +632,7 @@ async function spaceAction(space, action, memberId) {