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="d-inline-block logo" |
|||
[ngClass]="{ 'mr-1': showLabel }" |
|||
[ngStyle]="{ 'background-color': color }" |
|||
></span> |
|||
><span class="d-inline-block logo" [ngClass]="{ 'mr-1': showLabel }"></span> |
|||
<span *ngIf="showLabel" class="label">{{ label ?? 'Ghostfolio' }}</span></span |
|||
> |
|||
|
@ -1,25 +1,29 @@ |
|||
<a |
|||
class="card-item d-flex flex-column justify-content-between p-4" |
|||
<div |
|||
class="card-container position-relative" |
|||
[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> |
|||
<a |
|||
class="card-item d-flex flex-column justify-content-between p-4" |
|||
[routerLink]="routerLinkPricing" |
|||
> |
|||
<div class="d-flex justify-content-end"> |
|||
<gf-logo |
|||
size="large" |
|||
[ngClass]="{ 'text-muted': name === 'Basic' }" |
|||
[showLabel]="false" |
|||
/> |
|||
</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 class="d-flex justify-content-between"> |
|||
<div> |
|||
<div class="heading text-muted" i18n>Membership</div> |
|||
<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> |
|||
</a> |
|||
</a> |
|||
</div> |
|||
|
@ -1,24 +1,66 @@ |
|||
:host { |
|||
--borderRadius: 1rem; |
|||
--borderWidth: 2px; |
|||
|
|||
display: block; |
|||
max-width: 25rem; |
|||
padding-top: calc(1 * var(--borderWidth)); |
|||
width: 100%; |
|||
|
|||
.card-item { |
|||
aspect-ratio: 1.586; |
|||
background-color: #343a40 !important; |
|||
border-radius: 1rem; |
|||
box-shadow: 0 1px 6px rgba(0, 0, 0, 0.3); |
|||
.card-container { |
|||
border-radius: var(--borderRadius); |
|||
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.15); |
|||
|
|||
&.premium { |
|||
background-color: #1d2124 !important; |
|||
} |
|||
&:after { |
|||
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 { |
|||
font-size: 13px; |
|||
@keyframes animatedborder { |
|||
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)); |
|||
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