Logo
Stockholm-icons / Layout / Layout-4-blocks Created with Sketch.
Stockholm-icons / Communication / Chat6 Created with Sketch.
Stockholm-icons / Layout / Layout-polygon Created with Figma. Stockholm-icons / Tools / Compass Created with Sketch.
Keen's card custom components handles basic tools (reload, toggle, remove) that can be activated through data-card="true", data-card-tool="toggle", data-card-tool="reload" and data-card-tool="remove" HTML attributes. For more info please check out our Card Documentation.

Card Tools

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum is simply dummy text of the printing and typesetting industry.

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.


                        <div class="card card-custom" id="kt_card_1">
                        	<div class="card-header">
                        		<div class="card-title">
                        			<h3 class="card-label">Card Title</h3>
                        		</div>
                        		<div class="card-toolbar">
                        			<a href="#" class="btn btn-icon btn-sm btn-hover-light-primary mr-1" data-card-tool="toggle" data-toggle="tooltip" data-placement="top" title="Toggle Card">
                        			<i class="ki ki-arrow-down icon-nm"></i>
                        			</a>
                        			<a href="#" class="btn btn-icon btn-sm btn-hover-light-primary mr-1" data-card-tool="reload" data-toggle="tooltip" data-placement="top" title="Reload Card">
                        			<i class="ki ki-reload icon-nm"></i>
                        			</a>
                        			<a href="#" class="btn btn-icon btn-sm btn-hover-light-primary" data-card-tool="remove" data-toggle="tooltip" data-placement="top" title="Remove Card">
                        			<i class="ki ki-close icon-nm"></i>
                        			</a>
                        		</div>
                        	</div>
                        	<div class="card-body">
                        		...
                        	</div>
                        </div>
                        

                        // This card is lazy initialized using data-card="true" attribute. You can access to the card object as shown below and override its behavior
                        var card = new KTCard('kt_card_1');

                        // Toggle event handlers
                        card.on('beforeCollapse', function (card) {
                        	setTimeout(function () {
                        		toastr.info('Before collapse event fired!');
                        	}, 100);
                        });

                        card.on('afterCollapse', function (card) {
                        	setTimeout(function () {
                        		toastr.warning('Before collapse event fired!');
                        	}, 2000);
                        });

                        card.on('beforeExpand', function (card) {
                        	setTimeout(function () {
                        		toastr.info('Before expand event fired!');
                        	}, 100);
                        });

                        card.on('afterExpand', function (card) {
                        	setTimeout(function () {
                        		toastr.warning('After expand event fired!');
                        	}, 2000);
                        });

                        // Remove event handlers
                        card.on('beforeRemove', function (card) {
                        	toastr.info('Before remove event fired!');

                        	return confirm('Are you sure to remove this card ?'); // remove card after user confirmation
                        });

                        card.on('afterRemove', function (card) {
                        	setTimeout(function () {
                        		toastr.warning('After remove event fired!');
                        	}, 2000);
                        });

                        // Reload event handlers
                        card.on('reload', function (card) {
                        	toastr.info('Leload event fired!');

                        	KTApp.block(card.getSelf(), {
                        		overlayColor: '#ffffff',
                        		type: 'loader',
                        		state: 'primary',
                        		opacity: 0.3,
                        		size: 'lg'
                        	});

                        	// update the content here

                        	setTimeout(function () {
                        		KTApp.unblock(card.getSelf());
                        	}, 2000);
                        });
                        

