From 806656f651a71391f150f9400a5af31d9dd897e6 Mon Sep 17 00:00:00 2001 From: shuyuan Date: Thu, 14 Aug 2014 00:10:14 +0800 Subject: [PATCH] add weekly & opt ui --- app.coffee | 30 +- build.coffee | 8 + css/animate.css | 382 +++++++++++++++++ css/font.css | 6 +- css/main.css | 726 +++++++++++++++++---------------- css/main.styl | 67 ++- img/ui/hexagon_icon_about.png | Bin 2056 -> 1313 bytes img/ui/hexagon_icon_github.png | Bin 2140 -> 1590 bytes img/ui/hexagon_icon_join.png | Bin 2016 -> 1352 bytes img/ui/hexagon_icon_lab.png | Bin 2220 -> 1645 bytes img/ui/hexagon_icon_post.png | Bin 0 -> 1711 bytes img/ui/hexagon_icon_post2.png | Bin 0 -> 2351 bytes index.ejs | 33 +- index.html | 62 ++- js/main.js | 68 ++- 15 files changed, 975 insertions(+), 407 deletions(-) create mode 100644 css/animate.css create mode 100755 img/ui/hexagon_icon_post.png create mode 100755 img/ui/hexagon_icon_post2.png diff --git a/app.coffee b/app.coffee index 2f2fc7b..5ee85fa 100755 --- a/app.coffee +++ b/app.coffee @@ -5,19 +5,35 @@ data = require './data' port = 8457 -nb = nobone { +{ kit, proxy, renderer, service } = nobone { proxy: {} renderer: {} service: {} } -# Server -nb.service.get '/', (req, res) -> - nb.renderer.render('index.ejs') +# weekly = require './weekly' +# service.get '/', (req, res) -> +# renderer.render('index.ejs') +# .done (tpl_func) -> +# res.send tpl_func( { members: data.members, weekly: weekly } ) + +# service.get '/weekly/:title', (req, res) -> +# md = 'weekly/' + req.params['title'] +# kit.fileExists(md) +# .done (rs) -> +# if rs +# renderer.render(md) +# .done (rs) -> +# res.send {error: '200', post: rs} +# else +# res.send {error: '404'} + +service.get '/', (req, res) -> + renderer.render('index.ejs') .done (tpl_func) -> res.send tpl_func( { members: data.members } ) -nb.service.listen port -nb.kit.log 'Listen port ' + port +service.listen port +kit.log 'Listen port ' + port -nb.service.use nb.renderer.static() \ No newline at end of file +service.use renderer.static() \ No newline at end of file diff --git a/build.coffee b/build.coffee index 4067dcf..b553210 100755 --- a/build.coffee +++ b/build.coffee @@ -2,6 +2,7 @@ process.env.NODE_ENV = 'production' data = require './data' nobone = require 'nobone' +_ = require 'lodash' nb = nobone { proxy: {} @@ -13,6 +14,13 @@ log = nb.kit.log render = nb.renderer.render write = nb.kit.outputFile +# # complie md +# weekly = [] +# nb.kit.readdir('weekly') +# .done (rs) -> +# weekly = _.without(rs, 'img').reverse() +# write 'weekly.json', JSON.stringify(weekly) + # complie html render('index.ejs') .done (tpl_func) -> diff --git a/css/animate.css b/css/animate.css new file mode 100644 index 0000000..cf91ed9 --- /dev/null +++ b/css/animate.css @@ -0,0 +1,382 @@ +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-80px); + transform: translateX(-80px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + transform: translateX(0); + } +} +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} +@-webkit-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale(0.3); + transform: scale(0.3); + } + 50% { + opacity: 1; + } +} +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} +@-webkit-keyframes hue { + from { + -webkit-filter: hue-rotate(0deg); + } + to { + -webkit-filter: hue-rotate(-360deg); + } +} +.flipInX { + -webkit-backface-visibility: visible !important; + -ms-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateY(-10deg); + transform: perspective(400px) rotateY(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateY(10deg); + transform: perspective(400px) rotateY(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateY(0deg); + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +.flipInY { + -webkit-backface-visibility: visible !important; + -ms-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} +@-moz-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-80px); + -ms-transform: translateX(-80px); + transform: translateX(-80px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@-webkit-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-80px); + -ms-transform: translateX(-80px); + transform: translateX(-80px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@-o-keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-80px); + -ms-transform: translateX(-80px); + transform: translateX(-80px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@keyframes fadeInLeft { + 0% { + opacity: 0; + -webkit-transform: translateX(-80px); + -ms-transform: translateX(-80px); + transform: translateX(-80px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@-moz-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(80px); + -ms-transform: translateX(80px); + transform: translateX(80px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@-webkit-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(80px); + -ms-transform: translateX(80px); + transform: translateX(80px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@-o-keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(80px); + -ms-transform: translateX(80px); + transform: translateX(80px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@keyframes fadeInRight { + 0% { + opacity: 0; + -webkit-transform: translateX(80px); + -ms-transform: translateX(80px); + transform: translateX(80px); + } + 100% { + opacity: 1; + -webkit-transform: translateX(0); + -ms-transform: translateX(0); + transform: translateX(0); + } +} +@-moz-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale(0.3); + -ms-transform: scale(0.3); + transform: scale(0.3); + } + 50% { + opacity: 1; + } +} +@-webkit-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale(0.3); + -ms-transform: scale(0.3); + transform: scale(0.3); + } + 50% { + opacity: 1; + } +} +@-o-keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale(0.3); + -ms-transform: scale(0.3); + transform: scale(0.3); + } + 50% { + opacity: 1; + } +} +@keyframes zoomIn { + 0% { + opacity: 0; + -webkit-transform: scale(0.3); + -ms-transform: scale(0.3); + transform: scale(0.3); + } + 50% { + opacity: 1; + } +} +@-moz-keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@-webkit-keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@-o-keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes fadeIn { + 0% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@-moz-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + -ms-transform: perspective(400px) rotateY(90deg); + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateY(-10deg); + -ms-transform: perspective(400px) rotateY(-10deg); + transform: perspective(400px) rotateY(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateY(10deg); + -ms-transform: perspective(400px) rotateY(10deg); + transform: perspective(400px) rotateY(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateY(0deg); + -ms-transform: perspective(400px) rotateY(0deg); + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@-webkit-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + -ms-transform: perspective(400px) rotateY(90deg); + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateY(-10deg); + -ms-transform: perspective(400px) rotateY(-10deg); + transform: perspective(400px) rotateY(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateY(10deg); + -ms-transform: perspective(400px) rotateY(10deg); + transform: perspective(400px) rotateY(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateY(0deg); + -ms-transform: perspective(400px) rotateY(0deg); + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@-o-keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + -ms-transform: perspective(400px) rotateY(90deg); + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateY(-10deg); + -ms-transform: perspective(400px) rotateY(-10deg); + transform: perspective(400px) rotateY(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateY(10deg); + -ms-transform: perspective(400px) rotateY(10deg); + transform: perspective(400px) rotateY(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateY(0deg); + -ms-transform: perspective(400px) rotateY(0deg); + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} +@keyframes flipInY { + 0% { + -webkit-transform: perspective(400px) rotateY(90deg); + -ms-transform: perspective(400px) rotateY(90deg); + transform: perspective(400px) rotateY(90deg); + opacity: 0; + } + 40% { + -webkit-transform: perspective(400px) rotateY(-10deg); + -ms-transform: perspective(400px) rotateY(-10deg); + transform: perspective(400px) rotateY(-10deg); + } + 70% { + -webkit-transform: perspective(400px) rotateY(10deg); + -ms-transform: perspective(400px) rotateY(10deg); + transform: perspective(400px) rotateY(10deg); + } + 100% { + -webkit-transform: perspective(400px) rotateY(0deg); + -ms-transform: perspective(400px) rotateY(0deg); + transform: perspective(400px) rotateY(0deg); + opacity: 1; + } +} diff --git a/css/font.css b/css/font.css index 0f599a7..978da80 100644 --- a/css/font.css +++ b/css/font.css @@ -29,11 +29,11 @@ font-style: normal; } .font-s { - font-family: s, '微软雅黑'; + font-family: s, 'Hiragino Sans GB', Helvetica, Arial, 'Microsoft YaHei', sans-serif; } .font-n { - font-family: n, '微软雅黑'; + font-family: n, 'Hiragino Sans GB', Helvetica, Arial, 'Microsoft YaHei', sans-serif; } .font-l { - font-family: l, '微软雅黑'; + font-family: l, 'Hiragino Sans GB', Helvetica, Arial, 'Microsoft YaHei', sans-serif; } diff --git a/css/main.css b/css/main.css index 661c5d1..95e2bc4 100644 --- a/css/main.css +++ b/css/main.css @@ -22,12 +22,54 @@ a { text-decoration: none; } body { + overflow-x: hidden; padding-left: 200px; font-family: n, 'Hiragino Sans GB', Helvetica, Arial, 'Microsoft YaHei', sans-serif; + -webkit-font-smoothing: antialiased; } -canvas { - pointer-events: none; - z-index: 1 !important; +/* animated hamburger icon */ +.nav-toggle { + cursor: pointer; + padding: 10px 35px 16px 0px; + position: absolute; + top: 10px; + left: 10px; + z-index: 1000; + display: none; +} +.nav-toggle span, +.nav-toggle span:before, +.nav-toggle span:after { + cursor: pointer; + border-radius: 3px; + height: 4px; + width: 30px; + background: #fff; + position: absolute; + display: block; + content: ''; + transition: all 500ms ease-in-out; +} +.nav-toggle span:before { + top: -10px; +} +.nav-toggle span:after { + bottom: -10px; +} +.nav-toggle.active span { + background-color: transparent; +} +.nav-toggle.active span:before, +.nav-toggle.active span:after { + top: 0; +} +.nav-toggle.active span:before { + -webkit-transform: rotate(45deg); + transform: rotate(45deg); +} +.nav-toggle.active span:after { + -webkit-transform: rotate(-45deg); + transform: rotate(-45deg); } header { position: fixed; @@ -68,20 +110,41 @@ header nav li { background: url("../img/ui/hexagon_icon_github2.png") #db6968 center 10px no-repeat; background-size: 64px; } +header nav li.on, +header nav li:hover { + background-image: url("../img/ui/hexagon_icon_github.png"); +} header nav li:nth-child(2) { background-color: #22c3aa; background-image: url("../img/ui/hexagon_icon_lab2.png"); } +header nav li:nth-child(2).on, +header nav li:nth-child(2):hover { + background-image: url("../img/ui/hexagon_icon_lab.png"); +} header nav li:nth-child(3) { background-color: #305066; background-image: url("../img/ui/hexagon_icon_about2.png"); } +header nav li:nth-child(3).on, +header nav li:nth-child(3):hover { + background-image: url("../img/ui/hexagon_icon_about.png"); +} header nav li:nth-child(4) { background-color: #0ea8e3; background-image: url("../img/ui/hexagon_icon_join2.png"); } +header nav li:nth-child(4).on, +header nav li:nth-child(4):hover { + background-image: url("../img/ui/hexagon_icon_join.png"); +} header nav li:nth-child(5) { background-color: #cfe6ff; + background-image: url("../img/ui/hexagon_icon_post2.png"); +} +header nav li:nth-child(5).on, +header nav li:nth-child(5):hover { + background-image: url("../img/ui/hexagon_icon_post.png"); } section { color: #fff; @@ -120,7 +183,6 @@ section#open { } section#open h3 { font-size: 0; - color: transparent; height: 122px; background: url("../img/content/muplayer_text.png") center 196px no-repeat; text-align: center; @@ -129,6 +191,9 @@ section#open h3 { position: relative; z-index: 10; } +section#open h3 strong { + color: #22c3aa; +} section#open p { font-size: 20px; -webkit-animation-delay: 4s; @@ -142,7 +207,8 @@ section#open .btn-group { section#open .btn-group .btn { margin: 0 20px; } -section#open .btn-group .btn:hover { +section#open .btn-group .btn:hover, +section#open .btn-group .btn.active { background-color: #22c3aa; } section#open .feature { @@ -200,6 +266,8 @@ section#lab .showcase li { margin: 15px; text-align: center; position: relative; + width: 150px; + height: 150px; } section#lab .showcase li:hover .info { -webkit-transform: scale(1); @@ -216,8 +284,8 @@ section#lab .showcase .info { position: absolute; top: 0; left: 0; - width: 150px; - height: 150px; + width: 100%; + height: 100%; border-radius: 50%; background: rgba(63,147,147,0.8); opacity: 0; @@ -231,8 +299,8 @@ section#lab .showcase p { padding-top: 55px; } section#lab .showcase .thumb { - width: 150px; - height: 150px; + width: 100%; + height: 100%; border-radius: 50%; overflow: hidden; position: relative; @@ -264,7 +332,7 @@ section#about h2 { section#about h2 strong { color: #db6968; font-weight: normal; - font-size: 40px; + font-size: 1.5em; margin-right: 8px; } section#about .members { @@ -346,52 +414,52 @@ section#about .members li:nth-child(16) { left: 652.5px; } section#about .members li:nth-child(1) { - -webkit-animation-delay: 1.224531009909697s; + -webkit-animation-delay: 2.546296063344925s; } section#about .members li:nth-child(2) { - -webkit-animation-delay: 2.667773469700478s; + -webkit-animation-delay: 1.727835986064747s; } section#about .members li:nth-child(3) { - -webkit-animation-delay: 2.263339971075765s; + -webkit-animation-delay: 1.589964238926767s; } section#about .members li:nth-child(4) { - -webkit-animation-delay: 0.738861650577747s; + -webkit-animation-delay: 0.908075412851757s; } section#about .members li:nth-child(5) { - -webkit-animation-delay: 1.910697223618627s; + -webkit-animation-delay: 1.728068166528828s; } section#about .members li:nth-child(6) { - -webkit-animation-delay: 1.756169974803925s; + -webkit-animation-delay: 1.186911192606203s; } section#about .members li:nth-child(7) { - -webkit-animation-delay: 0.50597444770392s; + -webkit-animation-delay: 2.927523029618897s; } section#about .members li:nth-child(8) { - -webkit-animation-delay: 1.917397925979458s; + -webkit-animation-delay: 1.729065054212698s; } section#about .members li:nth-child(9) { - -webkit-animation-delay: 1.585450908867643s; + -webkit-animation-delay: 1.32791926106438s; } section#about .members li:nth-child(10) { - -webkit-animation-delay: 2.48800405021757s; + -webkit-animation-delay: 2.631613030214795s; } section#about .members li:nth-child(11) { - -webkit-animation-delay: 2.819017255213113s; + -webkit-animation-delay: 2.759911992005073s; } section#about .members li:nth-child(12) { - -webkit-animation-delay: 0.934360932558775s; + -webkit-animation-delay: 1.812140008667485s; } section#about .members li:nth-child(13) { - -webkit-animation-delay: 1.299300560029222s; + -webkit-animation-delay: 1.351988914073445s; } section#about .members li:nth-child(14) { - -webkit-animation-delay: 0.546873642713763s; + -webkit-animation-delay: 0.696481419843622s; } section#about .members li:nth-child(15) { - -webkit-animation-delay: 1.363579282304272s; + -webkit-animation-delay: 1.177789715118705s; } section#about .members li:nth-child(16) { - -webkit-animation-delay: 1.552779030869715s; + -webkit-animation-delay: 1.739744367194362s; } section#join { background: #0ea8e3; @@ -412,6 +480,40 @@ section#join h2 strong { font-weight: normal; color: #db6968; } +section#join .recruitment { + margin-top: 50px; + padding-left: 50px; +} +section#join p { + line-height: 2em; +} +section#weekly { + background: #cfe6ff; + color: #1e4889; +} +section#weekly h2 { + padding: 30px 50px; + text-align: left; + font-size: 30px; +} +section#weekly a { + color: #1e4889; +} +section#weekly code { + background: rgba(101,137,197,0.74); + padding: 0 5px; + border-radius: 10px; + font-family: 'consolas'; + margin: 0 10px; + color: #fff; +} +section#weekly .posts { + padding-left: 50px; +} +section#weekly .posts li { + margin-bottom: 20px; + list-style: disc; +} footer { position: fixed; width: 200px; @@ -433,6 +535,10 @@ footer .social li { background: url("../img/ui/iconfont-weibo.png") center center no-repeat; background-size: 40px; } +footer .social li a { + display: block; + height: 100%; +} footer .social li.github { background-image: url("../img/ui/iconfont-github.png"); background-size: 30px; @@ -440,386 +546,282 @@ footer .social li.github { footer .social li:hover { opacity: 0.6; } -/* animiate.css */ -.animated { - -webkit-animation-duration: 1s; - animation-duration: 1s; - -webkit-animation-fill-mode: both; - animation-fill-mode: both; -} -.animated.infinite { - -webkit-animation-iteration-count: infinite; - animation-iteration-count: infinite; -} -@-webkit-keyframes fadeInLeft { - 0% { - opacity: 0; - -webkit-transform: translateX(-80px); - transform: translateX(-80px); +/* Smartphones (portrait and landscape) ----------- */ +@media only screen and (min-device-width: 320px) and (max-device-width: 640px) { + body { + width: 100%; + padding-left: 180px; + -webkit-transform: translateX(-180px); + transform: translateX(-180px); + transition: all 500ms ease-in-out; } - 100% { - opacity: 1; + body.push-toright { -webkit-transform: translateX(0); transform: translateX(0); - } -} -.fadeInLeft { - -webkit-animation-name: fadeInLeft; - animation-name: fadeInLeft; -} -.fadeInRight { - -webkit-animation-name: fadeInRight; - animation-name: fadeInRight; -} -@-webkit-keyframes zoomIn { - 0% { - opacity: 0; - -webkit-transform: scale(0.3); - transform: scale(0.3); - } - 50% { + overflow: hidden; + } + body.push-toright .pt-perspective:before { + content: ''; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(0,0,0,0.3); + z-index: 999; + } + .nav-toggle { + display: block; + } + header { + width: 180px; + } + header h1 { + padding-top: 80px; + background-position-y: -5px; + background-size: 100px; + font-size: 35px; + margin: 0; + } + header nav li { + padding: 0 0 0 52px; + background-position: 12px center; + background-size: 35px; + height: 70px; + line-height: 70px; + text-align: left; + } + section .btn { + border-radius: 7px; + font-size: 16px; + line-height: 35px; + padding: 0 4px; + } + section .btn.btn-github i, + section .btn.btn-start i { + background-size: 25px; + margin-right: 0; + } + section#open h3 { + font-size: 60px; + background: none; + height: 92px; + padding-top: 100px; + margin-bottom: 120px; + } + section#open .feature.feature-api { + width: 230px; + height: 26px; + background-size: 230px 26px; + margin-left: -80px; + top: 85px; + -webkit-animation-delay: 1s; + animation-delay: 1s; + } + section#open .feature.feature-core { + width: 186px; + height: 28px; + background-size: 186px 28px; + margin-left: -150px; + top: 180px; + -webkit-animation-delay: 2s; + animation-delay: 2s; + } + section#open .feature.feature-stability { + width: 240px; + height: 49px; + background-size: 240px 49px; + margin-left: -109px; + top: 210px; + } + section#open p { + font-size: 14px; + } + section#open p span { + display: block; + } + section#open .btn-group { + margin-top: 35px; + } + section#open .btn-group .btn { + margin: 0 8px; + } + section#lab h2 { + font-size: 30px; + padding: 50px 0 0 20px; + } + section#lab h2 span { + display: block; + text-align: right; + padding-right: 20px; + } + section#lab .showcase { + max-height: 340px; + overflow-y: scroll; + padding: 10px; + } + section#lab .showcase li { + margin: 10px; + width: 120px; + } + section#lab .showcase .thumb { + height: 120px; + box-shadow: none; + } + section#lab .showcase .info { + position: static; + border-radius: 0; opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + height: auto; + background: none; } -} -.zoomIn { - -webkit-animation-name: zoomIn; - animation-name: zoomIn; -} -@-webkit-keyframes fadeIn { - 0% { - opacity: 0; + section#lab .showcase .title { + margin-top: 5px; + padding-top: 0; + font-size: 14px; } - 100% { - opacity: 1; + section#about h2 { + font-size: 20px; + padding-top: 50px; } -} -.fadeIn { - -webkit-animation-name: fadeIn; - animation-name: fadeIn; -} -@-webkit-keyframes hue { - from { - -webkit-filter: hue-rotate(0deg); + section#about .members { + margin-top: 10px; + width: 317px; + height: 207px; } - to { - -webkit-filter: hue-rotate(-360deg); + section#about .members li { + position: absolute; + width: 65px; + height: 65px; + top: 0; } -} -.flipInX { - -webkit-backface-visibility: visible !important; - -ms-backface-visibility: visible !important; - backface-visibility: visible !important; - -webkit-animation-name: flipInX; - animation-name: flipInX; -} -@-webkit-keyframes flipInY { - 0% { - -webkit-transform: perspective(400px) rotateY(90deg); - transform: perspective(400px) rotateY(90deg); - opacity: 0; + section#about .members li .clip { + -webkit-clip-path: polygon(50% 0, 93.3012701892219% 25%, 93.3012701892219% 75%, 50% 100%, 6.698729810778099% 75%, 6.698729810778099% 25%); } - 40% { - -webkit-transform: perspective(400px) rotateY(-10deg); - transform: perspective(400px) rotateY(-10deg); + section#about .members li img { + width: 100%; + height: 100%; } - 70% { - -webkit-transform: perspective(400px) rotateY(10deg); - transform: perspective(400px) rotateY(10deg); + section#about .members li:nth-child(1) { + left: 31.5px; } - 100% { - -webkit-transform: perspective(400px) rotateY(0deg); - transform: perspective(400px) rotateY(0deg); - opacity: 1; + section#about .members li:nth-child(2) { + left: 94.5px; } -} -.flipInY { - -webkit-backface-visibility: visible !important; - -ms-backface-visibility: visible !important; - backface-visibility: visible !important; - -webkit-animation-name: flipInY; - animation-name: flipInY; -} -@-moz-keyframes fadeInLeft { - 0% { - opacity: 0; - -webkit-transform: translateX(-80px); - -ms-transform: translateX(-80px); - transform: translateX(-80px); + section#about .members li:nth-child(3) { + left: 157.5px; } - 100% { - opacity: 1; - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); + section#about .members li:nth-child(4) { + left: 220.5px; } -} -@-webkit-keyframes fadeInLeft { - 0% { - opacity: 0; - -webkit-transform: translateX(-80px); - -ms-transform: translateX(-80px); - transform: translateX(-80px); + section#about .members li:nth-child(5) { + top: 57px; + left: 0px; } - 100% { - opacity: 1; - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); + section#about .members li:nth-child(6) { + top: 57px; + left: 63px; } -} -@-o-keyframes fadeInLeft { - 0% { - opacity: 0; - -webkit-transform: translateX(-80px); - -ms-transform: translateX(-80px); - transform: translateX(-80px); + section#about .members li:nth-child(7) { + top: 57px; + left: 126px; } - 100% { - opacity: 1; - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); + section#about .members li:nth-child(8) { + top: 57px; + left: 189px; } -} -@keyframes fadeInLeft { - 0% { - opacity: 0; - -webkit-transform: translateX(-80px); - -ms-transform: translateX(-80px); - transform: translateX(-80px); + section#about .members li:nth-child(9) { + top: 57px; + left: 252px; } - 100% { - opacity: 1; - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); + section#about .members li:nth-child(10) { + top: 57px; + left: 315px; } -} -@-moz-keyframes fadeInRight { - 0% { - opacity: 0; - -webkit-transform: translateX(80px); - -ms-transform: translateX(80px); - transform: translateX(80px); + section#about .members li:nth-child(10) { + top: 114px; + left: 31.5px; } - 100% { - opacity: 1; - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); + section#about .members li:nth-child(11) { + top: 114px; + left: 94.5px; } -} -@-webkit-keyframes fadeInRight { - 0% { - opacity: 0; - -webkit-transform: translateX(80px); - -ms-transform: translateX(80px); - transform: translateX(80px); + section#about .members li:nth-child(12) { + top: 114px; + left: 157.5px; } - 100% { - opacity: 1; - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); + section#about .members li:nth-child(13) { + top: 114px; + left: 220.5px; } -} -@-o-keyframes fadeInRight { - 0% { - opacity: 0; - -webkit-transform: translateX(80px); - -ms-transform: translateX(80px); - transform: translateX(80px); + section#about .members li:nth-child(1) { + -webkit-animation-delay: 2.759445494273677s; } - 100% { - opacity: 1; - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); + section#about .members li:nth-child(2) { + -webkit-animation-delay: 1.047273241099902s; } -} -@keyframes fadeInRight { - 0% { - opacity: 0; - -webkit-transform: translateX(80px); - -ms-transform: translateX(80px); - transform: translateX(80px); + section#about .members li:nth-child(3) { + -webkit-animation-delay: 1.55638429231476s; } - 100% { - opacity: 1; - -webkit-transform: translateX(0); - -ms-transform: translateX(0); - transform: translateX(0); + section#about .members li:nth-child(4) { + -webkit-animation-delay: 0.737513264873997s; } -} -@-moz-keyframes zoomIn { - 0% { - opacity: 0; - -webkit-transform: scale(0.3); - -ms-transform: scale(0.3); - transform: scale(0.3); + section#about .members li:nth-child(5) { + -webkit-animation-delay: 1.619466733653097s; } - 50% { - opacity: 1; + section#about .members li:nth-child(6) { + -webkit-animation-delay: 1.959131966112182s; } -} -@-webkit-keyframes zoomIn { - 0% { - opacity: 0; - -webkit-transform: scale(0.3); - -ms-transform: scale(0.3); - transform: scale(0.3); + section#about .members li:nth-child(7) { + -webkit-animation-delay: 2.501941879861988s; } - 50% { - opacity: 1; + section#about .members li:nth-child(8) { + -webkit-animation-delay: 0.60734065377619s; } -} -@-o-keyframes zoomIn { - 0% { - opacity: 0; - -webkit-transform: scale(0.3); - -ms-transform: scale(0.3); - transform: scale(0.3); + section#about .members li:nth-child(9) { + -webkit-animation-delay: 1.015648419968785s; } - 50% { - opacity: 1; - } -} -@keyframes zoomIn { - 0% { - opacity: 0; - -webkit-transform: scale(0.3); - -ms-transform: scale(0.3); - transform: scale(0.3); - } - 50% { - opacity: 1; - } -} -@-moz-keyframes fadeIn { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} -@-webkit-keyframes fadeIn { - 0% { - opacity: 0; - } - 100% { - opacity: 1; - } -} -@-o-keyframes fadeIn { - 0% { - opacity: 0; - } - 100% { - opacity: 1; + section#about .members li:nth-child(10) { + -webkit-animation-delay: 1.639494816889055s; } -} -@keyframes fadeIn { - 0% { - opacity: 0; + section#about .members li:nth-child(11) { + -webkit-animation-delay: 1.947362345643342s; } - 100% { - opacity: 1; + section#about .members li:nth-child(12) { + -webkit-animation-delay: 0.661575482343322s; } -} -@-moz-keyframes flipInY { - 0% { - -webkit-transform: perspective(400px) rotateY(90deg); - -ms-transform: perspective(400px) rotateY(90deg); - transform: perspective(400px) rotateY(90deg); - opacity: 0; + section#about .members li:nth-child(13) { + -webkit-animation-delay: 2.77694787841756s; } - 40% { - -webkit-transform: perspective(400px) rotateY(-10deg); - -ms-transform: perspective(400px) rotateY(-10deg); - transform: perspective(400px) rotateY(-10deg); + section#about .members li:nth-child(14) { + -webkit-animation-delay: 2.84854206442833s; } - 70% { - -webkit-transform: perspective(400px) rotateY(10deg); - -ms-transform: perspective(400px) rotateY(10deg); - transform: perspective(400px) rotateY(10deg); + section#about .members li:nth-child(15) { + -webkit-animation-delay: 1.122111807460898s; } - 100% { - -webkit-transform: perspective(400px) rotateY(0deg); - -ms-transform: perspective(400px) rotateY(0deg); - transform: perspective(400px) rotateY(0deg); - opacity: 1; + section#about .members li:nth-child(16) { + -webkit-animation-delay: 2.409170274157078s; } -} -@-webkit-keyframes flipInY { - 0% { - -webkit-transform: perspective(400px) rotateY(90deg); - -ms-transform: perspective(400px) rotateY(90deg); - transform: perspective(400px) rotateY(90deg); - opacity: 0; + section#join h2 { + font-size: 24px; + padding: 50px 0 0 10px; } - 40% { - -webkit-transform: perspective(400px) rotateY(-10deg); - -ms-transform: perspective(400px) rotateY(-10deg); - transform: perspective(400px) rotateY(-10deg); + section#join .recruitment { + margin-top: 20px; + padding: 0 10px; + font-size: 14px; } - 70% { - -webkit-transform: perspective(400px) rotateY(10deg); - -ms-transform: perspective(400px) rotateY(10deg); - transform: perspective(400px) rotateY(10deg); - } - 100% { - -webkit-transform: perspective(400px) rotateY(0deg); - -ms-transform: perspective(400px) rotateY(0deg); - transform: perspective(400px) rotateY(0deg); - opacity: 1; - } -} -@-o-keyframes flipInY { - 0% { - -webkit-transform: perspective(400px) rotateY(90deg); - -ms-transform: perspective(400px) rotateY(90deg); - transform: perspective(400px) rotateY(90deg); - opacity: 0; + section#weekly h2 { + font-size: 24px; + padding: 50px 30px 20px; } - 40% { - -webkit-transform: perspective(400px) rotateY(-10deg); - -ms-transform: perspective(400px) rotateY(-10deg); - transform: perspective(400px) rotateY(-10deg); + section#weekly .posts { + padding-left: 30px; + font-size: 14px; } - 70% { - -webkit-transform: perspective(400px) rotateY(10deg); - -ms-transform: perspective(400px) rotateY(10deg); - transform: perspective(400px) rotateY(10deg); - } - 100% { - -webkit-transform: perspective(400px) rotateY(0deg); - -ms-transform: perspective(400px) rotateY(0deg); - transform: perspective(400px) rotateY(0deg); - opacity: 1; - } -} -@keyframes flipInY { - 0% { - -webkit-transform: perspective(400px) rotateY(90deg); - -ms-transform: perspective(400px) rotateY(90deg); - transform: perspective(400px) rotateY(90deg); - opacity: 0; - } - 40% { - -webkit-transform: perspective(400px) rotateY(-10deg); - -ms-transform: perspective(400px) rotateY(-10deg); - transform: perspective(400px) rotateY(-10deg); - } - 70% { - -webkit-transform: perspective(400px) rotateY(10deg); - -ms-transform: perspective(400px) rotateY(10deg); - transform: perspective(400px) rotateY(10deg); - } - 100% { - -webkit-transform: perspective(400px) rotateY(0deg); - -ms-transform: perspective(400px) rotateY(0deg); - transform: perspective(400px) rotateY(0deg); - opacity: 1; + footer { + width: 180px; } } diff --git a/css/main.styl b/css/main.styl index a85c3f2..f1e5787 100755 --- a/css/main.styl +++ b/css/main.styl @@ -109,22 +109,32 @@ header -webkit-user-select none background url(../img/ui/hexagon_icon_github2.png) #DB6968 center 10px no-repeat background-size 64px + &.on, &:hover + background-image url(../img/ui/hexagon_icon_github.png) &:nth-child(2) background-color #22C3AA background-image url(../img/ui/hexagon_icon_lab2.png) + &.on, &:hover + background-image url(../img/ui/hexagon_icon_lab.png) &:nth-child(3) background-color #305066 background-image url(../img/ui/hexagon_icon_about2.png) + &.on, &:hover + background-image url(../img/ui/hexagon_icon_about.png) &:nth-child(4) background-color #0EA8E3 background-image url(../img/ui/hexagon_icon_join2.png) + &.on, &:hover + background-image url(../img/ui/hexagon_icon_join.png) &:nth-child(5) - background-color #CFE6FF - + background-color #CFE6FF + background-image url(../img/ui/hexagon_icon_post2.png) + &.on, &:hover + background-image url(../img/ui/hexagon_icon_post.png) section color white @@ -305,7 +315,8 @@ section .title margin-top 10px - + + &#about background #305066 @@ -323,7 +334,7 @@ section $w = 150px $h = 150px $gap = -5 - .members + .members position relative margin 50px auto 0 width ($w + $gap) * 6 - $gap @@ -375,11 +386,43 @@ section font-size 40px padding 50px 0 0 50px text-align left - strong font-weight normal color #DB6968 + .recruitment + margin-top 50px + padding-left 50px + + p + line-height 2em + + &#weekly + background #CFE6FF + color #1E4889 + + h2 + padding 30px 50px + text-align left + font-size 30px + + a + color #1E4889 + + code + background rgba(101, 137, 197, 0.74) + padding 0 5px + border-radius 10px + font-family 'consolas' + margin 0 10px + color white + + .posts + padding-left 50px + li + margin-bottom 20px + list-style disc + footer position fixed width 200px @@ -605,6 +648,20 @@ footer h2 font-size 24px padding 50px 0 0 10px + + .recruitment + margin-top 20px + padding 0 10px + font-size 14px + + &#weekly + h2 + font-size 24px + padding 50px 30px 20px + + .posts + padding-left 30px + font-size 14px footer width $sidebar_w diff --git a/img/ui/hexagon_icon_about.png b/img/ui/hexagon_icon_about.png index 7495557c50c776ca6f3d012fbd2b1104ca701601..c60f97271e4f17695c43fa04e1d7587a428cc93e 100755 GIT binary patch delta 1257 zcmeAWSjaWOqn_okr;B4q#jQ7U`$KOV2((Y#!}mb&5~qQ%fLeoJgE35@+32@kN&$J z{dsgaNB^|Rrm4As2ama4THRPyC%bH-MSbw$V;rzc|XKC|&`-}G<{AgMHr_!~-DtuAlvU=l=a7Ehlr`I8R~* z!#SIpXZ4<6m_F=?Z&zcGFMFoBhQX07XQQR|H(drRorbN;&)4$i*gWTWz+JWX-mS@- zr#1F2=U-^Qd=sn9u6cihA{L(A@tot>TG^0O&vpoya9;77-nt+(i19e%@%^cNew!U~ zWvoRGRAwc}a?6xx$5yt`c55N+HfrG$)Y1&#wlAabzAfCp2@SmzRvgA#f=>@&!;CH^Ejs65PE89 zx`Flm)b@93N7pWRo_L|&_+mnO&r6p8`DHuS$j6-g{g>xpUi`~d@4uWfH9mds{VdnR z-#6ciH;;Y0d&b9CoZ&xDugut|elA4e)5PP?+orDQb?Vzx7`EKy-6F*lEt@Sh)1PdA z_}<80JGP^D{#5Spzq6VRb1weO70gnoxOxxg8N!I;Yo$dXLc7? z$cL5~Zq1ml&`@S!{O0<1zU@sH_no@!7tGC+(RfJc?>~XB^SyRWKWBdSU&j3>6Hgsp zc)cyu!SeqWx3C3s?2TCJv%bYEHGB(ajIN*gEyD8i0o(eNqJQV!oELET?W6ni_v*4| zy9K`Ga(n57fBLm9nImz=-<>NW8o68ZCtAm{R-C^z(|fDT?LLpMSqoYWE^R!V_ov{6 z;OpPtKK-+Fx6(c-&|p8!YH#(LYPogUtl8K9$AAAG-}NCbQTVIa0=8cve7`nE&1%kS z`=P_5T7NFsU6O<8LiM-8hWE@HxEzlPDeV!DbWv^CpBZt&_?}qJD~rTV2ASs%CUz!> zJSr2|#Bj|@)|+W=?VZ+dd!5cP<>j2-x9*VWqqhpn&R+4ZJ+B^}ru5%$>&p0!kbARV zY`k3>`sm)|wYR^2wD@^%+dhWl=e4fXRj6LkeQ?pJW7Vtjdf9}7u4muOTw3^Lp2UH3 zlMnuE<@oITaJNlFm%BGh0^baupLIN2zc(%oukT|xbMgPaoAw{(4C~pF0*)#DlynnfCj)SeHEJ)nb)z4*}Q$iB}`*uS1 delta 2006 zcmV;{2PycW3WyMpNPh>aNklT#S(u^f%ga)8|O^G1F7 zrPu)+cT4zIwbhhW0on2MgZb;eaRtbZpC2t^Z<|?w?D=__`Sln+ndVX}AVhp%+0Q#y zwL4Q?M0{YG!G9A6=Q%-HIdT*0l8f?P_&O%$9?d`3ffthPXGTkp&!_akeYv7B!4_Ij zR=(^rqbRka?TliIZ0+K0JENR>!iRX;&RB2}sU?K(i#QfS^c!h5gk@Ec#!0Av8Rw@T z6;af{t@GC1o(Q^NgYns|t|3H3IPIo`V?De- z@quiiuY%xXhvRS9xKGpcZLE`HFaNNSDRcVC=Cm2h1hbb3%}b_NHkNE&yCLVp{_lm& zY02I;Y!s#~K;uZ7siS7-AXL-e(9vupo;5Zsz*t&e(?_mN&!qJUSpu$kd>ekE93=Nc zSOZc9!GGKpw?Z^OPTVSdq2Ir;Z9lO&J^CJC3~m8P^N-oam3qWl3QjZ2^O{TX(Bz6g zK6XD{wE!*yV0%sYN?yFTZFZG_xNKv=r0sJ6pu6^O+iJAL?7hW#)onp}%RWN_;De){ zM?}@jwpj;{fY}S*HnUh76(;|=!#=O{>SW!-Reu2F3iG<8s)>>+nxu@t);iE++b)%J z0sue&z%_d7sWpSt0=i@xuJ=k@1;8(Q{nC-qh2jcK(?*E}y2K4D)B!pOvrD=~`-mmy z3ybrbcF9hZ^t3`6*uUUXT-jDG%N7>rlu7l8i{)q9RurhV1M@Bj0LTp7llEmAOCeuu zGJhRlUWKI9+P1jTzt|7GL@o#bNFZo5jh{x-AeweK?u4v{I95%Cq^t)BgpkFt)bEQC z_!b5Lq&ZX91s z#QMO-U+E3R_Wz;ztIp+NTFkiN&^!k?GNbDGQY=|ylJ*FiX(*;zL@cCN4rGJ4H z$2wtmZs95d&m>SBKi@)pE^ItVAb5%q0AkU{v%#h2zZ4)Ok|viu!KCiLGspuGlT2a+ zKw^QRf<8&_h32;g00}!IbFXT?vH1>t-GHkAFi9(ou*IsPrw*05Z}hsA^j`dfanmC(C!rwtV!GFWZkw>F!o5Rj71tKqV!#KS4I2a0%(ql zGZnW&28d$fb=MfG+po_Y*T@YS#&!W81JL+|67+2-82nA2a}l^vy7|cV`+rK7pp^F6 zXrl6rg2-1XyC~_H+*R-<(*u={VF8A;0OYf`%AGay0eP}E(KJF3*q;`XcHc2AoDG#% zbB$+%mvdjlTztJpl9w)knmq*tb;p}lkPxcm{S6yT7Oj2?lg}^vrkH_`Ib|Dg0k&O$ zZmG4!&f>)mp3)`EdYlV_z<-V>H<5C3k*aZ5AUca&OTQ;}O3Y7`D)J0qN3LMS-mfS) zwnUBrBuMNeG{wi z0*F%9u~EPY09d3000C4fB*mx z00062KmY&;0022bF02P=3@?Zol@6Yr3@iXFz&Mnq>3v9yq#HjV1^@v7AOHXa0Du4h z5C8xQ2mqO{7eK~DB%{m*0Qf}@TRcAAY2kC(Y!lNLsL%zF^0oMDmu{6};{wYo|JS&5 zGilBJ3bt0}rg=a@?SH~!(P9Mv-6W&#^T3One2nf-$BYkR1HhT5mDGdEfUd`H6th!} z34jr(9N}Em$LBPoKBYwS9G<}^6axUxDBNiG7vTX-T+( zcRKCv8nEn@_#lUfFIvz>v7nXjCzWX)xHLz6@Qz1w^|?nu@qbA3oZtNr&-(R%FH^-z zE`qj_!T2}CNkBd}b=5A0KFaIoh;w0YO)_L-{sB oAgFbFv}q#+!YuYS?H>UK04?VN1CuT@7ytkO07*qoM6N<$f-}{@F#rGn diff --git a/img/ui/hexagon_icon_github.png b/img/ui/hexagon_icon_github.png index 87ca36e21e8f96bff81238fa46eff6053f7a86d4..c4252ef9186176f4b2c1ea752b6e049a02cad65b 100755 GIT binary patch delta 1536 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 Vy#z<09s>XX002ovPDHLkV1kz`>k9w? diff --git a/img/ui/hexagon_icon_join.png b/img/ui/hexagon_icon_join.png index d046d39745bd74dc3bc0e309832e914f2d9c6150..73293a79c1fb1170583a0a4c91e39d5d55edbc89 100755 GIT binary patch delta 1297 zcmaLXi$Bu|008jcW*d{*u!>9+dgmQwM)Tg~k-OxTHzo5d?$c*ti)uM}bR4N>lkU96 zuteAzcFPPq%*~v4l-a!QF3-dL2YvsD?-Zh2HQ$W{S-?BtuH73|Q1g;TO;Hr61fwAl6PsT($L}w_y~fBJ_Ul>3 zR12@|rE60Z{*_nD!ZJloIQhy@5t8?OYrW2y_j9N~u4CI*x;SuvkRnZyn-lzYK?#ZM zRfKDs+p-5i92M4Zz}l}__Y-ZMH~UkoyKW&Zd~OEjg+8*!d)JdVRc{An{9k#)+fIMuvBDYg>k7 zU{N*R8>mwLq<3TqS$Z9{FzD09mMy%w!T-n@;LRDM4_OF$Hpl6?GkjW;@0Z1heC@tE zyf*tQaG2feETa8bR-SC9S;m{FnYn#H=O5|nZKxHro$W`oGL^-cFf!pSYz+0!c6am_+&)N)8*oD;CB zb;A>xX1Q54dF5!o-AR^4$+PZsijO5rGn^doo+08Ay9hu zRpq>_0Y_?TCQ(=E6*Sb@63)5)Vz0$I{Q$#FyD{N%54)x{*lcAQ)GK`SYu2(7IwrcR z3v;2TDR>@578u-~2^!Y#9Xu{>avP5i>O*Jff&1f?f^0ZOvEIXrRwJ-O>*vGmp!6J4 zdvsXX--eIhWSAZmk`ujwm#g(xxvfqR8df~LJGf8H zz$eU%HJ1k{0r(w_K)BtzhX9}o0C;Clr#gqwjQ;`c C_+bJ7 delta 1966 zcmV;f2T}OQ3g8crNPh={NklNT{{WF z-E}Qhd@rTXII;h!z(IEfpG)e!Wq%v^f30LDa&Xig!Kad)XEV8+&`&98jz*<9Kz7-A zt+xD{?*NY5C48f^RhL!)nX&VW+3Tr(1;~t@U(I75y0QS7v-2YJw`@|Dki25jXza^7m}T(MstUsCwIYo*)n6i z4YVMveBEXS5o$%+8Nn1$+l8BUMmY5qAHqpHqu?S?O$gf;urCDfH_+7(%BlkOlMn&Z z&QCWYqKJVT=dHat5oEy@ zdU$vI15rcgIswqa&O75Dv_k=KH=^%z9LHy{*lr>j4VKd#SQa(`0000eWV#RBVPX-q zM6#iKoeo)d$xQXXj+HYS#VjpKrsgIPRa(g;oU zc`-(#D1Z8Buk_!TSXu)Bzdl2y$X%p8-%aWJqOdjtXZ@>ynM%0S|3><51^}27emx~& zqNvl`4&V`2@5w-I(F&R-0RZ$1zYqjdPV7UR*;NlvPPagE1!P>)>;M40!WRXznb}t* zsOz*x!%UjRqzUxJ?g4;b1k-9}>Q?&uVUC8OK7Y1TGzb82ecXKZ7n=GL?R+B5-qYN8 zgpPiu0N~CdfoTI8JvbB6F^=OW9pj?_&Nq6?LB$!opV>F>H(9#C#@A4=7Qra!AG$tp zfzkCp4Sn;m0stE5H@be;+%KQ0-c&vN3V_Uz1~~V;f6%D4jsSo@GF`#6mxMRj3FLt4 z{C@!eKm+}2NL8l_=j}|+TREfOk92)nno+(2K&NUJ=|KV*qrd6;d1@f2yKwM)1pqXw zX3g2QLUINfJrdxUcG!#*J{ubk{yeQwE8rynNHrhH2hbG=DoDs@F}6TOnD6OrIW*x! z>-~nz6zk)ImCRf!5~%w=LK5dRR|`lBh+dM>dU-(3X& zsQZ==t11<_{e+50A>_j1MO{N<4v zD=^s$6+r-iqcfak^Vl*`wZvm#-f#37kN9z|kW(KF41aY%__Fl)u{(I4@ayh!=vqYr zK9U3Zo}5TVzjy6j*WS|mxclsF^nWAv{}jC>lD2CcwRaz=;JA90cklB2{`2d;6H#c^ z?}Yzlg8wko#*@lt?F$8lnCbW|0O3#S?`#FL9FGKM6q?=L2+ykML>_f5CTxV`*-m4( zgpG)y9Hu6Tf{z3W8Mi)xi#v8}q4gzgM4@bWaH!|d%t8ZT4|6hw!2&>WaDO6a;*PXH zHbEGrVz$4E5=t9AFLMuTlur5@oz4yt0E$yg8{G~SENz$k zu}MXy@Ta|&vX65?Af~e`06;w>PitlE6a^rq0T5JUO+gRGJE0D1WAfy9j%wh|j3OA001ata?S_9zJb625Y0T03FIyS-a%Xe1Hif8+JO@Y0sue& z0LUKzB>3@YCzi=fMu`akuu7f9_pX6P37^U45a~W5S5f`inl8Ntjh0U)c;wJKW`wB51UGTeqe-^;U@)%d}zWzZGRtpp+LP~tcE5rN)=Yl z9e$qN+VHLAjB`5ejEJZ{o9R^A895O%OwC+SqsWRb<49S@VAMqfs$x+Y6>u;m)F76v z%dEx1sR&~S8ffu7Q01F{pe@uIQmEQD|6ulPMflba|6sJeMmd{*Kp5n)BTehSf1tGG zNYjP|1Xa`y;V0Vwfgs22k){n42zBUb+W!R@0KJCKo82uNs{jB107*qoM6N<$f_((5 A)Bpeg diff --git a/img/ui/hexagon_icon_lab.png b/img/ui/hexagon_icon_lab.png index 015c34ebc9d8be3be392a6709dcdfc4987ef4367..e3e8ea5d78dd3e330cf53da90d3ca152b96cd829 100755 GIT binary patch delta 1592 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 VyT}LAm|p+@002ovPDHLkV1ny2S&jez literal 0 HcmV?d00001 diff --git a/index.ejs b/index.ejs index 6d99170..4ca015f 100755 --- a/index.ejs +++ b/index.ejs @@ -21,6 +21,7 @@
  • Our Lab
  • About Us
  • Join Us
  • +
  • FE Weekly
  • @@ -116,6 +117,8 @@ + +

    我们是百度音乐前端团队

    @@ -130,6 +133,31 @@

    <Music-FE> 一起成长

    +
    +

    如果你是技术Geek,这里有各种开源项目等待你的加入

    + +

    在业务需求的开发基础上,我们已经对外开源了百度音乐播放内核

    + +

    还有多个进行中的内部项目,期待你的加入

    + +

    不只是前端,你可以学习和使用到各种技术

    + +

    我们有熟悉服务端的同学,开发维护的内部工具平台,为前后端调试提供便利

    + +

    我们有热爱Node.js的同学,并已经使用到线上产品中

    + +

    我们的播放内核还用到flash和音频处理

    + +

    我们在移动端有丰富的积累和多个移动端项目。比如正在进行native和web的各种混合尝试,提升端的开发效率 ......

    + +

    如果你热爱音乐,你将亲自体会到自己的力量对行业的贡献

    + +

    这里有多个形态的音乐产品,和一群热爱音乐的人,收获到技术带来的成就感!

    +
    +
    + +
    +

    每周<FE>技术见闻

    @@ -146,4 +174,7 @@ - \ No newline at end of file + + + + diff --git a/index.html b/index.html index ed5e191..b267e45 100644 --- a/index.html +++ b/index.html @@ -2,11 +2,17 @@ Music FE - 百度音乐前端团队 + + + + - + + +

    Music FE

    @@ -193,4 +234,7 @@

    <Music-FE> - \ No newline at end of file + + + + diff --git a/js/main.js b/js/main.js index 974724b..4e1143f 100755 --- a/js/main.js +++ b/js/main.js @@ -2,25 +2,7 @@ $(function() { var $body = $('body'), $navToggle = $('.nav-toggle'); - $body.on('click', 'nav li', function(e) { - if ($body.hasClass('push-toright')) { - $body.removeClass('push-toright'); - $navToggle.removeClass('active'); - } - - if ($(this).hasClass('on')) - return false; - - $(this).addClass('on').siblings().removeClass('on'); - PageTransitions.nextPage($(this).index()); - }); - - $body.on('click', '.nav-toggle', function(e) { - $(this).toggleClass('active'); - $body.toggleClass('push-toright'); - }); - - + /* init page transition */ var PageTransitions = (function() { var $main = $( '#pt-main' ), @@ -118,8 +100,54 @@ $(function() { }; })(); - PageTransitions.init(); + /* bind events */ + (function() { + $body.on('click', 'nav li', function(e) { + if ($body.hasClass('push-toright')) { + $body.removeClass('push-toright'); + $navToggle.removeClass('active'); + } + + if ($(this).hasClass('on')) + return false; + + $(this).addClass('on').siblings().removeClass('on'); + PageTransitions.nextPage($(this).index()); + }); + + $body.on('click', '.nav-toggle', function(e) { + $(this).toggleClass('active'); + $body.toggleClass('push-toright'); + }); + })(); + + /* init weekly */ + (function() { + var tpl = (function() {/* + + */}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1]; + + $.ajax({ + url: 'https://api.github.com/repos/Baidu-Music-FE/fe-weekly/contents', + dataType: 'jsonp' + }).done(function(rs) { + var posts = rs.data; + if (posts.length > 0) { + _.remove(posts, function(item) { + return item.name == 'img' || item.name == 'readme.md' + }); + $('#weekly').append( _.template(tpl, {weekly: posts.reverse()}) ) + } + }); + + })(); }); \ No newline at end of file