feat(ui): 特色功能独立为/featured页面并加入导航;生成页筛选状态、移动端抽屉、快速开始与示例需求等体验优化

Made-with: Cursor
This commit is contained in:
renjianbo
2026-04-03 12:15:30 +08:00
parent 94cbc7f7c0
commit 9a3f15f3e2
6 changed files with 1359 additions and 822 deletions

View File

@@ -174,6 +174,59 @@ def get_template_icon(category):
}
return icons.get(category, 'fa-star') # 默认返回星星图标
def build_sample_input_text(template):
"""选择模板时填入输入框的示例需求文案(不自动调用 LLM"""
name = (template.name or '模板').strip()
desc = (template.description or '').strip()
if desc:
return (
f"我的需求背景:\n{desc}\n\n"
f"请结合「{name}」的能力,帮我生成专业提示词。可补充:受众、语气、篇幅与输出格式。"
)
return (
f"我想使用「{name}」完成以下任务:\n\n"
f"【请描述具体目标、约束条件、参考材料与期望的输出形式】"
)
def select_quick_start_templates(template_list, limit=5):
"""从当前列表中选取若干模板用于「快速开始」"""
pool = list(template_list or [])
if not pool:
return []
def score(t):
s = 0
if getattr(t, 'is_default', False):
s += 100
if getattr(t, 'is_hot', False):
s += 50
if getattr(t, 'is_recommended', False):
s += 40
if getattr(t, 'is_featured', False):
s += 30
return s
pool.sort(key=lambda t: (-score(t), (t.name or '')))
out = []
seen = set()
for t in pool:
if t.id in seen:
continue
seen.add(t.id)
out.append(t)
if len(out) >= limit:
break
return out
@main_bp.route('/featured')
def featured_hub():
"""特色功能:更多 AI 应用入口(二级页面)"""
return render_template('featured_hub.html')
@main_bp.route('/', methods=['GET', 'POST'])
def index():
form = PromptForm()
@@ -183,6 +236,8 @@ def index():
# 默认只显示"通用"分类的模板,提升加载性能
templates = PromptTemplate.query.filter_by(category="通用").all()
sample_inputs = {t.id: build_sample_input_text(t) for t in templates}
quick_start_templates = select_quick_start_templates(templates, 5)
# 获取所有可用的分类选项(基于所有模板)
industries = sorted(set(t.industry for t in all_templates if t.industry))
@@ -207,7 +262,9 @@ def index():
return render_template('generate.html', form=form, prompt=None, templates=templates,
get_template_icon=get_template_icon, industries=industries,
professions=professions, categories=categories,
sub_categories=sub_categories)
sub_categories=sub_categories,
sample_inputs=sample_inputs,
quick_start_templates=quick_start_templates)
# 调用LLM生成提示词
generated_text = generate_with_llm(input_text, template_id)
@@ -218,7 +275,9 @@ def index():
return render_template('generate.html', form=form, prompt=None, templates=templates,
get_template_icon=get_template_icon, industries=industries,
professions=professions, categories=categories,
sub_categories=sub_categories)
sub_categories=sub_categories,
sample_inputs=sample_inputs,
quick_start_templates=quick_start_templates)
# 获取搜索状态
search_state = request.form.get('search_state', '')
@@ -250,7 +309,9 @@ def index():
get_template_icon=get_template_icon, industries=industries,
professions=professions, categories=categories,
sub_categories=sub_categories, selected_template_id=template_id,
search_state=search_state)
search_state=search_state,
sample_inputs=sample_inputs,
quick_start_templates=quick_start_templates)
except Exception as e:
current_app.logger.error(f"生成提示词时发生错误: {str(e)}")
@@ -259,11 +320,15 @@ def index():
return render_template('generate.html', form=form, prompt=None, templates=templates,
get_template_icon=get_template_icon, industries=industries,
professions=professions, categories=categories,
sub_categories=sub_categories)
sub_categories=sub_categories,
sample_inputs=sample_inputs,
quick_start_templates=quick_start_templates)
return render_template('generate.html', form=form, prompt=None, templates=templates,
get_template_icon=get_template_icon, industries=industries,
professions=professions, categories=categories,
sub_categories=sub_categories)
sub_categories=sub_categories,
sample_inputs=sample_inputs,
quick_start_templates=quick_start_templates)
@main_bp.route('/api/templates/<category>')
def get_templates_by_category(category):
@@ -284,14 +349,22 @@ def get_templates_by_category(category):
'industry': template.industry,
'profession': template.profession,
'sub_category': template.sub_category,
'system_prompt': template.system_prompt
'system_prompt': template.system_prompt,
'sample_input': build_sample_input_text(template),
}
template_list.append(template_dict)
qs = select_quick_start_templates(templates, 5)
quick_start = [
{'id': t.id, 'name': t.name, 'sample_input': build_sample_input_text(t)}
for t in qs
]
return jsonify({
'success': True,
'templates': template_list,
'count': len(template_list)
'count': len(template_list),
'quick_start': quick_start,
})
@main_bp.route('/prompt/<int:prompt_id>')

View File

