Files
iTop/css/backoffice/layout/activity-panel/_activity-entry.scss
2025-09-02 16:30:20 +02:00

262 lines
10 KiB
SCSS

/*
* @copyright Copyright (C) 2010-2024 Combodo SAS
* @license http://opensource.org/licenses/AGPL-3.0
*/
/* SCSS variables */
/* - Entry group */
$ibo-activity-panel--entry-group--margin-bottom: $ibo-spacing-600 !default;
/* - Entry */
$ibo-activity-entry--medallion--margin-with-information: $ibo-spacing-300 !default;
$ibo-activity-entry--medallion--margin-bottom: 18px !default;
$ibo-activity-entry--medallion--diameter: 32px !default;
$ibo-activity-entry--medallion--border-radius: $ibo-border-radius-full !default;
$ibo-activity-entry--medallion--has-image--background-color: $ibo-color-blue-100 !default;
$ibo-activity-entry--medallion--has-image--box-shadow: inset 0 1px 2px 0 rgba(0, 0, 0, 0.25) !default;
$ibo-activity-entry--medallion--has-no-image--background-color: $ibo-color-blue-grey-600 !default;
$ibo-activity-entry--medallion--has-no-image--text-color: $ibo-color-white-100 !default;
$ibo-activity-entry--medallion--has-no-image--border: 1px solid $ibo-color-grey-200 !default;
$ibo-activity-entry--information--margin-to-side: $ibo-spacing-0 !default;
$ibo-activity-entry--information--margin-to-other-side: $ibo-activity-entry--medallion--diameter + $ibo-activity-entry--medallion--margin-with-information !default;
$ibo-activity-entry--main-information--padding-x: $ibo-spacing-500 !default;
$ibo-activity-entry--main-information--padding-y: $ibo-spacing-400 !default;
$ibo-activity-entry--main-information--text-color: $ibo-color-grey-800 !default;
$ibo-activity-entry--main-information--background-color: $ibo-color-grey-200 !default;
$ibo-activity-entry--main-information--border-radius: $ibo-border-radius-500 !default;
$ibo-activity-entry--main-information--border-radius--for-tip: 0 !default;
$ibo-activity-entry--main-information--elements-spacing: $ibo-activity-entry--main-information--padding-x !default;
$ibo-activity-entry--main-information-accent-strip--width: 2px !default;
$ibo-activity-entry--main-information-hyperlink--text-color: $ibo-color-blue-700 !default;
$ibo-activity-entry--main-information-hyperlink--on-hover--text-color: $ibo-color-blue-900 !default;
$ibo-activity-entry--main-information-hyperlink--on-active--text-color: $ibo-activity-entry--main-information-hyperlink--on-hover--text-color !default;
$ibo-activity-entry--main-information--is-current-user--background-color: $ibo-color-blue-100 !default;
$ibo-activity-entry--main-information--is-closed--max-height: 48px !default;
$ibo-activity-entry--main-information--is-closed--placeholder-top: 30px !default;
$ibo-activity-entry--main-information--is-closed--placeholder-padding-left: $ibo-activity-entry--main-information--padding-x !default;
$ibo-activity-entry--main-information-icon--text-color: $ibo-color-grey-700 !default;
$ibo-activity-entry--main-information-icon--font-size: $ibo-font-size-200 !default;
$ibo-activity-entry--sub-information--margin-top: $ibo-spacing-200 !default;
$ibo-activity-entry--sub-information--margin-bottom: $ibo-activity-entry--sub-information--margin-top !default;
$ibo-activity-entry--sub-information--text-color: $ibo-color-grey-700 !default;
$ibo-activity-entry--sub-information--sibling-spacing: 0.5rem !default;
$ibo-activity-entry--sub-information-sibling-separator--size: 4px !default;
$ibo-activity-entry--sub-information-sibling-separator--border-radius: 100% !default;
$ibo-activity-entry--sub-information-sibling-separator--background-color: $ibo-color-grey-600 !default;
$ibo-activity-panel--load-entries-button--size: 32px !default;
$ibo-activity-panel--load-entries-button--border-radius: $ibo-border-radius-full !default;
$ibo-activity-panel--load-entries-button--background-color: $ibo-activity-entry--main-information--background-color !default;
$ibo-activity-panel--load-entries-button--border: $ibo-content-block--border !default;
$ibo-activity-panel--load-all-entries--is-hover--margin-left: ($ibo-activity-panel--load-entries-button--size + 10px) * 2 !default; /* 2x is necessary here as the elements are centered */
/* Entry group */
.ibo-activity-panel--entry-group{
&:not(:last-child){
margin-bottom: $ibo-activity-panel--entry-group--margin-bottom;
}
}
/* Entry */
.ibo-activity-entry {
display: flex;
flex-direction: row;
align-items: flex-end;
/* Last entry */
&:not(:last-child){
.ibo-activity-entry--medallion{
visibility: hidden; /* Show only medallion on the last entry */
}
.ibo-activity-entry--sub-information{
margin-bottom: $ibo-activity-entry--sub-information--margin-bottom;
}
}
/* Current or not user specificities */
&.ibo-is-current-user{
flex-direction: row-reverse;
min-width: min-content;
.ibo-activity-entry--medallion{
margin-right: initial;
margin-left: $ibo-activity-entry--medallion--margin-with-information;
}
.ibo-activity-entry--information{
margin-right: $ibo-activity-entry--information--margin-to-side;
margin-left: $ibo-activity-entry--information--margin-to-other-side;
}
.ibo-activity-entry--main-information{
background-color: $ibo-activity-entry--main-information--is-current-user--background-color;
}
.ibo-activity-entry--sub-information{
text-align: right;
}
/* Bubble tip on the right for last entry of the group */
&:last-child{
.ibo-activity-entry--main-information{
border-bottom-right-radius: $ibo-activity-entry--main-information--border-radius--for-tip;
border-bottom-left-radius: $ibo-activity-entry--main-information--border-radius;
}
}
}
&:not(.ibo-is-current-user){
.ibo-activity-entry--information{
margin-right: $ibo-activity-entry--information--margin-to-other-side;
margin-left: $ibo-activity-entry--information--margin-to-side;
}
/* Bubble tip on the left for last entry of the group */
&:last-child{
.ibo-activity-entry--main-information{
border-bottom-right-radius: $ibo-activity-entry--main-information--border-radius;
border-bottom-left-radius: $ibo-activity-entry--main-information--border-radius--for-tip;
}
}
}
&.ibo-is-closed{
.ibo-activity-entry--main-information{
max-height: $ibo-activity-entry--main-information--is-closed--max-height;
overflow: hidden;
cursor: pointer;
&::after{
content: "...";
position: absolute;
top: $ibo-activity-entry--main-information--is-closed--placeholder-top;
left: 0;
padding-left: $ibo-activity-entry--main-information--is-closed--placeholder-padding-left;
width: 100%;
height: 100%;
background-color: inherit;
}
}
}
}
.ibo-activity-entry--medallion{
margin-right: $ibo-activity-entry--medallion--margin-with-information;
margin-bottom: $ibo-activity-entry--medallion--margin-bottom;
min-width: $ibo-activity-entry--medallion--diameter; /* We have to set a min-width, otherwise the medallion will be compressed when sibling element is too large */
width: $ibo-activity-entry--medallion--diameter;
min-height: $ibo-activity-entry--medallion--diameter;
height: $ibo-activity-entry--medallion--diameter;
overflow: hidden;
@extend %ibo-fully-centered-content;
border-radius: $ibo-activity-entry--medallion--border-radius;
@extend %ibo-font-size-150;
&.ibo-has-image{
background-color: $ibo-activity-entry--medallion--has-image--background-color;
box-shadow: $ibo-activity-entry--medallion--has-image--box-shadow;
}
&:not(.ibo-has-image){
background-color: $ibo-activity-entry--medallion--has-no-image--background-color;
color: $ibo-activity-entry--medallion--has-no-image--text-color;
border: $ibo-activity-entry--medallion--has-no-image--border;
}
.ibo-activity-entry--author-picture{
max-height: 100%;
}
}
.ibo-activity-entry--main-information{
position: relative;
display: flex;
flex-direction: row;
align-items: baseline;
padding: $ibo-activity-entry--main-information--padding-y $ibo-activity-entry--main-information--padding-x;
color: $ibo-activity-entry--main-information--text-color;
background-color: $ibo-activity-entry--main-information--background-color;
border-radius: $ibo-activity-entry--main-information--border-radius;
}
.ibo-activity-entry--main-information-icon{
margin-right: $ibo-activity-entry--main-information--elements-spacing;
color: $ibo-activity-entry--main-information-icon--text-color;
font-size: $ibo-activity-entry--main-information-icon--font-size;
}
.ibo-activity-entry--main-information-content {
flex-grow: 1; /* So it occupies all the remaining width, which is easier for the user to click */
word-break: break-word; /* To avoid content to overflow its container (typically very long URLs) */
/* Specific hyperlink color */
a {
color: $ibo-activity-entry--main-information-hyperlink--text-color;
&:hover {
color: $ibo-activity-entry--main-information-hyperlink--on-hover--text-color;
}
&:active,
&:focus {
color: $ibo-activity-entry--main-information-hyperlink--on-active--text-color;
}
}
}
.ibo-activity-entry--sub-information {
margin-top: $ibo-activity-entry--sub-information--margin-top;
text-align: left;
color: $ibo-activity-entry--sub-information--text-color;
@extend %ibo-font-size-50;
> *:not(:last-child):after {
content: " ";
display: inline-block;
vertical-align: middle;
margin-left: $ibo-activity-entry--sub-information--sibling-spacing;
margin-right: $ibo-activity-entry--sub-information--sibling-spacing;
width: $ibo-activity-entry--sub-information-sibling-separator--size;
height: $ibo-activity-entry--sub-information-sibling-separator--size;
border-radius: $ibo-activity-entry--sub-information-sibling-separator--border-radius;
background-color: $ibo-activity-entry--sub-information-sibling-separator--background-color;
}
}
.ibo-activity-panel--load-more-entries-container {
position: relative;
@extend %ibo-fully-centered-content;
&:hover {
.ibo-activity-panel--load-all-entries {
margin-left: $ibo-activity-panel--load-all-entries--is-hover--margin-left;
}
}
&:not(:hover) {
.ibo-activity-panel--load-all-entries {
visibility: hidden;
}
}
}
.ibo-activity-panel--load-entries-button {
width: $ibo-activity-panel--load-entries-button--size;
height: $ibo-activity-panel--load-entries-button--size;
border-radius: $ibo-activity-panel--load-entries-button--border-radius;
background-color: $ibo-activity-panel--load-entries-button--background-color;
border: $ibo-activity-panel--load-entries-button--border;
@extend %ibo-fully-centered-content;
@extend %ibo-hyperlink-inherited-colors;
}
.ibo-activity-panel--load-more-entries {
z-index: 1;
}
.ibo-activity-panel--load-all-entries {
position: absolute;
z-index: 0; /* Must be below the other button as it will reveal later */
top: 0;
margin-left: 0;
transition: all 0.1s ease-in-out;
}