app/assets/stylesheets/layout.scss
// Table of Contents
//
// 01. Global styles
// 02. Header
// 03. Footer
// 04. Tags
// 05. Auth pages
// 06. Forms
// 07. Callout
// 08. User account
// 10. Official levels
// 11. Tables
// 12. Social
// 14. Verification
// 15. Comments
// 16. Flags
// 17. Activity
// 19. Recommendations
// 20. Documents
// 21. Related content
// 22. Images
// 24. Homepage
// 25. LocalCensusRecords
//
// 01. Global styles
// -----------------
* {
@include normal-selection;
}
html {
font-size: calc(0.25em + Max(0.75em, 0.75vw));
}
html,
body {
margin: 0;
}
html {
height: 100%;
}
body {
display: flex;
flex-direction: column;
font-size: $base-font-size;
min-height: 100%;
&.public {
@include breakpoint($global-width) {
margin-left: $body-margin;
margin-right: $body-margin;
}
}
> .wrapper {
flex-grow: 1;
}
}
main {
display: block;
&.budget-groups-index,
&.budget-investment-new,
&.debate-new,
&.proposal-new,
&.sdg-goals-index,
&.sdg-goal-show,
&.topic-edit,
&.topic-new,
&.subscriptions-edit {
@include grid-column-gutter;
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
clear: both;
font-weight: 700;
}
p {
font-size: $base-font-size;
font-weight: 400;
line-height: $base-line;
}
a {
@include link;
}
a,
button,
[type="button"],
[type="submit"] {
&:focus {
@include focus-outline;
}
&:focus-visible {
@include focus-outline;
}
&:focus:not(:focus-visible) {
@include no-outline;
}
&:active,
&:focus:active {
@include focus-outline;
}
}
.button {
@extend %button;
&.medium {
font-size: $small-font-size;
}
}
.button.hollow {
@include normal-selection;
@include anchor-color;
border: 1px solid;
&:hover,
&:focus {
$hover-color: scale-color($anchor-color, $lightness: $button-hollow-hover-lightness);
color: $hover-color;
color: var(--anchor-color-hover, $hover-color);
}
}
.button.hollow.error {
border-color: $alert-border;
color: $color-alert;
}
.postfix.button {
padding: 0;
}
.clear {
clear: both;
}
.inline {
display: inline !important;
}
.inline-block {
display: inline-block;
}
.sidebar-divider {
border-top: 1px solid $border;
margin-top: $line-height;
&:first-child {
margin-top: 0;
}
}
.margin {
margin-bottom: $line-height;
margin-top: $line-height;
}
.margin-top {
margin-top: $line-height;
}
.margin-bottom {
margin-bottom: $line-height;
}
.margin-left {
margin-left: $line-height;
}
.margin-right {
margin-right: $line-height;
}
.float-right-medium {
@include breakpoint(medium) {
float: right !important;
}
}
.no-margin-top {
margin-top: rem-calc(-24);
}
.padding {
padding-bottom: $line-height;
padding-top: $line-height;
}
.padding-top {
padding-top: $line-height;
}
.light {
background: $light;
}
.highlight {
background: $highlight;
}
.icon-check {
color: $check;
}
.menu.simple {
border-bottom: 1px solid $border;
clear: both;
margin-bottom: calc(#{$line-height} / 2);
li {
font-size: $base-font-size;
margin-bottom: 0;
margin-right: calc(#{$line-height} / 2);
@include breakpoint(medium) {
margin-right: $line-height * 1.5;
}
a {
@include text-colored-link;
display: inline-block;
font-weight: bold;
position: relative;
text-align: left;
}
+ li {
margin-left: 0;
}
&.is-active {
@include brand-color;
border-bottom: 2px solid;
padding-bottom: rem-calc(1);
}
&:not(.is-active) {
margin-bottom: calc(#{$line-height} / 3);
}
}
h2 {
font-size: $base-font-size;
}
}
.menu.vertical {
margin: $line-height 0;
padding: $line-height 0;
li {
margin-bottom: $line-height;
a {
color: $text-medium;
padding: 0;
&.is-active {
@include brand-color;
font-weight: bold;
}
}
h2 {
font-size: $base-font-size;
}
&.is-active {
@include brand-color;
border-bottom: 2px solid;
}
}
&.no-margin-top {
margin-top: 0;
}
&.no-padding-top {
padding-top: 0;
}
}
.small {
font-size: $small-font-size;
}
.relative {
position: relative;
}
.logo {
@include logo;
}
.close-button {
top: calc(#{$line-height} / 2);
}
.back,
.icon-angle-left {
clear: both;
color: $text-medium;
display: inline-block;
padding-right: calc(#{$line-height} / 2);
}
.back:not([class^="icon-"]) {
text-decoration: underline;
}
.tabs-content {
border: 0;
}
.tabs {
border-left: 0;
border-right: 0;
border-top: 0;
margin-bottom: $line-height;
.tabs-title {
font-size: $base-font-size;
margin-right: $line-height;
}
.tabs-title > a {
color: $text-medium;
position: relative;
&:hover {
@include brand-color;
background: none;
text-decoration: none;
}
&[aria-selected="true"],
&.is-active {
@include brand-color;
border-bottom: 0;
font-weight: bold;
&::after {
border-bottom: 2px solid;
bottom: 0;
content: "";
left: 0;
position: absolute;
width: 100%;
}
}
}
h2,
h3 {
font-size: $base-font-size;
}
}
.button.float-right ~ .button.float-right {
margin: 0 calc(#{$line-height} / 2);
}
.pagination .current {
@extend %brand-background;
}
.pagination li {
display: inline-block;
}
.truncate-horizontal-text {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.align-top {
vertical-align: top;
}
.align-middle {
vertical-align: middle;
}
.table {
display: table;
}
.table-cell {
display: table-cell;
}
.uppercase {
text-transform: uppercase;
}
.help-text {
line-height: rem-calc(20);
margin-top: 0;
strong {
font-style: normal;
}
}
.menu-and-content {
$side-menu-min-width: rem-calc(240);
@include breakpoint(medium) {
display: flex;
> nav {
flex: 20%;
min-width: $side-menu-min-width;
max-width: max-content;
+ * {
flex: 80%;
padding: $line-height;
}
}
[for="show_menu"] {
display: none;
}
}
@include breakpoint(small only) {
> nav {
height: 100%;
left: -$side-menu-min-width;
overflow-y: auto;
position: fixed;
top: 0;
transition: left 0.5s ease;
width: $side-menu-min-width;
z-index: 12;
+ * {
padding: $line-height;
}
}
[name="show_menu"]:checked + nav,
> nav:focus-within {
left: 0;
+ * {
overflow-x: hidden;
[for="show_menu"]::after {
@include reveal-overlay;
content: "";
cursor: pointer;
display: block;
z-index: 11;
}
}
}
}
[name="show_menu"] {
display: none;
}
}
// 02. Header
// ----------
body > header,
.wrapper > header {
@include grid-column-gutter;
margin-bottom: $line-height;
@include breakpoint(small down) {
position: relative;
z-index: 10;
}
.selected {
border-bottom: 1px solid #fff;
}
.external-links {
padding: rem-calc(6) 0;
text-align: center;
}
h1 a {
color: inherit;
}
}
.public > .wrapper > header,
.proposal-dashboard > header {
@include full-width-border(bottom, 1px solid $border);
> * {
@include full-width-background($adjust-padding: true);
}
.top-bar {
@include background-with-text-contrast($main-header, [main-header, brand]);
}
}
.proposal-dashboard > header {
@include breakpoint($global-width) {
margin-left: $body-margin;
margin-right: $body-margin;
}
}
.top-bar {
align-items: center;
display: flex;
padding-bottom: $topbar-padding;
padding-top: $topbar-padding;
@include breakpoint(small only) {
flex-direction: row-reverse;
flex-wrap: wrap;
.responsive-menu {
width: 100%;
a {
display: inline-block;
}
}
[data-responsive-toggle] {
flex-grow: 1000;
}
}
h1 {
flex-grow: 1;
line-height: $line-height;
margin-bottom: 0;
a img {
height: rem-calc(48);
margin: 0;
width: auto;
@include breakpoint(medium up) {
height: auto;
}
}
}
}
.menu-button {
border: 1px solid;
border-radius: $button-radius;
color: inherit;
padding: 0.6em;
}
.menu-icon {
@include hamburger($color: currentcolor, $color-hover: currentcolor);
cursor: inherit;
}
.dropdown.menu > li {
a {
background: none;
}
&.is-active > a {
color: inherit;
}
&.is-dropdown-submenu-parent > a::after {
border-top-color: currentcolor;
}
}
.top-links {
@include background-with-text-contrast($top-links, [top-links, brand-secondary]);
display: flex;
flex-wrap: wrap;
font-size: $small-font-size;
> :first-child {
flex-grow: 1;
}
a {
color: inherit;
margin: 0 rem-calc(6);
&:hover {
text-decoration: underline;
}
}
ul {
margin-bottom: 0;
}
li {
display: block;
@include breakpoint(medium) {
display: inline-block;
&::after {
content: "|";
}
&:last-child::after {
content: none;
}
}
}
}
.submenu {
border-bottom: 1px solid $border;
clear: both;
margin-bottom: calc(#{$line-height} / 2);
a {
@include text-colored-link;
display: inline-block;
font-weight: bold;
margin-right: calc(#{$line-height} / 2);
position: relative;
text-align: left;
@include breakpoint(medium) {
margin-right: $line-height;
}
}
.is-active {
@include brand-color;
border-bottom: 2px solid;
&:hover {
text-decoration: none;
}
}
h2 {
font-size: $base-font-size;
}
}
.search-form-header [type=text] {
max-width: none;
}
// 03. Footer
// ----------
footer {
.logo {
color: inherit;
}
.logo a {
font-family: "Lato" !important;
text-decoration: none;
&:hover {
text-decoration: underline;
}
}
p {
font-size: $small-font-size;
&.info a {
text-decoration: underline;
}
}
a,
a:active,
a:focus {
color: inherit;
text-decoration: underline;
&:hover {
color: $text-medium;
}
}
.footer-sections {
padding-left: 0;
}
.title {
font-weight: bold;
text-decoration: none;
}
}
.footer {
@include background-with-text-contrast($footer, footer);
clear: both;
margin-top: $line-height * 2;
padding-bottom: $line-height;
padding-top: $line-height;
.public & {
@include full-width-background;
}
}
.subfooter {
border-top: 1px solid $text-light;
font-size: $small-font-size;
padding-top: calc(#{$line-height} / 2);
.legal {
display: inline-block;
margin-#{$global-left}: 0;
&::before {
content: "|";
}
li {
display: inline-block;
&::after {
content: "|";
margin-left: 4px;
}
&:last-child::after {
content: none;
}
}
}
}
// 04. Tags
// --------
.tag-cloud a,
.categories a,
.geozone a,
.sidebar-links a {
@extend %tag;
}
.categories a,
.geozone a {
@include anchor-color;
background: $highlight;
&:hover,
&.is-active {
@extend %brand-background;
}
}
.sidebar-title {
@include brand-border(top, 2px);
display: inline-block;
font-size: rem-calc(16);
font-weight: bold;
margin: -1px 0 calc(#{$line-height} / 2);
padding-top: calc(#{$line-height} / 4);
text-transform: uppercase;
}
// 05. Auth pages
// --------------
.auth-page {
.footer {
margin-top: 0;
}
}
.auth-image {
@include brand-background;
background-repeat: no-repeat;
background-size: cover;
@include breakpoint(medium) {
min-height: $line-height * 42;
}
h1 {
margin-top: $line-height;
a {
color: inherit;
display: block;
text-align: center;
@include breakpoint(medium) {
display: inline-block;
text-align: left;
}
}
}
}
.auth-form {
@include breakpoint(medium) {
padding-top: $line-height * 4;
}
p,
a,
.checkbox {
font-size: $small-font-size;
}
}
.auth-divider {
border-top: 1px solid $border;
margin-top: $line-height * 1.5;
text-align: center;
span {
background: $body-background;
box-decoration-break: clone;
font-weight: bold;
padding: 0 calc(#{$line-height} / 2);
position: relative;
top: calc(#{-$line-height} / 2);
}
}
// 06. Forms
// ---------
form {
label {
font-size: $base-font-size;
font-weight: bold;
line-height: $line-height;
}
.checkbox-label {
display: table;
}
fieldset legend {
font-weight: bold;
}
[type="radio"] {
height: $line-height !important;
vertical-align: top;
+ label {
font-weight: normal;
}
&:checked + label {
font-weight: bold;
}
}
[type]:not([type="button"], [type=checkbox], [type=file], [type=radio], [type=submit]) {
background: #f8f8f8;
height: $input-height;
margin-bottom: rem-calc(16);
&.error {
margin-bottom: rem-calc(1);
}
&:disabled {
background-color: $input-background-disabled;
}
}
[type="checkbox"] + label,
[type="radio"] + label {
margin-right: 0;
}
[type=file] {
margin: calc(#{$line-height} / 2) 0 calc(#{$line-height} / 2) calc(#{$line-height} / 4);
}
.cke {
margin-bottom: $line-height;
}
.html-area:not(.form-error) {
height: 272px;
margin-bottom: $line-height;
&.admin {
height: 572px;
}
}
.checkbox,
.radio {
font-weight: normal;
line-height: $line-height;
vertical-align: middle;
}
}
.translatable-fields {
&.highlight {
display: inline-block;
padding-top: $line-height;
width: 100%;
}
}
.translation-locale {
padding-top: $line-height;
}
// 07. Callout
// -----------
.callout-slide {
animation-duration: 1s;
animation-fill-mode: both;
animation-name: slide;
}
@keyframes slide {
from {
transform: translate3d(100%, 0, 0);
visibility: visible;
}
to {
transform: translate3d(0, 0, 0);
}
}
.notice-container {
min-width: $line-height * 12;
right: 24px;
top: 24px;
@include breakpoint(medium) {
position: absolute;
}
.notice {
height: $line-height * 4;
.notice-text {
width: 95%;
}
}
}
.callout {
font-size: $small-font-size;
overflow: hidden;
a:not(.button) {
font-weight: bold;
text-decoration: underline;
}
&.success,
&.notice {
background-color: $success-bg;
border-color: $success-border;
color: $color-success;
}
&.primary {
@include info-colors;
}
&.warning {
background-color: $warning-bg;
border-color: $warning-border;
color: $color-warning;
}
&.alert,
&.error {
background-color: $alert-bg;
border-color: $alert-border;
color: $color-alert;
}
.close {
text-decoration: none !important;
}
.button {
margin-bottom: 0;
}
}
.no-error {
background: $success-bg;
color: $color-success;
}
.error {
background: $alert-bg;
color: $color-alert;
display: inline-block;
margin: 0 calc(#{$line-height} / 4);
a {
color: $color-alert;
}
}
.callout {
&.highlight,
&.light {
border: 0;
}
}
// 08. User account
// ----------------
.account {
select {
height: $line-height * 2;
margin-right: calc(#{$line-height} / 2);
}
.final-votes-info {
background: $warning-bg;
border: 1px solid $warning-border;
color: $color-warning;
margin-top: $line-height;
padding: calc(#{$line-height} / 2);
ul li {
margin: calc(#{$line-height} / 2) 0;
}
.icon-box {
color: #d4a26d;
font-size: rem-calc(120);
line-height: rem-calc(120);
vertical-align: top;
}
}
}
.avatar,
.admin-avatar,
.moderator-avatar,
.initialjs-avatar {
border-radius: rem-calc(1000);
position: relative;
}
.author-deleted,
.user-deleted {
color: rgba(0, 0, 0, 0.4);
display: inline-block;
font-size: rem-calc(32);
line-height: rem-calc(32);
height: rem-calc(32);
vertical-align: top;
}
.notifications-list {
position: relative;
&::before {
background: $border;
content: "";
height: 100%;
left: 7px;
position: absolute;
top: 2px;
width: 2px;
}
}
.notification {
border: 1px solid $border;
display: block;
margin-bottom: calc(#{$line-height} / 4);
margin-left: $line-height;
padding: calc(#{$line-height} / 2) $line-height;
position: relative;
@include breakpoint(medium) {
.mark-notification {
position: absolute;
right: 12px;
top: 12px;
}
}
&.unread {
background: $highlight-soft;
border: 1px solid $highlight;
&:hover {
background: $highlight;
}
}
.notification-link {
@include text-colored-link;
display: inline-block;
}
&:hover {
a {
text-decoration: none;
}
&::before {
content: "\43";
}
}
&::before {
@include brand-color;
background: $body-background;
content: "\4d";
font-family: "icons" !important;
font-size: $small-font-size;
height: rem-calc(20);
left: -24px;
line-height: rem-calc(20);
position: absolute;
text-align: center;
width: rem-calc(20);
}
p {
margin-bottom: 0;
max-width: 80%;
}
.time {
font-size: $small-font-size;
color: $text-medium;
}
}
// 10. Officials levels
// --------------------
.level-1,
.level-2,
.level-3,
.level-4,
.level-5,
.is-author,
.is-association {
color: #000;
}
.is-author {
background: #00a5f1;
}
.is-association {
background: #e38d83;
}
.level-1 {
background: #1abc9c;
}
.level-2,
.level-3,
.level-4 {
background: #43ac6a;
}
.level-5 {
background: #f08a24;
}
// 11. Tables
// ----------
table {
border: $border;
border-collapse: collapse;
border-spacing: 0;
width: 100%;
th {
background: #f8f9fb;
}
tr {
td {
line-height: $line-height;
padding: calc(#{$line-height} / 2) calc(#{$line-height} / 4);
}
&:nth-child(odd) {
background: $table-background;
}
&:nth-child(even) {
background: adjust-color($table-background, $red: -3, $green: -1, $blue: -2);
}
}
.button {
margin: 0;
}
}
.table-for-mobile {
@include breakpoint(medium down) {
th,
td {
display: block;
text-align: left;
}
}
}
// 12. Social
// ----------
.button.button-twitter,
.button.button-facebook,
.button.button-google,
.button.button-wordpress {
color: inherit;
font-weight: bold;
&::before {
font-size: rem-calc(24);
margin-right: $font-icon-margin;
}
}
.button.button-twitter {
@include has-fa-icon(twitter, brands);
background: #ecf7fc;
border-left: 3px solid #45b0e3;
&::before {
color: #45b0e3;
}
}
.social-share-button .ssb-icon {
background-image: none;
color: #fff;
height: $icon-width;
line-height: $icon-width;
text-align: center;
width: $icon-width;
&::before {
font-size: calc(#{$icon-width} / 2);
margin-right: 0;
}
&:hover,
&:focus {
background: #fff;
}
}
.ssb-twitter {
@include has-fa-icon(twitter, brands);
background: #45b0e3;
&:hover,
&:focus {
color: #40a2d1;
}
}
.button.button-facebook {
@include has-fa-icon(facebook-f, brands);
background: #ebeef4;
border-left: 3px solid #3b5998;
&::before {
color: #3b5998;
}
}
.ssb-facebook {
@include has-fa-icon(facebook-f, brands);
background: #3b5998;
&:hover,
&:focus {
color: #354f88;
}
}
.button.button-google {
@include has-fa-icon(google, brands);
background: #fcedea;
border-left: 3px solid #de4c34;
&::before {
color: #de4c34;
}
}
.button.button-wordpress {
@include has-fa-icon(wordpress, brands);
background: #dcdde3;
border-left: 3px solid #2f2f33;
&::before {
color: #2f2f33;
}
}
.ssb-telegram {
@include has-fa-icon(telegram-plane, brands);
background: #08c;
&:hover,
&:focus {
color: #40a2d1;
}
}
.ssb-whatsapp_app {
@include has-fa-icon(whatsapp, brands);
background: #43d854;
&:hover,
&:focus {
color: #43d854;
}
}
@include breakpoint(medium) {
.ssb-telegram,
.ssb-whatsapp_app {
display: none !important;
}
}
.share-supported {
text-align: center;
.social-share-button {
display: inline-block;
}
}
// 14. Verification
// ----------------
.verification {
@include breakpoint(medium) {
.left + .left {
margin-left: calc(#{$line-height} / 2);
}
}
.date-of-birth {
select {
float: left;
width: 30%;
@include breakpoint(medium) {
width: 25%;
}
}
}
.progress {
height: $line-height * 3;
@include breakpoint(medium) {
height: $line-height * 2;
}
&.success .meter {
float: none;
}
}
.verification-step {
background: #f6f6f6;
font-weight: bold;
line-height: rem-calc(20);
padding-top: calc(#{$line-height} / 4);
text-transform: uppercase;
vertical-align: top;
@include breakpoint(medium) {
line-height: $line-height * 2;
padding: 0;
}
.number {
display: block;
@include breakpoint(medium) {
background-color: #fff;
border-radius: rem-calc(30);
color: #43ac6a;
display: inline-block;
height: rem-calc(30);
line-height: rem-calc(30);
vertical-align: middle;
width: rem-calc(30);
}
}
&.is-active {
background: #43ac6a;
color: #fff;
}
}
.button + form {
display: inline-block;
margin-left: calc(#{$line-height} / 2);
}
.verification-list {
font-size: rem-calc(13);
list-style-type: none;
margin-left: 0;
span {
display: inline-block;
min-width: $line-height * 12;
}
}
}
.verification-step .completed {
background: #43ac6a;
color: rgba(255, 255, 255, 0.5);
.number {
opacity: 0.5;
}
}
.verify {
margin-bottom: $line-height * 2;
margin-top: $line-height;
h1 {
color: $check;
.icon-check {
line-height: rem-calc(30);
vertical-align: middle;
}
}
.letter-divider {
border-top: 1px solid #ddd;
clear: both;
height: 0;
margin: rem-calc(24) 0;
position: relative;
.icon-letter {
background: $body-background;
color: $color-info;
font-size: rem-calc(24);
margin-left: -27px;
padding: 0 calc(#{$line-height} / 2);
position: absolute;
top: -12px;
}
}
}
// 15. Comments
// ------------
.comments {
padding-bottom: $line-height * 4;
h2 {
margin: 0;
font-weight: bold;
span {
font-size: rem-calc(18);
font-weight: normal;
opacity: 0.8;
}
}
.order-links {
margin-bottom: $line-height;
margin-top: $line-height;
}
.comment {
line-height: $list-lineheight;
margin: calc(#{$line-height} / 4) 0;
position: relative;
p {
margin-bottom: 0;
}
[class^="icon-"] {
font-size: $base-font-size;
text-decoration: none;
vertical-align: sub;
}
}
}
.comment-body,
.notification-body {
img,
svg {
margin-#{$global-right}: calc(#{$line-height} / 2);
}
.reply {
border: 1px solid $border;
border-left: 0;
border-right: 0;
font-size: $small-font-size;
margin: calc(#{$line-height} / 4) 0;
padding: calc(#{$line-height} / 4);
position: relative;
&:empty {
display: none;
}
.divider {
color: $text-light;
display: inline-block;
}
.comment-form form {
margin-top: calc(#{$line-height} / 2);
}
}
.responses-count {
.show-children {
@include has-fa-icon(plus-square, regular);
}
.collapse-children {
@include has-fa-icon(minus-square, regular);
}
.show-children::before,
.collapse-children::before {
margin-right: $font-icon-margin;
transform: translateY(-1px);
}
&.collapsed {
.collapse-children {
display: none;
}
}
&:not(.collapsed) {
.show-children {
display: none;
}
}
}
.delete-comment {
@include has-fa-icon(trash-alt, regular);
&:not(:hover):not(:active) {
color: $delete;
}
&::before {
margin-right: $font-icon-margin;
transform: translateY(-1px);
}
}
.comment-user {
margin-top: calc(#{$line-height} / 4);
padding: calc(#{$line-height} / 4) 0;
overflow: hidden;
&.level-1,
&.level-2,
&.level-3,
&.level-4,
&.level-5,
&.is-author,
&.is-admin,
&.is-moderator {
background: rgba(70, 219, 145, 0.3);
padding: calc(#{$line-height} / 4) calc(#{$line-height} / 2);
}
&.level-1 {
background: none;
}
&.level-5 {
background: rgba(255, 241, 204, 1);
}
&.is-author,
&.is-admin,
&.is-moderator {
background: rgba(45, 144, 248, 0.15);
}
}
}
.comment-list {
margin: calc(#{$line-height} / 4) 0;
.comment-list {
border-left: 1px dashed $border;
display: inline-block;
padding-left: rem-calc(8);
width: 100%;
}
.comment-form {
display: none;
}
&:empty {
display: none;
}
}
.comment-info {
display: inline-block;
font-size: $small-font-size;
line-height: rem-calc(32); // Same as avatar height
.user-name {
font-weight: bold;
}
}
.comment-votes {
button,
form {
color: $dark-gray;
display: inline-block;
}
button {
font-size: $base-font-size;
&:hover {
cursor: pointer;
}
}
@mixin like-unlike-icon($icon, $pressed-color) {
@include has-fa-icon($icon, regular);
&[aria-pressed=false]:hover,
&[aria-pressed=true]:not(:hover) {
@include has-fa-icon($icon, solid);
}
&[aria-pressed=true] {
color: $pressed-color;
}
}
.in-favor,
.against {
display: inline;
}
.in-favor button {
@include like-unlike-icon(thumbs-up, $like);
}
.against button {
@include like-unlike-icon(thumbs-down, $unlike);
}
}
.faded {
opacity: 0.4;
}
.comment-form {
display: inline-block;
width: 100%;
}
// 16. Flags
// ---------
.flag-content {
button {
@include link;
}
}
.flag-disable,
.flag-active {
line-height: 0;
}
.flag-disable {
color: $text-medium;
}
.flag-active {
color: $delete;
}
.dropdown-pane a {
color: $text-medium;
}
// 17. Activity
// ------------
.activity {
.retired {
text-decoration: line-through;
}
}
.public-interests {
li {
margin-right: calc(#{$line-height} / 4);
span {
background: none;
border: 1px solid #ececec;
}
}
}
.following {
.follow-list {
list-style-type: circle;
padding: calc(#{$line-height} / 2);
li {
margin-bottom: calc(#{$line-height} / 2);
margin-left: $line-height;
}
}
h3 {
font-size: rem-calc(24);
margin-top: $line-height;
padding-left: rem-calc(30);
position: relative;
span {
left: 0;
position: absolute;
top: 2px;
}
}
.interests {
@include breakpoint(medium) {
border-left: 1px solid #ececec;
padding-left: $line-height;
}
}
}
// 19. Recommendations
// -------------------
.section-recommended {
background: #fafafa;
border-top: 1px solid $border;
margin-bottom: rem-calc(-48);
padding: $line-height 0;
h2 {
margin-bottom: 0;
}
p {
margin-bottom: $line-height * 2;
}
.debates,
.proposals,
.budget-investments {
@include breakpoint(medium) {
margin-bottom: 0;
}
@include breakpoint(small) {
margin-bottom: $line-height;
}
.button.hollow {
margin-top: rem-calc(15);
}
}
.card {
padding: calc(#{$line-height} / 2);
.card {
border: 0;
}
.card-section {
margin: 0 auto;
max-width: none;
padding: 0;
p {
font-size: $base-font-size;
text-align: left;
}
}
.orbit {
height: rem-calc(300);
.orbit-wrapper {
max-height: rem-calc(250);
overflow: hidden;
position: relative;
}
.orbit-bullets {
@include orbit-bullets;
width: 100%;
}
}
}
.card .orbit .orbit-wrapper .truncate {
background: image-url("truncate.png");
background-repeat: repeat-x;
bottom: 0;
height: rem-calc(20);
position: absolute;
width: 100%;
}
.debates-inner,
.proposals-inner,
.budget-investments-inner {
max-height: rem-calc(350);
@include breakpoint(small) {
max-height: rem-calc(400);
}
h4 {
margin-top: 0;
margin-bottom: $line-height;
font-size: rem-calc(18);
min-height: 0;
}
h5 {
font-size: $small-font-size;
text-align: left;
}
}
.carousel-image {
.card .orbit {
height: rem-calc(480);
.orbit-wrapper {
max-height: rem-calc(450);
}
}
.debates,
.proposals {
a {
display: block;
margin-top: $line-height;
}
}
.debates-inner,
.proposals-inner,
.budget-investments-inner {
border: 1px solid $border;
padding: $line-height;
margin-right: $line-height;
max-height: rem-calc(500);
@include breakpoint(small) {
max-height: rem-calc(600);
}
}
}
.carousel-image .orbit-wrapper img {
display: block;
height: rem-calc(120);
@include breakpoint(small) {
margin: 0 auto;
}
}
}
.recommended-index {
@include full-width-background;
@include full-width-border(bottom, 1px solid #eee);
@include full-width-border(top, 1px solid #fafafa);
background: #fafafa;
margin-bottom: $line-height;
margin-top: rem-calc(-25);
padding: $line-height 0 calc(#{$line-height} / 2);
@include breakpoint(medium) {
padding-top: 0;
}
h2 {
font-size: $small-font-size;
text-transform: uppercase;
}
h3 {
font-size: $base-font-size;
margin-bottom: 0;
}
a {
&:hover {
text-decoration: none;
}
}
.recommendation {
@include card;
background: $body-background;
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.15);
display: block;
margin-bottom: calc(#{$line-height} / 4);
padding: calc(#{$line-height} / 2);
z-index: 1;
&:hover:not(:focus-within) {
box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.15);
}
}
}
.hide-recommendations {
color: $text-light;
position: absolute;
right: 12px;
top: -18px;
z-index: 2;
}
// 20. Documents
// -------------
.additional-document-link {
background: $highlight-soft;
border: 1px solid $highlight;
display: block;
margin: calc(#{$line-height} / 2) 0;
padding: calc(#{$line-height} / 2);
position: relative;
a {
word-wrap: break-word;
}
> :first-child {
@include has-fa-icon(file, regular);
}
}
.document-divider {
background: #fafafa;
border-bottom: 1px solid #eee;
}
// 21. Related content
// -------------------
.related-content {
border-top: 1px solid $border;
h2 {
font-size: rem-calc(24);
span {
color: #4f4f4f;
font-weight: normal;
}
}
}
.add-related-content {
@include link;
display: block;
margin-bottom: $line-height;
@include breakpoint(medium) {
float: right;
}
&[aria-expanded="false"] + form {
display: none;
}
}
.relate-content-score {
display: block;
@include breakpoint(medium) {
text-align: center;
}
a {
font-weight: bold;
margin-right: $line-height;
text-decoration: none;
&.score-positive {
@include has-fa-icon(check, solid);
color: $color-success;
}
&.score-negative {
@include has-fa-icon(times, solid);
color: $color-alert;
}
&::before {
margin-right: $font-icon-margin;
}
}
}
// 22. Images
// -----------------
.button {
&.upload-image {
@include has-fa-icon(image, solid);
}
&.upload-document {
@include has-fa-icon(file, solid);
}
&.upload-image,
&.upload-document {
font-weight: bold;
margin-bottom: $line-height * 1.5;
&::before {
$button-padding-left: nth($button-padding, 2);
margin-left: calc(#{-$button-padding-left} / 2);
margin-right: calc(#{$button-padding-left} / 2);
}
}
}
// 24. Homepage
// ------------
.home-page,
.custom-page,
.sdg-goal-show,
.sdg-goals-index {
a {
p {
&.description {
color: $body-font-color;
word-wrap: break-word;
}
}
}
.background-header {
clip-path: ellipse(60% 80% at 50% 0%);
height: $line-height * 2;
background: $highlight;
margin-top: rem-calc(-48);
@include breakpoint($global-width) {
margin-left: calc(#{$full-width-margin});
margin-right: calc(#{$full-width-margin});
}
}
.cards-container {
display: flex;
flex-wrap: wrap;
.card a {
height: 100%;
}
}
.card {
border: 0;
flex-grow: 0;
overflow: visible;
a {
.figure-card img {
transition-duration: 0.3s;
transition-property: transform;
}
}
a:hover:not(:focus) {
box-shadow: 0 0 12px 0 rgba(0, 0, 0, 0.2);
text-decoration: none;
.figure-card img {
transform: scale(1.1);
}
}
p,
.sdg-tag-list {
padding: 0 calc(#{$line-height} / 4);
}
}
h2 {
&.title {
@include header-font-size(h3);
}
}
h2,
h3 {
&.title {
@include brand-border(top, 4px);
display: inline-block;
margin-bottom: 0;
padding: calc(#{$line-height} / 2) 0;
}
}
figure img {
height: 100%;
width: 100%;
}
}
.home-page .feeds-participation {
@include grid-column-gutter;
}
.feeds-list {
a {
&.see-all {
border-bottom: 1px solid $border;
display: block;
font-size: $small-font-size;
margin: $line-height 0 calc(#{$line-height} / 2);
text-align: right;
width: 100%;
}
}
}
.figure-card {
display: flex;
margin: 0 0 $line-height;
overflow: hidden;
position: relative;
@include breakpoint(medium down) {
min-height: $line-height * 4;
}
@include breakpoint(medium) {
max-height: rem-calc(185);
}
@include breakpoint(large) {
min-height: rem-calc(185);
}
.gradient {
background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0.01) 1%, rgba(0, 0, 0, 1) 100%);
height: 100%;
position: absolute;
width: 100%;
z-index: 2;
}
img {
height: 100%;
width: 100%;
}
figcaption {
bottom: 0;
color: #fff;
font-size: rem-calc(24);
line-height: rem-calc(24);
text-transform: uppercase;
padding: calc(#{$line-height} / 4) calc(#{$line-height} / 2);
position: absolute;
width: 100%;
z-index: 3;
h3 {
font-size: $base-font-size;
@include breakpoint(medium) {
font-size: rem-calc(20);
}
@include breakpoint(large) {
font-size: rem-calc(24);
line-height: rem-calc(24);
}
}
span {
@extend %body-colors;
border-radius: rem-calc(4);
display: inline-block;
font-size: $small-font-size;
font-weight: bold;
margin-bottom: calc(#{$line-height} / 4);
padding: rem-calc(4) rem-calc(8);
}
}
}
// 25. Local Census Records
// ------------------------
.local-census-record-new,
.local-census-record-edit {
.date-of-birth {
select {
float: left;
width: 30%;
margin-right: calc(#{$line-height} / 4);
}
}
}