Code Monkey home page Code Monkey logo

lumx's Introduction

lumX

Join the chat at https://gitter.im/lumapps/lumX

The first responsive front-end framework based on AngularJS & Google Material Design specifications. lumX will help you design your applications faster and more easily. We followed Google Material Design recommendations to bring the best experience to your users.

Quick start

Three quick start options are available:

  • Download the latest release.
  • Clone the repo: git clone https://github.com/lumapps/lumx.git.
  • Install with NPM: npm install official-lumx (or Yarn: yarn add official-lumx).

Documentation

lumX's documentation, included in this repo in the demo directory, is built with Gulp and hosted on Google App Engine at http://ui.lumapps.com. The docs may also be run locally.

Running documentation locally

  1. If necessary, install the Python SDK of Google App Engine.
  2. In your environment, declare the variable APPENGINE with the path to your Google App Engine binaries. For example, using bash in a Unix system with the default path will need to edit the .bashrc in your home to add:
    export APPENGINE=/home/USER/google-cloud-sdk/bin/

Then install all dependencies:

  • Run npm install (or yarn install).

Then run the build system and the server:

  1. Run gulp.
  2. In an other terminal, run ./launch.sh (or ./dlaunch.sh if you want to use Docker, recommended on MacOS X).
  3. Visit http://localhost:8888 in your browser, and voilà.

or

  1. Run gulp serve.
  2. Visit http://localhost:8080 in your browser, and voilà.

How to get help, contribute, or provide feedback

Please refer to our contributing guidelines. The roadmap is available in this repo.

Copyright and license

Code and documentation copyright 2018 LumApps. Code released under the MIT license.

lumx's People

Contributors

akinjide avatar arnaudvalle avatar aureldent avatar beau6183 avatar bizot avatar clementprevot avatar davidbonnet avatar emelois avatar flo5k5 avatar florentdinet avatar gitter-badger avatar gregorycat avatar jmtavares avatar jssevestre avatar malexandre avatar matmkian avatar mcastagnetti avatar mdklab avatar monzonj avatar pampul avatar philippebchn avatar pidupuis avatar ryanclark avatar sciotta avatar siteslave avatar sithdown avatar stephenycchang avatar thomascrevoisier avatar yofreke avatar zackarykonate avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lumx's Issues

Roadmap

Hi !
I see a lot of questions about new features (pagination, etc) in the issues.

Last week, at the GDG meetup, you mentioned that you might make your roadmap public.
As, like a lot of people, am waiting for certain components (such as expand row when clicking to load content as I saw in the demo the other day ^^), I am wondering if you still plan to make it public?

Reducing the CSS file size

At the moment, the CSS file from lumx is 150k large. It's indecent, even though the internet nowadays is pretty fast. The worst is that most of it will never be used.

I think we should have all this defined as placeholders (if it's possible, don't know enough about them) and then have a user custom value of the primary and secondary palette, with the wanted hue. Thus we'll be compliant with the Material Design spec, and still be lightweight.

We'll keep all pallette colors with only one hue defined in addition to all this to keep a large choice of colors if someone need different label color for example. But we need to not have this much classes for all the hue of all the colors in the CSS. It's useless and not material-designy (the user will be able to use more than one primary and one accent color).

I'm not sure if what I'm proposing is the best solution.

Poke @matmkian and @Teeweetep, really important matter.

Modal not scrollable

Is it possible to manage overflow on modal dialog ? I have a huge form into a modal and I can't scroll.
Thx

Maybe add this features.

