syncfusion-angular-linear-gauge
Create and customize Syncfusion Angular Linear Gauge components for displaying measurements and metrics. Use this skill when user needs to implement a linear gauge, display scalar values in a linear scale, create measurement interfaces, configure ranges and pointers, add annotations, handle user interactions, or customize gauge appearance. Covers installation, configuration, events, accessibility, printing, and internationalization.
What this skill does
# Implementing Syncfusion Angular Linear Gauge
The Linear Gauge is a component used to visualize measurements and metrics on a linear scale. It displays values in a horizontal or vertical bar with ranges, pointers, and labels for clear data representation.
## When to Use This Skill
- **Creating a gauge component**: Display scalar values on a linear scale
- **Measurement interfaces**: Show temperature, pressure, speed, or other metrics
- **Adding ranges**: Define colored zones for different value ranges
- **Configuring pointers**: Show multiple values with different pointer styles
- **Customizing appearance**: Modify colors, fonts, backgrounds, and animations
- **Handling interactions**: Add click, drag, or hover events
- **Adding annotations**: Include text or images to enhance the gauge
- **Exporting and printing**: Generate PNG, PDF, or SVG outputs
- **International support**: Enable i18n and RTL support
- **Accessibility**: Ensure WCAG compliance for accessible interfaces
## Documentation and Navigation Guide
Choose your reference based on what you need to accomplish:
### API Reference
๐ **Read:** [references/api-reference.md](references/api-reference.md)
### Getting Started
๐ **Read:** [references/getting-started.md](references/getting-started.md)
- Installation and npm package setup
- Importing Linear Gauge module
- Creating your first gauge component
- CSS theme imports
- Basic configuration
### Configuring Axes and Scales
๐ **Read:** [references/axis-and-scales.md](references/axis-and-scales.md)
- Axis properties and range setup
- Scale configuration and limits
- Major and minor tick marks
- Label formatting and positioning
- Multiple axes on a single gauge
### Adding Ranges and Pointers
๐ **Read:** [references/ranges-and-pointers.md](references/ranges-and-pointers.md)
- Creating and styling ranges
- Range animations and offsets
- Pointer types (marker and bar)
- Pointer animations and transitions
- Drag-enabled pointers for user input
- Multiple pointers on one gauge
### Customization and Appearance
๐ **Read:** [references/customization-and-appearance.md](references/customization-and-appearance.md)
- Container styling and sizing
- Color schemes and theme application
- Font and label customization
- Borders and shadow effects
- Background and gradient styling
- Custom label templates
### Interaction and Events
๐ **Read:** [references/interaction-and-events.md](references/interaction-and-events.md)
- Mouse event handling
- Click, hover, and drag interactions
- Event callbacks and listeners
- Form integration patterns
- Dynamic value updates from user input
### Advanced Features
๐ **Read:** [references/advanced-features.md](references/advanced-features.md)
- Print and export functionality (PNG, PDF, SVG)
- Annotations for additional information
- Animation configuration and timing
- Internationalization (i18n) setup
- Right-to-left (RTL) text support
- WCAG accessibility compliance
- Migrating from ej1 to ej2/ej3
### Responsive Design and Dimensions
๐ **Read:** [references/dimensions-and-responsive.md](references/dimensions-and-responsive.md)
- Container sizing and responsive layouts
- Dimension properties
- Print layout considerations
- Mobile-friendly gauge design
## Quick Start
```typescript
import { Component, OnInit } from '@angular/core';
import { LinearGaugeAllModule } from '@syncfusion/ej2-angular-gauges';
@Component({
selector: 'app-linear-gauge',
template: `
<ejs-lineargauge
[orientation]="'Horizontal'"
[container]="{ width: '100', height: '150' }">
<e-axes>
<e-axis [minimum]="0" [maximum]="100"
[majorTicks]="majorTicks"
[minorTicks]="minorTicks">
<e-ranges>
<e-range [start]="0" [end]="30" [color]="'#F6B53F'"></e-range>
<e-range [start]="30" [end]="70" [color]="'#0DC451'"></e-range>
<e-range [start]="70" [end]="100" [color]="'#F64C38'"></e-range>
</e-ranges>
<e-pointers>
<e-pointer [value]="45" [type]="'Bar'"></e-pointer>
</e-pointers>
</e-axis>
</e-axes>
</ejs-lineargauge>
`
})
export class LinearGaugeComponent implements OnInit {
majorTicks = { interval: 20 };
minorTicks = { interval: 5 };
ngOnInit(): void {
// Component initialized
}
}
```
## Common Patterns
### Pattern 1: Temperature Gauge
Display current temperature with hot/cold zones.
```typescript
<e-axis [minimum]="0" [maximum]="50">
<e-ranges>
<e-range [start]="0" [end]="15" [color]="'#3498db'" ></e-range>
<e-range [start]="15" [end]="30" [color]="'#2ecc71'" ></e-range>
<e-range [start]="30" [end]="50" [color]="'#e74c3c'" ></e-range>
</e-ranges>
<e-pointers>
<e-pointer [value]="currentTemp" [type]="'Marker'"></e-pointer>
</e-pointers>
</e-axis>
```
### Pattern 2: Interactive Gauge
Allow users to drag the pointer to change values.
```typescript
<e-pointer
[value]="gaugeValue"
[type]="'Bar'"
enableDrag=true
[markerType]="'Circle'"
(dragEnd)='dragEnd($event)'>
</e-pointer>
dragEnd(args: IPointerDragEventArgs): void {
this.gaugeValue = event.currentValue;
console.log('Gauge value changed to:', this.gaugeValue);
}
```
### Pattern 3: Multiple Pointers
Compare multiple values on the same scale.
```typescript
<e-pointers>
<e-pointer [value]="actualValue" [type]="'Bar'" [color]="'#0066cc'"></e-pointer>
<e-pointer [value]="targetValue" [type]="'Marker'" [color]="'#ff6600'"></e-pointer>
</e-pointers>
```
## Key Props and Configuration
| Property | Type | Purpose |
|----------|------|---------|
| `orientation` | 'Horizontal' \| 'Vertical' | Direction of the gauge |
| `container.width` | number | Gauge width (e.g., '100', '300') |
| `container.height` | number | Gauge height (e.g., '150') |
| `axes[].minimum` | number | Minimum value on scale |
| `axes[].maximum` | number | Maximum value on scale |
| `ranges[].start` | number | Range start value |
| `ranges[].end` | number | Range end value |
| `ranges[].color` | string | Range color (hex or named) |
| `pointers[].value` | number | Current pointer value |
| `pointers[].type` | 'Bar' \| 'Marker' | Pointer visual style |
| `animationDuration` | number | Enable pointer animations, if greater than 0 |
| `print()` | method | Export as PNG/PDF |
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.