UI: Upgrade nav-global to web-assets v2 component #9

Open
Márton Lente wants to merge 5 commits from ui/web-assets-v2-nav-global into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.

View File

@ -6,42 +6,43 @@
.nav-global { .nav-global {
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
--nav-global-color-bg: hsl(213, 10%, 14%); /*
--nav-global-color-text: hsl(213, 5%, 64%); *Variables come from, and match partial _variables, and are prefixed with 'bwa-'.
--nav-global-color-text-secondary: hsl(213, 5%, 44%); *Sizes must be defined in pixels as default rem-sizing might vary in projects.
--nav-global-color-text-highlight: hsl(213, 5%, 84%); */
--nav-global-color-text-hover: white;
--nav-global-color-text-active: white;
--nav-global-color-primary: hsl(204, 98%, 54%); --bwa-color-bg-primary: hsl(213, 10%, 21%);
--nav-global-color-primary-bg: hsla(204, 100%, 46%, .1); --bwa-color-bg-tertiary: hsl(213, 10%, 14%);
--nav-global-color-button-bg-hover: hsl(213, 10%, 24%); --bwa-color-text: hsl(213, 10%, 80%);
--nav-global-color-button-text: var(--nav-global-color-text); --bwa-color-text-primary: hsl(213, 10%, 98%);
--nav-global-color-menu-bg: var(--nav-global-color-bg); /* Colours Components. */
--nav-global-color-menu-border: hsl(213, 10%, 18%); --bwa-border-color: hsla(213, 10%, 80%, .15);
--nav-global-color-menu-zindex: 1040; --bwa-btn-color-bg-hover: hsl(213, 10%, 30%);
--nav-global-box-shadow-menu: 0px 5px 15px -2px rgba(0, 0, 0, 0.33), 0px 5px 15px -5px rgba(0, 0, 0, 0.33); /* Colours Status. */
--nav-global-box-shadow-menu-item: 0px 1px 4px 0px rgba(0, 0, 0, 0.05), 0px 15px 20px -1px rgba(0, 0, 0, 0.025); --bwa-color-accent: hsl(204deg, 100%, 50%);
--bwa-color-accent-bg: hsla(204deg, 100%, 50%, .1);
--bwa-color-accent-bg-hover: hsla(204deg, 100%, 50%, .2);
--nav-global-navbar-height: var(--navbar-primary-height, 56px); --bwa-border-radius: 6px;
--bwa-border-radius-lg: 12px;
--nav-global-spacer: 15px; --bwa-transition-speed: 150ms;
--nav-global-spacer-sm: 10px;
--nav-global-spacer-xs: 5px;
--nav-global-border-radius: 6px; --bwa-zindex-fixed: 1030;
--nav-global-border-radius-lg: 10px; --bwa-zindex-dropdown: 1040;
--nav-global-button-height: 35px; /* Grid. */
--nav-global-link-padding-x: var(--nav-global-spacer); --bwa-spacer: 16px;
--nav-global-link-padding-y: var(--nav-global-spacer-sm); --bwa-spacer-1: calc(var(--bwa-spacer) * 0.25);
--bwa-spacer-2: calc(var(--bwa-spacer) * 0.5);
--bwa-spacer-3: var(--bwa-spacer);
--nav-global-font-size: 14px; /* Type. */
--nav-global-transition-speed: 150ms; --bwa-fs-base: 14px;
} }
/* Reset. */ /* Reset. */
@ -50,8 +51,6 @@
.nav-global :not(svg|*), .nav-global :not(svg|*),
.nav-global *::before, .nav-global *::before,
.nav-global *::after { .nav-global *::after {
-webkit-box-sizing: border-box;
all: unset; all: unset;
display: revert; display: revert;
box-sizing: border-box; box-sizing: border-box;
@ -64,14 +63,14 @@
.nav-global * { .nav-global * {
-webkit-text-size-adjust: 100%; -webkit-text-size-adjust: 100%;
font-family: 'Heebo', -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-family: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-variation-settings: 'wght' 400; font-variation-settings: 'wght' 400;
font-weight: normal; font-weight: normal;
} }
.nav-global { .nav-global {
background-color: var(--nav-global-color-bg); background-color: var(--bwa-color-bg-tertiary);
color: var(--nav-global-color-text); color: var(--bwa-color-text);
display: flex; display: flex;
position: relative; position: relative;
z-index: var(--zindex-fixed); z-index: var(--zindex-fixed);
@ -102,11 +101,12 @@
.nav-global nav { .nav-global nav {
align-items: center; align-items: center;
display: flex; display: flex;
line-height: var(--nav-global-font-size); line-height: var(--bwa-fs-base);
font-size: var(--nav-global-font-size); font-size: var(--bwa-fs-base);
height: var(--nav-global-navbar-height); justify-content: space-between;
min-height: calc(var(--bwa-spacer) * 4);
margin: 0 auto; margin: 0 auto;
padding: 0 var(--nav-global-spacer); padding: 0 var(--bwa-spacer);
position: relative; position: relative;
} }
@ -115,23 +115,34 @@
color: inherit; color: inherit;
cursor: pointer; cursor: pointer;
text-decoration: none; text-decoration: none;
transition: background-color var(--nav-global-transition-speed) ease-out, color var(--nav-global-transition-speed) ease-out; transition: background-color var(--bwa-transition-speed) ease-out, color var(--bwa-transition-speed) ease-out;
}
.nav-global-nav-links {
flex-grow: 1;
}
.nav-global-nav-links a:not(.dropdown-item) {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
} }
.nav-global a:not(.dropdown-item):hover { .nav-global a:not(.dropdown-item):hover {
color: var(--nav-global-color-text-hover); color: var(--bwa-color-text-primary);
} }
/* Navigation items. */ /* Navigation items. */
.nav-global nav > ul { .nav-global nav>ul {
flex-wrap: wrap;
list-style: none; list-style: none;
margin: 0; margin: 0;
padding: 0; padding: 0;
} }
.nav-global nav > ul, .nav-global nav>ul,
.nav-global nav > ul > li, .nav-global nav>ul>li,
.nav-global nav > ul > li > a, .nav-global nav>ul>li>a,
.nav-global-apps-dropdown-container { .nav-global-apps-dropdown-container {
align-items: center; align-items: center;
display: inline-flex; display: inline-flex;
@ -142,52 +153,70 @@
position: relative; position: relative;
} }
.nav-global nav > ul > li > a { .nav-global nav>ul>li>a {
padding: var(--nav-global-link-padding-y) var(--nav-global-link-padding-x); padding: var(--bwa-spacer-2);
} }
.nav-global nav > a.is-active, @media (min-width: 1320px) {
.nav-global nav > a.is-active svg, .nav-global nav>ul>li>a {
.nav-global nav > ul > li > a.is-active, padding-left: var(--bwa-spacer);
.nav-global .nav-global-link-active, padding-right: var(--bwa-spacer);
.nav-global .nav-global-link-active svg { }
color: var(--nav-global-color-text-active) !important; }
fill: var(--nav-global-color-text-active);
font-variation-settings: 'wght' 500; .nav-global nav>a.is-active,
.nav-global nav>a.is-active svg,
.nav-global nav>ul>li>a.is-active {
color: var(--bwa-color-text-primary) !important;
fill: var(--bwa-color-text-primary);
font-variation-settings: 'wght', 500;
font-weight: bold;
} }
.nav-global .nav-global-links-right { .nav-global .nav-global-links-right {
margin-left: auto; flex-wrap: nowrap;
gap: 0 var(--bwa-spacer-2);
} }
/* Logo. */ /* Logo. */
.nav-global a.nav-global-logo { .nav-global a.nav-global-logo {
margin-right: var(--nav-global-spacer); margin-right: var(--bwa-spacer);
position: relative; position: relative;
top: 2px; top: 2px;
white-space: nowrap;
} }
.nav-global a.nav-global-logo strong { .nav-global a.nav-global-logo strong {
margin-inline: var(--nav-global-spacer-sm); margin-inline: var(--bwa-spacer-2);
font-size: 18px; font-size: 18px;
} }
.nav-global .nav-global-logo svg { .nav-global .nav-global-logo svg,
.nav-global .nav-global-logo img {
height: 21px; height: 21px;
pointer-events: none;
} }
.nav-global a.nav-global-logo svg { .nav-global a.nav-global-logo svg {
position: relative; position: relative;
top: -4px; top: calc(var(--bwa-spacer-1) * -1);
} }
.nav-global svg { .nav-global svg {
fill: var(--nav-global-color-text); fill: var(--bwa-color-text);
transition: fill var(--nav-global-transition-speed) ease-out; transition: fill var(--bwa-transition-speed) ease-out;
} }
.nav-global .nav-global-logo:hover svg { .nav-global .nav-global-logo:hover svg {
fill: white; fill: var(--bwa-color-text-primary);
}
.nav-global .nav-global-logo.is-active,
.nav-global .nav-global-logo.is-active svg,
// TODO: make classes 'is-active' and 'nav-global-btn-active' consistent
.nav-global button.nav-global-btn-active svg {
color: var(--bwa-color-text-primary);
fill: var(--bwa-color-text-primary);
} }
/* Apps button. */ /* Apps button. */
@ -197,43 +226,52 @@
align-items: center; align-items: center;
background-color: transparent; background-color: transparent;
border-radius: var(--nav-global-border-radius); border-radius: var(--bwa-border-radius);
border: 0; border: 0;
color: var(--nav-global-color-button-text); color: var(--bwa-btn-color-text);
cursor: pointer; cursor: pointer;
display: inline-flex; display: inline-flex;
font: inherit; font: inherit;
height: var(--nav-global-button-height); height: calc(var(--bwa-spacer) * 2.25);
margin: 0; margin: 0;
outline: 0; outline: 0;
overflow: visible; overflow: visible;
padding: var(--nav-global-spacer-xs) var(--nav-global-spacer); padding: var(--bwa-spacer-1) var(--bwa-spacer-2);
text-transform: none; text-transform: none;
transition: background-color var(--nav-global-transition-speed) ease-out, color var(--nav-global-transition-speed) ease-out, transform var(--nav-global-transition-speed) ease-out; transition: background-color var(--bwa-transition-speed) ease-out, color var(--bwa-transition-speed) ease-out, transform var(--bwa-transition-speed) ease-out;
white-space: nowrap; white-space: nowrap;
} }
.nav-global .nav-global-btn.nav-global-btn-primary {
padding-left: var(--bwa-spacer);
padding-right: var(--bwa-spacer);
}
.nav-global button span, .nav-global button span,
.nav-global .nav-global-btn span { .nav-global .nav-global-btn span {
white-space: nowrap; white-space: nowrap;
} }
.nav-global button:hover, .nav-global button:hover,
.nav-global .nav-global-btn:hover { .nav-global .nav-global-btn:hover,
background-color: var(--nav-global-color-button-bg-hover); .nav-global button.nav-global-btn-active,
color: var(--nav-global-color-text-hover); .nav-global .nav-global-btn.nav-global-btn-active {
background-color: var(--bwa-btn-color-bg-hover);
color: var(--bwa-color-text-primary);
cursor: pointer; cursor: pointer;
} }
.nav-global button.nav-global-btn-active, .nav-global .nav-global-btn span {
.nav-global .nav-global-btn.nav-global-btn-active { margin-left: var(--bwa-spacer-2);
background-color: var(--nav-global-color-primary-bg);
color: var(--nav-global-color-primary);
} }
.nav-global button.nav-global-btn-active svg, .nav-global .nav-global-btn-primary {
.nav-global .nav-global-btn.nav-global-btn-active svg { background-color: var(--bwa-color-accent-bg);
fill: var(--nav-global-color-primary); color: var(--bwa-color-accent) !important;
}
.nav-global .nav-global-btn-primary:hover {
background-color: var(--bwa-color-accent-bg-hover);
} }
.nav-global .nav-global-icon { .nav-global .nav-global-icon {
@ -242,8 +280,12 @@
width: 20px; width: 20px;
} }
.nav-global-icon-dropdown-toggle { .nav-global .nav-global-icon-alt {
margin-left: var(--nav-global-spacer-xs); transform: rotate(90deg);
}
.nav-global .dropdown-toggle.active {
color: var(--bwa-color-text-primary)
} }
.nav-global button:hover svg, .nav-global button:hover svg,
@ -253,18 +295,18 @@
/* Apps dropdown menu. */ /* Apps dropdown menu. */
.nav-global .nav-global-apps-menu { .nav-global .nav-global-apps-menu {
background-color: var(--nav-global-color-menu-bg); background-color: var(--bwa-color-bg-tertiary);
border-radius: var(--nav-global-border-radius-lg); border-radius: var(--bwa-border-radius-lg);
border: thin solid var(--nav-global-color-menu-border); border: thin solid var(--bwa-border-color);
box-shadow: var(--nav-global-box-shadow-menu); box-shadow: 0 var(--bwa-spacer-1) var(--bwa-spacer) -2px rgba(0, 0, 0, 0.33), 0px var(--bwa-spacer-1) var(--bwa-spacer) calc(var(--bwa-spacer-1) * -1) rgba(0, 0, 0, 0.33);
display: none; display: none;
padding: var(--nav-global-spacer-sm); padding: var(--bwa-spacer-2);
position: absolute; position: absolute;
right: 0; right: 0;
top: calc(100% + 15px); top: calc(100% + var(--bwa-spacer));
visibility: hidden; visibility: hidden;
width: 640px; width: 640px;
z-index: var(--nav-global-color-menu-zindex); z-index: var(--bwa-zindex-dropdown);
} }
.nav-global .nav-global-dropdown.is-visible { .nav-global .nav-global-dropdown.is-visible {
@ -273,10 +315,11 @@
} }
/* Tiny triangle in the corner. */ /* Tiny triangle in the corner. */
// TODO: consider removing for consistency
.nav-global .nav-global-apps-menu::before { .nav-global .nav-global-apps-menu::before {
background-color: var(--nav-global-color-menu-bg); background-color: var(--bwa-color-bg-tertiary);
border-radius: 3px; border-radius: 3px;
border: 2px var(--nav-global-color-menu-bg) solid; border: 2px var(--bwa-color-bg-tertiary) solid;
content: ''; content: '';
display: block; display: block;
height: .85rem; height: .85rem;
@ -291,15 +334,15 @@
.nav-global .nav-global-apps-menu ul { .nav-global .nav-global-apps-menu ul {
border-bottom: 2px solid rgba(255, 255, 255, .05); border-bottom: 2px solid rgba(255, 255, 255, .05);
display: grid; display: grid;
gap: var(--nav-global-spacer-sm); gap: var(--bwa-spacer-2);
grid-template-columns: repeat(2, 1fr); grid-template-columns: repeat(2, 1fr);
list-style: none; list-style: none;
margin: 0 0 var(--nav-global-spacer-xs) 0; margin: 0 0 var(--bwa-spacer-1) 0;
padding: var(--nav-global-spacer-xs) 0 var(--nav-global-spacer-sm) 0; padding: var(--bwa-spacer-1) 0 var(--bwa-spacer-2) 0;
} }
.nav-global .nav-global-apps-menu ul>li>a { .nav-global .nav-global-apps-menu ul>li>a {
border-radius: var(--nav-global-border-radius-lg); border-radius: var(--bwa-border-radius-lg);
display: flex; display: flex;
flex: 1; flex: 1;
height: 100%; height: 100%;
@ -307,45 +350,46 @@
.nav-global .nav-global-apps-menu ul>li>a:hover { .nav-global .nav-global-apps-menu ul>li>a:hover {
background-color: rgba(255, 255, 255, .05); background-color: rgba(255, 255, 255, .05);
color: var(--nav-global-color-text-active); color: var(--bwa-color-text-primary);
box-shadow: var(--nav-global-box-shadow-menu-item); box-shadow: 0px 1px var(--bwa-spacer-1) 0 rgba(0, 0, 0, 0.05), 0 var(--bwa-spacer) 20px -1px rgba(0, 0, 0, 0.025);
} }
.nav-global .nav-global-apps-menu ul>li>a:hover h4, .nav-global .nav-global-apps-menu ul>li>a:hover h4,
.nav-global .nav-global-apps-menu ul>li>a:hover svg { .nav-global .nav-global-apps-menu ul>li>a:hover svg {
color: var(--nav-global-color-primary); color: var(--bwa-color-accent);
fill: var(--nav-global-color-primary); fill: var(--bwa-color-accent);
} }
.nav-global .nav-global-apps-menu h3 { .nav-global .nav-global-apps-menu h3 {
color: white; color: white;
display: inline-block; display: inline-block;
font-size: 13px; font-size: 12px;
line-height: 18px; line-height: var(--bwa-spacer);
margin: 0; margin: 0;
margin-top: 2px;
opacity: .3; opacity: .3;
padding-left: var(--nav-global-spacer); padding-left: var(--bwa-spacer);
} }
.nav-global .nav-global-apps-menu h4 { .nav-global .nav-global-apps-menu h4 {
color: var(--nav-global-color-text-highlight); color: var(--bwa-color-text-primary);
font-size: 17px; font-size: 18px;
line-height: 18px; line-height: 20px;
margin: var(--nav-global-spacer-xs) 0 0; margin: var(--bwa-spacer-1) 0 0;
padding: var(--nav-global-spacer-sm) var(--nav-global-spacer) 0; padding: var(--bwa-spacer-2) var(--bwa-spacer) 0;
transition: color var(--nav-global-transition-speed) ease-out; transition: color var(--bwa-transition-speed) ease-out;
} }
.nav-global .nav-global-apps-menu p { .nav-global .nav-global-apps-menu p {
font-size: 15px; font-size: var(--bwa-fs-base);
line-height: 20px; line-height: 20px;
margin: 0; margin: 0;
opacity: .8; opacity: .8;
padding: var(--nav-global-spacer-xs) var(--nav-global-spacer) var(--nav-global-spacer-sm); padding: var(--bwa-spacer-1) var(--bwa-spacer) var(--bwa-spacer-2);
} }
.nav-global .nav-global-apps-menu figure { .nav-global .nav-global-apps-menu figure {
margin: var(--nav-global-spacer) 0 0 var(--nav-global-spacer); margin: var(--bwa-spacer) 0 0 var(--bwa-spacer);
} }
.nav-global .nav-global-apps-menu ul>li>a svg { .nav-global .nav-global-apps-menu ul>li>a svg {
@ -362,7 +406,7 @@
.nav-global .nav-global-apps-menu-section-donate a svg { .nav-global .nav-global-apps-menu-section-donate a svg {
fill: hsl(352, 90%, 62%) !important; fill: hsl(352, 90%, 62%) !important;
transition: transform var(--nav-global-transition-speed) ease-out; transition: transform var(--bwa-transition-speed) ease-out;
} }
.nav-global .nav-global-apps-menu-section-donate ul>li:first-child>a { .nav-global .nav-global-apps-menu-section-donate ul>li:first-child>a {
@ -382,108 +426,78 @@
color: white; color: white;
} }
/* Mobile. */ /* Mobile. */
.nav-global button.nav-global-logo { .nav-global button.nav-global-logo {
display: none; display: none;
visibility: hidden; visibility: hidden;
} }
@media (max-width: 767px) {
@media (max-width: 767px) {
.nav-global-apps-dropdown-container, .nav-global-apps-dropdown-container,
.nav-global a.nav-global-logo { .nav-global a.nav-global-logo {
display: none; display: none;
} }
.nav-global button.nav-global-logo { .nav-global button.nav-global-logo {
display: block; display: flex;
visibility: visible; visibility: visible;
} }
.nav-global button.nav-global-logo strong,
.nav-global button.nav-global-logo svg {
margin-right: var(--bwa-spacer-2)
}
.nav-global .nav-global-nav-links { .nav-global .nav-global-nav-links {
align-items: flex-start; align-items: flex-start;
background-color: var(--nav-global-color-menu-bg); background-color: var(--bwa-color-bg-primary);
border-radius: var(--nav-global-border-radius-lg); border-radius: 6px;
display: none; display: none;
flex-direction: column; flex-direction: column;
left: 1rem; height: auto;
padding: 0 var(--nav-global-spacer-sm); padding: var(--bwa-spacer-1);
position: absolute; position: absolute;
top: calc(100% + .5rem); top: 72px;
visibility: visible; visibility: visible;
width: 10rem; z-index: var(--bwa-zindex-dropdown);
z-index: var(--nav-global-color-menu-zindex);
} }
.nav-global .nav-global-nav-links.is-visible { .nav-global .nav-global-nav-links.is-visible {
display: flex; display: flex;
} }
.nav-global .nav-global-nav-links::before { .nav-global .nav-global-nav-links li {
background-color: var(--nav-global-color-menu-bg); align-items: center;
border-radius: 3px; display: flex;
border: 2px var(--nav-global-color-menu-bg) solid; margin-bottom: var(--bwa-spacer-1);
content: '';
display: block;
height: 0.8rem;
position: absolute;
left: 1.5rem;
top: -0.133rem;
transform: rotate(45deg);
width: 1rem;
z-index: -1;
}
.nav-global nav>ul {
height: initial;
}
.nav-global .nav-global-nav-links>li {
border-bottom: 2px solid rgba(255, 255, 255, .05);
width: 100%; width: 100%;
} }
.nav-global .nav-global-nav-links>li:last-child { .nav-global .nav-global-nav-links li:last-child {
border: none; margin-bottom: 0;
} }
.nav-global .nav-global-nav-links>li>a { .nav-global .nav-global-nav-links li a {
padding-inline: 0; border-radius: 6px;
color: var(--bwa-color-text);
display: inline-flex;
flex: 1;
line-height: initial;
padding: var(--bwa-spacer-2) var(--bwa-spacer);
transition: background-color var(--bwa-transition-speed) var(--bwa-transition-timing-fast), color var(--bwa-transition-speed) var(--bwa-transition-timing-fast);
text-decoration: none;
white-space: nowrap;
width: 100%; width: 100%;
} }
}
</style>
<style>
/* Custom styling for projects.blender.org */
/* Make sure to start every line with ".nav-global"
* so changes affect the developer navbar only. */
/* Limit navbar width on large screens. */ .nav-global .nav-global-nav-links li a:hover,
@media (min-width: 1200px) { .nav-global .nav-global-nav-links li a.nav-global-link-active {
[role="main"] > .dashboard-navbar, background-color: var(--bwa-color-accent-bg);
.full.height > .menu.bar > [role="navigation"], color: var(--bwa-color-accent);
.nav-global .nav-global-container { text-decoration: none;
max-width: 1170px;
} }
} }
/* Override Gitea's default navbar height. */
#navbar {
min-height: 46px;
}
/* Hide the site logo. */
/* Seems to be breaking the sign-in button currently.
#navbar .item:first-child {
display: none;
}
*/
/* Fix alignment of text in dropdown items. */
.ui.dropdown>.text {
position: relative;
top: -2px;
}
</style> </style>
<div class="nav-global"> <div class="nav-global">
@ -491,23 +505,21 @@
<nav> <nav>
<a href="https://developer.blender.org/" class="nav-global-logo"> <a href="https://developer.blender.org/" class="nav-global-logo">
<svg fill-rule="nonzero" viewBox="0 0 200 162.05"> <svg fill-rule="nonzero" viewBox="0 0 200 162.05">
<path <path d="M61.1 104.56c.05 2.6.88 7.66 2.12 11.61a61.27 61.27 0 0 0 13.24 22.92 68.39 68.39 0 0 0 23.17 16.64 74.46 74.46 0 0 0 30.42 6.32 74.52 74.52 0 0 0 30.4-6.42 68.87 68.87 0 0 0 23.15-16.7 61.79 61.79 0 0 0 13.23-22.97 58.06 58.06 0 0 0 2.07-25.55 59.18 59.18 0 0 0-8.44-23.1 64.45 64.45 0 0 0-15.4-16.98h.02L112.76 2.46l-.16-.12c-4.09-3.14-10.96-3.13-15.46.02-4.55 3.18-5.07 8.44-1.02 11.75l-.02.02 26 21.14-79.23.08h-.1c-6.55.01-12.85 4.3-14.1 9.74-1.27 5.53 3.17 10.11 9.98 10.14v.02l40.15-.07-71.66 55-.27.2c-6.76 5.18-8.94 13.78-4.69 19.23 4.32 5.54 13.51 5.55 20.34.03l39.1-32s-.56 4.32-.52 6.91zm100.49 14.47c-8.06 8.2-19.34 12.86-31.54 12.89-12.23.02-23.5-4.6-31.57-12.79-3.93-4-6.83-8.59-8.61-13.48a35.57 35.57 0 0 1 2.34-29.25 39.1 39.1 0 0 1 9.58-11.4 44.68 44.68 0 0 1 28.24-9.85 44.59 44.59 0 0 1 28.24 9.77 38.94 38.94 0 0 1 9.58 11.36 35.58 35.58 0 0 1 4.33 14.18 35.1 35.1 0 0 1-1.98 15.05 37.7 37.7 0 0 1-8.61 13.52zm-57.6-27.91a23.55 23.55 0 0 1 8.55-16.68 28.45 28.45 0 0 1 18.39-6.57 28.5 28.5 0 0 1 18.38 6.57 23.57 23.57 0 0 1 8.55 16.67c.37 6.83-2.37 13.19-7.2 17.9a28.18 28.18 0 0 1-19.73 7.79c-7.83 0-14.84-3-19.75-7.8a23.13 23.13 0 0 1-7.19-17.88z"></path>
d="M61.1 104.56c.05 2.6.88 7.66 2.12 11.61a61.27 61.27 0 0 0 13.24 22.92 68.39 68.39 0 0 0 23.17 16.64 74.46 74.46 0 0 0 30.42 6.32 74.52 74.52 0 0 0 30.4-6.42 68.87 68.87 0 0 0 23.15-16.7 61.79 61.79 0 0 0 13.23-22.97 58.06 58.06 0 0 0 2.07-25.55 59.18 59.18 0 0 0-8.44-23.1 64.45 64.45 0 0 0-15.4-16.98h.02L112.76 2.46l-.16-.12c-4.09-3.14-10.96-3.13-15.46.02-4.55 3.18-5.07 8.44-1.02 11.75l-.02.02 26 21.14-79.23.08h-.1c-6.55.01-12.85 4.3-14.1 9.74-1.27 5.53 3.17 10.11 9.98 10.14v.02l40.15-.07-71.66 55-.27.2c-6.76 5.18-8.94 13.78-4.69 19.23 4.32 5.54 13.51 5.55 20.34.03l39.1-32s-.56 4.32-.52 6.91zm100.49 14.47c-8.06 8.2-19.34 12.86-31.54 12.89-12.23.02-23.5-4.6-31.57-12.79-3.93-4-6.83-8.59-8.61-13.48a35.57 35.57 0 0 1 2.34-29.25 39.1 39.1 0 0 1 9.58-11.4 44.68 44.68 0 0 1 28.24-9.85 44.59 44.59 0 0 1 28.24 9.77 38.94 38.94 0 0 1 9.58 11.36 35.58 35.58 0 0 1 4.33 14.18 35.1 35.1 0 0 1-1.98 15.05 37.7 37.7 0 0 1-8.61 13.52zm-57.6-27.91a23.55 23.55 0 0 1 8.55-16.68 28.45 28.45 0 0 1 18.39-6.57 28.5 28.5 0 0 1 18.38 6.57 23.57 23.57 0 0 1 8.55 16.67c.37 6.83-2.37 13.19-7.2 17.9a28.18 28.18 0 0 1-19.73 7.79c-7.83 0-14.84-3-19.75-7.8a23.13 23.13 0 0 1-7.19-17.88z" /> </svg><strong>Developer</strong>
<strong>Developer</strong>
</svg>
</a> </a>
<button class="nav-global-logo js-dropdown-toggle" data-toggle-menu-id="nav-global-nav-links"> <button class="nav-global-logo js-dropdown-toggle" data-toggle-menu-id="nav-global-nav-links">
<svg fill-rule="nonzero" viewBox="0 0 850.2 162.05"> <svg fill-rule="nonzero" viewBox="0 0 200 162.05">
<path d="M61.1 104.56c.05 2.6.88 7.66 2.12 11.61a61.27 61.27 0 0 0 13.24 22.92 68.39 68.39 0 0 0 23.17 16.64 74.46 74.46 0 0 0 30.42 6.32 74.52 74.52 0 0 0 30.4-6.42 68.87 68.87 0 0 0 23.15-16.7 61.79 61.79 0 0 0 13.23-22.97 58.06 58.06 0 0 0 2.07-25.55 59.18 59.18 0 0 0-8.44-23.1 64.45 64.45 0 0 0-15.4-16.98h.02L112.76 2.46l-.16-.12c-4.09-3.14-10.96-3.13-15.46.02-4.55 3.18-5.07 8.44-1.02 11.75l-.02.02 26 21.14-79.23.08h-.1c-6.55.01-12.85 4.3-14.1 9.74-1.27 5.53 3.17 10.11 9.98 10.14v.02l40.15-.07-71.66 55-.27.2c-6.76 5.18-8.94 13.78-4.69 19.23 4.32 5.54 13.51 5.55 20.34.03l39.1-32s-.56 4.32-.52 6.91zm100.49 14.47c-8.06 8.2-19.34 12.86-31.54 12.89-12.23.02-23.5-4.6-31.57-12.79-3.93-4-6.83-8.59-8.61-13.48a35.57 35.57 0 0 1 2.34-29.25 39.1 39.1 0 0 1 9.58-11.4 44.68 44.68 0 0 1 28.24-9.85 44.59 44.59 0 0 1 28.24 9.77 38.94 38.94 0 0 1 9.58 11.36 35.58 35.58 0 0 1 4.33 14.18 35.1 35.1 0 0 1-1.98 15.05 37.7 37.7 0 0 1-8.61 13.52zm-57.6-27.91a23.55 23.55 0 0 1 8.55-16.68 28.45 28.45 0 0 1 18.39-6.57 28.5 28.5 0 0 1 18.38 6.57 23.57 23.57 0 0 1 8.55 16.67c.37 6.83-2.37 13.19-7.2 17.9a28.18 28.18 0 0 1-19.73 7.79c-7.83 0-14.84-3-19.75-7.8a23.13 23.13 0 0 1-7.19-17.88z" /> <path d="M61.1 104.56c.05 2.6.88 7.66 2.12 11.61a61.27 61.27 0 0 0 13.24 22.92 68.39 68.39 0 0 0 23.17 16.64 74.46 74.46 0 0 0 30.42 6.32 74.52 74.52 0 0 0 30.4-6.42 68.87 68.87 0 0 0 23.15-16.7 61.79 61.79 0 0 0 13.23-22.97 58.06 58.06 0 0 0 2.07-25.55 59.18 59.18 0 0 0-8.44-23.1 64.45 64.45 0 0 0-15.4-16.98h.02L112.76 2.46l-.16-.12c-4.09-3.14-10.96-3.13-15.46.02-4.55 3.18-5.07 8.44-1.02 11.75l-.02.02 26 21.14-79.23.08h-.1c-6.55.01-12.85 4.3-14.1 9.74-1.27 5.53 3.17 10.11 9.98 10.14v.02l40.15-.07-71.66 55-.27.2c-6.76 5.18-8.94 13.78-4.69 19.23 4.32 5.54 13.51 5.55 20.34.03l39.1-32s-.56 4.32-.52 6.91zm100.49 14.47c-8.06 8.2-19.34 12.86-31.54 12.89-12.23.02-23.5-4.6-31.57-12.79-3.93-4-6.83-8.59-8.61-13.48a35.57 35.57 0 0 1 2.34-29.25 39.1 39.1 0 0 1 9.58-11.4 44.68 44.68 0 0 1 28.24-9.85 44.59 44.59 0 0 1 28.24 9.77 38.94 38.94 0 0 1 9.58 11.36 35.58 35.58 0 0 1 4.33 14.18 35.1 35.1 0 0 1-1.98 15.05 37.7 37.7 0 0 1-8.61 13.52zm-57.6-27.91a23.55 23.55 0 0 1 8.55-16.68 28.45 28.45 0 0 1 18.39-6.57 28.5 28.5 0 0 1 18.38 6.57 23.57 23.57 0 0 1 8.55 16.67c.37 6.83-2.37 13.19-7.2 17.9a28.18 28.18 0 0 1-19.73 7.79c-7.83 0-14.84-3-19.75-7.8a23.13 23.13 0 0 1-7.19-17.88z"></path>
<path d="M829.17 133.76h-15.9V64.39h15.13l.77 13.59zM850.07 79q-1.47-.25-3.14-.38-1.6-.13-3.2-.13-5.26 0-8.8 1.92-3.45 1.86-5.25 5.39-1.8 3.46-2.11 8.2l-3.66.07q0-8.78 2.31-15.77 2.3-6.99 6.92-11.1 4.62-4.1 11.54-4.1 1.35 0 3.02.26 1.66.26 2.5.58zm-76.55 56.04q-10.32 0-17.82-4.42-7.5-4.5-11.55-12.06-4.03-7.63-4.03-17.05v-2.63q0-10.84 4.1-18.85 4.1-8.08 11.22-12.5 7.18-4.43 16.22-4.43 10 0 16.6 4.36 6.6 4.3 9.88 12 3.27 7.62 3.27 17.69V104h-53.67V92.53h37.96v-1.22q-.13-4.04-1.54-7.56-1.4-3.53-4.49-5.7-3.01-2.19-8.07-2.19-5.07 0-8.53 2.89-3.46 2.82-5.26 8.01-1.8 5.13-1.8 12.12v2.63q0 5.9 2.19 10.58 2.18 4.68 6.34 7.43 4.17 2.7 9.94 2.7 5.58 0 9.87-2.18 4.36-2.18 7.5-6.29l8.34 8.34q-3.27 4.93-9.87 8.97-6.54 3.98-16.8 3.98zm-88.67 25.39h-15.9V64.39h14.68l1.22 13.33zm45-60.72q0 10.13-3.13 18.15-3.08 7.95-9.1 12.56-5.97 4.62-14.63 4.62-8.72 0-14.49-4.23-5.7-4.3-8.9-11.8-3.21-7.5-4.43-17.12v-4.55q1.22-10.26 4.42-17.89 3.2-7.7 8.91-11.99 5.71-4.36 14.3-4.36 8.79 0 14.81 4.43 6.03 4.42 9.1 12.37 3.15 7.95 3.15 18.47zm-15.9-1.34q0-6.22-1.6-11.29-1.53-5.06-5-8.01-3.4-2.95-8.9-2.95-3.98 0-6.87 1.35-2.88 1.28-4.87 3.65-1.92 2.37-3.01 5.64-1.1 3.2-1.54 7.05v11.6q.77 4.62 2.56 8.47 1.8 3.85 5.13 6.16 3.4 2.24 8.72 2.24 5.51 0 8.91-3.08 3.4-3.14 4.94-8.2 1.54-5.13 1.54-11.29zm-122.51.06q0-10.13 3.84-18.08 3.85-7.95 11.03-12.57 7.25-4.68 17.38-4.68 10.25 0 17.5 4.68 7.24 4.62 11.03 12.57 3.84 7.95 3.84 18.08v1.35q0 10.06-3.84 18.08-3.79 7.95-11.03 12.56-7.18 4.62-17.38 4.62-10.19 0-17.43-4.62-7.25-4.61-11.1-12.56-3.84-8.02-3.84-18.08zm15.9 1.35q0 6.15 1.73 11.28 1.73 5.07 5.32 8.14 3.65 3.08 9.42 3.08 5.71 0 9.3-3.08 3.65-3.07 5.32-8.14 1.73-5.13 1.73-11.28v-1.35q0-6.09-1.73-11.22-1.67-5.13-5.32-8.2-3.65-3.15-9.42-3.15-5.71 0-9.36 3.14-3.6 3.08-5.33 8.21-1.66 5.13-1.66 11.22zm-29.69 33.98h-15.9V35.28h15.9zm-56.67 1.28q-10.33 0-17.83-4.42-7.5-4.5-11.54-12.06-4.04-7.63-4.04-17.05v-2.63q0-10.84 4.1-18.85 4.11-8.08 11.23-12.5 7.18-4.43 16.22-4.43 10 0 16.6 4.36 6.6 4.3 9.88 12 3.27 7.62 3.27 17.69V104H495.2V92.53h37.96v-1.22q-.13-4.04-1.54-7.56-1.41-3.53-4.49-5.7-3.01-2.19-8.08-2.19-5.06 0-8.52 2.89-3.47 2.82-5.26 8.01-1.8 5.13-1.8 12.12v2.63q0 5.9 2.18 10.58t6.35 7.43q4.17 2.7 9.94 2.7 5.58 0 9.87-2.18 4.36-2.18 7.5-6.29l8.34 8.34q-3.27 4.93-9.88 8.97-6.54 3.98-16.8 3.98zM464.3 64.39h16.48l-23.98 69.37h-10.26l1.03-12.57zm-12.25 57 .77 12.37h-10.19l-24.17-69.37H435zm-65.88 13.65q-10.32 0-17.82-4.42-7.5-4.5-11.54-12.06-4.04-7.63-4.04-17.05v-2.63q0-10.84 4.1-18.85 4.1-8.08 11.22-12.5 7.18-4.43 16.22-4.43 10 0 16.6 4.36 6.61 4.3 9.88 12 3.27 7.62 3.27 17.69V104H360.4V92.53h37.95v-1.22q-.12-4.04-1.53-7.56-1.42-3.53-4.5-5.7-3-2.19-8.07-2.19t-8.53 2.89q-3.46 2.82-5.26 8.01-1.8 5.13-1.8 12.12v2.63q0 5.9 2.19 10.58 2.18 4.68 6.35 7.43 4.16 2.7 9.93 2.7 5.58 0 9.88-2.18 4.36-2.18 7.5-6.29l8.33 8.34q-3.27 4.93-9.87 8.97-6.54 3.98-16.8 3.98zm-107.64-1.28.12-13.27h19.75q8.6 0 14.36-3.72 5.77-3.72 8.72-10.65 2.95-6.98 2.95-16.67v-4.87q0-9.94-2.95-16.8-2.88-6.86-8.59-10.45-5.7-3.59-13.91-3.59h-20.84V40.41h20.84q12.5 0 21.93 5.51 9.48 5.52 14.8 15.45 5.33 9.94 5.33 23.34v4.74q0 13.47-5.32 23.4-5.33 9.94-14.94 15.46-9.56 5.45-22.38 5.45zm9.23 0h-16.54V40.4h16.54z" /> </svg><strong>Developer</strong>
</svg> <svg class="nav-global-icon nav-global-icon-dropdown-toggle" height="100" width="100" viewBox="0 0 1000 1000">
<svg class="nav-global-icon nav-global-icon-dropdown-toggle" height="100px" width="100px" viewBox="0 0 1000 1000"> <path
<path d="m 206.53824,376.41174 a 42,42 0 0 1 71,-29 l 221,220 220,-220 a 42,42 0 1 1 59,59 l -250,250 a 42,42 0 0 1 -59,0 l -250,-250 a 42,42 0 0 1 -12,-30 z"/> d="m 206.53824,376.41174 a 42,42 0 0 1 71,-29 l 221,220 220,-220 a 42,42 0 1 1 59,59 l -250,250 a 42,42 0 0 1 -59,0 l -250,-250 a 42,42 0 0 1 -12,-30 z" />
</svg> </svg>
</button> </button>
<ul class="nav-global-nav-links nav-global-dropdown js-dropdown-menu" id="nav-global-nav-links"> <ul class="nav-global-nav-links nav-global-dropdown js-dropdown-menu js-nav-global-dropdown" id="nav-global-nav-links">
<li> <li>
<a href="https://projects.blender.org" class="is-active">Projects</a> <a href="https://projects.blender.org" class="is-active">Projects</a>
</li> </li>
@ -529,9 +541,8 @@
<li> <li>
<div class="nav-global-apps-dropdown-container"> <div class="nav-global-apps-dropdown-container">
<button class="js-dropdown-toggle" data-toggle-menu-id="nav-global-apps-menu"> <button class="js-dropdown-toggle" data-toggle-menu-id="nav-global-apps-menu">
<svg class="nav-global-icon" height="100px" width="100px" viewBox="0 0 1000 1000"> <svg class="nav-global-icon" height="100" width="100" viewBox="0 0 1000 1000">
<path <path d="m 150.5,899 a 50,50 0 0 1 -49,-50 V 749 a 50,50 0 0 1 49,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m 299,0 a 50,50 0 0 1 -50,-50 V 749 a 50,50 0 0 1 50,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m 299,0 a 50,50 0 0 1 -50,-50 V 749 a 50,50 0 0 1 50,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m -598,-299 a 50,50 0 0 1 -49,-50 V 450 a 50,50 0 0 1 49,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m 299,0 a 50,50 0 0 1 -50,-50 V 450 a 50,50 0 0 1 50,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m 299,0 a 50,50 0 0 1 -50,-50 V 450 a 50,50 0 0 1 50,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m -598,-299 a 50,50 0 0 1 -49,-50 V 151 a 50,50 0 0 1 49,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m 299,0 a 50,50 0 0 1 -50,-50 V 151 a 50,50 0 0 1 50,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m 299,0 a 50,50 0 0 1 -50,-50 V 151 a 50,50 0 0 1 50,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z"></path>
d="m 150.5,899 a 50,50 0 0 1 -49,-50 V 749 a 50,50 0 0 1 49,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m 299,0 a 50,50 0 0 1 -50,-50 V 749 a 50,50 0 0 1 50,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m 299,0 a 50,50 0 0 1 -50,-50 V 749 a 50,50 0 0 1 50,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m -598,-299 a 50,50 0 0 1 -49,-50 V 450 a 50,50 0 0 1 49,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m 299,0 a 50,50 0 0 1 -50,-50 V 450 a 50,50 0 0 1 50,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m 299,0 a 50,50 0 0 1 -50,-50 V 450 a 50,50 0 0 1 50,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m -598,-299 a 50,50 0 0 1 -49,-50 V 151 a 50,50 0 0 1 49,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m 299,0 a 50,50 0 0 1 -50,-50 V 151 a 50,50 0 0 1 50,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z m 299,0 a 50,50 0 0 1 -50,-50 V 151 a 50,50 0 0 1 50,-50 h 100 a 50,50 0 0 1 50,50 v 100 a 50,50 0 0 1 -50,50 z"/>
</svg> </svg>
</button> </button>
@ -666,7 +677,6 @@
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
</li> </li>
</ul> </ul>
@ -674,7 +684,28 @@
</div> </div>
</div> </div>
<style>
/* Custom styling for projects.blender.org */
/* Make sure to start every line with ".nav-global"
* so changes affect the developer navbar only. */
/* TODO: remove if custom font 'Inter' is added to Gitea
* Don't try to load custom font 'Inter' */
.nav-global * {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
/* Limit navbar width on large screens. */
@media(min-width: 1200px) {
.nav-global .nav-global-container {
max-width: 1170px;
}
}
</style>
<script> <script>
// TODO: revise component pre-compiled JavaScript in web-assets
const dropdownToggles = document.getElementsByClassName("js-dropdown-toggle"); const dropdownToggles = document.getElementsByClassName("js-dropdown-toggle");
const btnActiveClass = 'nav-global-btn-active'; const btnActiveClass = 'nav-global-btn-active';
const isVisibleClass = 'is-visible'; const isVisibleClass = 'is-visible';