src/scss/global.scss
@import "node_modules/bootswatch/dist/darkly/variables";
@import "node_modules/bootstrap/scss/bootstrap";
@import "node_modules/bootswatch/dist/darkly/bootswatch";
@import "./colors.scss";
@import "./constants.scss";
@import "./modifiers.scss";
@import "./customOverrides";
html,
body,
#root {
height: 100%;
width: 100%;
}
body {
font: 1rem/1.3 "Rubik", "HelveticaNeue", "Helvetica Neue", Helvetica,
sans-serif;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
background-color: $content--under;
color: $content--over;
display: flex;
justify-content: center;
font-family: "Rubik", sans-serif;
overflow: auto;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
@include scrollbar;
}
// Titles
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: 700;
margin-bottom: 0.5rem;
line-height: 1.2;
&.primary {
color: $accent--under;
}
&.italic {
font-weight: 900;
font-style: italic;
}
}
h1 {
font-size: 3em;
}
h2 {
font-size: 2em;
}
h3 {
font-size: 1.6em;
}
h4 {
font-size: 1.4em;
}
h5 {
font-size: 1.2em;
}
h6 {
font-size: 1em;
}
// Buttons
button:focus {
outline: 1px dotted $content--over;
}
button.btn,
a.btn,
input.btn {
display: inline-block;
padding: 12px 16px;
font-weight: 700;
text-decoration: none;
border-radius: 22px;
text-align: center;
font-size: 1em;
background-color: var(--primary--under-25a);
transition: all 400ms $transition-function;
color: $content--over;
transform: translateY(0);
&:hover {
transform: translateY(-1px);
background-color: var(--primary--under-20a);
}
&.btn-primary {
color: $content--over;
background-image: $gradient;
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.21);
&:hover {
background-color: var(--primary--under-darker-15pp);
}
}
&.btn-secondary {
color: $content--over;
background-color: rgba(124, 70, 251, 0.4);
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.21);
&:hover {
background-color: rgba(124, 70, 251, 0.8);
}
}
&.btn-danger {
color: $content--over;
background: $danger-gradient;
border-color: rgba(0, 0, 0, 0);
text-shadow: 0 2px 4px rgba(0, 0, 0, 0.21);
&:hover {
background-color: var(--danger--under-darker-15pp);
}
}
&.btn-small {
padding: 6px 12px;
font-size: 0.9em;
}
&.btn-block {
display: block;
max-width: 275px;
margin-bottom: 0.8rem;
}
&.btn-centered {
margin-left: auto;
margin-right: auto;
}
&.disabled,
&[type="submit"]:disabled {
color: opaque-white(0.5);
background-color: opaque-white(0.15);
&.btn-primary {
color: opaque-white(0.5);
background-image: none;
background-color: opaque-white(0.15);
}
}
}
.input-error {
color: var(--danger--under);
}
button.btn {
font-weight: 700;
text-decoration: none;
color: rgba(0, 0, 0, 0.7);
display: inline-block;
font-weight: 700;
text-decoration: none;
border-radius: 22px;
text-align: center;
font-size: 1em;
background-color: $primary--over;
transition: all 400ms $transition-function;
color: $content--under;
transform: translateY(0);
&:hover:enabled {
transform: translateY(-1px);
background-image: linear-gradient(
0deg,
rgba(0, 0, 0, 0.4) 0%,
rgba(0, 0, 0, 0.4) 100%
);
}
&.btn-block {
display: block;
max-width: 275px;
margin-bottom: 0.8rem;
}
&.btn-centered {
margin-left: auto;
margin-right: auto;
}
&.btn-primary {
// Background image has to be set to 'none' because by default the Button has gradient image
background-image: none;
background-color: $accent--under;
&:hover {
background-image: none;
background-color: $primary--darker;
}
}
&.btn-secondary {
// Background image has to be set to 'none' because by default the Button has gradient image
background-color: var(--greyscale-lighter-10pp);
&:hover {
background-image: none;
background-color: $secondary;
}
}
&.disabled {
color: opaque-white(0.2);
background-image: linear-gradient(
0deg,
rgba(0, 0, 0, 0.2) 0%,
rgba(0, 0, 0, 0.2) 100%
);
}
}
// @debt replace plain input and textarea elements with AdminInput and/or AdminTextarea and/or similar, then remove these global styles
input,
textarea {
-webkit-appearance: none;
border: none;
outline: none;
background-color: opaque-white(0.12);
width: 100%;
position: relative;
font-size: font-size--parent(1);
padding: $spacing--md;
border-radius: $border-radius--xl;
text-align: center;
color: $content--over;
&:hover {
background-color: opaque-white(0.16);
}
&:focus {
box-shadow: 0 0 0 2px opaque-white(1);
}
&[type="checkbox"]:focus {
box-shadow: unset;
}
&.input-block {
display: block;
max-width: 275px;
margin-bottom: 0.8rem;
}
&.wide-input-block {
display: block;
margin-bottom: 0.8rem;
}
&.align-left {
text-align: left;
}
&.input-centered {
margin-left: auto;
margin-right: auto;
}
&.btn {
font-weight: 700;
}
&.disabled {
background-color: var(--content--over-60a);
cursor: default;
}
}
textarea {
resize: none;
font-family: inherit;
font-size: inherit;
height: 100px;
}
.input-group {
display: flex;
flex-direction: column;
margin-bottom: 0.8rem;
input.input-block {
margin-bottom: 0.3rem;
}
.input-info {
font-size: 0.8em;
opacity: 0.8;
align-self: center;
}
&.input-info {
align-self: center;
}
.input-error {
text-align: center;
color: var(--danger--under);
font-size: 0.9em;
font-weight: bold;
}
}
.announcement-list,
.chat-list {
height: 200px;
overflow: auto;
}
.room-attendance {
cursor: pointer;
border-radius: 10px;
padding: $spacer * 0.25 $spacer * 0.75;
background: $content--under;
color: $content--over;
&.positioned {
position: absolute;
opacity: 0.5;
background: $content--over;
color: $content--under;
}
.icon {
border-radius: 10px 0 0 10px;
padding: $spacer * 0.25 $spacer * 0.75;
background: theme-color("primary");
}
.attendance-number {
margin-right: 10px;
}
}
a,
.button--a {
color: $content--over;
text-decoration: underline;
&:hover {
color: $primary--over;
}
}
.button--a {
background: transparent;
border: none;
}
h4 {
font-weight: bold;
font-size: 17px;
}
.title {
font-style: italic;
font-weight: 700;
}
.collective-icon {
border-radius: 50%;
margin-right: 10px;
}
.sparkle-navbar-icon {
width: 300px;
}
.primary {
color: $primary--over;
}
.modal-backdrop {
background: $secondary--live;
&.show {
opacity: 0.8;
}
&.chat-backdrop.show {
opacity: 0;
}
}
.chatbox-container {
max-height: 2500px;
}
.modal-content {
border: none;
border-radius: 22px;
background: $content--under;
box-shadow: box-shadow--large(var(--content--under-30a));
}
.centered-flex {
display: flex;
justify-content: center;
align-items: center;
}
.between-flex {
display: flex;
justify-content: space-between;
align-items: center;
}
.full-page-container {
display: flex;
padding: 5px 30px;
height: calc(100vh - 50px);
width: 100%;
& > * + * {
margin-left: 10px;
}
.reduced {
width: 560px;
height: 315px;
}
.table-container {
background: $secondary--live;
border-radius: 0 0 22px 22px;
transition: all 0.1s linear;
padding: 0;
max-height: calc(100vh - 118px);
}
.content-column {
height: 100%;
}
.content-column > .row {
height: 100%;
}
.row.reduced {
height: 100%;
width: 100%;
}
// @debt: this doesn't seem to exist anywhere else yet.. but can we move it into a more specific component-related SCSS file instead of here?
// also referenced in src/pages/Account/Venue/VenueMapEdition.scss
.right-column {
display: flex;
flex-grow: 1;
flex-direction: column;
width: 600px;
height: 100%;
}
.user-list {
margin-bottom: 20px;
}
// @debt: is this class even used anywhere?
.right-column-content {
overflow-y: scroll;
.table-container {
margin-bottom: 20px;
}
}
.youtube-video {
transition: all 0.1s linear;
background-color: $secondary--live;
color: $content--over;
}
}
.full-page-container,
.friendship-container,
.conversation-space {
.content {
.wrapper {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: 25% 25% 25% 25%;
height: 100%;
grid-gap: 10px;
margin: 0 25px;
width: 100%;
}
}
video {
width: 100%;
max-width: 600px;
display: block;
margin: 0 auto;
}
}
.table-container {
.wrapper {
display: flex;
flex-wrap: wrap;
margin-bottom: 10px;
}
}
.scrollable-area {
.at-table {
padding: 10px;
display: flex;
flex-direction: column;
}
}
.chat-modal {
width: 400px;
position: absolute;
right: 10px;
top: 130px;
height: calc(100vh - 220px);
.modal-body {
background: $secondary--live;
border-radius: 22px;
}
.chatbox-container {
border: 2px solid $content--under;
}
}
input.btn.btn-primary.btn-success {
background: green;
}
.popover-body {
padding: 0;
overflow: hidden;
}
.popover {
background: $secondary--live;
border-radius: 22px;
overflow-y: auto;
height: calc(100vh - 120px);
}
.bs-popover-bottom-end {
width: 300px;
max-width: 99%;
background: $content--under;
border: 1px solid $light-grey;
background-image: linear-gradient(
0deg,
opaque-white(0.05) 0%,
opaque-white(0.05) 100%
);
.chatbox-container {
background: $content--under;
background-image: linear-gradient(
0deg,
opaque-white(0.05) 0%,
opaque-white(0.05) 100%
);
.bubble {
padding: 10px;
border-radius: 10px;
color: $content--over;
&.global {
background: $secondary--live;
}
&.private {
background: $secondary--live;
}
&.room {
background: $secondary--live;
}
}
}
.chat-input {
background: $secondary--live;
margin-bottom: 10px;
&:hover {
background: rgba($secondary--live, 0.7);
}
}
}
.edit-profile-modal-dialog {
position: absolute;
right: 15px;
width: 300px;
top: 20px;
}
span.link {
cursor: pointer;
text-decoration: underline;
&:hover {
color: $primary--over;
}
}
.reaction-list {
flex-direction: column;
padding: 0 15px;
.message-bubble {
font-size: 30px;
background: black;
margin-bottom: 25px;
padding: 10px 20px;
border-radius: 22px;
width: 100%;
word-wrap: break-word;
}
.message {
display: flex;
img {
margin-right: 20px;
}
.timestamp {
color: var(--content--over-60a);
}
&.chat-message {
flex-direction: column;
.sender-info {
display: flex;
align-items: center;
margin-bottom: 3px;
img {
margin-right: 10px;
}
.timestamp,
.delete-button {
margin-left: 10px;
}
}
}
}
&.small {
.message-bubble {
font-size: 15px;
margin-bottom: 10px;
&.emoji {
font-size: 25px;
padding: 0px 20px;
}
}
}
}
.image-input.default-container {
display: flex;
flex: 1;
align-items: center;
justify-content: center;
position: relative;
border-radius: 10px;
overflow: hidden;
}
.image-input .default-image {
width: 100%;
}
.image-input .default-input {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
opacity: 0;
color: transparent;
}
.image-input .default-input::-webkit-file-upload-button {
visibility: hidden;
}
.image-input .default-input:focus {
opacity: 1;
border-radius: 0;
}
.image-input .empty {
flex: 1;
padding: 40px 10px;
background-color: gray;
height: 100%;
}
.image-input.disabled {
cursor: none;
pointer-events: none;
}
.image-input .empty .text {
text-align: center;
}
::-webkit-calendar-picker-indicator {
filter: invert(1);
}
.admin-item {
display: flex;
align-items: center;
justify-content: space-between;
margin: 10px 0;
}
.flex-one {
flex: 1;
}
.host-icon-container {
background: $content--under;
padding: 10px;
width: 200px;
height: 200px;
border-radius: 50%;
.host-icon {
width: 100%;
height: 100%;
border-radius: 50%;
object-fit: cover;
}
}