Skip to content

Update layout of Get-Started page - #1211

Merged
gibahjoe merged 4 commits into
mainfrom
630-update-get-startedalternative-sources-content
Jun 22, 2026
Merged

Update layout of Get-Started page#1211
gibahjoe merged 4 commits into
mainfrom
630-update-get-startedalternative-sources-content

Conversation

@jpherr

@jpherr jpherr commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Description

Currently we have accordions highlighting each step on the get-started page. New guidance is to use a navigation menu, which we will display in a left column like we do on the guidance page. This will use anchor links to navigate content which is now all visible to the user on a single page, without hidden elements like accordions. The nav is made sticky for easy navigation throughout content.

Redundant javascript for the step menu has been removed.

The layout responsibility for the dataset heading has been moved to the parent now that it differs from page to page.

What type of PR is this? (check all applicable)

  • Refactor
  • Feature
  • Bug Fix
  • Optimization
  • Documentation Update

Related Tickets & Documents

QA Instructions, Screenshots, Recordings

Before

Screenshot 2026-06-19 at 09 21 04

After

Screenshot 2026-06-19 at 09 21 22

Added/updated tests?

We encourage you to keep the code coverage percentage at 80% and above.

  • Yes
  • No, and this is why: Please replace this line with details on why tests have not been included
  • I need help with writing tests

QA sign off

  • Code has been checked and approved
  • Design has been checked and approved
  • Product and business logic has been checked and proved

[optional] Are there any post-deployment tasks we need to perform?

[optional] Are there any dependencies on other PRs or Work?

Summary by CodeRabbit

Release Notes

  • Refactor

    • Updated the get-started page to use a two-column layout with section-based content and in-page “Contents” links.
    • Removed the previous step-by-step navigation experience (including its associated styling and interactions).
  • Style

    • Added a flex utility class to improve wrapping in grid layouts.
    • Updated sub-navigation styling to stay sticky with consistent spacing.
  • Layout

    • Adjusted dataset-related page headers to render inside a two-thirds column across the affected pages.

@coderabbitai

coderabbitai Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: d7d186da-ef77-4c12-938b-d0298ba2482a

📥 Commits

Reviewing files that changed from the base of the PR and between dd2b097 and ecee85b.

📒 Files selected for processing (1)
  • src/views/organisations/get-started.html
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/views/organisations/get-started.html

Walkthrough

Removes the Gemstepnav JS module (516 lines), its 857-line SCSS file, the webpack bundle entry, and the SCSS import. The get-started.html page is refactored from an interactive step-by-step accordion UI into a two-column GOV.UK grid with a sticky sub-navigation component and static <section> blocks. Dataset page headers are repositioned within two-thirds grid columns across multiple organisation pages.

Changes

Step-by-step nav removal and sub-navigation replacement

Layer / File(s) Summary
Remove step-by-step nav from build pipeline
webpack.config.mjs, src/assets/scss/index.scss
Removes the webpack entry for step-by-step-nav.js and the @import of step-by-step-nav.scss from the main SCSS entrypoint; the deleted JS (516 lines) and SCSS (857 lines) files complete the teardown.
Sub-navigation flex layout and sticky positioning
src/assets/scss/components/_sub-navigation.scss
Adds .app-grid-row--flex utility (display: flex, flex-wrap: wrap, clearfix suppression) and extends .app-subnav with position: sticky and top: govuk-spacing(3).
Dataset header template structural adjustment
src/views/includes/_dataset-page-header.html
Updates wrapper layout markup at the start and adjusts how the conditional block closure aligns with surrounding markup, preparing the template for repositioning within two-thirds grid columns.
Reposition dataset headers within two-thirds grid columns
src/views/organisations/dataset-overview.html, datasetTaskList.html, dataview.html, http-error.html, issueDetails.html
Wraps the dataset page header include in govuk-grid-column-two-thirds containers across five organisation pages, creating consistent two-column layouts.
get-started page refactored to sub-navigation layout
src/views/organisations/get-started.html
Defines a navigation contents object with six anchor links and replaces the appstepnav step panels and its bundle script with a two-column GOV.UK grid containing components/sub-navigation.html and six plain <section> blocks for in-page navigation.

Sequence Diagram

sequenceDiagram
  participant User
  participant Subnav as Sub-navigation Component
  participant Section as Content Section
  User->>Subnav: Click section anchor link
  Subnav->>Section: Navigate to section
  Section->>User: Display content (prepare/check/publish/provide/view/update)
  User->>Subnav: Click another section link
  Subnav->>Section: Scroll to new section
  Section->>User: Display updated content
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • digital-land/submit#602: Removed step-by-step navigation and updated markup on the same get-started page UI area.
  • digital-land/submit#1131: Updated step navigation content and dataset action links that depend on the old accordion structure being replaced by this PR.

Suggested labels

enhancement

Suggested reviewers

  • paris-dp
  • Ben-Hodgkiss

Poem

🐇 Hop, hop, away with the step-by-step maze,
A sticky sub-nav now greets the user's gaze!
Six sections stand plain, no accordion to hide,
The clearfix pseudo-element cast firmly aside.
Less JavaScript carried, more content in sight —
This rabbit approves of the lean, anchored delight! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title directly and accurately reflects the main objective of the pull request: updating the layout of the Get-Started page from accordion-based step navigation to a two-column layout with left-column navigation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 630-update-get-startedalternative-sources-content

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions

github-actions Bot commented Jun 18, 2026

Copy link
Copy Markdown

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 70.38% 2467 / 3505
🔵 Statements 69.55% 2597 / 3734
🔵 Functions 63.78% 495 / 776
🔵 Branches 63.23% 1192 / 1885
File CoverageNo changed files found.
Generated in workflow #1527 for commit ecee85b by the Vitest Coverage Report Action

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
src/views/organisations/get-started.html (1)

143-146: ⚡ Quick win

Consider using HTTPS for example URLs.

Whilst these are example URLs for documentation purposes, using HTTPS rather than HTTP would demonstrate better security practices, particularly in government guidance materials.

🔒 Suggested change to HTTPS examples
-<p class="govuk-body">Give each record its own webpage, so that the documentation-url is the full page address. For example, <a class="govuk-link" href="http://www.yourwebsite.gov.uk/planning/article-4-directions/smith-road">www.yourwebsite.gov.uk/planning/article-4-directions/smith-road</a>.</p>
+<p class="govuk-body">Give each record its own webpage, so that the documentation-url is the full page address. For example, <a class="govuk-link" href="https://www.yourwebsite.gov.uk/planning/article-4-directions/smith-road">www.yourwebsite.gov.uk/planning/article-4-directions/smith-road</a>.</p>
 <p class="govuk-body"><strong>2. Multiple records</strong></p>
-<p class="govuk-body">List all records on a single page and add an anchor link for each one. For example, <a class="govuk-link" href="http://yourwebsite.gov.uk/planning/article-4-directions#smith-road">yourwebsite.gov.uk/planning/article-4-directions#smith-road</a>.</p>
+<p class="govuk-body">List all records on a single page and add an anchor link for each one. For example, <a class="govuk-link" href="https://yourwebsite.gov.uk/planning/article-4-directions#smith-road">yourwebsite.gov.uk/planning/article-4-directions#smith-road</a>.</p>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/views/organisations/get-started.html` around lines 143 - 146, The example
URLs in the guidance content currently use HTTP protocol instead of HTTPS, which
does not demonstrate security best practices for government guidance materials.
Update both example URLs to use HTTPS instead of HTTP: change the first example
link from
"http://www.yourwebsite.gov.uk/planning/article-4-directions/smith-road" to
"https://www.yourwebsite.gov.uk/planning/article-4-directions/smith-road" and
change the second example link from
"http://yourwebsite.gov.uk/planning/article-4-directions#smith-road" to
"https://yourwebsite.gov.uk/planning/article-4-directions#smith-road".

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@src/views/organisations/get-started.html`:
- Around line 143-146: The example URLs in the guidance content currently use
HTTP protocol instead of HTTPS, which does not demonstrate security best
practices for government guidance materials. Update both example URLs to use
HTTPS instead of HTTP: change the first example link from
"http://www.yourwebsite.gov.uk/planning/article-4-directions/smith-road" to
"https://www.yourwebsite.gov.uk/planning/article-4-directions/smith-road" and
change the second example link from
"http://yourwebsite.gov.uk/planning/article-4-directions#smith-road" to
"https://yourwebsite.gov.uk/planning/article-4-directions#smith-road".

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: fffdf959-23a5-4f0d-928e-afb1e11f94fb

📥 Commits

Reviewing files that changed from the base of the PR and between 9ca8958 and 735eea6.

📒 Files selected for processing (6)
  • src/assets/js/step-by-step-nav.js
  • src/assets/scss/components/_sub-navigation.scss
  • src/assets/scss/index.scss
  • src/assets/scss/step-by-step-nav.scss
  • src/views/organisations/get-started.html
  • webpack.config.mjs
💤 Files with no reviewable changes (4)
  • webpack.config.mjs
  • src/assets/scss/step-by-step-nav.scss
  • src/assets/js/step-by-step-nav.js
  • src/assets/scss/index.scss

Currently we have accordions highlighting each step on the get-started
page. New guidance is to use a navigation menu, which we will display in
a left column like we do on the guidance page. This will use anchor
links to navigate content which is now all visible to the user on a
single page, without hidden elements like accordions. The nav is made
sticky for easy navigation throughout content.
@jpherr
jpherr force-pushed the 630-update-get-startedalternative-sources-content branch from 735eea6 to ebe966b Compare June 18, 2026 09:17
@paris-dp

Copy link
Copy Markdown

Aware there are some tests failing to be resolved before pushing to prod.

Content itself and functionality of the navigation are as intended. Only thing to update is the H1.

H1 is currently wrapped in a 2/3 row, so it's 2/3 within 2/3. What this should look like:

image

We are in the process of updating the get-started page with a 2 column
layout. The heading is imported however, and has its own layout of 2
thirds with. This change moves the layout responsibility to the parent,
and enables us to have a full width heading layout in our 2/3 column on
the get-started page.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/views/includes/_dataset-page-header.html`:
- Line 11: The _dataset-page-header.html include file should not contain its own
govuk-grid-column-two-thirds wrapper since the callers are already wrapping the
include with their own two-thirds column, creating an unintended nested layout.
Remove the govuk-grid-column-two-thirds wrapper div from the include file by
deleting the opening div element at the beginning and the corresponding closing
div at the end, leaving only the content that should be rendered within the
caller's wrapper.

