Habrahabr side panel menu
http://habr.ru/
link(rel='stylesheet', href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.0.3/css/font- awesome.min.css")
link(rel='stylesheet', href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.0.3/css/font-awesome.min.css")
script(src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.0/jquery.min.js")
#sidemenu-bg.sidemenu-bg.hide
#wrap
#content
- var p = 0;
while p < 15
- p++
p Praesent viverra magna enim, vitae placerat sapien pulvinar a. Maecenas ut lobortis nisi. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Quisque eu arcu vel odio vulputate facilisis gravida eu dolor. Pellentesque rhoncus lobortis nibh, vel vulputate augue posuere vel. Quisque sit amet rutrum augue, quis auctor sem. Nam mauris erat, dapibus a neque nec, placerat varius quam. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Mauris euismod efficitur libero, sit amet euismod elit lacinia in. Donec metus dui, rutrum et ipsum finibus, feugiat rhoncus dui. Sed rhoncus mi ut dolor eleifend, sed mattis tortor porttitor. Maecenas mollis eros vitae bibendum vulputate. Proin placerat a lorem id pharetra. In imperdiet enim metus, aliquam gravida ipsum mattis in. Etiam ac tempus urna. Quisque consequat mauris ut arcu feugiat, ut lobortis ligula imperdiet.
ul#sidemenu.sidemenu
li.logo: a(href="#home"): i.habra H
li.has-submenu
a(href="#user")
i.fa.fa-user
ul.sidemenu-sub
li.text
h4 User
p
| You do not have the karma to vote.
a(href="#karmadrocherstvo") How to raise karma?
li: a(href="#my-feed") My feed
li: a(href="#my-profile") My profile
li: a(href="#my-posts") My posts
li: a(href="#my-comments") My comments
li: a(href="#my-dialogues") My dialogues
li: a(href="#my-favourites") My favourites
li.tracker.has-submenu
a(href="#tracker")
.marker 79
i.fa.fa-bell
ul.sidemenu-sub
li.text
h4 Tracker
li: a(href="#track-posts")
.marker.pull-right 79
|Posts
li: a(href="#subscribers") Subscribers
li: a(href="#mentions") Mentions
li: a(href="#applications") Applications
li.has-submenu
a(href="#sections")
i.fa.fa-bars
ul.sidemenu-sub
li.text
h4 Sections
li: a(href="#search") Search
li: a(href="#posts") Posts
li: a(href="#hubs") Habs
li: a(href="#companies") Companies
li: a(href="#users") Users
li: a(href="#q_a")
i.fa.fa-rocket.pull-right
|Q&A
li: a(href="#sandbox") Sandbox
li: a(href="#write"): i.fa.fa-pencil
li.full-height
a.hide#move-up(href="#move-up"): i.fa.fa-arrow-circle-up
a.hide#move-down(href="#move-down"): i.fa.fa-arrow-circle-down
li.has-submenu
a(href="#settings"): i.fa.fa-cog
ul.sidemenu-sub
li.text
h4 Settings
li: a(href="#account") Account
li.pull-down: a(href="#exit") Exit
//////////////////
//////////////////
// Vars
//////////////////
$dark-color = #333
$brand-color = #a0c2ce
$link-color = #6da3bd
$marker-color = #fb8a87
$font-size = 12px
$cell-size = 71px
$marker-size = max(16px, ceil($cell-size * .22))
$sidemenu-width = $cell-size * 3.5
$sidemenu-bg = #f2f2f2
$sidemenu-z = 100
$icon-base = 14px
//////////////////
// Mixins
//////////////////
makelongshadow($color, $size = 48)
r = (0px 0px $color)
for i in (1..$size)
shadow = , i * 1px i * 1px $color
push(r, shadow)
return r
longshadow(color, size)
text-shadow makelongshadow(color, size)
//////////////////
// Styles
//////////////////
*
*:before
*:after
box-sizing border-box
html
font 300 $font-size Arial, "PT Sans", sans-serif
color $dark-color
html
body
padding 0
margin 0
html
body
.sidemenu
height 100%
a
color $link-color
text-decoration none
&:hover
color darken($link-color, 20)
text-decoration underline
ul
margin 0
padding 0
h4
p
margin 0 0 6px
h4
font-size $font-size * 1.6
font-weight 500
#wrap
max-width 640px
margin 0 auto
#content
margin-left $cell-size
padding $cell-size * .25
.pull-right
float right
.hide
display none !important
.sidemenu-bg
position fixed
top 0
right 0
bottom 0
left 0
background-color rgba(black, .37)
z-index $sidemenu-z - 1
.sidemenu
position fixed
top 0
display table
background-color $sidemenu-bg
z-index $sidemenu-z
& > li
display table-row
&:hover
&.active
background-color darken($sidemenu-bg, 4)
& > a
box-shadow inset 0 -1px 0 darken($sidemenu-bg, 6)
&:first-child
&:last-child
& > a
box-shadow none
&.active
& .sidemenu-sub
display table-cell
& > a
box-shadow inset 3px 0 0 darken($sidemenu-bg, 22)
color darken($sidemenu-bg, 60)
&.full-height
height 100%
& > a
vertical-align middle
& > a
display table-cell
height $cell-size
width $cell-size
color darken($sidemenu-bg, 15)
text-align center
text-decoration none
&:hover
color darken($sidemenu-bg, 50)
& > .fa
font-size $icon-base * ceil($cell-size/3/$icon-base)
line-height $cell-size
&.logo
background-color $brand-color
text-align center
overflow hidden
& > a
color lighten($brand-color, 80)
overflow hidden
& .habra
font 700 $cell-size * .68 Tahoma
line-height $cell-size
longshadow(mix($brand-color, black, 81), remove-unit($cell-size/2.5))
&.tracker
& > a
position relative
& > .marker
$pos = $marker-size * .45
position absolute
top $pos
right $pos
& .marker
$fs = $marker-size * .6875
font-size $fs
font-weight 600
color white
background-color $marker-color
display inline-block
border-radius $marker-size
line-height $marker-size
min-width $marker-size
text-align center
& .sidemenu-sub
display none
list-style none
background-color darken($sidemenu-bg, 2)
width $sidemenu-width
position absolute
top 0
left $cell-size
bottom 0
border-left 1px solid darken($sidemenu-bg, 5)
z-index $sidemenu-z + 1
& > li
&.text
& > a
padding ($cell-size * 0.15) ($cell-size * 0.25)
&.text
& > h4
margin-top 8px
& > p
color darken($sidemenu-bg, 40)
&.pull-down
& > a
position absolute
bottom 0
left 0
right 0
padding-top 0
padding-bottom 0
line-height $cell-size
& > a
display block
font-size $font-size * 1.2
font-weight 700
color darken($sidemenu-bg, 45)
&:hover
color darken($sidemenu-bg, 69)
text-decoration none
background-color darken($sidemenu-bg, 9)
& > .fa
margin-top ($font-size / 6)
$ ->
$ ->
$doc = $ document
$content = $ '#content'
$slidemenu_bg = $ '#sidemenu-bg'
$sidemenu = $ '#sidemenu'
$has_submenu = $sidemenu.find '> li.has-submenu'
$no_submenu = $sidemenu.find '> li:not(.has-submenu)'
removeActive = null
$content.load "http://cors.io/loripsum.net/api/100"
move =
up: $ '#move-up'
down: $ '#move-down'
last: $doc.scrollTop()
move.up.click ->
move.last = $doc.scrollTop()
$doc.scrollTop 0
$doc.scroll()
move.down.removeClass 'hide'
move.down.click ->
$doc.scrollTop move.last
$doc.scroll()
move.up.removeClass 'hide'
move.down.addClass 'hide'
$doc.scroll ->
if $doc.scrollTop() > 0
move.up.removeClass 'hide'
move.down.addClass 'hide'
else
move.up.addClass 'hide'
$has_submenu.hover ->
$t = $ this
$has_submenu.removeClass 'active'
$t.addClass 'active'
$slidemenu_bg.removeClass 'hide'
clearInterval removeActive
, ->
$t = $ this
removeActive = setTimeout (->
$t.removeClass 'active'
$slidemenu_bg.addClass 'hide'
), 1000
hide = ->
$slidemenu_bg.addClass 'hide'
$has_submenu.removeClass 'active'
$slidemenu_bg.click hide
$no_submenu.hover hide