Compare commits
No commits in common. "rewrite" and "main" have entirely different histories.
23
.gitignore
vendored
|
@ -1,23 +0,0 @@
|
|||
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
/.pnp
|
||||
.pnp.js
|
||||
|
||||
# testing
|
||||
/coverage
|
||||
|
||||
# production
|
||||
/build
|
||||
|
||||
# misc
|
||||
.DS_Store
|
||||
.env.local
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
70
README.md
|
@ -1,70 +0,0 @@
|
|||
# Getting Started with Create React App
|
||||
|
||||
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
|
||||
|
||||
## Available Scripts
|
||||
|
||||
In the project directory, you can run:
|
||||
|
||||
### `npm start`
|
||||
|
||||
Runs the app in the development mode.\
|
||||
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
|
||||
|
||||
The page will reload when you make changes.\
|
||||
You may also see any lint errors in the console.
|
||||
|
||||
### `npm test`
|
||||
|
||||
Launches the test runner in the interactive watch mode.\
|
||||
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
|
||||
|
||||
### `npm run build`
|
||||
|
||||
Builds the app for production to the `build` folder.\
|
||||
It correctly bundles React in production mode and optimizes the build for the best performance.
|
||||
|
||||
The build is minified and the filenames include the hashes.\
|
||||
Your app is ready to be deployed!
|
||||
|
||||
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
|
||||
|
||||
### `npm run eject`
|
||||
|
||||
**Note: this is a one-way operation. Once you `eject`, you can't go back!**
|
||||
|
||||
If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
|
||||
|
||||
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
|
||||
|
||||
You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
|
||||
|
||||
## Learn More
|
||||
|
||||
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
|
||||
|
||||
To learn React, check out the [React documentation](https://reactjs.org/).
|
||||
|
||||
### Code Splitting
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
|
||||
|
||||
### Analyzing the Bundle Size
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
|
||||
|
||||
### Making a Progressive Web App
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
|
||||
|
||||
### Advanced Configuration
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
|
||||
|
||||
### Deployment
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
|
||||
|
||||
### `npm run build` fails to minify
|
||||
|
||||
This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
|
|
@ -3,5 +3,6 @@
|
|||
{
|
||||
"path": "."
|
||||
}
|
||||
]
|
||||
],
|
||||
"settings": {}
|
||||
}
|
52
css/about.css
Normal file
|
@ -0,0 +1,52 @@
|
|||
@import url('https://fonts.googleapis.com/css2?family=Sarabun&display=swap');
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Sarabun', sans-serif;
|
||||
font-weight: 400;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
background-color: black;
|
||||
color: lightpink;
|
||||
padding-top: 6%;
|
||||
padding-bottom: 3.5%;
|
||||
}
|
||||
|
||||
/* Centered Content */
|
||||
.headercontent {
|
||||
text-align: center;
|
||||
align-self: flex;
|
||||
flex-grow: 1;
|
||||
overflow-y: auto;
|
||||
height: 100%;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.headercontent h1 {
|
||||
padding-top: 10px;
|
||||
font-size: 48px;
|
||||
}
|
||||
|
||||
.headercontent h4 {
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.headercontent p {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
.TTClogo {
|
||||
margin-top: 20px;
|
||||
width: 250px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.ShieldsDiscord {
|
||||
margin-bottom: 20px;
|
||||
}
|
20
css/rants.css
Normal file
|
@ -0,0 +1,20 @@
|
|||
@import url('https://fonts.googleapis.com/css2?family=Sarabun&display=swap');
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Sarabun', sans-serif;
|
||||
font-weight: 400;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
background-color: black;
|
||||
color: lightpink;
|
||||
padding-top: 6%;
|
||||
padding-bottom: 3.5%;
|
||||
}
|
||||
|
29
css/style.css
Normal file
|
@ -0,0 +1,29 @@
|
|||
@import url('https://fonts.googleapis.com/css2?family=Sarabun&display=swap');
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Sarabun', sans-serif;
|
||||
font-weight: 400;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
background-color: black;
|
||||
color: lightpink;
|
||||
overflow: hidden;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Centered Content */
|
||||
.centered-content {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#blahaj {
|
||||
opacity: 0;
|
||||
}
|
249
css/styleHF.css
Normal file
|
@ -0,0 +1,249 @@
|
|||
/* Header */
|
||||
|
||||
:root {
|
||||
--background-color-dark: #111111;
|
||||
--background-color-light: rgb(255, 224, 229);
|
||||
--article-bg-dark: #161616;
|
||||
--article-bg-light:#d3adb3;
|
||||
--color-dark: lightpink;
|
||||
--color-light: #111111;
|
||||
--color-button-dark: rgb(160, 61, 76);
|
||||
--color-buton-light: #333;
|
||||
--color-button-hover-light: rgb(160, 61, 76);
|
||||
--color-button-hover-dark: #333;
|
||||
|
||||
--color-bg-body-dark: black;
|
||||
--color-bg-body-light: lightpink;
|
||||
--color-body-light: lightpink;
|
||||
--color-body-dark: black;
|
||||
}
|
||||
|
||||
header {
|
||||
background-color: var(--background-color-dark);
|
||||
color: var(--color-light);
|
||||
padding: 5px;
|
||||
text-align: left;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
footer {
|
||||
background-color: #111111;
|
||||
color: lightpink;
|
||||
padding: 5px;
|
||||
text-align: center;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
/* Add the following styles for the popup */
|
||||
.image-popup {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
max-width: 300px;
|
||||
width: min-content;
|
||||
}
|
||||
|
||||
|
||||
.popup-content {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
width: min-content;
|
||||
background-color: #1d1d1d;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
|
||||
z-index: 1;
|
||||
border-radius: 5px;
|
||||
}
|
||||
|
||||
.image-popup:hover .popup-content {
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.popup-content img {
|
||||
width: 40px;
|
||||
height: auto;
|
||||
margin-right: 10px;
|
||||
box-sizing: border-box;
|
||||
transition: transform 0.1s ease-in-out;
|
||||
}
|
||||
|
||||
.popup-content img:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* Add the following style to remove margin on the last child */
|
||||
.popup-content > :last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.popup-content img:hover {
|
||||
transform: scale(1.1); /* Add a slight scale effect on hover */
|
||||
}
|
||||
|
||||
/* Navigation in Header*/
|
||||
nav.top-nav ul {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
align-items: center; /* Align items vertically in the center */
|
||||
}
|
||||
|
||||
nav.top-nav a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
padding: 10px 15px; /* Adjust padding for better spacing */
|
||||
transition: color 0.3s; /* Add a smooth transition for color change */
|
||||
}
|
||||
|
||||
nav.top-nav li {
|
||||
margin: 0 15px;
|
||||
border-right: 2px solid rgb(0, 0, 0); /* Add a right border to create a separator */
|
||||
padding-right: 15px; /* Adjust padding for better spacing */
|
||||
}
|
||||
|
||||
/* Style the last li to remove the border */
|
||||
nav.top-nav li:last-child {
|
||||
border-right: none;
|
||||
}
|
||||
|
||||
/* Change text color on hover */
|
||||
nav.top-nav a:hover {
|
||||
color: rgb(255, 246, 247); /* Change to the desired hover color */
|
||||
}
|
||||
|
||||
/* Navigation in Footer */
|
||||
nav.bottom-nav ul {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: flex;
|
||||
justify-content: center; /* Center the items horizontally */
|
||||
align-items: center; /* Align items vertically in the center */
|
||||
}
|
||||
|
||||
nav.bottom-nav li {
|
||||
margin: 0 15px;
|
||||
}
|
||||
|
||||
/* Navigation links in Footer */
|
||||
nav.bottom-nav a {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
padding: 10px 15px; /* Adjust padding for better spacing */
|
||||
transition: color 0.3s; /* Add a smooth transition for color change */
|
||||
}
|
||||
|
||||
/* Change text color on hover */
|
||||
nav.bottom-nav a:hover {
|
||||
color: inherit; /* Change to the desired hover color */
|
||||
}
|
||||
|
||||
.toggle-button {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #333;
|
||||
color: inherit;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
padding: 10px 20px;
|
||||
border-color: #11111100;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.toggle-button img {
|
||||
transform: scale(.08);
|
||||
}
|
||||
|
||||
input[type="checkbox"] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
/*ARTICLES*/
|
||||
|
||||
#article-list {
|
||||
flex-direction: column;
|
||||
text-align: center;
|
||||
position: fixed;
|
||||
align-items: flex-start;
|
||||
left: 0;
|
||||
width: 20%;
|
||||
height: 100vh;
|
||||
background-color: var(--article-bg-dark);
|
||||
color: var(--color-dark);
|
||||
overflow-y: auto;
|
||||
padding-top: 6%;
|
||||
flex-grow: 1;
|
||||
}
|
||||
|
||||
/* Style for the subtitles */
|
||||
.article-subtitle {
|
||||
bottom: 0;
|
||||
left: 10%;
|
||||
width: 80%;
|
||||
padding: 5px;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
/* Style for the container of the article content */
|
||||
#article-container {
|
||||
flex-grow: 1;
|
||||
position: relative;
|
||||
width: 85%; /* Adjusted width to accommodate the article list */
|
||||
padding-left: 45%;
|
||||
padding-right: 20%; /* Add some padding for spacing */
|
||||
}
|
||||
|
||||
#article-container h1 {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#article-container h3 {
|
||||
text-align: left;
|
||||
position: absolute;
|
||||
left: 20%;
|
||||
margin-top: 2%;
|
||||
}
|
||||
|
||||
#article-container h6 {
|
||||
text-align: left;
|
||||
position: absolute;
|
||||
left: 20%;
|
||||
margin-top: 5%;
|
||||
}
|
||||
|
||||
#article-container p {
|
||||
text-align: left;
|
||||
position: absolute;
|
||||
left: 20%;
|
||||
margin-top: 8%;
|
||||
}
|
||||
|
||||
/* Responsive styles for smaller screens */
|
||||
@media screen and (max-width: 768px) {
|
||||
body {
|
||||
padding-top: 10%; /* Adjust as needed */
|
||||
}
|
||||
|
||||
#article-list {
|
||||
width: 100%;
|
||||
padding-top: 10%; /* Adjust as needed */
|
||||
}
|
||||
|
||||
#article-container {
|
||||
margin-left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
77
html/about.html
Normal file
|
@ -0,0 +1,77 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" type="image/png" sizes="48x48" href="/images/bunnie48px.png">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="color-scheme" content="dark light">
|
||||
<title>Zoey's Bits - About</title>
|
||||
<link rel="stylesheet" href="/css/about.css" type="text/css" media="all">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="header-placeholder"></div>
|
||||
|
||||
<div class="headercontent">
|
||||
<h1 id="title">About me!</h1>
|
||||
<h4 id="subtitle">booba</h4>
|
||||
|
||||
<p>
|
||||
I like bunnies, but don't own any.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Mostly a jack of all trades, master of none.
|
||||
<br>
|
||||
At least it makes for conversations that don't really die down.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Big proponent of Free and Open Source Software.
|
||||
<br>
|
||||
Self-hosting Gitea and Nextcloud servers.
|
||||
<br>
|
||||
Running Arch Linux (btw) since 2019.
|
||||
<br>
|
||||
My first Linux distro was Ubuntu 14.04 in, well.., 2014.
|
||||
<br>
|
||||
<p>
|
||||
Aspiring game dev, doing everything from code,
|
||||
<br>
|
||||
through hosting services,
|
||||
and creating all the 3D models, sprites and soon also sounds.
|
||||
<br>
|
||||
Yet to release a single project. ヽ(゚Д゚)ノ
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Used to, and still do, have a relatively big K-On! oriented Discord server, <br>
|
||||
like that's anything to brag about, <br>
|
||||
but it's basically been on maintenance mode for maybe 2 years now. <br>
|
||||
If you'd still like to join, knock yourself out. <br>
|
||||
<a href="https://discord.gg/qpsYX58">
|
||||
<img class="TTClogo" src="/images/TTClatestCircleCrop.png">
|
||||
<br>
|
||||
<img class="ShieldsDiscord" alt="Discord" src="https://img.shields.io/discord/625008568369938445?logo=discord">
|
||||
</a>
|
||||
<br>
|
||||
<a href='https://mastodon.online/@sailorzoop'>
|
||||
<img alt='Mastodon' src='https://img.shields.io/badge/| sailorzoop-darkblue?&logo=mastodon'>
|
||||
</a>
|
||||
<a href=''>
|
||||
<img alt='Discord' src='https://img.shields.io/badge/| @sailorzoop-purple?&logo=discord'>
|
||||
</a>
|
||||
<a href='https://matrix.to/#/@sailorzoop:matrix.org'>
|
||||
<img alt='Matrix' src='https://img.shields.io/badge/| @sailorzoop:matrix.org-darkgreen?&logo=matrix'>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="footer-placeholder"></div>
|
||||
|
||||
<script src="/js/loadnavs.js" defer></script>
|
||||
</body>
|
||||
|
||||
</html>
|
8
html/elements/footer.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
<footer>
|
||||
<nav class="bottom-nav">
|
||||
<ul>
|
||||
|
||||
<li>© LibreBun™ 2023</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</footer>
|
36
html/elements/header.html
Normal file
|
@ -0,0 +1,36 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="/css/styleHF.css" type="text/css" media="all">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<nav class="top-nav">
|
||||
<ul>
|
||||
<li>
|
||||
<div class="image-popup">
|
||||
<a href="/index.html">
|
||||
<img src="/images/bunnie48px.png"></a>
|
||||
<div class="popup-content">
|
||||
<a class="gt" href="https://librebun.ooguy.com/gt" target="_blank"><img src="/images/gt.png"></a>
|
||||
<a class="nc" href="https://librebun.ooguy.com/nc" target="_blank"><img src="/images/nc.png"></a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<li><a href="/html/projects.html">Projects</a></li>
|
||||
<li><a href="/html/rants.html">Rants</a></li>
|
||||
<li><a href="/html/about.html">About</a></li>
|
||||
<li>
|
||||
<label for="toggle-checkbox" class="toggle-label">
|
||||
<button class="toggle-button" onclick="toggleHeaderColor()"><img src="/images/moon.svg"</button>
|
||||
</label>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<script src="/js/loadnavs.js" defer></script>
|
||||
</body>
|
||||
|
||||
</html>
|
24
html/projects.html
Normal file
|
@ -0,0 +1,24 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" type="image/png" sizes="48x48" href="/images/bunnie48px.png">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Zoey's Bits - Projects</title>
|
||||
<link rel="stylesheet" href="/css/style.css" type="text/css" media="all">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header-placeholder"></div>
|
||||
|
||||
<div class="centered-content">
|
||||
<h1 id="title">Welcome to the projects section!</h1>
|
||||
<h3 id="subtitle">WIP</h3>
|
||||
</div>
|
||||
|
||||
<div id="footer-placeholder"></div>
|
||||
|
||||
<script src="/js/loadnavs.js" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
22
html/rants.html
Normal file
|
@ -0,0 +1,22 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" type="image/png" sizes="48x48" href="/images/bunnie48px.png">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Zoey's Bits - Rants</title>
|
||||
<script src="https://cdn.jsdelivr.net/npm/showdown/dist/showdown.min.js"></script>
|
||||
<link rel="stylesheet" href="/css/rants.css" type="text/css" media="all">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="article-container"></div>
|
||||
<div id="article-list"></div>
|
||||
<div id="header-placeholder"></div>
|
||||
<div id="footer-placeholder"></div>
|
||||
|
||||
<script src="/js/loadnavs.js" defer></script>
|
||||
<script src="/js/articleload.js" defer></script>
|
||||
<script src="/js/rants.js" defer></script>
|
||||
</body>
|
||||
</html>
|
BIN
images/TTClatestCircleCrop.png
Normal file
After Width: | Height: | Size: 101 KiB |
Before Width: | Height: | Size: 703 B After Width: | Height: | Size: 703 B |
BIN
images/gt.png
Normal file
After Width: | Height: | Size: 13 KiB |
57
images/moon.svg
Normal file
|
@ -0,0 +1,57 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="300"
|
||||
height="300"
|
||||
viewBox="0 0 79.374998 79.375"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
|
||||
sodipodi:docname="moon.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="2.2022289"
|
||||
inkscape:cx="128.27913"
|
||||
inkscape:cy="149.84818"
|
||||
inkscape:window-width="1916"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="20"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer3" />
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2">
|
||||
<circle
|
||||
style="display:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
|
||||
id="path4"
|
||||
cx="39.6875"
|
||||
cy="39.6875"
|
||||
r="38.629166" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Layer 3">
|
||||
<path
|
||||
id="circle1"
|
||||
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
|
||||
d="M 46.058114,4.3440906 A 39.6875,39.6875 0 0 0 18.710238,53.357241 39.6875,39.6875 0 0 0 36.600488,76.534986 37.765205,46.535679 29.487085 0 1 40.156987,32.694321 37.765205,46.535679 29.487085 0 1 74.832599,7.1323231 39.6875,39.6875 0 0 0 46.058114,4.3440906 Z" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
BIN
images/nc.png
Normal file
After Width: | Height: | Size: 24 KiB |
57
images/sun.svg
Normal file
|
@ -0,0 +1,57 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="300"
|
||||
height="300"
|
||||
viewBox="0 0 79.374998 79.375"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
inkscape:version="1.3.2 (091e20ef0f, 2023-11-25, custom)"
|
||||
sodipodi:docname="sun.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="2.2022289"
|
||||
inkscape:cx="128.27913"
|
||||
inkscape:cy="149.84818"
|
||||
inkscape:window-width="1916"
|
||||
inkscape:window-height="1056"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="20"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer3" />
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 2">
|
||||
<circle
|
||||
style="display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
|
||||
id="path4"
|
||||
cx="39.6875"
|
||||
cy="39.6875"
|
||||
r="38.629166" />
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Layer 3">
|
||||
<path
|
||||
id="circle1"
|
||||
style="display:none;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
|
||||
d="M 46.058114,4.3440906 A 39.6875,39.6875 0 0 0 18.710238,53.357241 39.6875,39.6875 0 0 0 36.600488,76.534986 37.765205,46.535679 29.487085 0 1 40.156987,32.694321 37.765205,46.535679 29.487085 0 1 74.832599,7.1323231 39.6875,39.6875 0 0 0 46.058114,4.3440906 Z" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.1 KiB |
BIN
images/under_construction.gif
Normal file
After Width: | Height: | Size: 494 KiB |
27
index.html
Normal file
|
@ -0,0 +1,27 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="icon" type="image/png" sizes="48x48" href="/images/bunnie48px.png">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Zoey's Bits</title>
|
||||
<link rel="stylesheet" href="/css/style.css" type="text/css" media="all">
|
||||
<script src="/js/loadnavs.js" defer></script>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="header-placeholder"></div>
|
||||
|
||||
<div class="centered-content">
|
||||
<h1 id="title">Welcome to my Website!</h1>
|
||||
<h3 id="subtitle">WIP</h3>
|
||||
<img src="/images/under_construction.gif" alt="Under Construction">
|
||||
<h3 id="blahaj">blahaj dance</h3>
|
||||
</div>
|
||||
|
||||
<div id="footer-placeholder"></div>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
23
js/articleload.js
Normal file
|
@ -0,0 +1,23 @@
|
|||
// Function to convert Markdown to HTML
|
||||
function convertMarkdownToHTML(markdownContent) {
|
||||
// Simple Markdown to HTML conversion
|
||||
// This is a basic example and may not cover all Markdown features
|
||||
// You may need to enhance this function based on your requirements
|
||||
return markdownContent
|
||||
.replace(/\*\*(.*?)\*\*/g, '<strong>$1</strong>') // Bold
|
||||
.replace(/\*(.*?)\*/g, '<em>$1</em>'); // Italics
|
||||
}
|
||||
|
||||
// Function to fetch and display an article
|
||||
function displayArticle(articlePath) {
|
||||
fetch(articlePath)
|
||||
.then(response => response.text())
|
||||
.then(markdownContent => {
|
||||
const htmlContent = convertMarkdownToHTML(markdownContent);
|
||||
document.getElementById('article-container').innerHTML = htmlContent;
|
||||
})
|
||||
.catch(error => console.error('Error fetching article:', error));
|
||||
}
|
||||
|
||||
// Call the function with the path to your Markdown file
|
||||
displayArticle('/md/rants/test.md');
|
90
js/loadnavs.js
Normal file
|
@ -0,0 +1,90 @@
|
|||
document.addEventListener('DOMContentLoaded', function () {
|
||||
console.log('DOMContentLoaded event fired');
|
||||
// Wait for the DOM to load
|
||||
// Load header and footer
|
||||
loadContent('/html/elements/header.html', document.getElementById('header-placeholder'))
|
||||
.then(() => {
|
||||
toggleHeaderColor();
|
||||
// After loading the header content, initialize toggle button and checkbox for header color
|
||||
const toggleButton = document.querySelector('button.toggle-button');
|
||||
});
|
||||
|
||||
loadContent('/html/elements/footer.html', document.getElementById('footer-placeholder'));
|
||||
|
||||
// Load external stylesheets
|
||||
loadStylesheet('/css/style.css'); // Add more stylesheets if needed
|
||||
loadStylesheet('/css/styleHF.css');
|
||||
|
||||
// Retrieve the header element
|
||||
const header = document.querySelector('header');
|
||||
|
||||
// Check if the header element exists before initializing the toggle button
|
||||
if (header) {
|
||||
// Call the function once to set the initial header color based on checkbox state
|
||||
toggleHeaderColor();
|
||||
}
|
||||
});
|
||||
|
||||
async function loadContent(url, container) {
|
||||
try {
|
||||
const response = await fetch(url);
|
||||
const html = await response.text();
|
||||
container.innerHTML = html;
|
||||
|
||||
// After loading the content, load any stylesheets within it
|
||||
const stylesheets = container.querySelectorAll('link[rel="stylesheet"]');
|
||||
stylesheets.forEach(stylesheet => {
|
||||
const href = stylesheet.getAttribute('href');
|
||||
loadStylesheet(href);
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Error loading content:', error);
|
||||
}
|
||||
}
|
||||
|
||||
function loadStylesheet(href) {
|
||||
const link = document.createElement('link');
|
||||
link.rel = 'stylesheet';
|
||||
link.type = 'text/css';
|
||||
link.href = href;
|
||||
document.head.appendChild(link);
|
||||
}
|
||||
|
||||
let isLightMode = true;
|
||||
|
||||
function toggleHeaderColor() {
|
||||
const header = document.querySelector('header');
|
||||
const togglebutton = document.querySelector('.toggle-button');
|
||||
const body = document.querySelector('body');
|
||||
const articlelist = document.querySelector('#article-list');
|
||||
|
||||
isLightMode = !isLightMode;
|
||||
|
||||
if (!isLightMode) {
|
||||
header.style.backgroundColor = 'var(--background-color-dark)';
|
||||
header.style.color = 'var(--color-dark)';
|
||||
togglebutton.backgroundColor = 'var(--color-button-dark)';
|
||||
togglebutton.classList.add('dark-mode');
|
||||
togglebutton.classList.remove('light-mode');
|
||||
|
||||
body.style.backgroundColor = 'var(--color-bg-body-dark)';
|
||||
body.style.color = 'var(--color-bg-body-light)';
|
||||
|
||||
articlelist.style.backgroundColor = 'var(--article-bg-dark)';
|
||||
articlelist.style.color = 'var(--color-dark)';
|
||||
|
||||
|
||||
} else {
|
||||
header.style.backgroundColor = 'var(--background-color-light)';
|
||||
header.style.color = 'var(--color-light)';
|
||||
togglebutton.backgroundColor = 'var(--color-button-light)';
|
||||
togglebutton.classList.add('light-mode');
|
||||
togglebutton.classList.remove('dark-mode');
|
||||
|
||||
body.style.backgroundColor = 'var(--color-bg-body-light)';
|
||||
body.style.color = 'var(--color-bg-body-dark)';
|
||||
|
||||
articlelist.style.backgroundColor = 'var(--article-bg-light)';
|
||||
articlelist.style.color = 'var(--color-light)';
|
||||
}
|
||||
}
|
79
js/rants.js
Normal file
|
@ -0,0 +1,79 @@
|
|||
const articles = [
|
||||
{ title: 'Electron', subtitle: '', path: '/md/rants/electron.md' },
|
||||
{ title: 'Discord', subtitle: '', path: '/md/rants/discord.md' },
|
||||
{ title: 'Wayland', subtitle: '', path: '/md/rants/wayland.md' },
|
||||
];
|
||||
|
||||
const showdownConverter = new showdown.Converter();
|
||||
|
||||
function createArticleBox(article) {
|
||||
const articleBox = document.createElement('div');
|
||||
articleBox.className = 'article-box';
|
||||
articleBox.setAttribute('data-path', article.path);
|
||||
|
||||
const titleElement = document.createElement('h3');
|
||||
titleElement.textContent = article.title;
|
||||
|
||||
const subtitleElement = document.createElement('p');
|
||||
subtitleElement.textContent = article.subtitle;
|
||||
subtitleElement.className = 'article-subtitle';
|
||||
|
||||
articleBox.appendChild(titleElement);
|
||||
articleBox.appendChild(subtitleElement);
|
||||
|
||||
articleBox.addEventListener('click', () => {
|
||||
loadArticle(article.path);
|
||||
updateArticleBoxContent(article.path, article.title, article.subtitle);
|
||||
});
|
||||
|
||||
return articleBox;
|
||||
}
|
||||
|
||||
function createArticleList() {
|
||||
const articleListContainer = document.getElementById('article-list');
|
||||
articles.forEach(article => {
|
||||
const articleBox = createArticleBox(article);
|
||||
articleListContainer.appendChild(articleBox);
|
||||
});
|
||||
}
|
||||
|
||||
function loadArticle(articlePath) {
|
||||
fetch(articlePath)
|
||||
.then(response => response.text())
|
||||
.then(markdownContent => {
|
||||
const { title, subtitle } = extractTitleAndSubtitle(markdownContent);
|
||||
const htmlContent = showdownConverter.makeHtml(markdownContent);
|
||||
document.getElementById('article-container').innerHTML = htmlContent;
|
||||
updateArticleBoxContent(articlePath, title, subtitle);
|
||||
})
|
||||
.catch(error => console.error('Error fetching article:', error));
|
||||
}
|
||||
|
||||
function extractTitleAndSubtitle(markdownContent) {
|
||||
const lines = markdownContent.split('\n');
|
||||
const title = lines[0] ? lines[0].replace(/^#+\s*/, '').trim() : 'Untitled';
|
||||
const subtitle = lines[3] ? lines[3].replace(/^#+\s*/, '').trim() : '';
|
||||
return { title, subtitle };
|
||||
}
|
||||
|
||||
function updateArticleBoxContent(articlePath, title, subtitle) {
|
||||
const articleBox = document.querySelector(`.article-box[data-path="${articlePath}"]`);
|
||||
if (articleBox) {
|
||||
articleBox.innerHTML = '';
|
||||
const titleElement = document.createElement('h3');
|
||||
titleElement.textContent = title;
|
||||
const subtitleElement = document.createElement('p');
|
||||
subtitleElement.textContent = subtitle;
|
||||
subtitleElement.className = 'article-subtitle';
|
||||
articleBox.appendChild(titleElement);
|
||||
articleBox.appendChild(subtitleElement);
|
||||
}
|
||||
}
|
||||
|
||||
// Load the functions when the DOM is fully loaded
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
createArticleList();
|
||||
if (articles.length > 0) {
|
||||
loadArticle(articles[0].path);
|
||||
}
|
||||
});
|
43
js/script.js
Normal file
|
@ -0,0 +1,43 @@
|
|||
document.addEventListener('DOMContentLoaded', function () {
|
||||
const title = document.querySelector('#title');
|
||||
const subtitle = document.querySelector('#subtitle');
|
||||
const blahaj = document.querySelector('#blahaj');
|
||||
|
||||
function handleClick() {
|
||||
// Move elements up and fade them out
|
||||
title.animate(
|
||||
[
|
||||
{ transform: 'translateY(0)', opacity: 1 },
|
||||
{ transform: 'translateY(-50px)', opacity: 0 }
|
||||
],
|
||||
{ duration: 1000, easing: 'ease-out', fill: 'forwards' }
|
||||
);
|
||||
|
||||
subtitle.animate(
|
||||
[
|
||||
{ transform: 'translateY(0)', opacity: 1 },
|
||||
{ transform: 'translateY(-50px)', opacity: 0 }
|
||||
],
|
||||
{ duration: 1000, easing: 'ease-out', fill: 'forwards', delay: 200 }
|
||||
);
|
||||
|
||||
blahaj.animate(
|
||||
[
|
||||
{ transform: 'translateY(-50px)', opacity: 0 },
|
||||
{ transform: 'translateY(-0px)', opacity: 1 }
|
||||
],
|
||||
{ duration: 500, easing: 'ease-out', fill: 'forwards', delay: 400 }
|
||||
);
|
||||
|
||||
// Remove the event listener after it has been triggered
|
||||
document.body.removeEventListener('click', handleClick);
|
||||
|
||||
title.addEventListener('animationend', function () {
|
||||
title.remove();
|
||||
});
|
||||
|
||||
subtitle.addEventListener('animationend', function () {
|
||||
subtitle.remove();
|
||||
});
|
||||
}
|
||||
});
|
3
json/status.json
Normal file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
"godotver": "4.2.1"
|
||||
}
|
10
md/rants/discord.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
# Discord
|
||||
###### 20th December 2023 - Zoey
|
||||
<br>
|
||||
### Here's the reason I hate Discord.
|
||||
<br>
|
||||
lorem ipsum butts and cakes, you are now my favourite person who bakes
|
||||
this is still the same paragraph
|
||||
yeah
|
||||
<br>
|
||||
butts
|
6
md/rants/electron.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Electron
|
||||
###### 21th December 2023 - Zoey
|
||||
<br>
|
||||
### Electron is awful and here's why.
|
||||
<br>
|
||||
Lorem ipsum motherfuckerssss
|
6
md/rants/wayland.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
# Wayland
|
||||
######22th December 2023 - Zoey
|
||||
<br>
|
||||
### Insane defaults.
|
||||
<br>
|
||||
Lorem ipsum motherfuckerssss
|
15
not_found.html
Normal file
|
@ -0,0 +1,15 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Not Found</title>
|
||||
<link href="/style.css" rel="stylesheet" type="text/css" media="all">
|
||||
</head>
|
||||
<body>
|
||||
<div class="centered-content">
|
||||
<h1>Page Not Found</h1>
|
||||
<p>There's nobunny here.</p>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
18324
package-lock.json
generated
44
package.json
|
@ -1,44 +0,0 @@
|
|||
{
|
||||
"name": "zoeysbits",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@testing-library/jest-dom": "^5.17.0",
|
||||
"@testing-library/react": "^13.4.0",
|
||||
"@testing-library/user-event": "^13.5.0",
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0",
|
||||
"react-player": "^2.16.0",
|
||||
"react-router-dom": "^6.23.1",
|
||||
"react-scripts": "5.0.1",
|
||||
"web-vitals": "^2.1.4"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": [
|
||||
"react-app",
|
||||
"react-app/jest"
|
||||
]
|
||||
},
|
||||
"browserslist": {
|
||||
"production": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not op_mini all"
|
||||
],
|
||||
"development": [
|
||||
"last 1 chrome version",
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"tailwindcss": "^3.4.1",
|
||||
"tailwindcss-image-rendering": "^1.0.2"
|
||||
}
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<svg version="1.1" id="main_outline" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 640 640" style="enable-background:new 0 0 640 640;" xml:space="preserve">
|
||||
<g>
|
||||
<path id="teabag" style="fill:#FFFFFF" d="M395.9,484.2l-126.9-61c-12.5-6-17.9-21.2-11.8-33.8l61-126.9c6-12.5,21.2-17.9,33.8-11.8 c17.2,8.3,27.1,13,27.1,13l-0.1-109.2l16.7-0.1l0.1,117.1c0,0,57.4,24.2,83.1,40.1c3.7,2.3,10.2,6.8,12.9,14.4 c2.1,6.1,2,13.1-1,19.3l-61,126.9C423.6,484.9,408.4,490.3,395.9,484.2z"/>
|
||||
<g>
|
||||
<g>
|
||||
<path style="fill:#609926" d="M622.7,149.8c-4.1-4.1-9.6-4-9.6-4s-117.2,6.6-177.9,8c-13.3,0.3-26.5,0.6-39.6,0.7c0,39.1,0,78.2,0,117.2 c-5.5-2.6-11.1-5.3-16.6-7.9c0-36.4-0.1-109.2-0.1-109.2c-29,0.4-89.2-2.2-89.2-2.2s-141.4-7.1-156.8-8.5 c-9.8-0.6-22.5-2.1-39,1.5c-8.7,1.8-33.5,7.4-53.8,26.9C-4.9,212.4,6.6,276.2,8,285.8c1.7,11.7,6.9,44.2,31.7,72.5 c45.8,56.1,144.4,54.8,144.4,54.8s12.1,28.9,30.6,55.5c25,33.1,50.7,58.9,75.7,62c63,0,188.9-0.1,188.9-0.1s12,0.1,28.3-10.3 c14-8.5,26.5-23.4,26.5-23.4s12.9-13.8,30.9-45.3c5.5-9.7,10.1-19.1,14.1-28c0,0,55.2-117.1,55.2-231.1 C633.2,157.9,624.7,151.8,622.7,149.8z M125.6,353.9c-25.9-8.5-36.9-18.7-36.9-18.7S69.6,321.8,60,295.4 c-16.5-44.2-1.4-71.2-1.4-71.2s8.4-22.5,38.5-30c13.8-3.7,31-3.1,31-3.1s7.1,59.4,15.7,94.2c7.2,29.2,24.8,77.7,24.8,77.7 S142.5,359.9,125.6,353.9z M425.9,461.5c0,0-6.1,14.5-19.6,15.4c-5.8,0.4-10.3-1.2-10.3-1.2s-0.3-0.1-5.3-2.1l-112.9-55 c0,0-10.9-5.7-12.8-15.6c-2.2-8.1,2.7-18.1,2.7-18.1L322,273c0,0,4.8-9.7,12.2-13c0.6-0.3,2.3-1,4.5-1.5c8.1-2.1,18,2.8,18,2.8 l110.7,53.7c0,0,12.6,5.7,15.3,16.2c1.9,7.4-0.5,14-1.8,17.2C474.6,363.8,425.9,461.5,425.9,461.5z"/>
|
||||
<path style="fill:#609926" d="M326.8,380.1c-8.2,0.1-15.4,5.8-17.3,13.8c-1.9,8,2,16.3,9.1,20c7.7,4,17.5,1.8,22.7-5.4 c5.1-7.1,4.3-16.9-1.8-23.1l24-49.1c1.5,0.1,3.7,0.2,6.2-0.5c4.1-0.9,7.1-3.6,7.1-3.6c4.2,1.8,8.6,3.8,13.2,6.1 c4.8,2.4,9.3,4.9,13.4,7.3c0.9,0.5,1.8,1.1,2.8,1.9c1.6,1.3,3.4,3.1,4.7,5.5c1.9,5.5-1.9,14.9-1.9,14.9 c-2.3,7.6-18.4,40.6-18.4,40.6c-8.1-0.2-15.3,5-17.7,12.5c-2.6,8.1,1.1,17.3,8.9,21.3c7.8,4,17.4,1.7,22.5-5.3 c5-6.8,4.6-16.3-1.1-22.6c1.9-3.7,3.7-7.4,5.6-11.3c5-10.4,13.5-30.4,13.5-30.4c0.9-1.7,5.7-10.3,2.7-21.3 c-2.5-11.4-12.6-16.7-12.6-16.7c-12.2-7.9-29.2-15.2-29.2-15.2s0-4.1-1.1-7.1c-1.1-3.1-2.8-5.1-3.9-6.3c4.7-9.7,9.4-19.3,14.1-29 c-4.1-2-8.1-4-12.2-6.1c-4.8,9.8-9.7,19.7-14.5,29.5c-6.7-0.1-12.9,3.5-16.1,9.4c-3.4,6.3-2.7,14.1,1.9,19.8 C343.2,346.5,335,363.3,326.8,380.1z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 929 B |
Before Width: | Height: | Size: 295 KiB |
Before Width: | Height: | Size: 319 KiB |
|
@ -1,40 +0,0 @@
|
|||
<svg viewBox="0 0 212 212" xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
>
|
||||
<rdf:RDF>
|
||||
<cc:Work rdf:about="https://codeberg.org/forgejo/meta/src/branch/readme/branding#logo">
|
||||
<dc:title>Forgejo logo</dc:title>
|
||||
<cc:creator rdf:resource="https://caesarschinas.com/"><cc:attributionName>Caesar Schinas</cc:attributionName></cc:creator>
|
||||
<cc:license rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<style type="text/css">
|
||||
circle {
|
||||
fill: none;
|
||||
stroke: #000;
|
||||
stroke-width: 15;
|
||||
}
|
||||
path {
|
||||
fill: none;
|
||||
stroke: #000;
|
||||
stroke-width: 25;
|
||||
}
|
||||
.orange {
|
||||
stroke:#ff6600;
|
||||
}
|
||||
.red {
|
||||
stroke:#d40000;
|
||||
}
|
||||
</style>
|
||||
<g transform="translate(6,6)">
|
||||
<path d="M58 168 v-98 a50 50 0 0 1 50-50 h20" class="orange" />
|
||||
<path d="M58 168 v-30 a50 50 0 0 1 50-50 h20" class="red" />
|
||||
<circle cx="142" cy="20" r="18" class="orange" />
|
||||
<circle cx="142" cy="88" r="18" class="red" />
|
||||
<circle cx="58" cy="180" r="18" class="red" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.2 KiB |
|
@ -1,85 +0,0 @@
|
|||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||
width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
|
||||
preserveAspectRatio="xMidYMid meet">
|
||||
<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
|
||||
fill="#000000" stroke="none">
|
||||
<path d="M1935 6994 c-186 -39 -328 -137 -415 -287 -24 -39 -51 -84 -61 -99
|
||||
-11 -15 -19 -29 -19 -31 0 -3 -39 -71 -86 -153 -47 -82 -160 -277 -251 -434
|
||||
-90 -157 -169 -292 -174 -300 -5 -8 -55 -96 -112 -195 -113 -196 -393 -681
|
||||
-408 -705 -5 -8 -41 -71 -80 -140 -40 -69 -85 -147 -101 -175 -73 -126 -100
|
||||
-226 -97 -349 3 -109 33 -203 106 -329 69 -117 281 -485 310 -537 11 -19 111
|
||||
-192 223 -385 111 -192 212 -366 222 -385 11 -19 37 -64 58 -100 21 -36 47
|
||||
-81 58 -100 11 -19 59 -102 107 -185 48 -82 95 -163 104 -180 9 -16 49 -86 89
|
||||
-155 40 -69 78 -134 85 -145 77 -134 155 -215 259 -268 145 -74 44 -69 1583
|
||||
-69 1525 0 1434 -4 1570 63 l62 31 304 -217 c167 -120 360 -259 429 -308 69
|
||||
-50 148 -106 175 -125 48 -34 130 -93 150 -110 6 -4 21 -16 35 -26 17 -12 19
|
||||
-16 6 -12 -31 11 -209 55 -246 61 -19 3 -42 8 -50 10 -28 8 -184 26 -285 33
|
||||
-203 13 -1356 5 -1760 -13 -44 -2 -161 -6 -260 -10 -99 -4 -209 -8 -245 -10
|
||||
-36 -2 -121 -6 -190 -10 -191 -9 -276 -14 -380 -20 -90 -5 -125 -8 -315 -20
|
||||
-44 -3 -114 -8 -155 -11 -198 -13 -326 -22 -405 -29 -27 -2 -81 -7 -120 -10
|
||||
-38 -3 -88 -8 -110 -10 -22 -3 -62 -7 -90 -10 -27 -3 -66 -7 -85 -10 -19 -3
|
||||
-55 -7 -80 -10 -25 -4 -64 -11 -88 -16 -23 -5 -59 -12 -80 -15 -74 -11 -307
|
||||
-76 -381 -106 -42 -17 -91 -42 -109 -55 l-33 -25 38 -28 c47 -35 138 -66 218
|
||||
-75 33 -4 71 -9 85 -11 27 -5 291 -11 860 -19 462 -7 617 -12 1355 -40 66 -3
|
||||
181 -7 255 -10 74 -3 178 -7 230 -10 52 -3 142 -7 200 -10 232 -12 407 -28
|
||||
575 -50 17 -2 56 -7 88 -10 32 -4 111 -12 175 -19 104 -12 493 -13 602 -2 19
|
||||
1 78 6 130 11 52 4 102 9 112 10 9 2 48 7 85 10 37 4 75 8 83 10 8 2 35 7 60
|
||||
10 84 11 172 25 205 31 11 2 34 7 50 10 141 25 376 82 477 115 204 67 307 135
|
||||
359 237 20 40 24 61 24 142 0 83 -7 178 -20 301 -3 20 -7 65 -10 100 -3 35 -7
|
||||
84 -10 109 -2 25 -7 73 -9 108 -12 137 -17 188 -21 212 -2 14 -6 61 -10 105
|
||||
-5 74 -8 102 -20 225 -7 68 -15 158 -21 225 -3 33 -7 80 -10 105 -2 25 -6 71
|
||||
-9 102 -2 31 -6 82 -9 112 -3 31 -8 81 -11 111 -3 30 -7 79 -10 108 -3 28 -7
|
||||
79 -10 112 -3 33 -7 84 -10 113 -3 28 -7 76 -10 105 -2 28 -7 75 -9 102 -3 28
|
||||
-8 82 -11 120 -3 39 -8 86 -10 105 -2 19 -7 67 -10 105 -3 39 -8 90 -10 115
|
||||
-3 25 -7 74 -10 110 -3 36 -7 85 -10 110 -5 48 -11 105 -20 210 -3 36 -8 85
|
||||
-10 110 -3 25 -7 74 -10 110 -5 69 -13 141 -21 202 -7 53 -46 144 -110 255
|
||||
-32 54 -66 114 -77 133 -10 19 -61 107 -112 195 -51 88 -102 177 -114 199 -12
|
||||
21 -78 135 -147 255 -68 119 -130 225 -136 236 -6 11 -74 127 -151 259 -76
|
||||
131 -148 255 -159 275 -33 60 -288 501 -335 579 -23 40 -43 75 -43 78 0 10
|
||||
-63 88 -100 122 -78 74 -174 125 -275 147 -48 11 -341 13 -1440 13 -759 0
|
||||
-1389 -2 -1400 -4z m2666 -602 c87 -43 85 -39 309 -427 51 -88 104 -180 118
|
||||
-205 14 -25 33 -58 43 -75 10 -16 32 -55 49 -85 17 -30 40 -71 51 -90 12 -19
|
||||
134 -229 271 -467 l249 -432 -33 -37 c-18 -20 -42 -47 -53 -58 -58 -60 -211
|
||||
-273 -280 -390 -10 -17 -56 -26 -205 -41 -36 -4 -78 -8 -95 -10 -113 -12 -153
|
||||
-17 -175 -20 -14 -2 -56 -7 -95 -11 -38 -4 -81 -8 -95 -9 -14 -2 -34 -3 -45
|
||||
-4 -15 -1 -47 -37 -105 -117 -47 -64 -90 -122 -95 -128 -6 -6 -22 -27 -35 -46
|
||||
-13 -19 -68 -94 -121 -166 l-97 -131 -69 -2 c-145 -3 -301 -21 -457 -52 -94
|
||||
-19 -99 -19 -112 -2 -7 10 -14 21 -14 25 0 3 -21 42 -46 85 -26 43 -57 96 -70
|
||||
119 -13 23 -105 182 -205 355 -100 173 -192 332 -204 354 -13 22 -105 182
|
||||
-205 355 -101 173 -194 335 -208 359 -47 84 -82 146 -92 161 -8 13 -160 278
|
||||
-185 322 -5 10 -80 138 -165 285 -85 147 -167 288 -181 315 -14 26 -31 54 -38
|
||||
62 -24 29 65 158 133 193 76 40 73 40 1310 39 l1201 -1 46 -23z m-2956 -912
|
||||
c43 -74 86 -151 97 -170 11 -19 93 -161 182 -315 239 -412 431 -745 453 -785
|
||||
11 -19 76 -132 145 -250 69 -118 137 -236 151 -262 15 -26 82 -143 150 -260
|
||||
68 -117 195 -337 282 -488 87 -151 176 -303 198 -338 42 -66 56 -77 487 -385
|
||||
74 -53 215 -154 313 -224 l179 -128 -1071 -3 c-1052 -2 -1071 -2 -1123 18 -59
|
||||
23 -113 68 -144 120 -115 194 -164 279 -164 284 0 3 -15 29 -33 58 -19 29 -47
|
||||
78 -64 108 -17 30 -54 96 -83 145 -29 50 -61 106 -72 125 -45 78 -322 559
|
||||
-353 610 -18 30 -103 179 -190 330 -87 151 -170 295 -185 320 -48 81 -58 177
|
||||
-26 253 13 32 221 398 353 622 7 11 38 65 70 120 32 55 64 112 73 126 8 14 47
|
||||
81 85 148 39 67 75 130 80 139 6 9 37 63 69 120 32 56 60 101 61 100 1 -2 37
|
||||
-64 80 -138z m4304 -1486 c1 -32 4 -61 6 -64 2 -3 7 -48 10 -100 3 -52 8 -97
|
||||
10 -100 2 -3 6 -45 10 -95 4 -49 8 -101 10 -115 4 -26 8 -67 25 -240 17 -173
|
||||
21 -214 25 -240 2 -14 6 -65 10 -115 3 -49 8 -97 10 -105 2 -8 7 -51 10 -94 4
|
||||
-43 8 -86 10 -95 1 -9 6 -54 10 -101 4 -47 8 -98 10 -115 2 -16 7 -64 11 -105
|
||||
3 -41 7 -82 9 -90 2 -8 6 -53 10 -100 4 -47 9 -88 11 -92 2 -3 2 -12 -1 -20
|
||||
-4 -10 -20 -13 -53 -12 -71 4 -179 -22 -259 -61 -79 -39 -189 -139 -223 -203
|
||||
-37 -71 -28 -72 -155 19 -64 46 -126 91 -138 99 -12 8 -83 59 -157 112 -74 53
|
||||
-174 125 -223 160 -190 137 -212 153 -215 160 -2 5 -7 8 -12 8 -7 0 -188 126
|
||||
-300 210 -14 10 -106 76 -205 147 -290 208 -315 226 -312 229 7 7 227 42 312
|
||||
49 39 4 110 8 159 9 80 3 91 6 107 27 10 13 65 87 121 164 56 77 106 145 110
|
||||
150 5 6 49 64 97 131 49 66 95 121 102 121 24 0 167 14 186 17 10 2 50 7 88
|
||||
11 39 3 84 8 100 10 17 3 50 7 75 9 25 2 93 10 151 17 l106 12 38 64 c65 110
|
||||
281 394 296 387 3 -2 7 -29 8 -60z"/>
|
||||
<path d="M1314 4324 c-43 -14 -93 -67 -96 -99 -5 -66 5 -92 78 -218 78 -134
|
||||
88 -152 153 -265 20 -35 41 -71 46 -80 13 -21 67 -116 93 -162 11 -19 83 -145
|
||||
161 -278 77 -134 141 -248 141 -253 0 -5 5 -9 10 -9 6 0 10 -4 10 -10 0 -5 27
|
||||
-55 60 -111 33 -55 60 -102 60 -104 0 -2 27 -49 60 -104 33 -56 60 -104 60
|
||||
-107 0 -2 8 -17 18 -32 11 -15 40 -63 67 -108 50 -85 77 -108 136 -118 49 -7
|
||||
116 28 141 74 37 68 11 140 -142 390 -28 47 -807 1395 -842 1460 -43 78 -66
|
||||
108 -91 122 -40 21 -84 26 -123 12z"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 5.8 KiB |
|
@ -1,25 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="icon" href="%PUBLIC_URL%/bunnie48px.png" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta content="#763568" data-react-helmet="true" name="theme-color" />
|
||||
<meta content="Zoey's Bits" property="og:title" />
|
||||
<meta content="Somebunny's place." property="og:description" />
|
||||
<meta content="https://bits.li-yo.ts.net/" property="og:url" />
|
||||
<meta content="https://bits.li-yo.ts.net/bunnie96px.png" property="og:image" />
|
||||
<meta
|
||||
name="description"
|
||||
content="Somebunny's place."
|
||||
/>
|
||||
<link rel="apple-touch-icon" href="%PUBLIC_URL%/bunnie48px.png" />
|
||||
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
|
||||
<title>Zoey's Bits</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<noscript>You need to enable JavaScript to run this app.</noscript>
|
||||
<div id="root"></div>
|
||||
</body>
|
||||
</html>
|
|
@ -1,24 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- ***** BEGIN LICENSE BLOCK *****
|
||||
- Part of the Jellyfin project (https://jellyfin.media)
|
||||
-
|
||||
- All copyright belongs to the Jellyfin contributors; a full list can
|
||||
- be found in the file CONTRIBUTORS.md
|
||||
-
|
||||
- This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License.
|
||||
- To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/.
|
||||
- ***** END LICENSE BLOCK ***** -->
|
||||
<svg version="1.1" id="icon-transparent" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512">
|
||||
<defs>
|
||||
<linearGradient id="linear-gradient" gradientUnits="userSpaceOnUse" x1="110.25" y1="213.3" x2="496.14" y2="436.09">
|
||||
<stop offset="0" style="stop-color:#AA5CC3"/>
|
||||
<stop offset="1" style="stop-color:#00A4DC"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<title>icon-transparent</title>
|
||||
<g id="icon-transparent">
|
||||
<path id="inner-shape" d="M256,201.6c-20.4,0-86.2,119.3-76.2,139.4s142.5,19.9,152.4,0S276.5,201.6,256,201.6z" fill="url(#linear-gradient)"/>
|
||||
<path id="outer-shape" d="M256,23.3c-61.6,0-259.8,359.4-229.6,420.1s429.3,60,459.2,0S317.6,23.3,256,23.3z
|
||||
M406.5,390.8c-19.6,39.3-281.1,39.8-300.9,0s110.1-275.3,150.4-275.3S426.1,351.4,406.5,390.8z" fill="url(#linear-gradient)"/>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1.3 KiB |
|
@ -1,75 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="62.920513mm"
|
||||
height="41.44083mm"
|
||||
viewBox="0 0 951.2393 626.50705"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
inkscape:export-xdpi="300"
|
||||
inkscape:export-ydpi="300"
|
||||
enable-background="new">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-36.380379,-256.78621)"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:28;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 167.03908,270.78735 c -0.94784,-0.002 -1.8939,0.004 -2.83789,0.0215 -4.31538,0.0778 -8.58934,0.3593 -12.8125,0.8457 -33.78522,3.89116 -64.215716,21.86394 -82.871086,53.27344 -18.27982,30.77718 -22.77749,64.66635 -13.46094,96.06837 9.31655,31.40203 31.88488,59.93174 65.296886,82.5332 0.20163,0.13618 0.40678,0.26709 0.61523,0.39258 28.65434,17.27768 57.18167,28.93179 87.74218,34.95508 -0.74566,12.61339 -0.72532,25.5717 0.082,38.84375 2.43989,40.10943 16.60718,77.03742 38.0957,109.67187 l -77.00781,31.4375 c -8.30605,3.25932 -12.34178,12.68234 -8.96967,20.94324 3.37211,8.2609 12.84919,12.16798 21.06342,8.68371 l 84.69727,-34.57617 c 15.70675,18.72702 33.75346,35.68305 53.12109,50.57032 0.74013,0.56891 1.4904,1.12236 2.23437,1.68554 l -49.61132,65.69141 c -5.45446,7.0474 -4.10058,17.19288 3.01098,22.5634 7.11156,5.37052 17.24028,3.89649 22.52612,-3.27824 l 50.38672,-66.71876 c 27.68572,17.53469 57.07524,31.20388 86.07227,40.25196 14.88153,27.28008 43.96965,44.64648 77.58789,44.64648 33.93762,0 63.04252,-18.68693 77.80082,-45.4375 28.7072,-9.21295 57.7527,-22.93196 85.1484,-40.40234 l 51.0977,67.66016 c 5.2858,7.17473 15.4145,8.64876 22.5261,3.27824 7.1115,-5.37052 8.4654,-15.516 3.011,-22.5634 l -50.3614,-66.68555 c 0.334,-0.25394 0.6727,-0.50077 1.0059,-0.75586 19.1376,-14.64919 37.0259,-31.28581 52.7031,-49.63476 l 82.5625,33.70507 c 8.2143,3.48427 17.6913,-0.42281 21.0634,-8.68371 3.3722,-8.2609 -0.6636,-17.68392 -8.9696,-20.94324 l -74.5391,-30.42773 c 22.1722,-32.82971 37.0383,-70.03397 40.1426,-110.46094 1.0253,-13.35251 1.2292,-26.42535 0.6387,-39.17578 30.3557,-6.05408 58.7164,-17.66833 87.2011,-34.84375 0.2085,-0.12549 0.4136,-0.2564 0.6153,-0.39258 33.412,-22.60147 55.9803,-51.13117 65.2968,-82.5332 9.3166,-31.40202 4.8189,-65.29118 -13.4609,-96.06837 -18.6553,-31.40951 -49.0859,-49.38228 -82.8711,-53.27344 -4.2231,-0.4864 -8.4971,-0.76791 -12.8125,-0.8457 -30.2077,-0.54448 -62.4407,8.82427 -93.4316,26.71484 -22.7976,13.16063 -43.3521,33.31423 -59.4375,55.30469 -44.9968,-25.75094 -103.5444,-40.25065 -175.4785,-41.43945 -6.4522,-0.10663 -13.0125,-0.10696 -19.67974,0.002 -80.18875,1.30929 -144.38284,16.5086 -192.87109,43.9922 -0.11914,-0.19111 -0.24287,-0.37932 -0.37109,-0.56446 -16.29,-22.764 -37.41085,-43.73706 -60.89649,-57.29493 -30.02247,-17.33149 -61.21051,-26.66489 -90.59375,-26.73633 z"
|
||||
id="path817-3"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccssccccccscccccscccscccscccccsccscccssccscscccscc"
|
||||
inkscape:label="white-border"
|
||||
sodipodi:insensitive="true" />
|
||||
<path
|
||||
id="path1087"
|
||||
style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:28;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 716.85595,362.96478 c 15.29075,-21.36763 35.36198,-41.10921 56.50979,-53.31749 66.66377,-38.48393 137.02617,-33.22172 170.08018,22.43043 33.09493,55.72093 14.98656,117.48866 -47.64399,159.85496 -31.95554,19.26819 -62.93318,30.92309 -97.22892,35.54473 M 307.14407,362.96478 C 291.85332,341.59715 271.78209,321.85557 250.63429,309.64729 183.97051,271.16336 113.60811,276.42557 80.554051,332.07772 47.459131,387.79865 65.56752,449.56638 128.19809,491.93268 c 31.95554,19.26819 62.93319,30.92309 97.22893,35.54473"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:label="ears"
|
||||
sodipodi:insensitive="true" />
|
||||
<path
|
||||
style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:28;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 801.23205,576.8699 C 812.73478,427.06971 720.58431,321.98291 511.99999,325.38859 303.41568,328.79426 213.71393,428.0311 222.76794,576.8699 c 8.64289,142.08048 176.80223,246.40388 288.12038,246.40388 111.31815,0 279.45076,-104.5447 290.34373,-246.40388 z"
|
||||
id="path969"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="szszs"
|
||||
inkscape:label="head"
|
||||
sodipodi:insensitive="true" />
|
||||
<path
|
||||
id="path1084"
|
||||
style="display:inline;opacity:1;fill:#000000;fill-opacity:1;stroke:#000000;stroke-width:0;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 610.4991,644.28932 c 0,23.11198 18.70595,41.84795 41.78091,41.84795 23.07495,0 41.7809,-18.73597 41.7809,-41.84795 0,-23.112 -18.70594,-41.84796 -41.7809,-41.84796 -23.07496,0 -41.78091,18.73596 -41.78091,41.84796 z m -280.56002,0 c 0,23.32492 18.87829,42.23352 42.16586,42.23352 23.28755,0 42.16585,-18.9086 42.16585,-42.23352 0,-23.32494 -18.87829,-42.23353 -42.16585,-42.23353 -23.28757,0 -42.16586,18.90859 -42.16586,42.23353 z"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:label="eyes"
|
||||
sodipodi:nodetypes="ssssssssss"
|
||||
sodipodi:insensitive="true" />
|
||||
<path
|
||||
id="path1008"
|
||||
style="display:inline;opacity:1;fill:none;stroke:#000000;stroke-width:32;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 339.72919,769.2467 -54.54422,72.22481 m 399.08582,-72.22481 54.54423,72.22481 M 263.68341,697.82002 175.92752,733.64353 m 579.85765,-35.82351 87.7559,35.82351"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:label="whiskers"
|
||||
sodipodi:nodetypes="cccccccc"
|
||||
sodipodi:insensitive="true" />
|
||||
<path
|
||||
style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:28;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 512.00082,713.08977 c -45.86417,0 -75.13006,31.84485 -74.14159,71.10084 1.07048,42.51275 32.46865,71.10323 74.14159,71.10323 41.67296,0 74.05118,-32.99608 74.14161,-71.10323 0.0932,-39.26839 -28.27742,-71.10084 -74.14161,-71.10084 z"
|
||||
id="path1115"
|
||||
inkscape:connector-curvature="0"
|
||||
inkscape:label="nose"
|
||||
sodipodi:nodetypes="zszsz"
|
||||
sodipodi:insensitive="true" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 8 KiB |
|
@ -1,15 +0,0 @@
|
|||
{
|
||||
"short_name": "React App",
|
||||
"name": "Create React App Sample",
|
||||
"icons": [
|
||||
{
|
||||
"src": "bunnie48px.png",
|
||||
"type": "image/png",
|
||||
"sizes": "48x48"
|
||||
}
|
||||
],
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"theme_color": "#000000",
|
||||
"background_color": "#ffffff"
|
||||
}
|
Before Width: | Height: | Size: 349 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 121 KiB |
Before Width: | Height: | Size: 7.8 KiB |
|
@ -1,3 +0,0 @@
|
|||
# https://www.robotstxt.org/robotstxt.html
|
||||
User-agent: *
|
||||
Disallow:
|
|
@ -1 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" width="64mm" height="64mm" viewBox="0 0 64 64" version="1.1" id="svg898"><defs id="defs892"/><metadata id="metadata895"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><g id="layer1"><path id="cloud-upload" d="m 63.999948,34.285731 a 17.033293,17.033293 0 0 1 -4.406235,11.428568 14.856655,14.856655 0 0 1 -10.55805,4.571428 h -2.178561 v -6.857139 h 2.178561 A 8.0044292,8.0044292 0 0 0 54.504416,41.118327 10.183788,10.183788 0 0 0 57.14281,34.285731 11.442004,11.442004 0 0 0 45.714251,22.857173 c -0.37683,0 -2.312648,0.241803 -3.490288,0.393502 A 1.1359993,1.1359993 0 0 1 41.00286,22.487082 L 40.537483,21.129528 A 14.102711,14.102711 0 0 0 28.821257,11.497829 13.665957,13.665957 0 0 0 14.091416,28.276812 l 0.488099,2.087681 a 1.1428564,1.1428564 0 0 1 -0.782255,1.354176 l -2.053987,0.62062 a 6.7940986,6.7940986 0 0 0 -4.8860757,6.517846 4.6043628,4.6043628 0 0 0 0.9464197,2.808045 5.5388308,5.5388308 0 0 0 4.089282,1.763384 h 5.250006 v 6.857137 H 11.892899 A 12.235604,12.235604 0 0 1 2.2121047,45.633903 11.506439,11.506439 0 0 1 5.8514086e-5,38.857135 13.5727,13.5727 0 0 1 6.9442617,26.97321 C 6.8863778,26.359414 6.8571876,25.747771 6.8571876,25.142857 A 20.563484,20.563484 0 0 1 45.843766,16.000009 18.306983,18.306983 0 0 1 64,34.285707 Z M 32.923239,32.122512 a 1.1428564,1.1428564 0 0 0 -1.846543,0 l -8.591651,11.775239 a 1.1428564,1.1428564 0 0 0 0.923268,1.816548 h 5.163091 v 12.571418 a 1.1428564,1.1428564 0 0 0 1.14285,1.142858 h 4.571428 a 1.1428564,1.1428564 0 0 0 1.142859,-1.142858 V 45.714299 h 5.163084 a 1.1428564,1.1428564 0 0 0 0.923265,-1.816548 z" stroke-width="2.28572" fill="#45a1ff" fill-opacity="1"/></g></svg>
|
Before Width: | Height: | Size: 2 KiB |
|
@ -1,25 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="454.27927"
|
||||
height="129.77107"
|
||||
viewBox="0 0 120.19472 34.335263"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
id="layer1">
|
||||
<path
|
||||
id="rect1"
|
||||
style="display:none;fill:#ffffff;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0"
|
||||
d="M -19.736644,-31.973684 H 297.23702 c 0,0 0,0 0,0 V -6.6239681e-7 c 0,3.6696783e-7 0,6.6239681e-7 0,6.6239681e-7 H -19.736644 c 0,0 -1e-6,-2.9542898e-7 -1e-6,-6.6239681e-7 V -31.973684 Z" />
|
||||
<path
|
||||
id="path3"
|
||||
style="display:inline;fill:#111111;fill-opacity:1;stroke:none;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0"
|
||||
d="m 0,0 v 33.88608 c 0,0 41.608442,4.922788 64.420873,-17.825377 C 80.526949,0 97.528814,1.2317739 120.19472,0 v 0 z" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1 KiB |
|
@ -1,25 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="454.27927"
|
||||
height="129.77107"
|
||||
viewBox="0 0 120.19472 34.335263"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<defs
|
||||
id="defs1" />
|
||||
<g
|
||||
id="layer1">
|
||||
<path
|
||||
id="rect1"
|
||||
style="display:none;fill:#ffffff;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0"
|
||||
d="M -19.736644,-31.973684 H 297.23702 c 0,0 0,0 0,0 V -6.6239681e-7 c 0,3.6696783e-7 0,6.6239681e-7 0,6.6239681e-7 H -19.736644 c 0,0 -1e-6,-2.9542898e-7 -1e-6,-6.6239681e-7 V -31.973684 Z" />
|
||||
<path
|
||||
id="path3"
|
||||
style="display:inline;fill:#ffffff;stroke:none;stroke-width:2.11667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:0"
|
||||
d="m 0,0 v 33.88608 c 0,0 41.608442,4.922788 64.420873,-17.825377 C 80.526949,0 97.528814,1.2317739 120.19472,0 v 0 z" />
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 1 KiB |
230
src/App.css
|
@ -1,230 +0,0 @@
|
|||
@import 'tailwindcss/base';
|
||||
@import 'tailwindcss/components';
|
||||
@import 'tailwindcss/utilities';
|
||||
|
||||
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
.DarkModeButton {
|
||||
animation: DarkModeButton-spin 2.5s ease-in-out infinite alternate;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.WelcomeText {
|
||||
animation: Welcome-spin 10s infinite ease-in-out alternate;
|
||||
}
|
||||
|
||||
.HeaderName {
|
||||
font-size: x-large;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.HeaderButt {
|
||||
font-size: larger;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.HeaderButt:hover {
|
||||
transform:scale(1.1);
|
||||
animation: LogoHoverAnime 0.1s ease-in-out;
|
||||
text-shadow: black;
|
||||
}
|
||||
|
||||
.StatusButt {
|
||||
font-size: medium;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.StatusButt:hover {
|
||||
transform:scale(1.1);
|
||||
animation: LogoHoverAnime 0.1s ease-in-out;
|
||||
text-shadow: black;
|
||||
}
|
||||
|
||||
.Logos {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.PubP {
|
||||
font-size: larger;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.LogoBoxesPub {
|
||||
height: 75px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: left;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.LogoBoxesPub {
|
||||
transition: transform 0.25s ease;
|
||||
}
|
||||
|
||||
.LogoBoxesPub:hover {
|
||||
transform: scale(1.1) /*rotate(360deg)*/;
|
||||
animation: LogoHoverAnim 0.1s ease-in-out;
|
||||
}
|
||||
|
||||
.TextButt {
|
||||
user-select: none;
|
||||
object-position: center;
|
||||
}
|
||||
|
||||
.BunnyLogo {
|
||||
user-select: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.BunnyLogo:hover {
|
||||
transform:scale(0.56);
|
||||
animation: LogoHoverAnime 0.1s ease-in-out;
|
||||
}
|
||||
|
||||
.Teardrop {
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
object-position: center;
|
||||
}
|
||||
|
||||
.ForgejoLogo,
|
||||
.JellyfinLogo,
|
||||
.GraphiteLogo {
|
||||
height: 76px;
|
||||
width: 76px;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
object-position: center;
|
||||
}
|
||||
|
||||
.UpdatesTitle {
|
||||
font-size: x-large;
|
||||
}
|
||||
|
||||
.UpdatesContent {
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.TailP {
|
||||
color: #111111;
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
object-position: center;
|
||||
}
|
||||
|
||||
.SubHeaders {
|
||||
user-select: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
.LogoBoxesTail {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.LogoBoxesTail {
|
||||
transition: transform 0.25s ease;
|
||||
}
|
||||
|
||||
.LogoBoxesTail:hover {
|
||||
transform: scale(1.1) rotate(360deg);
|
||||
animation: LogoHoverSpinAnim 1s ease-in-out;
|
||||
}
|
||||
|
||||
.VersionBox {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.Versions {
|
||||
overflow:hidden;
|
||||
border-right: .15em solid orange;
|
||||
margin-right: auto;
|
||||
text-wrap: auto;
|
||||
animation: typing 1s steps(75, end),
|
||||
blink-caret 1s step-end infinite;
|
||||
}
|
||||
|
||||
@keyframes typing {
|
||||
from {
|
||||
width: 0;}
|
||||
to {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes blink-caret {
|
||||
from, to {
|
||||
border-color: transparent
|
||||
}
|
||||
50% {
|
||||
border-color: orange;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.MainBG {
|
||||
background: linear-gradient(
|
||||
to right,
|
||||
#69233b,
|
||||
#61182a,
|
||||
#520a22,
|
||||
#312436
|
||||
);
|
||||
background-size: 600% 600%;
|
||||
animation: Gradient 120s ease infinite;
|
||||
}
|
||||
|
||||
@keyframes Gradient {
|
||||
0% { background-position: 0% 50%; }
|
||||
50% { background-position: 100% 50%; }
|
||||
100% { background-position: 0% 50%; }
|
||||
}
|
||||
|
||||
@keyframes DarkModeButton-spin {
|
||||
from {
|
||||
transform: rotate(-10deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(10deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes LogoHoverAnim {
|
||||
from {
|
||||
/*transform: rotate(0deg) scale(1);*/
|
||||
transform: scale(1);
|
||||
}
|
||||
to {
|
||||
/*transform: rotate(360deg) scale(1.1);*/
|
||||
transform: scale(1.1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes LogoHoverSpinAnim {
|
||||
from {
|
||||
transform: rotate(0deg) scale(1);
|
||||
}
|
||||
to {
|
||||
transform: rotate(360deg) scale(1.1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@keyframes Welcome-spin {
|
||||
from {
|
||||
transform: rotate(-2deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(2deg);
|
||||
}
|
||||
}
|
17
src/App.js
|
@ -1,17 +0,0 @@
|
|||
import React, { Component } from 'react';
|
||||
import './App.css';
|
||||
import StreamEmbed from './components/Embed';
|
||||
|
||||
import Home from './components/Home';
|
||||
|
||||
|
||||
function App() {
|
||||
return (
|
||||
<div className="body">
|
||||
<Home/>
|
||||
</div>
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
export default App;
|
|
@ -1,8 +0,0 @@
|
|||
import { render, screen } from '@testing-library/react';
|
||||
import App from './App';
|
||||
|
||||
test('renders learn react link', () => {
|
||||
render(<App />);
|
||||
const linkElement = screen.getByText(/learn react/i);
|
||||
expect(linkElement).toBeInTheDocument();
|
||||
});
|
|
@ -1,3 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
|
||||
<path d="M50 0 A50 50 0 0 0 50 100 Z" fill="yellow" stroke="black"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 140 B |
|
@ -1,21 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200">
|
||||
<!-- Bunny body -->
|
||||
<ellipse cx="100" cy="150" rx="80" ry="100" fill="#f5c7a1"/>
|
||||
|
||||
<!-- Bunny head -->
|
||||
<circle cx="100" cy="70" r="50" fill="#f5c7a1"/>
|
||||
|
||||
<!-- Bunny eyes -->
|
||||
<circle cx="80" cy="60" r="5" fill="#000"/>
|
||||
<circle cx="120" cy="60" r="5" fill="#000"/>
|
||||
|
||||
<!-- Bunny nose -->
|
||||
<polygon points="100,70 95,80 105,80" fill="#000"/>
|
||||
|
||||
<!-- Bunny ears -->
|
||||
<polygon points="50,30 80,10 90,30" fill="#f5c7a1"/>
|
||||
<polygon points="110,30 140,10 150,30" fill="#f5c7a1"/>
|
||||
|
||||
<!-- Bunny mouth -->
|
||||
<path d="M 90 80 Q 100 90 110 80" fill="transparent" stroke="#000" stroke-width="2"/>
|
||||
</svg>
|
Before Width: | Height: | Size: 742 B |
|
@ -1,12 +0,0 @@
|
|||
import BottomBar from "./BottomBar";
|
||||
import TopBar from "./TopBar";
|
||||
|
||||
const AboutPage = () => {
|
||||
return(
|
||||
<div className="flex justify-center items-center w-screen h-screen text-xl text-secondary MainBG">
|
||||
<h1>WIP butt</h1>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default AboutPage;
|
|
@ -1,12 +0,0 @@
|
|||
import BottomBar from "./BottomBar";
|
||||
import TopBar from "./TopBar";
|
||||
|
||||
const BlogPage = () => {
|
||||
return(
|
||||
<div className="flex justify-center items-center w-screen h-screen text-xl text-secondary MainBG">
|
||||
<h1>WIP blogpage</h1>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default BlogPage;
|
|
@ -1,11 +0,0 @@
|
|||
const BottomBar = () => {
|
||||
return (
|
||||
<div className="fixed bottom-0 left-0 h-8 w-screen flex flex-row backdrop-brightness-50 text-secondary justify-center items-center">
|
||||
<div className="fixed flex justify-center">
|
||||
<p className="text-sm">© LibreBun 2024</p>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default BottomBar;
|
|
@ -1,51 +0,0 @@
|
|||
import React, { useState, useEffect } from 'react';
|
||||
|
||||
const StreamEmbed = () => {
|
||||
const [isLive, setIsLive] = useState(false);
|
||||
|
||||
const checkStream = async () => {
|
||||
const owncastURL = "https://cast.li-yo.ts.net";
|
||||
const statusAPI = `${owncastURL}/api/status`;
|
||||
try {
|
||||
const response = await fetch(statusAPI);
|
||||
if (!response.ok) {
|
||||
throw new Error(`HTTP error! status: ${response.status}`);
|
||||
}
|
||||
const data = await response.json();
|
||||
// Check if the stream is live
|
||||
setIsLive(data.online);
|
||||
} catch (error) {
|
||||
console.error("Error checking stream status:", error);
|
||||
}
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
// Check the stream status when the component mounts
|
||||
checkStream();
|
||||
// Optionally, you can set an interval to check the stream status periodically
|
||||
const intervalId = setInterval(checkStream, 60000); // Check every 60 seconds
|
||||
|
||||
// Cleanup interval on component unmount
|
||||
return () => clearInterval(intervalId);
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<>
|
||||
{ (
|
||||
<div className="fixed overflow-hidden bottom-0 right-0 mb-20 mr-16 rounded-md">
|
||||
<iframe
|
||||
className="overflow-hidden"
|
||||
src="https://cast.li-yo.ts.net/embed/video?initiallyMuted=true"
|
||||
title="Zoey's Emporium"
|
||||
height="280"
|
||||
width="384"
|
||||
referrerPolicy="origin"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
</div>
|
||||
)}
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
export default StreamEmbed;
|
|
@ -1,10 +0,0 @@
|
|||
import React from 'react';
|
||||
|
||||
function FilePage() {
|
||||
return (
|
||||
<div>
|
||||
<h1>File Page</h1>
|
||||
<p>This is the content of the new page.</p>
|
||||
</div>
|
||||
);
|
||||
}
|
|
@ -1,62 +0,0 @@
|
|||
import { useEffect, useState } from 'react';
|
||||
|
||||
function Home() {
|
||||
const [Versions, setVersions] = useState('');
|
||||
|
||||
useEffect(() => {
|
||||
const fetchFiles = async () => {
|
||||
try {
|
||||
const Response = await fetch('versions.txt');
|
||||
const Text = await Response.text();
|
||||
setVersions(Text);
|
||||
} catch (error) {
|
||||
console.error('Error fetching file:', error);
|
||||
}
|
||||
};
|
||||
|
||||
fetchFiles();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div className='flex flex-col justify-center items-center w-screen h-screen overflow-hidden MainBG'>
|
||||
<div className='flex flex-col items-center'>
|
||||
<p className='text-4xl mb-2 text-secondary'>Welcome to Zoey's Bits!</p>
|
||||
<p className='text-xl mb-8 text-secondary'>The home of all my bits and pieces.</p>
|
||||
</div>
|
||||
<div className='flex'>
|
||||
<div className='flex flex-col w-fit h-fit text-secondary rounded-md items-center'>
|
||||
<p className='text-xl'>Feel free to use my public services.</p>
|
||||
<div className='grid grid-cols-3 grid-rows-2 gap-4 mx-2 my-2'>
|
||||
<a href='https://git.li-yo.ts.net/' target='_blank' rel='noopener noreferrer' className='backdrop-brightness-75 shadow-md rounded-md p-1 flex LogoBoxesPub'>
|
||||
<img className='Logos' draggable='false' src={process.env.PUBLIC_URL + '/forgejologo.svg'} alt='Memos' />
|
||||
<p className='self-center mx-2 PubP'>Forgejo</p>
|
||||
</a>
|
||||
<a href='https://lemmy.li-yo.ts.net/' target='_blank' rel='noopener noreferrer' className='backdrop-brightness-75 shadow-md rounded-md p-1 flex LogoBoxesPub'>
|
||||
<img className='Logos' draggable='false' src={process.env.PUBLIC_URL + '/lemmylogo.svg'} alt='Lemmy' />
|
||||
<p className='self-center mx-2 PubP'>Lemmy</p>
|
||||
</a>
|
||||
<a href='https://clips.li-yo.ts.net/' target='_blank' rel='noopener noreferrer' className='backdrop-brightness-75 shadow-md rounded-md p-1 flex LogoBoxesPub'>
|
||||
<img className='Logos' draggable='false' src={process.env.PUBLIC_URL + '/firesharelogo.png'} alt='Fireshare' />
|
||||
<p className='self-center mx-2 PubP'>Fireshare</p>
|
||||
</a>
|
||||
<a href='https://memos.li-yo.ts.net/' target='_blank' rel='noopener noreferrer' className='backdrop-brightness-75 shadow-md rounded-md p-1 flex LogoBoxesPub'>
|
||||
<img className='Logos' draggable='false' src={process.env.PUBLIC_URL + '/memoslogo.png'} alt='Memos' />
|
||||
<p className='self-center mx-2 PubP'>Memos</p>
|
||||
</a>
|
||||
<a href='https://send.li-yo.ts.net/' target='_blank' rel='noopener noreferrer' className='backdrop-brightness-75 shadow-md rounded-md p-1 flex LogoBoxesPub'>
|
||||
<img className='Logos' draggable='false' src={process.env.PUBLIC_URL + '/sendlogo.svg'} alt='Send' />
|
||||
<p className='self-center mx-2 PubP'>Send</p>
|
||||
</a>
|
||||
<a href='https://cast.li-yo.ts.net/' target='_blank' rel='noopener noreferrer' className='backdrop-brightness-75 shadow-md rounded-md p-1 flex LogoBoxesPub'>
|
||||
<img className='Logos' draggable='false' src={process.env.PUBLIC_URL + '/owncastlogo.png'} alt='Owncast' />
|
||||
<p className='self-center mx-2 PubP'>Owncast</p>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
export default Home;
|
|
@ -1,12 +0,0 @@
|
|||
import BottomBar from "./BottomBar";
|
||||
import TopBar from "./TopBar";
|
||||
|
||||
const ProjectsPage = () => {
|
||||
return(
|
||||
<div className="flex justify-center items-center w-screen h-screen text-xl text-secondary MainBG">
|
||||
<h1>WIP projectspage</h1>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default ProjectsPage;
|
|
@ -1,12 +0,0 @@
|
|||
import React from 'react'
|
||||
import ReactPlayer from 'react-player'
|
||||
|
||||
// Lazy load the YouTube player
|
||||
function RTMP() {
|
||||
return (
|
||||
<ReactPlayer url='rtmp://192.168.0.12:4036/live/umodaxcx!7cvuS!XrsHX&lh3PtqtVs' />
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
export default RTMP;
|
|
@ -1,12 +0,0 @@
|
|||
const SideBar = () => {
|
||||
return (
|
||||
<div className="fixed left-0 h-screen flex-shrink-0 w-24 flex flex-col bg-sidebar text-secondary shadow-sm justify-center items-center">
|
||||
<div className="fixed flex flex-shrink-0">
|
||||
<p className="text-sm">butts</p>
|
||||
<p className="text-sm">butts2</p>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default SideBar;
|
|
@ -1,27 +0,0 @@
|
|||
import BottomBar from "./BottomBar";
|
||||
import TopBar from "./TopBar";
|
||||
|
||||
const StreamPage = () => {
|
||||
return(
|
||||
<div className="flex flex-col items-center justify-center w-screen h-screen text-xl text-secondary MainBG">
|
||||
<div className="flex flex-row items-center justify-center w-screen h-5/6 mt-8 text-xl text-secondary">
|
||||
<iframe
|
||||
className="mt-5 overflow-hidden justify-left flex"
|
||||
src="https://cast.li-yo.ts.net/embed/video"
|
||||
title="Owncast"
|
||||
height="100%" width="60%"
|
||||
referrerpolicy="origin"
|
||||
allowfullscreen>
|
||||
</iframe>
|
||||
<iframe
|
||||
className="ml-5 mt-5 overflow-scroll"
|
||||
src="https://cast.li-yo.ts.net/embed/chat/readwrite/"
|
||||
height="100%" width="30%">
|
||||
</iframe>
|
||||
</div>
|
||||
<a href="https://cast.li-yo.ts.net/" className="my-5">Join me on my actual Owncast site!</a>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
export default StreamPage;
|
|
@ -1,30 +0,0 @@
|
|||
import React from "react";
|
||||
import { useNavigate } from "react-router-dom";
|
||||
|
||||
const TopBar = () => {
|
||||
const navigate = useNavigate();
|
||||
return (
|
||||
<div className="fixed top-0 left-0 h-16 w-screen flex flex-row backdrop-brightness-75 text-secondary items-center">
|
||||
<div className="topbar-clickables">
|
||||
<div className="flex flex-row">
|
||||
<div className="scale-50 BunnyLogo">
|
||||
<div className="">
|
||||
<img onClick={() => navigate("/")} draggable="false" src={process.env.PUBLIC_URL + "/bunnie96px.svg"} alt="Bunnie"/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="flex space-x-3">
|
||||
<button className="HeaderButt" onClick={() => navigate("/blog")}>Blog</button>
|
||||
<button className="HeaderButt" onClick={() => navigate("/projects")}>Projects</button>
|
||||
<button className="HeaderButt" onClick={() => navigate("/stream")}>Stream</button>
|
||||
<button className="HeaderButt" onClick={() => navigate("/about")}>About</button>
|
||||
</div>
|
||||
<div className="fixed top-5 items-center justify-center right-0 mr-4 select-none StatusButt">
|
||||
<a href='https://status.li-yo.ts.net/' target='_blank' rel='noopener noreferrer' className="">Status Page</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default TopBar;
|
|
@ -1,26 +0,0 @@
|
|||
@import 'tailwindcss/base';
|
||||
@import 'tailwindcss/components';
|
||||
@import 'tailwindcss/utilities';
|
||||
@import url(https://fonts.googleapis.com/css2?family=Sarabun);
|
||||
|
||||
@layer components {
|
||||
.TopButton {
|
||||
@apply hover:text-texthover cursor-pointer transition-colors duration-300;
|
||||
}
|
||||
.DarkModeButton {
|
||||
@apply cursor-pointer text-secondary bg-violet-950
|
||||
border-4 border-violet-950 rounded-md;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: 'Sarabun', sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
|
||||
monospace;
|
||||
}
|
74
src/index.js
|
@ -1,74 +0,0 @@
|
|||
import React, { StrictMode } from 'react';
|
||||
import ReactDOM from 'react-dom/client';
|
||||
import './index.css';
|
||||
import App from './App';
|
||||
import reportWebVitals from './reportWebVitals';
|
||||
import {createBrowserRouter,RouterProvider} from "react-router-dom";
|
||||
import AboutPage from './components/About';
|
||||
import StreamPage from './components/Stream';
|
||||
import ProjectsPage from './components/Projects';
|
||||
import BlogPage from './components/Blog';
|
||||
import TopBar from './components/TopBar';
|
||||
import BottomBar from './components/BottomBar';
|
||||
|
||||
const router = createBrowserRouter([
|
||||
{
|
||||
path: "/",
|
||||
element: (
|
||||
<>
|
||||
<TopBar/>
|
||||
<App/>
|
||||
<BottomBar/>
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
path: "/about",
|
||||
element: (
|
||||
<>
|
||||
<AboutPage/>
|
||||
<TopBar/>
|
||||
<BottomBar/>
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
path: "/stream",
|
||||
element: (
|
||||
<>
|
||||
<StreamPage/>
|
||||
<TopBar/>
|
||||
<BottomBar/>
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
path: "/projects",
|
||||
element: (
|
||||
<>
|
||||
<ProjectsPage/>
|
||||
<TopBar/>
|
||||
<BottomBar/>
|
||||
</>
|
||||
),
|
||||
},
|
||||
{
|
||||
path: "/blog",
|
||||
element: (
|
||||
<>
|
||||
<BlogPage/>
|
||||
<TopBar/>
|
||||
<BottomBar/>
|
||||
</>
|
||||
),
|
||||
}
|
||||
]);
|
||||
|
||||
const root = ReactDOM.createRoot(document.getElementById('root'));
|
||||
root.render(
|
||||
<StrictMode>
|
||||
<RouterProvider router={router} />
|
||||
</StrictMode>
|
||||
);
|
||||
|
||||
reportWebVitals();
|
|
@ -1,13 +0,0 @@
|
|||
const reportWebVitals = onPerfEntry => {
|
||||
if (onPerfEntry && onPerfEntry instanceof Function) {
|
||||
import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
|
||||
getCLS(onPerfEntry);
|
||||
getFID(onPerfEntry);
|
||||
getFCP(onPerfEntry);
|
||||
getLCP(onPerfEntry);
|
||||
getTTFB(onPerfEntry);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export default reportWebVitals;
|
|
@ -1,5 +0,0 @@
|
|||
// jest-dom adds custom jest matchers for asserting on DOM nodes.
|
||||
// allows you to do things like:
|
||||
// expect(element).toHaveTextContent(/react/i)
|
||||
// learn more: https://github.com/testing-library/jest-dom
|
||||
import '@testing-library/jest-dom';
|
|
@ -1,19 +0,0 @@
|
|||
/** @type {import('tailwindcss').Config} */
|
||||
module.exports = {
|
||||
mode: 'jit',
|
||||
content: ["./src/**/*.{html,js}"],
|
||||
darkMode: false,
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
primary: "#111111",
|
||||
secondary: "#f9b6c1",
|
||||
sidebar: "#161616",
|
||||
texthover: "#eae8f0",
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [
|
||||
require('tailwindcss-image-rendering'),
|
||||
],
|
||||
}
|