update at 2026-02-12 19:18:45

This commit is contained in:
douboer@gmail.com
2026-02-12 19:18:45 +08:00
parent a64f38861c
commit 804936e97a
3 changed files with 1327 additions and 134 deletions

View File

@@ -149,23 +149,20 @@ body {
}
.theme-popover {
position: absolute;
top: calc(100% + 8px);
left: 50%;
transform: translateX(-50%);
width: 280px;
position: fixed;
width: 292px;
border: 1px solid var(--primary-7);
border-radius: 24px 24px 0 0;
background: #fff;
z-index: 10;
padding: 8px;
padding: 8px 8px 10px;
}
.theme-popover::before {
content: '';
position: absolute;
top: -8px;
left: 50%;
left: var(--theme-arrow-left, 50%);
width: 14px;
height: 14px;
background: #fff;
@@ -177,13 +174,53 @@ body {
.theme-header {
text-align: center;
color: var(--primary-6);
font-size: 14px;
margin-bottom: 8px;
font-size: 15px;
margin-bottom: 6px;
}
.theme-list {
max-height: 180px;
overflow: auto;
.theme-wheel-wrap {
--theme-row-height: 42px;
position: relative;
height: calc(var(--theme-row-height) * 5);
overflow: hidden;
}
.theme-wheel {
height: 100%;
overflow-y: auto;
padding-block: calc(var(--theme-row-height) * 2);
margin: 0;
scrollbar-width: thin;
scrollbar-color: #d6d8dc #fff;
}
.theme-wheel::-webkit-scrollbar {
width: 6px;
}
.theme-wheel::-webkit-scrollbar-track {
background: #fff;
}
.theme-wheel::-webkit-scrollbar-thumb {
background: #d6d8dc;
border-radius: 999px;
}
.theme-mask {
position: absolute;
inset: 0;
pointer-events: none;
z-index: 3;
background: linear-gradient(
180deg,
#ffffff 0%,
rgba(255, 255, 255, 0.74) 20%,
rgba(255, 255, 255, 0) 35%,
rgba(255, 255, 255, 0) 65%,
rgba(255, 255, 255, 0.74) 80%,
#ffffff 100%
);
}
.theme-row {
@@ -193,8 +230,14 @@ body {
display: flex;
align-items: center;
gap: 8px;
padding: 6px;
height: 42px;
padding: 5px 6px;
cursor: pointer;
transition: opacity 0.2s ease;
}
.theme-row.selected {
opacity: 1;
}
.theme-row img {
@@ -205,8 +248,28 @@ body {
.palette {
flex: 1;
display: grid;
grid-template-columns: repeat(9, 1fr);
height: 20px;
border-radius: 2px;
overflow: hidden;
position: relative;
}
/* 选中分割线挂在色条本身,滚动时与选中项一起移动,长度与色条完全一致。 */
.theme-row.selected .palette::before,
.theme-row.selected .palette::after {
content: '';
position: absolute;
left: 0;
right: 0;
border-top: 1px solid var(--fill-3);
}
.theme-row.selected .palette::before {
top: 0;
}
.theme-row.selected .palette::after {
bottom: 0;
}
.palette-cell {
@@ -245,13 +308,20 @@ body {
.field-block {
margin-top: 12px;
position: relative;
}
.field-title-wrap {
width: 100%;
border: 0;
background: transparent;
padding: 0;
display: flex;
align-items: center;
gap: 6px;
margin-bottom: 8px;
cursor: pointer;
text-align: left;
}
.field-title-wrap h3 {
@@ -261,17 +331,54 @@ body {
}
.expand-icon {
width: 16px;
height: 16px;
width: 20px;
height: 20px;
}
.column-list {
position: relative;
--connector-x: 10px;
--icon-left: 20px;
--row-height: 32px;
--connector-top-offset: -6px;
}
/* 展开后显示分类到列表项的树状连线,严格限制到首尾项中线。 */
.column-list::before {
content: '';
position: absolute;
left: var(--connector-x);
top: var(--connector-top-offset);
bottom: calc(var(--row-height) / 2);
border-left: 1px solid var(--fill-4);
}
.column-row {
position: relative;
display: flex;
align-items: center;
gap: 8px;
border-bottom: 1px solid var(--fill-4);
height: 32px;
padding-bottom: 6px;
padding-left: var(--icon-left);
}
.column-row::before {
content: '';
position: absolute;
left: var(--connector-x);
top: calc(50% - 0.5px);
width: calc(var(--icon-left) - var(--connector-x));
border-top: 1px solid var(--fill-4);
}
.column-row::after {
content: '';
position: absolute;
left: var(--icon-left);
right: 0;
bottom: 0;
border-top: 1px solid var(--fill-4);
}
.column-icon {
@@ -330,8 +437,82 @@ body {
font-size: 12px;
}
.preview-controls select,
.preview-controls input {
.preview-controls .slider-label {
align-items: center;
color: #000;
font-size: 14px;
}
.slider-track-wrap {
position: relative;
width: 130px;
height: 18px;
}
.slider-input {
width: 100%;
height: 18px;
margin: 0;
background: transparent;
-webkit-appearance: none;
appearance: none;
}
.slider-input::-webkit-slider-runnable-track {
height: 4px;
border-radius: 999px;
background: linear-gradient(
to right,
#8552a1 0,
#8552a1 var(--slider-percent, 0%),
#d9d9d9 var(--slider-percent, 0%),
#d9d9d9 100%
);
}
.slider-input::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 18px;
height: 18px;
border-radius: 50%;
border: 1px solid #d9d9d9;
background: #fff;
margin-top: -7px;
}
.slider-input::-moz-range-track {
height: 4px;
border-radius: 999px;
background: #d9d9d9;
}
.slider-input::-moz-range-thumb {
width: 18px;
height: 18px;
border-radius: 50%;
border: 1px solid #d9d9d9;
background: #fff;
}
.slider-input::-moz-range-progress {
height: 4px;
border-radius: 999px;
background: #8552a1;
}
.slider-value {
position: absolute;
top: -13px;
transform: translateX(-50%);
font-size: 10px;
line-height: 1;
color: var(--primary-6);
white-space: nowrap;
pointer-events: none;
}
.preview-controls select {
accent-color: var(--primary-7);
}