Card Tools

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum is simply dummy text of the printing and typesetting industry.

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.


                        <div class="card card-custom" id="kt_card_2">
                        	<div class="card-header">
                        		<div class="card-title">
                        			<h3 class="card-label">Card Title</h3>
                        		</div>
                        		<div class="card-toolbar">
                        			<a href="#" class="btn btn-icon btn-sm btn-primary mr-1" data-card-tool="toggle" data-toggle="tooltip" data-placement="top" title="Toggle Card">
                        			<i class="ki ki-arrow-down icon-nm"></i>
                        			</a>
                        			<a href="#" class="btn btn-icon btn-sm btn-success mr-1" data-card-tool="reload" data-toggle="tooltip" data-placement="top" title="Reload Card">
                        			<i class="ki ki-reload icon-nm"></i>
                        			</a>
                        			<a href="#" class="btn btn-icon btn-sm btn-warning" data-card-tool="remove" data-toggle="tooltip" data-placement="top" title="Remove Card">
                        			<i class="ki ki-close icon-nm"></i>
                        			</a>
                        		</div>
                        	</div>
                        	<div class="card-body">
                        		...
                        	</div>
                        </div>
                        

                        // This card is lazy initialized using data-card="true" attribute. You can access to the card object as shown below and override its behavior
                        var card = new KTCard('kt_card_1');

                        // Toggle event handlers
                        card.on('beforeCollapse', function (card) {
                        	setTimeout(function () {
                        		toastr.info('Before collapse event fired!');
                        	}, 100);
                        });

                        card.on('afterCollapse', function (card) {
                        	setTimeout(function () {
                        		toastr.warning('Before collapse event fired!');
                        	}, 2000);
                        });

                        card.on('beforeExpand', function (card) {
                        	setTimeout(function () {
                        		toastr.info('Before expand event fired!');
                        	}, 100);
                        });

                        card.on('afterExpand', function (card) {
                        	setTimeout(function () {
                        		toastr.warning('After expand event fired!');
                        	}, 2000);
                        });

                        // Remove event handlers
                        card.on('beforeRemove', function (card) {
                        	toastr.info('Before remove event fired!');

                        	return confirm('Are you sure to remove this card ?'); // remove card after user confirmation
                        });

                        card.on('afterRemove', function (card) {
                        	setTimeout(function () {
                        		toastr.warning('After remove event fired!');
                        	}, 2000);
                        });

                        // Reload event handlers
                        card.on('reload', function (card) {
                        	toastr.info('Leload event fired!');

                        	KTApp.block(card.getSelf(), {
                        		overlayColor: '#ffffff',
                        		type: 'loader',
                        		state: 'primary',
                        		opacity: 0.3,
                        		size: 'lg'
                        	});

                        	// update the content here

                        	setTimeout(function () {
                        		KTApp.unblock(card.getSelf());
                        	}, 2000);
                        });
                        

Card Tools

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum is simply dummy text of the printing and typesetting industry.

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.


                        <div class="card card-custom" id="kt_card_3">
                        	<div class="card-header">
                        		<div class="card-title">
                        			<h3 class="card-label">Card Title</h3>
                        		</div>
                        		<div class="card-toolbar">
                        			<a href="#" class="btn btn-icon btn-circle btn-sm btn-light-primary mr-1" data-card-tool="toggle">
                        			<i class="ki ki-arrow-down icon-nm"></i>
                        			</a>
                        			<a href="#" class="btn btn-icon btn-circle btn-sm btn-light-success mr-1" data-card-tool="reload">
                        			<i class="ki ki-reload icon-nm"></i>
                        			</a>
                        			<a href="#" class="btn btn-icon btn-circle btn-sm btn-light-danger" data-card-tool="remove">
                        			<i class="ki ki-close icon-nm"></i>
                        			</a>
                        		</div>
                        	</div>
                        	<div class="card-body">
                        		...
                        	</div>
                        </div>
                        

                        // This card is lazy initialized using data-card="true" attribute. You can access to the card object as shown below and override its behavior
                        var card = new KTCard('kt_card_3');

                        // Toggle event handlers
                        card.on('beforeCollapse', function (card) {
                        	setTimeout(function () {
                        		toastr.info('Before collapse event fired!');
                        	}, 100);
                        });

                        card.on('afterCollapse', function (card) {
                        	setTimeout(function () {
                        		toastr.warning('Before collapse event fired!');
                        	}, 2000);
                        });

                        card.on('beforeExpand', function (card) {
                        	setTimeout(function () {
                        		toastr.info('Before expand event fired!');
                        	}, 100);
                        });

                        card.on('afterExpand', function (card) {
                        	setTimeout(function () {
                        		toastr.warning('After expand event fired!');
                        	}, 2000);
                        });

                        // Remove event handlers
                        card.on('beforeRemove', function (card) {
                        	toastr.info('Before remove event fired!');

                        	return confirm('Are you sure to remove this card ?'); // remove card after user confirmation
                        });

                        card.on('afterRemove', function (card) {
                        	setTimeout(function () {
                        		toastr.warning('After remove event fired!');
                        	}, 2000);
                        });

                        // Reload event handlers
                        card.on('reload', function (card) {
                        	toastr.info('Leload event fired!');

                        	KTApp.block(card.getSelf(), {
                        		overlayColor: '#ffffff',
                        		type: 'loader',
                        		state: 'primary',
                        		opacity: 0.3,
                        		size: 'lg'
                        	});

                        	// update the content here

                        	setTimeout(function () {
                        		KTApp.unblock(card.getSelf());
                        	}, 2000);
                        });
                        

