Documentation
Styling
All package utility classes are emitted with a Tailwind v4 ip prefix (.ip:flex, .ip:bg-white/80, …), so they cannot collide with a host application's own Tailwind utilities.
Which stylesheet
- Standalone app (no existing Tailwind / you want a reset): import
@infoplaza/platform/styles.css. This includes Tailwind preflight (global element resets). - Embedding (Next.js, an app that already runs Tailwind, or any app with its own global styles): import
@infoplaza/platform/styles.embed.css. This ships only prefixed utilities with no preflight and no global element selectors (html,*,button,input,svg).
// Host app (Next.js etc.)
import '@infoplaza/platform/styles.embed.css'Recommended wrapper
Wrap the map, HUD, timeseries, or ensemble subtree in the ip-platform class. The prefix already prevents class collisions; the wrapper provides a stable scope for dark-mode / fullscreen context and the icon color hook. Packaged TimeseriesForecast and EnsembleForecast apply this class for you.
<div className="ip-platform" style={{ height: '100%' }}>
<WeatherLayers showHud />
</div>Icons
Exported icons render with fill: currentColor and are sized by the className you pass. For a host-agnostic default, add the ip-icon class and optionally drive color and size through CSS variables:
.ip-platform {
--ip-icon-color: #1f2937;
--ip-icon-size: 1.25rem;
}