Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
f144667
Redesign the Learn section around a hub page
k-g-k Jul 10, 2026
4c96e4f
Reword the How section intro and Testify in writing step
k-g-k Jul 10, 2026
658cf43
Let scroll drive the legislative process accordion
k-g-k Jul 10, 2026
369baa0
Animate the process accordion; revert scroll-driven opening
k-g-k Jul 10, 2026
6fad899
Land a clicked chapter below the rail without a corrective jump
k-g-k Jul 10, 2026
bb16018
Reword the Individuals and Organizations taglines
k-g-k Jul 10, 2026
b6b9fd3
Rework the process page: the rail follows the reader
k-g-k Jul 10, 2026
8415911
Reduce the rail's look-ahead to 120px
k-g-k Jul 10, 2026
0255162
Make the rail behave differently going up than going down
k-g-k Jul 10, 2026
59ab45a
Trigger Vercel preview
k-g-k Jul 10, 2026
9a3b1a5
Land every rail-click chapter cleanly below the sticky nav
k-g-k Jul 10, 2026
1144bd7
Fix two mobile navbar/rail issues
k-g-k Jul 10, 2026
9743156
Keep the persona tabs on one row with short labels
k-g-k Jul 10, 2026
cdb4bfb
Show the active-state look on persona-tab hover, instantly
k-g-k Jul 10, 2026
96880c4
Make the active mobile nav dropdown item bold white
k-g-k Jul 10, 2026
cd92a1f
Stop the rail's initial-scroll jank on mobile
k-g-k Jul 10, 2026
d885c2e
Loosen line-height and padding on the AI Research Tools page
k-g-k Jul 10, 2026
c20717e
Hold rail highlight tracking until it locks, to smooth mobile scroll
k-g-k Jul 10, 2026
6859a8e
Reset the legislative-process page to the top on load
k-g-k Jul 10, 2026
50d9c0a
Attach the rail's scroll tracking only once it pins (mobile)
k-g-k Jul 10, 2026
f778e7a
Reset the rail highlight to the first stage when unpinned at the top
k-g-k Jul 10, 2026
2a9b500
Deep-link the retired Learn pages to the sections that replaced them
k-g-k Jul 13, 2026
a486e5e
Replace the icons on the about testimony page's why section to be mor…
k-g-k Jul 14, 2026
609f566
Add a Writing Effective Testimony page and restyle the Learn hub
k-g-k Jul 14, 2026
bc734d2
Merge remote-tracking branch 'upstream/main' into learn-hub-redesign
k-g-k Jul 14, 2026
086f96b
Guard the Learn icon lists, fix the mobile Learn dropdown, and edit copy
k-g-k Jul 14, 2026
22585bd
Fix the mobile Learn dropdown hover and active-row states
k-g-k Jul 14, 2026
9fbd8c8
Merge remote-tracking branch 'upstream/main' into learn-hub-redesign
k-g-k Jul 17, 2026
c9453a2
Add a call to action to each Why Use MAPLE persona, and underline the…
k-g-k Jul 17, 2026
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
130 changes: 97 additions & 33 deletions components/AdditionalResources.tsx
Original file line number Diff line number Diff line change
@@ -1,48 +1,112 @@
import { Container } from "react-bootstrap"
import { useTranslation, Trans } from "next-i18next"
import * as links from "components/links"
import styled from "styled-components"

const AdditionalResources = () => {
const content = [
{
i18nKey: "find_legislator",
href: "https://malegislature.gov/Search/FindMyLegislator"
},
{
i18nKey: "legislative_doc",
href: "https://www.mass.gov/doc/the-legislative-process-0/download"
},
{
i18nKey: "legal_services",
href: "https://www.masslegalservices.org/content/legislative-process-massachusetts-0"
const Section = styled.section`
margin-top: 3rem;

h2 {
font-family: var(--maple-font-heading);
font-weight: 700;
color: var(--bs-blue);
font-size: clamp(1.5rem, 4vw, 1.875rem);
margin-bottom: 0.75rem;
}

.intro {
color: var(--maple-text-body);
line-height: 1.7;
margin-bottom: 1.5rem;
}

ul {
display: flex;
flex-direction: column;
gap: 0.75rem;
margin: 0;
padding: 0;
list-style: none;
}

li {
background: var(--maple-surface-base);
border-radius: var(--maple-radius-xl);
box-shadow: var(--maple-shadow-sm);
padding: 1.25rem 1.5rem;
transition: box-shadow 0.2s ease;

&:hover {
box-shadow: var(--maple-shadow-hover);
}
}

p {
color: var(--maple-text-body);
line-height: 1.7;
margin: 0;
}

a {
color: var(--bs-blue);
text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
li {
transition: none;
}
]
}
`

const content = [
{
i18nKey: "find_legislator",
href: "https://malegislature.gov/Search/FindMyLegislator"
},
{
i18nKey: "legislative_doc",
href: "https://www.mass.gov/doc/the-legislative-process"
},
{
i18nKey: "legal_services",
href: "https://www.masslegalservices.org/content/legislative-process-massachusetts-0"
}
]

const AdditionalResources = () => {
const { t } = useTranslation("learnComponents")

return (
<Container fluid="md" className="mt-3">
<h1 className="fs-1 fw-bold text-center text-black">
<Section aria-labelledby="additional-resources-heading">
{/* h2, not h1: the page already has one, and this is a subsection of it. */}
<h2 id="additional-resources-heading">
{t("legislative.additional_resources")}
</h1>
<p className="fs-4 mx-5 my-3">{t("legislative.resources_intro")}</p>

{content.map(({ i18nKey, href }) => (
<div
key={i18nKey}
className="m-4 py-2 px-4 text-bg-light rounded-4 d-flex align-items-center align-items-sm-start"
>
<div className="d-flex flex-0 justify-content-xs-center p-4">
<p className="fs-4">
</h2>
<p className="intro">{t("legislative.resources_intro")}</p>

<ul>
{content.map(({ i18nKey, href }) => (
<li key={i18nKey}>
<p>
{/* A bare anchor, not links.External: that helper appends a
trailing space, which shows up as "the process ." here. */}
<Trans
t={t}
i18nKey={`legislative.${i18nKey}`}
components={[<links.External href={href} key={i18nKey} />]}
components={[
// eslint-disable-next-line jsx-a11y/anchor-has-content
<a
href={href}
key={i18nKey}
target="_blank"
rel="noreferrer"
/>
]}
/>
</p>
</div>
</div>
))}
</Container>
</li>
))}
</ul>
</Section>
)
}

Expand Down

This file was deleted.

5 changes: 4 additions & 1 deletion components/Footer/Footer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ const LearnLinks = () => {
const { t } = useTranslation(["footer", "common"])
return (
<>
<StyledInternalLink href="/learn/writing-effective-testimony">
<StyledInternalLink href="/learn/testimony">
{t("links.learnWriting")}
</StyledInternalLink>
<StyledInternalLink href="/learn/legislative-process">
Expand All @@ -198,6 +198,9 @@ const LearnLinks = () => {
<StyledInternalLink href="/why-use-maple/for-individuals">
{t("links.learnWhy")}
</StyledInternalLink>
<StyledInternalLink href="/learn/ai-tools">
{t("links.learnAi")}
</StyledInternalLink>
</>
)
}
Expand Down
Loading