@tamu-dor/aggieux-mui
v1.0.6
Published
AggieUX MUI react component library
Downloads
11
Readme
AggieUX MUI
A React component library built with Material-UI (MUI) components following Texas A&M University's AggieUX design system.
Features
- 🎨 AggieUX Design System: Components that follow Texas A&M's visual identity
- 🔧 TypeScript: Full TypeScript support with type definitions
- 📦 Tree Shaking: Optimized bundle size with ES modules
- 🎯 MUI Integration: Built on top of Material-UI for consistency
- 🧪 Testing: Comprehensive test suite with Vitest
- 📖 Documentation: Well-documented components with examples
Installation
npm install @tamu-dor/aggieux-muiyarn add @tamu-dor/aggieux-muipnpm add @tamu-dor/aggieux-muiComponents
AggieUXButton
A customized button component following AggieUX design guidelines.
AggieUXHeading
Typography component for consistent heading styles across your application.
AggieUXLottieLoader
An animated loading component using Lottie animations.
AggieUXGravatar
A profile picture component with Gravatar integration.
Quick Start
import React from "react";
import { AggieUXButton, AggieUXHeading } from "@tamu-dor/aggieux-mui";
function App() {
return (
<div>
<AggieUXHeading variant="h1">Welcome to AggieUX</AggieUXHeading>
<AggieUXButton variant="contained" color="primary">
Get Started
</AggieUXButton>
</div>
);
}
export default App;Theme Integration
The library includes a custom Aggie theme that can be used with MUI's ThemeProvider:
import { ThemeProvider } from "@mui/material/styles";
import { aggieTheme } from "@tamu-dor/aggieux-mui";
function App() {
return (
<ThemeProvider theme={aggieTheme}>
{/* Your app components */}
</ThemeProvider>
);
}Development
Prerequisites
- Node.js (v16 or higher)
- npm, yarn, or pnpm
Setup
- Clone the repository:
git clone https://github.com/tamu-edu/aggieux-mui.git
cd aggieux-mui- Install dependencies:
npm install- Start development server:
npm run devAvailable Scripts
npm run dev- Start development servernpm run build- Build the library for productionnpm run test- Run testsnpm run test:coverage- Run tests with coverage reportnpm run lint:scripts- Lint TypeScript filesnpm run format- Format code with Prettier
Building
To build the library:
npm run buildThis will generate:
- ES modules in
build/dist/ - TypeScript declarations
- Optimized bundle for production
Testing
The library uses Vitest for testing. Run tests with:
npm run testFor coverage reports:
npm run test:coverageDependencies
Runtime Dependencies
- React 19.1.0+
- Material-UI 7.2.0+
- Emotion (for styling)
- Lottie React Player (for animations)
Development Dependencies
- TypeScript
- Vite (build tool)
- Vitest (testing)
- ESLint + Prettier (code quality)
- Husky (git hooks)
Browser Support
This library supports all modern browsers that are compatible with React 19 and Material-UI 7.
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature/new-component - Make your changes
- Run tests:
npm run test - Run linting:
npm run lint:scripts - Commit your changes:
git commit -am 'Add new component' - Push to the branch:
git push origin feature/new-component - Submit a pull request
Code Style
This project uses:
- ESLint for code linting
- Prettier for code formatting
- Husky for pre-commit hooks
- Lint-staged for staged file linting
Code is automatically formatted on commit.
License
MIT © Matt Voss
Links
Changelog
1.0.0
- Initial release
- AggieUXButton component
- AggieUXHeading component
- AggieUXLottieLoader component
- AggieUXGravatar component
- Custom Aggie theme integration
- TypeScript support
- Full test coverage
