diff --git a/packages/stack-server/src/app/(main)/(protected)/(outside-dashbaord)/loading.tsx b/packages/stack-server/src/app/(main)/(protected)/(outside-dashbaord)/loading.tsx index 4349ac3a6..9795fb2ff 100644 --- a/packages/stack-server/src/app/(main)/(protected)/(outside-dashbaord)/loading.tsx +++ b/packages/stack-server/src/app/(main)/(protected)/(outside-dashbaord)/loading.tsx @@ -1,3 +1,5 @@ +import { SiteLoadingIndicator } from "@/components/site-loading-indicator"; + export default function Loading() { - return null; + return ; } diff --git a/packages/stack-server/src/app/(main)/(protected)/projects/[projectId]/loading.tsx b/packages/stack-server/src/app/(main)/(protected)/projects/[projectId]/loading.tsx index 4349ac3a6..9795fb2ff 100644 --- a/packages/stack-server/src/app/(main)/(protected)/projects/[projectId]/loading.tsx +++ b/packages/stack-server/src/app/(main)/(protected)/projects/[projectId]/loading.tsx @@ -1,3 +1,5 @@ +import { SiteLoadingIndicator } from "@/components/site-loading-indicator"; + export default function Loading() { - return null; + return ; } diff --git a/packages/stack-server/src/app/globals.css b/packages/stack-server/src/app/globals.css index d5b44e4be..df28bae3a 100644 --- a/packages/stack-server/src/app/globals.css +++ b/packages/stack-server/src/app/globals.css @@ -1,76 +1,116 @@ @tailwind base; - @tailwind components; - @tailwind utilities; +@tailwind components; +@tailwind utilities; - @layer base { - :root { - --background: 0 0% 100%; - --foreground: 240 10% 3.9%; +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 240 10% 3.9%; - --card: 0 0% 100%; - --card-foreground: 240 10% 3.9%; + --card: 0 0% 100%; + --card-foreground: 240 10% 3.9%; - --popover: 0 0% 100%; - --popover-foreground: 240 10% 3.9%; + --popover: 0 0% 100%; + --popover-foreground: 240 10% 3.9%; - --primary: 240 5.9% 10%; - --primary-foreground: 0 0% 98%; + --primary: 240 5.9% 10%; + --primary-foreground: 0 0% 98%; - --secondary: 240 4.8% 95.9%; - --secondary-foreground: 240 5.9% 10%; + --secondary: 240 4.8% 95.9%; + --secondary-foreground: 240 5.9% 10%; - --muted: 240 4.8% 95.9%; - --muted-foreground: 240 3.8% 46.1%; + --muted: 240 4.8% 95.9%; + --muted-foreground: 240 3.8% 46.1%; - --accent: 240 4.8% 95.9%; - --accent-foreground: 240 5.9% 10%; + --accent: 240 4.8% 95.9%; + --accent-foreground: 240 5.9% 10%; - --destructive: 0 84.2% 60.2%; - --destructive-foreground: 0 0% 98%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 0 0% 98%; - --border: 240 5.9% 90%; - --input: 240 5.9% 90%; - --ring: 240 10% 3.9%; + --border: 240 5.9% 90%; + --input: 240 5.9% 90%; + --ring: 240 10% 3.9%; - --radius: 0.5rem; - } - - .dark { - --background: 240 10% 3.9%; - --foreground: 0 0% 98%; - - --card: 240 10% 3.9%; - --card-foreground: 0 0% 98%; - - --popover: 240 10% 3.9%; - --popover-foreground: 0 0% 98%; - - --primary: 0 0% 98%; - --primary-foreground: 240 5.9% 10%; - - --secondary: 240 3.7% 15.9%; - --secondary-foreground: 0 0% 98%; - - --muted: 240 3.7% 15.9%; - --muted-foreground: 240 5% 64.9%; - - --accent: 240 3.7% 15.9%; - --accent-foreground: 0 0% 98%; - - --destructive: 0 62.8% 50%; - --destructive-foreground: 0 0% 98%; - - --border: 240 3.7% 15.9%; - --input: 240 3.7% 15.9%; - --ring: 240 4.9% 83.9%; - } + --radius: 0.5rem; } - @layer base { - * { - @apply border-border; - } - body { - @apply bg-background text-foreground; - } - } \ No newline at end of file + .dark { + --background: 240 10% 3.9%; + --foreground: 0 0% 98%; + + --card: 240 10% 3.9%; + --card-foreground: 0 0% 98%; + + --popover: 240 10% 3.9%; + --popover-foreground: 0 0% 98%; + + --primary: 0 0% 98%; + --primary-foreground: 240 5.9% 10%; + + --secondary: 240 3.7% 15.9%; + --secondary-foreground: 0 0% 98%; + + --muted: 240 3.7% 15.9%; + --muted-foreground: 240 5% 64.9%; + + --accent: 240 3.7% 15.9%; + --accent-foreground: 0 0% 98%; + + --destructive: 0 62.8% 50%; + --destructive-foreground: 0 0% 98%; + + --border: 240 3.7% 15.9%; + --input: 240 3.7% 15.9%; + --ring: 240 4.9% 83.9%; + } +} + +@layer base { + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } +} + +.loader { + top: 0; + left: 0; + width: 100vw; + height: 3px; + position: absolute; + background: transparent; + overflow: hidden; + z-index: 9999; +} +.loader::after { + content: ''; + width: 40%; + height: 3px; + position: absolute; + top: 0; + left: 0; + box-sizing: border-box; + animation: animloader 1s linear infinite; + @apply bg-primary; +} + +@media (min-width: 800px) { + .loader::after { + width: 20%; + animation: animloader 2s linear infinite; + } +} + +@keyframes animloader { + 0% { + left: 0; + transform: translateX(-100%); + } + 100% { + left: 100%; + transform: translateX(0%); + } +} \ No newline at end of file diff --git a/packages/stack-server/src/app/loading.tsx b/packages/stack-server/src/app/loading.tsx index 4349ac3a6..9795fb2ff 100644 --- a/packages/stack-server/src/app/loading.tsx +++ b/packages/stack-server/src/app/loading.tsx @@ -1,3 +1,5 @@ +import { SiteLoadingIndicator } from "@/components/site-loading-indicator"; + export default function Loading() { - return null; + return ; } diff --git a/packages/stack-server/src/components/site-loading-indicator.tsx b/packages/stack-server/src/components/site-loading-indicator.tsx new file mode 100644 index 000000000..76256ecbb --- /dev/null +++ b/packages/stack-server/src/components/site-loading-indicator.tsx @@ -0,0 +1,3 @@ +export function SiteLoadingIndicator() { + return ; +} \ No newline at end of file