npm.io
4.1.0 • Published 2 weeks ago

@sproutsocial/seeds-react-theme

Licence
MIT
Version
4.1.0
Deps
0
Vulns
0
Weekly
0

@sproutsocial/seeds-react-theme

The Seeds design system semantic theme layer, providing meaningful component-oriented design tokens.

Overview

This package provides the Seeds theme in multiple formats for use across different frameworks and platforms:

  • React (styled-components) - Original theme provider for React applications
  • Tailwind CSS - Preset for Tailwind-based projects
  • CSS Custom Properties - For Angular, Vue, Svelte, vanilla HTML/CSS
  • SCSS Variables - For legacy SCSS-based projects

All formats support light and dark mode out of the box.

Installation

npm install @sproutsocial/seeds-react-theme
# or
yarn add @sproutsocial/seeds-react-theme

Usage

React (styled-components)
import { ThemeProvider } from 'styled-components';
import theme from '@sproutsocial/seeds-react-theme';

function App() {
  return (
    <ThemeProvider theme={theme}>
      <YourApp />
    </ThemeProvider>
  );
}
Tailwind CSS

See MULTI_FRAMEWORK_GUIDE.md for complete documentation.

Quick start:

// tailwind.config.js
module.exports = {
  presets: [
    require('@sproutsocial/seeds-react-theme/dist/tailwind-preset'),
  ],
  content: ['./src/**/*.{js,jsx,ts,tsx}'],
}
<button className="bg-color-button-primary-bg-base text-color-button-primary-text-base px-space-400 py-space-300 rounded-radius-500">
  Primary Button
</button>
CSS Custom Properties
<link rel="stylesheet" href="node_modules/@sproutsocial/seeds-react-theme/dist/theme.css">

<button style="
  background: var(--color-button-primary-bg-base);
  color: var(--color-button-primary-text-base);
  padding: var(--space-400);
  border-radius: var(--radius-500);
">
  Primary Button
</button>
Angular / Vue / Svelte

Import the CSS file in your application entry point:

// Angular: styles.css or styles.scss
@import '@sproutsocial/seeds-react-theme/dist/theme-all.css';

// Vue: main.js
import '@sproutsocial/seeds-react-theme/dist/theme-all.css';

// Svelte: App.svelte or +layout.svelte
import '@sproutsocial/seeds-react-theme/dist/theme-all.css';

Then use CSS variables in your component styles:

.my-button {
  background: var(--color-button-primary-bg-base);
  color: var(--color-button-primary-text-base);
  padding: var(--space-400);
}

Dark Mode

Tailwind CSS

Use the dark mode preset:

module.exports = {
  presets: [
    require('@sproutsocial/seeds-react-theme/dist/tailwind-preset-dark'),
  ],
}
CSS Variables

Add the data-theme="dark" attribute to your HTML element:

<html data-theme="dark">
  <!-- All CSS variables automatically switch to dark mode values -->
</html>

Toggle with JavaScript:

// Enable dark mode
document.documentElement.setAttribute('data-theme', 'dark');

// Disable dark mode
document.documentElement.removeAttribute('data-theme');

Available Tokens

Colors
  • Button colors (primary, secondary, destructive, etc.)
  • Text colors (headline, body, subtext, inverse)
  • Link colors
  • Container backgrounds and borders
  • Form backgrounds and borders
  • Icon colors
Spacing
  • 0, 100, 200, 300, 350, 400, 450, 500, 600
Typography
  • Font sizes and line heights (100 - 1200)
  • Font families
  • Font weights (normal, semibold, bold, extrabold)
Other
  • Border radius values
  • Box shadows
  • Motion (easing, duration)

Package Exports

{
  ".": "@sproutsocial/seeds-react-theme", // React theme
  "./dist/tailwind-preset": "Tailwind preset (light)",
  "./dist/tailwind-preset-dark": "Tailwind preset (dark)",
  "./dist/theme.css": "CSS variables (light)",
  "./dist/theme-dark.css": "CSS variables (dark)",
  "./dist/theme-all.css": "CSS variables (light + dark)"
}

Documentation

  • Multi-Framework Guide - Complete guide for using Seeds theme with Tailwind, Angular, Vue, Svelte, and HTML/CSS
  • Changelog - Version history and changes

Development

Build all theme formats:

yarn build

Build specific formats:

yarn build:tailwind  # Build Tailwind presets
yarn build:css       # Build CSS variables

License

MIT

Contributing

See the main Seeds repository for contribution guidelines.