develop → main: 合并开发分支 (#51)

* fix(ci): fix release workflow artifact upload issue

- Split artifact upload into 3 separate steps (Chrome, Firefox, Source)
- Update download steps to match new artifact names
- Add if-no-files-found: error for better error handling
- Fix Node.js 20 compatibility issue with upload-artifact@v4 glob pattern

* docs: 更新 AGENTS.md,添加测试工具和翻译文件结构说明

* docs: 更新 AGENTS.md,完善 CI 步骤和存储键名格式说明

* fix: remove unnecessary animations from StorageCleaner page

- Remove entrance animations (animate-in, fade-in, zoom-in) from all components
- Remove scale effect (active:scale-[0.99]) from clean button
- Remove transition effects (transition-all, transition-colors) from OptionItem, StorageOptionsGrid, AutoRefreshToggle
- Remove bouncing animation from error icon
- Remove pulsing animation from warning banner
- Keep animate-spin on button loading spinner as functional indicator

* fix: remove unnecessary animations from RightClickRestorer page

* fix: remove all unnecessary animations from all pages

- Remove dead code animations (animate-in, fade-in, slide-in, zoom-in, shake) from tailwindcss-animate plugin (not installed)
- Remove decorative transition effects (transition-all, transition-colors) from all page components
- Remove scale effects (active:scale-95) from buttons
- Remove bounce animations (animate-bounce) from icons
- Keep functional animate-spin on loading spinners as they provide essential loading feedback

Affected pages: Dashboard, Timestamp, Jwt, JsonTools, Base64Converter, HtmlToMarkdown, MarkdownToHtml, QrCode, TextStatistics

---------

Co-authored-by: Ubuntu <ubuntu@localhost.localdomain>
This commit is contained in:
LingandRX
2026-05-26 15:08:53 +08:00
committed by GitHub
parent 92d524d832
commit 42d3fedbaa
32 changed files with 108 additions and 113 deletions
+4 -6
View File
@@ -17,9 +17,7 @@ interface SectionProps {
const Section = ({ title, content, colorClass, bgClass, borderClass }: SectionProps) => {
const { t } = useLazyTranslation('jwt');
return (
<div
className={cn('p-4 rounded-xl border border-solid transition-colors', bgClass, borderClass)}
>
<div className={cn('p-4 rounded-xl border border-solid', bgClass, borderClass)}>
<div className="flex justify-between items-center mb-2 select-none">
<span className={cn('text-xs font-bold tracking-wider uppercase', colorClass)}>
{title}
@@ -70,7 +68,7 @@ export default function Index() {
}, [debouncedInput]);
return (
<div className="p-4 w-full flex flex-col space-y-4 animate-in fade-in duration-300 select-none">
<div className="p-4 w-full flex flex-col space-y-4 select-none">
<div className="flex flex-col gap-4">
{/* 输入终端 */}
<TextInputArea
@@ -90,7 +88,7 @@ export default function Index() {
{/* 解码看板结果展现 */}
{result && !result.error && (
<div className="flex flex-col gap-4 animate-in slide-in-from-bottom-2 duration-300">
<div className="flex flex-col gap-4">
{/* Header 分区:完美致敬 JWT.io 的鲜艳色彩,同时实现黑夜暗化自适应 */}
<Section
title={t('jwt:headerTitle')}
@@ -110,7 +108,7 @@ export default function Index() {
/>
{/* Signature 签名区:完全对齐标准的 shadcn 骨架阶度 */}
<div className="p-4 rounded-xl border border-border bg-secondary/40 shadow-sm transition-colors">
<div className="p-4 rounded-xl border border-border bg-secondary/40 shadow-sm">
<div className="flex justify-between items-center mb-2">
<span className="text-xs font-bold tracking-wider text-muted-foreground/90 uppercase">
{t('jwt:signatureTitle')}