Skip to content

deanterm/terminus-ui

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Terminus UI Library

The library of UI components used for Terminus applications.

CircleCI codecov DavidDM DavidDM Dev
semantic-release Renovate MIT License ZenHub
NPM version Github release Library size
components pipes services style helpers validators


Table of Contents

Library Purpose

This library was created to assist Terminus engineers in maintaining a consistent experience across applications while following a unified design language.

The library is open source with the hopes that others may find solutions and ideas here, as we have done while browsing so many other repositories. While we want to make decisions that are best for everyone, in the end, the needs of the Terminus engineering team must come first.

If a deviation makes sense for the feature itself, but not for Terminus, we support (and will assist in) abstracting the functionality out for generalization.

This library is heavily based on Material Design currently. This provides us a way to rely on very well thought out usability and accessibility decisions for areas we have not yet addressed internally. While we hold Material in high regard, we do not believe that all of their decisions are best for the Terminus UI specifically.

Documentation

The available features table contains links for functional and usage documentation for each feature.

Versioned Documentation and Demos

Available Features

  • πŸ”¨ started
  • βœ… available
  • πŸ’© deprecated

Components

Feature Notes Status Demo Docs Usage
alert
autocomplete An input with suggestions βœ… Demo Docs Usage
autofocus Focus a focusable element on load βœ… Demo Docs Usage
badge
button βœ… Demo Docs
breadcrumbs
card βœ… Demo Docs Usage
chart Charts, graphs etc βœ… Demo Docs Usage
chip Chip βœ… Demo Docs Usage
checkbox βœ… Demo Docs Usage
cohort-date-range CohortDateRange βœ… Demo Docs Usage
confirmation Add a confirmation step to any ts-button βœ… Demo Docs Usage
copy βœ… Demo Docs Usage
csv entry Manually enter CSV values βœ… Demo Docs Usage
datepicker See TsInputComponent βœ… Demo Docs Usage
date-range Dual inputs with calendar pop-ups βœ… Demo Docs Usage
dialog
divider
drawer Drawer βœ… Demo Docs Usage
expansion-panel Expansion panel with accordion & stepper functionality βœ… Demo Docs Usage
file-upload File upload with drag and drop βœ… Demo Docs Usage
icon Supported icons: https://material.io/icons βœ… Demo Docs Usage
icon-button βœ… Demo Docs Usage
input βœ… Demo Docs Usage
link βœ… Demo Docs Usage
loading overlay Overlay with loading spinner βœ… Demo Docs
login form Email/password with 'remember me' checkbox βœ… Demo Docs Usage
logo Variations of the official logo, certain colors available βœ… Demo Docs Usage
menu βœ… Demo Docs Usage
navigation Global navigation menu βœ… Demo Docs Usage
paginator Paging controls for collections βœ… Demo Docs Usage
pipes A collection of pipes for Angular βœ… Demo Docs
popover Popover βœ… Demo Docs Usage
progress
radio-group βœ… Demo Docs Usage
scrollbars Custom scrollars for both axis' βœ… Demo Docs Usage
search Input with search capabilities βœ… Demo Docs
select Classic select menu with optgroup support βœ… Demo Docs Usage
selection-list Classic select dropdown / autocomplete βœ… Demo Docs Usage
spacing Helpers for consistent spacing βœ… Demo Docs
sort Used by table for column sorting βœ… (see table demo) Docs Usage
table βœ… Demo Docs Usage
tabs Horizontal tab interface βœ… Demo Docs Usage
textarea See input βœ… (see input demo)
toggle βœ… Demo Docs Usage
tooltip βœ… Demo Docs

Pipes

πŸ“š Pipes Documentation
πŸŽͺ Pipes Demo

Pipe Notes Status
tsAbbreviateNumber Abbreviate a number βœ…
tsDate short, medium, extended, timestamp βœ…
tsRoundNumber Round a number to a specific precision βœ…
tsSentenceCase Convert string casing to sentence-case βœ…
tsTimeAgo Human-readable time span βœ…
tsTitleCase Title Case A String βœ…
tsTruncateAt Truncate a string, start, middle, end βœ…

Services

