You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

index.html 3.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>Canvas App</title>
  7. <style>
  8. body {
  9. margin: 0;
  10. height: 100vh;
  11. background: #e0e0e0;
  12. font-family: Arial, sans-serif;
  13. overflow: hidden;
  14. position: relative;
  15. }
  16. .canvas-container {
  17. height: 100vh;
  18. display: flex;
  19. justify-content: center;
  20. align-items: center;
  21. padding: 20px;
  22. box-sizing: border-box;
  23. }
  24. canvas {
  25. background: #ffffff;
  26. box-shadow: 0 6px 25px rgba(0, 0, 0, 0.15);
  27. border-radius: 8px;
  28. max-width: 100%;
  29. max-height: 100%;
  30. }
  31. /* Burger Menu Button */
  32. .menu-button {
  33. position: absolute;
  34. top: 20px;
  35. right: 20px;
  36. width: 50px;
  37. height: 50px;
  38. background: white;
  39. border: none;
  40. border-radius: 50%;
  41. box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  42. cursor: pointer;
  43. z-index: 100;
  44. display: flex;
  45. align-items: center;
  46. justify-content: center;
  47. font-size: 28px;
  48. color: #333;
  49. }
  50. /* Drawer */
  51. .drawer {
  52. position: absolute;
  53. top: 0;
  54. right: -500px;
  55. /* Fully hidden when closed */
  56. width: 300px;
  57. height: 100vh;
  58. background: white;
  59. box-shadow: -6px 0 25px rgba(0, 0, 0, 0.18);
  60. transition: right 0.35s cubic-bezier(0.32, 0.72, 0, 1);
  61. padding: 20px 24px;
  62. z-index: 200;
  63. overflow-y: auto;
  64. }
  65. .drawer.open {
  66. right: 0;
  67. }
  68. .drawer-header {
  69. display: flex;
  70. justify-content: space-between;
  71. align-items: center;
  72. margin-bottom: 24px;
  73. }
  74. .drawer h2 {
  75. margin: 0;
  76. color: #222;
  77. }
  78. .close-button {
  79. background: none;
  80. border: none;
  81. font-size: 28px;
  82. color: #666;
  83. cursor: pointer;
  84. width: 40px;
  85. height: 40px;
  86. display: flex;
  87. align-items: center;
  88. justify-content: center;
  89. border-radius: 50%;
  90. }
  91. .close-button:hover {
  92. background: #f0f0f0;
  93. color: #333;
  94. }
  95. .control {
  96. margin-bottom: 28px;
  97. display: flex;
  98. flex-direction: column;
  99. gap: 8px;
  100. }
  101. label {
  102. font-weight: 600;
  103. color: #333;
  104. }
  105. input[type="color"] {
  106. width: 80px;
  107. height: 60px;
  108. padding: 4px;
  109. border: 2px solid #ddd;
  110. border-radius: 8px;
  111. cursor: pointer;
  112. }
  113. input[type="range"] {
  114. width: 100%;
  115. accent-color: #0066ff;
  116. }
  117. .value {
  118. font-family: monospace;
  119. background: #f5f5f5;
  120. padding: 6px 12px;
  121. border-radius: 6px;
  122. align-self: flex-start;
  123. font-weight: bold;
  124. }
  125. </style>
  126. </head>
  127. <body>
  128. <!-- Canvas Area -->
  129. <div class="canvas-container">
  130. <canvas id="canvas" width="450" height="450"></canvas>
  131. </div>
  132. <!-- Burger Menu Button -->
  133. <button class="menu-button" id="menuButton">☰</button>
  134. <!-- Sliding Drawer -->
  135. <div class="drawer" id="drawer">
  136. <div class="drawer-header">
  137. <h2>Brush Settings</h2>
  138. <button class="close-button" id="closeButton">×</button>
  139. </div>
  140. <!-- Color Picker -->
  141. <div class="control">
  142. <label for="colorPicker">Color</label>
  143. <input type="color" id="colorPicker" value="#eaafff">
  144. </div>
  145. <!-- density -->
  146. <div class="control">
  147. <label for="densitySlider">Smoothness</label>
  148. <input type="range" id="densitySlider" min="1" max="50" value="35">
  149. <span id="densityValue" class="value">35</span>
  150. </div>
  151. <!-- width -->
  152. <div class="control">
  153. <label for="widthSlider">Width</label>
  154. <input type="range" id="widthSlider" min="1" max="50" value="35">
  155. <span id="widthValue" class="value">35</span>
  156. </div>
  157. </div>
  158. <script type="module" src="main.js"></script>
  159. </body>
  160. </html>