Add new navbar, jumbotron, cards, and footer components.

This commit is contained in:
Sam Lu
2018-07-16 15:54:53 -05:00
parent c8f6ba207b
commit 5b14d78037
38 changed files with 1866 additions and 1197 deletions

2062
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -12,14 +12,14 @@
"gulp-cached": "~1.1.0",
"gulp-chmod": "~1.3.0",
"gulp-concat": "~2.6.0",
"gulp-git": "~2.4.2",
"gulp-if": "^2.0.1",
"gulp-git": "~2.4.2",
"gulp-pug": "~3.2.0",
"gulp-jade": "~1.1.0",
"gulp-livereload": "~3.8.1",
"gulp-plumber": "~1.1.0",
"gulp-pug": "~3.2.0",
"gulp-rename": "~1.2.2",
"gulp-sass": "^4.0.1",
"gulp-sass": "~2.3.1",
"gulp-sourcemaps": "~1.6.0",
"gulp-uglify": "~1.5.3",
"minimist": "^1.2.0"

View File

@@ -0,0 +1,8 @@
// Bootstrap Breakpoints
// sm 576.98px
// md 576px - 757.98px
// lg 992px to 1199.98px
// xl 1200px and up
@import ../../node_modules/bootstrap/sass/functions
@import ../../node_modules/bootstrap/sass/variables
@import ../../node_modules/bootstrap/sass/mixins/breakpoints

23
src/styles/_cards.sass Normal file
View File

@@ -0,0 +1,23 @@
.container.card-container
max-width: 1200px
// pending media query decision
// .col-md-4
// +media-breakpoint-up(lg)
// padding: 0 20px
.col-md-4
padding: 0 20px
&:focus
outline: none;
.card
border: none
margin-bottom: 64px
.card-title
margin: 11px 0 5px
font-size: 27px
a
color: #111
text-decoration: none
.card-text
font-size: 18px
.card-body
padding: 0

9
src/styles/_colors.sass Normal file
View File

@@ -0,0 +1,9 @@
$primary: #0A68FF
$grey: #EBEBEB
$gray: #EBEBEB
$dark: rgba(17,17,17,1)
$muted: rgba(17,17,17,0.75)
$lightgray: #F5F5F5
// $theme-colors:
// primary: red
//

View File

@@ -0,0 +1,4 @@
body
font-family: 'Source Sans Pro', sans-serif
-webkit-font-smoothing: antialiased
-moz-osx-font-smoothing: grayscale

44
src/styles/_footer.sass Normal file
View File

@@ -0,0 +1,44 @@
footer.container-fluid
background: #F8F8FB
border-top: 1px solid #E3E3E6
margin-top: 136px
.container
margin-top: 11px
max-width: 1200px
.row
max-width: 1200px
.col-4
// background: blue
// flex: 0 0 100%
// max-width: 100%
max-width: 100%
flex-basis: 100%
margin-bottom: 60px
padding-left: 20px
padding-right: 20px
+media-breakpoint-up(md)
// background: lightcoral
flex: 0 0 33%
max-width: 33%
margin-bottom: 0px
.col
padding-left: 20px
padding-right: 20px
h5
font-weight: 600
font-size: 15px
color: $dark
letter-spacing: 0.6px
text-transform: uppercase
margin-bottom: 12px
p
color: #6d6d6e
line-height: 30px
.list-unstyled
a
color: #6d6d6e
li
line-height: 30px
.social-icons
.list-inline-item:not(:last-child)
margin-right: 22px

View File

@@ -0,0 +1,26 @@
.jumbotron
width: 100%
height: 600px
background-color: #fff
background-repeat: no-repeat
background-position: left top
background-size: cover
margin-bottom: 0px
.container
max-width: 1160px
display: flex
height: 100%
flex-direction: column
justify-content: center
h1.display-4
color: white
font-weight: 400
font-size: 48px
margin-bottom: 0
text-shadow: 0 2px 2px rgba(0, 0, 0, 0.30)
.lead
max-width: 722px
letter-spacing: 0.4px
text-shadow: 0 2px 2px rgba(0, 0, 0, 0.80)
p
color: white

44
src/styles/_navbar.sass Normal file
View File

@@ -0,0 +1,44 @@
.navbar
background: #fff
height: auto
min-height: 48px
// height: 48px
+media-breakpoint-up(md)
height: 56px
.logo
display: flex
justify-content: center
.navbar-toggler
padding: 0
.navbar-nav
margin-bottom: 15px;
margin-top: 15px;
+media-breakpoint-up(md)
margin: 0
.nav-item .nav-link
font-size: 18px
color: $dark
// padding: 16px 8px 16px 34px
padding: 3vh 8px 3vh 34px
+media-breakpoint-up(lg)
padding: 6px 18px
&:hover
color: $muted
.dropdown-toggle::after
display:none
.navbar-toggler
border: 0
outline: none
span
width: 20px
height: 2px
background: $dark
display: block
margin-bottom: 4px
&:last-of-type
margin-bottom: 0
.collapsing
transition: none
display: none
.show
padding-bottom: 75vh

