# HG changeset patch # User Ludovic Chabant # Date 1411667742 25200 # Node ID 72c522ba2da6c9876ace80dbefc3b4ad89917fb0 # Parent cf313f55a3ab57ab5220caa31fe5086adec59032 Change to a vertical left-side menu. diff -r cf313f55a3ab -r 72c522ba2da6 wikked/assets/css/wikked/main.less --- a/wikked/assets/css/wikked/main.less Thu Sep 25 10:54:55 2014 -0700 +++ b/wikked/assets/css/wikked/main.less Thu Sep 25 10:55:42 2014 -0700 @@ -68,3 +68,20 @@ } } +// Allow free links and forms in menus. +.pure-menu .pure-menu-link, +.pure-menu .pure-menu-form { + display: inline-block; + vertical-align: middle; + position: relative; +} + +@media (min-width: 48em) { + // Place right-aligned menu items to, well, to the right. + .pure-menu .pure-menu-horizontal-right { + float: right; + } + .pure-menu-horizontal:after { + clear: both; + } +} diff -r cf313f55a3ab -r 72c522ba2da6 wikked/assets/css/wikked/nav.less --- a/wikked/assets/css/wikked/nav.less Thu Sep 25 10:54:55 2014 -0700 +++ b/wikked/assets/css/wikked/nav.less Thu Sep 25 10:55:42 2014 -0700 @@ -1,74 +1,41 @@ - -// Extending Pure's horizontal menu. - -// Allow free links and forms in menus. -.pure-menu .pure-menu-link, -.pure-menu .pure-menu-form { - display: inline-block; - vertical-align: middle; - position: relative; -} - -// Make menu forms tighter. -.pure-menu-form fieldset { - padding: 0; -} - -@media (min-width: 48em) { - // Place right-aligned menu items to, well, to the right. - .pure-menu .pure-menu-horizontal-right { - float: right; - } - .pure-menu-horizontal:after { - clear: both; - } -} - // Navigation menu -@wiki-menu-height: 4.5em; -@wiki-shortcut-width: 4em; -@wiki-shortcut-height: 3em; +@wiki-menu-width: 12em; +@wiki-menu-width-ext: 36em; +@wiki-shortcut-height: 3.9em; -body { - padding-top: @wiki-shortcut-height; - transition: padding 200ms ease-in-out 0s, - margin 200ms ease-in-out 0s; +.wrapper { + transition: padding 200ms ease-in-out 0s; +} +.wrapper.wiki-menu-active { + padding-left: @wiki-menu-width !important; +} +.wrapper.wiki-menu-inactive { + padding-left: 0 !important; } .wiki-menu-a { - color: @color-gray-dark; + color: @color-gray-light; } .wiki-menu-a-hover { background: @color-green-light; text-decoration: none; } -.wiki-menu-scrolling { - box-shadow: 0px 1px 5px rgba(0, 0, 0, 0.3); -} - -.wiki-menu-active { - top: 0 !important; -} - -.wiki-menu-inactive { - top: -2*@wiki-menu-height !important; -} - #wiki-menu { position: fixed !important; - top: -2*@wiki-menu-height; - left: 0; - width: 100%; + top: 0; + bottom: 0; + left: -@wiki-menu-width; + width: @wiki-menu-width; + padding-top: @wiki-shortcut-height; + border: none; z-index: 10; - padding-left: @wiki-shortcut-width; + overflow-y: auto; color: @color-gray-dark; - background-color: @body-bg; - border-bottom: none; - transition: box-shadow 200ms ease-in-out 0s, - border-bottom 200ms ease-in-out 0s, - top 200ms ease-in-out 0s, + background-color: @color-gray-dark; + transition: left 200ms ease-in-out 0s, + width 200ms ease-in-out 0s, !important; a { padding: 1em; @@ -80,6 +47,19 @@ a:hover, a:focus { .wiki-menu-a-hover(); } + + ul { + border-top: 1px solid @color-gray-medium; + } +} +#wiki-menu.wiki-menu-active { + left: 0 !important; +} +#wiki-menu.wiki-menu-inactive { + left: -@wiki-menu-width !important; +} +#wiki-menu.wiki-menu-ext { + width: @wiki-menu-width-ext !important; } #wiki-menu-shortcut { @@ -98,26 +78,41 @@ @media (min-width: 48em) { // Hide the shortcut and move the horizontal menu down. #wiki-menu { - top: 0; + //left: 0; } - body { - padding-top: @wiki-menu-height; + .wrapper { + //padding-left: @wiki-menu-width; } } // Search -form#search button { - background: none; - padding: 0.5em; - &:hover { color: @link-hover-color; } +.search-result-hover { + background: @color-gray-light; +} + +b.match { + color: @color-orange; + background: @color-gray-light; } + +form#search { + width: 100%; + padding: 0.2em 1em; + + button { + background: none; + padding: 0.5em; + &:hover { color: @link-hover-color; } + } +} + ul#search-preview { position: absolute; list-style: none; margin: 0; padding: 0; top: auto; - left: 0; + left: 1em; z-index: 12; visibility: visible; background: #FFF; @@ -126,27 +121,31 @@ box-shadow: 0px 1px 5px rgba(0, 0, 0, 0.3); li { - border-bottom: 1px solid #EEE; + border-bottom: 1px solid @color-gray-light; margin: 0; padding: 0; width: 100%; - - &:hover, &:focus { - } } a { margin: 0; padding: 0.5em; display: inline-block; width: 100%; + color: @color-gray-dark; + + &:link, &:active, &:visited { + color: @color-gray-dark; + } + &:hover, &:focus { + color: @color-gray-dark; + .search-result-hover(); + } } } + ul.search-results { list-style: none; } -b.match { - background: #ffeb84; -} // Footer .footer-wrapper { diff -r cf313f55a3ab -r 72c522ba2da6 wikked/assets/js/wikked/views.js --- a/wikked/assets/js/wikked/views.js Thu Sep 25 10:54:55 2014 -0700 +++ b/wikked/assets/js/wikked/views.js Thu Sep 25 10:55:42 2014 -0700 @@ -186,12 +186,9 @@ this.searchPreviewList.hide(); this.activeResultIndex = -1; - // Add a pretty shadow on the menu when scrolling down. - $(window).scroll(this, this._onWindowScroll); - this.wikiMenu = $('#wiki-menu'); - this.isScrolled = ($(window).scrollTop() > 0); - this.isMenuActive = (this.wikiMenu.css('top') == '0px'); + this.wrapperAndWikiMenu = $('.wrapper, #wiki-menu'); + this.isMenuActive = (this.wikiMenu.css('left') == '0px'); this.isMenuActiveLocked = false; return this; @@ -209,42 +206,33 @@ "focus #search-query": "_searchQueryFocused", "blur #search-query": "_searchQueryBlurred" }, - _onWindowScroll: function(e) { - var scrollTop = $(window).scrollTop(); - if (scrollTop > 0 && !e.data.isScrolled) { - e.data.wikiMenu.addClass('wiki-menu-scrolling'); - e.data.isScrolled = true; - } else if (scrollTop === 0 && e.data.isScrolled) { - e.data.wikiMenu.removeClass('wiki-menu-scrolling'); - e.data.isScrolled = false; - } - }, _onMenuShortcutClick: function(e) { this.isMenuActive = !this.isMenuActive; }, _onMenuShortcutHover: function(e) { - if (this.isMenuActive || this.isMenuActiveLocked) - return; - this.wikiMenu.toggleClass('wiki-menu-inactive', false); - this.wikiMenu.toggleClass('wiki-menu-active', true); + if (!this.isMenuActive && !this.isMenuActiveLocked) + this._toggleWikiMenu(true); }, _onMenuShortcutLeave: function(e) { - if (this.isMenuActive || this.isMenuActiveLocked) - return; - this.wikiMenu.toggleClass('wiki-menu-active', false); - this.wikiMenu.toggleClass('wiki-menu-inactive', true); + if (!this.isMenuActive && !this.isMenuActiveLocked) + this._toggleWikiMenu(false); }, _onMenuHover: function(e) { - if (this.isMenuActive || this.isMenuActiveLocked) - return; - this.wikiMenu.toggleClass('wiki-menu-inactive', false); - this.wikiMenu.toggleClass('wiki-menu-active', true); + if (!this.isMenuActive && !this.isMenuActiveLocked) + this._toggleWikiMenu(true); }, _onMenuLeave: function(e) { - if (this.isMenuActive || this.isMenuActiveLocked) - return; - this.wikiMenu.toggleClass('wiki-menu-active', false); - this.wikiMenu.toggleClass('wiki-menu-inactive', true); + if (!this.isMenuActive && !this.isMenuActiveLocked) + this._toggleWikiMenu(false); + }, + _toggleWikiMenu: function(onOff) { + if (onOff) { + this.wrapperAndWikiMenu.toggleClass('wiki-menu-inactive', false); + this.wrapperAndWikiMenu.toggleClass('wiki-menu-active', true); + } else { + this.wrapperAndWikiMenu.toggleClass('wiki-menu-active', false); + this.wrapperAndWikiMenu.toggleClass('wiki-menu-inactive', true); + } }, _submitSearch: function(e) { e.preventDefault(); @@ -307,17 +295,19 @@ }, _updateActiveResult: function() { var entries = this.searchPreviewList.children(); - entries.toggleClass('wiki-menu-a-hover', false); + entries.toggleClass('search-result-hover', false); if (this.activeResultIndex >= 0) - $(entries[this.activeResultIndex]).toggleClass('wiki-menu-a-hover', true); + $(entries[this.activeResultIndex]).toggleClass('search-result-hover', true); }, _searchQueryFocused: function(e) { this.isMenuActiveLocked = true; + this.wikiMenu.toggleClass('wiki-menu-ext', true); }, _searchQueryBlurred: function(e) { $(e.currentTarget).val('').trigger('input'); + this.wikiMenu.toggleClass('wiki-menu-ext', false); this.isMenuActiveLocked = false; - if (!this.wikiMenu.is(':focus')) + if ($(document.activeElement).parents('#wiki-menu').length === 0) this._onMenuLeave(e); } }); diff -r cf313f55a3ab -r 72c522ba2da6 wikked/assets/tpl/nav.html --- a/wikked/assets/tpl/nav.html Thu Sep 25 10:54:55 2014 -0700 +++ b/wikked/assets/tpl/nav.html Thu Sep 25 10:55:42 2014 -0700 @@ -1,12 +1,7 @@ -