style: refine market toolbar layout

This commit is contained in:
wxs
2026-06-30 17:44:31 +08:00
parent ccfb8f14fe
commit 4b5515f6ec
9 changed files with 1694 additions and 62 deletions
@@ -0,0 +1,685 @@
<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>星图插件工具栏改版样例</title>
<style>
:root {
color-scheme: light;
--page: #f5f7fa;
--panel: #ffffff;
--line: #e7ebf0;
--text: #20242a;
--muted: #6b7280;
--soft: #f8fafc;
--brand: #ff2f6d;
--brand-dark: #85172d;
--brand-soft: #fff0f5;
--blue: #2563eb;
--green: #0f8a5f;
}
* {
box-sizing: border-box;
}
body {
margin: 0;
min-width: 1180px;
background: var(--page);
color: var(--text);
font-family:
-apple-system,
BlinkMacSystemFont,
"Segoe UI",
sans-serif;
font-size: 14px;
letter-spacing: 0;
}
button,
input,
select {
font: inherit;
}
.topbar {
height: 58px;
display: flex;
align-items: center;
gap: 28px;
padding: 0 24px;
background: rgba(255, 255, 255, 0.96);
border-bottom: 1px solid var(--line);
box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
}
.brand {
display: flex;
align-items: center;
gap: 10px;
font-size: 23px;
font-weight: 800;
}
.logo {
width: 34px;
height: 28px;
border-radius: 7px;
background:
linear-gradient(135deg, #ff245f 0 38%, transparent 39%),
linear-gradient(45deg, #27c7f2 0 50%, #3664ff 51%);
}
.nav {
display: flex;
align-items: center;
gap: 28px;
color: #2f3540;
font-weight: 600;
}
.nav .active {
color: var(--brand);
position: relative;
}
.nav .active::after {
content: "";
position: absolute;
left: 10px;
right: 10px;
bottom: -17px;
height: 4px;
border-radius: 10px;
background: var(--brand);
}
.top-actions {
margin-left: auto;
display: flex;
align-items: center;
gap: 12px;
}
.small-btn,
.pink-btn {
height: 34px;
border-radius: 8px;
padding: 0 16px;
border: 1px solid #d8dee8;
background: #fff;
color: #303744;
font-weight: 700;
}
.pink-btn {
border-color: var(--brand);
background: var(--brand);
color: #fff;
}
.page {
padding: 18px 24px 40px;
}
.banner {
height: 46px;
display: grid;
place-items: center;
margin-bottom: 16px;
border-radius: 9px;
background: #fff;
color: #111827;
font-size: 20px;
font-weight: 900;
}
.searchbar,
.filters,
.results {
background: var(--panel);
border: 1px solid var(--line);
border-radius: 10px;
}
.searchbar {
height: 72px;
display: flex;
align-items: center;
gap: 16px;
padding: 0 24px;
margin-bottom: 16px;
}
.tab {
height: 34px;
border: 0;
border-radius: 7px;
padding: 0 18px;
background: var(--brand-soft);
color: var(--brand);
font-weight: 800;
}
.tab.active {
background: var(--brand);
color: #fff;
}
.search-input {
width: 440px;
height: 36px;
border: 1px solid #ff8ab2;
border-radius: 6px;
padding: 0 14px;
}
.filters {
display: grid;
grid-template-columns: 108px 1fr;
overflow: hidden;
margin-bottom: 16px;
}
.filter-side {
background: #fbfcfe;
border-right: 1px solid var(--line);
}
.filter-side div {
height: 72px;
display: grid;
place-items: center;
border-bottom: 1px solid var(--line);
font-weight: 800;
}
.filter-main {
padding: 16px 24px;
}
.filter-row {
min-height: 38px;
display: flex;
align-items: center;
gap: 18px;
border-bottom: 1px solid #f0f2f5;
}
.filter-row:last-child {
border-bottom: 0;
}
.filter-title {
width: 72px;
color: var(--muted);
font-weight: 700;
}
.chip,
.soft-chip {
display: inline-flex;
align-items: center;
height: 26px;
padding: 0 12px;
border-radius: 6px;
white-space: nowrap;
}
.soft-chip {
background: var(--brand-soft);
color: var(--brand);
font-weight: 800;
}
.chip {
color: #414854;
}
.results {
overflow: hidden;
}
.result-top {
display: flex;
align-items: center;
padding: 18px 24px 0;
}
.count {
font-size: 18px;
font-weight: 800;
}
.count strong {
font-size: 20px;
}
.toolbar-shell {
margin: 18px 24px 0;
border: 1px solid #dfe5ee;
border-radius: 10px;
background: #fff;
box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
overflow: hidden;
}
.toolbar-head {
display: flex;
align-items: center;
min-height: 58px;
padding: 12px 14px;
border-bottom: 1px solid var(--line);
background: linear-gradient(180deg, #fff, #fbfcff);
}
.action-cluster {
display: flex;
align-items: center;
gap: 8px;
padding-right: 16px;
border-right: 1px solid var(--line);
}
.tool-btn {
height: 34px;
border: 1px solid #7b1a2d;
border-radius: 8px;
padding: 0 14px;
background: #7b1a2d;
color: #fff;
font-weight: 800;
white-space: nowrap;
}
.control-cluster {
min-width: 0;
flex: 0 0 auto;
display: flex;
align-items: center;
gap: 10px;
padding-left: 16px;
}
.label {
display: flex;
align-items: center;
height: 34px;
padding: 0 10px;
border: 1px solid #cfe0ff;
border-radius: 8px;
background: #eef5ff;
color: #2563eb;
font-size: 12px;
font-weight: 900;
white-space: nowrap;
}
.select,
.input {
height: 34px;
border: 1px solid #d4dbe6;
border-radius: 8px;
background: #fff;
color: #202938;
padding: 0 10px;
}
.select {
min-width: 104px;
}
.status {
flex: 1 1 auto;
min-width: 120px;
text-align: center;
color: var(--muted);
font-size: 12px;
white-space: nowrap;
}
.toolbar-body {
display: flex;
align-items: center;
gap: 10px;
padding: 12px 14px 14px;
background: #fbfcff;
}
.metric-title {
display: flex;
align-items: center;
height: 34px;
padding: 0 10px;
border: 1px solid #cfe0ff;
border-radius: 8px;
background: #eef5ff;
color: #2563eb;
font-size: 12px;
font-weight: 900;
white-space: nowrap;
}
.metric-rule {
display: flex;
align-items: center;
height: 34px;
padding: 0 10px;
border: 1px solid #d9efe7;
border-radius: 8px;
background: #f0fbf6;
color: var(--green);
font-size: 12px;
font-weight: 900;
white-space: nowrap;
}
.metric-rule strong {
margin-left: 3px;
}
.metric-rule small {
margin-left: 6px;
color: #64748b;
font-size: 12px;
font-weight: 700;
}
.metric-grid {
min-width: 0;
flex: 1 1 auto;
display: flex;
align-items: center;
gap: 7px;
overflow-x: auto;
}
.and {
color: #0f8a5f;
font-size: 12px;
font-weight: 900;
white-space: nowrap;
}
.metric {
display: grid;
grid-template-columns: auto auto 1fr;
align-items: center;
gap: 6px;
height: 34px;
padding: 0 8px;
border: 1px solid #dbe2ec;
border-radius: 8px;
background: #fff;
}
.metric span,
.metric b {
color: #667085;
font-size: 12px;
font-weight: 700;
white-space: nowrap;
}
.metric b {
color: var(--green);
font-weight: 900;
}
.metric input {
min-width: 0;
width: 58px;
height: 26px;
border: 0;
outline: 0;
color: #1f2937;
font-weight: 700;
}
.native-actions {
display: flex;
align-items: center;
gap: 10px;
margin-left: auto;
padding-left: 16px;
border-left: 1px solid var(--line);
}
.native-btn {
height: 34px;
border: 1px solid #d8dee8;
border-radius: 8px;
background: #fff;
color: #303744;
padding: 0 14px;
font-weight: 700;
}
table {
width: 100%;
border-collapse: collapse;
margin-top: 18px;
}
th,
td {
height: 64px;
padding: 0 20px;
border-top: 1px solid var(--line);
text-align: left;
white-space: nowrap;
}
th {
height: 46px;
background: #fbfcfe;
color: #5d6675;
font-size: 12px;
}
.author {
display: flex;
align-items: center;
gap: 10px;
}
.avatar {
width: 40px;
height: 40px;
border-radius: 50%;
background: linear-gradient(135deg, #f4b66b, #7660d6);
}
.price {
color: var(--brand);
font-size: 18px;
font-weight: 900;
}
@media (max-width: 1380px) {
.metric-grid {
padding-bottom: 2px;
}
}
</style>
</head>
<body>
<header class="topbar">
<div class="brand"><span class="logo"></span>巨量星图</div>
<nav class="nav">
<span>首页</span>
<span>我的星图</span>
<span>找灵感</span>
<span class="active">找达人</span>
<span>找活动</span>
<span>助投放</span>
</nav>
<div class="top-actions">
<button class="small-btn">达人清单</button>
<button class="pink-btn">+ 发布任务</button>
</div>
</header>
<main class="page">
<section class="banner">「精选品牌伙伴计划」优质达人合作推荐</section>
<section class="searchbar">
<button class="tab">内容找人</button>
<button class="tab active">昵称找人</button>
<input class="search-input" value="抖音 输入达人昵称、抖音号或星图ID" />
</section>
<section class="filters">
<aside class="filter-side">
<div>合作诉求</div>
<div>匹配度</div>
<div>性价比</div>
<div>主题推荐</div>
</aside>
<div class="filter-main">
<div class="filter-row">
<span class="filter-title">合作对象</span>
<span class="soft-chip">不限</span>
<span class="chip">明星</span>
<span class="soft-chip">短视频达人</span>
<span class="chip">短剧演员</span>
<span class="chip">短直达人</span>
</div>
<div class="filter-row">
<span class="filter-title">适配行业</span>
<span class="chip">不限</span>
<span class="soft-chip">品牌曝光</span>
<span class="chip">破圈种草</span>
<span class="chip">行动转化</span>
<span class="chip">品牌5A</span>
</div>
<div class="filter-row">
<span class="filter-title">达人类型</span>
<span class="soft-chip">不限</span>
<span class="chip">美妆</span>
<span class="chip">萌宠</span>
<span class="chip">测评</span>
<span class="chip">旅行</span>
<span class="chip">母婴亲子</span>
<span class="chip">科技数码</span>
<span class="chip">生活家居</span>
</div>
<div class="filter-row">
<span class="filter-title">内容主题</span>
<span class="soft-chip">不限</span>
<span class="chip">妆容改造</span>
<span class="chip">亲子育儿</span>
<span class="chip">精彩生活</span>
<span class="chip">手机数码</span>
<span class="chip">萌宠养护</span>
</div>
</div>
</section>
<section class="results">
<div class="result-top">
<div class="count">找到 <strong>10000+</strong> 个达人</div>
</div>
<section class="toolbar-shell" aria-label="插件工具栏改版样例">
<div class="toolbar-head">
<div class="action-cluster">
<button class="tool-btn">导出选中达人数据</button>
<button class="tool-btn">按星图ID导出</button>
<button class="tool-btn">选择字段</button>
<button class="tool-btn">提交批次</button>
</div>
<div class="control-cluster">
<span class="label">视频口径</span>
<select class="select">
<option>星图视频</option>
<option>个人视频</option>
</select>
<select class="select">
<option>只看指派</option>
<option>不限指派</option>
</select>
<select class="select">
<option>排除营销</option>
<option>不排除营销</option>
</select>
<select class="select">
<option>近90天</option>
<option>近30天</option>
</select>
</div>
<span class="status">批次提交成功</span>
<div class="native-actions">
<button class="native-btn">自定义指标</button>
<button class="native-btn">导出</button>
</div>
</div>
<div class="toolbar-body">
<div class="metric-title">传播指标筛选</div>
<div class="metric-rule">全部满足<strong>AND</strong><small>每项取值 ≥ 输入值</small></div>
<div class="metric-grid">
<label class="metric"><span>评论</span><b></b><input value="1" /></label>
<span class="and"></span>
<label class="metric"><span>时长</span><b></b><input value="5" /></label>
<span class="and"></span>
<label class="metric"><span>点赞</span><b></b><input value="10" /></label>
<span class="and"></span>
<label class="metric"><span>转发</span><b></b><input value="0" /></label>
<span class="and"></span>
<label class="metric"><span>完播率</span><b></b><input value="1" /></label>
<span class="and"></span>
<label class="metric"><span>互动率</span><b></b><input value="0.1" /></label>
<span class="and"></span>
<label class="metric"><span>播放中位数</span><b></b><input value="1000" /></label>
</div>
</div>
</section>
<table>
<thead>
<tr>
<th><input type="checkbox" /> 全选</th>
<th>达人信息</th>
<th>代表视频</th>
<th>达人类型</th>
<th>内容主题</th>
<th>粉丝数</th>
<th>预期CPM</th>
<th>完播率</th>
<th>21-60s报价</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<tr>
<td><input type="checkbox" /></td>
<td>
<div class="author">
<span class="avatar"></span>
<div>
<strong>柯铭</strong><br />
<span style="color: #7a8493">男 · 北京市 · 抖音精选</span>
</div>
</div>
</td>
<td>2 个视频</td>
<td>萌宠</td>
<td>国内旅行 / 昆虫科普</td>
<td>1,471.4w</td>
<td>43.5</td>
<td>26.2%</td>
<td class="price">¥600,000</td>
<td><button class="pink-btn">下单</button></td>
</tr>
</tbody>
</table>
</section>
</main>
</body>
</html>