Coder Social home page Coder Social logo

brick's Introduction

Brick

Build Status

Brick is a collection of UI components designed for the easy and quick building of web application UIs. Brick components are built using the Web Components standard to allow developers to describe the UI of their app using the HTML syntax they already know.

Install

Brick can be installed using the Bower package manager:

bower install mozbrick/brick

To use Brick in your project, place the following in the <head> of your main HTML:

<script src="bower_components/brick/dist/platform/platform.js"></script>
<link rel="import" href="bower_components/brick/dist/brick.html">

If you are already using Polymer, platform.js or a web browser that supports Web Components, you do not need the above <script> tag.

Development

Brick (and its components) are developed using tools built in JavaScript running on node.js.

The individual components are developed in their own GitHub repositories.

The mozbrick/brick repository contains the distributions of all the components packaged together as well as tools for building the distributions.

To work on Brick, you will need the following node tools:

npm install -g bower gulp

Building Brick from source

Once you have the prerequisites, you're ready to clone and build from source.

Run the following:

git clone [email protected]:mozbrick/brick.git
cd brick
npm install
bower install
gulp build

If you'd like to work on all the Brick components at once, try this handy script:

#!/bin/bash
repos=(
  brick
  brick-action
  brick-appbar
  brick-button
  brick-calendar
  brick-common
  brick-deck
  brick-dialog
  brick-flipbox
  brick-form
  brick-input
  brick-layout
  brick-listview
  brick-menu
  brick-storage-indexeddb
  brick-tabbar
)
for repo in "${repos[@]}"
do
  git clone https://github.com/mozbrick/$repo.git;
done

Components

Here is a list of the components currently in the primary distribution of Brick:

If you encounter issues with a component, please file issues against the individual component repositories.

brick's People

Contributors

bcbcarl avatar casarock avatar christiankohler avatar csuwildcat avatar ldoubleuz avatar mythmon avatar nicola avatar nschonni avatar pathawks avatar pennyfx avatar potch avatar rodms10 avatar ryanseys avatar scottmichaud avatar sole avatar tofumatt 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

brick's Issues

Make?

Hey guys

Make?

In nodeland??

I thought Grunt was the commonly accepted solution to the building-phase-problem.

:-)

x-iconbutton tag does not preserve CSS class

steps to reproduce:

  1. create a back button <x-iconbutton class="back">Back</x-iconbutton>
  2. inspect the element in the browser and see that it has turned into <span class="x-iconbutton-label">
  3. note that the CSS class has not been carried over into the span tag

x-calendar quoting bug for Date object

Why does the following work

<x-calendar chosen='[["2013-07-10", "2013-07-11"]]' controls multiple></x-calendar>

and the following doesn't work?

<x-calendar chosen="[['2013-07-10', '2013-07-11']]" controls multiple></x-calendar>

double/single quote assignment for attributes and arrays should not affect whether it is a valid Date object?

x-tooltips stretch parent containers even when not visible

When x-tooltips are not visible, they still affect document flow, causing parent containers to stretch if the tooltip is too large.

Attempts at setting display:none when hidden remove capability for CSS transitions (short of using requestAnimationFrame, which isn't supported on Android browsers). Currently looking into a width/height 0 based approach.

Layout demo flexbox issues in FF18

At the moment, if the section of an x-layout tag causes overflow, it won't constrain its height to fit the phone demo area on the demo page in FF18 (ie: old flexbox support). However, it will act fine in the testing page in component/layout/demo/testpage.html.

Since release is so close and this is a demo page only issue, this isn't a major issue, but I'm filing this issue as a reminder to go back and debug it later.

Allow clicking on a specific date to create an event

It would be good to allow a double-tap/click to open an event option where we can enter information. It would be even better if the event could allow me to add in custom HTML (if I want to include <ul><li></li></ul>, <h1>, <form> etc)

Localizing x-calendar

Need to add support for other languages for month names in x-calendar, either with more labels or with the option to add custom labels

Add Date Range selection to x-calendar

I highly recommend adding proper date range selection to the x-calendar component as selecting multiple dates one by one is not what users expect. Every calendar "widget" should provide this feature (and I guess most of the good ones do).

website is down

I just noticed http://mozilla.github.io/brick/index.html is down. I don’t know how else to contact you, so I create this issue hoping you get an email. Here is the error on homepage:

Error 503 Backend is unhealthy

Backend is unhealthy
Guru Meditation:

XID: 3654671732

Varnish cache server

Move each component into its own repo

Once the components are moved into individual repos I can register them with Bower and add them to the X-Tag Registry.

There are also other advantages like versioning and issue tracking on a per element basis.

Styling x-tabbar-tab

How to style x-tabbar-tab? Neither

x-tabbar-tab {
    color: #fff;
    background: #7cc4e7;
}

nor

#x-tabbar-tab-custom {
    color: #fff;
    background: #7cc4e7;
}

