Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add layouts that use the gem layout component #2411

Merged
merged 2 commits into from
Apr 14, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ This application defines global templates for [GOV.UK](https://www.gov.uk) pages

## Screenshots

![screenshot](/docs/screenshot.png?raw=true)
`gem_layout` template:

![screenshot](/docs/gem_layout.png?raw=true)

## Nomenclature

Expand All @@ -31,7 +33,7 @@ the same local instance, you'll need to set `PLEK_SERVICE_STATIC_URI`, which is
the host used for static assets (even on static).

Otherwise it defaults to `static.dev.gov.uk`, which won't exist if you're
just running this repo locally, without the rest of the GOV.UK stack.
running this repo locally, without the rest of the GOV.UK stack.

To run this app locally, and have it point at its own assets, run it like this:

Expand All @@ -48,7 +50,7 @@ Restarting the app should pick up the changes.
For example, to see changes made to static templates which
are wrapped around feedback pages, run `bowl feedback
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not-related to this change, but I'm not sure bowl is still a thing 😬

--without=feedback` in one terminal and the `.startup.sh` script for `feedback`
in a separate terminal. Following local edits to `static`, restarting just
in a separate terminal. Following local edits to `static`, restarting only
`feedback` should be sufficient.

If you repeatedly see 504 Gateway Timeout errors when developing with static in your
Expand Down
2 changes: 2 additions & 0 deletions app/controllers/root_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ class RootController < ApplicationController
503
504
campaign
gem_layout
gem_layout_full_width
scheduled_maintenance
print
proposition_menu
Expand Down
2 changes: 1 addition & 1 deletion app/views/root/_error_page.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
<%= stylesheet_link_tag "error-page-print", media: "print" %>
<% end %>

<% if @emergency_banner then
<% if @emergency_banner
emergency_banner = render "components/emergency_banner", {
campaign_class: @emergency_banner.campaign_class,
heading: @emergency_banner.heading,
Expand Down
49 changes: 49 additions & 0 deletions app/views/root/_gem_base.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
<%
full_width ||= false

if @emergency_banner
emergency_banner = render "components/emergency_banner", {
campaign_class: @emergency_banner.campaign_class,
heading: @emergency_banner.heading,
link: @emergency_banner.link,
link_text: @emergency_banner.link_text,
short_description: @emergency_banner.short_description,
}
end

user_satisfaction_survey = '<div id="user-satisfaction-survey-container"></div>'
global_bar = render "components/global_bar"
%>

<%= render "govuk_publishing_components/components/layout_for_public", {
emergency_banner: emergency_banner,
full_width: full_width,
global_bar: user_satisfaction_survey + global_bar,
navigation_items: [
{
text: "Account",
href: Plek.new.find("account-manager"),
data: {
module: "explicit-cross-domain-links",
link_for: "accounts-signed-in",
},
},
{
text: "Sign out",
href: Plek.new.website_root + "/transition-check/logout",
data: {
module: "explicit-cross-domain-links",
link_for: "accounts-signed-in",
},
},
{
text: "Sign in",
href: Plek.new.website_root + "/transition-check/login",
data: {
module: "explicit-cross-domain-links",
link_for: "accounts-signed-out",
},
}],
title: content_for?(:title) ? yield(:title) : "GOV.UK - The best place to find government services and information",

} %>
1 change: 1 addition & 0 deletions app/views/root/gem_layout.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<%= render partial: "gem_base" %>
3 changes: 3 additions & 0 deletions app/views/root/gem_layout_full_width.html.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
<%= render partial: 'gem_base', locals: {
full_width: true,
} %>
Binary file added docs/gem_layout.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 18 additions & 10 deletions docs/slimmer_templates.md
Original file line number Diff line number Diff line change
@@ -1,19 +1,27 @@
# Slimmer Templates

## `gem_layout`

This template uses the [public layout component] from the GOV.UK Publishing Components gem. It supplies the header and footer only - this includes the cookie banner, skip to content link, header bar, emergency banner, survery banner, global bar, feedback, and footer. The content is constrained and centred.

## `gem_layout_full_width`

This is the same as the `gem_layout` template, except that this layout **doesn't** constrain and centre the content to the same width as the GOV.UK header.

Use this layout if you want to have full width content - such as the blue welcome bar on the GOV.UK homepage.

## `core_layout` (default)

This template contains styles for the black header bar, the footer and core
layout classes. By default it will center your content to the same width as the
GOV.UK header. It provides classes for grid layouts using the column mixins
from the frontend toolkit.
This template contains styles for the black header bar, the footer and core layout classes. By default it will centre your content to the same width as the GOV.UK header. It provides classes for grid layouts using the column mixins from the frontend toolkit.

It is recommended that new applications use this template so they behave in a
consistent way.
This layout uses deprecated dependencies.

## `header_footer_only`

This template only contains styles for the black header bar and the footer of
GOV.UK.
This template only contains styles for the black header bar and the footer of GOV.UK.

Use this layout if you want to explicitly control the full layout of your page including centering all the content.

This layout uses deprecated dependencies.

Use this layout if you want to explicitly control the full layout of your page
including centering all the content.
[public layout component]: https://components.publishing.service.gov.uk/component-guide/layout_for_public