Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
lobehub avatar

React

  • 1.6k installs
  • 81.3k repo stars
  • Updated August 5, 2026
  • lobehub/lobe-chat

This is a copy of react by lobehub - installs and ranking accrue to the original listing.

react is a frontend layout skill that teaches developers how to build consistent responsive React layouts using Flexbox and Center components from the @lobehub/ui package.

About

react is a Skillselion skill from lobehub/lobe-chat that documents @lobehub/ui layout primitives for React applications. The guide covers Flexbox, the most common layout component mirroring CSS display flex, plus Center for alignment tasks. Developers learn default vertical stacks, horizontal rows, and prop controls including horizontal, flex, gap, and align values such as center and flex-start. Reach for this skill when building Lobe Chat or other React apps that standardize on @lobehub/ui instead of hand-rolling flex CSS for every screen.

  • Provides Flexbox and Center components for flexible layouts
  • Supports horizontal and vertical direction with a single boolean prop
  • Exposes 12+ common props including gap, align, justify, padding, flex, and dimensions
  • Enables classic three-column and sidebar-main-footer layouts in under 15 lines
  • Works seamlessly inside Cursor, Claude Code, and other React agent workflows

React by the numbers

  • 1,610 all-time installs (skills.sh)
  • +82 installs in the week ending Aug 5, 2026 (Skillselion tracking)
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/lobehub/lobe-chat --skill react

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1.6k
repo stars81.3k
Security audit3 / 3 scanners passed
Last updatedAugust 5, 2026
Repositorylobehub/lobe-chat

How do you lay out React UI with @lobehub/ui?

Quickly create consistent, responsive layouts with Flexbox and Center components from @lobehub/ui.

Who is it for?

React developers using @lobehub/ui who want standardized Flexbox and Center layout patterns instead of repeating raw CSS flex rules.

Skip if: Teams not using @lobehub/ui who need generic CSS Grid or Tailwind-only layout guidance.

When should I use this skill?

The user builds React UI with @lobehub/ui and needs Flexbox or Center layout patterns, spacing, or alignment help.

What you get

Flexbox and Center component layouts with consistent spacing, alignment, and responsive direction control.

  • Flexbox layout components
  • Centered UI sections

Files

SKILL.mdMarkdownGitHub ↗

React Component Writing Guide

Styling

ScenarioApproach
Most casescreateStaticStyles + cssVar.* (zero-runtime, module-level)
Simple one-offInline style attribute
Truly dynamic (JS color fns like readableColor/chroma)createStyles + tokenlast resort

Component Priority

1. `src/components` — project-specific reusable components 2. `@lobehub/ui/base-ui` — headless primitives. If the component lives here, use it. Do NOT import the same-named root export. 3. `@lobehub/ui` — higher-level / antd-wrapping components (only when no base-ui equivalent) 4. antd — only when neither base-ui nor @lobehub/ui root provides it 5. Custom implementation — true last resort

If unsure about available components, search existing code or check node_modules/@lobehub/ui/es/index.mjs and node_modules/@lobehub/ui/es/base-ui/.

@lobehub/ui/base-ui — always prefer for these

ComponentImport
Select (+ SelectProps, SelectOption)import { Select } from '@lobehub/ui/base-ui';
Modal (imperative API)import { createModal, confirmModal, useModalContext, type ModalInstance } from '@lobehub/ui/base-ui';
DropdownMenuimport { DropdownMenu } from '@lobehub/ui/base-ui';
ContextMenuimport { ContextMenu } from '@lobehub/ui/base-ui';
Popoverimport { Popover } from '@lobehub/ui/base-ui';
ScrollAreaimport { ScrollArea } from '@lobehub/ui/base-ui';
Switchimport { Switch } from '@lobehub/ui/base-ui';
Toastimport { Toast } from '@lobehub/ui/base-ui';
FloatingSheetimport { FloatingSheet } from '@lobehub/ui/base-ui';

For Modal specifically, see the dedicated modal skill — use the imperative createModal({ content: … }) pattern over the legacy <Modal open … /> declarative pattern. base-ui has its own ModalHost already mounted in SPAGlobalProvider.

