-
Copyright © 2016 - 2017 Teradata. All rights reserved
+
+
+
+
+
+
FAQs
+
+
+
+ Covalent is a UI Platform that combines proven design language with a comprehensive web framework, built on Angular & Angular-Material (Design).
+ Covalent gives you a quickstart to build a modern web application UI and ensure consistency across your enterprise products.
+ Some of Covalent's most important features include:
+
+ - Angular-Material
+ - Angular Command-line interface (CLI) for builds, deploys, testing & more.
+ - Drastically simplified interface layouts (for dashboards, lists, etc).
+ - Custom web components (stepper, file upload, expansion panels & more).
+ - 750+ Material Design icons.
+ - Style Guide with brand standards, color palettes & tips.
+ - Design Patterns for consistent, reusable web components such as cards, forms, etc.
+ - Testing Tools for both unit tests and end-to-end tests.
+ - Quickstart app to get started right away!
+
+
+
+
+
+ We follow Atomic Design principles and apply them to Angular-Material web components. In Atomic Design, several atoms (such as buttons and inputs) form molecules (such as a search box).
+ Our covalent bonds are the molecules that we're building on top of Angular-Material. Also, covalent bonds are liquid and conform to their container, just like our responsive layouts!
+
+
+
+
+ By using Covalent as a unified UI Platform there are a ton of benefits. Here are some highlights:
+
+ - Angular-Material doesn't have a full app quickstart. Covalent does.
+ - Covalent provides the Angular-Material (AngularJS) flexbox layout that was removed in Angular-Material (angular).
+ - Covalent provides several custom components such as steppers & expansion panels.
+ - Custom layouts & components in Covalent are developed specifically for enterprise solutions.
+ - Covalent provides a selection of UI layouts out of the box.
+ - Our team is continuously adding tools like Syntax Highlighting & Markdown.
+ - Our team will always maintain native compatibility with Angular & Material
+ - Our team will always follow the principles of the official Material Design spec.
+
+
+
+
+
+ By adopting Material Design along with Angular, we get a style guide spec that is perfectly matched with an incredbly powerful and modern web framework, all for free.
+ Along with that, there are lots of other great benefits such as:
+
+ - A design spec that is married to code implementation.
+ - Official implementations from the the designer/developer (Google).
+ - Free code implementation and updates from a continuously evolving design spec.
+ - Compatability with many devices & breakpoints, from watch and mobile all the way up to fullscreen desktop.
+ - Usage familiarity for users, designers & developers.
+ - Focus on out-of the box accessibility.
+ - Open sourced design & code.
+ - Modularity that gives a natural bridge to agile development principles.
+ - Inspiration, community & resources from around the world.
+
+
+
+
+
+ With any new framework, people's intial reaction is that they'll lose their company brand or identity.
+ Consider when 960 grids came out, or Bootstrap from Twitter. Many said "all sites will look the same!".
+ They weren't completely wrong, for a time, when adoption of these new frameworks began. However, with time, usage, and innovation, your special brand identity and uniqueness will always shine through!
+ Also consider:
+
+ - Material Design is being embraced across the web, and is not specific to Google anymore
+ - Material Design can be thought of as a native Web SDK, similar to developing a MacOS or iOS app.
+ - Onboarding users is a simpler process if design patterns are familiar.
+ - Think of your favorite iOS, Android or Windows app that adheres to the OS's design. Aren’t the features more important? What woud you really consider “brand”?
+
+
+
+
+
+
The short answer: we had to pick something & we believe Angular has won the adoption war.
+ The longer answer:
+ Before passing judgement if you have Angular 1.x experience, remember that Angular v2+ is a complete rewrite from the ground up.
+ Angular moved from an opinionated framework to a sophistated platform.
+ Angular utilizes ES2015 (previously ES6) and the power of Typescript, which results in a much more native JavaScript platform with coding paradigms & power previously reserved for backend languages.
+ This means many more back end engineers can jump into the front end and ramp up quickly to productivity.
+ Also there are many other benefits, such as:
+
+ - New & exciting software to learn & advocate
+ - More easily attract new hires
+ - An incredibly powerful standardized CLI that is provided to us
+ - More powerful IDEs for development
+ - Integrated testing tools
+ - Native mobile & desktop app support
+
+
+
+
+
+ We give you everything you need to quickly get started on your UI, but you have the domain knowledge and are the expert in your product.
+ You'll need to build all the custom views, controllers & services for your product, and hook them up to your RESTful APIs.
+ Don't worry though, we have detailed docs & tips, and there's a wealth of help on the internet (it's why we chose such a popular platform).
+
+
+
+
+ We'd LOVE any type of contribution and collaboration! There's all kinds of ways you can join in:
+
+ - Submit a bug (cool)
+ - Open a pull request to fix a bug (cooler)
+ - Suggest a new feature (which we'll prioritize by demand)
+ - Open a pull request with new feature (make sure it follows the guidelines)
+ - Give us feedback on any aspect of this site or the platform
+ - Join the Teradata UX team!
+
+
+
+
+
+
+
+
+ To build an atomic, standardized, reusable UI component platform based on Material Design, for Teradata to use for all user interfaces, while collaborating in an open source model.
+
+
+
+
+ Teradata's UX team is extremely lean & agile (notice agile is lower case). We have a simple list of milestones and issues prioritized by demand across products.
+ Some big ticket items are underway such as TD Charts, an extensive & standardized component built on Google Charts (continuing w/ the Google web stack).
+ We're also building Dynamic Forms which will allow products to build complex forms with a simple key:value pair JSON structure.
+ Remember, we're agile so our roadmap is iterative & bite sized for frequent, rapid releases.
+
+
+
+
+ launch
+ Releases
+ Our latest version you can use today!
+
+
+
+ launch
+ Milestones
+ Rough time estimates
+
+
+
+ launch
+ Feature Requests & Bugs
+ Priotized by demand
+
+
+
+
+
+ Covalent is a UI Platform that combines proven design language with a comprehensive web framework, built on Angular & Angular-Material (Design).
+ Electron is a framework for creating native desktop applications with web technologies like JavaScript, HTML, and CSS.
+ Covalent Electron is the Electron Platform to build desktop apps using Covalent and Electron
+
View Repo
+
+
+
+
+ Covalent Data is a Mock API server for rapid prototyping and API standards
+ Built on Golang
+ Allows for quick prototyping for your Covalent Applications with an easy to mock http backend server
+
View Repo
+
+
+
+
+
+
+
+
+
+
Copyright © 2016 - 2017 Teradata. All rights reserved
-
+
diff --git a/src/app/components/home/home.component.scss b/src/app/components/home/home.component.scss
index 5b11e4278c..35ad04d7f1 100644
--- a/src/app/components/home/home.component.scss
+++ b/src/app/components/home/home.component.scss
@@ -9,9 +9,26 @@
width: 60px;
margin-left: 16px;
}
+.mat-icon-svg-xxl {
+ width: 90%;
+ height: auto;
+}
.md-icon-ux {
width: 165px;
}
-[td-after-card] {
- margin: 64px 8px 8px 8px;
+@media (max-width: 799px) {
+ .mat-icon-md {
+ font-size: 50px;
+ }
+ .mat-icon-xl {
+ font-size: 120px;
+ }
+}
+@media (min-width: 800px) {
+ .mat-icon-md {
+ font-size: 70px;
+ }
+ .mat-icon-xl {
+ font-size: 160px;
+ }
}
\ No newline at end of file
diff --git a/src/app/components/home/home.component.ts b/src/app/components/home/home.component.ts
index c65630815a..9bf61853be 100644
--- a/src/app/components/home/home.component.ts
+++ b/src/app/components/home/home.component.ts
@@ -1,5 +1,5 @@
-import { Component, HostBinding, OnInit } from '@angular/core';
-
+import { Component, HostBinding, AfterViewInit } from '@angular/core';
+import { TdMediaService } from '@covalent/core';
import { GitHubService } from '../../services';
import { fadeAnimation } from '../../app.animations';
@@ -11,102 +11,73 @@ import { fadeAnimation } from '../../app.animations';
animations: [fadeAnimation],
})
-export class HomeComponent implements OnInit {
+export class HomeComponent implements AfterViewInit {
@HostBinding('@routeAnimation') routeAnimation: boolean = true;
@HostBinding('class.td-route-animation') classAnimation: boolean = true;
starCount: number = 0;
- items: Object[] = [{
- color: 'purple-700',
+ sections: Object[] = [{
+ color: 'deep-purple-A400',
description: 'Your guide to start using the UI platform in your app!',
icon: 'library_books',
route: 'docs',
title: 'Documentation',
}, {
- color: 'blue-700',
- description: 'Teradata brand logo usage, color palettes and more',
- icon: 'color_lens',
- route: 'style-guide',
- title: 'Style Guide',
+ color: 'teal-A700',
+ description: 'Covalent Components, Directives, Pipes & Services',
+ icon: 'picture_in_picture',
+ route: 'components',
+ title: 'Components',
}, {
- color: 'teal-700',
+ color: 'cyan-A700',
description: 'Several different material design layout options for your apps',
icon: 'view_quilt',
route: 'layouts',
title: 'Layouts',
}, {
- color: 'green-700',
- description: 'Covalent Components, Directives, Pipes & Services',
- icon: 'picture_in_picture',
- route: 'components',
- title: 'Components & Addons',
+ color: 'indigo-A400',
+ description: 'Teradata brand logo usage, color palettes and more',
+ icon: 'color_lens',
+ route: 'style-guide',
+ title: 'Style Guide',
+ }, {
+ color: 'green-A700',
+ description: 'Gallery of example applications and usages',
+ icon: 'view_carousel',
+ route: 'templates',
+ title: 'Templates',
},
];
- updates: Object[] = [{
- description: 'Keyboard support for selection',
- icon: 'grid_on',
- route: 'components/data-table',
- title: 'Data Table feature',
- }, {
- description: 'Row click events',
- icon: 'grid_on',
- route: 'components/data-table',
- title: 'Data Table feature',
- }, {
- description: 'Hide columns & exclude from filtering',
- icon: 'grid_on',
- route: 'components/data-table',
- title: 'Data Table feature',
- }, {
- description: 'Async & boolean loading',
- icon: 'hourglass_empty',
- route: 'components/loading',
- title: 'Loading features',
+ repos: Object[] = [{
+ color: 'amber-A400',
+ description: 'A pre-built Angular 4 app using Covalent ready to go!',
+ icon: 'flash_on',
+ link: 'https://github.com/Teradata/covalent-quickstart',
+ title: 'Covalent Quickstart',
}, {
- description: 'Component for alerts/info/warning/error/success',
- icon: 'info_outline',
- route: 'components/message',
- title: 'New Messages component',
+ color: 'orange-A400',
+ description: 'A native desktop hybrid starter app built on Electron.',
+ icon: 'laptop_mac',
+ link: 'https://github.com/Teradata/covalent-electron',
+ title: 'Covalent Electron',
}, {
- description: 'Numbered page links to jump ahead',
- icon: 'swap_horiz',
- route: 'components/paging',
- title: 'Pagination feature',
- }, {
- description: 'Disable adding of chips',
- icon: 'label',
- route: 'components/chips',
- title: 'Chips feature',
- }, {
- description: 'New formData property',
- icon: 'attach_file',
- route: 'components/file-upload',
- title: 'File service feature',
- }, {
- description: 'New contentReady event binding',
- icon: 'chrome_reader_mode',
- route: 'components/markdown',
- title: 'Markdown feature',
- }, {
- description: 'New contentReady event binding',
- icon: 'code',
- route: 'components/highlight',
- title: 'Highlight feature',
- }, {
- description: 'Make navigationRoute optional',
- icon: 'view_quilt',
- route: 'components/layouts',
- title: 'Layouts feature',
+ color: 'deep-orange-A400',
+ description: 'Mock API server for rapid prototyping and API standards.',
+ icon: 'aspect_ratio',
+ link: 'https://github.com/Teradata/covalent-data',
+ title: 'Covalent Data',
},
];
- constructor(private _gitHubService: GitHubService) {
+ constructor(private _gitHubService: GitHubService,
+ public media: TdMediaService) {
}
- ngOnInit(): void {
+ ngAfterViewInit(): void {
+ this.media.broadcast();
this._gitHubService.queryStartCount().subscribe((starsCount: number) => {
this.starCount = starsCount;
});
diff --git a/src/app/components/layouts/card-over/card-over.component.html b/src/app/components/layouts/card-over/card-over.component.html
index 87f14599a2..59f50e6ba9 100644
--- a/src/app/components/layouts/card-over/card-over.component.html
+++ b/src/app/components/layouts/card-over/card-over.component.html
@@ -1,4 +1,5 @@
+
Card Over Layout
A card overlaying a toolbar (this page is using card over)
diff --git a/src/app/components/layouts/layouts.module.ts b/src/app/components/layouts/layouts.module.ts
index af4b83f962..29cb47ce20 100644
--- a/src/app/components/layouts/layouts.module.ts
+++ b/src/app/components/layouts/layouts.module.ts
@@ -17,6 +17,8 @@ import { CovalentHighlightModule } from '../../../platform/highlight';
import { DocumentationToolsModule } from '../../documentation-tools';
+import { ToolbarModule } from '../../components/toolbar/toolbar.module';
+
@NgModule({
declarations: [
LayoutsComponent,
@@ -44,6 +46,7 @@ import { DocumentationToolsModule } from '../../documentation-tools';
CovalentHighlightModule,
DocumentationToolsModule,
layoutsRoutes,
+ ToolbarModule,
],
})
export class LayoutsModule {}
diff --git a/src/app/components/layouts/manage-list/manage-list.component.html b/src/app/components/layouts/manage-list/manage-list.component.html
index 14b8787b9d..f4d246648d 100644
--- a/src/app/components/layouts/manage-list/manage-list.component.html
+++ b/src/app/components/layouts/manage-list/manage-list.component.html
@@ -1,5 +1,6 @@
-
+
diff --git a/src/app/components/layouts/manage-list/manage-list.component.ts b/src/app/components/layouts/manage-list/manage-list.component.ts
index 912ecc7957..66470202c8 100644
--- a/src/app/components/layouts/manage-list/manage-list.component.ts
+++ b/src/app/components/layouts/manage-list/manage-list.component.ts
@@ -1,4 +1,4 @@
-import { Component, HostBinding, AfterViewInit, ChangeDetectionStrategy } from '@angular/core';
+import { Component, HostBinding, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
import { TdMediaService } from '@covalent/core';
import { fadeAnimation } from '../../../app.animations';
@@ -15,11 +15,15 @@ export class ManageListComponent implements AfterViewInit {
@HostBinding('@routeAnimation') routeAnimation: boolean = true;
@HostBinding('class.td-route-animation') classAnimation: boolean = true;
- constructor(public media: TdMediaService) {}
+ constructor(private _changeDetectorRef: ChangeDetectorRef,
+ public media: TdMediaService) {}
ngAfterViewInit(): void {
// broadcast to all listener observables when loading the page
- this.media.broadcast();
+ Promise.resolve(undefined).then(() => {
+ this.media.broadcast();
+ this._changeDetectorRef.markForCheck();
+ });
}
}
diff --git a/src/app/components/layouts/nav-list/nav-list.component.html b/src/app/components/layouts/nav-list/nav-list.component.html
index 5bb057dcc3..a17ecee8ab 100644
--- a/src/app/components/layouts/nav-list/nav-list.component.html
+++ b/src/app/components/layouts/nav-list/nav-list.component.html
@@ -18,9 +18,9 @@ Item Name
item description
-
-
Page Title
-
+
+ Nav List
+
Nav List Layout
diff --git a/src/app/components/layouts/nav-list/nav-list.component.ts b/src/app/components/layouts/nav-list/nav-list.component.ts
index e53ea52e63..31e685a7f2 100644
--- a/src/app/components/layouts/nav-list/nav-list.component.ts
+++ b/src/app/components/layouts/nav-list/nav-list.component.ts
@@ -1,4 +1,4 @@
-import { Component, HostBinding, AfterViewInit, ChangeDetectionStrategy } from '@angular/core';
+import { Component, HostBinding, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';
import { TdMediaService } from '@covalent/core';
import { fadeAnimation } from '../../../app.animations';
@@ -15,11 +15,15 @@ export class NavListComponent implements AfterViewInit {
@HostBinding('@routeAnimation') routeAnimation: boolean = true;
@HostBinding('class.td-route-animation') classAnimation: boolean = true;
- constructor(public media: TdMediaService) {}
+ constructor(private _changeDetectorRef: ChangeDetectorRef,
+ public media: TdMediaService) {}
ngAfterViewInit(): void {
// broadcast to all listener observables when loading the page
- this.media.broadcast();
+ Promise.resolve(undefined).then(() => {
+ this.media.broadcast();
+ this._changeDetectorRef.markForCheck();
+ });
}
}
diff --git a/src/app/components/layouts/nav-view/nav-view.component.html b/src/app/components/layouts/nav-view/nav-view.component.html
index 5bf2418deb..cdee9ddbb4 100644
--- a/src/app/components/layouts/nav-view/nav-view.component.html
+++ b/src/app/components/layouts/nav-view/nav-view.component.html
@@ -1,4 +1,5 @@
+
Nav View
diff --git a/src/app/components/layouts/overview/overview.component.html b/src/app/components/layouts/overview/overview.component.html
index 9262571359..6397c947d3 100644
--- a/src/app/components/layouts/overview/overview.component.html
+++ b/src/app/components/layouts/overview/overview.component.html
@@ -1,4 +1,5 @@
+
For your entire app or for different sections of your app, select one of these Material Design layout options:
@@ -25,145 +26,147 @@ {{item.title}}
Flexbox Layout ("grid")
-
-
-
We've ported the CSS3 Flexbox layout system from Angular-Material v1, so those docs shoud be your starting point.
-
In a nutshell, the Flexbox layout gives you:
-
- - Horizontal row layout for child elements
- - Vertical column layout for child elements
- - Alignment & ordering for child elements
- - Any "flex" elastic width for child elements
- - Conditionally responsive versions for xs,sm,md,lg,xl breakpoints
-
-
-
-
-
-
Horizontal row container:
-
-
child
-
child
-
child
+
+
+
+
We've ported the CSS3 Flexbox layout system from Angular-Material v1, so those docs shoud be your starting point.
+
In a nutshell, the Flexbox layout gives you:
+
+ - Horizontal row layout for child elements
+ - Vertical column layout for child elements
+ - Alignment & ordering for child elements
+ - Any "flex" elastic width for child elements
+ - Conditionally responsive versions for xs,sm,md,lg,xl breakpoints
+
-
-
-
- child
- child
- child
-
- ]]>
-
-
-
Vertical column container:
-
-
child
-
child
-
child
+
+
+
+
Horizontal row container:
+
+
child
+
child
+
child
+
+
+
+
+ child
+ child
+ child
+
+ ]]>
+
+
+ Vertical column container:
+
+
child
+
child
+
child
+
+
+
+
+ child
+ child
+ child
+
+ ]]>
+
-
-
-
- child
- child
- child
-
- ]]>
-
-
-
-
-
-
Layout margin
-
-
child
-
child
-
child
+
+
+
+
Layout margin
+
+
child
+
child
+
child
+
+
+
+
+ child
+ child
+ child
+
+ ]]>
+
+
+ Layout padding
+
+
child
+
child
+
child
+
+
+
+
+ child
+ child
+ child
+
+ ]]>
+
-
-
-
- child
- child
- child
-
- ]]>
-
-
- Layout padding
-
-
child
-
child
-
child
+
+
+
+
40/flex/30 (notice how flex
fills remaining space):
+
+
child
+
child
+
child
+
+
+
+
+ child
+ child
+ child
+
+ ]]>
+
+
+ Responsive widths (will change as you resize browser):
+
+
child
+
child
+
child
+
+
+
+
+ child
+ child
+ child
+
+ ]]>
+
+
+ Typical responsive layout (just collapse on xs which is mobile)
+
+
+
+
+ child
+ child
+
+ ]]>
+