|
@@ -1,4 +1,4 @@
|
|
|
-@import './variables.less';
|
|
|
|
|
|
|
+@import './variables.scss';
|
|
|
|
|
|
|
|
// ===== 隐藏式滚动条(全局) =====
|
|
// ===== 隐藏式滚动条(全局) =====
|
|
|
// 适用于所有内容区域,保持界面简洁
|
|
// 适用于所有内容区域,保持界面简洁
|
|
@@ -26,7 +26,7 @@ body {
|
|
|
padding: 0;
|
|
padding: 0;
|
|
|
margin: 0;
|
|
margin: 0;
|
|
|
/* 不设置 overflow: hidden,允许页面滚动 */
|
|
/* 不设置 overflow: hidden,允许页面滚动 */
|
|
|
- background: @bg-primary; /* 设置全局背景色,避免滚动时出现白色空白 */
|
|
|
|
|
|
|
+ background: $bg-primary; /* 设置全局背景色,避免滚动时出现白色空白 */
|
|
|
|
|
|
|
|
// 隐藏根元素滚动条
|
|
// 隐藏根元素滚动条
|
|
|
scrollbar-width: none; // Firefox
|
|
scrollbar-width: none; // Firefox
|
|
@@ -41,13 +41,13 @@ body {
|
|
|
height: 100%;
|
|
height: 100%;
|
|
|
width: 100%;
|
|
width: 100%;
|
|
|
/* 不设置 overflow: hidden,允许内容区域滚动 */
|
|
/* 不设置 overflow: hidden,允许内容区域滚动 */
|
|
|
- font-size: @font-size-base;
|
|
|
|
|
- color: @theme-text-color !important;
|
|
|
|
|
|
|
+ font-size: $font-size-base;
|
|
|
|
|
+ color: $theme-text-color !important;
|
|
|
// Ant-Design 主题 - 属性
|
|
// Ant-Design 主题 - 属性
|
|
|
- --primary-color: @primary-color;
|
|
|
|
|
- --text-color: @theme-text-color;
|
|
|
|
|
- --border-radius: @border-radius-base;
|
|
|
|
|
- background: @bg-primary; /* 设置背景色 */
|
|
|
|
|
|
|
+ --primary-color: $primary-color;
|
|
|
|
|
+ --text-color: $theme-text-color;
|
|
|
|
|
+ --border-radius: $border-radius-base;
|
|
|
|
|
+ background: $bg-primary; /* 设置背景色 */
|
|
|
|
|
|
|
|
// 隐藏滚动条
|
|
// 隐藏滚动条
|
|
|
scrollbar-width: none; // Firefox
|
|
scrollbar-width: none; // Firefox
|
|
@@ -66,8 +66,8 @@ a,
|
|
|
a:hover,
|
|
a:hover,
|
|
|
a:active {
|
|
a:active {
|
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
- font-size: @font-size-base;
|
|
|
|
|
- color: @primary-color;
|
|
|
|
|
|
|
+ font-size: $font-size-base;
|
|
|
|
|
+ color: $primary-color;
|
|
|
text-decoration: none;
|
|
text-decoration: none;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -83,19 +83,19 @@ ul li {
|
|
|
// ==================== 全局工具类 ====================
|
|
// ==================== 全局工具类 ====================
|
|
|
|
|
|
|
|
.text-primary {
|
|
.text-primary {
|
|
|
- color: @primary-color !important;
|
|
|
|
|
|
|
+ color: $primary-color !important;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.text-success {
|
|
.text-success {
|
|
|
- color: @success-color !important;
|
|
|
|
|
|
|
+ color: $success-color !important;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.text-warning {
|
|
.text-warning {
|
|
|
- color: @warning-color !important;
|
|
|
|
|
|
|
+ color: $warning-color !important;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.text-error {
|
|
.text-error {
|
|
|
- color: @error-color !important;
|
|
|
|
|
|
|
+ color: $error-color !important;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 路由加载样式
|
|
// 路由加载样式
|
|
@@ -117,74 +117,74 @@ ul li {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
h1 {
|
|
h1 {
|
|
|
- font-size: @font-4xl; // 20px
|
|
|
|
|
- color: @text-primary;
|
|
|
|
|
|
|
+ font-size: $font-4xl; // 20px
|
|
|
|
|
+ color: $text-primary;
|
|
|
margin: 2px 0;
|
|
margin: 2px 0;
|
|
|
- line-height: @line-height-tight; // 1.1
|
|
|
|
|
|
|
+ line-height: $line-height-tight; // 1.1
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
h2 {
|
|
h2 {
|
|
|
- font-size: @font-3xl; // 18px
|
|
|
|
|
- color: @text-primary;
|
|
|
|
|
|
|
+ font-size: $font-3xl; // 18px
|
|
|
|
|
+ color: $text-primary;
|
|
|
margin: 2px 0;
|
|
margin: 2px 0;
|
|
|
- line-height: @line-height-tight; // 1.1
|
|
|
|
|
|
|
+ line-height: $line-height-tight; // 1.1
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
h3 {
|
|
h3 {
|
|
|
- font-size: @font-2xl; // 16px
|
|
|
|
|
- color: @text-primary;
|
|
|
|
|
|
|
+ font-size: $font-2xl; // 16px
|
|
|
|
|
+ color: $text-primary;
|
|
|
margin: 2px 0;
|
|
margin: 2px 0;
|
|
|
- line-height: @line-height-tight; // 1.1
|
|
|
|
|
|
|
+ line-height: $line-height-tight; // 1.1
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
h4 {
|
|
h4 {
|
|
|
- font-size: @font-lg; // 14px
|
|
|
|
|
- color: @text-primary;
|
|
|
|
|
|
|
+ font-size: $font-lg; // 14px
|
|
|
|
|
+ color: $text-primary;
|
|
|
margin: 2px 0;
|
|
margin: 2px 0;
|
|
|
- line-height: @line-height-tight; // 1.1
|
|
|
|
|
|
|
+ line-height: $line-height-tight; // 1.1
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
h5, h6 {
|
|
h5, h6 {
|
|
|
- font-size: @font-base; // 12px
|
|
|
|
|
- color: @text-primary;
|
|
|
|
|
|
|
+ font-size: $font-base; // 12px
|
|
|
|
|
+ color: $text-primary;
|
|
|
margin: 2px 0;
|
|
margin: 2px 0;
|
|
|
- line-height: @line-height-tight; // 1.1
|
|
|
|
|
|
|
+ line-height: $line-height-tight; // 1.1
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
p {
|
|
p {
|
|
|
- font-size: @font-base;
|
|
|
|
|
- color: @text-secondary;
|
|
|
|
|
- line-height: @line-height-base; // 1.3
|
|
|
|
|
|
|
+ font-size: $font-base;
|
|
|
|
|
+ color: $text-secondary;
|
|
|
|
|
+ line-height: $line-height-base; // 1.3
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Ant Design typography 样式
|
|
// Ant Design typography 样式
|
|
|
.ant-typography {
|
|
.ant-typography {
|
|
|
h1 {
|
|
h1 {
|
|
|
- font-size: @font-4xl; // 20px
|
|
|
|
|
- color: @text-primary;
|
|
|
|
|
|
|
+ font-size: $font-4xl; // 20px
|
|
|
|
|
+ color: $text-primary;
|
|
|
margin: 2px 0;
|
|
margin: 2px 0;
|
|
|
- line-height: @line-height-tight; // 1.1
|
|
|
|
|
|
|
+ line-height: $line-height-tight; // 1.1
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
h2 {
|
|
h2 {
|
|
|
- font-size: @font-3xl; // 18px
|
|
|
|
|
- color: @text-primary;
|
|
|
|
|
|
|
+ font-size: $font-3xl; // 18px
|
|
|
|
|
+ color: $text-primary;
|
|
|
margin: 2px 0;
|
|
margin: 2px 0;
|
|
|
- line-height: @line-height-tight; // 1.1
|
|
|
|
|
|
|
+ line-height: $line-height-tight; // 1.1
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
h3 {
|
|
h3 {
|
|
|
- font-size: @font-2xl; // 16px
|
|
|
|
|
- color: @text-primary;
|
|
|
|
|
|
|
+ font-size: $font-2xl; // 16px
|
|
|
|
|
+ color: $text-primary;
|
|
|
margin: 2px 0;
|
|
margin: 2px 0;
|
|
|
- line-height: @line-height-tight; // 1.1
|
|
|
|
|
|
|
+ line-height: $line-height-tight; // 1.1
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
p {
|
|
p {
|
|
|
- font-size: @font-base;
|
|
|
|
|
- color: @text-secondary;
|
|
|
|
|
- line-height: @line-height-base; // 1.3
|
|
|
|
|
|
|
+ font-size: $font-base;
|
|
|
|
|
+ color: $text-secondary;
|
|
|
|
|
+ line-height: $line-height-base; // 1.3
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -201,37 +201,37 @@ ul li {
|
|
|
|
|
|
|
|
// 全局按钮样式
|
|
// 全局按钮样式
|
|
|
.ant-btn-primary {
|
|
.ant-btn-primary {
|
|
|
- background: @primary-color;
|
|
|
|
|
- border: 1px solid @primary-color;
|
|
|
|
|
|
|
+ background: $primary-color;
|
|
|
|
|
+ border: 1px solid $primary-color;
|
|
|
color: #ffffff;
|
|
color: #ffffff;
|
|
|
- transition: @transition-base;
|
|
|
|
|
- box-shadow: @shadow-sm;
|
|
|
|
|
|
|
+ transition: $transition-base;
|
|
|
|
|
+ box-shadow: $shadow-sm;
|
|
|
|
|
|
|
|
&:hover {
|
|
&:hover {
|
|
|
- background: @primary-light;
|
|
|
|
|
- border-color: @primary-light;
|
|
|
|
|
|
|
+ background: $primary-light;
|
|
|
|
|
+ border-color: $primary-light;
|
|
|
color: #ffffff;
|
|
color: #ffffff;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
&:active {
|
|
&:active {
|
|
|
- background: @primary-dark;
|
|
|
|
|
- border-color: @primary-dark;
|
|
|
|
|
|
|
+ background: $primary-dark;
|
|
|
|
|
+ border-color: $primary-dark;
|
|
|
color: #ffffff;
|
|
color: #ffffff;
|
|
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
|
|
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
|
|
|
transform: translateY(0);
|
|
transform: translateY(0);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
&:focus {
|
|
&:focus {
|
|
|
- background: @primary-color;
|
|
|
|
|
- border-color: @primary-color;
|
|
|
|
|
|
|
+ background: $primary-color;
|
|
|
|
|
+ border-color: $primary-color;
|
|
|
color: #ffffff;
|
|
color: #ffffff;
|
|
|
- box-shadow: 0 0 0 2px rgba(@primary-color, 0.2);
|
|
|
|
|
|
|
+ box-shadow: 0 0 0 2px rgba($primary-color, 0.2);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
&:disabled {
|
|
&:disabled {
|
|
|
- background: @bg-tertiary;
|
|
|
|
|
- border-color: @border-base;
|
|
|
|
|
- color: @text-disabled;
|
|
|
|
|
|
|
+ background: $bg-tertiary;
|
|
|
|
|
+ border-color: $border-base;
|
|
|
|
|
+ color: $text-disabled;
|
|
|
box-shadow: none;
|
|
box-shadow: none;
|
|
|
transform: none;
|
|
transform: none;
|
|
|
}
|
|
}
|
|
@@ -239,53 +239,53 @@ ul li {
|
|
|
|
|
|
|
|
// ==================== 排序按钮组 ====================
|
|
// ==================== 排序按钮组 ====================
|
|
|
.sort-buttons {
|
|
.sort-buttons {
|
|
|
- border: 1px solid @border-base;
|
|
|
|
|
- border-radius: @radius-xl;
|
|
|
|
|
|
|
+ border: 1px solid $border-base;
|
|
|
|
|
+ border-radius: $radius-xl;
|
|
|
overflow: hidden;
|
|
overflow: hidden;
|
|
|
|
|
|
|
|
.sort-btn {
|
|
.sort-btn {
|
|
|
- padding: @spacing-2 @spacing-4;
|
|
|
|
|
- background: @bg-secondary;
|
|
|
|
|
|
|
+ padding: $spacing-2 $spacing-4;
|
|
|
|
|
+ background: $bg-secondary;
|
|
|
border: none;
|
|
border: none;
|
|
|
- border-right: 1px solid @border-base;
|
|
|
|
|
- font-size: @font-md;
|
|
|
|
|
- font-weight: @font-weight-medium;
|
|
|
|
|
- color: @text-secondary;
|
|
|
|
|
|
|
+ border-right: 1px solid $border-base;
|
|
|
|
|
+ font-size: $font-md;
|
|
|
|
|
+ font-weight: $font-weight-medium;
|
|
|
|
|
+ color: $text-secondary;
|
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
- transition: @transition-base;
|
|
|
|
|
|
|
+ transition: $transition-base;
|
|
|
|
|
|
|
|
&:last-child {
|
|
&:last-child {
|
|
|
border-right: none;
|
|
border-right: none;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
&:hover {
|
|
&:hover {
|
|
|
- background: @bg-hover;
|
|
|
|
|
- color: @text-primary;
|
|
|
|
|
|
|
+ background: $bg-hover;
|
|
|
|
|
+ color: $text-primary;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
&.active {
|
|
&.active {
|
|
|
- background: @icon-bg-blue;
|
|
|
|
|
- color: @primary-color;
|
|
|
|
|
|
|
+ background: $icon-bg-blue;
|
|
|
|
|
+ color: $primary-color;
|
|
|
font-weight: @font-weight-semibold;
|
|
font-weight: @font-weight-semibold;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.filter-btn {
|
|
.filter-btn {
|
|
|
- width: @search-height;
|
|
|
|
|
- height: @search-height;
|
|
|
|
|
- border: 1px solid lighten(@primary-color, 20%);
|
|
|
|
|
- background: @icon-bg-blue;
|
|
|
|
|
- border-radius: @radius-xl;
|
|
|
|
|
|
|
+ width: $search-height;
|
|
|
|
|
+ height: $search-height;
|
|
|
|
|
+ border: 1px solid lighten($primary-color, 20%);
|
|
|
|
|
+ background: $icon-bg-blue;
|
|
|
|
|
+ border-radius: $radius-xl;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
justify-content: center;
|
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
- transition: @transition-base;
|
|
|
|
|
|
|
+ transition: $transition-base;
|
|
|
|
|
|
|
|
.iconify {
|
|
.iconify {
|
|
|
- font-size: @icon-lg;
|
|
|
|
|
- color: @primary-color;
|
|
|
|
|
|
|
+ font-size: $icon-lg;
|
|
|
|
|
+ color: $primary-color;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -293,22 +293,22 @@ ul li {
|
|
|
|
|
|
|
|
// 页面容器(仅控制布局,不覆盖组件)
|
|
// 页面容器(仅控制布局,不覆盖组件)
|
|
|
.page-container {
|
|
.page-container {
|
|
|
- padding: @spacing-4 @spacing-6;
|
|
|
|
|
- min-height: calc(100vh - @header-height);
|
|
|
|
|
- background: @bg-primary;
|
|
|
|
|
|
|
+ padding: $spacing-4 $spacing-6;
|
|
|
|
|
+ min-height: calc(100vh - $header-height);
|
|
|
|
|
+ background: $bg-primary;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 内容区块(通用容器)
|
|
// 内容区块(通用容器)
|
|
|
.content-section {
|
|
.content-section {
|
|
|
- margin-bottom: @spacing-4; // 16px - 紧凑间距
|
|
|
|
|
- padding: @spacing-3;
|
|
|
|
|
- background: @bg-secondary;
|
|
|
|
|
- border-radius: @radius-lg;
|
|
|
|
|
|
|
+ margin-bottom: $spacing-4; // 16px - 紧凑间距
|
|
|
|
|
+ padding: $spacing-3;
|
|
|
|
|
+ background: $bg-secondary;
|
|
|
|
|
+ border-radius: $radius-lg;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 区块间距
|
|
// 区块间距
|
|
|
.section-gap {
|
|
.section-gap {
|
|
|
- margin-bottom: @spacing-5;
|
|
|
|
|
|
|
+ margin-bottom: $spacing-5;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// ==================== 列表头部 ====================
|
|
// ==================== 列表头部 ====================
|
|
@@ -318,9 +318,9 @@ ul li {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
justify-content: space-between;
|
|
justify-content: space-between;
|
|
|
align-items: flex-end;
|
|
align-items: flex-end;
|
|
|
- margin-bottom: @spacing-4;
|
|
|
|
|
- padding-bottom: @spacing-3;
|
|
|
|
|
- border-bottom: 1px solid @border-base;
|
|
|
|
|
|
|
+ margin-bottom: $spacing-4;
|
|
|
|
|
+ padding-bottom: $spacing-3;
|
|
|
|
|
+ border-bottom: 1px solid $border-base;
|
|
|
|
|
|
|
|
// 当下方紧跟 GuideTips 时,移除底部间距
|
|
// 当下方紧跟 GuideTips 时,移除底部间距
|
|
|
& + .guide-tips-wrapper {
|
|
& + .guide-tips-wrapper {
|
|
@@ -329,8 +329,8 @@ ul li {
|
|
|
|
|
|
|
|
// 使用 GuideTips 时的样式
|
|
// 使用 GuideTips 时的样式
|
|
|
&.with-tips {
|
|
&.with-tips {
|
|
|
- margin-bottom: @spacing-3; // 12px - 与 GuideTips 的间距(统一视觉间距)
|
|
|
|
|
- padding-bottom: @spacing-3; // 12px
|
|
|
|
|
|
|
+ margin-bottom: $spacing-3; // 12px - 与 GuideTips 的间距(统一视觉间距)
|
|
|
|
|
+ padding-bottom: $spacing-3; // 12px
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 带返回按钮的标题栏
|
|
// 带返回按钮的标题栏
|
|
@@ -340,7 +340,7 @@ ul li {
|
|
|
.list-header-title {
|
|
.list-header-title {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
- gap: @spacing-1;
|
|
|
|
|
|
|
+ gap: $spacing-1;
|
|
|
|
|
|
|
|
.back-btn {
|
|
.back-btn {
|
|
|
display: flex;
|
|
display: flex;
|
|
@@ -351,13 +351,13 @@ ul li {
|
|
|
padding: 0;
|
|
padding: 0;
|
|
|
background: transparent;
|
|
background: transparent;
|
|
|
border: none;
|
|
border: none;
|
|
|
- color: @text-secondary;
|
|
|
|
|
|
|
+ color: $text-secondary;
|
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
transition: all 0.2s ease;
|
|
transition: all 0.2s ease;
|
|
|
flex-shrink: 0;
|
|
flex-shrink: 0;
|
|
|
|
|
|
|
|
&:hover {
|
|
&:hover {
|
|
|
- color: @primary-color;
|
|
|
|
|
|
|
+ color: $primary-color;
|
|
|
|
|
|
|
|
.anticon {
|
|
.anticon {
|
|
|
font-weight: 700;
|
|
font-weight: 700;
|
|
@@ -374,55 +374,55 @@ ul li {
|
|
|
|
|
|
|
|
h1, h3 {
|
|
h1, h3 {
|
|
|
margin: 0;
|
|
margin: 0;
|
|
|
- line-height: @line-height-tight; // 1.1
|
|
|
|
|
|
|
+ line-height: $line-height-tight; // 1.1
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
&-title {
|
|
&-title {
|
|
|
h1, h3 {
|
|
h1, h3 {
|
|
|
- font-size: @font-3xl;
|
|
|
|
|
- font-weight: @font-weight-bold;
|
|
|
|
|
- color: @text-primary;
|
|
|
|
|
- margin: 0 0 @spacing-1 0;
|
|
|
|
|
- line-height: @line-height-tight; // 1.1
|
|
|
|
|
|
|
+ font-size: $font-3xl;
|
|
|
|
|
+ font-weight: $font-weight-bold;
|
|
|
|
|
+ color: $text-primary;
|
|
|
|
|
+ margin: 0 0 $spacing-1 0;
|
|
|
|
|
+ line-height: $line-height-tight; // 1.1
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
p {
|
|
p {
|
|
|
- font-size: @font-sm;
|
|
|
|
|
- color: @text-secondary;
|
|
|
|
|
|
|
+ font-size: $font-sm;
|
|
|
|
|
+ color: $text-secondary;
|
|
|
margin: 0;
|
|
margin: 0;
|
|
|
- line-height: @line-height-base; // 1.3
|
|
|
|
|
|
|
+ line-height: $line-height-base; // 1.3
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
&-actions {
|
|
&-actions {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
- gap: @spacing-3;
|
|
|
|
|
|
|
+ gap: $spacing-3;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
|
|
|
|
|
.create-btn {
|
|
.create-btn {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
- gap: @spacing-2;
|
|
|
|
|
- padding: @spacing-2 @spacing-4;
|
|
|
|
|
- background: @primary-color;
|
|
|
|
|
|
|
+ gap: $spacing-2;
|
|
|
|
|
+ padding: $spacing-2 $spacing-4;
|
|
|
|
|
+ background: $primary-color;
|
|
|
color: #fff;
|
|
color: #fff;
|
|
|
border: none;
|
|
border: none;
|
|
|
- border-radius: @radius-lg;
|
|
|
|
|
- font-size: @font-md;
|
|
|
|
|
- font-weight: @font-weight-medium;
|
|
|
|
|
|
|
+ border-radius: $radius-lg;
|
|
|
|
|
+ font-size: $font-md;
|
|
|
|
|
+ font-weight: $font-weight-medium;
|
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
- transition: @transition-base;
|
|
|
|
|
|
|
+ transition: $transition-base;
|
|
|
|
|
|
|
|
&:hover {
|
|
&:hover {
|
|
|
- background: @primary-light;
|
|
|
|
|
- transform: translateY(-@spacing-1);
|
|
|
|
|
- box-shadow: @shadow-md;
|
|
|
|
|
|
|
+ background: $primary-light;
|
|
|
|
|
+ transform: translateY(-$spacing-1);
|
|
|
|
|
+ box-shadow: $shadow-md;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.iconify {
|
|
.iconify {
|
|
|
- font-size: @icon-xl;
|
|
|
|
|
|
|
+ font-size: $icon-xl;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -434,10 +434,10 @@ ul li {
|
|
|
.sub-list-header {
|
|
.sub-list-header {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
- gap: @spacing-4;
|
|
|
|
|
- margin-bottom: @spacing-4; // 16px - 紧凑间距
|
|
|
|
|
- padding-bottom: @spacing-3;
|
|
|
|
|
- border-bottom: 1px solid @border-base;
|
|
|
|
|
|
|
+ gap: $spacing-4;
|
|
|
|
|
+ margin-bottom: $spacing-4; // 16px - 紧凑间距
|
|
|
|
|
+ padding-bottom: $spacing-3;
|
|
|
|
|
+ border-bottom: 1px solid $border-base;
|
|
|
|
|
|
|
|
.back-btn {
|
|
.back-btn {
|
|
|
display: flex;
|
|
display: flex;
|
|
@@ -445,33 +445,33 @@ ul li {
|
|
|
justify-content: center;
|
|
justify-content: center;
|
|
|
width: 36px;
|
|
width: 36px;
|
|
|
height: 36px;
|
|
height: 36px;
|
|
|
- border-radius: @radius-lg;
|
|
|
|
|
- background: @bg-tertiary;
|
|
|
|
|
- border: 1px solid @border-base;
|
|
|
|
|
- color: @text-secondary;
|
|
|
|
|
|
|
+ border-radius: $radius-lg;
|
|
|
|
|
+ background: $bg-tertiary;
|
|
|
|
|
+ border: 1px solid $border-base;
|
|
|
|
|
+ color: $text-secondary;
|
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
- transition: @transition-base;
|
|
|
|
|
|
|
+ transition: $transition-base;
|
|
|
flex-shrink: 0;
|
|
flex-shrink: 0;
|
|
|
|
|
|
|
|
&:hover {
|
|
&:hover {
|
|
|
- background: @border-base;
|
|
|
|
|
- color: @primary-color;
|
|
|
|
|
- transform: translateX(-@spacing-1);
|
|
|
|
|
|
|
+ background: $border-base;
|
|
|
|
|
+ color: $primary-color;
|
|
|
|
|
+ transform: translateX(-$spacing-1);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.iconify {
|
|
.iconify {
|
|
|
- font-size: @icon-lg;
|
|
|
|
|
|
|
+ font-size: $icon-lg;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.sub-list-title {
|
|
.sub-list-title {
|
|
|
h1, h2 {
|
|
h1, h2 {
|
|
|
- font-size: @font-3xl; // 20px
|
|
|
|
|
- font-weight: @font-weight-bold;
|
|
|
|
|
- color: @text-primary;
|
|
|
|
|
|
|
+ font-size: $font-3xl; // 20px
|
|
|
|
|
+ font-weight: $font-weight-bold;
|
|
|
|
|
+ color: $text-primary;
|
|
|
margin: 0;
|
|
margin: 0;
|
|
|
white-space: nowrap;
|
|
white-space: nowrap;
|
|
|
- line-height: @line-height-tight; // 1.1
|
|
|
|
|
|
|
+ line-height: $line-height-tight; // 1.1
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -480,30 +480,30 @@ ul li {
|
|
|
|
|
|
|
|
.create-action-wrapper {
|
|
.create-action-wrapper {
|
|
|
text-align: right;
|
|
text-align: right;
|
|
|
- margin-bottom: @spacing-4; // 紧凑一级:24px → 16px
|
|
|
|
|
|
|
+ margin-bottom: $spacing-4; // 紧凑一级:24px → 16px
|
|
|
|
|
|
|
|
.create-action-btn {
|
|
.create-action-btn {
|
|
|
display: inline-flex;
|
|
display: inline-flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
- gap: @spacing-2;
|
|
|
|
|
- padding: @spacing-2 @spacing-4;
|
|
|
|
|
- background: @primary-color;
|
|
|
|
|
|
|
+ gap: $spacing-2;
|
|
|
|
|
+ padding: $spacing-2 $spacing-4;
|
|
|
|
|
+ background: $primary-color;
|
|
|
color: #fff;
|
|
color: #fff;
|
|
|
border: none;
|
|
border: none;
|
|
|
- border-radius: @radius-lg;
|
|
|
|
|
- font-size: @font-md;
|
|
|
|
|
- font-weight: @font-weight-medium;
|
|
|
|
|
|
|
+ border-radius: $radius-lg;
|
|
|
|
|
+ font-size: $font-md;
|
|
|
|
|
+ font-weight: $font-weight-medium;
|
|
|
cursor: pointer;
|
|
cursor: pointer;
|
|
|
- transition: @transition-base;
|
|
|
|
|
|
|
+ transition: $transition-base;
|
|
|
|
|
|
|
|
&:hover {
|
|
&:hover {
|
|
|
- background: @primary-light;
|
|
|
|
|
- transform: translateY(-@spacing-1);
|
|
|
|
|
- box-shadow: @shadow-md;
|
|
|
|
|
|
|
+ background: $primary-light;
|
|
|
|
|
+ transform: translateY(-$spacing-1);
|
|
|
|
|
+ box-shadow: $shadow-md;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.iconify {
|
|
.iconify {
|
|
|
- font-size: @icon-xl;
|
|
|
|
|
|
|
+ font-size: $icon-xl;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -513,17 +513,17 @@ ul li {
|
|
|
.app-card-grid {
|
|
.app-card-grid {
|
|
|
display: grid;
|
|
display: grid;
|
|
|
grid-template-columns: repeat(4, 1fr);
|
|
grid-template-columns: repeat(4, 1fr);
|
|
|
- gap: @spacing-4; // 紧凑一级:24px → 16px
|
|
|
|
|
|
|
+ gap: $spacing-4; // 紧凑一级:24px → 16px
|
|
|
|
|
|
|
|
- @media (max-width: @screen-xl) {
|
|
|
|
|
|
|
+ @media (max-width: $screen-xl) {
|
|
|
grid-template-columns: repeat(3, 1fr);
|
|
grid-template-columns: repeat(3, 1fr);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- @media (max-width: @screen-lg) {
|
|
|
|
|
|
|
+ @media (max-width: $screen-lg) {
|
|
|
grid-template-columns: repeat(2, 1fr);
|
|
grid-template-columns: repeat(2, 1fr);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- @media (max-width: @screen-md) {
|
|
|
|
|
|
|
+ @media (max-width: $screen-md) {
|
|
|
grid-template-columns: 1fr;
|
|
grid-template-columns: 1fr;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -531,13 +531,13 @@ ul li {
|
|
|
.knowledge-card-grid {
|
|
.knowledge-card-grid {
|
|
|
display: grid;
|
|
display: grid;
|
|
|
grid-template-columns: repeat(3, 1fr);
|
|
grid-template-columns: repeat(3, 1fr);
|
|
|
- gap: @spacing-4; // 紧凑一级:24px → 16px
|
|
|
|
|
|
|
+ gap: $spacing-4; // 紧凑一级:24px → 16px
|
|
|
|
|
|
|
|
- @media (max-width: @screen-lg) {
|
|
|
|
|
|
|
+ @media (max-width: $screen-lg) {
|
|
|
grid-template-columns: repeat(2, 1fr);
|
|
grid-template-columns: repeat(2, 1fr);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- @media (max-width: @screen-md) {
|
|
|
|
|
|
|
+ @media (max-width: $screen-md) {
|
|
|
grid-template-columns: 1fr;
|
|
grid-template-columns: 1fr;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -545,24 +545,24 @@ ul li {
|
|
|
// ==================== 分页器 ====================
|
|
// ==================== 分页器 ====================
|
|
|
|
|
|
|
|
.pagination-container {
|
|
.pagination-container {
|
|
|
- padding: @spacing-4 0;
|
|
|
|
|
|
|
+ padding: $spacing-4 0;
|
|
|
display: flex;
|
|
display: flex;
|
|
|
justify-content: flex-end;
|
|
justify-content: flex-end;
|
|
|
|
|
|
|
|
.ant-pagination {
|
|
.ant-pagination {
|
|
|
.ant-pagination-item {
|
|
.ant-pagination-item {
|
|
|
- border-radius: @radius-lg;
|
|
|
|
|
- border-color: @border-base;
|
|
|
|
|
- transition: @transition-base;
|
|
|
|
|
|
|
+ border-radius: $radius-lg;
|
|
|
|
|
+ border-color: $border-base;
|
|
|
|
|
+ transition: $transition-base;
|
|
|
|
|
|
|
|
&:hover {
|
|
&:hover {
|
|
|
- border-color: @primary-color;
|
|
|
|
|
- transform: translateY(-@spacing-1);
|
|
|
|
|
|
|
+ border-color: $primary-color;
|
|
|
|
|
+ transform: translateY(-$spacing-1);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
&.ant-pagination-item-active {
|
|
&.ant-pagination-item-active {
|
|
|
- background: @primary-color;
|
|
|
|
|
- border-color: @primary-color;
|
|
|
|
|
|
|
+ background: $primary-color;
|
|
|
|
|
+ border-color: $primary-color;
|
|
|
|
|
|
|
|
a {
|
|
a {
|
|
|
color: #fff;
|
|
color: #fff;
|
|
@@ -573,13 +573,13 @@ ul li {
|
|
|
.ant-pagination-prev,
|
|
.ant-pagination-prev,
|
|
|
.ant-pagination-next {
|
|
.ant-pagination-next {
|
|
|
.ant-pagination-item-link {
|
|
.ant-pagination-item-link {
|
|
|
- border-radius: @radius-lg;
|
|
|
|
|
- border-color: @border-base;
|
|
|
|
|
- transition: @transition-base;
|
|
|
|
|
|
|
+ border-radius: $radius-lg;
|
|
|
|
|
+ border-color: $border-base;
|
|
|
|
|
+ transition: $transition-base;
|
|
|
|
|
|
|
|
&:hover {
|
|
&:hover {
|
|
|
- border-color: @primary-color;
|
|
|
|
|
- color: @primary-color;
|
|
|
|
|
|
|
+ border-color: $primary-color;
|
|
|
|
|
+ color: $primary-color;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -588,7 +588,7 @@ ul li {
|
|
|
|
|
|
|
|
// ==================== 响应式适配 ====================
|
|
// ==================== 响应式适配 ====================
|
|
|
|
|
|
|
|
-@media (max-width: @screen-md) {
|
|
|
|
|
|
|
+@media (max-width: $screen-md) {
|
|
|
.sort-buttons {
|
|
.sort-buttons {
|
|
|
flex-wrap: wrap;
|
|
flex-wrap: wrap;
|
|
|
|
|
|
|
@@ -602,8 +602,8 @@ ul li {
|
|
|
@media (max-width: @screen-sm) {
|
|
@media (max-width: @screen-sm) {
|
|
|
.sort-buttons {
|
|
.sort-buttons {
|
|
|
.sort-btn {
|
|
.sort-btn {
|
|
|
- padding: @spacing-1 @spacing-2;
|
|
|
|
|
- font-size: @font-sm;
|
|
|
|
|
|
|
+ padding: $spacing-1 $spacing-2;
|
|
|
|
|
+ font-size: $font-sm;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|