Add initial website

This commit is contained in:
yehor
2025-05-16 16:08:50 +03:00
parent 5770fdeaf9
commit d10a177923
46 changed files with 27704 additions and 1 deletions

View File

@ -0,0 +1,61 @@
import clsx from 'clsx';
import Heading from '@theme/Heading';
import styles from './styles.module.css';
const FeatureList = [
{
title: 'HomeLab Documented',
link: 'docs/homelab',
Svg: require('@site/static/img/homelab.svg').default,
description: (
<>
Here I'm trying my best in documenting my self-hosted journey.
</>
),
},
{
title: 'Blog',
link: 'blog',
Svg: require('@site/static/img/blog.svg').default,
description: (
<>
Some notes, interesting things and projects.
</>
),
},
];
function Feature({ Svg, title, link, description }) {
return (
<div className={clsx('col col--6')}>
<div className="text--center">
<a href={link} className={styles.featureLink}>
<Svg className={styles.featureSvg} role="img" />
</a>
</div>
<a href={link} className={styles.featureLink}>
<div className="text--center padding-horiz--md">
<Heading as="h3">{title}</Heading>
<p>{description}</p>
</div>
</a>
</div>
);
}
export default function HomepageFeatures() {
return (
<section className={styles.features}>
<div className="container">
<div className="row">
{FeatureList.map((props, idx) => (
<Feature key={idx} {...props} />
))}
</div>
</div>
</section>
);
}

View File

@ -0,0 +1,26 @@
.features {
display: flex;
align-items: center;
padding: 2rem 0;
width: 100%;
}
.featureSvg {
height: 200px;
width: 200px;
}
.featureLink {
display: contents;
color: unset;
}
.featureLink:hover {
text-decoration: none;
color: unset;
}
.featureLink:visited {
text-decoration: none;
color: unset;
}

31
src/css/custom.css Normal file
View File

@ -0,0 +1,31 @@
/**
* Any CSS included here will be global. The classic template
* bundles Infima by default. Infima is a CSS framework designed to
* work well for content-centric websites.
*/
/* You can override the default Infima variables here. */
:root {
--ifm-color-primary: #541d54;
--ifm-color-primary-dark: #4c1a4c;
--ifm-color-primary-darker: #471947;
--ifm-color-primary-darkest: #3b143b;
--ifm-color-primary-light: #3b143b;
--ifm-color-primary-lighter: #612161;
--ifm-color-primary-lightest: #6d266d;
--ifm-code-font-size: 95%;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
}
/* For readability concerns, you should choose a lighter palette in dark mode. */
[data-theme='dark'] {
--ifm-color-primary: #b07ab0;
--ifm-color-primary-dark: #a567a5;
--ifm-color-primary-darker: #9f5e9f;
--ifm-color-primary-darkest: #834e83;
--ifm-color-primary-light: #bb8dbb;
--ifm-color-primary-lighter: #c196c1;
--ifm-color-primary-lightest: #d1b2d1;
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
}

68
src/pages/index.js Normal file
View File

@ -0,0 +1,68 @@
import clsx from 'clsx';
import Link from '@docusaurus/Link';
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
import Layout from '@theme/Layout';
import HomepageFeatures from '@site/src/components/HomepageFeatures';
import Heading from '@theme/Heading';
import styles from './index.module.css';
function HomepageHeader() {
const { siteConfig } = useDocusaurusContext();
return (
<header className={clsx('hero hero--primary', styles.heroBanner)}>
<div className="container">
<Heading as="h1" className="hero__title">
{siteConfig.title}
</Heading>
<p className="hero__subtitle">{siteConfig.tagline}</p>
<div className={styles.buttons}>
<Link
className="button button--secondary button--lg"
to="https://git.nicelycomposed.codes/yehor">
Git
</Link>
<Link
className="button button--secondary button--lg"
to="https://techhub.social/@estevez">
Mastodon
</Link>
<Link
className="button button--secondary button--lg"
to="https://pixelfed.social/estevez">
Pixelfed
</Link>
<Link
className="button button--secondary button--lg"
to="https://github.com/estevez-dev">
GitHub
</Link>
<Link
className="button button--secondary button--lg"
to="https://untappd.com/user/estevezz">
Untappd
</Link>
<Link
className="button button--secondary button--lg"
to="https://www.linkedin.com/in/yehor-vialov-2a362158/">
LinkedIn
</Link>
</div>
</div>
</header>
);
}
export default function Home() {
const { siteConfig } = useDocusaurusContext();
return (
<Layout
title={`Yehor Vialov. Personal website`}
description="Yehor Vialov's personal website">
<HomepageHeader />
<main>
<HomepageFeatures />
</main>
</Layout>
);
}

View File

@ -0,0 +1,25 @@
/**
* CSS files with the .module.css suffix will be treated as CSS modules
* and scoped locally.
*/
.heroBanner {
padding: 4rem 0;
text-align: center;
position: relative;
overflow: hidden;
}
@media screen and (max-width: 996px) {
.heroBanner {
padding: 2rem;
}
}
.buttons {
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
flex-wrap: wrap;
}

View File

@ -0,0 +1,7 @@
---
title: Markdown page example
---
# Markdown page example
You don't need React to write simple standalone pages.