mirror of
https://github.com/discourse/discourse.git
synced 2024-12-14 20:53:59 +08:00
03deda2147
* Add missing icons to set
* Revert FA5 revert
This reverts commit 42572ff
* use new SVG syntax in locales
* Noscript page changes (remove login button, center "powered by" footer text)
* Cast wider net for SVG icons in settings
- include any _icon setting for SVG registry (offers better support for plugin settings)
- let themes store multiple pipe-delimited icons in a setting
- also replaces broken onebox image icon with SVG reference in cooked post processor
* interpolate icons in locales
* Fix composer whisper icon alignment
* Add support for stacked icons
* SECURITY: enforce hostname to match discourse hostname
This ensures that the hostname rails uses for various helpers always matches
the Discourse hostname
* load SVG sprite with pre-initializers
* FIX: enable caching on SVG sprites
* PERF: use JSONP for SVG sprites so they are served from CDN
This avoids needing to deal with CORS for loading of the SVG
Note, added the svg- prefix to the filename so we can quickly tell in
dev tools what the file is
* Add missing SVG sprite JSONP script to CSP
* Upgrade to FA 5.5.0
* Add support for all FA4.7 icons
- adds complete frontend and backend for renamed FA4.7 icons
- improves performance of SvgSprite.bundle and SvgSprite.all_icons
* Fix group avatar flair preview
- adds an endpoint at /svg-sprites/search/:keyword
- adds frontend ajax call that pulls icon in avatar flair preview even when it is not in subset
* Remove FA 4.7 font files
287 lines
6.1 KiB
SCSS
287 lines
6.1 KiB
SCSS
.timeline-loading {
|
|
width: 900px;
|
|
}
|
|
|
|
.timeline-container {
|
|
box-sizing: border-box;
|
|
z-index: z("timeline");
|
|
margin-left: 757px;
|
|
|
|
@include breakpoint(extra-large, min-width) {
|
|
margin-left: 820px;
|
|
}
|
|
@media all and (min-width: 1250px) {
|
|
margin-left: 900px;
|
|
}
|
|
|
|
position: fixed;
|
|
-webkit-transform: translate3d(0, 0, 0);
|
|
|
|
&.timeline-docked {
|
|
position: absolute;
|
|
}
|
|
|
|
&.timeline-docked-bottom {
|
|
.timeline-footer-controls {
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
cursor: default;
|
|
}
|
|
}
|
|
|
|
&.timeline-fullscreen.show {
|
|
max-height: 700px;
|
|
transition: max-height 0.4s ease-out;
|
|
@media screen and (max-height: 425px) {
|
|
max-height: 75vh;
|
|
}
|
|
.topic-timeline {
|
|
.timeline-footer-controls {
|
|
display: inherit;
|
|
}
|
|
}
|
|
}
|
|
|
|
&.timeline-fullscreen {
|
|
max-height: 0;
|
|
transition: max-height 0.3s ease-in;
|
|
position: fixed;
|
|
margin-left: 0;
|
|
background-color: $secondary;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
border-top: 1px solid dark-light-choose($primary-low, $secondary-low);
|
|
box-shadow: shadow("composer");
|
|
padding-top: 20px;
|
|
z-index: z("fullscreen");
|
|
@media screen and (max-height: 425px) {
|
|
padding-top: 10px;
|
|
}
|
|
.back-button {
|
|
display: none;
|
|
}
|
|
.topic-timeline {
|
|
width: 100%;
|
|
table-layout: fixed;
|
|
margin-left: 0;
|
|
margin-right: 0;
|
|
display: table;
|
|
touch-action: none;
|
|
|
|
.timeline-date-wrapper {
|
|
float: right;
|
|
text-align: right;
|
|
}
|
|
.post-excerpt {
|
|
max-width: 650px;
|
|
max-height: 165px;
|
|
line-height: $line-height-large;
|
|
overflow: hidden;
|
|
word-wrap: break-word;
|
|
text-overflow: ellipsis;
|
|
display: block;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 8;
|
|
@media screen and (max-height: 425px) {
|
|
-webkit-line-clamp: 5;
|
|
}
|
|
-webkit-box-orient: vertical;
|
|
}
|
|
.username {
|
|
color: dark-light-choose($primary-high, $secondary-low);
|
|
word-wrap: break-word;
|
|
font-weight: bold;
|
|
}
|
|
.title {
|
|
margin-top: 0;
|
|
padding-left: 1em;
|
|
display: table-cell;
|
|
vertical-align: top;
|
|
width: 100%;
|
|
h2 {
|
|
margin-top: 0;
|
|
display: block;
|
|
display: -webkit-box;
|
|
-webkit-line-clamp: 4;
|
|
-webkit-box-orient: vertical;
|
|
max-height: 110px;
|
|
line-height: $line-height-medium;
|
|
word-wrap: break-word;
|
|
text-overflow: ellipsis;
|
|
overflow: hidden;
|
|
font-size: $font-up-2;
|
|
}
|
|
a {
|
|
color: $primary;
|
|
}
|
|
}
|
|
.timeline-last-read {
|
|
right: 0;
|
|
margin-left: 0;
|
|
.progress {
|
|
display: none;
|
|
}
|
|
}
|
|
.timeline-footer-controls {
|
|
display: none;
|
|
position: absolute;
|
|
bottom: 10px;
|
|
left: 10px;
|
|
|
|
button,
|
|
.btn-group {
|
|
float: none;
|
|
display: inline-block;
|
|
margin-bottom: 0;
|
|
margin-right: 15px;
|
|
position: static;
|
|
}
|
|
}
|
|
.timeline-scrollarea-wrapper {
|
|
display: table-cell;
|
|
padding-bottom: 20px;
|
|
padding-right: 1.5em;
|
|
width: 100px;
|
|
}
|
|
.timeline-scrollarea {
|
|
border-left: 0;
|
|
border-right-style: solid;
|
|
border-right-width: 1px;
|
|
max-width: 120px;
|
|
float: right;
|
|
|
|
.timeline-scroller {
|
|
position: relative;
|
|
margin-right: -1.5em;
|
|
padding-right: 1.5em;
|
|
justify-content: flex-end;
|
|
.timeline-scroller-content {
|
|
text-align: right;
|
|
padding-left: 0;
|
|
padding-right: 1em;
|
|
}
|
|
.timeline-handle {
|
|
float: none;
|
|
width: 11px;
|
|
position: relative;
|
|
right: -6px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.timeline-scrollarea-wrapper::after {
|
|
content: "";
|
|
display: table;
|
|
clear: both;
|
|
}
|
|
}
|
|
|
|
.topic-timeline {
|
|
margin-left: 3em;
|
|
transition: opacity 0.2s ease-in;
|
|
touch-action: none;
|
|
|
|
.timeline-controls {
|
|
margin-bottom: 1em;
|
|
|
|
button {
|
|
margin-right: 0.5em;
|
|
}
|
|
}
|
|
|
|
.timeline-footer-controls {
|
|
margin-top: 1.5em;
|
|
transition: opacity 0.2s ease-in;
|
|
display: flex;
|
|
|
|
button {
|
|
margin-right: 0.5em;
|
|
}
|
|
|
|
button:last-child {
|
|
margin-right: 0;
|
|
}
|
|
}
|
|
|
|
.start-date {
|
|
@include unselectable;
|
|
color: dark-light-choose($primary-medium, $secondary-medium);
|
|
}
|
|
|
|
.timeline-scrollarea {
|
|
margin-top: 0.5em;
|
|
margin-left: 0.5em;
|
|
border-left: 1px solid;
|
|
border-color: dark-light-choose($tertiary-low, $tertiary-high);
|
|
position: relative;
|
|
-webkit-transform: translate3d(0, 0, 0);
|
|
}
|
|
|
|
.timeline-padding {
|
|
transition: height 0.15s ease-out;
|
|
cursor: pointer;
|
|
.widget-dragging & {
|
|
transition: none;
|
|
}
|
|
}
|
|
|
|
.timeline-handle {
|
|
border-radius: 0.8em;
|
|
width: 0.35em;
|
|
background-color: dark-light-choose($tertiary-low, $tertiary-high);
|
|
height: 100%;
|
|
float: left;
|
|
z-index: z("base") + 1;
|
|
}
|
|
|
|
.timeline-scroller-content {
|
|
padding-left: 1em;
|
|
}
|
|
|
|
.timeline-ago {
|
|
color: dark-light-choose($primary-medium, $secondary-medium);
|
|
}
|
|
|
|
.timeline-scroller {
|
|
@include unselectable;
|
|
margin-left: -0.19em;
|
|
cursor: ns-resize;
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
.back-button {
|
|
margin-top: 1em;
|
|
}
|
|
}
|
|
|
|
.timeline-replies {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.timeline-last-read {
|
|
position: absolute;
|
|
margin-left: -0.35em;
|
|
.progress {
|
|
font-size: 0.8em;
|
|
color: $tertiary;
|
|
margin-right: 1em;
|
|
}
|
|
z-index: z("base") + 2; // above timeline-handle
|
|
}
|
|
|
|
.back-button {
|
|
min-height: unset;
|
|
padding: 2px 5px;
|
|
}
|
|
|
|
.now-date {
|
|
@include unselectable;
|
|
display: inline-block;
|
|
color: dark-light-choose($primary-medium, $secondary-medium);
|
|
margin-top: 0.5em;
|
|
}
|
|
}
|
|
}
|