chore: sync local changes to Gitea

This commit is contained in:
shumengya
2026-06-24 22:10:29 +08:00
parent 5f70b13f53
commit 06da417d4c
10 changed files with 4474 additions and 13 deletions

View File

@@ -2,8 +2,16 @@
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="UTF-8" /> <meta charset="UTF-8" />
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="apple-touch-icon" href="/logo.png" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="color-scheme" content="light" /> <meta name="color-scheme" content="light" />
<meta name="theme-color" content="#2563eb" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="default" />
<meta name="apple-mobile-web-app-title" content="Star Manager" />
<meta name="application-name" content="Star Manager" />
<meta name="description" content="Manage GitHub starred repositories with Star Lists." /> <meta name="description" content="Manage GitHub starred repositories with Star Lists." />
<title>GitHub星标管理面板</title> <title>GitHub星标管理面板</title>
</head> </head>

4407
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -20,6 +20,7 @@
"@types/react-dom": "^19.1.7", "@types/react-dom": "^19.1.7",
"@vitejs/plugin-react": "^5.0.2", "@vitejs/plugin-react": "^5.0.2",
"typescript": "~5.9.3", "typescript": "~5.9.3",
"vite": "^7.3.1" "vite": "^7.3.1",
"vite-plugin-pwa": "^1.2.0"
} }
} }

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
public/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

View File

@@ -208,7 +208,9 @@ export default function App() {
<div className="app"> <div className="app">
<header className="app-header"> <header className="app-header">
<div className="brand"> <div className="brand">
<div className="brand-icon"></div> <div className="brand-logo">
<img src="/logo.png" alt="" width={40} height={40} decoding="async" />
</div>
<div> <div>
<h1 className="brand-title">{t("common.appName")}</h1> <h1 className="brand-title">{t("common.appName")}</h1>
<p className="brand-subtitle">{t("app.subtitle")}</p> <p className="brand-subtitle">{t("app.subtitle")}</p>

View File

@@ -56,18 +56,22 @@ body {
gap: 14px; gap: 14px;
} }
.brand-icon { .brand-logo {
width: 40px; width: 40px;
height: 40px; height: 40px;
border-radius: var(--radius-lg); border-radius: var(--radius-lg);
background: var(--doc-accent-soft);
border: 1px solid var(--doc-border); border: 1px solid var(--doc-border);
display: grid; display: grid;
place-items: center; place-items: center;
font-weight: 600; overflow: hidden;
font-family: var(--font-ui); flex-shrink: 0;
font-size: 15px; background: var(--doc-surface);
color: var(--doc-accent); }
.brand-logo img {
width: 100%;
height: 100%;
object-fit: contain;
} }
.brand-title { .brand-title {

View File

@@ -1,10 +1,13 @@
import React from "react"; import React from "react";
import { createRoot } from "react-dom/client"; import { createRoot } from "react-dom/client";
import { registerSW } from "virtual:pwa-register";
import App from "./app/App"; import App from "./app/App";
import "./app/i18n"; import "./app/i18n";
import "./app/styles/fonts.css"; import "./app/styles/fonts.css";
import "./app/styles/app.css"; import "./app/styles/app.css";
registerSW({ immediate: true });
const container = document.querySelector<HTMLDivElement>("#app"); const container = document.querySelector<HTMLDivElement>("#app");
if (!container) { if (!container) {

1
src/vite-env.d.ts vendored
View File

@@ -1 +1,2 @@
/// <reference types="vite/client" /> /// <reference types="vite/client" />
/// <reference types="vite-plugin-pwa/client" />

View File

@@ -1,6 +1,49 @@
import { defineConfig } from "vite"; import { defineConfig } from "vite";
import react from "@vitejs/plugin-react"; import react from "@vitejs/plugin-react";
import { VitePWA } from "vite-plugin-pwa";
export default defineConfig({ export default defineConfig({
plugins: [react()], plugins: [
react(),
VitePWA({
registerType: "autoUpdate",
includeAssets: ["public/favicon.ico", "public/logo.png"],
manifest: {
name: "GitHub Star Manager",
short_name: "Star Manager",
description: "Manage GitHub starred repositories with Star Lists.",
theme_color: "#2563eb",
background_color: "#f8fafc",
display: "standalone",
orientation: "any",
scope: "/",
start_url: "/",
icons: [
{
src: "/logo.png",
sizes: "192x192",
type: "image/png",
purpose: "any",
},
{
src: "/logo.png",
sizes: "512x512",
type: "image/png",
purpose: "any",
},
{
src: "/logo.png",
sizes: "512x512",
type: "image/png",
purpose: "maskable",
},
],
},
workbox: {
globPatterns: ["**/*.{js,css,html,ico,png,svg,woff2,woff}"],
// logo.png is large after bundling; default Workbox limit is 2 MiB
maximumFileSizeToCacheInBytes: 6 * 1024 * 1024,
},
}),
],
}); });