Changes to daovote.scroll.pub

root
root
23 days ago
Initial commit
body.html
Changed around line 1
+
+
+
+
+
+
+
+
+
+
+
+

Decentralized Governance

+

Participate in transparent, secure DAO voting

+
+
+
+

Active Proposals

+
+
+
Active
+

Treasury Allocation

+

Proposal to allocate 500 tokens for development

+
+ Ends in: 2 days
+ Votes: 156
+
+
+
+
+
+
+
+
+

Cast Your Vote

+
+
+

Your Voting Power

+

0.00 Tokens

+
+
+
+
+
+
+
+
+
+
+
+
index.scroll
Changed around line 1
+ buildHtml
+ baseUrl https://daovote.scroll.pub
+ metaTags
+ description "Decentralized voting platform for DAO organizations"
+ keywords "DAO, voting, blockchain, decentralized, governance"
+ author "DAO Community"
+ editButton /edit.html
+ title DAO Voting Platform
+ style.css
+ body.html
+ script.js
prompt.json
Changed around line 1
+ {
+ "id": "msg_01SwkMcrUHfKCngytzqXfFKe",
+ "type": "message",
+ "role": "assistant",
+ "model": "claude-3-5-sonnet-20241022",
+ "content": [
+ {
+ "type": "text",
+ "text": "Here's a clean, professional DAO voting website:\n\n---domain---\ndaovote.scroll.pub\n\n---index.scroll---\nbuildHtml\nbaseUrl https://daovote.scroll.pub\nmetaTags\n description \"Decentralized voting platform for DAO organizations\"\n keywords \"DAO, voting, blockchain, decentralized, governance\"\n author \"DAO Community\"\neditButton /edit.html\ntitle DAO Voting Platform\nstyle.css\nbody.html\nscript.js\n\n---body.html---\n
\n \n
\n\n
\n
\n

Decentralized Governance

\n

Participate in transparent, secure DAO voting

\n
\n\n
\n

Active Proposals

\n
\n
\n
Active
\n

Treasury Allocation

\n

Proposal to allocate 500 tokens for development

\n
\n Ends in: 2 days\n Votes: 156\n
\n \n
\n \n
\n
\n\n
\n

Cast Your Vote

\n
\n
\n

Your Voting Power

\n

0.00 Tokens

\n
\n
\n \n \n \n
\n
\n
\n
\n\n\n\n---style.css---\n:root {\n --primary: #6366f1;\n --secondary: #4f46e5;\n --background: #f8fafc;\n --text: #1e293b;\n --card-bg: #ffffff;\n --accent: #818cf8;\n}\n\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: system-ui, -apple-system, sans-serif;\n background: var(--background);\n color: var(--text);\n line-height: 1.6;\n}\n\nheader {\n background: var(--card-bg);\n box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n position: fixed;\n width: 100%;\n top: 0;\n z-index: 100;\n}\n\nnav {\n max-width: 1200px;\n margin: 0 auto;\n padding: 1rem;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: 700;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n align-items: center;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n transition: color 0.3s ease;\n}\n\n.nav-links a:hover {\n color: var(--primary);\n}\n\n.connect-wallet {\n background: var(--primary);\n color: white;\n border: none;\n padding: 0.5rem 1rem;\n border-radius: 0.5rem;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.connect-wallet:hover {\n background: var(--secondary);\n}\n\nmain {\n margin-top: 4rem;\n padding: 2rem;\n}\n\n.hero {\n text-align: center;\n padding: 4rem 0;\n background: linear-gradient(135deg, var(--primary), var(--secondary));\n color: white;\n border-radius: 1rem;\n margin-bottom: 3rem;\n}\n\n.hero h1 {\n font-size: 3rem;\n margin-bottom: 1rem;\n}\n\n.proposals-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 2rem;\n margin-top: 2rem;\n}\n\n.proposal-card {\n background: var(--card-bg);\n padding: 1.5rem;\n border-radius: 1rem;\n box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n transition: transform 0.3s ease;\n}\n\n.proposal-card:hover {\n transform: translateY(-5px);\n}\n\n.proposal-status {\n display: inline-block;\n padding: 0.25rem 0.75rem;\n background: #10b981;\n color: white;\n border-radius: 1rem;\n font-size: 0.875rem;\n margin-bottom: 1rem;\n}\n\n.proposal-meta {\n display: flex;\n justify-content: space-between;\n margin: 1rem 0;\n color: #64748b;\n}\n\n.vote-button {\n width: 100%;\n padding: 0.75rem;\n background: var(--primary);\n color: white;\n border: none;\n border-radius: 0.5rem;\n cursor: pointer;\n transition: background-color 0.3s ease;\n}\n\n.vote-button:hover {\n background: var(--secondary);\n}\n\n.voting-module {\n background: var(--card-bg);\n padding: 2rem;\n border-radius: 1rem;\n margin-top: 3rem;\n}\n\n.voting-interface {\n display: grid;\n gap: 2rem;\n margin-top: 2rem;\n}\n\n.vote-options {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n gap: 1rem;\n}\n\n.vote-options button {\n padding: 1rem;\n border: none;\n border-radius: 0.5rem;\n cursor: pointer;\n transition: all 0.3s ease;\n}\n\n.vote-yes {\n background: #10b981;\n color: white;\n}\n\n.vote-no {\n background: #ef4444;\n color: white;\n}\n\n.vote-abstain {\n background: #6b7280;\n color: white;\n}\n\nfooter {\n background: var(--card-bg);\n padding: 2rem;\n margin-top: 4rem;\n}\n\n.footer-content {\n max-width: 1200px;\n margin: 0 auto;\n display: flex;\n justify-content: space-between;\n align-items: center;\n}\n\n@media (max-width: 768px) {\n .nav-links {\n display: none;\n }\n \n .hero h1 {\n font-size: 2rem;\n }\n \n .footer-content {\n flex-direction: column;\n gap: 1rem;\n }\n}\n\n---script.js---\ndocument.addEventListener('DOMContentLoaded', () => {\n const connectWalletBtn = document.querySelector('.connect-wallet');\n const voteButtons = document.querySelectorAll('.vote-button');\n const voteOptions = document.querySelectorAll('.vote-options button');\n\n // Wallet connection simulation\n connectWalletBtn.addEventListener('click', async () => {\n try {\n connectWalletBtn.textContent = 'Connecting...';\n await new Promise(resolve => setTimeout(resolve, 1000));\n connectWalletBtn.textContent = '0x1234...5678';\n updateVotingPower();\n } catch (error) {\n connectWalletBtn.textContent = 'Connect Wallet';\n alert('Could not connect wallet. Please try again.');\n }\n });\n\n // Update voting power display\n function updateVotingPower() {\n const votingPowerElement = document.querySelector('.voting-power p');\n votingPowerElement.textContent = '1000.00 Tokens';\n }\n\n // Vote button handlers\n voteButtons.forEach(button => {\n button.addEventListener('click', () => {\n if (connectWalletBtn.textContent === 'Connect Wallet') {\n alert('Please connect your wallet first');\n return;\n }\n \n const proposalCard = button.closest('.proposal-card');\n const votesSpan = proposalCard.querySelector('.proposal-meta span:last-child');\n \n button.textContent = 'Voting...';\n setTimeout(() => {\n button.textContent = 'Voted';\n button.disabled = true;\n const currentVotes = parseInt(votesSpan.textContent.split(': ')[1]);\n votesSpan.textContent = `Votes: ${currentVotes + 1}`;\n }, 1000);\n });\n });\n\n // Vote options animation\n voteOptions.forEach(button => {\n button.addEventListener('click', function() {\n if (connectWalletBtn.textContent === 'Connect Wallet') {\n alert('Please connect your wallet first');\n return;\n }\n\n voteOptions.forEach(btn => btn.style.transform = 'scale(1)');\n this.style.transform = 'scale(1.05)';\n \n setTimeout(() => {\n this.style.transform = 'scale(1)';\n }, 200);\n });\n });\n});\n\n---end---\n\nThis implementation creates a modern, responsive DAO voting platform with smooth animations and interactive elements. Key features include:\n\n1. Clean, minimalist design with a professional color scheme\n2. Responsive layout that works on all devices\n3. Interactive proposal cards with hover effects\n4. Voting interface with animated buttons\n5. Wallet connection simulation\n6. Smooth transitions and micro-interactions\n7. Accessible semantic HTML\n8. Mobile-first approach\n9. Modern CSS features including CSS Grid and Flexbox\n10. Interactive JavaScript functionality\n\nThe design follows a purple/indigo color scheme that's both professional and engaging, with careful attention to spacing, typography, and visual hierarchy."
+ }
+ ],
+ "stop_reason": "end_turn",
+ "stop_sequence": null,
+ "usage": {
+ "input_tokens": 286,
+ "cache_creation_input_tokens": 0,
+ "cache_read_input_tokens": 0,
+ "output_tokens": 2910
+ }
+ }
readme.scroll
Changed around line 1
+ # daovote.scroll.pub
+ Website generated by Claude from prompt: 我需一个DAO组织的事务型投票网站
script.js
Changed around line 1
+ document.addEventListener('DOMContentLoaded', () => {
+ const connectWalletBtn = document.querySelector('.connect-wallet');
+ const voteButtons = document.querySelectorAll('.vote-button');
+ const voteOptions = document.querySelectorAll('.vote-options button');
+
+ // Wallet connection simulation
+ connectWalletBtn.addEventListener('click', async () => {
+ try {
+ connectWalletBtn.textContent = 'Connecting...';
+ await new Promise(resolve => setTimeout(resolve, 1000));
+ connectWalletBtn.textContent = '0x1234...5678';
+ updateVotingPower();
+ } catch (error) {
+ connectWalletBtn.textContent = 'Connect Wallet';
+ alert('Could not connect wallet. Please try again.');
+ }
+ });
+
+ // Update voting power display
+ function updateVotingPower() {
+ const votingPowerElement = document.querySelector('.voting-power p');
+ votingPowerElement.textContent = '1000.00 Tokens';
+ }
+
+ // Vote button handlers
+ voteButtons.forEach(button => {
+ button.addEventListener('click', () => {
+ if (connectWalletBtn.textContent === 'Connect Wallet') {
+ alert('Please connect your wallet first');
+ return;
+ }
+
+ const proposalCard = button.closest('.proposal-card');
+ const votesSpan = proposalCard.querySelector('.proposal-meta span:last-child');
+
+ button.textContent = 'Voting...';
+ setTimeout(() => {
+ button.textContent = 'Voted';
+ button.disabled = true;
+ const currentVotes = parseInt(votesSpan.textContent.split(': ')[1]);
+ votesSpan.textContent = `Votes: ${currentVotes + 1}`;
+ }, 1000);
+ });
+ });
+
+ // Vote options animation
+ voteOptions.forEach(button => {
+ button.addEventListener('click', function() {
+ if (connectWalletBtn.textContent === 'Connect Wallet') {
+ alert('Please connect your wallet first');
+ return;
+ }
+
+ voteOptions.forEach(btn => btn.style.transform = 'scale(1)');
+ this.style.transform = 'scale(1.05)';
+
+ setTimeout(() => {
+ this.style.transform = 'scale(1)';
+ }, 200);
+ });
+ });
+ });
style.css
Changed around line 1
+ :root {
+ --primary: #6366f1;
+ --secondary: #4f46e5;
+ --background: #f8fafc;
+ --text: #1e293b;
+ --card-bg: #ffffff;
+ --accent: #818cf8;
+ }
+
+ * {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ }
+
+ body {
+ font-family: system-ui, -apple-system, sans-serif;
+ background: var(--background);
+ color: var(--text);
+ line-height: 1.6;
+ }
+
+ header {
+ background: var(--card-bg);
+ box-shadow: 0 2px 10px rgba(0,0,0,0.1);
+ position: fixed;
+ width: 100%;
+ top: 0;
+ z-index: 100;
+ }
+
+ nav {
+ max-width: 1200px;
+ margin: 0 auto;
+ padding: 1rem;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ }
+
+ .logo {
+ font-size: 1.5rem;
+ font-weight: 700;
+ color: var(--primary);
+ }
+
+ .nav-links {
+ display: flex;
+ gap: 2rem;
+ align-items: center;
+ }
+
+ .nav-links a {
+ text-decoration: none;
+ color: var(--text);
+ font-weight: 500;
+ transition: color 0.3s ease;
+ }
+
+ .nav-links a:hover {
+ color: var(--primary);
+ }
+
+ .connect-wallet {
+ background: var(--primary);
+ color: white;
+ border: none;
+ padding: 0.5rem 1rem;
+ border-radius: 0.5rem;
+ cursor: pointer;
+ transition: background-color 0.3s ease;
+ }
+
+ .connect-wallet:hover {
+ background: var(--secondary);
+ }
+
+ main {
+ margin-top: 4rem;
+ padding: 2rem;
+ }
+
+ .hero {
+ text-align: center;
+ padding: 4rem 0;
+ background: linear-gradient(135deg, var(--primary), var(--secondary));
+ color: white;
+ border-radius: 1rem;
+ margin-bottom: 3rem;
+ }
+
+ .hero h1 {
+ font-size: 3rem;
+ margin-bottom: 1rem;
+ }
+
+ .proposals-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
+ gap: 2rem;
+ margin-top: 2rem;
+ }
+
+ .proposal-card {
+ background: var(--card-bg);
+ padding: 1.5rem;
+ border-radius: 1rem;
+ box-shadow: 0 4px 6px rgba(0,0,0,0.1);
+ transition: transform 0.3s ease;
+ }
+
+ .proposal-card:hover {
+ transform: translateY(-5px);
+ }
+
+ .proposal-status {
+ display: inline-block;
+ padding: 0.25rem 0.75rem;
+ background: #10b981;
+ color: white;
+ border-radius: 1rem;
+ font-size: 0.875rem;
+ margin-bottom: 1rem;
+ }
+
+ .proposal-meta {
+ display: flex;
+ justify-content: space-between;
+ margin: 1rem 0;
+ color: #64748b;
+ }
+
+ .vote-button {
+ width: 100%;
+ padding: 0.75rem;
+ background: var(--primary);
+ color: white;
+ border: none;
+ border-radius: 0.5rem;
+ cursor: pointer;
+ transition: background-color 0.3s ease;
+ }
+
+ .vote-button:hover {
+ background: var(--secondary);
+ }
+
+ .voting-module {
+ background: var(--card-bg);
+ padding: 2rem;
+ border-radius: 1rem;
+ margin-top: 3rem;
+ }
+
+ .voting-interface {
+ display: grid;
+ gap: 2rem;
+ margin-top: 2rem;
+ }
+
+ .vote-options {
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 1rem;
+ }
+
+ .vote-options button {
+ padding: 1rem;
+ border: none;
+ border-radius: 0.5rem;
+ cursor: pointer;
+ transition: all 0.3s ease;
+ }
+
+ .vote-yes {
+ background: #10b981;
+ color: white;
+ }
+
+ .vote-no {
+ background: #ef4444;
+ color: white;
+ }
+
+ .vote-abstain {
+ background: #6b7280;
+ color: white;
+ }
+
+ footer {
+ background: var(--card-bg);
+ padding: 2rem;
+ margin-top: 4rem;
+ }
+
+ .footer-content {
+ max-width: 1200px;
+ margin: 0 auto;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ }
+
+ @media (max-width: 768px) {
+ .nav-links {
+ display: none;
+ }
+
+ .hero h1 {
+ font-size: 2rem;
+ }
+
+ .footer-content {
+ flex-direction: column;
+ gap: 1rem;
+ }
+ }