Giter Club home page Giter Club logo

clixr.io's Introduction

clixr.io is a web application built with Backbone.js, Ruby on Rails, jQuery-ui, and SASS.

Features

With clixr, users can:

  • create websites and publish them live to custom addresses of the form clixr.io/{custom_address}
  • add, remove, rename, and reorder pages on the website
  • create, drag, and resize boxes, images, buttons, horizontal lines, and images
  • create text content, with selectable fonts, sizes and colors
  • create menus linking to all current pages
  • change color and style of boxes, buttons, and menus
  • give buttons custom links to outside websites, internal pages, or email addresses
  • give the website a background, with a tiling pattern or background image and overlay

In addition, clixr supports:

  • autosaving
  • a unique edit page address generated for each user
  • a robust interface for handling overlapping items in the DOM, allowing users to reorder and select items that overlap the currently selected item
  • fade or instant transitions between pages

Features of the Code

User DOM elements in clixr are backed by backbone models which take care of saving and loading to the database via the Rails API. The default backbone .save() function is overwritten export all the relevant data from the DOM element.

Since each type of element shares functionality with the other types, there is an inheritance tree implemented with mixins for the element and element menu views.

One of my favorite features is the overlapping items menu. It is impemented using several different listeners. First, every element, on creation, subscribes to a global Z-index object, which gives each element methods to move itself in front of, or behind, any other given element, the calling of which will update the z-indexes on all other elements necessary to implement the change.

The overlapping items menu also employs listeners on the style and content of the currently selected element, as well as binding a recalculation of the overlaps to any drag or resize event, with the result that the menu updates in real-time to reflect all changes in the DOM.

clixr.io's People

Contributors

joshuasp avatar aastudent avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

clixr.io's Issues

drag sensitivity too high

when you try to click on an element to edit, if you move the mouse slightly, it drags rather than edits. we should add a minimum drag amount

elements appear over gridlines

not a big deal, but we should eventually change the html structure to make gridlines individual lines rather than a big box with borders

selected elements not to front

we should put the select box in front of everything, and move the selected element to front on drag, but on drop, the element should return to its normal position in the heirarchy

fonts

for fonts it might be cool to have a font url that you can drop in a font url from google fonts :)

ambitious

seems crazy ambitious, but if you manage your time well i think this will be an incredible final project. good luck :)

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.