[ABANDONED] React/Redux front end for the Flexor social network.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

624 lines
12 KiB

@charset "utf-8";
@import "../../../node_modules/normalize.css/normalize.css";
:root {
--default-font: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
--input-padding: 0.5rem 0.75rem;
--content-width: 600px;
--menu-width: 270px;
--transition-duration: 1s;
--color-primary: #000;
--color-alternate: #ddd;
--color-secondary: #333;
--color-background-primary: #fff;
--color-background-secondary: #eee;
--color-text: #555;
--color-red: #ff1a1a;
--color-green: #00802b;
--color-blue: #005ce6;
}
html {
font-family: var(--default-font);
font-size: 16px;
font-weight: 300;
}
body {
background-color: var(--color-background-primary);
font-family: var(--default-font);
line-height: 1.2;
margin: 0px;
padding: 0px;
transition: background-color var(--transition-duration);
}
input, textarea, select {
background-color: var(--color-background-secondary);
border: solid 1px var(--color-primary);
border-radius: 0;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: var(--color-text);
font-family: var(--default-font);
font-size: 0.9rem;
margin: 0px;
outline: none;
padding: var(--input-padding);
transition: background-color var(--transition-duration), border var(--transition-duration);
width: 100%;
}
select {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background: url(../images/caret-down.svg) 98% / 2% no-repeat #ccc;
}
input[type="file"] {
display: none;
}
input[type="checkbox"] {
margin: 0.75rem 0px;
width: initial;
}
input[type="range"] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-color: var(--color-background-secondary);
border-radius: 5px;
display: block;
height: 10px;
outline: none;
width: 8rem;
}
input[type="range"]::-webkit-slider-thumb {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-color: var(--color-secondary);
border-radius: 50%;
cursor: pointer;
height: 20px;
width: 20px;
}
input[type="range"]::-moz-range-thumb {
border-radius: 50%;
cursor: pointer;
height: 20px;
width: 20px;
}
h1 {
color: var(--color-primary);
font-size: 2rem;
margin: 0.5rem 0;
transition: color var(--transition-duration);
}
h2 {
color: var(--color-primary);
font-size: 1.2rem;
transition: color var(--transition-duration);
}
h1 + h2 {
margin-top: -0.5rem;
}
a {
text-decoration: none;
}
a:link {
color: var(--color-primary);
transition: color var(--transition-duration);
}
a:hover {
color: var(--color-secondary);
transition: color var(--transition-duration);
}
a:visited {
color: var(--color-secondary);
transition: color var(--transition-duration);
}
hr {
border: 1px solid var(--color-primary);
color: var(--color-primary);
margin: 1rem 0px;
transition: border var(--transition-duration), color var(--transition-duration);
}
main {
background-color: var(--color-background-primary);
color: var(--color-text);
bottom: 0;
display: flex;
justify-content: center;
left: 0;
padding: 0px;
position: absolute;
right: 0;
top: 0;
transition: background-color var(--transition-duration), color var(--transition-duration);
}
section {
background-color: var(--color-background-primary);
color: var(--color-text);
padding: 1rem;
transition: background-color var(--transition-duration), color var(--transition-duration);
}
iframe {
border: none;
overflow: hidden;
width: 100%;
}
button, label.file-input {
border: none;
border-radius: 25px;
cursor: pointer;
font-family: var(--default-font);
font-size: 0.8rem;
font-weight: 700;
padding: 0.5rem 1rem;
min-width: 100px;
transition: background-color var(--transition-duration), color var(--transition-duration);
}
button.primary {
background-color: var(--color-primary);
color: var(--color-alternate);
}
button.secondary {
background-color: var(--color-secondary);
color: var(--color-secondary);
}
div.buttons {
display: flex;
justify-content: space-around;
}
div.logo-container {
padding-top: 1rem;
width: 60px;
}
div.logo {
--size: 40px;
--padding-top: 8px;
background-color: var(--color-primary);
border-radius: 90px;
color: var(--color-alternate);
cursor: pointer;
font-size: 20px;
font-weight: bold;
height: calc(var(--size) - var(--padding-top));
margin: 10px;
padding-top: var(--padding-top);
position: fixed;
text-align: center;
transition: background-color var(--transition-duration), color var(--transition-duration);
width: var(--size);
}
div.content-container {
background-color: var(--color-background-primary);
width: var(--content-width);
transition: background-color var(--transition-duration);
}
div.content {
border-left: solid 1px var(--color-background-secondary);
border-right: solid 1px var(--color-background-primary);
padding-bottom: 3rem;
transition: border-left var(--transition-duration), border-right var(--transition-duration);
}
div.menu-container {
margin: 0px;
padding: 0px;
width: var(--menu-width);
}
div.menu {
background-color: var(--color-background-secondary);
border-color: var(--color-background-primary);
bottom: 0;
display: flex;
flex-direction: column;
margin: 0px;
position: fixed;
top: 0;
transition: background-color var(--transition-duration), border-color var(--transition-duration);
width: var(--menu-width);
}
div.menu > nav {
flex-grow: 1;
padding: 1rem;
}
div.menu > nav > div {
margin-bottom: 0.9rem;
}
div.spinner {
color: var(--color-primary);
padding: 1rem;
text-align: center;
transition: color var(--transition-duration);
}
.icon {
display: inline-block;
margin-right: 5px;
}
footer {
color: var(--color-text);
font-size: 0.8rem;
padding: 0.9rem;
text-align: center;
transition: color var(--transition-duration);
}
table {
margin-top: 1rem;
width: 100%;
}
table tr {
transition: background-color var(--transition-duration);
}
table tr:nth-child(even) {
background-color: transparent;
}
table tr:nth-child(odd) {
background-color: var(--color-background-secondary);
}
table td {
padding: 0.25rem;
}
span.tag {
border-radius: 10px;
display: inline-block;
font-size: 0.75rem;
padding: 5px;
}
div.tabs {
background-color: var(--color-background-secondary);
border-radius: 20px;
display: flex;
font-size: 1rem;
justify-content: space-around;
transition: background-color var(--transition-duration);
}
div.tabs > div {
border-color: var(--color-primary);
padding: 0.5rem;
transition: border-color var(--transition-duration);
}
div.tabs > div.active {
border-bottom: 3px solid;
}
div.progress {
background-color: var(--color-background-secondary);
border: 1px solid var(--color-primary);
height: 1rem;
margin: 1rem;
max-height: 100px;
min-height: 10px;
padding: 0px;
transition: background-color var(--transition-duration), border var(--transition-duration);
}
div.progress > div {
background-color: var(--color-secondary);
height: 100%;
transition: background-color var(--transition-duration);
}
div.field {
margin: 2rem 0px;
}
div.field label {
color: var(--color-secondary);
display: block;
font-weight: 700;
margin-bottom: 0.5rem;
}
div.field label.file-input, div.field label.checkbox {
display: inline-block;
}
div.control-container {
display: flex;
padding: 0.5rem 0px;
}
div.control-icon {
background-color: var(--color-primary);
color: var(--color-alternate);
margin: 0px;
padding: var(--input-padding);
transition: background-color var(--transition-duration), color var(--transition-duration);
}
div.control-icon > svg {
vertical-align: middle;
}
div.control {
flex-grow: 1;
}
p.help {
color: var(--color-primary);
font-size: 0.8rem;
margin-top: -0.25rem;
transition: color var(--transition-duration);
}
div.search {
padding: 10px;
text-align: center;
}
div.notification-container {
bottom: 10px;
position: fixed;
left: 10px;
width: 40%;
}
div.notification {
border-radius: 5px;
margin-bottom: 1rem;
}
div.notification > div {
padding: 1rem;
}
button.delete {
border: none;
margin: 0px;
min-width: 0px;
padding: 0px;
position: absolute;
right: 10px;
top: 3px;
}
nav.level {
display: flex;
justify-content: space-between;
}
nav.level > div {
text-align: center;
}
nav.level p.label {
color: var(--color-secondary);
font-size: 0.9rem;
font-weight: bold;
transition: color var(--transition-duration);
}
nav.level p.content {
color: var(--color-text);
font-size: 1.1rem;
transition: color var(--transition-duration);
}
p.label + p.content {
margin-top: -10px;
}
div.member {
margin-right: 10px;
min-width: 150px;
padding: 1rem;
}
div.composer-container {
border-top: solid 1px var(--color-background-secondary);
border-bottom: solid 1px var(--color-background-secondary);
transition: border-top var(--transition-duration), border-bottom var(--transition-duration);
}
div.composer-empty, div.composer-error {
font-size: 0.8rem;
text-align: center;
padding: 1.5rem;
transition: background-color var(--transition-duration), color var(--transition-duration);
}
div.composer-empty {
background-color: var(--color-background-secondary);
color: var(--color-secondary);
}
div.composer-error {
background-color: var(--color-background-secondary);
color: var(--color-red);
}
div.installations {
background-color: var(--color-background-secondary);
display: flex;
padding: 0.5rem;
transition: background-color var(--transition-duration);
}
div.installations > div {
border-right: solid 1px var(--color-background-primary);
padding: 0.5rem;
text-align: center;
transition: border-right var(--transition-duration);
}
div.installations > div > p {
font-size: 0.6rem;
font-weight: bold;
margin: 0px;
padding: 0px;
}
div.user-info, div.group-info {
align-items: center;
display: flex;
}
div.user-info div.image, div.group-info, div.image {
margin-right: 10px;
}
div.user-info {
display: flex;
padding: 1.5rem 1rem;
}
div.user-info-unauthenticated {
padding: 1.5rem 1rem;
text-align: center;
}
div.group-info {
display: flex;
}
div.post {
border-top: var(--default-border);
border-bottom: var(--default-border);
margin: 1rem 0px;
}
div.post div.post-content {
padding: 1rem;
}
div.post div.cover {
cursor: pointer;
font-weight: bold;
padding: 2rem;
text-align: center;
}
div.post-info {
border-top: var(--default-border);
display: flex;
font-size: 0.8rem;
justify-content: space-between;
}
div.post-info > div {
padding: 0.8rem;
}
p.caption {
font-size: 0.75rem;
margin-top: -0.1rem;
}
div.user {
align-items: flex-start;
display: flex;
}
div.user div.group div.image {
display: inline-block;
margin-right: 5px;
vertical-align: sub;
}
div.theme-picker {
display: flex;
flex-wrap: wrap;
margin: 0.5rem 0px;
}
div.theme-picker > div {
--size: 25px;
border: 2px solid;
height: var(--size);
margin-bottom: 10px;
margin-right: 10px;
width: var(--size);
}
div.theme-picker + div {
font-size: 0.8rem;
font-weight: 700;
margin-top: -10px;
}
div.cover-image {
width: var(--content-width);
}
div.cover-image img {
width: var(--content-width);
}
div.header {
display: flex;
}
div.cover-image + div.header {
margin-top: -20px;
}
div.header img {
width: 128px;
}
div.list-item {
border-bottom: var(--default-border);
margin-bottom: 1rem;
padding: 1rem;
}
div.app-list-item, div.group-list-item {
display: flex;
margin: 1rem 0px;
padding: 1rem;
}
div.app-list-item p, div.group-list-item p {
font-size: 0.8rem;
padding: 0.5rem;
padding-top: 0px;
}
div.app-list-item img, div.group-list-item img {
width: 64px;
}