Menu

Page history last edited by Richard D. Worth 1 mo ago

 

type: widget

release: 0.0

status: in development

documentation: TBD

tests: TBD

demo: http://jquery-ui.googlecode.com/svn/branches/dev/tests/visual/menu/default.html

 

menus in labs:

http://jquery-ui.googlecode.com/svn/branches/labs/fg-menu/index.html

http://jquery-ui.googlecode.com/svn/branches/labs/menu/demos/menu/default.html

 


 

1 - Description:

 

Attaches a menu to any element, either as dropdown, context or statically rendered menu, takes well-formed markup -- an unordered list or select form control -- or JSON and converts it into a menu which takes one of several forms (either determined automatically by the structure or via options [the option is called 'type']):

 

NOTE: numbers in brackets reference visual designs.

 

Flat, non-hierarchical list (default when there are no nested lists)

 

  • simple menu [D1] appears/acts like a customized dropdown list.
  • popup menu [D8] appears/acts like a native Mac OS select list, where the the selected option appears boxed to the left of the trigger button, and the user can click either the selected option or button to open the menu.  The menu is positioned so that the selected option always appears at the same place in the list; when the menu is open, if the selected option is third from the top, you'll see the first two options above the selection, and the rest below.

 

Hierarchical list:

 

  • fly-out [D2 and D3], if the option is explicitly set or, as a best practice, if number of sub-levels limited to 2 or 3 (when 3+ submenus are showing,  collision detection can become unwieldy depending on the available space in the viewport).  Behaves similarly to Apple's OS menus where the main menu appears on click and sub-menus on hover; the current sub-menu remains open as long as the user's mouse is over it, otherwise it (and any other sub-menus) closes after a short delay.  The user's path through the menu is marked with an "on" state.

      

  • ipod-style/drilldown [D6 and D7], if the number of sub-levels is larger or unknown or if the option has been explicitely set.  Mimics its namesake by showing a main menu, and as you choose options that navigate to deeper levels, the next menu slides to the left into view.  By default a "back" link appears at the bottom of the menu, and when clicked, the visible menu slides to the right out of view.  Options allow the user to:
    • show a full breadcrumb in place of the back link
    • change the location of the back link (above vs. below the menu)
    • change the default back text (from "Back" to something else)
    • set default breadcrumb text (i.e., "Choose an option:")

       

  • menubar [E2], if the option is explicitly set (not automatic detection): the top-level menu options are arranged either horizontally or vertically in a row, and sub-menus appear either below or beside them, respectively.  Sub-menus can be formatted as flat, ipod-style, or flyout.  This menu could be used as standard global navigation, or as part of a toolbar.  (The toolbar is a separate widget that groups navigation and form controls.)

 

 

Split buttons

Users should have the option to create split-buttons for any menu option, where the left button selects the node and the right button opens a sub-menu.  The original design only spec'd split buttons for ipod style menu, but this could be useful to show link affordance in fly-outs as well.

 

Check and radio options

  • a check or radio option is always a leaf node, never has a child menu
  • check options can be toggled on/off one at a time; multiple check options can be selected/on in a single menu
  • radio options are like their namesake in that you can choose one from a group.  Example: EXT toolbar, "button with menu:" http://extjs.com/deploy/dev/examples/menu/menus.html
  • radio options must be visually grouped together, either in a stand-alone menu or sub-menu, or set apart from other list items with a divider
  • when one or more options has an check, radio, or custom icon, the entire menu -- parent menu plus all sub-menus -- is indented left so that the icons are easily scannable in a left "column"

 

Custom icons [D5]

Users could also specify unique icons that appear next to particular menu options.

 

Dividers

  • dividers could be specified in the original (pre-menu widget) markup as:
    • an empty list item.  The menu widget could insert a horizontal rule for vertical menus, or a vertical rule for horizontal menus (menubars)
    • a list item containing text (not linked) could be converted to a horizontal rule followed by a text label
  • dividers/labels are not clickable

 

Sub-menu indicator arrows and icon alignment [D4]

  • for vertical menus:  Arrow icons which indicate sub-menus always appear in the right column.  It may be problematic to flip the location of the arrows to the left side of the menu; doing so would only work when there are no left column check/radio icons, otherwise it may be visually noisy.  Keeping the arrow icons on the right but flipping their direction to point left may also be confusing, as the arrow would be pointing back to the list item -- has anyone seen a menu behave this way?  Using the Mac OS default behavior as a guide, it may be a safer bet to never flip the location or direction of the arrows and have them always stay in the right column and point right, which is the default direction of the menu, and reserve the left column for icons.
  • for horizontal menus (top-level menubar buttons):  An option could be set whether to show a "down" arrow to indicate sub-menus.

 

