Use sass instead of pure css

This commit is contained in:
Zed
2019-09-13 10:44:21 +02:00
parent 08239a3fae
commit de828bdd79
21 changed files with 1452 additions and 6 deletions

133
src/sass/tweet/_base.scss Normal file
View File

@@ -0,0 +1,133 @@
@import '_variables';
@import '_mixins';
@import 'thread';
@import 'media';
@import 'video';
@import 'card';
@import 'poll';
@import 'quote';
.status-el {
overflow-wrap: break-word;
border-left-width: 0;
min-width: 0;
padding: .75em;
display: flex;
.status-content {
font-family: $font_3;
line-height: 1.4em;
}
}
.status-body {
flex: 1;
min-width: 0;
margin-left: 58px;
}
.tweet-header {
padding: 0;
vertical-align: bottom;
flex-basis: 100%;
margin-bottom: .2em;
a {
display: inline-block;
word-break: break-all;
max-width: 100%;
}
}
.tweet-name-row {
padding: 0;
display: flex;
justify-content: space-between;
}
.fullname-and-username {
display: flex;
min-width: 0;
}
.fullname {
@include ellipsis;
flex-shrink: 2;
max-width: 80%;
font-size: 14px;
font-weight: 700;
color: $fg_color;
}
.username {
@include ellipsis;
min-width: 1.6em;
margin-left: .4em;
word-wrap: normal;
}
.tweet-date {
display: flex;
flex-shrink: 0;
margin-left: 4px;
}
.tweet-avatar {
display: contents !important;
img {
float: left;
margin-top: 3px;
margin-left: -58px;
position: absolute;
width: 48px;
height: 48px;
border-radius: 50%;
}
}
.replying-to {
color: $fg_dark;
margin: -2px 0 4px;
}
.retweet, .pinned, .tweet-stats {
align-content: center;
color: $grey;
display: flex;
flex-shrink: 0;
flex-wrap: wrap;
font-size: 14px;
font-weight: 600;
line-height: 22px;
span {
@include ellipsis;
}
}
.retweet {
margin-top: -5px !important;
}
.tweet-stats {
margin-bottom: -3px;
}
.tweet-stat {
padding-top: 5px;
padding-right: 8px;
}
.show-thread {
display: block;
}
.unavailable-box {
width: 100%;
height: 100%;
padding: 12px;
border: solid 1px $dark_grey;
border-radius: 10px;
background-color: $bg_color;
}

112
src/sass/tweet/card.scss Normal file
View File

@@ -0,0 +1,112 @@
@import '_variables';
@import '_mixins';
.card {
margin: 5px 0;
}
.card-container {
border-radius: 10px;
border-width: 1px;
border-style: solid;
border-color: $dark_grey;
background-color: $bg_elements;
overflow: hidden;
color: inherit;
display: flex;
text-decoration: none !important;
&:hover {
border-color: $grey;
}
.attachments {
border-radius: 0;
}
}
.card-content {
padding: 0.5em;
}
.card-title {
@include ellipsis;
font-weight: bold;
font-size: 1.15em;
}
.card-description {
margin: 0.3em 0;
}
.card-destination {
@include ellipsis;
color: $grey;
display: block;
}
.card-content-container {
color: unset;
overflow: auto;
&:hover {
text-decoration: none;
}
}
.card-image-container {
width: 98px;
flex-shrink: 0;
position: relative;
overflow: hidden;
&:before {
content: "";
display: block;
padding-top: 100%;
}
}
.card-image {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
background-color: $fg_color;
img {
width: 100%;
height: 100%;
display: block;
object-fit: cover;
}
}
.card-overlay {
@include play-button;
opacity: 0.8;
display: flex;
justify-content: center;
align-items: center;
}
.large {
.card-container {
display: block;
}
.card-image-container {
width: unset;
&:before {
display: none;
}
}
.card-image {
position: unset;
border-style: solid;
border-color: $dark_grey;
border-width: 0;
border-bottom-width: 1px;
}
}

102
src/sass/tweet/media.scss Normal file
View File

@@ -0,0 +1,102 @@
@import '_variables';
.gallery-row {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
align-items: center;
overflow: hidden;
flex-grow: 1;
max-height: 379.5px;
max-width: 533px;
.still-image {
width: 100%;
}
}
.attachments {
margin-top: .35em;
display: flex;
flex-direction: row;
width: 100%;
max-height: 600px;
border-radius: 7px;
overflow: hidden;
flex-flow: column;
background-color: $bg_color;
align-items: center;
.image-attachment {
width: 100%;
}
}
.attachment {
position: relative;
line-height: 0;
overflow: hidden;
margin: 0 .25em 0 0;
flex-grow: 1;
box-sizing: border-box;
min-width: 2em;
&:last-child {
margin: 0;
max-height: 530px;
}
}
.still-image {
max-height: 379.5px;
max-width: 533px;
justify-content: center;
img {
object-fit: cover;
max-width: 100%;
max-height: 379.5px;
flex-basis: 300px;
}
}
.image {
display: inline-block;
}
.single-image {
display: inline-block;
width: unset;
}
.overlay-circle {
border-radius: 50%;
background-color: $dark_grey;
width: 40px;
height: 40px;
align-items: center;
display: flex;
border-width: 5px;
border-color: $play_button_red;
border-style: solid;
}
.overlay-triangle {
width: 0;
height: 0;
border-style: solid;
border-width: 12px 0 12px 17px;
border-color: transparent transparent transparent $play_button_red;
margin-left: 14px;
}
.media-gif {
display: inline-block;
background-color: unset;
}
.media-body {
flex: 1;
padding: 0;
white-space: pre-wrap;
}

