mirror of
https://github.com/jaronpate/unicord.git
synced 2026-10-18 21:47:40 +00:00
Final prototype of website
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 1012 KiB |
@@ -20,9 +20,9 @@ export default function Home() {
|
||||
<div><span className={styles.logoMarkSpan}>uni</span>cord</div>
|
||||
</div>
|
||||
<nav className={styles.nav}>
|
||||
<a href="/docs" className={styles.navLink}>Docs</a>
|
||||
<a href="https://github.com/unicorddev/unicord" className={styles.navLink}>Source</a>
|
||||
<a href="https://discord.gg/your-invite-here" className={styles.navLink}>Discord</a>
|
||||
{/* <a href="/docs" className={styles.navLink}>Docs</a> */}
|
||||
<a href="https://github.com/jaronpate/unicord" target='_blank' className={styles.navLink}>Source</a>
|
||||
<a href="https://discord.gg/6kFfqa5bde" target='_blank' className={styles.navLink}>Discord</a>
|
||||
</nav>
|
||||
</header>
|
||||
<main className={styles.main}>
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
'use client';
|
||||
|
||||
import { ReactNode } from 'react';
|
||||
import styles from '../app/page.module.css';
|
||||
import dynamic from 'next/dynamic';
|
||||
|
||||
const CodeExample = dynamic(
|
||||
() => import('./CodeExample'),
|
||||
{ ssr: false }
|
||||
);
|
||||
|
||||
type FeatureProps = {
|
||||
title: string;
|
||||
description: ReactNode;
|
||||
code: string;
|
||||
codeHeight?: number;
|
||||
reversed?: boolean;
|
||||
}
|
||||
|
||||
export function Feature({ title, description, code, codeHeight, reversed = false }: FeatureProps) {
|
||||
const content = (
|
||||
<>
|
||||
<div className={styles.featureText}>
|
||||
<h2>{title}</h2>
|
||||
{description}
|
||||
</div>
|
||||
<div className={styles.featureCode}>
|
||||
<CodeExample code={code} height={codeHeight} noScroll={true} />
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
|
||||
return (
|
||||
<div className={styles.featureContainer}>
|
||||
{reversed ? content : content}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
.logo {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.logo img {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.small {
|
||||
font-size: 32px;
|
||||
}
|
||||
|
||||
.small img {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.large {
|
||||
font-size: 48px;
|
||||
}
|
||||
|
||||
.large img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
}
|
||||
|
||||
.highlight {
|
||||
color: var(--color-primary);
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
'use client';
|
||||
|
||||
import styles from '../app/page.module.css';
|
||||
|
||||
type LogoProps = {
|
||||
size?: 'small' | 'large';
|
||||
showImage?: boolean;
|
||||
}
|
||||
|
||||
export function Logo({ size = 'small', showImage = true }: LogoProps) {
|
||||
return (
|
||||
<div className={styles.logoMark}>
|
||||
{showImage && <img src="/unicord.png" alt="Unicord logo" />}
|
||||
<div><span className={styles.logoMarkSpan}>uni</span>cord</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
'use client';
|
||||
|
||||
import { useState } from 'react';
|
||||
import styles from '../app/page.module.css';
|
||||
|
||||
const PACKAGE_MANAGERS = {
|
||||
npm: 'npm install unicord',
|
||||
yarn: 'yarn add unicord',
|
||||
pnpm: 'pnpm add unicord',
|
||||
bun: 'bun add unicord'
|
||||
} as const;
|
||||
|
||||
type PackageManagerType = keyof typeof PACKAGE_MANAGERS;
|
||||
|
||||
export function PackageManager() {
|
||||
const [activeTab, setActiveTab] = useState<PackageManagerType>('npm');
|
||||
|
||||
return (
|
||||
<div>
|
||||
<div className={styles.packageManagerTabs}>
|
||||
{(Object.keys(PACKAGE_MANAGERS) as PackageManagerType[]).map(manager => (
|
||||
<button
|
||||
key={manager}
|
||||
className={`${styles.tabButton} ${activeTab === manager ? styles.activeTab : ''}`}
|
||||
onClick={() => setActiveTab(manager)}
|
||||
>
|
||||
{manager}
|
||||
</button>
|
||||
))}
|
||||
</div>
|
||||
<div className={styles.installCommandWrapper}>
|
||||
<code className={styles.installCommand}>
|
||||
{PACKAGE_MANAGERS[activeTab]}
|
||||
</code>
|
||||
<button
|
||||
className={styles.copyButton}
|
||||
onClick={() => navigator.clipboard.writeText(PACKAGE_MANAGERS[activeTab])}
|
||||
>
|
||||
Copy
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
.section {
|
||||
padding: 6rem 12em;
|
||||
min-height: 50vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.dark {
|
||||
background: var(--gray-alpha-100);
|
||||
border-top: 1px solid var(--gray-alpha-200);
|
||||
}
|
||||
|
||||
.light {
|
||||
border-top: 1px solid var(--gray-alpha-200);
|
||||
}
|
||||
|
||||
@media (max-width: 1200px) {
|
||||
.section {
|
||||
padding: 4rem 2rem;
|
||||
}
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
'use client';
|
||||
|
||||
import { ReactNode } from 'react';
|
||||
import styles from '../app/page.module.css';
|
||||
|
||||
type SectionProps = {
|
||||
children: ReactNode;
|
||||
background?: 'light' | 'dark';
|
||||
className?: string;
|
||||
}
|
||||
|
||||
export function Section({ children, background = 'light', className = '' }: SectionProps) {
|
||||
return (
|
||||
<div className={[
|
||||
className,
|
||||
background === 'dark' ? styles.darkSection : ''
|
||||
].filter(Boolean).join(' ')}>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user