JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 85
  • Score
    100M100P100Q76189F
  • License ISC

The official React based Loops design system

Package Exports

  • @useloops/design-system-19
  • @useloops/design-system-19/BrandCore
  • @useloops/design-system-19/BrandCore/Icon
  • @useloops/design-system-19/Marketing
  • @useloops/design-system-19/Marketing/PlanFeatureTable
  • @useloops/design-system-19/Marketing/PlanTierCard
  • @useloops/design-system-19/Marketing/TickGroup
  • @useloops/design-system-19/Platform
  • @useloops/design-system-19/Platform/AIInsight
  • @useloops/design-system-19/Platform/AISummary
  • @useloops/design-system-19/Platform/AIWrittenByLockUp
  • @useloops/design-system-19/Platform/AiContentContainer
  • @useloops/design-system-19/Platform/AssetItem
  • @useloops/design-system-19/Platform/AuthContainerSurface
  • @useloops/design-system-19/Platform/ClipboardCopyingOverlay
  • @useloops/design-system-19/Platform/CommentCard
  • @useloops/design-system-19/Platform/DataPointInfo
  • @useloops/design-system-19/Platform/DemographicSelectionSection
  • @useloops/design-system-19/Platform/EmojiListItem
  • @useloops/design-system-19/Platform/EmojiQuestionEditorOption
  • @useloops/design-system-19/Platform/EmptyStateCard
  • @useloops/design-system-19/Platform/ExtendedTestStatus
  • @useloops/design-system-19/Platform/FilterCount
  • @useloops/design-system-19/Platform/FilterGroupAccordion
  • @useloops/design-system-19/Platform/FilterPyramidGraph
  • @useloops/design-system-19/Platform/FilterRow
  • @useloops/design-system-19/Platform/FilteredItemsCard
  • @useloops/design-system-19/Platform/ForgotYourPassword
  • @useloops/design-system-19/Platform/GraphBar
  • @useloops/design-system-19/Platform/Header
  • @useloops/design-system-19/Platform/KpiDataPopover
  • @useloops/design-system-19/Platform/KpiIndicator
  • @useloops/design-system-19/Platform/LinkExpired
  • @useloops/design-system-19/Platform/LoginForm
  • @useloops/design-system-19/Platform/LoopItem
  • @useloops/design-system-19/Platform/LoopItemEmpty
  • @useloops/design-system-19/Platform/MFACodeVerify
  • @useloops/design-system-19/Platform/Navigation
  • @useloops/design-system-19/Platform/OnboardingCard
  • @useloops/design-system-19/Platform/PaginationControl
  • @useloops/design-system-19/Platform/ProjectItem
  • @useloops/design-system-19/Platform/QuestionBlock
  • @useloops/design-system-19/Platform/QuestionLabel
  • @useloops/design-system-19/Platform/QuestionSelector
  • @useloops/design-system-19/Platform/ResetPassword
  • @useloops/design-system-19/Platform/SearchInput
  • @useloops/design-system-19/Platform/SectionHeader
  • @useloops/design-system-19/Platform/SentimentArrow
  • @useloops/design-system-19/Platform/SignUpForm
  • @useloops/design-system-19/Platform/SliderGraph
  • @useloops/design-system-19/Platform/Tab
  • @useloops/design-system-19/Platform/TestItem
  • @useloops/design-system-19/Platform/TestKPICard
  • @useloops/design-system-19/Platform/TestStatus
  • @useloops/design-system-19/Platform/VideoControls
  • @useloops/design-system-19/WebCore
  • @useloops/design-system-19/WebCore/Accordion
  • @useloops/design-system-19/WebCore/AnnualController
  • @useloops/design-system-19/WebCore/AuthFormHeader
  • @useloops/design-system-19/WebCore/Avatar
  • @useloops/design-system-19/WebCore/AvatarGroup
  • @useloops/design-system-19/WebCore/Badge
  • @useloops/design-system-19/WebCore/BrandBadge
  • @useloops/design-system-19/WebCore/Breadcrumb
  • @useloops/design-system-19/WebCore/BulletGraphic
  • @useloops/design-system-19/WebCore/Button
  • @useloops/design-system-19/WebCore/ButtonBase
  • @useloops/design-system-19/WebCore/Checkbox
  • @useloops/design-system-19/WebCore/CheckboxGroup
  • @useloops/design-system-19/WebCore/ColorBackgroundContainer
  • @useloops/design-system-19/WebCore/CreatableAutocomplete
  • @useloops/design-system-19/WebCore/CustomField
  • @useloops/design-system-19/WebCore/Differential
  • @useloops/design-system-19/WebCore/DropdownMenu
  • @useloops/design-system-19/WebCore/EmojiWrapper
  • @useloops/design-system-19/WebCore/ExpandableTypographyClamp
  • @useloops/design-system-19/WebCore/Flag
  • @useloops/design-system-19/WebCore/FormControlLabel
  • @useloops/design-system-19/WebCore/FormGenerator
  • @useloops/design-system-19/WebCore/GridOverlay
  • @useloops/design-system-19/WebCore/Html
  • @useloops/design-system-19/WebCore/HtmlParser
  • @useloops/design-system-19/WebCore/IconButton
  • @useloops/design-system-19/WebCore/IconButtonBase
  • @useloops/design-system-19/WebCore/IconButtonGroup
  • @useloops/design-system-19/WebCore/Image
  • @useloops/design-system-19/WebCore/InputFieldBase
  • @useloops/design-system-19/WebCore/InputLabel
  • @useloops/design-system-19/WebCore/InputLabelBase
  • @useloops/design-system-19/WebCore/InputLabelHelp
  • @useloops/design-system-19/WebCore/Label
  • @useloops/design-system-19/WebCore/Likert
  • @useloops/design-system-19/WebCore/Link
  • @useloops/design-system-19/WebCore/Loader
  • @useloops/design-system-19/WebCore/Logo
  • @useloops/design-system-19/WebCore/LoopsAiButton
  • @useloops/design-system-19/WebCore/Markdown
  • @useloops/design-system-19/WebCore/Menu
  • @useloops/design-system-19/WebCore/ModalLayout
  • @useloops/design-system-19/WebCore/NavigationButton
  • @useloops/design-system-19/WebCore/Nudge
  • @useloops/design-system-19/WebCore/NumberField
  • @useloops/design-system-19/WebCore/Pill
  • @useloops/design-system-19/WebCore/Popper
  • @useloops/design-system-19/WebCore/PoweredByWatermarkLogo
  • @useloops/design-system-19/WebCore/Progress
  • @useloops/design-system-19/WebCore/ProgressBar
  • @useloops/design-system-19/WebCore/Radio
  • @useloops/design-system-19/WebCore/RadioGroup
  • @useloops/design-system-19/WebCore/Rank
  • @useloops/design-system-19/WebCore/RankItem
  • @useloops/design-system-19/WebCore/RichTextField
  • @useloops/design-system-19/WebCore/Select
  • @useloops/design-system-19/WebCore/Skeleton
  • @useloops/design-system-19/WebCore/Slider
  • @useloops/design-system-19/WebCore/SortableList
  • @useloops/design-system-19/WebCore/StarRating
  • @useloops/design-system-19/WebCore/Surface
  • @useloops/design-system-19/WebCore/Switch
  • @useloops/design-system-19/WebCore/TextBarDivider
  • @useloops/design-system-19/WebCore/TextField
  • @useloops/design-system-19/WebCore/Textarea
  • @useloops/design-system-19/WebCore/Toast
  • @useloops/design-system-19/WebCore/Tooltip
  • @useloops/design-system-19/WebCore/TrialCard
  • @useloops/design-system-19/WebCore/Typography
  • @useloops/design-system-19/WebCore/UserMenu
  • @useloops/design-system-19/WebCore/VideoModal
  • @useloops/design-system-19/package.json
  • @useloops/design-system-19/theme
  • @useloops/design-system-19/utils

