1. Hello World! 基本的render方法接收2个参数:CSX程序和渲染dom对象。
  2. CSX CSX取名借鉴自JSX,Canvas-Svg-Xml,根据根节点的不同,自动切换为canvas或svg类型,两者功能完全等价。
  3. 高清方案 在高清屏(如手机、mac)中,canvas会模糊或者1px边框问题,请自行调整meta元素的scale缩放(默认为1),或者为canvas设置style,使其宽高为属性的0.5倍(对应dpr为2的倒数)。
  4. dom标签 常见2种标签:div和span,分别对应block和inline元素。其它也少量支持。
  5. 文本 支持自定义字体的文本,已内置解析字体信息。
  6. 文本自适应 单行文本自动缩小全展示。
  7. 弹性布局 flex基本被支持,这是在布局中很常见且实用的布局。
  8. 绝对定位 绝对定位也很重要,在一些提示窗口中有重大作用。
  9. 渐变 线性渐变、径向渐变、锥形渐变可以丰富图形表现,css、canvas、svg写法定义均不相同,统一至css标准。
  10. 变形 变形转换提供了便利的几何变换,css、canvas、svg写法定义均不相同,统一至css标准。
  11. 位图缓存 可以为节点开启位图缓存cacheAsBitmap,增加性能。
  12. 事件支持 和jsx的事件标准一样,以on{Event}形式书写,所有事件被顶层canvas/svg劫持实现响应。
  13. 几何标签 几何标签规定以$开头,默认内置了几种基础几何形状:line/circle/rect/ellipse/sector/polyline/polygon。
  14. 自定义几何标签 如果觉得基本的几何图形不够用,或者为了复用代码,可以注册自定义几何标签。
  15. 布尔运算 布尔运算,在多边形$polygon标签上支持。
  16. dom-diff 改变图形时需要重新渲染,对于canvas来说就是重绘,而svg重新生成的成本太大了,因此内置了dom-diff来提升性能。
  17. 响应事件 是否响应某个事件,内置已做好解析,确保事件发生的坐标在dom内且没有被遮盖,并考虑了matrix。如果想要自定义图形更加精准的响应,需要覆盖willResponseEvent方法。
  18. 可测试 ui测试是个非常麻烦的事情,这里提供了一种用virtual-dom来测试的方法。
  19. 图表示例 这里以常见的图表为例,展示了如何编写一个折线图,体现出代码量少、css规范零学习成本易维护的特点。
  20. 3d 结合自定义图形和线性渐变,以及结合线性渐变和transform,可以简单制作出较为炫的效果,比如3d柱状图。
  21. 火苗效果 结合图形标签和径向渐变,可以制作出火苗燃动的效果。
  22. 匿名自定义渲染 深度定制等自定义化UI情况需要直接使用底层canvas渲染的能力,这时候需覆写render()方法直接操控ctx。
  23. 组件 组件可以极大地复用代码,同时它拥有setState改变数据的能力,另外贴合WebComponent标准,对事件、样式形成ShadowDom。
  24. 自定义事件 组件还拥有自定义事件功能,它以on-{event}形式书写,扩展了事件通信机制。
  25. dom-api 考虑到灵活性、便利和性能等原因,dom风格操作api也被支持。
  26. icon 复杂的动态icon效果。
  27. 位图 除了矢量,还可以用img标签引用位图功能。
  28. 动画api 实现了Web Animation Api标准接口,并且增加了fps帧数控制。
  29. 遮罩 可以为一个节点(svg仅支持Geom)设置mask属性,这样它就作为上一个相邻节点的遮罩层出现。
  30. 动态加载 在一些展示或动画场景,希望能够通过配置的方式实现,这样能够灵活控制内容。动态加载能力实现了这一需求。
  31. 动态输入 直接输入JSON,生成动画,这是动态加载的更加直观的演示。
  32. 动画控制器 Root下有个animateController对象,作为总动画控制器,控制所有想被总控的动画。
  33. 插槽替换 在动态下发的基础上,如何创建可变图形和动画?这里提供了一种类似注入/插槽的功能,可以让设计师设计可变的部分,让程序员根据情况替换它。
  34. 高级插槽替换 仅仅替换变量太多单一,也可传入函数。
  35. 内部引用 这是专门为ide设计的内部引用数据格式,JSON的根级可以有library数组,存储引用数据。
  36. 外部引用 parse是可以递归嵌套的,可以在某个动态场景中导入使用别的json库。
  37. 混合代码 IDE导出的JSON数据,可以被编程CSX时使用。这是打通设计师和程序员的桥梁基础。
  38. 三角形仿射变换 为了实现贴图仿射变换,底层数学库提供了三角形任意变换方法,生成4*4的matrix供transform使用。
  39. 游戏基础 富交互+动画,拥有RIA小游戏实现的能力基础。
  40. 物理引擎 接入物理引擎,以matter-js为例。
  41. 性能测试 1000个节点的动画性能。

github source