View File

@@ -0,0 +1,11 @@
@import ../styles/breakpoints
@import ../styles/colors
@import ../styles/custom-font
@import ../styles/navbar
@import ../styles/jumbotron
@import ../styles/cards
@import ../styles/footer
.jumbotron
background-image: url('/../../static/assets/img/backgrounds/banner-open-projects.jpg')
margin-bottom: 56px

View File

@@ -0,0 +1,366 @@
doctype
html(lang="en")
head
meta(charset="utf-8")
title {% if self.page_title() %}{% block page_title %}{% endblock %} — {% endif %}Blender Cloud
meta(name="viewport", content="width=device-width, initial-scale=1.0")
meta(name="description", content="Blender Cloud is a web based service developed by Blender Institute that allows people to access the training videos and all the data from the open projects.")
meta(name="author", content="Blender Institute")
meta(name="theme-color", content="#3e92aa")
| {% if config['GOOGLE_SITE_VERIFICATION'] %}
meta(name="google-site-verification" content="{{ config['GOOGLE_SITE_VERIFICATION'] }}")
| {% endif %}
meta(property="og:site_name", content="Blender Cloud")
meta(property="og:locale", content="en_US")
meta(name="twitter:card", content="summary_large_image")
meta(name="twitter:site", content="@Blender_Cloud")
| {% block og %}
meta(property="og:title", content="Blender Cloud")
meta(property="og:url", content="https://cloud.blender.org")
meta(property="og:type", content="website")
meta(property="og:image", content="{{ url_for('static', filename='assets/img/backgrounds/background_gleb_locomotive.jpg')}}")
meta(property="og:description", content="Blender Cloud is a web based service developed by Blender Institute that allows people to access the training videos and all the data from the open projects.")
meta(name="twitter:title", content="Blender Cloud")
meta(name="twitter:description", content="Blender Cloud is a web based service developed by Blender Institute that allows people to access the training videos and all the data from the open projects.")
meta(name="twitter:image", content="{{ url_for('static', filename='assets/img/backgrounds/background_gleb_locomotive.jpg')}}")
| {% endblock og %}
script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery-3.1.0.min.js')}}")
script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.typeahead-0.11.1.min.js')}}")
script(src="{{ url_for('static_pillar', filename='assets/js/vendor/js.cookie-2.0.3.min.js')}}")
| {% if current_user.is_authenticated %}
script(src="{{ url_for('static_pillar', filename='assets/js/vendor/clipboard.min.js')}}")
| {% endif %}
| {% if current_user.has_cap('subscriber') %}
| {# Only load if we can comment (for converting markdown as-we-type) #}
script(src="{{ url_for('static_pillar', filename='assets/js/markdown.min.js') }}")
| {% endif %}
script(src="{{ url_for('static_pillar', filename='assets/js/tutti.min.js') }}")
link(href="{{ url_for('static', filename='assets/img/favicon.png') }}", rel="shortcut icon")
link(href="{{ url_for('static', filename='assets/img/apple-touch-icon-precomposed.png') }}", rel="icon apple-touch-icon-precomposed", sizes="192x192")
link(href="{{ url_for('static_pillar', filename='assets/css/vendor/bootstrap.min.css') }}", rel="stylesheet")
link(href="{{ url_for('static', filename='assets/google-font-roboto/roboto.css') }}", rel="stylesheet")
| {% block head %}{% endblock %}
| {% block css %}
link(href="{{ url_for('static_pillar', filename='assets/css/font-pillar.css') }}", rel="stylesheet")
link(href="{{ url_for('static_pillar', filename='assets/css/base.css') }}", rel="stylesheet")
| {% if title == 'blog' %}
link(href="{{ url_for('static_pillar', filename='assets/css/blog.css') }}", rel="stylesheet")
| {% else %}
link(href="{{ url_for('static_cloud', filename='assets/css/main.css') }}", rel="stylesheet")
| {% endif %}
| {% endblock css %}
| {% if not title %}{% set title="default" %}{% endif %}
body(class="{{ title }}")
.container-page
| {% with messages = get_flashed_messages(with_categories=True) %}
| {% if messages %}
| {% for (category, message) in messages %}
.alert(role="alert", class="alert-{{ category }}")
i.alert-icon(class="{{ category }}")
span {{ message }}
button.close(type="button", data-dismiss="alert")
i.pi-cancel
| {% endfor %}
| {% endif %}
| {% endwith %}
nav.navbar
.navbar-container
header.navbar-header
button.navbar-toggle(data-target=".navbar-collapse", data-toggle="collapse", type="button")
span.sr-only Toggle navigation
i.pi-menu
a.navbar-brand(
href="{{ url_for('main.homepage') }}",
title="Blender Cloud")
span.app-logo
i.pi-blender-cloud
| {% block navigation_search %}
.search-input
input#cloud-search(
type="text",
placeholder="Search assets, tutorials...")
i.search-icon.pi-search
| {% endblock navigation_search %}
nav.collapse.navbar-collapse
ul.nav.navbar-nav.navbar-right
| {% if node and node.properties and node.properties.category %}
| {% set category = node.properties.category %}
| {% else %}
| {% set category = title %}
| {% endif %}
| {% block navigation_sections %}
li
a.navbar-item(
href="{{ url_for('main.main_blog') }}",
title="Blender Cloud Blog",
data-toggle="tooltip",
data-placement="bottom",
class="{% if category == 'blog' %}active{% endif %}")
span Blog
li(class="dropdown libraries")
a.navbar-item.dropdown-toggle(
href="",
data-toggle="dropdown",
title="Libraries")
span Libraries
i.pi-angle-down
ul.dropdown-menu
li
a.navbar-item(
href="{{ url_for('projects.view', project_url='hdri') }}",
title="HDRI Library",
data-toggle="tooltip",
data-placement="left")
i.pi-globe
| HDRI
li
a.navbar-item(
href="{{ url_for('projects.view', project_url='textures') }}",
title="Textures Library",
data-toggle="tooltip",
data-placement="left")
i.pi-folder-texture
| Textures
li
a.navbar-item(
href="{{ url_for('projects.view', project_url='characters') }}",
title="Character Library",
data-toggle="tooltip",
data-placement="left")
i.pi-character
| Characters
li(class="dropdown libraries")
a.navbar-item.dropdown-toggle(
href="",
data-toggle="dropdown",
title="Training")
span Training
i.pi-angle-down
ul.dropdown-menu
li
a.navbar-item(
href="{{ url_for('cloud.courses') }}",
title="Courses",
data-toggle="tooltip",
data-placement="left")
i.pi-graduation-cap
| Courses
li
a.navbar-item(
href="{{ url_for('cloud.workshops') }}",
title="Workshops",
data-toggle="tooltip",
data-placement="left")
i.pi-lightbulb
| Workshops
li
a.navbar-item(
href="{{ url_for('projects.view', project_url='gallery') }}",
title="Curated artwork collection",
data-toggle="tooltip",
data-placement="left")
i.pi-image
| Art Gallery
li
a.navbar-item(
href="{{ url_for('cloud.open_projects') }}",
title="Browse all the Open Projects",
data-toggle="tooltip",
data-placement="bottom",
class="{% if category in ['open-projects', 'film'] %}active{% endif %}")
span Open Projects
li
a.navbar-item(
href="{{ url_for('cloud.services') }}",
title="Blender Cloud Services",
data-toggle="tooltip",
data-placement="bottom",
class="{% if category == 'services' %}active{% endif %}")
span Services
| {% endblock navigation_sections %}
| {% if current_user.is_anonymous %}
li
a.navbar-item(
href="https://store.blender.org/product/membership/",
title="Sign up") Sign up
| {% endif %}
| {% block navigation_user %}
| {% include 'menus/notifications.html' %}
| {% include 'menus/user.html' %}
| {% endblock navigation_user %}
.page-content
#search-overlay
| {% block page_overlay %}
#page-overlay
| {% endblock page_overlay %}
.page-body
| {% block body %}{% endblock %}
| {% block footer_container %}
#footer-container
| {% block footer_navigation %}
#footer-navigation
.container
.row
.col-md-4.col-xs-6
.footer-support
h4 Support & Feedback
p.
Let us know what you think or if you have any issues
just write to cloudsupport at blender dot org
.col-md-2.col-xs-6
ul.footer-social
li
a(href="https://www.facebook.com/BlenderCloudOfficial/",
title="Follow us on Facebook")
i.pi-social-facebook
li
a(href="https://twitter.com/Blender_Cloud",
title="Follow us on Twitter")
i.pi-social-twitter
.col-md-2.col-xs-6
h4
a(href="{{ url_for('main.homepage') }}")
| Blender Cloud
ul.footer-links
li
a(href="{{ url_for('main.main_blog') }}",
title="Blender Cloud Blog")
| Blog
li
a(href="{{ url_for('cloud.services') }}",
title="Blender Cloud Services")
| Services
li
a(href="{{ url_for('cloud.about') }}",
title="About Blender Cloud")
| About
li
a(href="{{ url_for('cloud.terms_and_conditions') }}",
title="Terms and Conditions")
| Terms and Conditions
li
a(href="{{ url_for('cloud.privacy') }}",
title="Privacy")
| Privacy
.col-md-2.col-xs-6
h4
a(href="https://www.blender.org",
title="Blender official Website")
| Blender
ul.footer-links
li
a(href="https://www.blender.org",
title="Blender official Website")
| Blender.org
li
a(href="https://store.blender.org/",
title="The official Blender Store")
| Blender Store
.col-md-2.col-xs-6.special
| With the support of the <br/> MEDIA Programme of the European Union<br/><br/>
img(alt="MEDIA Programme of the European Union",
src="https://gooseberry.blender.org/wp-content/uploads/2014/01/media_programme.png")
| {% endblock footer_navigation %}
| {% block footer %}
footer.container
#hop(title="Be awesome in space")
i.pi-angle-up
| {% endblock footer %}
| {% endblock footer_container %}
#notification-pop(data-url="", data-read-toggle="")
.nc-progress
a#pop-close(href="#", title="Dismiss")
i.pi-cancel
.nc-item
.nc-avatar
.nc-text
span.nc-date
a(href="")
noscript
link(href='//fonts.googleapis.com/css?family=Roboto:300,400', rel='stylesheet', type='text/css')
script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.bootstrap-3.3.7.min.js') }}")
| {% if current_user.is_authenticated %}
script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.typewatch-3.0.0.min.js') }}")
script.
// When sending an AJAX request, always add the X-CSRFToken header to it.
var csrf_token = "{{ csrf_token() }}";
$.ajaxSetup({
beforeSend: function (xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
xhr.setRequestHeader("X-CSRFToken", csrf_token);
}
}
});
| {% endif %}
script.
$(document).ready(function() {
{% if current_user.is_authenticated %}
getNotificationsLoop(); // Check for new notifications in the background
// Resize #notifications and change overflow for scrollbars
$(window).on("resize", function() { notificationsResize(); });
{% endif %}
});
if (typeof $().tooltip != 'undefined'){
$('[data-toggle="tooltip"]').tooltip({'delay' : {'show': 0, 'hide': 0}});
}
if(typeof($.fn.popover) != 'undefined'){
$('[data-toggle="popover"]').popover();
}
| {% block footer_scripts_pre %}{% endblock %}
| {% block footer_scripts %}{% endblock %}
script.
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', '{{ config.GOOGLE_ANALYTICS_TRACKING_ID }} ', 'auto', {'allowAnchor': true});
ga('send', 'pageview');

