From ece793d022624fcfaa1079f76d0c6a9f060938a3 Mon Sep 17 00:00:00 2001 From: interset-wq Date: Sat, 7 Nov 2026 21:27:07 +0800 Subject: [PATCH 1/2] feat(icons): add transparent in-app logo variants for all five marks assets/icon/app_logo_.png now covers page/arrow/converge/tray matching the existing book app_logo.png: rendered losslessly from the SVG sources with the enlarged centered mark, 192px, for in-app display only (the desktop icon set in assets/icons/ stays opaque). Co-Authored-By: AtomCode (qwen3.8-27b) --- assets/icon/app_logo_arrow.png | Bin 0 -> 1937 bytes assets/icon/app_logo_converge.png | Bin 0 -> 3778 bytes assets/icon/app_logo_page.png | Bin 0 -> 1932 bytes assets/icon/app_logo_tray.png | Bin 0 -> 2341 bytes pubspec.yaml | 7 ++++++- 5 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 assets/icon/app_logo_arrow.png create mode 100644 assets/icon/app_logo_converge.png create mode 100644 assets/icon/app_logo_page.png create mode 100644 assets/icon/app_logo_tray.png diff --git a/assets/icon/app_logo_arrow.png b/assets/icon/app_logo_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..93a50187c33e4f91e1dd32674c54b6782352d343 GIT binary patch literal 1937 zcmd5-e>Bqz6#ov*$V`5$CWbuGX`#?aenfukt>#B0gy@%^*h5n0$DT5UAum>Ky^vCA zOMWC9Z+>h^Vx&-*ro~D#RKm>O`uCl8I_LfI&Uxp2?!BLL?>YC}bMHC#bI}*)1y$Eq z2LJ$y@!svPh%Mg@0#y|V^;pTXDE)vuwyXdLW)LN z-OSvoE=KEW806=`9C~LKB*)+5djv6Y|6g6lP#&#O(-tIPf)+fx~Ui)<@07>h$-OxZ&9VM-f!27 z{`4GIgQCf!Pu+Pm;tNr-7zm!Y-(T~=T9<@1{!!1wjnM)!R(_BkP(p(7=8jd8&h_f$ zb2gQrDW~%_<3>&(P|UmXvErPuD2LDd)ApYa3&z-78sYtLqbgb)?pVX)JiQKLf-PD1 z{4vfDp9R&nv8wB}^0jk9*hfau;z9~K`03!&y|TQb#O9vHsWvpxYr^PCZBk!L&8>}| zli7m(s6U2_muDZ&aHrABZuXX|H(S0Qa_aroE5aqyp|HWdL=K|#9dl(>Sm$z3SNdE~ zs#AR)?ZL4X0~>-Xi^=L|S4RiRcj{e(UmY$$dD^@T%T4}&2 z0oUZTbCLH5ex>+0(Fi&Csc5=5t!hhxpX$uudP)+t0Tgp7I2CNa^!D_y+Ge=X@in6zr&W?twZGt)^W56GbL_ zJlC`+59X9ZjYr-tuuN)al-%kQOW9o;^kMP5>&y zwPg6i#}TU%rZwIB+Yq*Nf=l%GYxcDYx&^rl_scLVtrwH(VOyg5##D#!suY66T*F2? z|8@3Qk5k>74QtbY8=BkT{ORtQLvAKYA|SIzH(n?MP+1F zu9*Yr-i;~66YN2!LN=y%iG0Pj?j{TI(f{xd-Z{6}w#6(?W}iDnwQGOvP;v<^eR7u2 ze@$!J|_@+i2+$S!d#f**?kd^{3y< zeq&-S-^5SaEaNJ`olQo@Fha!ej`UQC3tP=7{7|d~=PZ}gOIizsni3Ijq)P;9fkeFM za{w%_-mcA%4i?a>W<#xyUBH%ZtQ)q_^jV>F;D&y!jeG(rRTJChRC+!zT#8e>+2Ekk zTk&We*UL*Xl*Uv1VKn|EQRBAfZ2a;0R56X!8$#@(8iI~|c{LS^wi1ay#80doHB+ZJ zPqm4f`wP`5t`6&_ycwuOT_a?(VSOO!Im8$iLxPpqDVP)YRk>7Js zw-HEq|Bj!*_9t35(HRGo^o%8bsX`oH40oS~ltLWx$E{O35Y1c@Vy19gPP+&iQO3>V zk5_}#FDL2xkogbG-e5^>TCT0v47q|%mvx?!Fp^umT0rL2{BhId6!dPnJh5I`$)a7u zbL-89gDSp7r0?X^NustPlH2SgZ9^`+Qp~Z%2y_{hH$Ir2rYmJ3n%}?EzOyRbS+Ny~ z$d}wVtfbPb?tr$(I6~YSsuBghu8Z)2V*k=PWMFzll;C3_I4rTrYO(9QK literal 0 HcmV?d00001 diff --git a/assets/icon/app_logo_converge.png b/assets/icon/app_logo_converge.png new file mode 100644 index 0000000000000000000000000000000000000000..8b805b821bed764b4f6dde532e678992530fb016 GIT binary patch literal 3778 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 O1klkiP_I?BkN6+bg7EAB literal 0 HcmV?d00001 diff --git a/assets/icon/app_logo_page.png b/assets/icon/app_logo_page.png new file mode 100644 index 0000000000000000000000000000000000000000..3e0ad7e974a06bfe737a56b59a41fead41217f3c GIT binary patch literal 1932 zcmchYeKga17{GsJH_I%t!c9op))h)5ZqwM-i|g&`MR~namnLLcY>bgfMtX5=YNAo8 zytI>M)lyg?FKxF=Z_KhXF=1YYy!`Gu_s@IoslVj+Pm^P_Euse;b^-ia<fcD=O?-Tzw5{Ct`J}J3lf5hT_9GZ_dWs+FR`;c!nM_ zDj=6;qZ|YJH+QhtkeL!_ocKc=5m#p88KHO#h(~7MwpoW8PJN__TfxF4@9A|du# z>m_erm`)Sku?sT5J6*`6ksofhBjU)5jioPx+x)hhU`NmNww!XYpVXr_H#R9zu4_{} zO9Oj^R!V2NBEi^De$-{$#|Mm^JLwVh1zmsGb51yo$8yOG=B`bdO+2%SSSWZWd>OHQ&T*?0M_~1DsQYLRQUq(6v>U ztzQ>3+#i{A`!I_aMm@^jbvoM#a>`+G>c6>1-pI(n6l|(370a43crR9D zc_u0>!J6~@-&RxTQ)3OsJ5U7G8Bh;|N6fB7xs3OobcRPFN&49@0h z-_MyW6>&Z|*DvhT#Grs=vpKU)cQFn6UT4oG{U2cT@x&Tpq-?tNbi$fcssoC!;bFCi zWS87lg+J@=!)ouDosvGGbjJGAEW*ve#K=&^RHa2~#rl=+dqSiffbgK#$3~6hj89D|mBY^I!ObqRc$)aB7!Jb$*%OV7 z^`4EjZs&sWnxtCCl1yX_du!uG)^0M9rMb-t9LBkZ9}f?GSxtuU2ukzEceZY@-bR^3 z6M74h=FPn0*{6ZalBvE6CU-H#r7a zD=EK+vAI8W!#Wn*H-%tgKLiVEBZoO%DSCgJHXjx$E+Tej`Nr67KW{xM6#@H;+ZGWMdN2fT* zQjIoD)bkBeDM^x<(8|rK3T`FzDt;AW?Rdp1_B4|UZt_kXyd=fe3KKgd@eqmI^(*NK zjPs^U*u0{3VNqUDu4U>nW%5URr7)a5ul|fEp}ZN#)rLIbxcfvbuiHPWUh0d%PM@^F zZi`CNTM$cpA+h|NoE6O4UNq@57*RMu>$Hte^|l0dfACO!@ACNmHS^C;HC=N`L2#52 guuo$w`Fc#X0Pg!|E$CzIFpURr-{DQD!iApt8)V&9s{jB1 literal 0 HcmV?d00001 diff --git a/assets/icon/app_logo_tray.png b/assets/icon/app_logo_tray.png new file mode 100644 index 0000000000000000000000000000000000000000..cdafb16bda53bca91b79fa8166abec6ee07c4d70 GIT binary patch literal 2341 zcmcImX*kr27yiXe28BT->S8hxS+j&Y7$lR7xn&u~+{hqHGqPk~A|zY1ShL*jjWU%+ z*0CfSYusBI(ag{_h!`2mV3_&q`+xaxpZ|w*-sd^z!#U4+p7XwM1_ph0zl5R$008?@ z_O=&x@%4{@?A^^57{Ouy02xQwBAug37nt!^@cu_%FHeLK$wiM)r*7-w9VK9#$0dvX zD%UE|AqJZ7WIud#IfCxiB>z5ll6ZbE7@CgedMF%yupg9ah;j)b!}i6EQC|6I!QGi2 z`6aLLgqM!*3kzn-dS(gyupknVgW#2}@Dseg39yxpL%h=2=%M(sC=rbr@d|}KRz@O8 zfgoT60z8ER&c}diI{=dnR4D%AhL)VXW5hR3Caw3lyIiavxsFs)p%EqWf1CHeS1*P# zFl#p+^Rpdy&U3xlH55Bn!VuOJ9^I?R->~(csF*wkwUP?-i0t^=2o0IOvJ~#hMn>Y=bfEsvcFLFhBm2Iv;GK?t zfJ}=HA1NYNzjzqxLnEELdH7iDDZHpqo_!N=_4W&is;21RgR;gnq3q1XYg2*=NGMI_ z%Khzoyj!@U=(8}IhbiJ$qXKY0&0C;9bbXIG=@j>(EYq#HPrTonJP7sOP`}N;?2YQqUkJI8DC0-*i zf(1HX2?XwusXiTSJiU0m1KqC(R&K?4no!*^@*s@b?j3~@ZcB~HMzMVb^_c_i)F5ur z-LT}}yreL;A5yxe?nlhQeFjJ2((U(^@e6bOnu;rhqBm8_9oK>brNwM2WI!eJDMs6j zM6r_bE^9y)Lg!qi8_!Ulu-cGKw8!h;^~4~3gF(j%j6YVrX!>P#NJ)@uSKLG0G9A=Z z1Ihe0*O@m;eD#FI+@YSr_n3n#y&>|H+;L~+;J{(VI?E>+1GVb4h`Wd=8Fxqp&Uul2 zyt;39=x&gx+&B2+tkdQ^i%HEFFAQq z6`OL(x3MIGnO4I3S2I`T1ilbtTbG2FLLZv8dB4e(r02A*Rn>!jrtWw`nfZ>EF zRyFD7HQjEAiW`fj6{EVCkuFKhU}GmjcolL{5(0-dwuI^ZeQ1J1L_H`*6R<2l~AS!GY-t)GqBB z=G+VE;d z&UykR7uBy{ja>RvGB=OV7Qb5! zJYBDMe%|qR>5JOj8=NWAF?jY(k6(Fl+zh)^%{D*H$}hfIcqnptLQCUxok5(T*uV=n zkWJsie3=Z>#HyD1O>v(=9{BD0=IxeM_TXgi2~?8pz8lGXL`~lm5`-^mJ(*?`c6nRZ z&umNAeh_}yrQ2cbY-*;ZA?JB?O^r%^I`g?JOhk`Pm$de4a1iOXNYc(_xDm6P9b`0l z@=Z8dy_-4l!06~i1M_=w4QNo^WRWCD?)F?LKt3~a16NA2B*|1`BTfB7eDm2q%G$%U zYGfhzW9QouTiXMYvSBC%Gb}HSOIC44nRc2(ef)Vjf&gSSnUrHMq6SM^&S{t9YLGYPr9l;69X~c2yyux9TcT#OeF7A!>g9^<~7(;qp zE;@X*4JMw~v;#CY)(7jZ?D$+BWG0JHQXB@>KmTA|RI(bUN`I)`Y@4&%;B=(sWQ_#t z8sl3Tq*V=6xnpq2kz+%O;<;;f_Wp1=qCkxD!{NZ^ R>}R_b0Cfg!``p?q`Cpr%EC>Jq literal 0 HcmV?d00001 diff --git a/pubspec.yaml b/pubspec.yaml index f6475ad..91884e0 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -114,8 +114,13 @@ flutter: assets: - assets/icons/ - # 应用内 logo(透明底);assets/icons/ 一套为不透明桌面图标,不在此列 + # 应用内 logo(透明底,五个款式一套,mark 加大由 SVG 源直出); + # assets/icons/ 一套为不透明桌面图标,不在此列 - assets/icon/app_logo.png + - assets/icon/app_logo_page.png + - assets/icon/app_logo_arrow.png + - assets/icon/app_logo_converge.png + - assets/icon/app_logo_tray.png # An image asset can refer to one or more resolution-specific "variants", see # https://flutter.dev/to/resolution-aware-images From 2ea9b8d9e3de03bc99be0a04218a31245f4509f3 Mon Sep 17 00:00:00 2001 From: interset-wq Date: Sat, 7 Nov 2026 22:11:10 +0800 Subject: [PATCH 2/2] chore(design): version the icon SVG sources under design/icons temp/ is git-ignored, so the SVG sources lived only on this machine. Move all three sets (opaque desktop icons, adaptive foregrounds, transparent in-app logos) into the repo with a README covering the rendering recipe, so any future size/variant can be regenerated losslessly. Co-Authored-By: AtomCode (qwen3.8-27b) --- design/icons/README.md | 29 ++++++++++++++++++++++ design/icons/appicon-arrow.svg | 13 ++++++++++ design/icons/appicon-book.svg | 10 ++++++++ design/icons/appicon-converge.svg | 13 ++++++++++ design/icons/appicon-page.svg | 11 ++++++++ design/icons/appicon-tray.svg | 12 +++++++++ design/icons/fg-arrow.svg | 13 ++++++++++ design/icons/fg-book.svg | 10 ++++++++ design/icons/fg-converge.svg | 10 ++++++++ design/icons/fg-page.svg | 11 ++++++++ design/icons/fg-tray.svg | 9 +++++++ design/icons/icon_arrow_transparent.svg | 11 ++++++++ design/icons/icon_book_transparent.svg | 8 ++++++ design/icons/icon_converge_transparent.svg | 11 ++++++++ design/icons/icon_page_transparent.svg | 9 +++++++ design/icons/icon_tray_transparent.svg | 10 ++++++++ docs/platform.md | 8 +++--- 17 files changed, 195 insertions(+), 3 deletions(-) create mode 100644 design/icons/README.md create mode 100644 design/icons/appicon-arrow.svg create mode 100644 design/icons/appicon-book.svg create mode 100644 design/icons/appicon-converge.svg create mode 100644 design/icons/appicon-page.svg create mode 100644 design/icons/appicon-tray.svg create mode 100644 design/icons/fg-arrow.svg create mode 100644 design/icons/fg-book.svg create mode 100644 design/icons/fg-converge.svg create mode 100644 design/icons/fg-page.svg create mode 100644 design/icons/fg-tray.svg create mode 100644 design/icons/icon_arrow_transparent.svg create mode 100644 design/icons/icon_book_transparent.svg create mode 100644 design/icons/icon_converge_transparent.svg create mode 100644 design/icons/icon_page_transparent.svg create mode 100644 design/icons/icon_tray_transparent.svg diff --git a/design/icons/README.md b/design/icons/README.md new file mode 100644 index 0000000..aa83af0 --- /dev/null +++ b/design/icons/README.md @@ -0,0 +1,29 @@ +# 图标设计源文件(SVG) + +PullRead 全部品牌图标的矢量源,任何尺寸/底色变体都从这里的 SVG 无损渲染, +禁止用 Pillow 等像素工具在 PNG 上做处理(会损失画质)。 + +## 三套文件 + +| 前缀 | 用途 | 构成 | +| --- | --- | --- | +| `appicon-*.svg` | 桌面图标完整版(圆角纸白底 + mark) | 256×256,`` + `translate(38.4 38.4) scale(0.7)` 的 `#1F6F54` mark | +| `fg-*.svg` | Android 自适应图标前景(透明底,系统自己加背景) | 同 mark,透明底;对应 `drawable-xxxhdpi/ic_launcher_fg_*.png`(432px,mark 占 50%) | +| `icon_*_transparent.svg` | 应用内 logo(透明底,mark 放大到 0.984 居中) | `translate(2 2) scale(0.984)`;对应 `assets/icon/app_logo*.png`(192px) | + +五个款式:`book`(默认摊开书)/ `page`(页即箭)/ `arrow`(抽页成箭)/ +`converge`(汇页箭)/ `tray`(页堆箭)。 + +## 渲染方法 + +用 logo-design skill 的渲染脚本(chrome 后端,无 PIL): + +```bash +python "C:/Users/d111k/.atomcode/skills/logo-design/scripts/render_png.py" \ + design/icons/appicon-book.svg --out-dir temp/icon-design/render --size 1024 +``` + +- 应用内 logo 输出 192px;桌面图标源用 1024px(flutter_launcher_icons 输入) +- **注意**:该脚本 `--padding` 参数在 chrome 后端下会静默输出全空 PNG—— + 自适应图标前景不要加 padding 渲染 +- 深色底变体:直接改 SVG 的 `fill` 即可,不要事后抠色 diff --git a/design/icons/appicon-arrow.svg b/design/icons/appicon-arrow.svg new file mode 100644 index 0000000..f32ad57 --- /dev/null +++ b/design/icons/appicon-arrow.svg @@ -0,0 +1,13 @@ + + Pull 拉读 · 拉 + + + + + + + + + diff --git a/design/icons/appicon-book.svg b/design/icons/appicon-book.svg new file mode 100644 index 0000000..4c9f9cb --- /dev/null +++ b/design/icons/appicon-book.svg @@ -0,0 +1,10 @@ + + Pull 拉读 · 书 + + + + + + diff --git a/design/icons/appicon-converge.svg b/design/icons/appicon-converge.svg new file mode 100644 index 0000000..b497986 --- /dev/null +++ b/design/icons/appicon-converge.svg @@ -0,0 +1,13 @@ + + Pull 拉读 · 汇页 + + + + + + + + + + + diff --git a/design/icons/appicon-page.svg b/design/icons/appicon-page.svg new file mode 100644 index 0000000..94d2f79 --- /dev/null +++ b/design/icons/appicon-page.svg @@ -0,0 +1,11 @@ + + Pull 拉读 · 页 + + + + + + diff --git a/design/icons/appicon-tray.svg b/design/icons/appicon-tray.svg new file mode 100644 index 0000000..725a99d --- /dev/null +++ b/design/icons/appicon-tray.svg @@ -0,0 +1,12 @@ + + Pull 拉读 · 页堆 + + + + + + + + + + diff --git a/design/icons/fg-arrow.svg b/design/icons/fg-arrow.svg new file mode 100644 index 0000000..8924891 --- /dev/null +++ b/design/icons/fg-arrow.svg @@ -0,0 +1,13 @@ + + Pull 拉读 · 拉 + + + + + + + + + diff --git a/design/icons/fg-book.svg b/design/icons/fg-book.svg new file mode 100644 index 0000000..6516c56 --- /dev/null +++ b/design/icons/fg-book.svg @@ -0,0 +1,10 @@ + + Pull 拉读 · 书 + + + + + + diff --git a/design/icons/fg-converge.svg b/design/icons/fg-converge.svg new file mode 100644 index 0000000..c51339f --- /dev/null +++ b/design/icons/fg-converge.svg @@ -0,0 +1,10 @@ + + Pull 拉读 · 汇页 + + + + + + + + diff --git a/design/icons/fg-page.svg b/design/icons/fg-page.svg new file mode 100644 index 0000000..b72baa0 --- /dev/null +++ b/design/icons/fg-page.svg @@ -0,0 +1,11 @@ + + Pull 拉读 · 页 + + + + + + diff --git a/design/icons/fg-tray.svg b/design/icons/fg-tray.svg new file mode 100644 index 0000000..dca0da8 --- /dev/null +++ b/design/icons/fg-tray.svg @@ -0,0 +1,9 @@ + + Pull 拉读 · 页堆 + + + + + + + diff --git a/design/icons/icon_arrow_transparent.svg b/design/icons/icon_arrow_transparent.svg new file mode 100644 index 0000000..5f231e0 --- /dev/null +++ b/design/icons/icon_arrow_transparent.svg @@ -0,0 +1,11 @@ + + Pull 拉读 · 拉(透明底 · 应用内大 mark) + + + + + + + diff --git a/design/icons/icon_book_transparent.svg b/design/icons/icon_book_transparent.svg new file mode 100644 index 0000000..1b00786 --- /dev/null +++ b/design/icons/icon_book_transparent.svg @@ -0,0 +1,8 @@ + + Pull 拉读 · 书(透明底 · 应用内大 mark) + + + + diff --git a/design/icons/icon_converge_transparent.svg b/design/icons/icon_converge_transparent.svg new file mode 100644 index 0000000..d502ffc --- /dev/null +++ b/design/icons/icon_converge_transparent.svg @@ -0,0 +1,11 @@ + + Pull 拉读 · 汇页(透明底 · 应用内大 mark) + + + + + + + + + diff --git a/design/icons/icon_page_transparent.svg b/design/icons/icon_page_transparent.svg new file mode 100644 index 0000000..d08c388 --- /dev/null +++ b/design/icons/icon_page_transparent.svg @@ -0,0 +1,9 @@ + + Pull 拉读 · 页(透明底 · 应用内大 mark) + + + + diff --git a/design/icons/icon_tray_transparent.svg b/design/icons/icon_tray_transparent.svg new file mode 100644 index 0000000..3c396de --- /dev/null +++ b/design/icons/icon_tray_transparent.svg @@ -0,0 +1,10 @@ + + Pull 拉读 · 页堆(透明底 · 应用内大 mark) + + + + + + + + diff --git a/docs/platform.md b/docs/platform.md index 68d18fc..0e99f37 100644 --- a/docs/platform.md +++ b/docs/platform.md @@ -58,9 +58,11 @@ Hard constraints: real-device verification; Windows has no such concept). On platforms without the channel, `setAppIcon` persists the preference and silently does nothing. - In-app logo: transparent `assets/icon/app_logo.png` is used in the home header and - the settings "about" page. Never use a white-background version in-app (it looks - wrong in dark mode). Larger marks are generated losslessly from the SVG sources in - `temp/icon-design/` with the logo-design skill renderer. + the settings "about" page (a full set `app_logo_.png` covers all five marks). + Never use a white-background version in-app (it looks wrong in dark mode). Larger + marks are generated losslessly from the SVG sources in `design/icons/` (all three + sets: appicon / adaptive foreground / transparent in-app logo, see its README) + with the logo-design skill renderer. - `assets/icon/app_icon.png` and `app_icon_foreground.png` (book, 1024px) are the `flutter_launcher_icons` sources for the iOS AppIcon set and Windows `icon.ico`. **Set `android: false` in pubspec before running the tool and restore it