mirror of https://github.com/ghostfolio/ghostfolio
Browse Source
* Add membership card component * Update changelog --------- Co-authored-by: Thomas <4159106+dtslvr@users.noreply.github.com>pull/2514/head
committed by
GitHub
10 changed files with 92 additions and 14 deletions
@ -1,4 +1,8 @@ |
|||||
<span class="align-items-center d-flex" |
<span class="align-items-center d-flex" |
||||
><span class="d-inline-block logo mr-1"></span> |
><span |
||||
|
class="d-inline-block logo" |
||||
|
[ngClass]="{ 'mr-1': showLabel }" |
||||
|
[ngStyle]="{ 'background-color': color }" |
||||
|
></span> |
||||
<span *ngIf="showLabel" class="label">{{ label ?? 'Ghostfolio' }}</span></span |
<span *ngIf="showLabel" class="label">{{ label ?? 'Ghostfolio' }}</span></span |
||||
> |
> |
||||
|
@ -0,0 +1 @@ |
|||||
|
export * from './membership-card.module'; |
@ -0,0 +1,25 @@ |
|||||
|
<a |
||||
|
class="card-item d-flex flex-column justify-content-between p-4" |
||||
|
[ngClass]="{ premium: name === 'Premium' }" |
||||
|
[routerLink]="routerLinkPricing" |
||||
|
> |
||||
|
<div class="d-flex justify-content-end"> |
||||
|
<gf-logo |
||||
|
color="rgba(255, 255, 255, 1)" |
||||
|
size="large" |
||||
|
[showLabel]="false" |
||||
|
></gf-logo> |
||||
|
</div> |
||||
|
<div class="d-flex justify-content-between"> |
||||
|
<div> |
||||
|
<div class="card-item-heading mb-1 text-muted" i18n>Membership</div> |
||||
|
<div class="card-item-name line-height-1 text-truncate">{{ name }}</div> |
||||
|
</div> |
||||
|
<div> |
||||
|
<div class="card-item-heading mb-1 text-muted" i18n>Valid until</div> |
||||
|
<div class="card-item-name line-height-1 text-truncate"> |
||||
|
{{ expiresAt }} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</a> |
@ -0,0 +1,24 @@ |
|||||
|
:host { |
||||
|
display: block; |
||||
|
max-width: 25rem; |
||||
|
|
||||
|
.card-item { |
||||
|
aspect-ratio: 1.586; |
||||
|
background-color: #343a40 !important; |
||||
|
border-radius: 1rem; |
||||
|
box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); |
||||
|
|
||||
|
&.premium { |
||||
|
background-color: #1d2124 !important; |
||||
|
} |
||||
|
|
||||
|
.card-item-heading { |
||||
|
font-size: 13px; |
||||
|
} |
||||
|
|
||||
|
.card-item-name { |
||||
|
color: rgba(var(--light-primary-text)); |
||||
|
font-size: 18px; |
||||
|
} |
||||
|
} |
||||
|
} |
@ -0,0 +1,14 @@ |
|||||
|
import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; |
||||
|
|
||||
|
@Component({ |
||||
|
changeDetection: ChangeDetectionStrategy.OnPush, |
||||
|
selector: 'gf-membership-card', |
||||
|
styleUrls: ['./membership-card.component.scss'], |
||||
|
templateUrl: './membership-card.component.html' |
||||
|
}) |
||||
|
export class MembershipCardComponent { |
||||
|
@Input() public expiresAt: string; |
||||
|
@Input() public name: string; |
||||
|
|
||||
|
public routerLinkPricing = ['/' + $localize`pricing`]; |
||||
|
} |
@ -0,0 +1,14 @@ |
|||||
|
import { CommonModule } from '@angular/common'; |
||||
|
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; |
||||
|
import { RouterModule } from '@angular/router'; |
||||
|
import { GfLogoModule } from '@ghostfolio/ui/logo'; |
||||
|
|
||||
|
import { MembershipCardComponent } from './membership-card.component'; |
||||
|
|
||||
|
@NgModule({ |
||||
|
declarations: [MembershipCardComponent], |
||||
|
exports: [MembershipCardComponent], |
||||
|
imports: [CommonModule, GfLogoModule, RouterModule], |
||||
|
schemas: [CUSTOM_ELEMENTS_SCHEMA] |
||||
|
}) |
||||
|
export class GfMembershipCardModule {} |
Loading…
Reference in new issue