the best notes app for me
at main 263 lines 4.5 kB view raw
1/* enɳoté - Dark Theme Styles */ 2/* Color Palette from spec */ 3:root { 4 --background: #171717; 5 --surface: #212121; 6 --surface-elevated: #2A2A2A; 7 --text-primary: #FAFAFA; 8 --text-secondary: #A3A3A3; 9 --accent: #FBBF23; 10 --accent-muted: #78590A; 11 --success: #4ADE80; 12 --border: #2E2E2E; 13} 14 15* { 16 margin: 0; 17 padding: 0; 18 box-sizing: border-box; 19} 20 21body { 22 font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', Roboto, sans-serif; 23 background-color: var(--background); 24 color: var(--text-primary); 25 min-height: 100vh; 26 line-height: 1.5; 27} 28 29.container { 30 max-width: 480px; 31 margin: 0 auto; 32 padding: 2rem 1.5rem; 33 min-height: 100vh; 34 display: flex; 35 flex-direction: column; 36} 37 38/* Header */ 39header { 40 text-align: center; 41 margin-bottom: 2.5rem; 42} 43 44header h1 { 45 font-size: 2rem; 46 font-weight: 600; 47 letter-spacing: -0.02em; 48 margin-bottom: 0.5rem; 49} 50 51.tagline { 52 color: var(--text-secondary); 53 font-size: 0.9rem; 54} 55 56/* Main Content */ 57main { 58 flex: 1; 59} 60 61.section { 62 display: flex; 63 flex-direction: column; 64 gap: 1rem; 65} 66 67.hidden { 68 display: none !important; 69} 70 71/* Input Section */ 72label { 73 font-size: 0.875rem; 74 color: var(--text-secondary); 75 font-weight: 500; 76} 77 78textarea { 79 width: 100%; 80 padding: 1rem; 81 background-color: var(--surface); 82 border: 1px solid var(--border); 83 border-radius: 12px; 84 color: var(--text-primary); 85 font-family: inherit; 86 font-size: 1rem; 87 line-height: 1.6; 88 resize: vertical; 89 min-height: 200px; 90 transition: border-color 0.2s ease; 91} 92 93textarea::placeholder { 94 color: var(--text-secondary); 95 opacity: 0.6; 96} 97 98textarea:focus { 99 outline: none; 100 border-color: var(--accent); 101} 102 103.note-count { 104 text-align: right; 105 color: var(--text-secondary); 106 font-size: 0.875rem; 107} 108 109.note-count span { 110 color: var(--accent); 111 font-weight: 600; 112} 113 114/* Buttons */ 115button { 116 padding: 1rem 1.5rem; 117 border-radius: 12px; 118 font-size: 1rem; 119 font-weight: 600; 120 cursor: pointer; 121 transition: all 0.2s ease; 122 border: none; 123} 124 125.primary-button { 126 background-color: var(--accent); 127 color: var(--background); 128} 129 130.primary-button:hover { 131 background-color: #E5AC1F; 132 transform: translateY(-1px); 133} 134 135.primary-button:active { 136 transform: translateY(0); 137} 138 139.primary-button:disabled { 140 background-color: var(--accent-muted); 141 cursor: not-allowed; 142 transform: none; 143} 144 145.secondary-button { 146 background-color: var(--surface); 147 color: var(--text-primary); 148 border: 1px solid var(--border); 149} 150 151.secondary-button:hover { 152 background-color: var(--surface-elevated); 153 border-color: var(--text-secondary); 154} 155 156/* QR Section */ 157#qr-section { 158 align-items: center; 159 text-align: center; 160} 161 162.qr-container { 163 background-color: white; 164 padding: 1.5rem; 165 border-radius: 16px; 166 margin-bottom: 1.5rem; 167} 168 169#qr-canvas { 170 display: block; 171 width: 200px; 172 height: 200px; 173} 174 175/* Timer */ 176.timer-container { 177 width: 100%; 178 margin-bottom: 1rem; 179} 180 181.timer-bar { 182 height: 4px; 183 background-color: var(--surface); 184 border-radius: 2px; 185 overflow: hidden; 186 margin-bottom: 0.5rem; 187} 188 189.timer-progress { 190 height: 100%; 191 background-color: var(--accent); 192 width: 100%; 193 transition: width 1s linear; 194} 195 196.timer-progress.warning { 197 background-color: #F97316; 198} 199 200.timer-progress.critical { 201 background-color: #EF4444; 202} 203 204.timer-text { 205 color: var(--text-secondary); 206 font-size: 0.875rem; 207} 208 209.timer-text span { 210 color: var(--text-primary); 211 font-weight: 500; 212 font-variant-numeric: tabular-nums; 213} 214 215.instruction { 216 color: var(--text-secondary); 217 font-size: 0.9rem; 218 margin-bottom: 1.5rem; 219} 220 221/* Footer */ 222footer { 223 margin-top: 2rem; 224 text-align: center; 225 padding-top: 1.5rem; 226 border-top: 1px solid var(--border); 227} 228 229footer p { 230 color: var(--text-secondary); 231 font-size: 0.8rem; 232} 233 234/* Responsive */ 235@media (max-width: 480px) { 236 .container { 237 padding: 1.5rem 1rem; 238 } 239 240 header h1 { 241 font-size: 1.75rem; 242 } 243 244 textarea { 245 min-height: 180px; 246 } 247} 248 249/* Animation for QR appearance */ 250@keyframes fadeIn { 251 from { 252 opacity: 0; 253 transform: scale(0.95); 254 } 255 to { 256 opacity: 1; 257 transform: scale(1); 258 } 259} 260 261#qr-section:not(.hidden) { 262 animation: fadeIn 0.3s ease-out; 263}