Taiga UI 5.0 is out!

ThumbnailCard ADDON-COMMERCE

Examples API GitHub

On this page

Customizable credit card thumbnail

Sizes

4572
4572
4572
4572
    
      
    
    
      @for (size of sizes; track size) {
    <tui-thumbnail-card
        iconEnd="@tui.cloud"
        iconStart="@tui.lock"
        paymentSystem="mastercard"
        [size]="size"
    >
        4572
    </tui-thumbnail-card>
}

    
    
      :host {
    display: flex;
    gap: 1rem;
}

    

A cool one

    
      
    
    
      <tui-thumbnail-card
    paymentSystem="mir"
    class="logo"
>
    7777
</tui-thumbnail-card>

    
    
      @keyframes spinCard {
    0% {
        transform: rotateY(0);
        box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.3);
    }

    12% {
        transform: rotateY(90deg) rotateZ(6deg) scale(1.7);
        box-shadow: 0 0.25rem 0.5rem 0 rgba(0, 0, 0, 0.3);
    }

    25% {
        transform: rotateY(180deg);
        box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.3);
    }

    50% {
        transform: rotateY(180deg);
        box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.3);
    }

    62% {
        transform: rotateY(270deg) rotateZ(-8deg) scale(1.7);
        box-shadow: 0 0.25rem 0.5rem 0 rgba(0, 0, 0, 0.3);
    }

    80% {
        transform: rotateY(720deg);
        box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.3);
    }

    100% {
        transform: rotateY(720deg);
        box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.3);
    }
}

:host {
    perspective: 50rem;
}

.logo {
    background-color: #7c48c3;
    background-image: linear-gradient(45deg, #c86dd7 0%, #3023ae 100%);
    overflow: visible;
    animation: spinCard 5s infinite;
}

    

Backgrounds

1234
5678
9000
7777
    
      
    
    
      <tui-thumbnail-card
    iconEnd="@tui.user"
    paymentSystem="visa"
    size="l"
    class="star"
>
    1234
</tui-thumbnail-card>

<tui-thumbnail-card
    iconEnd="@tui.user"
    paymentSystem="mastercard"
    size="l"
    class="gradient"
>
    5678
</tui-thumbnail-card>

<tui-thumbnail-card
    paymentSystem="maestro"
    size="l"
    class="retrowave"
>
    9000
</tui-thumbnail-card>

<tui-thumbnail-card
    paymentSystem="unionpay"
    size="l"
    class="radial"
>
    7777
</tui-thumbnail-card>

    
    
      :host {
    display: flex;
    gap: 1rem;
}

.star {
    color: #000;
    background:
        linear-gradient(45deg, rgba(255, 170, 0, 0.82), #fa0), url('/assets/taiga-ui/icons/star.svg'),
        url('/assets/taiga-ui/icons/star.svg');
    background-size:
        100%,
        3rem 1.5rem,
        3rem 1.5rem;
    background-position:
        0 0,
        -0.75rem 0,
        0.75rem;
    background-color: #fff;
}

.gradient {
    color: #fff;
    background: #2b9aff linear-gradient(110deg, transparent 70%, #0780ff 71%, #db028b 100%);
}

.retrowave {
    color: #ecb5ff;
    background: url('/assets/images/avatar.jpg') no-repeat center/cover;

    &::before {
        background-color: rgba(255, 255, 255, 0.2);
        backdrop-filter: blur(0.25rem);
    }
}

.radial {
    color: #fff;
    background: radial-gradient(#c900ff, #0079be);
}

    

External colored icon

external
1234
    
      
    
    
      <tui-thumbnail-card
    iconEnd="@tui.user"
    paymentSystem="visa"
>
    <img
        alt="external"
        src="https://github.com/waterplea.png?size=200"
    />
    1234
</tui-thumbnail-card>

    
    
      :host {
    display: flex;
    gap: 1rem;
}

    

Textfield

    
      
    
    
      <tui-segmented>
    @for (state of statuses; track state) {
        <button
            type="button"
            (click)="status = state"
        >
            {{ state }}
        </button>
    }
</tui-segmented>

<tui-textfield>
    <label tuiLabel>Card number</label>
    <input
        icon=""
        tuiInputCard
        [disabled]="status === 'disabled'"
        [invalid]="status === 'invalid'"
        [readOnly]="status === 'readOnly'"
        [(ngModel)]="card"
    />
    @if (card.startsWith('1234')) {
        <tui-thumbnail-card
            iconStart="@tui.dollar-sign"
            paymentSystem="visa"
            size="s"
            [style.background]="background"
        />
    }
</tui-textfield>

    
    
      :host {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}