first commit
This commit is contained in:
commit
20b837bf29
4 changed files with 580 additions and 0 deletions
37
README.md
Normal file
37
README.md
Normal file
|
@ -0,0 +1,37 @@
|
|||
# What's My Vibe?
|
||||
|
||||
A fun, interactive web application that tells you your current vibe. Click the button to get a random vibe reading!
|
||||
|
||||
## Features
|
||||
|
||||
- Beautiful animated gradient background
|
||||
- Interactive floating particles
|
||||
- Random vibe generator
|
||||
- Modern, clean UI
|
||||
- Fully responsive design
|
||||
|
||||
## How to Use
|
||||
|
||||
1. Open `index.html` in your web browser
|
||||
2. Click the "Read My Vibe" button
|
||||
3. Get your vibe reading!
|
||||
|
||||
## Technologies Used
|
||||
|
||||
- HTML5
|
||||
- CSS3
|
||||
- JavaScript
|
||||
- Particles.js for the interactive background
|
||||
|
||||
## Local Development
|
||||
|
||||
Simply clone the repository and open `index.html` in your browser. No build process or dependencies required!
|
||||
|
||||
```bash
|
||||
git clone https://github.com/yourusername/whats-my-vibe.git
|
||||
cd whats-my-vibe
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
MIT License - feel free to use this project for whatever you want!
|
61
index.html
Normal file
61
index.html
Normal file
|
@ -0,0 +1,61 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>What's My Vibe? | Vibe Checker</title>
|
||||
|
||||
<!-- Favicon -->
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="https://upload.wikimedia.org/wikipedia/commons/6/69/SMirC-smile.svg">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="https://upload.wikimedia.org/wikipedia/commons/6/69/SMirC-smile.svg">
|
||||
<link rel="apple-touch-icon" href="https://upload.wikimedia.org/wikipedia/commons/6/69/SMirC-smile.svg">
|
||||
|
||||
<!-- Theme Colors -->
|
||||
<meta name="theme-color" content="#23a6d5">
|
||||
<meta name="msapplication-navbutton-color" content="#23a6d5">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="#23a6d5">
|
||||
|
||||
<!-- Primary Meta Tags -->
|
||||
<meta name="title" content="What's My Vibe? | Vibe Checker">
|
||||
<meta name="description" content="Check your current vibe with our fun and interactive vibe checker. Get instant vibe readings and discover your mood!">
|
||||
<meta name="keywords" content="vibe checker, mood checker, vibe reading, mood reading, vibe test">
|
||||
<meta name="author" content="WhatsMyVibe">
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="language" content="English">
|
||||
|
||||
<!-- Open Graph / Facebook -->
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="What's My Vibe? | Vibe Checker">
|
||||
<meta property="og:description" content="Check your current vibe with our fun and interactive vibe checker. Get instant vibe readings and discover your mood!">
|
||||
<meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/6/69/SMirC-smile.svg">
|
||||
<meta property="og:image:width" content="96">
|
||||
<meta property="og:image:height" content="96">
|
||||
<meta property="og:site_name" content="What's My Vibe?">
|
||||
|
||||
<!-- Twitter -->
|
||||
<meta property="twitter:card" content="summary">
|
||||
<meta property="twitter:title" content="What's My Vibe? | Vibe Checker">
|
||||
<meta property="twitter:description" content="Check your current vibe with our fun and interactive vibe checker. Get instant vibe readings and discover your mood!">
|
||||
<meta property="twitter:image" content="https://upload.wikimedia.org/wikipedia/commons/6/69/SMirC-smile.svg">
|
||||
|
||||
<!-- styles -->
|
||||
<link rel="stylesheet" href="styles.css">
|
||||
</head>
|
||||
<body>
|
||||
<!-- particles container -->
|
||||
<div id="particles-js"></div>
|
||||
|
||||
<div class="container">
|
||||
<h1 class="title">What's My Vibe?</h1>
|
||||
<div class="vibe-container">
|
||||
<span id="vibe" class="vibe">Click to Check</span>
|
||||
</div>
|
||||
|
||||
<button id="checkButton" class="check-button">Read My Vibe</button>
|
||||
</div>
|
||||
|
||||
<!-- scripts -->
|
||||
<script src="https://cdn.jsdelivr.net/particles.js/2.0.0/particles.min.js"></script>
|
||||
<script src="script.js"></script>
|
||||
</body>
|
||||
</html>
|
347
script.js
Normal file
347
script.js
Normal file
|
@ -0,0 +1,347 @@
|
|||
// List of possible vibes
|
||||
const vibes = [
|
||||
"Crashing Out",
|
||||
"I Want to Go Home",
|
||||
"Need Coffee ASAP",
|
||||
"Just Woke Up",
|
||||
"Still in Bed",
|
||||
"Can't Even",
|
||||
"Too Tired for This",
|
||||
"Why Am I Awake",
|
||||
"Need a Nap",
|
||||
"Brain Not Working",
|
||||
"Just Vibing",
|
||||
"Chilling Hard",
|
||||
"Feeling Groovy",
|
||||
"Vibing Hard",
|
||||
"Peaceful Energy",
|
||||
"Good Vibes",
|
||||
"Vibing to the Max",
|
||||
"Chillax Mode",
|
||||
"Positive Vibes",
|
||||
"Vibing with the Universe",
|
||||
"Zen Vibes",
|
||||
"Vibing on Cloud Nine",
|
||||
"Good Energy",
|
||||
"Vibing with the Flow",
|
||||
"Chill and Relaxed",
|
||||
"Vibing with Style",
|
||||
"Not Today",
|
||||
"Maybe Tomorrow",
|
||||
"Can't Deal",
|
||||
"Over It",
|
||||
"Done with Everything",
|
||||
"Need a Break",
|
||||
"Too Much Going On",
|
||||
"Brain is Fried",
|
||||
"Need a Vacation",
|
||||
"Counting Down to Weekend",
|
||||
"Monday Blues",
|
||||
"TGIF Mode",
|
||||
"Weekend Mode",
|
||||
"Holiday Mode",
|
||||
"Vacation Brain",
|
||||
"Beach Mode",
|
||||
"Mountain Mode",
|
||||
"City Mode",
|
||||
"Night Owl Mode",
|
||||
"Early Bird Mode",
|
||||
"Coffee Addict",
|
||||
"Tea Time",
|
||||
"Music in My Head",
|
||||
"Dance Mode",
|
||||
"Art Mode",
|
||||
"Creative Mode",
|
||||
"Study Mode",
|
||||
"Work Mode",
|
||||
"Weekend Vibes",
|
||||
"Vacation Vibes",
|
||||
"Adventure Mode",
|
||||
"Explorer Mode",
|
||||
"Dream Mode",
|
||||
"Fantasy Mode",
|
||||
"Magical Mode",
|
||||
"Mystical Mode",
|
||||
"Spiritual Mode",
|
||||
"Meditation Mode",
|
||||
"Yoga Mode",
|
||||
"Fitness Mode",
|
||||
"Gaming Mode",
|
||||
"Movie Mode",
|
||||
"Book Mode",
|
||||
"Poetry Mode",
|
||||
"Nature Mode",
|
||||
"Ocean Mode",
|
||||
"Desert Mode",
|
||||
"Arctic Mode",
|
||||
"Tropical Mode",
|
||||
"Urban Mode",
|
||||
"Rural Mode",
|
||||
"Space Mode",
|
||||
"Galaxy Mode",
|
||||
"Stellar Mode",
|
||||
"Lunar Mode",
|
||||
"Solar Mode",
|
||||
"Cosmic Mode",
|
||||
"Earth Mode",
|
||||
"Fire Mode",
|
||||
"Water Mode",
|
||||
"Air Mode",
|
||||
"Earth Mode",
|
||||
"Crystal Mode",
|
||||
"Gemstone Mode",
|
||||
"Mineral Mode",
|
||||
"Botanical Mode",
|
||||
"Floral Mode",
|
||||
"Garden Mode",
|
||||
"Spring Mode",
|
||||
"Summer Mode",
|
||||
"Autumn Mode",
|
||||
"Winter Mode",
|
||||
"Festive Mode",
|
||||
"Holiday Mode",
|
||||
"Celebration Mode",
|
||||
"Party Mode",
|
||||
"Social Mode",
|
||||
"Friendly Mode",
|
||||
"Love Mode",
|
||||
"Romantic Mode",
|
||||
"Passionate Mode",
|
||||
"Creative Flow",
|
||||
"Artistic Flow",
|
||||
"Musical Flow",
|
||||
"Dance Flow",
|
||||
"Poetic Flow",
|
||||
"Literary Flow",
|
||||
"Cinematic Flow",
|
||||
"Theatrical Flow",
|
||||
"Dramatic Flow",
|
||||
"Comedic Flow",
|
||||
"Humorous Flow",
|
||||
"Witty Flow",
|
||||
"Clever Flow",
|
||||
"Intellectual Flow",
|
||||
"Academic Flow",
|
||||
"Scientific Flow",
|
||||
"Mathematical Flow",
|
||||
"Logical Flow",
|
||||
"Analytical Flow",
|
||||
"Philosophical Flow",
|
||||
"Theoretical Flow",
|
||||
"Practical Flow",
|
||||
"Technical Flow",
|
||||
"Digital Flow",
|
||||
"Virtual Flow",
|
||||
"Cyber Flow",
|
||||
"Tech Flow",
|
||||
"Innovative Flow",
|
||||
"Inventive Flow",
|
||||
"Creative Flow",
|
||||
"Imaginative Flow",
|
||||
"Fantastical Flow",
|
||||
"Magical Flow",
|
||||
"Mystical Flow",
|
||||
"Spiritual Flow",
|
||||
"Ethereal Flow",
|
||||
"Celestial Flow",
|
||||
"Astral Flow",
|
||||
"Cosmic Flow",
|
||||
"Universal Flow",
|
||||
"Infinite Flow",
|
||||
"Eternal Flow",
|
||||
"Timeless Flow",
|
||||
"Ageless Flow",
|
||||
"Boundless Flow",
|
||||
"Limitless Flow",
|
||||
"Endless Flow",
|
||||
"Need More Coffee",
|
||||
"Too Much Coffee",
|
||||
"Running on Empty",
|
||||
"Barely Functioning",
|
||||
"Just Surviving",
|
||||
"Hanging in There",
|
||||
"Making It Work",
|
||||
"Faking It Till I Make It",
|
||||
"Pretending to Adult",
|
||||
"Adulting is Hard",
|
||||
"Why Am I Like This",
|
||||
"What Even Is Time",
|
||||
"Lost in Thoughts",
|
||||
"Brain on Autopilot",
|
||||
"Auto-Pilot Mode",
|
||||
"Zombie Mode",
|
||||
"Sleepwalking",
|
||||
"Daydreaming",
|
||||
"Mind Wandering",
|
||||
"Lost in Space",
|
||||
"Floating Through Life",
|
||||
"Drifting Away",
|
||||
"Fading Fast",
|
||||
"Need a Reset",
|
||||
"System Overload",
|
||||
"Brain.exe Has Stopped",
|
||||
"404 Brain Not Found",
|
||||
"Blue Screen of Life",
|
||||
"Need to Reboot",
|
||||
"Loading...",
|
||||
"Buffering...",
|
||||
"Processing...",
|
||||
"Calculating...",
|
||||
"Thinking...",
|
||||
"Still Thinking...",
|
||||
"Overthinking...",
|
||||
"Analysis Paralysis",
|
||||
"Decision Fatigue",
|
||||
"Choice Overload",
|
||||
"Too Many Options",
|
||||
"Can't Decide",
|
||||
"Indecisive Mode",
|
||||
"Maybe Later",
|
||||
"Procrastination Mode",
|
||||
"Last Minute Mode",
|
||||
"Deadline Mode",
|
||||
"Panic Mode",
|
||||
"Stress Mode",
|
||||
"Anxiety Mode",
|
||||
"Calm Mode",
|
||||
"Chill Mode",
|
||||
"Relaxed Mode",
|
||||
"Peace Mode",
|
||||
"Tranquil Mode",
|
||||
"Serene Mode",
|
||||
"Bliss Mode",
|
||||
"Joy Mode",
|
||||
"Happy Mode",
|
||||
"Content Mode",
|
||||
"Satisfied Mode",
|
||||
"Grateful Mode",
|
||||
"Blessed Mode",
|
||||
"Thankful Mode",
|
||||
"Appreciative Mode",
|
||||
"Mindful Mode",
|
||||
"Present Mode",
|
||||
"Here and Now",
|
||||
"Living in the Moment",
|
||||
"Seizing the Day",
|
||||
"Carpe Diem Mode",
|
||||
"YOLO Mode",
|
||||
"Living Life",
|
||||
"Enjoying Life",
|
||||
"Loving Life",
|
||||
"Life is Good",
|
||||
"Life is Beautiful",
|
||||
"Life is Amazing",
|
||||
"Life is Wonderful",
|
||||
"Life is Perfect",
|
||||
"Life is Great",
|
||||
"Life is Awesome",
|
||||
"Life is Fantastic",
|
||||
"Life is Incredible",
|
||||
"Life is Magical",
|
||||
"Life is Mystical",
|
||||
"Life is Spiritual",
|
||||
"Life is Ethereal",
|
||||
"Life is Celestial",
|
||||
"Life is Cosmic",
|
||||
"Life is Universal",
|
||||
"Life is Infinite",
|
||||
"Life is Eternal",
|
||||
"Life is Timeless",
|
||||
"Life is Ageless",
|
||||
"Life is Boundless",
|
||||
"Life is Limitless",
|
||||
"Life is Endless"
|
||||
];
|
||||
|
||||
// Get DOM elements
|
||||
const vibeElement = document.getElementById('vibe');
|
||||
const checkButton = document.getElementById('checkButton');
|
||||
|
||||
// Function to get random vibe
|
||||
function getRandomVibe() {
|
||||
const randomIndex = Math.floor(Math.random() * vibes.length);
|
||||
return vibes[randomIndex];
|
||||
}
|
||||
|
||||
// Function to update vibe with animation
|
||||
function updateVibe() {
|
||||
vibeElement.classList.remove('changed');
|
||||
void vibeElement.offsetWidth; // Trigger reflow
|
||||
vibeElement.classList.add('changed');
|
||||
vibeElement.textContent = getRandomVibe();
|
||||
}
|
||||
|
||||
// Add click event listener to button
|
||||
checkButton.addEventListener('click', updateVibe);
|
||||
|
||||
// Initialize particles
|
||||
particlesJS('particles-js', {
|
||||
particles: {
|
||||
number: {
|
||||
value: 80,
|
||||
density: {
|
||||
enable: true,
|
||||
value_area: 800
|
||||
}
|
||||
},
|
||||
color: {
|
||||
value: '#ffffff'
|
||||
},
|
||||
shape: {
|
||||
type: 'circle'
|
||||
},
|
||||
opacity: {
|
||||
value: 0.5,
|
||||
random: false,
|
||||
anim: {
|
||||
enable: false
|
||||
}
|
||||
},
|
||||
size: {
|
||||
value: 3,
|
||||
random: true
|
||||
},
|
||||
line_linked: {
|
||||
enable: true,
|
||||
distance: 150,
|
||||
color: '#ffffff',
|
||||
opacity: 0.4,
|
||||
width: 1
|
||||
},
|
||||
move: {
|
||||
enable: true,
|
||||
speed: 2,
|
||||
direction: 'none',
|
||||
random: false,
|
||||
straight: false,
|
||||
out_mode: 'out',
|
||||
bounce: false
|
||||
}
|
||||
},
|
||||
interactivity: {
|
||||
detect_on: 'canvas',
|
||||
events: {
|
||||
onhover: {
|
||||
enable: true,
|
||||
mode: 'grab'
|
||||
},
|
||||
onclick: {
|
||||
enable: true,
|
||||
mode: 'push'
|
||||
},
|
||||
resize: true
|
||||
},
|
||||
modes: {
|
||||
grab: {
|
||||
distance: 140,
|
||||
line_linked: {
|
||||
opacity: 1
|
||||
}
|
||||
},
|
||||
push: {
|
||||
particles_nb: 4
|
||||
}
|
||||
}
|
||||
},
|
||||
retina_detect: true
|
||||
});
|
135
styles.css
Normal file
135
styles.css
Normal file
|
@ -0,0 +1,135 @@
|
|||
/* reset some default browser styles */
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* main page styles */
|
||||
body {
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background: linear-gradient(-45deg, #ee7752, #e73c7e, #23a6d5, #23d5ab);
|
||||
background-size: 400% 400%;
|
||||
animation: gradient 15s ease infinite;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* particles container */
|
||||
#particles-js {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
/* center everything */
|
||||
.container {
|
||||
text-align: center;
|
||||
padding: 2rem;
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
/* make the title look nice and fade in */
|
||||
.title {
|
||||
font-size: 3.5rem;
|
||||
margin-bottom: 2rem;
|
||||
color: white;
|
||||
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
|
||||
opacity: 0;
|
||||
animation: fadeIn 1s ease forwards;
|
||||
}
|
||||
|
||||
/* vibe container styling */
|
||||
.vibe-container {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
backdrop-filter: blur(10px);
|
||||
padding: 2rem;
|
||||
border-radius: 12px;
|
||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
||||
margin-bottom: 2rem;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
/* make the vibe text big and bold */
|
||||
.vibe {
|
||||
font-size: 2.5rem;
|
||||
font-weight: bold;
|
||||
color: white;
|
||||
display: inline-block;
|
||||
transition: all 0.3s ease;
|
||||
}
|
||||
|
||||
/* check button styling */
|
||||
.check-button {
|
||||
background: rgba(255, 255, 255, 0.2);
|
||||
border: none;
|
||||
padding: 1rem 2rem;
|
||||
font-size: 1.2rem;
|
||||
color: white;
|
||||
border-radius: 50px;
|
||||
cursor: pointer;
|
||||
transition: all 0.3s ease;
|
||||
backdrop-filter: blur(5px);
|
||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
.check-button:hover {
|
||||
background: rgba(255, 255, 255, 0.3);
|
||||
transform: translateY(-2px);
|
||||
box-shadow: 0 6px 8px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.check-button:active {
|
||||
transform: translateY(0);
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
/* gradient animation */
|
||||
@keyframes gradient {
|
||||
0% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
50% {
|
||||
background-position: 100% 50%;
|
||||
}
|
||||
100% {
|
||||
background-position: 0% 50%;
|
||||
}
|
||||
}
|
||||
|
||||
/* fade in animation for the title */
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* vibe change animation */
|
||||
@keyframes vibeChange {
|
||||
0% {
|
||||
transform: scale(1);
|
||||
}
|
||||
50% {
|
||||
transform: scale(1.1);
|
||||
}
|
||||
100% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.vibe.changed {
|
||||
animation: vibeChange 0.5s ease;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue