s marked with to-be-removed is used in conjunction with repeatable.jelly and hetero-list.jelly
+ and represents a master copy that gets pulled out from HTML, then inserted later upon demand multiple times
+ when the user does "Add".
+*/
+DIV.to-be-removed { display: none; }
+
+/* ========================= Other form related CSS ========================= */
+
+.row-set-end { display: none; }
+
+/* ========================= Yahoo UI style adjustments ========================= */
+.ygtvlabel, .ygtvlabel:link, .ygtvlabel:visited, .ygtvlabel:hover {
+ color: inherit;
+}
+
+DIV.yahooTree td {
+ vertical-align: middle;
+}
+
+.yui-tt {
+ border: 1px solid black !important;
+ background-color: #FFFFFF !important;
+ padding: 2px !important;
+ font-family: inherit !important;
+ color: inherit !important;
+}
+
+.yui-skin-sam .yui-tt .bd {
+ border: none !important;
+ background-color: #FFF !important;
+}
+
+.yuimenu LI .yui-menu-tooltip {
+ color: #A6A6A6;
+}
+
+.yuimenu LI.yui-menuitem-tooltip {
+ border-bottom: 1px solid #808080;
+ padding-bottom: 3px;
+ margin-bottom: 1em;
+}
+
+#jenkins .yuimenuitem {
+ font-size: 12px;
+ padding: 3px;
+}
+
+#jenkins .yuimenuitem,
+#jenkins .yuimenuitemlabel {
+ cursor: pointer;
+}
+
+#jenkins .yuimenu .bd {
+ border: 1px solid #ccc;
+ box-shadow: 0px 3px 10px #bbb;
+}
+
+#jenkins .yui-menu-shadow {
+ display: none;
+}
+
+/* ========================= resizable text area ========================= */
+
+TEXTAREA {
+ margin-bottom: 0;
+}
+DIV.textarea-handle {
+ height: 5px;
+ font-size: 0;
+ background: #EEE url(../../images/textarea-handle.gif) no-repeat 50% 1px;
+ border: 1px solid #BABDB6;
+ border-top: none;
+ cursor: s-resize;
+}
+TEXTAREA.rich-editor {
+ visibility: hidden;
+}
+
+/* ========================= hover notification ========================= */
+
+#hoverNotification {
+ visibility:hidden;
+ background-color: white;
+ border: 1px solid black;
+ padding: 0.5em;
+}
+
+/* ========================= D&D support in heterogenous/repeatable lists = */
+
+.hetero-list-container .dd-handle, .repeated-container .dd-handle {
+ cursor: move;
+ background-image: url(../../images/grip.png);
+ background-repeat: repeat-y;
+ padding-left: 20px;
+}
+
+.hetero-list-container.with-drag-drop .repeated-chunk {
+ padding: 0.5em;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+}
+
+
+/* ========================= plugin update center ========================= */
+
+#plugins .excerpt {
+ white-space: normal;
+ margin-top: 0.5em;
+ padding-left: 2em;
+ color: #888a85;
+}
+
+/*
+ * TODO(andipabst): Not used after https://github.com/jenkinsci/jenkins/pull/4299,
+ * remove once there are no more dependencies
+ */
+#plugins .compatWarning {
+ white-space: normal;
+ margin-top: 0.5em;
+ padding-left: 2em;
+ color: #FF0000;
+}
+
+#plugins .securityWarning {
+ white-space: normal;
+ margin-top: 0.5em;
+ padding-left: 2em;
+ color: #FF0000;
+}
+
+/* ========================= progress bar ========================= */
+
+table.progress-bar {
+ border-collapse: collapse;
+ border: 1px solid #3465a4;
+ height: 6px;
+ width: 100px;
+ clear: none;
+}
+
+table.progress-bar tr.unknown {
+ background-image:url(../../images/progress-unknown.gif);
+}
+
+td.progress-bar-done {
+ background-color: #3465a4;
+}
+
+td.progress-bar-left {
+ background-color: #ffffff;
+}
+
+table.progress-bar.red {
+ border: 1px solid #cc0000;
+}
+
+table.progress-bar.red tr.unknown {
+ background-image:url(../../images/progress-unknown-red.gif);
+}
+table.progress-bar.red td.progress-bar-done {
+ background-color: #cc0000;
+}
+
+/* ========================= notification bar ========================= */
+#notification-bar {
+ width:100%;
+ position:fixed;
+ text-align:center;
+ left:0px;
+ font-size: 2em;
+ z-index:1000;
+ border-bottom: 1px solid black;
+}
+
+/* ========================= YUI dialog ========================= */
+
+.dialog .hd {
+ font-size: 12px !important;
+}
+/* discovered this margin fix by a trial and error. This can very well be a totally wrong fix, or perhaps updating
+ to the latest YUI will fix this? */
+.dialog .hd {
+ margin: 0 !important;
+}
+
+.dialog .bd {
+ margin: 0 !important;
+}
+
+.dialog .ft {
+ margin: 0 !important;
+}
+
+/* ========================= tags/labels ================== */
+/* tag0 is the least important tag in a tag cloud */
+.tag0 { font-size: 1.00em; }
+.tag1 { font-size: 1.10em; }
+.tag2 { font-size: 1.20em; }
+.tag3 { font-size: 1.30em; }
+.tag4 { font-size: 1.40em; }
+.tag5 { font-size: 1.50em; }
+.tag6 { font-size: 1.60em; }
+.tag7 { font-size: 1.70em; }
+.tag8 { font-size: 1.80em; }
+.tag9 { font-size: 1.90em; }
+
+/* ========================= textarea.jelly ================== */
+
+.textarea-preview-container {
+ text-align:left;
+}
+.textarea-preview {
+ background-color: #F0F0F0;
+ padding: 0.5em;
+}
+
+/* ========================= logRecords.jelly ================== */
+
+.logrecord-metadata {
+ font-size: 70%;
+}
+
+.logrecord-metadata-new {
+ color: #8A8;
+}
+
+.logrecord-metadata-old {
+ color: #AAA;
+}
+
+/* ========================= matrix configuration table ================== */
+table#configuration-matrix {
+ border: 1px #BBBBBB solid;
+ border-collapse: collapse;
+}
+tr.matrix-row {
+ background: #f0f0f0;
+ font-weight: bold;
+}
+td.matrix-header {
+ border: 1px #BBBBBB solid;
+ padding: 3px;
+}
+td#matrix-title {
+ padding: 3px;
+}
+td.matrix-leftcolumn {
+ border: 1px #BBBBBB solid;
+ font-weight: bold;
+ background: #f0f0f0;
+ padding: 3px;
+}
+td.matrix-cell {
+ border: 1px #BBBBBB solid;
+ text-align: center;
+}
+
+/* ========================= legend.jelly ================== */
+table#legend-table td {
+ vertical-align: middle;
+}
+
+/* ========================= select.jelly ================== */
+select.select-ajax-pending {
+ padding-left: 1.5em;
+ padding-top: 0.5em;
+ padding-bottom: 0.5em;
+ color: transparent;
+ background-image: url(../../images/spinner.gif); /* this is why here and not in an adjunct */
+ background-repeat: no-repeat;
+ background-position: 2px;
+}
+
+/* ========================= Button styles ================= */
+.btn-box {
+ display:block;
+ margin-top:2em
+}
+#disable-project {
+ margin-top: 6px;
+}
+
+#bottom-sticker .yui-button {
+ margin-right: 20px;
+}
+
+/* This level of nesting is technically unnecessary, but to override the
+ * default Yahoo styles. */
+#jenkins .yui-button {
+ border-width: 0;
+ border-style: none;
+ border-color: transparent;
+ background: none;
+ text-decoration: none;
+}
+
+#jenkins .yui-button .first-child {
+ border-width: 0;
+ border-style: none;
+ border-color: transparent;
+}
+#jenkins .yui-button .btn,
+#jenkins .yui-button button {
+ font-size: 12px;
+ padding: 3px 20px;
+ *border: 0;
+ border-radius: 1px;
+
+ border: 1px solid #cccccc;
+ background-color: #e0e0e0;
+ font-family: Helvetica, Arial, sans-serif;
+
+ color: #505050;
+ font-weight: bold;
+}
+
+#jenkins .yui-button .hetero-list-add {
+ padding-right: 35px;
+}
+
+#jenkins .yui-button .btn:hover,
+#jenkins .yui-button button:hover,
+#jenkins .yui-button .hover
+{
+ background-color: #d0d0d0;
+ border: 1px solid #c0c0c0;
+}
+
+#jenkins .yui-button .btn:active,
+#jenkins .yui-button button:active,
+#jenkins .yui-button .active {
+ background-color: #bbb;
+ box-shadow: inset 0px 1px 6px 2px #929292;
+ border: 1px solid #bbb;
+}
+
+#jenkins .yui-button .btn.disabled,
+#jenkins .yui-button button[disabled],
+#jenkins .yui-button button[disabled]:hover,
+#jenkins .yui-button button[disabled]:active,
+#jenkins .yui-button .disabled {
+ background-color: #e5e5e5;
+ color: #999;
+ border: 1px solid #d2d2d2;
+}
+
+/* Color overrides */
+#jenkins .yui-button.primary .btn,
+#jenkins .yui-button.primary button {
+ background-color: #4b758b;
+ color: #eee;
+ border: 1px solid #5788a1;
+}
+#jenkins .yui-button.primary .btn:hover,
+#jenkins .yui-button.primary button:hover,
+#jenkins .yui-button.primary .hover
+{
+ background-color: #3f6275;
+ border: 1px solid #5788a1;
+}
+#jenkins .yui-button.primary .btn:active,
+#jenkins .yui-button.primary button:active,
+#jenkins .yui-button.primary .active
+{
+ background-color: #33505f;
+ border: 1px solid #3f6275;
+ box-shadow: inset 0px 1px 6px 2px #1b2b33;
+}
+
+#jenkins .yui-button.primary button:disabled,
+#jenkins .yui-button.primary .disabled
+{
+ background-color: #adc6d3;
+ color: #fff;
+ border: 1px solid #a2becd;
+}
+
+#jenkins .yui-button.danger button {
+ background-color: #d24939;
+ color: #eee;
+ border: 1px solid #be3a2b;
+}
+
+#jenkins .yui-button.danger button:hover,
+#jenkins .yui-button.danger .hover
+{
+ background-color: #a23225;
+ border: 1px solid #942e22;
+}
+
+#jenkins .yui-button.danger button:active,
+#jenkins .yui-button.danger .active
+{
+ background-color: #942e22;
+ border: 1px solid #6b2118;
+ box-shadow: inset 0px 1px 6px 2px #79251b;
+}
+
+#jenkins .yui-button.danger button:disabled,
+#jenkins .yui-button.danger .disabled
+{
+ background-color: #e5958c;
+ color: #f8f8f8;
+ border: 1px solid #e39280;
+}
+
+.i18n {
+ display: none;
+}
+
+.alert {
+ padding: 15px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+ border-radius: 4px;
+}
+
+.alert-info {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+}
+
+.alert-info p {
+ color: #31708f;
+}
+
+.alert-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+}
+
+.alert-warning p {
+ color: #8a6d3b;
+}
+
+.alert-danger {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1;
+}
+
+.alert-danger p {
+ color: #a94442;
+}
+
+body.no-decoration #main-panel {
+ margin: 0 auto !important;
+}
+body.no-decoration #page-head,
+body.no-decoration #side-panel,
+body.no-decoration footer {
+ display: none;
+}
+body.no-sticker #bottom-sticker {
+ display: none;
+}
+
+/* see the Icon class for the definition of these CSS classes */
+.icon-sm {
+ width: 16px;
+ height: 16px;
+}
+
+.icon-md {
+ width: 24px;
+ height: 24px;
+}
+
+.icon-lg {
+ width: 32px;
+ height: 32px;
+}
+
+.icon-xlg {
+ width: 48px;
+ height: 48px;
+}
+
+/* ----------- Manage Jenkins ----------- */
+
+.manage-messages {
+ margin-bottom: 20px;
+}
+
+.manage-messages a, .manage-messages a:visited {
+ color: inherit !important;
+ text-decoration: none;
+}
+
+.manage-messages a:hover, .manage-messages a:focus {
+ text-decoration: underline;
+}
+
+.manage-messages dl:first-child {
+ margin-top: 0;
+}
+
+.manage-messages dl dt:first-child {
+ margin-top: 0;
+}
+
+.manage-messages dl dt {
+ margin-top: 10px;
+ font-weight: normal;
+}
+
+.manage-messages dl dd {
+ margin-left: 15px;
+}
+
+.manage-messages dl:last-child {
+ margin-bottom: 0;
+}
+
+.manage-messages dl dt::after {
+ content: ": ";
+}
+
+.manage-messages .alert a {
+ text-decoration: underline;
+}
+
+.manage-messages .alert a:hover {
+ text-decoration: none;
+}
+
+.manage-messages .alert form {
+ position: relative;
+ float: right;
+ margin: -6px 0 0 0 !important;
+}
+
+.manage-messages .alert form span {
+ margin: 0 0 0 4px !important;
+}
+
+.manage-option {
+ border: 1px solid transparent;
+ margin-bottom: 4px;
+}
+
+.manage-option:hover {
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ background-color: #fafafa;
+}
+
+.manage-option dl {
+ padding: 0;
+ margin: 0 0 0 62px;
+ min-height: 48px;
+}
+
+.manage-option dl dt {
+ font-size: 16px;
+ line-height: 24px;
+}
+
+.manage-option dl dd {
+ margin-left: 0;
+ line-height: 20px;
+ color: #333;
+ font-size: 14px;
+}
+
+.manage-option a {
+ display: block;
+ padding: 8px;
+ margin: 0;
+ text-decoration: none !important;
+ color: #000;
+ outline: 0;
+}
+
+.manage-option .icon {
+ display: block;
+ float: left;
+ position: relative;
+ width: 48px;
+ height: 48px;
+}
+
+/* -------------------------------------- */
+
+/* --------------- RSS bar -------------- */
+
+#rss-bar {
+ margin: 1em;
+ text-align: right;
+}
+
+#rss-bar .icon-rss {
+ border: 0;
+}
+
+#rss-bar .rss-bar-item {
+ padding-left: 1em;
+}
+
+/* -------------------------------------- */
+
+
+/* -------------- SVG icons ------------- */
+
+.svg-icon {
+ display: inline-block;
+ vertical-align: middle;
+
+ /* default dimensions */
+ height: 24px;
+ width: 24px;
+
+ /* default fill fallback */
+ fill: #111;
+ fill: currentColor;
+}
+
+/* -------------------------------------- */
\ No newline at end of file
diff --git a/war/src/main/less/modules/page-header.less b/war/src/main/less/modules/page-header.less
new file mode 100644
index 000000000000..b19de7bb61a5
--- /dev/null
+++ b/war/src/main/less/modules/page-header.less
@@ -0,0 +1,228 @@
+@import "../abstracts/colors.less";
+
+.page-header {
+ display: block;
+ display: flex;
+ align-items: center;
+ height: 3.5rem;
+
+ font-family: Roboto, Helvetica, Arial, sans-serif;
+ font-size: 1rem;
+ line-height: 1.5;
+
+ background-color: @header-bg-classic;
+}
+
+.page-header > * {
+ margin-right: 0.75rem;
+}
+
+.page-header__brand {
+ display: inline-block;
+ height: 100%;
+ position: relative;
+ flex: 1; // push controls to the end of the block
+}
+
+// Need to use the element selector to increase weight otherwise it will be overriden by the
+// a:visited selector if it is declared later
+// Only styled by the overrides with the new UI enabled
+a.page-header__brand-link {
+ display: none;
+}
+
+.page-header__brand-name {
+ color: inherit;
+}
+
+.page-header__brand-image {
+ height: 32px;
+ width: 24px;
+ height: 2rem;
+ width: 1.5rem;
+ margin-right: 0.75rem;
+}
+
+.page-header__am-wrapper {
+ height: 100%;
+ padding: 0.5rem 0;
+}
+
+.page-header__hyperlinks {
+ display: flex;
+ align-items: center;
+}
+
+.page-header__hyperlinks A {
+ display: inline-block;
+ display: inline-flex;
+ align-items: center;
+
+ // need to override an existing rule
+ padding-right: 0.5rem;
+ padding: 0.5rem;
+ margin-right: 0.25rem;
+ font-weight: bold;
+
+ outline-color: @header-link-outline;
+
+ &:link,
+ &:visited {
+ color: @header-link-color;
+ border-radius: @header-item-border-radius;
+ text-decoration: none;
+ }
+
+ &:hover,
+ &:focus,
+ &.mouseIsOverMenuSelector {
+ color: @header-link-color-active;
+ background-color: @header-link-bg-classic-hover;
+ text-decoration: underline;
+ text-decoration-color: @header-link-color-active;
+ }
+
+ &:active {
+ background-color: @header-link-bg-classic-active;
+ }
+}
+
+// This could probably be colocated with the rest of the AM CSS,
+// But we put it here to take advantage of the variables
+#visible-am-container.visible #visible-am-button {
+ background-color: @header-link-bg-classic-active;
+ text-decoration: none;
+}
+
+.page-header__hyperlinks a span {
+ font-weight: bold;
+
+ &:not(:first-child) {
+ margin-left: 0.25rem;
+ }
+}
+
+/* Search box */
+
+// Style it through the id selector to override the YUI selectors set by
+// the YUI Autocomplete module
+#searchform {
+ position: relative;
+ font-family: Roboto, Helvetica, Arial, sans-serif;
+ display: inline-block;
+ display: inline-flex;
+ height: 2.5rem;
+}
+
+// Need to add the id selector to override the ".yui-skin-sam .yui-ac-input" set by
+// the YUI Autocomplete module
+#search-box.main-search__input {
+ position: static;
+ padding: 0.25rem 2.5rem;
+ margin: 0;
+
+ font-size: 1rem;
+ line-height: 1.5;
+ font-weight: bold;
+ color: @search-input-color;
+ font-family: Roboto, Helvetica, Arial, sans-serif;
+
+ border-radius: @header-item-border-radius;
+ border: 3px solid white;
+ outline: none;
+
+ &::placeholder {
+ font-weight: normal;
+ }
+
+ &:focus {
+ border-color: @header-link-outline;
+ }
+}
+
+.main-search__icon-leading,
+.main-search__icon-trailing {
+ position: absolute;
+ display: inline-block;
+ display: inline-flex;
+ height: 2.5rem;
+ width: 2.5rem;
+ padding: 0.5rem;
+ justify-content: center;
+ align-items: center;
+ background: transparent;
+}
+
+.main-search__icon-leading {
+ left: 0;
+ pointer-events: none;
+}
+
+.main-search__icon-trailing {
+ right: 0;
+ outline-color: @header-link-outline;
+
+ &:link,
+ &:visited {
+ color: @search-input-color;
+ }
+
+ &:hover,
+ &:focus {
+ color: @header-link-bg-classic-hover;
+ }
+
+ &:active {
+ fill: @header-link-bg-classic-active;
+ }
+}
+
+#search-box-completion {
+ text-align: left;
+ width: 25em;
+ position: absolute;
+ z-index: 1000;
+}
+
+#search-box-completion .yui-ac-content {
+ width: 30em;
+ background-color: @search-background;
+ overflow: hidden;
+
+ // TODO: chose a better box shadow
+ box-shadow: @search-box-shadow;
+
+ border: none;
+ border-radius: @header-item-border-radius;
+}
+
+#search-box-completion UL {
+ padding: 0.75rem 0;
+ width: 100%;
+ margin: 0 0;
+ list-style: none;
+}
+
+#search-box-completion LI {
+ white-space:nowrap;
+
+ padding: 0.25rem 1.25rem;
+ font-size: 1rem;
+ line-height: 1.5;
+}
+
+#search-box-completion LI.yui-ac-highlight {
+ background: @search-box-completion-bg;
+ font-weight: bold;
+}
+
+#search-box-minWidth {
+ position:absolute;
+ visibility: hidden;
+ width:15rem;
+}
+
+#search-box-sizer {
+ position:absolute;
+ visibility: hidden;
+}
diff --git a/war/src/main/less/ui-refresh-overrides.less b/war/src/main/less/ui-refresh-overrides.less
new file mode 100644
index 000000000000..de0be8f22874
--- /dev/null
+++ b/war/src/main/less/ui-refresh-overrides.less
@@ -0,0 +1,85 @@
+@import "./abstracts/colors.less";
+
+.ui-refresh {
+ .page-header {
+ background-color: @header-bg-v2;
+ }
+
+ #header .logo {
+ display: none;
+ }
+
+ // Need to use the element selector to increase weight otherwise it will be overriden by the
+ // a:visited selector if it is declared later
+ A.page-header__brand-link {
+ display: inline-block;
+ display: inline-flex;
+ align-items: center;
+ height: 100%;
+ padding: 16px 24px;
+ font-size: 16px;
+ font-weight: bold;
+ line-height: 1.5;
+ background-color: @logo-bg;
+ // TODO: comment on browser support for clip-path
+ clip-path: polygon(0 0, 100% 0, 95% 100%, 0 100%);
+
+ &:link,
+ &:visited {
+ color: @brand-link-color;
+ text-decoration: none;
+ }
+
+ &:hover,
+ &:focus {
+ text-decoration: underline;
+ color: @brand-link-color-hover-v2;
+ text-decoration-color: @brand-link-color-hover-v2;
+ }
+
+ &:link:focus {
+ outline: none;
+ color: @brand-link-color-active-v2;
+ text-decoration-color: @brand-link-color-active-v2;
+
+ .page-header__brand-name {
+ outline: auto;
+ }
+ }
+ }
+
+ .page-header__hyperlinks A {
+ &:hover,
+ &:focus,
+ &.mouseIsOverMenuSelector {
+ background-color: @header-link-bg-hover-v2;
+ }
+
+ &:active {
+ background-color: @header-link-bg-active-v2;
+ }
+ }
+
+ .main-search__input:hover ~ .main-search__icon-leading {
+ color: @header-link-bg-hover-v2;
+ }
+
+ .main-search__input:focus ~ .main-search__icon-leading {
+ color: @header-link-bg-active-v2;
+ }
+
+ .main-search__icon-trailing {
+ &:hover,
+ &:focus {
+ color: @header-link-bg-hover-v2;
+ }
+
+ &:active {
+ fill: @header-link-bg-active-v2;
+ }
+ }
+
+ #visible-am-container.visible #visible-am-button {
+ background-color: @header-link-bg-active-v2;
+ }
+}
diff --git a/war/src/main/webapp/css/style.css b/war/src/main/webapp/css/style.css
index 252c86423b14..c0e9e8220c36 100644
--- a/war/src/main/webapp/css/style.css
+++ b/war/src/main/webapp/css/style.css
@@ -58,12 +58,12 @@ body, table, form, input, td, th, p, textarea, select
@media (min-width:1600px){
body#jenkins.j-hide-left #main-panel{max-width:75%}
body, table, form, input, td, th, p, textarea, select, #tasks .task
- {font-size:14px;}
+ {font-size:14px;}
}
@media (min-width:2000px){
body#jenkins.j-hide-left #main-panel{max-width:85%}
body, table, form, input, td, th, p, textarea, select, #tasks .task
- {font-size:15px;}
+ {font-size:15px;}
}
body, table, form, td, th, p
{
@@ -265,7 +265,7 @@ pre {/* see http://users.tkk.fi/tkarvine/pre-wrap-css3-mozilla-opera-ie.html */
}
pre a {
- word-wrap: break-word;
+ word-wrap: break-word;
}
pre.console {
@@ -1491,7 +1491,7 @@ DIV.yahooTree td {
height: 24px;
padding-left: 20px;
width: 15em;
- position: static;
+ position: static;
border: 1px solid #DDD;
border-radius: 4px;
box-shadow: 0 0 5px #DDD inset;
@@ -1589,7 +1589,7 @@ TEXTAREA.rich-editor {
}
/*
- * TODO(andipabst): Not used after https://github.com/jenkinsci/jenkins/pull/4299,
+ * TODO(andipabst): Not used after https://github.com/jenkinsci/jenkins/pull/4299,
* remove once there are no more dependencies
*/
#plugins .compatWarning {
@@ -1751,7 +1751,7 @@ select.select-ajax-pending {
/* ========================= Button styles ================= */
.btn-box {
- display:block;
+ display:block;
margin-top:2em
}
#disable-project {
@@ -2078,3 +2078,20 @@ body.no-sticker #bottom-sticker {
}
/* -------------------------------------- */
+
+/* -------------- SVG icons ------------- */
+
+.svg-icon {
+ display: inline-block;
+ vertical-align: middle;
+
+ /* default dimensions */
+ height: 24px;
+ width: 24px;
+
+ /* default fill fallback */
+ fill: #111;
+ fill: currentColor;
+}
+
+/* -------------------------------------- */
diff --git a/war/src/main/webapp/images/jenkins-header-logo-v2.svg b/war/src/main/webapp/images/jenkins-header-logo-v2.svg
new file mode 100644
index 000000000000..5e23b40fe94d
--- /dev/null
+++ b/war/src/main/webapp/images/jenkins-header-logo-v2.svg
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/war/src/main/webapp/images/material-icons/svg-sprite-action-symbol.svg b/war/src/main/webapp/images/material-icons/svg-sprite-action-symbol.svg
new file mode 100644
index 000000000000..e2497d9eeec0
--- /dev/null
+++ b/war/src/main/webapp/images/material-icons/svg-sprite-action-symbol.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/war/src/main/webapp/images/material-icons/svg-sprite-social-symbol.svg b/war/src/main/webapp/images/material-icons/svg-sprite-social-symbol.svg
new file mode 100644
index 000000000000..d9f371db0de7
--- /dev/null
+++ b/war/src/main/webapp/images/material-icons/svg-sprite-social-symbol.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/war/src/main/webapp/scripts/svgxuse.min.js b/war/src/main/webapp/scripts/svgxuse.min.js
new file mode 100644
index 000000000000..2c0cc54e7693
--- /dev/null
+++ b/war/src/main/webapp/scripts/svgxuse.min.js
@@ -0,0 +1,12 @@
+/*!
+ * @copyright Copyright (c) 2017 IcoMoon.io
+ * @license Licensed under MIT license
+ * See https://github.com/Keyamoon/svgxuse
+ * @version 1.2.6
+ */
+(function(){if("undefined"!==typeof window&&window.addEventListener){var e=Object.create(null),l,d=function(){clearTimeout(l);l=setTimeout(n,100)},m=function(){},t=function(){window.addEventListener("resize",d,!1);window.addEventListener("orientationchange",d,!1);if(window.MutationObserver){var k=new MutationObserver(d);k.observe(document.documentElement,{childList:!0,subtree:!0,attributes:!0});m=function(){try{k.disconnect(),window.removeEventListener("resize",d,!1),window.removeEventListener("orientationchange",
+d,!1)}catch(v){}}}else document.documentElement.addEventListener("DOMSubtreeModified",d,!1),m=function(){document.documentElement.removeEventListener("DOMSubtreeModified",d,!1);window.removeEventListener("resize",d,!1);window.removeEventListener("orientationchange",d,!1)}},u=function(k){function e(a){if(void 0!==a.protocol)var c=a;else c=document.createElement("a"),c.href=a;return c.protocol.replace(/:/g,"")+c.host}if(window.XMLHttpRequest){var d=new XMLHttpRequest;var m=e(location);k=e(k);d=void 0===
+d.withCredentials&&""!==k&&k!==m?XDomainRequest||void 0:XMLHttpRequest}return d};var n=function(){function d(){--q;0===q&&(m(),t())}function l(a){return function(){!0!==e[a.base]&&(a.useEl.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href","#"+a.hash),a.useEl.hasAttribute("href")&&a.useEl.setAttribute("href","#"+a.hash))}}function p(a){return function(){var c=document.body,b=document.createElement("x");a.onload=null;b.innerHTML=a.responseText;if(b=b.getElementsByTagName("svg")[0])b.setAttribute("aria-hidden",
+"true"),b.style.position="absolute",b.style.width=0,b.style.height=0,b.style.overflow="hidden",c.insertBefore(b,c.firstChild);d()}}function n(a){return function(){a.onerror=null;a.ontimeout=null;d()}}var a,c,q=0;m();var f=document.getElementsByTagName("use");for(c=0;c
{
+ // ignore the URLS on the base styles as they are picked
+ // from the src/main/webapp/images dir
+ if (resourcePath.includes('base-styles-v2.less')) {
+ return false;
+ }
+
+ return true;
+ }
+ }
+ },
+ 'less-loader'
+ ]
},
{
test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,