From a60d46978fab3ff22dc549a431b0219a09ec2575 Mon Sep 17 00:00:00 2001 From: John O'Nolan Date: Wed, 20 May 2015 16:37:06 +0100 Subject: [PATCH] Implement autonav --- core/client/app/styles/layouts/main.css | 132 +++++++++--------- core/client/app/styles/patterns/icons.css | 6 + core/client/app/templates/-nav-menu.hbs | 4 +- core/client/app/templates/application.hbs | 79 +++++------ core/client/app/views/application.js | 19 +++ .../client/public/assets/fonts/ghosticons.eot | Bin 16008 -> 16280 bytes .../client/public/assets/fonts/ghosticons.svg | 2 + .../client/public/assets/fonts/ghosticons.ttf | Bin 15832 -> 16104 bytes .../public/assets/fonts/ghosticons.woff | Bin 10364 -> 10496 bytes 9 files changed, 136 insertions(+), 106 deletions(-) diff --git a/core/client/app/styles/layouts/main.css b/core/client/app/styles/layouts/main.css index efb2237522..cb00dc7010 100644 --- a/core/client/app/styles/layouts/main.css +++ b/core/client/app/styles/layouts/main.css @@ -19,11 +19,6 @@ position: relative; flex-grow: 1; display: flex; - margin-left: 15px; -} - -.open-nav .gh-main { - margin-left: 0; } @@ -31,67 +26,20 @@ /* ---------------------------------------------------------- */ .gh-nav { - position: absolute; - top: 0; - left: -220px; - z-index: 10; - display: block; - width: 235px; - height: 100%; - border-right: #e1e1e1 1px solid; - background: #f6f6f6; - transition: transform 0.2s; - transform: translateX(0); -} - -.gh-nav:hover { - transform: translateX(220px); -} - -.open-nav .gh-nav { position: static; flex: 0 0 235px; display: flex; flex-direction: column; - width: auto; - height: auto; + border-right: #e1e1e1 1px solid; + background: #f6f6f6; transform: translateX(0); } -.gh-nav-toggle { - position: absolute; - top: 0; - right: 0; - z-index: 5; - width: 15px; - height: 100%; - text-align: center; - cursor: pointer; -} - -.gh-nav-toggle:hover { - background-color: rgb(224, 238, 250); -} - -.gh-nav-toggle:after { - content: ">"; - position: absolute; - top: 50%; - left: 50%; - font-size: 14px; - opacity: 0.25; - transform: translateX(-50%) translateY(-50%); -} - -.open-nav .gh-nav-toggle:after { - content: "<"; -} - .gh-nav-menu { flex-shrink: 0; display: flex; align-items: center; - padding: 15px 30px 15px 15px; + padding: 15px; } .gh-nav-menu i { @@ -147,7 +95,7 @@ .gh-nav-search { position: relative; - margin: 0 30px 10px; + margin: 0 15px 10px; } .gh-nav-search-input { @@ -181,7 +129,7 @@ .gh-nav-list { margin: 0; - padding: 0 30px 0 0; + padding: 0 15px 0 0; list-style: none; font-size: 1.3rem; line-height: 1.5em; @@ -215,7 +163,7 @@ } .gh-nav-list a:not(.active):hover { - background: color(var(--blue) lightness(+30%)); + background: color(var(--blue) alpha(-80%)); color: var(--darkgrey); } @@ -228,24 +176,20 @@ } .gh-nav-footer { - position: absolute; - bottom: 0; flex-shrink: 0; display: flex; align-items: center; - padding-right: 15px; - width: 100%; height: 40px; border-top: #e1e1e1 1px solid; } .gh-nav-footer-sitelink { flex-grow: 1; - display: flex; padding: 12px; color: var(--midgrey); + text-align: center; font-size: 1.3rem; - line-height: 1.2em; + line-height: 1; } .gh-nav-footer-sitelink i { @@ -258,6 +202,66 @@ } +/* Auto Nav - Opens and closes like OSX dock +/* ---------------------------------------------------------- */ + +.gh-autonav-toggle { + display: flex; + justify-content: center; + align-items: center; + padding: 5px 10px; + width: 45px; + height: 27px; + border-right: #e1e1e1 1px solid; + line-height: 1; + cursor: pointer; +} + +.gh-autonav-toggle:hover { + cursor: pointer; +} + +.gh-autonav-toggle i { + transition: all 0.2s ease; +} + +.gh-autonav-toggle:hover i { + color: var(--blue); +} + +/* Hide the nav */ +.gh-autonav .gh-nav { + position: absolute; + top: 0; + left: -220px; + z-index: 1000; + width: 235px; + height: 100%; + transition: transform 0.15s; + transform: translateX(0); +} + +/* THE FUTURE: Super sexy background blur for Webkit - http://cl.ly/b1rG */ +@supports (-webkit-backdrop-filter: none) or (backdrop-filter: none) { + .gh-autonav .gh-nav { + background: rgba(246,246,246, 0.7); + + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + } +} + +/* Bring it back on hover */ +.gh-autonav .gh-nav.open { + transform: translateX(220px); +} + +/* Move main content over for the closed-nav trigger bar */ +.gh-autonav .gh-main { + margin-left: 15px; +} + + /* Help (?) Menu /* ---------------------------------------------------------- */ diff --git a/core/client/app/styles/patterns/icons.css b/core/client/app/styles/patterns/icons.css index 0c6b7c6be3..961ba20bb9 100755 --- a/core/client/app/styles/patterns/icons.css +++ b/core/client/app/styles/patterns/icons.css @@ -232,3 +232,9 @@ .icon-signout:before { content: "\e036"; } +.icon-minimise:before { + content: "\e03f"; +} +.icon-maximise:before { + content: "\e040"; +} diff --git a/core/client/app/templates/-nav-menu.hbs b/core/client/app/templates/-nav-menu.hbs index a3e3498ecc..71e92f9d43 100644 --- a/core/client/app/templates/-nav-menu.hbs +++ b/core/client/app/templates/-nav-menu.hbs @@ -40,6 +40,9 @@ -
diff --git a/core/client/app/templates/application.hbs b/core/client/app/templates/application.hbs index 72041b4d2d..ab6236d4b2 100644 --- a/core/client/app/templates/application.hbs +++ b/core/client/app/templates/application.hbs @@ -1,50 +1,47 @@ Skip to main content + + +{{gh-notifications location="top" notify="topNotificationChange"}} + +
- - {{gh-notifications location="top" notify="topNotificationChange"}} + {{#unless signedOut}} + {{partial "nav-menu"}} + {{/unless}} + +
+ {{outlet}} +
+ + + {{gh-notifications location="bottom"}} + {{outlet "modal"}} + {{outlet "settings-menu"}} -
- - {{#unless signedOut}} - {{partial "nav-menu"}} - {{/unless}} - -
- {{outlet}} - - - {{gh-notifications location="bottom"}} - -
- - {{outlet "modal"}} - {{outlet "settings-menu"}} - -
{{!gh-viewport-container}} -
{{!gh-viewport}} +{{!gh-viewport}} \ No newline at end of file diff --git a/core/client/app/views/application.js b/core/client/app/views/application.js index 39ce9025fb..eddd9b98db 100644 --- a/core/client/app/views/application.js +++ b/core/client/app/views/application.js @@ -27,6 +27,25 @@ var ApplicationView = Ember.View.extend({ }); }); + // TODO: ABOVE - All of this can be removed + // TODO: BELOW - John wrote this, reimplement in a not-shit way + + // #### Toggle nav between fixed and auto + $('.gh-autonav-toggle').on('click tap', function () { + $('.gh-viewport').toggleClass('gh-autonav'); + $('.gh-autonav-toggle i').toggleClass('icon-minimise').toggleClass('icon-maximise'); + $('.gh-nav').removeClass('open'); + }); + + // #### Open and close the nav on hover + $('.gh-nav').mouseenter(function() { + $('.gh-nav').addClass('open'); + }); + $('.gh-main').mouseenter(function() { + $('.gh-nav').removeClass('open'); + }); + + mobileQuery.addListener(this.get('closeGlobalMobileNavOnDesktop')); }, diff --git a/core/client/public/assets/fonts/ghosticons.eot b/core/client/public/assets/fonts/ghosticons.eot index 053cbf4905ef99af00cf43caf95f950a3da741ad..1e34e4bad2501c2f6cd64da31756187655092382 100644 GIT binary patch delta 732 zcmYjO-%C?r7=GXLoqap`Nix``iJ_a#>O!{8wqrQc<&Fj+NW`R@jA3&NoGvu5KxR=8 z5ttp6VHY#%YDh)<1G-x`LhQz?fd*YfQFJ5p1Ge68CiKC}%k#WHp69&h;Zi=w^Fsii z2UoeFZWdOmtI@l;sp(FD!EFHOxL}Tq!cE|Ww+MHQU-s+%jj;y+c!lu9R3?#qzt0r_ zB}&|ODlwm}*MU+0OR8(BncLGJXN%7P)I30VE1gVSSG{{4s#PhBG!d#_vC*uP@QHM0 zVbO}BNIsdFn@W6pw)=@Do2l|BlUU3`9(JkoEa9%%L?$`zUb+L&ZxUC`&do1Wj&Ga- zi2NWoZvm-`qPkMpyw)i&pgx2~*pQ5aD5=W29YGq4 zYxK;D5EZhZs?0_vYK1i+)`WX``4>r&Gbu?n7?U=z=}^4p!W}vaG{gG8dm&i%{y$8I zfMtvH9?=86;a)v(CTuN7x~<7biVj|m+*k2D4wo(t{KN_St=StRf#B#t4h7^o`kFf3 ePu~3~MVq7=m_dwKwSgojJK)1)`M1pf|J%RXhLzg@ delta 432 zcmbPH-%-ofVaLF5!*(K@8OxWA_qI=TXsl1zF3G@PyN7{+LB`$1)r}#afepx?1LQ0C z2kRT@&+=(zU|@^@^23sI6AO-SVBNvMz+?jyJCUAPT=4%t12a(l6remudQN59=?W`; z1_qWM1_qNo8L5dWEDDCwK)E|WY?c8OV9{q{1?m+6@>Mc&ODZNiFmk8%-IWSGF_@d0@fU@;J%nZXfAf_w>aBFILD^Kr+1 JfoNp+0svZKX9fTO diff --git a/core/client/public/assets/fonts/ghosticons.svg b/core/client/public/assets/fonts/ghosticons.svg index b38e02dc99..e036d5df48 100644 --- a/core/client/public/assets/fonts/ghosticons.svg +++ b/core/client/public/assets/fonts/ghosticons.svg @@ -70,4 +70,6 @@ + + diff --git a/core/client/public/assets/fonts/ghosticons.ttf b/core/client/public/assets/fonts/ghosticons.ttf index b6aef65141f45e04c1efb87836955ec7a4c3729b..28794a8893471d47afe97d2895272c7a32784120 100644 GIT binary patch delta 712 zcmYjO-)mBF6hG(QyX(#GY6$AqFq{roJ&1PwvC=Y|&Rz7b6QMit)L$aCF*4a z)h>=Yd>K6qwxEY7f?kAvfOfuj4f?|2@cEo`&*yW_{do7wOa%}C zc0v_IIF(48J$XGlVF!q;5^FmiA5XwFkO?ml9!j3^sGjw0YHcn zx0=sPm%Ck>1d&%%SMrm$Cq9)LF94(kfWT5Am$@uCHyu=4rwA4bxhEA{?(yVQHuL@I z#%Jp5C4RP;xmAV**r1sQ2@jPr#az-la|a+4C$3SRn!eH6Q{M*={z2Ny`VO?m`lH3? zm--I3fsrM8t$WG2?L3D^Fs?=L0!FoG_|n69GOCA79{{jIh@Zm-5;Q2wlo4pwW>mW> z)Wk7}H9NvXlm_Pq*P64^TYp6t5_r!5ILVu1G`M%94`qwoZ?>aV9SwTWp$7aer^RIU zsR5H8+nqOYSyq&kKrbaJlA^@%H0v=CIbii#n|jNe$t${2oSTXq4v zq_-Pfu)hM}@_TT^Alq@+X)%YQM{^f}AlC#Z|>&laD@2DfHqk##&@SlEfY| z(OIl9R%6y`^%qH!GcHLsM3LJ-}zo@O=r7;aIaC{)uVB&C-=|uP?Ec{a!wfw&~LS_}zC=3~)-vBE*Q5 Sbi_H{0q-xa{O0-pU;7t;UXYal delta 412 zcmaD+d!xFZfsuiMftR6yftew|%`L>YC}F!K1B2}zps0+yi>n($J_8$&KL^NH@DJ8E z(x2ti%)r1H0py1z=Oz{$-@v+qfq}^eD0U(}vAE#>f1pVWwo`!e9O*fgX{Rf!_!$^j zdKef?_GF|crm!d&N(1HY0I^v{M(V_Rnbe+~{N%(-N00ge)v*A@+j0{t3K*s_+y|Oz z0pu&>CFZ6^h*bmawe$drtt!YbF6o}|e=Y-q)fb@M^T2)p`eXaOjbGyVZN4&aGXb?R zFkEc-0kj)JPhzxXbee3(7|Uokc@E=ZZJ;AT4rP!5Yi3|L1muB&LWY5bVHuES1JaBP zKyx10P0nMQx|yB1n{o3rmi;E1U9C77nGG2%CkI;VG8tMEx7lLeLI3IWH7l=l7E&!IfUj+aF diff --git a/core/client/public/assets/fonts/ghosticons.woff b/core/client/public/assets/fonts/ghosticons.woff index 58520433bbae0f8b01ea3454e0948b1beb3a2e98..3744001f1645b87e6d08a668d826184735f57ae1 100644 GIT binary patch delta 10381 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