Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
b7dcdb3
Implementation of basic hero designs.
DrJfrost Mar 12, 2026
95a19a8
Implementation of basic hero full.
DrJfrost Mar 12, 2026
5a90f8a
Fixing the heroes icons
DrJfrost Mar 12, 2026
5430391
Progress on home page—some components still need adjustment.
DrJfrost Mar 12, 2026
e8bdae2
Homepage designs partially done—missing component variants.
DrJfrost Mar 13, 2026
82b595b
fix color button heros and center navbar
DrJfrost Mar 13, 2026
0bec320
Improving homepage styles.
DrJfrost Mar 13, 2026
0c060c4
dark mode image integration
DrJfrost Mar 13, 2026
70b4ac6
format file
DrJfrost Mar 13, 2026
e2196a6
hero styles mode dark
DrJfrost Mar 16, 2026
5f8e7d7
Progress on hero design improvements.
DrJfrost Mar 16, 2026
b08a826
merge v3 into heros-component
DrJfrost Mar 16, 2026
78da065
fix prettier
DrJfrost Mar 16, 2026
245713b
add variant without image to heros
DrJfrost Mar 16, 2026
e0cd270
Fixing the height of the heros and add all variants
DrJfrost Mar 16, 2026
bd37c64
merge heros into homepage
DrJfrost Mar 16, 2026
40b0dfc
Fixing the homepage button positioning design
DrJfrost Mar 16, 2026
07330a4
stlye hero padding top
DrJfrost Mar 16, 2026
2babb39
responsive styles v3
DrJfrost Mar 16, 2026
2907b3e
post cards last changes view
DrJfrost Mar 16, 2026
a157fc6
fix space format
DrJfrost Mar 16, 2026
f6851b8
Button design improvements and styles with semantics for hero
DrJfrost Mar 17, 2026
dbab258
fix space button
DrJfrost Mar 17, 2026
ea4c04e
merge v3 into heros-component
DrJfrost Mar 17, 2026
adad844
adjusting the size of deformed icons
DrJfrost Mar 17, 2026
143c950
Adding backgrounds with dynamic images in Heros
DrJfrost Mar 17, 2026
7a56ada
improving the image to make it responsive
DrJfrost Mar 17, 2026
6c41662
Merge develop: resolve icon.html conflict, keep github/google/alert b…
DrJfrost Mar 17, 2026
688e054
add install card to hero home
DrJfrost Mar 17, 2026
daa2f22
adding dynamic styles and inserting the installation card
DrJfrost Mar 17, 2026
dade239
category tag include in heros
DrJfrost Mar 17, 2026
c5c4e4d
add style when there is a background image
DrJfrost Mar 17, 2026
ffed6b9
fix icon button in hero
DrJfrost Mar 17, 2026
7e2061f
merge hero-components into homepage-componente
DrJfrost Mar 18, 2026
39de457
update url heros in homepage
DrJfrost Mar 18, 2026
074e0fe
add heros styles with image background
DrJfrost Mar 19, 2026
8ac50d5
Merge branch 'develop' into heros-component
DrJfrost Mar 19, 2026
21dd3d3
add id install card in home heros
DrJfrost Mar 19, 2026
583cee0
add min witdth
DrJfrost Mar 19, 2026
8b89e4b
add responsive tablets hero
DrJfrost Mar 19, 2026
a8920b6
merge hero-component into homepage
DrJfrost Mar 20, 2026
fbeefd0
add info hero
DrJfrost Mar 20, 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
6 changes: 6 additions & 0 deletions config/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
TermsOfUseView,
PrivacyPolicyView,
V3ComponentDemoView,
V3HomepageView,
ModernizedDocsView,
RedirectToDocsView,
RedirectToHTMLDocsView,
Expand Down Expand Up @@ -250,6 +251,11 @@
staff_member_required(V3ComponentDemoView.as_view()),
name="v3-demo-components",
),
path(
"v3/homepage/",
V3HomepageView.as_view(),
name="v3-homepage",
),
path("libraries/", LibraryListDispatcher.as_view(), name="libraries"),
path(
"libraries/<boostversionslug:version_slug>/<str:library_view_str>/",
Expand Down
272 changes: 272 additions & 0 deletions core/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -1216,6 +1216,24 @@ def get_context_data(self, **kwargs):
context["create_account_card_preview_url"] = (
f"{settings.STATIC_URL}img/checker.png"
)
context["hero_background_image_url"] = (
f"{settings.STATIC_URL}img/v3/home-page/home-page-background.png"
)
context["hero_legacy_image_url_light"] = (
f"{settings.STATIC_URL}img/v3/home-page/heros.png"
)
context["hero_legacy_image_url_dark"] = (
f"{settings.STATIC_URL}img/v3/home-page/heros_light.png"
)
context["hero_image_url"] = (
f"{settings.STATIC_URL}img/v3/home-page/home-page-foreground.png"
)
context["hero_image_url_light"] = (
f"{settings.STATIC_URL}img/v3/home-page/home-page-foreground.png"
)
context["hero_image_url_dark"] = (
f"{settings.STATIC_URL}img/v3/home-page/home-page-foreground.png"
)
context["basic_card_data"] = {
"title": "Found a Bug?",
"text": "We rely on developers like you to keep Boost solid. Here's how to report issues that help the whole comm",
Expand Down Expand Up @@ -1475,3 +1493,257 @@ def get_context_data(self, **kwargs):
context["example_library_not_found"] = library_slug
context["example_library_slug"] = library_slug
return context


class V3HomepageView(TemplateView):
"""Future v3 homepage at /v3/homepage/. Reuses v3 includes; does not replace current site homepage."""

template_name = "v3/homepage.html"

def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# Keep the hero background + centered image consistent with the v3 demos.
context["hero_background_image_url"] = (
f"{settings.STATIC_URL}img/v3/home-page/home-page-background.png"
)
context["hero_image_url"] = (
f"{settings.STATIC_URL}img/v3/home-page/home-page-foreground.png"
)
context["hero_image_url_light"] = (
f"{settings.STATIC_URL}img/v3/home-page/home-page-foreground.png"
)
context["hero_image_url_dark"] = (
f"{settings.STATIC_URL}img/v3/home-page/home-page-foreground.png"
)

# Install card data (used by v3/includes/_hero_home.html -> _install_card.html)
context["install_card_title"] = (
"Install Boost and get started in your terminal."
)
context["install_card_pkg_managers"] = [
{"label": "Conan", "value": "conan", "command": "conan install boost"},
{"label": "Vcpkg", "value": "vcpkg", "command": "vcpkg install boost"},
]
context["install_card_system_install"] = [
{
"label": "Ubuntu",
"value": "ubuntu",
"command": "sudo apt install libboost-all-dev",
},
{
"label": "Fedora",
"value": "fedora",
"command": "sudo dnf install boost-devel",
},
{
"label": "CentOS",
"value": "centos",
"command": "sudo yum install boost-devel",
},
{"label": "Arch", "value": "arch", "command": "sudo pacman -S boost"},
{"label": "Homebrew", "value": "homebrew", "command": "brew install boost"},
]
context["popular_terms"] = [
{"label": "Networking"},
{"label": "Math"},
{"label": "Data processing"},
{"label": "Concurrency"},
{"label": "File systems"},
{"label": "Testing"},
]
context["event_list"] = [
{
"title": "Boost 1.90.0 closed for major changes",
"description": "Release closed for major code changes. Still open for serious problem fixes and docs changes without release manager review.",
"date": "29/10/25",
"datetime": "2025-10-29",
},
{
"title": "Boost 1.90.0 closed for beta",
"description": "Release closed for all changes",
"date": "29/10/25",
"datetime": "2025-10-29",
},
]
context["event_primary_btn_text"] = "Download latest release"
context["event_primary_btn_url"] = reverse("releases-most-recent")
context["event_secondary_btn_text"] = "View events calendar"
context["event_secondary_btn_url"] = reverse("calendar")
from datetime import date

avatar_url = f"{settings.STATIC_URL}img/v3/demo_page/Avatar.png"
badge_url = f"{settings.STATIC_URL}img/v3/demo_page/Badge.svg"
context["homepage_posts"] = [
{
"title": "Chaotic Attractors with Boost.OdeInt, a talk by Richard Thomson at the Utah C++ Programmers Group",
"url": "#",
"date": date(2025, 3, 3),
"category": "Issues",
"tag": "beast",
"author": {
"name": "Christopher Kormanyos",
"role": "Contributor",
"avatar_url": avatar_url,
"role_badge": badge_url,
"show_badge": True,
},
},
{
"title": "A talk by Richard Thomson at the Utah C++ Programmers Group",
"url": "#",
"date": date(2025, 3, 3),
"category": "Issues",
"tag": "beast",
"author": {
"name": "Dave Abrahams",
"role": "Contributor",
"avatar_url": avatar_url,
"role_badge": badge_url,
"show_badge": True,
},
},
]
context["homepage_posts_view_all_url"] = reverse("news")
context[
"code_demo_hello"
] = """#include <iostream>
int main() {
std::cout << "Hello, Boost.";
}"""
context["community_cards"] = [
{
"title": "Get help",
"description": "Tap into quick answers, networking, and chat with 24,000+ members.",
"icon_name": "info-box",
"cta_label": "Start here",
"cta_href": reverse("community"),
},
{
"title": "Contribute",
"description": "Learn how to test or evaluate library submissions, or submit your own.",
"icon_name": "bullseye-arrow",
"cta_label": "Start here",
"cta_href": reverse("community"),
},
{
"title": "Stay updated",
"description": "Get updates on the latest releases, fixes and announcements.",
"icon_name": "device-tv",
"cta_label": "Start here",
"cta_href": reverse("releases-most-recent"),
},
{
"title": "Find work",
"description": "See who's looking for the C++ skills you've got.",
"icon_name": "human",
"cta_label": "Start here",
"cta_href": "#",
},
]
context["community_cta_url"] = reverse("community")
context["why_boost_cards"] = [
{
"title": "Performant",
"description": "Optimized for production at any scale, Boost outperforms many standard benchmarks.",
"icon_name": "bullseye-arrow",
},
{
"title": "Peer-reviewed",
"description": "Well tested by members of the C++ standards committee.",
"icon_name": "get-help",
},
{
"title": "Portable",
"description": "Works across all platforms, compilers, and C++ standards.",
"icon_name": "link",
},
{
"title": "Innovative",
"description": "Over 40 Boost libraries have become part of the C++ standard over the past 25 years.",
"icon_name": "bullseye-arrow",
},
{
"title": "Community-powered",
"description": "Contributing to Boost builds credibility, sharpens skills, and advances careers.",
"icon_name": "human",
},
{
"title": "Known worldwide",
"description": "Used in countless projects, you've probably encountered Boost without realizing it.",
"icon_name": "link",
},
{
"title": "Free",
"description": "Open source now and always, thanks to the Boost Software License.",
"icon_name": "check",
},
{
"title": "Production-ready",
"description": "Battle-tested in critical systems across industries around the globe.",
"icon_name": "bullseye-arrow",
},
]
context["stats_bars"] = [
{"label": "1.70.0", "height_px": 78},
{"label": "1.71.0", "height_px": 121},
{"label": "1.72.0", "height_px": 74},
{"label": "1.73.0", "height_px": 86},
{"label": "1.74.0", "height_px": 100},
{"label": "1.75.0", "height_px": 86},
{"label": "1.76.0", "height_px": 36},
{"label": "1.77.0", "height_px": 21},
{"label": "1.78.0", "height_px": 98},
{"label": "1.79.0", "height_px": 61},
]
context["testimonial_data"] = {
"heading": "What engineers are saying",
"testimonials": [
{
"quote": "I use Boost daily. I absolutely love it. It's wonderful. I could not do my job w/o it. Much of it is in the new C++11 standard too.",
"author": {
"name": "Christopher Kormanyos",
"avatar_url": f"{settings.STATIC_URL}img/v3/demo_page/Avatar.png",
"role": "Author",
"role_badge": f"{settings.STATIC_URL}img/v3/demo_page/Badge.svg",
},
},
],
}
context["library_intro"] = {
"library_name": "Boost.Core.",
"description": "Lightweight utilities that power dozens of other Boost libraries",
"authors": [
{
"name": "Vinnie Falco",
"role": "Author",
"avatar_url": f"{settings.STATIC_URL}img/v3/demo_page/Avatar.png",
"badge_url": f"{settings.STATIC_URL}img/v3/demo_page/Badge.svg",
"bio": "Big C++ fan. Not quite kidney-donation level, but close.",
},
{
"name": "Alex Wells",
"role": "Contributor",
"avatar_url": f"{settings.STATIC_URL}img/v3/demo_page/Avatar.png",
"bio": "C++ enthusiast who has worked at Intel and Microsoft.",
},
{
"name": "Dave Abrahams",
"role": "Maintainer",
"avatar_url": f"{settings.STATIC_URL}img/v3/demo_page/Avatar.png",
"badge_url": f"{settings.STATIC_URL}img/v3/demo_page/Badge.svg",
"bio": "Contributor to Boost since 2009.",
},
],
"cta_url": reverse(
"library-detail",
kwargs={"version_slug": "latest", "library_slug": "core"},
),
}
context["build_anything_card"] = {
"title": "Build anything with boost",
"description": "Use, modify, and distribute Boost libraries freely. No binary attribution needed.",
"image_url": f"{settings.STATIC_URL}img/v3/solo-images/beaver-computer-blow-up.png",
"cta_label": "See license details",
"cta_url": "https://www.boost.org/users/license.html",
}
return context
11 changes: 8 additions & 3 deletions static/css/v3/buttons.css
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@
font-size: var(--font-size-base);
gap: var(--space-medium);
width: auto;
z-index: 1;
}

.btn.btn-hero.btn-primary {
Expand Down Expand Up @@ -218,10 +219,10 @@
padding: var(--space-default) var(--space-medium);
font-family: var(--font-sans);
font-size: var(--font-size-small);
font-weight: var(--font-weight-regular);
font-weight: var(--font-weight-medium);
color: var(--color-text-primary);
background-color: var(--color-button-primary);
border: 1px solid var(--color-border);
background-color: var(--color-surface-weak);
border: 1px solid var(--color-stroke-weak);
border-radius: var(--border-radius-l);
cursor: pointer;
}
Expand All @@ -230,6 +231,10 @@
background-color: var(--color-primary-grey-300);
}

html.dark .btn-icon-library:hover {
background-color: var(--color-stroke-mid);
}

.btn-icon-library .btn-icon {
width: 24px;
height: 24px;
Expand Down
4 changes: 4 additions & 0 deletions static/css/v3/components.css
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,11 @@
@import "./badge.css";
@import "./v3-examples-section.css";
@import "./header.css";
@import "./heros.css";
@import "./footer.css";
@import "./forms.css";
@import "./create-post-page.css";
@import "./inputs-page.css";
@import "./testimonial-card.css";
@import "./card.css";
@import "./event-cards.css";
Expand All @@ -27,6 +30,7 @@
@import "./learn-cards.css";
@import "./terms-of-use.css";
@import "./thread-archive-card.css";
@import "./v3-homepage.css";
@import "./tab.css";
@import "./install-card.css";
@import "./banner.css";
Expand Down
9 changes: 8 additions & 1 deletion static/css/v3/content.css
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
.content-card-link {
display: block;
text-decoration: none;
color: inherit;
}

.content-detail-icon {
font-family: var(--font-sans);
color: var(--color-text-primary);
margin: 0;
padding: var(--space-card);
border-radius: var(--border-radius-xxl);
border-radius: var(--border-radius-l);
background: var(--color-bg-secondary);
border: 1px solid var(--color-border);
display: flex;
Expand All @@ -13,6 +19,7 @@
box-sizing: border-box;
align-self: start;
transition: background-color 0.2s ease, border-color 0.2s ease;
height: 100%;
}

a:hover .content-detail-icon:not(.content-detail-icon--contained) {
Expand Down
2 changes: 1 addition & 1 deletion static/css/v3/event-cards.css
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@

.event-card {
background: var(--color-card-bg);
border-radius: var(--card-radius);
border-radius: var(--border-radius-l);
margin: 0 var(--space-card);
}

Expand Down
Loading
Loading