nimforum/redesign/nimforum.scss
2018-05-12 14:12:57 +01:00

405 lines
No EOL
6.7 KiB
SCSS

// Based on
// https://picturepan2.github.io/spectre/getting-started.html#installation
// Define variables to override default ones
$primary-color: #f99c19;
$body-font-color: #292929;
$dark-color: #525252;
$label-color: #7cd2ff;
$secondary-btn-color: #f1f1f1;
// Define nav bar colours.
$navbar-color: #17181f;
$navbar-border-color-dark: $navbar-color;
$navbar-primary-color: #fee860;
// Import full Spectre source code
@import "spectre/src/spectre";
// Global styles.
// - TODO: Make these non-global.
.btn, .form-input {
margin-right: $control-padding-x;
}
table th {
font-size: 0.65rem;
}
// Spectre fixes.
// - Weird avatar outline.
.avatar {
background: transparent;
}
// Custom styles.
// - Navigation bar.
$navbar-height: 60px;
$logo-height: $navbar-height - 20px;
.navbar-button {
border-color: $navbar-border-color-dark;
background-color: $navbar-primary-color;
color: $navbar-color;
&:focus {
box-shadow: none;
}
&:hover {
background-color: darken($navbar-primary-color, 20%);
color: $navbar-color;
border-color: $navbar-border-color-dark;
}
}
#main-navbar {
background-color: $navbar-color;
.navbar {
height: $navbar-height;
}
// Unfortunately we must colour the controls in the navbar manually.
.search-input {
@extend .form-input;
border-color: $navbar-border-color-dark;
}
.search-input:focus {
box-shadow: none;
border-color: $navbar-border-color-dark;
}
.btn-primary {
@extend .navbar-button;
}
}
#img-logo {
vertical-align: middle;
height: $logo-height;
}
.menu-right {
// To make sure the user menu doesn't move off the screen.
left: auto;
right: 0;
position: absolute;
}
// - Main buttons
#main-buttons {
margin-top: $control-padding-y*2;
margin-bottom: $control-padding-y*2;
.dropdown > .btn {
background: $secondary-btn-color;
border-color: darken($secondary-btn-color, 5%);
color: invert($secondary-btn-color);
margin-right: $control-padding-x*2;
}
}
// - Thread table
.thread-title {
a, a:visited, a:hover {
color: $body-font-color;
text-decoration: none;
}
a.visited {
color: lighten($body-font-color, 40%);
}
}
$super-popular-color: #f86713;
$popular-color: darken($super-popular-color, 25%);
$views-color: #545d70;
.super-popular-text {
color: $super-popular-color;
}
.popular-text {
color: $popular-color;
}
.views-text {
color: $views-color;
}
.label-custom {
color: white;
background-color: $label-color;
font-size: 0.6rem;
padding-left: 0.3rem;
padding-right: 0.3rem;
border-radius: 5rem;
}
.last-visit-separator {
td {
border-bottom: 1px solid $super-popular-color;
line-height: 0.1rem;
padding: 0;
text-align: center;
}
span {
color: $super-popular-color;
padding: 0 8px;
font-size: 0.7rem;
background-color: $body-bg;
}
}
.no-border {
td {
border: none;
}
}
.triangle {
// TODO: Abstract this into a "category" class.
width: 0;
height: 0;
border-left: 0.3rem solid transparent;
border-right: 0.3rem solid transparent;
border-bottom: 0.6rem solid #98c766;
display: inline-block;
}
.load-more-separator {
text-align: center;
color: darken($label-color, 35%);
background-color: lighten($label-color, 15%);
text-transform: uppercase;
font-weight: bold;
font-size: 80%;
cursor: pointer;
td {
border: none;
padding: $control-padding-x $control-padding-y/2;
}
}
// - Thread view
.title {
margin-top: $control-padding-y*2;
margin-bottom: $control-padding-y*2;
p {
font-size: 1.4rem;
font-weight: bold;
color: darken($dark-color, 20%);
margin: 0;
}
}
.posts {
@extend .grid-md;
@extend .container;
margin: 0;
padding: 0;
}
.post {
@extend .tile;
border-top: 1px solid $border-color;
padding-top: $control-padding-y-lg;
}
.post-icon {
@extend .tile-icon;
}
.post-avatar {
@extend .avatar;
@extend .avatar-xl;
}
.post-main {
@extend .tile-content;
margin-bottom: $control-padding-y-lg*2;
}
.post-title {
margin-bottom: $control-padding-y*2;
&, a, a:visited, a:hover {
color: lighten($body-font-color, 20%);
text-decoration: none;
}
.post-username {
font-weight: bold;
display: inline-block;
}
.post-time {
float: right;
}
}
.post-buttons {
float: right;
> div {
display: inline-block;
}
.btn {
background: transparent;
border-color: transparent;
color: darken($secondary-btn-color, 40%);
margin: 0;
margin-left: $control-padding-y-sm;
}
.btn:hover {
background: $secondary-btn-color;
border-color: darken($secondary-btn-color, 5%);
color: invert($secondary-btn-color);
}
.btn:focus {
@include control-shadow(darken($secondary-btn-color, 50%));
}
.btn:active {
box-shadow: inset 0 0 .4rem .01rem darken($secondary-btn-color, 80%);
}
.like-button i:hover, .like-button i.fas {
color: #f783ac;
}
}
blockquote {
border-left: 0.2rem solid darken($bg-color, 10%);
background-color: $bg-color;
.detail {
margin-bottom: $control-padding-y;
color: lighten($body-font-color, 20%);
}
}
.quote-avatar {
@extend .avatar;
@extend .avatar-sm;
}
.quote-link {
float: right;
}
.user-mention {
@extend .chip;
vertical-align: initial;
font-weight: bold;
display: inline-block;
font-size: 85%;
height: inherit;
padding: 0.08rem 0.4rem;
background-color: darken($bg-color-dark, 5%);
img {
@extend .avatar;
@extend .avatar-sm;
}
}
.code-buttons {
position: absolute;
bottom: 0;
right: 0;
.btn-primary {
margin-bottom: $control-padding-y;
}
}
.execution-result {
@extend .toast;
h6 {
font-family: $base-font-family;
}
}
.execution-success {
@extend .toast-success;
}
.information {
@extend .tile;
border-top: 1px solid $border-color;
padding-top: $control-padding-y-lg*2;
padding-bottom: $control-padding-y-lg*2;
color: lighten($body-font-color, 20%);
.information-title {
font-weight: bold;
}
&.no-border {
border: none;
}
}
.information-icon {
@extend .tile-icon;
i {
width: $unit-16;
text-align: center;
font-size: 1rem;
}
}
.time-passed {
text-transform: uppercase;
}
.load-more-posts {
text-align: center;
color: darken($label-color, 35%);
background-color: lighten($label-color, 15%);
border: none;
text-transform: uppercase;
font-weight: bold;
cursor: pointer;
.information-main {
width: 100%;
text-align: left;
}
.more-post-count {
color: rgba(darken($label-color, 35%), 0.5);
margin-right: $control-padding-x*2;
float: right;
}
}
#reply-box {
.form-input {
// For reply text area.
margin-top: $control-padding-y*2;
resize: vertical;
}
.panel {
margin-top: $control-padding-y*2;
}
}