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-border-color: #d3d9dd;
$admin-border: 2px solid $admin-border-color;
$admin-color: #245b80;
$admin-text: #434d54;
$sidebar: $admin-color;
$sidebar-hover: #25597c;
$sidebar-active: #f4fcd0;
$table-border: $admin-border;
$table-header: #ecf1f6;
.admin {
@include admin-layout;
main {
&.admin-site-customization-pages-new,
&.admin-site-customization-pages-edit {
> header {
@include grid-row;
}
}
}
h2 {
font-weight: 100;
margin-bottom: $line-height;
small {
color: $text-medium;
}
}
h3 {
margin: $line-height 0;
}
.back {
float: none;
}
.notifications.unread-notifications::after {
color: $admin-color;
}
.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;
}
}
table {
caption {
font-style: italic;
font-weight: normal;
padding: 0;
text-align: $global-left;
}
thead {
&,
tr {
border: 0;
}
th:first-of-type {
border-top-left-radius: rem-calc(8);
}
th:last-of-type {
border-top-right-radius: rem-calc(8);
}
}
th {
background: $table-header;
color: $admin-text;
padding: calc(#{$line-height} / 2);
a {
color: inherit;
white-space: nowrap;
}
}
tr {
border: $table-border;
&:hover {
background: adjust-color(darken($table-background, 2%), $red: -4, $green: -1);
}
}
.break {
word-break: break-word;
}
&.fixed {
table-layout: fixed;
}
[type="submit"] ~ a {
margin-left: calc(#{$line-height} / 2);
}
[type="checkbox"] {
margin-bottom: 0;
vertical-align: middle;
}
}
hr {
max-width: none;
}
form {
.input-group-label {
height: $line-height * 2;
}
.checkbox,
.radio {
font-weight: bold;
}
select {
height: $input-height;
}
[type]:not([type="button"], [type=checkbox], [type=file], [type=radio], [type=submit]),
select {
background-color: $white;
border: $admin-border;
border-radius: rem-calc(6);
box-shadow: none;
&:focus {
border: $input-border-focus;
}
}
}
.form-label {
font-weight: bold;
margin-bottom: 0;
}
.menu.simple,
.order-links {
margin-bottom: calc(#{$line-height} / 2);
h2 {
font-weight: bold;
margin-bottom: calc(#{$line-height} / 3);
}
.is-active {
color: $admin-color;
font-weight: bold;
}
}
.order-links {
margin-bottom: $line-height;
}
.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-new {
padding-top: 0;
}
}
.is-featured {
margin-top: rem-calc(36);
}
}
.for-print-only {
display: none;
}
@include breakpoint(medium) {
tr {
.on-hover-block {
display: none;
}
&:hover .on-hover-block {
display: block;
margin: 0;
margin-top: calc(#{$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;
}
.icon-sortable {
font-family: "Font Awesome 5 Free";
font-size: $small-font-size;
position: relative;
&::before,
&::after {
left: 6px;
opacity: 0.5;
position: absolute;
}
&::before {
content: "\f0d8";
bottom: 0;
}
&::after {
content: "\f0d7";
top: 0;
}
&.asc {
&::after {
opacity: 1;
}
}
&.desc {
&::before {
opacity: 1;
}
}
}
code {
word-break: break-all;
}
.content-type {
white-space: nowrap;
padding-right: $line-height;
label {
margin-left: 0 !important;
}
}
// 02. Sidebar
// -----------
// See admin/menu.scss
// 03. List elements
// -----------------
.delete {
border-bottom: 1px dotted;
color: $delete;
font-size: $small-font-size;
&:hover,
&:active,
&:focus {
border-bottom-color: transparent;
color: darken($delete, 10%);
}
}
[class^="icon-"].delete {
border: 0;
font-size: $base-font-size;
}
.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-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: $body-font-color;
font-size: rem-calc(30);
font-weight: bold;
}
}
}
// 05. Management
// --------------
.account-info,
.login-as {
background-color: $highlight;
border-radius: rem-calc(3);
font-size: rem-calc(16);
font-weight: normal;
margin-bottom: $line-height;
padding: calc(#{$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;
font-size: $small-font-size;
padding: calc(#{$line-height} / 2);
}
.admin-budget-investment-info {
background: $highlight-soft;
border: 2px solid $highlight;
border-radius: rem-calc(4);
margin-bottom: $line-height;
padding: calc(#{$line-height} / 2);
p {
font-size: $small-font-size;
margin-bottom: 0;
}
}
.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 > header {
align-items: flex-start;
display: flex;
flex-wrap: wrap;
a,
button,
form {
margin-#{$global-left}: auto;
}
a,
button {
&:not(.delete) {
@include regular-button;
margin-#{$global-left}: auto;
}
}
}
.admin-content .select-heading {
a {
color: inherit;
display: block;
&.is-active {
@include brand-color;
font-weight: bold;
text-decoration: underline;
}
}
}
.investment-projects-summary {
.total-price {
white-space: nowrap;
}
}
.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 calc(#{$line-height} / 2);
}
}
// 07. Legislation
// --------------
// Markdown Editor
// ---------------
.markdown-editor {
background-color: $body-background;
.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;
}
.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"]) {
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 {
color: color-pick-contrast($admin-color);
a {
line-height: 3rem;
@include breakpoint(medium) {
float: right;
}
}
.markdown-editor-header {
vertical-align: top;
display: inline-block;
@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: inherit;
}
}
}
.legislation-draft-versions-form {
.legislation-process-version {
@include breakpoint(medium) {
text-align: right;
}
}
.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;
}
}
.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;
@include breakpoint(medium) {
padding-left: 2rem;
padding-right: 2rem;
}
&:focus {
box-shadow: inset 0 1px 2px rgba(34, 34, 34, 0.1);
}
}
.markdown-preview {
padding: 1rem;
border: 0;
@include breakpoint(medium) {
padding: 1rem 2rem;
}
}
}
}
// 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: calc(#{$line-height} / 2) 0 0;
}
}
.advanced-filters-content {
background: $highlight;
clear: both;
padding: calc(#{$line-height} / 2);
margin: $line-height 0;
.filter {
display: inline-block;
margin: 0 calc(#{$line-height} / 2);
label {
font-weight: normal;
margin: 0;
}
}
.button {
margin-top: calc(#{$line-height} / 2);
}
}
.columns-selector {
[class^="icon-"] {
vertical-align: middle;
}
&[aria-expanded="false"] {
@include hollow-button;
+ .columns-selector-wrapper {
display: none;
}
}
&[aria-expanded="true"] {
@include regular-button;
}
}
.columns-selector-wrapper {
background: $light-gray;
padding: 2rem;
border-radius: 10px;
margin-bottom: 1rem;
.column-selector-item {
display: inline-block;
&.hidden {
display: none;
}
label {
font-size: $base-font-size;
line-height: 1.5rem;
}
}
}
.column-selectable {
.hidden {
display: none;
}
}
// 11. Newsletters
// -----------------
.admin .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;
}
}
}