Skip to content

Commit 6c799f0

Browse files
committed
power analysis page MVP created
1 parent 8695d6b commit 6c799f0

File tree

7 files changed

+282
-44
lines changed

7 files changed

+282
-44
lines changed

src/nicegui_ui/layout/sections/header.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
def create_header(on_assist_btn_click: Callable[[], None]) -> None:
55

6-
header = ui.header(bordered=True).classes('bg-surface text-black shadow-sm q-pa-xs')
6+
header = ui.header(bordered=True).classes('bg-surface text-black q-pa-xs') #shadow-[0_8px_8px_-12px_rgba(0,0,0,0.25)]
77
header.classes.remove('nicegui-header')
88

99
with header:

src/nicegui_ui/layout/sections/left_drawer.py

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -3,55 +3,52 @@
33
from functools import partial
44
from dataclasses import dataclass
55

6-
async def expand_left_drawer(left_drawer: LeftDrawer):
7-
if 'mini' in left_drawer._props:
8-
left_drawer.props(remove='mini')
9-
10-
async def collapse_left_drawer(left_drawer: LeftDrawer):
11-
if 'mini' not in left_drawer._props:
12-
left_drawer.props('mini')
13-
146
@dataclass(slots=True)
157
class NavigationElement:
168
text: str
179
icon: str
1810
link: str
1911