As decribed in the first paragraph, the behaviour/mode of the menu can be set to the following (the option for this is called 'mode'):

 

  • dropdown,  makes the element the menu is bound to to act like a button, therefore drops down the menu to one side of the original element (default is below, configurable via option 'direction')
  • context, appears on right-click in a specified region by default, or the user can optionally make it appear on left click or a key + click combination [any suggestions for this option?]. The direction option can be used to set how it pops up, the default is "right below".
  • static (default), simply takes the list or JSON and renders the menu statically (always visible) into the original element. If you don't specify the items option, it will search for the first ul that is a child of the selected element and transforms it automatically (this is specific to the selected mode).

 

 

One thing to consider for the grid (and many other future UI plugins) is that HTML 5 provides detailed specs for these widgets that we should seriously consider using as a blueprint for our plugins. If we shared similiar naming and conventions, it will provide a cleaner interface in the future when we all have to support both the HTML 5 version (where available) and the JS-based UI plugin verison on the same site (i.e. use the native HTML 5 if availble, fall back to JS if not supported).  The other benefit is that these specs have been refined by a large group of people so they are fairly mature and there may be no need to reinvent the wheel. There is a menu spec here:

http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#menus

 

Many, many jQuery menu plugins already exist that we may be able to mine for ideas, or use as the basis for the jQuery widget.  Several are listed below, but there may be others that look as/more promising (feel free to add to or edit this list):

 

Single or multi-level menus (dropdown, flyout, ipod-style)

 

Context menu

 

Enhance standard <select> into menu

http://www.givainc.com/labs/linkselect_jquery_plugin.htm

 

Filament flyout and iPod menus with ARIA and CSS framework support:

http://www.filamentgroup.com/lab/jquery_ipod_style_and_flyout_menus/

http://www.filamentgroup.com/examples/menus/index.html

 


 

2 - Visual Design:

 

 

 


 

3 - Functional Specifications/Requirements:

 

Sample Object for menu structure creation:

 

{

    'Menu Item 1': {

        items: {

            'Sub Item 1': {},

            'Sub Item 2': {

                items: function(ready, ui) {

                    window.setTimeout(function() {

                        ready({

                            'Ajax Item 1': {},

                            'Ajax Item 2': {}

                        });

                    }, 1000);

                },

                cache: false

            }

        },

        icon: null,

        choose: function() {

             alert(1);

        }

    },

    'Menu Item 2': {},

    'Menu Item 3': {},

    'Menu Item 4': {}

}

 

Each menu item is a key value pair, where the key is the text shown as menu item and the value is another object with optional configuration values and sub structures. Please note that this syntax currently has one very important flaw: It's not possible to have two menu entries with the same name in the same subtree. We might want to change it to an array of objects therefore.

 

Each menu item can have the following options:

 

  • items (Object/Function)

    A substructure of items as Object, or a anonymous Function that has two arguments: 'ready' and 'ui'. The 'ready' argument itself is a function that takes one argument, which is the actual structure to be added. The menu waits until this very function is called, allowing for asynchroneous loading of new structures.

  • cache (Boolean, default: true)

    Defines if in the case of 'items' being a function, it should be recalled each time the item is hovered/clicked, or wether it should do it one time only.

  • icon

    The icon to be used.

  • choose

    A function that gets fired if the item is choosen (clicked). A bit like a nested event.

     

 

