Download src/pages/MapView.css from NKessler/Horizon: direct link, hf CLI and curl.
- Browser
- Download file 4.79 kB
-
https://huggingface.co/NKessler/Horizon/resolve/main/src/pages/MapView.css
- Command line
-
hf download hf://NKessler/Horizon/src/pages/MapView.css
-
curl -L -o MapView.css https://huggingface.co/NKessler/Horizon/resolve/main/src/pages/MapView.css
4.79 kB
| .map-view-page { | |
| display: grid; | |
| gap: var(--sp-5); | |
| } | |
| .map-view { | |
| position: relative; | |
| background: var(--bg); | |
| overflow: hidden; | |
| min-height: clamp(420px, 68vh, 760px); | |
| border: 1px solid var(--border); | |
| } | |
| .map-view__hint { | |
| position: absolute; | |
| bottom: var(--sp-5); | |
| right: var(--sp-5); | |
| font-family: var(--font-mono); | |
| font-size: var(--fs-xs); | |
| letter-spacing: 0.16em; | |
| text-transform: uppercase; | |
| color: var(--text-faint); | |
| background: rgba(13, 15, 20, 0.6); | |
| border: 1px solid var(--border); | |
| padding: 6px 10px; | |
| pointer-events: none; | |
| } | |
| /* spinner reused across views */ | |
| .spin { | |
| animation: spin 900ms linear infinite; | |
| } | |
| @keyframes spin { | |
| to { transform: rotate(360deg); } | |
| } | |
| .map-view__loading { | |
| position: absolute; | |
| bottom: var(--sp-5); | |
| left: var(--sp-5); | |
| display: flex; | |
| align-items: center; | |
| gap: var(--sp-2); | |
| font-size: var(--fs-xs); | |
| letter-spacing: 0.16em; | |
| text-transform: uppercase; | |
| color: var(--text-muted); | |
| background: rgba(13, 15, 20, 0.6); | |
| border: 1px solid var(--border); | |
| padding: 6px 10px; | |
| } | |
| /* ---------- Legend ---------- */ | |
| .map-legend { | |
| position: absolute; | |
| top: var(--sp-5); | |
| left: var(--sp-5); | |
| z-index: 4; | |
| background: rgba(13, 15, 20, 0.65); | |
| border: 1px solid var(--border); | |
| padding: var(--sp-3) var(--sp-4); | |
| min-width: 220px; | |
| } | |
| .map-legend__title { | |
| margin-bottom: var(--sp-2); | |
| } | |
| .map-legend__bar { | |
| display: grid; | |
| grid-template-columns: repeat(5, 1fr); | |
| height: 8px; | |
| } | |
| .map-legend__cell { | |
| height: 100%; | |
| } | |
| .map-legend__scale { | |
| display: grid; | |
| grid-template-columns: max-content 1fr max-content; | |
| align-items: center; | |
| column-gap: var(--sp-3); | |
| margin-top: var(--sp-2); | |
| width: 100%; | |
| } | |
| .map-legend__scale-label { | |
| font-size: var(--fs-xs); | |
| letter-spacing: 0.14em; | |
| text-transform: uppercase; | |
| color: var(--text-faint); | |
| white-space: nowrap; | |
| } | |
| .map-legend__scale-label--low { | |
| justify-self: start; | |
| } | |
| .map-legend__scale-label--high { | |
| justify-self: end; | |
| } | |
| /* Visual bridge so “low” and “high” read as ends of the scale, not a tight pair. */ | |
| .map-legend__scale-gap { | |
| display: block; | |
| height: 1px; | |
| min-width: var(--sp-4); | |
| background: linear-gradient( | |
| 90deg, | |
| transparent, | |
| var(--border) 35%, | |
| var(--border-strong) 50%, | |
| var(--border) 65%, | |
| transparent | |
| ); | |
| opacity: 0.85; | |
| } | |
| /* ---------- Tooltip ---------- */ | |
| .map-tooltip { | |
| position: fixed; | |
| top: 0; | |
| left: 0; | |
| z-index: 6; | |
| background: rgba(13, 15, 20, 0.92); | |
| border: 1px solid var(--border-strong); | |
| padding: var(--sp-3) var(--sp-4); | |
| min-width: 200px; | |
| pointer-events: none; | |
| box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5); | |
| } | |
| .map-tooltip__name { | |
| font-family: var(--font-display); | |
| font-size: var(--fs-lg); | |
| margin-bottom: var(--sp-2); | |
| } | |
| .map-tooltip__row { | |
| display: flex; | |
| justify-content: space-between; | |
| align-items: baseline; | |
| font-size: var(--fs-xs); | |
| margin-top: 2px; | |
| } | |
| .map-tooltip__row.faint { | |
| color: var(--text-faint); | |
| letter-spacing: 0.06em; | |
| } | |
| .map-articles { | |
| border: 1px solid var(--border); | |
| background: var(--surface); | |
| padding: var(--sp-5); | |
| } | |
| .map-articles__head { | |
| display: flex; | |
| align-items: flex-start; | |
| justify-content: space-between; | |
| gap: var(--sp-4); | |
| margin-bottom: var(--sp-4); | |
| } | |
| .map-articles__title { | |
| margin-top: 4px; | |
| font-family: var(--font-display); | |
| } | |
| .map-articles__loading { | |
| display: flex; | |
| align-items: center; | |
| gap: var(--sp-2); | |
| font-size: var(--fs-xs); | |
| letter-spacing: 0.12em; | |
| text-transform: uppercase; | |
| color: var(--text-muted); | |
| } | |
| .map-articles__list { | |
| list-style: none; | |
| margin: 0; | |
| padding: 0; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| .map-article { | |
| padding: var(--sp-4) 0; | |
| border-top: 1px dashed var(--border); | |
| } | |
| .map-article:first-child { | |
| border-top: 0; | |
| padding-top: 0; | |
| } | |
| .map-article__title { | |
| font-family: var(--font-display); | |
| color: var(--text); | |
| text-decoration: none; | |
| } | |
| .map-article__title:hover { | |
| text-decoration: underline; | |
| } | |
| .map-article__meta { | |
| margin-top: var(--sp-1); | |
| color: var(--text-muted); | |
| display: flex; | |
| gap: var(--sp-2); | |
| font-size: var(--fs-xs); | |
| } | |
| .map-article__summary { | |
| margin-top: var(--sp-2); | |
| color: var(--text-muted); | |
| line-height: var(--lh-relaxed); | |
| } | |
| @media (max-width: 900px) { | |
| .map-view { | |
| min-height: clamp(360px, 56vh, 560px); | |
| } | |
| .map-legend { | |
| top: var(--sp-3); | |
| left: var(--sp-3); | |
| min-width: 0; | |
| width: calc(100% - (2 * var(--sp-3))); | |
| max-width: 320px; | |
| } | |
| .map-view__loading { | |
| left: var(--sp-3); | |
| bottom: var(--sp-3); | |
| } | |
| .map-view__hint { | |
| right: var(--sp-3); | |
| bottom: var(--sp-3); | |
| max-width: calc(100% - (2 * var(--sp-3))); | |
| } | |
| } | |
| @media (max-width: 640px) { | |
| .map-legend, | |
| .map-view__hint { | |
| display: none; | |
| } | |
| .map-articles { | |
| padding: var(--sp-4); | |
| } | |
| } | |