index.html 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <link rel="icon" type="image/svg+xml" href="/vite.svg" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>GreenPage AI Suite</title>
  8. <script src="https://cdn.tailwindcss.com"></script>
  9. <script>
  10. tailwind.config = {
  11. darkMode: 'class', // Enable class-based dark mode
  12. theme: {
  13. extend: {
  14. colors: {
  15. 'brand-primary': '#10b981',
  16. 'brand-secondary': '#059669',
  17. 'gray-900': '#111827',
  18. 'gray-800': '#1f2937',
  19. 'gray-700': '#374151',
  20. 'gray-600': '#4b5563',
  21. 'gray-500': '#6b7280',
  22. 'gray-400': '#9ca3af',
  23. 'gray-300': '#d1d5db',
  24. 'gray-200': '#e5e7eb',
  25. 'gray-100': '#f3f4f6',
  26. 'white': '#ffffff',
  27. },
  28. keyframes: {
  29. breathing: {
  30. '0%, 100%': { transform: 'scale(1)', boxShadow: '0 0 0 0 rgba(16, 185, 129, 0.7)' },
  31. '50%': { transform: 'scale(1.1)', boxShadow: '0 0 10px 10px rgba(16, 185, 129, 0)' },
  32. }
  33. },
  34. animation: {
  35. breathing: 'breathing 2.5s ease-in-out infinite',
  36. }
  37. }
  38. }
  39. }
  40. </script>
  41. <style>
  42. select {
  43. -webkit-appearance: none;
  44. -moz-appearance: none;
  45. appearance: none;
  46. background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  47. background-position: right 0.5rem center;
  48. background-repeat: no-repeat;
  49. background-size: 1.5em 1.5em;
  50. padding-right: 2.5rem;
  51. }
  52. html.dark select {
  53. background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%239ca3af' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  54. }
  55. </style>
  56. <script type="importmap">
  57. {
  58. "imports": {
  59. "react": "https://aistudiocdn.com/react@^19.1.1",
  60. "react-dom/": "https://aistudiocdn.com/react-dom@^19.1.1/",
  61. "react/": "https://aistudiocdn.com/react@^19.1.1/",
  62. "recharts": "https://aistudiocdn.com/recharts@^3.1.2",
  63. "date-fns": "https://aistudiocdn.com/date-fns@^4.1.0",
  64. "date-fns/": "https://aistudiocdn.com/date-fns@^4.1.0/"
  65. }
  66. }
  67. </script>
  68. <link rel="stylesheet" href="/index.css">
  69. </head>
  70. <body class="bg-gray-100 dark:bg-gray-900 text-gray-900 dark:text-gray-100">
  71. <div id="root"></div>
  72. <script type="module" src="/index.tsx"></script>
  73. </body>
  74. </html>