Default Collapsed

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum is simply dummy text of the printing and typesetting industry.

Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled. Lorem Ipsum is simply dummy text of the printing and typesetting industry. Standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled.


                        <div class="card card-custom card-collapsed" data-card="true" id="kt_card_4">
                        	<div class="card-header">
                        		<div class="card-title">
                        			<h3 class="card-label">Card Title</h3>
                        		</div>
                        		<div class="card-toolbar">
                        			<a href="#" class="btn btn-icon btn-sm btn-light-primary mr-1" data-card-tool="toggle">
                        			<i class="ki ki-arrow-down icon-nm"></i>
                        			</a>
                        			<a href="#" class="btn btn-icon btn-sm btn-light-success mr-1" data-card-tool="reload">
                        			<i class="ki ki-reload icon-nm"></i>
                        			</a>
                        			<a href="#" class="btn btn-icon btn-sm btn-light-danger" data-card-tool="remove">
                        			<i class="ki ki-close icon-nm"></i>
                        			</a>
                        		</div>
                        	</div>
                        	<div class="card-body">
                        		...
                        	</div>
                        </div>
                        

                        // This card is lazy initialized using data-card="true" attribute. You can access to the card object as shown below and override its behavior
                        var card = new KTCard('kt_card_4');

                        // Toggle event handlers
                        card.on('beforeCollapse', function (card) {
                        	setTimeout(function () {
                        		toastr.info('Before collapse event fired!');
                        	}, 100);
                        });

                        card.on('afterCollapse', function (card) {
                        	setTimeout(function () {
                        		toastr.warning('Before collapse event fired!');
                        	}, 2000);
                        });

                        card.on('beforeExpand', function (card) {
                        	setTimeout(function () {
                        		toastr.info('Before expand event fired!');
                        	}, 100);
                        });

                        card.on('afterExpand', function (card) {
                        	setTimeout(function () {
                        		toastr.warning('After expand event fired!');
                        	}, 2000);
                        });

                        // Remove event handlers
                        card.on('beforeRemove', function (card) {
                        	toastr.info('Before remove event fired!');

                        	return confirm('Are you sure to remove this card ?'); // remove card after user confirmation
                        });

                        card.on('afterRemove', function (card) {
                        	setTimeout(function () {
                        		toastr.warning('After remove event fired!');
                        	}, 2000);
                        });

                        // Reload event handlers
                        card.on('reload', function (card) {
                        	toastr.info('Leload event fired!');

                        	KTApp.block(card.getSelf(), {
                        		overlayColor: '#ffffff',
                        		type: 'loader',
                        		state: 'primary',
                        		opacity: 0.3,
                        		size: 'lg'
                        	});

                        	// update the content here

                        	setTimeout(function () {
                        		KTApp.unblock(card.getSelf());
                        	}, 2000);
                        });
                        

User Profile 15 messages

Recent Notifications
Stockholm-icons / Layout / Layout-polygon Created with Figma. Stockholm-icons / Files / File-done Created with Sketch.

Important Notice

Lorem Ipsum is simply dummy text of the printing and industry.

Stockholm-icons / Layout / Layout-polygon Created with Figma. Stockholm-icons / Design / Pen&ruller Created with Sketch.

System Update

There are many variations of passages of Lorem Ipsum available.

Stockholm-icons / Layout / Layout-polygon Created with Figma. Stockholm-icons / General / Thunder-move Created with Sketch.

Server Maintenance

Contrary to popular belief, Lorem Ipsum is not simply random text.

Stockholm-icons / Layout / Layout-polygon Created with Figma. Stockholm-icons / Home / Alarm-clock Created with Sketch.

DB Migration

If you are going to use a passage of Lorem Ipsum, you need.

System Messages
Stockholm-icons / Communication / Group-chat Created with Sketch.
09:30 AM

To start a blog, think of a topic about and first brainstorm ways to write details

Stockholm-icons / General / Attachment2 Created with Sketch.
2:45 PM

To start a blog, think of a topic about and first brainstorm ways to write details

Stockholm-icons / Home / Library Created with Sketch.
3:12 PM

To start a blog, think of a topic about and first brainstorm ways to write details

Stockholm-icons / Communication / Add-user Created with Sketch.
7:05 PM

To start a blog, think of a topic about and first brainstorm ways to write details

Privacy Settings:

After you log in, you will be asked for additional information to confirm your identity.

Security Settings:

After you log in, you will be asked for additional information to confirm your identity. For extra security, this requires you to confirm your email. Learn more.

Stockholm-icons / Navigation / Up-2 Created with Sketch.

Select A Demo

Demo 1
Demo 2
Demo 3
Demo 4
Demo 5
Demo 6
Demo 7
Demo 8
Demo 9