Skip to content

Update site layout#349

Draft
AntDavidLima wants to merge 198 commits into
mainfrom
feat/new-layout
Draft

Update site layout#349
AntDavidLima wants to merge 198 commits into
mainfrom
feat/new-layout

Conversation

@AntDavidLima

@AntDavidLima AntDavidLima commented Oct 20, 2025

Copy link
Copy Markdown
Member

Summary

This PR introduces the new LibreSign site layout with improvements to UX, SEO, GEO/AEO readiness, accessibility, HTML semantics, copy quality, and internationalization preparation.

@AntDavidLima AntDavidLima marked this pull request as draft October 20, 2025 13:03
@henmohr henmohr marked this pull request as ready for review December 10, 2025 12:33
@github-actions

github-actions Bot commented Dec 10, 2025

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://libresign.github.io/site-preview/pr-preview/pr-349/

Built to branch main at 2026-06-13 01:09 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@vitormattos vitormattos force-pushed the feat/new-layout branch 2 times, most recently from f9d2e13 to 1cb094c Compare December 23, 2025 13:45
@henmohr

henmohr commented May 8, 2026

Copy link
Copy Markdown
Contributor
  • Need to reduce the size of the nav bar. Is too big on mobile.
  • Sugestion: add another page displaying more clients that sign documents with LibreSign.

@samuelsonbrito samuelsonbrito force-pushed the feat/new-layout branch 5 times, most recently from 7a51a4e to f3b2312 Compare May 11, 2026 20:21
AntDavidLima and others added 15 commits June 2, 2026 00:20
Signed-off-by: David Lima <antdavidlima@gmail.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: David Lima <antdavidlima@gmail.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: David Lima <antdavidlima@gmail.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: David Lima <antdavidlima@gmail.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…nctionality

Signed-off-by: David Lima <antdavidlima@gmail.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: David Lima <antdavidlima@gmail.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: David Lima <antdavidlima@gmail.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: David Lima <antdavidlima@gmail.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: David Lima <antdavidlima@gmail.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: David Lima <antdavidlima@gmail.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…nability

Signed-off-by: David Lima <antdavidlima@gmail.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: David Lima <antdavidlima@gmail.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: David Lima <antdavidlima@gmail.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Crisciany <crisciany.souza@librecode.coop>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
vitormattos and others added 21 commits June 7, 2026 22:41
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
- Remove 'defer' from inline scripts (invalid without src)
- Remove 'defer' from type=module script (modules auto-defer)
- Replace role="presentation" with aria-hidden="true" on decorative images
- Remove redundant role="navigation" from <nav> element
- Fix width attributes: remove 'px' unit (HTML attr must be unitless integer)
- Convert clients section headline from <p> to <h2> with aria-labelledby

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
- Fix footer broken links: solutions→features, blog→posts
- Add 301 redirects for /blog, /solutions, /support, /solutions
- Add unique title and meta description to all pages via front-matter
- Rewrite Privacy Policy in correct English (LGPD/GDPR, no machine translation)
- Fix duplicate h1 in Privacy Policy (removed markdown h1, layout provides it)
- Fix pricing page heading hierarchy: h4→h3 for plan names, p for price/tagline
- Fix pricing h5→h3 for API/Cloud Storage extras headings
- Replace 'Under Consultation' CTA with 'Talk to Our Team'
- Fix pricing config: Business plan price copy and plan descriptions
- Fix FAQ: wrong product name 'LibreCode signature pads'→'LibreSign'
- Fix FAQ: 'Signater' reference→'LibreSign' in cancellation question
- Fix FAQ: broken answer 'Yes, at any time.' for cancellation question
- Fix FAQ: GDPR terminology (was incorrectly called 'General Data Protection Law')
- Fix index.blade.php: 'legally binding'→'open source, secure' in hero
- Fix legal claims: 'Full Legal Value'→'Legally Valid', 'Total Legal Security'
- Fix: 'guarantee legal validity'→'supports verifiable signing workflows'
- Fix: 'Unquestionable Legal Security'→'Reliable Document Security'
- Fix: 'Thousands of organizations already trust'→factual equivalent
- Fix: 'fully comply with LGPD'→'designed to align with LGPD'
- Fix: '24 useful hours'→'within one business day'
- Add noindex to ebooks page (no content yet), with CTA to blog
- Add noindex front-matter support in main layout
- Add 'Talk to Our Team' as CTA replacing 'Under Consultation'

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
The button appeared without context below the feature cards.
The page already has a dedicated CTA section (Ready to Transform
Your Operations?) with proper heading, subtitle and action links.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
h3.ud-widget-title was inheriting the default heading color (black),
which contrasted poorly with the dark footer background. Set color to
var(--white) and standardized font-size to 18px to match the widget
links scale.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
The 00/mo price was causing confusion. Keeping only the Business
(custom pricing / contact us) plan until a public SaaS offering
is ready to be announced.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
The file assets/images/posts/envelopes/validation.png does not exist,
causing a broken image in the post. Removed the img block until the
screenshot is available.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Hardcoded 'http://localhost' caused captcha to fail when the dev
server runs on a different port (e.g. :8086). Relative paths work
regardless of port and also in production.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
The FAQ page had no CSS at all - ud-faq, ud-single-faq, ud-faq-btn
and ud-faq-body classes were completely unstyled. Added _faq.scss with:
- Section padding and shape background positioning
- Card-style accordion items with border and hover shadow
- Styled toggle button with icon indicator (chevron rotates on open)
- Accessible focus styles
- Proper body text indentation

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
current_path_locale() uses a regex [a-z]{2,3} which falsely matches
page slugs like 'faq', 'team', 'about' as locale codes, producing
broken image src like /assets/images/icon/languages/faq.svg.

