null 截图
null 截图
null 截图
null 截图
null 截图
null 截图
null 截图
null 截图

Plugin Vote

一个用于创建和管理投票的 Halo 插件。

主题适配

CSS 变量

以下 CSS 变量可用于自定义投票块和模态框的外观。显示的是默认浅色模式的值;深色模式的值会根据用户偏好或 data-color-scheme 属性自动应用。

变量名 描述
--vote-text-title-color 主要标题的颜色
--vote-text-description-color 描述性文本和标签的颜色
--vote-text-selected-color 已选择(但未提交)选项的文本颜色
--vote-text-voted-color 已提交/已投票选项的文本颜色
--vote-text-error-color 错误消息的文本颜色
--vote-text-button-color 提交按钮的文本颜色
--vote-icon-color 图标的颜色(例如,统计图标)
--vote-background-primary-color 主要背景色(例如,卡片背景)
--vote-background-secondary-color 次要背景色(例如,默认选项背景)
--vote-background-tertiary-color 第三背景色(例如,选项悬停时)
--vote-background-selected-color 已选择选项的背景色
--vote-background-voted-color 已投票选项的背景色
--vote-background-progress-color 进度条的背景色(默认)
--vote-background-progress-voted-color 进度条的背景色(已投票)
--vote-background-button-color 提交按钮的背景色
--vote-background-button-hover-color 提交按钮悬停时的背景色
--vote-background-tag-color 信息标签的背景色
--vote-background-voted-tag-color "已投票"标签的背景色
--vote-border-color 默认边框颜色
--vote-border-selected-color 已选择选项的边框颜色
--vote-border-voted-color 已投票选项的边框颜色
--vote-pk-option1-bg PK模式中第一个选项的背景色
--vote-pk-option2-bg PK模式中第二个选项的背景色
--vote-pk-progress-text-color PK进度条上的文本颜色
--vote-shadow 主容器的盒阴影

配色切换方案

根据上面提供的 CSS 变量,也可以通过定义 CSS 变量的方式为投票提供动态切换配色的功能。 以下是实现示例,你可以根据需求自行修改选择器或者媒体查询。


@media (prefers-color-scheme: dark) {
  .color-scheme-auto,
  [data-color-scheme='auto'] friends-rss {
    color-scheme: dark;
    /* Text */
    --vote-text-title-color: #f3f4f6;
    --vote-text-description-color: #9ca3af;
    --vote-text-selected-color: #d1fae5;
    --vote-text-voted-color: #bfdbfe;
    --vote-text-error-color: #fca5a5;
    --vote-text-button-color: #dbeafe;
    --vote-icon-color: #9ca3af;

    /* Background */
    --vote-background-primary-color: #1f2937;
    --vote-background-secondary-color: #374151;
    --vote-background-tertiary-color: #4b5563;
    --vote-background-selected-color: #065f46;
    --vote-background-voted-color: #1e40af;
    --vote-background-progress-color: rgba(75, 85, 99, 0.6);
    --vote-background-progress-voted-color: rgba(59, 130, 246, 0.4);
    --vote-background-button-color: #2563eb;
    --vote-background-button-hover-color: #1d4ed8;
    --vote-background-tag-color: #374151;
    --vote-background-voted-tag-color: #1e3a8a;

    /* Border */
    --vote-border-color: #4b5563;
    --vote-border-selected-color: #10b981;
    --vote-border-voted-color: #2563eb;

    /* Shadow */
    --vote-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.3), 0 4px 6px -4px rgb(0 0 0 / 0.2);

    /* PK Progress Bar */
    --vote-pk-option1-bg: #3b82f6;
    --vote-pk-option2-bg: #f97316;
    --vote-pk-progress-text-color: #ffffff;
  }
}

.color-scheme-dark,
.dark,
[data-color-scheme='dark'] friends-rss {
    color-scheme: dark;
    /* Text */
    --vote-text-title-color: #f3f4f6;
    --vote-text-description-color: #9ca3af;
    --vote-text-selected-color: #d1fae5;
    --vote-text-voted-color: #bfdbfe;
    --vote-text-error-color: #fca5a5; 
    --vote-text-button-color: #dbeafe;
    --vote-icon-color: #9ca3af;

    /* Background */
    --vote-background-primary-color: #1f2937;
    --vote-background-secondary-color: #374151; 
    --vote-background-tertiary-color: #4b5563;
    --vote-background-selected-color: #065f46; 
    --vote-background-voted-color: #1e40af; 
    --vote-background-progress-color: rgba(75, 85, 99, 0.6);
    --vote-background-progress-voted-color: rgba(59, 130, 246, 0.4); 
    --vote-background-button-color: #2563eb;
    --vote-background-button-hover-color: #1d4ed8;
    --vote-background-tag-color: #374151;
    --vote-background-voted-tag-color: #1e3a8a;

    /* Border */
    --vote-border-color: #4b5563;
    --vote-border-selected-color: #10b981;
    --vote-border-voted-color: #2563eb;

    /* Shadow */
    --vote-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.3), 0 4px 6px -4px rgb(0 0 0 / 0.2);

    /* PK Progress Bar */
    --vote-pk-option1-bg: #3b82f6;
    --vote-pk-option2-bg: #f97316;
    --vote-pk-progress-text-color: #ffffff;
}