Skip to content
This repository was archived by the owner on Feb 7, 2018. It is now read-only.

Add Icon, Link, Button, TextInput, CheckBox, Table, ControlledTable, ToolBar, and ToolBarFooter components.#28

Closed
cjcenizal wants to merge 18 commits intoelastic:masterfrom
cjcenizal:feature/table
Closed

Add Icon, Link, Button, TextInput, CheckBox, Table, ControlledTable, ToolBar, and ToolBarFooter components.#28
cjcenizal wants to merge 18 commits intoelastic:masterfrom
cjcenizal:feature/table

Conversation

@cjcenizal
Copy link
Copy Markdown
Contributor

@cjcenizal cjcenizal commented Dec 7, 2016

CC @uboness @alt74

Preview available at https://elastic.github.io/kibana-ui-framework/#/

New components

  • Icon
  • Link
  • Button
  • TextInput
  • CheckBox
  • Table
  • ControlledTable
  • ToolBar
  • ToolBarFooter

Outstanding components

  • Dropdown

Changes from design

  • Button interactive states. I found the hover and active states didn't contrast enough to make the "click" feel satisfying and visceral. As a user, you really want to feel like your click is doing something. So I added very subtle box-shadows to the Buttons in the hover state, and inset the shadows in the active state. I think this feels especially satisfying for the basic Buttons.
  • Link interactive states. The original Link hover and active colors looked almost like black on white, which made it look like regular text. This could lead to confusion for a user who hovers over a link only for it to "disappear". I changed these colors to be the same blue as the regular Link color, and added an underline on hover. This leverages the common anchor tag convention of showing an underline, and makes the hover state more noticeable.

Suggested explorations

  • Table lines. I find the 2px thick lines in the Table tend to overpower the content a bit, and also make it the Table feel like it's geared for ages 4-7. I think we can play with changing it to 1px, or maybe just reducing the thickness of the lines between each row to 1px. If we do the latter, then we would be expanding our visual language -- a 2px line indicates a container, and a 1px line indicates a separator within a container. I think this could come in handy as we need to find more ways to group and separate content. (Screenshot below)
  • ToolBar size. I think the size of the ToolBar causes it to overpower the Table a bit -- we want the Table to have more prominence since it's surfacing content. I think we can solve this by making the ToolBar shorter, and using less padding. This has the extra benefit of helping it visually match the ToolBarFooter's dimensions. (Screenshot below)
  • Form layout and elements. We need more Form explorations, e.g. form groups, tooltips, footer, help text, error messages, success feedback.
  • Tag legibility. I see a couple problems with the Tags in the Table. The white text on pastel background is really hard for me to read, especially on the orange. As mentioned before, they also look way too much like buttons... can we do some exploration into alternatives @alt74? I added some examples from other apps below.
  • Icon legibility. In the design, the Icons are reverse against a colored background. I find them more legible and less attention-demanding when they're treated as regular Icons. I found the yellow used in the warning icon to be too low-contrast against white so I made it slightly orange and increased the saturation. We could probably play with this some more.

Table lines and ToolBar size

image

Tags

Here are some examples of tags on other sites:


GMail

image


Trello

image


Pinterest

image


GitHub

image


I see some commonalities across these:

  • Their visual appearance is distinct from buttons, to avoid confusion.
  • They have a distinct visual appearance to clearly identify them as "Tags".
  • They tend to have a smaller font size than the regular font size.

We could explore a number of directions for making our tags more distinct:

  • Borders
  • Square corners instead of rounded
  • Highly rounded corners instead of slightly 4px rounded corners
  • A small stripe or dot of color instead of coloring the whole tag
  • Smaller text
  • Bolder text

@cjcenizal cjcenizal changed the title Feature/table Add Icon, Link, Button, TextInput, CheckBox, Table, ControlledTable, ToolBar, and ToolBarFooter components. Dec 8, 2016
@uboness
Copy link
Copy Markdown

uboness commented Dec 8, 2016

initial feedback (sorry for doing that, but I'll be focusing on the "negatives" for now... doesn't mean there are no "positive" feedback as well):

  • Buttons

    • I don't like the drop shadow... our design is flat, and we should keep it flat. The only exception may be for modals (though would love to see how we can even avoid it there)
    • the danger button :hover red is way too bright...
    • the text of the buttons in the toolbar are a bit off from vertical alignment side of things (too low)
  • Links

    • -1 on underline on :hover
  • TextInput

    • -1 on the dotted outer border when focused
  • CheckBox

    • will be good to also have a "partial" state implemented (a "dash" instead of a check icon)
  • Table

    • Some alignment issues (e.g. the mag glass inside the search box is off)
    • when hovering over a sortable header, the header text moves... not sure if it's intentional or not, but it shouldn't

Table lines...

I agree that it's worth exploring 1px borders... the one thing I'd be careful here is that the header won't all of a sudden be too much "in your face", so we might need to subtle the header background to accommodate such change

ToolBar size....

Ties to the previous point... we'll need to try different options here and see what feels best

Tag legibility....

I think this can be solved in different ways... I like what we have today, but one thing I'd like to explore is a different shape to the label... shape is "sticky" in your mind...

@alt74
Copy link
Copy Markdown

alt74 commented Dec 8, 2016

agree with @uboness comments. also please use color 5A5A5A for icons in buttons (as agreed in design reviews).
c3f8f1d4-bc9b-11e6-847f-45f102298522

@uboness
Copy link
Copy Markdown

uboness commented Dec 8, 2016

@alt74
Copy link
Copy Markdown

alt74 commented Dec 8, 2016

@uboness love the second example with the tag pointing on the left side. feels like a real tag to me :)

@alt74
Copy link
Copy Markdown

alt74 commented Dec 8, 2016

@cjcenizal for links could you try this for us:
a.kibana:link {color:#006E8A; text-decoration:none;}
a.kibana:visited {color:#006E8A;text-decoration:none;}
a.kibana:hover {color:#3CAED2;text-decoration:none;}
a.kibana:active {color:#00586A;text-decoration:none;}

Quick and dirty link tests: http://codepen.io/altziebler/pen/dOKgJZ
example three above

@cjcenizal
Copy link
Copy Markdown
Contributor Author

@uboness @alt74 Thanks for the great feedback! I'm glad you're coming around on the tag design Jurgen. 😄 Those are great finds, Uri. I'm also a fan.

In our next meeting let's talk some more about buttons, links, and inputs. I'd especially like to talk about the concept of affordance in relation to buttons, and accessibility in relation to inputs and links. Here's a summary of my thoughts (I'd like to dive in deeper in our meeting):

Buttons

In case anybody isn't already familiar with the concept of affordance, it's the idea that a thing should communicate how it's used by its appearance (shape, color, behavior etc). So, a button should communicate that it's pressable, somehow. There's a spectrum of affordance along which a button can lie -- from very weak (no affordance) to very strong (unmistakable affordance). I created this pen to demonstrate this spectrum.

Our (awesome) aesthetic is flat but that doesn't take into account the importance of usability and it doesn't leverage our ability to design the user's interaction with the button. I want to preserve our flat aesthetic but also offer a stronger affordance to our users, which is why I think strengthening the affordance only in hover and active states is a good compromise. Thoughts?

Links

The current design for links is almost indistinguishable from regular text and it's entirely indistinguishable for colorblind users. Take a look at this pen for comparison. I think we have 2 requirements: 1) we need to make links stand out more from regular text and 2) we need the hover state to stand out from the regular state. What do you both think of this? Jurgen, if this makes sense to you, do you think you could brainstorm on some more link styles to meet these requirements?

Inputs

Uri, what about the focus state did you not like? That it existed at all? Or that it was dotted? We definitely need to indicate focus state in some manner; otherwise tabbing through inputs won't be possible. Jurgen, would you mind exploring some options?

@alt74
Copy link
Copy Markdown

alt74 commented Dec 9, 2016

@cjcenizal for selected input please try color 6EADC1 (no dotted lines please - very noisy).
I would vote for a glow (like GitHub inputs) before I vote for a dotted line around the input.

@alt74
Copy link
Copy Markdown

alt74 commented Dec 9, 2016

Link exploration updated with 4 options:
http://codepen.io/altziebler/pen/dOKgJZ

breaking some conventions here with idea 4 but I like it :)
regular/visited: light blue
hover: dark blue
active: darker blue + underline

@spalger
Copy link
Copy Markdown

spalger commented Dec 9, 2016

I should probably stay out of this, but I want to mention two things:

  1. @cjcenizal's description of affordance seems to describe the exact intuition I have about buttons. Without some sort of hover effect the button feels less alive, causes a bit of ambiguity regarding it interactiveness, and makes it hard to distinguish from other purely decorative uses of background color. Material design describes this as using elevation and I think they pull it off very well.

  2. I'm not a huge fan of :active states on buttons, but it's very important for accessibility. Whether it's a dotted outline, or the default browser style (my recommendation, users will expect that) I think it's important to keep.

2016-12-09 11_49_08

@cjcenizal
Copy link
Copy Markdown
Contributor Author

@spalger Thanks for chiming in and for the great reference!

@alt74
Copy link
Copy Markdown

alt74 commented Dec 12, 2016

button test: http://codepen.io/altziebler/pen/mOGQao
1px down movement for active state – I like it 👍

@cjcenizal
Copy link
Copy Markdown
Contributor Author

Nice work @alt74! Looks great.

@cjcenizal cjcenizal force-pushed the feature/table branch 3 times, most recently from b981405 to 0e9899b Compare December 13, 2016 02:25
@epixa
Copy link
Copy Markdown

epixa commented Dec 13, 2016

@cjcenizal Given that the ui framework is now in the Kibana repo, is your plan just to copy this change to over there?

@cjcenizal
Copy link
Copy Markdown
Contributor Author

@epixa Yes

@cjcenizal
Copy link
Copy Markdown
Contributor Author

Replacing this PR with elastic/kibana#9462

@cjcenizal cjcenizal closed this Dec 13, 2016
@cjcenizal cjcenizal deleted the feature/table branch December 13, 2016 17:42
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants