Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restyle file uploads to fit in with modern forms UI #7452

Merged
merged 11 commits into from
Dec 30, 2022
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ THE SOFTWARE.
${%deploytext}
</div>
<f:entry title="${%File}">
<input type="file" name="name" class="jenkins-input" accept=".hpi,.jpi"/>
<input type="file" name="name" class="jenkins-file-upload" accept=".hpi,.jpi"/>
</f:entry>
<p>${%Or}</p>
<f:entry title="${%URL}">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ THE SOFTWARE.
<f:entry title="${h.escape(it.name)}" description="${it.formattedDescription}">
<div name="parameter">
<input type="hidden" name="name" value="${it.name}" />
<input name="file" type="file" jsonAware="true" />
<input name="file" type="file" jsonAware="true" class="jenkins-file-upload" />
</div>
</f:entry>
</j:jelly>
</j:jelly>
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ THE SOFTWARE.
</div>
</f:block>
<f:entry title="${%File to check}">
<input type="file" name="name" class="jenkins-input" />
<input type="file" name="name" class="jenkins-file-upload" />
</f:entry>
<f:block>
<f:submit value="${%Check}" />
Expand Down
2 changes: 1 addition & 1 deletion war/src/main/less/base/style.less
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,7 @@ pre.console {
}

.setting-name,
.setting-main > input,
.setting-main > input:not([type="file"]),
.setting-main > textarea {
vertical-align: middle;
margin-top: 0;
Expand Down
56 changes: 56 additions & 0 deletions war/src/main/less/form/file-upload.less
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
.jenkins-file-upload {
position: relative;
margin: -10px 0 0 -10px;
padding: 10px 0 10px 10px;
outline: none;
background: transparent;

&::before {
content: "";
position: absolute;
display: block;
left: calc(10px + 0.9rem);
width: 1rem;
height: 36px;
background: currentColor;
mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M320 367.79h76c55 0 100-29.21 100-83.6s-53-81.47-96-83.6c-8.89-85.06-71-136.8-144-136.8-69 0-113.44 45.79-128 91.2-60 5.7-112 43.88-112 106.4s54 106.4 120 106.4h56' fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='40'/%3E%3Cpath fill='none' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round' stroke-width='40' d='M320 255.79l-64-64-64 64M256 448.21V207.79'/%3E%3C/svg%3E");
mask-position: center;
mask-repeat: no-repeat;
pointer-events: none;
}

&::file-selector-button {
display: inline-flex;
align-items: center;
justify-content: center;
border: none;
outline: none;
margin: 0;
padding: 0.5rem 0.85rem 0.5rem 2.5rem;
font-size: 0.8rem;
font-weight: 500;
color: var(--text-color);
border-radius: 0.66rem;
cursor: pointer;
min-height: 36px;
white-space: nowrap;
background: var(--button-background);
transition: var(--standard-transition);
box-shadow: 0 0 0 10px transparent;

&:hover {
background: var(--button-background--hover);
}

&:active {
background: var(--button-background--active);
box-shadow: 0 0 0 5px var(--button-box-shadow--focus);
}
}

&:focus-visible {
&::file-selector-button {
box-shadow: 0 0 0 0.2rem var(--text-color) !important;
}
}
}
1 change: 1 addition & 0 deletions war/src/main/less/styles.less
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
@import url("./base/yui-compatibility");
@import url("./form/checkbox");
@import url("./form/codemirror");
@import url("./form/file-upload");
@import url("./form/input");
@import url("./form/layout");
@import url("./form/radio");
Expand Down