In `@src/views/organisations/get-started.html`:
- Around line 146-148: The example URLs in the href attributes within the
get-started.html file are using the insecure http:// protocol instead of
https://. Update both example links to use https:// instead of http:// to follow
security best practices and avoid promoting insecure URL patterns. This applies
to the link showing the single record webpage example and the link showing the
multiple records with anchor example.
- Around line 55-65: The includes/_dataset-page-header.html include is nested
too deeply within the govuk-grid-column-two-thirds column, causing layout issues
with the H1 heading. Move the _dataset-page-header.html include outside of the
nested govuk-grid-row and govuk-grid-column-full structure so it renders before
the main app-grid-row--flex container that splits the page into sub-navigation
(one-third) and content (two-thirds) columns. This will ensure the page heading
spans the full width as intended rather than being constrained to the two-thirds
column width.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: eb6a8fc2-b220-4f50-b34f-ef9c453b746a

📥 Commits

Reviewing files that changed from the base of the PR and between 735eea6 and a307f50.

📒 Files selected for processing (12)
  • src/assets/js/step-by-step-nav.js
  • src/assets/scss/components/_sub-navigation.scss
  • src/assets/scss/index.scss
  • src/assets/scss/step-by-step-nav.scss
  • src/views/includes/_dataset-page-header.html
  • src/views/organisations/dataset-overview.html
  • src/views/organisations/datasetTaskList.html
  • src/views/organisations/dataview.html
  • src/views/organisations/get-started.html
  • src/views/organisations/http-error.html
  • src/views/organisations/issueDetails.html
  • webpack.config.mjs
💤 Files with no reviewable changes (4)
  • src/assets/scss/index.scss
  • src/assets/scss/step-by-step-nav.scss
  • webpack.config.mjs
  • src/assets/js/step-by-step-nav.js
✅ Files skipped from review due to trivial changes (2)
  • src/views/organisations/dataview.html
  • src/views/organisations/datasetTaskList.html
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/assets/scss/components/_sub-navigation.scss

Comment thread src/views/includes/_dataset-page-header.html
Comment thread src/views/organisations/get-started.html
Comment thread src/views/organisations/get-started.html Outdated
@jpherr

jpherr commented Jun 19, 2026

Copy link
Copy Markdown
Contributor Author

Content itself and functionality of the navigation are as intended. Only thing to update is the H1.

H1 is currently wrapped in a 2/3 row, so it's 2/3 within 2/3. What this should look like ...

Good catch. This comes from an imported file. I have updated the file and all locations it is imported, so these locations will need to be considered when testing (You can see where it has been updated here).

Screenshot 2026-06-19 at 09 32 32

@Ben-Hodgkiss

Copy link
Copy Markdown
Contributor

Happy to approve these design and content changes. @jpherr - if you could get a quick code review then that would be fab.

@gibahjoe gibahjoe left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Oops. Looks like its not responsive.

Image

@jpherr

jpherr commented Jun 19, 2026

Copy link
Copy Markdown
Contributor Author

Oops. Looks like its not responsive.

I can take a look at this, it might fix itself once placed into a code block. It wasn't thoroughly tested by myself, as noted in the ticket, because I intended it to be picked up by another developer when I moved teams.

@jpherr
jpherr force-pushed the 630-update-get-startedalternative-sources-content branch from 23be7e3 to eaab0cd Compare June 19, 2026 14:00
@jpherr
jpherr force-pushed the 630-update-get-startedalternative-sources-content branch from eaab0cd to ba1a57c Compare June 19, 2026 14:00
@jpherr
jpherr force-pushed the 630-update-get-startedalternative-sources-content branch from ba1a57c to 46ca37c Compare June 19, 2026 14:02
@jpherr
jpherr force-pushed the 630-update-get-startedalternative-sources-content branch from 46ca37c to 03f0fc2 Compare June 19, 2026 14:43
Example links should be plain text and not active links. This has been
discussed and confirmed with Product.

We also use govuk break-word override class to force the
wrapping of the example links on mobile devices, since they were
extending beyond the viewport.
@jpherr
jpherr force-pushed the 630-update-get-startedalternative-sources-content branch from 03f0fc2 to ecee85b Compare June 22, 2026 07:19
@jpherr

jpherr commented Jun 22, 2026

Copy link
Copy Markdown
Contributor Author

Updates to content and forced wrapping of example links are now ready and available for testing in development environment.

@Ben-Hodgkiss @gibahjoe

@gibahjoe gibahjoe left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@gibahjoe
gibahjoe merged commit 3cc599d into main Jun 22, 2026
7 checks passed
@gibahjoe
gibahjoe deleted the 630-update-get-startedalternative-sources-content branch June 22, 2026 10:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants