mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-21 20:47:08 -05:00
Merge pull request #784 from sharelatex/jel-portals
Add styling and mixins for portals
This commit is contained in:
commit
cf532b93d8
7 changed files with 303 additions and 4 deletions
75
services/web/app/views/_mixins_links.pug
Normal file
75
services/web/app/views/_mixins_links.pug
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
mixin linkAdvisors(linkText, linkClass, tracked)
|
||||||
|
//- To Do: verify path
|
||||||
|
//- To Do: track
|
||||||
|
a(href="/advisors"
|
||||||
|
class=linkClass ? linkClass : ''
|
||||||
|
eventTrackingGa=track ? 'advisors' : null
|
||||||
|
)
|
||||||
|
| #{linkText ? linkText : 'advisor programme'}
|
||||||
|
|
||||||
|
mixin linkBenefits(linkText, linkClass)
|
||||||
|
//- To Do: verify path
|
||||||
|
a(href="/benefits" class=linkClass ? linkClass : '')
|
||||||
|
| #{linkText ? linkText : 'benefits'}
|
||||||
|
|
||||||
|
mixin linkBlog(linkText, linkClass, slug)
|
||||||
|
if slug
|
||||||
|
a(href="/blog/#{slug}" class=linkClass ? linkClass : '')
|
||||||
|
| #{linkText ? linkText : 'blog'}
|
||||||
|
|
||||||
|
mixin linkContact(linkText, linkClass)
|
||||||
|
a(href="/contact" class=linkClass ? linkClass : '')
|
||||||
|
| #{linkText ? linkText : 'contact'}
|
||||||
|
|
||||||
|
mixin linkEducation(linkText, linkClass)
|
||||||
|
//- To Do: verify path
|
||||||
|
a(href="/plans" class=linkClass ? linkClass : '')
|
||||||
|
| #{linkText ? linkText : 'teaching toolkit'}
|
||||||
|
|
||||||
|
mixin linkEmail(linkText, linkClass, email)
|
||||||
|
//- To Do: env var?
|
||||||
|
- var emailDomain = 'overleaf.com'
|
||||||
|
a(href="mailto:#{email ? email : 'contact'}@#{emailDomain}" class=linkClass ? linkClass : '')
|
||||||
|
| #{linkText ? linkText : 'email'}
|
||||||
|
|
||||||
|
mixin linkInvite(linkText, linkClass)
|
||||||
|
a(href="/user/bonus" class=linkClass ? linkClass : '')
|
||||||
|
| #{linkText ? linkText : 'invite your friends'}
|
||||||
|
|
||||||
|
mixin linkPlansAndPricing(linkText, linkClass)
|
||||||
|
//- To Do: verify path
|
||||||
|
a(href="/plans" class=linkClass ? linkClass : '')
|
||||||
|
| #{linkText ? linkText : 'plans and pricing'}
|
||||||
|
|
||||||
|
mixin linkPrintNewTab(linkText, linkClass, icon, track)
|
||||||
|
//- To Do: track
|
||||||
|
a(href='?media=print'
|
||||||
|
class=linkClass ? linkClass : ''
|
||||||
|
eventTrackingGa=track ? 'print' : null
|
||||||
|
target="_BLANK"
|
||||||
|
)
|
||||||
|
if icon
|
||||||
|
i(class="fa fa-print")
|
||||||
|
|
|
||||||
|
| #{linkText ? linkText : 'print'}
|
||||||
|
|
||||||
|
mixin linkSignIn(linkText, linkClass)
|
||||||
|
a(href="/login" class=linkClass ? linkClass : '')
|
||||||
|
| #{linkText ? linkText : 'sign in'}
|
||||||
|
|
||||||
|
mixin linkSignUp(linkText, linkClass)
|
||||||
|
a(href="/register" class=linkClass ? linkClass : '')
|
||||||
|
| #{linkText ? linkText : 'sign up'}
|
||||||
|
|
||||||
|
mixin linkTweet(linkText, linkClass, tweetText, track)
|
||||||
|
//- twitter-share-button is required by twitter
|
||||||
|
//- To Do: track
|
||||||
|
a(class="twitter-share-button " + linkClass
|
||||||
|
href="https://twitter.com/intent/tweet?text=" + tweetText
|
||||||
|
target="_BLANK"
|
||||||
|
) #{linkText ? linkText : 'tweet'}
|
||||||
|
|
||||||
|
mixin linkUniversities(linkText, linkClass)
|
||||||
|
//- To Do: verify path
|
||||||
|
a(href="/universities" class=linkClass ? linkClass : '')
|
||||||
|
| #{linkText ? linkText : 'universities'}
|
161
services/web/public/stylesheets/app/portals.less
Normal file
161
services/web/public/stylesheets/app/portals.less
Normal file
|
@ -0,0 +1,161 @@
|
||||||
|
.content-portal {
|
||||||
|
padding-top: @navbar-height!important;
|
||||||
|
|
||||||
|
/*
|
||||||
|
Begin Header
|
||||||
|
*/
|
||||||
|
.banner-image {
|
||||||
|
background-size: cover;
|
||||||
|
background-position: 50% 50%;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
height: 375px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-fill {
|
||||||
|
display: inline-block;
|
||||||
|
height: 100%;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.institution-logo {
|
||||||
|
left: 50%;
|
||||||
|
margin-left: -100px;
|
||||||
|
padding: 0;
|
||||||
|
position: absolute;
|
||||||
|
div {
|
||||||
|
background-color: @white;
|
||||||
|
box-shadow: 1px 11px 22px -9px @black-alpha-strong;
|
||||||
|
display: inline-block;
|
||||||
|
height: 125px;
|
||||||
|
overflow: hidden;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
top: -110px;
|
||||||
|
white-space: nowrap;
|
||||||
|
width: @btn-portal-width;
|
||||||
|
}
|
||||||
|
img {
|
||||||
|
max-height: 75px;
|
||||||
|
max-width: 150px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.portal-name {
|
||||||
|
background-color: @ol-blue-gray-0;
|
||||||
|
padding-bottom: @line-height-computed; //- center header when no tabs
|
||||||
|
padding-top: @padding-md;
|
||||||
|
text-align: center;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
// End Header
|
||||||
|
|
||||||
|
/*
|
||||||
|
Begin Layout
|
||||||
|
*/
|
||||||
|
.button-pull,
|
||||||
|
.content-pull {
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-pull {
|
||||||
|
text-align: right;
|
||||||
|
> a.btn {
|
||||||
|
white-space: normal;
|
||||||
|
width: @btn-portal-width;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.content-pull {
|
||||||
|
padding-right: @padding-sm;
|
||||||
|
width: calc(~"100% - "@btn-portal-width);
|
||||||
|
}
|
||||||
|
// End Layout
|
||||||
|
|
||||||
|
/*
|
||||||
|
Begin Card
|
||||||
|
*/
|
||||||
|
.card {
|
||||||
|
margin-bottom: @margin-md;
|
||||||
|
}
|
||||||
|
// End Card
|
||||||
|
|
||||||
|
/*
|
||||||
|
Begin Actions
|
||||||
|
*/
|
||||||
|
.portal-actions {
|
||||||
|
i {
|
||||||
|
margin-bottom: @margin-sm;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// End Actions
|
||||||
|
|
||||||
|
/*
|
||||||
|
Begin Print
|
||||||
|
*/
|
||||||
|
.print {
|
||||||
|
.hidden-print {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// End Print
|
||||||
|
|
||||||
|
/*
|
||||||
|
Begin Tabs
|
||||||
|
*/
|
||||||
|
.nav-tabs {
|
||||||
|
// Overrides for nav.less
|
||||||
|
background-color: @ol-blue-gray-0;
|
||||||
|
border: 0!important;
|
||||||
|
margin-bottom: @margin-md;
|
||||||
|
margin-top: -@line-height-computed; //- adjusted for portal-name
|
||||||
|
padding: @padding-lg 0 @padding-md;
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: @link-color;
|
||||||
|
&:hover {
|
||||||
|
background-color: transparent!important;
|
||||||
|
border: 0!important;
|
||||||
|
color: @link-hover-color!important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
display: inline-block;
|
||||||
|
float: none;
|
||||||
|
a {
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
li.active > a {
|
||||||
|
background-color: transparent!important;
|
||||||
|
border: 0;
|
||||||
|
border-bottom: 1px solid @accent-color-secondary!important;
|
||||||
|
color: @accent-color-secondary;
|
||||||
|
&:hover {
|
||||||
|
color: @accent-color-secondary!important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tab-content:extend(.container) {
|
||||||
|
background-color: transparent!important;
|
||||||
|
border: none!important;
|
||||||
|
}
|
||||||
|
// End Tabs
|
||||||
|
|
||||||
|
@media (max-width: @screen-size-sm-max) {
|
||||||
|
.content-pull {
|
||||||
|
padding: 0;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-pull {
|
||||||
|
> a.btn {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,26 @@
|
||||||
|
.embed-responsive {
|
||||||
|
display: block;
|
||||||
|
height: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.embed-responsive .embed-responsive-item,
|
||||||
|
.embed-responsive iframe,
|
||||||
|
.embed-responsive embed,
|
||||||
|
.embed-responsive object,
|
||||||
|
.embed-responsive video {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
.embed-responsive-16by9 {
|
||||||
|
padding-bottom: 56.25% !important;
|
||||||
|
}
|
||||||
|
.embed-responsive-4by3 {
|
||||||
|
padding-bottom: 75% !important;
|
||||||
|
}
|
9
services/web/public/stylesheets/components/icons.less
Normal file
9
services/web/public/stylesheets/components/icons.less
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
// Colors
|
||||||
|
.icon-accent {
|
||||||
|
color: @accent-color-secondary;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sizes
|
||||||
|
.icon-lg {
|
||||||
|
font-size: @font-size-h1;
|
||||||
|
}
|
|
@ -62,9 +62,12 @@
|
||||||
//
|
//
|
||||||
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
|
//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
|
||||||
|
|
||||||
@margin-sm: 10px;
|
@margin-xs: 5px;
|
||||||
@margin-md: 20px;
|
@margin-sm: 10px;
|
||||||
@margin-lg: 30px;
|
@margin-md: 20px;
|
||||||
|
@margin-lg: 30px;
|
||||||
|
@margin-xl: 40px;
|
||||||
|
@margin-xxl: 50px;
|
||||||
|
|
||||||
@padding-base-vertical: 5px;
|
@padding-base-vertical: 5px;
|
||||||
@padding-base-horizontal: 16px;
|
@padding-base-horizontal: 16px;
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
@footer-height: 50px;
|
@footer-height: 50px;
|
||||||
|
|
||||||
// Styleguide colors
|
// Styleguide colors
|
||||||
|
@ol-blue-gray-0 : #f4f5f8;
|
||||||
@ol-blue-gray-1 : #E4E8EE;
|
@ol-blue-gray-1 : #E4E8EE;
|
||||||
@ol-blue-gray-2 : #9DA7B7;
|
@ol-blue-gray-2 : #9DA7B7;
|
||||||
@ol-blue-gray-3 : #5D6879;
|
@ol-blue-gray-3 : #5D6879;
|
||||||
|
@ -21,6 +22,8 @@
|
||||||
@ol-dark-red : #A6312B;
|
@ol-dark-red : #A6312B;
|
||||||
|
|
||||||
@ol-type-color : @ol-blue-gray-3;
|
@ol-type-color : @ol-blue-gray-3;
|
||||||
|
@accent-color-primary: @ol-green;
|
||||||
|
@accent-color-secondary: @ol-dark-green;
|
||||||
|
|
||||||
// Navbar customization
|
// Navbar customization
|
||||||
@navbar-title-color : @ol-blue-gray-1;
|
@navbar-title-color : @ol-blue-gray-1;
|
||||||
|
@ -65,8 +68,14 @@
|
||||||
@btn-info-bg : @ol-blue;
|
@btn-info-bg : @ol-blue;
|
||||||
@btn-info-border : transparent;
|
@btn-info-border : transparent;
|
||||||
|
|
||||||
|
// Padding
|
||||||
@padding-xs-horizontal : 8px;
|
@padding-xs-horizontal : 8px;
|
||||||
|
|
||||||
|
@padding-sm: 10px;
|
||||||
|
@padding-md: 20px;
|
||||||
|
@padding-lg: 30px;
|
||||||
|
@padding-xl: 40px;
|
||||||
|
|
||||||
// Alerts
|
// Alerts
|
||||||
@alert-padding : 15px;
|
@alert-padding : 15px;
|
||||||
@alert-border-radius : @border-radius-base;
|
@alert-border-radius : @border-radius-base;
|
||||||
|
@ -167,6 +176,9 @@
|
||||||
@folders-tag-menu-hover : rgba(0, 0, 0, .1);
|
@folders-tag-menu-hover : rgba(0, 0, 0, .1);
|
||||||
@folders-tag-menu-active-hover : rgba(0, 0, 0, .1);
|
@folders-tag-menu-active-hover : rgba(0, 0, 0, .1);
|
||||||
|
|
||||||
|
// Portal
|
||||||
|
@btn-portal-width : 200px;
|
||||||
|
|
||||||
// Project table
|
// Project table
|
||||||
@structured-list-line-height : 2.5;
|
@structured-list-line-height : 2.5;
|
||||||
@structured-list-link-color : @ol-blue;
|
@structured-list-link-color : @ol-blue;
|
||||||
|
@ -273,6 +285,9 @@
|
||||||
@log-line-no-color : #FFF;
|
@log-line-no-color : #FFF;
|
||||||
@log-hints-color : @ol-blue-gray-4;
|
@log-hints-color : @ol-blue-gray-4;
|
||||||
|
|
||||||
|
// Portals
|
||||||
|
@black-alpha-strong : rgba(0,0,0,0.8);
|
||||||
|
|
||||||
|
|
||||||
// v2 History
|
// v2 History
|
||||||
@history-base-font-size : @font-size-small;
|
@history-base-font-size : @font-size-small;
|
||||||
|
@ -288,6 +303,12 @@
|
||||||
@history-toolbar-bg-color : @editor-toolbar-bg;
|
@history-toolbar-bg-color : @editor-toolbar-bg;
|
||||||
@history-toolbar-color : #FFF;
|
@history-toolbar-color : #FFF;
|
||||||
|
|
||||||
|
// Screens
|
||||||
|
// added -size to not conflict with common_variables
|
||||||
|
@screen-size-sm-max : 767px;
|
||||||
|
@screen-size-md-min : 768px;
|
||||||
|
@screen-size-md-max : 991px;
|
||||||
|
|
||||||
// System messages
|
// System messages
|
||||||
@sys-msg-background : @ol-blue;
|
@sys-msg-background : @ol-blue;
|
||||||
@sys-msg-color : #FFF;
|
@sys-msg-color : #FFF;
|
||||||
|
@ -304,6 +325,7 @@
|
||||||
@gray-light: #a4a4a4;
|
@gray-light: #a4a4a4;
|
||||||
@gray-lighter: #cfcfcf;
|
@gray-lighter: #cfcfcf;
|
||||||
@gray-lightest: #f0f0f0;
|
@gray-lightest: #f0f0f0;
|
||||||
|
@white: #ffffff;
|
||||||
|
|
||||||
@blue: #405ebf;
|
@blue: #405ebf;
|
||||||
@blueDark: #040D2D;
|
@blueDark: #040D2D;
|
||||||
|
|
|
@ -6,8 +6,11 @@
|
||||||
@import "app/ol-style-guide.less";
|
@import "app/ol-style-guide.less";
|
||||||
@import "_style_includes.less";
|
@import "_style_includes.less";
|
||||||
@import "_ol_style_includes.less";
|
@import "_ol_style_includes.less";
|
||||||
|
@import "components/embed-responsive.less";
|
||||||
|
@import "components/icons.less";
|
||||||
|
|
||||||
// Pages
|
// Pages
|
||||||
@import "app/about.less";
|
@import "app/about.less";
|
||||||
@import "app/blog-posts.less";
|
@import "app/blog-posts.less";
|
||||||
@import "app/cms-page.less";
|
@import "app/cms-page.less";
|
||||||
|
@import "app/portals.less";
|
Loading…
Reference in a new issue