gitlab-org--gitlab-foss/app/assets/stylesheets/framework/common.scss

622 lines
12 KiB
SCSS

/** COLORS **/
.cgray { color: $gl-text-color; }
.clgray { color: $common-gray-light; }
.cred { color: $red-500; }
.cgreen { color: $green-600; }
.cdark { color: $common-gray-dark; }
.fwhite { fill: $white; }
.fgray { fill: $gray-700; }
.text-plain,
.text-plain:hover {
color: $gl-text-color;
}
.text-secondary {
color: $gl-text-color-secondary;
}
.text-tertiary {
color: $gl-text-color-tertiary;
}
.text-primary,
.text-primary:hover {
color: $brand-primary;
}
.text-success,
.text-success:hover {
color: $brand-success;
}
.text-danger,
.text-danger:hover {
color: $brand-danger;
}
.text-danger-muted,
.text-danger-muted:hover {
color: $red-300;
}
.text-warning,
.text-warning:hover {
color: $brand-warning;
}
.text-info,
.text-info:hover {
color: $brand-info;
}
.bg-gray-light {
background-color: $gray-light;
}
.bg-white {
background-color: $white;
}
.bg-line-target-blue {
background: $line-target-blue;
}
.text-break-word {
word-break: break-all;
}
.text-underline,
.text-underline:hover {
text-decoration: underline;
}
.hint {
font-style: italic;
color: $gl-gray-400;
}
.light { color: $gl-text-color; }
.slead {
color: $gl-text-color;
font-size: 14px;
margin-bottom: 12px;
font-weight: $gl-font-weight-normal;
line-height: 24px;
}
.bold {
font-weight: $gl-font-weight-bold;
}
.tab-content {
overflow: visible;
}
pre {
&.clean {
background: none;
border: 0;
margin: 0;
padding: 0;
}
&.wrap {
word-break: break-word;
white-space: pre-wrap;
}
}
hr {
margin: 24px 0;
border-top: 1px solid darken($gray-normal, 8%);
}
.str-truncated {
@include str-truncated;
&-30 {
@include str-truncated(30%);
}
&-60 {
@include str-truncated(60%);
}
&-100 {
@include str-truncated(100%);
}
}
.block-truncated {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
> div:not(.block),
.str-truncated {
display: inline;
}
}
.item-title { font-weight: $gl-font-weight-bold; }
.author-link {
color: $blue-600;
}
.author-link:hover {
text-decoration: none;
}
table {
a code {
position: relative;
top: -2px;
margin-right: 3px;
}
}
.loading {
margin: 20px auto;
height: 40px;
color: $gl-gray-700;
font-size: 32px;
text-align: center;
}
p.time {
color: $gl-gray-400;
font-size: 90%;
margin: 30px 3px 3px 2px;
}
.highlight {
text-shadow: none;
}
.thin-area {
height: 150px;
}
// Fix issue with notes & lists creating a bunch of bottom borders.
li.note {
img { max-width: 100%; }
.note-title {
li {
border-bottom: 0 !important;
}
}
}
.markdown {
img {
max-width: 100%;
}
}
.wiki_content code,
.readme code {
background-color: inherit;
}
.error-message {
padding: 10px;
background: $red-400;
margin: 0;
color: $white;
a {
color: $white;
text-decoration: underline;
}
}
@mixin message($background-color, $border-color, $text-color) {
border-left: 4px solid $border-color;
color: $text-color;
padding: $gl-padding $gl-padding-24;
margin-bottom: $gl-padding-12;
background-color: $background-color;
&.centered {
text-align: center;
}
.close {
svg {
width: $gl-font-size-large;
height: $gl-font-size-large;
}
color: inherit;
}
}
.warning_message {
@include message($orange-100, $orange-200, $orange-800);
}
.danger_message {
@include message($red-100, $red-200, $red-900);
}
.gitlab-promo {
a {
color: $gl-gray-350;
margin-right: 30px;
}
}
.milestone {
.progress {
margin-top: 4px;
box-shadow: none;
background-color: $border-gray-light;
}
}
img.emoji {
height: 20px;
vertical-align: top;
width: 20px;
margin-top: 1px;
}
.chart {
overflow: hidden;
height: 220px;
}
.description-block {
@extend .light-well;
@extend .light;
margin-bottom: 10px;
}
.footer-links {
margin-bottom: 20px;
a {
margin-right: 15px;
}
}
.card.card-body {
margin-bottom: $gl-padding;
hr {
border-color: $gray-darker;
}
}
.search_box {
@extend .card.card-body;
text-align: center;
}
.dropzone .dz-preview .dz-progress {
border-color: $border-color !important;
.dz-upload {
background: $green-500 !important;
}
}
.dz-message {
margin: 0;
}
.space-right {
margin-right: 10px;
}
.alert {
margin-bottom: $gl-padding;
}
.progress {
height: 4px;
}
.project-item-select-holder {
display: inline-block;
position: relative;
.project-item-select {
position: absolute;
top: 0;
right: 0;
min-width: 250px;
visibility: hidden;
}
}
.gl-accessibility {
&:focus {
display: flex;
align-items: center;
top: 1px;
left: 1px;
width: auto;
height: 100%;
padding: 0 10px;
clip: auto;
text-decoration: none;
color: $gl-text-color;
background: $gray-light;
z-index: 1;
}
}
.bordered-box {
border: 1px solid $border-color;
border-radius: $border-radius-default;
}
.tooltip {
.tooltip-inner {
word-wrap: break-word;
}
}
.disabled-content {
pointer-events: none;
opacity: 0.5;
}
.break-word {
word-wrap: break-word;
}
.checkbox-icon-inline-wrapper {
.checkbox {
display: inline;
label {
display: inline;
}
}
}
.outline-0 {
outline: 0;
&:focus {
outline: 0;
}
}
/** COMMON CLASSES **/
/**
🚨 Do not use these classes — they are deprecated and being removed. 🚨
See https://gitlab.com/gitlab-org/gitlab/-/issues/217418 for more details.
**/
.prepend-top-4 { margin-top: $gl-padding-4; }
.prepend-top-5 { margin-top: 5px; }
.prepend-top-10 { margin-top: 10px; }
.prepend-top-15 { margin-top: 15px; }
.prepend-top-default { margin-top: $gl-padding !important; }
.prepend-top-16 { margin-top: 16px; }
.prepend-top-20 { margin-top: 20px; }
.prepend-top-32 { margin-top: 32px; }
.prepend-left-5 { margin-left: 5px; }
.prepend-left-10 { margin-left: 10px; }
.prepend-left-15 { margin-left: 15px; }
.prepend-left-default { margin-left: $gl-padding; }
.prepend-left-20 { margin-left: 20px; }
.prepend-left-32 { margin-left: 32px; }
.prepend-left-64 { margin-left: 64px; }
.append-right-2 { margin-right: 2px; }
.append-right-4 { margin-right: 4px; }
.append-right-5 { margin-right: 5px; }
.append-right-10 { margin-right: 10px; }
.append-right-15 { margin-right: 15px; }
.append-right-default { margin-right: $gl-padding; }
.append-right-20 { margin-right: 20px; }
.append-right-32 { margin-right: 32px; }
.append-right-48 { margin-right: 48px; }
.prepend-right-32 { margin-right: 32px; }
.append-bottom-4 { margin-bottom: $gl-padding-4; }
.append-bottom-5 { margin-bottom: 5px; }
.append-bottom-8 { margin-bottom: $grid-size; }
.append-bottom-10 { margin-bottom: 10px; }
.append-bottom-15 { margin-bottom: 15px; }
.append-bottom-20 { margin-bottom: 20px; }
.append-bottom-default { margin-bottom: $gl-padding; }
.prepend-bottom-32 { margin-bottom: 32px; }
.ml-10 { margin-left: 4.5rem; }
.inline { display: inline-block; }
.center { text-align: center; }
.block { display: block; }
.flex { display: flex; }
.vertical-align-top { vertical-align: top; }
.vertical-align-text-top { vertical-align: text-top; }
.vertical-align-middle { vertical-align: middle; }
.vertical-align-sub { vertical-align: sub; }
.flex-align-self-center { align-self: center; }
.flex-grow { flex-grow: 1; }
.flex-no-shrink { flex-shrink: 0; }
.ws-initial { white-space: initial; }
.ws-normal { white-space: normal; }
.ws-pre-wrap { white-space: pre-wrap; }
.overflow-auto { overflow: auto; }
.overflow-visible { overflow: visible; }
.d-flex-center {
display: flex;
align-items: center;
justify-content: center;
}
/** COMMON SIZING CLASSES **/
.w-0 { width: 0; }
.w-8em { width: 8em; }
.w-3rem { width: 3rem; }
.w-15p { width: 15%; }
.w-30p { width: 30%; }
.w-60p { width: 60%; }
.w-70p { width: 70%; }
.h-12em { height: 12em; }
.h-32-px { height: 32px;}
.mw-460 { max-width: 460px; }
.mw-6em { max-width: 6em; }
.mw-70p { max-width: 70%; }
.mw-90p { max-width: 90%; }
// By default flex items don't shrink below their minimum content size.
// To change this, these clases set a min-width or min-height
.min-width-0 { min-width: 0; }
.min-height-0 { min-height: 0; }
.svg-w-100 {
svg {
width: 100%;
}
}
/** COMMON SPACING CLASSES **/
/**
🚨 Do not use these classes — they are deprecated and being removed. 🚨
See https://gitlab.com/gitlab-org/gitlab/issues/36857 for more details.
Instead, if you need a spacing class, please use one from Gitlab UI —
https://unpkg.com/browse/@gitlab/ui/src/scss/utilities.scss — which uses the following scale.
$gl-spacing-scale-0: 0;
$gl-spacing-scale-1: 2px;
$gl-spacing-scale-2: 4px;
$gl-spacing-scale-3: 8px;
$gl-spacing-scale-4: 12px;
$gl-spacing-scale-5: 16px;
$gl-spacing-scale-6: 24px;
$gl-spacing-scale-7: 32px;
$gl-spacing-scale-8: 40px;
$gl-spacing-scale-9: 48px;
$gl-spacing-scale-10: 56px;
$gl-spacing-scale-11: 64px;
$gl-spacing-scale-12: 80px;
$gl-spacing-scale-13: 96px;
**/
@each $index, $padding in $spacing-scale {
#{'.gl-p-#{$index}-deprecated-no-really-do-not-use-me'} { padding: $padding; }
#{'.gl-pl-#{$index}-deprecated-no-really-do-not-use-me'} { padding-left: $padding; }
#{'.gl-pr-#{$index}-deprecated-no-really-do-not-use-me'} { padding-right: $padding; }
#{'.gl-pt-#{$index}-deprecated-no-really-do-not-use-me'} { padding-top: $padding; }
#{'.gl-pb-#{$index}-deprecated-no-really-do-not-use-me'} { padding-bottom: $padding; }
}
/**
* Removes browser specific clear icon from input fields in
* Internet Explorer 10, Internet Explorer 11, and Microsoft Edge.
* This is intended for elements which add a customized clear icon.
*
* see also https://developer.mozilla.org/en-US/docs/Web/CSS/::-ms-clear
*/
.ms-no-clear ::-ms-clear {
display: none;
}
/** COMMON POSITIONING CLASSES */
.position-bottom-0 { bottom: 0 !important; }
.position-left-0 { left: 0 !important; }
.position-right-0 { right: 0 !important; }
.position-top-0 { top: 0 !important; }
.drag-handle {
width: 4px;
&:hover {
background-color: $white-normal;
}
&.is-dragging {
background-color: $gray-600;
}
}
.cursor-pointer {
cursor: pointer;
}
.cursor-not-allowed { cursor: not-allowed; }
// this needs to use "!important" due to some very specific styles
// around buttons
.cursor-default {
cursor: default !important;
}
// Make buttons/dropdowns full-width on mobile
.full-width-mobile {
@include media-breakpoint-down(xs) {
width: 100%;
> .dropdown-menu,
> .btn {
width: 100%;
}
}
}
.onboarding-helper-container {
bottom: 40px;
right: 40px;
font-size: $gl-font-size-small;
background: $gray-50;
width: 200px;
border-radius: 24px;
box-shadow: 0 2px 4px $issue-boards-card-shadow;
z-index: 10000;
.collapsible {
max-height: 0;
transition: max-height 0.5s cubic-bezier(0, 1, 0, 1);
}
&.expanded {
border-bottom-right-radius: $border-radius-default;
border-bottom-left-radius: $border-radius-default;
.collapsible {
max-height: 1000px;
transition: max-height 1s ease-in-out;
}
}
.avatar {
border-color: darken($gray-normal, 10%);
img {
width: 32px;
height: 32px;
}
}
}
.gl-font-sm { font-size: $gl-font-size-small; }
.gl-font-lg { font-size: $gl-font-size-large; }
.gl-font-base { font-size: $gl-font-size-14; }
.gl-font-size-0 { font-size: 0; }
.gl-font-size-28 { font-size: $gl-font-size-28; }
.gl-font-size-42 { font-size: $gl-font-size-42; }
.border-section {
@include gl-py-6;
@include gl-m-0;
border-top: 1px solid $border-color;
}
/**
🚨 Do not use these classes — they clash with the Gitlab UI design system and will be removed. 🚨
See https://gitlab.com/gitlab-org/gitlab/issues/36857 for more details.
**/
.gl-line-height-14 { line-height: $gl-line-height-14; }
.gl-font-size-20 { font-size: $gl-font-size-20; }