Proof of concept for the other one
at main 315 lines 5.4 kB view raw
1/* Calendar Viewer - styles.css */ 2 3/* ── Split pane layout ── */ 4 5.cal-view-root { 6 display: flex; 7 flex-direction: column; 8 height: 100%; 9 overflow: hidden; 10} 11 12.cal-pane-top { 13 flex: 1 1 50%; 14 min-height: 0; 15 overflow-y: auto; 16 position: relative; 17 border-bottom: 1px solid var(--background-modifier-border); 18} 19 20.cal-pane-bottom { 21 flex: 1 1 50%; 22 min-height: 0; 23 position: relative; 24} 25 26/* ── Calendar container ── */ 27 28.cal-container { 29 padding: 8px; 30 font-family: var(--font-interface); 31 position: relative; 32} 33 34/* ── Header ── */ 35 36.cal-header { 37 display: flex; 38 align-items: center; 39 justify-content: space-between; 40 margin-bottom: 8px; 41 padding: 0 4px; 42} 43 44.cal-nav-btn { 45 background: none; 46 border: 1px solid var(--background-modifier-border); 47 border-radius: 4px; 48 cursor: pointer; 49 font-size: 18px; 50 line-height: 1; 51 padding: 2px 8px; 52 color: var(--text-normal); 53} 54 55.cal-nav-btn:hover { 56 background: var(--background-modifier-hover); 57} 58 59.cal-month-label { 60 font-weight: 600; 61 font-size: 14px; 62 color: var(--text-normal); 63} 64 65/* ── Day-of-week row ── */ 66 67.cal-dow-row { 68 display: grid; 69 grid-template-columns: repeat(7, 1fr); 70 gap: 1px; 71 margin-bottom: 2px; 72} 73 74.cal-dow-cell { 75 text-align: center; 76 font-size: 11px; 77 font-weight: 600; 78 color: var(--text-muted); 79 padding: 2px 0; 80} 81 82/* ── Grid ── */ 83 84.cal-grid { 85 display: grid; 86 grid-template-columns: repeat(7, 1fr); 87 gap: 1px; 88} 89 90.cal-cell { 91 min-height: 48px; 92 border: 1px solid var(--background-modifier-border); 93 border-radius: 3px; 94 padding: 2px; 95 display: flex; 96 flex-direction: column; 97 overflow: hidden; 98} 99 100.cal-cell-empty { 101 border-color: transparent; 102} 103 104.cal-day-number { 105 font-size: 11px; 106 color: var(--text-muted); 107 text-align: right; 108 padding: 1px 3px 0 0; 109 line-height: 1.2; 110} 111 112.cal-cell-today { 113 background: var(--background-modifier-hover); 114} 115 116.cal-cell-today .cal-day-number { 117 color: var(--text-accent); 118 font-weight: 700; 119} 120 121.cal-cell-has-events { 122 background: var(--background-primary); 123} 124 125/* ── Event chips ── */ 126 127.cal-cell-events { 128 display: flex; 129 flex-direction: column; 130 gap: 1px; 131 margin-top: 1px; 132 overflow: hidden; 133} 134 135.cal-event-chip { 136 font-size: 10px; 137 line-height: 1.3; 138 padding: 1px 3px; 139 border-radius: 2px; 140 background: var(--interactive-accent); 141 color: var(--text-on-accent); 142 white-space: nowrap; 143 overflow: hidden; 144 text-overflow: ellipsis; 145 cursor: pointer; 146} 147 148.cal-event-chip:hover { 149 opacity: 0.85; 150} 151 152.cal-event-sold-out { 153 background: var(--text-muted); 154 opacity: 0.6; 155} 156 157.cal-event-selected { 158 outline: 2px solid var(--text-accent); 159 outline-offset: 1px; 160 opacity: 1 !important; 161} 162 163/* ── Popover ── */ 164 165.cal-popover { 166 position: absolute; 167 z-index: 100; 168 background: var(--background-primary); 169 border: 1px solid var(--background-modifier-border); 170 border-radius: 6px; 171 padding: 10px 12px; 172 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); 173 max-width: 260px; 174 font-size: 12px; 175 line-height: 1.5; 176} 177 178.cal-popover-title { 179 font-weight: 600; 180 font-size: 13px; 181 color: var(--text-normal); 182 margin-bottom: 4px; 183} 184 185.cal-popover-title a { 186 color: var(--text-accent); 187 text-decoration: none; 188} 189 190.cal-popover-title a:hover { 191 text-decoration: underline; 192} 193 194.cal-sold-out { 195 color: var(--text-muted); 196 font-weight: 400; 197 font-size: 11px; 198} 199 200.cal-popover-date { 201 color: var(--text-muted); 202 margin-bottom: 4px; 203} 204 205.cal-popover-venue { 206 color: var(--text-normal); 207 margin-bottom: 4px; 208} 209 210.cal-popover-venue a { 211 color: var(--text-accent); 212 text-decoration: none; 213} 214 215.cal-popover-venue a:hover { 216 text-decoration: underline; 217} 218 219.cal-popover-notes { 220 color: var(--text-faint); 221 font-style: italic; 222 margin-top: 4px; 223} 224 225/* ── Map ── */ 226 227.cal-map { 228 width: 100%; 229 height: 100%; 230} 231 232/* SVG teardrop pin markers */ 233.cal-pin-icon { 234 background: none !important; 235 border: none !important; 236 filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.35)); 237} 238 239/* Override Leaflet popup styles to match Obsidian theme */ 240.cal-map-popup .leaflet-popup-content-wrapper { 241 background: var(--background-primary); 242 color: var(--text-normal); 243 border-radius: 6px; 244 box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); 245 font-family: var(--font-interface); 246 font-size: 12px; 247} 248 249.cal-map-popup .leaflet-popup-tip { 250 background: var(--background-primary); 251} 252 253.cal-map-popup .leaflet-popup-content { 254 margin: 8px 12px; 255 line-height: 1.5; 256} 257 258.cal-popup-event { 259 margin-bottom: 6px; 260} 261 262.cal-popup-event:last-child { 263 margin-bottom: 0; 264} 265 266.cal-popup-event a { 267 color: var(--text-accent); 268 text-decoration: none; 269} 270 271.cal-popup-event a:hover { 272 text-decoration: underline; 273} 274 275.cal-popup-venue { 276 color: var(--text-muted); 277 font-size: 11px; 278} 279 280/* Highlight ring around selected marker */ 281.cal-marker-highlight { 282 animation: cal-pulse 1.5s ease-out; 283} 284 285@keyframes cal-pulse { 286 0% { 287 stroke-opacity: 0.8; 288 fill-opacity: 0.3; 289 } 290 100% { 291 stroke-opacity: 0.3; 292 fill-opacity: 0.1; 293 } 294} 295 296/* Leaflet zoom/attribution tweaks for sidebar */ 297.cal-pane-bottom .leaflet-control-zoom { 298 margin-top: 6px; 299 margin-right: 6px; 300} 301 302.cal-pane-bottom .leaflet-control-attribution { 303 font-size: 9px; 304 background: var(--background-primary-alt) !important; 305 color: var(--text-faint); 306} 307 308.cal-pane-bottom .leaflet-control-attribution a { 309 color: var(--text-muted); 310} 311 312/* Fix Leaflet container background for dark themes */ 313.cal-pane-bottom .leaflet-container { 314 background: var(--background-primary-alt); 315}