From b00956d92d8fde9df8f8fd097b10b7b5411c77e0 Mon Sep 17 00:00:00 2001 From: Phuoc Nguyen Date: Sun, 29 Dec 2019 17:49:34 +0700 Subject: [PATCH] Add mega menu --- client/constants/Pattern.ts | 1 + client/pages/ExplorePage.tsx | 1 + client/patterns/dropdown/Details.tsx | 4 +- client/patterns/mega-menu/Cover.tsx | 74 +++++++++++++ client/patterns/mega-menu/Details.tsx | 148 +++++++++++++++++++++++++ client/patterns/mega-menu/megaMenu.css | 17 +++ client/patterns/menu/Details.tsx | 4 +- public/sitemap.xml | 1 + 8 files changed, 247 insertions(+), 3 deletions(-) create mode 100644 client/patterns/mega-menu/Cover.tsx create mode 100644 client/patterns/mega-menu/Details.tsx create mode 100644 client/patterns/mega-menu/megaMenu.css diff --git a/client/constants/Pattern.ts b/client/constants/Pattern.ts index 26b6f18..7034517 100644 --- a/client/constants/Pattern.ts +++ b/client/constants/Pattern.ts @@ -34,6 +34,7 @@ enum Pattern { InitialAvatar = 'Initial avatar', InputAddon = 'Input addon', MediaObject = 'Media object', + MegaMenu = 'Mega menu', Menu = 'Menu', Modal = 'Modal', Notification = 'Notification', diff --git a/client/pages/ExplorePage.tsx b/client/pages/ExplorePage.tsx index b7966af..3602201 100644 --- a/client/pages/ExplorePage.tsx +++ b/client/pages/ExplorePage.tsx @@ -104,6 +104,7 @@ const ExplorePage = () => { + diff --git a/client/patterns/dropdown/Details.tsx b/client/patterns/dropdown/Details.tsx index da64ed8..af4f9c7 100644 --- a/client/patterns/dropdown/Details.tsx +++ b/client/patterns/dropdown/Details.tsx @@ -88,7 +88,7 @@ const Details: React.FC<{}> = () => { width: '256px', }} > - + )} @@ -139,7 +139,7 @@ const Details: React.FC<{}> = () => { `} /> - + ); }; diff --git a/client/patterns/mega-menu/Cover.tsx b/client/patterns/mega-menu/Cover.tsx new file mode 100644 index 0000000..a7921d2 --- /dev/null +++ b/client/patterns/mega-menu/Cover.tsx @@ -0,0 +1,74 @@ +import React from 'react'; + +import Circle from '../../placeholders/Circle'; +import Frame from '../../placeholders/Frame'; +import Line from '../../placeholders/Line'; + +const Cover: React.FC<{}> = () => { + return ( + +
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+ + ); +}; + +export default Cover; diff --git a/client/patterns/mega-menu/Details.tsx b/client/patterns/mega-menu/Details.tsx new file mode 100644 index 0000000..cf1e214 --- /dev/null +++ b/client/patterns/mega-menu/Details.tsx @@ -0,0 +1,148 @@ +import React from 'react'; +import { Helmet } from 'react-helmet'; + +import './megaMenu.css'; + +import RelatedPatterns from '../../components/RelatedPatterns'; +import Pattern from '../../constants/Pattern'; +import DetailsLayout from '../../layouts/DetailsLayout'; +import Block from '../../placeholders/Block'; +import BrowserFrame from '../../placeholders/BrowserFrame'; +import Rectangle from '../../placeholders/Rectangle'; +import Triangle from '../../placeholders/Triangle'; + +const Details: React.FC<{}> = () => { + return ( + + + + + +
+
+ Move the mouse over the seccond navigation item to see the mega menu. +
+ +
+
+
+ +
+
+
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+ +
+
+
+ +
+ +
+
+ )} + source={` + + +
+ + ... + + +
+ +
...
+ + +
+ ... +
+
+
+`} + /> + + + +
+ ); +}; + +export default Details; diff --git a/client/patterns/mega-menu/megaMenu.css b/client/patterns/mega-menu/megaMenu.css new file mode 100644 index 0000000..2d92c98 --- /dev/null +++ b/client/patterns/mega-menu/megaMenu.css @@ -0,0 +1,17 @@ +.p-mega-menu-container { + position: relative; +} +.p-mega-menu-content { + background: #fff; + border: 1px solid rgba(0, 0, 0, 0.3); + display: none; + left: 0px; + margin-top: -1px; + position: absolute; + top: 100%; + width: 100%; + z-index: 9999; +} +.p-mega-menu-trigger:hover .p-mega-menu-content { + display: block; +} \ No newline at end of file diff --git a/client/patterns/menu/Details.tsx b/client/patterns/menu/Details.tsx index a503a68..48efca3 100644 --- a/client/patterns/menu/Details.tsx +++ b/client/patterns/menu/Details.tsx @@ -193,7 +193,9 @@ const Details: React.FC<{}> = () => { `} /> - + ); }; diff --git a/public/sitemap.xml b/public/sitemap.xml index fe438a9..e4aa7b1 100644 --- a/public/sitemap.xml +++ b/public/sitemap.xml @@ -35,6 +35,7 @@ https://csslayout.io/patterns/input-addon https://csslayout.io/patterns/keyboard-shortcut https://csslayout.io/patterns/media-object + https://csslayout.io/patterns/mega-menu https://csslayout.io/patterns/menu https://csslayout.io/patterns/modal https://csslayout.io/patterns/notification