button.rs

 1use gpui::{Div, Render};
 2use story::Story;
 3
 4use crate::{prelude::*, Icon};
 5use crate::{Button, ButtonStyle};
 6
 7pub struct ButtonStory;
 8
 9impl Render for ButtonStory {
10    type Element = Div;
11
12    fn render(&mut self, _cx: &mut ViewContext<Self>) -> Self::Element {
13        Story::container()
14            .child(Story::title_for::<Button>())
15            .child(Story::label("Default"))
16            .child(Button::new("default_filled", "Click me"))
17            .child(Story::label("Selected"))
18            .child(Button::new("selected_filled", "Click me").selected(true))
19            .child(Story::label("Selected with `selected_label`"))
20            .child(
21                Button::new("selected_label_filled", "Click me")
22                    .selected(true)
23                    .selected_label("I have been selected"),
24            )
25            .child(Story::label("With `label_color`"))
26            .child(Button::new("filled_with_label_color", "Click me").color(Color::Created))
27            .child(Story::label("With `icon`"))
28            .child(Button::new("filled_with_icon", "Click me").icon(Icon::FileGit))
29            .child(Story::label("Selected with `icon`"))
30            .child(
31                Button::new("filled_and_selected_with_icon", "Click me")
32                    .selected(true)
33                    .icon(Icon::FileGit),
34            )
35            .child(Story::label("Default (Subtle)"))
36            .child(Button::new("default_subtle", "Click me").style(ButtonStyle::Subtle))
37            .child(Story::label("Default (Transparent)"))
38            .child(Button::new("default_transparent", "Click me").style(ButtonStyle::Transparent))
39    }
40}