39
src/sass/tweet/poll.scss Normal file
View File

@@ -0,0 +1,39 @@
@import '_variables';
.poll-meter {
overflow: hidden;
position: relative;
margin: 6px 0;
height: 26px;
background: $bg_color;
border-radius: 5px;
display: flex;
align-items: center;
}
.poll-choice-bar {
height: 100%;
position: absolute;
background: $dark_grey;
}
.poll-choice-value {
position: relative;
font-weight: bold;
margin-left: 5px;
margin-right: 6px;
min-width: 30px;
text-align: right;
}
.poll-choice-option {
position: relative;
}
.poll-info {
color: $grey;
}
.leader .poll-choice-bar {
background: $accent_dark;
}

102
src/sass/tweet/quote.scss Normal file
View File

@@ -0,0 +1,102 @@
@import '_variables';
.quote {
margin-top: 10px;
border: solid 1px $dark_grey;
border-radius: 10px;
background-color: $bg_elements;
overflow: auto;
padding: 6px;
position: relative;
&:hover {
border-color: $grey;
}
&.unavailable:hover {
border-color: $dark_grey;
}
}
.unavailable-quote {
padding: 6px;
}
.quote-link {
height: 100%;
width: 100%;
left: 0;
top: 0;
position: absolute;
}
.quote-text {
overflow: hidden;
white-space: pre-wrap;
word-wrap: break-word;
}
.quote-media-container {
display: flex;
flex-direction: column;
align-items: center;
overflow: hidden;
max-height: 102px;
width: 102px;
float: left;
margin-right: 7px;
border-radius: 7px;
position: relative;
}
.quote-media {
display: flex;
justify-content: center;
pointer-events: none;
img {
width: 100%;
height: 100%;
align-self: center;
}
}
.quote-badge {
left: 0;
bottom: 0;
position: absolute;
z-index: 1;
align-self: flex-end;
}
.quote-badge-text {
margin: 4px;
background: $shadow;
border-radius: 4px;
color: #fffffff0;
padding: 1px 3px;
font-size: 12px;
font-weight: bold;
}
.quote-sensitive {
background: $darker_grey;
width: 102px;
height: 102px;
border-radius: 12px;
display: flex;
justify-content: center;
align-items: center;
}
.quote-sensitive-icon {
font-size: 40px;
color: $grey;
}
@media(max-width: 600px) {
.quote-media-container {
width: 70px;
max-height: 70px;
}
}

View File

@@ -0,0 +1,73 @@
@import '_variables';
@import '_mixins';
.conversation {
@include panel(100%, 600px);
background-color: $bg_color !important;
}
.main-thread {
margin-bottom: 20px;
background-color: $bg_panel;
}
.main-tweet .status-content {
font-size: 20px;
}
.reply {
background-color: $bg_panel;
margin-bottom: 10px;
}
.thread-line {
.status-el::before {
background: $accent_dark;
content: '';
position: relative;
min-width: 3px;
width: 3px;
left: 26px;
border-radius: 2px;
margin-left: -3px;
margin-bottom: 37px;
top: 56px;
}
.unavailable::before {
top: 48px;
margin-bottom: 28px;
}
.more-replies::before {
content: '...';
background: unset;
color: $more_replies_dots;
font-weight: bold;
font-size: 20px;
line-height: 0.25em;
left: 1.2em;
width: 5px;
top: 2px;
margin-bottom: 0;
margin-left: -5px;
}
}
.thread-last .status-el::before {
background: unset;
min-width: unset;
width: 0;
margin: 0;
}
.more-replies {
padding-top: 0.3em !important;
}
.more-replies-text {
@include ellipsis;
display: block;
margin-left: 58px;
padding: 7px 0;
}

58
src/sass/tweet/video.scss Normal file
View File

@@ -0,0 +1,58 @@
@import '_variables';
@import '_mixins';
video {
height: 100%;
width: 100%;
}
.gallery-video {
display: flex;
overflow: hidden;
}
.video-container {
max-height: 530px;
img {
height: 100%;
width: 100%;
}
}
.video-overlay {
@include play-button;
background-color: $shadow;
p {
position: relative;
z-index: 0;
text-align: center;
top: calc(50% - 20px);
font-size: 20px;
line-height: 1.3;
margin: 0 20px;
}
div {
position: relative;
z-index: 0;
top: calc(50% - 20px);
margin: 0 auto;
width: 40px;
height: 40px;
}
form {
width: 100%;
height: 100%;
align-items: center;
justify-content: center;
display: flex;
}
button {
padding: 5px 8px;
font-size: 16px;
}
}