/* 顶部导航栏 */ .header-row { display: flex; align-items: center; gap: 16rpx; height: 96rpx; padding: 0 16rpx; background: #fff; } .logo-container { width: 96rpx; height: 96rpx; border-radius: 24rpx; overflow: hidden; flex-shrink: 0; } .logo { width: 100%; height: 100%; } .app-title { font-size: 32rpx; font-weight: 600; color: #8552A1; flex-shrink: 0; } .font-size-control { display: flex; align-items: center; flex: 1; gap: 4rpx; /* 改为 2rpx 的 gap,小程序 rpx = 物理像素*2 */ padding: 0 12rpx; } .font-size-icon { width: 24rpx; height: 24rpx; flex-shrink: 0; } .font-slider { flex: 1; height: 4rpx; } .color-picker-btn { width: 48rpx; height: 48rpx; display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .color-icon { width: 48rpx; height: 48rpx; } /* 输入栏和导出按钮 */ .input-row { display: flex; align-items: center; gap: 6rpx; height: 78rpx; padding: 0 16rpx; margin-top: 16rpx; } .text-input-container { flex: 1; height: 100%; background: #F7F8FA; border-radius: 12rpx; padding: 0 6rpx; } .text-input { width: 100%; height: 100%; font-size: 20rpx; color: #4E5969; } .export-buttons { display: flex; align-items: center; gap: 12rpx; height: 100%; background: #fff; border: 1rpx solid #E5E6EB; border-radius: 10rpx; padding: 5rpx 10rpx; } .export-btn { width: 62rpx; height: 62rpx; display: flex; align-items: center; justify-content: center; } .export-icon { width: 100%; height: 100%; } /* 效果预览区域 */ .preview-section { flex: 1; display: flex; flex-direction: column; margin-top: 16rpx; padding: 0 16rpx; border: 1rpx solid #f7e0e0; border-radius: 12rpx; background: #fff; overflow: hidden; } .section-title { padding: 12rpx 0; font-size: 28rpx; font-weight: 400; color: #000; } .preview-list { flex: 1; min-height: 0; } .preview-item { display: flex; flex-direction: column; gap: 6rpx; margin-bottom: 6rpx; } .preview-header { display: flex; align-items: center; gap: 4rpx; padding-bottom: 4rpx; border-bottom: 0.5rpx solid #C9CDD4; } .font-icon { width: 16rpx; height: 16rpx; flex-shrink: 0; } .font-name-text { flex: 1; font-size: 20rpx; color: #86909C; } .preview-checkbox { width: 14rpx; height: 14rpx; } .checkbox-wrapper { width: 100%; height: 100%; border: 1rpx solid #C9CDD4; border-radius: 3rpx; display: flex; align-items: center; justify-content: center; box-sizing: border-box; } .checkbox-wrapper.checked { border-color: #9B6BC2; background: #9B6BC2; } .checkbox-icon { width: 100%; height: 100%; } .preview-content { background: transparent; padding: 4rpx 0; min-height: 80rpx; display: flex; align-items: center; justify-content: center; } .preview-image { width: 100%; } .preview-loading { font-size: 24rpx; color: #86909C; } .preview-empty { text-align: center; padding: 80rpx 0; font-size: 24rpx; color: #C9CDD4; } /* 字体选择和已收藏字体 */ .bottom-section { display: flex; gap: 16rpx; height: 600rpx; margin-top: 16rpx; padding: 0 16rpx; } .font-selection, .favorite-selection { flex: 1; display: flex; flex-direction: column; border: 1rpx solid #f7e0e0; border-radius: 16rpx; background: #fff; padding: 9rpx; overflow: hidden; } /* 搜索相关样式 */ .selection-header { display: flex; align-items: center; gap: 8rpx; padding: 4rpx 0; } .search-container { flex: 1; display: flex; align-items: center; gap: 6rpx; background: #F7F8FA; border-radius: 8rpx; padding: 4rpx 12rpx; height: 56rpx; } .search-icon { width: 28rpx; height: 28rpx; flex-shrink: 0; opacity: 0.5; } .search-input { flex: 1; font-size: 22rpx; color: #4E5969; } .search-toggle { width: 56rpx; height: 56rpx; display: flex; align-items: center; justify-content: center; flex-shrink: 0; background: #F7F8FA; border-radius: 8rpx; } .font-tree { flex: 1; min-height: 0; } .font-category { margin-bottom: 14rpx; } .category-header { display: flex; align-items: center; gap: 8rpx; margin-bottom: 14rpx; } .expand-icon { width: 20rpx; height: 20rpx; transition: transform 0.3s; flex-shrink: 0; } .category-name { font-size: 21rpx; font-weight: 500; color: #000; } .font-list { display: flex; flex-direction: column; gap: 0; } .font-item { display: flex; align-items: center; gap: 9rpx; padding-bottom: 9rpx; border-bottom: 1rpx solid #C9CDD4; margin-bottom: 9rpx; } .font-item-icon { width: 18rpx; height: 18rpx; flex-shrink: 0; } .font-item-name { flex: 1; font-size: 20rpx; color: #86909C; } .font-item-actions { display: flex; align-items: center; gap: 9rpx; } .font-checkbox { width: 21rpx; height: 21rpx; } .checkbox-icon-sm { width: 100%; height: 100%; } .favorite-btn { width: 21rpx; height: 21rpx; } .favorite-icon { width: 100%; height: 100%; } .empty-favorites { text-align: center; padding: 60rpx 0; font-size: 24rpx; color: #C9CDD4; } /* 颜色选择器弹窗 */ .color-picker-modal { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 1000; } .color-picker-content { background: #fff; border-radius: 20rpx; padding: 40rpx; width: 80%; } .color-palette { display: flex; flex-wrap: wrap; gap: 20rpx; margin-bottom: 30rpx; } .color-dot { width: 60rpx; height: 60rpx; border-radius: 50%; box-sizing: border-box; } .color-input-row { display: flex; align-items: center; gap: 16rpx; } .color-input { flex: 1; height: 60rpx; background: #F7F8FA; border-radius: 10rpx; padding: 0 16rpx; font-size: 28rpx; } /* 画布 */ .hidden-canvas { position: fixed; width: 1px; height: 1px; left: -9999px; top: -9999px; }