at main 321 lines 6.7 kB view raw
1/* Notebook settings page */ 2 3.notebook-settings { 4 display: grid; 5 grid-template-columns: 200px 1fr; 6 gap: 2rem; 7 max-width: 100rem; 8 margin: 0 auto; 9 padding: 1.5rem; 10 min-height: calc(100vh - 4rem); 11} 12 13@media (max-width: 768px) { 14 .notebook-settings { 15 grid-template-columns: 1fr; 16 gap: 1rem; 17 } 18} 19 20/* Sidebar navigation */ 21.notebook-settings-nav { 22 display: flex; 23 flex-direction: column; 24 gap: 0.25rem; 25 position: sticky; 26 top: 1rem; 27 align-self: start; 28} 29 30@media (max-width: 768px) { 31 .notebook-settings-nav { 32 flex-direction: row; 33 flex-wrap: wrap; 34 position: static; 35 border-bottom: 1px solid var(--color-border); 36 padding-bottom: 1rem; 37 } 38} 39 40.notebook-settings-nav button { 41 padding: 0.75rem 1rem; 42 text-align: left; 43 background: transparent; 44 border: none; 45 color: var(--color-muted); 46 font-size: 0.875rem; 47 cursor: pointer; 48 transition: color 0.15s, background 0.15s; 49} 50 51.notebook-settings-nav button:hover { 52 color: var(--color-text); 53 background: var(--color-surface); 54} 55 56.notebook-settings-nav button.active { 57 color: var(--color-text); 58 background: var(--color-surface); 59 font-weight: 600; 60} 61 62/* Content area */ 63.notebook-settings-content { 64 min-width: 0; 65} 66 67/* Section styling */ 68.notebook-settings-section { 69 display: flex; 70 flex-direction: column; 71 gap: 1.5rem; 72} 73 74.notebook-settings-section h2 { 75 margin: 0; 76 font-size: 1.5rem; 77 font-weight: 600; 78 color: var(--color-text); 79 padding-bottom: 0.75rem; 80 border-bottom: 1px solid var(--color-border); 81} 82 83.notebook-settings-description { 84 margin: 0; 85 color: var(--color-muted); 86 font-size: 0.875rem; 87} 88 89/* Form fields */ 90.notebook-settings-field { 91 display: flex; 92 flex-direction: column; 93 gap: 0.5rem; 94} 95 96.notebook-settings-field label { 97 font-size: 0.875rem; 98 font-weight: 500; 99 color: var(--color-text); 100} 101 102.notebook-settings-field input[type="text"], 103.notebook-settings-field select { 104 padding: 0.625rem 0.75rem; 105 border: 1px solid var(--color-border); 106 background: var(--color-base); 107 color: var(--color-text); 108 font-family: var(--font-ui); 109 font-size: 0.875rem; 110} 111 112.notebook-settings-field input:focus, 113.notebook-settings-field select:focus { 114 outline: none; 115 border-color: var(--color-primary); 116} 117 118.notebook-settings-hint { 119 font-size: 0.75rem; 120 color: var(--color-muted); 121} 122 123/* Toggle field */ 124.notebook-settings-toggle label { 125 display: flex; 126 align-items: center; 127 gap: 0.5rem; 128 cursor: pointer; 129} 130 131.notebook-settings-toggle input[type="checkbox"] { 132 width: 1rem; 133 height: 1rem; 134} 135 136/* Tags */ 137.notebook-settings-tags { 138 display: flex; 139 flex-wrap: wrap; 140 gap: 0.5rem; 141 padding: 0.5rem; 142 border: 1px solid var(--color-border); 143 background: var(--color-base); 144 min-height: 2.5rem; 145} 146 147.notebook-settings-tag { 148 display: inline-flex; 149 align-items: center; 150 gap: 0.25rem; 151 padding: 0.25rem 0.5rem; 152 background: var(--color-surface); 153 border: 1px solid var(--color-border); 154 font-size: 0.75rem; 155 color: var(--color-text); 156} 157 158.notebook-settings-tag-remove { 159 background: none; 160 border: none; 161 padding: 0; 162 margin-left: 0.25rem; 163 color: var(--color-muted); 164 cursor: pointer; 165 font-size: 1rem; 166 line-height: 1; 167} 168 169.notebook-settings-tag-remove:hover { 170 color: var(--color-error); 171} 172 173.notebook-settings-tags-input { 174 flex: 1; 175 min-width: 100px; 176 border: none !important; 177 background: transparent !important; 178 padding: 0.25rem !important; 179} 180 181.notebook-settings-tags-input:focus { 182 outline: none; 183} 184 185/* Actions */ 186.notebook-settings-actions { 187 display: flex; 188 justify-content: flex-start; 189 gap: 0.75rem; 190 padding-top: 1rem; 191 border-top: 1px solid var(--color-border); 192} 193 194/* Error display */ 195.notebook-settings-error { 196 padding: 0.75rem 1rem; 197 background: color-mix(in srgb, var(--color-error) 10%, transparent); 198 border: 1px solid var(--color-error); 199 color: var(--color-error); 200 font-size: 0.875rem; 201} 202 203/* Theme section - needs full width */ 204.notebook-settings-theme { 205 container-type: inline-size; 206} 207 208.notebook-settings-theme .theme-editor-page { 209 padding: 0; 210 max-width: none; 211} 212 213/* On smaller screens, stack the theme editor */ 214@container (max-width: 50rem) { 215 .notebook-settings-theme .theme-editor-page { 216 grid-template-columns: 1fr; 217 } 218 219 .notebook-settings-theme .theme-editor-preview { 220 position: static; 221 max-height: none; 222 } 223} 224 225/* Danger zone */ 226.notebook-settings-danger h2 { 227 color: var(--color-error); 228 border-color: var(--color-error); 229} 230 231.notebook-settings-danger-item { 232 display: flex; 233 align-items: center; 234 justify-content: space-between; 235 gap: 1.5rem; 236 padding: 1rem; 237 background: color-mix(in srgb, var(--color-error) 5%, transparent); 238 border: 1px solid color-mix(in srgb, var(--color-error) 30%, transparent); 239} 240 241.notebook-settings-danger-info h3 { 242 margin: 0 0 0.25rem; 243 font-size: 1rem; 244 font-weight: 600; 245 color: var(--color-text); 246} 247 248.notebook-settings-danger-info p { 249 margin: 0; 250 font-size: 0.875rem; 251 color: var(--color-muted); 252} 253 254/* Confirm dialog */ 255.notebook-settings-confirm-overlay { 256 position: fixed; 257 inset: 0; 258 background: rgba(0, 0, 0, 0.5); 259 display: flex; 260 align-items: center; 261 justify-content: center; 262 z-index: 1000; 263} 264 265.notebook-settings-confirm-dialog { 266 background: var(--color-surface); 267 border: 1px solid var(--color-border); 268 padding: 1.5rem; 269 max-width: 400px; 270 width: 90%; 271} 272 273.notebook-settings-confirm-dialog h3 { 274 margin: 0 0 0.5rem; 275 font-size: 1.125rem; 276 font-weight: 600; 277 color: var(--color-text); 278} 279 280.notebook-settings-confirm-dialog p { 281 margin: 0 0 1.5rem; 282 color: var(--color-muted); 283 font-size: 0.875rem; 284} 285 286.notebook-settings-confirm-actions { 287 display: flex; 288 justify-content: flex-end; 289 gap: 0.75rem; 290} 291 292/* Unauthorized state */ 293.notebook-settings-unauthorized { 294 display: flex; 295 flex-direction: column; 296 align-items: center; 297 justify-content: center; 298 min-height: 50vh; 299 text-align: center; 300 padding: 2rem; 301} 302 303.notebook-settings-unauthorized h1 { 304 margin: 0 0 0.5rem; 305 font-size: 1.5rem; 306 color: var(--color-text); 307} 308 309.notebook-settings-unauthorized p { 310 margin: 0; 311 color: var(--color-muted); 312} 313 314/* Placeholder */ 315.notebook-settings-placeholder { 316 padding: 2rem; 317 text-align: center; 318 color: var(--color-muted); 319 background: var(--color-surface); 320 border: 1px dashed var(--color-border); 321}