Herping the derp
This commit is contained in:
parent
6f43e6265a
commit
3ea75d83d2
|
@ -219,3 +219,33 @@ fabric.properties
|
|||
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
build/
|
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 6.7 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
Binary file not shown.
After Width: | Height: | Size: 2.0 KiB |
|
@ -2,16 +2,20 @@
|
|||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-title" content="Nix13">
|
||||
<link rel="apple-touch-icon" href="./favicon.png">
|
||||
<meta name="apple-mobile-web-app-title" content="nix13.pw">
|
||||
|
||||
<meta name="application-name" content="Nix13">
|
||||
<meta name="theme-color" content="#ff00ff">
|
||||
<meta name="theme-color" content="#222222">
|
||||
|
||||
<link sizes="512x512" href="./favicon.png">
|
||||
<link sizes="192x192" href="./icon-192x192.png">
|
||||
<link sizes="256x256" href="./icon-256x256.png">
|
||||
<link sizes="384x384" href="./icon-384x384.png">
|
||||
<link sizes="512x512" href="./icon-512x512.png">
|
||||
<link rel="shortcut icon" href="./icon-512x512.png" type="image/png">
|
||||
<link rel="apple-touch-icon" href="./icon-192x192.png">
|
||||
<link rel="manifest" href="./manifest.webmanifest">
|
||||
|
||||
<!-- FontAwesome -->
|
||||
|
|
|
@ -1,11 +1,26 @@
|
|||
{
|
||||
"short_name": "Nix13",
|
||||
"name": "Nix13",
|
||||
"theme_color": "#222222",
|
||||
"background_color": "#222222",
|
||||
"display": "browser",
|
||||
"scope": "/",
|
||||
"start_url": "/",
|
||||
"name": "Nix13 website",
|
||||
"short_name": "Nix13 website",
|
||||
"icons": [{
|
||||
"src": "favicon.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}],
|
||||
"display": "fullscreen",
|
||||
"start_url": "/"
|
||||
"src": "/icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},{
|
||||
"src": "/icon-256x256.png",
|
||||
"sizes": "256x256",
|
||||
"type": "image/png"
|
||||
}, {
|
||||
"src": "/icon-384x384.png",
|
||||
"sizes": "384x384",
|
||||
"type": "image/png"
|
||||
}, {
|
||||
"src": "/icon-512x512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}]
|
||||
}
|
|
@ -9,11 +9,11 @@ const App: FC = () => (
|
|||
<div className="App">
|
||||
<Navbar/>
|
||||
|
||||
<div className="Container">
|
||||
<main className="Container">
|
||||
<Main/>
|
||||
<Projects/>
|
||||
<GenshinDownloads/>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
);
|
||||
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
import './Navbas.scss';
|
||||
|
||||
const Navbar = () => (
|
||||
<div className="Navbar">
|
||||
<nav className="Navbar">
|
||||
<div className="Navbar__Container">
|
||||
<a href="#Main" className='Navbar__Container_Link'>Основное</a>
|
||||
<a href="#Projects" className='Navbar__Container_Link'>Проекты</a>
|
||||
<a href="#GenshinDownloads" className='Navbar__Container_Link'>Genshin</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
);
|
||||
|
||||
export default Navbar;
|
|
@ -24,6 +24,10 @@
|
|||
&_Link {
|
||||
font-size: 20px;
|
||||
|
||||
&:hover {
|
||||
text-decoration: underline var(--accent-color);
|
||||
}
|
||||
|
||||
&:not(:last-child) {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
|
|
@ -1,11 +1,6 @@
|
|||
import { createRoot } from 'react-dom/client';
|
||||
import { BrowserRouter } from "react-router-dom";
|
||||
import App from './components/App/App';
|
||||
|
||||
|
||||
const container = document.getElementById('root') as HTMLElement;
|
||||
createRoot(container).render(
|
||||
<BrowserRouter>
|
||||
<App/>
|
||||
</BrowserRouter>
|
||||
);
|
||||
createRoot(container).render(<App/>);
|
|
@ -2,6 +2,15 @@
|
|||
|
||||
.GenshinDownloads {
|
||||
padding-top: var(--navbar-height);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
&__Title {
|
||||
font-size: 3rem;
|
||||
text-align: center;
|
||||
font-weight: 200;
|
||||
text-decoration: underline var(--accent-color);
|
||||
}
|
||||
|
||||
&__Item {
|
||||
&_Title {
|
||||
|
@ -35,6 +44,7 @@
|
|||
|
||||
&__Actual, &__Outdated, &__Beta {
|
||||
text-align: center;
|
||||
font-size: 2rem;
|
||||
border-bottom: 1px solid #fff;
|
||||
margin-bottom: 4px;
|
||||
padding-bottom: 4px;
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import {useEffect, useState} from "react";
|
||||
import './GenshinDownloads.scss';
|
||||
import Loading from "../../ui/Loading/Loading";
|
||||
import * as url from "url";
|
||||
|
||||
const GenshinDownloads = () => {
|
||||
const [genshinDL, setGenshinDL] = useState<GenshinDLType[]>([]);
|
||||
|
@ -10,9 +9,7 @@ const GenshinDownloads = () => {
|
|||
const [betaCollapse, setBetaCollapse] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
// const url = 'https://baka.nix13.pw/genshin';
|
||||
const url = 'http://localhost:8099/genshin'
|
||||
fetch(url)
|
||||
fetch('https://baka.nix13.pw/genshin')
|
||||
.then(r => r.json())
|
||||
.then(r => setGenshinDL(r.genshin))
|
||||
.then(_ => setLoading(false));
|
||||
|
@ -21,7 +18,9 @@ const GenshinDownloads = () => {
|
|||
if(loading || !genshinDL) return <Loading/>;
|
||||
return (
|
||||
<div className={'GenshinDownloads'} id='GenshinDownloads'>
|
||||
<h1 className={'GenshinDownloads__Actual'}>Актуальная версия</h1>
|
||||
<div className="GenshinDownloads__Title">Genshin Impact</div>
|
||||
|
||||
<span className={'GenshinDownloads__Actual'}>Актуальная версия</span>
|
||||
{genshinDL.filter(dl => !dl.outdated && !dl.beta).map(dl => (
|
||||
<div className={'GenshinDownloads__Item'} key={dl.name}>
|
||||
<h2 className={'GenshinDownloads__Item_Title'}>{dl.name}</h2>
|
||||
|
@ -40,7 +39,7 @@ const GenshinDownloads = () => {
|
|||
</div>
|
||||
))}
|
||||
|
||||
<h1 className={`GenshinDownloads__Outdated ${outdatedCollapse && 'GenshinDownloads__Outdated--NotCollapsed'}`} onClick={() => setOutdatedCollapse(!outdatedCollapse)}>Устаревшие версии</h1>
|
||||
<span className={`GenshinDownloads__Outdated ${outdatedCollapse && 'GenshinDownloads__Outdated--NotCollapsed'}`} onClick={() => setOutdatedCollapse(!outdatedCollapse)}>Устаревшие версии</span>
|
||||
{!outdatedCollapse && genshinDL.filter(dl => dl.outdated && !dl.beta).map(dl => (
|
||||
<div className={'GenshinDownloads__Item'} key={dl.name}>
|
||||
<h2 className={'GenshinDownloads__Item_Title'}>{dl.name}</h2>
|
||||
|
@ -58,7 +57,7 @@ const GenshinDownloads = () => {
|
|||
</div>
|
||||
))}
|
||||
|
||||
<h1 className={`GenshinDownloads__Beta ${betaCollapse && 'GenshinDownloads__Beta--NotCollapsed'}`} onClick={() => setBetaCollapse(!betaCollapse)}>Бета версии</h1>
|
||||
<span className={`GenshinDownloads__Beta ${betaCollapse && 'GenshinDownloads__Beta--NotCollapsed'}`} onClick={() => setBetaCollapse(!betaCollapse)}>Бета версии</span>
|
||||
{!betaCollapse && genshinDL.filter(dl => dl.beta).map(dl => (
|
||||
<div className={'GenshinDownloads__Item'} key={dl.name}>
|
||||
<h2 className={'GenshinDownloads__Item_Title'}>{dl.name}</h2>
|
||||
|
|
|
@ -2,8 +2,9 @@
|
|||
|
||||
.Main {
|
||||
width: 100%;
|
||||
height: calc(100vh - var(--navbar-height));
|
||||
height: calc(100vh - var(--navbar-height) - env(safe-area-inset-top));
|
||||
box-sizing: border-box;
|
||||
padding-bottom: calc(8px + env(safe-area-inset-bottom));
|
||||
|
||||
&__Center {
|
||||
height: calc(100% - var(--navbar-height));
|
||||
|
@ -33,15 +34,10 @@
|
|||
&_Link {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
& > :first-child {
|
||||
margin-right: 4px;
|
||||
}
|
||||
font-size: 2rem;
|
||||
|
||||
&:not(:last-child) {
|
||||
margin-right: 4px;
|
||||
padding-right: 4px;
|
||||
border-right: 1px solid white;
|
||||
margin-right: 12px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -12,6 +12,10 @@ const Main = () => {
|
|||
'Golang fullstack',
|
||||
1000,
|
||||
'Python fullstack',
|
||||
1000,
|
||||
'Kotlin developer',
|
||||
1000,
|
||||
'Web developer',
|
||||
1000
|
||||
]}
|
||||
repeat={Infinity}
|
||||
|
@ -22,36 +26,23 @@ const Main = () => {
|
|||
<div className="Main__Links">
|
||||
<a className="Main__Links_Link" href='https://t.me/DarkShinigani' target='_blank' rel='noopener noreferrer'>
|
||||
<i className="fa-brands fa-telegram"/>
|
||||
<span>Телеграм</span>
|
||||
</a>
|
||||
<a className="Main__Links_Link" href='https://vk.com/scur0nek0' target='_blank' rel='noopener noreferrer'>
|
||||
<i className="fa-brands fa-vk"/>
|
||||
ВК
|
||||
</a>
|
||||
|
||||
<a className="Main__Links_Link" href='https://github.com/Nix1304' target='_blank' rel='noopener noreferrer'>
|
||||
<i className="fa-brands fa-github"/>
|
||||
GitHub
|
||||
</a>
|
||||
<a className="Main__Links_Link" href='https://git.nix13.pw/' target='_blank' rel='noopener noreferrer'>
|
||||
<i className="fa-brands fa-git"/>
|
||||
Git
|
||||
</a>
|
||||
<a className="Main__Links_Link" href='https://mvn.nix13.pw/' target='_blank' rel='noopener noreferrer'>
|
||||
<i className="fa-brands fa-readme"></i>
|
||||
Maven
|
||||
</a>
|
||||
<a className="Main__Links_Link" href='https://files.nix13.pw/' target='_blank' rel='noopener noreferrer'>
|
||||
<i className="fa-light fa-files"/>
|
||||
Files
|
||||
</a>
|
||||
</div>
|
||||
|
||||
{/*<div className="Buttons">*/}
|
||||
{/* <button className="Button_Outline--Glow">Aboba</button>*/}
|
||||
{/* <button className="Button_Outline--Glow">Aboba</button>*/}
|
||||
{/* <button className="Button_Outline--Glow">Aboba</button>*/}
|
||||
{/*</div>*/}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
|
@ -1,7 +1,24 @@
|
|||
.Projects {
|
||||
padding-top: var(--navbar-height);
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
&_Title {
|
||||
font-size: 3rem;
|
||||
text-align: center;
|
||||
font-weight: 200;
|
||||
text-decoration: underline var(--accent-color);
|
||||
}
|
||||
|
||||
&__Title {
|
||||
text-align: center;
|
||||
font-size: 2rem;
|
||||
border-bottom: 1px solid #fff;
|
||||
margin-bottom: 4px;
|
||||
padding-bottom: 4px;
|
||||
}
|
||||
|
||||
&__List {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import React, {useEffect, useState} from "react";
|
||||
import ProjectCard from "../../ui/ProjectCard/ProjectCard";
|
||||
import './Projects.scss';
|
||||
import Loading from "../../ui/Loading/Loading";
|
||||
|
||||
type ProjectsState = {
|
||||
done: ProjectType[]
|
||||
|
@ -18,10 +19,12 @@ const Projects = () => {
|
|||
.then(_ => setLoading(false));
|
||||
}, []);
|
||||
|
||||
if(loading) return <div>Грузится, бля...</div>
|
||||
if(loading) return <Loading/>;
|
||||
return (
|
||||
<div className="Projects" id='Projects'>
|
||||
<h2>Завершенные и в разработке</h2>
|
||||
<div className="Projects_Title">Проекты</div>
|
||||
|
||||
<span className='Projects__Title' style={{ borderColor: '#ab1bff', color: '#ab1bff' }}>Завершенные и в разработке</span>
|
||||
<div className="Projects__List">
|
||||
{projects.done.map(project => (
|
||||
<ProjectCard
|
||||
|
@ -32,7 +35,7 @@ const Projects = () => {
|
|||
))}
|
||||
</div>
|
||||
|
||||
<h2>Замороженные и брошенные</h2>
|
||||
<span className='Projects__Title' style={{ borderColor: '#19b3a6', color: '#19b3a6' }}>Замороженные и брошенные</span>
|
||||
<div className="Projects__List">
|
||||
{projects.dropped.map(project => (
|
||||
<ProjectCard
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
const StarRailDownloads = () => {
|
||||
|
||||
}
|
||||
|
||||
export default StarRailDownloads;
|
|
@ -1,5 +1,5 @@
|
|||
const Loading = () => (
|
||||
<div>Грузится бля!</div>
|
||||
<div>Загрузка...</div>
|
||||
);
|
||||
|
||||
export default Loading;
|
|
@ -1,3 +0,0 @@
|
|||
.ProjectLinkBadge
|
||||
&:not(:last-child)
|
||||
margin-right: 8px
|
|
@ -0,0 +1,5 @@
|
|||
.ProjectLinkBadge {
|
||||
&:not(:last-child) {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
import './ProjectLinkBadge.sass';
|
||||
import './ProjectLinkBadge.scss';
|
||||
|
||||
type Props = {
|
||||
linkImage: ProjectLink
|
||||
|
|
|
@ -1,3 +0,0 @@
|
|||
.ProjectStackBadge
|
||||
&:not(:last-child)
|
||||
margin-right: 8px
|
|
@ -0,0 +1,5 @@
|
|||
.ProjectStackBadge {
|
||||
&:not(:last-child) {
|
||||
margin-right: 8px
|
||||
}
|
||||
}
|
|
@ -1,4 +1,4 @@
|
|||
import './ProjectStackBadge.sass';
|
||||
import './ProjectStackBadge.scss';
|
||||
|
||||
type Props = {
|
||||
stack: ProjectStack
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
.ProjectStatus
|
||||
font-size: 16px
|
||||
font-weight: 300
|
||||
height: fit-content
|
||||
padding: 2px 6px
|
||||
|
||||
&__Development
|
||||
background-color: #ff9c1b
|
||||
|
||||
&__Release
|
||||
background-color: #ab1bff
|
||||
|
||||
&__Freeze
|
||||
background-color: #19b3a6
|
||||
|
||||
&__Dropped
|
||||
background-color: #ff1b1b
|
|
@ -0,0 +1,19 @@
|
|||
.ProjectStatus {
|
||||
font-size: 16px;
|
||||
font-weight: 300;
|
||||
height: fit-content;
|
||||
padding: 2px 6px;
|
||||
|
||||
&__Development {
|
||||
background-color: #ff9c1b;
|
||||
}
|
||||
&__Release {
|
||||
background-color: #ab1bff;
|
||||
}
|
||||
&__Freeze {
|
||||
background-color: #19b3a6;
|
||||
}
|
||||
&__Dropped {
|
||||
background-color: #ff1b1b;
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
import { capitalize } from "../../utils";
|
||||
import './ProjectStatusBadge.sass';
|
||||
import './ProjectStatusBadge.scss';
|
||||
|
||||
type Props = {
|
||||
status: ProjectStatus
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
.ProjectCard
|
||||
background-color: #333
|
||||
padding: 8px
|
||||
margin: 0 8px 8px 0
|
||||
box-sizing: border-box
|
||||
border: 2px solid var(--accent-color)
|
||||
|
||||
&__Title
|
||||
display: flex
|
||||
justify-content: space-between
|
||||
margin-bottom: 4px
|
||||
|
||||
&__Content, &__Links, &__Stack
|
||||
border-top: 1px solid #d8858d
|
||||
padding-top: 4px
|
||||
|
||||
&__Content, &__Stack
|
||||
margin-bottom: 4px
|
||||
|
||||
&__Links
|
||||
font-weight: 500
|
||||
&_Link:not(:first-child)
|
||||
margin-left: 4px
|
|
@ -0,0 +1,30 @@
|
|||
.ProjectCard {
|
||||
background-color: #333;
|
||||
padding: 8px;
|
||||
box-sizing: border-box;
|
||||
border: 2px solid var(--accent-color);
|
||||
margin-bottom: 8px;
|
||||
|
||||
&__Title {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
&__Content, &__Links, &__Stack {
|
||||
border-top: 1px solid #d8858d;
|
||||
padding-top: 4px;
|
||||
}
|
||||
|
||||
&__Content, &__Stack {
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
&__Links {
|
||||
font-weight: 500;
|
||||
|
||||
&_Link:not(:first-child) {
|
||||
margin-left: 4px;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,7 +2,7 @@ import React from "react";
|
|||
import ProjectLinkBadge from "../ProjectBadge/ProjectLinkBadge";
|
||||
import ProjectStackBadge from "../ProjectBadge/ProjectStackBadge";
|
||||
import ProjectStatusBadge from "../ProjectBadge/ProjectStatusBadge";
|
||||
import './ProjectCard.sass';
|
||||
import './ProjectCard.scss';
|
||||
|
||||
type Props = {
|
||||
title: string
|
||||
|
|
Loading…
Reference in New Issue