diff --git a/assets/images/admin.png b/assets/images/admin.png new file mode 100644 index 0000000..f3c7c21 Binary files /dev/null and b/assets/images/admin.png differ diff --git a/assets/images/mobile.png b/assets/images/mobile.png new file mode 100644 index 0000000..431b10f Binary files /dev/null and b/assets/images/mobile.png differ diff --git a/assets/images/shop.png b/assets/images/shop.png new file mode 100644 index 0000000..d8e2c44 Binary files /dev/null and b/assets/images/shop.png differ diff --git a/assets/images/tms.png b/assets/images/tms.png new file mode 100644 index 0000000..93cf74e Binary files /dev/null and b/assets/images/tms.png differ diff --git a/home.py b/home.py index 993c5bf..83f0f7e 100644 --- a/home.py +++ b/home.py @@ -97,6 +97,24 @@ class Home: col=12, ) + self.selected_image = ft.Image( + src="images/logo.png", + expand=True, + fit=ft.ImageFit.CONTAIN, + ) + + self.image_zoom_dialog = ft.AlertDialog( + content=ft.Column( + [ + self.selected_image + ], + width=800, + height=800, + alignment=ft.MainAxisAlignment.CENTER, + horizontal_alignment=ft.CrossAxisAlignment.CENTER + ) + ) + def on_resize(self, e): self.page.update() @@ -287,8 +305,8 @@ class Home: ) def _technologies_section(self) -> ft.Control: - tech_chips = ["Python","Flask","Flet","Flutter"] if self.page.width > 900 else ["Python","Flask","Flet"] - tech_chips2 = ["Docker","PostgreSQL / MariaDB","Linux server"] if self.page.width > 900 else ["Flutter", "Docker"] + tech_chips = ["Python","Flask","Flet","Flutter", "Kivy"] if self.page.width > 900 else ["Python","Flask","Flet"] + tech_chips2 = ["Docker","PostgreSQL / MariaDB","Linux server"] if self.page.width > 900 else ["Flutter", "Docker", "Kivy"] tech_chips3 = [] if self.page.width > 900 else ["PostgreSQL / MariaDB","Linux server"] return ft.Container( @@ -330,6 +348,12 @@ class Home: expand=True ) + def on_zoom_image_btn_click(self, item): + self.selected_image.src = f'images/{item}' + if self.page.width > 600: + self.page.open(self.image_zoom_dialog) + self.selected_image.update() + def _portfolio_teaser_section(self) -> ft.Control: return ft.Row( [ @@ -338,12 +362,81 @@ class Home: controls=[ self._section_title("Proiecte & experiență"), ft.Text( - "Lucrăm la aplicații de gestiune, programări medicale, management transport și magazine online. " - "Site‑ul de prezentare va include în curând studii de caz și exemple concrete.", + "Lucrăm la aplicații de gestiune, programări medicale, management transport, magazine online si aplicatii mobile.", + #"Site‑ul de prezentare va include în curând studii de caz și exemple concrete.", size=15, text_align=ft.TextAlign.CENTER, color=ft.Colors.BLUE_GREY_700, ), + ft.Row( + [ + ft.Card( + content = ft.GestureDetector( + content = ft.Container( + content = ft.Image( + src = "images/tms.png", + fit = ft.ImageFit.CONTAIN, + width=300, + height=300 + ), + padding=10, + ), + on_tap = lambda e, x="tms.png": self.on_zoom_image_btn_click(x), + mouse_cursor=ft.MouseCursor.ZOOM_IN + ), + color=ft.Colors.WHITE + ), + ft.Card( + content = ft.GestureDetector( + content = ft.Container( + content = ft.Image( + src = "images/shop.png", + fit = ft.ImageFit.CONTAIN, + width=300, + height=300 + ), + padding=10 + ), + on_tap = lambda e, x="shop.png": self.on_zoom_image_btn_click(x), + mouse_cursor=ft.MouseCursor.ZOOM_IN + ), + color=ft.Colors.WHITE + ), + ft.Card( + content = ft.GestureDetector( + content = ft.Container( + content = ft.Image( + src = "images/mobile.png", + fit = ft.ImageFit.CONTAIN, + width=300, + height=300 + ), + padding=10 + ), + on_tap = lambda e, x="mobile.png": self.on_zoom_image_btn_click(x), + mouse_cursor=ft.MouseCursor.ZOOM_IN + ), + color=ft.Colors.WHITE + ), + ft.Card( + content = ft.GestureDetector( + content = ft.Container( + content = ft.Image( + src = "images/admin.png", + fit = ft.ImageFit.CONTAIN, + width=300, + height=300 + ), + padding=10 + ), + on_tap = lambda e, x="admin.png": self.on_zoom_image_btn_click(x), + mouse_cursor=ft.MouseCursor.ZOOM_IN + ), + color=ft.Colors.WHITE + ) + ], + scroll=ft.ScrollMode.ADAPTIVE + ) ], spacing=15, horizontal_alignment=ft.CrossAxisAlignment.CENTER,