Agent skill

Expo Tailwind Setup

by CherryHQ in CherryHQ/cherry-studio-app

Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling

MITAuto-check passedMobile

Install Expo Tailwind Setup

skills CLI
$ npx skills add CherryHQ/cherry-studio-app --skill expo-tailwind-setup -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install CherryHQ/cherry-studio-app expo-tailwind-setup --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/CherryHQ/cherry-studio-app.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/expo-tailwind-setup .claude/skills/expo-tailwind-setup && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
expo-tailwind-setup
GitHub stars
4k
Used in
8 other repos
Token cost
~3k tokens
SKILL.md length
322 words
Files
1
Skills in repo
13
Repo updated
First seen
Licence
MIT

At a glance

Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling

  • Works in 6 steps: No babel.config.js - Configuration is… → PostCSS plugin - Uses… → CSS imports - Use @import… → …
  • Tasks that involve Cross-platform mobile apps
  • SKILL.md covers Overview, Installation, Configuration Files and IMPORTANT: No Babel Config…, plus 8 more sections
  • Calls npx

What it does

Expo Tailwind Setup is an agent skill from CherryHQ/cherry-studio-app. Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile, covering Cross-platform mobile apps and CSS and styling. It works with Tailwind CSS, Expo, React Native and Android. The repository describes itself as: 🍒 This is the mobile version of Cherry Studio. The licence is MIT.

When your agent uses it

  • Tasks that involve Cross-platform mobile apps
  • Tasks that involve CSS and styling

Example prompts

  • “/expo-tailwind-setup”

Requirements

  • Node.js

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. No babel.config.js - Configuration is now CSS-first
  2. PostCSS plugin - Uses @tailwindcss/postcss instead of tailwindcss
  3. CSS imports - Use @import "tailwindcss/..." instead of @tailwind directives
  4. Theme config - Use @theme in CSS instead of tailwind.config.js
  5. Component wrappers - Must wrap components with useCssElement for className support
  6. Metro config - Use withNativewind with different options (inlineVariables: false)

What it can do on your machine

Read from SKILL.md and the folder at commit fcfd953. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Expo Tailwind Setup loads about 3k tokens when it runs. Until then it costs about 28 tokens; SKILL.md has 322 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~28
When it runs · the whole SKILL.md, loaded when a task matches
~3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from CherryHQ/cherry-studio-app at commit fcfd953, republished under its MIT licence (© CherryHQ). 322 words, ~2,979 tokens.

