initial commit
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
from rio import Component, Rectangle, Color, Column, Text, Image, Row, PointerEventListener, Spacer
|
||||
|
||||
from from_root import from_root
|
||||
|
||||
class LandingPageBoxFull(Component):
|
||||
image_name: str
|
||||
heading_text: str
|
||||
article_text: str
|
||||
date: str
|
||||
|
||||
def build(self) -> Component:
|
||||
return Rectangle(
|
||||
content=Column(
|
||||
Image(from_root(f"src/elm/assets/img/{self.image_name}"), fill_mode="zoom"),
|
||||
Column(
|
||||
Text(self.heading_text, style="heading3", fill=Color.from_hex("51ffef"), overflow="wrap" if self.session.is_mobile() else "ellipsize", margin_bottom=1.5),
|
||||
Text(self.article_text, overflow="wrap", margin_bottom=1.5),
|
||||
Rectangle(content=Row(), shadow_color=self.session.theme.text_color, shadow_radius=0.1, min_height=0.1, margin_bottom=1.5),
|
||||
Text(self.date, overflow="wrap", justify="right"),
|
||||
margin=2
|
||||
),
|
||||
proportions=[0.8, 1]
|
||||
),
|
||||
fill=self.session.theme.box_color,
|
||||
stroke_width=0.1,
|
||||
stroke_color=self.session.theme.box_border_color,
|
||||
min_height=20
|
||||
)
|
||||
|
||||
class LandingPageBoxHalf(Component):
|
||||
image_name: str
|
||||
heading_text: str
|
||||
article_text: str
|
||||
link: str
|
||||
|
||||
def build(self) -> Component:
|
||||
return PointerEventListener(
|
||||
content=Rectangle(
|
||||
content=Column(
|
||||
Rectangle(
|
||||
content=Rectangle(
|
||||
content=Text(self.heading_text, margin=0.5, selectable=False, overflow="wrap"),
|
||||
fill=self.session.theme.header_box_background_color,
|
||||
margin=0.4
|
||||
),
|
||||
stroke_width=0.1,
|
||||
stroke_color=self.session.theme.box_border_color,
|
||||
),
|
||||
Row(
|
||||
Rectangle(
|
||||
content=Image(
|
||||
from_root(f"src/elm/assets/img/{self.image_name}")
|
||||
),
|
||||
stroke_width=0.1,
|
||||
stroke_color=self.session.theme.box_border_color,
|
||||
margin_right=1,
|
||||
min_width=4 if self.session.is_mobile() else 10
|
||||
),
|
||||
Text(
|
||||
self.article_text,
|
||||
overflow="wrap",
|
||||
grow_x=True,
|
||||
selectable=False,
|
||||
font_size=0.8
|
||||
),
|
||||
margin=1
|
||||
),
|
||||
Spacer()
|
||||
),
|
||||
fill=self.session.theme.box_color,
|
||||
stroke_width=0.1,
|
||||
stroke_color=self.session.theme.box_border_color,
|
||||
min_height=12,
|
||||
cursor="pointer"
|
||||
),
|
||||
on_press=lambda _: self.session.open_url_in_browser(self.link)
|
||||
)
|
||||
Reference in New Issue
Block a user