mirror of
https://github.com/Kyren223/website.git
synced 2026-03-29 17:31:41 +00:00
Committing with a bunch of changes
This commit is contained in:
@@ -4,15 +4,17 @@ import mdx from "@astrojs/mdx";
|
||||
|
||||
import starlight from "@astrojs/starlight";
|
||||
|
||||
import tailwind from "@astrojs/tailwind";
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
integrations: [
|
||||
tailwind(),
|
||||
starlight({
|
||||
title: "My delightful docs site",
|
||||
customCss: [
|
||||
'./src/styles/custom.css',
|
||||
],
|
||||
customCss: ["./src/styles/custom.css"],
|
||||
}),
|
||||
mdx(),
|
||||
],
|
||||
});
|
||||
|
||||
|
||||
35
public/logo.svg
Normal file
35
public/logo.svg
Normal file
@@ -0,0 +1,35 @@
|
||||
<svg width="100" height="100" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="100" height="100" rx="20" fill="url(#paint0_linear_39_45)"/>
|
||||
<g filter="url(#filter0_d_39_45)">
|
||||
<path d="M18 29C18 26.2386 20.2386 24 23 24H76.21C78.9714 24 81.21 26.2386 81.21 29V31.4357H18V29Z" fill="url(#paint1_linear_39_45)"/>
|
||||
<path d="M18 33.6536H81.21V69.55C81.21 72.3114 78.9714 74.55 76.21 74.55H23C20.2386 74.55 18 72.3114 18 69.55V33.6536Z" fill="url(#paint2_linear_39_45)"/>
|
||||
<path d="M78.72 27.759C78.72 28.7856 77.8872 29.6179 76.86 29.6179C75.8328 29.6179 75 28.7856 75 27.759C75 26.7323 75.8328 25.9 76.86 25.9C77.8872 25.9 78.72 26.7323 78.72 27.759Z" fill="#493F7F"/>
|
||||
<path d="M42.1686 63.3965L32.873 54.4551L42.1686 44.8073" stroke="#393162" stroke-width="3"/>
|
||||
<path d="M56.1121 63.3965L65.4077 54.4551L56.1121 44.8073" stroke="#3E366C" stroke-width="3"/>
|
||||
<line y1="-1.5" x2="24.1661" y2="-1.5" transform="matrix(0.152072 -0.988369 0.988374 0.152042 48.6755 66.185)" stroke="#3B3367" stroke-width="3"/>
|
||||
</g>
|
||||
<defs>
|
||||
<filter id="filter0_d_39_45" x="18" y="24" width="69.21" height="56.55" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
|
||||
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
|
||||
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
|
||||
<feOffset dx="3" dy="3"/>
|
||||
<feGaussianBlur stdDeviation="1.5"/>
|
||||
<feComposite in2="hardAlpha" operator="out"/>
|
||||
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
|
||||
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_39_45"/>
|
||||
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_39_45" result="shape"/>
|
||||
</filter>
|
||||
<linearGradient id="paint0_linear_39_45" x1="100" y1="5.96046e-06" x2="-5.96047e-06" y2="100" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#584D9A"/>
|
||||
<stop offset="1" stop-color="#1F1A34"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint1_linear_39_45" x1="18" y1="27.7179" x2="81.21" y2="27.7179" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#4568DC"/>
|
||||
<stop offset="0.9999" stop-color="#AF6AB3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="paint2_linear_39_45" x1="18" y1="54.1018" x2="81.21" y2="54.1018" gradientUnits="userSpaceOnUse">
|
||||
<stop stop-color="#4568DC"/>
|
||||
<stop offset="0.9999" stop-color="#AF6AB3"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.3 KiB |
50
src/components/Nav.astro
Normal file
50
src/components/Nav.astro
Normal file
@@ -0,0 +1,50 @@
|
||||
---
|
||||
interface Props {
|
||||
path: string;
|
||||
}
|
||||
|
||||
const { path } = Astro.props;
|
||||
|
||||
const directories = ["about", "works", "links"]
|
||||
|
||||
---
|
||||
<nav>
|
||||
<span id="nav-path">/home/kyren/{path}</span>
|
||||
<span id="nav-links">
|
||||
<a href="/">home</a>
|
||||
{directories.map((dir) => (
|
||||
<a href={`/${dir}`}>{dir}</a>
|
||||
<span></span> /* For whitespace */
|
||||
))}
|
||||
</span>
|
||||
</nav>
|
||||
|
||||
<style>
|
||||
|
||||
nav {
|
||||
font-weight: 300;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
justify-content: space-between;
|
||||
border: 0;
|
||||
border-bottom: 1px;
|
||||
border-style: solid;
|
||||
margin-bottom: 0.75rem;
|
||||
padding-bottom: 0.75rem;
|
||||
}
|
||||
#nav-links a {
|
||||
margin-right: 0.15rem;
|
||||
margin-bottom: 0px;
|
||||
margin-left: 0.15rem;
|
||||
color: var(--primary);
|
||||
font-size: 1rem;
|
||||
|
||||
}
|
||||
#nav-links a:hover {
|
||||
color: var(--accent);
|
||||
}
|
||||
#nav-path {
|
||||
margin-right: 2rem;
|
||||
}
|
||||
|
||||
</style>
|
||||
36
src/components/TerminalBorder.astro
Normal file
36
src/components/TerminalBorder.astro
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
interface Props {
|
||||
header: string;
|
||||
margin?: string;
|
||||
}
|
||||
|
||||
const { header, margin = "-1px" } = Astro.props;
|
||||
---
|
||||
<div class="section" style={`margin: ${margin};`}>
|
||||
<span class="tag">{header}</span>
|
||||
<slot/>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.section {
|
||||
position: relative;
|
||||
padding: 0.8rem;
|
||||
padding-top: 0.85rem;
|
||||
display: flex;
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-color: var(--alt);
|
||||
}
|
||||
|
||||
.tag {
|
||||
position: absolute;
|
||||
top: -0.6rem;
|
||||
left: 0.5rem;
|
||||
background-color: var(--background);
|
||||
padding-right: 0.5rem;
|
||||
padding-left: 0.5rem;
|
||||
font-size: 0.8rem;
|
||||
color: var(--alt);
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -17,17 +17,26 @@ If you have ever accessed a remote server it was most likely by
|
||||
ssh-ing into it.
|
||||
You have also most likely had to copy paste something similar to this:
|
||||
|
||||
```pub
|
||||
```
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBSSj+yfJLWEb+Df4r4603TOFAUBREYS43qQB+c9i9UW
|
||||
```
|
||||
|
||||
Let's break it down:
|
||||
Let's break it down
|
||||
|
||||
- The first part `ssh-ed25519` is the algorithm type, other common algorithms are `ssh-rsa` and `ssh-ecdsa`
|
||||
- The second part is a base64-encoded binary format consiting of:
|
||||
* the length of the algorithm string, for ed25519 it's always 11 (4 bytes long)
|
||||
* the algorithm type, for ed25519 it's always `ssh-ed25519` in binary (11 bytes long)
|
||||
* the length of the key, 32 bytes for ed25519 (4 bytes long)
|
||||
* the actual ed25519 key (32 bytes long)
|
||||
- The second part is a base64-encoded binary format consiting of
|
||||
- the length of the algorithm string, for ed25519 it's always 11 (4 bytes long)
|
||||
- the algorithm type, for ed25519 it's always `ssh-ed25519` in binary (11 bytes long)
|
||||
- the length of the key, 32 bytes for ed25519 (4 bytes long)
|
||||
- the actual ed25519 key (32 bytes long)
|
||||
|
||||
### Embedding a word in base64
|
||||
|
||||
Base64 is a widely used format for writing binary in a compact and human readable way,
|
||||
it uses A-Z, a-z, 0-9, '/' and '+' adding up to 64 unique characters.
|
||||
|
||||
It's possible to choose specific bytes in a way that when encoding it with base64
|
||||
it will form a word.
|
||||
|
||||
For example, to encode "Kyren" in base64, we can use the following bytes
|
||||
`00101011 00101010 01001110` or in hex `2b 2a de`
|
||||
|
||||
@@ -20,31 +20,85 @@ const { title } = Astro.props;
|
||||
<slot />
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<style is:global>
|
||||
:root {
|
||||
--accent: 136, 58, 234;
|
||||
--accent-light: 224, 204, 250;
|
||||
--accent-dark: 49, 10, 101;
|
||||
--accent-gradient: linear-gradient(
|
||||
45deg,
|
||||
rgb(var(--accent)),
|
||||
rgb(var(--accent-light)) 30%,
|
||||
white 60%
|
||||
);
|
||||
}
|
||||
html {
|
||||
font-family: system-ui, sans-serif;
|
||||
background: #13151a;
|
||||
}
|
||||
code {
|
||||
font-family:
|
||||
Menlo,
|
||||
Monaco,
|
||||
Lucida Console,
|
||||
Liberation Mono,
|
||||
DejaVu Sans Mono,
|
||||
Bitstream Vera Sans Mono,
|
||||
Courier New,
|
||||
monospace;
|
||||
}
|
||||
@import url("../styles/JetBrainsMono.css");
|
||||
|
||||
:root {
|
||||
--primary: #ffbf00;
|
||||
--secondary: #9b7eca;
|
||||
--accent: #7ed4fb;
|
||||
--extra: #8fcc75;
|
||||
--text: #ffffff;
|
||||
--alt: #999999;
|
||||
--background: #000000;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
html {
|
||||
background-color: var(--background);
|
||||
color: var(--text);
|
||||
font-family: "Jetbrains Mono", monospace;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
body {
|
||||
overflow-y: scroll;
|
||||
zoom: 1;
|
||||
}
|
||||
@media screen and (max-width: 768px) {
|
||||
body {
|
||||
zoom: 0.8;
|
||||
}
|
||||
}
|
||||
@media screen and (max-width: 480px) {
|
||||
body {
|
||||
zoom: 0.7;
|
||||
}
|
||||
}
|
||||
|
||||
main {
|
||||
display: grid;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
grid-template-columns: minmax(200px, 1fr);
|
||||
transform: translate(-50%, -50%);
|
||||
border: 1px;
|
||||
border-style: solid;
|
||||
background: var(--background);
|
||||
padding: 1.75rem;
|
||||
width: 55rem;
|
||||
max-width: 75%;
|
||||
/* ! font-weight: 300; */
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a {
|
||||
font-weight: 300;
|
||||
}
|
||||
a:link,
|
||||
a:visited,
|
||||
a:active {
|
||||
background-color: transparent;
|
||||
text-decoration: none;
|
||||
color: var(--secondary);
|
||||
}
|
||||
a:hover {
|
||||
transition-duration: 0.2s;
|
||||
transition-property: color, text-decoration;
|
||||
text-decoration: underline;
|
||||
color: var(--accent);
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
---
|
||||
interface Props {
|
||||
title: string;
|
||||
}
|
||||
|
||||
const { title } = Astro.props;
|
||||
---
|
||||
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="description" content="Astro description" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
<!-- <link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap" rel="stylesheet"> -->
|
||||
<meta name="generator" content={Astro.generator} />
|
||||
<title>{title}</title>
|
||||
</head>
|
||||
<body>
|
||||
<slot />
|
||||
</body>
|
||||
</html>
|
||||
<style is:global>
|
||||
:root {
|
||||
--accent: 136, 58, 234;
|
||||
--accent-light: 224, 204, 250;
|
||||
--accent-dark: 49, 10, 101;
|
||||
--accent-gradient: linear-gradient(
|
||||
45deg,
|
||||
rgb(var(--accent)),
|
||||
rgb(var(--accent-light)) 30%,
|
||||
white 60%
|
||||
);
|
||||
}
|
||||
html {
|
||||
font-family: system-ui, sans-serif;
|
||||
/* font-family: jetbrains-mono; */
|
||||
/* font-family: 'JetBrains Mono'; */
|
||||
background: #13151a;
|
||||
}
|
||||
code {
|
||||
font-family:
|
||||
Menlo,
|
||||
Monaco,
|
||||
Lucida Console,
|
||||
Liberation Mono,
|
||||
DejaVu Sans Mono,
|
||||
Bitstream Vera Sans Mono,
|
||||
Courier New,
|
||||
monospace;
|
||||
}
|
||||
</style>
|
||||
Binary file not shown.
@@ -1,123 +1,121 @@
|
||||
---
|
||||
import Layout from '../layouts/Layout.astro';
|
||||
import Card from '../components/Card.astro';
|
||||
---
|
||||
import TerminalBorder from '../components/TerminalBorder.astro'
|
||||
import Nav from '../components/Nav.astro'
|
||||
|
||||
const sshKey = `ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAsrdN6e4XbkJfV/FbH3GY8ujWgxSCSbYiwzQ4rKyren`
|
||||
const fingerprint = `
|
||||
+--[ED25519 256]--+
|
||||
|+o.+oE*B%* o |
|
||||
|o=...+++=.+ + |
|
||||
|o B . o. . o + |
|
||||
|.+ + o . = |
|
||||
|. + . S o + |
|
||||
| . o . + |
|
||||
|. . . |
|
||||
|.. |
|
||||
|. |
|
||||
+----[SHA256]-----+`.trimStart()
|
||||
|
||||
const aboutMe = `
|
||||
Hi! I'm Kyren, a software engineer and Minecraft plugin freelancer,
|
||||
I love working with Rust, Golang and Java.
|
||||
I am also a terminal nerd and linux enthusiast who uses NVIM btw.
|
||||
And when I am not coding I am most likely playing video games,
|
||||
watching Anime or solving Rubik's cubes fast.
|
||||
Test`.trimStart()
|
||||
---
|
||||
<Layout title="Kyren's Website">
|
||||
<main>
|
||||
<svg
|
||||
class="astro-a"
|
||||
width="495"
|
||||
height="623"
|
||||
viewBox="0 0 495 623"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M167.19 364.254C83.4786 364.254 0 404.819 0 404.819C0 404.819 141.781 19.4876 142.087 18.7291C146.434 7.33701 153.027 0 162.289 0H332.441C341.703 0 348.574 7.33701 352.643 18.7291C352.92 19.5022 494.716 404.819 494.716 404.819C494.716 404.819 426.67 364.254 327.525 364.254L264.41 169.408C262.047 159.985 255.147 153.581 247.358 153.581C239.569 153.581 232.669 159.985 230.306 169.408L167.19 364.254ZM160.869 530.172C160.877 530.18 160.885 530.187 160.894 530.195L160.867 530.181C160.868 530.178 160.868 530.175 160.869 530.172ZM136.218 411.348C124.476 450.467 132.698 504.458 160.869 530.172C160.997 529.696 161.125 529.242 161.248 528.804C161.502 527.907 161.737 527.073 161.917 526.233C165.446 509.895 178.754 499.52 195.577 500.01C211.969 500.487 220.67 508.765 223.202 527.254C224.141 534.12 224.23 541.131 224.319 548.105C224.328 548.834 224.337 549.563 224.347 550.291C224.563 566.098 228.657 580.707 237.264 593.914C245.413 606.426 256.108 615.943 270.749 622.478C270.593 621.952 270.463 621.508 270.35 621.126C270.045 620.086 269.872 619.499 269.685 618.911C258.909 585.935 266.668 563.266 295.344 543.933C298.254 541.971 301.187 540.041 304.12 538.112C310.591 533.854 317.059 529.599 323.279 525.007C345.88 508.329 360.09 486.327 363.431 457.844C364.805 446.148 363.781 434.657 359.848 423.275C358.176 424.287 356.587 425.295 355.042 426.275C351.744 428.366 348.647 430.33 345.382 431.934C303.466 452.507 259.152 455.053 214.03 448.245C184.802 443.834 156.584 436.019 136.218 411.348Z"
|
||||
fill="url(#paint0_linear_1805_24383)"></path>
|
||||
<defs>
|
||||
<linearGradient
|
||||
id="paint0_linear_1805_24383"
|
||||
x1="247.358"
|
||||
y1="0"
|
||||
x2="247.358"
|
||||
y2="622.479"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
>
|
||||
<stop stop-opacity="0.9"></stop>
|
||||
<stop offset="1" stop-opacity="0.2"></stop>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
<h1>Welcome to <span class="text-gradient">Kyren's Site</span></h1>
|
||||
<p class="instructions">
|
||||
To get started, open the directory <code>src/pages</code> in your project.<br />
|
||||
<strong>Code Challenge:</strong> Tweak HMMM "Welcome to Astro" message above.
|
||||
</p>
|
||||
<ul role="list" class="link-card-grid">
|
||||
<Card
|
||||
href="https://docs.astro.build/"
|
||||
title="Documentation"
|
||||
body="Learn how Astro works and explore the official API docs."
|
||||
/>
|
||||
<Card
|
||||
href="https://astro.build/integrations/"
|
||||
title="Integrations"
|
||||
body="Supercharge your project with new frameworks and libraries."
|
||||
/>
|
||||
<Card
|
||||
href="https://astro.build/themes/"
|
||||
title="Themes"
|
||||
body="Explore a galaxy of community-built starter themes."
|
||||
/>
|
||||
<Card
|
||||
href="https://astro.build/chat/"
|
||||
title="Community"
|
||||
body="Come say hi to our amazing Discord community. ❤️"
|
||||
/>
|
||||
</ul>
|
||||
</main>
|
||||
<main>
|
||||
<Nav path=""/>
|
||||
<div id="content">
|
||||
<div id="left" class="column">
|
||||
<TerminalBorder header='Profile'>
|
||||
<div class="flex items-center space-x-3">
|
||||
<img src="logo.svg" alt="picture" class="h-[100%] object-cover" />
|
||||
<pre id="sshKeyCopy" class="text-[75%] flex-1 ">{fingerprint}</pre>
|
||||
</div>
|
||||
</TerminalBorder>
|
||||
<TerminalBorder header="Name">
|
||||
<span>Kyren</span>
|
||||
</TerminalBorder>
|
||||
<TerminalBorder header="Email">
|
||||
<span>Kyren223@proton.me</span>
|
||||
</TerminalBorder>
|
||||
<TerminalBorder header="Timezone">
|
||||
<span>UTC+2</span>
|
||||
</TerminalBorder>
|
||||
<TerminalBorder header="SSH Key">
|
||||
<div class="w-[100%] flex items-center space-x-2 hover:text-[var(--alt)]">
|
||||
<span id="sshKey" class="hover:text-[var(--alt)] cursor-pointer truncate flex-1">{sshKey}</span>
|
||||
<button id="sshKeyCopy" class="flex items-center justify-center ml-auto hover:text-[var(--alt)]">
|
||||
<svg width="100%" height="100%" viewBox="0 -3 24 24" xmlns="http://www.w3.org/2000/svg" fill="none">
|
||||
<path fill="currentColor" fill-rule="evenodd" d="M4 2a2 2 0 00-2 2v9a2 2 0 002 2h2v2a2 2 0 002 2h9a2 2 0 002-2V8a2 2 0 00-2-2h-2V4a2 2 0 00-2-2H4zm9 4V4H4v9h2V8a2 2 0 012-2h5zM8 8h9v9H8V8z"/>
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
</TerminalBorder>
|
||||
</div>
|
||||
<div id="right" class="column">
|
||||
<TerminalBorder header="About Me">
|
||||
<p>{aboutMe}</p>
|
||||
</TerminalBorder>
|
||||
<TerminalBorder header="Skills" margin='30px 0px'>
|
||||
<a href="/about/">cd ~/imabanana80/about </a>
|
||||
</TerminalBorder>
|
||||
<TerminalBorder header="Projects">
|
||||
<a href="/works/">cd ~/imabanana80/works</a>
|
||||
</TerminalBorder>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</Layout>
|
||||
|
||||
<script>
|
||||
const sshKey = document.getElementById('sshKey').innerHTML
|
||||
function copySshKeyToClipboard() {
|
||||
navigator.clipboard.writeText(sshKey).then(() => {
|
||||
// TODO: show some feedback for copying
|
||||
}).catch(_err => {
|
||||
// TODO: show same feedback but with err
|
||||
});
|
||||
}
|
||||
|
||||
document.getElementById('sshKey').addEventListener('click', copySshKeyToClipboard);
|
||||
document.getElementById('sshKeyCopy').addEventListener('click', copySshKeyToClipboard);
|
||||
</script>
|
||||
|
||||
<style>
|
||||
main {
|
||||
margin: auto;
|
||||
padding: 1rem;
|
||||
width: 800px;
|
||||
max-width: calc(100% - 2rem);
|
||||
color: white;
|
||||
font-size: 20px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
.astro-a {
|
||||
position: absolute;
|
||||
top: -32px;
|
||||
left: 50%;
|
||||
transform: translatex(-50%);
|
||||
width: 220px;
|
||||
height: auto;
|
||||
z-index: -1;
|
||||
}
|
||||
h1 {
|
||||
font-size: 4rem;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.text-gradient {
|
||||
background-image: var(--accent-gradient);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-size: 400%;
|
||||
background-position: 0%;
|
||||
}
|
||||
.instructions {
|
||||
margin-bottom: 2rem;
|
||||
border: 1px solid rgba(var(--accent-light), 25%);
|
||||
background: linear-gradient(rgba(var(--accent-dark), 66%), rgba(var(--accent-dark), 33%));
|
||||
padding: 1.5rem;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.instructions code {
|
||||
font-size: 0.8em;
|
||||
font-weight: bold;
|
||||
background: rgba(var(--accent-light), 12%);
|
||||
color: rgb(var(--accent-light));
|
||||
border-radius: 4px;
|
||||
padding: 0.3em 0.4em;
|
||||
}
|
||||
.instructions strong {
|
||||
color: rgb(var(--accent-light));
|
||||
}
|
||||
.link-card-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(24ch, 1fr));
|
||||
gap: 2rem;
|
||||
padding: 0;
|
||||
}
|
||||
#left {
|
||||
width: 30%;
|
||||
}
|
||||
#right {
|
||||
width: 67%;
|
||||
}
|
||||
|
||||
#content {
|
||||
margin-top: 0.5rem;
|
||||
display: flex;
|
||||
justify-content: space-between; /* Removing this makes a cool effect of the right side being "attached" to the left */
|
||||
}
|
||||
|
||||
.column {
|
||||
/* border-style: solid; */
|
||||
border-width: 1px;
|
||||
border-color: var(--alt);
|
||||
}
|
||||
|
||||
button {
|
||||
background-color: var(--background);
|
||||
color: var(--text);
|
||||
border: 0;
|
||||
font-size: 1rem;
|
||||
cursor: pointer;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
padding: 0;
|
||||
line-height: 30px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
123
src/pages/main.astro
Normal file
123
src/pages/main.astro
Normal file
@@ -0,0 +1,123 @@
|
||||
---
|
||||
import Layout from '../layouts/Layout.astro';
|
||||
import Card from '../components/Card.astro';
|
||||
---
|
||||
|
||||
<Layout title="Kyren's Website">
|
||||
<main>
|
||||
<svg
|
||||
class="astro-a"
|
||||
width="495"
|
||||
height="623"
|
||||
viewBox="0 0 495 623"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
clip-rule="evenodd"
|
||||
d="M167.19 364.254C83.4786 364.254 0 404.819 0 404.819C0 404.819 141.781 19.4876 142.087 18.7291C146.434 7.33701 153.027 0 162.289 0H332.441C341.703 0 348.574 7.33701 352.643 18.7291C352.92 19.5022 494.716 404.819 494.716 404.819C494.716 404.819 426.67 364.254 327.525 364.254L264.41 169.408C262.047 159.985 255.147 153.581 247.358 153.581C239.569 153.581 232.669 159.985 230.306 169.408L167.19 364.254ZM160.869 530.172C160.877 530.18 160.885 530.187 160.894 530.195L160.867 530.181C160.868 530.178 160.868 530.175 160.869 530.172ZM136.218 411.348C124.476 450.467 132.698 504.458 160.869 530.172C160.997 529.696 161.125 529.242 161.248 528.804C161.502 527.907 161.737 527.073 161.917 526.233C165.446 509.895 178.754 499.52 195.577 500.01C211.969 500.487 220.67 508.765 223.202 527.254C224.141 534.12 224.23 541.131 224.319 548.105C224.328 548.834 224.337 549.563 224.347 550.291C224.563 566.098 228.657 580.707 237.264 593.914C245.413 606.426 256.108 615.943 270.749 622.478C270.593 621.952 270.463 621.508 270.35 621.126C270.045 620.086 269.872 619.499 269.685 618.911C258.909 585.935 266.668 563.266 295.344 543.933C298.254 541.971 301.187 540.041 304.12 538.112C310.591 533.854 317.059 529.599 323.279 525.007C345.88 508.329 360.09 486.327 363.431 457.844C364.805 446.148 363.781 434.657 359.848 423.275C358.176 424.287 356.587 425.295 355.042 426.275C351.744 428.366 348.647 430.33 345.382 431.934C303.466 452.507 259.152 455.053 214.03 448.245C184.802 443.834 156.584 436.019 136.218 411.348Z"
|
||||
fill="url(#paint0_linear_1805_24383)"></path>
|
||||
<defs>
|
||||
<linearGradient
|
||||
id="paint0_linear_1805_24383"
|
||||
x1="247.358"
|
||||
y1="0"
|
||||
x2="247.358"
|
||||
y2="622.479"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
>
|
||||
<stop stop-opacity="0.9"></stop>
|
||||
<stop offset="1" stop-opacity="0.2"></stop>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
</svg>
|
||||
<h1>Welcome to <span class="text-gradient">Kyren's Site</span></h1>
|
||||
<p class="instructions">
|
||||
To get started, open the directory <code>src/pages</code> in your project.<br />
|
||||
<strong>Code Challenge:</strong> Tweak HMMM "Welcome to Astro" message above.
|
||||
</p>
|
||||
<ul role="list" class="link-card-grid">
|
||||
<Card
|
||||
href="https://docs.astro.build/"
|
||||
title="Documentation"
|
||||
body="Learn how Astro works and explore the official API docs."
|
||||
/>
|
||||
<Card
|
||||
href="https://astro.build/integrations/"
|
||||
title="Integrations"
|
||||
body="Supercharge your project with new frameworks and libraries."
|
||||
/>
|
||||
<Card
|
||||
href="https://astro.build/themes/"
|
||||
title="Themes"
|
||||
body="Explore a galaxy of community-built starter themes."
|
||||
/>
|
||||
<Card
|
||||
href="https://astro.build/chat/"
|
||||
title="Community"
|
||||
body="Come say hi to our amazing Discord community. ❤️"
|
||||
/>
|
||||
</ul>
|
||||
</main>
|
||||
</Layout>
|
||||
|
||||
<style>
|
||||
main {
|
||||
margin: auto;
|
||||
padding: 1rem;
|
||||
width: 800px;
|
||||
max-width: calc(100% - 2rem);
|
||||
color: white;
|
||||
font-size: 20px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
.astro-a {
|
||||
position: absolute;
|
||||
top: -32px;
|
||||
left: 50%;
|
||||
transform: translatex(-50%);
|
||||
width: 220px;
|
||||
height: auto;
|
||||
z-index: -1;
|
||||
}
|
||||
h1 {
|
||||
font-size: 4rem;
|
||||
font-weight: 700;
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.text-gradient {
|
||||
background-image: var(--accent-gradient);
|
||||
-webkit-background-clip: text;
|
||||
-webkit-text-fill-color: transparent;
|
||||
background-size: 400%;
|
||||
background-position: 0%;
|
||||
}
|
||||
.instructions {
|
||||
margin-bottom: 2rem;
|
||||
border: 1px solid rgba(var(--accent-light), 25%);
|
||||
background: linear-gradient(rgba(var(--accent-dark), 66%), rgba(var(--accent-dark), 33%));
|
||||
padding: 1.5rem;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.instructions code {
|
||||
font-size: 0.8em;
|
||||
font-weight: bold;
|
||||
background: rgba(var(--accent-light), 12%);
|
||||
color: rgb(var(--accent-light));
|
||||
border-radius: 4px;
|
||||
padding: 0.3em 0.4em;
|
||||
}
|
||||
.instructions strong {
|
||||
color: rgb(var(--accent-light));
|
||||
}
|
||||
.link-card-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fit, minmax(24ch, 1fr));
|
||||
gap: 2rem;
|
||||
padding: 0;
|
||||
}
|
||||
</style>
|
||||
@@ -1,14 +1,12 @@
|
||||
---
|
||||
import Prose from '../components/Prose.astro';
|
||||
import MarkdownLayout from '../layouts/MarkdownLayout.astro';
|
||||
// import Prose from '../components/Prose.astro';
|
||||
// import Layout from '../layouts/Layout.astro';
|
||||
import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro';
|
||||
import { getEntry } from 'astro:content';
|
||||
|
||||
const entry = await getEntry('blogs', 'blog-1');
|
||||
const { Content } = await entry.render();
|
||||
---
|
||||
<StarlightPage frontmatter={{title: 'test', template: 'splash'}}>
|
||||
<Prose>
|
||||
<Content />
|
||||
</Prose>
|
||||
</MarkdownLayout>
|
||||
<StarlightPage frontmatter={{title: "Blabla", template: 'splash'}}>
|
||||
<Content />
|
||||
</StarlightPage>
|
||||
|
||||
108
src/styles/JetBrainsMono.css
Normal file
108
src/styles/JetBrainsMono.css
Normal file
@@ -0,0 +1,108 @@
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-Thin.woff2") format("woff2");
|
||||
font-weight: 100;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-ThinItalic.woff2") format("woff2");
|
||||
font-weight: 100;
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-ExtraLight.woff2") format("woff2");
|
||||
font-weight: 200;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-ExtraLightItalic.woff2") format("woff2");
|
||||
font-weight: 200;
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-Light.woff2") format("woff2");
|
||||
font-weight: 300;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-LightItalic.woff2") format("woff2");
|
||||
font-weight: 300;
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-Regular.woff2") format("woff2");
|
||||
font-weight: 400;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-Italic.woff2") format("woff2");
|
||||
font-weight: 400;
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-Medium.woff2") format("woff2");
|
||||
font-weight: 500;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-MediumItalic.woff2") format("woff2");
|
||||
font-weight: 500;
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-SemiBold.woff2") format("woff2");
|
||||
font-weight: 600;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-SemiBoldItalic.woff2") format("woff2");
|
||||
font-weight: 600;
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-Bold.woff2") format("woff2");
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-BoldItalic.woff2") format("woff2");
|
||||
font-weight: 700;
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-ExtraBold.woff2") format("woff2");
|
||||
font-weight: 800;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-ExtraBoldItalic.woff2") format("woff2");
|
||||
font-weight: 800;
|
||||
font-style: italic;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-ExtraBold.woff2") format("woff2");
|
||||
font-weight: 900;
|
||||
font-style: normal;
|
||||
}
|
||||
@font-face {
|
||||
font-family: "Jetbrains Mono";
|
||||
src: url("JetBrainsMono-ExtraBoldItalic.woff2") format("woff2");
|
||||
font-weight: 900;
|
||||
font-style: italic;
|
||||
}
|
||||
@@ -1,7 +1,10 @@
|
||||
:root {
|
||||
width: 70%;
|
||||
margin: auto;
|
||||
/* --sl-text-body-sm: var(--sl-text-sm * 10); */
|
||||
/* --sl-text-code-sm: var(--sl-text-xs * 10); */
|
||||
/* font-size: 130%; */
|
||||
}
|
||||
p {
|
||||
font-size: 1.625rem;
|
||||
/* font-size: 1.625rem; */
|
||||
}
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
export default {
|
||||
corePlugins: {
|
||||
preflight: false,
|
||||
},
|
||||
content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"],
|
||||
// content: ["./src/**/*.{astro,html,js,jsx,svelte,ts,tsx,vue}"],
|
||||
theme: {
|
||||
extend: {},
|
||||
},
|
||||
plugins: [require("@tailwindcss/typography")],
|
||||
plugins: [
|
||||
// require("@tailwindcss/typography")
|
||||
],
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user