Code Monkey home page Code Monkey logo

eo-textdraw-editor's Introduction

eo-textdraw-editor's People

Contributors

dependabot[bot] avatar eoussama avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

eo-textdraw-editor's Issues

๐Ÿช› Tools

Toolbox buttons should be able to support nested options, for example, the text textdraw should offer shortcuts for creating text textdraws in all four font types.

Toolbox tools:

  • Box textdraw
  • Text textdraw (Stylized, Normal, Thin, Bold)
  • Sprite textdraw
  • Model textdraw
  • Comment
  • Zoom
  • Move
  • Delete
  • Board background
  • Toggle grid
  • Export textdraws
  • Import textdraws
  • Duplicate board
  • Reset board

๐Ÿ“ Editor

Editor should contain all core components, toolbox, board, options, layers...etc.

  • Editor component
  • Editor page

๐Ÿ“œ Review properties

Add the remaining properties for all elements respectively.

Resources:

Meta properties:

  • id: Element id (string; randomly generated)
  • type: Element type (enum; box, text, sprite, preview)
  • name: Element name, used to blend in the UI (string; generated default value)

Other properties

  • backgroundColor
  • position
  • size
  • color
  • backgroundColor
  • useBox #10
  • shadow
  • outline
  • alignment
  • global
  • selectable
  • font
  • text

๐ŸŽฏ `Layer` Definition

This issue details the Layer object and explains its role and purpose.

A layer is auto-created whenever a new textdraw is added to the board. A textdraw element may or may not be associated with a layer, having said that, a present textdraw on the board should always be associated with a layer that controls its visibility, write mode (read-only), and render order.

Layers provide the following features:

  • Visibility control
  • Write/Read mode
  • Affects textdraw render order
  • Terminates associated textdraw when deleted

๐Ÿงฐ Toolbox

There should be a toolbox component to the left of the screen (by default), it should host all sorts of components and tools that the user can use.

The toolbox panel, like the rest of the panels, should be draggable and arrangeable as the user sees fit, it should also be toggleable. Shortcuts are a must and some tools can be dragged into the board (like textdraws, comments, ...etc)

  • #66
  • #67
  • Shortcuts
  • Allow drag and drop
  • Collapsible
  • Arrangeable

๐ŸŽฏ `TextDraw` Definition

This issue details the base TextDraw object.

A textdraw element is a base for all entities, it provides basic drag-n-drop and resizing capabilities as well as a few common color controlling properties.

โฒ๏ธ History

Added undo and redo functionality.
The editor board should keep track of changes on entity base.

image

๐ŸŽฏ `Board` Definition

This issue goes in-depth about defining the Board object.

Boards serve as a host for textdraw elements and render them based on the state of their associated layer. In a way, the board hosts layers which in turn are associated with a textdraw.

  • Board info (resolution, mouse pos, img)
  • Zoom
  • Move
  • Snap to grid
  • Background (dotten, lines, image, color)

Options

Options should appear as a side element next to the toolbar, it should contain two panels, one for creation and one for edition.

The options panel should have controls for editing all relevant properties for a selected textdraw element.

๐Ÿ–ผ๏ธ Logo

Create a suitable logo for this project. I'm thinking something about a translucent background and some text.

  • Logo
  • Favicon

Text element

Add a text element.
Should not be resized and should have editable text on the fly

๐Ÿชข Drag Bind

Draggable items should be bounded more efficiently.
As it stands, there is a bug with the left bind for textdraw after the board's parent element became absolutely positioned.

It would also help if there was a built-in workaround in the react-draggable library.

๐Ÿซ™ Panels

Panels are arrangeable elements that contain child panels and or elements.
Panels are responsible for binding the children's dimensions.

image

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.