Updated all component styles

new mixins, consolidated
all original styles files uncomitted
This commit is contained in:
mgabdev 2019-08-12 16:48:46 -04:00
parent 3d509c84a2
commit 47b43d78d9
45 changed files with 829 additions and 202 deletions

View File

@ -17,7 +17,7 @@
display: block; display: block;
color: $primary-text-color; color: $primary-text-color;
@include text-overflow; @include text-overflow(nowrap);
} }
} }

View File

@ -38,17 +38,14 @@
outline: 0; outline: 0;
} }
@media screen and (max-width: 600px) {
font-size: 16px;
}
&::-webkit-scrollbar { &::-webkit-scrollbar {
all: unset; all: unset;
} }
@media screen and (max-width: 600px) { @include breakpoint(sm) {
max-height: 100px !important; // prevent auto-resize textarea max-height: 100px !important; // prevent auto-resize textarea
resize: vertical; resize: vertical;
font-size: 16px;
} }
} }

View File

@ -1,9 +1,16 @@
.avatar { .avatar,
.account__avatar {
// @include avatar-radius(); // @include avatar-radius();
display: block; display: block;
position: relative; position: relative;
// background-color: $ui-base-color; // background-color: $ui-base-color;
object-fit: cover; object-fit: cover;
background-size: cover;
// TEMPORARY - need a default size for the avatars for now
// They are sized individually all over the application and need to change with breakpoints as well
// Might create a mixin to accept the size attribute and apply the various properties where necessary
@include size(56px);
&--inline { &--inline {
display: inline-block; display: inline-block;
@ -23,3 +30,7 @@
} }
} }
} }
a .account__avatar {
cursor: pointer;
}

View File

@ -1,4 +1,6 @@
.avatar-overlay { .avatar-overlay {
background-size: 48px 48px;
@include circle(48px); @include circle(48px);
&__base { &__base {

View File

@ -12,7 +12,7 @@
@include border-design(transparent, 10px, 4px); @include border-design(transparent, 10px, 4px);
@include text-sizing(14px, 500, 36px, center); @include text-sizing(14px, 500, 36px, center);
@include size(auto, 36px); @include size(auto, 36px);
@include text-overflow; @include text-overflow(nowrap);
&:active, &:active,
&:focus, &:focus,

View File

@ -4,4 +4,19 @@
box-sizing: border-box; box-sizing: border-box;
flex-direction: column; flex-direction: column;
width: 350px; width: 350px;
flex: 1 1 100%;
overflow: hidden;
@media screen and (min-width: 631px) {
flex: 0 0 auto;
padding: 10px 5px;
&:first-child {
padding-left: 10px;
}
&:last-child {
padding-right: 10px;
}
}
} }

View File

@ -49,3 +49,45 @@
.no-reduce-motion .column-indicator--loading .column-indicator__figure { .no-reduce-motion .column-indicator--loading .column-indicator__figure {
animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000); animation: loader-figure 1.15s infinite cubic-bezier(0.215, 0.610, 0.355, 1.000);
} }
@keyframes loader-label {
0% {
opacity: 0.25;
}
30% {
opacity: 1;
}
100% {
opacity: 0.25;
}
}
@keyframes loader-figure {
0% {
background-color: lighten($ui-base-color, 26%);
@include size(0);
}
29% {
background-color: lighten($ui-base-color, 26%);
}
30% {
background-color: transparent;
border-width: 21px;
opacity: 1;
@include size(42px);
}
100% {
border-width: 0;
opacity: 0;
background-color: transparent;
@include size(42px);
}
}

View File

@ -8,14 +8,13 @@
flex: 1 1 auto; flex: 1 1 auto;
} }
&__title { &__title {}
}
&__input { &__input {
width: 100%;
margin-bottom: 6px; margin-bottom: 6px;
@include size(100%, 36px);
&:focus { &:focus {
outline: 0; outline: 0;
} }
@ -24,5 +23,7 @@
&__btn { &__btn {
flex: 0 0 auto; flex: 0 0 auto;
margin: 0 5px; margin: 0 5px;
margin-left: 6px;
width: 112px;
} }
} }

View File

@ -2,8 +2,8 @@
background: $ui-base-color; background: $ui-base-color;
color: $dark-text-color; color: $dark-text-color;
padding: 8px 20px; padding: 8px 20px;
font-size: 12px;
font-weight: 500;
text-transform: uppercase; text-transform: uppercase;
cursor: default; cursor: default;
@include text-sizing(12px, 500);
} }

View File

@ -24,25 +24,22 @@
} }
.columns-area { .columns-area {
display: flex;
flex: 1 1 auto; flex: 1 1 auto;
flex-direction: row;
justify-content: flex-start;
position: relative; position: relative;
&__panels { @include flex(center, stretch, row);
display: flex;
justify-content: center;
&__panels {
@include size(100%); @include size(100%);
@include flex(center);
&__pane { &__pane {
height: 100%; height: 100%;
pointer-events: none; pointer-events: none;
display: flex;
justify-content: flex-end;
padding-top: 15px; padding-top: 15px;
@include flex(flex-end);
&--start { &--start {
justify-content: flex-start; justify-content: flex-start;
} }
@ -78,14 +75,12 @@
@media screen and (min-width: 631px) { @media screen and (min-width: 631px) {
.columns-area { .columns-area {
padding: 0; padding: 0;
}
.columns-area>div {
>div {
.column, .column,
.drawer { .drawer {
padding-left: 5px; @include horizontal-padding(5px);
padding-right: 5px; }
} }
} }
} }
@ -104,9 +99,9 @@
} }
.search__input { .search__input {
line-height: 18px;
font-size: 16px;
padding: 15px 30px 15px 15px; padding: 15px 30px 15px 15px;
@include text-sizing(16px, 400, 18px);
} }
.search__icon .fa { .search__icon .fa {
@ -163,8 +158,7 @@
} }
.account__avatar-wrapper { .account__avatar-wrapper {
margin-left: 17px; @include horizontal-margin(17px, 15px);
margin-right: 15px;
} }
} }
} }

