-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement footer block #248
Conversation
data/hoverboard.config.json
Outdated
"url": "https://gdg.us11.list-manage.com/subscribe/post?u=b7e853a79164ddfdbda3ed77b&id=7993e39fbe", | ||
"name": "b_b7e853a79164ddfdbda3ed77b_7993e39fbe" | ||
}, | ||
"gdgLvivUrl": "http://lviv.gdg.org.ua/", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It should not be hardcoded to GDG Lviv. Try something like gdgChapterUrl
or extend organizer
object:
"organizer": {
"name": "GDG Lviv",
"twitter": "gdglviv",
"url": "..."
}
data/hoverboard.config.json
Outdated
"name": "b_b7e853a79164ddfdbda3ed77b_7993e39fbe" | ||
}, | ||
"gdgLvivUrl": "http://lviv.gdg.org.ua/", | ||
"codUrl": "https://devfest.gdg.org.ua/cod/", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should be as part of pages
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know, will be improved since we haven't this page implemented yet
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in this case we don't need this info
data/hoverboard.config.json
Outdated
"url": "https://www.youtube.com/playlist?list=PLt8lEzcLNl31AouwDkbLbLARlQFwNS2en" | ||
} | ||
], | ||
"gplusShareLink": "https://plus.google.com/share?url=https://devfest.gdg.org.ua/", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why only G+ no one is using it right now :)
Create a generic behavior that includes functions to share with all social networks and is extendable. See https://github.com/gdg-x/hoverboard/blob/master/src/behaviors/share-behavior.html
Also, don't forget about new features that would be nice to include https://developers.google.com/web/updates/2016/10/navigator-share
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's create separate story on this
data/hoverboard.config.json
Outdated
} | ||
], | ||
"gplusShareLink": "https://plus.google.com/share?url=https://devfest.gdg.org.ua/", | ||
"blogLink": "https://medium.com/gdg-lviv", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Move to organizer
object
data/hoverboard.config.json
Outdated
}, | ||
"gdgLvivUrl": "http://lviv.gdg.org.ua/", | ||
"codUrl": "https://devfest.gdg.org.ua/cod/", | ||
"gdgName": "GDG Lviv" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's organizer + it's not a generic solution. Don't limit application only to GDGs
data/resources.json
Outdated
"followOur": "Follow our", | ||
"followUs": "Follow us", | ||
"emailUs": "Email us", | ||
"blog": "blog", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lowercase?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
does not matter, since it styled with css to be uppercase
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
consistency
data/resources.json
Outdated
"eventResources": "Event Resources", | ||
"footerRelBlock": [ | ||
{ | ||
"headTitle": "About", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe just title
, it's not a head
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
in meaning of that element - yes, it's head - head of column. But ok, can be title
data/resources.json
Outdated
"blog": "blog", | ||
"partnershipResources": "Partnership Resources", | ||
"eventResources": "Event Resources", | ||
"footerRelBlock": [ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What means rel
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
relations - there is footer-rel.html element
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe just footerBlocks
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, cause it's related to footer-rel.html element. Can be footerRelationsBlock, but I would leave it as it is.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would rather rename footer-rel.html
file. It confuses me :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
замахав)
src/elements/footer-block.html
Outdated
|
||
static get is() { return 'footer-block' } | ||
|
||
constructor() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unnecessary
src/elements/footer-nav.html
Outdated
padding: 0; | ||
} | ||
|
||
.gdg-logo { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't limit to GDGs
src/elements/footer-nav.html
Outdated
} | ||
|
||
a { | ||
-moz-osx-font-smoothing: grayscale; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Move to global styles
src/elements/footer-nav.html
Outdated
|
||
static get is() { return 'footer-nav' } | ||
|
||
constructor() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unnecessary
src/elements/footer-nav.html
Outdated
color: #616161; | ||
padding-bottom: 2px; | ||
text-decoration: none; | ||
transition: border-color .3s ease-out; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we move animation global config to variables to make it the same everywhere?
src/elements/footer-rel.html
Outdated
|
||
</style> | ||
{% for footerRel in footerRelBlock %} | ||
<div class="col" layout vertical flex wrap flex-auto> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't have any definition of .col
. Do we need both flex
and flex-auto
attributes?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what do you mean there is no definition of col?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
flex-auto is enough, will remove flex
src/elements/footer-rel.html
Outdated
|
||
static get is() { return 'footer-rel' } | ||
|
||
constructor() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unnecessary
src/elements/footer-social.html
Outdated
:host { | ||
padding-left: 4px; | ||
position: relative; | ||
color: var(--footer-text-color);; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Extra semicolon
src/elements/footer-social.html
Outdated
} | ||
|
||
.share-gplus paper-icon-button { | ||
color: var(--red-gplus-color); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just gplus-color
. Because if they change color we don't need to update variable name.
src/elements/footer-social.html
Outdated
} | ||
|
||
.blog h4 { | ||
padding-right: 55px; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Magic number?
src/elements/footer-social.html
Outdated
} | ||
|
||
.fab paper-fab { | ||
transform: scale(1); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need this?
src/elements/footer-social.html
Outdated
transform: scale(1); | ||
background: #fff; | ||
color: inherit; | ||
transition: transform 200ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 200ms cubic-bezier(0, 0, 0.2, 1); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A new animation, can we use the previous one?
Write in a canonical way, we are going to use autoprefixer then
src/elements/footer-social.html
Outdated
transition: transform 200ms cubic-bezier(0, 0, 0.2, 1), -webkit-transform 200ms cubic-bezier(0, 0, 0.2, 1); | ||
will-change: transform; | ||
pointer-events: all; | ||
box-shadow: 0px 0px 8px 0px rgba(0,0,0,0.12), 0px 8px 8px 0px rgba(0,0,0,0.24); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just 0
src/elements/footer-social.html
Outdated
} | ||
|
||
.fab { | ||
transform: translateY(-130px); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we add position: relative
to :host
only after min-width: 812px
, we don't need to specify this value + if previous block is taller, this number will not work
src/elements/footer-social.html
Outdated
} | ||
|
||
.social-group.blog, | ||
.social-group.social-networks { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need such specific selector? Maybe just .blog
, .social-networks
?
src/elements/footer-social.html
Outdated
backToTop(e) { | ||
var scrollDuration = 500; | ||
var scrollStep = -window.scrollY / (scrollDuration / 15), | ||
scrollInterval = setInterval(function(){ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
setInterval
is not good for performance use requestAnimationFrame
instead. Some info:
https://hacks.mozilla.org/2011/08/animating-with-javascript-from-setinterval-to-requestanimationframe/
|
||
static get is() { return 'mailchimp-subscribe' } | ||
|
||
constructor() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unnecessary
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes
src/elements/shared-styles.html
Outdated
@@ -44,6 +48,10 @@ | |||
text-decoration: none; | |||
} | |||
|
|||
.roboto-font { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This font-family is a default for this app
https://github.com/gdg-x/hoverboard/blob/hoverboard-v2/index.html#L78
src/hoverboard-app.html
Outdated
@@ -34,7 +35,7 @@ | |||
:host { | |||
display: block; | |||
position: relative; | |||
min-height: 100vh; | |||
min-height: 200vh; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2 times viewport height? Why do we need this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's temporary since there is no any content's static height. As footer has, it will take mostly all space for now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can add such values to test on local environments but never push to the repository
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See comments above
"url": "https://www.youtube.com/playlist?list=PLt8lEzcLNl31AouwDkbLbLARlQFwNS2en" | ||
} | ||
], | ||
"share" : [ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does it make sense to keep this values here? Most probably users will not change them
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably yes, but better to have one point to configure the conference website for your needs, then looking for places to change in code
data/hoverboard.config.json
Outdated
"name": "b_b7e853a79164ddfdbda3ed77b_7993e39fbe" | ||
}, | ||
"codUrl": "https://devfest.gdg.org.ua/cod/", | ||
"chapterName": "GDG Lviv" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we use organizer.name
instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok
"footerRelBlock": [ | ||
{ | ||
"title": "About", | ||
"links": [ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All these links will be opened in a new tab? can we configure this?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what is a goal of configuring that? I put target="_blank" for each link.
src/elements/footer-block.html
Outdated
|
||
:host { | ||
display: block; | ||
position: absolute; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why position absolute? this block should be at the bottom
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was googling on different cases, and this is how people usually do that :) if you want the element to put at the bottom, you make position absolute + bottom: 0;
src/elements/footer-block.html
Outdated
left: 0; | ||
right: 0; | ||
margin: 20px 0 0 0; | ||
box-sizing: border-box; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This behavior should default for all elements, move to shared-styles
.
* {
box-sizing: border-box;
}
<paper-fab class="back-to-top" icon="hoverboard:up" on-click="backToTop"></paper-fab> | ||
</div> | ||
<footer-social layout flex flex-auto horizontal wrap></footer-social> | ||
<footer-rel layout flex horizontal wrap></footer-rel> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What -rel
stands for?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
footer-relations, the same as footer-nav is navigation
src/elements/footer-nav.html
Outdated
text-decoration: underline; | ||
} | ||
|
||
@media (max-width: 811px) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have mobile first development. So @media
should be used with (min-width: ...)
src/elements/footer-nav.html
Outdated
<a href="{$ organizer.url $}" target="_blank" rel="noopener noreferrer"> | ||
<iron-image | ||
class="footer-logo" | ||
src="../../images/gdg-logo.svg" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rename to organizer-logo.svg
, please
src/elements/shared-styles.html
Outdated
@@ -42,6 +48,10 @@ | |||
a { | |||
color: var(--default-primary-color); | |||
text-decoration: none; | |||
-moz-osx-font-smoothing: grayscale; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Move to global styles * { ... }
in shared-styles
src/mixins/animation-frame.html
Outdated
}; | ||
})(); | ||
|
||
const AnimationFrame = subclass => class extends subclass { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Class name does not describe the content. Maybe would be better ScrollFunctions
or something like that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Initially, I wanted to have one mixin with all functions requesting animation frame
src/mixins/animation-frame.html
Outdated
let time = Math.max(.1, Math.min(Math.abs(scrollY - scrollTargetY) / speed, .8)); | ||
|
||
// easing equations from https://github.com/danro/easing-js/blob/master/easing.js | ||
let PI_D2 = Math.PI / 2, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't use this variable
src/mixins/animation-frame.html
Outdated
@@ -0,0 +1,64 @@ | |||
<script> | |||
window.requestAnimFrame = (function(){ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can use standard - window.requestAnimationFrame
http://caniuse.com/#search=requestAnimationFrame
data/hoverboard.config.json
Outdated
"name": "b_b7e853a79164ddfdbda3ed77b_7993e39fbe" | ||
}, | ||
"codUrl": "https://devfest.gdg.org.ua/cod/", | ||
"organizerName": "GDG Lviv" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
duplicate
data/hoverboard.config.json
Outdated
"url": "https://gdg.us11.list-manage.com/subscribe/post?u=b7e853a79164ddfdbda3ed77b&id=7993e39fbe", | ||
"name": "b_b7e853a79164ddfdbda3ed77b_7993e39fbe" | ||
}, | ||
"codUrl": "https://devfest.gdg.org.ua/cod/", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove
data/resources.json
Outdated
@@ -3,5 +3,77 @@ | |||
"description": "The biggest Google tech conference in Ukraine carefully crafted for you by GDG community! All about Android, Web and Cloud from the world experts", | |||
"keywords": "event, gdg, gde, devfest, google, programming, android, chrome, polymer, developers, web, cloud, androiddev", | |||
"dates": "October 13-14, 2017", | |||
"locationAddressShort": "Lviv, Ukraine" | |||
"locationAddressShort": "Lviv, Ukraine", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
move to locations object
src/elements/footer-block.html
Outdated
background: var(--footer-background-color); | ||
font-size: 14px; | ||
line-height: 1.5; | ||
text-rendering: optimizeLegibility; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Move to global styles for body
src/elements/hoverboard-icons.html
Outdated
<g id="up"> | ||
<path d="M7.41,15.41L12,10.83L16.59,15.41L18,14L12,8L6,14L7.41,15.41Z"></path> | ||
</g> | ||
<g id="gplus-share"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let's be more generic and name such icons -alt
instead of -share
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good job 👍
Implement footer block
No description provided.