React打造的视觉小说框架

一个轻量级、可定制且易于使用的视觉小说框架。

轻松构建丰富的叙事体验

无需学习新语言,没有固定模板——只需您的代码、您的风格和您的故事。
TypeScript 优先设计
使用完整的类型安全和编辑器支持编写故事。直接在代码中定义场景、对话和逻辑——无需自定义脚本语言。
完全可定制的界面
自定义每个元素以匹配您的愿景。从对话框到动画,您对展示和交互拥有完全控制权。
轻量级且可扩展
设计简洁高效,NarraLeaf 随您的项目一起扩展。无论您是在制作短篇视觉小说还是复杂的分支故事,框架都保持快速和可维护性。
基于组件的架构
使用可重用的 React 组件构建每个场景、角色和选择。就像构建任何现代 Web 应用一样自定义布局和行为。

为什么选择 TypeScript

自信构建

TypeScript 通过类型安全、IDE 支持和与 CI/CD 流程的无缝集成,为更智能的开发提供动力。

类型安全的故事编写
:
利用 TypeScript 的智能自动完成和错误检查功能,编写更可靠、更易维护的故事代码。
强大的逻辑与真实生态系统
:
使用 JavaScript/TypeScript 的完整生态系统构建条件逻辑、可重用组件和动态叙事。
优雅且直观的语法
:
体验设计精美的语法,使故事编写感觉自然且表达力强,同时保持专业级的能力。
CI/CD 和工具链就绪
:
与现代开发工作流程集成——版本控制、测试和部署都自然地融入您的流程中。
scene.action([
  scene.background.char("/bg_park.png", new Dissolve(500)),
 
  "阳光温柔地透过树叶洒落。",
  "已经早上9点了,不知为何我今天醒来感觉比平时更精神。",
 
  Emma.show({ duration: 500 })
      .darken(0.3, 500, "easeIn")
      .char("emma_happy.png"),
 
  E`早上好,Alex!`,
 
  "一个女孩站在我身边,一如既往地开朗。",
  "我不知道她是怎么做到的,但Emma似乎总是心情很好。",
 
  A`Emma,我告诉过你多少次${b("不要", "#Ff0000")}不打招呼就偷偷加入我的晨间散步?`,
  E`你门没关——我怎么能忍住不来呢?`,
 
  Menu.prompt("我该怎么办?")
    .choose("想去吃早餐吗?", [
      E`真的吗?你终于邀请我出去了?那我们走吧!`,
    ])
    .choose("太早了。我们在这里休息一下吧。", [
      E`唉,你早上总是这么无聊。`,
      E`不过好吧,我们坐会儿。其实我带了点东西想给你看。`,
    ]),
]);
 

准备开始了吗?

让我们一起创造一些很酷的东西!