mirror of https://github.com/ghostfolio/ghostfolio
Thomas Kaul
1 year ago
committed by
GitHub
6 changed files with 115 additions and 78 deletions
@ -1,8 +1,4 @@ |
|||||
<span class="align-items-center d-flex" |
<span class="align-items-center d-flex" |
||||
><span |
><span class="d-inline-block logo" [ngClass]="{ 'mr-1': showLabel }"></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 |
||||
> |
> |
||||
|
@ -1,25 +1,29 @@ |
|||||
<a |
<div |
||||
class="card-item d-flex flex-column justify-content-between p-4" |
class="card-container position-relative" |
||||
[ngClass]="{ premium: name === 'Premium' }" |
[ngClass]="{ premium: name === 'Premium' }" |
||||
[routerLink]="routerLinkPricing" |
|
||||
> |
> |
||||
<div class="d-flex justify-content-end"> |
<a |
||||
<gf-logo |
class="card-item d-flex flex-column justify-content-between p-4" |
||||
color="rgba(255, 255, 255, 1)" |
[routerLink]="routerLinkPricing" |
||||
size="large" |
> |
||||
[showLabel]="false" |
<div class="d-flex justify-content-end"> |
||||
></gf-logo> |
<gf-logo |
||||
</div> |
size="large" |
||||
<div class="d-flex justify-content-between"> |
[ngClass]="{ 'text-muted': name === 'Basic' }" |
||||
<div> |
[showLabel]="false" |
||||
<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> |
<div class="d-flex justify-content-between"> |
||||
<div class="card-item-heading mb-1 text-muted" i18n>Valid until</div> |
<div> |
||||
<div class="card-item-name line-height-1 text-truncate"> |
<div class="heading text-muted" i18n>Membership</div> |
||||
{{ expiresAt }} |
<div class="text-truncate value">{{ name }}</div> |
||||
|
</div> |
||||
|
<div *ngIf="expiresAt"> |
||||
|
<div class="heading text-muted" i18n>Valid until</div> |
||||
|
<div class="text-truncate value"> |
||||
|
{{ expiresAt }} |
||||
|
</div> |
||||
</div> |
</div> |
||||
</div> |
</div> |
||||
</div> |
</a> |
||||
</a> |
</div> |
||||
|
@ -1,24 +1,66 @@ |
|||||
:host { |
:host { |
||||
|
--borderRadius: 1rem; |
||||
|
--borderWidth: 2px; |
||||
|
|
||||
display: block; |
display: block; |
||||
max-width: 25rem; |
max-width: 25rem; |
||||
|
padding-top: calc(1 * var(--borderWidth)); |
||||
|
width: 100%; |
||||
|
|
||||
.card-item { |
.card-container { |
||||
aspect-ratio: 1.586; |
border-radius: var(--borderRadius); |
||||
background-color: #343a40 !important; |
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15); |
||||
border-radius: 1rem; |
|
||||
box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); |
|
||||
|
|
||||
&.premium { |
&:after { |
||||
background-color: #1d2124 !important; |
animation: animatedborder 7s ease alternate infinite; |
||||
} |
background: linear-gradient(60deg, #5073b8, #1098ad, #07b39b, #6fba82); |
||||
|
background-size: 300% 300%; |
||||
|
border-radius: var(--borderRadius); |
||||
|
content: ''; |
||||
|
height: calc(100% + var(--borderWidth) * 2); |
||||
|
left: calc(-1 * var(--borderWidth)); |
||||
|
top: calc(-1 * var(--borderWidth)); |
||||
|
position: absolute; |
||||
|
width: calc(100% + var(--borderWidth) * 2); |
||||
|
z-index: -1; |
||||
|
|
||||
.card-item-heading { |
@keyframes animatedborder { |
||||
font-size: 13px; |
0% { |
||||
|
background-position: 0% 50%; |
||||
|
} |
||||
|
50% { |
||||
|
background-position: 100% 50%; |
||||
|
} |
||||
|
100% { |
||||
|
background-position: 0% 50%; |
||||
|
} |
||||
|
} |
||||
} |
} |
||||
|
|
||||
.card-item-name { |
.card-item { |
||||
|
aspect-ratio: 1.586; |
||||
|
background-color: #1d2124; |
||||
|
border-radius: calc(var(--borderRadius) - var(--borderWidth)); |
||||
color: rgba(var(--light-primary-text)); |
color: rgba(var(--light-primary-text)); |
||||
font-size: 18px; |
|
||||
|
.heading { |
||||
|
font-size: 13px; |
||||
|
} |
||||
|
|
||||
|
.value { |
||||
|
font-size: 18px; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
&:not(.premium) { |
||||
|
&:after { |
||||
|
opacity: 0; |
||||
|
} |
||||
|
|
||||
|
.card-item { |
||||
|
background-color: #ffffff; |
||||
|
color: rgba(var(--dark-primary-text)); |
||||
|
} |
||||
} |
} |
||||
} |
} |
||||
} |
} |
||||
|
Loading…
Reference in new issue