On the selects directives like here (http://ui.lumapps.com/directives/selects).

  • On the first example when I start filtering by writing for example "am" it should be good that when you press the key "Enter/Return" the field fills-up with the first filtered result (in this case [email protected]).
  • Also after I choose "[email protected]" by mistake or not. If I open the drop-down again the previous entered text for filtering remains there and there is no "X" for fast clearing the text field. (If your intention is to keep the text when re-opening the select, I would like the "X")

Sorry by my bad english, I hope this helps. Also Good Job.

Rework all the documentation

  • Rework all examples by using embeddable Plunkr or another solution. Actually there is code duplication between the app.js and the JS included in the example. Including just a plunkr by it's ID would be much simpler and with a better presentation. It will also force the creation of a standalone Angular App only for the current directive, showing the modularity of LumX.
  • Rework all directives & service to include an API & attributes documentation like AngularJS official documentation.
  • Add all the icons in documentation.

Date picker events

Hi !
In my application, I usually trigger an action when a field changes.
To do that, is simply use the ng-blur directive.
I used to use an input type="date" until you released your date picker.
the native input date worked well except that it was really ugly.
Unfortunately, I can't reproduce the same behaviour with your date picker.

There are 2 things I can't reproduce :

  • open the date picker when it has focus (when pressing tab from the previous field in my form, it should get the focus and open)
  • bind an event such as ng-blur when the value is updated without having to watch it.

Do you thinks this could be possible?

dynamic add and remove lxTabs

Hi.
I'm using lxTabs for adding and remove tab dinamically. But this generate grafical bug.

image

image

I have change the $watch on the variable activeTab in the LxTabsController: now i call setLinksColor and setIndicatorPosition into an $timeout(function () {}). This resolve grafical bug on tab selector but don't resolve grafical bug on label input

regards

Browser support?

I'm not seeing anything about supported browsers. Is there any legacy support or is this for evergreen browsers only?

Add a datepicker with popup option

I need a datepicker with popup option. This is also usefull for mobile first.

I want to validate the a choosen date and give immediate response over the datepicker-Textfield with a red validation message. With your datepicker shown as a "dialog" you cover everything on the screen.
Also opening and closing a datepicker like a dialog is too much distortion for the user IMHO.

specify selected attribute in selects

One of the interesting feature of the standard tag and ng-options in angular is the ability to choose what in the object will be selected. For example, I have a list of users, I want to display the name in the options but I only want the selected to bing the 'id' so I can fill my object with only the 'id' of the selected user. Is it possible to specify such a thing with lx-select?

Changelog

Hi,

It would be nice to have a changelog to know what has changed after a new version is released.
v0.2.0 has just been released and I haven't found a better way than going to the commits list to find out what has changed and what is new :/

File upload

I did not understand the file upload component works .
I tried to look where he put the file in scope but not found .
You can show a better example ?

Select does not work without "multiple"

I just updated my version of lumX and the select element doesn't seem to work anymore.
I don't have any javascript error.

<lx-select selected="[]" placeholder="Lorem Ipsum" choices="[{id:1, name:'Olivier Leplus'}, {id:2, name:'Toma Cristini'}]" multiple>
<lx-select-selected>
{{ $selected.name }}
</lx-select-selected>

<lx-select-choices>
{{ $choice.name }}
</lx-select-choices>
</lx-select>

This code works but, as soon as I remove the "multiple" attribute of the lx-select, It does not work anymore :/

I use lumX 0.2.23

Overriding default settings

I've just started to experiment with lumX and really like it. The guidelines that you've been following for development are great.

On the customization page http://ui.lumapps.com/getting-started/customization it says:

"You can override lumX default settings (dist/scss/main/settings/_settings.common.scss) if you want to change sizes, colors, etc."

I don't see that file anywhere in the repository. Should that be updated to (dist/scss/core/settings/_settings.defaults.css)? Or are there other default settings available that I'm not seeing?

I have a few other questions regarding customization that I wanted to get your opinion on.

Do you have any recommendations for theming? Such as setting base primary and secondary colors so that they don't require classes to be added throughout the site/app.

http://www.google.com/design/spec/style/color.html#color-ui-color-application

A specific example:
http://ui.lumapps.com/css/toolbars

  1. Is there a class that can be added to change the color of this toolbar? e.g. the equivalent of a btn--red
  2. Is there a designed way to set the default primary and secondary colors of elements like in the material design spec?
    Here the title bar is the primary color and the switch is the secondary.
    It would be very nice to be able to set a primary and secondary (or override defaults via theming css files) so that you can easily flip between themes and see it live in your app. If you have a specific way that you would like to see this done I can work on an implementation
    image

I very well may be missing something (or many things). Thanks for putting the time into this project!

Textarea

A nice textarea field could be awesome to 👍

css for btn--flat disabled

I just tried to add a form in a card but the btn-flat when disabled="disabled" is set looks like the normal disabled button.

ng-blur on lx-text-field

Hello,
I want to know if it will be possible to use the ng-blur on lx-text-field ?
Actually, it doesn't work, the lx directive crush the ng-blur previously specified

Confusing Class Structure

What is the logic with all of the weird, non-standard class name conventions?

i.e. lots of "--" and lots of "__" embedded in the classnames. This makes the framework look very unwieldy for someone looking to integrate it.

Floating items not auto-hiding properly on iPhone 4s

I tried browsing the documentation site on my iPhone 4s (iOS8, both Safari and Chrome). I found that floating items like dropdown, select box, tooltip, floating action button, sidebar etc are not auto-hiding themselves when touching somewhere else on screen.

img_6894
img_5915
img_1476

Allow the use of multiple progress on the same page

As it is, the progress component is a "global" page component, specially because the .hide method doesn't take any identifier/container.

In a page where there are multiple operations going on (for instance, when you're uploading multiple files) it is necessary to have more than on independent progress components.

Floating action button leaving artifacts on screen

After clicking the 'Floating action button' to trigger an action, it's leaving floating artifacts of the label, noticed this on Chrome on and iPhone 6+ and also on the latest Chrome Canary for OSX. Screen shots attached. 1st one, is before clicked, 2nd one is after clicked "remove song" label still remains.

img_0547

img_0546

File name too long in file input

When selecting a long file into file inputs, the file name is displayed on two lines.
Is this supposed to be the default behaviour?

Dropdown not closing in dialog box

dropdown not closing

It's caused by the stop propagation of the click in the dialog body. It's a good feature to have a click inside a dialog never leaving the dialog, but the dropdown listen to click on $window to know when it must be closed.
First solution that comes in mind: Make a service in which components register with a priority. These service will be the only one listening to click on $window, making the framework lighter on the browser. When the click is detected, it closes the components with the highest priority only. Thus we could remove all stop click propagation.

label for select field

Hi,

Another one for the one in charge of the select component :)
In text fields, we have a label.
But, for the select, there is not. So, I have to create a label and the field next to it as I used to do with bootstrap. It works well but I was wondering if it would be possible to find a beautiful way to include a label with the select component (maybe a css engineer could find a way ^^)

Manage codepage on windows for Sass

Windows users might have problems with the pagecode of the terminal to execute the gulp tasks (see #72). We need to update the codepage for the scripts in Windows only. It would be good to check why there is a problem on xterm on Mac OS too.

Select don't work!

Hi,

I've tried use the select but don't worked.
I've tried follow the examples and guideline but they don't worked too!

Do you guys know about that?

TextField

Hi guys,

When I type some value in textfield, I receive the bellow error:

image

image

Follows the code:

image

Mask

Hi again,

Exist some way to use mask in textfield?
I've tried use the ui-utils-mask but don't worked.

bower install fails

Here the output :

bower install lumx --save
bower lumx#*                    cached git://github.com/lumapps/lumX.git#0.1.7
bower lumx#*                  validate 0.1.7 against git://github.com/lumapps/lumX.git#*
bower jquery.transit#feat/stop-transition       not-cached [email protected]:lumapps/jquery.transit.git#feat/stop-transition
bower jquery.transit#feat/stop-transition          resolve [email protected]:lumapps/jquery.transit.git#feat/stop-transition
bower underscore#~1.7.0                             cached git://github.com/jashkenas/underscore.git#1.7.0
bower underscore#~1.7.0                           validate 1.7.0 against git://github.com/jashkenas/underscore.git#~1.7.0
bower velocity#~1.1.0                               cached git://github.com/julianshapiro/velocity.git#1.1.0
bower velocity#~1.1.0                             validate 1.1.0 against git://github.com/julianshapiro/velocity.git#~1.1.0
bower jquery#~2.1.1                                 cached git://github.com/jquery/jquery.git#2.1.1
bower jquery#~2.1.1                               validate 2.1.1 against git://github.com/jquery/jquery.git#~2.1.1
bower angular#~1.3.3                                cached git://github.com/angular/bower-angular.git#1.3.4
bower angular#~1.3.3                              validate 1.3.4 against git://github.com/angular/bower-angular.git#~1.3.3
bower neat#~1.6.0                                   cached git://github.com/thoughtbot/neat.git#1.6.0
bower neat#~1.6.0                                 validate 1.6.0 against git://github.com/thoughtbot/neat.git#~1.6.0
bower angular#>= 1.0.8                              cached git://github.com/angular/bower-angular.git#1.3.4
bower angular#>= 1.0.8                            validate 1.3.4 against git://github.com/angular/bower-angular.git#>= 1.0.8
bower angular#~1.x                                  cached git://github.com/angular/bower-angular.git#1.3.4
bower angular#~1.x                                validate 1.3.4 against git://github.com/angular/bower-angular.git#~1.x
bower angular#>=1 <1.3.0                            cached git://github.com/angular/bower-angular.git#1.2.27
bower angular#>=1 <1.3.0                          validate 1.2.27 against git://github.com/angular/bower-angular.git#>=1 <1.3.0
bower angular#~1.2.16                               cached git://github.com/angular/bower-angular.git#1.2.27
bower angular#~1.2.16                             validate 1.2.27 against git://github.com/angular/bower-angular.git#~1.2.16
bower jquery#>= 1.9.0                               cached git://github.com/jquery/jquery.git#2.1.1
bower jquery#>= 1.9.0                             validate 2.1.1 against git://github.com/jquery/jquery.git#>= 1.9.0
bower bourbon#>=3.1                                 cached git://github.com/thoughtbot/bourbon.git#4.0.2
bower bourbon#>=3.1                               validate 4.0.2 against git://github.com/thoughtbot/bourbon.git#>=3.1
bower jquery.transit#feat/stop-transition          ECMDERR Failed to execute "git ls-remote --tags --heads [email protected]:lumapps/jquery.transit.git", exit code of #128

Additional error details:
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Enhancements for Thumbnail

Here are some suggestions to possibly consider:

  • Move the logic to compare old !== new values into the controller
  • Instead of watching the internal init variable to gather changes for src, width, and height. Why use $timeout() to async call call ctrl.update(element, attrs); which would check for changed values.
  • Cache the image loads in an ImageService registry

    AFAIK, the img.onload() will only fire the first time the browser loads the image. So a cache is necessary to cross-reference load success with src url. This way other thumbnails with the same url will not use the onload() callback.

Also I am curious why this approach was not used:

<lx-thumbnail 
     ng-src="{{item.srcURL}}" 
     lx-thumbnail-width="{{item.width}}" 
     lx-thumbnail-height="{{item.height}}" 
  />

linear progress not working anymore

lumX v0.2.23 on Chrome macos

LxProgressService.linear.show('#E95F47', '#progress');
LxProgressService.circular.show('#5fa2db', '#fff', '#progress2');

The circular works but for some reason, the linear does not work.

General component accessibility

Every component I have checked is sorely lacking in accessibility support. For your framework to be usable, it must support keyboards and assistive technologies such as screen readers. Is this on your roadmap?

Make lumX available via npm with browserify

First of all, I'd like to say thank you for this project. It is already far better than angular-material (widget set, look out of the box, performance) and hopefully will continue to improve.

I would love to be able to use lumx via npm+browserify, without bower. It's rather unfortunate that there is no consensus on packaging and dependency management for the frontend development. It appears (to my novice eye) that npm+browserify and bower are two top choices at the moment, and it also appears that npm and browserify are both very versatile and ready to evolve to support frontend more while bower is rather naive (nothing wrong with that, it's just that it doesn't do enough).

Initially I started my new project with angular-material and I was able to get all javascript dependencies set up with browserify, having single <script> element in index.html to load browserify-produced bundle.
I found angluIar-material lacking and was very glad to discover lumX. Trying to set it up with browserify I ran into to two problems. One of course is the topic of this issue - lumX doesn't seem to be available as npm module. Another is that even though all lumX's dependencies are available as npm modules, velocity.js ('velocity-animate' in npm registry) is expected to be a jquery plugin (dropdown menu element is looking for .velocity() method) and for some reason velocity doesn't register as jquery plugin when these components are loaded via browserify's require(). It appears that velocity.js itself no longer requires jquery and mere "presence" of jquery doesn't make it register as plugin.

I was able to get lumX (0.2.11) to work by adding all the dependencies as <script> elements, but using <script> and relying on browser globals feels like a step backwards compared to using modules with require().

Scrollbar zindex

I have a scrollbar (overflow-y) on an element, when I open a modal, the scrollbar is still here and overlap modal.

Date Picker does not work in FF 34.0.5

Hello,
Compliments for the project thus far. Looks already very good.

I tried to use the date picker. It works fine in Chrome and Safari but on FF when clicking inside the date field it doesn't do anything. Only when clicking on the label 'Pick a date', the date picker pops up.

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.