Generate code from description, create project structure, and take a photo of the result
{
"title": "React Calculator",
"language": "html",
"code": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>React Calculator</title>\n <!-- React CDN -->\n <script crossorigin src=\"https://unpkg.com/react@18/umd/react.development.js\"></script>\n <script crossorigin src=\"https://unpkg.com/react-dom@18/umd/react-dom.development.js\"></script>\n <!-- Babel CDN for JSX transformation -->\n <script src=\"https://unpkg.com/@babel/standalone/babel.min.js\"></script>\n <style>\n body {\n font-family: 'Arial', sans-serif;\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 100vh;\n background-color: #f0f2f5;\n margin: 0;\n }\n .calculator {\n border: 1px solid #ccc;\n border-radius: 10px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n width: 300px;\n background-color: #fff;\n padding: 20px;\n }\n .calculator-display {\n background-color: #222;\n color: #fff;\n font-size: 2.5em;\n padding: 15px;\n text-align: right;\n border-radius: 5px;\n margin-bottom: 15px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n }\n .calculator-buttons {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 10px;\n }\n .calculator-button {\n background-color: #e0e0e0;\n border: none;\n border-radius: 5px;\n padding: 20px;\n font-size: 1.5em;\n cursor: pointer;\n transition: background-color 0.2s ease;\n }\n .calculator-button:hover {\n background-color: #d0d0d0;\n }\n .calculator-button.operator {\n background-color: #f7923b;\n color: #fff;\n }\n .calculator-button.operator:hover {\n background-color: #e6812a;\n }\n .calculator-button.clear {\n background-color: #dc3545;\n color: #fff;\n }\n .calculator-button.clear:hover {\n background-color: #c82333;\n }\n .calculator-button.equals {\n background-color: #28a745;\n color: #fff;\n grid-column: span 2;\n }\n .calculator-button.equals:hover {\n background-color: #218838;\n }\n </style>\n</head>\n<body>\n <div id=\"root\"></div>\n\n <script type=\"text/babel\">\n const { useState } = React;\n\n function Calculator() {\n const [displayValue, setDisplayValue] = useState('0');\n const [currentValue, setCurrentValue] = useState(null);\n
{
"title": "React Calculator",
"language": "html",
"code": "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>React Calculator</title>\n <!-- React CDN -->\n <script crossorigin src=\"https://unpkg.com/react@18/umd/react.development.js\"></script>\n <script crossorigin src=\"https://unpkg.com/react-dom@18/umd/react-dom.development.js\"></script>\n <!-- Babel CDN for JSX transformation in the browser -->\n <script src=\"https://unpkg.com/@babel/standalone/babel.min.js\"></script>\n <style>\n body {\n font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 100vh;\n background-color: #e0e0e0;\n margin: 0;\n }\n .calculator {\n border: 1px solid #b0b0b0;\n border-radius: 12px;\n box-shadow: 0 8px 16px rgba(0,0,0,0.2);\n width: 320px;\n background-color: #f5f5f5;\n padding: 20px;\n }\n .calculator-display {\n background-color: #222;\n color: #fff;\n font-size: 2.8em;\n padding: 15px 20px;\n text-align: right;\n border-radius: 8px;\n margin-bottom: 20px;\n min-height: 60px;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n overflow-x: auto;\n white-space: nowrap;\n }\n .calculator-buttons {\n display: grid;\n grid-template-columns: repeat(4, 1fr);\n gap: 12px;\n }\n .calculator-buttons button {\n width: 100%;\n padding: 20px;\n font-size: 1.6em;\n border: none;\n border-radius: 8px;\n cursor: pointer;\n background-color: #e8e8e8;\n transition: background-color 0.2s, transform 0.1s;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n }\n .calculator-buttons button:hover {\n background-color: #dcdcdc;\n transform: translateY(-1px);\n }\n .calculator-buttons button:active {\n transform: translateY(0);\n box-shadow: 0 1px 2px rgba(0,0,0,0.1);\n }\n .calculator-buttons button.operator {\n background-color: #ff9500;\n color: #fff;\n }\n .calculator-buttons button.operator:hover {\n background-color: #e08000;\n }\n .calculator-buttons button.equals {\n background-color: #007aff;\n color: #fff;\n }\n .calculator-buttons button.equals:hover {\n background-color: #006ee6;\n }\n .calculator-buttons button.clear {\n background-color: #