mirror of
https://github.com/jaronpate/unicord.git
synced 2026-10-18 21:47:40 +00:00
Website init
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
|
||||
:root {
|
||||
--background: #252525;
|
||||
--foreground: #ededed;
|
||||
}
|
||||
|
||||
|
||||
html,
|
||||
body {
|
||||
max-width: 100vw;
|
||||
overflow-x: hidden;
|
||||
color-scheme: dark;
|
||||
}
|
||||
|
||||
body {
|
||||
color: var(--foreground);
|
||||
background: var(--background);
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
import type { Metadata } from "next";
|
||||
import { Space_Grotesk, Space_Mono } from "next/font/google";
|
||||
import "./globals.css";
|
||||
|
||||
const spaceGrotesk = Space_Grotesk({
|
||||
variable: "--font-space-grotesk",
|
||||
subsets: ["latin"]
|
||||
});
|
||||
|
||||
const spaceMono = Space_Mono({
|
||||
variable: "--font-space-mono",
|
||||
subsets: ["latin"],
|
||||
weight: ["400"]
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Create Next App",
|
||||
description: "Generated by create next app",
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
children: React.ReactNode;
|
||||
}>) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body className={`${spaceGrotesk.variable} ${spaceMono.variable}`}>
|
||||
{children}
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
.page {
|
||||
--gray-rgb: 255, 255, 255;
|
||||
--gray-alpha-200: rgba(var(--gray-rgb), 0.145);
|
||||
--gray-alpha-100: rgba(var(--gray-rgb), 0.06);
|
||||
|
||||
--button-primary-hover: #ccc;
|
||||
--button-secondary-hover: #1a1a1a;
|
||||
|
||||
font-family: var(--font-space-grotesk);
|
||||
}
|
||||
|
||||
/* pag with header needs margin atop */
|
||||
.pageWithHeader {
|
||||
margin-top: 4rem;
|
||||
}
|
||||
|
||||
.header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0.7rem;
|
||||
/* glassy background */
|
||||
background: transparent;
|
||||
backdrop-filter: blur(16px);
|
||||
border-bottom: 1px solid var(--gray-alpha-200);
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
.header img {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.logoMark {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0px;
|
||||
font-size: 32px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.logoMarkSpan {
|
||||
color: #ff0080;
|
||||
}
|
||||
|
||||
.main {
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
/* padding: 4rem 0em; */
|
||||
}
|
||||
|
||||
@keyframes dotPattern {
|
||||
0% {
|
||||
background-position: top right;
|
||||
}
|
||||
100% {
|
||||
background-position: bottom left;
|
||||
}
|
||||
}
|
||||
|
||||
.hero {
|
||||
padding: 0 15em 0;
|
||||
height: calc(100vh - 4rem);
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
border-bottom: 1px solid var(--gray-alpha-200);
|
||||
}
|
||||
|
||||
.hero::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-image: radial-gradient(circle, #ff0080 1px, transparent 1px);
|
||||
background-size: 20px 20px;
|
||||
animation: dotPattern 30s linear infinite;
|
||||
opacity: 0.5;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.hero::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 50%;
|
||||
background: linear-gradient(to bottom, transparent, var(--gray-alpha-100));
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.code {
|
||||
font-family: var(--font-mono);
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.codeBlock {
|
||||
background: var(--gray-alpha-100);
|
||||
padding: 1em;
|
||||
border-radius: 0.5em;
|
||||
}
|
||||
|
||||
.codeBlock pre {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.codeBlock code {
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
.codeBlock code::before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.codeBlock code::after {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.codeBlock code:hover {
|
||||
background: var(--gray-alpha-200);
|
||||
}
|
||||
|
||||
.codeBlock code:active {
|
||||
background: var(--gray-alpha-200);
|
||||
}
|
||||
|
||||
.codeBlock code:focus {
|
||||
background: var(--gray-alpha-200);
|
||||
}
|
||||
|
||||
.codeBlock code:focus-visible {
|
||||
background: var(--gray-alpha-200);
|
||||
}
|
||||
|
||||
.codeBlock code:focus-within {
|
||||
background: var(--gray-alpha-200);
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
import styles from "./page.module.css";
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<div className={[styles.page, styles.pageWithHeader].join(" ")}>
|
||||
<header className={styles.header}>
|
||||
<div className={styles.logoMark}>
|
||||
<img src="/unicord.png"></img>
|
||||
<div><span className={styles.logoMarkSpan}>uni</span>cord</div>
|
||||
</div>
|
||||
</header>
|
||||
<main className={styles.main}>
|
||||
<div className={styles.hero}>
|
||||
<div>
|
||||
<h1 className={styles.title}>
|
||||
Welcome to <span className={styles.logoMarkSpan}>uni</span>cord
|
||||
</h1>
|
||||
<p className={styles.description}>
|
||||
Finally a simpler way to build Discord bots.{" "}
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<code className={styles.code}>
|
||||
<pre className={styles.codeBlock}>
|
||||
{`\
|
||||
import { Client, type Context } from 'unicord';
|
||||
|
||||
// Initialize and configure
|
||||
const client = new Client({
|
||||
token: '<token>',
|
||||
application_id: '<application_id>',
|
||||
intents: [
|
||||
Intent.GUILDS,
|
||||
Intent.GUILD_MESSAGES,
|
||||
Intent.GUILD_MESSAGE_REACTIONS,
|
||||
Intent.MESSAGE_CONTENT
|
||||
],
|
||||
prefix: '??'
|
||||
});
|
||||
|
||||
// Register a command
|
||||
client.chatCommands.register('ping', (context: Context, args) => {
|
||||
context.reply('Pong!', true);
|
||||
});
|
||||
|
||||
// Connect
|
||||
client.connect();
|
||||
`}
|
||||
</pre>
|
||||
</code>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h2 className={styles.title}>Features</h2>
|
||||
<ul className={styles.features}>
|
||||
<li>TypeScript support</li>
|
||||
<li>Intuitive API</li>
|
||||
<li>Powerful command system</li>
|
||||
<li>Built-in event handling</li>
|
||||
<li>Easy to use</li>
|
||||
</ul>
|
||||
<h2 className={styles.title}>Get Started</h2>
|
||||
<p className={styles.description}>
|
||||
To get started, check out the{" "}
|
||||
<a href="https://unicord.dev" target="_blank">
|
||||
<span className={styles.link}>documentation</span>
|
||||
</a>{" "}
|
||||
or join our{" "}
|
||||
<a href="https://discord.gg/9v6Z4J5q" target="_blank">
|
||||
<span className={styles.link}>Discord server</span>
|
||||
</a>{" "}
|
||||
for help and support.
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user