mirror of
https://github.com/jenkinsci/jenkins.git
synced 2026-10-26 19:15:09 +00:00
Standardise Jenkins branding during Sign in, Registration, and About Jenkins (#27046)
This commit is contained in:
1 parent
e4a54e6d0f
commit
f75bc4b1bf
9 files changed
+158
-265
No files matched your search
@@ -49,10 +49,7 @@ THE SOFTWARE.
|
||||
permissions="${app.MANAGE_AND_SYSTEM_READ}">
|
||||
<script src="${resURL}/jsbundles/section-to-tabs.js" type="text/javascript" defer="true" />
|
||||
|
||||
<div class="app-about-branding">
|
||||
<div class="app-about-branding__aurora"></div>
|
||||
<img src="${imagesURL}/svgs/logo.svg" alt="${%logo}" />
|
||||
</div>
|
||||
<l:branding clazz="app-about-branding" />
|
||||
|
||||
<p class="jenkins-page-description jenkins-!-text-color">${%blurb}</p>
|
||||
|
||||
|
||||
@@ -70,6 +70,8 @@ THE SOFTWARE.
|
||||
<st:include it="${simpleDecorator}" page="simple-branding.jelly" />
|
||||
<main id="main-panel" class="app-sign-in-register__content">
|
||||
<div class="app-sign-in-register__content-inner">
|
||||
<img src="${imagesURL}/svgs/logo.svg" aria-hidden="true" class="app-sign-in-register__content-logo" />
|
||||
|
||||
<h1>${%Sign in to Jenkins}</h1>
|
||||
|
||||
<st:include it="${simpleDecorator}" page="simple-header.jelly" />
|
||||
|
||||
@@ -22,9 +22,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
-->
|
||||
<?jelly escape-by-default='true'?>
|
||||
<j:jelly xmlns:j="jelly:core">
|
||||
<section class="app-sign-in-register__branding">
|
||||
<div class="app-sign-in-register__branding__starburst"></div>
|
||||
<img src="${imagesURL}/svgs/logo.svg" alt="${%logo}"/>
|
||||
</section>
|
||||
<j:jelly xmlns:j="jelly:core" xmlns:l="/lib/layout">
|
||||
<l:branding clazz="app-sign-in-register__branding" />
|
||||
</j:jelly>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?jelly escape-by-default='true'?>
|
||||
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler">
|
||||
<st:documentation>
|
||||
<st:attribute name="clazz">
|
||||
Additional CSS class(es) to add.
|
||||
</st:attribute>
|
||||
</st:documentation>
|
||||
|
||||
<div class="app-branding ${attrs.clazz}">
|
||||
<div class="app-branding__conic">
|
||||
<img src="${imagesURL}/svgs/logo.svg" alt="${%Jenkins illustration}" />
|
||||
</div>
|
||||
</div>
|
||||
</j:jelly>
|
||||
@@ -335,7 +335,7 @@ $semantics: (
|
||||
--item-box-shadow--focus: oklch(from var(--text-color-secondary) l c h / 0.1);
|
||||
|
||||
// Page
|
||||
--page-inset: 0px;
|
||||
--page-inset: 0.3125rem;
|
||||
|
||||
// Deprecated
|
||||
--primary: var(--accent-color); // Use var(--accent-color) instead
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
.app-branding {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
transition: var(--standard-transition);
|
||||
z-index: 0;
|
||||
border-radius: var(--form-input-border-radius);
|
||||
|
||||
&::before,
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
border-radius: inherit;
|
||||
}
|
||||
|
||||
&::before {
|
||||
background-color: color-mix(
|
||||
in sRGB,
|
||||
var(--text-color-secondary) 20%,
|
||||
transparent
|
||||
);
|
||||
background-image:
|
||||
radial-gradient(
|
||||
ellipse 85% 65% at 20% 25%,
|
||||
var(--light-orange) 0%,
|
||||
transparent 78%
|
||||
),
|
||||
radial-gradient(
|
||||
ellipse 80% 60% at 80% 20%,
|
||||
var(--light-purple) 0%,
|
||||
transparent 80%
|
||||
),
|
||||
radial-gradient(
|
||||
ellipse 78% 58% at 28% 75%,
|
||||
var(--light-blue) 0%,
|
||||
transparent 78%
|
||||
),
|
||||
radial-gradient(
|
||||
ellipse 80% 60% at 78% 72%,
|
||||
var(--light-pink) 0%,
|
||||
transparent 80%
|
||||
),
|
||||
radial-gradient(
|
||||
ellipse 90% 70% at 50% 50%,
|
||||
var(--light-cyan) 0%,
|
||||
transparent 84%
|
||||
);
|
||||
inset: -100px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
&::after {
|
||||
border: var(--jenkins-border--subtle);
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.app-branding__conic {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
z-index: 1;
|
||||
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
flex: 1;
|
||||
backdrop-filter: invert(1%) blur(60px);
|
||||
mask-image: repeating-conic-gradient(
|
||||
from 0deg,
|
||||
var(--background) 0deg,
|
||||
transparent 20deg
|
||||
);
|
||||
}
|
||||
|
||||
img {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
min-height: 80px;
|
||||
height: 60%;
|
||||
max-height: 250px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
@use "app-bar";
|
||||
@use "avatar";
|
||||
@use "badges";
|
||||
@use "branding";
|
||||
@use "breadcrumbs";
|
||||
@use "buttons";
|
||||
@use "cards";
|
||||
|
||||
@@ -1,124 +1,3 @@
|
||||
.app-about-branding {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: calc(var(--section-padding) * 2);
|
||||
pointer-events: none;
|
||||
margin-bottom: var(--section-padding);
|
||||
overflow: hidden;
|
||||
border-radius: 1rem;
|
||||
|
||||
&::before,
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
&::before {
|
||||
width: 120%;
|
||||
aspect-ratio: 1;
|
||||
background: repeating-conic-gradient(
|
||||
var(--background) 0deg,
|
||||
rgb(100 100 100 / 0.25) 20deg
|
||||
);
|
||||
animation: app-about-starburst 100s linear infinite;
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
&::after {
|
||||
inset: 0;
|
||||
border: var(--jenkins-border--subtle);
|
||||
border-radius: inherit;
|
||||
}
|
||||
|
||||
img {
|
||||
height: 7.5rem;
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.app-about-branding__aurora {
|
||||
position: absolute;
|
||||
width: 120%;
|
||||
aspect-ratio: 1;
|
||||
|
||||
&::before,
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
z-index: -1;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
&::before {
|
||||
background-color: var(--color);
|
||||
background-image:
|
||||
radial-gradient(at 40% 20%, hsl(28 100% 74% / 1) 0, transparent 50%),
|
||||
radial-gradient(at 80% 0%, hsl(189 100% 56% / 1) 0, transparent 50%),
|
||||
radial-gradient(at 0% 50%, hsl(355 85% 93% / 1) 0, transparent 50%),
|
||||
radial-gradient(at 80% 50%, hsl(359 70% 46%) 0, transparent 50%),
|
||||
radial-gradient(at 0% 100%, hsl(22 100% 77% / 1) 0, transparent 50%),
|
||||
radial-gradient(at 80% 100%, hsl(242 100% 70% / 1) 0, transparent 50%),
|
||||
radial-gradient(at 0% 0%, hsl(343 100% 76% / 1) 0, transparent 50%);
|
||||
opacity: 0.4;
|
||||
animation: app-about-aurora-one 7s linear infinite;
|
||||
}
|
||||
|
||||
&::after {
|
||||
background-image:
|
||||
radial-gradient(at 40% 20%, hsl(212 100% 74% / 1) 0, transparent 50%),
|
||||
radial-gradient(at 80% 0%, hsl(13 100% 56% / 1) 0, transparent 50%),
|
||||
radial-gradient(at 0% 50%, hsl(179 85% 93% / 1) 0, transparent 50%),
|
||||
radial-gradient(at 80% 50%, hsl(164 100% 76% / 1) 0, transparent 50%),
|
||||
radial-gradient(at 0% 100%, hsl(206 100% 77% / 1) 0, transparent 50%),
|
||||
radial-gradient(at 80% 100%, hsl(66 100% 70% / 1) 0, transparent 50%),
|
||||
radial-gradient(at 0% 0%, hsl(167 100% 76% / 1) 0, transparent 50%);
|
||||
opacity: 0.2;
|
||||
animation: app-about-aurora-two 14s linear infinite;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes app-about-aurora-one {
|
||||
0% {
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 0.2;
|
||||
transform: rotate(-180deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0.4;
|
||||
transform: rotate(-360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes app-about-aurora-two {
|
||||
0% {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 0.55;
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0.2;
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes app-about-starburst {
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.app-about-heading {
|
||||
font-weight: 600;
|
||||
font-family: Georgia, serif;
|
||||
@@ -132,3 +11,8 @@
|
||||
color: var(--text-color-secondary);
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.app-about-branding {
|
||||
height: 230px;
|
||||
margin-bottom: var(--section-padding);
|
||||
}
|
||||
@@ -4,100 +4,46 @@
|
||||
@use "../form/checkbox";
|
||||
@use "../form/input";
|
||||
@use "../components/buttons";
|
||||
|
||||
@property --opacity {
|
||||
syntax: "<angle>";
|
||||
initial-value: 0deg;
|
||||
inherits: false;
|
||||
}
|
||||
@use "../components/branding";
|
||||
|
||||
.app-sign-in-register {
|
||||
position: fixed;
|
||||
inset: 0;
|
||||
display: grid;
|
||||
grid-template-columns: 40vw 1fr;
|
||||
width: 100vw;
|
||||
height: 100vh;
|
||||
min-height: 100dvh;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
|
||||
@media (width < 992px) {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
}
|
||||
|
||||
.app-sign-in-register__branding {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 40vw;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
overflow: hidden;
|
||||
margin: var(--page-inset) 0 var(--page-inset) var(--page-inset);
|
||||
border-radius: var(--form-input-border-radius);
|
||||
|
||||
@media (width < 992px) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
&::before,
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
min-height: 130%;
|
||||
min-width: 130%;
|
||||
aspect-ratio: 1;
|
||||
object-fit: cover;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
&::before {
|
||||
background-image:
|
||||
radial-gradient(at 40% 20%, var(--orange) 0, transparent 50%),
|
||||
radial-gradient(at 80% 0%, var(--cyan) 0, transparent 50%),
|
||||
radial-gradient(at 0% 50%, var(--light-pink) 0, transparent 50%),
|
||||
radial-gradient(at 80% 50%, var(--light-red) 0, transparent 50%),
|
||||
radial-gradient(at 0% 100%, var(--light-yellow) 0, transparent 50%),
|
||||
radial-gradient(at 80% 100%, var(--dark-purple) 0, transparent 50%),
|
||||
radial-gradient(at 0% 0%, var(--pink) 0, transparent 50%);
|
||||
}
|
||||
|
||||
&::after {
|
||||
background-image:
|
||||
radial-gradient(at 40% 20%, var(--light-cyan) 0, transparent 50%),
|
||||
radial-gradient(at 80% 0%, var(--dark-orange) 0, transparent 50%),
|
||||
radial-gradient(at 0% 50%, var(--light-blue) 0, transparent 50%),
|
||||
radial-gradient(at 80% 50%, var(--light-green) 0, transparent 50%),
|
||||
radial-gradient(at 0% 100%, var(--light-red) 0, transparent 50%),
|
||||
radial-gradient(at 80% 100%, var(--light-yellow) 0, transparent 50%),
|
||||
radial-gradient(at 0% 0%, var(--cyan) 0, transparent 50%);
|
||||
}
|
||||
|
||||
&__starburst {
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
z-index: 1;
|
||||
backdrop-filter: invert(2%) blur(100px);
|
||||
mask-image: repeating-conic-gradient(
|
||||
from var(--opacity),
|
||||
var(--background) 0deg,
|
||||
transparent 20deg
|
||||
);
|
||||
}
|
||||
|
||||
img {
|
||||
min-height: 15rem;
|
||||
height: 25vh;
|
||||
max-height: 30rem;
|
||||
z-index: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.app-sign-in-register__content {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
align-items: safe center;
|
||||
justify-content: center;
|
||||
min-height: 100vh;
|
||||
min-height: 100dvh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.app-sign-in-register__content-logo {
|
||||
height: 3.5rem;
|
||||
align-self: start;
|
||||
|
||||
@media (width >= 992px) {
|
||||
margin-left: 40vw;
|
||||
}
|
||||
|
||||
@media (height <= 600px) {
|
||||
align-items: stretch;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,49 +51,42 @@
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
flex-direction: column;
|
||||
gap: 1.6rem;
|
||||
gap: 1.5rem;
|
||||
margin: calc(var(--section-padding) * 3) var(--section-padding);
|
||||
width: 100%;
|
||||
|
||||
@media (width >= 430px) {
|
||||
width: 430px;
|
||||
}
|
||||
max-width: 430px;
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 1.8rem;
|
||||
font-size: 1.75rem;
|
||||
font-family: Georgia, serif;
|
||||
text-align: left;
|
||||
margin-bottom: 0;
|
||||
|
||||
@media (width <= 600px) {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
}
|
||||
|
||||
input {
|
||||
padding: 0.6rem 0.75rem;
|
||||
padding: 0.625rem 0.75rem;
|
||||
border-radius: var(--form-input-border-radius);
|
||||
font-size: 0.95rem;
|
||||
font-size: 0.9375rem;
|
||||
|
||||
@media (width <= 600px) {
|
||||
@media (width < 992px) {
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.app-sign-in-register__form-label {
|
||||
display: block;
|
||||
font-size: 0.95rem;
|
||||
font-size: 0.9375rem;
|
||||
margin-bottom: 0.5rem;
|
||||
font-weight: var(--font-bold-weight);
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 0.9rem 1rem;
|
||||
font-size: 0.95rem;
|
||||
padding: 0.875rem 1rem;
|
||||
font-size: 0.9375rem;
|
||||
}
|
||||
|
||||
form {
|
||||
@@ -163,8 +102,8 @@
|
||||
&::before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: calc(50% + 1px) 0;
|
||||
height: 2px;
|
||||
inset: calc(50% + (var(--jenkins-border-width) / 2)) 0;
|
||||
height: var(--jenkins-border-width);
|
||||
border-radius: var(--form-input-border-radius);
|
||||
background-color: var(--input-border);
|
||||
}
|
||||
@@ -173,9 +112,9 @@
|
||||
@include mixins.link;
|
||||
|
||||
z-index: 1;
|
||||
padding: 0 0.2rem;
|
||||
padding: 0 0.25rem;
|
||||
font-weight: var(--font-bold-weight);
|
||||
font-size: 0.95rem;
|
||||
font-size: 0.9375rem;
|
||||
margin: 0;
|
||||
color: var(--link-color);
|
||||
text-underline-offset: 2px;
|
||||
@@ -194,8 +133,8 @@
|
||||
&::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
inset: 0 -0.1rem;
|
||||
border-radius: 0.4rem;
|
||||
inset: 0 -0.125rem;
|
||||
border-radius: 0.5rem;
|
||||
box-shadow: 0 0 0 0.625rem transparent;
|
||||
transition: var(--standard-transition);
|
||||
pointer-events: none;
|
||||
@@ -212,7 +151,7 @@
|
||||
}
|
||||
|
||||
.jenkins-checkbox {
|
||||
font-size: 0.95rem;
|
||||
font-size: 0.9375rem;
|
||||
}
|
||||
|
||||
& > div {
|
||||
@@ -222,40 +161,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes aurora-one {
|
||||
0% {
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 0.15;
|
||||
transform: rotate(-180deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0.3;
|
||||
transform: rotate(-360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes aurora-two {
|
||||
0% {
|
||||
opacity: 0.15;
|
||||
}
|
||||
|
||||
50% {
|
||||
opacity: 0.5;
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 0.15;
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.app-sign-in-register__error {
|
||||
font-size: 0.95rem;
|
||||
font-size: 0.9375rem;
|
||||
color: var(--error-color);
|
||||
font-weight: var(--font-bold-weight);
|
||||
|
||||
@@ -265,13 +172,13 @@
|
||||
|
||||
&:not(:empty) {
|
||||
& + input {
|
||||
margin-top: 0.7rem;
|
||||
margin-top: 0.75rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.app-sign-in-register__password-notice {
|
||||
font-size: 0.95rem;
|
||||
font-size: 0.9375rem;
|
||||
color: var(--text-color-secondary);
|
||||
}
|
||||
|
||||
@@ -286,7 +193,7 @@
|
||||
|
||||
#passwordStrengthWrapper {
|
||||
margin-top: 0.75rem;
|
||||
font-size: 0.95rem;
|
||||
font-size: 0.9375rem;
|
||||
|
||||
#passwordStrength {
|
||||
transition: var(--standard-transition);
|
||||
|
||||
Reference in new issue
Block a user