// ============================================================ // 空主题预设占位(stub) // // 在 themeConfig.overrideRemote.source === 'remote-only' 模式下, // style_color.js 会被 webpack.NormalModuleReplacementPlugin 替换为这个 stub. // // 目的: 主包不再包含 8 个完整 preset (~80KB), 只保留最小 emergency fallback // (~5KB, 仅 1 个 default preset 的核心 token). // // 设计要点: // 1) 导出 default 对象, 结构与 style_color.js 一致: { 'default': { ... } } // 2) 包含最关键的 token(main_color, aux_color, bg_color 等), // 保证 themeColorSet 能写入基础 CSS 变量,首屏不白屏 // 3) 缺失的 token 由远端 /api/theme/presets 异步补齐,补齐前 var() 解析失败 // 时浏览器会回退到 SCSS 的 fallback 值(uni-app H5 已做 rpx→px) // 4) 其他 7 个 preset 完全由远端提供,本地不打包 // 5) 失败兜底: 远端不可用时, 切到非 default preset 会落到 default 的样式 // // token 数量统计: 8 preset × ~50 token = ~400 token. 完整 80KB. // 1 preset × ~50 token = ~5KB. 节省 ~94%. // ============================================================ export default { 'default': { name: 'default', main_color: '#F4391c', aux_color: '#F7B500', bg_color: '#FF4646', bg_color_shallow: '#FF4646', promotion_color: '#FF4646', promotion_aux_color: '#F7B500', main_color_shallow: '#FFF4F4', price_color: 'rgb(252,82,39)', btn_text_color: '#FFFFFF', goods_price: 'rgb(252,82,39,1)', promotion_tag: '#FF4646', goods_card_bg: '#201A18', goods_card_bg_shallow: '#7C7878', goods_card_color: '#FFD792', goods_coupon: '#FC5227', goods_cart_num_corner: '#FC5227', goods_btn_color: '#FF4646', goods_btn_color_shallow: '#F7B500', pintuan_label_bg: '#F7B500', pintuan_label_color: '#FFFFFF', pintuan_color: '#FA6400', pintuan_promotion_color: '#FA3A1D', pintuan_promotion_aux_color: '#FD9A01', super_member_start_bg: '#7c7878', super_member_end_bg: '#201a18', super_member_start_text_color: '#FFDBA6', super_member_end_text_color: '#FFEBCA', bargain_promotion_color: '#F0353E', bargain_promotion_aux_color: '#FD9A01', seckill_promotion_color: '#F83530', seckill_promotion_aux_color: '#FD9A01', giftcard_promotion_color: '#FF3369', giftcard_promotion_aux_color: '#F7B500', groupby_promotion_color: '#E64136', groupby_promotion_aux_color: '#F7B500', hover_nav_bg_color: '#FFFC', hover_nav_text_color: '#000', hover_nav_font_size: '36rpx', // 悬浮按钮内文字/图标字号(后台可自定义, 默认与图标 36rpx 对齐) hover_nav_lang_font_size: '36rpx', // 语言按钮内文字字号基准(文字实际按 0.667 缩放) hover_nav_kefu_font_size: '36rpx', // 客服按钮内图标/emoji字号基准 hover_nav_phone_font_size: '36rpx', // 电话按钮内图标字号基准 // ===== DIY 分类页字号 token ===== diy_category_tree_select_size: '28rpx', diy_category_tree_normal_size: '20rpx', diy_category_item_title_size: '26rpx', diy_category_item_goods_title_size:'28rpx', diy_category_item_name_size: '24rpx', diy_category_item_goods_name_size:'28rpx', diy_category_item_goods_tag_size: '22rpx', diy_category_item_consult_now_size:'26rpx', diy_category_item_consult_now_bg: '#FF4646', diy_category_item_consult_now_text: '#FFFFFF', diy_category_item_consult_now_padding: '12rpx 30rpx', diy_category_item_consult_now_radius: '40rpx', diy_category_item_consult_now_weight: '500', diy_category_item_consult_now_line_height:'1.2', diy_category_item_consult_now_text_align: 'center', diy_category_item_consult_now_white_space:'nowrap', diy_category_item_consult_now_display: 'inline-block', // ===== DIY 分类页 - 商品卡 token ===== diy_category_item_goods_name_line_height:1.3, diy_category_item_goods_name_margin_top: '20rpx', diy_category_item_discount_price_weight: 'bold', diy_category_item_discount_price_line_height: 1, diy_category_item_discount_price_margin_top: '16rpx', diy_category_item_pro_info_margin_top: '16rpx', diy_category_item_delete_price_size: '24rpx', diy_category_item_delete_price_line_height: 1, diy_category_item_delete_price_text_decoration:'line-through', diy_category_item_member_price_tag_width: '60rpx', diy_category_item_member_price_tag_height: '28rpx', diy_category_item_member_price_tag_line_height: 1, diy_category_item_member_price_tag_margin_left: '6rpx', diy_category_item_info_wrap_padding: '0 20rpx', diy_category_item_info_wrap_margin_top: '12rpx', diy_category_item_footer_wrap_display: 'flex', diy_category_item_footer_wrap_justify_content: 'space-between', diy_category_item_footer_wrap_align_items: 'normal', diy_category_item_footer_wrap_margin_top: 0, diy_category_item_price_wrap_display: 'block', diy_category_item_price_wrap_align_items: 'normal', diy_category_item_price_wrap_flex_wrap: 'nowrap', diy_category_item_price_wrap_justify_content: 'normal', diy_category_item_price_wrap_margin_top: 0, diy_category_item_name_wrap_flex: '1', diy_category_item_consult_now_wrap_display: 'flex', diy_category_item_consult_now_wrap_justify_content:'flex-end', diy_category_item_consult_now_wrap_margin_top: 'auto', diy_category_item_consult_now_wrap_padding_top: '10rpx', diy_category_item_color_tip_color: '#909399', diy_category_item_price_font_weight: 500, // ===== 营销 token(全 8 preset 一致) ===== pintuan_label_grad_start: '#ffbd5b', pintuan_label_grad_end: '#fd882e', pintuan_avatar_border: '#ff3d3d', pintuan_success_start: '#3edb73', pintuan_success_end: '#1db576', bargain_promo_shallow: '#ffeadb', seckill_price_shallow: '#fcecd7', seckill_price_start: '#fdbe6c', seckill_discount_start: '#ff5f17', seckill_discount_end: '#fe2f18', member_card_gold_start: '#E3B66B', member_card_gold_end: '#F7DAA5', member_icon_grad_start: '#814635', member_icon_grad_end: '#3A221B', balance_page_bg_start: '#FE7849', balance_page_bg_end: '#FF1959', point_page_bg_start: '#FE7849', point_page_bg_end: '#FF1959', point_promo_start: '#F8F8F8', point_promo_end: '#E74A32', point_item_grad_start: '#F4402B', point_item_grad_end: '#FD7C40', invite_grad_start: '#ff2440', invite_grad_end: '#ff7b7b', promote_grad_start: '#ffe2ac', promote_grad_end: '#fdc174', fenxiao_withdraw_start: '#ff3c29', fenxiao_withdraw_end: '#ff6f29', level_1_grad_start: '#9BA7B1', level_1_grad_end: '#D3DEE6', level_2_grad_start: '#F57E2A', level_2_grad_end: '#FAD494', level_3_grad_start: '#F85151', level_3_grad_end: '#FF9999', level_4_grad_start: '#78B8B4', level_4_grad_end: '#AFE6E2', level_5_grad_start: '#4DA1E1', level_5_grad_end: '#58CBF0', level_6_grad_start: '#81C636', level_6_grad_end: '#D1F677', level_7_grad_start: '#6D7279', level_7_grad_end: '#A5AAB0', level_8_grad_start: '#866DDB', level_8_grad_end: '#D49BFE', level_9_grad_start: '#f1c74e', level_9_grad_end: '#f7dc81', level_10_grad_start: '#418CCF', level_10_grad_end: '#9CC6F1', } // 其他 7 个 preset (green/blue/pink/gold/purple/yellow/black) // 全部由远端 /api/theme/presets 异步提供 // 远端拉取前切到非 default preset,会回退到 default 样式 // 注: 历史曾尝试添加 'red' preset, 但前端 style_color.js 从未定义, 已在 // config-external.js themeList 中移除以保持一致性 };