!isBulkMode && setViewOpen(true)}
>
{/* Bulk selection checkbox */}
diff --git a/k-notes-frontend/src/components/note-form.tsx b/k-notes-frontend/src/components/note-form.tsx
index dc171b8..1a3dbe7 100644
--- a/k-notes-frontend/src/components/note-form.tsx
+++ b/k-notes-frontend/src/components/note-form.tsx
@@ -100,11 +100,12 @@ export function NoteForm({ defaultValues, onSubmit, isLoading, submitLabel = "Sa
field.onChange(color.name)}
- className={`w-8 h-8 rounded-full cursor-pointer border-2 transition-all ${color.value.split(" ")[0] // Take background class
- } ${field.value === color.name
+ style={{ background: color.swatch }}
+ className={`w-8 h-8 rounded-full cursor-pointer border-2 transition-all ${
+ field.value === color.name
? "border-primary scale-110"
: "border-transparent hover:scale-105"
- }`}
+ }`}
title={color.label}
/>
))}
diff --git a/k-notes-frontend/src/components/providers.tsx b/k-notes-frontend/src/components/providers.tsx
index 5fb25ab..215a772 100644
--- a/k-notes-frontend/src/components/providers.tsx
+++ b/k-notes-frontend/src/components/providers.tsx
@@ -15,7 +15,7 @@ const queryClient = new QueryClient({
export function Providers({ children }: { children: ReactNode }) {
return (
-
+
{children}
diff --git a/k-notes-frontend/src/index.css b/k-notes-frontend/src/index.css
index 6bbd33d..4aad54f 100644
--- a/k-notes-frontend/src/index.css
+++ b/k-notes-frontend/src/index.css
@@ -1,6 +1,7 @@
@import "tailwindcss";
@import "tw-animate-css";
@plugin "@tailwindcss/typography";
+@import "./aero-theme.css";
@custom-variant dark (&:is(.dark *));
@@ -50,71 +51,6 @@
:root {
--radius: 0.625rem;
- --background: oklch(1 0 0);
- --foreground: oklch(0.145 0 0);
- --card: oklch(1 0 0);
- --card-foreground: oklch(0.145 0 0);
- --popover: oklch(1 0 0);
- --popover-foreground: oklch(0.145 0 0);
- --primary: oklch(0.205 0 0);
- --primary-foreground: oklch(0.985 0 0);
- --secondary: oklch(0.97 0 0);
- --secondary-foreground: oklch(0.205 0 0);
- --muted: oklch(0.97 0 0);
- --muted-foreground: oklch(0.556 0 0);
- --accent: oklch(0.97 0 0);
- --accent-foreground: oklch(0.205 0 0);
- --destructive: oklch(0.577 0.245 27.325);
- --border: oklch(0.922 0 0);
- --input: oklch(0.922 0 0);
- --ring: oklch(0.708 0 0);
- --chart-1: oklch(0.646 0.222 41.116);
- --chart-2: oklch(0.6 0.118 184.704);
- --chart-3: oklch(0.398 0.07 227.392);
- --chart-4: oklch(0.828 0.189 84.429);
- --chart-5: oklch(0.769 0.188 70.08);
- --sidebar: oklch(0.985 0 0);
- --sidebar-foreground: oklch(0.145 0 0);
- --sidebar-primary: oklch(0.205 0 0);
- --sidebar-primary-foreground: oklch(0.985 0 0);
- --sidebar-accent: oklch(0.97 0 0);
- --sidebar-accent-foreground: oklch(0.205 0 0);
- --sidebar-border: oklch(0.922 0 0);
- --sidebar-ring: oklch(0.708 0 0);
-}
-
-.dark {
- --background: oklch(0.145 0 0);
- --foreground: oklch(0.985 0 0);
- --card: oklch(0.205 0 0);
- --card-foreground: oklch(0.985 0 0);
- --popover: oklch(0.205 0 0);
- --popover-foreground: oklch(0.985 0 0);
- --primary: oklch(0.922 0 0);
- --primary-foreground: oklch(0.205 0 0);
- --secondary: oklch(0.269 0 0);
- --secondary-foreground: oklch(0.985 0 0);
- --muted: oklch(0.269 0 0);
- --muted-foreground: oklch(0.708 0 0);
- --accent: oklch(0.269 0 0);
- --accent-foreground: oklch(0.985 0 0);
- --destructive: oklch(0.704 0.191 22.216);
- --border: oklch(1 0 0 / 10%);
- --input: oklch(1 0 0 / 15%);
- --ring: oklch(0.556 0 0);
- --chart-1: oklch(0.488 0.243 264.376);
- --chart-2: oklch(0.696 0.17 162.48);
- --chart-3: oklch(0.769 0.188 70.08);
- --chart-4: oklch(0.627 0.265 303.9);
- --chart-5: oklch(0.645 0.246 16.439);
- --sidebar: oklch(0.205 0 0);
- --sidebar-foreground: oklch(0.985 0 0);
- --sidebar-primary: oklch(0.488 0.243 264.376);
- --sidebar-primary-foreground: oklch(0.985 0 0);
- --sidebar-accent: oklch(0.269 0 0);
- --sidebar-accent-foreground: oklch(0.985 0 0);
- --sidebar-border: oklch(1 0 0 / 10%);
- --sidebar-ring: oklch(0.556 0 0);
}
@layer base {
diff --git a/k-notes-frontend/src/lib/constants.ts b/k-notes-frontend/src/lib/constants.ts
index 80fc2b6..b30ccd0 100644
--- a/k-notes-frontend/src/lib/constants.ts
+++ b/k-notes-frontend/src/lib/constants.ts
@@ -1,17 +1,19 @@
const NOTE_COLORS = [
- { name: "DEFAULT", value: "bg-background border-border", label: "Default" },
- { name: "RED", value: "bg-red-50 border-red-200 dark:bg-red-950 dark:border-red-900", label: "Red" },
- { name: "ORANGE", value: "bg-orange-50 border-orange-200 dark:bg-orange-950 dark:border-orange-900", label: "Orange" },
- { name: "YELLOW", value: "bg-yellow-50 border-yellow-200 dark:bg-yellow-950 dark:border-yellow-900", label: "Yellow" },
- { name: "GREEN", value: "bg-green-50 border-green-200 dark:bg-green-950 dark:border-green-900", label: "Green" },
- { name: "TEAL", value: "bg-teal-50 border-teal-200 dark:bg-teal-950 dark:border-teal-900", label: "Teal" },
- { name: "BLUE", value: "bg-blue-50 border-blue-200 dark:bg-blue-950 dark:border-blue-900", label: "Blue" },
- { name: "INDIGO", value: "bg-indigo-50 border-indigo-200 dark:bg-indigo-950 dark:border-indigo-900", label: "Indigo" },
+ { name: "DEFAULT", label: "Default", glass: null, borderClass: "", swatch: "rgba(255,255,255,0.25)" },
+ { name: "RED", label: "Red", glass: "rgba(239, 68, 68, 0.22)", borderClass: "border-red-400/50", swatch: "rgb(239, 68, 68)" },
+ { name: "ORANGE", label: "Orange", glass: "rgba(249, 115, 22, 0.22)", borderClass: "border-orange-400/50", swatch: "rgb(249, 115, 22)" },
+ { name: "YELLOW", label: "Yellow", glass: "rgba(234, 179, 8, 0.22)", borderClass: "border-yellow-400/50", swatch: "rgb(234, 179, 8)" },
+ { name: "GREEN", label: "Green", glass: "rgba(34, 197, 94, 0.22)", borderClass: "border-green-400/50", swatch: "rgb(34, 197, 94)" },
+ { name: "TEAL", label: "Teal", glass: "rgba(20, 184, 166, 0.22)", borderClass: "border-teal-400/50", swatch: "rgb(20, 184, 166)" },
+ { name: "BLUE", label: "Blue", glass: "rgba(59, 130, 246, 0.22)", borderClass: "border-blue-400/50", swatch: "rgb(59, 130, 246)" },
+ { name: "INDIGO", label: "Indigo", glass: "rgba(99, 102, 241, 0.22)", borderClass: "border-indigo-400/50", swatch: "rgb(99, 102, 241)" },
];
-export function getNoteColor(colorName: string | undefined): string {
+export function getNoteColor(colorName: string | undefined): { glass: string | null; borderClass: string } {
const color = NOTE_COLORS.find(c => c.name === colorName);
- return color ? color.value : NOTE_COLORS[0].value;
+ return color
+ ? { glass: color.glass, borderClass: color.borderClass }
+ : { glass: null, borderClass: "" };
}
export { NOTE_COLORS };
diff --git a/k-notes-frontend/src/pages/register.tsx b/k-notes-frontend/src/pages/register.tsx
index a5f35d0..23be79b 100644
--- a/k-notes-frontend/src/pages/register.tsx
+++ b/k-notes-frontend/src/pages/register.tsx
@@ -33,6 +33,11 @@ export default function RegisterPage() {
const { t } = useTranslation();
const [settingsOpen, setSettingsOpen] = useState(false);
+ const form = useForm({
+ resolver: zodResolver(registerSchema),
+ defaultValues: { email: "", password: "", confirmPassword: "" },
+ });
+
useEffect(() => {
if (!isConfigLoading && config?.allow_registration === false) {
toast.error(t("Registration is currently disabled"));
@@ -44,11 +49,6 @@ export default function RegisterPage() {
return null;
}
- const form = useForm({
- resolver: zodResolver(registerSchema),
- defaultValues: { email: "", password: "", confirmPassword: "" },
- });
-
const onSubmit = (data: RegisterFormValues) => {
register({ email: data.email, password: data.password }, {
onError: (error: any) => {