mirror of
https://github.com/fankes/komari-theme-purcarte.git
synced 2025-10-19 11:59:21 +08:00
feat: 添加标签透明背景选项,优化标签显示效果
This commit is contained in:
@@ -84,6 +84,7 @@ const Tag = React.forwardRef<HTMLDivElement, TagProps>(
|
||||
({ className, tags, ...props }, ref) => {
|
||||
// 在组件内部使用 useConfigItem 钩子
|
||||
const tagDefaultColorList = useConfigItem("tagDefaultColorList");
|
||||
const enableTransparentTags = useConfigItem("enableTransparentTags");
|
||||
|
||||
// 解析配置的颜色列表,仅用于循环排序
|
||||
const colorList = React.useMemo(() => {
|
||||
@@ -100,16 +101,28 @@ const Tag = React.forwardRef<HTMLDivElement, TagProps>(
|
||||
{tags.map((tag, index) => {
|
||||
const { text, color } = parseTagWithColor(tag);
|
||||
const badgeColor = color || colorList[index % colorList.length];
|
||||
|
||||
return (
|
||||
<Badge
|
||||
key={index}
|
||||
color={badgeColor as ColorType}
|
||||
variant="surface"
|
||||
className="text-sm">
|
||||
<label className="text-xs">{text}</label>
|
||||
</Badge>
|
||||
);
|
||||
if (!enableTransparentTags) {
|
||||
return (
|
||||
<Badge
|
||||
key={index}
|
||||
color={badgeColor as ColorType}
|
||||
variant="surface"
|
||||
className="text-sm">
|
||||
<label className="text-xs">{text}</label>
|
||||
</Badge>
|
||||
);
|
||||
} else {
|
||||
return (
|
||||
<div
|
||||
key={index}
|
||||
data-accent-color={badgeColor}
|
||||
className={cn(
|
||||
"rt-reset rt-Badge rt-r-size-1 transition-colors rt-Badge-tag-transparent"
|
||||
)}>
|
||||
{text}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
})}
|
||||
</div>
|
||||
);
|
||||
|
@@ -5,6 +5,7 @@ export interface ConfigOptions {
|
||||
videoBackgroundUrl?: string; // 视频背景URL
|
||||
blurValue?: number; // 磨砂玻璃模糊值
|
||||
blurBackgroundColor?: string; // 磨砂玻璃背景颜色
|
||||
enableTransparentTags?: boolean; // 是否启用标签透明背景
|
||||
tagDefaultColorList?: string; // 标签默认颜色列表
|
||||
enableLocalStorage?: boolean; // 是否启用本地存储
|
||||
selectedDefaultView?: "grid" | "table"; // 默认视图模式
|
||||
@@ -33,6 +34,7 @@ export const DEFAULT_CONFIG: ConfigOptions = {
|
||||
videoBackgroundUrl: "/assets/LanternRivers_1080p15fps2Mbps3s.mp4",
|
||||
blurValue: 10,
|
||||
blurBackgroundColor: "rgba(255, 255, 255, 0.5)|rgba(0, 0, 0, 0.5)",
|
||||
enableTransparentTags: true,
|
||||
tagDefaultColorList:
|
||||
"ruby,gray,gold,bronze,brown,yellow,amber,orange,tomato,red",
|
||||
enableLocalStorage: true,
|
||||
|
@@ -138,6 +138,18 @@
|
||||
--theme-text-muted-color: rgb(from var(--accent-12) r g b / 0.8);
|
||||
}
|
||||
|
||||
.dark .rt-Badge-tag-transparent {
|
||||
--tag-transparent-bg: rgb(from var(--accent-11) r g b / 0.4);
|
||||
--tag-transparent-color: rgb(from var(--accent-4) r g b / 0.8);
|
||||
@apply bg-(--tag-transparent-bg) text-(--tag-transparent-color);
|
||||
}
|
||||
|
||||
.rt-Badge-tag-transparent {
|
||||
--tag-transparent-bg: rgb(from var(--accent-4) r g b / 0.4);
|
||||
--tag-transparent-color: rgb(from var(--accent-11) r g b / 0.8);
|
||||
@apply bg-(--tag-transparent-bg) text-(--tag-transparent-color);
|
||||
}
|
||||
|
||||
.theme-text-shadow {
|
||||
@apply text-shadow-sm text-shadow-(color:--accent-8)/50;
|
||||
}
|
||||
|
Reference in New Issue
Block a user