♻️ Content based about page
This commit is contained in:
@@ -1,10 +1,12 @@
|
||||
<template>
|
||||
<main class="container mx-auto h-full px-8 flex flex-col gap-16 py-16">
|
||||
<main
|
||||
class="container max-w-2xl text-center mx-auto h-full px-8 flex flex-col gap-16 py-16"
|
||||
>
|
||||
<!-- Hero Section -->
|
||||
<div
|
||||
class="text-center flex flex-col items-center justify-center animate-fade-in-up"
|
||||
>
|
||||
<h1 class="text-5xl font-extrabold mb-6">About Us</h1>
|
||||
<h1 class="text-4xl font-extrabold mb-3">About Us</h1>
|
||||
<p class="text-xl max-w-2xl opacity-80">
|
||||
We are a collective of creators, dreamers, and builders.
|
||||
</p>
|
||||
@@ -12,27 +14,33 @@
|
||||
|
||||
<!-- Mission Section -->
|
||||
<section
|
||||
class="grid grid-cols-1 md:grid-cols-2 gap-12 items-center animate-fade-in-up delay-100"
|
||||
class="flex flex-col gap-12 items-center animate-fade-in-up delay-100"
|
||||
>
|
||||
<div>
|
||||
<h2 class="text-3xl font-bold mb-4">Our Mission</h2>
|
||||
<p class="text-lg opacity-90 leading-relaxed">
|
||||
Our aim is not making a profit.
|
||||
<i class="text-sm opacity-70">At least not yet.</i> <br /><br />
|
||||
Instead, we hope we can spread the love to the world and make everyone
|
||||
enjoy the fun of the Internet and technology. We believe in open
|
||||
source, collaboration, and building things that bring joy.
|
||||
</p>
|
||||
<h2 class="text-2xl font-bold">Our Mission</h2>
|
||||
<div class="text-lg opacity-90 leading-relaxed flex flex-col gap-2">
|
||||
<p>
|
||||
Our aim is not making a profit.
|
||||
<i class="text-sm opacity-70">At least not yet.</i>
|
||||
</p>
|
||||
<p>
|
||||
Instead, we hope we can spread the love to the world and make
|
||||
everyone enjoy the fun of the Internet and technology. We believe in
|
||||
open source, collaboration, and building things that bring joy.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex justify-center">
|
||||
<n-card class="max-w-sm w-full bg-opacity-50 backdrop-blur-sm">
|
||||
<div class="flex flex-col items-center text-center p-4">
|
||||
<n-icon size="48" class="mb-4 text-primary">
|
||||
<heart-outlined />
|
||||
</n-icon>
|
||||
<n-icon
|
||||
size="48"
|
||||
class="mb-4 text-primary"
|
||||
:component="FavoriteRound"
|
||||
/>
|
||||
<h3 class="text-xl font-bold mb-2">Built with Love</h3>
|
||||
<p class="opacity-80">
|
||||
Every line of code is written with passion and care.
|
||||
Every line of code is written with passion and care in mind.
|
||||
</p>
|
||||
</div>
|
||||
</n-card>
|
||||
@@ -45,22 +53,21 @@
|
||||
<div class="flex flex-wrap justify-center gap-8">
|
||||
<!-- Team Member Card -->
|
||||
<n-card
|
||||
v-for="member in team"
|
||||
:key="member.name"
|
||||
class="max-w-xs w-full hover:shadow-lg transition-shadow duration-300"
|
||||
>
|
||||
<div class="flex flex-col items-center text-center">
|
||||
<n-avatar
|
||||
src="https://fs.solian.app/api/files/200ee92546244ed1a6a02202f5ca9cc9"
|
||||
:size="120"
|
||||
class="mb-4 shadow-md"
|
||||
/>
|
||||
<h3 class="text-xl font-bold">LittleSheep</h3>
|
||||
<n-avatar :src="member.avatar" :size="120" class="mb-4 shadow-md" />
|
||||
<h3 class="text-xl font-bold">{{ member.name }}</h3>
|
||||
<div class="flex items-center gap-2 mt-1 mb-3">
|
||||
<n-tag size="small" type="primary" round>Founder</n-tag>
|
||||
<n-tag size="small" type="primary" round>{{ member.role }}</n-tag>
|
||||
<n-button
|
||||
v-if="member.profileUrl"
|
||||
text
|
||||
tag="a"
|
||||
size="small"
|
||||
href="https://id.solian.app/@littlesheep"
|
||||
:href="member.profileUrl"
|
||||
target="_blank"
|
||||
>
|
||||
<n-icon size="18">
|
||||
@@ -69,23 +76,21 @@
|
||||
</n-button>
|
||||
</div>
|
||||
<p class="text-sm opacity-75 mb-4">
|
||||
Founder, CEO, CTO, Senior Developer, Marketing Engineer, Customer
|
||||
Service Engineer, DevOps, Database Administrator, Product Manager,
|
||||
UI/UX Designer, QA Engineer, Mobile Developer, Security Engineer,
|
||||
Technical Writer, Project Manager, Community Manager, Software
|
||||
Architect
|
||||
{{ member.bio }}
|
||||
</p>
|
||||
<div class="flex gap-3">
|
||||
<div class="flex gap-3" v-if="member.socials">
|
||||
<n-button
|
||||
v-for="social in member.socials"
|
||||
:key="social.url"
|
||||
circle
|
||||
size="small"
|
||||
tag="a"
|
||||
href="https://github.com/LittleSheep"
|
||||
:href="social.url"
|
||||
target="_blank"
|
||||
>
|
||||
<template #icon
|
||||
><n-icon><logo-github /></n-icon
|
||||
></template>
|
||||
<template #icon>
|
||||
<n-icon :component="getIcon(social.icon)" />
|
||||
</template>
|
||||
</n-button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -96,11 +101,24 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { InfoOutlined } from "@vicons/material";
|
||||
import { InfoOutlined, FavoriteRound, CodeRound } from "@vicons/material";
|
||||
|
||||
useHead({
|
||||
title: "About Us - Solsynth",
|
||||
title: "About Us",
|
||||
});
|
||||
|
||||
const { data: team } = await useAsyncData("team", () =>
|
||||
queryCollection("team").all()
|
||||
);
|
||||
|
||||
function getIcon(name: string) {
|
||||
switch (name) {
|
||||
case "github":
|
||||
return CodeRound;
|
||||
default:
|
||||
return InfoOutlined;
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<main class="container mx-auto h-full px-8 flex flex-col gap-24 pb-24">
|
||||
<!-- Hero Section -->
|
||||
<div
|
||||
class="text-center min-h-[80vh] flex flex-col items-center justify-center relative"
|
||||
class="text-center min-h-[80vh] flex flex-col items-center justify-center relative isolate"
|
||||
>
|
||||
<!-- Background decoration -->
|
||||
<div
|
||||
@@ -179,7 +179,8 @@ const typedElement = ref(null);
|
||||
const typed = shallowRef(null);
|
||||
|
||||
useHead({
|
||||
title: "Solsynth - Creating Experiences",
|
||||
title: "We are Solsynth",
|
||||
titleTemplate: "%s",
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
|
||||
@@ -28,5 +28,24 @@ export default defineContentConfig({
|
||||
updatedDate: z.date().optional(),
|
||||
}),
|
||||
}),
|
||||
team: defineCollection({
|
||||
type: "data",
|
||||
source: "team/**.json",
|
||||
schema: z.object({
|
||||
name: z.string(),
|
||||
role: z.string(),
|
||||
avatar: z.string(),
|
||||
bio: z.string(),
|
||||
profileUrl: z.string().optional(),
|
||||
socials: z
|
||||
.array(
|
||||
z.object({
|
||||
icon: z.string(),
|
||||
url: z.string(),
|
||||
})
|
||||
)
|
||||
.optional(),
|
||||
}),
|
||||
}),
|
||||
},
|
||||
});
|
||||
|
||||
13
content/team/littlesheep.json
Normal file
13
content/team/littlesheep.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "LittleSheep",
|
||||
"role": "Founder",
|
||||
"avatar": "https://api.solian.app/drive/files/thgJtsTgwBDM7zm9bPjNp",
|
||||
"bio": "Founder, CEO, CTO, Senior Developer, Marketing Engineer, Customer Service Engineer, DevOps, Database Administrator, Product Manager, UI/UX Designer, QA Engineer, Mobile Developer, Security Engineer, Technical Writer, Project Manager, Community Manager, Software Architect",
|
||||
"profileUrl": "https://id.solian.app/@littlesheep",
|
||||
"socials": [
|
||||
{
|
||||
"icon": "github",
|
||||
"url": "https://github.com/LittleSheep2Code"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user