Giter Site home page Giter Site logo

uikit's Introduction

UIKit JavaScript component framework

UIKit is a small (4kb minified / gzipped) collection of flexible, cohesive, decoupled components for the modern web. With an emphasis on structure-only styling making it simple to apply application specific styling. UIKit is not a replacement for larger UI frameworks, nor is it a CSS framework such as Bootstrap. UIKit is still a work in progress, check the Issues.

NOTE: all of these components now live in their own individual repos found here github.com/component. I will still accept patches for UIKit, however active development has moved to components, as they're fundamentally superior to existing js sharing techniques.

Components

  • ui.Emitter an event emitter used throughout various components
  • ui.Card a double-sided "card" powered by 3d transforms
  • ui.ColorPicker an elegant scalable color picker
  • ui.Overlay an overlay used by ui.Dialog
  • ui.Dialog a dialog component sporting optional modal and overlay functionality
  • ui.Confirmation a confirmation dialog building on ui.Dialog
  • ui.Notification an unobtrusive growl-like notification

Custom builds

Each release includes a pre-built ./build directory containing ui.js and ui.css, however if you wish you may re-build with make, by default including all components:

UIKit build

You may specify the list of components to build, and their markup, styles, and javascript will be added to ./build/ui.{js,css}:

UIKit custom build

Running tests

Tests are run with Mocha, first install the node.js deps:

  $ npm install

Then run the tests:

  $ make test

uikit's People

Contributors

bpierre avatar henrikjoreteg avatar jpjoyal avatar pgherveou avatar tj 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

uikit's Issues

Notification effects do not work with Bootstrap

I'm using UIKit for notifications, and I'm also using Twitter Bootstrap (v2.0).

I can get notifications to appear, but none of the effect animations work. If I remove Bootstrap from the page, then the animations work. Haven't been able to figure out why this is yet.

mixins

Showable(), Moveable(), etc

How to build individual/custom builds

I tried make COMPONENTS=notifications but I get this error:

Kellys-MacBook-Pro-2:uikit kel$ make COMPONENTS=notifications

path.existsSync is now called `fs.existsSync`.

/Users/kel/Projects/uikit/support/build.js:98
    if (err) throw err;
                   ^
Error: ENOENT, open 'lib/components/notifications/notifications.js'
make: *** [ui] Error 1

hide fired twice wne using overlay

I just tried this code from the demo page adding overlay caused the event to be fired twice
Didn't check why yet, any idea ?

new ui.Dialog({ title: 'Title', message: "I'm a simple dialog" })
        .closable().overlay().show().on('hide', function(){console.log("hide")})

lists

with various styles, grids, animated filtering etc

Integrate with non-node project

Hi, this isn't a bug, but just a question. Not sure if I'm posting the right place. However, do you have an example of how to integrate this with a non-node project...such as a sinatra app?

Thank you.

add more themes

make it easy to theme by laying out all the components in one html document so that it's really simple to work on themes

inherit from jQuery

not sure if jquery really facilitates this, will have to take a look but it would be nicer to have button.appendTo(something) vs button.el.appendTo(something)

sprintf-style args

for dialog(), notify() etc:

ui.notify('Email sent to %s', user.email);

Confirmation dialog: keyboard (enter and tab) support

The native confirmation dialogs let you press enter to immediately confirm, but more importantly, one of the buttons auto-focuses, and you can immediately tab between those buttons.

Would be nice for the UIKit confirmation dialog to have similar awesome keyboard support. At the very least, they should be immediately tab-able (I know this means low tabindex but I'm a noob beyond that, sorry). It'd be nice if we could optionally specify which button should have auto-focus.

Great work on UIKit otherwise -- love it!

unbind keydown

Just wondering shouldn't we do that just to be safe ?

  Dialog.prototype.remove = function(){
    this.emit('hide');
    this.el.remove();
    $(document).unbind('keydown.dialog');
    return this;
  };

card

flipping the card only shows the mirrored color picker, not a paragraph of text like it says

Chrome 16

escape & confirmation

nothing is triggered when a user click escape on an "escapable" confirmation dialog
Should we emit something on escape and call the callback ?

Color picker mouse out events

When dragging the color picker indicator out of the box and release outside the indicator starts to follows the mouse.

Overlay transparency for IE8

Hey, just wondering, any reason you used opacity: 1 and background: rgba(0,0,0,.75) in overlay.css instead of a solid black background and 0.75 opacity? Adding filter: alpha(opacity=75) would allow it to then work in IE8 with no seeming downside for modern browsers.

lock body scroll when showing overlay

I hard coded something like that in my local branch, to lock the scrolling when showing the ovelay
Do you think this is an option we should expose to the api ?

  Overlay.prototype.show = function(){
    $('body').css('overflow', 'hidden');
   ...
  };
  Overlay.prototype.hide = function(){
    $('body').css('overflow', '');
   ...
  };

sticky elements

sticky headers, relative to current pos, stick to points etc

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.