app/assets/stylesheets/admin.scss
// Table of Contents
//
// 01. Global styles
// 02. Sidebar
// 03. List elements
// 04. Stats
// 05. Management
// 06. Polls
// 07. Legislation
// 08. CMS
// 09. Map
// 10. Budgets
// 11. Newsletters
//
// 01. Global styles
// -----------------
$admin-color: #245b80;
$sidebar: #245b80;
$sidebar-hover: #25597c;
$sidebar-active: #f4fcd0;
.admin {
h2 {
font-weight: 100;
margin-bottom: $line-height;
small {
color: $text-medium;
}
&.title {
text-transform: uppercase;
}
}
.back {
float: none;
}
.header {
border: 0;
}
.top-links {
background: #000;
a {
line-height: rem-calc($line-height * 1.5);
}
}
.admin-top-bar {
background: #fff;
}
.admin-top-bar {
background: #fff;
}
.top-bar {
background: #fff !important;
border-bottom: 1px solid #eee;
color: #000;
height: auto;
@include breakpoint(medium) {
box-shadow: 0 2px 2px #eee;
}
@include breakpoint(small only) {
.top-bar-left ul {
display: inline-block;
}
.top-bar-right {
.submenu {
border: 0;
display: block;
margin-top: 0;
position: initial;
width: 100%;
}
.is-active {
font-weight: normal;
text-decoration: none;
}
.is-submenu-item {
padding: $line-height / 2 0;
}
a {
font-weight: normal !important;
}
}
[class^="icon-"] {
display: none;
}
}
[class^="icon-"]:not(.icon-circle) {
font-size: $base-font-size;
}
}
.menu .menu-text {
h1 {
margin-top: $line-height / 2;
margin-bottom: 0;
@include breakpoint(medium) {
margin-left: $line-height / 2;
margin-top: 0;
}
small {
color: #000;
text-transform: uppercase;
}
}
a {
color: #000 !important;
line-height: $line-height !important;
@include breakpoint(medium) {
line-height: $line-height !important;
}
}
}
.top-bar .menu > li {
@include breakpoint(medium) {
height: auto !important;
padding-top: $line-height / 2;
}
a {
color: #000 !important;
}
}
.title-bar {
color: #000;
position: absolute;
right: 12px;
}
.menu-icon {
&::after {
background: #000;
box-shadow: 0 7px 0 #000, 0 14px 0 #000;
}
}
.notifications .icon-circle {
color: $admin-color;
}
.dropdown.menu > .is-dropdown-submenu-parent > a::after {
border-color: #000 transparent transparent;
}
.fieldset {
select {
height: $line-height * 2;
}
[type="text"] {
border-radius: 0;
margin-bottom: 0 !important;
}
}
th,
td {
text-align: left;
&.text-center {
text-align: center;
}
&.text-right {
padding-right: $line-height;
text-align: right;
}
&.with-button {
line-height: $line-height * 2;
.button {
background: #fff;
color: $brand;
}
}
}
tr {
background: #fff;
border: 1px solid $border;
&:hover {
background: #f3f6f7;
}
}
table {
thead {
color: #fff;
}
th {
background: $brand;
color: #fff;
label {
color: #fff;
}
}
.break {
word-break: break-word;
}
&.fixed {
table-layout: fixed;
}
[type="submit"] ~ a,
a ~ a {
margin-left: 0;
margin-right: 0;
margin-top: $line-height / 2;
@include breakpoint(medium) {
margin-left: $line-height / 2;
margin-top: 0;
}
}
}
hr {
max-width: none;
}
.menu.simple {
margin-bottom: $line-height / 2;
h2 {
font-weight: bold;
margin-bottom: $line-height / 3;
}
.is-active {
border-bottom: 2px solid $admin-color;
color: $admin-color;
font-weight: bold;
}
}
.tabs-panel {
padding-left: 0;
padding-right: 0;
}
.accordion-title {
font-size: $base-font-size;
}
.button.secondary {
margin-right: rem-calc(12);
}
.admin-content {
.proposal-form {
padding-top: 0;
}
.proposal-show {
padding-top: rem-calc(54);
}
}
.is-featured {
margin-top: rem-calc(36);
}
.select-order {
min-width: rem-calc(160);
}
}
.for-print-only {
display: none;
}
.admin-content {
overflow: scroll;
padding: $line-height !important;
}
@include breakpoint(medium) {
tr {
.on-hover-block {
display: none;
}
&:hover .on-hover-block {
display: block;
margin: 0;
margin-top: $line-height / 2;
width: 100%;
}
}
}
@include breakpoint(medium) {
tr {
.on-hover {
display: none;
}
&:hover .on-hover {
display: inline;
}
}
}
.input-group {
.input-group-button {
padding-bottom: rem-calc(16);
vertical-align: top;
}
}
.sortable thead th:hover {
text-decoration: underline;
cursor: pointer;
}
.no-margin-bottom {
margin-bottom: 0 !important;
}
.enabled {
color: $color-success;
}
.disabled {
color: $text-medium;
}
// 02. Sidebar
// -----------
.admin-sidebar {
background: $sidebar;
background: linear-gradient(to bottom, #245b80 0%, #488fb5 100%);
border-right: 1px solid $border;
@include breakpoint(medium) {
min-height: rem-calc(1100);
}
ul {
list-style-type: none;
margin-bottom: 0;
margin-left: 0;
padding: 0;
[class^="icon-"] {
color: #fff;
display: inline-block;
font-size: rem-calc(24);
line-height: $line-height;
padding: $line-height / 2 $line-height / 4;
padding-left: 0;
vertical-align: middle;
}
}
li {
margin: 0;
outline: 0;
ul {
margin-left: $line-height / 1.5;
border-left: 1px solid $sidebar-hover;
padding-left: $line-height / 2;
}
&.is-active a {
background: $sidebar-hover;
border-left: 2px solid $sidebar-active;
font-weight: bold;
}
}
li a {
color: #fff;
display: block;
line-height: rem-calc(48);
padding-left: rem-calc(12);
vertical-align: top;
&:hover {
background: $sidebar-hover;
color: #fff;
text-decoration: none;
}
}
.is-accordion-submenu-parent {
> a::after {
border: 0;
content: '\61' !important;
font-family: "icons" !important;
height: auto;
position: absolute !important;
right: 30px;
top: 6px !important;
}
}
.submenu {
border-bottom: 0;
margin-left: $line-height;
li:first-child {
padding-top: $line-height / 2;
}
li:last-child {
padding-bottom: $line-height / 2;
}
a {
font-weight: normal;
}
.is-active {
border-bottom: 0;
}
}
}
// 03. List elements
// -----------------
.delete {
border-bottom: 1px dotted #cf2a0e;
color: $delete;
font-size: $small-font-size;
&:hover,
&:active,
&:focus {
border-bottom: 1px dotted #fff;
color: #cf2a0e;
}
}
[class^="icon-"].delete {
border: 0;
font-size: $base-font-size;
}
.verified {
color: $check;
a {
border-bottom: 1px dotted $check;
color: $check;
font-size: rem-calc(12);
}
}
.archived {
color: $text-medium;
font-size: rem-calc(12);
}
.ignored {
color: $text-medium;
font-size: rem-calc(12);
}
.rejected {
color: $delete;
}
.date {
color: $text-medium;
font-size: rem-calc(12);
font-style: italic;
}
.official {
background-color: #e7e7e7;
border-radius: rem-calc(3);
font-weight: normal;
padding: rem-calc(6) rem-calc(12);
}
.button.small.success {
margin-left: rem-calc(12);
&.no-margin {
margin-left: 0;
}
}
.moderation-description {
max-height: rem-calc(65);
overflow: hidden;
max-width: rem-calc(700);
&:hover {
max-height: rem-calc(1000);
transition: max-height 0.9s;
}
}
// 04. Stats
// ---------
.stats {
background: #fff;
}
.stats-numbers {
p {
color: $text-medium;
font-size: rem-calc(13);
padding: rem-calc(6);
text-transform: uppercase;
&.featured {
background: $info-bg;
border: 1px solid $info-border;
font-weight: bold;
}
.number {
color: $text;
font-size: rem-calc(30);
font-weight: bold;
}
}
}
// 05. Management
// --------------
.user-permissions {
ul {
list-style-type: none;
margin-left: 0;
}
li {
font-size: rem-calc(14);
margin-bottom: rem-calc(12);
span {
color: $text-medium;
font-size: rem-calc(12);
}
.icon-check {
color: $check;
}
.icon-x {
color: $delete;
}
}
}
.account-info,
.login-as {
background-color: $highlight;
border-radius: rem-calc(3);
font-size: rem-calc(16);
font-weight: normal;
margin: $line-height;
padding: $line-height / 2;
strong {
font-size: rem-calc(18);
}
}
.extra-info {
background: #fafafa;
border-bottom-left-radius: rem-calc(6);
border-bottom-right-radius: rem-calc(6);
border-top: 2px solid #000;
font-size: $small-font-size;
padding: $line-height / 2;
}
.admin-budget-investment-info {
background: $highlight-soft;
border: 2px solid $highlight;
border-radius: rem-calc(4);
margin-bottom: $line-height;
padding: $line-height / 2;
p {
font-size: $small-font-size;
margin-bottom: 0;
}
}
.admin {
.investment-projects-list.medium-9 {
width: 100%;
}
}
.investment-projects-summary {
th,
td {
text-align: center;
&:first-child {
font-weight: bold;
text-align: left;
}
&:last-child {
font-weight: bold;
}
}
tr {
&:nth-child(even) td:last-child {
background: $success-border;
}
&:nth-child(odd) td:last-child {
background: $success-bg;
}
}
}
.admin-content .select-geozone,
.admin-content .select-heading {
a {
color: $text;
display: block;
&.is-active {
color: $brand;
font-weight: bold;
text-decoration: underline;
}
}
}
.investment-projects-summary {
.total-price {
white-space: nowrap;
}
}
.admin {
.geozone {
background: #ececec;
border-radius: rem-calc(6);
color: $text;
display: inline-block;
font-size: $small-font-size;
margin-bottom: $line-height / 3;
padding: $line-height / 4 $line-height / 3;
text-decoration: none;
&:hover {
background: #e0e0e0;
}
}
}
.management-list {
max-width: rem-calc(1200);
}
// 06. Polls
// -----------------
.count-error {
background: $alert-bg !important;
color: $color-alert;
font-weight: bold;
}
table {
.callout {
height: $line-height * 2;
line-height: $line-height * 2;
margin: 0;
padding: 0 $line-height / 2;
}
}
// 07. Legislation
// --------------
// Markdown Editor
// ---------------
.markdown-editor {
background-color: #fff;
.markdown-area,
.markdown-preview {
display: none;
}
}
.markdown-editor .markdown-preview {
overflow-y: auto;
height: 15em;
}
.markdown-editor textarea {
height: 15em;
}
.markdown-editor.fullscreen {
z-index: 9999;
width: 100%;
height: 100%;
position: fixed;
top: 0;
left: 0;
}
.markdown-editor.fullscreen .markdown-preview {
height: 99%;
}
.edit-legislation-draft-version .row {
margin-bottom: 2rem;
}
.legislation-admin {
.menu .is-active > a {
background: none;
}
}
.legislation-process-save {
@include breakpoint(medium) {
float: right;
}
}
.legislation-question-delete {
@include breakpoint(medium) {
text-align: right;
}
}
// 08. CMS
// --------------
.cms-page-list {
[class^="icon-"] {
padding-right: $menu-icon-spacing;
vertical-align: middle;
}
}
.legislation-process-edit {
.edit-legislation-process {
small {
color: $text-medium;
}
[type]:not([type="submit"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
background: $white;
}
.legislation-process-start,
.legislation-process-end {
@include breakpoint(medium) {
line-height: 3rem;
}
}
.legislation-process-end {
@include breakpoint(medium) {
text-align: right;
}
}
}
}
.legislation-draft-versions-index {
.legislation-process-question,
.legislation-process-version {
@include breakpoint(medium) {
text-align: right;
}
}
table tr td {
padding: 0.25rem 0.375rem;
}
}
.legislation-questions-form {
[type]:not([type="submit"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
background: $white;
margin-bottom: 0;
@include breakpoint(medium) {
margin-bottom: 1rem;
}
}
input::placeholder {
font-style: italic;
}
.legislation-questions-answers {
margin-bottom: 1rem;
}
}
.field {
margin-bottom: 1rem;
@include breakpoint(medium) {
margin-bottom: 0;
}
a {
line-height: 3rem;
color: $delete;
span {
text-decoration: underline;
}
.icon-x {
vertical-align: sub;
text-decoration: none;
line-height: 0;
}
&:active,
&:focus,
&:hover {
text-decoration: none;
}
}
}
.fullscreen-container {
a {
line-height: 8rem;
&:active,
&:focus,
&:hover {
text-decoration: none;
}
}
}
.fullscreen {
.fullscreen-container {
a {
line-height: 3rem;
@include breakpoint(medium) {
float: right;
}
}
.markdown-editor-header {
vertical-align: top;
display: inline-block;
color: $white;
@include breakpoint(medium) {
line-height: 3rem;
}
}
.truncate {
@include breakpoint(medium) {
width: 40vw;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}
.markdown-editor-buttons {
display: block;
@include breakpoint(medium) {
display: inline-block;
float: right;
padding-left: 1rem;
}
}
input {
font-size: $small-font-size;
padding: 0.5em 1em;
margin-left: 0;
margin-bottom: 0;
margin-top: 1rem;
@include breakpoint(medium) {
margin: 0.5rem;
}
}
a {
color: $white;
}
}
}
.legislation-draft-versions-form {
.legislation-process-version {
@include breakpoint(medium) {
text-align: right;
}
}
[type]:not([type="submit"]):not([type="file"]):not([type="checkbox"]):not([type="radio"]) {
background: $white;
}
.control {
cursor: pointer;
margin-bottom: 1rem;
small {
display: block;
margin-top: -1rem;
color: $text-medium;
@include breakpoint(medium) {
margin-left: 0.25rem;
display: inline-block;
margin-top: 0;
}
}
}
.fullscreen-container {
text-align: center;
background: #ccdbe6;
.markdown-editor-header,
.markdown-editor-buttons {
display: none;
}
span {
text-decoration: none;
font-size: $small-font-size;
}
.icon-expand {
margin-left: 0.25rem;
vertical-align: sub;
text-decoration: none;
line-height: 0;
}
}
.legislation-draft-version-body {
font-family: $font-family-serif;
background: #f5f5f5;
height: 16em;
&:focus {
border: 1px solid #cacaca;
box-shadow: inset 0 1px 2px rgba(34, 34, 34, 0.1);
}
}
.markdown-preview {
font-family: $font-family-serif;
border: 1px solid #cacaca;
margin-bottom: 2rem;
h1,
h2,
h3,
h4,
h5,
h6 {
font-family: $font-family-serif !important;
font-size: 1rem;
line-height: 1.625rem;
margin-bottom: 0;
}
p {
font-size: 1rem;
line-height: 1.625rem;
}
}
.fullscreen {
.markdown-area,
.markdown-preview {
display: block;
}
.column {
padding: 0;
}
.fullscreen-container {
text-align: left;
background: $admin-color;
padding: 0.5rem 1rem;
margin-bottom: 0;
}
.legislation-draft-version-body {
border-radius: 0;
padding: 1rem;
border: 0;
@include breakpoint(medium) {
padding: 1rem 2rem;
}
}
.markdown-preview {
padding: 1rem;
border: 0;
@include breakpoint(medium) {
padding: 1rem 2rem;
}
}
}
}
.legislation-draft-version-body {
&:focus {
border: 0;
}
}
// 09. Map
// --------------
.map {
width: 100%;
height: 350px;
.map-marker {
visibility: visible;
position: absolute;
left: 50%;
top: 50%;
margin-top: -5px;
.map-icon {
width: 30px;
height: 30px;
border-radius: 50% 50% 50% 0;
background: #00cae9;
transform: rotate(-45deg);
}
.map-icon::after {
content: '';
width: 14px;
height: 14px;
margin: 8px 0 0 8px;
background: #fff;
position: absolute;
border-radius: 50%;
}
}
.map-attributtion {
visibility: visible;
height: auto;
}
}
.map-marker {
visibility: hidden;
}
.map-attributtion {
visibility: hidden;
height: 0;
}
// 10. Budgets
// -----------------
.advanced-filters {
margin: $line-height 0;
@include breakpoint(medium) {
margin: $line-height / 2 0 0;
}
}
.advanced-filters-content {
background: $highlight;
clear: both;
padding: $line-height / 2;
margin: $line-height 0;
.filter {
display: inline-block;
margin: 0 $line-height / 2;
}
.button {
margin-top: $line-height / 2;
}
}
.budget-phase-enabled {
font-weight: bold;
padding-left: rem-calc(20);
position: relative;
text-decoration: none;
&.enabled::before,
&.disabled::before {
font-family: 'icons';
left: 0;
position: absolute;
}
&.enabled {
color: $check;
&::before {
color: $check;
content: '\6c';
}
}
&.disabled {
color: #000;
&::before {
color: #000;
content: '\76';
}
}
}
.max-headings-label {
color: $text-medium;
font-size: $small-font-size;
margin-left: $line-height / 2;
}
.current-of-max-headings {
color: #000;
font-weight: bold;
}
// 11. Newsletters
// -----------------
.newsletter-body-content {
table,
tbody,
tr,
th,
td {
border: 0;
&:nth-child(even),
&:nth-child(even) td:last-child,
&:nth-child(odd) td:last-child,
&:hover {
background: none;
}
}
}