@@ -580,6 +580,10 @@
<i class="fas fa-home"></i>
<span>首页</span>
</a>
<a href="{{ url_for('main.featured_hub') }}" class="nav-link" data-tooltip="特色功能">
<i class="fas fa-star"></i>
<span>特色功能</span>
</a>
<!-- 用户功能 -->
<div class="user-menu" id="userMenu">

View File

@@ -0,0 +1,20 @@
{% extends "base.html" %}
{% block title %}特色功能{% endblock %}
{% block extra_css %}
<style>
{% include 'partials/featured_hub_styles.html' %}
</style>
{% endblock %}
{% block content %}
<div class="featured-hub-page">
<div class="d-flex justify-content-end mb-3">
<a href="{{ url_for('main.index') }}" class="btn btn-outline-primary btn-sm">
<i class="fas fa-arrow-left"></i> 返回提示词生成
</a>
</div>
{% include 'partials/featured_functions_grid.html' %}
</div>
{% endblock %}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,385 @@
<!-- 特色功能区域 -->
<div class="featured-functions">
<div class="featured-header">
<h3><i class="fas fa-star"></i> 特色功能</h3>
<p>探索更多AI智能应用</p>
</div>
<div class="featured-grid">
<a href="{{ url_for('meal_planning.meal_planning_page') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-utensils"></i>
</div>
<div class="featured-content">
<h4>智能饭菜规划</h4>
<p>AI智能推荐营养搭配让每一餐都健康美味</p>
<span class="featured-badge">热门</span>
</div>
</a>
<a href="{{ url_for('meal_planning.meal_planning_history') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-calendar-alt"></i>
</div>
<div class="featured-content">
<h4>我的饭菜规划</h4>
<p>查看和管理已保存的饭菜规划历史</p>
<span class="featured-badge">历史</span>
</div>
</a>
<a href="{{ url_for('poetry.poetry_page') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-feather-alt"></i>
</div>
<div class="featured-content">
<h4>古诗词解析</h4>
<p>深度解析古诗词意境,感受中华文化之美</p>
<span class="featured-badge">文化</span>
</div>
</a>
<a href="{{ url_for('poetry.poetry_favorites') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-heart"></i>
</div>
<div class="featured-content">
<h4>古诗词收藏</h4>
<p>收藏喜爱的古诗词,建立个人文化宝库</p>
<span class="featured-badge">收藏</span>
</div>
</a>
<a href="{{ url_for('weekly_report.report_page') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-file-alt"></i>
</div>
<div class="featured-content">
<h4>智能周报生成</h4>
<p>输入工作要点,一键生成规范周报/日报</p>
<span class="featured-badge">办公</span>
</div>
</a>
<a href="{{ url_for('travel_planning.travel_page') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-plane-departure"></i>
</div>
<div class="featured-content">
<h4>旅行攻略规划</h4>
<p>根据目的地与天数AI 生成行程与实用建议</p>
<span class="featured-badge">出行</span>
</div>
</a>
<a href="{{ url_for('meeting_minutes.minutes_page') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-clipboard-list"></i>
</div>
<div class="featured-content">
<h4>会议纪要整理</h4>
<p>粘贴会议转写或要点,一键生成结构化会议纪要</p>
<span class="featured-badge">办公</span>
</div>
</a>
<a href="{{ url_for('resume_optimization.optimization_page') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-file-alt"></i>
</div>
<div class="featured-content">
<h4>简历/求职信优化</h4>
<p>润色简历或根据岗位生成针对性求职信</p>
<span class="featured-badge">求职</span>
</div>
</a>
<a href="{{ url_for('prompt_optimization.optimization_page') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-magic"></i>
</div>
<div class="featured-content">
<h4>提示词优化</h4>
<p>使用通用模板,将普通描述转换为专业 AI 提示词</p>
<span class="featured-badge">通用</span>
</div>
</a>
<a href="{{ url_for('smart_prompt_optimization.optimization_page') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-wand-magic-sparkles"></i>
</div>
<div class="featured-content">
<h4>智能提示词优化</h4>
<p>根据需求描述生成优化模板,再按模板优化您的提示词</p>
<span class="featured-badge">智能</span>
</div>
</a>
<a href="{{ url_for('expert_generate_2.expert_generate_2_page') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-brain"></i>
</div>
<div class="featured-content">
<h4>智能提示词优化2号专家</h4>
<p>与专家模式一致:需求分析 + 领域专家生成高质量提示词</p>
<span class="featured-badge">专家</span>
</div>
</a>
<a href="{{ url_for('expert_generate_3.expert_generate_3_page') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-brain"></i>
</div>
<div class="featured-content">
<h4>智能提示词优化3号专家</h4>
<p>与专家模式一致:需求分析 + 领域专家生成,含历史记录</p>
<span class="featured-badge">专家</span>
</div>
</a>
<a href="{{ url_for('placeholder.book_notes') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-book-open"></i></div>
<div class="featured-content">
<h4>读书笔记/摘要</h4>
<p>生成摘要、金句、思维导图式大纲或读后感</p>
<span class="featured-badge">文化</span>
</div>
</a>
<a href="{{ url_for('placeholder.parenting') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-baby"></i></div>
<div class="featured-content">
<h4>育儿/教育助手</h4>
<p>育儿建议、睡前故事、简单科普或习题讲解</p>
<span class="featured-badge">教育</span>
</div>
</a>
<a href="{{ url_for('placeholder.fitness') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-dumbbell"></i></div>
<div class="featured-content">
<h4>健身/运动计划</h4>
<p>根据目标与场地生成一周训练计划与动作要点</p>
<span class="featured-badge">健康</span>
</div>
</a>
<a href="{{ url_for('placeholder.contract') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-file-contract"></i></div>
<div class="featured-content">
<h4>合同/条款解读</h4>
<p>人话版要点、风险提示与建议关注条款</p>
<span class="featured-badge">法律</span>
</div>
</a>
<a href="{{ url_for('placeholder.xiaohongshu') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-video"></i></div>
<div class="featured-content">
<h4>小红书/短视频脚本</h4>
<p>生成标题、分镜文案、口播稿</p>
<span class="featured-badge">创作</span>
</div>
</a>
<a href="{{ url_for('placeholder.interview') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-comments"></i></div>
<div class="featured-content">
<h4>面试模拟/问答准备</h4>
<p>按岗位类型出题并给参考答案与点评</p>
<span class="featured-badge">求职</span>
</div>
</a>
<a href="{{ url_for('placeholder.holiday') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-gift"></i></div>
<div class="featured-content">
<h4>节日/祝福语生成</h4>
<p>祝福语、贺卡文案、红包配文</p>
<span class="featured-badge">生活</span>
</div>
</a>
<a href="{{ url_for('placeholder.retrospective') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-sync-alt"></i></div>
<div class="featured-content">
<h4>个人复盘/周复盘</h4>
<p>结构化复盘与下周重点</p>
<span class="featured-badge">成长</span>
</div>
</a>
<a href="{{ url_for('placeholder.todo_schedule') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-tasks"></i></div>
<div class="featured-content"><h4>待办/日程整理</h4><p>零散待办生成按优先级与日期的日程清单</p><span class="featured-badge">效率</span></div>
</a>
<a href="{{ url_for('placeholder.email_polish') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-envelope"></i></div>
<div class="featured-content"><h4>邮件润色/回复建议</h4><p>草稿或要点生成得体邮件回复</p><span class="featured-badge">办公</span></div>
</a>
<a href="{{ url_for('placeholder.speech_draft') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-microphone"></i></div>
<div class="featured-content"><h4>演讲稿/汇报稿</h4><p>根据主题与场合生成演讲稿或汇报大纲</p><span class="featured-badge">办公</span></div>
</a>
<a href="{{ url_for('placeholder.naming') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-tag"></i></div>
<div class="featured-content"><h4>取名/品牌名</h4><p>公司名、产品名或宝宝取名建议</p><span class="featured-badge">创意</span></div>
</a>
<a href="{{ url_for('placeholder.recipe') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-utensil-spoon"></i></div>
<div class="featured-content"><h4>菜谱/做法</h4><p>根据食材或菜名生成详细做法</p><span class="featured-badge">生活</span></div>
</a>
<a href="{{ url_for('placeholder.study_plan') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-graduation-cap"></i></div>
<div class="featured-content"><h4>学习计划/备考规划</h4><p>生成学习计划与复习建议</p><span class="featured-badge">教育</span></div>
</a>
<a href="{{ url_for('placeholder.mood_journal') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-heart"></i></div>
<div class="featured-content"><h4>情绪日记/心理疏导</h4><p>结构化记录或轻疏导建议</p><span class="featured-badge">成长</span></div>
</a>
<a href="{{ url_for('placeholder.english_learn') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-language"></i></div>
<div class="featured-content"><h4>英语学习/改错</h4><p>润色、改错与学习建议</p><span class="featured-badge">教育</span></div>
</a>
<a href="{{ url_for('placeholder.code_comment') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-code"></i></div>
<div class="featured-content"><h4>代码注释/解释</h4><p>生成注释或通俗解释</p><span class="featured-badge">技术</span></div>
</a>
<a href="{{ url_for('placeholder.prd_doc') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-file-alt"></i></div>
<div class="featured-content"><h4>产品/需求文档</h4><p>根据要点生成 PRD 或需求描述</p><span class="featured-badge">办公</span></div>
</a>
<a href="{{ url_for('placeholder.social_copy') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-share-alt"></i></div>
<div class="featured-content"><h4>朋友圈/微博文案</h4><p>根据场景生成短文案、配文</p><span class="featured-badge">生活</span></div>
</a>
<a href="{{ url_for('placeholder.story_outline') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-book"></i></div>
<div class="featured-content"><h4>剧本/故事大纲</h4><p>根据题材生成梗概或分集大纲</p><span class="featured-badge">创作</span></div>
</a>
<a href="{{ url_for('placeholder.data_insight') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-chart-line"></i></div>
<div class="featured-content"><h4>数据分析解读</h4><p>数据或结论生成通俗解读与建议</p><span class="featured-badge">办公</span></div>
</a>
<a href="{{ url_for('placeholder.competitor_analysis') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-balance-scale"></i></div>
<div class="featured-content"><h4>竞品分析框架</h4><p>生成竞品分析维度与模板</p><span class="featured-badge">办公</span></div>
</a>
<a href="{{ url_for('placeholder.news_summary') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-newspaper"></i></div>
<div class="featured-content"><h4>新闻/资讯摘要</h4><p>长文生成摘要与要点</p><span class="featured-badge">效率</span></div>
</a>
<a href="{{ url_for('placeholder.translate_polish') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-exchange-alt"></i></div>
<div class="featured-content"><h4>翻译润色</h4><p>中英互译并润色</p><span class="featured-badge">办公</span></div>
</a>
<a href="{{ url_for('placeholder.contract_draft') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-file-signature"></i></div>
<div class="featured-content"><h4>合同/协议起草</h4><p>根据类型生成合同模板或条款建议</p><span class="featured-badge">法律</span></div>
</a>
<a href="{{ url_for('placeholder.event_planning') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-calendar-check"></i></div>
<div class="featured-content"><h4>活动策划方案</h4><p>策划框架与执行清单</p><span class="featured-badge">办公</span></div>
</a>
<a href="{{ url_for('placeholder.year_summary') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-award"></i></div>
<div class="featured-content"><h4>个人年度总结</h4><p>年度大事与数据生成总结报告</p><span class="featured-badge">成长</span></div>
</a>
<a href="{{ url_for('placeholder.flash_cards') }}" class="featured-card featured-card-placeholder">
<div class="featured-icon"><i class="fas fa-layer-group"></i></div>
<div class="featured-content"><h4>知识卡片/闪卡</h4><p>根据主题生成问答式学习卡片</p><span class="featured-badge">教育</span></div>
</a>
<a href="{{ url_for('placeholder.placeholder_meeting_agenda') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-list-alt"></i></div><div class="featured-content"><h4>会议议程生成</h4><p>根据议题生成议程与时间分配</p><span class="featured-badge">办公</span></div></a>
<a href="{{ url_for('placeholder.placeholder_todo_calendar') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-calendar-day"></i></div><div class="featured-content"><h4>待办转日历</h4><p>待办转为日历事件描述</p><span class="featured-badge">效率</span></div></a>
<a href="{{ url_for('placeholder.placeholder_email_templates') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-envelope-open-text"></i></div><div class="featured-content"><h4>邮件模板库</h4><p>常用场景邮件模板与改写</p><span class="featured-badge">办公</span></div></a>
<a href="{{ url_for('placeholder.placeholder_weekly_template') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-file-week"></i></div><div class="featured-content"><h4>周报模板</h4><p>按岗位生成周报结构模板</p><span class="featured-badge">办公</span></div></a>
<a href="{{ url_for('placeholder.placeholder_daily_template') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-calendar-day"></i></div><div class="featured-content"><h4>日报模板</h4><p>按岗位生成日报结构模板</p><span class="featured-badge">办公</span></div></a>
<a href="{{ url_for('placeholder.placeholder_work_log') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-clipboard-list"></i></div><div class="featured-content"><h4>工作日志</h4><p>流水记录转结构化工作日志</p><span class="featured-badge">办公</span></div></a>
<a href="{{ url_for('placeholder.placeholder_project_retro') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-redo"></i></div><div class="featured-content"><h4>项目复盘</h4><p>根据项目经过生成复盘框架</p><span class="featured-badge">办公</span></div></a>
<a href="{{ url_for('placeholder.placeholder_okr_draft') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-bullseye"></i></div><div class="featured-content"><h4>OKR 起草</h4><p>根据方向生成 OKR 草案</p><span class="featured-badge">办公</span></div></a>
<a href="{{ url_for('placeholder.placeholder_meeting_invite') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-paper-plane"></i></div><div class="featured-content"><h4>会议邀请函</h4><p>生成会议邀请与议程摘要</p><span class="featured-badge">办公</span></div></a>
<a href="{{ url_for('placeholder.placeholder_leave_request') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-file-invoice"></i></div><div class="featured-content"><h4>请假条/报销单</h4><p>生成请假条或报销说明文案</p><span class="featured-badge">办公</span></div></a>
<a href="{{ url_for('placeholder.placeholder_wrong_questions') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-book-reader"></i></div><div class="featured-content"><h4>错题本整理</h4><p>错题分类与复习建议</p><span class="featured-badge">教育</span></div></a>
<a href="{{ url_for('placeholder.placeholder_knowledge_summary') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-brain"></i></div><div class="featured-content"><h4>知识点总结</h4><p>按章节或主题生成知识点总结</p><span class="featured-badge">教育</span></div></a>
<a href="{{ url_for('placeholder.placeholder_essay_correction') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-pen-fancy"></i></div><div class="featured-content"><h4>作文批改</h4><p>作文批改与修改建议</p><span class="featured-badge">教育</span></div></a>
<a href="{{ url_for('placeholder.placeholder_math_steps') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-square-root-alt"></i></div><div class="featured-content"><h4>数学解题步骤</h4><p>题目生成解题步骤与思路</p><span class="featured-badge">教育</span></div></a>
<a href="{{ url_for('placeholder.placeholder_word_plan') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-spell-check"></i></div><div class="featured-content"><h4>单词记忆计划</h4><p>根据词书或目标生成记忆计划</p><span class="featured-badge">教育</span></div></a>
<a href="{{ url_for('placeholder.placeholder_reading_questions') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-question-circle"></i></div><div class="featured-content"><h4>阅读理解题生成</h4><p>根据文章生成阅读题</p><span class="featured-badge">教育</span></div></a>
<a href="{{ url_for('placeholder.placeholder_speaking_topics') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-comment-dots"></i></div><div class="featured-content"><h4>口语练习话题</h4><p>生成口语话题与参考表达</p><span class="featured-badge">教育</span></div></a>
<a href="{{ url_for('placeholder.placeholder_thesis_outline') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-graduation-cap"></i></div><div class="featured-content"><h4>论文大纲</h4><p>根据题目生成论文大纲</p><span class="featured-badge">教育</span></div></a>
<a href="{{ url_for('placeholder.placeholder_class_notes') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-sticky-note"></i></div><div class="featured-content"><h4>课堂笔记整理</h4><p>零散笔记整理成结构化笔记</p><span class="featured-badge">教育</span></div></a>
<a href="{{ url_for('placeholder.placeholder_exam_tips') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-lightbulb"></i></div><div class="featured-content"><h4>考试押题建议</h4><p>根据考纲生成复习与押题建议</p><span class="featured-badge">教育</span></div></a>
<a href="{{ url_for('placeholder.placeholder_wechat_title') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-heading"></i></div><div class="featured-content"><h4>公众号标题</h4><p>根据正文生成多组标题建议</p><span class="featured-badge">创作</span></div></a>
<a href="{{ url_for('placeholder.placeholder_zhihu_answer') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-quora"></i></div><div class="featured-content"><h4>知乎回答</h4><p>根据问题生成回答大纲或草稿</p><span class="featured-badge">创作</span></div></a>
<a href="{{ url_for('placeholder.placeholder_douyin_copy') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-music"></i></div><div class="featured-content"><h4>抖音文案</h4><p>根据视频内容生成文案与话题</p><span class="featured-badge">创作</span></div></a>
<a href="{{ url_for('placeholder.placeholder_bilibili_desc') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-video"></i></div><div class="featured-content"><h4>B站视频简介</h4><p>生成视频简介与标签建议</p><span class="featured-badge">创作</span></div></a>
<a href="{{ url_for('placeholder.placeholder_podcast_outline') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-podcast"></i></div><div class="featured-content"><h4>播客大纲</h4><p>根据主题生成播客大纲与话题</p><span class="featured-badge">创作</span></div></a>
<a href="{{ url_for('placeholder.placeholder_novel_start') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-book-open"></i></div><div class="featured-content"><h4>小说开篇</h4><p>根据设定生成开篇段落或大纲</p><span class="featured-badge">创作</span></div></a>
<a href="{{ url_for('placeholder.placeholder_poem_create') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-feather-alt"></i></div><div class="featured-content"><h4>诗歌创作</h4><p>根据主题或风格生成短诗</p><span class="featured-badge">创作</span></div></a>
<a href="{{ url_for('placeholder.placeholder_couplet') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-align-center"></i></div><div class="featured-content"><h4>对联生成</h4><p>根据上联或主题生成对联</p><span class="featured-badge">文化</span></div></a>
<a href="{{ url_for('placeholder.placeholder_joke') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-smile"></i></div><div class="featured-content"><h4>段子/笑话</h4><p>根据场景生成轻松段子</p><span class="featured-badge">生活</span></div></a>
<a href="{{ url_for('placeholder.placeholder_slogan') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-quote-right"></i></div><div class="featured-content"><h4>广告语</h4><p>根据产品卖点生成广告语</p><span class="featured-badge">创意</span></div></a>
<a href="{{ url_for('placeholder.placeholder_moving_list') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-truck-moving"></i></div><div class="featured-content"><h4>搬家清单</h4><p>生成搬家待办与打包清单</p><span class="featured-badge">生活</span></div></a>
<a href="{{ url_for('placeholder.placeholder_packing_list') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-suitcase"></i></div><div class="featured-content"><h4>旅行 packing 清单</h4><p>根据目的地与天数生成清单</p><span class="featured-badge">生活</span></div></a>
<a href="{{ url_for('placeholder.placeholder_wedding_list') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-ring"></i></div><div class="featured-content"><h4>婚礼筹备清单</h4><p>生成婚礼筹备事项与时间线</p><span class="featured-badge">生活</span></div></a>
<a href="{{ url_for('placeholder.placeholder_renovation_budget') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-calculator"></i></div><div class="featured-content"><h4>装修预算表</h4><p>根据户型生成预算分类表</p><span class="featured-badge">生活</span></div></a>
<a href="{{ url_for('placeholder.placeholder_pet_plan') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-paw"></i></div><div class="featured-content"><h4>宠物喂养计划</h4><p>根据宠物类型生成喂养与护理建议</p><span class="featured-badge">生活</span></div></a>
<a href="{{ url_for('placeholder.placeholder_plant_care') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-seedling"></i></div><div class="featured-content"><h4>植物养护指南</h4><p>根据植物品种生成养护要点</p><span class="featured-badge">生活</span></div></a>
<a href="{{ url_for('placeholder.placeholder_appliance_guide') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-blender"></i></div><div class="featured-content"><h4>家电选购建议</h4><p>根据需求生成选购维度与建议</p><span class="featured-badge">生活</span></div></a>
<a href="{{ url_for('placeholder.placeholder_insurance_compare') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-shield-alt"></i></div><div class="featured-content"><h4>保险对比解读</h4><p>条款对比与人话解读</p><span class="featured-badge">生活</span></div></a>
<a href="{{ url_for('placeholder.placeholder_finance_plan') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-piggy-bank"></i></div><div class="featured-content"><h4>理财规划建议</h4><p>根据目标生成理财建议框架</p><span class="featured-badge">生活</span></div></a>
<a href="{{ url_for('placeholder.placeholder_expense_category') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-tags"></i></div><div class="featured-content"><h4>记账分类建议</h4><p>流水描述生成分类与标签</p><span class="featured-badge">生活</span></div></a>
<a href="{{ url_for('placeholder.placeholder_diet_tips') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-apple-alt"></i></div><div class="featured-content"><h4>饮食建议</h4><p>根据体质或目标生成饮食建议</p><span class="featured-badge">健康</span></div></a>
<a href="{{ url_for('placeholder.placeholder_sleep_tips') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-moon"></i></div><div class="featured-content"><h4>睡眠改善建议</h4><p>根据情况生成睡眠改善建议</p><span class="featured-badge">健康</span></div></a>
<a href="{{ url_for('placeholder.placeholder_stretch_reminder') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-running"></i></div><div class="featured-content"><h4>久坐提醒/拉伸建议</h4><p>生成拉伸动作与提醒话术</p><span class="featured-badge">健康</span></div></a>
<a href="{{ url_for('placeholder.placeholder_checkup_read') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-notes-medical"></i></div><div class="featured-content"><h4>体检报告解读</h4><p>指标解读与随访建议</p><span class="featured-badge">健康</span></div></a>
<a href="{{ url_for('placeholder.placeholder_medicine_reminder') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-pills"></i></div><div class="featured-content"><h4>用药提醒说明</h4><p>药品说明转简明提醒与注意</p><span class="featured-badge">健康</span></div></a>
<a href="{{ url_for('placeholder.placeholder_symptom_guide') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-stethoscope"></i></div><div class="featured-content"><h4>症状自查引导</h4><p>症状描述生成就医与自查建议</p><span class="featured-badge">健康</span></div></a>
<a href="{{ url_for('placeholder.placeholder_mental_self_test') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-brain"></i></div><div class="featured-content"><h4>心理健康自测</h4><p>生成自测题与解读框架</p><span class="featured-badge">健康</span></div></a>
<a href="{{ url_for('placeholder.placeholder_quit_plan') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-smoking-ban"></i></div><div class="featured-content"><h4>戒烟/戒糖计划</h4><p>生成阶段性计划与替代建议</p><span class="featured-badge">健康</span></div></a>
<a href="{{ url_for('placeholder.placeholder_labor_contract') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-file-contract"></i></div><div class="featured-content"><h4>劳动合同要点</h4><p>合同要点提炼与风险提示</p><span class="featured-badge">法律</span></div></a>
<a href="{{ url_for('placeholder.placeholder_rent_contract') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-home"></i></div><div class="featured-content"><h4>租房合同要点</h4><p>租房合同要点与注意项</p><span class="featured-badge">法律</span></div></a>
<a href="{{ url_for('placeholder.placeholder_iou_template') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-file-invoice-dollar"></i></div><div class="featured-content"><h4>借条/欠条模板</h4><p>根据金额与关系生成借条模板</p><span class="featured-badge">法律</span></div></a>
<a href="{{ url_for('placeholder.placeholder_disclaimer') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-exclamation-triangle"></i></div><div class="featured-content"><h4>免责声明生成</h4><p>根据场景生成免责声明文案</p><span class="featured-badge">法律</span></div></a>
<a href="{{ url_for('placeholder.placeholder_sql_helper') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-database"></i></div><div class="featured-content"><h4>SQL 生成/优化</h4><p>根据需求描述生成或优化 SQL</p><span class="featured-badge">技术</span></div></a>
<a href="{{ url_for('placeholder.placeholder_api_doc') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-code-branch"></i></div><div class="featured-content"><h4>API 文档生成</h4><p>根据接口信息生成文档草稿</p><span class="featured-badge">技术</span></div></a>
<a href="{{ url_for('placeholder.placeholder_regex_gen') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-project-diagram"></i></div><div class="featured-content"><h4>正则表达式生成</h4><p>根据描述生成正则表达式</p><span class="featured-badge">技术</span></div></a>
<a href="{{ url_for('placeholder.placeholder_cli_help') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-terminal"></i></div><div class="featured-content"><h4>命令行帮助</h4><p>命令或报错生成使用说明</p><span class="featured-badge">技术</span></div></a>
<a href="{{ url_for('placeholder.placeholder_error_decode') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-bug"></i></div><div class="featured-content"><h4>错误信息解读</h4><p>报错信息转通俗解释与解决思路</p><span class="featured-badge">技术</span></div></a>
<a href="{{ url_for('placeholder.placeholder_git_commit') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-code-branch"></i></div><div class="featured-content"><h4>Git 提交信息</h4><p>根据变更生成 commit message</p><span class="featured-badge">技术</span></div></a>
<a href="{{ url_for('placeholder.placeholder_tech_blog') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-blog"></i></div><div class="featured-content"><h4>技术博客大纲</h4><p>根据主题生成技术文章大纲</p><span class="featured-badge">技术</span></div></a>
<a href="{{ url_for('placeholder.placeholder_user_story') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-tasks"></i></div><div class="featured-content"><h4>需求转用户故事</h4><p>需求描述转用户故事与验收点</p><span class="featured-badge">技术</span></div></a>
<!-- Android 工程师专区:前 2 个已上线,其余占位 -->
<a href="{{ url_for('android_tools.crash_log_page') }}" class="featured-card"><div class="featured-icon"><i class="fas fa-bug"></i></div><div class="featured-content"><h4>Crash/异常日志解读</h4><p>粘贴堆栈或 Logcat生成解释与排查建议</p><span class="featured-badge">Android</span></div></a>
<a href="{{ url_for('android_tools.perf_optimize_page') }}" class="featured-card"><div class="featured-icon"><i class="fas fa-tachometer-alt"></i></div><div class="featured-content"><h4>性能优化建议</h4><p>启动/内存/卡顿等场景的优化思路与 Checklist</p><span class="featured-badge">Android</span></div></a>
<a href="{{ url_for('android_tools.tech_review_page') }}" class="featured-card"><div class="featured-icon"><i class="fas fa-clipboard-check"></i></div><div class="featured-content"><h4>技术方案评审要点</h4><p>生成评审维度与常见坑点</p><span class="featured-badge">Android</span></div></a>
<a href="{{ url_for('android_tools.code_review_page') }}" class="featured-card"><div class="featured-icon"><i class="fas fa-code"></i></div><div class="featured-content"><h4>Code Review 清单</h4><p>按模块类型生成 Android 代码审查要点</p><span class="featured-badge">Android</span></div></a>
<a href="{{ url_for('placeholder.placeholder_android_release_notes') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-tag"></i></div><div class="featured-content"><h4>版本发布说明</h4><p>根据 commit 或需求生成 Release Notes</p><span class="featured-badge">Android</span></div></a>
<a href="{{ url_for('android_tools.gradle_conflict_page') }}" class="featured-card"><div class="featured-icon"><i class="fas fa-cogs"></i></div><div class="featured-content"><h4>依赖冲突分析</h4><p>Gradle 报错或依赖树生成解决思路</p><span class="featured-badge">Android</span></div></a>
<a href="{{ url_for('placeholder.placeholder_android_jetpack_choice') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-puzzle-piece"></i></div><div class="featured-content"><h4>Jetpack/新 API 选型</h4><p>根据需求推荐组件与迁移建议</p><span class="featured-badge">Android</span></div></a>
<a href="{{ url_for('placeholder.placeholder_android_interview_qa') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-comments"></i></div><div class="featured-content"><h4>Android 面试题/技术问答</h4><p>面试题与参考答案</p><span class="featured-badge">Android</span></div></a>
<a href="{{ url_for('placeholder.placeholder_android_arch_design') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-sitemap"></i></div><div class="featured-content"><h4>架构/模块划分建议</h4><p>项目描述生成架构思路与模块划分</p><span class="featured-badge">Android</span></div></a>
<a href="{{ url_for('placeholder.placeholder_android_doc_translate') }}" class="featured-card featured-card-placeholder"><div class="featured-icon"><i class="fas fa-language"></i></div><div class="featured-content"><h4>英文技术文档翻译润色</h4><p>官方文档或邮件翻译、润色</p><span class="featured-badge">Android</span></div></a>
<a href="{{ url_for('weekly_report.report_history_page') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-history"></i>
</div>
<div class="featured-content">
<h4>我的周报历史</h4>
<p>查看和管理已保存的周报/日报历史</p>
<span class="featured-badge">历史</span>
</div>
</a>
<a href="{{ url_for('travel_planning.travel_history_page') }}" class="featured-card">
<div class="featured-icon">
<i class="fas fa-map-marked-alt"></i>
</div>
<div class="featured-content">
<h4>我的旅行攻略历史</h4>
<p>查看和管理已保存的旅行攻略</p>
<span class="featured-badge">历史</span>
</div>
</a>
<div class="featured-card coming-soon">
<div class="featured-icon">
<i class="fas fa-plus"></i>
</div>
<div class="featured-content">
<h4>更多功能</h4>
<p>更多AI智能应用即将上线敬请期待</p>
<span class="featured-badge">即将推出</span>
</div>
</div>
</div>
</div>

