mirror of
https://github.com/discourse/discourse.git
synced 2025-02-14 23:35:00 +00:00
This feature introduces the concept of themes. Themes are an evolution of site customizations. Themes introduce two very big conceptual changes: - A theme may include other "child themes", children can include grand children and so on. - A theme may specify a color scheme The change does away with the idea of "enabled" color schemes. It also adds a bunch of big niceties like - You can source a theme from a git repo - History for themes is much improved - You can only have a single enabled theme. Themes can be selected by users, if you opt for it. On a technical level this change comes with a whole bunch of goodies - All CSS is now compiled using a custom pipeline that uses libsass see /lib/stylesheet - There is a single pipeline for css compilation (in the past we used one for customizations and another one for the rest of the app - The stylesheet pipeline is now divorced of sprockets, there is no reliance on sprockets for CSS bundling - CSS is generated with source maps everywhere (including themes) this makes debugging much easier - Our "live reloader" is smarter and avoid a flash of unstyled content we run a file watcher in "puma" in dev so you no longer need to run rake autospec to watch for CSS changes
98 lines
1.9 KiB
SCSS
98 lines
1.9 KiB
SCSS
// --------------------------------------------------
|
|
// Navigation menus
|
|
// --------------------------------------------------
|
|
|
|
// Base
|
|
// --------------------------------------------------
|
|
|
|
%nav {
|
|
margin-left: 0;
|
|
list-style: none;
|
|
li a {
|
|
display: block;
|
|
text-decoration: none;
|
|
}
|
|
}
|
|
|
|
// Pill nav
|
|
// --------------------------------------------------
|
|
|
|
.nav-pills {
|
|
@extend %nav;
|
|
@extend .clearfix;
|
|
> li {
|
|
float: left;
|
|
margin-right: 5px;
|
|
> a {
|
|
border: none;
|
|
padding: 5px 12px;
|
|
color: $primary;
|
|
font-size: 1.143em;
|
|
line-height: 20px;
|
|
transition: background .15s;
|
|
&:hover {
|
|
color: $quaternary;
|
|
background-color: dark-light-diff($quaternary, $secondary, 70%, -70%);
|
|
}
|
|
}
|
|
&.active > a, > a.active {
|
|
color: $secondary;
|
|
background-color: $quaternary;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Stacked nav
|
|
// --------------------------------------------------
|
|
|
|
.nav-stacked {
|
|
@extend %nav;
|
|
padding: 0;
|
|
overflow: hidden;
|
|
background: dark-light-diff($primary, $secondary, 90%, -75%);
|
|
li {
|
|
border-bottom: 1px solid dark-light-diff($primary, $secondary, 80%, -60%);
|
|
position: relative;
|
|
&:last-of-type {
|
|
border-bottom: 0;
|
|
}
|
|
a {
|
|
margin: 0;
|
|
padding: 13px 13px 13px 30px;
|
|
font-size: 1.143em;
|
|
line-height: 20px;
|
|
cursor: pointer;
|
|
color: $primary;
|
|
}
|
|
}
|
|
.active > a, & li > a.active
|
|
{
|
|
color: $secondary;
|
|
background-color: $quaternary;
|
|
}
|
|
|
|
.active > a::after, & li > a.active::after
|
|
{
|
|
left: 90%;
|
|
top: 33%;
|
|
content: " ";
|
|
position: absolute;
|
|
border: 8px solid transparent;
|
|
border-left-color: $secondary;
|
|
}
|
|
|
|
.count {
|
|
font-size: 0.857em;
|
|
line-height: 16px;
|
|
}
|
|
|
|
.glyph {
|
|
font-size: 0.857em;
|
|
width: 30px;
|
|
text-align: center;
|
|
position: absolute;
|
|
left: 2px;
|
|
line-height: 20px;
|
|
}
|
|
}
|