mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2026-05-13 22:40:24 +00:00
Related issue: https://codeberg.org/forgejo/forgejo/issues/8581 This should be a nice first step towards RTL support. Future PRs can look at updating the tailwind classes, changing some of the icons (arrow left might need to become arrow right in some cases for example, and updating the template files) Reviewed-on: https://codeberg.org/forgejo/forgejo/pulls/12491 Reviewed-by: 0ko <0ko@noreply.codeberg.org>
587 lines
16 KiB
CSS
587 lines
16 KiB
CSS
fieldset {
|
|
margin: 0.2em 0 0.3em;
|
|
padding: 0;
|
|
}
|
|
|
|
fieldset legend {
|
|
font-weight: var(--font-weight-medium);
|
|
margin-bottom: 0.75em;
|
|
}
|
|
|
|
fieldset + fieldset > legend {
|
|
width: 100%;
|
|
padding-top: 1em;
|
|
border-top: 1px solid var(--color-secondary);
|
|
}
|
|
|
|
fieldset label {
|
|
display: block;
|
|
margin-bottom: 0.6em;
|
|
}
|
|
|
|
fieldset label:has(input[type="text"]),
|
|
fieldset label:has(input[type="number"]) {
|
|
font-weight: var(--font-weight-medium);
|
|
}
|
|
|
|
/* override inline style on custom input elements */
|
|
fieldset label .ui.dropdown {
|
|
width: 100% !important;
|
|
}
|
|
|
|
fieldset .help {
|
|
font-weight: var(--font-weight-normal);
|
|
}
|
|
|
|
.form fieldset .help { /* overrides other .form .help rules in this file, remove when obsolete */
|
|
display: block !important;
|
|
padding-block: 0.125rem 0;
|
|
}
|
|
|
|
fieldset label > input,
|
|
fieldset label > textarea,
|
|
fieldset label > .ui.dropdown,
|
|
fieldset label + .ui.dropdown {
|
|
margin-top: 0.28rem !important;
|
|
}
|
|
|
|
fieldset label > input[type="checkbox"],
|
|
fieldset label > input[type="radio"] {
|
|
margin-inline-end: 0.75em;
|
|
margin-top: 0 !important;
|
|
vertical-align: initial !important; /* overrides a semantic.css rule, remove when obsolete */
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
.optionmatrix input[type="radio"] {
|
|
margin: 0;
|
|
}
|
|
|
|
/* center columns except first */
|
|
.optionmatrix td + td, .optionmatrix th + th {
|
|
min-width: 10em;
|
|
text-align: center !important; /* overrides table.css "inherit" rule */
|
|
}
|
|
}
|
|
|
|
/* if an element with class "hide-unless-checked" follows a label
|
|
* that has no checked input, it will be hidden.*/
|
|
label:not(:has(input:checked)) + .hide-unless-checked {
|
|
display: none;
|
|
}
|
|
|
|
.ui.input textarea,
|
|
.ui.form textarea,
|
|
.ui.form input:not([type]),
|
|
.ui.form input[type="date"],
|
|
.ui.form input[type="datetime-local"],
|
|
.ui.form input[type="email"],
|
|
.ui.form input[type="number"],
|
|
.ui.form input[type="password"],
|
|
.ui.form input[type="search"],
|
|
.ui.form input[type="tel"],
|
|
.ui.form input[type="time"],
|
|
.ui.form input[type="text"],
|
|
.ui.form input[type="file"],
|
|
.ui.form input[type="url"] {
|
|
transition: none;
|
|
}
|
|
|
|
input,
|
|
textarea,
|
|
.ui.input > input,
|
|
.ui.form input:not([type]),
|
|
.ui.form select,
|
|
.ui.form textarea,
|
|
.ui.form input[type="date"],
|
|
.ui.form input[type="datetime-local"],
|
|
.ui.form input[type="email"],
|
|
.ui.form input[type="file"],
|
|
.ui.form input[type="number"],
|
|
.ui.form input[type="password"],
|
|
.ui.form input[type="search"],
|
|
.ui.form input[type="tel"],
|
|
.ui.form input[type="text"],
|
|
.ui.form input[type="time"],
|
|
.ui.form input[type="url"],
|
|
.ui.selection.dropdown {
|
|
background: var(--color-input-background);
|
|
border-color: var(--color-input-border);
|
|
color: var(--color-input-text);
|
|
}
|
|
|
|
/* fix fomantic small dropdown having inconsistent padding with input */
|
|
.ui.small.selection.dropdown {
|
|
padding: .67857143em 1.6em .67857143em 1em;
|
|
}
|
|
|
|
input:hover,
|
|
textarea:hover,
|
|
.ui.input input:hover,
|
|
.ui.form input:not([type]):hover,
|
|
.ui.form select:hover,
|
|
.ui.form textarea:hover,
|
|
.ui.form input[type="date"]:hover,
|
|
.ui.form input[type="datetime-local"]:hover,
|
|
.ui.form input[type="email"]:hover,
|
|
.ui.form input[type="file"]:hover,
|
|
.ui.form input[type="number"]:hover,
|
|
.ui.form input[type="password"]:hover,
|
|
.ui.form input[type="search"]:hover,
|
|
.ui.form input[type="tel"]:hover,
|
|
.ui.form input[type="text"]:hover,
|
|
.ui.form input[type="time"]:hover,
|
|
.ui.form input[type="url"]:hover,
|
|
.ui.selection.dropdown:hover {
|
|
background: var(--color-input-background);
|
|
border-color: var(--color-input-border-hover);
|
|
color: var(--color-input-text);
|
|
}
|
|
|
|
input:focus,
|
|
textarea:focus,
|
|
.ui.input input:focus,
|
|
.ui.form input:not([type]):focus,
|
|
.ui.form select:focus,
|
|
.ui.form textarea:focus,
|
|
.ui.form input[type="date"]:focus,
|
|
.ui.form input[type="datetime-local"]:focus,
|
|
.ui.form input[type="email"]:focus,
|
|
.ui.form input[type="file"]:focus,
|
|
.ui.form input[type="number"]:focus,
|
|
.ui.form input[type="password"]:focus,
|
|
.ui.form input[type="search"]:focus,
|
|
.ui.form input[type="tel"]:focus,
|
|
.ui.form input[type="text"]:focus,
|
|
.ui.form input[type="time"]:focus,
|
|
.ui.form input[type="url"]:focus,
|
|
.ui.selection.dropdown:focus {
|
|
background: var(--color-input-background);
|
|
border-color: var(--color-primary);
|
|
color: var(--color-input-text);
|
|
}
|
|
|
|
/* error messages */
|
|
fieldset label.error textarea,
|
|
fieldset label.error select,
|
|
fieldset label.error input,
|
|
.ui.form .fields.error .field textarea,
|
|
.ui.form .fields.error .field select,
|
|
.ui.form .fields.error .field input:not([type]),
|
|
.ui.form .fields.error .field input[type="date"],
|
|
.ui.form .fields.error .field input[type="datetime-local"],
|
|
.ui.form .fields.error .field input[type="email"],
|
|
.ui.form .fields.error .field input[type="number"],
|
|
.ui.form .fields.error .field input[type="password"],
|
|
.ui.form .fields.error .field input[type="search"],
|
|
.ui.form .fields.error .field input[type="tel"],
|
|
.ui.form .fields.error .field input[type="time"],
|
|
.ui.form .fields.error .field input[type="text"],
|
|
.ui.form .fields.error .field input[type="file"],
|
|
.ui.form .fields.error .field input[type="url"],
|
|
.ui.form .fields.error .field .ui.dropdown,
|
|
.ui.form .fields.error .field .ui.dropdown .item,
|
|
.ui.form .field.error .ui.dropdown,
|
|
.ui.form .field.error .ui.dropdown .text,
|
|
.ui.form .field.error .ui.dropdown .item,
|
|
.ui.form .field.error textarea,
|
|
.ui.form .field.error select,
|
|
.ui.form .field.error input:not([type]),
|
|
.ui.form .field.error input[type="date"],
|
|
.ui.form .field.error input[type="datetime-local"],
|
|
.ui.form .field.error input[type="email"],
|
|
.ui.form .field.error input[type="number"],
|
|
.ui.form .field.error input[type="password"],
|
|
.ui.form .field.error input[type="search"],
|
|
.ui.form .field.error input[type="tel"],
|
|
.ui.form .field.error input[type="time"],
|
|
.ui.form .field.error input[type="text"],
|
|
.ui.form .field.error input[type="file"],
|
|
.ui.form .field.error input[type="url"],
|
|
.ui.form .field.error select:focus,
|
|
.ui.form .field.error input:not([type]):focus,
|
|
.ui.form .field.error input[type="date"]:focus,
|
|
.ui.form .field.error input[type="datetime-local"]:focus,
|
|
.ui.form .field.error input[type="email"]:focus,
|
|
.ui.form .field.error input[type="number"]:focus,
|
|
.ui.form .field.error input[type="password"]:focus,
|
|
.ui.form .field.error input[type="search"]:focus,
|
|
.ui.form .field.error input[type="tel"]:focus,
|
|
.ui.form .field.error input[type="time"]:focus,
|
|
.ui.form .field.error input[type="text"]:focus,
|
|
.ui.form .field.error input[type="file"]:focus,
|
|
.ui.form .field.error input[type="url"]:focus {
|
|
background-color: var(--color-error-bg);
|
|
border-color: var(--color-error-border);
|
|
color: var(--color-error-text);
|
|
}
|
|
|
|
.ui.form .fields.error .field .ui.dropdown,
|
|
.ui.form .field.error .ui.dropdown,
|
|
.ui.form .fields.error .field .ui.dropdown:hover,
|
|
.ui.form .field.error .ui.dropdown:hover {
|
|
border-color: var(--color-error-border) !important;
|
|
}
|
|
|
|
.ui.form .fields.error .field .ui.dropdown .menu .item:hover,
|
|
.ui.form .field.error .ui.dropdown .menu .item:hover {
|
|
background-color: var(--color-error-bg-hover);
|
|
}
|
|
|
|
.ui.form .fields.error .field .ui.dropdown .menu .active.item,
|
|
.ui.form .field.error .ui.dropdown .menu .active.item {
|
|
background-color: var(--color-error-bg-active) !important;
|
|
}
|
|
|
|
.ui.form .fields.error .dropdown .menu,
|
|
.ui.form .field.error .dropdown .menu {
|
|
border-color: var(--color-error-border) !important;
|
|
}
|
|
|
|
input:-webkit-autofill,
|
|
input:-webkit-autofill:focus,
|
|
input:-webkit-autofill:hover,
|
|
input:-webkit-autofill:active,
|
|
.ui.form .field.field input:-webkit-autofill,
|
|
.ui.form .field.field input:-webkit-autofill:focus,
|
|
.ui.form .field.field input:-webkit-autofill:hover,
|
|
.ui.form .field.field input:-webkit-autofill:active {
|
|
-webkit-background-clip: text;
|
|
-webkit-text-fill-color: var(--color-text);
|
|
box-shadow: 0 0 0 100px var(--color-primary-light-6) inset !important;
|
|
border-color: var(--color-primary-light-4) !important;
|
|
}
|
|
|
|
.ui.form .field.muted {
|
|
opacity: var(--opacity-disabled);
|
|
}
|
|
|
|
.ui.form .field > label,
|
|
.ui.form .inline.fields > label,
|
|
.ui.form .inline.fields .field > label,
|
|
.ui.form .inline.fields .field > p,
|
|
.ui.form .inline.field > label,
|
|
.ui.form .inline.field > p {
|
|
color: var(--color-text);
|
|
}
|
|
|
|
.ui.form .required.fields > .field > label::after,
|
|
.ui.form .required.field > label::after,
|
|
.ui.form label.required::after {
|
|
color: var(--color-thin-red, var(--color-red));
|
|
}
|
|
|
|
.ui.input {
|
|
color: var(--color-input-text);
|
|
}
|
|
|
|
/* match <select> padding to <input> */
|
|
.ui.form select {
|
|
padding: 0.67857143em 1em;
|
|
}
|
|
|
|
.form .help {
|
|
color: var(--color-secondary-dark-8);
|
|
padding-bottom: 0.6em;
|
|
display: inline-block;
|
|
}
|
|
|
|
.m-captcha-style {
|
|
width: 100%;
|
|
height: 5em;
|
|
vertical-align: middle;
|
|
display: inline-block;
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
.g-recaptcha-style,
|
|
.h-captcha-style {
|
|
margin: 0 auto !important;
|
|
width: 304px;
|
|
padding-inline-start: 30px;
|
|
}
|
|
.g-recaptcha-style iframe,
|
|
.h-captcha-style iframe {
|
|
border-radius: var(--border-radius) !important;
|
|
width: 302px !important;
|
|
height: 76px !important;
|
|
}
|
|
.m-captcha-style {
|
|
width: 50%;
|
|
}
|
|
}
|
|
|
|
@media (max-height: 575px) {
|
|
#rc-imageselect,
|
|
.g-recaptcha-style,
|
|
.h-captcha-style {
|
|
transform: scale(0.77);
|
|
transform-origin: 0 0;
|
|
}
|
|
}
|
|
|
|
.user.forgot.password form,
|
|
.user.reset.password form,
|
|
.user.signup form {
|
|
margin: auto;
|
|
width: 700px !important;
|
|
}
|
|
|
|
.user.activate form .ui.message,
|
|
.user.forgot.password form .ui.message,
|
|
.user.reset.password form .ui.message,
|
|
.user.link-account form .ui.message,
|
|
.user.signin form .ui.message,
|
|
.user.signup form .ui.message {
|
|
text-align: center;
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
.user.activate form,
|
|
.user.forgot.password form,
|
|
.user.reset.password form,
|
|
.user.link-account form,
|
|
.user.signin form,
|
|
.user.signup form {
|
|
width: 800px !important;
|
|
}
|
|
.user.activate form .header,
|
|
.user.forgot.password form .header,
|
|
.user.reset.password form .header,
|
|
.user.link-account form .header,
|
|
.user.signin form .header,
|
|
.user.signup form .header {
|
|
padding-inline-start: 280px !important;
|
|
}
|
|
.user.activate form .inline.field > label {
|
|
text-align: end;
|
|
width: 250px !important;
|
|
word-wrap: break-word;
|
|
}
|
|
.user.activate form .help,
|
|
.user.forgot.password form .help,
|
|
.user.reset.password form .help,
|
|
.user.link-account form .help,
|
|
.user.signin form .help,
|
|
.user.signup form .help {
|
|
margin-inline-start: 265px !important;
|
|
}
|
|
.user.activate form .optional .title,
|
|
.user.forgot.password form .optional .title,
|
|
.user.reset.password form .optional .title,
|
|
.user.link-account form .optional .title,
|
|
.user.signin form .optional .title,
|
|
.user.signup form .optional .title {
|
|
margin-inline-start: 250px !important;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 767.98px) {
|
|
.user.activate form .optional .title,
|
|
.user.forgot.password form .optional .title,
|
|
.user.reset.password form .optional .title,
|
|
.user.link-account form .optional .title,
|
|
.user.signin form .optional .title,
|
|
.user.signup form .optional .title {
|
|
margin-inline-start: 15px;
|
|
}
|
|
.user.activate form .inline.field > label,
|
|
.user.forgot.password form .inline.field > label,
|
|
.user.reset.password form .inline.field > label,
|
|
.user.link-account form .inline.field > label,
|
|
.user.signin form .inline.field > label,
|
|
.user.signup form .inline.field > label {
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
.user.activate form .header,
|
|
.user.forgot.password form .header,
|
|
.user.reset.password form .header,
|
|
.user.link-account form .header,
|
|
.user.signin form .header,
|
|
.user.signup form .header {
|
|
padding-inline-start: 0 !important;
|
|
text-align: center;
|
|
}
|
|
|
|
.user.activate form .inline.field > label,
|
|
.user.forgot.password form .inline.field > label,
|
|
.user.reset.password form .inline.field > label,
|
|
.user.link-account form .inline.field > label,
|
|
.user.signin form .inline.field > label,
|
|
.user.signup form .inline.field > label {
|
|
width: 200px;
|
|
}
|
|
|
|
@media (max-width: 767.98px) {
|
|
.user.activate form .inline.field > label,
|
|
.user.forgot.password form .inline.field > label,
|
|
.user.reset.password form .inline.field > label,
|
|
.user.link-account form .inline.field > label,
|
|
.user.signin form .inline.field > label,
|
|
.user.signup form .inline.field > label {
|
|
width: 100% !important;
|
|
}
|
|
}
|
|
|
|
.user.activate form input[type="number"],
|
|
.user.forgot.password form input[type="number"],
|
|
.user.reset.password form input[type="number"],
|
|
.user.link-account form input[type="number"],
|
|
.user.signin form input[type="number"],
|
|
.user.signup form input[type="number"] {
|
|
-moz-appearance: textfield;
|
|
}
|
|
|
|
.user.activate form input::-webkit-outer-spin-button,
|
|
.user.forgot.password form input::-webkit-outer-spin-button,
|
|
.user.reset.password form input::-webkit-outer-spin-button,
|
|
.user.link-account form input::-webkit-outer-spin-button,
|
|
.user.signin form input::-webkit-outer-spin-button,
|
|
.user.signup form input::-webkit-outer-spin-button,
|
|
.user.activate form input::-webkit-inner-spin-button,
|
|
.user.forgot.password form input::-webkit-inner-spin-button,
|
|
.user.reset.password form input::-webkit-inner-spin-button,
|
|
.user.link-account form input::-webkit-inner-spin-button,
|
|
.user.signin form input::-webkit-inner-spin-button,
|
|
.user.signup form input::-webkit-inner-spin-button {
|
|
-webkit-appearance: none;
|
|
margin: 0;
|
|
}
|
|
|
|
.moderation.new-report form,
|
|
.repository.new.repo form,
|
|
.repository.new.migrate form,
|
|
.repository.new.fork form {
|
|
margin: auto;
|
|
}
|
|
|
|
.repository.new.repo form .ui.message,
|
|
.repository.new.migrate form .ui.message,
|
|
.repository.new.fork form .ui.message {
|
|
text-align: center;
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
.moderation.new-report form,
|
|
.repository.new.repo form,
|
|
.repository.new.migrate form,
|
|
.repository.new.fork form {
|
|
width: 800px !important;
|
|
}
|
|
.moderation.new-report form .header,
|
|
.repository.new.repo form .header,
|
|
.repository.new.migrate form .header,
|
|
.repository.new.fork form .header {
|
|
padding-inline-start: 280px !important;
|
|
}
|
|
.repository.new.migrate form .inline.field > label,
|
|
.repository.new.fork form .inline.field > label {
|
|
text-align: end;
|
|
width: 250px !important;
|
|
word-wrap: break-word;
|
|
}
|
|
.repository.new.migrate form .help,
|
|
.repository.new.fork form .help {
|
|
margin-inline-start: 265px !important;
|
|
}
|
|
.repository.new.repo form .optional .title,
|
|
.repository.new.migrate form .optional .title,
|
|
.repository.new.fork form .optional .title {
|
|
margin-inline-start: 250px !important;
|
|
}
|
|
.repository.new.migrate form .inline.field > input,
|
|
.repository.new.fork form .inline.field > input,
|
|
.repository.new.migrate form .inline.field > textarea,
|
|
.repository.new.fork form .inline.field > textarea {
|
|
width: 50%;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 767.98px) {
|
|
.repository.new.repo form .optional .title,
|
|
.repository.new.migrate form .optional .title,
|
|
.repository.new.fork form .optional .title {
|
|
margin-inline-start: 15px;
|
|
}
|
|
.repository.new.repo form .inline.field > label,
|
|
.repository.new.migrate form .inline.field > label,
|
|
.repository.new.fork form .inline.field > label {
|
|
display: block;
|
|
}
|
|
}
|
|
|
|
.repository.new.migrate form .dropdown .text,
|
|
.repository.new.fork form .dropdown .text {
|
|
margin-inline-end: 0 !important;
|
|
}
|
|
|
|
.moderation.new-report form .header,
|
|
.repository.new.repo form .header,
|
|
.repository.new.migrate form .header,
|
|
.repository.new.fork form .header {
|
|
padding-inline-start: 0 !important;
|
|
text-align: center;
|
|
}
|
|
|
|
.repository.new.migrate form .selection.dropdown,
|
|
.repository.new.fork form .selection.dropdown,
|
|
.repository.new.fork form .field a {
|
|
vertical-align: middle;
|
|
width: 50% !important;
|
|
}
|
|
|
|
@media (max-width: 767.98px) {
|
|
.repository.new.repo form label,
|
|
.repository.new.migrate form label,
|
|
.repository.new.fork form label,
|
|
.repository.new.repo form .inline.field > input,
|
|
.repository.new.migrate form .inline.field > input,
|
|
.repository.new.fork form .inline.field > input,
|
|
.repository.new.fork form .field a,
|
|
.repository.new.repo form .selection.dropdown,
|
|
.repository.new.migrate form .selection.dropdown,
|
|
.repository.new.fork form .selection.dropdown {
|
|
width: 100% !important;
|
|
}
|
|
.repository.new.repo form .field button,
|
|
.repository.new.migrate form .field button,
|
|
.repository.new.fork form .field button,
|
|
.repository.new.repo form .field a,
|
|
.repository.new.migrate form .field a {
|
|
margin-bottom: 1em;
|
|
width: 100%;
|
|
}
|
|
}
|
|
|
|
@media (min-width: 768px) {
|
|
.repository.new.repo .ui.form #auto-init {
|
|
margin-inline-start: 265px !important;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 767.98px) {
|
|
.repository.new.repo .ui.form .selection.dropdown:not(.owner) {
|
|
width: 100% !important;
|
|
}
|
|
}
|
|
|
|
.ui.form .field > .selection.dropdown {
|
|
min-width: 14em; /* matches the default min width */
|
|
}
|
|
|
|
.githook textarea {
|
|
font-family: var(--fonts-monospace);
|
|
}
|
|
|
|
@media (max-width: 767.98px) {
|
|
.new.org .ui.form .field button,
|
|
.new.org .ui.form .field a {
|
|
margin-bottom: 1em;
|
|
width: 100%;
|
|
}
|
|
.new.org .ui.form .field input:not([type="checkbox"], [type="radio"]) {
|
|
width: 100% !important;
|
|
}
|
|
}
|