Try it out here
from pydom import Element, div, a, span, p, main
class AwesomeCard(Element):
    button_value = 0
    def onclick(self):
        self.button_value += 1
    def build_children(self, props):
        self.children = [
            (<div class={"col s6"} style={dict(padding=2)}>
                <div class={"card blue-grey darken-1"}>
                    <div class="card-content white-text">
                        <span class={"card-title"}>
                            {f"{props.get('text')} {self.button_value}"}
                        </span>
                        <p>
                            {"I am a very simple card. I am good at containing small bits of information. "
                            "I am convenient because I require little markup to use effectively."}
                        </p>
                    </div>
                    <div class={"card-action"}>
                        <a onclick={self.onclick} class={"waves-effect waves-light btn"}>
                            {"Increment me!"}
                        </a>
                    </div>
                </div>
            </div>)
        ]
class EpicElement(Element):
    card_one_title = "Prop Title"
    def change_card_title(self):
        self.card_one_title = "Even More Epic Title"
    def build_children(self, props):
        self.children = [
            <main>
                <div class={"container"}>
                    <div class={"row"}>
                        <AwesomeCard text={self.card_one_title}/>
                        <AwesomeCard text={"Epic Prop Title"}/>
                    </div>
                </div>
                <div class={"row"}>
                    <a onclick={self.change_card_title} class={"waves-effect waves-light btn"} >
                        {"Change Card Text"}
                    </a>
                </div>
            </main>
        ]
class App(Element):
    def build_children(self, props):
        self.children = [(<EpicElement/>)]