20-
21-
def create_nav_element(element: NavigationElement):
22-
with ui.item(on_click=lambda: ui.navigate.to(element.link)):
23-
with ui.item_section().props('avatar'):
24-
ui.icon(element.icon, color='black')
25-
with ui.item_section():
26-
ui.item_label(element.text)
27-
28-
nav_element_list = [
12+
navigation_element_list = [
2913
NavigationElement('Home', 'sym_r_home', '/home'),
3014
NavigationElement('Experiments', 'sym_r_experiment', '/experiments'),
31-
NavigationElement('Planner', 'query_stats', '/planner'),
15+
NavigationElement('Power Analysis', 'sym_r_calculate', '/planner'),
3216
NavigationElement('Data and Metrics', 'sym_r_database', '/data'),
3317
NavigationElement('Jobs', 'sym_r_developer_board', '/jobs'),
3418
NavigationElement('Documentation', 'sym_r_article', '/documents'),
3519
NavigationElement('Settings', 'sym_r_settings', '/settings'),
3620
]
3721

38-
def create_navigation_list():
39-
with ui.list().classes('q-px-none'):
22+
def expand_left_drawer(left_drawer: LeftDrawer):
23+
if 'mini' in left_drawer._props:
24+
left_drawer.props(remove='mini')
25+
26+
def collapse_left_drawer(left_drawer: LeftDrawer):
27+
if 'mini' not in left_drawer._props:
28+
left_drawer.props('mini')
29+
30+
def create_navigation_list(nav_element_list: list[NavigationElement]):
31+
with ui.list().classes('q-pa-none'):
4032
for element in nav_element_list:
41-
create_nav_element(element)
33+
with ui.item(on_click=partial(ui.navigate.to, element.link)).classes('q-pa-none') as item:
34+
#todo: create if active -> item.props('active active-class=bg-grey-3')
35+
with ui.item_section().props('avatar').classes('content-center q-pr-none'):
36+
ui.icon(element.icon, color='black').classes('q-pa-none')
37+
with ui.item_section():
38+
ui.item_label(element.text)
4239

4340
def create_left_drawer() -> LeftDrawer:
4441
left_drawer = (
45-
ui.left_drawer(value=False, top_corner=False, bordered=True)
42+
ui.left_drawer(value=True, top_corner=False, bordered=True)
4643
.props('show-if-above mini mini-to-overlay width=200')
47-
.classes('q-pa-none')
44+
.classes('q-pa-none') #shadow-[8px_0_8px_-12px_rgba(0,0,0,0.25)]
4845
)
4946
left_drawer.classes.remove('nicegui-drawer')
5047

5148
left_drawer.on('mouseenter', partial(expand_left_drawer, left_drawer))
5249
left_drawer.on('mouseleave', partial(collapse_left_drawer, left_drawer))
5350

5451
with left_drawer:
55-
create_navigation_list()
52+
create_navigation_list(navigation_element_list)
5653

5754
return left_drawer

src/nicegui_ui/layout/sections/right_drawer.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
def create_right_drawer() -> RightDrawer:
55
right_drawer = (
66
ui.right_drawer(value=False, top_corner=True, bordered=True, fixed=False)
7-
.props('width=450 bordered')
8-
.classes('h-full q-pa-sm')
7+
.props('width=400 bordered')
8+
.classes('height-full')
99
)
1010
return right_drawer

src/nicegui_ui/layout/shell.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,12 @@
44
from src.nicegui_ui.layout.sections.right_drawer import create_right_drawer
55
from src.nicegui_ui.layout.sections.left_drawer import create_left_drawer
66
from src.nicegui_ui.layout.sections.header import create_header
7-
from src.nicegui_ui.layout.styling import apply_colors_theme
7+
from src.nicegui_ui.layout.styling import apply_colors_theme, apply_styles_theme
88

99

1010
async def create_shell():
1111
"""Create the shell for the application."""
12-
13-
apply_colors_theme()
12+
apply_styles_theme()
1413
left_drawer = create_left_drawer()
1514
right_drawer = create_right_drawer()
1615
create_header(right_drawer.toggle)

src/nicegui_ui/layout/styling.py

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,29 @@
11
from nicegui import ui
22

3+
COLORS = {
4+
"primary": '#1C1C1C', # primary emphasis (buttons, active tabs)
5+
"secondary": '#ECEBE4', # soft neutral
6+
"accent": '#1C1C1C', # keep it monochrome
7+
# custom named colors
8+
"ink": '#1C1C1C',
9+
"bg": '#FAFAFF',
10+
"surface": '#FFFFFF',
11+
"surface2": '#EEF0F2',
12+
"surfacewarm":'#ECEBE4',
13+
"border": '#E7E9EC',
14+
}
15+
316
def apply_colors_theme():
417
ui.colors(
5-
# brand colors (Quasar)
6-
primary ='#1C1C1C', # primary emphasis (buttons, active tabs)
7-
secondary ='#ECEBE4', # soft neutral
8-
accent ='#1C1C1C', # keep it monochrome
9-
# custom named colors
10-
ink ='#1C1C1C',
11-
bg ='#FAFAFF',
12-
surface ='#FFFFFF',
13-
surface2 ='#EEF0F2',
14-
surfacewarm='#ECEBE4',
15-
border ='#E7E9EC',
16-
)
18+
**COLORS
19+
)
20+
ui.query('body').style('background-color: var(--q-surfacewarm);')
21+
22+
def apply_styles_theme():
23+
ui.add_css('''
24+
:root {
25+
--nicegui-default-padding: 0rem;
26+
--nicegui-default-gap: 0rem;
27+
}
28+
''')
29+
apply_colors_theme()

src/nicegui_ui/main.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from nicegui import ui
22
from src.nicegui_ui.layout.shell import create_shell
3+
from src.nicegui_ui.pages.power_analysis import render_power_analysis_page
34

45
async def home_page():
56
ui.label('Home')
@@ -31,11 +32,12 @@ async def main():
3132
'/': home_page,
3233
'/home': home_page,
3334
'/experiments': experiments_page,
34-
'/planner': planner_page,
35+
'/planner': render_power_analysis_page,
3536
'/data': data_page,
3637
'/jobs': jobs_page,
3738
'/documents': documents_page,
3839
'/settings': settings_page,
39-
})
40+
}).classes('full-width', remove='')
41+
4042

4143
ui.run()

0 commit comments

Comments
 (0)