Validate the detected locale against the available locales list and
fall back to 'en' if it is not a real locale code.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
- Replace <button> containing <div> children with <div role=button tabindex=0>
  to produce valid interactive content (footer contact widget)
- Add transparent placeholder src to captcha <img> (src required attribute)
- Fix width attribute value from '30px' to '30' on captcha icon images
- Remove value from boolean required attributes (required="" → required)
- Fix <label for> mismatches: fullName→name, message→codeImg

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
- pricing: rewrite page for pre-launch; remove comparison table and
  placeholder; add three service category cards (Business, API
  Integration, Cloud and Managed Services); all CTAs contact team;
  no prices or plan comparison exposed
- posts: fix h1 from 'Blog Page' to 'LibreSign Blog'
- index: soften strong legal/compliance claims ('Undisputed Compliance',
  'total compliance', 'ensure the legal validity'); simplify verbose CTAs
  ('Try it For Free Now!' -> 'Try LibreSign'; 'Discover the Perfect
  Solution for...' -> 'Explore LibreSign for...'); fix JSON-LD featureList
  and offer description
- config: fix FAQ answers with factual, non-absolute language; fix typo
  in digitized-signature answer; update 'buy LibreSign' Q&A to reflect
  open source + commercial-plans-in-preparation model
- header: standardize 'Content' nav link to 'Blog' (matches footer)
- footer: remove duplicate 'Solutions' link that pointed to /features/
- grid card: wrap date text in <time datetime='...'> for semantic HTML
- contact: fix 'economy your company will have' -> 'savings your
  organization can achieve'; remove '100%' from 'personalized proposal'
- advanced-security: soften 'end-to-end encryption' claim in description
  to 'strong encryption'; avoids unverifiable E2E claim in feature cards

Translations: new and changed strings are ready for Weblate after merge.
No manual translation performed on this branch.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
…lements

- Add missing alt="" to language flag images (aria-hidden decorative imgs)
- Add missing alt="" to footer attendant image
- Fix invalid role="separator" on <li> inside <ul>: use role="none" with <hr> child
- Remove trailing slashes from all void elements (<meta>, <link>, <img>, <input>, <br>)
  across layouts, partials, and page templates

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Pages with 2-3 letter names (e.g. faq, doe) were matched by the locale
regex [a-z]{2,3}, causing them to be treated as locale prefixes and
breaking all navigation links (/faq/pricing, /faq/about, etc.).

Fix applied upstream in LibreSign/jigsaw-localization and composer.lock
updated to pick up commit f187e8e.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
locale_path() prepends '/' to any string, so passing baseUrl (which is
an absolute URL in GitHub Pages builds) produced '/https://...' hrefs.
Using locale_url() with just the partial path correctly resolves to the
full absolute URL regardless of baseUrl format.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
- Add apple-touch-icon link in the <head>
- Fix empty alt attributes on feature card icons (use post title)
- Fix empty alt attributes on card-grid-section icons (use item title)
- Add aria-label to duplicate 'Learn more' links with post-specific context
- Add aria-label to duplicate 'Read more' links with post-specific context

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
An li element inside a ul with no explicit role cannot have any
role other than listitem. The hr inside already provides separator
semantics.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Reduce bottom values so both the contact bubble and back-to-top
arrow appear closer to the bottom edge of the screen on small devices,
with a consistent 8px gap between them.

- Tablet (577–992px): contact bottom 40px → 20px; add back-to-top
  breakpoint at bottom 108px (was using default 160px)
- Mobile (≤576px): back-to-top bottom 100px → 84px

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
The #footer-contact and .back-to-top buttons are position:fixed but
were nested inside <footer> which has overflow:hidden and
position:relative. This caused the browser to miscalculate their
fixed position, placing them ~200px higher than intended.

Moving them to direct children of <body> ensures correct viewport-
relative positioning.

Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
Signed-off-by: Vitor Mattos <1079143+vitormattos@users.noreply.github.com>
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.

5 participants