Team Events Gallery

Team Life

Events & offsites

Work is better when you actually enjoy spending time with your team. Here are some of the moments that bring us together.

Team members hiking together during company offsite

Annual Company Offsite

Three days in the mountains — workshops, hiking, and great conversations.

Team collaborating during hackathon

Hackathon Week

48 hours to build anything. Past winners have shipped features used by thousands.

Team enjoying lunch together

Team Lunch Fridays

Weekly team lunches where we catch up, celebrate wins, and share ideas.

Speaker presenting at a knowledge sharing session

Knowledge Sharing

Monthly lightning talks where anyone can present on topics they're passionate about.

New team member being welcomed by colleagues

Welcome Events

Every new hire gets a warm welcome with team introductions and a starter kit.

Team members volunteering in the community

Volunteer Day

Quarterly volunteer days where the whole team gives back to the local community.

About this block

Team Events GalleryPRO

Photo gallery of company events, offsites, and team activities in masonry layout. Visual showcase of team culture and community.

A centered header (optional badge, heading, and description) above a responsive one-to-three-column grid of photo cards, each rendering an aspect-video cover image that scales up on hover plus a small title and optional caption, built to showcase company events, offsites, and team culture.

Upgrade to Pro

Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.

Upgrade Now

Installation

Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/careers29?email=YOUR_EMAIL&license_key=YOUR_KEY"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/careers29?email=YOUR_EMAIL&license_key=YOUR_KEY"

This installs the block to components/beste/block/careers29.tsx, plus the badge shadcn/ui primitive it uses for the section eyebrow badge.

Quick start

The installed file exports careers29Demo alongside the block: the exact props behind the preview above. Spread it to get a working events gallery in one line.

tsx
import { Careers29, careers29Demo } from "@/components/beste/block/careers29";

export default function Page() {
  return <Careers29 {...careers29Demo} />;
}

Then replace the demo with your own props. Written out, a trimmed setup looks like this:

tsx
import { Careers29 } from "@/components/beste/block/careers29";

export default function Page() {
  return (
    <Careers29
      badge={{ label: "Team Life", variant: "secondary" }}
      heading="Events & <strong>offsites</strong>"
      description="Some of the moments that bring us together."
      items={[
        {
          image: { src: "/photos/offsite.jpg", alt: "Team hiking on offsite" },
          title: "Annual Company Offsite",
          description: "Three days in the mountains.",
        },
        {
          image: { src: "/photos/hackathon.jpg", alt: "Team at hackathon" },
          title: "Hackathon Week",
          description: "48 hours to build anything.",
        },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Optional eyebrow badge above the heading
headingstringSection heading, supports inline <strong>
descriptionstringSupporting paragraph below the heading
itemsEventPhoto[][]Photo cards rendered in the grid
classNamestringExtra classes for the outer <section>
ts
type EventPhoto = {
  image?: { src: string; alt: string };
  title: string;
  description?: string;
};

Behavior notes

  • The entire header block is conditionally rendered: it only appears when at least one of badge, heading, or description is provided, otherwise the grid sits alone.
  • heading is injected via dangerouslySetInnerHTML, so inline <strong> markup renders and is recolored to text-primary; any raw HTML you pass is trusted and rendered as-is.
  • badge.variant falls back to "default" when omitted, since the value is resolved with badge.variant ?? "default".
  • Each card's image is optional: when item.image is missing the card renders only the title and caption with no picture placeholder, and item.description is likewise conditional.
  • Cards are keyed by array index, and the grid is purely presentational: there are no click handlers, links, or callbacks on any card, so wiring navigation or lightbox behavior is left to the integrator.
  • The grid steps from one column to sm:grid-cols-2 to lg:grid-cols-3; images use a fixed aspect-video frame and scale to 105% on hover via the per-card group/careers29 hover group.

More Careers blocks

View all Careers
PRO

careers14

Meet the Team Gallery

Team member photo grid with names and roles. Square portrait layout for showcasing leadership and team composition.

PRO

careers7

Culture Stats with Positions

Team culture stats bar followed by detailed job position cards. Combines social proof with open roles listing.

PRO

careers30

Team Blog Highlights

Engineering and team blog article preview cards with images, excerpts, and authors. Showcases technical depth and knowledge sharing culture.

PRO

careers11

Culture & Values

Company values grid with icon cards and employee testimonial quote. Showcases team culture and work philosophy.

PRO

careers31

Role Comparison Table

Side-by-side role comparison grid showing team, skills, experience, and salary for different positions. Responsive table-to-card layout.

PRO

careers13

Office Locations Grid

Global office locations grid with city photos, team size, and role taglines. Showcases company presence worldwide.