Feature Notes Status Demo Docs Usage
Validators Expose custom validation methods for reactive forms βœ… Demo Docs Usage

Available Validators

Name Purpose Status
creditCard A credit card number must be valid βœ…
domain A domain must be valid βœ…
email An email address must be valid βœ…
equalToControl A control's value must be equal to another control's value βœ…
greaterThan A number must be greater than another value βœ…
inCollection A value must be found in a collection βœ…
isInRange A number must be between two numbers βœ…
lessThan A number must be less than another value βœ…
lowercase A value must contain a minimum amount of lowercase characters βœ…
maxDate A date must be before a maximum date βœ…
minDate A date must be after a minimum date βœ…
numbers A value must contain a minimum amount of numbers βœ…
password A password must meet certain requirements βœ…
uppercase A value must contain a minimum amount of uppercase characters βœ…
url A URL must be valid βœ…

Constants

Feature Notes Status Demo Docs Usage
TS_SPACING Expose our spacing sizes in TypeScript βœ… Demo

Style Helpers

Feature Notes Status Docs
a11y Accessibility helpers βœ…
animation πŸ”¨
assets πŸ”¨
breakpoints βœ… Docs
colors βœ… Docs
cursors βœ… Docs
input-placeholder βœ…
layout βœ… Docs
opposite-direction Reverse a direction βœ…
shadows βœ… Docs
spacing βœ… Docs
triangle Create a triangle using CSS βœ…
typography βœ… Docs
z-index βœ… Docs

Installation

Install the library and required dependencies:

# Primary dependencies:
$ yarn add @terminus/ui @terminus/ngx-tools

# Peer dependencies that will need to be installed (needed by UI and tools libraries):
$ yarn add @angular/cdk @angular/material @angular/flex-layout@8.0.0-beta.26 date-fns @ngrx/effects @ngrx/store hammerjs

# Optional dependencies (needed if using the TsChartComponent):
$ yarn add @amcharts/amcharts4 @amcharts/amcharts4-geodata

Fonts and Typefaces

Add the following links to install the body fonts and icon fonts used by the library:

  <link href="https://fonts.googleapis.com/css?family=Roboto:400,500,700" rel="stylesheet">
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">

Global Styles

To use the global styles, import the CSS file into your stylesheets:

@import '@terminus/ui/terminus-ui.css'

SCSS Helpers

To use the provided SCSS helper methods/variables/mixins, import the helpers file from @terminus/ui:

@import '~@terminus/ui/helpers'

Contributing

View the contribution documentation and the development documentation.

Contributors

Thanks goes to these wonderful people (emoji key):

Benjamin Charity
Benjamin Charity

πŸ’» πŸ“– ⚠️ 🎨 πŸ€” πŸ‘€ πŸ”§
coreyterminator
coreyterminator

πŸ’»
Wendy
Wendy

πŸ› πŸ’» πŸ“– πŸ€” 🚧 πŸ‘€ ⚠️
Brian Malinconico
Brian Malinconico

πŸ› πŸ€”
David Harkness
David Harkness

πŸ’»
kal93
kal93

πŸ›
divyameher
divyameher

πŸ›
Devon Peet
Devon Peet

🎨 πŸ€”
dean jones
dean jones

πŸ’» πŸ€” ⚠️ 🎨 πŸ›
shani-terminus
shani-terminus

πŸ› πŸ’» πŸ“– πŸ’‘ πŸ‘€ ⚠️ πŸ€” 🚧 πŸ”§
edwin-terminus
edwin-terminus

πŸ› πŸ’» πŸ“– πŸ’‘ ⚠️

This project follows the all-contributors specification. Contributions of any kind welcome!

Project Resources

  • Semantic Release - Automatically release versioned release to NPM and generate a changelog in the Github tag.
  • Commitizen - Interactive cli for enforcing commit message format.
  • Commitizen VSCode Plugin - VSCode plugin for commitizen.
  • Doctoc - Generate documentation table of contents.
  • CodeCov - Code coverage reporting.

About

πŸ“š The Terminus UI Library.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 86.4%
  • CSS 9.1%
  • HTML 3.3%
  • Other 1.2%