Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Dropdown Menu v2 Component #4475

Closed
1 task done
traviskaufman opened this issue Jun 29, 2016 · 12 comments
Closed
1 task done

Implement Dropdown Menu v2 Component #4475

traviskaufman opened this issue Jun 29, 2016 · 12 comments

Comments

@traviskaufman
Copy link
Contributor

traviskaufman commented Jun 29, 2016

Spec reference: https://www.google.com/design/spec/components/menus.html

This is our <select> equivalent. See this image

@ghost
Copy link

ghost commented Jul 27, 2016

we should also support multiple mode.
Such as https://material.angularjs.org/latest/api/directive/mdSelect

@Garbee Garbee changed the title Implement Text field Dropdown Menu v2 Component Implement Dropdown Menu v2 Component Jul 27, 2016
@alexgig
Copy link

alexgig commented Aug 24, 2016

Hi @traviskaufman,

How is this different then the generic overflow dropdown button? (https://material.google.com/components/buttons.html#buttons-dropdown-buttons)

Seems like the dropdown button specification is the more complete solution. Are there plans to implement it in Mdl?

@HriBB
Copy link

HriBB commented Aug 24, 2016

I think this is just the dropdown part of the dropdown button. Menu with options/actions.

@traviskaufman
Copy link
Contributor Author

traviskaufman commented Aug 24, 2016

@HriBB is correct; from a UX perspective this is pretty much the menu part of a drop down button. There is additional work that needs to be done though for drop down menus, particularly around accessibility.

@alexgig
Copy link

alexgig commented Aug 25, 2016

Cool. Thanks for the explanation guys.

@gaastonsr
Copy link

Is v2 going to cover dropdown menus?

@Garbee
Copy link
Collaborator

Garbee commented Aug 30, 2016

@gaastonsr That is a part of the drawer component which is #4476. Current plans is to offer one form of the MD specified menus.

traviskaufman added a commit that referenced this issue Oct 3, 2016
* Add mdl-form-field package
* Refactor existing input controls to use mdl-form-field

Resolves #4475
[Delivers #130834979]
traviskaufman added a commit that referenced this issue Oct 5, 2016
* Add mdl-form-field package
* Refactor existing input controls to use mdl-form-field

Resolves #4475
[Delivers #130834979]
traviskaufman added a commit that referenced this issue Oct 5, 2016
* Add mdl-form-field package
* Refactor existing input controls to use mdl-form-field

Resolves #4475
[Delivers #130834979]
@traviskaufman
Copy link
Contributor Author

^ ah, ignore this. I referenced the wrong issue in the commit 😭

@traviskaufman traviskaufman self-assigned this Oct 27, 2016
traviskaufman added a commit that referenced this issue Nov 9, 2016
* Refactor custom event logic out of mdl-icon-toggle

This is needed by mdl-menu as well in order for it to emit events and
therefore work with the select element.

Part of #4475
[#126819221]
traviskaufman added a commit that referenced this issue Nov 9, 2016
* Add `MDLSimpleMenu:selected` event which is broadcast when a menu item
  is selected
* Change notion of "items" in menu to mean only item elements which are
  selectable as actual menu items, rather than just children of the
  items container.
* Add logic for validating that a correct `role` attribute is placed on
  the vanilla menu component.

Part of #4475
[#126819221]
traviskaufman added a commit that referenced this issue Nov 9, 2016
* Add `MDLSimpleMenu:selected` event which is broadcast when a menu item
  is selected
* Change notion of "items" in menu to mean only item elements which are
  selectable as actual menu items, rather than just children of the
  items container.
* Add logic for validating that a correct `role` attribute is placed on
  the vanilla menu component.

Part of #4475
[#126819221]
traviskaufman added a commit that referenced this issue Nov 9, 2016
* Refactor custom event logic out of mdl-icon-toggle

This is needed by mdl-menu as well in order for it to emit events and
therefore work with the select element.

Part of #4475
[#126819221]
traviskaufman added a commit that referenced this issue Nov 9, 2016
* Add `MDLSimpleMenu:selected` event which is broadcast when a menu item
  is selected
* Change notion of "items" in menu to mean only item elements which are
  selectable as actual menu items, rather than just children of the
  items container.
* Add logic for validating that a correct `role` attribute is placed on
  the vanilla menu component.

Part of #4475
[#126819221]
traviskaufman added a commit that referenced this issue Nov 15, 2016
* Adds an `initialize` constructor hook that is called after the root
  element is attached, but before `getDefaultFoundation` is called.
* Adds a simple way of adding / removing event listeners from a
  component's root node, without needing access to the root node itself.

Needed for #4475
[#126819221]
traviskaufman added a commit that referenced this issue Nov 16, 2016
…4915)

* Adds an `initialize` constructor hook that is called after the root
  element is attached, but before `getDefaultFoundation` is called.
* Adds a simple way of adding / removing event listeners from a
  component's root node, without needing access to the root node itself.

Needed for #4475
[#126819221]
traviskaufman added a commit that referenced this issue Nov 16, 2016
* Remove restriction on menu roles. Simply look for any `mdl-list-item`
  with a `role` attribute when querying for menu items.
* Implement select UI with MDL simple menu.
* Implement Pure CSS version on top of browser's select element
* Bump up karma timeouts in a blind effort to decrease TravisCI
  flakiness

NOTE: Auto-positioning the select menu still needs to be done.

Part of #4475
[Delivers #126819221]
@traviskaufman
Copy link
Contributor Author

traviskaufman commented Nov 16, 2016

FYI ^ :)

Also note, we've built the v2 version of select such that it works as both a custom component as well as with the native browser select, and you can seamlessly switch between the two. This means you get the full-fidelity experience on desktop devices while being able to switch over to the native version on a mobile device for the best cross-browser UX possible.

traviskaufman added a commit that referenced this issue Nov 16, 2016
* Remove restriction on menu roles. Simply look for any `mdl-list-item`
  with a `role` attribute when querying for menu items.
* Implement select UI with MDL simple menu.
* Implement Pure CSS version on top of browser's select element
* Bump up karma timeouts in a blind effort to decrease TravisCI
  flakiness

NOTE: Auto-positioning the select menu still needs to be done.

Part of #4475
[Delivers #126819221]
traviskaufman added a commit that referenced this issue Nov 21, 2016
* Remove restriction on menu roles. Simply look for any `mdl-list-item`
  with a `role` attribute when querying for menu items.
* Implement select UI with MDL simple menu.
* Implement Pure CSS version on top of browser's select element
* Bump up karma timeouts in a blind effort to decrease TravisCI
  flakiness
* Disable Firefox in CI as it seems to be flaky :/

NOTE: Auto-positioning the select menu still needs to be done.

Part of #4475
[Delivers #126819221]
traviskaufman added a commit that referenced this issue Nov 22, 2016
* Remove restriction on menu roles. Simply look for any `mdl-list-item`
  with a `role` attribute when querying for menu items.
* Implement select UI with MDL simple menu.
* Implement Pure CSS version on top of browser's select element
* Bump up karma timeouts in a blind effort to decrease TravisCI
  flakiness
* Disable Firefox in CI as it seems to be flaky :/

NOTE: Auto-positioning the select menu still needs to be done.

Part of #4475
[Delivers #126819221]
traviskaufman added a commit that referenced this issue Nov 29, 2016
This PR completes the single-line dropdown component.

Additional work:

* Ensured all attached DOM nodes are cleaned up in simple menu tests

Part of #4475
[Delivers #129706423]
traviskaufman added a commit that referenced this issue Nov 29, 2016
This PR completes the single-option dropdown component.

Additional work:

* Ensured all attached DOM nodes are cleaned up in simple menu tests

Part of #4475
[Delivers #129706423]
traviskaufman added a commit that referenced this issue Nov 29, 2016
This PR completes the single-option dropdown component.

Additional work:

* Ensured all attached DOM nodes are cleaned up in simple menu tests

Part of #4475
[Delivers #129706423]
traviskaufman added a commit that referenced this issue Nov 29, 2016
This PR completes the single-option dropdown component.

Additional work:

* Ensured all attached DOM nodes are cleaned up in simple menu tests

Part of #4475
[Delivers #129706423]
traviskaufman added a commit that referenced this issue Nov 30, 2016
This PR completes the single-option dropdown component.

Additional work:

* Ensured all attached DOM nodes are cleaned up in simple menu tests

Part of #4475
[Delivers #129706423]
@traviskaufman
Copy link
Contributor Author

Closing for now. Single-select is done and multi-select will be moved to a new issue.

@NBurke1
Copy link

NBurke1 commented Feb 21, 2018

Sorry for dragging up an old topic...but I've read this thread, and the previous one #854

and more recent ones which link to this thread as a "solution"...but i still have no idea where the MDL select component is? it's not on the components page: https://getmdl.io/components/index.html

Am i missing something? I'm using MDL v1.3 which is the only version i could find

@moog16
Copy link

moog16 commented Mar 6, 2018

@NBurke1 MDL is now MDC. Select is here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants