DEV Community

Cover image for ๐Ÿณ๏ธโ€โšง๏ธ Pride Hero: LGBTQ+ Landing Page for WASM Frameworks
Mahmoud Harmouch
Mahmoud Harmouch

Posted on • Originally published at opensass.org

๐Ÿณ๏ธโ€โšง๏ธ Pride Hero: LGBTQ+ Landing Page for WASM Frameworks

Hello ๐Ÿ‘‹!

So, yesterday, I released pride-rs to allow Rustaceans to easily add pride flags to their landing pages. But then I thought, "Hmm. This is nice, but it's not nearly gay enough." There was no theatrical entrance, no bright attractiveness, no Ferris the crab doing a dance move on a Progress Pride flag.

So obviously, I needed to take things to the next level.

I should push it to the absolute extreme. I needed to put flags somewhere big, bold, fabulous, and meaningful. Naturally, I used hero crate: a package for making hero sections in WASM: and decided it was time to inject it with unapologetic queer energy.

Thus, the pride component was born.

drinking rust

What Is pride

Think of pride as the drag queen cousin of the classic hero section: big text, big flags, big feels.

It's a hero landing page component, built with the same modularity and power of hero, but now capable of screaming "๐Ÿณ๏ธโ€๐ŸŒˆ Gay Rights!" on page load. It's designed for events, queer community shout-outs, or just asserting your gender in the HTML.

You can now build pages like:

  • "Hey trans Rust devs, meet up at 5PM for iced coffee and WASM talk!"
  • "Lesbian Rustaceans Unite: Queer systems programming social."
  • "Ferris the crab is nonbinary now. Come to our journal night."

Demo

Here's what the pride landing page look like using Yew:

Demo 1

Demo 2

That's it. You now have a stunning, queer-coded hero section greeting your users like a warm hug and a sparkle bomb.

Why This Exists

Let's be real: dev events, even Rust ones, can feel a little... cis-het-middle-aged-microservice-coded.

And while we love robust type systems, sometimes what we really want is a space to say:

"Hey, let's just hang out, talk open source, and also maybe be a little gay about it."

This component is an invitation. A declaration. A banner saying:

"Queer Rust devs are here, and we brought snacks."

It helps organizers quickly build landing pages for events, meetups, game jams, mutual aid projects, journal nights, or "let's write poetry in Rust" circles.

Canon Update

Ferris the Crab? You mean Fabulous Ferris? Yeah, Ferris is canonically queer. We've decided.

They/them pronouns. Wears eyeliner. Possibly dating Clippy.

In fact, we believe every flag in pride-rs is a little home Ferris can march across.

dababy side eye

Future Ideas

Coming soon to pride:

  • Mobile responsiveness
  • Document the Design and thought process
  • Animated flag transitions
  • Confetti drop on CTA click
  • Server-side rendering support
  • Ferris doing a little jig on hover

Community Love

Building queer-inclusive spaces in tech isn't just about HR policies, it's about what we ship. Even a single pride flag on a dev landing page can make someone feel seen.

Let's queer up the web one div at a time. In Rust. With hero. With Pride.

For Judges

show me

If you'd like to test this project locally, you can do so using Yew. Please refer to the README file and the source code for detailed instructions on how to run it locally.

Final Thoughts

If you're planning a queer-friendly event, building a Rust community initiative, or just want your site to slay, the pride component in hero has your back.

It's fast, accessible, and deeply, flamboyantly Rust.

Add it. Ship it. Celebrate it ๐Ÿณ๏ธโ€๐ŸŒˆ๐Ÿฆ€.


Try It Out

Try It

GitHub logo opensass / hero

๐Ÿฆธ Hero Components for WASM frameworks.

๐Ÿฆธ Hero

Crates.io Crates.io Downloads Crates.io License made-with-rust Rust Maintenance

Join our Discord

logo

๐ŸŽฌ Demo

Framework Live
Yew Netlify Status
Dioxus TODO
Leptos TODO

๐Ÿ“œ Intro

Hero is a highly customizable hero sections components for WASM Frameworks like Yew, Leptos, and Dioxus. It helps you build beautiful, responsive hero sections with minimal setup and maximum customization.

๐Ÿค” Why Use Hero?

  1. ๐Ÿ“ฑ Responsive by Default: Automatically adapts to different screen sizes with clean mobile-first layout support.

  2. ๐ŸŽจ Easy to Customize: Configure layout, alignment, spacing, images, call-to-actions, and more using straightforward props.

  3. ๐Ÿงฉ Pluggable Content Areas: Drop in your own headings, subheadings, images, buttons, or components with slot-like flexibility.

  4. ๐ŸŒˆ Theming & Styling Freedom: Comes unopinionated; Style it using Tailwind CSS, regular classes, or inline styles.

  5. โš™๏ธ Framework Friendly: Designed for seamless integration with Yew, Leptos, Dioxus, or any other WASM-based UI framework.

Yew Usage

Refer to our guide to integrate this component intoโ€ฆ

P.S. Join us in the Open SASS Discord: we have a queer rust web channel and it is exactly as lovely as you'd hope.

discord

Till next time: Keep Rustin', keep Pride'n ๐Ÿ’–

Top comments (4)

Collapse
 
moopet profile image
Ben Sinclair

I'm not much of a Rust person, but how come this uses both embedded CSS as a big string in the Rust file and also in something which I can only think looks like the Rust equivalent of Styled Components? Could I suggest all that be consolidated into standard CSS files to make it easier to maintain?

I was looking through the code for general accessibility reasons, because I noticed all the animations (and I know they're kind of the point) - could you add something that respects prefers-reduced-motion to this so it slows down or omits the animations?

Other than that... nice :)

Collapse
 
wiseai profile image
Mahmoud Harmouch

Could I suggest all that be consolidated into standard CSS files to make it easier to maintain?

Thanks for the suggestion. Fixed! Kindly have a look at the latest version.

could you add something that respects prefers-reduced-motion to this so it slows down or omits the animations?

It is already set in the main style file here.

To test it, go to Dev Tools โ†’ โ‹ฎ โ†’ More tools โ†’ Rendering. Emulate CSS media feature prefers-reduced-motion and select reduce. All animations should be disabled.

reduce animation

Other than that... nice :)

Thanks, glad you liked it. Let's take it one step further and add some 3d effect and models. But first, i need to make it mobile responsive and document the design. Let's do this!

Till next time โœŒ๏ธ.

Collapse
 
moopet profile image
Ben Sinclair

It is already set in the main style file here.

Nice! I didn't spot that.

Collapse
 
leob profile image
leob

One of the happiest (I could say "gayest") posts I've come across in a while - brilliantly written in a "queer" but good-humored style, luv it!

Some comments may only be visible to logged-in visitors. Sign in to view all comments.