Charts
This commit is contained in:
parent
e4838e72c1
commit
3279bb1230
@ -1,4 +1,4 @@
|
|||||||
<div class="flex-row">
|
<div class="flex-row">
|
||||||
<div [className]="color + ' oval ' + size">{{initials}}</div>
|
<div [className]="color + ' oval ' + size">{{initials}}</div>
|
||||||
<div *ngIf="withName" class="name clamp-2">{{username || ('initials-avatar.unassigned.label' | translate)}}</div>
|
<div *ngIf="withName" class="clamp-2">{{username || ('initials-avatar.unassigned.label' | translate)}}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -1,10 +1,5 @@
|
|||||||
@import "../../../assets/styles/red-variables";
|
@import "../../../assets/styles/red-variables";
|
||||||
|
|
||||||
.name {
|
|
||||||
font-size: 13px;
|
|
||||||
line-height: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-row {
|
.flex-row {
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
gap: 12px;
|
gap: 12px;
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
<div class="rectangle-container" [ngClass]="{ small: small }">
|
<div class="rectangle-container" [ngClass]="{ small: small }">
|
||||||
<div *ngFor="let rect of config" [className]="'section-wrapper flex-' + rect.length">
|
<div *ngFor="let rect of config" [className]="'section-wrapper flex-' + rect.length">
|
||||||
<div [className]="'rectangle ' + rect.color "></div>
|
<div [className]="'rectangle ' + rect.color "></div>
|
||||||
<div *ngIf="rect.title" class="subtitle">{{ rect.title }}</div>
|
<div *ngIf="rect.label" [ngClass]="labelClass">{{ rect.label }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -38,20 +38,40 @@
|
|||||||
.rectangle {
|
.rectangle {
|
||||||
height: 4px;
|
height: 4px;
|
||||||
|
|
||||||
&.grey {
|
&.unassigned {
|
||||||
background-color: $grey-4;
|
background-color: $grey-5;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.yellow {
|
&.under-review {
|
||||||
background-color: $yellow-1;
|
background-color: $yellow-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.blue {
|
&.under-approval {
|
||||||
background-color: $blue-1;
|
background-color: $red-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.green {
|
&.approved {
|
||||||
background-color: $green-1;
|
background-color: $blue-2;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.submitted {
|
||||||
|
background-color: $blue-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.efsa {
|
||||||
|
background-color: $blue-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.finished {
|
||||||
|
background-color: $green-2;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
background-color: $primary;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.archived {
|
||||||
|
background-color: rgba($red-1, 0.1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';
|
import { Component, Input, OnInit, ViewEncapsulation } from '@angular/core';
|
||||||
|
import { Color } from '../../utils/types';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'redaction-status-bar',
|
selector: 'redaction-status-bar',
|
||||||
@ -10,13 +11,16 @@ export class StatusBarComponent implements OnInit {
|
|||||||
@Input()
|
@Input()
|
||||||
public config: {
|
public config: {
|
||||||
length: number,
|
length: number,
|
||||||
color: 'green' | 'blue' | 'red' | 'grey' | 'yellow',
|
color: Color,
|
||||||
title?: string,
|
label?: string,
|
||||||
}[] = [];
|
}[] = [];
|
||||||
|
|
||||||
@Input()
|
@Input()
|
||||||
public small = false;
|
public small = false;
|
||||||
|
|
||||||
|
@Input()
|
||||||
|
public labelClass = '';
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -84,7 +84,8 @@
|
|||||||
|
|
||||||
<div *ngIf="infoTab" class="tab-content info-container">
|
<div *ngIf="infoTab" class="tab-content info-container">
|
||||||
<redaction-status-bar [small]="true"
|
<redaction-status-bar [small]="true"
|
||||||
[config]="[{ length: 1, title: 'Unassigned', color: 'grey'}]"></redaction-status-bar>
|
[labelClass]="'subtitle'"
|
||||||
|
[config]="[{ length: 1, label: 'Unassigned', color: 'unassigned'}]"></redaction-status-bar>
|
||||||
|
|
||||||
<div class="subtitle stats-subtitle mt-5">
|
<div class="subtitle stats-subtitle mt-5">
|
||||||
<div>645</div>
|
<div>645</div>
|
||||||
|
|||||||
@ -65,8 +65,6 @@ redaction-pdf-viewer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.assign-reviewer {
|
.assign-reviewer {
|
||||||
font-size: 13px;
|
|
||||||
line-height: 16px;
|
|
||||||
margin-left: 12px;
|
margin-left: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,8 +90,6 @@ redaction-pdf-viewer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.page-number {
|
.page-number {
|
||||||
font-size: 13px;
|
|
||||||
line-height: 18px;
|
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -57,7 +57,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="stats-bar">
|
<div class="stats-bar">
|
||||||
<redaction-status-bar
|
<redaction-status-bar
|
||||||
[config]="[{ color: 'yellow', length: 2}, { length: 1, color: 'green'}]"
|
[config]="[{ color: 'under-review', length: 2}, { length: 1, color: 'finished'}]"
|
||||||
></redaction-status-bar>
|
></redaction-status-bar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -79,8 +79,11 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="right-fixed-container">
|
<div class="right-fixed-container">
|
||||||
<redaction-simple-doughnut-chart [data]="projectsChartData" [strokeWidth]="15"></redaction-simple-doughnut-chart>
|
<redaction-simple-doughnut-chart [data]="projectsChartData"
|
||||||
|
[strokeWidth]="15"
|
||||||
|
[title]=9
|
||||||
|
[subtitle]="'Projects'"
|
||||||
|
></redaction-simple-doughnut-chart>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -1,14 +1,14 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import {Project, ProjectControllerService} from "@redaction/red-ui-http";
|
import { Project, ProjectControllerService } from '@redaction/red-ui-http';
|
||||||
import {MatDialog} from "@angular/material/dialog";
|
import { MatDialog } from '@angular/material/dialog';
|
||||||
import {AddEditProjectDialogComponent} from "./add-edit-project-dialog/add-edit-project-dialog.component";
|
import { AddEditProjectDialogComponent } from './add-edit-project-dialog/add-edit-project-dialog.component';
|
||||||
import {ConfirmationDialogComponent} from "../../common/confirmation-dialog/confirmation-dialog.component";
|
import { ConfirmationDialogComponent } from '../../common/confirmation-dialog/confirmation-dialog.component';
|
||||||
import {TranslateService} from "@ngx-translate/core";
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import {NotificationService} from "../../notification/notification.service";
|
import { NotificationService } from '../../notification/notification.service';
|
||||||
import {AppStateService, ProjectWrapper} from "../../state/app-state.service";
|
import { AppStateService, ProjectWrapper } from '../../state/app-state.service';
|
||||||
import {UserService} from "../../user/user.service";
|
import { UserService } from '../../user/user.service';
|
||||||
import {ProjectDetailsDialogComponent} from "../project-overview-screen/project-details-dialog/project-details-dialog.component";
|
import { ProjectDetailsDialogComponent } from '../project-overview-screen/project-details-dialog/project-details-dialog.component';
|
||||||
import {DataSeries} from "../../simple-doughnut-chart/simple-doughnut-chart.component";
|
import { DataSeries } from '../../simple-doughnut-chart/simple-doughnut-chart.component';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'redaction-project-listing-screen',
|
selector: 'redaction-project-listing-screen',
|
||||||
@ -34,8 +34,10 @@ export class ProjectListingScreenComponent implements OnInit {
|
|||||||
ngOnInit(): void {
|
ngOnInit(): void {
|
||||||
this.appStateService.reset();
|
this.appStateService.reset();
|
||||||
this.projectsChartData = [
|
this.projectsChartData = [
|
||||||
{value: this.activeProjects, color: '#DD4D50', label: 'active-projects'},
|
// {value: this.activeProjects, color: '#DD4D50', label: 'active-projects'},
|
||||||
{value: this.inactiveProjects, color: '#f8eded', label: 'Archived'}];
|
// {value: this.inactiveProjects, color: '#f8eded', label: 'Archived'}];
|
||||||
|
{ value: 3, color: 'active', label: 'active-projects' },
|
||||||
|
{ value: 7, color: 'archived', label: 'Archived' }];
|
||||||
}
|
}
|
||||||
|
|
||||||
openAddProjectDialog(project?: Project): void {
|
openAddProjectDialog(project?: Project): void {
|
||||||
@ -55,7 +57,7 @@ export class ProjectListingScreenComponent implements OnInit {
|
|||||||
$event.stopPropagation();
|
$event.stopPropagation();
|
||||||
const dialogRef = this._dialog.open(ConfirmationDialogComponent, {
|
const dialogRef = this._dialog.open(ConfirmationDialogComponent, {
|
||||||
width: '400px',
|
width: '400px',
|
||||||
maxWidth: '90vw',
|
maxWidth: '90vw'
|
||||||
});
|
});
|
||||||
|
|
||||||
dialogRef.afterClosed().subscribe(result => {
|
dialogRef.afterClosed().subscribe(result => {
|
||||||
@ -84,7 +86,7 @@ export class ProjectListingScreenComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
get activeProjects() {
|
get activeProjects() {
|
||||||
return this.appStateService.allProjects.reduce((i, p) => i+(p.project.status === Project.StatusEnum.ACTIVE ? 1 :0), 0)
|
return this.appStateService.allProjects.reduce((i, p) => i + (p.project.status === Project.StatusEnum.ACTIVE ? 1 : 0), 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
get inactiveProjects() {
|
get inactiveProjects() {
|
||||||
|
|||||||
@ -61,7 +61,7 @@
|
|||||||
<div class=" status-container">
|
<div class=" status-container">
|
||||||
<div class="status-bar-wrapper">
|
<div class="status-bar-wrapper">
|
||||||
<redaction-status-bar
|
<redaction-status-bar
|
||||||
[config]="[{ color: 'yellow', length: 1 }]"
|
[config]="[{ color: 'under-review', length: 1 }]"
|
||||||
></redaction-status-bar>
|
></redaction-status-bar>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -110,7 +110,7 @@
|
|||||||
></redaction-initials-avatar>
|
></redaction-initials-avatar>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="description mt-20">
|
<div class="mt-20">
|
||||||
{{ appStateService.activeProject.project.description }}
|
{{ appStateService.activeProject.project.description }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -24,11 +24,6 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.project-details-container {
|
.project-details-container {
|
||||||
.description {
|
|
||||||
font-size: 13px;
|
|
||||||
line-height: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.members-container {
|
.members-container {
|
||||||
gap: 5px;
|
gap: 5px;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
|
<div class="container">
|
||||||
<svg attr.height="{{size}}" attr.width="{{size}}" attr.viewBox="0 0 {{size}} {{size}}" class="donut-chart">
|
<svg attr.height="{{size}}" attr.width="{{size}}" attr.viewBox="0 0 {{size}} {{size}}" class="donut-chart">
|
||||||
<g *ngFor="let value of data; let i = index">
|
<g *ngFor="let value of data; let i = index">
|
||||||
<circle attr.cx="{{cx}}"
|
<circle attr.cx="{{cx}}"
|
||||||
attr.cy="{{cy}}"
|
attr.cy="{{cy}}"
|
||||||
attr.r="{{radius}}"
|
attr.r="{{radius}}"
|
||||||
attr.stroke="{{data[i].color}}"
|
[class]="value.color"
|
||||||
attr.stroke-width="{{strokeWidth}}"
|
attr.stroke-width="{{strokeWidth}}"
|
||||||
attr.stroke-dasharray="{{adjustedCircumference}}"
|
attr.stroke-dasharray="{{adjustedCircumference}}"
|
||||||
attr.stroke-dashoffset="{{calculateStrokeDashOffset(value.value, circumference)}}"
|
attr.stroke-dashoffset="{{calculateStrokeDashOffset(value.value, circumference)}}"
|
||||||
@ -11,6 +12,19 @@
|
|||||||
attr.transform="{{returnCircleTransformValue(i)}}" />
|
attr.transform="{{returnCircleTransformValue(i)}}" />
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
<div *ngFor="let val of data">
|
|
||||||
{{val.value}} {{val.label}}
|
<div class="text-container" [style]="'height: ' + size + 'px; width: ' + size + 'px;'">
|
||||||
|
<div class="heading-xl">{{ title }}</div>
|
||||||
|
<div class="projects-text mt-5">{{ subtitle }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-20 breakdown-container">
|
||||||
|
<div>
|
||||||
|
<div *ngFor="let val of data">
|
||||||
|
<redaction-status-bar [small]="true"
|
||||||
|
[config]="[{ length: val.value, color: val.color, label: val.label}]">
|
||||||
|
</redaction-status-bar>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 673 B After Width: | Height: | Size: 1.1 KiB |
@ -0,0 +1,66 @@
|
|||||||
|
@import "../../assets/styles/red-variables";
|
||||||
|
|
||||||
|
.container {
|
||||||
|
position: absolute;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-container {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.breakdown-container {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
gap: 8px;
|
||||||
|
|
||||||
|
div {
|
||||||
|
width: fit-content;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
circle {
|
||||||
|
&.unassigned {
|
||||||
|
stroke: $grey-5;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.under-review {
|
||||||
|
stroke: $yellow-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.under-approval {
|
||||||
|
stroke: $red-1;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.approved {
|
||||||
|
stroke: $blue-2;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.submitted {
|
||||||
|
stroke: $blue-3;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.efsa {
|
||||||
|
stroke: $blue-4;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.finished {
|
||||||
|
stroke: $green-2;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.active {
|
||||||
|
stroke: $primary;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.archived {
|
||||||
|
stroke: rgba($red-1, 0.1);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,13 +1,12 @@
|
|||||||
import {Component, Input, OnInit} from '@angular/core';
|
import {Component, Input, OnInit} from '@angular/core';
|
||||||
|
import { Color } from '../utils/types';
|
||||||
|
|
||||||
export class DataSeries {
|
export class DataSeries {
|
||||||
value: number;
|
value: number;
|
||||||
color: string;
|
color: Color;
|
||||||
label: string;
|
label: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'redaction-simple-doughnut-chart',
|
selector: 'redaction-simple-doughnut-chart',
|
||||||
templateUrl: './simple-doughnut-chart.component.html',
|
templateUrl: './simple-doughnut-chart.component.html',
|
||||||
@ -16,17 +15,17 @@ export class DataSeries {
|
|||||||
export class SimpleDoughnutChartComponent implements OnInit {
|
export class SimpleDoughnutChartComponent implements OnInit {
|
||||||
|
|
||||||
@Input() title: string;
|
@Input() title: string;
|
||||||
@Input() subtitle: number;
|
@Input() subtitle: string;
|
||||||
@Input() data: DataSeries[] = [];
|
@Input() data: DataSeries[] = [];
|
||||||
@Input() angleOffset = -90;
|
@Input() angleOffset = -90;
|
||||||
@Input() radius = 80;
|
@Input() radius = 80;
|
||||||
@Input() strokeWidth = 20;
|
@Input() strokeWidth = 20;
|
||||||
|
|
||||||
chartData: any[] = [];
|
public chartData: any[] = [];
|
||||||
perimeter: number;
|
public perimeter: number;
|
||||||
cx = 0;
|
public cx = 0;
|
||||||
cy = 0;
|
public cy = 0;
|
||||||
size = 0;
|
public size = 0;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
}
|
}
|
||||||
@ -65,10 +64,6 @@ export class SimpleDoughnutChartComponent implements OnInit {
|
|||||||
return circumference - strokeDiff;
|
return circumference - strokeDiff;
|
||||||
}
|
}
|
||||||
|
|
||||||
degreesToRadians(angle) {
|
|
||||||
return angle * (Math.PI / 180);
|
|
||||||
}
|
|
||||||
|
|
||||||
dataPercentage(dataVal) {
|
dataPercentage(dataVal) {
|
||||||
return dataVal / this.dataTotal;
|
return dataVal / this.dataTotal;
|
||||||
}
|
}
|
||||||
@ -76,5 +71,4 @@ export class SimpleDoughnutChartComponent implements OnInit {
|
|||||||
returnCircleTransformValue(index) {
|
returnCircleTransformValue(index) {
|
||||||
return `rotate(${this.chartData[index].degrees}, ${this.cx}, ${this.cy})`;
|
return `rotate(${this.chartData[index].degrees}, ${this.cx}, ${this.cy})`;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
10
apps/red-ui/src/app/utils/types.d.ts
vendored
Normal file
10
apps/red-ui/src/app/utils/types.d.ts
vendored
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
export type Color =
|
||||||
|
'unassigned' |
|
||||||
|
'under-review' |
|
||||||
|
'under-approval' |
|
||||||
|
'approved' |
|
||||||
|
'submitted' |
|
||||||
|
'efsa' |
|
||||||
|
'finished' |
|
||||||
|
'active' |
|
||||||
|
'archived';
|
||||||
@ -9,7 +9,7 @@
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: $accent;
|
color: $accent;
|
||||||
background: $white;
|
background: $white;
|
||||||
font-family: 'Inter', sans-serif;
|
font-family: Inter, sans-serif;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
letter-spacing: 0;
|
letter-spacing: 0;
|
||||||
line-height: 14px;
|
line-height: 14px;
|
||||||
|
|||||||
@ -5,8 +5,10 @@ html, body {
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
font-family: 'Inter', sans-serif;
|
font-family: Inter, sans-serif;
|
||||||
color: $accent;
|
color: $accent;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.page-header {
|
.page-header {
|
||||||
@ -57,9 +59,6 @@ html, body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.filters {
|
.filters {
|
||||||
font-size: 13px;
|
|
||||||
line-height: 14px;
|
|
||||||
|
|
||||||
> div {
|
> div {
|
||||||
padding: 10px 14px;
|
padding: 10px 14px;
|
||||||
}
|
}
|
||||||
@ -157,8 +156,6 @@ html, body {
|
|||||||
.breadcrumb {
|
.breadcrumb {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: $accent;
|
color: $accent;
|
||||||
font-size: 13px;
|
|
||||||
line-height: 18px;
|
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
@include line-clamp(1);
|
@include line-clamp(1);
|
||||||
max-width: 320px;
|
max-width: 320px;
|
||||||
|
|||||||
@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
.actions {
|
.actions {
|
||||||
display: flex;
|
display: flex;
|
||||||
font-size: 13px;
|
|
||||||
|
|
||||||
div {
|
div {
|
||||||
padding: 10px 14px;
|
padding: 10px 14px;
|
||||||
@ -41,9 +40,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.table-item-title {
|
.table-item-title {
|
||||||
font-size: 13px;
|
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
line-height: 18px;
|
|
||||||
@include line-clamp(1);
|
@include line-clamp(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -8,13 +8,18 @@ $dark: #000;
|
|||||||
|
|
||||||
$grey-1: #283241;
|
$grey-1: #283241;
|
||||||
$grey-2: #ECECEE;
|
$grey-2: #ECECEE;
|
||||||
$grey-3: #aaacb3;
|
$grey-3: #AAACB3;
|
||||||
$grey-4: #E2E4E9;
|
$grey-4: #E2E4E9;
|
||||||
|
$grey-5: #D3D5DA;
|
||||||
|
|
||||||
$blue-1: #4875F7;
|
$blue-1: #4875F7;
|
||||||
|
$blue-2: #48C9F7;
|
||||||
|
$blue-3: #5B97DB;
|
||||||
|
$blue-4: #374C81;
|
||||||
$red-1: #F65757;
|
$red-1: #F65757;
|
||||||
$yellow-1: #FFB83B;
|
$yellow-1: #FFB83B;
|
||||||
$green-1: #46CE7D;
|
$green-1: #46CE7D;
|
||||||
|
$green-2: #5CE594;
|
||||||
|
|
||||||
$separator: rgba(226,228,233,0.9);
|
$separator: rgba(226,228,233,0.9);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user