Skip to content

Example: Chat / Channel Detail Panel Layout Using Standard Components #45

@IgorShevchik

Description

@IgorShevchik
Image

Overview

Create a demo layout that replicates a Bitrix24-style chat/channel detail side panel using standard components only. The goal is to demonstrate how out-of-the-box components can be composed into a real-world sidebar UI with minimal custom styling.

Reference Screenshot

⚠️ Attach the reference screenshot here (see task description for the original image).

The panel represents a channel/group-chat info sidebar and contains the following sections from top to bottom:

┌─────────────────────────────┐
│      [Square Avatar 24]     │  ← large square avatar
│   Channel name / subtitle   │
│  👤👤👤👤 +1  [+ Add]      │  ← grouped small user avatars
├─────────────────────────────┤
│ 🔊 Sound              [ON]  │  ← toggle row
│ 🕐 Auto-delete msgs  [OFF]  │  ← toggle row + sub-label
├─────────────────────────────┤
│ ℹ️  Group chat              │  ← icon + label row (read-only)
│ ⭐ Favorites           [0]  │  ← icon + label + badge
│ 🔗 Links from messages [18] │  ← icon + label + badge
├─────────────────────────────┤
│ Media & Files               │  ← section heading
│   [🖼] No media or files    │  ← empty state with icon
├─────────────────────────────┤
│ Tasks              [+ Add]  │  ← section heading + action
│   [✅] No tasks             │  ← empty state with icon
├─────────────────────────────┤
│ Meetings           [+ Add]  │  ← section heading + action
│   [📅] No meetings          │  ← empty state with icon
└─────────────────────────────┘

UI Elements to Implement

Element Description
Square avatar Large rounded-square avatar at the top (e.g. channel logo)
Grouped user avatars A compact avatar group (overlapping small circles) with overflow counter +N and an "+ Add" button
Toggle rows Label + icon on the left, toggle switch on the right; optional sub-label below
Icon + label rows Info/nav rows with a leading icon, text label, and optional numeric badge on the right
Section blocks Titled sections with an optional + Add action in the header and an empty-state placeholder (icon + text) when the list is empty

Requirements

  • Responsive — layout adapts gracefully to narrow (mobile) and wider (sidebar/desktop) widths
  • Minimum custom styling — rely on component defaults; avoid overriding design tokens or adding bespoke CSS where a standard prop suffices
  • Standard components only — use only components available in b24ui; no third-party UI libraries

Goal

Serve as a reference example showing how standard b24ui components can be assembled into a non-trivial, production-like detail panel without heavy customisation.

Acceptance Criteria

  • Large square avatar is displayed at the top
  • Grouped small user avatars render with overflow counter and "+ Add" button
  • Toggle rows for Sound and Auto-delete messages work correctly
  • Icon + label rows render with optional badge counts
  • Section blocks (Media, Tasks, Meetings) show heading, optional action button, and empty-state placeholder
  • No significant inline styles or custom CSS classes beyond component props
  • Works on mobile and desktop viewports

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationexample

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions