Compare commits

..

39 Commits

Author SHA1 Message Date
shiran d1ce649fb2 feat(cursor): 添加多种自定义光标样式支持
Discourse Theme / ci (push) Failing after 0s
- 将原有的 custom_cursor 重命名为 default_cursor,并实现默认光标功能
- 新增 hover_cursor 配置,为链接和按钮元素提供悬停光标效果
- 新增 pointer_cursor 配置,为链接元素提供专用指针光标
- 新增 text_cursor 配置,为输入框和文本域提供文本编辑光标
- 在 settings.yml 中添加对应的配置项和描述信息
- 实现多层级光标样式的 SCSS 逻辑处理
2026-02-26 15:48:21 +08:00
shiran b6e54e3cbd feat(theme): 添加自定义光标功能
Discourse Theme / ci (push) Failing after 1s
- 在 SCSS 中实现条件编译以支持自定义光标
- 添加 $custom_cursor 变量控制光标样式
- 在 settings.yml 中增加 custom_cursor 配置项
- 支持上传 SVG 文件作为自定义光标
- 默认值设为空字符串以保持向后兼容性
2026-02-26 15:37:57 +08:00
shiran eb3f4efe2c feat(style): 添加自定义鼠标指针样式
Discourse Theme / ci (push) Failing after 0s
- 在全局范围内应用自定义 SVG 指针
- 设置指针热点位置为 1,1 坐标
- 保留默认指针作为备选方案
- 隐藏 Discourse 功能标识元素
2026-02-26 15:32:48 +08:00
shiran 2f5c4b2989 style(scss): 移除按钮悬停背景色过渡效果
Discourse Theme / ci (push) Failing after 0s
- 移除了按钮元素的 hover 状态背景色变化
- 删除了 transition 属性相关的悬停动画效果
- 简化了按钮样式代码结构
2026-02-26 15:26:05 +08:00
shiran 15ec4e326a style(css): 更新样式选择器以匹配管理员容器布局
Discourse Theme / ci (push) Failing after 2s
- 添加 .admin-container>.container.groups-index 选择器到现有的背景样式规则
- 保持与现有 .ember-view.group-box 样式的一致性
- 确保管理员组索引页面的视觉统一性
2026-02-26 15:22:04 +08:00
shiran 0c85709857 fix(style): 修复群组页面容器背景样式
Discourse Theme / ci (push) Failing after 1s
- 修正了群组索引页面的选择器以正确应用背景样式
- 确保群组页面容器具有正确的背景颜色和圆角效果
2026-02-26 15:19:58 +08:00
shiran 7f87145998 style(css): 添加群组容器样式支持
Discourse Theme / ci (push) Failing after 0s
- 为 .container.group 添加背景色、圆角和模糊效果样式
- 扩展 backdrop-filter 应用范围到群组相关容器
- 保持一致的视觉风格和透明度效果
2026-02-26 14:49:20 +08:00
shiran 2f7bd50a36 style(css): 更新SCSS样式以添加新组件背景样式
Discourse Theme / ci (push) Failing after 0s
- 为 .ember-view.group-box 添加背景、圆角和阴影样式
- 统一主题帖子、搜索头部、管理员插件配置页面背景样式
- 应用变量 --d-chat-input-bg-color 和 --d-border-radius
- 添加黑色半透明阴影效果 box-shadow: #00000024 0 0 7px 2px
2026-02-26 14:47:44 +08:00
shiran d5f84bc7fc style(scss): 更新背景样式配置
Discourse Theme / ci (push) Failing after 2s
- 为 .container.groups-index 添加背景色、圆角和模糊效果
- 统一多个选择器的视觉样式表现
2026-02-26 14:46:29 +08:00
shiran 1e2fc63ed1 feat(style): 添加用户卡片悬停效果
Discourse Theme / ci (push) Failing after 1s
- 为用户卡片添加背景色过渡动画
- 实现悬停时背景色变化效果
- 使用 CSS 变量保持主题一致性
- 优化用户体验的视觉反馈
2026-02-26 14:44:18 +08:00
shiran 241f251c3a refactor(style): 重构CSS类选择器以优化样式应用
Discourse Theme / ci (push) Failing after 0s
- 移除 .user-main .about.collapsed-info .details 从背景色透明样式规则中
- 将 .user-main .about.collapsed-info .details 添加到背景变量样式规则中
- 优化了CSS选择器的分组和结构
- 统一了相关组件的视觉样式表现
2026-02-26 14:40:55 +08:00
shiran 9154d84663 style(css): 格式化CSS选择器以符合团队样式指南
Discourse Theme / ci (push) Failing after 0s
- 将长的选择器列表按行分割以提高可读性
- 在每个选择器后添加适当的换行和缩进
- 遵循团队的代码格式化规范
- 保持CSS代码的一致性和整洁性
- 便于后续维护和审查
2026-02-26 14:37:52 +08:00
shiran 7d30ebd133 fix(style): 更新CSS选择器以正确应用背景样式
Discourse Theme / ci (push) Failing after 0s
- 修改了.edit-category类的选择器定位方式
- 从直接类选择器改为ID选择器配合后代选择器
- 确保编辑分类页面的背景色和圆角样式正确应用
- 保持原有的毛玻璃效果和透明度设置不变
2026-02-26 14:33:10 +08:00
shiran 3330d0056b docs(theme): 更新主题描述为中文
Discourse Theme / ci (push) Failing after 0s
- 将主题描述从英文更改为中文描述
- 移除已弃用的提示信息
- 简化描述内容为自制二次元主题说明
2026-02-26 14:30:56 +08:00
shiran 4f5ff0fb73 style(theme): 更新CSS样式以包含新类别编辑组件
Discourse Theme / ci (push) Failing after 0s
- 为.edit-category类添加白色半透明背景
- 应用相同的边框圆角和背景模糊效果
- 确保新组件与其他页面元素保持一致的视觉风格
2026-02-26 14:25:06 +08:00
shiran 45baef8a01 style(scss): 隐藏 Discourse 标识显示
Discourse Theme / ci (push) Failing after 2s
- 在 self.scss 中新增 .powered-by-discourse 类
- 设置 display: none 属性隐藏相关元素
- 保持原有的用户内容背景样式设置
- 添加空行优化代码结构可读性
2026-02-24 09:45:30 +08:00
shiran 3e2d5f455c style(theme): 更新CSS样式以支持用户目录页面
Discourse Theme / ci (push) Failing after 0s
- 为.users-directory类添加背景色、圆角和模糊效果样式
- 保持与其他页面组件一致的视觉风格
2026-02-24 09:38:43 +08:00
shiran 97d33974c9 style(theme): 更新CSS样式以包含新类名
Discourse Theme / ci (push) Failing after 1s
- 为.show-badge类添加背景色和圆角样式
- 统一应用半透明白色背景和模糊效果
- 保持与其他容器元素一致的视觉风格
- 确保新类名在主题系统中的兼容性
2026-02-24 09:37:07 +08:00
shiran 14b8fd2048 style(scss): 添加溢出隐藏样式
Discourse Theme / ci (push) Failing after 2s
- 在用户内容区域添加 overflow: hidden 样式
- 防止内容超出容器边界显示
2026-02-24 09:23:39 +08:00
shiran f6cbd5eccf style(css): 更新样式表中的选择器以增强主题一致性
Discourse Theme / ci (push) Failing after 0s
- 为 .admin-detail 添加背景颜色重置规则
- 将 .admin-detail 替换为 .admin-plugin-config-page__content 以改进插件配置页面样式
- 确保主题背景和边框半径在整个管理界面中保持一致
2026-02-24 09:16:24 +08:00
shiran d11c87a060 style(css): 更新CSS选择器样式
Discourse Theme / ci (push) Failing after 1s
- 将.admin-plugin-config-page__content选择器替换为.admin-detail
- 保持相同的背景色、圆角和阴影样式定义
2026-02-24 09:13:39 +08:00
shiran f876f44c84 style(scss): 更新样式表以支持管理员插件配置页面内容区域
Discourse Theme / ci (push) Failing after 0s
- 为 .admin-plugin-config-page__content 类添加背景、边框半径和阴影样式
- 统一管理插件配置页面内容区域的视觉外观
- 保持与其他内容区域样式的一致性
2026-02-24 09:11:48 +08:00
shiran b1d9fdd058 style(css): 更新样式文件中的选择器定义
Discourse Theme / ci (push) Failing after 1s
- 为 .search-header 添加与 .topic-post 和 .post-list-item 相同的背景、圆角和阴影样式
- 统一搜索头部与其他帖子项目的视觉外观
- 保持一致的设计风格和用户体验
2026-02-24 09:05:18 +08:00
shiran cddf2f9f84 style(theme): 更新搜索容器样式并调整背景模糊效果
Discourse Theme / ci (push) Failing after 2s
- 为搜索容器添加白色半透明背景
- 将背景模糊效果从 16px 增加到 32px
- 保持现有的边框圆角和阴影效果
- 确保所有相关页面元素具有一致的视觉样式
2026-02-24 09:03:55 +08:00
shiran 57cfd7eaae style(layout): 更新CSS选择器以改进页面背景样式
Discourse Theme / ci (push) Failing after 0s
- 添加.contents.clearfix.body-page选择器到现有样式规则
- 保持背景颜色透明度和边框半径一致性
- 维持毛玻璃效果以确保视觉统一性
2026-02-24 09:00:46 +08:00
shiran c12464bc7d style(layout): 更新盒子样式和添加用户内容背景
Discourse Theme / ci (push) Failing after 0s
- 调整盒子内边距从 0 12px 到 16px 12px
- 添加 .user-content 类设置背景颜色为无样式
2026-02-24 08:43:20 +08:00
shiran 1d94f2ed88 style(css): 更新主题帖子样式选择器
Discourse Theme / ci (push) Failing after 0s
- 扩展 .topic-post.clearfix.regular 选择器以包含 .post-list-item.user-stream-item
- 保持相同的背景、圆角和阴影样式属性
- 确保用户流项目具有与主题帖子相同的视觉外观
2026-02-23 09:09:23 +08:00
shiran a8f730a1f6 style(topic-cards): 移除悬停状态下的触摸设备样式
Discourse Theme / ci (push) Failing after 1s
- 移除了 .discourse-no-touch 类的选择器包装
- 简化了悬停时的背景和阴影样式应用逻辑
- 保持了选中状态样式的完整性
2026-02-23 09:02:49 +08:00
shiran a45b6c0cbc style(topic-post): 添加主题帖子样式定义
Discourse Theme / ci (push) Failing after 0s
- 为 .topic-post.clearfix.regular 类添加背景色样式
- 设置圆角边框样式
- 添加阴影效果
- 定义外边距和内边距
- 设置相对定位样式
2026-02-23 08:57:23 +08:00
shiran 808d195332 style(scss): 更新样式选择器以支持主题列表头部
Discourse Theme / ci (push) Failing after 0s
- 将 #list-area 选择器扩展为同时包含 .topic-list-header 类
- 移除背景颜色的强制设置以支持主题定制
- 保持现有的阴影效果和其他样式属性不变
2026-02-22 11:42:58 +08:00
shiran 8b0584a87e style(scss): 更新样式表以改进用户界面元素的边框半径和背景色
Discourse Theme / ci (push) Failing after 1s
- 为 .user-content 和 .details 类添加边框半径变量
- 将 .regular.ember-view, .user-main, .reviewable, .admin-content
  的背景色设置为带透明度的白色
- 为多个用户界面组件统一应用边框半径和背景模糊效果
- 调整 CSS 选择器顺序以优化样式覆盖逻辑
2026-02-21 11:12:36 +08:00
shiran b3f2686970 style(theme): 更新CSS选择器以改进页面样式
Discourse Theme / ci (push) Failing after 0s
- 为.regular.ember-view, .user-main, .user-content, .details, .reviewable, .admin-content添加背景色
- 为相关元素添加圆角样式
- 为页面内容添加毛玻璃效果
2026-02-21 10:19:20 +08:00
shiran 09e5f27aaa style(scss): 更新CSS选择器以适配更多页面元素
Discourse Theme / ci (push) Failing after 0s
- 为.regular.ember-view, .user-main, .reviewable, .admin-content类添加背景样式
- 统一应用白色半透明背景、圆角和模糊效果
- 替换原有的.container选择器为更通用的页面容器类名
2026-02-21 10:16:07 +08:00
shiran ba0a46820a style(css): 更新样式类选择器以包含容器元素
Discourse Theme / ci (push) Failing after 0s
- 将 .container 类添加到 .regular.ember-view 选择器中
- 保持相同的背景颜色、边框半径和背景模糊效果
- 确保容器元素具有与现有视图组件相同的视觉样式
2026-02-21 10:13:39 +08:00
shiran c472e537a3 style(topic-cards): 更新主题卡片样式以使用新的颜色变量和阴影效果
Discourse Theme / ci (push) Failing after 1s
- 将背景渐变从 --d-sidebar-active-background 替换为 --active-color
- 更新悬停状态的背景色为 --active-color
- 修改盒阴影语法以提高兼容性
- 调整悬停状态的边框颜色透明度
- 简化了阴影效果的数值表示方式
2026-02-21 10:11:28 +08:00
shiran ac2bb8084b style(topic-cards): 更新主题卡片边框颜色样式
Discourse Theme / ci (push) Failing after 0s
- 将主题卡片左侧边框颜色从变量 --d-button-danger-icon-color 改为 #0008
2026-02-21 10:07:22 +08:00
shiran b83d1c4de9 style(css): 移除梦幻效果并优化主题样式
Discourse Theme / ci (push) Failing after 0s
- 删除了全局的梦幻光晕效果和相关动画
- 移除了话题卡片的渐变背景和发光效果
- 简化了列表容器的背景样式和阴影效果
- 调整了话题卡片悬停状态的视觉效果
- 优化了分类标签的颜色配置方式
- 更新了选中状态的边框颜色和透明度设置
2026-02-21 10:03:46 +08:00
shiran 1fb6a7b5a1 Merge remote-tracking branch 'origin/main'
Discourse Theme / ci (push) Failing after 0s
2026-02-21 09:59:32 +08:00
shiran d87e9a30d5 style(scss): 添加主出口包装器的z-index样式
- 在self.scss中添加#main-outlet-wrapper的z-index: 0样式
- 保持其他样式定义不变
2026-02-21 09:59:21 +08:00
5 changed files with 122 additions and 163 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
en:
theme_metadata:
description: "(DEPRECATED: Use the Horizon theme that is now preinstalled on your Discourse site). A simple, beautiful theme that improves the out of the box experience for Discourse sites."
description: "自制二次元的半透明主题"
topic_pinned: "Pinned"
topic_hot: "Hot"
user_replied: "replied"
-62
View File
@@ -2,8 +2,6 @@
:root {
--main-grid-gap: 0.5em;
--dream-glow-a: rgb(var(--tertiary-rgb) / 0.24);
--dream-glow-b: rgb(var(--tertiary-rgb) / 0.18);
}
html:not(:has(.has-full-page-chat)) {
@@ -16,72 +14,12 @@ html:not(:has(.has-full-page-chat)) {
body {
-webkit-font-smoothing: antialiased;
position: relative;
@include viewport.until(sm) {
background-color: var(--d-content-background);
}
}
body:not(.has-full-page-chat, .wizard)::before,
body:not(.has-full-page-chat, .wizard)::after {
content: "";
position: fixed;
width: min(42vw, 32rem);
aspect-ratio: 1 / 1;
border-radius: 999px;
filter: blur(56px);
pointer-events: none;
z-index: 0;
}
body:not(.has-full-page-chat, .wizard)::before {
top: 5rem;
left: -8rem;
background: radial-gradient(circle at 30% 30%, var(--dream-glow-a), transparent 62%);
animation: dreamy-float-a 18s ease-in-out infinite alternate;
}
body:not(.has-full-page-chat, .wizard)::after {
right: -6rem;
bottom: 2rem;
background: radial-gradient(circle at 65% 35%, var(--dream-glow-b), transparent 58%);
animation: dreamy-float-b 22s ease-in-out infinite alternate;
}
.d-header-wrap,
#main-outlet-wrapper,
.sidebar-wrapper,
.sidebar-hamburger-dropdown {
position: relative;
z-index: 1;
}
@keyframes dreamy-float-a {
from {
transform: translate3d(0, 0, 0) scale(1);
}
to {
transform: translate3d(3rem, -1.5rem, 0) scale(1.08);
}
}
@keyframes dreamy-float-b {
from {
transform: translate3d(0, 0, 0) scale(1);
}
to {
transform: translate3d(-2.5rem, 2rem, 0) scale(1.1);
}
}
@media (prefers-reduced-motion: reduce) {
body:not(.has-full-page-chat, .wizard)::before,
body:not(.has-full-page-chat, .wizard)::after {
animation: none;
}
}
#main-outlet-wrapper {
gap: var(--main-grid-gap);
}
+84 -23
View File
@@ -11,7 +11,6 @@
.container.list-container{
position: relative;
isolation: isolate;
}
.container.list-container::before{
@@ -23,26 +22,14 @@
bottom: 0;
width: 100%;
height: 100%;
background:
linear-gradient(
180deg,
rgb(var(--secondary-rgb) / 0.46) 0%,
rgb(var(--secondary-rgb) / 0.34) 100%
);
background-color: #fff9;
border-radius: var(--d-border-radius);
backdrop-filter: blur(8px);
box-shadow: rgb(0 0 0 / 28%) 0 10px 26px -16px;
pointer-events: none;
z-index: 0;
}
.container.list-container > * {
position: relative;
z-index: 1;
backdrop-filter: blur(10px);
box-shadow: #00000077 0 0 19px 0;
}
.topic-list-header{
background-color: transparent;
background-color: unset;
}
.list-controls, .search-container{
border-radius: var(--d-border-radius);
@@ -53,14 +40,88 @@
box-shadow: #00000094 0 0 11px 0;
}
#list-area{
background-color: transparent;
#list-area, .topic-list-header, .admin-detail{
background-color: unset !important;
}
.regular.ember-view{
background-color: rgb(var(--secondary-rgb) / 0.58);
.user-content, .details{
border-radius: var(--d-border-radius);
backdrop-filter: blur(10px);
box-shadow: rgb(0 0 0 / 24%) 0 10px 24px -14px;
}
.regular.ember-view, .user-main, .reviewable,
.admin-content, .contents.clearfix.body-page,
.search-container, .show-badge, .users-directory, #main-outlet>.edit-category,
#main-outlet>.container.groups-index,
.container.group{
background-color: #ffffffa8 !important;
border-radius: var(--d-border-radius);
backdrop-filter: blur(32px);
box-shadow: #00000077 0 0 19px 0;
padding: 24px;
}
.topic-post.clearfix.regular, .post-list-item.user-stream-item,
.search-header, .admin-plugin-config-page__content,
.user-main .about.collapsed-info .details,
.ember-view.group-box, .admin-container>.container.groups-index{
background: var(--d-chat-input-bg-color);
border-radius: var(--d-border-radius);
box-shadow: #00000024 0 0 7px 2px;
margin: 10px 0;
position: relative;
padding: 16px 12px;
overflow: hidden;
transition: background-color 0.2s ease-in-out;
}
.user-content{
background-color: unset;
}
.powered-by-discourse{
display: none;
}
// 默认光标
@if $default_cursor != "" {
* {
cursor: url($default_cursor) 1 1, auto;
}
}
// 悬停光标
@if $hover_cursor != "" {
a,
button,
[role="button"],
input[type="button"],
input[type="submit"],
.btn,
.clickable {
cursor: url($hover_cursor) 1 1, auto;
}
}
// 链接光标
@if $pointer_cursor != "" {
a[href],
button,
[role="button"],
label,
input[type="button"],
input[type="submit"],
.pointer {
cursor: url($pointer_cursor) 1 1, pointer;
}
}
// 文本光标
@if $text_cursor != "" {
input[type="text"],
input[type="email"],
input[type="password"],
input[type="search"],
textarea {
cursor: url($text_cursor) 1 1, text;
}
}
+8 -68
View File
@@ -4,17 +4,6 @@
--d-border-radius-small: calc(var(--d-border-radius) * 0.5);
}
@keyframes dreamy-card-shimmer {
from {
transform: translateX(-18%);
opacity: 0.35;
}
to {
transform: translateX(18%);
opacity: 0.65;
}
}
.topic-list .topic-list-item-separator {
display: none;
}
@@ -79,15 +68,8 @@
.topic-list-body .topic-list-item {
position: relative;
background:
linear-gradient(
135deg,
rgb(var(--secondary-rgb) / 0.96) 0%,
rgb(var(--tertiary-rgb) / 0.08) 100%
);
box-shadow:
0 10px 30px -18px rgb(10 18 35 / 38%),
0 6px 16px -10px var(--topic-card-shadow);
background: linear-gradient(45deg, var(--active-color), rgb(255 255 255 / 25%));
box-shadow: 4px 4px 6px 0px rgba(10, 18, 35, .38), 0 6px 16px -10px var(--topic-card-shadow);
text-overflow: ellipsis;
padding: var(--space-3);
border: none;
@@ -99,11 +81,8 @@
grid-gap: var(--space-3);
border-radius: var(--d-border-radius);
cursor: pointer;
overflow: hidden;
transition:
box-shadow 0.25s ease,
transform 0.25s ease,
background-color 0.25s ease;
all 0.2s ease;
&::before {
content: "";
@@ -111,40 +90,10 @@
inset: 0;
border-radius: inherit;
padding: 1px;
background:
radial-gradient(
120% 100% at 0% 0%,
rgb(var(--tertiary-rgb) / 0.38),
transparent 56%
),
radial-gradient(
120% 90% at 100% 100%,
rgb(var(--tertiary-rgb) / 0.22),
transparent 58%
);
-webkit-mask:
linear-gradient(#000 0 0) content-box,
linear-gradient(#000 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
pointer-events: none;
}
&::after {
content: "";
position: absolute;
inset: -35% -20%;
background: linear-gradient(
112deg,
transparent 30%,
rgb(var(--tertiary-rgb) / 0.16) 48%,
transparent 66%
);
pointer-events: none;
mix-blend-mode: screen;
animation: dreamy-card-shimmer 9s ease-in-out infinite alternate;
}
&.has-replies {
grid-template-areas:
"creator title title title status"
@@ -203,25 +152,16 @@
}
&:hover {
.discourse-no-touch & {
background:
linear-gradient(
135deg,
rgb(var(--secondary-rgb) / 0.99) 0%,
rgb(var(--tertiary-rgb) / 0.14) 100%
);
box-shadow:
0 16px 34px -18px rgb(10 18 35 / 45%),
0 8px 20px -10px var(--topic-card-shadow);
transform: translateY(-2px);
}
background: var(--active-color);
box-shadow: 4px 5px 3px 1px rgba(0, 0, 0, .2), 0 8px 20px -10px var(--topic-card-shadow);
border-left: 5px solid #0006;
}
&.selected {
box-shadow:
0 14px 32px -14px rgb(10 18 35 / 48%),
0 0 0 2px rgb(var(--tertiary-rgb) / 0.28),
0 0 0 8px rgb(var(--tertiary-rgb) / 0.14);
0 0 0 2px oklch(from var(--accent-color) l calc(c * 0.45) h / 0.28),
0 0 0 8px oklch(from var(--accent-color) l calc(c * 0.2) h / 0.14);
}
&.excerpt-expanded {
+20
View File
@@ -15,3 +15,23 @@ home_bg_image:
default: ""
description: "首页背景图"
default_cursor:
type: upload
default: ""
description: "默认光标 SVG 文件"
hover_cursor:
type: upload
default: ""
description: "悬停光标 SVG 文件"
pointer_cursor:
type: upload
default: ""
description: "链接光标 SVG 文件"
text_cursor:
type: upload
default: ""
description: "文本光标 SVG 文件"