Options/Methods/Callbacks

  • options:
    • type ('flyout', 'drilldown', 'toolbar' | default: 'flyout')

      Determines the style and behaviour of the menu.

    • mode ('static', 'context', 'dropdown' | default: 'static')

      The way the menu is opened. 'static' means that the menu is simply rendered into the selected element, 'context' opens the menu when you right click on the selected element, and dropdown opens the menu below on click.

    • items (Selector/Object | default: '> ul')

      Determines what the menu structure should look like. Either, generic nested markup from the inner of the selected element is taken and transformed, or instead, a structured javascript object (i.e. converted from JSON) can be specified.

    • appendTo (Selector | default: 'body')

      Only applies if mode has been set to context/dropdown. Defines where to append the newly opened menu.

    • exclusive (Boolean | default: true)

      If set to true, all other closable menus are closed once this one shows.

    • width (Selector/Object | default: '> ul')

      Determines what the menu structure should look like. Either, generic nested markup from the inner of the selected element is taken and transformed, or instead, a structured javascript object (i.e. converted from JSON) can be specified.

    • width (Integer | default: 180)

      The default width of the menu.

    • maxHeight (Integer | default: 200)

      If specified, the menu cannot surpass this height and scrollbars show up if the structure get's bigger.

    • hoverClass (String | default: 'ui-hover-state')

      tbd

    • hoverClassSecondary (String | default: 'ui-component-content')

      tbd

    • nextMenuClass (String | default: 'ui-arrow-right-default')

      tbd

    • flyoutDelay (Integer | default: 300)

      Only for type flyout. Defines how many milliseconds to wait when hovered until the sub structure opens.

  • methods:
    • menu('close')

      Closes the menu. Only works for flyout menus.

    • menu('closeAll')

      Closes all flyout menus on the page.

    • menu('open')

      Opens the menu. Only works for flyout menus.

    • menu('toggle')

      Toggles the menu visibility. Only works for flyout menus.

    • menu('add', items, position, type)

      Adds one or more items to the current menu. Where item is a structure described in options.items, position is a selector matching on the current menu structure and type is either 'after', 'before' or 'append'.

    • menu('replace', items, position)

      Replaces one item with one or more items on the current menu. Where item is a structure described in options.items, position is a selector matching on the current menu structure.

    • menu('remove', position)

      Removes a menu substructure that matches the position.

  • callbacks/events:
    • browse (event: click, mouseover)
    • open
    • close
    • choose
  • 'ui' object:
    • item (object[jQuery])

      The item that was choosen (if applicable).

 

 

  • Show / Hide behaviour
    • The menu is shown on click (left click for dropdown, right click for context, with the exception of the static mode)
    • It's being hidden when the user selects an option out of the menu, clicks anywhere on the page or opens another menu (if the user wants to have multiple menus open at the same time, a menu can have a option set to false called 'exclusive'. This means if the option is set to false, the other menus will not be closed if that menu is being opened)
  • Collision detection
    • The menu opens to the other side if it doesn't have enough space at the set direction in its container (default is window) (uses Position).
    • If the menu changes direction, any directional arrows associated with the direction should change with it. For example, if a fly out has to go left, the padding should reverse so that the arrow can be on the left side of the menu item and pointing left.
    • It can be overidden by setting the option 'forceDirection' to true
  • Default rendering
    • To make it possible to create a menu without having to specify any of the options, the default menu will render as statically rendered flat/flyout menu. The items are automatically determined by using the selector '> ul', it therefore takes the first direct list in finds in the original element.
  • the script tests the content -- an unordered list to see if it contains nested lists, or a select to see if it contains opt-groups -- and renders the menu accordingly; can also accept options to configure menu type
  • Events
    • select is triggered when a list item has been clicked
    • browse is triggered when a sub list was opened, or in the case if drilldown, if a sublist has been closed as well (since you're browsing the old list again then)
    • open - is triggered when the menu is opened (not applicable in case of mode 'static')
    • close - is triggered when the menu is closed (not applicable in case of mode 'static')

 

To be structured:

 

  • ability to update content for sub-menus on the fly
  • customizable open/close effects
  • ARIA attributes
  • keyboard navigation

 

For a very detailed description of menu design best practices and behavior, please review the Apple's UI guidelines for menus or Microsoft's Vista UI guide for menus.

 


 

4 - Markup & Style:

 

     4.1 Initial markup examples 

     For navigation menus, any unordered list:

          <ul>

              <li><a href="http://google.com">Google</a></li>

              <li><a href="http://yahoo.com">Yahoo</a></li>

              <li><a href="http://msn.com">MSN</a>

                    <ul>

                         <li><a href="htp://sub1.example.com">sub-level</a></li>

                        <li><a href="http://sub2.example.com">sub-level</a></li>

                    </ul>

               </li>

              <li><a href="http://ask.com">Ask</a></li>

              <li><a href="http://aol.com">AOL</a></li>

</ul>

 

     For application controls:

          <select>

               <optgroup label="Search engines">

                    <option>Google</option>

                    <option>Yahoo</option>

                    <option>MSN</option>

                    <option>Ask</option>

                    <option>AOL</option>

               </optgroup>

               <optgroup label="Computers">

                    <option>Apple</option>

                    <option>Dell</option>

                    <option>HP</option>

               </optgroup>

          </select>

 

     4.2 Recommended transformed HTML markup

 

     4.3 Accessibility recommendations

     Because the menu widget is really just a transformed unordered list or select, we'd recommend that it only be used as an enhancement to well-formed markup when the device supports JS and advanced CSS to ensure that the content remains accessible.

 

     4.4 CSS & Theme

     Themeroller classes should be set as defaults that can be overridden by passing in options.  These classes cover:

  • the appearance of the menu and sub-menus (border, background-color)
  • item hover states - the list item is given a border color and the link a background color/image on hover.  We split the styles this way so that the split-buttons in the ipod menu are bound/connected by the list item's border, and each link can have a separate hover state (one each for choosing a node and navigating).
  • item "on" state for fly-out menu

 

 


 

5 - Latest version of plugin:

 

Paul has done a lot of work on this already and has a demo of the iPod and flyout menus working. This uses older styles but it's a solid start.

http://jquery-ui.googlecode.com/svn/branches/labs/menu/tests/visual/menu/menu.html

 


 

6 - Open issues being discussed

 

(Use this area to place things that we're hashing out like featuresand options we're not sure we should include, questions about how this fits into UI and relates to other widgets and utilities, known problems, whether features should be broken across multiple releases, etc.)

 


 

 

Comments (35)

profile picture

Jonathan Sharp said

at 2:21 pm on Dec 12, 2008

I'd be interested in getting involved with this component.

profile picture

Eric said

at 6:47 am on Mar 8, 2009

What about making it disappear when you click elsewhere?

profile picture

Andrew Powell said

at 1:14 pm on Mar 11, 2009

Eric, depending on how the menu is being shown, a document click handler scoped to the plugin could be added. Another alternative would be to track when the mouse leaves the menu element and hide the menu with a timeout.

I would also like to suggest the 'youngpup' series of effects for slideout/popup menus. These are from back in 2001 but theyre still being used all over the web to this day.

Demos of capabilities:
http://ypslideoutmenus.sourceforge.net/demo/index.html
http://youngpup.net/projects/transmenus/demos/photos/
http://eatyourgreens.org.uk/testapps/ypslideoutmenus/css/

This is basically just fancy effects using a parent div, overflow and some timeouts when the mouse leaves the menu item. But the effect is extremely pleasing and doesnt hinder usability whatsoever :)

profile picture

Andrew Powell said

at 8:19 am on Mar 26, 2009

Found an interesting little quirk with the menus today. If I click on an item which has a submenu, the menu closes. I'm assuming that the submenu item is then selected.

Does anyone have any objection to me fixing that issue, and adding the option to hide the menu when 'focus is lost' aka. when the document is clicked elsewhere?

profile picture

Eric said

at 8:30 am on Apr 11, 2009

Andrew, I think we need to bind a mousedown event and not a click, and only once for all menus that will be created in that page.

by the way I noticed that the menu isn't compatible with the current Jquery UI themeing, like the hoverClass "ui-hover-state" should be "u-statei-hover", and "ui-component" should be "ui-widget".

I widh I could fix things like you, I have several fixes for some Jquery UI things and no one cares. :(

profile picture

Andrew Powell said

at 7:02 pm on Apr 12, 2009

@ Eric - Please do join the jquery-ui-dev group and post links to your patches. I'm sure the team will thoroughly consider anything you might submit.

Regarding the mousedown/click; This is in regards to menu items which spawn a submenu. It's a unique case, and the goal, imho should be to emulate most OS-created menus' behavior.

profile picture

Todd Parker said

at 11:49 am on Apr 29, 2009

I added this to section 1, but wanted to ask here as a question: should we use the HTML 5 spec for menus as a blueprint for our menu (at least where applicable):
http://www.whatwg.org/specs/web-apps/current-work/multipage/interactive-elements.html#menus

profile picture

Tim Jones said

at 6:16 am on May 7, 2009

For menus that show multiple levels of data (for example Hierarchical Lists), it would be very useful to allow child levels to be retrieved through AJAX. The Filament Group iPod-style menu allows the entire menu content to be specified in a separate page.

However, my use-case would be listing all the pages in a CMS (there could be 1000s) in a hierchical menu. I'd want to use the Menu control to allow the user to specify a target page. But this is impractical unless the Menu control supports loading of child levels on the fly, one level at a time.

So I'd like to vote for the Menu control supporting loading of child levels on the fly. Just my 2p!

profile picture

shamun toha said

at 12:29 pm on May 8, 2009

#Feature add:
- Zoom in, Zoom out the menu (use full to embed for mobile browsers)

profile picture

Maggie Wachs said

at 10:16 am on May 21, 2009

Reposted from the comments on our latest menu blog post (http://www.filamentgroup.com/lab/jquery_ipod_style_and_flyout_menus/):

I have extended the jquery menu to allow the following:

* Construction from a JSON object.
* Custom callback function.
* Allow custom data to be stored on each menu item (i.e event command and argument)

There is an example at:

http://www.matthewfeerick.com/jquery_menu/

profile picture

marcpalmer said

at 11:43 am on Jun 18, 2009

Using the code linked to from the recent blogpost about the new iPod style and flyout menu stuff, I have to say I was bemused by the selection notification mechanism. Obviously its hardcoded at the moment, but what I found surprising was that the <a href="xxx"> of the items of the menu where not honoured, nor were mouse clicks if I set up events on them.

I would expect the menu item <li>'s I setup to have their content and events preserved, so I don't need to do any even handling - just bind code to the click events on items in the list.

It would therefore be nice if this modus operandi was possible - in addition to the proposed events.

profile picture

marcpalmer said

at 11:44 am on Jun 18, 2009

Furthermore, I presume there will be predefined stylings applied to the different kinds of menu in future - eg having to add all the widget classes manually is surely a waste of time for people following jQ UI theming?

profile picture

trevnorris said

at 2:13 pm on Jun 22, 2009

Hello everyone. I've very new to all this, but thought I could help out some. I've developed a menu system that is n-level, and leaves the effects open to user development. Not yet completely implemented, I want to extend the menu effects out to the UI components where they could be easily used. Right now it only works for vertical menus, but that's something planned to be implemented.

I'll be developing this, and posting updates as they come, at trevnorris.blogspot.com. If there is anything that you like, drop me a line. more in depth documentation and explanations will come soon. Thanks.

profile picture

Jörn Zaefferer said

at 4:54 am on Jul 8, 2009

Why are the sub-menu-icons only displayed on hover? They should be visible all the time, otherwise I have no idea that there are submenus until I hover...

profile picture

Jeremy Martin said

at 1:36 pm on Jul 15, 2009

Just wanted to mention that the demo (http://jquery-ui.googlecode.com/svn/branches/dev/menu/tests/visual/menu/menu.html) is trying to reference jquery-1.2.6.js, but specified folder actually contains jquery-1.3.2.js.

This project looks very promising - I would love to contribute if there's a need. Heavily inspired by the work done by Maggie/Filament Group, I also have an "iPod Style" drill down menu. The work was done for some closed-access initiatives, but the code is dual licensed under MIT and GPL. Most notable features are:
- 100% themable
- Lots of options
- Can be built using a json object or a user-definable markup structure
- Supports an initially selected node
- Very efficient; menu tree is represented by json, which speeds up traversal considerably over the DOM (in my tests). IE6 is able to gracefully navigate trees with 1000+ nodes.

There are some missing features that jQuery UI would likely need, but for now are omitted. However, the features that are implemented are production ready and are behaving well "in the wild". As a side note, the json tree mentioned above is packaged as a separate script, and could potentially be useful in dynamically swapping out various menu "behaviors" (ipod, flyout, etc...) without re-traversing the DOM.

Anyway, if there any interest in additional contributors (or even if not), I would love to share what I have. Thanks for all the hard work!

profile picture

Jörn Zaefferer said

at 5:04 am on Jul 17, 2009

The similarities to a tree are stunning. The one is horizontal and has only one menu open at the time, the other is vertical and (optionally) allows multiple items open at the same time. Whatever the result, menu and tree should be very very similar in their API.

profile picture

Jeremy Martin said

at 8:36 am on Jul 17, 2009

Definitely agree with that. On a different project I have been wrestling with the same question, regarding just how intertwined the two should be. Trees seem to carry a few extra states and behaviors that are not common among traditional menus. For example, a tree can have any arrangement of expanded/collapsed nodes, whereas a menu is normally expanded just along the current path (if at all). Also, drag/drop behaviors are far more common among trees than menus.

Regardless, all of these various "behaviors" share a common hierarchical structure, so a shared/underlying physical structure and API makes sense. Given a common hierarchical format, a behavior model could be implemented that simply augments/decorates this common structure as appropriate.

profile picture

ajpiano said

at 10:01 am on Jul 17, 2009

Will the API for manipulating the menu be expanded? One feature I'd like to see is the ability to create the Auto-Highlight that is currently available in Adobe programs, whern you type tin the Help box, it opens the menu to the item you entered. Right now, the "open" method is only available for flyout menus. I suspect this ability to open the menu directly to a certain item without any input is also something appropriate for Tree manipulation.

profile picture

hugh.lomas said

at 3:08 pm on Jul 17, 2009

One thing that I have often wanted in a menu is the ability to pop out an input directly in the menu, and type into it. Like

File->Search->[input], without it opening a "dialog" or whatever. The [input] should grab focus, and the menu should stay open.

profile picture

MiD-AwE said

at 3:59 pm on Oct 2, 2009

Is there a working demo of the most recent version? The link above ( http://jquery-ui.googlecode.com/svn/branches/dev/menu/tests/visual/menu/menu.html ) is not good. Thank you.

profile picture

Richard D. Worth said

at 4:25 pm on Oct 2, 2009

Link fixed

profile picture

MiD-AwE said

at 4:35 pm on Oct 2, 2009

Thank you.

profile picture

acw said

at 6:44 pm on Oct 17, 2009

The JSON based menu and the button dropdown menu from the second labs demo does seem to be not working. I am new to jQuery and jQuery UI. It is just a matter of getting the correct set of options?

profile picture

rodelatosa said

at 12:28 pm on Oct 22, 2009

Two questions:
1. Where to get the latest version of the menu plugin?
2. How to set a topmenu but not in a toolbar, just a plain horizontal menu?

Thanks in advance

profile picture

Jesse Beckton said

at 11:30 am on Oct 23, 2009

Something about this menu I think should be changed. The positionOpts, you either have to provide all or none when calling your menu which defeats the purpose of defaults. If I just want to tweak the offsetX or offsetY I have to provide all the positionOpts else the menu does not work at all. In my case I am sending all the positionOpts defaults accept for the offsetY.

profile picture

Jesse Beckton said

at 1:09 pm on Oct 23, 2009

Another suggestion would be have the collision detection update when the menu is opened or onBeforeOpen. If the menu is near the page fold when it renders even if you scroll down and there is plenty of space below it the menu still opens upwards rather than down.

profile picture

Jörn Zaefferer said

at 1:58 pm on Nov 2, 2009

I've been working on a new menu widget as part of the autocomplete development and just created a visual test with a contextmenu: http://jquery-ui.googlecode.com/svn/branches/dev/tests/visual/menu/contextmenu.html

Please take a look - if we can agree on that that is the way to go, I'll rename this page to conserve whats here, then create a new one and spec out the menu as it currently is, paving the way to finalize it, eg. specify how keyboard handling should work.

profile picture

Eric said

at 8:49 am on Nov 6, 2009

It looks good but what about sub-menus? they are the most problematic area.

profile picture

Jörn Zaefferer said

at 8:54 am on Nov 6, 2009

Thats a good point. I'll build tests for that.

profile picture

Richard D. Worth said

at 6:26 am on Nov 7, 2009

Really nicely done Jörn! I am especially loving how the sub menu doesn't disappear if you go off it. Far too many menus get that wrong.

profile picture

Todd Parker said

at 7:15 am on Nov 7, 2009

Yeah, this nested menu looks really good and keyboard navigation works like a charm. If you have even deeper menus, woudl this hold up? Can Position tell you when a menu won't fit so you can flip it left? If those two things are supported, this covers everything our menu did (except ipod). Nice work!

profile picture

Marcus Dalgren said

at 1:34 pm on Nov 3, 2009

This might be a stupid question, but why not build on all the stuff Filament Group has already done with their menu?

I got the impression that their menu was a contender for jQuery UI.
It already has lots of cool features and I bet loads of people already use it (I know I do).

profile picture

Richard D. Worth said

at 6:29 am on Nov 7, 2009

We're building off a lot of the work they've done, for sure. But we're consciously targeting a more core set of features. In the end, the filament group menu (and others) should be able to be built out of what we are building.

profile picture

Marcus Dalgren said

at 10:46 am on Nov 7, 2009

Thanks for the clarification Richard!

You don't have permission to comment on this page.