Files
ChowBox/miniapp/pages/fridge-input/fridge-input.wxss
王鹏 802b4ba229 fix: 修复 VoiceController Map.of 兼容性 + ExploreController 参数不匹配
- VoiceController: Map.of() -> Collections.singletonMap() 兼容 Java 8
- ExploreController: 补齐 takeoutService.roll() 缺失的 taste/priceRange/allergies 参数

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-08 20:02:27 +08:00

207 lines
3.8 KiB
Plaintext

/*
* 冰箱盲盒 · 食材输入
*/
.fridge-page {
padding: var(--space-lg);
min-height: 100vh;
}
/* ── 标题 ── */
.title {
font-size: var(--text-headline);
font-weight: 700;
margin-bottom: var(--space-md);
}
/* ── 输入区 ── */
.input-area {
display: flex;
align-items: center;
margin-bottom: var(--space-lg);
}
.ingredient-input {
flex: 1;
height: 88rpx;
background: var(--color-surface);
border-radius: var(--radius-lg);
padding: 0 var(--space-md);
font-size: var(--text-body);
box-shadow: var(--shadow-sm);
margin-right: var(--space-sm);
}
.voice-btn {
width: 88rpx;
height: 88rpx;
display: flex;
align-items: center;
justify-content: center;
background: var(--color-primary);
border-radius: var(--radius-lg);
font-size: 36rpx;
transition: background 0.15s ease;
}
.voice-btn:active {
opacity: 0.8;
}
.voice-btn.recording {
background: #E53935;
animation: voicePulse 0.6s ease-in-out infinite alternate;
}
@keyframes voicePulse {
from { transform: scale(1); }
to { transform: scale(1.08); }
}
/* ── 分区 ── */
.section {
margin-bottom: var(--space-lg);
}
.section-title {
font-size: var(--text-body-sm);
font-weight: 600;
color: var(--color-text-secondary);
margin-bottom: var(--space-sm);
display: flex;
align-items: center;
}
.tag-list {
display: flex;
flex-wrap: wrap;
}
/* ── 常备调料 ── */
.staple-tag {
display: inline-flex;
padding: 8rpx var(--space-md);
border-radius: var(--radius-full);
background: #F5F2EE;
font-size: var(--text-body-sm);
color: var(--color-text-muted);
margin: 4rpx 8rpx;
}
.edit-link {
font-size: var(--text-body-sm);
color: var(--color-primary);
font-weight: 500;
margin-left: 8rpx;
}
/* ── 开盒按钮 ── */
.btn-large {
width: 100%;
height: 100rpx;
font-size: var(--text-body);
margin-top: var(--space-xl);
}
/* ── 调料编辑弹窗 ── */
.modal-mask {
position: fixed;
top: 0; left: 0; right: 0; bottom: 0;
background: rgba(0, 0, 0, 0.45);
z-index: 100;
}
.modal-sheet {
position: fixed;
left: 0; right: 0; bottom: 0;
background: var(--color-surface);
border-radius: var(--radius-lg) var(--radius-lg) 0 0;
padding: var(--space-lg);
padding-bottom: calc(var(--space-lg) + constant(safe-area-inset-bottom));
padding-bottom: calc(var(--space-lg) + env(safe-area-inset-bottom));
z-index: 101;
transform: translateY(100%);
transition: transform 0.3s ease;
}
.modal-sheet.show {
transform: translateY(0);
}
.sheet-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: var(--space-md);
}
.sheet-title {
font-size: var(--text-subtitle);
font-weight: 700;
}
.sheet-close {
font-size: var(--text-body);
color: var(--color-primary);
font-weight: 600;
}
.sheet-input-row {
display: flex;
align-items: center;
margin-bottom: var(--space-md);
}
.sheet-input {
flex: 1;
height: 80rpx;
background: #F7F5F2;
border-radius: var(--radius-md);
padding: 0 var(--space-md);
font-size: var(--text-body);
margin-right: var(--space-sm);
}
.btn-add {
width: 120rpx;
height: 80rpx;
display: flex;
align-items: center;
justify-content: center;
background: var(--color-primary);
color: #FFFFFF;
border-radius: var(--radius-md);
font-size: var(--text-body-sm);
font-weight: 600;
}
.btn-add:active {
opacity: 0.8;
}
.sheet-tags {
display: flex;
flex-wrap: wrap;
max-height: 360rpx;
overflow-y: auto;
}
.sheet-tag {
display: flex;
align-items: center;
padding: 8rpx var(--space-md);
background: #F7F5F2;
border-radius: var(--radius-full);
font-size: var(--text-body-sm);
color: var(--color-text);
margin-right: 12rpx;
margin-bottom: 12rpx;
}
.tag-remove {
margin-left: 8rpx;
font-size: var(--text-caption);
color: var(--color-text-muted);
padding: 2rpx;
}