mirror of
https://github.com/flarum/framework.git
synced 2024-12-12 06:03:39 +08:00
c28307903b
HTMLBars goodness! Since there was some breakage and a lot of fiddling around to get some things working, I took this opportunity to do a big cleanup of the whole Ember app. I accidentally worked on some new features too :3 Note that the app is still broken right now, pending on https://github.com/emberjs/ember.js/issues/10401 Cleanup: - Restructuring of components - Consolidation of some stuff into mixins, cleanup of some APIs that will be public - Change all instances of .property() / .observes() / .on() to Ember.computed() / Ember.observer() / Ember.on() respectively (I think it is more readable) - More comments - Start conforming to a code style (2 spaces for indentation) New features: - Post hiding/restoring - Mark individual discussions as read by clicking - Clicking on a read discussion jumps to the end - Mark all discussions as read - Progressively mark the discussion as read as the page is scrolled - Unordered list post formatting - Post permalink popup Demo once that Ember regression is fixed!
193 lines
3.4 KiB
Plaintext
193 lines
3.4 KiB
Plaintext
body {
|
|
background: @fl-body-bg;
|
|
color: @fl-body-color;
|
|
padding-top: 56px;
|
|
}
|
|
.container-narrow {
|
|
max-width: 500px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
// ------------------------------------
|
|
// Header
|
|
|
|
.global-header {
|
|
background: fade(@fl-hdr-bg, 98%);
|
|
transform: translateZ(0); // Fix for Chrome bug where a transparent white background is actually gray
|
|
padding: 10px;
|
|
height: 56px;
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
z-index: @zindex-navbar-fixed;
|
|
.clearfix();
|
|
.transition(box-shadow 0.2s);
|
|
|
|
.scrolled & {
|
|
.box-shadow(0 2px 6px rgba(0, 0, 0, 0.15));
|
|
}
|
|
|
|
& when (@fl-dark-hdr = true) {
|
|
&, & .btn-link {
|
|
color: @fl-hdr-control-color;
|
|
}
|
|
& .form-control {
|
|
background: @fl-hdr-control-bg;
|
|
border: 0;
|
|
color: @fl-hdr-control-color;
|
|
.placeholder(@fl-hdr-control-color);
|
|
|
|
&:focus {
|
|
background: fadein(@fl-hdr-control-bg, 5%);
|
|
}
|
|
}
|
|
& .search-input:before {
|
|
color: @fl-hdr-control-color;
|
|
}
|
|
& .btn-default, & .btn-default:hover {
|
|
background: @fl-hdr-control-bg;
|
|
color: @fl-hdr-control-color;
|
|
}
|
|
& .btn-default.active, .open > .dropdown-toggle.btn-default {
|
|
background: fadein(@fl-hdr-control-bg, 5%);
|
|
}
|
|
& .btn-naked {
|
|
background: transparent;
|
|
}
|
|
}
|
|
}
|
|
.header-controls {
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style-type: none;
|
|
&, & > li {
|
|
display: inline-block;
|
|
vertical-align: top;
|
|
}
|
|
}
|
|
.header-primary {
|
|
float: left;
|
|
& h1 {
|
|
display: inline-block;
|
|
vertical-align: top;
|
|
}
|
|
}
|
|
.header-title {
|
|
font-size: 18px;
|
|
font-weight: normal;
|
|
margin: 0;
|
|
line-height: 36px;
|
|
&, & a {
|
|
color: @fl-hdr-color;
|
|
}
|
|
}
|
|
.header-secondary {
|
|
float: right;
|
|
}
|
|
|
|
// Back button
|
|
// @todo Lots of !importants in here, could we be more specific?
|
|
.back-button {
|
|
float: left;
|
|
margin-right: 25px;
|
|
|
|
& .back {
|
|
z-index: 3 !important; // z-index of an active .btn-group .btn is 2
|
|
border-radius: @border-radius-base !important;
|
|
.transition(border-radius 0.2s);
|
|
}
|
|
& .pin {
|
|
opacity: 0;
|
|
margin-left: -36px !important;
|
|
.transition(~"opacity 0.2s, margin-left 0.2s");
|
|
|
|
&:not(.active) .fa {
|
|
.rotate(45deg);
|
|
}
|
|
}
|
|
&.active {
|
|
& .back {
|
|
border-radius: @border-radius-base 0 0 @border-radius-base !important;
|
|
}
|
|
& .pin {
|
|
opacity: 1;
|
|
margin-left: 1px !important;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ------------------------------------
|
|
// Main
|
|
|
|
.global-main, .paned {
|
|
border-top: 1px solid @fl-secondary-color;
|
|
}
|
|
|
|
// Hero
|
|
.hero {
|
|
background: @fl-body-hero-bg;
|
|
color: @fl-body-hero-color;
|
|
margin-top: -1px;
|
|
text-align: center;
|
|
padding: 30px 0;
|
|
font-size: 14px;
|
|
}
|
|
.hero .close {
|
|
float: right;
|
|
margin-top: -10px;
|
|
color: #fff;
|
|
opacity: 0.5;
|
|
}
|
|
.hero h2 {
|
|
margin: 0;
|
|
font-size: 22px;
|
|
font-weight: normal;
|
|
|
|
& when (@fl-dark-hdr = true) {
|
|
color: @fl-body-color;
|
|
}
|
|
}
|
|
.hero p {
|
|
margin: 10px 0 0;
|
|
}
|
|
|
|
// ------------------------------------
|
|
// Footer
|
|
|
|
.global-footer {
|
|
margin: 100px 0 20px;
|
|
color: @fl-body-muted-more-color;
|
|
.clearfix();
|
|
}
|
|
.footer-primary, .footer-secondary {
|
|
margin: 0;
|
|
padding: 0;
|
|
list-style-type: none;
|
|
|
|
& > li {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
}
|
|
& a {
|
|
color: @fl-body-muted-more-color;
|
|
&:hover,
|
|
&:focus {
|
|
text-decoration: none;
|
|
color: @link-hover-color;
|
|
}
|
|
}
|
|
}
|
|
.footer-primary {
|
|
display: inline-block;
|
|
& > li {
|
|
margin-right: 15px;
|
|
}
|
|
}
|
|
.footer-secondary {
|
|
float: right;
|
|
& > li {
|
|
margin-left: 15px;
|
|
}
|
|
}
|