mirror of
https://github.com/truewhile/MeBox.git
synced 2026-09-29 19:36:36 +08:00
5baf9515ea
## TG Bot 交互命令系统 (新增) - telegram_bot.go: 命令路由 + /start /help /status /search /downloads /stats - telegram_webhook.go: Webhook 接收 + Polling 管理端点 - Polling 模式: 无需公网 HTTPS, 服务器启动自动轮询 - HTML parse_mode 统一消息格式 ## 通知配置 BUG 修复 - validateChannel 添加 email 类型支持 - 前后端字段统一: channel_type -> type - ListByType 新增仓库方法 ## UI 深度优化 - glass-panel: 添加 rounded-2xl + 可见边框 + padding - card: 添加 p-4 sm:p-6 - 全局 rounded-md -> rounded-xl, 裸 rounded -> rounded-lg - 500+ 深色硬编码类名清零 - text-gray-400 -> gray-500 色差提升 - 按钮组 flex-wrap 防溢出 - data-table 表格溢出截断
133 lines
5.0 KiB
CSS
133 lines
5.0 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
html, body, #root { height: 100%; }
|
|
|
|
body {
|
|
background-color: #f9fafb; /* Premium Swiss Editorial Light/Slate Background */
|
|
color: #111827; /* Deep Graphite Charcoal Body Text */
|
|
margin: 0;
|
|
-webkit-font-smoothing: antialiased;
|
|
-moz-osx-font-smoothing: grayscale;
|
|
}
|
|
|
|
/* ─── Selection ─── */
|
|
::selection {
|
|
background: rgba(201, 149, 74, 0.2);
|
|
color: #111827;
|
|
}
|
|
|
|
/* ─── Focus Ring ─── */
|
|
*:focus-visible {
|
|
outline: 2px solid #c9954a;
|
|
outline-offset: 2px;
|
|
border-radius: 6px;
|
|
}
|
|
|
|
/* ─── Scrollbar ─── */
|
|
::-webkit-scrollbar { width: 6px; height: 6px; }
|
|
::-webkit-scrollbar-track { background: transparent; }
|
|
::-webkit-scrollbar-thumb { background: #e5e7eb; border-radius: 999px; }
|
|
::-webkit-scrollbar-thumb:hover { background: #c9954a; }
|
|
|
|
.scrollbar-hide {
|
|
-ms-overflow-style: none;
|
|
scrollbar-width: none;
|
|
}
|
|
.scrollbar-hide::-webkit-scrollbar { display: none; }
|
|
|
|
/* ─── Reduced Motion ─── */
|
|
@media (prefers-reduced-motion: reduce) {
|
|
*, *::before, *::after {
|
|
animation-duration: 0.01ms !important;
|
|
animation-iteration-count: 1 !important;
|
|
transition-duration: 0.01ms !important;
|
|
}
|
|
}
|
|
|
|
@layer components {
|
|
/* ── Unified Swiss-Editorial Cards ── */
|
|
.card {
|
|
@apply rounded-2xl bg-white border border-gray-200/80 shadow-[0_1px_3px_rgba(0,0,0,0.01),0_1px_2px_rgba(0,0,0,0.015)] p-4 sm:p-6;
|
|
}
|
|
.card-hover {
|
|
@apply card transition-all duration-300 ease-out hover:border-gray-300 hover:shadow-[0_12px_32px_rgba(17,24,39,0.04),0_4px_12px_rgba(17,24,39,0.01)] hover:-translate-y-1;
|
|
}
|
|
.card-elevated {
|
|
@apply card shadow-[0_20px_40px_rgba(17,24,39,0.05),0_1px_3px_rgba(17,24,39,0.01)];
|
|
}
|
|
|
|
/* ── Glassmorphic Bright Panels ── */
|
|
.glass-panel {
|
|
@apply rounded-2xl bg-white border border-gray-200 shadow-sm p-4 sm:p-6;
|
|
}
|
|
.glass-card {
|
|
@apply rounded-2xl bg-white border border-gray-200 shadow-sm p-4 sm:p-6;
|
|
}
|
|
.glass-card-elevated {
|
|
@apply rounded-2xl bg-white border border-gray-200 shadow-md p-4 sm:p-6;
|
|
}
|
|
|
|
/* ── Input Fields Redesign ── */
|
|
.input-field {
|
|
@apply w-full rounded-xl border border-gray-200 bg-gray-50/50 px-4 py-3 text-sm text-gray-900
|
|
placeholder:text-gray-400 outline-none transition-all duration-300 ease-out
|
|
focus:border-brand-500 focus:bg-white focus:ring-4 focus:ring-brand-100/50;
|
|
}
|
|
.input-label {
|
|
@apply block mb-1.5 text-xs font-bold uppercase tracking-widest text-gray-500;
|
|
}
|
|
|
|
/* ── Premium Editorial Buttons Redesign ── */
|
|
.btn-primary {
|
|
@apply inline-flex items-center justify-center gap-2 rounded-xl bg-[#111827] px-5 py-3
|
|
text-sm font-bold text-white transition-all duration-300 ease-out shadow-sm
|
|
hover:bg-[#1f2937] hover:-translate-y-0.5 active:translate-y-0 active:scale-[0.98]
|
|
disabled:cursor-not-allowed disabled:opacity-40 disabled:translate-y-0;
|
|
}
|
|
.btn-ghost {
|
|
@apply inline-flex items-center justify-center gap-2 rounded-xl px-4 py-2.5
|
|
text-sm font-semibold text-gray-600 transition-all duration-200 ease-out
|
|
hover:bg-gray-100 hover:text-gray-900 active:scale-[0.98];
|
|
}
|
|
.btn-outline {
|
|
@apply inline-flex items-center justify-center gap-2 rounded-xl border border-gray-200/90
|
|
bg-white px-4 py-2.5 text-sm font-bold text-gray-700 transition-all duration-300 ease-out shadow-sm
|
|
hover:border-gray-300 hover:text-gray-900 hover:shadow-md hover:-translate-y-0.5 active:translate-y-0 active:scale-[0.98];
|
|
}
|
|
|
|
/* ── Badges Redesign ── */
|
|
.badge {
|
|
@apply inline-flex items-center rounded-full px-3 py-1 text-2xs font-bold uppercase tracking-wider;
|
|
}
|
|
.badge-brand { @apply badge bg-brand-50 text-brand-700 border border-brand-100/30; }
|
|
.badge-sage { @apply badge bg-sage-50 text-sage-700 border border-sage-100/30; }
|
|
.badge-neutral { @apply badge bg-gray-100 text-gray-600 border border-gray-200/50; }
|
|
|
|
/* ── Page Headings ── */
|
|
.page-heading { @apply font-display text-3xl font-extrabold tracking-tight text-gray-900; }
|
|
.page-subtitle { @apply mt-1 text-sm text-gray-500; }
|
|
|
|
/* ── Data Tables Redesign ── */
|
|
.data-table { @apply w-full text-left text-sm border-collapse; }
|
|
.data-table thead { @apply border-b border-gray-200 bg-gray-50/70; }
|
|
.data-table th { @apply px-5 py-4 text-xs font-bold uppercase tracking-wider text-gray-500 whitespace-nowrap; }
|
|
.data-table td { @apply px-5 py-4 text-gray-700 border-b border-gray-100 max-w-xs truncate; }
|
|
.data-table tbody tr { @apply transition-colors hover:bg-gray-50/50; }
|
|
|
|
/* ── Dividers ── */
|
|
.divider { @apply border-t border-gray-200/80; }
|
|
|
|
/* ── Backward Compatibility ── */
|
|
.surface-card { @apply card; }
|
|
.surface-card-elevated { @apply card-elevated; }
|
|
.field-input { @apply input-field; }
|
|
.field-label { @apply input-label; }
|
|
.amber-btn { @apply btn-outline; }
|
|
.amber-btn--solid { @apply btn-primary; }
|
|
.amber-btn--ghost { @apply btn-ghost; }
|
|
.neon-button { @apply btn-outline; }
|
|
.input-base { @apply input-field; }
|
|
.warm-divider { @apply divider; }
|
|
} |