{"_id":"@bingtang-rn/twrnc","_rev":"2-da90a362adec43f994fb5b893f80f337","name":"@bingtang-rn/twrnc","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@bingtang-rn/twrnc","version":"1.0.0","keywords":["react-native","harmony","harmonyos","twrnc"],"license":"MIT","_id":"@bingtang-rn/twrnc@1.0.0","maintainers":[{"name":"luyizouyuan","email":"189605613@qq.com"}],"homepage":"https://gitcode.com/rn_ohos_plugin/tailwind_react_native_classnames","dist":{"shasum":"510d282fc6742e94e45d6ee24b11f5bd374d1087","tarball":"https://registry.npmjs.org/@bingtang-rn/twrnc/-/twrnc-1.0.0.tgz","fileCount":62,"integrity":"sha512-/9kYM9Ib2HKdqUMLn1ZuMiWNcYf/aZWGfutBSRm5KjJYs4fKFA2Ni0Tzxu4bU1c4CPP9hzR0nz3US7V9krxeJQ==","signatures":[{"sig":"MEYCIQCnqMM/Q1onjI6Js71gmLvnnAdZ/51xSgTHQvqVKEv4QwIhAN99xRHRfQxlQMT/j9YRWoES2vJ3qbNQqgfGTE5SMLd4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191671},"main":"./src/index.ts","types":"./src/index.ts","module":"./src/index.ts","engines":{"node":">=18"},"gitHead":"5dc628b4893f0ccd5b9d142234d7cc0e681f5ae0","harmony":{"alias":"twrnc"},"private":false,"_npmUser":{"name":"luyizouyuan","email":"189605613@qq.com"},"repository":{"url":"https://gitcode.com/rn_ohos_plugin/tailwind_react_native_classnames","type":"git"},"_npmVersion":"11.12.1","description":"适配鸿蒙版本，提供tailwind_react_native_classnames组件。","directories":{},"_nodeVersion":"24.15.0","dependencies":{"tailwindcss":">=2.0.0 <4.0.0"},"react-native":"./src/index.ts","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","metro":"^0.81.0","react":"18.2.0","typescript":"5.0.4","@types/react":"18.2.79","react-native":"0.72.5","@react-native/typescript-config":"0.79.5","@react-native-oh/react-native-harmony-cli":"^0.77.50"},"peerDependencies":{"react-native":">=0.72"},"_npmOperationalInternal":{"tmp":"tmp/twrnc_1.0.0_1785999666694_0.9285670115874831","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"_id":"@bingtang-rn/twrnc@1.0.1","dist":{"shasum":"d30498cc1a33143a340d2b0677997920e6162f89","tarball":"https://registry.npmjs.org/@bingtang-rn/twrnc/-/twrnc-1.0.1.tgz","fileCount":62,"integrity":"sha512-Ne8Az8oqHBxawZbHqIEthjDSZXzK7aIIKpGHBCMI+qO/RLxFKPg+Yu6RIFyxf7IsuI4+wxeJNpXMXxVnpUg0Mw==","signatures":[{"sig":"MEYCIQCGY4AZ654lsaFddcoBj39MUKuGV2XDKwplo6KI+OLm3AIhALzRV85kMZHK3xIHginR4jJ7P+RrLjeALDMF2qSKi0H+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCNRzk7LljhhSMp076O00KJJ+9N3SDXZ/47L1wVJx4oXwIhANC393TBOSCBqaX6hscyMw4OjyjOOtsCUUU3/+tO244E"}],"unpackedSize":191876},"main":"./src/index.ts","name":"@bingtang-rn/twrnc","_from":"file:bingtang-rn-twrnc-1.0.1.tgz","types":"./src/index.ts","module":"./src/index.ts","engines":{"node":">=18"},"harmony":{"alias":"twrnc"},"license":"MIT","private":false,"version":"1.0.1","_npmUser":{"name":"luyizouyuan","email":"189605613@qq.com"},"homepage":"https://gitcode.com/rn_ohos_plugin/tailwind_react_native_classnames","keywords":["react-native","harmony","harmonyos","twrnc"],"_resolved":"D:\\code\\rn\\npm\\batch\\tailwind_react_native_classnames\\bingtang-rn-twrnc-1.0.1.tgz","_integrity":"sha512-Ne8Az8oqHBxawZbHqIEthjDSZXzK7aIIKpGHBCMI+qO/RLxFKPg+Yu6RIFyxf7IsuI4+wxeJNpXMXxVnpUg0Mw==","repository":{"url":"https://gitcode.com/rn_ohos_plugin/tailwind_react_native_classnames","type":"git"},"_npmVersion":"11.12.1","description":"适配鸿蒙版本，提供tailwind_react_native_classnames组件。","directories":{},"maintainers":[{"name":"luyizouyuan","email":"189605613@qq.com"}],"_nodeVersion":"24.15.0","dependencies":{"tailwindcss":">=2.0.0 <4.0.0"},"react-native":"./src/index.ts","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.3","metro":"^0.81.0","react":"18.2.0","typescript":"5.0.4","@types/react":"18.2.79","react-native":"0.72.5","@react-native/typescript-config":"0.79.5","@react-native-oh/react-native-harmony-cli":"^0.77.50"},"peerDependencies":{"react-native":">=0.72"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/twrnc_1.0.1_1790569902589_0.10120470464019271"}}},"time":{"created":"2026-08-06T07:01:06.516Z","modified":"2026-09-28T04:31:42.878Z","1.0.0":"2026-08-06T07:01:06.851Z","1.0.1":"2026-09-28T04:31:42.669Z"},"license":"MIT","homepage":"https://gitcode.com/rn_ohos_plugin/tailwind_react_native_classnames","keywords":["react-native","harmony","harmonyos","twrnc"],"repository":{"url":"https://gitcode.com/rn_ohos_plugin/tailwind_react_native_classnames","type":"git"},"description":"适配鸿蒙版本，提供tailwind_react_native_classnames组件。","maintainers":[{"name":"luyizouyuan","email":"189605613@qq.com"}],"readme":"# @bingtang-rn/twrnc for HarmonyOS\r\n\r\n本项目基于 [twrnc](https://github.com/jaredh159/tailwind-react-native-classnames) 开发，为 React Native 鸿蒙（OpenHarmony）适配版本。如果在使用过程中有任何问题，可以在GitCode提Issue，会及时跟进。issue地址：[issues](https://gitcode.com/rn_ohos_plugin/tailwind_react_native_classnames/issues)。\r\n\r\n## 版本对应关系\r\n\r\n| 鸿蒙适配包版本 | 原始库版本 | 支持 RN 版本 | Autolink | 编译 API 版本 |\r\n| ------------ | ---------- | ------------ | -------- | ------------- |\r\n| 见发布记录 | 4.16.0 | 0.72+ | 是/否 | API17+ |\r\n\r\n## 安装\r\n\r\n```bash\r\nnpm install @bingtang-rn/twrnc\r\n```\r\n\r\n## 使用\r\n\r\n```tsx\r\nimport tw, { useDeviceContext, useAppColorScheme } from 'twrnc';\r\n\r\nfunction App() {\r\n  useDeviceContext(tw);\r\n\r\n  return (\r\n    <View style={tw`flex-1 items-center justify-center`}>\r\n      <Text style={tw`text-blue-500 text-xl font-bold`}>\r\n        Hello twrnc!\r\n      </Text>\r\n    </View>\r\n  );\r\n}\r\n```\r\n\r\n> import 时使用原库名 `'twrnc'`，RNOH 通过 harmony.alias 自动映射到鸿蒙包 `@bingtang-rn/twrnc`。\r\n\r\n**平台差异**：\r\n- HarmonyOS 上 `Platform.OS` 返回 `'harmony'`，已添加到 PLATFORMS 数组，`harmony:` 前缀样式可正常生效\r\n- 部分样式属性（如 `elevation`、`shadowOpacity`）渲染效果可能与其他平台有差异，属 RN 框架层兼容性范畴\r\n\r\n**权限要求**：\r\n- 无需任何原生权限\r\n\r\n## Link\r\n\r\n| 版本 | 是否支持 Autolink |\r\n|------|------------------|\r\n| 当前版本 | 否（纯 JS 库，无需原生链接） |\r\n\r\n如使用版本支持 Autolink 且工程已接入，可跳过手动配置。\r\n\r\n<details>\r\n<summary>Manual Link 配置</summary>\r\n\r\n> **说明**：twrnc 为纯 JS/TS 库，无原生代码（ArkTS/C++），不需要原生链接配置。只需安装依赖即可使用。\r\n\r\n</details>\r\n\r\n## 属性 / API\r\n\r\n| API | 描述 | 参数 | 返回值 | HarmonyOS 支持 |\r\n|-----|------|------|--------|----------------|\r\n| `tw\\`...\\`` | tagged template 样式解析 | TemplateStringsArray + values | Style | ✅ 完全支持 |\r\n| `tw.style()` | 条件样式合并 | ...ClassInput[] | Style | ✅ 完全支持 |\r\n| `tw.color()` | 颜色提取 | color: string | string \\| undefined | ✅ 完全支持 |\r\n| `tw.prefixMatch()` | 前缀匹配检测 | ...prefixes: string[] | boolean | ✅ 完全支持 |\r\n| `tw.memoBuster` | 设备上下文变化标识 | — | string | ✅ 完全支持 |\r\n| `create()` | 自定义配置创建实例 | twConfig?: TwConfig | TailwindFn | ✅ 完全支持 |\r\n| `plugin()` | 自定义 Tailwind 插件 | pluginFunction: PluginFunction | CreatePlugin | ✅ 完全支持 |\r\n| `style` | 独立导出的 tw.style | ...ClassInput[] | Style | ✅ 完全支持 |\r\n| `useDeviceContext()` | 设备上下文同步 Hook | tw: TailwindFn, appOptions? | void | ✅ 完全支持 |\r\n| `useAppColorScheme()` | 应用颜色模式控制 Hook | tw: TailwindFn | [RnColorScheme, toggle, set] | ✅ 完全支持 |\r\n| `harmony:` 前缀 | HarmonyOS 平台专属样式 | 类名前缀 | — | ✅ 完全支持 |\r\n| `dark:` 前缀 | 暗色模式样式 | 类名前缀 | — | ✅ 完全支持 |\r\n| `sm:/md:/lg:` 前缀 | 断点样式 | 类名前缀 | — | ✅ 完全支持 |\r\n| `portrait:/landscape:` 前缀 | 方向样式 | 类名前缀 | — | ✅ 完全支持 |\r\n| `retina:` 前缀 | 像素密度样式 | 类名前缀 | — | ✅ 完全支持 |\r\n\r\n### 平台差异\r\n- `elevation`、`shadowOpacity` 等 RN 样式属性在 HarmonyOS 上渲染效果可能不同，属 RN 框架层兼容性范畴，非 twrnc 适配问题\r\n\r\n### 使用限制\r\n- 无\r\n\r\n## 快速验证（运行 Example）\r\n\r\n### 前置条件\r\n\r\n| 依赖 | 版本要求 |\r\n|------|----------|\r\n| Node.js | >= 18 |\r\n| DevEco Studio | 5.0+ / 6.0+ |\r\n| HarmonyOS SDK | API 17+ |\r\n\r\n### 运行步骤\r\n\r\n**1. 克隆仓库**\r\n\r\n```bash\r\ngit clone <仓库地址>\r\ncd <仓库目录>\r\n```\r\n\r\n**2. 安装依赖并构建**\r\n\r\n```bash\r\nnpm install --legacy-peer-deps\r\nnpm pack           # 生成 tgz 包（会自动触发 prepare 构建 JS 产物）\r\n```\r\n\r\n**3. 进入 example 目录，安装依赖**\r\n\r\n```bash\r\ncd example\r\nnpm install --legacy-peer-deps\r\n```\r\n\r\n**4. 生成 JS Bundle**\r\n\r\n```bash\r\nnpm run dev\r\n```\r\n\r\n产物：`harmony/entry/src/main/resources/rawfile/bundle.harmony.js`\r\n\r\n**5. 用 DevEco Studio 打开鸿蒙工程**\r\n\r\n- 打开 DevEco Studio\r\n- 选择 `example/harmony` 目录\r\n- 等待 Sync 完成\r\n\r\n**6. 编译并运行 HAP**\r\n\r\n在 DevEco Studio 中点击运行按钮，将 HAP 安装到设备/模拟器。\r\n\r\n> **注意**：Example 中已预置插件依赖和 Package 注册，无需手动配置 Link。\r\n\r\n## 约束与限制\r\n\r\n### 兼容性\r\n\r\n- RNOH: 0.72+\r\n- HarmonyOS SDK: API 17+\r\n- DevEco Studio: 5.0+\r\n\r\n## 遗留问题\r\n\r\n无（或列出已知问题）\r\n\r\n## 开源协议\r\n\r\n本项目基于 [MIT License](https://github.com/jaredh159/tailwind-react-native-classnames/blob/master/LICENSE)，详见 [LICENSE](./LICENSE) 文件。\r\n","readmeFilename":"README.md"}