@import '../../style/theme.less'; page { background-color: @bg-page; } .lt-page { min-height: 100vh; padding: 0 @page-padding-x; padding-bottom: calc(200rpx + env(safe-area-inset-bottom)); box-sizing: border-box; } .lt-main { padding-top: 24rpx; display: flex; flex-direction: column; gap: @section-gap; } /* ===== 预览卡 ===== */ .lt-preview-wrap { position: relative; } .lt-preview-card { background: @bg-white; border-radius: @radius; box-shadow: @shadow; padding: 48rpx @page-padding-inner-x 32rpx; border: @border; box-sizing: border-box; display: flex; flex-direction: column; align-items: stretch; } .lt-preview-kicker { display: block; text-align: center; font-size: 22rpx; font-weight: 700; color: @text-gray; letter-spacing: 0.12em; text-transform: uppercase; margin-bottom: 24rpx; } .lt-canvas-wrap { display: flex; justify-content: center; align-items: center; min-height: 400rpx; background: @bg-gray; border-radius: @radius-sm; border: 2rpx dashed rgba(50, 46, 37, 0.12); overflow: hidden; } .lt-canvas { max-width: 100%; border-radius: @radius-sm; box-shadow: @shadow; } /* ===== 参数面板 ===== */ .lt-params { background: @bg-header; border-radius: @radius; padding: 40rpx @page-padding-inner-x; box-sizing: border-box; display: flex; flex-direction: column; gap: 40rpx; border: @border; box-shadow: @shadow; } .lt-params-head { display: flex; flex-direction: row; align-items: center; gap: 12rpx; } .lt-params-emoji { font-size: 36rpx; line-height: 1; } .lt-params-title { font-size: @fs-section-head-title; font-weight: 700; color: @text-title; letter-spacing: @ls-nav-title; } .lt-field-label { display: block; font-size: 26rpx; font-weight: 700; color: @text-secondary; margin-bottom: 16rpx; margin-left: 4rpx; } /* ===== 练习类型:2×2 网格选择器 ===== */ .lt-mode-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 16rpx; } .lt-mode-item { display: flex; align-items: center; justify-content: center; padding: 24rpx 16rpx; border-radius: @radius-sm; background: @bg-white; border: 2rpx solid rgba(50, 46, 37, 0.1); box-shadow: 0 2rpx 8rpx rgba(50, 46, 37, 0.04); transition: all 0.2s ease; } .lt-mode-item--active { background: @brand; border-color: rgba(255, 215, 9, 0.55); box-shadow: @shadow; } .lt-mode-item__text { font-size: 26rpx; font-weight: 600; color: @text-secondary; line-height: 1.35; text-align: center; } .lt-mode-item--active .lt-mode-item__text { color: @text-selected-btn; font-weight: 700; } /* ===== 字母选择网格:7 列 ===== */ .lt-letter-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 12rpx; } .lt-letter-cell { aspect-ratio: 1; display: flex; align-items: center; justify-content: center; border-radius: @radius-sm; background: @bg-white; border: 2rpx solid rgba(50, 46, 37, 0.1); box-shadow: 0 2rpx 8rpx rgba(50, 46, 37, 0.04); transition: all 0.15s ease; } .lt-letter-cell--active { background: @brand; border-color: rgba(255, 215, 9, 0.55); box-shadow: @shadow; transform: scale(1.05); } .lt-letter-text { font-size: 32rpx; font-weight: 700; color: @text-secondary; } .lt-letter-cell--active .lt-letter-text { color: @text-selected-btn; } /* ===== 大小写切换 ===== */ .lt-chip-row { display: flex; flex-direction: row; gap: 16rpx; } .lt-chip { flex: 1; text-align: center; padding: 24rpx 20rpx; font-size: 28rpx; font-weight: 600; color: @text-secondary; background: @bg-white; border-radius: @radius-sm; border: 2rpx solid rgba(50, 46, 37, 0.1); box-shadow: 0 2rpx 8rpx rgba(50, 46, 37, 0.04); } .lt-chip--active { background: @brand; color: @text-selected-btn; font-weight: 700; border-color: rgba(255, 215, 9, 0.55); box-shadow: @shadow; } /* ===== 换一批(toy-button outlined 覆盖) ===== */ .lt-shuffle-btn { border-width: 6rpx !important; border-color: @bg-header !important; height: 96rpx !important; font-size: 32rpx !important; } .lt-spacer-bottom { height: 24rpx; }