@inmotioncloud/shared-components
v0.3.0
Published
Shared React components for InMotion Cloud applications, including Header, Footer, Button, and SocialLinks components with built-in Tailwind CSS styling.
Downloads
57
Readme
@inmotioncloud/shared-components
Shared React components for InMotion Cloud applications, including Header, Footer, Button, and SocialLinks components with built-in Tailwind CSS styling.
Installation
NPM Package
npm install @inmotioncloud/shared-componentsGit Submodule
To add this repository as a git submodule:
git submodule add https://github.com/inmotioncloud/imcloud-shared-components.git src/shared-componentsTo clone a repository that already has this submodule:
git clone --recurse-submodules <your-repo-url>Or if you've already cloned the repository:
git submodule init
git submodule updateTo update the submodule to the latest version:
git submodule update --remoteRequirements
Peer Dependencies
react^19.0.0react-dom^19.0.0react-router-dom^6.0.0 || ^7.0.0
Tailwind CSS
This package uses Tailwind CSS classes. Ensure your project has Tailwind CSS configured with the following CSS variables for theming:
:root {
--primary: /* your primary color */;
--primary-foreground: /* your primary foreground color */;
--background: /* your background color */;
--ring: /* your focus ring color */;
/* ... other Tailwind CSS variables */
}Usage
Header
A responsive header component with navigation, mobile menu support, and customizable sections.
import { Header } from "@inmotioncloud/shared-components";
function App() {
return (
<Header
sections={[
{ id: "features", label: "Features" },
{ id: "pricing", label: "Pricing" },
]}
supportHref="/support"
blogHref="/blog"
ctaLabel="Get Started"
onCtaClick={() => console.log("CTA clicked")}
/>
);
}Header Props
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| sections | HeaderSection[] | Default sections | Navigation sections |
| supportHref | string \| null | "/support" | Support link URL |
| supportLabel | string | "Support" | Support link text |
| blogHref | string \| null | "/blog" | Blog link URL |
| blogLabel | string | "Blog" | Blog link text |
| ctaLabel | string | "Sign Up For Updates" | CTA button text |
| onSectionNavigate | (sectionId: string) => void | - | Custom section navigation handler |
| onCtaClick | () => void | - | CTA button click handler |
| logoSrc | string \| object | Default logo | Logo image source |
| logoAltText | string | "IMHCloud Logo" | Logo alt text |
| className | string | - | Additional header classes |
| containerClassName | string | - | Container classes |
| navLinkClassName | string | - | Navigation link classes |
Footer
A footer component with social links, legal links, and customizable content.
import { Footer } from "@inmotioncloud/shared-components";
function App() {
return (
<Footer
title="My Company"
tagline="Building the future"
copyright="Copyright 2025 My Company"
/>
);
}Footer Props
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| title | ReactNode | "InMotion Cloud" | Footer title |
| tagline | ReactNode | "The AI First Managed Cloud Platform" | Footer tagline |
| additionalSocialLinks | AdditionalSocialLink[] | - | Additional social links |
| copyright | ReactNode | Default copyright | Copyright text |
| legalLinks | LegalLink[] | Default legal links | Legal links |
| legalNotice | ReactNode | Default notice | Legal notice text |
| className | string | - | Additional footer classes |
| containerClassName | string | - | Container classes |
Button
A versatile button component with multiple variants and sizes using class-variance-authority.
import { Button } from "@inmotioncloud/shared-components";
function App() {
return (
<>
<Button variant="primary">Primary Button</Button>
<Button variant="outline" size="lg">Large Outline</Button>
<Button variant="ghost" asChild>
<a href="/link">Link Button</a>
</Button>
</>
);
}Button Props
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| variant | "default" \| "destructive" \| "outline" \| "secondary" \| "ghost" \| "link" \| "hero" \| "primary" \| "cta" \| "nav" | "default" | Button style variant |
| size | "default" \| "sm" \| "lg" \| "icon" | "default" | Button size |
| asChild | boolean | false | Render as child element |
SocialLinks
A social media links component with built-in icons for common platforms.
import { SocialLinks, defaultSocialLinks } from "@inmotioncloud/shared-components";
function App() {
return (
<SocialLinks
align="center"
iconSize="w-6 h-6"
additionalLinks={[
{
label: "Discord",
href: "https://discord.gg/example",
icon: <MyDiscordIcon />,
},
]}
/>
);
}SocialLinks Props
| Prop | Type | Default | Description |
|------|------|---------|-------------|
| additionalLinks | AdditionalSocialLink[] | - | Additional social links with custom icons |
| align | "left" \| "center" \| "right" | "center" | Alignment of social links |
| iconSize | string | "w-5 h-5" | Tailwind classes for icon size |
| gap | string | "gap-4" | Tailwind classes for spacing |
| className | string | - | Additional container classes |
Built-in Platforms
The component includes icons for: YouTube, X (Twitter), LinkedIn, Instagram, Reddit, and Facebook.
Building
npm run buildThis compiles TypeScript and copies assets to the dist directory.
Changelog
0.3.0 (2026-02-12)
- Add Chat widget component
0.1.9 (2025-12-10)
- Update package version
0.1.8 (2025-12-10)
- Update npm version
- Add managed-services to header navigation
0.1.7 (2025-12-10)
- Update package version number
0.1.6 (2025-12-10)
- Update build version
- Revert back to React 19 peer dependencies
0.1.5 (2025-12-10)
- Temporarily revert to React 18 for Lovable compatibility
0.1.4 (2025-12-08)
- Add extra legal links to footer (DPA, Accessibility Statement, Legal Inquiries, Do Not Sell My Personal Information, Limit Use of Sensitive Personal Information)
- Update package.json configuration
0.1.3 (2025-11-21)
- Fix ADA compliance changes
- Add cookie settings button to footer
- Fix dependencies
0.1.2 (2025-11-06)
- Change branding from "IMCloud" to "InMotion Cloud"
- Update header with new branding
- Update package version
0.1.1 (2025-11-04)
- Add mobile header with responsive hamburger menu
- Update build process
0.1.0 (2025-10-30)
- Initial release
- Export Header, Footer, and Button components
- Add react-router-dom shim for compatibility
- Add asset copy script for build process
- Fix logo imports
- Update scrollTo methods for smooth navigation
- Rely on button variant for CTA styling
License
Proprietary - InMotion Hosting, Inc.