mediawiki-extensions-Echo/modules/styles/mw.echo.ui.NotificationItemWidget.less

291 lines
5.5 KiB
Plaintext
Raw Normal View History

@import 'mediawiki.skin.variables.less';
@import 'mediawiki.mixins.less';
@import '../echo.variables.less';
@import '../echo.mixins.less';
Split alerts and messages in Echo Split the notifications into 'alert' and 'message' badget with two different flyouts. Also clean up styling and module behavior. ** Depends on ooui change Id4bbe14ba0bf6c for footers in popups. ** Depends on ooui change Ie93e4d6ed5637c for fixing a bug in inverted icons. ** MobileFrontend must also be updated to support the new modules in this patch I168f485d6e54cb4067 In this change: * Split notifcations into alert and messages and display those in two different badges. * Create two separate flyout/popups for each category with their notifications. * Create a view-model to control notification state and emit events for both the popup and the badge to intercept and react to. * Clean up module load and distribution: * Create an ext.echo.ui module for javascript-ui support and ooui widgets. * Create an ext.echo.nojs module that unifies all base classes that are needed for both nojs and js support, that the js version builds upon. * Create a separate ext.echo.logger module as a singleton that can be called to perform all logging. * Clean up style uses * Move the special page LESS file into nojs module so all styles load properly even in nojs mode. * Transfer some of the styling from JS to LESS for consistency. * Make the 'read more' button load already with the styles it needs to look like a button, since its behavior is similar in nojs and js vesions, but before its classes were applied only by the js, making it inconsistent and also making its appearance 'jump' from a link to a button. * Delete and clean up all old and unused files. * Moved 'Help.png' icon from modules/overlay to modules/icons for later use. Bug: T108190 Change-Id: I55f440ed9f64c46817f620328a6bb522d44c9ca9
2015-08-13 00:54:16 +00:00
.mw-echo-ui-notificationItemWidget {
display: block;
background-color: @notification-item-background-read;
position: relative;
white-space: normal;
padding: 0.8em 1em 0.5em 1em;
box-sizing: border-box;
border: @border-width-base @border-style-base @border-color-subtle;
margin-bottom: -1px;
&:not( [ href ] ) {
// Items without a primary URL are not clickable
cursor: default;
}
label {
// Reset browser default of cursor:default;
cursor: inherit;
}
&:hover {
text-decoration: none;
background-color: #ececec;
}
&:focus {
text-decoration: none;
box-shadow: @box-shadow-inset-small @box-shadow-color-progressive--focus;
border-color: @border-color-progressive--focus;
outline: @outline-base--focus;
z-index: 1;
}
Split alerts and messages in Echo Split the notifications into 'alert' and 'message' badget with two different flyouts. Also clean up styling and module behavior. ** Depends on ooui change Id4bbe14ba0bf6c for footers in popups. ** Depends on ooui change Ie93e4d6ed5637c for fixing a bug in inverted icons. ** MobileFrontend must also be updated to support the new modules in this patch I168f485d6e54cb4067 In this change: * Split notifcations into alert and messages and display those in two different badges. * Create two separate flyout/popups for each category with their notifications. * Create a view-model to control notification state and emit events for both the popup and the badge to intercept and react to. * Clean up module load and distribution: * Create an ext.echo.ui module for javascript-ui support and ooui widgets. * Create an ext.echo.nojs module that unifies all base classes that are needed for both nojs and js support, that the js version builds upon. * Create a separate ext.echo.logger module as a singleton that can be called to perform all logging. * Clean up style uses * Move the special page LESS file into nojs module so all styles load properly even in nojs mode. * Transfer some of the styling from JS to LESS for consistency. * Make the 'read more' button load already with the styles it needs to look like a button, since its behavior is similar in nojs and js vesions, but before its classes were applied only by the js, making it inconsistent and also making its appearance 'jump' from a link to a button. * Delete and clean up all old and unused files. * Moved 'Help.png' icon from modules/overlay to modules/icons for later use. Bug: T108190 Change-Id: I55f440ed9f64c46817f620328a6bb522d44c9ca9
2015-08-13 00:54:16 +00:00
&-unread {
background-color: @background-color-base;
&:hover {
background-color: #f8f9fa;
}
}
> a,
&:hover > a {
text-decoration: none;
}
// Dynamic-action messages in mw.notify
&-notify {
&-title {
font-weight: bold;
}
}
&-icon {
position: absolute;
img {
height: 30px;
width: 30px;
}
}
&-content {
display: block;
box-sizing: border-box;
// The icon is 30px
margin-left: 30px;
padding-left: 0.8em;
&-message {
line-height: 1.3em;
// Compensate for the placement of the 'mark as read'
// button, so the message is not stretched past it.
// The 'mark as read' circle is placed with a right
// margin of -1em
padding-right: 1em;
// break-word rules are inconsistent accross browsers
// these three rules should cover the main use cases
// with major browser support
word-break: break-word;
word-wrap: break-word;
overflow-wrap: break-word;
&-header {
color: @color-emphasized;
}
&-body {
color: @notification-body-color;
margin-top: 4px;
// In the popup only, truncate the text to one-line
// with ellipses
.mw-echo-ui-notificationBadgeButtonPopupWidget-popup & {
.text-overflow( @visible: false );
}
}
}
&-actions {
display: flex;
align-items: flex-end;
font-size: 0.9em;
margin-top: 0.8em;
& > &-buttons.oo-ui-buttonSelectWidget {
display: flex;
overflow: hidden;
> .oo-ui-buttonOptionWidget {
min-width: 7em;
overflow: hidden;
.oo-ui-labelElement-label {
text-overflow: ellipsis;
overflow: hidden;
display: inline-block;
}
}
}
&-button {
margin-right: 1.2em;
}
.mw-echo-ui-menuItemWidget-prioritized {
// Option widget already has some right padding
margin-right: 0.6em;
}
&-menu {
vertical-align: bottom;
padding: 0;
> .oo-ui-buttonElement-button {
.mw-echo-ui-mixin-hover-opacity();
}
}
&-timestamp {
flex-grow: 1;
text-align: right;
vertical-align: bottom;
color: @color-emphasized;
opacity: @opacity-low;
white-space: nowrap;
}
}
Split alerts and messages in Echo Split the notifications into 'alert' and 'message' badget with two different flyouts. Also clean up styling and module behavior. ** Depends on ooui change Id4bbe14ba0bf6c for footers in popups. ** Depends on ooui change Ie93e4d6ed5637c for fixing a bug in inverted icons. ** MobileFrontend must also be updated to support the new modules in this patch I168f485d6e54cb4067 In this change: * Split notifcations into alert and messages and display those in two different badges. * Create two separate flyout/popups for each category with their notifications. * Create a view-model to control notification state and emit events for both the popup and the badge to intercept and react to. * Clean up module load and distribution: * Create an ext.echo.ui module for javascript-ui support and ooui widgets. * Create an ext.echo.nojs module that unifies all base classes that are needed for both nojs and js support, that the js version builds upon. * Create a separate ext.echo.logger module as a singleton that can be called to perform all logging. * Clean up style uses * Move the special page LESS file into nojs module so all styles load properly even in nojs mode. * Transfer some of the styling from JS to LESS for consistency. * Make the 'read more' button load already with the styles it needs to look like a button, since its behavior is similar in nojs and js vesions, but before its classes were applied only by the js, making it inconsistent and also making its appearance 'jump' from a link to a button. * Delete and clean up all old and unused files. * Moved 'Help.png' icon from modules/overlay to modules/icons for later use. Bug: T108190 Change-Id: I55f440ed9f64c46817f620328a6bb522d44c9ca9
2015-08-13 00:54:16 +00:00
}
&-markAsReadButton {
float: right;
font-size: 1em;
// Compensate for the padding in the item widget
margin-top: -0.8em;
margin-right: -1em;
padding: 0;
.mw-echo-ui-notificationItemWidget-bundled & {
margin-top: 0;
}
}
// Table layout only for the content inside bundles
&-bundled {
display: table;
width: 100%;
padding: 0.5em;
.mw-echo-ui-notificationItemWidget-content {
display: table-row;
padding-left: 0.5em + 1.5em;
.mw-echo-ui-notificationItemWidget {
// CSS table layout
&-icon,
&-content-message,
&-content-actions,
&-markAsReadButton {
display: table-cell;
vertical-align: top;
}
// Positioning fixes for bundled items
&-icon {
position: relative;
padding-right: 0.5em;
img {
height: 20px;
width: 20px;
}
}
&-content-message {
display: table-cell;
padding-right: 0.5em;
width: 100%;
&-header {
width: 100%;
&-wrapper {
position: relative;
}
// Bundled notifications don't have bodies, only headers,
// so they use <em> to designate excerpts. Use the body color
// for these.
em {
color: @notification-body-color;
font-style: normal;
}
}
}
&-content-actions {
&-row {
display: table-row;
}
&-buttons {
display: table-cell;
vertical-align: middle;
}
&-menu {
display: table-cell;
vertical-align: middle;
}
&-timestamp {
float: none;
display: table-cell;
vertical-align: middle;
padding-right: 0.5em;
white-space: nowrap;
}
}
&-markAsReadButton {
display: table-cell;
vertical-align: top;
float: none;
}
}
}
}
&-initiallyUnseen {
animation-name: unseen-fadeout-to-read;
animation-duration: 0.5s;
Split alerts and messages in Echo Split the notifications into 'alert' and 'message' badget with two different flyouts. Also clean up styling and module behavior. ** Depends on ooui change Id4bbe14ba0bf6c for footers in popups. ** Depends on ooui change Ie93e4d6ed5637c for fixing a bug in inverted icons. ** MobileFrontend must also be updated to support the new modules in this patch I168f485d6e54cb4067 In this change: * Split notifcations into alert and messages and display those in two different badges. * Create two separate flyout/popups for each category with their notifications. * Create a view-model to control notification state and emit events for both the popup and the badge to intercept and react to. * Clean up module load and distribution: * Create an ext.echo.ui module for javascript-ui support and ooui widgets. * Create an ext.echo.nojs module that unifies all base classes that are needed for both nojs and js support, that the js version builds upon. * Create a separate ext.echo.logger module as a singleton that can be called to perform all logging. * Clean up style uses * Move the special page LESS file into nojs module so all styles load properly even in nojs mode. * Transfer some of the styling from JS to LESS for consistency. * Make the 'read more' button load already with the styles it needs to look like a button, since its behavior is similar in nojs and js vesions, but before its classes were applied only by the js, making it inconsistent and also making its appearance 'jump' from a link to a button. * Delete and clean up all old and unused files. * Moved 'Help.png' icon from modules/overlay to modules/icons for later use. Bug: T108190 Change-Id: I55f440ed9f64c46817f620328a6bb522d44c9ca9
2015-08-13 00:54:16 +00:00
animation-delay: 2s;
animation-timing-function: ease-out;
animation-fill-mode: both;
&.mw-echo-ui-notificationItemWidget-unread {
animation-name: unseen-fadeout-to-unread;
Split alerts and messages in Echo Split the notifications into 'alert' and 'message' badget with two different flyouts. Also clean up styling and module behavior. ** Depends on ooui change Id4bbe14ba0bf6c for footers in popups. ** Depends on ooui change Ie93e4d6ed5637c for fixing a bug in inverted icons. ** MobileFrontend must also be updated to support the new modules in this patch I168f485d6e54cb4067 In this change: * Split notifcations into alert and messages and display those in two different badges. * Create two separate flyout/popups for each category with their notifications. * Create a view-model to control notification state and emit events for both the popup and the badge to intercept and react to. * Clean up module load and distribution: * Create an ext.echo.ui module for javascript-ui support and ooui widgets. * Create an ext.echo.nojs module that unifies all base classes that are needed for both nojs and js support, that the js version builds upon. * Create a separate ext.echo.logger module as a singleton that can be called to perform all logging. * Clean up style uses * Move the special page LESS file into nojs module so all styles load properly even in nojs mode. * Transfer some of the styling from JS to LESS for consistency. * Make the 'read more' button load already with the styles it needs to look like a button, since its behavior is similar in nojs and js vesions, but before its classes were applied only by the js, making it inconsistent and also making its appearance 'jump' from a link to a button. * Delete and clean up all old and unused files. * Moved 'Help.png' icon from modules/overlay to modules/icons for later use. Bug: T108190 Change-Id: I55f440ed9f64c46817f620328a6bb522d44c9ca9
2015-08-13 00:54:16 +00:00
}
}
// NOTE: The internal styling of the notifications is outside this file, because
// it also affects the notifications in Special:Notifications
// These styles are in modules/nojs/ext.echo.notifications.less
}
@keyframes unseen-fadeout-to-unread {
from {
background-color: @notification-background-unseen;
}
to {
background-color: @notification-background-unread;
}
Split alerts and messages in Echo Split the notifications into 'alert' and 'message' badget with two different flyouts. Also clean up styling and module behavior. ** Depends on ooui change Id4bbe14ba0bf6c for footers in popups. ** Depends on ooui change Ie93e4d6ed5637c for fixing a bug in inverted icons. ** MobileFrontend must also be updated to support the new modules in this patch I168f485d6e54cb4067 In this change: * Split notifcations into alert and messages and display those in two different badges. * Create two separate flyout/popups for each category with their notifications. * Create a view-model to control notification state and emit events for both the popup and the badge to intercept and react to. * Clean up module load and distribution: * Create an ext.echo.ui module for javascript-ui support and ooui widgets. * Create an ext.echo.nojs module that unifies all base classes that are needed for both nojs and js support, that the js version builds upon. * Create a separate ext.echo.logger module as a singleton that can be called to perform all logging. * Clean up style uses * Move the special page LESS file into nojs module so all styles load properly even in nojs mode. * Transfer some of the styling from JS to LESS for consistency. * Make the 'read more' button load already with the styles it needs to look like a button, since its behavior is similar in nojs and js vesions, but before its classes were applied only by the js, making it inconsistent and also making its appearance 'jump' from a link to a button. * Delete and clean up all old and unused files. * Moved 'Help.png' icon from modules/overlay to modules/icons for later use. Bug: T108190 Change-Id: I55f440ed9f64c46817f620328a6bb522d44c9ca9
2015-08-13 00:54:16 +00:00
}
@keyframes unseen-fadeout-to-read {
from {
background-color: @notification-background-unseen;
}
to {
background-color: @notification-background-read;
}
Split alerts and messages in Echo Split the notifications into 'alert' and 'message' badget with two different flyouts. Also clean up styling and module behavior. ** Depends on ooui change Id4bbe14ba0bf6c for footers in popups. ** Depends on ooui change Ie93e4d6ed5637c for fixing a bug in inverted icons. ** MobileFrontend must also be updated to support the new modules in this patch I168f485d6e54cb4067 In this change: * Split notifcations into alert and messages and display those in two different badges. * Create two separate flyout/popups for each category with their notifications. * Create a view-model to control notification state and emit events for both the popup and the badge to intercept and react to. * Clean up module load and distribution: * Create an ext.echo.ui module for javascript-ui support and ooui widgets. * Create an ext.echo.nojs module that unifies all base classes that are needed for both nojs and js support, that the js version builds upon. * Create a separate ext.echo.logger module as a singleton that can be called to perform all logging. * Clean up style uses * Move the special page LESS file into nojs module so all styles load properly even in nojs mode. * Transfer some of the styling from JS to LESS for consistency. * Make the 'read more' button load already with the styles it needs to look like a button, since its behavior is similar in nojs and js vesions, but before its classes were applied only by the js, making it inconsistent and also making its appearance 'jump' from a link to a button. * Delete and clean up all old and unused files. * Moved 'Help.png' icon from modules/overlay to modules/icons for later use. Bug: T108190 Change-Id: I55f440ed9f64c46817f620328a6bb522d44c9ca9
2015-08-13 00:54:16 +00:00
}