<html><head><base href="https://HowAreYouFeeling.today/"><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>How Are You Feeling Today?</title><style>
body {
font-family: 'Roboto', Arial, sans-serif;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
min-height: 100vh;
margin: 0;
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
padding: 20px;
color: #333;
}
h1 {
color: #2c3e50;
margin-bottom: 30px;
text-align: center;
font-size: 2.5em;
text-shadow: 2px 2px 4px rgba(0,0,0,0.1);
}
#smiley-container {
width: 300px;
height: 400px;
margin-bottom: 30px;
position: relative;
background: white;
border-radius: 20px;
box-shadow: 0 10px 20px rgba(0,0,0,0.1);
padding: 20px;
}
#smiley {
width: 100%;
height: 75%;
}
#body {
width: 100%;
height: 25%;
position: absolute;
bottom: 0;
}
.controls-container {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 25px;
max-width: 1200px;
background: rgba(255,255,255,0.8);
padding: 30px;
border-radius: 20px;
box-shadow: 0 10px 20px rgba(0,0,0,0.1);
}
.slider-container {
display: flex;
flex-direction: column;
align-items: center;
margin-bottom: 25px;
width: 200px;
background: white;
padding: 15px;
border-radius: 10px;
box-shadow: 0 5px 10px rgba(0,0,0,0.05);
transition: transform 0.3s ease;
}
.slider-container:hover {
transform: translateY(-5px);
}
.slider {
width: 100%;
margin-bottom: 10px;
-webkit-appearance: none;
appearance: none;
height: 5px;
background: #ddd;
outline: none;
border-radius: 5px;
}
.slider::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
width: 20px;
height: 20px;
background: #3498db;
cursor: pointer;
border-radius: 50%;
transition: background 0.3s ease;
}
.slider::-webkit-slider-thumb:hover {
background: #2980b9;
}
.mood-label {
display: flex;
justify-content: space-between;
width: 100%;
margin-top: 5px;
color: #666;
font-size: 0.9em;
}
.slider-label {
font-weight: bold;
margin-bottom: 10px;
color: #2c3e50;
font-size: 1.1em;
}
.color-picker {
margin-top: 10px;
-webkit-appearance: none;
border: none;
width: 50px;
height: 50px;
border-radius: 50%;
cursor: pointer;
}
.color-picker::-webkit-color-swatch-wrapper {
padding: 0;
}
.color-picker::-webkit-color-swatch {
border: none;
border-radius: 50%;
}
.checkbox-container {
display: flex;
align-items: center;
margin-top: 15px;
}
.checkbox-container label {
margin-left: 10px;
cursor: pointer;
}
.accessory-container {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-top: 15px;
}
.accessory-btn {
padding: 8px 15px;
background-color: #3498db;
color: white;
border: none;
border-radius: 5px;
cursor: pointer;
transition: background-color 0.3s ease;
}
.accessory-btn:hover {
background-color: #2980b9;
}
#crypto-panic {
font-size: 24px;
font-weight: bold;
margin-top: 20px;
text-align: center;
color: #2c3e50;
background: white;
padding: 15px;
border-radius: 10px;
box-shadow: 0 5px 10px rgba(0,0,0,0.05);
}
@media (max-width: 768px) {
.controls-container {
padding: 20px;
}
.slider-container {
width: 100%;
}
}
</style></head><body>
<h1>How are you feeling today?</h1>
<div id="smiley-container">
<svg id="smiley" viewBox="0 0 100 100">
<defs>
<radialGradient id="faceGradient" cx="50%" cy="50%" r="50%" fx="50%" fy="50%">
<stop offset="0%" style="stop-color:#FFEB3B;stop-opacity:1" />
<stop offset="100%" style="stop-color:#FFC107;stop-opacity:1" />
</radialGradient>
</defs>
<circle id="face" cx="50" cy="50" r="45" fill="url(#faceGradient)" />
<g id="leftEyebrowGroup" transform="rotate(0, 35, 30)">
<path id="leftEyebrow" d="M25 30 L45 30" stroke="#333" stroke-width="3" fill="none" />
</g>
<g id="rightEyebrowGroup" transform="rotate(0, 65, 30)">
<path id="rightEyebrow" d="M55 30 L75 30" stroke="#333" stroke-width="3" fill="none" />
</g>
<circle id="leftEye" cx="35" cy="40" r="5" fill="#333" />
<circle id="rightEye" cx="65" cy="40" r="5" fill="#333" />
<path id="mouth" d="M30 65 Q50 65 70 65" stroke="#333" stroke-width="3" fill="none" />
<path id="nose" d="M50 45 Q52 55 48 55" stroke="#333" stroke-width="2" fill="none" />
<ellipse id="blush-left" cx="30" cy="55" rx="10" ry="5" fill="#FF9999" opacity="0" />
<ellipse id="blush-right" cx="70" cy="55" rx="10" ry="5" fill="#FF9999" opacity="0" />
<path id="hat" d="M20 20 Q50 0 80 20" stroke="#333" stroke-width="3" fill="none" display="none" />
<rect id="glasses" x="25" y="35" width="50" height="15" rx="5" ry="5" fill="none" stroke="#333" stroke-width="2" display="none" />
<text id="crypto-symbol" x="50" y="85" font-family="Arial" font-size="12" text-anchor="middle" fill="#333" display="none">₿</text>
</svg>
<svg id="body" viewBox="0 0 100 100">
<rect id="shirt" x="20" y="0" width="60" height="100" fill="#4CAF50" />
</svg>
</div>
<div id="crypto-panic"></div>
<div class="controls-container">
<div class="slider-container">
<div class="slider-label">Mouth</div>
<input type="range" id="mood-slider" class="slider" min="0" max="100" value="50">
<div class="mood-label">
<span>Happy</span>
<span>Neutral</span>
<span>Sad</span>
</div>
</div>
<div class="slider-container">
<div class="slider-label">Eyebrows</div>
<input type="range" id="eyebrow-slider" class="slider" min="0" max="100" value="50">
<div class="mood-label">
<span>Concave</span>
<span>Neutral</span>
<span>Convex</span>
</div>
</div>
<div class="slider-container">
<div class="slider-label">Eye Size</div>
<input type="range" id="eye-size-slider" class="slider" min="1" max="10" value="5">
<div class="mood-label">
<span>Small</span>
<span>Medium</span>
<span>Large</span>
</div>
</div>
<div class="slider-container">
<div class="slider-label">Face Color</div>
<input type="color" id="face-color-picker" class="color-picker" value="#FFEB3B">
</div>
<div class="slider-container">
<div class="slider-label">Eye Color</div>
<input type="color" id="eye-color-picker" class="color-picker" value="#333333">
</div>
<div class="slider-container">
<div class="slider-label">Eyebrow Thickness</div>
<input type="range" id="eyebrow-thickness-slider" class="slider" min="1" max="5" value="3">
<div class="mood-label">
<span>Thin</span>
<span>Medium</span>
<span>Thick</span>
</div>
</div>
<div class="slider-container">
<div class="slider-label">Nose Size</div>
<input type="range" id="nose-size-slider" class="slider" min="0.5" max="2" step="0.1" value="1">
<div class="mood-label">
<span>Small</span>
<span>Medium</span>
<span>Large</span>
</div>
</div>
<div class="slider-container">
<div class="slider-label">Face Roundness</div>
<input type="range" id="face-roundness-slider" class="slider" min="30" max="50" value="45">
<div class="mood-label">
<span>Oval</span>
<span>Round</span>
<span>Very Round</span>
</div>
</div>
<div class="slider-container">
<div class="slider-label">Blush Intensity</div>
<input type="range" id="blush-intensity-slider" class="slider" min="0" max="1" step="0.1" value="0">
<div class="mood-label">
<span>None</span>
<span>Mild</span>
<span>Strong</span>
</div>
</div>
<div class="slider-container">
<div class="slider-label">Eye Spacing</div>
<input type="range" id="eye-spacing-slider" class="slider" min="25" max="45" value="35">
<div class="mood-label">
<span>Close</span>
<span>Normal</span>
<span>Wide</span>
</div>
</div>
<div class="slider-container">
<div class="slider-label">Eyebrow Height</div>
<input type="range" id="eyebrow-height-slider" class="slider" min="20" max="40" value="30">
<div class="mood-label">
<span>Low</span>
<span>Normal</span>
<span>High</span>
</div>
</div>
<div class="slider-container">
<div class="slider-label">Mouth Width</div>
<input type="range" id="mouth-width-slider" class="slider" min="30" max="70" value="50">
<div class="mood-label">
<span>Narrow</span>
<span>Normal</span>
<span>Wide</span>
</div>
</div>
<div class="slider-container">
<div class="slider-label">Nose Color</div>
<input type="color" id="nose-color-picker" class="color-picker" value="#333333">
</div>
<div class="slider-container">
<div class="slider-label">Blush Color</div>
<input type="color" id="blush-color-picker" class="color-picker" value="#FF9999">
</div>
<div class="slider-container">
<div class="slider-label">Body Color</div>
<input type="color" id="body-color-picker" class="color-picker" value="#4CAF50">
</div>
<div class="slider-container">
<div class="checkbox-container">
<input type="checkbox" id="gradient-toggle">
<label for="gradient-toggle">Use Gradient</label>
</div>
</div>
<div class="slider-container">
<div class="slider-label">Accessories</div>
<div class="accessory-container">
<button id="hat-toggle" class="accessory-btn">Hat</button>
<button id="glasses-toggle" class="accessory-btn">Glasses</button>
</div>
</div>
<div class="slider-container">
<div class="slider-label">Crypto Panic Index</div>
<input type="range" id="crypto-panic-slider" class="slider" min="0" max="100" value="50">
<div class="mood-label">
<span>Fear</span>
<span>Neutral</span>
<span>Greed</span>
</div>
</div>
</div>
<script>
const face = document.getElementById('face');
const mouthPath = document.getElementById('mouth');
const leftEyebrowGroup = document.getElementById('leftEyebrowGroup');
const rightEyebrowGroup = document.getElementById('rightEyebrowGroup');
const leftEyebrow = document.getElementById('leftEyebrow');
const rightEyebrow = document.getElementById('rightEyebrow');
const leftEye = document.getElementById('leftEye');
const rightEye = document.getElementById('rightEye');
const nose = document.getElementById('nose');
const blushLeft = document.getElementById('blush-left');
const blushRight = document.getElementById('blush-right');
const faceGradient = document.getElementById('faceGradient');
const hat = document.getElementById('hat');
const glasses = document.getElementById('glasses');
const shirt = document.getElementById('shirt');
const cryptoSymbol = document.getElementById('crypto-symbol');
const cryptoPanicDisplay = document.getElementById('crypto-panic');
const moodSlider = document.getElementById('mood-slider');
const eyebrowSlider = document.getElementById('eyebrow-slider');
const eyeSizeSlider = document.getElementById('eye-size-slider');
const faceColorPicker = document.getElementById('face-color-picker');
const eyeColorPicker = document.getElementById('eye-color-picker');
const eyebrowThicknessSlider = document.getElementById('eyebrow-thickness-slider');
const noseSizeSlider = document.getElementById('nose-size-slider');
const faceRoundnessSlider = document.getElementById('face-roundness-slider');
const blushIntensitySlider = document.getElementById('blush-intensity-slider');
const eyeSpacingSlider = document.getElementById('eye-spacing-slider');
const eyebrowHeightSlider = document.getElementById('eyebrow-height-slider');
const mouthWidthSlider = document.getElementById('mouth-width-slider');
const noseColorPicker = document.getElementById('nose-color-picker');
const blushColorPicker = document.getElementById('blush-color-picker');
const bodyColorPicker = document.getElementById('body-color-picker');
const gradientToggle = document.getElementById('gradient-toggle');
const hatToggle = document.getElementById('hat-toggle');
const glassesToggle = document.getElementById('glasses-toggle');
const cryptoPanicSlider = document.getElementById('crypto-panic-slider');
function updateMouth(value) {
const normalizedValue = (value - 50) / 50;
const mouthCurve = normalizedValue * 15;
const width = parseInt(mouthWidthSlider.value);
mouthPath.setAttribute('d', `M${50 - width/2} 65 Q50 ${65 - mouthCurve} ${50 + width/2} 65`);
}
function updateEyebrows(value) {
const normalizedValue = (value - 50) / 50;
const eyebrowRotation = normalizedValue * 20;
leftEyebrowGroup.setAttribute('transform', `rotate(${-eyebrowRotation}, 35, ${eyebrowHeightSlider.value})`);
rightEyebrowGroup.setAttribute('transform', `rotate(${eyebrowRotation}, 65, ${eyebrowHeightSlider.value})`);
}
function updateEyeSize(value) {
leftEye.setAttribute('r', value);
rightEye.setAttribute('r', value);
}
function updateFaceColor(value) {
face.setAttribute('fill', gradientToggle.checked ? 'url(#faceGradient)' : value);
faceGradient.querySelector('stop:first-child').style.stopColor = value;
faceGradient.querySelector('stop:last-child').style.stopColor = adjustColor(value, -30);
}
function updateEyeColor(value) {
leftEye.setAttribute('fill', value);
rightEye.setAttribute('fill', value);
}
function updateEyebrowThickness(value) {
leftEyebrow.setAttribute('stroke-width', value);
rightEyebrow.setAttribute('stroke-width', value);
}
function updateNoseSize(value) {
const noseWidth = 4 * value;
const noseHeight = 10 * value;
nose.setAttribute('d', `M${50 - noseWidth/2} 45 Q50 ${45 + noseHeight} ${50 + noseWidth/2} 45`);
nose.setAttribute('stroke-width', value);
}
function updateFaceRoundness(value) {
face.setAttribute('r', value);
}
function updateBlushIntensity(value) {
blushLeft.setAttribute('opacity', value);
blushRight.setAttribute('opacity', value);
}
function updateEyeSpacing(value) {
leftEye.setAttribute('cx', value);
rightEye.setAttribute('cx', 100 - value);
leftEyebrowGroup.setAttribute('transform', `translate(${value - 35}, 0) ${leftEyebrowGroup.getAttribute('transform')}`);
rightEyebrowGroup.setAttribute('transform', `translate(${100 - value - 65}, 0) ${rightEyebrowGroup.getAttribute('transform')}`);
}
function updateEyebrowHeight(value) {
leftEyebrow.setAttribute('d', `M25 ${value} L45 ${value}`);
rightEyebrow.setAttribute('d', `M55 ${value} L75 ${value}`);
updateEyebrows(eyebrowSlider.value);
}
function updateMouthWidth(value) {
updateMouth(moodSlider.value);
}
function updateNoseColor(value) {
nose.setAttribute('stroke', value);
}
function updateBlushColor(value) {
blushLeft.setAttribute('fill', value);
blushRight.setAttribute('fill', value);
}
function updateBodyColor(value) {
shirt.setAttribute('fill', value);
}
function adjustColor(color, amount) {
return '#' + color.replace(/^#/, '').replace(/../g, color => ('0' + Math.min(255, Math.max(0, parseInt(color, 16) + amount)).toString(16)).substr(-2));
}
function toggleAccessory(accessory) {
accessory.style.display = accessory.style.display === 'none' ? 'block' : 'none';
}
function updateCryptoPanic(value) {
let panicText;
let symbolColor;
if (value < 20) {
panicText = "Extreme Fear";
symbolColor = "#FF0000";
} else if (value < 40) {
panicText = "Fear";
symbolColor = "#FFA500";
} else if (value < 60) {
panicText = "Neutral";
symbolColor = "#FFFF00";
} else if (value < 80) {
panicText = "Greed";
symbolColor = "#90EE90";
} else {
panicText = "Extreme Greed";
symbolColor = "#008000";
}
cryptoPanicDisplay.textContent = `Crypto Panic Index: ${panicText}`;
cryptoSymbol.setAttribute('fill', symbolColor);
cryptoSymbol.style.display = 'block';
}
moodSlider.addEventListener('input', (e) => updateMouth(e.target.value));
eyebrowSlider.addEventListener('input', (e) => updateEyebrows(e.target.value));
eyeSizeSlider.addEventListener('input', (e) => updateEyeSize(e.target.value));
faceColorPicker.addEventListener('input', (e) => updateFaceColor(e.target.value));
eyeColorPicker.addEventListener('input', (e) => updateEyeColor(e.target.value));
eyebrowThicknessSlider.addEventListener('input', (e) => updateEyebrowThickness(e.target.value));
noseSizeSlider.addEventListener('input', (e) => updateNoseSize(e.target.value));
faceRoundnessSlider.addEventListener('input', (e) => updateFaceRoundness(e.target.value));
blushIntensitySlider.addEventListener('input', (e) => updateBlushIntensity(e.target.value));
eyeSpacingSlider.addEventListener('input', (e) => updateEyeSpacing(e.target.value));
eyebrowHeightSlider.addEventListener('input', (e) => updateEyebrowHeight(e.target.value));
mouthWidthSlider.addEventListener('input', (e) => updateMouthWidth(e.target.value));
noseColorPicker.addEventListener('input', (e) => updateNoseColor(e.target.value));
blushColorPicker.addEventListener('input', (e) => updateBlushColor(e.target.value));
bodyColorPicker.addEventListener('input', (e) => updateBodyColor(e.target.value));
gradientToggle.addEventListener('change', () => updateFaceColor(faceColorPicker.value));
hatToggle.addEventListener('click', () => toggleAccessory(hat));
glassesToggle.addEventListener('click', () => toggleAccessory(glasses));
cryptoPanicSlider.addEventListener('input', (e) => updateCryptoPanic(e.target.value));
// Initialize all controls
updateMouth(50);
updateEyebrows(50);
updateEyeSize(5);
updateFaceColor('#FFEB3B');
updateEyeColor('#333333');
updateEyebrowThickness(3);
updateNoseSize(1);
updateFaceRoundness(45);
updateBlushIntensity(0);
updateEyeSpacing(35);
updateEyebrowHeight(30);
updateMouthWidth(50);
updateNoseColor('#333333');
updateBlushColor('#FF9999');
updateBodyColor('#4CAF50');
updateCryptoPanic(50);
</script>
</body></html>