Skip to content

Commit 01169bc

Browse files
open-design-crew[bot]zhanghuihua
andauthored
feat(pricing): add DeepSeek vision unlimited access (#7250)
* docs: specify pricing vision model update * docs: plan pricing vision model update * docs: record pricing vision usage estimate * test(pricing): cover vision model entitlement * feat(pricing): add DeepSeek vision unlimited model * fix(pricing): fit long vision model name in plan cards * fix(pricing): widen usage chart label spacing * feat(pricing): explain model entitlement activation --------- Co-authored-by: zhanghuihua <zhanghuihua@zhanghuihuadeMacBook-Pro.local>
1 parent 57de743 commit 01169bc

8 files changed

Lines changed: 484 additions & 21 deletions

apps/landing-page/app/_components/pricing-individual-plans.astro

Lines changed: 110 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ interface ModelItem {
3535
const DEMO_ASSET_BASE = '/pricing-e-final/assets';
3636
3737
const popularModels: ModelItem[] = [
38+
{ name: 'DeepSeek V4 Flash Vision Exp', icon: '/agents/deepseek.svg' },
3839
{ name: 'DeepSeek V4 Flash', icon: '/agents/deepseek.svg' },
3940
{ name: 'GLM-5.2', icon: `${DEMO_ASSET_BASE}/zai-logo-official-Byn-xbrp.png`, iconClass: 'model-logo-zhipu' },
4041
{ name: 'Kimi K2.7 Code', icon: '/model-icons/kimi.svg', iconClass: 'model-logo-kimi' },
@@ -71,13 +72,12 @@ const imageModels: ModelItem[] = [
7172
];
7273
7374
const unlimitedByTier: Record<TierId, Set<string>> = {
74-
go: new Set(['DeepSeek V4 Flash', 'DeepSeek V4 Pro', 'GLM-5.2']),
75-
plus: new Set(['DeepSeek V4 Flash', 'DeepSeek V4 Pro', 'GLM-5.2', 'Kimi K2.7 Code']),
76-
// Pro's fifth slot is GLM-5.2, not MiniMax M2.7: every tier from Go up
77-
// carries GLM-5.2, and MiniMax M2.7 stays metered until Max. The two were
78-
// swapped here, so the page promised Pro subscribers unlimited MiniMax while
79-
// marking the GLM-5.2 they do get as metered.
75+
go: new Set(['DeepSeek V4 Flash Vision Exp', 'DeepSeek V4 Flash', 'DeepSeek V4 Pro', 'GLM-5.2']),
76+
plus: new Set(['DeepSeek V4 Flash Vision Exp', 'DeepSeek V4 Flash', 'DeepSeek V4 Pro', 'GLM-5.2', 'Kimi K2.7 Code']),
77+
// Pro includes GLM-5.2, not MiniMax M2.7: every tier from Go up carries
78+
// GLM-5.2, while MiniMax M2.7 stays metered until Max.
8079
pro: new Set([
80+
'DeepSeek V4 Flash Vision Exp',
8181
'DeepSeek V4 Flash',
8282
'DeepSeek V4 Pro',
8383
'GLM-5.2',
@@ -88,6 +88,7 @@ const unlimitedByTier: Record<TierId, Set<string>> = {
8888
};
8989
9090
const popularModelDisplayOrder = [
91+
'DeepSeek V4 Flash Vision Exp',
9192
'DeepSeek V4 Flash',
9293
'DeepSeek V4 Pro',
9394
'GLM-5.2',
@@ -242,6 +243,7 @@ const popularModel = (name: string) => popularModels.find((model) => model.name
242243
const usageRows = [
243244
{ ...popularModel('DeepSeek V4 Flash'), value: 13000 },
244245
{ ...popularModel('MiMo V2.5 Pro'), value: 11000 },
246+
{ ...popularModel('DeepSeek V4 Flash Vision Exp'), value: 8000 },
245247
{ ...popularModel('DeepSeek V4 Pro'), value: 4300 },
246248
{ ...popularModel('MiniMax M2.7'), value: 2800 },
247249
{ ...popularModel('Kimi K2.6'), value: 1000 },
@@ -270,7 +272,7 @@ const comparisonFlagship = [
270272
const categoryCopy: Record<ModelCategory, { title: string; count: string }> = {
271273
popular: {
272274
title: P.popularModels,
273-
count: fillTemplate(P.modelCount, { count: '8' }),
275+
count: fillTemplate(P.modelCount, { count: String(comparisonPopular.length) }),
274276
},
275277
flagship: {
276278
title: P.flagshipModels,
@@ -388,15 +390,24 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
388390
<div class="plan-model-modules">
389391
<section class="plan-model-module unlimited-module" data-model-module>
390392
<header>
391-
<h4>{fillTemplate(P.unlimitedPopularModels, { count: String(unlimitedByTier[tier].size) })}</h4>
393+
<div class="plan-model-title-with-help">
394+
<h4>{fillTemplate(P.unlimitedPopularModels, { count: String(unlimitedByTier[tier].size) })}</h4>
395+
<details class="plan-model-help">
396+
<summary aria-label={P.aboutModelEntitlements}>?</summary>
397+
<span class="plan-model-help-copy">{P.modelEntitlementActivationNote}</span>
398+
</details>
399+
</div>
392400
</header>
393401
<ul>
394402
{popular.map((model) => {
395403
const popularStatus = popularAccessStatus(model.name, tier);
396404
return (
397405
<li class="model-with-status">
398406
<span class:list={['model-logo', model.iconClass]}><img src={model.icon} alt="" loading="lazy" /></span>
399-
<span>{model.name}</span>
407+
<span
408+
class:list={{ 'long-model-name': model.name.length > 24 }}
409+
title={model.name}
410+
>{model.name}</span>
400411
{popularStatus.kind === 'unlimited' && <em class={popularStatus.kind}>{popularStatus.text}</em>}
401412
</li>
402413
);
@@ -623,6 +634,12 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
623634
.pricing-card:nth-child(3) { animation-delay: 0.2s; }
624635
.pricing-card:nth-child(4) { animation-delay: 0.3s; }
625636

637+
.pricing-card:has(.plan-model-help[open]),
638+
.pricing-card:has(.plan-model-help:hover),
639+
.pricing-card:has(.plan-model-help:focus-within) {
640+
z-index: 20;
641+
}
642+
626643
.pricing-card.plan-max {
627644
color: #f7f8f4;
628645
background: #11130f;
@@ -934,6 +951,70 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
934951
white-space: nowrap;
935952
}
936953

954+
.plan-model-title-with-help {
955+
display: inline-flex;
956+
align-items: center;
957+
gap: 6px;
958+
min-width: 0;
959+
}
960+
961+
.plan-model-help {
962+
position: relative;
963+
z-index: 3;
964+
flex: 0 0 16px;
965+
width: 16px;
966+
height: 16px;
967+
}
968+
969+
.plan-model-help summary {
970+
display: flex;
971+
align-items: center;
972+
justify-content: center;
973+
width: 16px;
974+
height: 16px;
975+
padding: 0;
976+
color: #5f645c;
977+
font-size: 10px;
978+
font-weight: 700;
979+
line-height: 1;
980+
list-style: none;
981+
cursor: help;
982+
background: rgba(255, 255, 255, 0.52);
983+
border: 1px solid #8a8f86;
984+
border-radius: 50%;
985+
}
986+
987+
.plan-model-help summary::-webkit-details-marker { display: none; }
988+
.plan-model-help summary::marker { content: ''; }
989+
.plan-model-help summary:focus-visible {
990+
outline: 2px solid #1f7e16;
991+
outline-offset: 2px;
992+
}
993+
994+
.plan-model-help-copy {
995+
position: absolute;
996+
z-index: 5;
997+
top: 23px;
998+
left: -8px;
999+
display: block;
1000+
width: min(250px, calc(100vw - 32px));
1001+
padding: 10px 12px;
1002+
color: #30342e;
1003+
font-size: 11px;
1004+
font-weight: 500;
1005+
line-height: 1.5;
1006+
text-align: left;
1007+
white-space: normal;
1008+
background: #fff;
1009+
border: 1px solid rgba(65, 72, 61, 0.16);
1010+
border-radius: 10px;
1011+
box-shadow: 0 10px 30px rgba(28, 35, 24, 0.12);
1012+
}
1013+
1014+
.plan-model-help:not([open]):not(:hover):not(:focus-within) > .plan-model-help-copy {
1015+
display: none;
1016+
}
1017+
9371018
.plan-model-module.unlimited-module h4,
9381019
.plan-model-module.recommended-model-module h4 { color: #1f7e16; }
9391020

@@ -980,6 +1061,11 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
9801061
white-space: nowrap;
9811062
}
9821063

1064+
.plan-model-module li > span.long-model-name {
1065+
font-size: 10.5px;
1066+
letter-spacing: -0.015em;
1067+
}
1068+
9831069
.plan-model-module li:nth-child(n + 4) { display: none; }
9841070
.plan-model-module.is-expanded li:nth-child(n + 4) { display: grid; }
9851071

@@ -1144,6 +1230,19 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
11441230
}
11451231

11461232
.plan-max .plan-model-module h4 { color: var(--pricing-accent); }
1233+
.plan-max .plan-model-help summary {
1234+
color: #a8e697;
1235+
background: rgba(120, 234, 87, 0.08);
1236+
border-color: rgba(168, 230, 151, 0.62);
1237+
}
1238+
.plan-max .plan-model-help-copy {
1239+
right: -8px;
1240+
left: auto;
1241+
color: #eef2eb;
1242+
background: #253024;
1243+
border-color: rgba(223, 239, 218, 0.16);
1244+
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.28);
1245+
}
11471246
.plan-max .plan-model-module header > span { color: #9caa97; }
11481247
.plan-max .plan-model-module li,
11491248
.plan-max .plan-benefit-list li { color: #eef2eb; }
@@ -1260,7 +1359,7 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
12601359

12611360
.individual-usage-row {
12621361
display: grid;
1263-
grid-template-columns: 190px minmax(0, 1fr);
1362+
grid-template-columns: 220px minmax(0, 1fr);
12641363
align-items: center;
12651364
min-height: 48px;
12661365
padding: 0 16px;
@@ -1339,7 +1438,7 @@ const otherModels = 'Gemini-3.1-Pro, Grok-4.5, GPT-5.4, GPT-5.6-Terra, Qwen3.7-M
13391438

13401439
.individual-usage-axis {
13411440
display: grid;
1342-
grid-template-columns: 190px minmax(0, 1fr);
1441+
grid-template-columns: 220px minmax(0, 1fr);
13431442
align-items: start;
13441443
min-height: 38px;
13451444
padding: 0 16px;

0 commit comments

Comments
 (0)