lokiwei / brick-design

全场景流式布局,可视化拖拽、随意嵌套组合、实时渲染、实时辅助线展示,实时组件间距展示、实时拖拽排序、状态域管理,可视化属性配置、可视化样式配置、多设备适配展示,支持逻辑渲染、模板字符变量、表达式、自定义方法、自定义状态

Home Page:https://brick-design.github.io/brick-design/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Brick Design

build status npm version npm downloads codecov

SNAPSHOT

brickd1 brickd2 brickd3

描述

基于React组件之间原始约束设计,还原真实开发中组件编码过程,所见即所得。当前版本还在开发中,新功能持续更新.....欢迎关注!

📦 Install

yarn add @brickd/react  @brickd/react-web @brickd/render

OR

npm install @brickd/react @brickd/react-web @brickd/render

Usage

import { createElement } from 'react';
import { BrickDesign, BrickTree, BrickProvider, useSelector, createActions,PROPS_TYPES } from '@brickd/react';
import { BrickPreview } from '@brickd/react-web';
import BrickRender from '@brickd/render';
import * as Ants from 'antd/es';
const divSchema = {
   propsConfig:{
      children:{
         label: '文本内容',
         type: PROPS_TYPES.string,
      },
      ...
   }
}
const componentSchemasMap = {
	'div':divSchema,
     ...
}
 
const config = {
   componentsMap:Ants,
   componentSchemasMap
}
const plugins = [(vDom, componentSchema) => vDom];
const customReducer = (state, action) => {
  const { type, payload } = action
  switch (type) {
    case 'customReducer':
      return { ...state }
    default:
      return state
  }
}
const App = () => {
  const { pageConfig } = useSelector(['pageConfig'])

  return (<BrickProvider initState={{...}} customReducer={customReducer} config={config} warn={(msg) =>console.warning(msg)}
  >
    <div onClick={() => createActions({ type: "customReducer", payload: { ... } })}> 出发action</div>
    <BrickPreview />
    <BrickDesign />
    <BrickRender pageConfig={pageConfig} createElement={createElement} plugins={plugins} />
    <BrickTree />
  </BrickProvider>);
}

run example

yarn  install

npm run start:example

Features

  1. 画布

    • 参考线
    • 组件间距查看
    • 拖拽改变组件形状
    • 拖拽实时预览
    • 组件: 复制
    • 组件: 删除
    • 父组件: 清除子组件
    • 组件排序
    • 模板:生成
    • 模板:添加
    • 快速预览
    • 撤销、重做
    • 样式可视化操作实时预览
    • 组件自由拖拽嵌套
    • 父子组件约束
    • 组件对象(vDom)扩展
    • 自定义reducer处理页面状态
    • 组件逻辑渲染
    • 方法节点
    • 网络数据获取
    • 网络数据获取
    • React
    • rax
  2. 组件树

    • 组件: 复制
    • 组件: 删除
    • 父组件: 清除子组件
    • 同级组件排序
    • 模板:生成
    • 模板:添加
    • 拖拽添加组件
    • 拖拽跨组件排序
    • 与画布实时映射
  3. 渲染器

    • 支持react
    • 支持rax
    • 支持plugins处理组件
  4. 代码生成器

    • 代码生成
    • 画布与代码相互转换
    • 画布与代码实时交互

技术交流

LICENSE

MIT

About

全场景流式布局,可视化拖拽、随意嵌套组合、实时渲染、实时辅助线展示,实时组件间距展示、实时拖拽排序、状态域管理,可视化属性配置、可视化样式配置、多设备适配展示,支持逻辑渲染、模板字符变量、表达式、自定义方法、自定义状态

https://brick-design.github.io/brick-design/

License:MIT License


Languages

Language:TypeScript 96.0%Language:Less 2.6%Language:JavaScript 1.4%Language:Shell 0.0%