File tree Expand file tree Collapse file tree 5 files changed +113
-0
lines changed Expand file tree Collapse file tree 5 files changed +113
-0
lines changed Original file line number Diff line number Diff line change 1919 < div class ="overlay " id ="message-overlay "> </ div >
2020 < div class ="grid-container ">
2121 < header id ="header-container "> </ header >
22+ < aside id ="aside-container "> </ aside >
2223 < main id ="main-container "> </ main >
2324 < footer >
2425 All rights reserved @2020
Original file line number Diff line number Diff line change 1+ const Aside = {
2+ render : async ( ) => {
3+ return `
4+ <div class="aside-header">
5+ <div>SHOP BY CATEGORY</div>
6+ <button class="aside-close-button" id="aside-close-button">x</button>
7+ </div>
8+ <div class="aside-body">
9+ <ul class="categories">
10+ <li>
11+ <a href="/#/?q=shirt"
12+ >Shirts
13+ <span><i class="fa fa-chevron-right"></i></span>
14+ </a>
15+ </li>
16+ <li>
17+ <a href="/#/?q=pant"
18+ >Pants
19+ <span><i class="fa fa-chevron-right"></i></span>
20+ </a>
21+ </li>
22+ </ul>
23+ </div>` ;
24+ } ,
25+ after_render : async ( ) => {
26+ document . getElementById ( 'aside-container' ) . classList . remove ( 'open' ) ;
27+ document
28+ . getElementById ( 'aside-close-button' )
29+ . addEventListener ( 'click' , async ( ) => {
30+ document . getElementById ( 'aside-container' ) . classList . remove ( 'open' ) ;
31+ } ) ;
32+ } ,
33+ } ;
34+
35+ export default Aside ;
Original file line number Diff line number Diff line change @@ -7,6 +7,9 @@ const Header = {
77 const { value } = parseRequestUrl ( ) ;
88 return `
99 <div class="brand">
10+ <button id="aside-open-button">
11+ ☰
12+ </button>
1013 <a href="/#/">jsamazona</a>
1114 </div>
1215 <div class="search">
@@ -33,6 +36,12 @@ const Header = {
3336 const searchKeyword = document . getElementById ( 'q' ) . value ;
3437 document . location . hash = `/?q=${ searchKeyword } ` ;
3538 } ) ;
39+
40+ document
41+ . getElementById ( 'aside-open-button' )
42+ . addEventListener ( 'click' , async ( ) => {
43+ document . getElementById ( 'aside-container' ) . classList . add ( 'open' ) ;
44+ } ) ;
3645 } ,
3746} ;
3847export default Header ;
Original file line number Diff line number Diff line change @@ -15,6 +15,7 @@ import DashboardScreen from './srceens/DashboardScreen';
1515import ProductListScreen from './srceens/ProductListScreen' ;
1616import ProductEditScreen from './srceens/ProductEditScreen' ;
1717import OrderListScreen from './srceens/OrderListScreen' ;
18+ import Aside from './components/Aside' ;
1819
1920const routes = {
2021 '/' : HomeScreen ,
@@ -45,6 +46,11 @@ const router = async () => {
4546 const header = document . getElementById ( 'header-container' ) ;
4647 header . innerHTML = await Header . render ( ) ;
4748 await Header . after_render ( ) ;
49+
50+ const aside = document . getElementById ( 'aside-container' ) ;
51+ aside . innerHTML = await Aside . render ( ) ;
52+ await Aside . after_render ( ) ;
53+
4854 const main = document . getElementById ( 'main-container' ) ;
4955 main . innerHTML = await screen . render ( ) ;
5056 if ( screen . after_render ) await screen . after_render ( ) ;
Original file line number Diff line number Diff line change @@ -487,3 +487,65 @@ form.search-form::after {
487487 clear : both;
488488 display : table;
489489}
490+
491+ /* Aside */
492+ aside {
493+ position : fixed;
494+ width : 30rem ;
495+ background-color : # ffffff ;
496+ height : 100% ;
497+ z-index : 1 ;
498+ transform : translateX (-30.1rem );
499+ transition : all 0.5s ;
500+ border-right : 0.1rem # 808080 solid;
501+ }
502+ aside .open {
503+ transform : translateX (0 );
504+ }
505+ .aside-header {
506+ display : flex;
507+ justify-content : space-between;
508+ align-items : center;
509+ padding : 2rem 0.5rem 1rem 2rem ;
510+ color : # 808080 ;
511+ }
512+
513+ .aside-close-button {
514+ width : 3rem ;
515+ height : 3rem ;
516+ font-size : 2rem ;
517+ cursor : pointer;
518+ padding : 0 ;
519+ }
520+ ul .categories {
521+ padding : 0 ;
522+ }
523+ .categories > li {
524+ list-style-type : none;
525+ }
526+ .categories > li > a {
527+ display : flex;
528+ padding : 1rem ;
529+ padding-left : 2rem ;
530+ justify-content : space-between;
531+ }
532+ .categories > li > a > span {
533+ font-size : 1.4rem ;
534+ color : # 808080 ;
535+ }
536+ .categories > li > a : hover span {
537+ color : # 444444 ;
538+ }
539+ .categories > li > a : hover {
540+ background-color : # f0f0f0 ;
541+ color : # 444444 ;
542+ }
543+
544+ .brand button {
545+ font-size : 3rem ;
546+ padding : 0.5rem ;
547+ background : none;
548+ border : none;
549+ color : # ffffff ;
550+ cursor : pointer;
551+ }
You can’t perform that action at this time.
0 commit comments