Readme

@useloops/design-system

The design system for the Loops platform and marketing website.

Generating new components

New components can be generated using npm run component.

Synchronising icons with Figma

  • Create a personal access token in Figma in Settings > Security > Personal access tokens
  • Create .env file in scripts/useloops-icon-generator/.env
  • Install packages: cd scripts/useloops-icon-generator && npm install
  • Run npm run icons from the root dir
  • Check the Brand Core/Icons story in storybook, verify expected icons have been updated

Importing from @useloops/design-system

This package now supports both barrel imports and individual component imports for better tree-shaking and reduced bundle sizes.

Import Methods

1. Barrel Import (Default - imports everything)

import { Button, Avatar, Typography } from '@useloops/design-system';

2. System-Level Imports

Import all components from a specific system:

// WebCore components
import { Button, Avatar, Typography } from '@useloops/design-system/WebCore';

// Platform components
import { Navigation, Header, KpiIndicator } from '@useloops/design-system/Platform';

// BrandCore
import { Icon } from '@useloops/design-system/BrandCore';

// Marketing components
import { PlanTierCard, TickGroup } from '@useloops/design-system/Marketing';

// Theme
import { ThemeProvider, useTheme } from '@useloops/design-system/theme';

// Utils
import { emailValidation, passwordValidation } from '@useloops/design-system/utils';

3. Individual Component Imports (Best for tree-shaking)

Import components individually for optimal bundle size:

import Button from '@useloops/design-system/WebCore/Button';
import Avatar from '@useloops/design-system/WebCore/Avatar';
import Typography from '@useloops/design-system/WebCore/Typography';
import TextField from '@useloops/design-system/WebCore/TextField';

// Platform components
import Navigation from '@useloops/design-system/Platform/Navigation';
import KpiIndicator from '@useloops/design-system/Platform/KpiIndicator';

// BrandCore components
import Icon from '@useloops/design-system/BrandCore/Icon';

// Marketing components
import PlanTierCard from '@useloops/design-system/Marketing/PlanTierCard';

Benefits of Individual Imports

  • Smaller Bundle Size: Only include the components you actually use
  • Faster Build Times: Less code to process during bundling
  • Better Tree-Shaking: Modern bundlers can more easily eliminate unused code
  • Clearer Dependencies: Explicitly see which components are being used

Migration Guide

To migrate from barrel imports to individual imports:

Before:

import { Button, Avatar, Typography, TextField } from '@useloops/design-system';

After (Option 1 - System Level):

import { Button, Avatar, Typography, TextField } from '@useloops/design-system/WebCore';

After (Option 2 - Individual):

import Button from '@useloops/design-system/WebCore/Button';
import Avatar from '@useloops/design-system/WebCore/Avatar';
import Typography from '@useloops/design-system/WebCore/Typography';
import TextField from '@useloops/design-system/WebCore/TextField';

Available Systems

  • BrandCore: Brand-specific components (Icon)
  • Marketing: Marketing page components (PlanTierCard, TickGroup, PlanFeatureTable)
  • Platform: Platform-specific components (Navigation, Header, KpiIndicator, etc.)
  • WebCore: Core web components (Button, Avatar, TextField, Typography, etc.)
  • theme: Theme configuration and provider
  • utils: Utility functions and validation helpers

TypeScript Support

All import methods include full TypeScript support with proper type definitions:

import Button, { ButtonProps } from '@useloops/design-system/WebCore/Button';
import { ThemeProvider } from '@useloops/design-system/theme';