New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

@globestudio/react

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@globestudio/react

Drop-in React component for embedding Globestudio dotted globes — pick a preset, drop the component, done. Works in React, Next.js, Remix, Astro, anywhere JSX renders.

Source
npmnpm
Version
0.1.0
Version published
Weekly downloads
197
4825%
Maintainers
1
Weekly downloads
 
Created
Source

@globestudio/react

Drop-in React component for embedding Globestudio dotted globes and maps. Zero deps, SSR-friendly, autocomplete on every preset.

Install

npm install @globestudio/react
# or pnpm add @globestudio/react
# or yarn add @globestudio/react

Use

import { Globe } from "@globestudio/react";

export default function Page() {
  return (
    <section>
      <h1>Worldwide coverage</h1>
      <Globe look="aurora" width={800} height={600} />
    </section>
  );
}

That's it. The component is a styled <iframe> over globestudio.app/embed, so the heavy lift (Three.js, shaders, country data) runs on the embed origin — your bundle stays a couple hundred bytes.

Props

PropTypeDefaultNotes
lookLookId"halftone"Autocomplete on every shipped preset
widthnumber | string"100%"Numbers → pixels
heightnumber | string480Numbers → pixels
configstring—Pre-built share-URL payload — overrides look
titlestring"Globestudio dotted globe"A11y label
classNamestring—Forwarded
styleCSSProperties—Merged after border: 0
loading"lazy" | "eager""lazy"Off-screen embeds defer WebGL until scrolled near
sourcestring—Tag for analytics attribution
onLoad(e) => void—Forwarded

Helpers

import { globestudio } from "@globestudio/react";

const embed = globestudio.embedUrl({ look: "vapor" });
//          → "https://globestudio.app/embed?look=vapor"

const thumb = globestudio.thumbnailUrl("halftone");
//          → "https://globestudio.app/looks/halftone.png"

const share = globestudio.shareUrl("eyJsb29rIjoidmFwb3IifQ");
//          → "https://globestudio.app/?c=eyJsb29rIjoidmFwb3IifQ"

Use these when you need the URL but not the iframe (e.g. Next.js <Image src>, server-rendered markup, OG metadata).

SSR

The component is just JSX — renders the iframe HTML on the server, hydrates on the client without re-mounting (no client-only state, no useEffect).

// app/page.tsx (Next.js App Router)
import { Globe } from "@globestudio/react";

export default function Page() {
  return <Globe look="risograph" />;
}

Sizing patterns

// Fill container
<Globe look="halftone" />  {/* width="100%", height=480 default */}

// Square in a card
<div style={{ width: 320, aspectRatio: "1 / 1" }}>
  <Globe look="aurora" width="100%" height="100%" />
</div>

// Background hero
<section style={{ position: "relative", height: 520 }}>
  <Globe
    look="vapor"
    width="100%"
    height="100%"
    style={{ position: "absolute", inset: 0 }}
  />
  <div style={{ position: "relative", padding: 64 }}>
    <h1>Hero content over the globe</h1>
  </div>
</section>

Why a package and not a copy-paste snippet?

The snippet on globestudio.app/integrations is what most people start with. The package adds:

  • TypeScript autocomplete on look — no typos shipping to prod
  • Versioning — pin to a tested version, upgrade deliberately
  • One-line install in SaaS templates that ship via npm
  • globestudio.* helpers for URL building outside the iframe context

The total surface area is one component and one helper object. Stays tiny on purpose.

License

MIT — see LICENSE.

Keywords

react

FAQs

Package last updated on 27 May 2026

Related posts