Madewithwebsim / brGwMJrX5MNjeg10N.html
allknowingroger's picture
Upload 55 files
ad1dcd6 verified
raw
history blame
7.61 kB
<html><head><base href="https://websim.ai/ethical-dilemma-navigator"><title>Ethical Dilemma Navigator</title>
<script src="https://cdn.tailwindcss.com"></script>
<style>
@keyframes thoughtBubble {
0% { transform: scale(0.95); opacity: 0.7; }
50% { transform: scale(1.05); opacity: 1; }
100% { transform: scale(0.95); opacity: 0.7; }
}
.thought-bubble {
animation: thoughtBubble 5s ease-in-out infinite;
}
</style>
</head>
<body class="bg-gradient-to-br from-blue-900 to-purple-900 text-white min-h-screen font-sans">
<header class="py-6 relative">
<div class="container mx-auto px-4">
<h1 class="text-4xl font-bold text-center text-blue-300">Ethical Dilemma Navigator</h1>
<p class="mt-2 text-center text-purple-200">Exploring Moral Complexities with Nuanced Perspectives</p>
</div>
</header>
<main class="container mx-auto px-4 py-8">
<div class="bg-white bg-opacity-10 backdrop-filter backdrop-blur-lg rounded-lg shadow-lg p-6 mb-8">
<h2 class="text-2xl font-semibold mb-4 text-blue-200">Describe Your Ethical Dilemma</h2>
<form id="dilemma-form" method="GET" action="https://websim.ai/ethical-dilemma-navigator" class="space-y-4">
<div>
<label for="dilemma-description" class="block text-sm font-medium text-purple-200">What's the ethical situation you're grappling with?</label>
<textarea id="dilemma-description" name="dilemma" rows="4" class="mt-1 block w-full px-3 py-2 bg-blue-800 border border-blue-600 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 text-white" placeholder="e.g., 'Is it ethical to use AI to replace human workers?', 'Should I report a colleague's minor misconduct?'"></textarea>
</div>
<div>
<button type="submit" class="w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-blue-900 bg-blue-400 hover:bg-blue-300 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
Explore Perspectives
</button>
</div>
</form>
</div>
<div id="result-container" class="bg-white bg-opacity-10 backdrop-filter backdrop-blur-lg rounded-lg shadow-lg p-6 hidden">
<h2 class="text-2xl font-semibold mb-4 text-blue-200">Ethical Perspectives</h2>
<div id="perspectives-result" class="space-y-4">
<!-- Perspectives will be inserted here -->
</div>
</div>
<div class="mt-8 bg-white bg-opacity-10 backdrop-filter backdrop-blur-lg rounded-lg shadow-lg p-6">
<h2 class="text-2xl font-semibold mb-4 text-blue-200">Ethical Frameworks</h2>
<ul class="list-disc list-inside space-y-2 text-purple-200">
<li><span class="font-semibold">Utilitarianism:</span> Focuses on maximizing overall happiness and well-being for the greatest number of people</li>
<li><span class="font-semibold">Deontology:</span> Emphasizes adherence to moral rules and duties, regardless of consequences</li>
<li><span class="font-semibold">Virtue Ethics:</span> Centers on cultivating moral character and virtues</li>
<li><span class="font-semibold">Care Ethics:</span> Prioritizes compassion, empathy, and responsibility in relationships</li>
<li><span class="font-semibold">Social Contract Theory:</span> Based on implicit agreements that form the basis of a just society</li>
</ul>
</div>
</main>
<div class="fixed bottom-4 right-4 w-32 h-32 thought-bubble">
<svg viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg" class="w-full h-full text-blue-300 opacity-50">
<path fill="currentColor" d="M44.7,-76.4C58.8,-69.2,71.8,-59.1,79.6,-45.8C87.4,-32.6,90,-16.3,89.1,-0.5C88.2,15.3,83.8,30.6,76.2,44.2C68.5,57.8,57.6,69.6,44.4,77.5C31.1,85.4,15.5,89.4,0.3,88.9C-15,88.4,-30,83.3,-43.3,75.4C-56.6,67.4,-68.2,56.6,-76.3,43.5C-84.4,30.4,-89,15.2,-89.1,-0.1C-89.2,-15.4,-84.8,-30.8,-76.7,-43.9C-68.6,-57,-56.8,-67.8,-43.3,-75.5C-29.8,-83.2,-14.9,-87.8,0.6,-88.8C16.1,-89.8,32.2,-87.3,44.7,-76.4Z" transform="translate(100 100)" />
</svg>
</div>
<script>
const dilemmaForm = document.getElementById('dilemma-form');
const resultContainer = document.getElementById('result-container');
const perspectivesResult = document.getElementById('perspectives-result');
dilemmaForm.addEventListener('submit', function(e) {
e.preventDefault();
const dilemmaDescription = document.getElementById('dilemma-description').value.trim();
if (!dilemmaDescription) {
alert('Please describe the ethical dilemma you want to explore.');
return;
}
generatePerspectives(dilemmaDescription);
});
function generatePerspectives(dilemmaDescription) {
// Show loading state
resultContainer.classList.remove('hidden');
perspectivesResult.innerHTML = '<p class="text-purple-200">Analyzing the ethical complexities...</p>';
// Simulate API call with setTimeout
setTimeout(() => {
const perspectivesData = createPerspectives(dilemmaDescription);
displayPerspectivesResult(perspectivesData);
}, 2000);
}
function createPerspectives(dilemmaDescription) {
// This is a simplified perspective generation. In a real application, this would be much more sophisticated and nuanced.
const perspectives = [
{
framework: "Utilitarianism",
perspective: "Consider the overall impact on happiness and well-being for all parties involved. What action would lead to the greatest good for the greatest number of people?"
},
{
framework: "Deontology",
perspective: "Examine the inherent rightness or wrongness of the action itself, regardless of its consequences. What moral rules or duties are at play here?"
},
{
framework: "Virtue Ethics",
perspective: "Reflect on what a person of good character would do in this situation. What virtues (e.g., honesty, compassion, courage) are relevant to this dilemma?"
},
{
framework: "Care Ethics",
perspective: "Consider the relationships and responsibilities involved. How can we approach this situation with empathy and compassion for all affected parties?"
},
{
framework: "Social Contract Theory",
perspective: "Think about what principles we would agree to in an ideal, fair society. How does this dilemma relate to our social agreements and expectations?"
}
];
return {
dilemma: dilemmaDescription,
perspectives: perspectives
};
}
function displayPerspectivesResult(perspectivesData) {
let perspectivesHTML = `
<p class="text-lg font-semibold text-blue-300 mb-4">Dilemma: "${perspectivesData.dilemma}"</p>
<div class="space-y-6">
`;
perspectivesData.perspectives.forEach(perspective => {
perspectivesHTML += `
<div class="bg-white bg-opacity-5 rounded-lg p-4">
<h3 class="text-lg font-semibold text-blue-300 mb-2">${perspective.framework} Perspective:</h3>
<p class="text-purple-200">${perspective.perspective}</p>
</div>
`;
});
perspectivesHTML += `
</div>
<p class="mt-6 text-sm text-purple-300">Remember, ethical dilemmas often don't have clear-cut answers. Consider these perspectives as tools for deeper reflection rather than definitive solutions.</p>
`;
perspectivesResult.innerHTML = perspectivesHTML;
}
</script>
</body></html>