Compare commits
No commits in common. "main" and "main" have entirely different histories.
4 changed files with 212 additions and 241 deletions
69
README.md
69
README.md
|
@ -1,69 +1,38 @@
|
||||||
|
|
||||||
![Cyber Circle Creator Logo](https://git.cyberwa.re/revengeday/cyber-circle-creator/raw/branch/main/img/logo.svg)
|
|
||||||
|
|
||||||
# Cyber Circle Creator
|
# Cyber Circle Creator
|
||||||
|
|
||||||
Yo choom!
|
Yo choom! I'm excited to introduce you to [Cyber Circle Creator](https://ccc.cyber.to), a preem tool that I forked and enhanced. It allows you to explore your Fediverse circle with a cyberpunk twist!
|
||||||
|
|
||||||
Welcome to the preem [Cyber Circle Creator](https://ccc.cyber.to), an advanced visualization tool with a cyberpunk twist that I have forked from [AMNatty/Mastodon-Circles](https://github.com/AMNatty/Mastodon-Circles) and enhanced.
|
## What's It About?
|
||||||
|
|
||||||
This tool allows you to explore and visualize your Fediverse connections through an interactive diagram.
|
Cyber Circle Creator lets you visualize your Fediverse connections in a dynamic, cyber-futuristic way. Just pop in your Fediverse handle, and watch your network come to life in an interactive diagram.
|
||||||
|
|
||||||
## Overview
|
This tool builds upon [AMNatty/Mastodon-Circles](https://github.com/AMNatty/Mastodon-Circles) and [andigandhi/Mastodon-Circles](https://github.com/andigandhi/Mastodon-Circles), with some enhancements from [noellabo](https://github.com/noellabo/Mastodon-Circles) including Fedibird support.
|
||||||
|
|
||||||
Cyber Circle Creator transforms the way you perceive your Fediverse connections into an immersive, cyber-futuristic visualization. Simply input your Fediverse handle, and watch your network unfold dynamically.
|
## What Can You Do With It?
|
||||||
|
|
||||||
This project is built upon enhancements from [AMNatty/Mastodon-Circles](https://github.com/AMNatty/Mastodon-Circles), [andigandhi/Mastodon-Circles](https://github.com/andigandhi/Mastodon-Circles), and contributions from [noellabo](https://github.com/noellabo/Mastodon-Circles) including Fedibird support.
|
- **Visualize Your Network**: Enter your Mastodon or another Fediverse handle to see a graphical display of your connections.
|
||||||
|
- **Cyberpunk Style**: Enjoy visuals with dynamic lines and intricate, sci-fi-inspired backgrounds.
|
||||||
## Features
|
- **Instant Sharing**: Create a link with your handle to easily share your unique circle with others.
|
||||||
|
|
||||||
- **Network Visualization**: Enter your Mastodon or other Fediverse handle to generate a visual representation of your network.
|
|
||||||
- **Cyberpunk Aesthetics**: Experience sophisticated designs with dynamic lines and sci-fi-inspired backgrounds.
|
|
||||||
- **Easy Sharing**: Easily share your network visual by creating a unique link with your handle.
|
|
||||||
|
|
||||||
## Getting Started
|
## Getting Started
|
||||||
|
|
||||||
To get started with Cyber Circle Creator, visit [Cyber Circle Creator](https://ccc.cyber.to) and input your Fediverse handle. For direct access, append your handle to the URL in this format: `https://ccc.cyber.to/?@username@instance.tld`.
|
It's super easy to get started! Just head over to [Cyber Circle Creator](https://ccc.cyber.to) and enter your Fediverse handle. For quick access next time, modify the URL directly by appending your handle like so: `https://ccc.cyber.to/?@username@instance.tld`.
|
||||||
|
|
||||||
## Installation Guide
|
|
||||||
|
|
||||||
For those who wish to host Cyber Circle Creator on their own net, follow these steps:
|
|
||||||
|
|
||||||
1. **Download the Project**
|
|
||||||
- Clone the repository via Git:
|
|
||||||
```bash
|
|
||||||
git clone https://git.cyberwa.re/revengeday/cyber-circle-creator.git
|
|
||||||
```
|
|
||||||
- Alternatively, download it as a ZIP or tarball:
|
|
||||||
- [Download ZIP](https://git.cyberwa.re/revengeday/cyber-circle-creator/archive/main.zip)
|
|
||||||
- [Download tar.gz](https://git.cyberwa.re/revengeday/cyber-circle-creator/archive/main.tar.gz)
|
|
||||||
|
|
||||||
2. **Upload Files**
|
|
||||||
- Once downloaded, upload the contents of the project to your preferred webspace.
|
|
||||||
- Make sure your hosting service supports basic HTML/CSS/JavaScript execution.
|
|
||||||
|
|
||||||
3. **Access The Tool**
|
|
||||||
- Navigate to the uploaded directory's `index.html` file in your browser to access Cyber Circle Creator.
|
|
||||||
|
|
||||||
## Customization Options
|
## Customization Options
|
||||||
|
|
||||||
Tailor the tool to your liking with various customization features available. Adjust line colors, avatar sizes, and more via the `config` object in `js/image.js`.
|
Make it your own with customization features! You can tweak line colors, avatar sizes, and add cool background patterns. Customization is available via the `config` object in `js/image.js`.
|
||||||
|
|
||||||
Quick customization pointers:
|
Here's a quick overview of what you can change:
|
||||||
|
|
||||||
- **`logoSrc`**: Define the path to your project’s logo image.
|
- **`logoSrc`**: Path to your project’s logo image.
|
||||||
- **`backgroundColor`**: Set the canvas's background color.
|
- **`backgroundColor`**: Set the background color of your canvas.
|
||||||
- **`lineColor`**: Customize the color of the connection lines.
|
- **`lineColor`**: Choose the color of the connection lines.
|
||||||
- **And More**: Explore further options to enhance your personalized experience.
|
- **Etc.**: There are many more options to play around with if you’re up for some customization.
|
||||||
|
|
||||||
## Need Assistance?
|
## Need Help?
|
||||||
|
|
||||||
For additional information or support, please visit the [FAQ section](https://ccc.cyber.to) on the project site or connect with me on the Fediverse at [corteximplant.com/@revengeday](https://corteximplant.com/@revengeday).
|
Got questions or need some help? Check out the [FAQ section](https://ccc.cyber.to) on the project site for more info or contact me in the Fediverse. [Fediverse](https://corteximplant.com/@revengeday)
|
||||||
|
|
||||||
## Acknowledgments
|
## Contribute!
|
||||||
|
|
||||||
A big thank you to all contributors who have helped shape the Cyber Circle Creator. You can find the list of contributors [here](https://git.cyberwa.re/revengeday/cyber-circle-creator/activity/contributors).
|
Interested in contributing? That would be awesome! Feel free to create a fork. Let's see what amazing things you can contribute!
|
||||||
|
|
||||||
## Contributions Welcome!
|
|
||||||
|
|
||||||
Contributions are highly encouraged! Feel free to fork the repository and propose changes. Your insights and improvements are invaluable to the growth of Cyber Circle Creator.
|
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
font-style: normal;
|
font-style: normal;
|
||||||
font-display: swap;
|
font-display: swap;
|
||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--cyber-bg-color: #05130f;
|
--cyber-bg-color: #05130f;
|
||||||
--cyber-font-color: #e8f0f2;
|
--cyber-font-color: #e8f0f2;
|
||||||
|
@ -20,10 +19,6 @@
|
||||||
--cyber-hero-overlay: rgba(0, 0, 0, 0.7);
|
--cyber-hero-overlay: rgba(0, 0, 0, 0.7);
|
||||||
--cyber-shadow: rgba(0, 0, 0, 0.5);
|
--cyber-shadow: rgba(0, 0, 0, 0.5);
|
||||||
--cyber-slider-thumb-bg: #fff;
|
--cyber-slider-thumb-bg: #fff;
|
||||||
|
|
||||||
/* Spacing */
|
|
||||||
--spacing-sm: clamp(0.75rem, 0.4295rem + 1.3675vw, 1.25rem);; /* 12px to 20px */
|
|
||||||
--spacing-md: clamp(1.5rem, 1.1795rem + 1.3675vw, 2rem);; /* 16px to 32px */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* General Styles */
|
/* General Styles */
|
||||||
|
@ -83,23 +78,18 @@ h1 {
|
||||||
|
|
||||||
/* Main content */
|
/* Main content */
|
||||||
main {
|
main {
|
||||||
padding-inline: var(--spacing-sm);
|
padding: 40px 20px;
|
||||||
max-width: 1000px;
|
max-width: 1000px;
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
section:not(.output-section) {
|
.form-section {
|
||||||
text-align: left;
|
|
||||||
background-color: #102f2a;
|
background-color: #102f2a;
|
||||||
padding: var(--spacing-md);
|
padding: 30px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
|
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
|
||||||
color: var(--cyber-font-color);
|
|
||||||
|
|
||||||
&:not(:last-child) {
|
|
||||||
margin-bottom: 40px;
|
margin-bottom: 40px;
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.input-group, .radio-group, button {
|
.input-group, .radio-group, button {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -109,9 +99,7 @@ main {
|
||||||
|
|
||||||
input[type="text"] {
|
input[type="text"] {
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
font-size: inherit;
|
width: calc(100% - 20px);
|
||||||
line-height: 1.35;
|
|
||||||
width: 100%;
|
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
border: 2px solid var(--cyber-primary-color);
|
border: 2px solid var(--cyber-primary-color);
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
|
@ -128,14 +116,9 @@ input[type="text"]:focus {
|
||||||
/* Radio Buttons */
|
/* Radio Buttons */
|
||||||
.radio-group {
|
.radio-group {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
justify-content: space-around;
|
||||||
justify-content: space-between;
|
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: var(--spacing-sm);
|
|
||||||
|
|
||||||
@media (width > 768px) {
|
|
||||||
flex-direction: row;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.radio-group input[type="radio"] {
|
.radio-group input[type="radio"] {
|
||||||
|
@ -143,7 +126,8 @@ input[type="text"]:focus {
|
||||||
}
|
}
|
||||||
|
|
||||||
.radio-group label {
|
.radio-group label {
|
||||||
flex: 1;
|
width: calc(25% - 10px);
|
||||||
|
margin: 5px;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
@ -167,12 +151,11 @@ input[type="text"]:focus {
|
||||||
/* Buttons */
|
/* Buttons */
|
||||||
button {
|
button {
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
font-size: inherit;
|
|
||||||
line-height: 1.35;
|
|
||||||
padding: 10px 20px;
|
padding: 10px 20px;
|
||||||
border-radius: 5px;
|
border-radius: 5px;
|
||||||
background-color: var(--cyber-bg-color);
|
background-color: var(--cyber-bg-color);
|
||||||
color: var(--cyber-font-color);
|
color: var(--cyber-font-color);
|
||||||
|
font-size: 1rem;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
border: 2px solid transparent;
|
border: 2px solid transparent;
|
||||||
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
|
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
|
||||||
|
@ -211,12 +194,27 @@ button:active {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.output-section {
|
||||||
|
margin-top: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
#outDiv {
|
#outDiv {
|
||||||
display: none;
|
display: none;
|
||||||
margin-top: 30px;
|
margin-top: 30px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* FAQ Section */
|
||||||
|
.faq-section {
|
||||||
|
background-color: var(--cyber-faq-bg-color);
|
||||||
|
padding: 30px;
|
||||||
|
border-radius: 10px;
|
||||||
|
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
|
||||||
|
color: var(--cyber-font-color);
|
||||||
|
margin-top: 40px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
.faq-section h3 {
|
.faq-section h3 {
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
|
@ -244,12 +242,12 @@ button:active {
|
||||||
display: block;
|
display: block;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: var(--cyber-highlight-color);
|
color: var(--cyber-highlight-color);
|
||||||
padding: var(--spacing-sm);
|
padding: 15px;
|
||||||
background-color: #102f2a;
|
background-color: #102f2a;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
position: relative;
|
position: relative;
|
||||||
margin-bottom: var(--spacing-sm);
|
margin-bottom: 5px;
|
||||||
transition: background-color 0.3s;
|
transition: background-color 0.3s;
|
||||||
white-space: normal;
|
white-space: normal;
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
|
@ -268,9 +266,9 @@ button:active {
|
||||||
|
|
||||||
.faq-answer {
|
.faq-answer {
|
||||||
max-height: 0;
|
max-height: 0;
|
||||||
display: none;
|
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
padding: var(--spacing-sm);
|
transition: max-height 0.5s ease;
|
||||||
|
padding: 0 15px;
|
||||||
background-color: var(--cyber-bg-color);
|
background-color: var(--cyber-bg-color);
|
||||||
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
|
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
|
@ -279,7 +277,7 @@ button:active {
|
||||||
|
|
||||||
.faq-checkbox:checked + .faq-question + .faq-answer {
|
.faq-checkbox:checked + .faq-question + .faq-answer {
|
||||||
max-height: 100%;
|
max-height: 100%;
|
||||||
display: block;
|
padding: 15px;
|
||||||
}
|
}
|
||||||
/* List Styles for FAQ */
|
/* List Styles for FAQ */
|
||||||
.faq-answer ul,
|
.faq-answer ul,
|
||||||
|
@ -306,6 +304,16 @@ button:active {
|
||||||
.faq-answer li::marker {
|
.faq-answer li::marker {
|
||||||
color: var(--cyber-highlight-color);
|
color: var(--cyber-highlight-color);
|
||||||
}
|
}
|
||||||
|
/* Credits Section */
|
||||||
|
.credits-section {
|
||||||
|
background-color: var(--cyber-faq-bg-color);
|
||||||
|
padding: 30px;
|
||||||
|
border-radius: 10px;
|
||||||
|
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3);
|
||||||
|
color: var(--cyber-font-color);
|
||||||
|
margin-top: 40px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
.credits-section h3 {
|
.credits-section h3 {
|
||||||
font-size: 2rem;
|
font-size: 2rem;
|
||||||
|
@ -422,25 +430,21 @@ button:active {
|
||||||
/* Slider */
|
/* Slider */
|
||||||
.slider-container {
|
.slider-container {
|
||||||
margin: 20px 0;
|
margin: 20px 0;
|
||||||
|
text-align: center;
|
||||||
color: var(--cyber-font-color);
|
color: var(--cyber-font-color);
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
|
||||||
align-items: center;
|
align-items: center;
|
||||||
text-align: center;
|
justify-content: center;
|
||||||
gap: var(--spacing-sm) var(--spacing-md);
|
gap: 15px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.slider-container label {
|
.slider-container label {
|
||||||
font-size: 1.2rem;
|
font-size: 1.2rem;
|
||||||
|
|
||||||
@media (width < 568px) {
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
input[type="range"] {
|
input[type="range"] {
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
flex: 1;
|
width: 70%;
|
||||||
margin: 10.5px 0;
|
margin: 10.5px 0;
|
||||||
background-color: var(--cyber-faq-bg-color);
|
background-color: var(--cyber-faq-bg-color);
|
||||||
}
|
}
|
||||||
|
@ -522,6 +526,7 @@ input[type="range"]::-ms-thumb {
|
||||||
|
|
||||||
#sliderValueDisplay {
|
#sliderValueDisplay {
|
||||||
font-size: 1.1rem;
|
font-size: 1.1rem;
|
||||||
|
margin-left: 10px;
|
||||||
color: var(--cyber-primary-color);
|
color: var(--cyber-primary-color);
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
|
@ -139,12 +139,9 @@
|
||||||
<div class="faq-answer">
|
<div class="faq-answer">
|
||||||
<p>We understand some users have concerns about data usage by Cyber Circle Creator. This tool is based on a fork of AMNatty/Mastodon-Circles, and user feedback suggests a demand for opt-out capabilities. Here's what we're doing to address these concerns:</p>
|
<p>We understand some users have concerns about data usage by Cyber Circle Creator. This tool is based on a fork of AMNatty/Mastodon-Circles, and user feedback suggests a demand for opt-out capabilities. Here's what we're doing to address these concerns:</p>
|
||||||
<ol>
|
<ol>
|
||||||
<li><strong>User Control:</strong> Cyber Circle Creator operates entirely within your browser, ensuring that no data is stored on external servers. This design choice was made to enhance user privacy and control, and there's no data analysis performed.
|
<li><strong>User Control:</strong> Cyber Circle Creator operates entirely within your browser, ensuring that no data is stored on external servers. This design choice was made to enhance user privacy and control, and there's no data analysis performed.</li>
|
||||||
</li>
|
<li><strong>Initial Measures:</strong> We've added a user-agent to our create-circle.js file. This allows Fediverse administrators to block Cyber Circle Creator if desired. Guidelines on implementing this measure can be found in our wiki under <a href="https://git.cyberwa.re/revengeday/cyber-circle-creator/wiki/Opt-Out%3A+Guide+for+Fediverse+Administrators">Opt-Out: Guide for Fediverse Administrators</a>.</li>
|
||||||
<li><strong>Initial Measures:</strong> We've added a user-agent to our create-circle.js file. This allows Fediverse administrators to block Cyber Circle Creator if desired. Guidelines on implementing this measure can be found in our wiki under <a href="https://git.cyberwa.re/revengeday/cyber-circle-creator/wiki/Opt-Out%3A+Guide+for+Fediverse+Administrators">Opt-Out: Guide for Fediverse Administrators</a>.
|
<li><strong>Future Plans:</strong> We are evaluating ways to implement an opt-out feature to offer more control over data interaction. For more details or to contribute to this effort, please see our <a href="https://git.cyberwa.re/revengeday/cyber-circle-creator/issues/6">Feature Request: Opt-Out from Cyber Circle Creator #6</a>. We are actively seeking collaborators to help develop this feature, despite the technical complexities due to our codebase.</li>
|
||||||
</li>
|
|
||||||
<li><strong>Future Plans:</strong> We are evaluating ways to implement an opt-out feature to offer more control over data interaction. For more details or to contribute to this effort, please see our <a href="https://git.cyberwa.re/revengeday/cyber-circle-creator/issues/6">Feature Request: Opt-Out from Cyber Circle Creator #6</a>. We are actively seeking collaborators to help develop this feature, despite the technical complexities due to our codebase.
|
|
||||||
</li>
|
|
||||||
</ol>
|
</ol>
|
||||||
<p>If you have further questions or would like to contribute to this effort, please reach out. We appreciate your patience and feedback as we work to enhance user privacy and satisfaction.</p>
|
<p>If you have further questions or would like to contribute to this effort, please reach out. We appreciate your patience and feedback as we work to enhance user privacy and satisfaction.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -19,7 +19,7 @@ const config = {
|
||||||
mazeColor: '#05130f', // Color of the maze lines
|
mazeColor: '#05130f', // Color of the maze lines
|
||||||
mazeThickness: 2, // Thickness of the maze lines
|
mazeThickness: 2, // Thickness of the maze lines
|
||||||
drawRedLine: true, // Enable or disable the red line
|
drawRedLine: true, // Enable or disable the red line
|
||||||
redLineColor: '#9B283C', // Red line color
|
redLineColor: '#FB2735', // Red line color
|
||||||
consoleLogging: false, // Enable or disable console logging
|
consoleLogging: false, // Enable or disable console logging
|
||||||
};
|
};
|
||||||
// ---------------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in a new issue