Skip to content

henry232323/py-dom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

py-dom

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/>)]

About

py-dom is a proof of concept for a React/JSX style Python library

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published