From d1f60ddffae2f28cdfd2e037a720d291064cb025 Mon Sep 17 00:00:00 2001 From: Lucas Date: Mon, 9 Dec 2024 10:56:37 +0000 Subject: [PATCH] [Gloucester] Added cobrand front-end It includes - Logos - Fonts - Emails - Colours - Navigation bar - favicon - Site message --- perllib/FixMyStreet/Cobrand/Gloucester.pm | 102 +++++++++ .../gloucester/_email_color_overrides.html | 20 ++ templates/web/gloucester/footer_extra.html | 64 ++++++ templates/web/gloucester/footer_extra_js.html | 1 + .../gloucester/front/footer-marketing.html | 0 templates/web/gloucester/header_extra.html | 5 + templates/web/gloucester/header_logo.html | 2 + templates/web/gloucester/site-name.html | 1 + templates/web/gloucester/tracking_code.html | 5 + web/cobrands/gloucester/_variables.scss | 112 ++++++++++ web/cobrands/gloucester/base.scss | 198 ++++++++++++++++++ .../gloucester/images/external-icon.svg | 1 + web/cobrands/gloucester/images/facebook.svg | 1 + web/cobrands/gloucester/images/favicon.ico | Bin 0 -> 15406 bytes .../gloucester/images/gloucester-logo.png | Bin 0 -> 13874 bytes web/cobrands/gloucester/images/twitter.svg | 1 + web/cobrands/gloucester/layout.scss | 45 ++++ 17 files changed, 558 insertions(+) create mode 100644 perllib/FixMyStreet/Cobrand/Gloucester.pm create mode 100644 templates/email/gloucester/_email_color_overrides.html create mode 100644 templates/web/gloucester/footer_extra.html create mode 100644 templates/web/gloucester/footer_extra_js.html create mode 100644 templates/web/gloucester/front/footer-marketing.html create mode 100644 templates/web/gloucester/header_extra.html create mode 100644 templates/web/gloucester/header_logo.html create mode 100644 templates/web/gloucester/site-name.html create mode 100644 templates/web/gloucester/tracking_code.html create mode 100755 web/cobrands/gloucester/_variables.scss create mode 100755 web/cobrands/gloucester/base.scss create mode 100644 web/cobrands/gloucester/images/external-icon.svg create mode 100644 web/cobrands/gloucester/images/facebook.svg create mode 100644 web/cobrands/gloucester/images/favicon.ico create mode 100644 web/cobrands/gloucester/images/gloucester-logo.png create mode 100644 web/cobrands/gloucester/images/twitter.svg create mode 100755 web/cobrands/gloucester/layout.scss diff --git a/perllib/FixMyStreet/Cobrand/Gloucester.pm b/perllib/FixMyStreet/Cobrand/Gloucester.pm new file mode 100644 index 00000000000..3bfc6930078 --- /dev/null +++ b/perllib/FixMyStreet/Cobrand/Gloucester.pm @@ -0,0 +1,102 @@ +=head1 NAME + +FixMyStreet::Cobrand::Gloucester - code specific to the Gloucester cobrand + +=head1 SYNOPSIS + +We integrate with Gloucester's Alloy back end. + +=head1 DESCRIPTION + +=cut + +package FixMyStreet::Cobrand::Gloucester; +use parent 'FixMyStreet::Cobrand::Whitelabel'; + +use strict; +use warnings; + +use Moo; + +=head2 Defaults + +=over 4 + +=cut + +sub council_area_id { '2325' } +sub council_area { 'Gloucester' } +sub council_name { 'Gloucester City Council' } +sub council_url { 'gloucester' } + +=item * Users with a gloucester.gov.uk email can always be found in the admin. + +=cut + +sub admin_user_domain { 'gloucester.gov.uk' } + +=item * Allows anonymous reporting + +=cut + +sub allow_anonymous_reports { 'button' } + +=item * Gloucester use their own privacy policy + +=cut + +sub privacy_policy_url { + 'https://www.gloucester.gov.uk/council-and-democracy/data-protection/privacy-notices/gloucester-county-council-general-privacy-statement/gloucester-county-council-general-privacy-statement/' +} + +=item * Users can not reopen reports + +=cut + +sub reopening_disallowed { + my ($self, $problem) = @_; + + # Only staff can reopen reports. + my $c = $self->{c}; + my $user = $c->user; + return 0 if ($c->user_exists && $user->from_body && $user->from_body->cobrand_name eq $self->council_name); + return 1; +} + +=item * We do not send questionnaires. + +=cut + +sub send_questionnaires { 0 } + +=item * TODO: Don't show reports before the go-live date + +=cut + +# sub cut_off_date { '2024-03-31' } + +=pod + +=back + +=cut + +sub disambiguate_location { + my $self = shift; + my $string = shift; + + my $town = 'Gloucester'; + + return { + %{ $self->SUPER::disambiguate_location() }, + town => $town, + centre => '51.8493825813624,-2.24025312382298', + span => '0.0776436939868574,0.12409536555503', + bounds => [ + 51.8075803711933, -2.30135343437398, + 51.8852240651802, -2.17725806881895 + ], + }; +} + +1; diff --git a/templates/email/gloucester/_email_color_overrides.html b/templates/email/gloucester/_email_color_overrides.html new file mode 100644 index 00000000000..2d879100fa0 --- /dev/null +++ b/templates/email/gloucester/_email_color_overrides.html @@ -0,0 +1,20 @@ +[% + +color_primary = '#0054a4' +color_pale_grey = '#f0f0f0' + +body_font_family = "Helvetica, sans-serif" + +header_background_color = color_primary +header_text_color = color_white + +secondary_column_background_color = color_pale_grey + +button_background_color = color_primary +button_text_color = color_white + +logo_file = 'gloucester-logo.png' +logo_width = "176" # pixel measurement, but without 'px' suffix +logo_height = "70" # pixel measurement, but without 'px' suffix + +%] diff --git a/templates/web/gloucester/footer_extra.html b/templates/web/gloucester/footer_extra.html new file mode 100644 index 00000000000..54a0aeb1fa7 --- /dev/null +++ b/templates/web/gloucester/footer_extra.html @@ -0,0 +1,64 @@ + +[% PROCESS '_footer_main_nav.html' %] +[% PROCESS '_footer_extra_powered_by.html' %] diff --git a/templates/web/gloucester/footer_extra_js.html b/templates/web/gloucester/footer_extra_js.html new file mode 100644 index 00000000000..34107f5bee1 --- /dev/null +++ b/templates/web/gloucester/footer_extra_js.html @@ -0,0 +1 @@ +[% PROCESS 'footer_extra_js_base.html' highways=0 roadworks=0 validation=0 cobrand_js=0 %] diff --git a/templates/web/gloucester/front/footer-marketing.html b/templates/web/gloucester/front/footer-marketing.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/templates/web/gloucester/header_extra.html b/templates/web/gloucester/header_extra.html new file mode 100644 index 00000000000..a30eed2e71a --- /dev/null +++ b/templates/web/gloucester/header_extra.html @@ -0,0 +1,5 @@ + + + + +[% INCLUDE 'tracking_code.html' %] diff --git a/templates/web/gloucester/header_logo.html b/templates/web/gloucester/header_logo.html new file mode 100644 index 00000000000..dab47a8a0fb --- /dev/null +++ b/templates/web/gloucester/header_logo.html @@ -0,0 +1,2 @@ + +[%- loc('Report') -%] diff --git a/templates/web/gloucester/site-name.html b/templates/web/gloucester/site-name.html new file mode 100644 index 00000000000..36282b54ffa --- /dev/null +++ b/templates/web/gloucester/site-name.html @@ -0,0 +1 @@ +Gloucester City Council FixMyStreet diff --git a/templates/web/gloucester/tracking_code.html b/templates/web/gloucester/tracking_code.html new file mode 100644 index 00000000000..6dbcc5dc70e --- /dev/null +++ b/templates/web/gloucester/tracking_code.html @@ -0,0 +1,5 @@ +[% IF c.config.BASE_URL == "https://www.fixmystreet.com" %] + + + +[% END %] diff --git a/web/cobrands/gloucester/_variables.scss b/web/cobrands/gloucester/_variables.scss new file mode 100755 index 00000000000..32f84964323 --- /dev/null +++ b/web/cobrands/gloucester/_variables.scss @@ -0,0 +1,112 @@ +/* This styling is based on https://www.gloucester.gov.uk/ +Also here: https://3.basecamp.com/4020879/buckets/38208405/todos/7578740887 +*/ + +/* COLOURS */ +$gloucester_blue: #0054a4; // Links and buttons +$glucester_blue_hover: #0000b4; +$gloucester_primary_light: #cadcea; +$gloucester_primary_dark: $glucester_blue_hover; +$gloucester_red: #c0232e; +$gloucester_white: #fff; +$gloucester_grey: #f0f0f0; // Body bg +$gloucester_black: #333333; +$gloucester_yellow: #ffae04; + +$primary: $gloucester_blue; +$yellow: $gloucester_yellow; + +$primary_b: $gloucester_black; +$primary_text: $gloucester_white; + +/* FRONTPAGE */ +$base_bg: $gloucester_grey; +$base_fg: $gloucester_black; +$front_stats_bg: $gloucester_white; +$layout_front_stats_color: $primary_b; + +/* LINKS */ +$primary_link_color: $gloucester_blue; +$primary_link_hover_color: #2e8aca; +$primary_link_decoration: underline; +$primary_link_hover_decoration: underline; + +// Found here: https://www.gloucester.gov.uk/planning-development/section-106-agreements/ +$link-color: #0d6efd; +$link-hover-color: #6610f2; +$link-visited-color: $link-color; +$link-text-decoration: underline; +$link-hover-text-decoration: none; + +/* BUTTONS */ +$button-padding-top: 0.625rem; +$button-padding-bottom: 0.625rem; +$button-padding-left: 1.5625rem; +$button-padding-right: 1.5625rem; +$button-border-radius: 0; + +// Usage +/* +a#geolocate_link { + @include button-variant($bg-top: $button-primary-bg-top, $bg-bottom: $button-primary-bg-bottom, $border: $button-primary-border, $text: $button-primary-text, $hover-bg-bottom: $button-primary-hover-bg-bottom, $hover-bg-top: $button-primary-hover-bg-top, $hover-border: $button-primary-hover-border, $hover-text: $button-primary-hover-text); + @include focus-state; +} +*/ +$button-primary-bg-top: $primary; +$button-primary-bg-bottom: $primary; +$button-primary-border: $primary; +$button-primary-text: $primary_text; +$button-primary-hover-bg-bottom: $gloucester_primary_dark; +$button-primary-hover-bg-top: $gloucester_primary_dark; +$button-primary-hover-border: $gloucester_primary_dark; +$button-primary-hover-text: $primary_text; + +$geolocation-link: $primary; +$geolocation-link-border: $primary; + +/* FONTS */ + +$heading-font: "Open Sans", sans-serif; +$body-font: "Open Sans", sans-serif; +$meta-font: "Open Sans", sans-serif; + +/* NAVBAR */ + +$nav_colour: $gloucester_white; +$nav_background_colour: $primary; +$nav_hover_background_colour: $glucester_blue_hover; + +$mappage-header-height: 5.625rem; +$header-top-border: false; +// $header-top-border-width: 0.25em; +// $header-top-border: $header-top-border-width solid $primary; +$menu-image: "menu-white"; +// $close-menu-image: "close-#{$menu-image}"; + +/* OTHER VARIABLES */ + +$container-max-width: 82.5rem; + +$col_click_map: $primary; +$col_fixed_label: $primary; +// $col_fixed_label_light: mix($col_fixed_label, #fff, 10%); + +$search-help-background: #fff3f3; +$search-help-header-font-size-desktop: 1.25em; + +$dropzone-button-text: $primary_text; + +// $pagination_background: #f6f6f6; +$itemlist_item_background: $base_bg; +$itemlist_item_background_hover: $gloucester_primary_light; +$col_big_numbers: $primary_b; + +// $form-control-border-color: #aaaaaa; +$mobile-sticky-sidebar-button-menu-image: "menu-white"; + +$front-main-color: $primary_b; +$postcodeform-background: $gloucester_white; +$front-main-color-desktop: $primary_b; +$front-main-background-desktop: #fff; +$postcodeform-color: $primary_b; +$postcodeform-color-desktop: $primary_b; diff --git a/web/cobrands/gloucester/base.scss b/web/cobrands/gloucester/base.scss new file mode 100755 index 00000000000..713f3615749 --- /dev/null +++ b/web/cobrands/gloucester/base.scss @@ -0,0 +1,198 @@ +@import "../sass/h5bp"; +@import "_variables"; +@import "../sass/mixins"; + +@import "../sass/base"; + +/*TYPOGRAPHY */ +h1, .h1, +h2, .h2, +h3, .h3, +.item-list__heading { + font-weight: 700; +} + +/* BUTTONS */ +a#geolocate_link { + @include button-variant($bg-top: $button-primary-bg-top, $bg-bottom: $button-primary-bg-bottom, $border: $button-primary-border, $text: $button-primary-text, $hover-bg-bottom: $button-primary-hover-bg-bottom, $hover-bg-top: $button-primary-hover-bg-top, $hover-border: $button-primary-hover-border, $hover-text: $button-primary-hover-text); +} + +#report-cta { + padding: 0.75em; + border-color: $primary_text; +} + +a { + &:focus { + text-decoration: none; + color: $link-hover-color; + } +} + +/* NAVBAR */ +#site-logo { + background-image: url("/cobrands/gloucester/images/gloucester-logo.png"); + background-size: auto 3rem; +} + +#main-nav-btn:checked ~ #main-nav { + margin: 0 1em; +} + +.nav-menu--main { + a { + background-color: $gloucester_white; + color: $primary; + text-decoration: none; + + &:visited { + color: $primary; + } + } + + span { + background-color: $gloucester_primary_dark; + color: $primary_text; + } +} + +/* FRONTPAGE */ +.postcode-form-box { + input#sub { + font-family: $body-font; + font-weight: 600; + background-color: $button-primary-bg-top; + + &:hover { + background-color: $button-primary-hover-bg-top; + color: $button-primary-text; + } + } +} + +/* OTHERS */ +.item-list__item { + a { + text-decoration: none; + } +} + +/* SITE MESSAGE */ +.site-message { + color: $primary; + padding: 1.5rem; + background-color: $gloucester_white; + border: none; + border-top: 4px solid $primary; + word-wrap: break-word; +} + +/* FOOTER */ +.pcg-footer-black { + background-color: $primary; + padding: 2rem 0; + border-top: 8px solid #0000b4; + margin-top: 4em; +} + +.footer-grid { + display: flex; + flex-wrap: wrap; + row-gap: 1.5em; + column-gap: 8rem; + color: $primary_text; + + .pcg-footer-black__title { + margin-bottom: 1.5rem; + font-size: 1.25rem; + font-weight: 700; + color: $primary_text; + margin-top: 0; + } + + .pcg-footer-black__subtitle { + margin-bottom: 4px; + font-size: 1rem; + font-weight: normal; + margin-top: 0; + } + + .pcg-footer-black__social { + list-style: none; + display: flex; + flex-direction: row; + margin-left: 0; + } + + .pcg-sn-icon { + display: block; + width: 45px; + height: 45px; + + &.icon { + background-repeat: no-repeat; + background-position: center; + background-size: 26px; + border-radius: 3px; + + &.icon-facebook { + background-image: url("/cobrands/gloucester/images/facebook.svg"); + } + &.icon-twitter { + background-image: url("/cobrands/gloucester/images/twitter.svg"); + } + + &:hover { + background-color: $button-primary-hover-bg-bottom; + } + } + } + + a { + color: $primary_text; + &:hover { + text-decoration: underline; + } + } + + li { + list-style: none; + } + + .pcg-footer-navigation__link { + font-size: 1em; + color: $primary_text; + text-decoration: none; + } + + .col-12 { + flex: 0 0 auto; + width: 100%; + } + + @media (min-width: 576px) { + .col-sm-6 { + flex: 0 0 auto; + width: 50%; + } + } + + @media (min-width: 992px) { + .col-lg-3 { + flex: 0 0 auto; + width: 25%; + } + } + + @media (min-width: 1400px) { + .pcg-footer-black__wrapper--contacts { + width: 30%; + } + + .pcg-footer-black__wrapper--nav { + width: 25%; + } + } +} + +@import "../fixmystreet-uk-councils/societyworks-footer"; diff --git a/web/cobrands/gloucester/images/external-icon.svg b/web/cobrands/gloucester/images/external-icon.svg new file mode 100644 index 00000000000..da5e5c95f9b --- /dev/null +++ b/web/cobrands/gloucester/images/external-icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web/cobrands/gloucester/images/facebook.svg b/web/cobrands/gloucester/images/facebook.svg new file mode 100644 index 00000000000..6df11346796 --- /dev/null +++ b/web/cobrands/gloucester/images/facebook.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web/cobrands/gloucester/images/favicon.ico b/web/cobrands/gloucester/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..7909710fea871c834eeca4c4855337fb5654a293 GIT binary patch literal 15406 zcmeHNd32S<75}JMtJM~3wR&1@>ZumBDprf_In~;p*4o-u>%tBKf-G*xDm{W)8Wcr9 zizsrc2xKJ**%u%iglr~Z%Pt`yArKO>Z!g=s-rs$h@q3T=Akt&~!9bH>fD;O=>*4pIVNWP|C^&DeBo9sHLWe>X_!l!JQO1?n2#8WkwLCzwrp| zT>e{WCwax6sJ*U&ATMI}b(HqT!&I8Ep0eMYAv}BD8bjeTuF?E8c`>we*}W9I;5N#5 zdlDrqy_;nh$ors)m$2*`sUmeVrN8-z)I~n?QwpARndaZSW-K+7XVZb8msoxo1yB4o z)t6>carA1c$&I7~!OJQ6-w#kz)j`@Hu$0Y zkrlV#cG~yOBnp4(hg!DMp}C)*4SRJ8U!W3x#*eT2_=11(Rm}XH-~1T88NC@BFgEaI z*g)tLm-C)~J4MX8*5`hTeIDn69drE7LUSp_&cBT!=l;YejlKUNlfOfidjiNg&_}8? zl;=?Nb3fDkf#beOrE%|2f3HK4P*df8id#5J(*%sYkk1%vn5J9PG*=y>_{Dc>8oONe zd^|r+=yBf4+dQAj65pkP{$6T7RjJQwWr-Vv1~T)vETYo*|Ik2RFLk$^(&xOA*tISi zmYKh0F_pxvW11dvw4J7~C$I9_hxo;J2~XpZJU*Wd*EEO2{iQzj^}jRk54b;l)Y(ui zXDQY1f^9ESXJaj&fhJ2IAginC1VNvQChy|~LX)-ONnNMj;hwwcX^~T~b&0&k{5MwQ z%h>TE=YzSFy7I3=Q=asm*EZ13Za$Zx97+DKPa3;i^$b0su?2WT2ZqXfLV<4*CpXg4*HVhifvz=ExW6kw;waJz6;%K44eB=C2PA5SIz9l*u zj`8~Fr_|T}CNv?FFO%;B$i!J1XM3FSodW~QaX7k86=ud$+h2c&PLl#me;{H zrq)<-%o^S2-LL+E`g>gKsuehyVW^6n8tM;$6WO}I;9?Vsc4Sp#nLwZhOx`^ zd`?*MOR*h%&s1fG%J+*W4RnEZSXY?F-w{##{W4R=ZKs3JDC2LNy24cXc7k0&e|8%4 zZ1zuM1I7l74SaPr;43chb*V?3ghRB}RK84{Kk z28<2-e{2BpZp2s-(@gRI3q?J1!;s>1LE|qb#AFfk-SzVCXuC(Ah4=XzMmrdfNb&!( z$cug9R*p%!;+Ed&ed_=@9Egb{PVRILNW4@1G?Zm=j>7#E$XJAXyTd4K`c<40u}ts) zMUQ)LXA2cGb`XI)29G`=uA8uAG}RU)2nJy1YpyQjSns16qi~n!z5hWIE~bN=f6?FL ziqoRKK1YXKh&Q7EL&#V+!L9#@NgvA!(|tg^xTm98a1vqSpZbyv#(h|?Du;;2f_BiJ zDu^xjcDGAx8+AP$O;oUT@#j2>*T+45^`q3&-XzUAS{vw-59cvXG?Jp{-AuWRRUnp* z(%n+exXIPJ-NRx2y6=dsr>%Ne@>mj={)%dHB3$^$&7UDV3?K|ALBSmNRbLtY*nSHI-m*mI8{GsXWw)>o_WRitk@ zXa9iD#2ujI|TwKYlO|_VKD`F7Erod>R7+OIfD-v2V2G?5X)bCMs zcDUFg-UCBHsb-7;Z4`#TCjar1yyAf~`r#=D|1l@0Kg|_Bp}N*UWyC4uK@C^93S`jO;kfe$%c$Xy!>-`Qy3-+_gq)E!RI zz7F|q7z1=|evFG9y^}3JmwyzEF|nXloeEdvo{cz?939-WNXL z-si&D;QQglf4tp+F?KPwh~j8#l>Q=* zF^4hMqv>0fNdz?Fz zTwnM2MZX~AO#mb{GR}}m%kClM9(bO=ytRe3 z3BB%q<@d4{#J8VAe>m$#&b?mpYIiNak78coTP X#s-WH7#sMy*Z`*onPN0>-WvD}g=cO4 literal 0 HcmV?d00001 diff --git a/web/cobrands/gloucester/images/gloucester-logo.png b/web/cobrands/gloucester/images/gloucester-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..d07509257039cdd665f24e68c812373022441ece GIT binary patch literal 13874 zcmV-2HqFV2P)_qDj^^V!etPC0X?oS8E-XU-%{iNJB3 zist6#iF|HdQBg6zsi|o%-qkz_ffuf&r6rwACKFXvRj;Mfi4PKq^m~MvNstvLh8SY# z6iAp30L(oA#yuWJJ-{($ACUF&Gj$Y5r_*{hg6rQr)A@h6y1M#Z6GIF!bT2SkPfDdy zck#41B?cIs0YCX7X?#;1iHRYG7`hfDEdztTdDl02z z!PqtYCz+2M=I?GezAJbQU$~!Pdhq3-Ut>eVCnk~D z%>F*xr%#_LCWaVdC>~(6eo5xdIYwQ{*{|`O(h)J6xMe)M!TdLYa#3)^XJkJ$EFR%M z@xt)^oQWZZ7>Wn@XEe{7Ihg!qM(mQ0pr9TGWB-U}u4VGsyeh-O#*7|A3>}1qhK5a3 zsr1|s9&cg)V(0+CH{)Qkr9lqY;uxT60(dgksT(#iqYKfrq%UJ*`J$i9-f`K2a?7-H!4;4(T3aEJ05CX?yuRaF)1ydj9j#>VlLm6iJ;z3j~I zcsjcw3CF2$5{X*=KcykOtphbIMm~#QGAdrmGXc(n`E>RF%gf7OAbz{{Z0qamH>#?t z+ROeX!Sy(}>Y~P1{W1mHpU!;ObSkxNqO5E%-&N$R9zWrEkLL}(pCO%D;Evq-i8F|u zn%yb01L2;nVWJI%8?QS2=1>N&@cmGAb@hj)9iVaq|DMpgFL-yuX(Qg1=~TMLF|KO% zGj(-!(}oQjw#FZ?si|pNd7^yFHVDgHoWs3e@_L|@uFBf(GMkoEi~J9u?q`|8boPTz z@sR3V3T2~+TaEi#-g9`rLLMHY9NsYzfjE7k?NI959f7ICm&10x2(t@iaw_4svs3WZ zykEfU4(ju*Y(NM+ICzKzw*yQsfc9#}H8eErMIQe}Lu@K^WHwE!BJ8K&Ka<~zDEMi7 z8zx(lYlT}64euMKov?Q8+QU3N&?{ocMTtka(a?MY@s<@jR%~&nXiRU=`4z;!YSpSC zggu{f`ApIC;TFwm&J z4r84{`X3c4W0f!Y`8VaeUxe(tgAh;3t9#;pCy@3i>i0(Bb;8Rgr9)zlcTR+GzX=3r z=Cy(81yC%bD_>OJuX7bnAt2f;(%B|TI#kSBFJ4C&oytDMmwuZ6EegdU+_}`_3a3aQ z-h3y=*?$jeYHBtE_XiP85@bOK9Vz>t@L67nejSOXe_a}g@1B;l5Jo%2+;o)UQ%5iJ zy(0L~!E1rJ!Hc7BxrK$}SwfJVa?yz27!4NbA`3#{q3`BGd~HHrpJeS}3!j_jX^lKHbcWu^Clb$WaR%WI!tDvu!vMOm0v}8 zO%*TXe{GID?7-^=p8l5hBs4!y_(%Ev1O{kEoK|Nv3EUEGx3cETD*0ceIMm%&c!k`C)-@eG#n_dD@ z8JĦO#VDag&ErbCn};!F*cQ&J3)BYc-LI%yo~7b6u`B5;((9|geox0Mr%M2Snd z&1t8r{P9&sVPV4<9k)}xJ`=b3x!RwP*4x4HSNDeqa{~?d64Of{3ZtulGHX~Fps-Xx zV~R}5T>%Ey-To;V1^K)aJ~DMFqvKUcgUd=Rk~j!=kSP(!P^UlN5)+*WbL~Jr&PcbG zHe`0Jl_UV(>wIPVwCM!s2%{6_V1H+tY)&rVwNWuR$m5p-QkNDq`v$`W8C}vRVb|I? zT0hvVP+Dr6D^{$?i10z{%phzu>j;q1jhQE1S5}tr{u_8{UNqkn3B+-jTYX2;f#=5j zXHS^_7}L!_v^; z?e5@~ojOpi@0%V5Ex;WE-VHIZRlz8o$X-A^G5vVZ9__uv~mohblnv)SnuYRmVh zQK3%6C@E;u%HrxMfx#`MkYlrv)2SsC&<&=8K;>%X_fAGRZ@c4*np@&N&2$6M0C%KZ zvSJ*}bbY^m{aQ?k0LDJTQ`%5lahjalO*?@ynhL!)(%#%fE8g2XnNyQBHmx`9%C!7; z$8R6Li*D4N1V?zIIa_}cr+;VK3AFhcnszcsxKfyufyiq=(AVdSN1BVPt1H`O6{mup zNeO2i5Z#NKbF>#o^Bx+|UQxqqZbT!|zUGW5;bFdA=mm%R;@=BHG?)?q6?3aB(~1EE z+UCKzTNoWWzDk2}8=w}v=*%84B?PiJ*_YOWvOZ-SQMRK@J3u!6c}ZJq4~tuEO*$Jc zqmz#ZY4DfwIZRtc)Y+eia}niyXEB=srL7Ju%0Di5=kLS~!PDxFe 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 diff --git a/web/cobrands/gloucester/layout.scss b/web/cobrands/gloucester/layout.scss new file mode 100755 index 00000000000..6e272c5a386 --- /dev/null +++ b/web/cobrands/gloucester/layout.scss @@ -0,0 +1,45 @@ +@import "_variables"; +@import "../sass/layout"; + +/* NAVBAR */ +#site-logo { + background-size: auto 4.375rem; + height: $mappage-header-height; + width: 10.9375rem; +} + +.nav-menu--main { + a, span { + font-size: 1rem; // They have 20px, but we have more items in the navbar so I ended up using this size instead. + + &:focus { + background-color: $glucester_blue_hover; + $color: $primary_text; + outline: none; + } + &:focus-visible { + outline: -webkit-focus-ring-color auto 1px; + } + } + + span { + color: $primary_text; + text-decoration: underline; + &:hover { + color: $nav_colour; + } + } +} + +/* FRONTPAGE */ +#front-main { + margin: 0 0 45px 0; + padding: 5em 1em 5em 1em; + h1 { + font-size: 2.5em; + } +} + +#front_stats { + border-color: $primary_b; +}