leptos_bootstrap/v5/
card.rs

1use leptos::prelude::*;
2
3#[component]
4pub fn Card<'a>(#[prop(optional, into)] class: &'a str, children: Children) -> impl IntoView {
5    let class = format!("card {}", class);
6    view! {
7        <div class=class>
8            {children()}
9        </div>
10    }
11}
12
13#[component]
14pub fn CardBody<'a>(#[prop(optional, into)] class: &'a str, children: Children) -> impl IntoView {
15    let class = format!("card-body {}", class);
16    view! {
17        <div class=class>
18            {children()}
19        </div>
20    }
21}
22
23#[component]
24pub fn CardTitle<'a>(#[prop(optional, into)] class: &'a str, children: Children) -> impl IntoView {
25    let class = format!("card-title {}", class);
26    view! {
27        <div class=class>
28            {children()}
29        </div>
30    }
31}
32
33#[component]
34pub fn CardSubTitle<'a>(
35    #[prop(optional, into)] class: &'a str,
36    children: Children,
37) -> impl IntoView {
38    let class = format!("card-sub-title {}", class);
39    view! {
40        <div class=class>
41            {children()}
42        </div>
43    }
44}
45
46#[component]
47pub fn CardText<'a>(#[prop(optional, into)] class: &'a str, children: Children) -> impl IntoView {
48    let class = format!("card-text {}", class);
49    view! {
50        <p class=class>
51            {children()}
52        </p>
53    }
54}
55
56#[component]
57pub fn CardLink<'a>(
58    href: &'a str,
59    #[prop(optional, into)] class: &'a str,
60    children: Children,
61) -> impl IntoView {
62    let class = format!("card-link {}", class);
63    view! {
64        <a class=class href=href>
65            {children()}
66        </a>
67    }
68}
69
70#[component]
71pub fn CardHeader<'a>(#[prop(optional, into)] class: &'a str, children: Children) -> impl IntoView {
72    let class = format!("card-header {}", class);
73    view! {
74        <div class=class>
75            {children()}
76        </div>
77    }
78}