/* HEADINGS and TYPOGRAPHY */ $body-font: MuseoSans, Helmet, Freesans, sans-serif !default; $meta-font: Helmet, Freesans, sans-serif !default; $heading-font: 'Museo300-display', MuseoSans, Helmet, Freesans, sans-serif !default; $image-sprite: '../fixmystreet/images/sprite.png' !default; $menu-image: 'menu-white' !default; $itemlist_item_background: #f6f6f6 !default; $itemlist_item_background_hover: #e6e6e6 !default; $col_big_numbers: #ccc !default; $form-control-border-color: #aaaaaa !default; @import "_mixins"; @import "_report_list"; body { font-family: $body-font; margin:0; font-size:1em; line-height:1.5; color: #222; background-color: #fff; } p { font-size: 1em; font-weight: normal; margin: 0 0 1em; } small{ font-family: $meta-font; font-style: italic; font-size: 0.8125em; line-height: 1.2307em; } h1 { font-family: $heading-font; font-size: 2em; line-height: 1em; font-weight: normal; margin-top: 0.5em; margin-bottom: 0.5em; } h1#reports_heading span { display: none; } h1#reports_heading a { display: block; font-size: 50%; } h2 { font-family: $heading-font; font-size: 1.5em; /*24px*/ line-height: 1.3333em; /*32px*/ font-weight: normal; margin-top: 1.333333333em; /*32px*/ margin-bottom: 0.666666666em; /*16px*/ } h3 { font-size: 1.25em; line-height: 1.20em; margin-top: 1.2em; margin-bottom: 0.8em; font-weight: normal; } h4 { font-size: 1em; font-weight: normal; margin-bottom: 1em; } // default list styles ul, ol { font-size: 1em; margin-bottom: 2em; margin-#{$left}: 2em; padding:0; } li{ margin-bottom: 0.5em; } ul li{ list-style: square; } ol li { list-style:decimal; } // lets you have a traditional ol but with nicely styled numbers // for older browsers it just falls back to the normal ol ol.big-numbers { padding: 0; margin: 0; counter-reset: li; // reset counter to be 'li' instead of a number > li { position: relative; list-style: none; padding: flip(0 0 0 2.5em, 0 2.5em 0 0); margin-bottom:2em; &:before { content: counter(li); // set the content to be whatever the 'li' var is counter-increment: li; // add to the counter var position: absolute; #{$left}: 0; top:-0.2em; color:$col_big_numbers; line-height:1; font: { family: $meta-font; weight:bold; size:2.5em; } } } } dl { margin: 0; padding: 0; dt { font-size: 1em; line-height: 1.5em; font-weight: bold; } dd { font-weight: 1em; line-height: 1.5em; margin: 0 0 1em; } } blockquote { p:before { content: '“'; } p:after { content: '”'; } } pre { font-family: monospace; } img { //do this otherwise IE will just not display //any img without a height defined height:auto; max-width: 100%; } // So that map popups display correctly #popup img { max-width: none; } select, input, textarea { font-size: 99%; } // To deal with bug from drop-down being wider than holder select { width: 100%; } a { text-decoration: none; color: #0BA7D1; &:visited { color: #0BA7D1; } &:hover, &:active { text-decoration: underline; color: #0D7CCE; } } // custom type .small-print { @extend small; margin-bottom: 1.2307em; color:#666666; } .meta{ color:#555555; font-style: italic; margin-bottom: 0px; } .meta-2{ font-family: $meta-font; color:#666666; font-style: italic; font-size: 0.75em; } h4.static{ font-family: $meta-font; text-transform: uppercase; font-size: 0.875em; line-height: 1.71428em; color:#666; margin-top: 2em; } h4.static-with-rule{ @extend.static; background: #f6f6f6; border-top: 0.25em solid $primary; margin-bottom:0.25em; padding: 0.5em 1em; } /* FORMS */ input[type=file] { width: 100%; } input[type=text], input[type=password], input[type=email], textarea { @include box-sizing(border-box); display: block; width: 100%; padding: 0.5em; font-size: 1em; line-height: 1em; .ie7 & { max-width: 95%; } } textarea { line-height: 1.5em; min-height: 5em; } label{ display: block; margin-top: 1.25em; margin-bottom: 0.5em; font-weight: bold; &.inline { display: inline; padding: flip(0 2em 0 1em, 0 1em 0 2em); font-weight: normal; } &.inline-text { display: inline; font-weight: normal; } } .form-control { display: block; background-color: #fff; border: 1px solid $form-control-border-color; @include border-radius(4px); box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2); font-family: inherit; // eg: stop Firefox and IE10-11 using Courier in textareas margin-bottom: 0.5em; &[readonly] { box-shadow: none; color: #888888; } } select.form-control { box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2); height: 2.2em; // roughly equal to default input height &[multiple] { height: auto; } .js &.js-multiple[multiple] { height: 2.2em; } } .form-section-heading { font-family: inherit; color: inherit; font-weight: bold; margin-bottom: 0.25em; } .form-section-heading--private { &:before { content: ""; display: inline-block; width: 16px; height: 18px; background: transparent url(/cobrands/fixmystreet/images/padlock.png) 0 0 no-repeat; background-size: 16px 18px; margin-#{$right}: 0.5em; @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { background-image: url(/cobrands/fixmystreet/images/padlock@2.png); } @media all { background-image: url(/cobrands/fixmystreet/images/padlock.svg), none; } } } .form-section-description { color: #666; line-height: 1em * (22/16); } // grey background, full width box .form-box { margin: 0 -1em 0.25em; background: #eee; padding: 1em; & > input[type=text], & > input[type=email] { margin-bottom: 1em; } & > label:first-child { margin-top: 0; } .title { font-size: 1.25em; margin: 0.5em 0; } h2 { margin: 0 0 0.5em; } h5 { margin: 0 0 1em; font-size: 1.125em; font-weight: normal; strong { font-size: 2em; margin-#{$right}: 0.25em; } } } // When the user is logged in, we show a shorter form-box, // without a heading before it. So add some space before. #form-box--logged-in-name { margin-top: 1.25em; } // Prevent grey displaying oddly by giving it a width, and stop odd left margin issue .ie7 .form-box { width: 100%; > input[type=text], input[type=email] { margin-#{$left}: 2em; } } .change_location { color: #666; padding-#{$left}: 20px; background: transparent url(/cobrands/fixmystreet/images/wrong-location.png) $left 50% no-repeat; border-#{$left}: solid 4px transparent; margin-top: -0.5em; } .form-txt-submit-box { min-height:3em; input[type=password], input[type=text], input[type=email] { width: 65%; float: $left; } input[type=submit] { float: $right; width:28%; margin-#{$right}: 0.25em; padding-top:0.6em; padding-bottom:0.5em; } } .checkbox-group { margin:1em 0; } .label-containing-checkbox { padding-#{$left}: 24px; position: relative; input { position: absolute; #{$left}: 0; top: 0.2em; } } // form errors div.form-error, p.form-error { @include inline-block; background:#ff0000; color:#fff; padding:0 0.5em; @include border-radius(0.25em 0.25em 0 0); a { color: white; text-decoration: underline; } a:hover { text-decoration: none; } } input.form-error, textarea.form-error { border-color:#ff0000; @include border-radius(0 0.25em 0.25em 0.25em); } ul.error { background:#ff0000; color:#fff; padding:0 0.5em; @include border-radius(0.25em); } .form-success { background: #009900; color: #fff; padding: 0 0.5em; @include border-radius(0.25em); } /*** LAYOUT ***/ // Padding creates page margins on mobile .container{ padding: 0 1em 1em; } // Use full width to reverse .container margins .full-width { margin: 0 -1em; } // #site-header creates grey bar in mobile // .nav-wrapper-2 is used on desktop #site-header{ border-top: 0.25em solid $primary; height: 3em; @include linear-gradient(#000, #222 10%, #222 90%, #000); .container { min-height:4em; } } #site-logo{ display: block; width: 175px; height: 40px; top: 0.4em; #{$left}: 0.5em; background: url($image-sprite) -3px -3px no-repeat; text-indent: -999999px; position: absolute; z-index:2; } // this is a skip to nav for mobile users only #nav-link { width: 3em; height: 3em; // same height as #site-header background: transparent url(../fixmystreet/images/#{$menu-image}.png) center center no-repeat; background-image: inline-image("../fixmystreet/images/#{$menu-image}.svg"), none; background-size: 22px 18px; display: block; text-indent: -999999px; position: absolute; #{$right}: 0; top: 0.25em; // same as border-top on #site-header } // A shortcut to the Reporting page, in the mobile header #report-cta { display: block; position: absolute; top: (3em / 2); // half the height of #site-header #{$right}: 3.5em; margin-top: -0.5em; font-size: 0.9em; line-height: 1em; border: 1px solid #666; color: #fff; padding: 0.4em; border-radius: 0.3em; &:hover, &:focus { text-decoration: none; background-color: #444; } } .nav-menu { @include list-reset-soft; a, span { display: block; padding: 0.5em 1em; background: #f6f6f6; color: #333; font-size: 1.25em; border-bottom: 0.25em solid #333; } a:hover, span.hover { background: #333; color: #fff; text-decoration: none; } span { background: #ccc; } } .nav-menu--mysoc { a { color: $primary_text; background: $primary; } } #mysoc-logo { background-origin: content-box; background-position: $left 3px; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHQAAAAYCAYAAAArrNkGAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABBtJREFUaN7tmT2u1DAQx/cIPgBCQUJCICH5BuQIPkIq6hzBB0AyiAP4ABQ5ghtEm54mEtVrICUNkpmsJjBvdvyR1S7hPa2lv1aJs5PEP894xjkc/tMWY+xADhRQA8iC9I7PtD6PP9xa9aC1oCnmm9lpgtHW3WiVB03HuqYeA9DlPZbJuXj8o5wgGM5os+ixLb74MeTt+Hz+kiGXva99jEDjJV7w+5Pn3aIHNoEvB/Tu7s6iejzuQAEUQRPIgxT2KTwesX+5rkvYs7yP2KDXLN7XXCKkAUgHiii3MaQuideI9x/x2GB/gxFjVZMIoY6AmtBGJ+QJluUKgdheI1LpfveuoQMciTw7XrUAbEFzot8Re4GcnwWghv23Ezx0PiejBYiBAA0/Pz7VoOV3AKnEup1LwhyBQFsr2Jkzdjy51hZyBIuwaOuFZ6fPPaaA5jQX+hvi4fS8YUC9BBzXqJOB4INXAGpAM8oAxBEUUbYSQiCD1ZWACnZGhDJIUacGaBbY34ghAxfAdHheCxBHAs6yvp7YpP/zDOgk9WHIGhMvOZ5TrjCgfUUSptigqQqg1M7A7kHhTVvWUAF8Q/r6ZObPQy4bfMf62wycoeSFOEmoPS2sQ74mdFUC1RhuHQ25QonkKurjE6CCpzTC+9CmNwBNeiHz/oGvabnweG+9E9ZDul6GDDiD53tybsoMYIMJhhQSjy/28YVzoAgKoGRt+uvHMwUaQRHkS7N/I1AjhGuuGs+2ifsOPOwKk6TLAeUe2J4DFPtG7vnsnK3MQPngTwg0ErUZoC3CPEqyWbmDJQG1cVvbCpRPmIadm6Wy5VpAeXKkpCRqQ1F/DwBAnAlQnQHaEKDzlYGGgvQWoEJy1LOx8P8SqOLJEU2uNhbhvQC0AVn76n3/9vWHpIe++/Km/fxVL17aL3ATSYU5E2h77rbkBqA2kYFHsbS7FlAhOTrJpIXwkirYRynMAEgDiignwHSgiGozCceUg5EBqs5N2hhQX8gnpDaldoquCVQn6lmV2foLbJdkSmWkANESoNPLT98UyKMUgbnIFsqWGRMxQ0JbW1G2eCHsdmQferWlMwlPxHuLnwiFa9NefU2gQiJ0UholBixm6lGV8lAEGVFDykMr6l5e5OeA1tg5ASB8wcmVMEa4rtkLqM3VnqQuDJnBmHnhT6A2oKPNBSIFuq6hoCbzCatY91Zs/ZXspED5Ws+rDu0IbZUSEps//YmQuvbrCg8NFd8I1zBl8bd66w8galBA6Q3rmWKb3YZlpIqE0Da13pLrVjtd6flxMtP7qorvse1hjyYkRfs8yMP/8E83WMIeII2wdrobnk0gG6HOnUu7WteAqRKf39QN0yagTlhf9/lwz9fNG8yzgBrmmWa3h8Ftv0HaQLi1TYlaSGX3UvsNzdBKw+waoEEAAAAASUVORK5CYII='); background-repeat: no-repeat; text-indent: -999999px; } .ie7 #mysoc-logo { background: url($image-sprite) -240px -38px no-repeat; } //defines where the table caption is (login stuff on mob, nav menu on desktop) .wrapper { width:100%; display:table; // The 'caption' at large widths will be top, moving the menu up magically caption-side: bottom; // This is so absolutely positioned header stuff doesn't overlap banner... position: relative; } // ...however position: relative stops the map being clickable (?), so better // revert it there body.mappage .wrapper { position: static; } // #key-tools is the list that's pulled out an stick to the bottom of the page of desktop, below is mostly just aesthetic .shadow-wrap { margin: 0 -1em; ul#key-tools{ @include list-reset-soft; margin-bottom: 1em; display: table; width:100%; li{ display: table-cell; vertical-align: bottom; text-align: center; border-#{$right}: 0.25em solid #fff; &:last-child { border-#{$right}: none; } input[type=submit] { width: 100%; border: none; } a, input[type=submit] { display: block; background-color: #f5f5f5; background-repeat: no-repeat; color:#333; padding:4em 2em 1em; text-transform:uppercase; font: { size:0.6875em; family: $meta-font; } &:hover, &.hover { text-decoration:none; background-color:#333; color:#fff; } &.abuse { background-image: url($image-sprite); background-position: center -2424px; } &.feed { background-image: url($image-sprite); background-position: center -2563px; } &.share { background-image: url('/cobrands/fixmystreet/images/share.png'); background-position: center 25%; } &.chevron { background-image: inline-image("../fixmystreet/images/chevron-grey-#{$right}.svg"); background-position: center 25%; background-size: 20px 25px; } &.chevron.hover { background-size: auto auto; } &.hover { background-image: url($image-sprite); background-position: center -2064px; } } } } } //because display:table doesn't work we float .ie7 { .shadow-wrap { ul#key-tools{ background:#f5f5f5; li{ float: $left; a { padding-#{$left}: 1.5em; padding-#{$right}: 3em; } } } } } .iel8 { .shadow-wrap ul#key-tools li a.chevron { background-image:url('/cobrands/fixmystreet/images/ie_key_tools_sprite.gif'); background-position: $right -116px; } } #report-updates-data img { float: $right; } #report-share { .btn { padding-left: 1.5em; padding-right: 1.5em; display: inline-block; } .btn + .btn { margin-left: 1em; } } //footer blocks footer { margin-top: 1em; } #footer-mobileapps { margin: 0 -1em; padding: 1em 1em 0; h4 { margin:0; } p { font-size: 0.75em; padding-bottom: 0; border-bottom:1px solid #AFAFAF; } } #footer-help { ul { @include list-reset-soft; li { border-bottom:1px solid #AFAFAF; &:last-child { border-bottom:none; } h4 { margin:0.75em 0 0.25em; } p { font-size:0.75em; margin-bottom: 0; } } } } /*BUTTONS*/ .btn { @include button-reset; } .btn + .btn { // Ensure extra space between inline buttons placed next to each other. margin-#{$left}: 0.5em; } .btn-primary, .green-btn { @include button-reset(#9FDE23, #7FB900, #5B9700, #fff, #9FDE23, #7FB900, #5B9700, #fff); } .btn-danger, .red-btn { @include button-reset(#FF0038, #BF002A, #80001C, #fff, #FF0038, #BF002A, #80001C, #fff); } .final-submit, input.final-submit { margin: 1em 0.5em; float: $right; } .btn--facebook { @include button-reset(#3b5998, darken(#3b5998, 10%), #3b5998, #fff, darken(#3b5998, 5%), darken(#3b5998, 10%), #3b5998, #fff); img { margin-right: 0.5em; vertical-align: -0.2em; height: 1.3em; width: auto; } } .btn--twitter { @include button-reset(#55acee, darken(#55acee, 10%), #55acee, #fff, darken(#55acee, 5%), darken(#55acee, 10%), #55acee, #fff); img { margin-right: 0.5em; vertical-align: -0.2em; height: 1.3em; width: auto; } } .btn--navigate, .btn--geolocate, .btn--shortlist, .btn--shortlisted { &:before { content: ""; display: inline-block; width: 16px; height: 16px; background: transparent url(/cobrands/fixmystreet/images/navigate.png) no-repeat 0 0; background-size: 16px 16px; margin-#{$right}: 0.5em; vertical-align: -0.1em; // vertically centre icon in button @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { background-image: url(/cobrands/fixmystreet/images/navigate@2x.png); } @media all { background-image: url(/cobrands/fixmystreet/images/navigate.svg), none; } } } .btn--geolocate { &:before { background-image: url(/cobrands/fixmystreet/images/crosshairs.png); @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { background-image: url(/cobrands/fixmystreet/images/crosshairs@2x.png); } @media all { background-image: url(/cobrands/fixmystreet/images/crosshairs.svg), none; } } } .btn--shortlist { &:before { background-image: url(/cobrands/fixmystreet/images/icon-shortlist-mini.png); @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { background-image: url(/cobrands/fixmystreet/images/icon-shortlist-mini@2x.png); } @media all { background-image: url(/cobrands/fixmystreet/images/icon-shortlist-mini.svg), none; } } } .btn--shortlisted { &:before { background-image: url(/cobrands/fixmystreet/images/icon-shortlisted-mini.png); @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { background-image: url(/cobrands/fixmystreet/images/icon-shortlisted-mini@2x.png); } @media all { background-image: url(/cobrands/fixmystreet/images/icon-shortlisted-mini.svg), none; } } } .btn--block { display: block; text-align: center; } // Under the button to override its text transform and width .btn--social { text-transform: none; text-align: center; } .js #js-social-email-hide { display: none; } .button-fwd { padding: flip(1em 3em 1em 1em, 1em 1em 1em 3em); background: inline-image("../fixmystreet/images/chevron-grey-#{$right}.svg") $right 50% no-repeat; } .button-back { padding: flip(1em 1em 1em 3em, 1em 3em 1em 1em); background: inline-image("../fixmystreet/images/chevron-grey-#{$left}.svg") $left 50% no-repeat; } .button-fwd, .button-back { @include inline-block; cursor:pointer; font-size: 1em; line-height: 1; margin:0; border:1px solid #999; color:#333; background-color: #eee; background-size: 20px+16px 25px; @include border-radius(4px); &:hover{ color:#fff; background-color: #777; text-decoration: none; border:1px solid #666; } } .iel8 { .button-fwd, .button-back { background-image: url($image-sprite); background-repeat: no-repeat; } .button-fwd { background-position: right -686px; } .button-back { background-position: -18px -802px; } } .rap-notes-trigger { &.clicked { background-image: inline-image("../fixmystreet/images/cross-grey.svg"); .iel8 & { background-image: url("../fixmystreet/images/cross-grey.png"); } } } .banner { position: relative; p { position: absolute; top:-1.95em; #{$right}: 0; @include inline-block; font-size:0.6875em;//11px line-height:1em; padding:0.5em 1em; margin:0; color:#1a1a1a; background: #ccc; text: { transform:uppercase; align:center; } &:before { content: ""; #{$left}: -0.5em; top:0; position: absolute; width: 0; height: 0; border-#{$left}: 0.5em solid transparent; border-bottom: 0.5em solid #888; } &#fixed { color:#fff; background: $col_fixed_label; &:before { border-bottom: 0.5em solid $col_fixed_label_dark; } } } } /*OTHER*/ .plain-list { @include list-reset-soft; li { margin-bottom:1em; } } .item-list { margin: 0 0 1em; padding: 0; border-bottom: 0.25em solid $primary; } .item-list__item { list-style: none; background-color: $itemlist_item_background; margin: 0.25em 0 0; padding: 0.5em 1em; display: block; @media print { background-color: transparent !important; margin: 0 !important; padding: 1em 0 !important; border-top: 1px solid #ccc; page-break-inside: avoid; } } .item-list__update-wrap { @include clearfix; } .item-list__update-text p { margin-bottom: 0.5em; } %item-list__item--link { padding: 0; a { color: #222222; display: block; padding: 0.5em 1em; } a:hover, a:focus, &.hovered a { background-color: $itemlist_item_background_hover; text-decoration: none; } } .item-list--wards__item { @extend %item-list__item--link; } .item-list--reports__item { @extend %item-list__item--link; a { @include clearfix; padding: flip(0 0 0 1em, 0 1em 0 0); @media print { padding: 0; } } .img { width: 90px; float: $right; height: auto; margin-#{$left}: 1em; } small { color: #666; display: block; padding: 0.25em 0; } } .item-list__item__metadata { display: none; @media print { display: block; @include flex-container(); @include flex-wrap(wrap); } & > * { margin-top: 0.5em; width: 33%; @include flex(0 0 auto); } h4 { margin: 0; font-size: 0.75em; font-weight: bold; } p { margin-bottom: 0; min-height: 1.4em; } } // A version where the normal padding of the list-item is tweaked to // make room for an icon or a button next to the report details. .item-list__item--indented { position: relative; margin: 0; // reset 0.25em margin-top on default item-list__item padding: 0; border-top: 1px solid #e5e5e5; // can't apply border to `a` because of border-left a { display: block; padding: 1em; padding-#{$left}: 2.5em; // make space for background image border-#{$left}: solid 1em transparent; // inset background image 1em from the left background: transparent; } // Trigger hover style even when hovering over sibling item-action-button &:hover a { background-color: $itemlist_item_background_hover; } h3 { color: inherit; // Some cobrands might want to override with $primary for a more colourful list margin: 0 0 0.2em 0; padding-top: 0; // override .item-list__heading line-height: 1.3em; // override .item-list__heading } p { margin: 0; font-size: 0.8em; color: #777; } } // Add this to your .item-list__item--indented element if you // need to display both an action button *and* up/down arrows .item-list__item--act-and-sort { a { padding-#{$left}: 4.5em; // make space for the extra buttons } .item-list__item__shortlist-up, .item-list__item__shortlist-down { width: 36px; // down from 48px left: 3.5em; // up from 1em } } %list-item-action-button { position: absolute; left: 1em; // match the padding on the `a` element top: 50%; margin-top: -24px; // vertically center margin-left: -12px; // horizontally center display: block; width: 48px; font-size: 1em; padding: 0; border: none; background: transparent; overflow: hidden; // hide button text height: 0; padding-top: 48px; background-position: center center; background-repeat: no-repeat; background-size: 24px 24px; } .item-list__item__shortlist-add { @extend %list-item-action-button; @include high-dpi-background-image('/cobrands/fixmystreet/images/icon-shortlist-inactive'); &:hover, &:focus { @include high-dpi-background-image('/cobrands/fixmystreet/images/icon-shortlist-inactive-hover'); } } .item-list__item__shortlist-remove { @extend %list-item-action-button; @include high-dpi-background-image('/cobrands/fixmystreet/images/icon-shortlist-active'); &:hover, &:focus { @include high-dpi-background-image('/cobrands/fixmystreet/images/icon-shortlist-active-hover'); } } .item-list__item__shortlist-take { @extend %list-item-action-button; @include high-dpi-background-image('/cobrands/fixmystreet/images/icon-shortlist-taken'); &:hover, &:focus { @include high-dpi-background-image('/cobrands/fixmystreet/images/icon-shortlist-taken-hover'); } } .item-list__item__shortlist-up { @extend %list-item-action-button; padding-top: 24px; // half the normal height, because shorter icon background-size: 24px 14px; @include high-dpi-background-image('/cobrands/fixmystreet/images/icon-shortlist-up'); &:hover, &:focus { @include high-dpi-background-image('/cobrands/fixmystreet/images/icon-shortlist-up-hover'); } &[disabled] { opacity: 0.5; cursor: default; @include high-dpi-background-image('/cobrands/fixmystreet/images/icon-shortlist-up'); } } .item-list__item__shortlist-down { @extend %list-item-action-button; margin-top: 0; // this is the "lower" arrow, so no need to offset vertical position padding-top: 24px; // half the normal height, because shorter icon background-size: 24px 14px; @include high-dpi-background-image('/cobrands/fixmystreet/images/icon-shortlist-down'); &:hover, &:focus { @include high-dpi-background-image('/cobrands/fixmystreet/images/icon-shortlist-down-hover'); } &[disabled] { opacity: 0.5; cursor: default; @include high-dpi-background-image('/cobrands/fixmystreet/images/icon-shortlist-down'); } } .item-list__heading { font-size: 1em; font-weight: normal; line-height: 1.5; padding-top: 0.25em; margin: 0; @media print { font-weight: bold; } } .item-list__description { display: none; @media print { display: block; } } .item-list__item__state { font-size: 0.9em; font-style: normal; font-weight: bold; padding: 0.2em 0.5em; vertical-align: -0.1em; background: #888; color: #fff; border-radius: 0.3em; margin-right: 0.1em; } .item-list__item--empty { background: none; color: #777; p { margin: 0; padding: 1em; text-align: center; } } .item-list--front-page { border-bottom: none; .item-list__item { background-color: transparent; } } .problem-header .update-img, .item-list .update-img { float: $right; margin: flip(0.3em 0 0.5em 1em, 0.3em 1em 0.5em 0); // gutter between text and floated image width: 33%; } .questionnaire-report-reminder .update-img { float: $left; margin: flip(0.1em 1em 1em 0, 0.1em 0 1em 1em); width: 120px; } // A wrapper that's put around .update-imgs if there are more than 1 in a row .update-img-set { text-align: center; margin: 0 0 1em; .update-img { float: none; display: inline-block; margin: 0; width: 31%; } .update-img + .update-img { margin: flip(0 0 0 0.5em, 0 0.5em 0 0); } } // fancybox gallery images have a magnifying glass in the corner .update-img { a { display: block; position: relative; span { position:absolute; top:0; #{$right}: 0; display:block; width:20px; height:20px; opacity: 0.5; background:#fff url($image-sprite) -16px -1098px no-repeat; //hide text - http://nicolasgallagher.com/another-css-image-replacement-technique/ font: 0/0 a; color: transparent; } &:hover span { opacity: 1; } } } .problem-back { display: block; font-size: 1em; line-height: 1.2em; margin-bottom: 1em; padding-bottom: 0.8em; padding-#{$left}: 22px; background: transparent url(/cobrands/fixmystreet/images/chevron-grey-#{$left}.svg) #{$left} 0 no-repeat; background-size: 13px 16px; border-bottom: 1px solid #eee; &:link, &:visited, &:hover { color: #666; } } .problem-header { margin-bottom: 1em; // Clear the admin actions after the floated photo(s). .segmented-control { clear: both; } } .report_meta_info, .council_sent_info { font-size: 0.9em; } .council_sent_info { color: #666; p + & { margin-top: -0.6em; // partly counteract margin-bottom on previous paragraph } } .moderate-edit { display: none; // gets shown by javascript :disabled { background: #ddd; } h1 input { border-width: (0.125em/2); // compensate for 2em font-size on h1s } } .shortlisted-status { margin-top: 1em; padding: 1em 1em 1em 4em; // Icon is always displayed on left, even in RtL mode border-radius: 0.25em; border: 1px solid rgba(0, 0, 0, 0.1); background: rgba(255, 255, 255, 0.5) url(/cobrands/fixmystreet/images/shortlist.png) 1em 50% no-repeat; background-size: 2em 2em; @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { background-image: url(/cobrands/fixmystreet/images/shortlist@2.png); } @media all { background-image: url(/cobrands/fixmystreet/images/shortlist.svg), none; } h3 { margin: 0; font-size: 1em; font-weight: bold; } p { margin: 0.5em 0 0 0; font-size: 0.875em; } } // map stuff #map_box { margin: 0 -1em 1em; background: #333; height: 29em; overflow: hidden; position: relative; #map { width: 100%; height: 100%; // IE7 doesn't understand 100% height when the parent height is "auto", // so we have to explicitly tell it to pin the element to the top and // bottom of the parent. No need for an ie7-specific condition, because // this makes no difference in other browsers. // We keep the "height: 100%" in there to give IE7 context for the 100% // height on #map's child, div.olMapViewport. position: absolute; top: 0; bottom: 0; } } // The map's static image fallback is visible by default. // Hide it if javascript has loaded. (We show it again when // the page is printed.) html.js #map .noscript { display: none; } // OpenLayers fix for navigation being top right // Left and right so that zoom can be left, pan right. #fms_pan_zoom { top: 0.5em; // This will be overridden in JS if there's a full screen map with banner #{$left}: 0.5em; #{$right}: 0.5em; } // Openlayers map controls (overrides) #fms_pan_zoom_panup, #fms_pan_zoom_pandown, #fms_pan_zoom_panleft, #fms_pan_zoom_panright, #fms_pan_zoom_zoomin, #fms_pan_zoom_zoomout { position: absolute; cursor: pointer; width: 36px; height: 36px; text-indent: flip(-999999px, 999999px); // text-align from OL style makes this necessary background: url($image-sprite) no-repeat; filter: none !important; // Override OpenLayers PNG handling of the navigation } #fms_pan_zoom_panup { background-position: -42px -222px; #{$right}: 30px; #{$left}: auto; top: 0; } #fms_pan_zoom_pandown { background-position: -42px -282px; #{$right}: 30px; #{$left}: auto; top: 72px; } #fms_pan_zoom_panleft { background-position: -12px -252px; width: 48px; #{$right}: flip(48px, 0); #{$left}: auto; top: 36px; } #fms_pan_zoom_panright { background-position: -60px -252px; width: 48px; #{$right}: flip(0, 48px); #{$left}: auto; top: 36px; } #fms_pan_zoom_zoomin { background-position: -152px -223px; height: 44px; #{$left}: 0; top: 0; } #fms_pan_zoom_zoomout { background-position: -152px -259px; height: 44px; #{$left}: 0; top: 44px; } //hide pins, show old reports etc #sub_map_links { position: absolute; #{$left}: 0; #{$right}: 0; bottom: 0; background:#333; background:rgba(0, 0, 0, 0.7); margin:0; a { @include inline-block; font-size:0.6875em; color:#fff; padding: flip(0.6em 3em 0.5em 1em, 0.6em 1em 0.5em 3em); background-repeat:no-repeat; &#hide_pins_link { background-image:url($image-sprite); background-position: flip(right, -341px) -3976px; } &#all_pins_link { background-image:url($image-sprite); background-position: flip(right, -337px) -4022px; } &#map_permalink { background-image:url($image-sprite); background-position: flip(right, -341px) -4070px; } &.feed { background-image:url($image-sprite); background-position: flip(right, -341px) -3936px; } &#toggle-fullscreen { padding: 0.6em 1em 0.5em 1em; &:after { content: ""; display: inline-block; width: 16px; height: 16px; background-size: 16px 16px; vertical-align: middle; margin-#{$left}: 8px; } &.expand:after { background-image: url(/cobrands/fixmystreet/images/expand.png); @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { background-image: url(/cobrands/fixmystreet/images/expand@2x.png); } @media all { background-image: url(/cobrands/fixmystreet/images/expand.svg), none; } } &.compress:after { background-image: url(/cobrands/fixmystreet/images/compress.png); @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { background-image: url(/cobrands/fixmystreet/images/compress@2x.png); } @media all { background-image: url(/cobrands/fixmystreet/images/compress.svg), none; } } } &:hover { background-color:#000; text-decoration:none; } } } #mob_sub_map_links { position: absolute; bottom:0; display:table; margin:0; width:100%; background:rgba(0, 0, 0, 0.7); a { color:#fff; width:50%; padding:0.5em 0; font-size:1em; display:table-cell; text-align:center; &:hover { background:#000; text-decoration:none; } } &.map_complete { height: 100%; background: none; display: block; border-bottom: 4px solid #fff; a#try_again { position: absolute; display: block; left: 25%; // along with width of 50%, centres it bottom: 0; margin-bottom: 6em; background: rgba(0, 0, 0, 0.8); @include border-radius(0.5em); } a#mob_ok { position: absolute; display: block; #{$right}: 1em; bottom: 0; height: 20px; padding-top: 30px; width: 4em; background: #fff url($image-sprite) 12px -4140px no-repeat; color: #000; } } } // Loading indicator #loading-indicator { position: absolute; width: 100%; height: 100%; background-color: #000; opacity: 0.4; text-align: center; img { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); } } .big-green-banner { position: relative; top: -1.75em; background: $col_click_map; color: #fff; padding: 1em; text-transform: uppercase; text-align: center; font-size: 0.875em; .map-fullscreen & { display: none; } } .mobile-map-banner { display: none; .map-fullscreen & { display: block; } text-transform: uppercase; text-align: center; font-family: $heading-font; line-height: 1em; margin:0; position: absolute; top:0; #{$left}: 0; #{$right}: 0; font-size:0.75em; color: #fff; background:rgba(0, 0, 0, 0.7); padding:0.75em 30px; a { @include button-reset(#333, #1a1a1a, #1a1a1a, #fff, #333, #1a1a1a, #1a1a1a, #fff); font: { weight:normal; size:0.875em; } line-height:1; padding:0.5em 0.75em; position:absolute; #{$left}: 0.3em; top:0.3em; } } .olControlAttribution { bottom: 3.25em !important; #{$right}: 0.25em !important; #{$left}: 0.25em !important; color: #222222; font-size:0.75em !important; } .olControlAttribution img { vertical-align: bottom; } .olControlPermalink { bottom: 3px !important; #{$right}: 3px; } /* Drag is only present in noscript form. XXX Copy from core. */ #drag { input, img { position: absolute; border: none; max-width: none; } input { cursor: crosshair; background-color: #cccccc; } img { cursor: move; } img.pin { z-index: 100; background-color: inherit; } a img.pin { cursor: pointer; cursor: hand; } } // only on mobile a.rap-notes-trigger, a:hover.rap-notes-trigger { display: block; margin-bottom: 1em; } #report-a-problem-sidebar { margin-bottom: 2em; padding: 1em; background-color: #E9F2FF; } .mobile #map_box { height: 10em; // eg: at the top of individual report pages } // When you're in the reporting flow on mobile, we hide the site-header // and make the map full screen to reduce distractions. JavaScript also // tweaks the text content of some of the map-related elements, to make // it more "app-like". .map-fullscreen { #site-header { display: none; } #map_box { position: absolute; top: 0; left: 0; right: 0; bottom: 0; height: auto; // override `.mobile #map_box` height:10em margin: 0; z-index: 1; // stack above positioned elements later on the page (eg: .report-list-filters) } .container { padding: 0; // map_box needs to be full width, so remove page gutter } #map_sidebar { padding: 1em; // reinstate page gutter, but on sidebar, so map_box is unaffected } } .map-reporting { #fms_pan_zoom { top: 2.75em; // make space for the semi-transparent "Place pin on map" bar } } .only-map { height: 100%; body { height: 100%; overflow: hidden; } } /* Reporting a problem bits */ label .muted { color: #888; font-weight: normal; } .description_tips { @include clearfix; ul { width: 49%; margin: 0; float: $left; font-size: 14px; line-height: 20px; } li { margin-bottom: 0; padding-#{$left}: 16px; list-style: none; background: transparent url(/cobrands/fixmystreet/images/tick-10px-8px.png) $left 5px no-repeat; border-#{$left}: solid 4px transparent; } .do { color: #1c8012; } .dont { float: $right; color: #881111; li { background-image: url(/cobrands/fixmystreet/images/cross-7px-7px.png); background-position: $left 6px; padding-#{$left}: 14px; border-#{$left}: solid 6px transparent; } } } .description_tips__heading--inline { display: inline-block; } #problem_form > label:first-child { margin-top: 0; } .extra-category-questions { background-color: #eee; padding: 1em; margin-top: 1.5em; // make room for the triangle position: relative; // An upwards pointing triangle &:before { content: ""; display: block; width: 0; height: 0; border-style: solid; border-width: 0 1em 1em 1em; border-color: transparent transparent #eee transparent; position: absolute; top: -0.9em; // avoid hairline gap between triangle and parent #{$left}: 1.5em; } & > :first-child { margin-top: 0; } } .inspect-section { border-top: 1px solid rgba(0, 0, 0, 0.2); padding-top: 1.5em; margin-top: 1.5em; &:first-child { border-top: none; margin-top: 0; padding-top: 0; } & > :first-child, & > :first-child > :first-child { margin-top: 0; } } .inspect-section--hidden { display: none; } table.nicetable { width:100%; margin-bottom:2em; thead { border-bottom:0.25em solid #ccc; th { font-size:0.75em; } } tr { &.a { background:#f6f6f6; } &.gone { color: #666666; background-color: #cccccc; } &:hover { background:#FFF5CC; cursor:pointer; } td { padding:0.25em; a { &:hover { text-decoration:none; } } } } .title { text-align: $left; } .data { width:12%; } } .promo { margin: 0 -1em 1em; color: $primary_text; background: $primary; padding:1em; overflow:hidden; position: relative; .close-promo { position:absolute; top:0.5em; #{$right}: 0.5em; display:block; width:16px; height:16px; text-indent:-999999px; background:url($image-sprite) -341px -263px no-repeat; @include border-radius(4px); &:hover { background:#222 url($image-sprite) -341px -223px no-repeat; } } } .alert { margin: 0 -1em 1em; background:#ff0000; padding:1em; color:#fff; a, a:hover { color:$primary; } } .pagination { text-align:center; padding:0.5em 1em; background:#eee; position:relative; .prev { position:absolute; #{$left}: 0.5em; } .next { position:absolute; #{$right}: 0.5em; } a { @include inline-block; color: $primary_text; background: $primary; padding-#{$left}: 0.5em; padding-#{$right}: 0.5em; &:hover { text-decoration:none; background:$primary/1.1; } } } // this is a bit of a hack to get some differentation between desk and mobile .desk-only { display:none; } // hide anything with this class if js is working .js .hidden-js { display: none; visibility: hidden; } // hide anything with this class if js is NOT working .no-js .hidden-nojs { display: none !important; visibility: hidden; } /* Front page */ #front-main { text-align:center; margin: 1em; h2 { font: { style:italic; family: $meta-font; size:1.1875em; } color:#4d4d4d; } p { margin: 0.5em 0 0; } #postcodeForm { margin: 0 -1em; padding:1em; color: $primary_text; background: $primary; font-family: $meta-font; label { margin:0; } div { display:table; width:100%; background:#fff; border:1px solid $primary_b; input#pc { display:table-cell; margin:0; padding:0.25em 2%; width:86%; border:none; background:none; line-height:1.5em; } input#sub { display:table-cell; border:none; padding:0; margin:0; width:14%; height:35px; background:#000; color:#fff; text-transform:uppercase; @include border-radius(0); &:hover { background:#333; } } } } a#geolocate_link { @include inline-block; vertical-align:top; background:#1a1a1a; color:#C8C8C8; padding:0.5em; font: { family: $meta-font; size:0.8125em; } @include border-radius(0 0 0.25em 0.25em); &:hover { text-decoration:none; background:#2a2a2a; } } } #front-howto { #front_stats { display:table; width:100%; color: $primary_text; background: $primary; font-family: $meta-font; div { display:table-cell; text-align:center; padding:1em; line-height:1.25em; font: { size:0.8125em; weight:bold; } big { display:block; margin-bottom:0.5em; font-size:1.5385em; } } } } #alerts { ul { margin-bottom: 1em; } li { padding: 0em; margin-bottom: 0.5em; } .a { background: #f6f6f6; } img[width="16"] { float: $right; } } .alerts__nearby-activity { background-color: #f6f6f6; margin: 1em -1em; padding: 1em; & > :first-child { margin-top: 0; } } .alerts__nearby-activity__photos { white-space: nowrap; overflow: hidden; a { margin-right: 0.5em; text-decoration: none; // avoid underline showing between images } } .confirmation-header { padding: 140px 0 2em; text-align: center; background: transparent url(/cobrands/fixmystreet/images/tick-in-circle-100px.png) center 1em no-repeat; &.confirmation-header--failure { background-image: url(/cobrands/fixmystreet/images/sad-face-in-circle-100px.png); } &.confirmation-header--inbox { background-image: url(/cobrands/fixmystreet/images/inbox-in-circle-100px.png); } h1, h2 { margin: 0; line-height: 1.2em; } h1 { a { text-decoration: underline; color: inherit; &:hover, &:focus { text-decoration: none; color: #0BA7D1; // default link colour } } } h1 + h2, h1 ~ p { margin-top: 12px; } p { color: #666666; font-size: 1.2em; margin-bottom: 0.5em; } & > :last-child { margin-bottom: 0; } } /* Questionnaire page */ .questionnaire-report-header { font-family: inherit; font-size: 1.2em; font-weight: 600; } .questionnaire-report-reminder { @include clearfix(); // clear the floated image, in case there is no update-header to do it background: #f3f3f3; border-radius: 3px; padding: 1em 1em 1px 1em; // basically no padding-bottom, as children have their own margin-bottom instead margin-bottom: 2em; } .questionnaire-report-reminder__report-title { margin: 0 0 0.3em 0; } .questionnaire-report-reminder__report-meta { color: #666; line-height: 1.4em; } .questionnaire-report-reminder__last-update-header { border-top: 1px solid #ddd; margin: 0; padding: 0.8em 0 0.5em 0; clear: left; // clear the floated image above a { float: right; } } .questionnaire-errors { margin-left: 0; } .segmented-control { @include clearfix(); @include flex-container(); // fancy full-width buttons for browsers that support flexbox & > * { display: block; text-align: center; border-right-width: 0; // avoid double border between items float: left; // float fallback for browsers that don't support flexbox position: relative; // Make sure this is shown on legacy flexbox webkit @include flex(1 0 auto, 1); } .btn { padding: 0.75em 0.5em; border-radius: 0; } .btn + .btn { margin-#{$left}: 0; } & > :first-child { border-radius: 4px 0 0 4px; } & > :last-child { border-radius: 0 4px 4px 0; border-right-width: 1px; // reinstate border on last item } & > :first-child:last-child { border-radius: 4px; } } // A special case of segmented control, where each "button" (or label) is // preceded by a radio button, which needs to be hidden but interactive. // Checked checkboxes give their following label a "pressed" appearance. .segmented-control--radio { input { position: absolute; left: -999px; } input:checked + label { color: $primary_text; background: $primary; border-color: darken($primary, 5%); background-image: none; // remove gradient box-shadow: inset 0 0.1em 0.2em rgba(0,0,0,0.2); border-right-width: 1px; // add a realistic coloured border to all sides } input:checked + label + input + label { border-left-width: 0; // in favour of the realistic coloured border on the selected label } // The first label is no longer the first child, so we need to // fish it out specially with a next sibling selector. input:first-child + label { border-radius: 0.25em 0 0 0.25em; } } .my-account-buttons a { display: inline-block; background: #f6f6f6; padding: 0.5em 1em; border-radius: 0.2em; } // Useful for inserting hidden forms on the page, but still allowing // inputs inside the form to be toggled by labels outside the form. // Try using this in combination with .segmented-control for funtimes. .hidden-label-target { position: absolute; top: -100px; width: 0; height: 0; overflow: hidden; opacity: 0; // Tell assistive devices to ignore this element. visibility: hidden; // Hack for IE8 which doesn't allow interaction with // `visibility:hidden` elements. visibility: visible\9; } @media screen { .print-only { display: none !important; } } @media print { @page { margin: 3em; } // Firefox leaves a big blanking gap if the content is floated... .content { float: none !important; } .shadow-wrap, .nav-wrapper, #nav-link, .admin-nav, .olControlAttribution, .olControlPanZoom, #sub_map_links, #fms_pan_zoom, .screen-only, .olMapViewport, .big-green-banner, .click-the-map, #skip-this-step, .my-account-buttons { display: none !important; } #site-header { display: block !important; position: static !important; } #map_box, #map_sidebar { position: static !important; width: auto !important; background: transparent !important; } #map_box { float: right !important; width: 256px !important; height: 256px !important; margin: 0 0 1em 1em !important; } #map_sidebar { // Prevent sidebar from clearing below floated map overflow: visible !important; } #map { -webkit-transform: scale(0.5); -ms-transform: scale(0.5); transform: scale(0.5); -webkit-transform-origin: 0 0; -ms-transform-origin: 0 0; transform-origin: 0 0; } html.js #map .noscript { display: block; } } .box-warning { margin: 1em -1em; padding: 2em 2em; background-color: mix(#fff, $primary, 70%); h1 { font-size: 1.4em; } p { margin-bottom: 0.5em; } a { display: inline-block; margin-top: 0.5em; padding: 0.5em 1em; background-color: #000; color: #fff; border-radius: 0.3em; &:hover, &:focus { text-decoration: none; background-color: mix(#000, $primary, 70%); } } } .asset-spot:before { content: ""; display: inline-block; width: 10px; height: 10px; border: 2px solid #000; background-color: #ffff00; margin: 0 0.3em 0 0.2em; border-radius: 100%; vertical-align: -2px; } @import "_admin"; @import "_fixedthead"; @import "_dropzone"; @import "_multiselect";