Introduction

Introduction

Tweets are dead. Long live tweets.

react-xeet allows you to embed xeets in your React application when using Next.js, Create React App, Vite, and more. This library does not require using the X API. Xeets can be rendered statically, preventing the need to include an iframe and additional client-side JavaScript.

You can see how it is action in react-xeet-next.vercel.app/light/1629307668568633344 (opens in a new tab), or scroll below. Replace the xeet ID in the URL to see other xeets.

This library is fully compatible with React Server Components. Learn more (opens in a new tab).

It's also a parody (opens in a new tab) and should not be used too seriously.

Why?

Installation

Install react-xeet using your package manager of choice:

pnpm add react-xeet
yarn add react-xeet
npm install react-xeet

Now follow the usage instructions for your framework or builder:

Choosing a theme

The prefers-color-scheme (opens in a new tab) CSS media feature is used to select the theme of the xeet.

Toggling theme manually

The closest data-theme attribute on a parent element can determine the theme of the xeet. You can set it to light or dark, like so:

<div data-theme="dark">
  <Xeet id="1629307668568633344" />
</div>

Alternatively, a parent with the class light or dark will also work:

<div className="dark">
  <Xeet id="1629307668568633344" />
</div>

Updating the theme

In CSS Modules, you can use the :global selector to update the CSS variables used by themes:

.my-class :global(.react-xeet-theme) {
  --xeet-body-font-size: 1rem;
}

For Global CSS the usage of :global is not necessary.