A comprehensive React component library and design system for Alsa client websites.
Note on the package name. Alsa is currently published under the legacy npm scope
@blimpify-im/uiwhile the rename is in progress. The install commands below reflect that. Once the package is republished under an Alsa scope this README will be updated.
This is a private GitHub package. To install it, you need to configure npm to use the GitHub Package Registry.
@blimpify-im:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=YOUR_GITHUB_TOKEN
npm install @blimpify-im/uiimport { Button, H1, Card } from '@blimpify-im/ui';
function MyComponent() {
return (
<Card>
<H1>Welcome</H1>
<Button variant="primary">Get Started</Button>
</Card>
);
}import { Container, VStack, Box } from '@blimpify-im/ui';
function MyLayout() {
return (
<Container>
<VStack gap="lg">
<Box>Item one</Box>
<Box>Item two</Box>
</VStack>
</Container>
);
}import { Nav } from '@blimpify-im/ui';
function Sidebar({ pathname }: { pathname: string }) {
return (
<Nav.Root layout="sidebar" surface="page" currentPath={pathname} gap="lg">
<Nav.Section label="Getting started">
<Nav.List>
<Nav.Item href="/intro">Intro</Nav.Item>
<Nav.Item href="/setup">Setup</Nav.Item>
</Nav.List>
</Nav.Section>
</Nav.Root>
);
}import { ToastProvider, useToast } from '@blimpify-im/ui';
function App() {
return (
<ToastProvider>
<MyComponent />
</ToastProvider>
);
}
function MyComponent() {
const { addToast } = useToast();
return (
<button onClick={() => addToast({ type: 'success', message: 'Saved!' })}>
Save
</button>
);
}H1–H6, Body, Label
Button, IconButton, Clickable, TextLink, Nav, Tabs, SegmentedControl, SelectionCard, Kbd
Input, Textarea, Picker, Checkbox, Radio, Switch, FileUploader, DatePicker, DateRangePicker, Slider
Table, List, Listbox, ListboxItem
Sparkline, LineChart, BarChart, AreaChart, DonutChart
Container, VStack, HStack, Grid, Box, Card, Divider
Modal, Drawer, Popover, Menu, CommandMenu, Tooltip
Toast, Tag, Alert, Banner, Spinner, Progress, LoadingSkeleton, Badge
Image, Avatar, Logo, Icon
CarouselAnimation, CountUp
Breadcrumbs, Pagination, LanguageSelector, BackButton, HashScrollHandler
Navbar, Footer, PageBackground
Dashboard, GridPatterns, CookieConsent, EndingCta, AnimatedSurfaces, Cards, Host, Toast
# Install dependencies
npm install
# Run type checking
npm run type-check
# Run linting
npm run lint
# Build the package
npm run buildMIT © Alsa