Compare commits
2 Commits
370521fbc0
...
05b98f96ca
Author | SHA1 | Date | |
---|---|---|---|
05b98f96ca | |||
5bab9ac25b |
6
.gitignore
vendored
6
.gitignore
vendored
@ -46,4 +46,8 @@ next-env.d.ts
|
||||
bun.lock*
|
||||
|
||||
# VSCode
|
||||
.vscode/
|
||||
.vscode/
|
||||
|
||||
# env
|
||||
.env*
|
||||
!.env.example
|
@ -19,6 +19,7 @@
|
||||
"next-themes": "^0.4.6",
|
||||
"react": "^19.0.0",
|
||||
"react-dom": "^19.0.0",
|
||||
"react-icons": "^5.5.0",
|
||||
"tailwind-merge": "^3.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
@ -6,8 +6,7 @@
|
||||
@theme inline {
|
||||
--color-background: var(--background);
|
||||
--color-foreground: var(--foreground);
|
||||
--font-sans: var(--font-space-mono);
|
||||
--font-mono: var(--font-space-mono);
|
||||
--font-sans: var(--font-plex-sans);
|
||||
--color-sidebar-ring: var(--sidebar-ring);
|
||||
--color-sidebar-border: var(--sidebar-border);
|
||||
--color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
|
||||
|
@ -1,29 +1,27 @@
|
||||
import type { Metadata } from "next"
|
||||
import { Space_Mono } from "next/font/google"
|
||||
import { IBM_Plex_Sans } from "next/font/google"
|
||||
import "./globals.css"
|
||||
import { ThemeProvider } from "@/components/ThemeProvider"
|
||||
|
||||
const spaceMono = Space_Mono({
|
||||
variable: "--font-space-mono",
|
||||
const ibmPlexSans = IBM_Plex_Sans({
|
||||
variable: "--font-plex-sans",
|
||||
subsets: ["latin"],
|
||||
weight: ["400", "700"],
|
||||
})
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: `${process.env.NEXT_PUBLIC_APP_NAME + (process.env.NEXT_PUBLIC_APP_NAME ? " " : "")}Status`,
|
||||
description: `${process.env.NEXT_PUBLIC_APP_NAME + (process.env.NEXT_PUBLIC_APP_NAME ? " " : "")}Status`,
|
||||
title: `${(process.env.NEXT_PUBLIC_APP_NAME || "Status")}`,
|
||||
description: `${(process.env.NEXT_PUBLIC_APP_NAME || "Status")}`,
|
||||
}
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
children: React.ReactNode;
|
||||
children: React.ReactNode
|
||||
}>) {
|
||||
return (
|
||||
<html lang="en" suppressHydrationWarning>
|
||||
<body
|
||||
className={`${spaceMono.variable} antialiased`}
|
||||
>
|
||||
<body className={`${ibmPlexSans.variable} antialiased`}>
|
||||
<ThemeProvider
|
||||
attribute="class"
|
||||
defaultTheme="system"
|
||||
|
@ -1,5 +1,52 @@
|
||||
import { TbServerBolt } from "react-icons/tb"
|
||||
import {
|
||||
Card,
|
||||
CardContent,
|
||||
CardHeader,
|
||||
CardTitle,
|
||||
} from "@/components/ui/card"
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<h1>Hello World</h1>
|
||||
<div className="flex flex-col h-screen w-full">
|
||||
<div className="flex flex-col items-center justify-center mt-12">
|
||||
<TbServerBolt size={78} className="my-4" />
|
||||
<h1 className="text-4xl font-bold">{process.env.NEXT_PUBLIC_APP_NAME || "Status"}</h1>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-10 mt-16 px-10">
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle className="text-2xl">Core Services</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="-mt-1">
|
||||
<p>Nothing here yet</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle className="text-2xl">Some Category</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="-mt-1">
|
||||
<p>Nothing here yet</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle className="text-2xl">Some Category</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="-mt-1">
|
||||
<p>Nothing here yet</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
<Card>
|
||||
<CardHeader>
|
||||
<CardTitle className="text-2xl">Some Category</CardTitle>
|
||||
</CardHeader>
|
||||
<CardContent className="-mt-1">
|
||||
<p>Nothing here yet</p>
|
||||
</CardContent>
|
||||
</Card>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
92
src/components/ui/card.tsx
Normal file
92
src/components/ui/card.tsx
Normal file
@ -0,0 +1,92 @@
|
||||
import * as React from "react"
|
||||
|
||||
import { cn } from "@/lib/utils"
|
||||
|
||||
function Card({ className, ...props }: React.ComponentProps<"div">) {
|
||||
return (
|
||||
<div
|
||||
data-slot="card"
|
||||
className={cn(
|
||||
"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",
|
||||
className
|
||||
)}
|
||||
{...props}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
function CardHeader({ className, ...props }: React.ComponentProps<"div">) {
|
||||
return (
|
||||
<div
|
||||
data-slot="card-header"
|
||||
className={cn(
|
||||
"@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
|
||||
className
|
||||
)}
|
||||
{...props}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
function CardTitle({ className, ...props }: React.ComponentProps<"div">) {
|
||||
return (
|
||||
<div
|
||||
data-slot="card-title"
|
||||
className={cn("leading-none font-semibold", className)}
|
||||
{...props}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
function CardDescription({ className, ...props }: React.ComponentProps<"div">) {
|
||||
return (
|
||||
<div
|
||||
data-slot="card-description"
|
||||
className={cn("text-muted-foreground text-sm", className)}
|
||||
{...props}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
function CardAction({ className, ...props }: React.ComponentProps<"div">) {
|
||||
return (
|
||||
<div
|
||||
data-slot="card-action"
|
||||
className={cn(
|
||||
"col-start-2 row-span-2 row-start-1 self-start justify-self-end",
|
||||
className
|
||||
)}
|
||||
{...props}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
function CardContent({ className, ...props }: React.ComponentProps<"div">) {
|
||||
return (
|
||||
<div
|
||||
data-slot="card-content"
|
||||
className={cn("px-6", className)}
|
||||
{...props}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
function CardFooter({ className, ...props }: React.ComponentProps<"div">) {
|
||||
return (
|
||||
<div
|
||||
data-slot="card-footer"
|
||||
className={cn("flex items-center px-6 [.border-t]:pt-6", className)}
|
||||
{...props}
|
||||
/>
|
||||
)
|
||||
}
|
||||
|
||||
export {
|
||||
Card,
|
||||
CardHeader,
|
||||
CardFooter,
|
||||
CardTitle,
|
||||
CardAction,
|
||||
CardDescription,
|
||||
CardContent,
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user