A comprehensive Angular UI component library that provides a complete application shell framework with pre-built components, layouts, and utilities for building enterprise applications.
NgxAppShell is an Angular library that delivers a ready-to-use application shell with:
- Pre-built UI components (headers, layouts, breadcrumbs, chips, filters, icons, cards, etc.)
- Platform-level layouts and navigation structures
- Reusable directives and services
- Azure authentication integration support
- NATS notifications system support
- Consistent styling and theming capabilities
The library is designed to accelerate development by providing standardized, tested components that follow best practices and maintain visual consistency across applications.
This monorepo contains two main projects:
Located in projects/ngx-appshell/, this is the core library that gets packaged and distributed as an npm package.
Key directories:
src/lib/components/- Reusable UI componentssrc/lib/directives/- Custom Angular directivessrc/lib/models/- TypeScript interfaces and modelssrc/lib/screens/- Reusable UI screenssrc/lib/services/- Shared servicessrc/lib/styles/- Component styles and themesschematics/- Angular schematics for easy setup:ng-add- Initial library installationazure-login- Azure authentication setupnats-notifications- NATS notifications setup
Located in projects/ngx-appshell-example/, this is a full Angular application used for testing and developing the library components in a real application context.
Key directories:
src/app/- Example application implementationpublic/assets/- Icons and static assetspublic/config/- Application configurationpublic/fonts/- Custom font files
- Node.js (LTS version recommended)
- npm or yarn
- Angular CLI (
npm install -g @angular/cli)
# Install dependencies
npm install# Run the example application
npm run start:example
# Navigate to http://localhost:4200/The example application automatically uses the local version of the library, allowing you to develop and test changes in real-time without needing to build the library separately.
# Test the library
npm test
# or
ng test ngx-appshell
# Test the example application
ng test ngx-appshell-example# Build the library for distribution
npm run build-lib
# The build artifacts will be in dist/ngx-appshell/To publish the library to npm:
# Install dependencies
npm install
# Pack the library
npm run pack-lib
# Navigate to the distribution folder
cd dist/ngx-appshell
# Login to npm (follow the login process)
npm login
# Publish the package
npm publish --access publicNote: Make sure you have the necessary permissions to publish to the npm registry and that you've updated the version number in projects/ngx-appshell/package.json before publishing.
You can customize the appshell to match your brand identity by updating the following files in the example project:
public/assets/icons.json- Define your icon mappings and referencespublic/assets/icons/- Place your custom SVG icons here
public/fonts/- Add your custom font files (woff, woff2, ttf, etc.)src/_fonts.scss- Define your @font-face declarations and font variables. It is required to use 'AppShellTextFont' and 'AppShellHeadingFont' as font family since the application uses that reference.
Example font configuration:
@font-face {
font-family: 'YourCustomFont';
src: url('/fonts/your-font.woff2') format('woff2');
font-weight: normal;
font-style: normal;
}src/styles.scss- Global styles and theme overrides- Customize CSS variables, colors, and component styles to match your brand
The library provides Angular schematics to quickly add functionality:
# Add the library to your project
ng add ngx-appshell
# Add Azure authentication support
ng generate ngx-appshell:azure-login
# Add NATS notifications support
ng generate ngx-appshell:nats-notifications- Angular CLI:
ng helpor Angular CLI Documentation - For component documentation, refer to the example application at
projects/ngx-appshell-example/