How mobilelive-inc/friday-design-system works
Purpose and Shape
This is a multi-package design-system repository centered on reusable UI components, themes, icons, and documentation/demo surfaces. It supports Angular, React/“rx-xis”, and framework-neutral static CSS/HTML assets. The supplied root README is placeholder content; the repository structure is the primary architectural evidence.
Workspace and Entry Points
The workspace is organized as an Nx-style monorepo, with libraries under libs/ and executable/demo applications under apps/. Key public library entry points are:
• libs/angular/src/index.ts
• libs/rx-xis/src/index.ts
• libs/ui/src/index.ts
Browser application bootstraps are apps/angular-demos/src/main.ts, apps/angular-sign-up/src/main.ts, and apps/rx-xis-app/src/main.tsx. A smaller standalone React-oriented package also exposes src/index.js.
Angular Component System
libs/angular is the main Angular implementation and composition boundary. libs/angular/src/lib/angular.module.ts aggregates Angular-facing capabilities, while individual component directories provide implementation, templates/styles, and public behavior. Representative components include:
• libs/angular/src/lib/button/button.component.ts
• libs/angular/src/lib/form-field/form-field.component.ts
• libs/angular/src/lib/input/input.directive.ts
More stateful/overlay-oriented components establish internal service and lifecycle boundaries: libs/angular/src/lib/modal/modal.service.ts, libs/angular/src/lib/modal/modal-ref.ts, and libs/angular/src/lib/modal/modal-container.ts. Shared form, template, tooltip, and error abstractions reside under libs/angular/src/lib/shared/.
React Component System
The React implementation exists in both the distributable libs/rx-xis package and the richer apps/rx-xis-app component/demo area. The former exposes a compact library API through libs/rx-xis/src/index.ts; its button is implemented at libs/rx-xis/src/actions/button/button.tsx. The app-level component catalog is exported from apps/rx-xis-app/src/components/index.js and uses centralized theme primitives:
• apps/rx-xis-app/src/components/theme/defaultTheme.js
• apps/rx-xis-app/src/components/theme/globalStyles.js
• apps/rx-xis-app/src/components/theme/colors.js
Controls such as inputs, selects, radios, toggles, and tooltips consume those styling primitives, separating reusable control APIs from application/demo presentation.
Styling, Themes, and Icons
libs/static is the framework-neutral styling pipeline: SCSS source and design tokens compile into checked-in CSS artifacts under libs/static/css/. Its root stylesheet composition begins at libs/static/src/scss/index.scss; tokens are defined in locations such as libs/static/src/scss/settings/_colors.scss and libs/static/src/styles/css-variables.scss. Theme-specific overrides are represented by libs/static/theme/theme.scss.
Icons are a separate asset package rooted in libs/icons/icomoon.json and libs/icons/icomons_styles.scss, with font files in libs/icons/fonts/. Angular and React packages include corresponding icon/font consumption assets, rather than relying on an external icon service.
Demonstration and Documentation Surfaces
Angular demos exercise the Angular library through a component gallery application rooted at apps/angular-demos/src/app/app.module.ts and apps/angular-demos/src/app/app.component.ts. A separate sign-up application, rooted at apps/angular-sign-up/src/app/app.module.ts, demonstrates form composition and theme switching.
Storybook is a primary component-documentation runtime, configured globally in .storybook/main.js and independently for Angular in libs/angular/.storybook/main.js and the React demo app in apps/rx-xis-app/.storybook/main.js. Stories are colocated with components where appropriate, for example libs/angular/src/lib/button/button.component.stories.ts.
Build, Test, and Delivery Boundaries
Angular builds are governed by angular.json and library package metadata in libs/angular/src/ng-package.json. React/static packages use Webpack and, in the React app, Rollup (apps/rx-xis-app/webpack.config.js, apps/rx-xis-app/rollup.config.js); the root standalone package has webpack.config.js and rollup.config.js.
Jest is the unit-test runtime, while Cypress E2E projects validate browser-facing Angular applications, notably apps/angular-e2e/cypress.json and apps/angular-sign-up-e2e/cypress.json. GitHub Actions provides CI execution through .github/workflows/code-Inspector.yml; no backend, database, or remote application service is evident from the tree.
Main entry points: angular.module.ts Angular module · index.ts Angular public API · webpack.config.js React/static bundling · button.component.ts Angular controls
Components 20
Angular system
- Angular public API
libs/angular/src/index.ts - Angular module · Aggregates Angular-facing capabilities.
libs/angular/src/lib/angular.module.ts - Angular controls · Buttons and form-field/input APIs.
libs/angular/src/lib/button/button.component.ts - Modal subsystem · Service, reference, and container lifecycle boundary.
libs/angular/src/lib/modal/modal.service.ts - Angular shared abstractions · Form, template, tooltip, and error primitives.
React system
- rx-xis public API
libs/rx-xis/src/index.ts - rx-xis button
libs/rx-xis/src/actions/button/button.tsx - React component catalog · Reusable demo-area controls and presentation components.
apps/rx-xis-app/src/components/index.js - React theme primitives · Default theme, global styles, and colors.
apps/rx-xis-app/src/components/theme/defaultTheme.js
Styles and icons
- Static SCSS and tokens · Framework-neutral stylesheet composition and design tokens.
libs/static/src/scss/index.scss - Compiled static CSS · Checked-in framework-neutral CSS output.
- Theme overrides
libs/static/theme/theme.scss - Icon package · IcoMoon definitions, styles, and bundled font files.
libs/icons/icomoon.json
Demos and docs
- Angular component gallery
apps/angular-demos/src/app/app.module.ts - Angular sign-up demo · Demonstrates form composition and theme switching.
apps/angular-sign-up/src/app/app.module.ts - React demo app
apps/rx-xis-app/src/main.tsx - Storybook documentation · Component stories are rendered across framework configurations.
.storybook/main.js
Other components
- Angular packaging · Angular workspace build and library package metadata.
angular.json - React/static bundling · Webpack and Rollup package builds.
apps/rx-xis-app/webpack.config.js - GitHub Actions CI · Runs repository automation.
.github/workflows/code-Inspector.yml
Connections 21
- Angular public API → Angular module: exports
- Angular module → Angular controls: composes
- Angular module → Modal subsystem: composes
- Angular module → Angular shared abstractions: uses
- rx-xis public API → rx-xis button: exports
- React component catalog → React theme primitives: uses
- Static SCSS and tokens → Compiled static CSS: compiles to
- Theme overrides → Static SCSS and tokens: overrides
- Angular controls → Icon package: consumes
- rx-xis button → Icon package: consumes
- Angular component gallery → Angular public API: exercises
- Angular sign-up demo → Angular public API: composes
- Angular sign-up demo → Theme overrides: switches
- React demo app → React component catalog: renders
- Storybook documentation → Angular controls: documents
- Storybook documentation → React component catalog: documents
- Angular packaging → Angular public API: packages
- React/static bundling → rx-xis public API: bundles
- React/static bundling → React demo app: bundles
- GitHub Actions CI → Angular packaging: runs
- GitHub Actions CI → React/static bundling: runs