Skip to content

Repository files navigation

@szum-tech/design-system

Szum-Tech Design System Banner

A comprehensive, accessible, and highly customizable React design system tailored to Szum-Tech standards.


GitHub Release GitHub pull requests GitHub issues Github stars
Publish action CodeQL action
NPM version Downloads

Built with Tailwind CSS and Radix UI, this design system provides a robust collection of over 50+ modern, resuable UI components supporting light and dark themes. It ensures accessibility out of the box and seamlessly integrates with React 19+.


✨ Features

  • 🎨 Modern Stack: Ready to go with Tailwind CSS v4+ & React 19+.
  • 🧩 Extensive Kit: 55+ crafted components (Carousel, Sortable, Combobox, Color Picker, File Upload, Sidebar & more).
  • β™Ώ Accessible: Built around Radix UI and @base-ui/react to ensure WAI-ARIA compliance.
  • πŸŒ“ Themes: Native support for configurable light and dark color palettes.
  • πŸ“ Animations: Smooth motion and interactions powered by motion, tailwindcss-animate, and @dnd-kit.
  • πŸ—ƒοΈ Iconography: Bundled optimized icon set with Lucide React.
  • πŸ“˜ Interactive Docs: Fully documented and play-tested in a Storybook environment.

πŸ“– Table of Contents


🎯 Getting Started

βš™οΈ Installation

The package and its peer dependencies are available on npm. Start by adding it to your project:

# NPM
npm install @szum-tech/design-system

# YARN
yarn add @szum-tech/design-system

# PNPM
pnpm add @szum-tech/design-system

# BUN
bun add @szum-tech/design-system

Note: You must have react, react-dom (>=19) and tailwindcss (>=4) installed as peer dependencies.

🎨 Tailwind CSS Configuration

To use the design system components correctly, ensure Tailwind compiles its CSS framework. If you are using Tailwind v4+ with @import methodology, append the following lines to your main CSS file:

@import "tailwindcss";

/* Import the design system's predefined styles, tokens, and theme layers */
@import "@szum-tech/design-system/tailwind/global.css";

/* Specify source path to allow Tailwind's JIT scanner to pick up the component classes */
@source "../node_modules/@szum-tech/design-system";

For additional installation methods, refer to the Tailwind CSS Installation Docs.


πŸš€ Usage

🧩 Components

All available components, contexts, and specific providers are exported from the root @szum-tech/design-system.

import { Button, Card, CardHeader, CardTitle, CardContent } from "@szum-tech/design-system";

export default function App() {
  return (
    <Card>
      <CardHeader>
        <CardTitle>Welcome to Szum-Tech!</CardTitle>
      </CardHeader>
      <CardContent>
        <Button variant="primary">Click me</Button>
      </CardContent>
    </Card>
  );
}

πŸ–ΌοΈ Icons

The system provides an optimized endpoint for fetching icons (using tree-shaking best practices):

import { GoogleLogoIcon } from "@szum-tech/design-system/icons";

export function CustomButton() {
  return <Button leftIcon={<GoogleLogoIcon />}>Login with Google</Button>;
}

πŸͺ Hooks & Utils

Utilities and React hooks can be imported from their respective paths:

import { useMediaQuery } from "@szum-tech/design-system/hooks";
import { cn } from "@szum-tech/design-system/utils";

πŸŒ“ Theming (Light & Dark Mode)

The design system inherits native support for both light and dark themes. Theme switching relies on Tailwind CSS's selector strategies (custom variant .dark).

To activate the dark mode, append the .dark class to the <html> or <body> tag of your application:

import { useEffect, useState } from "react";
import { Button } from "@szum-tech/design-system";

export default function ThemeToggle() {
  const [isDark, setIsDark] = useState(false);

  useEffect(() => {
    if (isDark) {
      document.documentElement.classList.add("dark");
    } else {
      document.documentElement.classList.remove("dark");
    }
  }, [isDark]);

  return <Button onClick={() => setIsDark(!isDark)}>Toggle to {isDark ? "Light" : "Dark"} Mode</Button>;
}

πŸ“š Documentation

Detailed documentation and an interactive component sandbox is generated via Storybook. View it here:

πŸ‘‰ Szum-Tech Design System Docs


πŸ› οΈ Developer Info

Core Dependencies

UI primitives & icons

radix-ui @base-ui/react lucide-react

Styling & variants

class-variance-authority clsx tailwind-merge tailwindcss-animate

Interactions & motion

motion @dnd-kit/core embla-carousel-react sonner

Peer Dependencies

NPM dev or peer Dependency Version NPM dev or peer Dependency Version NPM dev or peer Dependency Version

Commands

For running the environment locally:

  • Build: npm run build
  • Storybook: npm run storybook:dev
  • Lint: npm run lint
  • Test: npm run test or npm run test:ui

πŸ““ Changelog

We use Semantic Release for semantic versioning. For a complete list of updates, please see the CHANGELOG.md.


πŸ“œ License

Available under the terms of the MIT license.

About

Design system supported by tailwindcss library, it allows the creation of applications supporting light and dark themes, shares UI React Components and a color palette in compliance with the Szum-Tech standards.

Topics

Resources

Stars

12 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages