diff --git a/src/components/menu/menu.html b/src/components/menu/menu.html
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/components/menu/menu.scss b/src/components/menu/menu.scss
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/components/menu/menu.spec.ts b/src/components/menu/menu.spec.ts
new file mode 100644
index 00000000000..6f9e28984d8
--- /dev/null
+++ b/src/components/menu/menu.spec.ts
@@ -0,0 +1,36 @@
+import {
+ it,
+ describe,
+ expect,
+ beforeEach,
+ inject,
+} from '@angular/core/testing';
+import {TestComponentBuilder} from '@angular/compiler/testing';
+import {Component} from '@angular/core';
+import {By} from '@angular/platform-browser';
+
+import {MD_MENU_DIRECTIVES} from './MENU';
+
+describe('MdMenu', () => {
+ let builder: TestComponentBuilder;
+
+ beforeEach(inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
+ builder = tcb;
+ }));
+
+ it('should add and remove focus class on focus/blur', () => {
+ var template = ``;
+ return builder.overrideTemplate(TestList, template)
+ .createAsync(TestList).then((fixture) => {
+ // expect(true).toBe(true);
+ });
+ });
+
+});
+
+@Component({
+ selector: 'test-menu',
+ template: ``,
+ directives: [MD_MENU_DIRECTIVES]
+})
+class TestList {}
diff --git a/src/components/menu/menu.ts b/src/components/menu/menu.ts
new file mode 100644
index 00000000000..50369354c95
--- /dev/null
+++ b/src/components/menu/menu.ts
@@ -0,0 +1,13 @@
+import {Component, ViewEncapsulation} from '@angular/core';
+
+@Component({
+ moduleId: module.id,
+ selector: 'md-menu',
+ templateUrl: 'menu.html',
+ styleUrls: ['menu.css'],
+ encapsulation: ViewEncapsulation.None
+})
+export class MdMenu {}
+
+export const MD_MENU_DIRECTIVES = [MdMenu];
+
diff --git a/src/components/menu/package.json b/src/components/menu/package.json
new file mode 100644
index 00000000000..1cfb3332ab7
--- /dev/null
+++ b/src/components/menu/package.json
@@ -0,0 +1,26 @@
+{
+ "name": "@angular2-material/menu",
+ "version": "2.0.0-alpha.6",
+ "description": "Angular 2 Material menu",
+ "main": "./menu.js",
+ "typings": "./menu.d.ts",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/angular/material2.git"
+ },
+ "keywords": [
+ "angular",
+ "material",
+ "material design",
+ "components",
+ "menu"
+ ],
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/angular/material2/issues"
+ },
+ "homepage": "https://github.com/angular/material2#readme",
+ "peerDependencies": {
+ "@angular2-material/core": "2.0.0-alpha.6"
+ }
+}
diff --git a/src/demo-app/demo-app/demo-app.html b/src/demo-app/demo-app/demo-app.html
index b7ec903b17f..b4a050770ee 100644
--- a/src/demo-app/demo-app/demo-app.html
+++ b/src/demo-app/demo-app/demo-app.html
@@ -10,6 +10,7 @@
Icon
Input
List
+ Menu
Live Announcer
Overlay
Portal
diff --git a/src/demo-app/demo-app/routes.ts b/src/demo-app/demo-app/routes.ts
index 4841db326ac..3b3dc228415 100644
--- a/src/demo-app/demo-app/routes.ts
+++ b/src/demo-app/demo-app/routes.ts
@@ -20,6 +20,7 @@ import {SlideToggleDemo} from '../slide-toggle/slide-toggle-demo';
import {SidenavDemo} from '../sidenav/sidenav-demo';
import {RadioDemo} from '../radio/radio-demo';
import {CardDemo} from '../card/card-demo';
+import {MenuDemo} from '../menu/menu-demo';
@@ -39,6 +40,7 @@ export const routes: RouterConfig = [
{path: 'toolbar', component: ToolbarDemo},
{path: 'icon', component: IconDemo},
{path: 'list', component: ListDemo},
+ {path: 'menu', component: MenuDemo},
{path: 'live-announcer', component: LiveAnnouncerDemo},
{path: 'gestures', component: GesturesDemo},
{path: 'grid-list', component: GridListDemo},
diff --git a/src/demo-app/menu/menu-demo.html b/src/demo-app/menu/menu-demo.html
new file mode 100644
index 00000000000..e4a6a569b01
--- /dev/null
+++ b/src/demo-app/menu/menu-demo.html
@@ -0,0 +1 @@
+menu
\ No newline at end of file
diff --git a/src/demo-app/menu/menu-demo.scss b/src/demo-app/menu/menu-demo.scss
new file mode 100644
index 00000000000..e69de29bb2d
diff --git a/src/demo-app/menu/menu-demo.ts b/src/demo-app/menu/menu-demo.ts
new file mode 100644
index 00000000000..67a14491334
--- /dev/null
+++ b/src/demo-app/menu/menu-demo.ts
@@ -0,0 +1,12 @@
+import {Component} from '@angular/core';
+import {NgIf, NgFor} from '@angular/common';
+import {MD_MENU_DIRECTIVES} from '@angular2-material/menu/menu';
+
+@Component({
+ moduleId: module.id,
+ selector: 'menu-demo',
+ templateUrl: 'menu-demo.html',
+ styleUrls: ['menu-demo.css'],
+ directives: [MD_MENU_DIRECTIVES]
+})
+export class MenuDemo {}
diff --git a/src/demo-app/system-config.ts b/src/demo-app/system-config.ts
index 98a515f1ab8..b6ff4e85b24 100644
--- a/src/demo-app/system-config.ts
+++ b/src/demo-app/system-config.ts
@@ -13,6 +13,7 @@ const components = [
'icon',
'input',
'list',
+ 'menu',
'progress-bar',
'progress-circle',
'radio',