Separator
separatoruiHorizontal or vertical visual divider — a `<div>` with the right ARIA role and a registry-token border color. Use between sections, list rows, and toolbar groups.
Installation
$pnpm dlx uipkge-ng@latest add separator$npx uipkge-ng@latest add separator$yarn dlx uipkge-ng@latest add separator$bunx uipkge-ng@latest add separatorManifest:
https://uipkge.dev/r/angular/separator.jsonInstalls to:src/app/components/ui/separator/Examples
Loading interactive previews…
Loading interactive previews…
Props
| Name | Type / Values | Default | Required |
|---|---|---|---|
orientation | 'horizontal''vertical' | horizontal | optional |
decorative | boolean | true | optional |
class | string | — | optional |
Used by
ad-spend-roi-dashboardai-code-review-assistantai-saas-command-centerannouncement-banner-splitannouncement-corner-toastannouncement-countdown-barapi-documentation-pagearticle-editor-toolbarassignment-submission-dropzoneaudio-waveform-transcriptaudit-event-streamauth-sign-inauth-sign-upauthor-bio-boxbank-account-connectorbefore-after-side-by-sidebefore-after-togglebenefits-enrollment-portalbento-asymmetric-gridbento-metrics-mixedbill-of-lading-viewerbilling-accountblog-post-card-gridboard-resolution-signoffbookmark-manager-gridcart-drawercase-studycase-study-featured-storycase-study-filterable-listcase-study-metric-cardscase-study-metric-comparisoncase-study-results-stripcash-flow-treasury-dashboardcdc-replication-streamcheckout-flowcloud-backup-schedulecode-diff-reviewcode-snippet-playgroundcold-chain-temp-monitorcoming-sooncommute-reimbursement-claimscomparison-migration-pathcomparison-vs-alternativescompensation-band-benchmarkingcompliance-soc2-readinesscontact-01contract-redline-diffcontractor-timesheet-approvalcookie-consentcookie-consent-bannercookie-consent-barcookie-consent-preferencescrm-sales-call-workbenchcrypto-wallet-portfoliocta-final-bandcta-split-panelcurrency-converter-widgetcustomer-journey-mapcustoms-clearance-trackerdaily-standup-summarydashboard-layoutdata-contract-governancedata-product-carddata-quality-metricsdatabase-migration-schema-diffdatabase-schema-viewerdecision-matrix-tabledefi-staking-yield-vaultdelivery-proof-carddemo-guided-tourdemo-sandbox-paneldeployment-pipelinedispatch-assignment-boarddns-record-managerdoctor-appointment-schedulerdriver-inspection-checklistemail-campaign-composeremail-template-previewerevent-calendar-dashboardexit-intentexit-intent-newsletterexit-intent-offerexit-interview-surveyfaq-contact-sidebarfeature-alternating-rowsfeature-full-bleed-rowsfeature-segmented-comparefeature-sticky-media-scrollfeature-tabbed-deepdivefeature-vertical-tabs-panefeatures-01features-2x2-spotlightfeatures-checklist-splitfeatures-icon-list-densefine-tuning-job-monitorflashcard-study-deckfooterfooter-01footer-brand-statementfooter-mega-newsletterfooter-minimal-rowfooter-sitemap-densefreelance-work-for-hire-contractfreight-quote-calculatorheaderheader-announcement-stackheader-centered-logoheader-mega-menuheader-search-commandheader-transparent-scrollhotel-booking-reservationhow-it-works-before-afterhow-it-works-tabbed-stepshow-it-works-timelineinfluencer-campaign-cardinsurance-eligibility-checkerintegrations-connector-statusintegrations-featured-pairsintegrations-search-directoryinventory-reorder-forecastinvoice-creator-wizardkafka-stream-monitorlab-results-viewerlakehouse-table-optimizerleaflet-neighborhood-walkscore-cardlease-agreement-signlegal-policy-pageloan-calculatorlogin-01login-02logo-cloud-grayscalelogosloyalty-rewards-tier-hubmaintenance-request-ticketmedia-asset-gallerymeeting-agenda-notesmultimodal-vision-playgroundnda-agreement-generatorneighborhood-walkscore-cardnewsletternewsletter-signupnewsletter-split-previewonboarding-equipment-provisioningorder-confirmationpacking-slip-generatorpassword-generator-widgetpatient-intake-formpatient-medical-recordpeer-discussion-forumperformance-review-matrixpodcast-audio-playerpomodoro-focus-timerprescription-refill-managerpress-kit-brand-assetsprice-drop-alert-cardpricing-01pricing-calculatorpricing-matrix-groupedpricing-matrix-plan-cardspricing-single-planprivacy-data-export-portalprivacy-policy-generatorproduct-comparison-drawerproduct-detail-pageproduct-grid-pageprompt-playgroundproperty-amenities-gridproperty-listing-cardquiz-assessment-runnerrag-pipeline-visualizerratings-award-wallratings-review-badgesratings-star-summaryrecord-detail-pagerecruitment-candidate-pipelinereferral-program-widgetregister-01resources-category-gridresources-featured-listresources-teaser-gridreturn-merchandise-inspectionreverse-etl-sync-managerroi-calculator-inputssafe-note-calculatorschema-drift-alert-boardsecurity-certification-bandsecurity-data-flowsecurity-incident-timelinesecurity-trust-center-gridseo-audit-checklistsession-device-managersettings-pageshipment-tracking-timelineshipping-label-printersidebarskill-assessment-radarsmart-inbox-triagesocial-media-post-schedulersso-identity-provider-configstats-band-sparklinessticky-ctasticky-cta-barsticky-cta-reading-progressstream-processing-flink-topologysubpoena-legal-hold-managersubscription-churn-analyticssupport-ticket-detailsynthetic-data-generatortelehealth-video-roomtenant-rent-ledgertestimonialtestimonial-logo-quote-rowtestimonial-single-featuredtime-tracker-timesheettraining-compliance-trackertriage-queue-dashboardusage-metering-dashboarduse-casesuse-cases-role-cardsuse-cases-scenario-walkthroughuser-profile-pageutm-campaign-buildervector-embeddings-inspectorvirtual-tour-panoramavitals-tracker-chartwaitlist-referral-positionwarehouse-inventory-gridwebhook-tester
Files installed (2)
src/app/components/ui/separator/separator.component.ts1.5 kB
import { Component, Input, booleanAttribute, ChangeDetectionStrategy } from '@angular/core' import { cn } from '@/lib/utils' export type SeparatorOrientation = 'horizontal' | 'vertical' /** * Angular port of UIPKGE Separator (React `Separator` on Radix Separator). Radix semantics: * `decorative` (default true) renders role="none" so assistive tech skips it; a semantic * separator gets role="separator" and `aria-orientation` only when vertical (horizontal is * the ARIA default). `data-orientation` always drives the sizing classes. The host puts * `block` first so the h-px / w-px sizing applies on the custom element. */ @Component({ changeDetection: ChangeDetectionStrategy.Eager, selector: 'ui-separator, [ui-separator]', standalone: true, host: { '[attr.data-uipkge]': '""', '[attr.data-slot]': '"separator"', '[attr.role]': 'decorative ? "none" : "separator"', '[attr.aria-orientation]': '!decorative && orientation === "vertical" ? "vertical" : null', '[attr.data-orientation]': 'orientation', '[class]': 'hostClass', }, template: ``, }) export class UiSeparatorComponent { @Input() orientation: SeparatorOrientation = 'horizontal' @Input({ transform: booleanAttribute }) decorative = true @Input('class') className?: string get hostClass(): string { return cn( 'block bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px', this.className, ) } }src/app/components/ui/separator/index.ts0.1 kB
export { UiSeparatorComponent, type SeparatorOrientation } from './separator.component'
Raw manifest:https://uipkge.dev/r/angular/separator.json