+
{children}
{afterChildren}
diff --git a/frontend/src/core/components/css/searchBar.scss b/frontend/src/core/components/css/searchBar.module.scss
similarity index 70%
rename from frontend/src/core/components/css/searchBar.scss
rename to frontend/src/core/components/css/searchBar.module.scss
index 2d732e5..a63d859 100644
--- a/frontend/src/core/components/css/searchBar.scss
+++ b/frontend/src/core/components/css/searchBar.module.scss
@@ -3,17 +3,19 @@
$font-size: 16px;
// Search container
-.search-parent {
+.searchParent {
position: relative;
height: 100%;
width: 100%;
}
// SearchBar component styles
-.search-bar-container {
+.searchBarContainer {
position: absolute;
z-index: 1001;
overflow: hidden;
+ display: flex;
+ flex-direction: column;
// All properties animate together simultaneously
transition:
@@ -47,7 +49,7 @@ $font-size: 16px;
}
// Single search bar element
- .search-bar {
+ .searchBar {
display: flex;
align-items: center;
padding: 0 16px;
@@ -55,7 +57,7 @@ $font-size: 16px;
gap: 12px;
cursor: pointer;
- .search-icon {
+ .searchIcon {
display: flex;
align-items: center;
justify-content: center;
@@ -69,18 +71,18 @@ $font-size: 16px;
}
}
- .search-input-container {
+ .searchInputContainer {
flex: 1;
display: flex;
align-items: center;
- .search-placeholder {
+ .searchPlaceholder {
color: $color-dark-on-surface-variant;
font-size: $font-size;
pointer-events: none;
}
- .search-input {
+ .searchInput {
flex: 1;
border: none;
outline: none;
@@ -96,7 +98,7 @@ $font-size: 16px;
}
}
- .search-clear {
+ .searchClear {
display: flex;
align-items: center;
justify-content: center;
@@ -112,43 +114,9 @@ $font-size: 16px;
}
// Results section
- .search-results {
+ .searchResults {
flex: 1;
overflow-y: auto;
-
- .search-loading {
- display: flex;
- align-items: center;
- justify-content: center;
- gap: 12px;
- padding: 32px;
- color: $color-dark-on-surface-variant;
-
- mdui-circular-progress {
- --mdui-circular-progress-color: $color-dark-primary;
- }
- }
-
- .search-empty,
- .search-hint {
- display: flex;
- align-items: center;
- justify-content: center;
- padding: 32px;
- color: $color-dark-on-surface-variant;
- text-align: center;
- }
-
- // Custom styling for search result images
- mdui-list-item {
- img[slot="icon"] {
- $size: 48px;
-
- width: $size;
- height: $size;
- border-radius: 50%;
- object-fit: cover;
- }
- }
}
}
+
diff --git a/frontend/src/core/components/css/_styled-dialog.scss b/frontend/src/core/components/css/styled-dialog.module.scss
similarity index 89%
rename from frontend/src/core/components/css/_styled-dialog.scss
rename to frontend/src/core/components/css/styled-dialog.module.scss
index 1a73f1a..a825eab 100644
--- a/frontend/src/core/components/css/_styled-dialog.scss
+++ b/frontend/src/core/components/css/styled-dialog.module.scss
@@ -6,7 +6,7 @@
$dialog-padding: 30px;
// Base Styled Dialog Styles
-.styled-dialog-backdrop {
+.styledDialogBackdrop {
position: fixed;
top: 0;
left: 0;
@@ -21,10 +21,10 @@ $dialog-padding: 30px;
padding: $dialog-padding;
box-sizing: border-box;
- .styled-dialog {
+ .styledDialog {
width: 100%;
max-width: 500px;
- max-height: calc(100vh - $dialog-padding * 2);
+ max-height: calc(100vh - #{$dialog-padding} * 2);
background: rgba($color-dark-surface-container, 0.75);
border: 1px solid rgba($color-dark-outline-variant, 0.3);
border-radius: 16px;
@@ -35,8 +35,8 @@ $dialog-padding: 30px;
display: flex;
flex-direction: column;
position: relative;
-
- .styled-dialog-content {
+
+ .styledDialogContent {
flex: 1;
overflow-y: auto;
display: flex;
diff --git a/frontend/src/css/style.scss b/frontend/src/css/style.scss
index 41491d5..2aabfc6 100644
--- a/frontend/src/css/style.scss
+++ b/frontend/src/css/style.scss
@@ -2,7 +2,6 @@
@use "components";
@use "colors" as *;
@use "material" as *;
-@use "../core/components/css/styled-dialog";
@use "fonts/montserrat";
@use "fonts/material-symbols";
@@ -17,7 +16,6 @@ body {
background-color: $color-dark-surface;
color: $color-dark-on-surface;
line-height: 1.6;
- overflow: hidden;
#main-wrapper {
flex: 1;
diff --git a/frontend/src/pages/auth/Auth.tsx b/frontend/src/pages/auth/Auth.tsx
index 65c30b5..4a24ebd 100644
--- a/frontend/src/pages/auth/Auth.tsx
+++ b/frontend/src/pages/auth/Auth.tsx
@@ -1,9 +1,10 @@
import type React from "react";
+import styles from "./auth.module.scss";
export function AuthContainer({ children }: { children?: React.ReactNode }) {
return (
-
-
+
@@ -28,7 +29,7 @@ export function AuthHeader({ title, icon, subtitle }: AuthHeaderProps) {
const iconName = typeof icon == "string" ? icon : icon.name;
return (
-
+
{iconName}
{title}
diff --git a/frontend/src/pages/auth/LoginPage.tsx b/frontend/src/pages/auth/LoginPage.tsx
index ad6de7a..15e8c60 100644
--- a/frontend/src/pages/auth/LoginPage.tsx
+++ b/frontend/src/pages/auth/LoginPage.tsx
@@ -10,7 +10,7 @@ import { useAppState } from "@/pages/chat/state";
import { initialize, isSupported, startElectronReceiver, subscribe } from "@/core/push-notifications/push-notifications";
import { isElectron } from "@/core/electron/electron";
import { useNavigate } from "react-router-dom";
-import "./auth.scss";
+import styles from "./auth.module.scss";
import useDownloadAppScreen from "@/core/hooks/useDownloadAppScreen";
import { MaterialButton, MaterialTextField } from "@/utils/material";
@@ -31,7 +31,7 @@ export default function LoginPage() {
return (
-