View File

@@ -45,19 +45,20 @@ html(lang="en")
link(href="{{ url_for('static', filename='assets/img/favicon.png') }}", rel="shortcut icon")
link(href="{{ url_for('static', filename='assets/img/apple-touch-icon-precomposed.png') }}", rel="icon apple-touch-icon-precomposed", sizes="192x192")
link(href="{{ url_for('static_pillar', filename='assets/css/vendor/bootstrap.min.css') }}", rel="stylesheet")
//- link(href="{{ url_for('static_pillar', filename='assets/css/vendor/bootstrap.min.css') }}", rel="stylesheet")
link(rel="stylesheet", href="{{ url_for('static', filename='assets/bootstrap/css/bootstrap.min.css') }}")
link(rel="stylesheet", href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,600")
link(href="{{ url_for('static', filename='assets/google-font-roboto/roboto.css') }}", rel="stylesheet")
| {% block head %}{% endblock %}
| {% block css %}
link(href="{{ url_for('static_pillar', filename='assets/css/font-pillar.css') }}", rel="stylesheet")
link(href="{{ url_for('static_pillar', filename='assets/css/base.css') }}", rel="stylesheet")
//- link(href="{{ url_for('static_pillar', filename='assets/css/font-pillar.css') }}", rel="stylesheet")
//- link(href="{{ url_for('static_pillar', filename='assets/css/base.css') }}", rel="stylesheet")
| {% if title == 'blog' %}
link(href="{{ url_for('static_pillar', filename='assets/css/blog.css') }}", rel="stylesheet")
//- link(href="{{ url_for('static_pillar', filename='assets/css/blog.css') }}", rel="stylesheet")
| {% else %}
link(href="{{ url_for('static_cloud', filename='assets/css/main.css') }}", rel="stylesheet")
//- link(href="{{ url_for('static_cloud', filename='assets/css/main.css') }}", rel="stylesheet")
| {% endif %}
| {% endblock css %}
@@ -80,147 +81,56 @@ html(lang="en")
| {% endif %}
| {% endwith %}
nav.navbar
.navbar-container
header.navbar-header
button.navbar-toggle(data-target=".navbar-collapse", data-toggle="collapse", type="button")
span.sr-only Toggle navigation
i.pi-menu
a.navbar-brand(
href="{{ url_for('main.homepage') }}",
title="Blender Cloud")
span.app-logo
i.pi-blender-cloud
//- Navigation Bar
//- nav.navbar.navbar-expand-md.navbar-light.sticky-top.bg-white
nav.navbar.navbar-expand-md.navbar-light.fixed-top
//- Logo
a.navbar-brand(href="#")
img(src="{{ url_for('static', filename='assets/img/logo-blender-cloud-text.svg') }}", alt="alt")
//- Mobile Nav Button
button.navbar-toggler(type='button', data-toggle='collapse', data-target='#navbarNav', aria-controls="navbarNav", aria-expanded="false", aria-label="Toggle navigation")
span
span
span
//- Links
#navbarNav.collapse.navbar-collapse.justify-content-end
ul.navbar-nav
| {% if node and node.properties and node.properties.category %}
| {% set category = node.properties.category %}
| {% else %}
| {% set category = title %}
| {% endif %}
| {% block navigation_search %}
.search-input
input#cloud-search(
type="text",
placeholder="Search assets, tutorials...")
i.search-icon.pi-search
| {% endblock navigation_search %}
| {% block navigation_sections %}
li.nav-item
a.nav-link(href="{{ url_for('main.main_blog') }}", class="{% if category == 'blog' %}active{% endif %}") Blog
li.nav-item
a.nav-link(href="#") Libraries
li.nav-item
a.nav-link(href="#") Training
li.nav-item
a.nav-link(href="{{ url_for('cloud.open_projects') }}",
class="{% if category in ['open-projects', 'film'] %}active{% endif %}") Open Projects
li.nav-item
a.nav-link(href="{{ url_for('cloud.services') }}",
class="{% if category == 'services' %}active{% endif %}") Services
//- li.nav-item
//- i.search-icon.pi-search
| {% endblock navigation_sections %}
nav.collapse.navbar-collapse
ul.nav.navbar-nav.navbar-right
| {% if node and node.properties and node.properties.category %}
| {% set category = node.properties.category %}
| {% else %}
| {% set category = title %}
| {% endif %}
| {% if current_user.is_anonymous %}
li.nav-item
a.nav-link(
href="https://store.blender.org/product/membership/",
title="Sign up") Sign up
| {% endif %}
| {% block navigation_sections %}
li
a.navbar-item(
href="{{ url_for('main.main_blog') }}",
title="Blender Cloud Blog",
data-toggle="tooltip",
data-placement="bottom",
class="{% if category == 'blog' %}active{% endif %}")
span Blog
li(class="dropdown libraries")
a.navbar-item.dropdown-toggle(
href="",
data-toggle="dropdown",
title="Libraries")
span Libraries
i.pi-angle-down
ul.dropdown-menu
li
a.navbar-item(
href="{{ url_for('projects.view', project_url='hdri') }}",
title="HDRI Library",
data-toggle="tooltip",
data-placement="left")
i.pi-globe
| HDRI
li
a.navbar-item(
href="{{ url_for('projects.view', project_url='textures') }}",
title="Textures Library",
data-toggle="tooltip",
data-placement="left")
i.pi-folder-texture
| Textures
li
a.navbar-item(
href="{{ url_for('projects.view', project_url='characters') }}",
title="Character Library",
data-toggle="tooltip",
data-placement="left")
i.pi-character
| Characters
li(class="dropdown libraries")
a.navbar-item.dropdown-toggle(
href="",
data-toggle="dropdown",
title="Training")
span Training
i.pi-angle-down
ul.dropdown-menu
li
a.navbar-item(
href="{{ url_for('cloud.courses') }}",
title="Courses",
data-toggle="tooltip",
data-placement="left")
i.pi-graduation-cap
| Courses
li
a.navbar-item(
href="{{ url_for('cloud.workshops') }}",
title="Workshops",
data-toggle="tooltip",
data-placement="left")
i.pi-lightbulb
| Workshops
li
a.navbar-item(
href="{{ url_for('projects.view', project_url='gallery') }}",
title="Curated artwork collection",
data-toggle="tooltip",
data-placement="left")
i.pi-image
| Art Gallery
li
a.navbar-item(
href="{{ url_for('cloud.open_projects') }}",
title="Browse all the Open Projects",
data-toggle="tooltip",
data-placement="bottom",
class="{% if category in ['open-projects', 'film'] %}active{% endif %}")
span Open Projects
li
a.navbar-item(
href="{{ url_for('cloud.services') }}",
title="Blender Cloud Services",
data-toggle="tooltip",
data-placement="bottom",
class="{% if category == 'services' %}active{% endif %}")
span Services
| {% endblock navigation_sections %}
| {% if current_user.is_anonymous %}
li
a.navbar-item(
href="https://store.blender.org/product/membership/",
title="Sign up") Sign up
| {% endif %}
| {% block navigation_user %}
| {% include 'menus/notifications.html' %}
| {% include 'menus/user.html' %}
| {% endblock navigation_user %}
| {% block navigation_user %}
//- comment out notification and user to make sure navigation links pefect
//- | {% include 'menus/notifications.html' %}
//- | {% include 'menus/user.html' %}
| {% endblock navigation_user %}
.page-content
#search-overlay
@@ -231,81 +141,80 @@ html(lang="en")
| {% block body %}{% endblock %}
| {% block footer_container %}
#footer-container
footer#footer-container.container-fluid
| {% block footer_navigation %}
#footer-navigation
.container
.container.py-5
.row
.col-md-4.col-xs-6
.footer-support
h4 Support & Feedback
p.
Let us know what you think or if you have any issues
just write to cloudsupport at blender dot org
.col-4
h5 Blender Cloud
p A creative hub for your projects, powered by free and open source software.
ul.list-inline.social-icons
li.list-inline-item
a(href="https://www.facebook.com/BlenderCloudOfficial/")
img(src="../../static/assets/img/icons/icon-social-facebook.svg", alt="alt")
li.list-inline-item
a(href="https://twitter.com/Blender_Cloud")
img(src="../../static/assets/img/icons/icon-social-twitter.svg", alt="alt")
li.list-inline-item
a(href="https://www.youtube.com/channel/UC5qvW9fotdsSJkCguB_t-kQ")
img(src="../../static/assets/img/icons/icon-social-youtube.svg", alt="alt")
.col
h5 Libraries
ul.list-unstyled.text-small
li
a(href="#") HDRI
li
a(href="#") Textures
li
a(href="#") Characters
.col
h5 Training
ul.list-unstyled.text-small
li
a(href="#") Art Gallery
li
a(href="#") Courses
li
a(href="#") Workshops
.col
h5 Resources
ul.list-unstyled.text-small
li
a(href="https://www.blender.org") Blender
li
a(href="https://store.blender.org/") Blender Store
li
a(href="#") Contact Us
li
a(href="{{ url_for('cloud.terms_and_conditions') }}") Terms and Conditions
li
a(href="{{ url_for('cloud.privacy') }}") Privacy
.col
h5 Services
ul.list-unstyled.text-small
li
a(href="#") Attract
li
a(href="#") Blender Cloud Add-on
li
a(href="#") Blender Sync
li
a(href="#") Flamenco
li
a(href="#") Image Sharing
li
a(href="#") Private Projects
li
a(href="#") Texture Browser
.col-md-2.col-xs-6
ul.footer-social
li
a(href="https://www.facebook.com/BlenderCloudOfficial/",
title="Follow us on Facebook")
i.pi-social-facebook
li
a(href="https://twitter.com/Blender_Cloud",
title="Follow us on Twitter")
i.pi-social-twitter
.col-md-2.col-xs-6
h4
a(href="{{ url_for('main.homepage') }}")
| Blender Cloud
ul.footer-links
li
a(href="{{ url_for('main.main_blog') }}",
title="Blender Cloud Blog")
| Blog
li
a(href="{{ url_for('cloud.services') }}",
title="Blender Cloud Services")
| Services
li
a(href="{{ url_for('cloud.about') }}",
title="About Blender Cloud")
| About
li
a(href="{{ url_for('cloud.terms_and_conditions') }}",
title="Terms and Conditions")
| Terms and Conditions
li
a(href="{{ url_for('cloud.privacy') }}",
title="Privacy")
| Privacy
.col-md-2.col-xs-6
h4
a(href="https://www.blender.org",
title="Blender official Website")
| Blender
ul.footer-links
li
a(href="https://www.blender.org",
title="Blender official Website")
| Blender.org
li
a(href="https://store.blender.org/",
title="The official Blender Store")
| Blender Store
.col-md-2.col-xs-6.special
| With the support of the <br/> MEDIA Programme of the European Union<br/><br/>
img(alt="MEDIA Programme of the European Union",
src="https://gooseberry.blender.org/wp-content/uploads/2014/01/media_programme.png")
| {% endblock footer_navigation %}
| {% block footer %}
footer.container
#hop(title="Be awesome in space")
i.pi-angle-up
| {% endblock footer %}
//- Scroll Up Arrow. Not sure if it's necessary
//- | {% block footer %}
//- footer.container
//- #hop(title="Be awesome in space")
//- i.pi-angle-up
//- | {% endblock footer %}
| {% endblock footer_container %}
#notification-pop(data-url="", data-read-toggle="")
@@ -321,7 +230,10 @@ html(lang="en")
noscript
link(href='//fonts.googleapis.com/css?family=Roboto:300,400', rel='stylesheet', type='text/css')
script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.bootstrap-3.3.7.min.js') }}")
//- script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.bootstrap-3.3.7.min.js') }}")
script(src="{{ url_for('static', filename='assets/jquery/jquery.slim.min.js') }}")
script(src="{{ url_for('static', filename='assets/popper.js/popper.min.js') }}")
script(src="{{ url_for('static', filename='assets/bootstrap/js/bootstrap.min.js') }}")
| {% if current_user.is_authenticated %}
script(src="{{ url_for('static_pillar', filename='assets/js/vendor/jquery.typewatch-3.0.0.min.js') }}")

