Add new navbar, jumbotron, cards, and footer components.
2062
package-lock.json
generated
@@ -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"
|
||||
|
8
src/styles/_breakpoints.sass
Normal 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
@@ -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
@@ -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
|
||||
//
|
4
src/styles/_custom-font.sass
Normal 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
@@ -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
|
26
src/styles/_jumbotron.sass
Normal 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
@@ -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
|
11
src/styles/projects-index-collection.sass
Normal 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
|
366
src/templates/layout-original.pug
Normal 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');
|
@@ -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') }}")
|
||||
|
@@ -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 %}
|
||||
|
7
static/assets/bootstrap/css/bootstrap.min.css
vendored
Normal file
7
static/assets/bootstrap/js/bootstrap.min.js
vendored
Normal file
BIN
static/assets/img/backgrounds/banner-libraries.jpg
Normal file
After Width: | Height: | Size: 296 KiB |
BIN
static/assets/img/backgrounds/banner-open-projects.jpg
Normal file
After Width: | Height: | Size: 441 KiB |
BIN
static/assets/img/backgrounds/banner-spring.jpg
Normal file
After Width: | Height: | Size: 200 KiB |
BIN
static/assets/img/backgrounds/banner-training.jpg
Normal file
After Width: | Height: | Size: 374 KiB |
3
static/assets/img/icons/icon-social-facebook.svg
Normal 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 |
3
static/assets/img/icons/icon-social-twitter.svg
Normal 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 |
3
static/assets/img/icons/icon-social-youtube.svg
Normal 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 |
10
static/assets/img/logo-blender-cloud-text.svg
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
static/assets/img/projects/thumbnail-open-projects-agent-327.jpg
Normal file
After Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 22 KiB |
After Width: | Height: | Size: 40 KiB |
After Width: | Height: | Size: 27 KiB |
BIN
static/assets/img/projects/thumbnail-open-projects-hero.jpg
Normal file
After Width: | Height: | Size: 22 KiB |
BIN
static/assets/img/projects/thumbnail-open-projects-monkaa.jpg
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
static/assets/img/projects/thumbnail-open-projects-sintel.jpg
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
static/assets/img/projects/thumbnail-open-projects-spring.jpg
Normal file
After Width: | Height: | Size: 29 KiB |
After Width: | Height: | Size: 37 KiB |