@3dsource/source-ui-native
v3.9.7
Published
Angular components, SCSS styles and design tokens for 3dsource applications
Readme
@3dsource/source-ui-native
A design system foundation for 3D Source applications: standalone Angular components plus a self-contained SCSS style kit that works with any framework.
Overview
The library ships two things:
- Angular components -- standalone, signal-based,
OnPush— ready to drop into any Angular project. - SCSS styles & design tokens -- can be imported into React, Vue, plain HTML, or any other stack. You write or copy the markup yourself (snippets available in the demo app), and the styles take care of the rest.
Installation
Requirements:
- Node.js 20 or newer for repository tooling
- Angular
>=19.0.0 <23.0.0when using the Angular components - RxJS
>=7.8.0 <8.0.0
npm install @3dsource/source-ui-nativeAngular and RxJS are not declared as package dependencies. Applications using the Angular components must provide compatible Angular and RxJS versions. The SCSS style kit can be consumed without Angular.
Usage
Importing Styles
Add the following import to your main styles file:
@use '../node_modules/@3dsource/source-ui-native/styles/source.ui.native.scss';Wrap the application (or the area that uses the design system) in the scope class used by the tokens and typography:
<body class="section_3dsourcecom">
<app-root></app-root>
</body>Using Components
Import the desired component and add it to your component's imports:
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { SourceButtonComponent } from '@3dsource/source-ui-native';
@Component({
selector: 'app-example',
imports: [SourceButtonComponent],
template: `<src-button weight="primary" size="md">Click Me</src-button>`,
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class ExampleComponent {}Available Components
UI Elements
- src-badge - Display badges and tags
- src-banner - Show notification banners
- src-button - Customizable button component
- src-copyright - Display copyright information
- src-divider - Horizontal divider for lists
- src-hint - Show hints or error messages
- src-icon-button - Display icon button
- src-loading - Loading indicator
- src-logo-loading - Loading indicator with logo
- src-modal-native - Modal component and service for simple modals
- src-slider - Simple slider component
- src-tile - Image thumbnail tile for previews, presets, and option selectors
- src-toolbar - CSS-only inline container for grouping buttons
- Basic styles for lists, form elements, overlays
Native modals are opened with SourceModalNativeService. Import
SourceOverlayContainerComponent and place <src-overlay-container /> inside
the .section_3dsourcecom scope to host them.
Component Examples
Button Component
<src-button weight="primary" size="md">Click Me</src-button>Badge Component
<src-badge context="info">Info</src-badge>Loading Component
import { SourceLoadingComponent } from '@3dsource/source-ui-native';<src-loading [size]="64" backgroundStrokeColor="#e0f8ee" progressStrokeColor="#007a5c" />Customization
Components can be customized by overriding global CSS variables or by setting values for particular components variables. Whole table of CSS custom properties is available in the documentation site
:root {
--src-color-primary-500: #3f51b5;
--src-text-body-main: #fff;
}.src-button {
--srcButtonBgColor: #3f51b5;
--srcButtonBorderRadius: 6px;
--srcButtonFontColor: #fff;
--srcButtonPaddings: 8px 16px;
}You can see all available options and examples in documentation
Browser Support
The demo that exercises these components uses the root Browserslist target
baseline widely available on 2026-05-07. The package does not declare a
separate browser matrix; the consuming application's Angular/build
configuration controls its final browser target.
Repository development
Run commands from the repository root:
pnpm source-ui-native:build
pnpm source-ui-native:compile-styles
pnpm source-ui-native:release:patchbuild runs ng-packagr and produces both expanded and minified CSS bundles.
The release command performs verification, changes the package version and
publishes the verified tarball to npm.
