diff options
Diffstat (limited to 'src/styles')
| -rw-r--r-- | src/styles/custom.css | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/src/styles/custom.css b/src/styles/custom.css index 4ea2724..a0b0a59 100644 --- a/src/styles/custom.css +++ b/src/styles/custom.css @@ -319,6 +319,139 @@ body:has(.parks-controls) .sl-markdown-content p { color: var(--sl-color-text, inherit); } +/* ── 会場の地図(カレンダーで選んだ日の会場) ── */ +.schedule-map-block { + margin: 0.8rem 0 1.4rem; +} +.schedule-map { + height: min(55vh, 24rem); + min-height: 16rem; + border: 1px solid var(--sl-color-gray-5); + border-radius: 8px; + /* Leaflet の内部 z-index を閉じ込め、ヘッダーなどに重ならないようにする。 */ + position: relative; + z-index: 0; +} +/* StarlightのMarkdown余白ルールがLeafletの各ペインに margin-top を付け、 + タイルが1行分(約50px)下にずれるため、地図内のペインは余白なしにする。 */ +.schedule-map .leaflet-pane { + margin: 0 !important; +} +/* Starlightの canvas/svg 向け max-width が描画領域を狭めるため、地図内だけ上書きする。 */ +.schedule-map .leaflet-overlay-pane canvas, +.schedule-map .leaflet-overlay-pane svg { + max-width: none !important; + max-height: none !important; + margin: 0 !important; +} +/* Starlightの画像用スタイル(margin / border / border-radius)がタイルに付くと、 + 行ずれやタイルごとの枠が出るため打ち消す。 */ +.schedule-map .leaflet-tile { + margin: 0 !important; + border: 0 !important; + border-radius: 0 !important; +} +.schedule-map-note { + margin: 0.4rem 0 0; + color: var(--sl-color-gray-3); + font-size: 0.9rem; +} +.schedule-map-marker { + background: transparent; + border: 0; +} +.schedule-map-pin { + display: flex; + align-items: center; + justify-content: center; + width: 30px; + height: 30px; + border-radius: 50%; + background: var(--sl-color-accent, #b0003a); + color: #fff; + font-size: 15px; + line-height: 1; + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35); + animation: schedule-pin-glow 1.6s ease-out 2; +} +@keyframes schedule-pin-glow { + 0% { + box-shadow: 0 0 0 0 rgba(255, 214, 0, 0.85), 0 2px 6px rgba(0, 0, 0, 0.35); + } + 70% { + box-shadow: 0 0 0 14px rgba(255, 214, 0, 0), 0 2px 6px rgba(0, 0, 0, 0.35); + } + 100% { + box-shadow: 0 0 0 0 rgba(255, 214, 0, 0), 0 2px 6px rgba(0, 0, 0, 0.35); + } +} +@media (prefers-reduced-motion: reduce) { + .schedule-map-pin { + animation: none; + } +} +.schedule-map-popup-title { + display: block; + margin-bottom: 0.2rem; +} +.schedule-map-popup-list { + margin: 0; + padding-left: 1.1rem; +} +.schedule-map-popup-list li { + margin: 0.15rem 0; + font-size: 0.9rem; +} +.schedule-map-popup-list li span { + display: block; + color: var(--sl-color-gray-3); + font-size: 0.82rem; +} +.schedule-map-locate-status { + margin: 0.3rem 0 0; + color: var(--sl-color-gray-3); + font-size: 0.85rem; +} +.schedule-locate { + display: flex; + align-items: center; + justify-content: center; + width: 40px; + height: 40px; + padding: 0; + border: 0; + border-radius: 50%; + background: #fff; + color: #1e88e5; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.35); + cursor: pointer; +} +.schedule-locate:hover { + background: #f0f7ff; +} +.schedule-locate.is-active { + background: #1e88e5; + color: #fff; +} +.schedule-locate svg { + display: block; + width: 20px; + height: 20px; +} +.schedule-locate-marker { + background: transparent; + border: 0; +} +.schedule-locate-dot { + display: block; + width: 18px; + height: 18px; + border: 3px solid #fff; + border-radius: 50%; + background: #1e88e5; + box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.25), 0 0 0 8px rgba(30, 136, 229, 0.18); +} + /* ── 技術的な補足(本文より一段小さい注記。ノートとは区別する) ── */ .tech-note { margin: 1.6rem 0; |