View File

@@ -0,0 +1,286 @@
.featured-hub-page .featured-content h4 {
color: var(--text-color);
}
/* 特色功能 */
.featured-functions {
margin-bottom: 2rem;
padding: 2rem;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-radius: 16px;
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}
.featured-header {
text-align: center;
margin-bottom: 2rem;
}
.featured-header h3 {
color: white;
font-size: 1.5rem;
font-weight: 700;
margin-bottom: 0.5rem;
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
}
.featured-header p {
color: rgba(255, 255, 255, 0.8);
font-size: 1rem;
margin: 0;
}
.featured-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
gap: 1.5rem;
}
.featured-card {
background: white;
border-radius: 12px;
padding: 1.5rem;
text-decoration: none;
color: inherit;
transition: all 0.3s ease;
display: flex;
align-items: center;
gap: 1rem;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
position: relative;
overflow: hidden;
}
.featured-card:hover {
transform: translateY(-4px);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.15);
text-decoration: none;
color: inherit;
}
.featured-card.coming-soon {
opacity: 0.7;
cursor: default;
}
.featured-card.coming-soon:hover {
transform: none;
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}
.featured-card-placeholder .featured-icon {
background: linear-gradient(135deg, #94a3b8 0%, #64748b 100%) !important;
}
.featured-card-placeholder .featured-badge {
background: #64748b !important;
color: white !important;
}
.featured-card-placeholder {
opacity: 0.95;
}
.featured-icon {
width: 60px;
height: 60px;
border-radius: 12px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
color: white;
flex-shrink: 0;
}
.featured-card:nth-child(1) .featured-icon {
background: linear-gradient(135deg, #ff6b6b, #ee5a24);
}
.featured-card:nth-child(2) .featured-icon {
background: linear-gradient(135deg, #ffb74d, #ff9800);
}
.featured-card:nth-child(3) .featured-icon {
background: linear-gradient(135deg, #4ecdc4, #44a08d);
}
.featured-card:nth-child(4) .featured-icon {
background: linear-gradient(135deg, #f093fb, #f5576c);
}
.featured-card:nth-child(5) .featured-icon {
background: linear-gradient(135deg, #4776e6, #8e54e9);
}
.featured-card:nth-child(6) .featured-icon {
background: linear-gradient(135deg, #11998e, #38ef7d);
}
.featured-card:nth-child(7) .featured-icon {
background: linear-gradient(135deg, #0ea5e9, #06b6d4);
}
.featured-card:nth-child(8) .featured-icon {
background: linear-gradient(135deg, #059669, #10b981);
}
.featured-card:nth-child(9) .featured-icon {
background: linear-gradient(135deg, #667eea, #764ba2);
}
.featured-card:nth-child(10) .featured-icon {
background: linear-gradient(135deg, #11998e, #38ef7d);
}
.featured-card:nth-child(11) .featured-icon {
background: linear-gradient(135deg, #a8edea, #fed6e3);
color: #666;
}
.featured-card:nth-child(98) .featured-icon {
background: linear-gradient(135deg, #667eea, #764ba2);
}
.featured-card:nth-child(99) .featured-icon {
background: linear-gradient(135deg, #11998e, #38ef7d);
}
.featured-card:nth-child(100) .featured-icon {
background: linear-gradient(135deg, #a8edea, #fed6e3);
color: #666;
}
.featured-content {
flex: 1;
}
.featured-content h4 {
font-size: 1.125rem;
font-weight: 600;
color: var(--text-primary);
margin-bottom: 0.5rem;
}
.featured-content p {
font-size: 0.875rem;
color: var(--text-secondary);
margin-bottom: 0.75rem;
line-height: 1.4;
}
.featured-badge {
display: inline-block;
padding: 0.25rem 0.75rem;
border-radius: 20px;
font-size: 0.75rem;
font-weight: 500;
text-transform: uppercase;
letter-spacing: 0.5px;
}
.featured-card:nth-child(1) .featured-badge {
background: #ff6b6b;
color: white;
}
.featured-card:nth-child(2) .featured-badge {
background: #ff9800;
color: white;
}
.featured-card:nth-child(3) .featured-badge {
background: #4ecdc4;
color: white;
}
.featured-card:nth-child(4) .featured-badge {
background: #f093fb;
color: white;
}
.featured-card:nth-child(5) .featured-badge {
background: #4776e6;
color: white;
}
.featured-card:nth-child(6) .featured-badge {
background: #11998e;
color: white;
}
.featured-card:nth-child(7) .featured-badge {
background: #0ea5e9;
color: white;
}
.featured-card:nth-child(8) .featured-badge {
background: #059669;
color: white;
}
.featured-card:nth-child(9) .featured-badge {
background: #667eea;
color: white;
}
.featured-card:nth-child(10) .featured-badge {
background: #11998e;
color: white;
}
.featured-card:nth-child(11) .featured-badge {
background: #e0e0e0;
color: #666;
}
.featured-card:nth-child(98) .featured-badge {
background: #667eea;
color: white;
}
.featured-card:nth-child(99) .featured-badge {
background: #11998e;
color: white;
}
.featured-card:nth-child(100) .featured-badge {
background: #e0e0e0;
color: #666;
}
@media (max-width: 768px) {
.featured-functions {
padding: 1.5rem;
margin-bottom: 1.5rem;
}
.featured-grid {
grid-template-columns: 1fr;
gap: 1rem;
}
.featured-card {
padding: 1rem;
flex-direction: column;
text-align: center;
}
.featured-icon {
width: 50px;
height: 50px;
font-size: 1.25rem;
}
}
.featured-hub-page {
max-width: 1400px;
margin: 0 auto;
padding: 1rem 1rem 2.5rem;
}