Common slip: import { Select } from '@lobehub/ui' looks fine but it's the antd-backed Select. Use base-ui Select. Same for Modal, DropdownMenu, etc.

@lobehub/ui root — use when base-ui has no equivalent

CategoryComponents
GeneralActionIcon, ActionIconGroup, Block, Button, Icon
Data DisplayAvatar, Collapse, Empty, Highlighter, Markdown, Tag, Tooltip
Data EntryCodeEditor, CopyButton, EditableText, Form, Input, InputPassword, SearchBar, TextArea
FeedbackAlert, Drawer
LayoutCenter, DraggablePanel, Flexbox, Grid, Header, MaskShadow
NavigationBurger, Menu, SideNav, Tabs

Loading indicators

Do NOT use antd `Spin` / `<Spin />`. Use a project loader (NeuralNetworkLoading, DotsLoading, …) — see the ux skill ("Loading visuals") for the component table and when to use each.

State

When a feature component manages more than 3 pieces of state (useState/useReducer/derived state), extract the logic into a custom hook (e.g. useXxx). Keep the component focused on rendering — the hook holds state and handlers, so logic can be unit-tested without rendering the component.

Layout

Use Flexbox and Center from @lobehub/ui. See references/layout-kit.md for full props and examples.

  • Use gap instead of margin for spacing between flex children
  • Use flex={1} to fill available space
  • Nest Flexbox for complex layouts; set overflow: 'auto' for scrollable regions

Navigation

For SPA pages, use `react-router-dom`, NOT `next/link`.

// ❌ Wrong
import Link from 'next/link';

// ✅ Correct
import { Link, useNavigate } from 'react-router-dom';

Access navigate from stores: useGlobalStore.getState().navigate?.('/settings');

Desktop File Sync Rule

Files with a .desktop.ts(x) variant must be edited in sync. Drift causes blank pages in Electron.

Base file (web)Desktop file (Electron)
desktopRouter.config.tsxdesktopRouter.config.desktop.tsx
componentMap.tscomponentMap.desktop.ts

After editing any `.ts`/`.tsx`: glob for <filename>.desktop.{ts,tsx} in the same directory. If found, apply the equivalent sync-import change.

Routing Architecture

Route TypeUse CaseImplementation
Next.js App RouterAuth pagessrc/app/[variants]/(auth)/
React Router DOMMain SPAdesktopRouter.config.tsx + .desktop.tsx (pair)

Router utilities:

import { dynamicElement, redirectElement, ErrorBoundary } from '@/utils/router';
element: dynamicElement(() => import('./chat'), 'Desktop > Chat');
element: redirectElement('/settings/profile');
errorElement: <ErrorBoundary />;

Common Mistakes

MistakeFix
Using next/link in SPAUse react-router-dom Link
Using antd directlyUse @lobehub/ui/base-ui first, then @lobehub/ui
antd Spin / <Spin /> for loadingUse NeuralNetworkLoading / project loaders (see the ux skill)
import { Select } from '@lobehub/ui'import { Select } from '@lobehub/ui/base-ui'
import { Modal } from '@lobehub/ui' + <Modal open> declarativecreateModal / confirmModal from @lobehub/ui/base-ui (see modal skill)
import { DropdownMenu/Popover/Switch } from '@lobehub/ui'Import same name from @lobehub/ui/base-ui instead
createStyles for static stylesUse createStaticStyles + cssVar
Editing only desktopRouter.config.tsxMust edit both .tsx and .desktop.tsx
Using margin for flex spacingUse gap prop on Flexbox
Accessing zustand store without selectorUse selectors to access store data (see zustand skill)
Text or icon-text actions built with Flexbox/Text + onClickUse Button type={'text'} size={'small'} with icon when needed

Related skills

FAQ

What components does the react skill cover?

The react skill documents @lobehub/ui Flexbox and Center components, including horizontal direction, gap spacing, flex sizing, and alignment props for responsive React layouts.

When should I use the react skill?

Use the react skill when building React interfaces with @lobehub/ui and you need consistent Flexbox or Center layout patterns instead of writing custom CSS flex rules for each screen.

Is React safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.