style: redesign navbar, hero section, and fix dropdown#56
Conversation
- Updated navbar to a clean centered minimal design - Changed the font family to Poppins for better readability - Removed the redundant logo from the hero section - Standardized button sizes in the hero section - Added subtle rounded styling to the hero buttons - Increased top and bottom spacing in the hero section for a relaxed look - Fixed footer side margin spacing - Fixed dropdown
Greptile SummaryThis PR redesigns the site's visual style: the navbar is refactored to a centered minimal layout (removing the per-link colour accents and the
Confidence Score: 4/5Safe to merge — changes are purely presentational with no data handling or auth logic; the three style issues are visible but cosmetic and easily fixed in a follow-up. The font swap, button rounding, and Sass modernisation are clean. Two layout mismatches need attention: the footer's max-width: 1200px overrides the site-wide 1000px content width, and the hero's pl-4 introduces one-sided padding on the container. The dropdown's all-!important centering can also push the menu off-screen on mid-width viewports. None of these break functionality, but they produce observable visual glitches. _includes/header.pug (dropdown positioning) and _includes/footer.pug (max-width inconsistency) deserve a second look before merging. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
NAV["nav.navbar.navbar-expand-lg.navbar-light\n(bg-light removed)"]
NAV --> BRAND["a.navbar-brand\n(logo)"]
NAV --> TOGGLER["button.navbar-toggler\n(mobile)"]
NAV --> COLLAPSE[".collapse.navbar-collapse"]
COLLAPSE --> UL1["ul.navbar-nav.mx-auto\n(centered)"]
COLLAPSE --> UL2["ul.navbar-nav\n(trailing — Donate)"]
UL1 --> DL["Downloads"]
UL1 --> DOCS["Docs"]
UL1 --> FORUM["Forum"]
UL1 --> BLOG["Blog"]
UL1 --> DD["Stats dropdown"]
DD --> DDMENU[".dropdown-menu\ncentered via left:50%+translateX(-50%)\nall props !important"]
DDMENU --> S1["Downloads & Users"]
DDMENU --> S2["Contributors"]
DDMENU --> S3["Sponsors"]
DDMENU --> S4["Continuous Integration"]
DDMENU --> S5["Timeline"]
UL2 --> DONATE["Donate\n(highlighted, font-weight 700)"]
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
NAV["nav.navbar.navbar-expand-lg.navbar-light\n(bg-light removed)"]
NAV --> BRAND["a.navbar-brand\n(logo)"]
NAV --> TOGGLER["button.navbar-toggler\n(mobile)"]
NAV --> COLLAPSE[".collapse.navbar-collapse"]
COLLAPSE --> UL1["ul.navbar-nav.mx-auto\n(centered)"]
COLLAPSE --> UL2["ul.navbar-nav\n(trailing — Donate)"]
UL1 --> DL["Downloads"]
UL1 --> DOCS["Docs"]
UL1 --> FORUM["Forum"]
UL1 --> BLOG["Blog"]
UL1 --> DD["Stats dropdown"]
DD --> DDMENU[".dropdown-menu\ncentered via left:50%+translateX(-50%)\nall props !important"]
DDMENU --> S1["Downloads & Users"]
DDMENU --> S2["Contributors"]
DDMENU --> S3["Sponsors"]
DDMENU --> S4["Continuous Integration"]
DDMENU --> S5["Timeline"]
UL2 --> DONATE["Donate\n(highlighted, font-weight 700)"]
Reviews (1): Last reviewed commit: "style: redesign navbar, hero section, an..." | Re-trigger Greptile |
| article.wrapper.mt-4 | ||
| img.d-block.mx-auto.mb-4(style='max-width: 100%' src='/img/banner.png' alt='ActivityWatch - free open-source time tracker for Windows, macOS, Linux, and Android') | ||
| h1 Free Open-Source Time Tracker | ||
| article.container.mb-5.pl-4(style="margin-top: 5rem;") |
There was a problem hiding this comment.
pl-4 adds padding-left: 1.5rem on top of the Bootstrap container's default 15px left padding, while the right side only keeps the default 15px. This makes the hero text appear shifted right relative to the rest of the page content. If the intent is extra breathing room, px-4 (symmetric) or simply relying on the container's default gutters would be the right choice.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
| body | ||
| footer.site-footer | ||
| .wrapper | ||
| .wrapper(style='max-width: 1200px;') |
There was a problem hiding this comment.
The footer wrapper is given
max-width: 1200px, but the site's $content-width is 1000px (set in css/main.scss). On viewports between 1000px and 1200px the footer will be noticeably wider than the main content, creating a misaligned layout. Either remove the inline override to let the .wrapper SCSS rule apply, or set it to 1000px to match.
| .wrapper(style='max-width: 1200px;') | |
| .wrapper |
| | Stats | ||
| .dropdown-menu.dropdown-menu-right(aria-labelledby='navbarDropdown') | ||
| a.dropdown-item.text-secondary.font-weight-bold(href='/stats/') | ||
| .dropdown-menu(style='background-color: #fff !important; box-shadow: 0 8px 24px rgba(0,0,0,0.1) !important; border-radius: 16px !important; margin-top: 12px !important; padding: 8px !important; border: 1px solid rgba(0,0,0,0.08) !important; left: 50% !important; right: auto !important; transform: translateX(-50%) !important;', aria-labelledby='navbarDropdown') |
There was a problem hiding this comment.
Dropdown
!important centering can clip near viewport edges
The centering approach (left: 50% !important; right: auto !important; transform: translateX(-50%) !important;) positions the dropdown relative to the .dropdown element (the "Stats" button). When the "Stats" button is rendered close to the left edge of the viewport — which happens on medium-width screens with the mx-auto centered nav — the dropdown can overflow off-screen to the left. Bootstrap's built-in dropdown-menu-right or the Popper.js flip behaviour would handle this automatically. Additionally, using !important on left, right, and transform overrides Bootstrap's runtime JavaScript positioning adjustments, which can cause the dropdown to misplace itself if Bootstrap tries to reposition it.
|
@halite-inc apply the changes suggested by greptile. post a screenshot of the result after :) |
- Updated navbar to a clean centered minimal design - Changed the font family to Poppins for better readability - Removed the redundant logo from the hero section - Standardized button sizes in the hero section - Added subtle rounded styling to the hero buttons - Increased top and bottom spacing in the hero section for a relaxed look - Fixed footer side margin spacing - Fixed dropdown

Uh oh!
There was an error while loading. Please reload this page.