阶段 0 起步:图标与环境自检脚手架
- assets/icons 全套图标:SVG 源文件 + maskable + 12 档 PNG - favicon.ico / apple-touch-icon.png / site.webmanifest - index.php 环境自检页(PHP 版本 / 必需扩展 / 配置 / 数据库连接), 详情页默认不打印连接错误原文,避免泄露数据库账号名 - config.example.php:数据库与 app_key 的配置模板(config.php 不入库) - README 补充项目定位与六阶段路线图;.gitignore 沿用既有约定
@@ -0,0 +1,29 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="家书 FamilyBook">
|
||||
<!--
|
||||
maskable 版本:用于 Android 自适应图标 / PWA。
|
||||
背景铺满整个方形(不裁圆角),主体按 0.7 缩放居中。
|
||||
|
||||
⚠️ 0.7 是按主体包围盒算出来的:主体 55×48.2,缩放后角点到中心约 25.6,
|
||||
正好落在直径 80% 的圆形安全区边界上,再放大会被裁掉屋檐。
|
||||
|
||||
⚠️ 绘制顺序与主图标一致:墙压住屋顶底边 1px,避免出现抗锯齿缝隙。
|
||||
-->
|
||||
<rect width="64" height="64" fill="#F2E9D8"/>
|
||||
|
||||
<g transform="translate(32 32) scale(0.7) translate(-32 -32)">
|
||||
<path d="M32 7 L4.5 34 H32 Z" fill="#A84A28"/>
|
||||
<path d="M32 7 L59.5 34 H32 Z" fill="#C96F45"/>
|
||||
<path d="M28 34 L32 25 L36 34 Z" fill="#F2E9D8"/>
|
||||
|
||||
<path d="M32 7 V25" stroke="#6E3820" stroke-width="2.4" fill="none"/>
|
||||
|
||||
<rect x="13" y="33" width="38" height="19" rx="3" fill="#FDFBF5"/>
|
||||
<g stroke="#BD5C39" stroke-width="2.4" stroke-linecap="round" fill="none">
|
||||
<path d="M18 40 H46"/>
|
||||
<path d="M18 44.5 H46"/>
|
||||
<path d="M18 48.5 H37"/>
|
||||
</g>
|
||||
|
||||
<rect x="10.5" y="52" width="43" height="3.2" rx="1.6" fill="#7A3F2A"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,45 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" role="img" aria-label="家书 FamilyBook">
|
||||
<!--
|
||||
家书 FamilyBook 图标
|
||||
概念:这本书就是家。
|
||||
· 屋顶 = 摊开的书:两片封面(左暗右亮),顶端的深色短脊线点明书脊,
|
||||
底部中央一道 V 形沟口露出背景,是书页分开的地方
|
||||
· 屋顶下是纸做的墙,墙上三行横线是这个家写下的日子
|
||||
· 深褐地基收底
|
||||
构图:主体横向占约 86%,四边留白收紧,小尺寸下更饱满。
|
||||
|
||||
⚠️ 绘制顺序不能改:墙在屋顶之后绘制,由墙压住屋顶底边 1px。
|
||||
这样既不会出现抗锯齿缝隙,也不会让沟口在墙顶切出一道米色横缝。
|
||||
|
||||
配色:宣纸米 #F2E9D8 / 封面 #A84A28·#C96F45 / 书脊·地基 #6E3820·#7A3F2A / 纸白 #FDFBF5
|
||||
-->
|
||||
<defs>
|
||||
<clipPath id="fb-clip">
|
||||
<rect width="64" height="64" rx="14"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
|
||||
<g clip-path="url(#fb-clip)">
|
||||
<!-- 宣纸底 -->
|
||||
<rect width="64" height="64" fill="#F2E9D8"/>
|
||||
|
||||
<!-- 屋顶 = 摊开的书 -->
|
||||
<path d="M32 7 L4.5 34 H32 Z" fill="#A84A28"/>
|
||||
<path d="M32 7 L59.5 34 H32 Z" fill="#C96F45"/>
|
||||
<path d="M28 34 L32 25 L36 34 Z" fill="#F2E9D8"/>
|
||||
|
||||
<!-- 书脊 -->
|
||||
<path d="M32 7 V25" stroke="#6E3820" stroke-width="2.4" fill="none"/>
|
||||
|
||||
<!-- 纸做的墙:写下的岁月 -->
|
||||
<rect x="13" y="33" width="38" height="19" rx="3" fill="#FDFBF5"/>
|
||||
<g stroke="#BD5C39" stroke-width="2.4" stroke-linecap="round" fill="none">
|
||||
<path d="M18 40 H46"/>
|
||||
<path d="M18 44.5 H46"/>
|
||||
<path d="M18 48.5 H37"/>
|
||||
</g>
|
||||
|
||||
<!-- 地基 -->
|
||||
<rect x="10.5" y="52" width="43" height="3.2" rx="1.6" fill="#7A3F2A"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 475 B |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 4.6 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 789 B |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 2.2 KiB |