View File

@ -2,11 +2,11 @@
z-index: 9999; z-index: 9999;
position: absolute; position: absolute;
background: $gab-background-container; background: $gab-background-container;
border-radius: 4px;
border: 1px solid $gab-placeholder-accent;
padding: 4px 0; padding: 4px 0;
box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.5); box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.5);
@include border-design($gab-placeholder-accent, 1px, 4px);
&.left { &.left {
transform-origin: 100% 50%; transform-origin: 100% 50%;
} }
@ -71,7 +71,7 @@
text-transform: capitalize; text-transform: capitalize;
color: $gab-secondary-text; color: $gab-secondary-text;
@include text-overflow; @include text-overflow(nowrap);
@include text-sizing(13px, 400, 26px); @include text-sizing(13px, 400, 26px);
&:focus, &:focus,

View File

@ -0,0 +1,3 @@
.star-icon.active {
color: $gold-star;
}

View File

@ -1,7 +1,6 @@
.link-footer { .link-footer {
flex: 0 0 auto; flex: 0 0 auto;
padding: 10px; padding: 20px 10px 10px 10px;
padding-top: 20px;
ul { ul {
margin-bottom: 10px; margin-bottom: 10px;

View File

@ -1,12 +1,10 @@
.embed-modal { .embed-modal {
max-width: 80vw; @include max-size(80vw, 80vh);
max-height: 80vh;
h4 { h4 {
padding: 30px; padding: 30px;
font-weight: 500;
font-size: 16px; @include text-sizing(16px, 500, 1, center);
text-align: center;
} }
.embed-modal__container { .embed-modal__container {
@ -44,7 +42,7 @@
background: lighten($ui-base-color, 4%); background: lighten($ui-base-color, 4%);
} }
@media screen and (max-width: 600px) { @include breakpoint(sm) {
font-size: 16px; font-size: 16px;
} }
} }

View File

@ -13,8 +13,7 @@
position: relative; position: relative;
border-bottom: 1px solid lighten($classic-base-color, 8%); border-bottom: 1px solid lighten($classic-base-color, 8%);
border-radius: 6px 6px 0 0; border-radius: 6px 6px 0 0;
padding-top: 12px; padding: 12px 0;
padding-bottom: 12px;
&__title { &__title {
display: block; display: block;
@ -66,8 +65,8 @@
display: inline-block; display: inline-block;
padding: 2px 8px; padding: 2px 8px;
background-color: lighten($ui-base-color, 8%); background-color: lighten($ui-base-color, 8%);
border: 1px solid darken($ui-base-color, 4%);
border-radius: 4px; @include border-design(darken($ui-base-color, 4%), 1px, 4px);
} }
} }
} }

View File

@ -26,8 +26,8 @@
position: relative; position: relative;
border-bottom: 1px solid lighten($classic-base-color, 8%); border-bottom: 1px solid lighten($classic-base-color, 8%);
border-radius: 6px 6px 0 0; border-radius: 6px 6px 0 0;
padding-top: 12px;
padding-bottom: 12px; @include vertical-padding(12px);
&__title { &__title {
display: block; display: block;

View File

@ -0,0 +1,22 @@
.setting-text {
color: $darker-text-color;
background: transparent;
border: none;
border-bottom: 2px solid $ui-primary-color;
box-sizing: border-box;
display: block;
font-family: inherit;
margin-bottom: 10px;
padding: 7px 0;
width: 100%;
&:focus,
&:active {
color: $primary-text-color;
border-bottom-color: $highlight-text-color;
}
@include breakpoint(sm) {
font-size: 16px;
}
}

View File

@ -1,12 +1,12 @@
.panel { .panel {
display: flex; display: flex;
width: 100%;
border-radius: 10px; border-radius: 10px;
flex-direction: column; flex-direction: column;
height: auto;
box-sizing: border-box; box-sizing: border-box;
background: $gab-background-container; background: $gab-background-container;
@include size(100%, auto);
body.theme-gabsocial-light & { body.theme-gabsocial-light & {
// @include light-theme-shadow(); // @include light-theme-shadow();
background: $gab-background-container-light; background: $gab-background-container-light;
@ -66,11 +66,11 @@
padding-right: 10px; padding-right: 10px;
&__avatar { &__avatar {
height: 46px;
width: 46px;
background-color: red; background-color: red;
left: -58px; left: -58px;
position: absolute; position: absolute;
@include size(46px);
} }
&__name { &__name {
@ -81,18 +81,17 @@
&__name { &__name {
color: $primary-text-color; color: $primary-text-color;
font-size: 14px;
font-weight: bold;
line-height: 16px;
margin-bottom: 2px; margin-bottom: 2px;
max-height: 32px; //2 lines of text max-height: 32px; //2 lines of text
overflow: hidden; overflow: hidden;
@include text-sizing(14px, 700, 16px);
} }
&__username { &__username {
color: $lighter-text-color; color: $lighter-text-color;
font-size: 12px;
line-height: 14px; @include text-sizing(12px, 400, 14px);
} }
} }
} }
@ -125,8 +124,7 @@
&__title { &__title {
flex: 1 1; flex: 1 1;
color: $primary-text-color; color: $primary-text-color;
font-size: 16px;
font-weight: bold; @include text-sizing(16px, 700, 19px);
line-height: 19px;
} }
} }

View File

@ -26,7 +26,7 @@
cursor: default; cursor: default;
color: #fff; color: #fff;
@include text-overflow; @include text-overflow(nowrap);
body.theme-gabsocial-light & { body.theme-gabsocial-light & {
color: $gab-default-text-light; color: $gab-default-text-light;
@ -51,10 +51,10 @@
outline: 0; outline: 0;
font-family: inherit; font-family: inherit;
background: $simple-background-color; background: $simple-background-color;
border: 1px solid darken($simple-background-color, 14%);
border-radius: 4px;
padding: 6px 10px; padding: 6px 10px;
@include border-design(darken($simple-background-color, 14%), 1px, 4px);
&:focus { &:focus {
border-color: $highlight-text-color; border-color: $highlight-text-color;
} }
@ -94,10 +94,10 @@
} }
&__footer { &__footer {
padding-top: 6px;
padding-bottom: 5px;
color: $dark-text-color; color: $dark-text-color;
@include vertical-padding(6px, 5px);
span { span {
font-size: 14px; font-size: 14px;
} }

View File

@ -17,11 +17,11 @@
&__message { &__message {
display: block; display: block;
font-size: 14px;
line-height: 16px;
margin-top: 6px; margin-top: 6px;
color: $primary-text-color; color: $primary-text-color;
@include text-sizing(14px, 400, 16px);
&--dark { &--dark {
color: $ui-secondary-color; color: $ui-secondary-color;
} }

View File

@ -0,0 +1,69 @@
.search {
position: relative;
&__input {
display: block;
padding: 7px 30px 6px 10px;
@include search-input();
}
&__icon {
&::-moz-focus-inner {
border: 0;
}
&::-moz-focus-inner,
&:focus {
outline: 0 !important;
}
.fa {
cursor: default;
display: inline-block;
position: absolute;
top: 8px;
right: 6px;
z-index: 2;
font-size: 16px;
color: $gab-placeholder-accent;
opacity: 0;
pointer-events: none;
@include size(18px);
&.active {
pointer-events: auto;
opacity: 1;
}
}
.fa-search.active {
pointer-events: none;
}
.fa-times-circle {
cursor: pointer;
font-size: 17px;
color: $gab-alert-red;
&:hover {
color: lighten($gab-alert-red, 7%);
}
}
}
@media screen and (max-width: 630px) and (max-height: 400px) {
will-change: margin-top;
transition: margin-top 400ms 100ms;
}
@media screen and (min-width: 360px) {
margin-bottom: 10px;
}
}
@media screen and (min-width: 895px) {
.search-page .search {
display: none;
}
}

View File

@ -17,28 +17,25 @@
flex: 1 1 auto; flex: 1 1 auto;
color: $secondary-text-color; color: $secondary-text-color;
padding: 15px 0; padding: 15px 0;
font-size: 14px;
font-weight: 500;
text-align: center;
text-decoration: none; text-decoration: none;
position: relative; position: relative;
@include text-sizing(14px, 500, 1, center);
&.active { &.active {
color: $primary-text-color; color: $primary-text-color;
&::before, &::before,
&::after { &::after {
display: block;
content: "";
position: absolute;
bottom: 0; bottom: 0;
left: 50%; left: 50%;
width: 0;
height: 0;
transform: translateX(-50%); transform: translateX(-50%);
border-style: solid; border-style: solid;
border-width: 0 10px 10px; border-width: 0 10px 10px;
border-color: transparent transparent lighten($ui-base-color, 8%); border-color: transparent transparent lighten($ui-base-color, 8%);
@include pseudo;
@include size(0);
} }
&::after { &::after {
@ -48,3 +45,14 @@
} }
} }
} }
.account-section-headline {
button,
a {
flex: none;
padding: 18px 15px;
@include text-sizing(16px, 600);
}
}

View File

@ -1,6 +1,5 @@
.status { .status {
padding: 8px 10px; padding: 8px 10px 8px 68px;
padding-left: 68px;
position: relative; position: relative;
min-height: 54px; min-height: 54px;
border-bottom: 1px solid lighten($ui-base-color, 8%); border-bottom: 1px solid lighten($ui-base-color, 8%);
@ -120,17 +119,15 @@
.status__wrapper--filtered { .status__wrapper--filtered {
color: $dark-text-color; color: $dark-text-color;
border: 0; border: 0;
font-size: inherit;
text-align: center;
line-height: inherit;
margin: 0; margin: 0;
padding: 15px; padding: 15px;
box-sizing: border-box; box-sizing: border-box;
width: 100%; width: 100%;
clear: both; clear: both;
border-bottom: 1px solid lighten($ui-base-color, 8%); border-bottom: 1px solid lighten($ui-base-color, 8%);
}
@include text-sizing(inherit, 400, inherit, center);
}
.status__prepend-icon-wrapper { .status__prepend-icon-wrapper {
left: -26px; left: -26px;
@ -172,8 +169,8 @@
>span { >span {
display: block; display: block;
overflow: hidden;
text-overflow: ellipsis; @include text-overflow
} }
} }
@ -184,18 +181,53 @@
} }
.status__avatar { .status__avatar {
height: 48px; @include size(48px);
left: 10px; @include abs-position(10px, auto, auto, 10px);
position: absolute;
top: 10px;
width: 48px;
} }
.status__expand { .status__expand {
width: 68px;
position: absolute;
left: 0;
top: 0;
height: 100%;
cursor: pointer; cursor: pointer;
@include size(68px, 100%);
@include abs-position(0, auto, auto, 0);
}
.media-spoiler-video {
cursor: pointer;
margin-top: 8px;
position: relative;
border: 0;
display: block;
@include background-image("");
}
.media-spoiler-video-play-icon {
border-radius: 100px;
color: rgba($primary-text-color, 0.8);
font-size: 36px;
padding: 5px;
transform: translate(-50%, -50%);
@include abs-position(50%, auto, auto, 50%);
}
.media-spoiler {
background: $base-overlay-background;
color: $darker-text-color;
border: 0;
padding: 0;
border-radius: 4px;
appearance: none;
@include size(100%);
&:hover,
&:active,
&:focus {
padding: 0;
color: lighten($darker-text-color, 8%);
}
} }

View File

@ -4,12 +4,10 @@
.status__content { .status__content {
position: relative; position: relative;
word-wrap: break-word;
overflow: hidden;
text-overflow: ellipsis;
padding-top: 2px; padding-top: 2px;
color: $primary-text-color; color: $primary-text-color;
@include text-overflow(normal, break-word);
@include text-sizing(15px, 400, 20px); @include text-sizing(15px, 400, 20px);
&:focus { &:focus {
@ -103,8 +101,7 @@
color: $gab-brand-default; color: $gab-brand-default;
border: 0; border: 0;
background: transparent; background: transparent;
padding: 0; padding: 8px 0 0 0;
padding-top: 8px;
@include text-sizing(15px, 400, 20px); @include text-sizing(15px, 400, 20px);

View File

@ -124,6 +124,11 @@
.flex { .flex {
display: flex; display: flex;
} }
@media screen and (max-width: 630px) and (max-height: 400px) {
will-change: margin-top;
transition: margin-top 400ms 100ms;
}
} }
.tabs-bar-item { .tabs-bar-item {

View File

@ -5,10 +5,11 @@
background-color: transparent; background-color: transparent;
border: 0; border: 0;
padding: 0; padding: 0;
user-select: none;
-webkit-tap-highlight-color: rgba($base-overlay-background, 0); -webkit-tap-highlight-color: rgba($base-overlay-background, 0);
-webkit-tap-highlight-color: transparent; -webkit-tap-highlight-color: transparent;
@include unselectable;
&--disabled { &--disabled {
cursor: not-allowed; cursor: not-allowed;
opacity: 0.5; opacity: 0.5;
@ -19,17 +20,15 @@
.react-toggle-screenreader-only { .react-toggle-screenreader-only {
border: 0; border: 0;
clip: rect(0 0 0 0); clip: rect(0 0 0 0);
height: 1px;
margin: -1px; margin: -1px;
overflow: hidden; overflow: hidden;
padding: 0; padding: 0;
position: absolute; position: absolute;
width: 1px;
@include size(1px);
} }
.react-toggle-track { .react-toggle-track {
width: 50px;
height: 24px;
padding: 0; padding: 0;
border-radius: 30px; border-radius: 30px;
background-color: $ui-base-color; background-color: $ui-base-color;
@ -51,14 +50,13 @@
} }
.react-toggle-track-check { .react-toggle-track-check {
margin-top: auto;
margin-bottom: auto;
line-height: 0; line-height: 0;
opacity: 0; opacity: 0;
transition: opacity 0.25s ease; transition: opacity 0.25s ease;
@include abs-position(0, auto, 0, 8px); @include abs-position(0, auto, 0, 8px);
@include size(14px, 10px); @include size(14px, 10px);
@include vertical-margin(auto);
} }
.react-toggle--checked .react-toggle-track-check { .react-toggle--checked .react-toggle-track-check {
@ -67,14 +65,13 @@
} }
.react-toggle-track-x { .react-toggle-track-x {
margin-top: auto;
margin-bottom: auto;
line-height: 0; line-height: 0;
opacity: 1; opacity: 1;
transition: opacity 0.25s ease; transition: opacity 0.25s ease;
@include abs-position(0, 10px, 0); @include abs-position(0, 10px, 0);
@include size(10px); @include size(10px);
@include vertical-margin(auto);
} }
.react-toggle--checked .react-toggle-track-x { .react-toggle--checked .react-toggle-track-x {

View File

@ -12,7 +12,7 @@
flex: 1 1 auto; flex: 1 1 auto;
color: $dark-text-color; color: $dark-text-color;
@include text-overflow; @include text-overflow(nowrap);
strong { strong {
font-weight: 500; font-weight: 500;
@ -24,7 +24,7 @@
text-decoration: none; text-decoration: none;
@include text-sizing(14px, 500); @include text-sizing(14px, 500);
@include text-overflow; @include text-overflow(nowrap);
&:hover, &:hover,
&:focus, &:focus,

View File

@ -74,17 +74,17 @@
&__username { &__username {
display: block; display: block;
font-size: 14px;
line-height: 16px;
color: $gab-secondary-text; color: $gab-secondary-text;
text-decoration: none !important; text-decoration: none !important;
@include text-sizing(14px, 16px);
} }
} }
&__stats-block { &__stats-block {
display: flex;
justify-content: space-between;
padding-top: 12px; padding-top: 12px;
@include flex(space-between);
} }
.user-panel-stats-item { .user-panel-stats-item {

View File

@ -6,7 +6,6 @@ import { NavLink } from 'react-router-dom';
import { debounce } from 'lodash'; import { debounce } from 'lodash';
import Button from '../../../components/button'; import Button from '../../../components/button';
import { autoPlayGif, me, isStaff } from '../../../initial_state'; import { autoPlayGif, me, isStaff } from '../../../initial_state';
import Icon from '../../../components/icon';
import Avatar from '../../../components/avatar'; import Avatar from '../../../components/avatar';
import { shortNumberFormat } from '../../../utils/numbers'; import { shortNumberFormat } from '../../../utils/numbers';
import DropdownMenuContainer from '../../../containers/dropdown_menu_container'; import DropdownMenuContainer from '../../../containers/dropdown_menu_container';
@ -42,17 +41,12 @@ const messages = defineMessages({
unendorse: { id: 'account.unendorse', defaultMessage: 'Don\'t feature on profile' }, unendorse: { id: 'account.unendorse', defaultMessage: 'Don\'t feature on profile' },
admin_account: { id: 'status.admin_account', defaultMessage: 'Open moderation interface for @{name}' }, admin_account: { id: 'status.admin_account', defaultMessage: 'Open moderation interface for @{name}' },
add_or_remove_from_list: { id: 'account.add_or_remove_from_list', defaultMessage: 'Add or Remove from lists' }, add_or_remove_from_list: { id: 'account.add_or_remove_from_list', defaultMessage: 'Add or Remove from lists' },
accountFollowsYou: { id: 'account.follows_you', defaultMessage: 'Follows you' },
accountBlocked: { id: 'account.blocked', defaultMessage: 'Blocked' },
accountMuted: { id: 'account.muted', defaultMessage: 'Muted' },
domainBlocked: { id: 'account.domain_blocked', defaultMessage: 'Domain hidden' },
}); });
const dateFormatOptions = {
month: 'short',
day: 'numeric',
year: 'numeric',
hour12: false,
hour: '2-digit',
minute: '2-digit',
};
export default @injectIntl export default @injectIntl
class Header extends ImmutablePureComponent { class Header extends ImmutablePureComponent {
@ -175,15 +169,15 @@ class Header extends ImmutablePureComponent {
if (!account || !me) return info; if (!account || !me) return info;
if (me !== account.get('id') && account.getIn(['relationship', 'followed_by'])) { if (me !== account.get('id') && account.getIn(['relationship', 'followed_by'])) {
info.push(<span key='followed_by' className='relationship-tag'><FormattedMessage id='account.follows_you' defaultMessage='Follows you' /></span>); info.push(<span key='followed_by' className='relationship-tag'>{intl.formatMessage(messages.accountFollowsYou)}</span>);
} else if (me !== account.get('id') && account.getIn(['relationship', 'blocking'])) { } else if (me !== account.get('id') && account.getIn(['relationship', 'blocking'])) {
info.push(<span key='blocked' className='relationship-tag'><FormattedMessage id='account.blocked' defaultMessage='Blocked' /></span>); info.push(<span key='blocked' className='relationship-tag'>{intl.formatMessage(messages.accountBlocked)}</span>);
} }
if (me !== account.get('id') && account.getIn(['relationship', 'muting'])) { if (me !== account.get('id') && account.getIn(['relationship', 'muting'])) {
info.push(<span key='muted' className='relationship-tag'><FormattedMessage id='account.muted' defaultMessage='Muted' /></span>); info.push(<span key='muted' className='relationship-tag'>{intl.formatMessage(messages.accountMuted)}</span>);
} else if (me !== account.get('id') && account.getIn(['relationship', 'domain_blocking'])) { } else if (me !== account.get('id') && account.getIn(['relationship', 'domain_blocking'])) {
info.push(<span key='domain_blocked' className='relationship-tag'><FormattedMessage id='account.domain_blocked' defaultMessage='Domain hidden' /></span>); info.push(<span key='domain_blocked' className='relationship-tag'>{intl.formatMessage(messages.domainBlocked)}</span>);
} }
return info; return info;

View File

@ -5,12 +5,12 @@
color: $primary-text-color; color: $primary-text-color;
background-color: $base-overlay-background; background-color: $base-overlay-background;
text-transform: uppercase; text-transform: uppercase;
font-size: 11px;
font-weight: 500;
padding: 4px; padding: 4px;
border-radius: 4px; border-radius: 4px;
opacity: 0.7; opacity: 0.7;
@include text-sizing(11px, 500);
&:hover { &:hover {
opacity: 1; opacity: 1;
} }

View File

@ -13,8 +13,8 @@
>span { >span {
display: block; display: block;
overflow: hidden;
text-overflow: ellipsis; @include text-overflow;
} }
} }
@ -33,8 +33,8 @@
strong, strong,
span { span {
display: block; display: block;
text-overflow: ellipsis;
overflow: hidden; @include text-overflow;
} }
strong { strong {

View File

@ -33,12 +33,11 @@
span { span {
color: $primary-text-color; color: $primary-text-color;
@include text-sizing(15px, 400, 1.25);
body.theme-gabsocial-light & { body.theme-gabsocial-light & {
color: $gab-default-text-light; color: $gab-default-text-light;
} }
font-size: 15px;
line-height: 1.25;
} }
} }
} }
@ -51,15 +50,14 @@
} }
.emojione { .emojione {
width: 22px; @include size(22px);
height: 22px;
} }
h1 { h1 {
span:first-of-type { span:first-of-type {
color: #ffffff; color: #ffffff;
@include text-overflow; @include text-overflow(nowrap);
@include text-sizing(20px, 600, 1.25); @include text-sizing(20px, 600, 1.25);
body.theme-gabsocial-light & { body.theme-gabsocial-light & {
@ -70,10 +68,9 @@
small { small {
display: block; display: block;
color: $secondary-text-color; color: $secondary-text-color;
overflow: hidden;
text-overflow: ellipsis;
@include text-sizing(16px, 400, 1.5) @include text-sizing(16px, 400, 1.5);
@include text-overflow;
} }
} }
} }
@ -83,8 +80,8 @@
flex: 1 1; flex: 1 1;
color: $primary-text-color; color: $primary-text-color;
margin: 15px 0; margin: 15px 0;
font-size: 15px;
line-height: 1.25; @include text-sizing(15px, 400, 1.25);
a { a {
color: lighten($ui-highlight-color, 8%); color: lighten($ui-highlight-color, 8%);
@ -121,8 +118,7 @@
flex: 1 1; flex: 1 1;
* { * {
font-size: 15px; @include text-sizing(15px, 400, 24px);
line-height: 24px;
} }
dt { dt {

View File

@ -0,0 +1,144 @@
.compose-form {
padding: 10px;
&__sensitive-button {
padding: 0 10px 10px 10px;
@include text-sizing(14px, 500);
&.active {
color: $highlight-text-color;
}
input[type=checkbox] {
display: none;
}
.checkbox {
display: inline-block;
position: relative;
box-sizing: border-box;
flex: 0 0 auto;
margin-right: 10px;
top: -1px;
vertical-align: middle;
@include size(18px);
@include border-design($ui-primary-color, 1px, 4px);
&.active {
border-color: $highlight-text-color;
background: $highlight-text-color;
}
}
}
.emoji-picker-dropdown {
position: absolute;
top: 5px;
right: 5px;
z-index: 1;
}
&.condensed {
.autosuggest-textarea__textarea {
min-height: 46px;
border-radius: 5px;
}
}
.emoji-picker-wrapper {
position: relative;
height: 0;
}
&__modifiers {
color: $inverted-text-color;
font-family: inherit;
font-size: 14px;
background: $simple-background-color;
}
&__buttons-wrapper {
padding: 10px;
background: darken($simple-background-color, 8%);
border-radius: 0 0 4px 4px;
flex: 0 0 auto;
@include flex(space-between);
.compose-form__buttons {
display: flex;
.compose-form__sensitive-button {
display: none;
&.compose-form__sensitive-button--visible {
display: block;
}
.compose-form__sensitive-button__icon {
line-height: 27px;
}
}
}
.icon-button {
box-sizing: content-box;
padding: 0 3px;
}
}
&__publish {
min-width: 0;
flex: 0 0 auto;
@include flex(flex-end);
}
&__publish-button-wrapper {
overflow: hidden;
padding-top: 10px;
}
}
.spoiler-input {
height: 0;
transform-origin: bottom;
opacity: 0.0;
position: relative;
&--visible {
height: 36px;
margin-bottom: 11px;
opacity: 1.0;
}
&__input {
display: block;
box-sizing: border-box;
width: 100%;
margin: 0;
color: $inverted-text-color;
background: $simple-background-color;
padding: 10px;
font-family: inherit;
font-size: 14px;
resize: vertical;
border: 0;
outline: 0;
border-radius: 4px;
&:focus {
outline: 0;
}
@include breakpoint(sm) {
font-size: 16px;
}
}
}
.no-reduce-motion .spoiler-input {
transition: height 0.4s ease, opacity 0.4s ease;
}

View File

@ -53,13 +53,13 @@
.emoji-button { .emoji-button {
display: block; display: block;
font-size: 24px;
line-height: 24px;
margin-left: 2px; margin-left: 2px;
width: 24px; width: 24px;
outline: 0; outline: 0;
cursor: pointer; cursor: pointer;
@include text-sizing(24px, 400, 24px);
&:active, &:active,
&:focus { &:focus {
outline: 0 !important; outline: 0 !important;
@ -69,10 +69,9 @@
filter: grayscale(100%); filter: grayscale(100%);
opacity: 0.8; opacity: 0.8;
display: block; display: block;
margin: 0; margin: 2px 0 0 0;
width: 22px;
height: 22px; @include size(22px);
margin-top: 2px;
} }
&:hover, &:hover,
@ -84,3 +83,35 @@
} }
} }
} }
.no-reduce-motion .pulse-loading {
transform-origin: center center;
animation: heartbeat 1.5s ease-in-out infinite both;
}
@keyframes heartbeat {
from {
transform: scale(1);
animation-timing-function: ease-out;
}
10% {
transform: scale(0.91);
animation-timing-function: ease-in;
}
17% {
transform: scale(0.98);
animation-timing-function: ease-out;
}
33% {
transform: scale(0.87);
animation-timing-function: ease-in;
}
45% {
transform: scale(1);
animation-timing-function: ease-out;
}
}

View File

@ -47,7 +47,7 @@
display: block; display: block;
font-weight: 500; font-weight: 500;
@include text-overflow; @include text-overflow(nowrap);
} }
&__profile-edit { &__profile-edit {

View File

@ -48,15 +48,12 @@
.reply-indicator-content { .reply-indicator-content {
position: relative; position: relative;
font-size: 15px;
line-height: 20px;
word-wrap: break-word;
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
padding-top: 2px; padding-top: 2px;
color: $primary-text-color; color: $primary-text-color;
@include text-sizing(15px, 400, 20px);
@include text-overflow(normal, break-word);
&:focus { &:focus {
outline: 0; outline: 0;
} }
@ -70,9 +67,9 @@
} }
.emojione { .emojione {
width: 20px;
height: 20px;
margin: -3px 0 0; margin: -3px 0 0;
@include size(20px);
} }
p { p {

View File

@ -41,8 +41,8 @@
flex-direction: column; flex-direction: column;
overflow: hidden; overflow: hidden;
overflow-y: auto; overflow-y: auto;
width: 100%;
height: 100%; @include size(100%);
&.darker { &.darker {
background: $ui-base-color; background: $ui-base-color;
@ -59,11 +59,11 @@
display: block; display: block;
object-fit: contain; object-fit: contain;
object-position: bottom left; object-position: bottom left;
width: 100%;
height: 100%;
pointer-events: none; pointer-events: none;
user-drag: none; user-drag: none;
user-select: none;
@include unselectable;
@include size(100%);
} }
@media screen and (min-height: 640px) { @media screen and (min-height: 640px) {
@ -93,8 +93,8 @@
.drawer { .drawer {
flex: 0 0 auto; flex: 0 0 auto;
padding: 10px; padding: 10px;
padding-left: 5px;
padding-right: 5px; @include horizontal-padding(5px);
&:first-child { &:first-child {
padding-left: 10px; padding-left: 10px;

View File

@ -16,8 +16,8 @@
strong, strong,
span { span {
display: block; display: block;
text-overflow: ellipsis;
overflow: hidden; @include text-overflow;
} }
strong { strong {
@ -33,12 +33,12 @@
.account__header__content { .account__header__content {
color: $darker-text-color; color: $darker-text-color;
font-size: 14px;
font-weight: 400;
overflow: hidden; overflow: hidden;
word-break: normal; word-break: normal;
word-wrap: break-word; word-wrap: break-word;
@include text-sizing(14px, 400);
p { p {
margin-bottom: 20px; margin-bottom: 20px;
@ -56,3 +56,17 @@
} }
} }
} }
.account--panel {
background: lighten($ui-base-color, 4%);
border-top: 1px solid lighten($ui-base-color, 8%);
border-bottom: 1px solid lighten($ui-base-color, 8%);
display: flex;
flex-direction: row;
padding: 10px 0;
}
.account--panel__button {
flex: 1 1 auto;
text-align: center;
}

View File

@ -135,8 +135,7 @@
} }
&__action { &__action {
padding: 25px; padding: 0 25px 25px 25px;
padding-top: 0;
@include flex(center, center); @include flex(center, center);
} }

View File

@ -1,20 +1,21 @@
.notification { .notification {
&--favourite { &--favourite {
.status.status-direct {
background: transparent;
.icon-button.disabled {
color: lighten($action-button-color, 13%);
}
}
} }
&--follow { &--follow {}
} &--reblog {}
&--reblog { &--poll {}
}
&--poll {
}
&__message { &__message {
margin: 0 10px 0 68px; margin: 0 10px 0 68px;
@ -32,7 +33,7 @@
>span { >span {
display: inline; display: inline;
@include text-overflow; @include text-overflow(nowrap);
} }
} }

View File

@ -18,7 +18,7 @@
max-width: 1200px; max-width: 1200px;
@include text-sizing(27px, bold, 32px); @include text-sizing(27px, bold, 32px);
@include text-overflow; @include text-overflow(nowrap);
@include margin-center; @include margin-center;
@media (min-width:895px) and (max-width:1190px) { @media (min-width:895px) and (max-width:1190px) {

View File

@ -0,0 +1,169 @@
.status-card {
display: flex;
font-size: 14px;
color: $dark-text-color;
margin-top: 14px;
text-decoration: none;
overflow: hidden;
@include border-design(lighten($ui-base-color, 8%), 1px, 4px);
&__actions {
@include flex(center, center);
@include abs-position(0, 0, 0, 0);
&>div {
background: rgba($base-shadow-color, 0.6);
border-radius: 8px;
padding: 12px 9px;
flex: 0 0 auto;
@include flex(center, center);
}
button,
a {
display: inline;
color: $secondary-text-color;
background: transparent;
border: 0;
padding: 0 8px;
text-decoration: none;
font-size: 18px;
line-height: 18px;
&:hover,
&:active,
&:focus {
color: $primary-text-color;
}
}
a {
font-size: 19px;
position: relative;
bottom: -1px;
}
}
&__title {
display: block;
font-weight: 500;
margin-bottom: 5px;
color: $darker-text-color;
text-decoration: none;
@include text-overflow(nowrap);
}
&__content {
flex: 1 1 auto;
overflow: hidden;
padding: 14px 14px 14px 8px;
}
&__description {
color: $darker-text-color;
}
&__host {
display: block;
margin-top: 5px;
font-size: 13px;
@include text-overflow(nowrap);
}
&__image {
flex: 0 0 100px;
background: lighten($ui-base-color, 8%);
position: relative;
&>.fa {
font-size: 21px;
position: absolute;
transform-origin: 50% 50%;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
}
&__image-image {
border-radius: 4px 0 0 4px;
display: block;
margin: 0;
object-fit: cover;
background-size: cover;
background-position: center center;
@include size(100%);
}
&.horizontal {
display: block;
}
&.horizontal & {
&__image {
width: 100%;
}
&__image-image {
border-radius: 4px 4px 0 0;
}
&__title {
white-space: inherit;
}
}
&.compact {
border-color: lighten($ui-base-color, 4%);
&.interactive {
border: 0;
}
}
&.compact & {
&__content {
padding: 10px 8px 8px 8px;
}
&__title {
white-space: nowrap;
}
&__image {
flex: 0 0 60px;
}
}
}
a.status-card {
cursor: pointer;
&:hover {
background: lighten($ui-base-color, 8%);
}
&.compact:hover {
background-color: lighten($ui-base-color, 4%);
}
}
.status-card-photo {
cursor: zoom-in;
display: block;
text-decoration: none;
margin: 0;
@include size(100%, auto);
}
.status-card-video {
iframe {
@include size(100%);
}
}

View File

@ -0,0 +1,96 @@
.detailed-status {
background: lighten($ui-base-color, 4%);
padding: 14px 10px;
&--flex {
@include flex(space-between, flex-start, row, wrap);
.status__content,
.detailed-status__meta {
flex: 100%;
}
}
.status__content {
@include text-sizing(19px, 400, 24px);
.emojione {
margin: -1px 0 0;
@include size(24px);
}
.status__content__spoiler-link {
line-height: 24px;
margin: -1px 0 0;
}
}
.video-player {
margin-top: 8px;
}
&__meta {
margin-top: 15px;
color: $dark-text-color;
@include text-sizing(14px, 400, 18px);
}
&__datetime {
&:hover {
text-decoration: underline;
}
}
&__favorites,
&__reblogs {
display: inline-block;
margin-left: 6px;
@include text-sizing(12px, 500);
}
&__display-name,
&__datetime,
&__application {
text-decoration: none;
}
&__display-name {
&:hover strong {
text-decoration: underline;
}
}
&__application,
&__datetime {
color: inherit;
}
&__display-name {
color: $secondary-text-color;
display: block;
line-height: 24px;
margin-bottom: 15px;
overflow: hidden;
strong,
span {
display: block;
@include text-overflow;
}
strong {
font-size: 16px;
color: $primary-text-color;
}
}
&__display-avatar {
float: left;
margin-right: 10px;
}
}

View File

@ -9,7 +9,7 @@ const extractValue = (value) => {
return (typeof value === 'object' && value && 'val' in value) ? value.val : value; return (typeof value === 'object' && value && 'val' in value) ? value.val : value;
}; };
class ReducedMotion extends Component { class ReducedMotion extends PureComponent {
static propTypes = { static propTypes = {
defaultStyle: PropTypes.object, defaultStyle: PropTypes.object,

View File

@ -94,15 +94,15 @@
} }
&__buttons-bar { &__buttons-bar {
display: flex;
justify-content: space-between;
padding-bottom: 10px; padding-bottom: 10px;
@include flex(space-between);
} }
&__buttons { &__buttons {
font-size: 16px; font-size: 16px;
@include text-overflow; @include text-overflow(nowrap);
&.left { &.left {
button { button {
@ -177,13 +177,12 @@
&__handle { &__handle {
z-index: 3; z-index: 3;
border-radius: 50%;
transition: opacity .1s ease; transition: opacity .1s ease;
background: lighten($ui-highlight-color, 8%); background: lighten($ui-highlight-color, 8%);
box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2); box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
pointer-events: none; pointer-events: none;
@include size(12px); @include circle(12px);
@include abs-position(auto, auto, 16px, 70px); @include abs-position(auto, auto, 16px, 70px);
} }
} }
@ -222,11 +221,11 @@
&__progress, &__progress,
&__buffer { &__buffer {
display: block; display: block;
position: absolute;
height: 4px; height: 4px;
border-radius: 4px; border-radius: 4px;
top: 10px;
background: lighten($ui-highlight-color, 8%); background: lighten($ui-highlight-color, 8%);
@include abs-position(10px);
} }
&__buffer { &__buffer {
@ -234,10 +233,8 @@
} }
&__handle { &__handle {
position: absolute;
z-index: 3; z-index: 3;
opacity: 0; opacity: 0;
top: 6px;
margin-left: -6px; margin-left: -6px;
transition: opacity .1s ease; transition: opacity .1s ease;
background: lighten($ui-highlight-color, 8%); background: lighten($ui-highlight-color, 8%);
@ -245,6 +242,7 @@
pointer-events: none; pointer-events: none;
@include circle(12px); @include circle(12px);
@include abs-position(6px);
&.active { &.active {
opacity: 1; opacity: 1;
@ -262,8 +260,7 @@
&.fullscreen { &.fullscreen {
.video-player__buttons { .video-player__buttons {
button { button {
padding-top: 10px; @include vertical-padding(10px);
padding-bottom: 10px;
} }
} }
} }