ai onboarding: Copyedit the whole flow (#34916)

Release Notes:

- N/A

Co-authored-by: Katie Geer <katie@zed.dev>
This commit is contained in:
Danilo Leal 2025-07-22 15:41:12 -03:00 committed by GitHub
parent 99466f4aeb
commit 4272c1508e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 19 additions and 28 deletions

View file

@ -93,7 +93,7 @@ impl Render for ApiKeysWithProviders {
div() div()
.w_full() .w_full()
.child( .child(
Label::new("Or start now using API keys from your environment for the following providers:") Label::new("Start now using API keys from your environment for the following providers:")
.color(Color::Muted) .color(Color::Muted)
) )
) )
@ -129,7 +129,7 @@ impl RenderOnce for ApiKeysWithoutProviders {
.child(Divider::horizontal()), .child(Divider::horizontal()),
) )
.child(List::new().child(BulletItem::new( .child(List::new().child(BulletItem::new(
"You can also use AI in Zed by bringing your own API keys", "Add your own keys to use AI without signing in.",
))) )))
.child( .child(
Button::new("configure-providers", "Configure Providers") Button::new("configure-providers", "Configure Providers")

View file

@ -141,22 +141,18 @@ impl ZedAiOnboarding {
) )
.child( .child(
List::new() List::new()
.child(BulletItem::new("50 prompts per month with Claude models"))
.child(BulletItem::new( .child(BulletItem::new(
"50 prompts per month with the Claude models", "2,000 accepted edit predictions with Zeta, our open-source model",
))
.child(BulletItem::new(
"2000 accepted edit predictions using our open-source Zeta model",
)), )),
) )
} }
fn pro_trial_definition(&self) -> impl IntoElement { fn pro_trial_definition(&self) -> impl IntoElement {
List::new() List::new()
.child(BulletItem::new("150 prompts with Claude models"))
.child(BulletItem::new( .child(BulletItem::new(
"150 prompts per month with the Claude models", "Unlimited accepted edit predictions with Zeta, our open-source model",
))
.child(BulletItem::new(
"Unlimited accepted edit predictions using our open-source Zeta model",
)) ))
} }
@ -178,12 +174,12 @@ impl ZedAiOnboarding {
List::new() List::new()
.child(BulletItem::new("500 prompts per month with Claude models")) .child(BulletItem::new("500 prompts per month with Claude models"))
.child(BulletItem::new( .child(BulletItem::new(
"Unlimited accepted edit predictions using our open-source Zeta model", "Unlimited accepted edit predictions with Zeta, our open-source model",
)) ))
.child(BulletItem::new("USD $20 per month")), .child(BulletItem::new("$20 USD per month")),
) )
.child( .child(
Button::new("pro", "Start with Pro") Button::new("pro", "Get Started")
.full_width() .full_width()
.style(ButtonStyle::Tinted(ui::TintColor::Accent)) .style(ButtonStyle::Tinted(ui::TintColor::Accent))
.on_click(move |_, _window, cx| { .on_click(move |_, _window, cx| {
@ -206,11 +202,11 @@ impl ZedAiOnboarding {
List::new() List::new()
.child(self.pro_trial_definition()) .child(self.pro_trial_definition())
.child(BulletItem::new( .child(BulletItem::new(
"Try it out for 14 days with no charge and no credit card required", "Try it out for 14 days for free, no credit card required",
)), )),
) )
.child( .child(
Button::new("pro", "Start Pro Trial") Button::new("pro", "Start Free Trial")
.full_width() .full_width()
.style(ButtonStyle::Tinted(ui::TintColor::Accent)) .style(ButtonStyle::Tinted(ui::TintColor::Accent))
.on_click(move |_, _window, cx| { .on_click(move |_, _window, cx| {
@ -225,14 +221,14 @@ impl ZedAiOnboarding {
v_flex() v_flex()
.gap_1() .gap_1()
.w_full() .w_full()
.child(Headline::new("Before starting…")) .child(Headline::new("Accept Terms of Service"))
.child( .child(
Label::new("Make sure you have read and accepted Zed AI's terms of service.") Label::new("We dont sell your data, track you across the web, or compromise your privacy.")
.color(Color::Muted) .color(Color::Muted)
.mb_2(), .mb_2(),
) )
.child( .child(
Button::new("terms_of_service", "View and Read the Terms of Service") Button::new("terms_of_service", "Review Terms of Service")
.full_width() .full_width()
.style(ButtonStyle::Outlined) .style(ButtonStyle::Outlined)
.icon(IconName::ArrowUpRight) .icon(IconName::ArrowUpRight)
@ -241,7 +237,7 @@ impl ZedAiOnboarding {
.on_click(move |_, _window, cx| cx.open_url(&zed_urls::terms_of_service(cx))), .on_click(move |_, _window, cx| cx.open_url(&zed_urls::terms_of_service(cx))),
) )
.child( .child(
Button::new("accept_terms", "I've read it and accept it") Button::new("accept_terms", "Accept")
.full_width() .full_width()
.style(ButtonStyle::Tinted(TintColor::Accent)) .style(ButtonStyle::Tinted(TintColor::Accent))
.on_click({ .on_click({
@ -259,13 +255,13 @@ impl ZedAiOnboarding {
.gap_1() .gap_1()
.child(Headline::new("Welcome to Zed AI")) .child(Headline::new("Welcome to Zed AI"))
.child( .child(
Label::new("Sign in to start using AI in Zed with a free trial of the Pro plan, which includes:") Label::new("Sign in to try Zed Pro for 14 days, no credit card required.")
.color(Color::Muted) .color(Color::Muted)
.mb_2(), .mb_2(),
) )
.child(self.pro_trial_definition()) .child(self.pro_trial_definition())
.child( .child(
Button::new("sign_in", "Sign in to Start Trial") Button::new("sign_in", "Try Zed Pro for Free")
.disabled(signing_in) .disabled(signing_in)
.full_width() .full_width()
.style(ButtonStyle::Tinted(ui::TintColor::Accent)) .style(ButtonStyle::Tinted(ui::TintColor::Accent))
@ -284,11 +280,6 @@ impl ZedAiOnboarding {
.relative() .relative()
.gap_1() .gap_1()
.child(Headline::new("Welcome to Zed AI")) .child(Headline::new("Welcome to Zed AI"))
.child(
Label::new("Choose how you want to start.")
.color(Color::Muted)
.mb_2(),
)
.map(|this| { .map(|this| {
if self.account_too_young { if self.account_too_young {
this.child(young_account_banner) this.child(young_account_banner)
@ -318,7 +309,7 @@ impl ZedAiOnboarding {
v_flex() v_flex()
.relative() .relative()
.gap_1() .gap_1()
.child(Headline::new("Welcome to the Zed Pro free trial")) .child(Headline::new("Welcome to the Zed Pro Trial"))
.child( .child(
Label::new("Here's what you get for the next 14 days:") Label::new("Here's what you get for the next 14 days:")
.color(Color::Muted) .color(Color::Muted)

View file

@ -6,7 +6,7 @@ pub struct YoungAccountBanner;
impl RenderOnce for YoungAccountBanner { impl RenderOnce for YoungAccountBanner {
fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement { fn render(self, _window: &mut Window, cx: &mut App) -> impl IntoElement {
const YOUNG_ACCOUNT_DISCLAIMER: &str = "To prevent abuse of our service, we cannot offer plans to GitHub accounts created fewer than 30 days ago. To request an exception, reach out to billing@zed.dev."; const YOUNG_ACCOUNT_DISCLAIMER: &str = "To prevent abuse of our service, we cannot offer plans to GitHub accounts created fewer than 30 days ago. To request an exception, reach out to billing-support@zed.dev.";
let label = div() let label = div()
.w_full() .w_full()