81 lines
3.2 KiB
Python
81 lines
3.2 KiB
Python
from __future__ import annotations
|
|
|
|
from rio import Component, Column, Text, page, Rectangle
|
|
|
|
from elm.services import PreloadService
|
|
|
|
|
|
@page(name="Rules", url_segment="rules")
|
|
class RulesPage(Component):
|
|
def build(self) -> Component:
|
|
return Column(
|
|
Rectangle(
|
|
content=Column(
|
|
Rectangle(
|
|
content=Rectangle(
|
|
content=Text("Regeln", 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,
|
|
),
|
|
*[Column(
|
|
Text(
|
|
rule.split(":")[0],
|
|
font_size=0.8 if self.session.is_mobile() else 1.2,
|
|
fill=self.session.theme.primary_color,
|
|
overflow="wrap"
|
|
),
|
|
Text(
|
|
rule.split(":")[1].strip(),
|
|
font_size=0.7 if self.session.is_mobile() else 1,
|
|
overflow="wrap",
|
|
margin_left=1
|
|
),
|
|
margin=1,
|
|
spacing=1
|
|
) for rule in self.session[PreloadService].rules]
|
|
),
|
|
fill=self.session.theme.box_color,
|
|
stroke_width=0.1,
|
|
stroke_color=self.session.theme.box_border_color
|
|
),
|
|
Rectangle(
|
|
content=Column(
|
|
Rectangle(
|
|
content=Rectangle(
|
|
content=Text("AGB", 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,
|
|
),
|
|
*[Column(
|
|
Text(
|
|
text=paragraph,
|
|
font_size=0.8 if self.session.is_mobile() else 1.2,
|
|
fill=self.session.theme.primary_color,
|
|
overflow="wrap"
|
|
),
|
|
*[Text(
|
|
section,
|
|
font_size=0.7 if self.session.is_mobile() else 1,
|
|
overflow="wrap",
|
|
margin_left=1
|
|
) for section in self.session[PreloadService].gtc[paragraph]],
|
|
margin=1,
|
|
spacing=1
|
|
) for paragraph in self.session[PreloadService].gtc]
|
|
),
|
|
fill=self.session.theme.box_color,
|
|
stroke_width=0.1,
|
|
stroke_color=self.session.theme.box_border_color
|
|
),
|
|
grow_x=True,
|
|
grow_y=True,
|
|
spacing=1,
|
|
margin=0 if self.session.is_mobile() else 1
|
|
)
|