seem to work.

Integration with other form elements could stand some work

Hello. First, thanks for the open stuff. I think I'd much prefer this library to some others.

Now, here's the trouble. On a simple, existing, uninteresting form I added a date picker. It works! What it doesn't (yet) do is "integrate": by that I mean crafting style to match the existing form isn't obvious, what with some extra wrapping with their own bordering and padding. There's also some data format hinting in the pick element that should really be matched on other elements (email, number input) but we don't have info how to do that.

Your work is beta so in principle things like this are TODO. I'm just ahead of the curve. ;-) Thank you!

Layout and Decks together don't seem to work.

I tried to embed a deck inside a layout and while the header/footer displayed, the deck content did not.

Code:

    <header>
        I'm the header!
    </header>
    <section>

        <x-deck id="mainDeck">
            <x-card>
                0
                <span>I'm the first card!</span>
            </x-card>
            <x-card >
                1
                These cards can contain any markup!<br>

            </x-card>
            <x-card>
                2
            </x-card>
        </x-deck>
    </section>

    <footer>
        <button id="prevButton">Previous</button>
        <button id="nextButton">Next</button>
    </footer>

</x-layout>

Note - it works in Firefox, but in Chrome the deck content is hidden.

Automated testing

Let's get a basic presence on Travis, and expand from there! I'll start with the basic "does the current brick bundle even load without JS errors" heartbeat.

x-deck and x-slide should respond to swipe gesture

First let me tell you, I think brick is a very cool project. In order to learn more about brick, I started developing a simple Firefox OS app using it. I used x-slide, and then pushed to the phone -- thinking to myself: it is all going to work out of the box. Little did I know, it seems that brick currently does not handle swipe gestures at all.

When someone uses a slide deck, they expect to be able to naturally swipe left and right -- when the app runs on a touch device.

Here are two questions for you:

  • what are your current plans for adding swipe gestures, to the x-slide and x-deck
  • how do you envision this kind of event handling be added to brick elements in general?

And last, I like to express my interest in helping to find a solution and implement it. So, please let me know what your thoughts are, and if you are open to community contributions. Thanks!

Safari no-go

Demos work great for me in Win7 Firefox, but not in Safari (not Win7, OS X nor iOS).

Not being able to play with it in a mobile browser makes this a nonstarter for me at the moment.

clicking dates in next/previous month picks wrong date

On http://mozilla.github.io/brick/demos/datepicker/index.html , click to bring up the date picker, then click a grayed-out date from the next or previous month; for example, in September 2013, click the grayed-out 2 for October 2nd.

Result: instead of picking 2013-10-02, or advancing to October without selecting anything, it advances to October and picks whatever date is underneath where you clicked in the new month, in this case 2013-10-30. That's clearly the wrong behavior. If your click location is still gray in the new month, it does something weirder like picking a random date from that column; for example, in December 2013 click, click January 4 and it jumps to Feb 1st!

This in Firefox 23.0 on Ubuntu 13.04. The "Forcing polyfill UI view" does the right thing in Chromium 28.0.1500.71 Ubuntu 13.04

Syntax Error in demo in Google Chrome

I use Chrome 28.0.1500.95 m and brick's demo page is failing with console message
Uncaught TypeError: Cannot read property 'labels' of undefined brick.js:2

Components Sidebar Dropping too low

The Components Sidebar is positioned a bit too low and as such tooltip menu option is hidden while scrolling down the page. This might be resolved possibly reducing the top margin for the Components Menu.

Attaching a screenshot of the page to better explain the issue:-

bricks components menu

Make x-calendar/x-datepicker responsive

Right now, the days of x-calendars are a fixed size. We should change this to be more responsive using percentages of the container calendar.

May want to refactor the calendar content sizes to be based on the calendar's size instead of the other way around for a more responsive approach.

Separate Functional and Visible styles

I'd like each component to have a functional style file and a visual style file that we can optionally leave out in favor of other skins.

I'm volunteering to do this separation as part of the stylus migration.

Font filename misspelled

OpenSans-Semibold.ttf in dist/ needs to have an uppercase "b" in "bold". Compare what the CSS file says, and use the exact same spelling :)

@mattbasta pointed it out to me that my app has a 404, and this was why.

Thanks!

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.