View File

@@ -3,8 +3,8 @@
| {# Default case is Open Projects #}
| {% set page_title = 'Open Projects' %}
| {% set page_description = 'Full production data and tutorials from all open movies, for you to use freely' %}
| {% set page_header_image = url_for('static', filename='assets/img/backgrounds/background_agent327_01.jpg') %}
| {% set page_header_text = 'The iconic Blender Institute Open Movies. Featuring all the production files, assets, artwork, and never-seen-before content.' %}
| {% set page_header_image = url_for('static', filename='assets/img/backgrounds/banner-open-projects.jpg') %}
| {% set page_header_text = 'See how each film came to be. Explore our production files, assets, artwork and more. Get full access to behind the scenes at the Blender Animation Studio. Follow along as we share our process and techniques for each movie.' %}
| {% if title == 'courses' %}
| {% set page_title = 'Courses' %}
@@ -33,65 +33,63 @@ meta(name="twitter:description", content="{{ page_description }}")
meta(property="og:image", content="{{ page_header_image }}")
meta(name="twitter:image", content="{{ page_header_image }}")
| {% endblock %}
| {% block css %}
link(href="{{ url_for('static_cloud', filename='assets/css/projects-index-collection.css') }}", rel="stylesheet")
| {% endblock css %}
| {% block page_title %}
| {{ page_title }}
| {% endblock %}
| {% block body %}
//- Jumbotron
.jumbotron.jumbotron-fluid
//- commented out image until decision is made on jinja background image
//- img.background-header(src="{{ page_header_image }}")
.container
h1.display-4.node_index-collection-name {{ page_title }}
p.lead.node_index-collection-description {{ page_header_text }}
#project-container
//- Project Cards
.container.card-container
.row
| {% for project in projects %}
| {% if (project.status == 'published') or (project.status == 'pending' and current_user.is_authenticated) and project._id != config.MAIN_PROJECT_ID %}
#node_index-container
#node_index-header.collection
img.background-header(src="{{ page_header_image }}")
#node_index-collection-info
.node_index-collection-name
span {{ page_title }}
.node_index-collection-description
span.
{{ page_header_text }}
.node_index-collection
| {% for project in projects %}
| {% if (project.status == 'published') or (project.status == 'pending' and current_user.is_authenticated) and project._id != config.MAIN_PROJECT_ID %}
.node_index-collection-card.project(
data-url="{{ url_for('projects.view', project_url=project.url) }}",
tabindex="{{ loop.index }}")
.col-md-4(
data-url="{{ url_for('projects.view', project_url=project.url) }}",
tabindex="{{ loop.index }}")
.card
| {% if project.picture_header %}
a.item-header(
href="{{ url_for('projects.view', project_url=project.url) }}")
img(src="{{ project.picture_header.thumbnail('l', api=api) }}")
a(href="{{ url_for('projects.view', project_url=project.url) }}")
img.card-img-top(src="{{ project.picture_header.thumbnail('l', api=api) }}")
| {% endif %}
.item-info
a.item-title(
href="{{ url_for('projects.view', project_url=project.url) }}")
| {{project.name}}
| {% if project.status == 'pending' and current_user.is_authenticated and current_user.has_role('admin') %}
small (pending)
| {% endif %}
.card-body
h4.card-title
a(href="{{ url_for('projects.view', project_url=project.url) }}")
| {{project.name}}
| {% if project.status == 'pending' and current_user.is_authenticated and current_user.has_role('admin') %}
small (pending)
| {% endif %}
| {% if project.summary %}
p.item-description
p.card-text
| {{project.summary|safe}}
| {% endif %}
a.learn-more LEARN MORE
| {% endif %}
| {% endfor %}
| {% endif %}
| {% endfor %}
| {% endblock %}
| {% block footer_scripts %}
script.
$('.node_index-collection-card.project').on('click', function(e){
e.preventDefault();
window.location.href = $(this).data('url');
});
//- script.
//- $('.node_index-collection-card.project').on('click', function(e){
//- e.preventDefault();
//- window.location.href = $(this).data('url');
//- });
| {% endblock %}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 441 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 374 KiB

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="9" height="18" viewBox="0 0 9 18">
<path fill="#111" fill-rule="evenodd" d="M6,9.693 L8.334,9.693 L9,6.5775 L6,6.5775 L6,4.5 C5.8425,3.6195 6.09,2.9895 7.3335,3.1155 L9,3.1155 L9,0 C8.718,0.087 7.749,0 6.666,0 C4.2705,0 2.661,1.491 2.667,4.1535 L2.667,6.5775 L0,6.5775 L0,9.693 L2.667,9.693 L2.667,18 L6,18 L6,9.693 Z" opacity=".6"/>
</svg>

After

Width:  |  Height:  |  Size: 390 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="16" viewBox="0 0 20 16">
<path fill="#111" d="M19.426,1.894 C18.712,2.214 17.943,2.431 17.137,2.53 C17.96,2.03 18.592,1.239 18.889,0.295 C18.12,0.758 17.266,1.095 16.359,1.275 C15.632,0.491 14.595,0 13.449,0 C11.248,0 9.463,1.808 9.463,4.039 C9.463,4.355 9.497,4.664 9.566,4.96 C6.251,4.791 3.317,3.183 1.351,0.739 C1.008,1.336 0.81,2.031 0.81,2.77 C0.81,4.171 1.515,5.408 2.585,6.13 C1.931,6.111 1.317,5.929 0.779,5.627 L0.779,5.678 C0.779,7.634 2.153,9.266 3.977,9.638 C3.643,9.729 3.291,9.779 2.928,9.779 C2.671,9.779 2.422,9.754 2.178,9.707 C2.685,11.312 4.155,12.48 5.902,12.513 C4.537,13.595 2.818,14.239 0.951,14.239 C0.629,14.239 0.311,14.222 0,14.184 C1.761,15.331 3.857,16 6.109,16 C13.44,16 17.449,9.845 17.449,4.507 C17.449,4.333 17.446,4.158 17.438,3.984 C18.215,3.415 18.891,2.704 19.426,1.893" opacity=".6"/>
</svg>

After

Width:  |  Height:  |  Size: 892 B

View File

@@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" width="19" height="14" viewBox="0 0 19 14">
<path fill="#111" d="M8,9.77777778 L8,4 L12.4347826,6.89851852 L8,9.77777778 Z M18.81,3.02021573 C18.81,3.02021573 18.6242222,1.64811772 18.0552778,1.04407458 C17.3322222,0.25101793 16.5226111,0.248017716 16.1510556,0.20201443 C13.4931667,0 9.50527778,0 9.50527778,0 C9.49683333,0 5.50788889,0 2.85,0.20201443 C2.47738889,0.248017716 1.66777778,0.252018001 0.944722222,1.04407458 C0.374722222,1.64811772 0.19,3.02021573 0.19,3.02021573 C0.19,3.02021573 0,4.63033074 0,6.24044575 L0,7.75255375 C0,9.36266876 0.19,10.9727838 0.19,10.9727838 C0.19,10.9727838 0.374722222,12.3458818 0.944722222,12.949925 C1.66777778,13.7419816 2.61672222,13.7169798 3.04,13.7999857 C4.56,13.9529966 9.5,14 9.5,14 C9.5,14 13.4921111,13.9939996 16.15,13.7919851 C16.5226111,13.7459819 17.3322222,13.7419816 18.0552778,12.9489249 C18.6252778,12.3438817 18.81,10.9717837 18.81,10.9717837 C18.81,10.9717837 19,9.36166869 19,7.75155368 L19,6.24044575 C19,4.63033074 18.81,3.02021573 18.81,3.02021573 Z" opacity=".6"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

File diff suppressed because one or more lines are too long

5
static/assets/popper.js/popper.min.js vendored Normal file

File diff suppressed because one or more lines are too long