From abfbe9cccca03b4a39fbe97b27fdf1275bb640ee Mon Sep 17 00:00:00 2001 From: Aidan Date: Mon, 24 Feb 2025 23:11:34 -0500 Subject: [PATCH] style: add section, update/improve design and styling --- app/page.tsx | 16 ++++++------ components/pages/main/Hero.tsx | 6 ++--- components/pages/main/Navbar.tsx | 12 ++++++--- components/pages/main/PoweredBySection.tsx | 29 ++++++++++++++++++++++ 4 files changed, 50 insertions(+), 13 deletions(-) create mode 100644 components/pages/main/PoweredBySection.tsx diff --git a/app/page.tsx b/app/page.tsx index 1ec9df0..bec06bd 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,41 +1,42 @@ import Hero from "@/components/pages/main/Hero" import FeatureCard from "@/components/pages/main/FeatureCard" -import { Mail, Lock, Disc3 } from "lucide-react" +import { Mail, Lock, Disc3, Headset } from "lucide-react" import { SiGitea, SiAuthentik } from "react-icons/si"; import Navbar from "@/components/pages/main/Navbar" +import PoweredBySection from "@/components/pages/main/PoweredBySection" export default function Home() { const features = [ { title: "Email", description: "Free email service with webmail and antispam, powered by a custom docker-mailserver setup.", - link: "https://pontusmail.org/", icon: Mail, }, { title: "Password Manager", description: "Securely store and manage your passwords across devices with Vaultwarden.", - link: "https://vaultwarden.p0ntus.com/", icon: Lock, }, { title: "Git", description: "Host your repositories and run actions free of charge on our Gitea instance.", - link: "https://git.pontusmail.org/", icon: SiGitea, }, { title: "Authentik", description: "A secure single-sign-on service for easy login to your other services.", - link: "https://git.pontusmail.org/", icon: SiAuthentik, }, { title: "Music", description: "Coming soon. Host your music on our community server and stream it everywhere", - link: "https://git.pontusmail.org/", icon: Disc3, }, + { + title: "Support", + description: "Administrators are standing by most of the day via our various support channels.", + icon: Headset, + }, ] return ( @@ -43,7 +44,7 @@ export default function Home() {
-
+

Our Services

@@ -53,6 +54,7 @@ export default function Home() {
+
) diff --git a/components/pages/main/Hero.tsx b/components/pages/main/Hero.tsx index c0fdd58..2d8d191 100644 --- a/components/pages/main/Hero.tsx +++ b/components/pages/main/Hero.tsx @@ -6,10 +6,10 @@ import { ReactTyped } from "react-typed" import Link from "next/link"; const Hero = () => { - const phrases = ["developers", "students", "non-profits", "everyone"] + const phrases = ["everyone", "developers", "students", "non-profits", "teachers", "workers", "friends"] return ( -
+

@@ -19,7 +19,7 @@ const Hero = () => {

- Experience FOSS at its best with LibreCloud, a free service provider built with all kinds of people in mind. + Experience FOSS at its best with LibreCloud, a free service provider built with everyone in mind.

diff --git a/components/pages/main/Navbar.tsx b/components/pages/main/Navbar.tsx index 43f534b..be776de 100644 --- a/components/pages/main/Navbar.tsx +++ b/components/pages/main/Navbar.tsx @@ -1,8 +1,8 @@ "use client" -import { useState } from "react" +import React, { useState } from "react" import Link from "next/link" -import { Menu, X, Server, Home, User } from "lucide-react" +import { Menu, X, Server, Home, User, Rss } from "lucide-react" const Navbar = () => { const [isOpen, setIsOpen] = useState(false) @@ -21,6 +21,9 @@ const Navbar = () => { Home + + Status + Services @@ -52,6 +55,9 @@ const Navbar = () => { Home + + Status + Services @@ -89,7 +95,7 @@ interface MobileNavLinkProps { const MobileNavLink: React.FC = ({ href, icon: Icon, children }) => ( {children} diff --git a/components/pages/main/PoweredBySection.tsx b/components/pages/main/PoweredBySection.tsx new file mode 100644 index 0000000..500663e --- /dev/null +++ b/components/pages/main/PoweredBySection.tsx @@ -0,0 +1,29 @@ +import { RiOpenSourceFill } from "react-icons/ri"; +import { Ampersand } from "lucide-react"; +import { HiMiniHeart } from "react-icons/hi2"; + +const PoweredBySection = () => { + return ( +
+
+

Powered by

+
+
+ +

libre

+
+ +
+ +

love

+
+
+

+ We believe in the power of open source to positively impact the world. That's why we empower you with the infrastructure to explore how it can make a positive integration into your life. +

+
+
+ ) +} + +export default PoweredBySection; \ No newline at end of file