Download SKILL.mdSave it as .claude/skills/expo-tailwind-setup/SKILL.md (or your agent's skills folder).
name
expo-tailwind-setup
description
Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling
version
1.0.0
license
MIT

Tailwind CSS Setup for Expo with react-native-css

This guide covers setting up Tailwind CSS v4 in Expo using react-native-css and NativeWind v5 for universal styling across iOS, Android, and Web.

Overview

This setup uses:

  • Tailwind CSS v4 - Modern CSS-first configuration
  • react-native-css - CSS runtime for React Native
  • NativeWind v5 - Metro transformer for Tailwind in React Native
  • @tailwindcss/postcss - PostCSS plugin for Tailwind v4

Installation

bash
# Install dependencies
npx expo install tailwindcss@^4 nativewind@5.0.0-preview.2 react-native-css@0.0.0-nightly.5ce6396 @tailwindcss/postcss tailwind-merge clsx

Add resolutions for lightningcss compatibility:

json
// package.json
{
  "resolutions": {
    "lightningcss": "1.30.1"
  }
}
  • autoprefixer is not needed in Expo because of lightningcss
  • postcss is included in expo by default

Configuration Files

Metro Config

Create or update metro.config.js:

js
// metro.config.js
const { getDefaultConfig } = require("expo/metro-config");
const { withNativewind } = require("nativewind/metro");

/** @type {import('expo/metro-config').MetroConfig} */
const config = getDefaultConfig(__dirname);

module.exports = withNativewind(config, {
  // inline variables break PlatformColor in CSS variables
  inlineVariables: false,
  // We add className support manually
  globalClassNamePolyfill: false,
});
PostCSS Config

Create postcss.config.mjs:

js
// postcss.config.mjs
export default {
  plugins: {
    "@tailwindcss/postcss": {},
  },
};
Global CSS

Create src/global.css:

css
@import "tailwindcss/theme.css" layer(theme);
@import "tailwindcss/preflight.css" layer(base);
@import "tailwindcss/utilities.css";

/* Platform-specific font families */
@media android {
  :root {
    --font-mono: monospace;
    --font-rounded: normal;
    --font-serif: serif;
    --font-sans: normal;
  }
}

@media ios {
  :root {
    --font-mono: ui-monospace;
    --font-serif: ui-serif;
    --font-sans: system-ui;
    --font-rounded: ui-rounded;
  }
}

IMPORTANT: No Babel Config Needed

With Tailwind v4 and NativeWind v5, you do NOT need a babel.config.js for Tailwind. Remove any NativeWind babel presets if present:

js
// DELETE babel.config.js if it only contains NativeWind config
// The following is NO LONGER needed:
// module.exports = function (api) {
//   api.cache(true);
//   return {
//     presets: [
//       ["babel-preset-expo", { jsxImportSource: "nativewind" }],
//       "nativewind/babel",
//     ],
//   };
// };

CSS Component Wrappers

Since react-native-css requires explicit CSS element wrapping, create reusable components:

Main Components (src/tw/index.tsx)
tsx
import {
  useCssElement,
  useNativeVariable as useFunctionalVariable,
} from "react-native-css";

import { Link as RouterLink } from "expo-router";
import Animated from "react-native-reanimated";
import React from "react";
import {
  View as RNView,
  Text as RNText,
  Pressable as RNPressable,
  ScrollView as RNScrollView,
  TouchableHighlight as RNTouchableHighlight,
  TextInput as RNTextInput,
  StyleSheet,
} from "react-native";

// CSS-enabled Link
export const Link = (
  props: React.ComponentProps<typeof RouterLink> & { className?: string }
) => {
  return useCssElement(RouterLink, props, { className: "style" });
};

Link.Trigger = RouterLink.Trigger;
Link.Menu = RouterLink.Menu;
Link.MenuAction = RouterLink.MenuAction;
Link.Preview = RouterLink.Preview;

// CSS Variable hook
export const useCSSVariable =
  process.env.EXPO_OS !== "web"
    ? useFunctionalVariable
    : (variable: string) => `var(${variable})`;

// View
export type ViewProps = React.ComponentProps<typeof RNView> & {
  className?: string;
};

export const View = (props: ViewProps) => {
  return useCssElement(RNView, props, { className: "style" });
};
View.displayName = "CSS(View)";

// Text
export const Text = (
  props: React.ComponentProps<typeof RNText> & { className?: string }
) => {
  return useCssElement(RNText, props, { className: "style" });
};
Text.displayName = "CSS(Text)";

// ScrollView
export const ScrollView = (
  props: React.ComponentProps<typeof RNScrollView> & {
    className?: string;
    contentContainerClassName?: string;
  }
) => {
  return useCssElement(RNScrollView, props, {
    className: "style",
    contentContainerClassName: "contentContainerStyle",
  });
};
ScrollView.displayName = "CSS(ScrollView)";

// Pressable
export const Pressable = (
  props: React.ComponentProps<typeof RNPressable> & { className?: string }
) => {
  return useCssElement(RNPressable, props, { className: "style" });
};
Pressable.displayName = "CSS(Pressable)";

// TextInput
export const TextInput = (
  props: React.ComponentProps<typeof RNTextInput> & { className?: string }
) => {
  return useCssElement(RNTextInput, props, { className: "style" });
};
TextInput.displayName = "CSS(TextInput)";

// AnimatedScrollView
export const AnimatedScrollView = (
  props: React.ComponentProps<typeof Animated.ScrollView> & {
    className?: string;
    contentClassName?: string;
    contentContainerClassName?: string;
  }
) => {
  return useCssElement(Animated.ScrollView, props, {
    className: "style",
    contentClassName: "contentContainerStyle",
    contentContainerClassName: "contentContainerStyle",
  });
};

// TouchableHighlight with underlayColor extraction
function XXTouchableHighlight(
  props: React.ComponentProps<typeof RNTouchableHighlight>
) {
  const { underlayColor, ...style } = StyleSheet.flatten(props.style) || {};
  return (
    <RNTouchableHighlight
      underlayColor={underlayColor}
      {...props}
      style={style}
    />
  );
}

export const TouchableHighlight = (
  props: React.ComponentProps<typeof RNTouchableHighlight>
) => {
  return useCssElement(XXTouchableHighlight, props, { className: "style" });
};
TouchableHighlight.displayName = "CSS(TouchableHighlight)";
Image Component (src/tw/image.tsx)
tsx
import { useCssElement } from "react-native-css";
import React from "react";
import { StyleSheet } from "react-native";
import Animated from "react-native-reanimated";
import { Image as RNImage } from "expo-image";

const AnimatedExpoImage = Animated.createAnimatedComponent(RNImage);

export type ImageProps = React.ComponentProps<typeof Image>;

function CSSImage(props: React.ComponentProps<typeof AnimatedExpoImage>) {
  // @ts-expect-error: Remap objectFit style to contentFit property
  const { objectFit, objectPosition, ...style } =
    StyleSheet.flatten(props.style) || {};

  return (
    <AnimatedExpoImage
      contentFit={objectFit}
      contentPosition={objectPosition}
      {...props}
      source={
        typeof props.source === "string" ? { uri: props.source } : props.source
      }
      // @ts-expect-error: Style is remapped above
      style={style}
    />
  );
}

export const Image = (
  props: React.ComponentProps<typeof CSSImage> & { className?: string }
) => {
  return useCssElement(CSSImage, props, { className: "style" });
};

Image.displayName = "CSS(Image)";
Animated Components (src/tw/animated.tsx)
tsx
import * as TW from "./index";
import RNAnimated from "react-native-reanimated";

export const Animated = {
  ...RNAnimated,
  View: RNAnimated.createAnimatedComponent(TW.View),
};

Usage

Import CSS-wrapped components from your tw directory:

tsx
import { View, Text, ScrollView, Image } from "@/tw";

export default function MyScreen() {
  return (
    <ScrollView className="flex-1 bg-white">
      <View className="p-4 gap-4">
        <Text className="text-xl font-bold text-gray-900">Hello Tailwind!</Text>
        <Image
          className="w-full h-48 rounded-lg object-cover"
          source={{ uri: "https://example.com/image.jpg" }}
        />
      </View>
    </ScrollView>
  );
}

Custom Theme Variables

Add custom theme variables in your global.css using @theme:

css
@layer theme {
  @theme {
    /* Custom fonts */
    --font-rounded: "SF Pro Rounded", sans-serif;

    /* Custom line heights */
    --text-xs--line-height: calc(1em / 0.75);
    --text-sm--line-height: calc(1.25em / 0.875);
    --text-base--line-height: calc(1.5em / 1);

    /* Custom leading scales */
    --leading-tight: 1.25em;
    --leading-snug: 1.375em;
    --leading-normal: 1.5em;
  }
}

Platform-Specific Styles

Use platform media queries for platform-specific styling:

css
@media ios {
  :root {
    --font-sans: system-ui;
    --font-rounded: ui-rounded;
  }
}

@media android {
  :root {
    --font-sans: normal;
    --font-rounded: normal;
  }
}

Apple System Colors with CSS Variables

Create a CSS file for Apple semantic colors:

css
/* src/css/sf.css */
@layer base {
  html {
    color-scheme: light;
  }
}

:root {
  /* Accent colors with light/dark mode */
  --sf-blue: light-dark(rgb(0 122 255), rgb(10 132 255));
  --sf-green: light-dark(rgb(52 199 89), rgb(48 209 89));
  --sf-red: light-dark(rgb(255 59 48), rgb(255 69 58));

  /* Gray scales */
  --sf-gray: light-dark(rgb(142 142 147), rgb(142 142 147));
  --sf-gray-2: light-dark(rgb(174 174 178), rgb(99 99 102));

  /* Text colors */
  --sf-text: light-dark(rgb(0 0 0), rgb(255 255 255));
  --sf-text-2: light-dark(rgb(60 60 67 / 0.6), rgb(235 235 245 / 0.6));

  /* Background colors */
  --sf-bg: light-dark(rgb(255 255 255), rgb(0 0 0));
  --sf-bg-2: light-dark(rgb(242 242 247), rgb(28 28 30));
}

/* iOS native colors via platformColor */
@media ios {
  :root {
    --sf-blue: platformColor(systemBlue);
    --sf-green: platformColor(systemGreen);
    --sf-red: platformColor(systemRed);
    --sf-gray: platformColor(systemGray);
    --sf-text: platformColor(label);
    --sf-text-2: platformColor(secondaryLabel);
    --sf-bg: platformColor(systemBackground);
    --sf-bg-2: platformColor(secondarySystemBackground);
  }
}

/* Register as Tailwind theme colors */
@layer theme {
  @theme {
    --color-sf-blue: var(--sf-blue);
    --color-sf-green: var(--sf-green);
    --color-sf-red: var(--sf-red);
    --color-sf-gray: var(--sf-gray);
    --color-sf-text: var(--sf-text);
    --color-sf-text-2: var(--sf-text-2);
    --color-sf-bg: var(--sf-bg);
    --color-sf-bg-2: var(--sf-bg-2);
  }
}

Then use in components:

tsx
<Text className="text-sf-text">Primary text</Text>
<Text className="text-sf-text-2">Secondary text</Text>
<View className="bg-sf-bg">...</View>

Using CSS Variables in JavaScript

Use the useCSSVariable hook:

tsx
import { useCSSVariable } from "@/tw";

function MyComponent() {
  const blue = useCSSVariable("--sf-blue");

  return <View style={{ borderColor: blue }} />;
}

Key Differences from NativeWind v4 / Tailwind v3

  1. No babel.config.js - Configuration is now CSS-first
  2. PostCSS plugin - Uses @tailwindcss/postcss instead of tailwindcss
  3. CSS imports - Use @import "tailwindcss/..." instead of @tailwind directives
  4. Theme config - Use @theme in CSS instead of tailwind.config.js
  5. Component wrappers - Must wrap components with useCssElement for className support
  6. Metro config - Use withNativewind with different options (inlineVariables: false)

Troubleshooting

Styles not applying
  1. Ensure you have the CSS file imported in your app entry
  2. Check that components are wrapped with useCssElement
  3. Verify Metro config has withNativewind applied
Platform colors not working
  1. Use platformColor() in @media ios blocks
  2. Fall back to light-dark() for web/Android
TypeScript errors

Add className to component props:

tsx
type Props = React.ComponentProps<typeof RNView> & { className?: string };

© CherryHQ, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/expo-tailwind-setup of CherryHQ/cherry-studio-app.

Open the folder on GitHubat commit fcfd953

Used in 8 other repositories

We found 21 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 8 other GitHub owners. This page covers the copy in CherryHQ/cherry-studio-app, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Expo Tailwind Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Expo Tailwind Setup compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Expo Tailwind Setup this skillCherryHQ/cherry-studio-app4k8 repos~3kAutomated safety check: PassMIT
Weapp Tailwindcss Lynxweapp-tailwindcss/weapp-tailwindcss1.9k—~374Automated safety check: PassMIT
Weapp Tailwindcss React Nativeweapp-tailwindcss/weapp-tailwindcss1.9k—~403Automated safety check: PassMIT
Screenmapaleqsio/screenmap242—~7.2kAutomated safety check: PassMIT
Expo Brownfield Integrationmweinbach/agent-coworker1562 repos~900Automated safety check: NotesCustom licence
Expo UIarcboxlabs/linkcode156—~1.2kAutomated safety check: PassMIT

Similar skills

  • Weapp Tailwindcss Lynx

    weapp-tailwindcss/weapp-tailwindcss

    为 ReactLynx + Rspeedy 配置 @weapp-tailwindcss/lynx 0.3.2 与 Tailwind CSS 4,覆盖 Rspeedy plugin、Lynx 原生 CSS、静态 className、theme 变量静态化、任意值、encoder 警告和 iOS/Android 运行端验证。Use for ReactLynx, Rspeedy, Lynx…

    1.9k GitHub stars~374 tokensUpdated today
    MobileAuto-check passed
  • Weapp Tailwindcss React Native

    weapp-tailwindcss/weapp-tailwindcss

    为 Expo/React Native 配置 @weapp-tailwindcss/react-native 0.2.5 的 Tailwind CSS 4 编译器、Metro virtual module、Babel JSX transform、style manifest、tw runtime、dark/ios/android/native variants。Use for Expo SDK…

    1.9k GitHub stars~403 tokensUpdated today
    MobileAuto-check passed
  • Screenmap

    aleqsio/screenmap

    Generate a visual navigation map of an Expo / React Native or NativeScript app.

    242 GitHub stars~7.2k tokensUpdated 4 days ago
    MobileAuto-check passed
  • Expo Brownfield Integration

    mweinbach/agent-coworker

    Helps add Expo and React Native to an existing native iOS or Android app, and choose between a prebuilt AAR or XCFramework and a fully integrated build.

    156 GitHub starsUsed in 2 repos~900 tokens
    MobileAuto-check: notes
  • Expo UI

    arcboxlabs/linkcode

    Framework (OSS). An agent skill from arcboxlabs/linkcode.

    156 GitHub stars~1.2k tokensUpdated 10 days ago
    MobileAuto-check passed
  • Simfleet

    entropyconquers/simfleet

    Operate a simfleet device fleet: slimmed iOS simulators and Android emulators, parallel React Native worktree lanes with leased Metro ports, the native build cache, and per-agent device claims.

    117 GitHub stars~1.5k tokensUpdated 9 days ago
    MobileAuto-check passed

More from CherryHQ/cherry-studio-app

All 13 skills in this repo
  • Expo Cicd Workflows

    CherryHQ/cherry-studio-app

    Helps understand and write EAS workflow YAML files for Expo projects.

    4k GitHub starsUsed in 6 repos~870 tokens
    Auto-check passed
  • Native Data Fetching

    CherryHQ/cherry-studio-app

    A skill your agent uses when implementing or debugging ANY network request, API call, or data fetching.

    4k GitHub starsUsed in 6 repos~2.9k tokens
    Auto-check: notes
  • Building Native UI

    CherryHQ/cherry-studio-app

    Complete guide for building beautiful apps with Expo Router.

    4k GitHub starsUsed in 8 repos~2.6k tokens
    Auto-check passed
  • Diagnose

    CherryHQ/cherry-studio-app

    Opt-in evidence-first causal diagnosis for bugs, browser or app/device failures, flaky behavior, and performance regressions.

    4k GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Improve React

    CherryHQ/cherry-studio-app

    Survey a whole React codebase as a senior React engineer, using React Doctor's scan as evidence, then produce a prioritized audit and self-contained implementation plans for other agents (or cheaper…

    4k GitHub starsUsed in 3 repos~3k tokens
    Auto-check: warnings
  • Diagnose Fix Loop

    CherryHQ/cherry-studio-app

    Iterative diagnose-and-fix workflow that repeatedly uses the diagnose skill to find a proven problem, plan the smallest credible improvement, implement it, re-diagnose, and continue until no useful…

    4k GitHub stars~1.1k tokensUpdated today
    Auto-check passed

Categories

Questions about Expo Tailwind Setup

What does Expo Tailwind Setup do?

Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling. Expo Tailwind Setup is an agent skill from CherryHQ/cherry-studio-app.

When should I use Expo Tailwind Setup?

Expo Tailwind Setup fits situations like: tasks that involve Cross-platform mobile apps; tasks that involve CSS and styling.

How do I install Expo Tailwind Setup in Claude Code?

Run `npx skills add CherryHQ/cherry-studio-app --skill expo-tailwind-setup -a claude-code`. Or copy the skill folder (.agents/skills/expo-tailwind-setup in CherryHQ/cherry-studio-app) into .claude/skills/expo-tailwind-setup in your project. Claude Code loads it when a task matches its description.

How do I install Expo Tailwind Setup in Codex?

Run `npx skills add CherryHQ/cherry-studio-app --skill expo-tailwind-setup -a codex`. Or copy the skill folder (.agents/skills/expo-tailwind-setup in CherryHQ/cherry-studio-app) into .agents/skills/expo-tailwind-setup in your project. Codex loads it when a task matches its description.

Can I use Expo Tailwind Setup in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add CherryHQ/cherry-studio-app --skill expo-tailwind-setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/expo-tailwind-setup, .gemini/skills/expo-tailwind-setup, .github/skills/expo-tailwind-setup and .opencode/skills/expo-tailwind-setup in your project.

What does Expo Tailwind Setup need to run?

Going by SKILL.md and its folder, Expo Tailwind Setup needs the command-line tools its instructions call (npx). Our summary lists: Node.js.

Does Expo Tailwind Setup access the network?

SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Expo Tailwind Setup safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Expo Tailwind Setup use?

Expo Tailwind Setup is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Expo Tailwind Setup use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Expo Tailwind Setup?

Skills that share tags, products or a category with Expo Tailwind Setup: Weapp Tailwindcss Lynx (weapp-tailwindcss/weapp-tailwindcss, 1.9k stars), Weapp Tailwindcss React Native (weapp-tailwindcss/weapp-tailwindcss, 1.9k stars), Screenmap (aleqsio/screenmap, 242 stars) and Expo Brownfield Integration (mweinbach/agent-coworker, 156 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Expo Tailwind Setup?

CherryHQ (a GitHub organization) maintains it in CherryHQ/cherry-studio-app, which has 3,974 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 8, 2026.

Source: CherryHQ/cherry-studio-app on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.