proper productionize project

This commit is contained in:
2026-07-15 23:54:53 -07:00
parent b8850c87a4
commit edb6d2b5b4
46 changed files with 11346 additions and 1560 deletions
@@ -0,0 +1,35 @@
{
"id": "/control",
"name": "洛星瓷直播云台",
"short_name": "直播云台",
"description": "洛星瓷直播组件与 OBS 浏览器源控制台",
"lang": "zh-CN",
"dir": "auto",
"start_url": "/control/?source=pwa",
"scope": "/control/",
"display": "standalone",
"orientation": "any",
"background_color": "#03121a",
"theme_color": "#0a302f",
"categories": ["utilities", "productivity"],
"icons": [
{
"src": "/pwa/icon-192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "any"
},
{
"src": "/pwa/icon-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "any"
},
{
"src": "/pwa/icon-maskable-512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

+24
View File
@@ -0,0 +1,24 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<defs>
<radialGradient id="bg" cx="70%" cy="20%" r="110%">
<stop offset="0" stop-color="#195154"/>
<stop offset=".52" stop-color="#082b34"/>
<stop offset="1" stop-color="#020e18"/>
</radialGradient>
<linearGradient id="jade" x1=".15" y1=".08" x2=".82" y2=".94">
<stop stop-color="#d5fff7"/><stop offset=".45" stop-color="#5bdac3"/><stop offset="1" stop-color="#1b786f"/>
</linearGradient>
<filter id="glow" x="-60%" y="-60%" width="220%" height="220%">
<feGaussianBlur stdDeviation="10" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<rect width="512" height="512" fill="url(#bg)"/>
<path d="M0 386c92-8 137-49 165-111 20-44 49-69 91-76 61-10 106 19 132 67 20 36 48 55 124 59" fill="none" stroke="#76ddc7" stroke-opacity=".13" stroke-width="8"/>
<circle cx="256" cy="256" r="132" fill="#092c33" stroke="#7be8d2" stroke-opacity=".4" stroke-width="5"/>
<circle cx="256" cy="256" r="108" fill="#0a3539" stroke="#d5fff7" stroke-opacity=".17" stroke-width="2"/>
<g fill="url(#jade)" filter="url(#glow)">
<path d="M256 157l17 68 57-37-37 57 68 17-68 17 37 57-57-37-17 68-17-68-57 37 37-57-68-17 68-17-37-57 57 37z"/>
<circle cx="256" cy="262" r="22" fill="#effffb"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

+33
View File
@@ -0,0 +1,33 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
<defs>
<radialGradient id="bg" cx="72%" cy="18%" r="105%">
<stop offset="0" stop-color="#174e50"/>
<stop offset=".5" stop-color="#082a33"/>
<stop offset="1" stop-color="#020e18"/>
</radialGradient>
<linearGradient id="jade" x1=".15" y1=".08" x2=".82" y2=".94">
<stop stop-color="#b5fff1"/>
<stop offset=".42" stop-color="#51d5bd"/>
<stop offset="1" stop-color="#1b786f"/>
</linearGradient>
<filter id="glow" x="-50%" y="-50%" width="200%" height="200%">
<feGaussianBlur stdDeviation="13" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<rect width="512" height="512" rx="112" fill="url(#bg)"/>
<path d="M62 358c70-8 102-50 128-108 16-35 37-54 68-61 43-10 83 10 105 47 17 29 35 47 87 51" fill="none" stroke="#76ddc7" stroke-opacity=".16" stroke-width="7"/>
<path d="M63 143c56 8 84 31 105 74M449 366c-55-5-85-27-108-68" fill="none" stroke="#9ef3df" stroke-opacity=".13" stroke-linecap="round" stroke-width="6"/>
<circle cx="256" cy="256" r="142" fill="#0a2930" stroke="#6ce1cb" stroke-opacity=".38" stroke-width="5"/>
<circle cx="256" cy="256" r="118" fill="#0a3438" stroke="#b8fff0" stroke-opacity=".18" stroke-width="2"/>
<g fill="url(#jade)" filter="url(#glow)">
<path d="M256 142l19 78 65-43-43 65 78 19-78 19 43 65-65-43-19 78-19-78-65 43 43-65-78-19 78-19-43-65 65 43z"/>
<circle cx="256" cy="261" r="25" fill="#e7fff9"/>
</g>
<g fill="#d8fff5">
<circle cx="116" cy="116" r="7"/><circle cx="404" cy="129" r="5"/><circle cx="391" cy="393" r="7"/>
</g>
<g stroke="#b5fff1" stroke-linecap="round" stroke-width="5">
<path d="M116 96v40M96 116h40M404 114v30M389 129h30M391 371v44M369 393h44"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB