Angular JS Cards
Cards for Angular JS and Ionic 1
Cards for Angular JS and Ionic 1
Cards for Angular JS and Ionic 1
Cards component for rendering any type of content: photos, text, video and forms in a consistent way.
Use it for organizing content and provide entry points with optional actions.
Shipping with useful features for creating effective layouts:
- Built from three blocks: header, content & footer
- Fully supports typograpy elements & classes
- Thumbnail, avatar, inline & cover image support
- Integrates with horizontal scroll view and list view
- Multiple theme support
- Lightweight footprint
- RTL Support
- Supports card collections
Cards demos available for other frameworks.
Viewing demos & code for
Cards - Basic
angular
.module('demoApp', ['mobiscroll-cards'])
.controller('demoController', ['$scope', function ($scope) {
$scope.settings = {
lang: '',
theme: ''
};
$scope.action = function (txt) {
mobiscroll.toast({
message: txt + ' clicked'
});
}
}]);
<div ng-app="demoApp" ng-controller="demoController">
<mobiscroll-card>
<mobiscroll-card-header>
<mobiscroll-card-title>Title</mobiscroll-card-title>
<mobiscroll-card-subtitle>Subtitle</mobiscroll-card-subtitle>
</mobiscroll-card-header>
<mobiscroll-card-content>
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 it to make a type specimen book.
</mobiscroll-card-content>
<mobiscroll-card-footer>This is a footer</mobiscroll-card-content>
</mobiscroll-card>
<mobiscroll-card>
<mobiscroll-card-content>
<mobiscroll-card-title>Don't forget Jenifer's birthday</mobiscroll-card-title>
</mobiscroll-card-content>
<mobiscroll-card-footer>
<button ng-click="action('Call')" class="mbsc-btn-flat" data-icon="phone">Call</button>
<button ng-click="action('Message')" class="mbsc-btn-flat" data-icon="bubble">Message</button>
</mobiscroll-card-footer>
</mobiscroll-card>
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/card_5.png">
<mobiscroll-card-content>
Explore the azure depths with a stay at the Manta Resort's underwater room.
</mobiscroll-card-content>
<mobiscroll-card-footer>
<button class="mbsc-btn-flat">Share</button>
<button class="mbsc-btn-flat">Explore</button>
</mobiscroll-card-footer>
</mobiscroll-card>
</div>
Cards - Images
angular
.module('demoApp', ['mobiscroll-cards'])
.controller('demoController', ['$scope', function ($scope) {
$scope.settings = {
lang: '',
theme: ''
};
}]);
<div ng-app="demoApp" ng-controller="demoController">
<mobiscroll-card mobiscroll-options="settings">
<img src="https://img.mobiscroll.com/demos/card_2.png">
<mobiscroll-card-header>
<mobiscroll-card-title>Best animal adventure</mobiscroll-card-title>
</mobiscroll-card-header>
<mobiscroll-card-content>
A young panda tests his climbing skills at the Chengdu Research Base.
</mobiscroll-card-content>
<mobiscroll-card-footer>
<button class="mbsc-btn-flat">Share</button>
<button class="mbsc-btn-flat">Explore</button>
</mobiscroll-card-footer>
</mobiscroll-card>
<mobiscroll-card mobiscroll-options="settings">
<mobiscroll-card-header>
<mobiscroll-card-title>15 minutes to work</mobiscroll-card-title>
</mobiscroll-card-header>
<img src="https://img.mobiscroll.com/demos/route.png">
<mobiscroll-card-content class="mbsc-btn-group-block">
<button class="mbsc-btn-flat mbsc-align-left" data-icon="ion-navigate">Navigate / 15 min. via Shotwell St</button>
<button class="mbsc-btn-flat mbsc-align-left" data-icon="fa-rotate-left">Alternative route / 18 mins</button>
</mobiscroll-card-content>
</mobiscroll-card>
<mobiscroll-card mobiscroll-options="settings" class="md-card-bg">
<img src="https://mobiscroll.com/content/img/demos/card_6.png">
<h2 class="md-card-title mbsc-align-center">Las Vegas</h2>
<h5 class="md-card-subtitle mbsc-align-center mbsc-bold">63 apartments available</h5>
</mobiscroll-card>
<mobiscroll-card mobiscroll-options="settings">
<img class="mbsc-img-thumbnail mbsc-pull-right" width="90" height="90" src="https://img.mobiscroll.com/demos/card_3.png" />
<mobiscroll-card-header>
<mobiscroll-card-title>Best places</mobiscroll-card-title>
</mobiscroll-card-header>
<mobiscroll-card-content>
A view across the Turnagain Arm on Alaska's Kenai Peninsula.
</mobiscroll-card-content>
</mobiscroll-card>
</div>
.md-card-bg .md-card-subtitle,
.md-card-bg .md-card-title {
position: absolute;
top: 50%;
color: #fff;
width: 100%;
}
.md-card-bg .md-card-title {
margin-top: -30px;
}
.md-card-bg .md-card-subtitle {
margin-top: 10px;
}
Cards - Video
angular
.module('demoApp', ['mobiscroll-cards'])
.controller('demoController', ['$scope', function ($scope) {
$scope.settings = {
lang: '',
theme: ''
};
}]);
<div ng-app="demoApp" ng-controller="demoController">
<mobiscroll-card mobiscroll-options="settings">
<video autoplay muted>
<source src="http://img.mobiscroll.com/demos/trailer_iphone.m4v" type="video/x-m4v">
</video>
<mobiscroll-card-header>
<mobiscroll-card-title>Big Buck Bunny</mobiscroll-card-title>
</mobiscroll-card-header>
<mobiscroll-card-content>
Open movie made with open source software. Check out it's trailer!
</mobiscroll-card-content>
</mobiscroll-card>
<mobiscroll-card mobiscroll-options="settings">
<video autoplay muted>
<source src="http://img.mobiscroll.com/demos/trailer_iphone.m4v" type="video/x-m4v">
</video>
<mobiscroll-card-footer>
<button class="mbsc-btn-flat">Play</button>
<button class="mbsc-btn-flat">Reset</button>
</mobiscroll-card-footer>
</mobiscroll-card>
</div>
Cards - Lists
angular
.module('demoApp', ['mobiscroll-cards', 'mobiscroll-listview'])
.controller('demoController', ['$scope', function ($scope) {
$scope.settings = {
lang: '',
theme: ''
};
$scope.actionSettings = {
theme: '',
lang: '',
swipe: false,
enhance: true
};
$scope.nextId = 30;
$scope.todoSettings = {
theme: '',
lang: '',
stages: {
left: [{
key: 'stage1',
icon: 'plus',
color: '#31c6e7',
text: 'Add',
action: function (event, inst) {
$scope.$apply(function () {
$scope.todos.splice(event.index + 1, 0, {
id: $scope.nexId++,
todo: 'New Todo',
checked: false
});
});
}
}],
right: [{
key: 'stage2',
color: '#009688',
text: 'Remove',
icon: 'remove',
action: function (event, inst) {
$scope.$apply(function () {
$scope.todos.splice(event.index, 1);
});
return false;
}
}]
}
}
$scope.actions = [{
id: 1,
title: "Edit profile",
icon: 'line-user',
children: [{
id: 2,
title: 'Change password',
icon: 'line-key'
}, {
id: 3,
title: 'Change personal information',
icon: 'line-user'
}]
}, {
id: 4,
title: 'Settings',
icon: 'line-settings',
children: [{
id: 5,
title: 'Sound settings',
icon: 'line-megaphone'
}, {
id: 6,
title: 'Notification settings',
icon: 'line-params'
}, {
id: 7,
title: 'Change theme',
icon: 'line-t-shirt'
}]
}, {
id: 8,
title: 'Rate',
icon: 'line-heart',
children: [{
id: 9,
title: 'Rate this application',
icon: 'line-star'
}]
}, {
id: 10,
title: 'Tell a friend',
icon: 'line-bubble',
children: [{
id: 11,
title: 'Share it in Email',
icon: 'line-mail'
}, {
id: 12,
title: 'Share it on Social Media',
icon: 'line-world'
}]
}, {
id: 13,
title: 'Term of service',
icon: 'line-note',
children: [{
id: 14,
title: 'This application content is under WTFPL license.'
}]
}, {
id: 15,
title: 'Contact us',
icon: 'line-mail',
children: [{
id: 16,
title: 'Let us know if we can help',
icon: 'line-mail'
}]
}, {
id: 17,
title: 'About us',
icon: 'line-world',
children: [{
id: 18,
title: 'We are the Mobiscroll team.'
}]
}];
$scope.todos = [{
id: 19,
todo: 'Do the laundry',
checked: true
}, {
id: 20,
todo: 'Check out new Mobiscroll features',
checked: false
}, {
id: 21,
todo: 'Don\'t forget Mom\'s birthday',
checked: true
}, {
id: 22,
todo: 'Update my app with the latest Mobiscroll',
checked: false
}, {
id: 23,
todo: 'Buy new shoes',
checked: false
}, {
id: 24,
todo: 'Need ketchup for pizza',
checked: false
}];
}]);
<div ng-app="demoApp" ng-controller="demoController">
<mobiscroll-card options="settings">
<ul mobiscroll-listview="todoSettings" mobiscroll-data="todos" mbsc-enhance>
<li><input type="checkbox" data-role="none" ng-model="item.checked" /> {{item.todo}}</li>
</ul>
</mobiscroll-card>
<mobiscroll-card options="settings">
<ul mobiscroll-listview="actionSettings" mobiscroll-data="actions">
<li data-id="{{item.id}}" data-icon="{{item.icon}}">
{{item.title}}
</li>
</ul>
</mobiscroll-card>
</div>
.mbsc-lv-cont .cd-todo-item {
padding: 0;
}
Cards - Social cards
angular
.module('demoApp', ['mobiscroll-cards', 'mobiscroll-page'])
.controller('demoController', ['$scope', function ($scope) {
$scope.settings = {
lang: '',
theme: ''
};
}]);
<div ng-app="demoApp" ng-controller="demoController">
<mobiscroll-card options="cardSettings">
<mobiscroll-card-header>
<img src="https://img.mobiscroll.com/demos/mr-profile2.png" mobiscroll-avatar />
<mobiscroll-card-title class="mbsc-bold">Carl Obama</mobiscroll-card-title>
<mobiscroll-card-subtitle> at 5:16 PM</mobiscroll-card-subtitle>
</mobiscroll-card-header>
<img src="https://img.mobiscroll.com/demos/Blueberry.png">
<mobiscroll-card-content>
Yeaahhh :D :D :D I've made it. It took me 3 months to improve my blueberry cake. But it's perfect now. :P
</mobiscroll-card-content>
<mobiscroll-card-footer>
<button class="mbsc-btn mbsc-btn-flat" data-icon="heart"></button>
<button class="mbsc-btn mbsc-btn-flat" data-icon="thumbs-up2"></button>
<button class="mbsc-btn mbsc-btn-flat" data-icon="material-message"></button>
<button class="mbsc-btn mbsc-btn-flat" data-icon="tag"></button>
</mobiscroll-card-footer>
</mobiscroll-card>
<mobiscroll-card options="cardSettings">
<mobiscroll-card-header>
<img src="https://img.mobiscroll.com/demos/mrs-profile1.png" mobiscroll-avatar>
<mobiscroll-card-title class="mbsc-bold">Hortense Tinker</mobiscroll-card-title>
<mobiscroll-card-subtitle> at 4:55 PM</mobiscroll-card-subtitle>
</mobiscroll-card-header>
<img src="https://img.mobiscroll.com/demos/card_1.png">
<mobiscroll-card-content>
Best places to seek silence !!! The Dhamma Giri, a vipassana meditation retreat.
</mobiscroll-card-content>
<mobiscroll-card-footer class="mbsc-align-right">
<button class="mbsc-btn mbsc-btn-flat" data-icon="fa-mail-reply"></button>
<button class="mbsc-btn mbsc-btn-flat" data-icon="star3">3</button>
<button class="mbsc-btn mbsc-btn-flat" data-icon="fa-retweet">5</button>
<button class="mbsc-btn mbsc-btn-flat" data-icon="fa-ellipsis-h"></button>
</mobiscroll-card-footer>
</mobiscroll-card>
<mobiscroll-card options="cardSettings">
<mobiscroll-card-header>
<img src="https://img.mobiscroll.com/demos/mrs-profile2.png" mobiscroll-avatar>
<mobiscroll-card-title class="mbsc-bold">Jenna Doe</mobiscroll-card-title>
<mobiscroll-card-subtitle> at 4:16 PM</mobiscroll-card-subtitle>
</mobiscroll-card-header>
<img src="https://img.mobiscroll.com/demos/card_2.png">
<mobiscroll-card-content>
There is a new baby panda at the zoo.... :) :O :D
</mobiscroll-card-content>
<mobiscroll-card-footer class="mbsc-align-right">
<button class="mbsc-btn mbsc-btn-flat" data-icon="fa-mail-reply"></button>
<button class="mbsc-btn mbsc-btn-flat" data-icon="star3">19</button>
<button class="mbsc-btn mbsc-btn-flat" data-icon="fa-retweet">3</button>
<button class="mbsc-btn mbsc-btn-flat" data-icon="fa-ellipsis-h"></button>
</mobiscroll-card-footer>
</mobiscroll-card>
<mobiscroll-card options="cardSettings">
<mobiscroll-card-header>
<img src="https://img.mobiscroll.com/demos/mr-profile1.png" mobiscroll-avatar>
<mobiscroll-card-title class="mbsc-bold">John Bush</mobiscroll-card-title>
<mobiscroll-card-subtitle> at 2:23 PM</mobiscroll-card-subtitle>
</mobiscroll-card-header>
<img src="https://img.mobiscroll.com/demos/account-background.jpg">
<mobiscroll-card-content>
Best trip ever!!! :D I'll definetly come back here. :)
</mobiscroll-card-content>
<mobiscroll-card-footer>
<button class="mbsc-btn mbsc-btn-flat">Like</button>
<button class="mbsc-btn mbsc-btn-flat">Share</button>
</mobiscroll-card-footer>
</mobiscroll-card>
</div>
Cards - Forms
angular
.module('demoApp', ['mobiscroll-cards', 'mobiscroll-form', 'mobiscroll-calendar'])
.controller('demoController', ['$scope', function ($scope) {
$scope.settings = {
lang: '',
theme: ''
};
$scope.general = 70;
$scope.alarm = 60;
$scope.mobile = 30;
$scope.inlineSettings = {
display: 'inline'
};
}]);
<div ng-app="demoApp" ng-controller="demoController">
<mobiscroll-card options="settings">
<mobiscroll-card-header>
<mobiscroll-card-title>Volume</mobiscroll-card-title>
</mobiscroll-card-header>
<mobiscroll-card-content>
<label>
<input type="range" mobiscroll-slider ng-model="general" data-icon='{ "left": "volume-medium" }' />
</label>
<label>
<input type="range" mobiscroll-slider ng-model="alarm" data-icon='{ "left": "alarm2" }' />
</label>
<label>
<input type="range" mobiscroll-slider ng-model="mobile" data-icon='{ "left": "mobile" }' />
</label>
</mobiscroll-card-content>
</mobiscroll-card>
<mobiscroll-card options="settings">
<mobiscroll-card-header>
<mobiscroll-card-title>Confirm Purchase</mobiscroll-card-title>
</mobiscroll-card-header>
<mobiscroll-card-content>
<label>
Name
<input type="text" placeholder="Required" />
</label>
<label>
Card
<input type="text" placeholder="Credit card number" />
</label>
<label>
Expiration
<input type="text" placeholder="Required" />
</label>
<label>
Security
<input type="text" placeholder="3-digit CVV" />
</label>
</mobiscroll-card-content>
<div class="mbsc-btn-group-block mbsc-padding">
<button class="mbsc-btn-primary">Confirm</button>
</div>
</mobiscroll-card>
<mobiscroll-card>
<mobiscroll-card-header>
<mobiscroll-card-title>Calendar</mobiscroll-card-title>
</mobiscroll-card-header>
<mobiscroll-card-content>
<div ng-model="myCalInline" mobiscroll-calendar="inlineSettings"></div>
</mobiscroll-card-content>
</mobiscroll-card>
</div>
Cards - Swipe away
angular
.module('demoApp', ['mobiscroll-cards', 'mobiscroll-listview'])
.controller('demoController', ['$scope', function ($scope) {
$scope.listSettings = {
theme: '',
lang: '',
stages: [{
percent: -20,
action: (event, inst) => {
inst.remove(event.target);
return false;
}
}, {
percent: 20,
action: (event, inst) => {
inst.remove(event.target);
return false;
}
}]
};
$scope.cardList = [{
title: 'Netflix',
text: 'Sherlock Series 3 is now avalable on Netflix',
img: 'https://img.mobiscroll.com/demos/netflix.png',
type: 'appNote'
}, {
title: 'Angry birds',
text: 'Dont forget your daily Arena entry.',
img: 'https://img.mobiscroll.com/demos/angrybirds.png',
type: 'appNote'
}, {
title: 'Candycam',
text: 'A new update is available!',
img: 'https://img.mobiscroll.com/demos/candycam.png',
type: 'appNote'
}, {
title: 'Subway Surf',
text: 'Is it your lucky day? 24-Hour Mega Jackpint Event happening right now!',
img: 'https://img.mobiscroll.com/demos/subwaysurf.png',
type: 'appNote'
}, {
title: 'Mobiscroll',
text: 'The new Mobiscroll 4.0.0 is out!',
img: 'https://img.mobiscroll.com/demos/mbsc-logo.png',
type: 'appNote'
}, {
title: 'Open Camera',
text: 'A new update is available!',
img: 'https://img.mobiscroll.com/demos/opencam.png',
type: 'appNote'
}];
}]);
<div ng-app="demoApp" ng-controller="demoController">
<ul mobiscroll-listview="listSettings" mobiscroll-data="cardList">
<li mobiscroll-card>
<mobiscroll-card-content>
<img src="{{item.img}}" class="mbsc-avatar" draggable="false" />
<mobiscroll-card-title>{{item.title}}</mobiscroll-card-title>
<mobiscroll-card-subtitle>{{item.text}}</mobiscroll-card-subtitle>
</mobiscroll-card-content>
</li>
</ul>
</div>
Cards - Stacked cards
mobiscroll.settings = {
lang: '',
theme: ''
};
angular
.module('demoApp', ['mobiscroll-listview', 'mobiscroll-cards'])
.controller('demoController', ['$scope', function ($scope) {
$scope.data = [{
id: 1,
title: 'Best places to seek silence',
desc: 'The Dhamma Giri, a vipassana meditation retreat.',
img: 'https://img.mobiscroll.com/demos/card_1.png'
}, {
id: 2,
title: 'Best animal adventure',
desc: 'A young panda tests his climbing skills at the Chengdu Research Base.',
img: 'https://img.mobiscroll.com/demos/card_2.png'
}, {
id: 3,
title: 'Best places to test your survival skills',
desc: 'A view across the Turnagain Arm on Alaska\'s Kenai Peninsula.',
img: 'https://img.mobiscroll.com/demos/card_3.png'
}, {
id: 4,
title: 'Most accessible destinations',
desc: 'The impressive Mayan site of Chichén Itzá.',
img: 'https://img.mobiscroll.com/demos/card_4.png'
}, {
id: 5,
title: 'The world’s most extraordinary sleepovers',
desc: 'Explore the azure depths with a stay at the Manta Resort\'s underwater room.',
img: 'https://img.mobiscroll.com/demos/card_5.png'
}];
$scope.settings = {
stages: [{
percent: -20,
action: (event, inst) => {
inst.remove(event.target);
return false;
}
}, {
percent: 20,
action: (event, inst) => {
inst.remove(event.target);
return false;
}
}]
};
$scope.cycleSettings = {
stages: [{
percent: -20,
action: (event, inst) => {
inst.move(event.target, 0);
return false;
}
}, {
percent: 20,
action: (event, inst) => {
inst.move(event.target, 0);
return false;
}
}]
};
}]);
<div ng-app="demoApp" ng-controller="demoController">
<div class="mbsc-note mbsc-note-primary">
Swipe cards left or right.
</div>
<ul mobiscroll-listview="settings" mobiscroll-data="data" class="mbsc-card-list custom-card-deck">
<li class="custom-card">
<mobiscroll-card class="custom-card" ng-class="{'custom-card-rotate-right': ($index % 2) == 0, 'custom-card-rotate-left': ($index % 3) == 0}">
<mobiscroll-card-header>
<mobiscroll-card-title>{{item.title}}</mobiscroll-card-title>
<mobiscroll-card-subtitle>{{item.desc}}</mobiscroll-card-subtitle>
</mobiscroll-card-header>
<mobiscroll-card-content>
<img draggable="false" ng-src="{{item.img}}">
</mobiscroll-card-content>
</mobiscroll-card>
</li>
</ul>
<div class="mbsc-note mbsc-note-primary">
Swipe cards away for cyclic movement.
</div>
<ul mobiscroll-listview="cycleSettings" mobiscroll-data="data" class="mbsc-card-list custom-card-deck">
<li class="custom-card" ng-class="{'custom-card-rotate-right': ($index % 2) == 0, 'custom-card-rotate-left': ($index % 3) == 0}">
<mobiscroll-card class="custom-card">
<mobiscroll-card-header>
<mobiscroll-card-title>{{item.title}}</mobiscroll-card-title>
<mobiscroll-card-subtitle>{{item.desc}}</mobiscroll-card-subtitle>
</mobiscroll-card-header>
<mobiscroll-card-content>
<img draggable="false" ng-src="{{item.img}}">
</mobiscroll-card-content>
</mobiscroll-card>
</li>
</ul>
</div>
.custom-card-deck,
.custom-card-deck .mbsc-lv-v {
height: 400px;
max-width: 500px;
margin: 15px auto;
}
.custom-card-deck .mbsc-lv-item {
position: absolute;
top: 0;
left: 0;
right: 0;
}
.custom-card-deck .mbsc-lv-item.mbsc-lv-item-swiping {
z-index: 10;
}
.custom-card-deck .custom-card {
height: 320px;
}
.custom-card-deck .custom-card-rotate-right {
transform: rotate(1deg);
}
.custom-card-deck .custom-card-rotate-left {
transform: rotate(-2deg);
}
.custom-card-deck .mbsc-card.custom-card {
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12);
}
Cards - Content
angular
.module('demoApp', ['mobiscroll-cards'])
.controller('demoController', ['$scope', function ($scope) {
$scope.settings = {
lang: '',
theme: ''
};
}]);
<div ng-app="demoApp" ng-controller="demoController">
<div class="mbsc-padding">
<h3>Sunrise</h3>
<p>Sunrise or sun up is the instant at which the upper edge of the Sun appears over the horizon in the morning. The term can also refer to the entire process of the Sun crossing the horizon and its accompanying atmospheric effects.</p>
<mobiscroll-card mobiscroll-options="settings">
<img src="https://img.mobiscroll.com/demos/bookpic.png">
<mobiscroll-card-footer>
A red sunrise near Swifts Creek, Australia
</mobiscroll-card-footer>
</mobiscroll-card>
<p>Although the Sun appears to "rise" from the horizon, it is actually the Earth's motion that causes the Sun to appear. The illusion of a moving Sun results from Earth observers being in a rotating reference frame; this apparent motion is so convincing
that most cultures had mythologies and religions built around the geocentric model, which prevailed until astronomer Nicolaus Copernicus first formulated the heliocentric model in the 16th century.</p>
</div>
</div>
Cards - Tabs
angular
.module('demoApp', ['mobiscroll-cards', 'mobiscroll-navigation'])
.controller('demoController', ['$scope', function ($scope) {
$scope.settings = {
lang: '',
theme: ''
};
$scope.navSettings = {
theme: '',
lang: '',
type: 'tab',
display: 'inline'
};
$scope.selectedMenu = 'food';
}]);
<div ng-app="demoApp" ng-controller="demoController">
<mobiscroll-card options="settings">
<mobiscroll-card-content>
<div class="mbsc-card-title">Daily tips</div>
</mobiscroll-card-content>
<ul mobiscroll-tab-nav="navSettings" class="mbsc-cloak">
<li data-selected="true" ng-click="selectedMenu = 'food'">Food</li>
<li ng-click="selectedMenu = 'tech'">Technology</li>
<li ng-click="selectedMenu = 'travel'">Travel</li>
</ul>
<mobiscroll-card-content>
<div ng-if="selectedMenu == 'food'">
<h4>Ina's Mac and Cheese</h4>
<p>
Here's what one recipe reviewer had to say: "This mac and cheese is all grown-up. It was tasty, cheesy and easy to make. Have made it a few times in the last 2 months and it is a hit each time."
</p>
</div>
<div ng-if="selectedMenu == 'tech'">
<h4>Google Go</h4>
<p>
Google Go makes discovering, exploring, and sharing the best of the web easy and fast. Get answers quickly and reliably with Google Go, even on slow connections and smartphones with low space. At 5MB in size, it’s speedy to download and get started.
</p>
</div>
<div ng-if="selectedMenu == 'travel'">
<h4>Take Lots Of Photos</h4>
<p>
You may only see these places & meet these people once in your lifetime. Remember them forever with plenty of photos. Don’t worry about looking like a “tourist”. Are you traveling to look cool? No one cares. Great photos are the ultimate souvenir.
</p>
</div>
</mobiscroll-card-content>
<mobiscroll-card-footer class="mbsc-card-footer mbsc-align-right">
<button class="mbsc-btn-flat">Read more</button>
</mobiscroll-card-footer>
</mobiscroll-card>
</div>
.md-card-tab {
display: none;
}
.md-card-tab-sel {
display: block;
}
Cards - Collapsible
angular
.module('demoApp', ['mobiscroll-cards', 'mobiscroll-form'])
.controller('demoController', ['$scope', function ($scope) {
var collapsibles = document.querySelectorAll('[data-collapsible]');
$scope.settings = {
lang: '',
theme: ''
};
$scope.hideAll = function () {
for (var i = 0; i < collapsibles.length; ++i) {
mobiscroll.instances[collapsibles[i].id].hide();
}
}
$scope.toggleFirst = function () {
mobiscroll.instances[collapsibles[0].id].toggle();
}
}]);
<div ng-app="demoApp" ng-controller="demoController">
<div mobiscroll-form="settings">
<div class="mbsc-align-center">
<div class="mbsc-note mbsc-note-primary">Use collapsible cards for segmenting long forms and to hide content.</div>
</div>
<div class="mbsc-btn-group-block">
<button ng-click="toggleFirst()">Toggle first card</button>
<button ng-click="hideAll()">Close all cards</button>
</div>
</div>
<mobiscroll-card data-collapsible>
<mobiscroll-card-header>
<div>
<div class="mbsc-card-subtitle mbsc-bold mbsc-txt-s">27/07/2018</div>
<div class="mbsc-bold">FRIDAY AFTERNOON RUN</div>
<div class="mbsc-grid mbsc-margin mbsc-txt-muted mbsc-bold mbsc-txt-s">
<div class="mbsc-row mbsc-no-padding">
<div class="mbsc-col">5.43km</div>
<div class="mbsc-col">5'44"/km</div>
<div class="mbsc-col">30:45</div>
</div>
</div>
</div>
</mobiscroll-card-header>
<mobiscroll-card-content class="mbsc-no-padding">
<img src="https://img.mobiscroll.com/demos/run-1.png" />
<div class="mbsc-btn-group-block">
<button class="mbsc-btn-primary">View details</button>
<button class="mbsc-btn-secondary">Share your run</button>
</div>
</mobiscroll-card-content>
</mobiscroll-card>
<mobiscroll-card data-collapsible data-open>
<mobiscroll-card-header>
<div>
<div class="mbsc-card-subtitle mbsc-bold mbsc-txt-s">30/07/2018</div>
<div class="mbsc-bold">MONDAY AFTERNOON RUN</div>
<div class="mbsc-grid mbsc-margin mbsc-txt-muted mbsc-bold mbsc-txt-s">
<div class="mbsc-row mbsc-no-padding">
<div class="mbsc-col">4.28km</div>
<div class="mbsc-col">4'12"/km</div>
<div class="mbsc-col">26:41</div>
</div>
</div>
</div>
</mobiscroll-card-header>
<mobiscroll-card-content class="mbsc-no-padding">
<img src="https://img.mobiscroll.com/demos/run-2.png" />
<div class="mbsc-btn-group-block">
<button class="mbsc-btn-primary">View details</button>
<button class="mbsc-btn-secondary">Share your run</button>
</div>
</mobiscroll-card-content>
</mobiscroll-card>
<mobiscroll-card data-collapsible>
<mobiscroll-card-header>
<div>
<div class="mbsc-card-subtitle mbsc-bold mbsc-txt-s">01/08/2018</div>
<div class="mbsc-bold">WEDNESDAY AFTERNOON RUN</div>
<div class="mbsc-grid mbsc-margin mbsc-txt-muted mbsc-bold mbsc-txt-s">
<div class="mbsc-row mbsc-no-padding">
<div class="mbsc-col">7.02km</div>
<div class="mbsc-col">3'48"/km</div>
<div class="mbsc-col">38:41</div>
</div>
</div>
</div>
</mobiscroll-card-header>
<mobiscroll-card-content class="mbsc-no-padding">
<img src="https://img.mobiscroll.com/demos/run-3.png" />
<div class="mbsc-btn-group-block">
<button class="mbsc-btn-primary">View details</button>
<button class="mbsc-btn-secondary">Share your run</button>
</div>
</mobiscroll-card-content>
</mobiscroll-card>
</div>
Cards - Accordion
angular
.module('demoApp', ['mobiscroll-form', 'mobiscroll-cards', 'mobiscroll-listview'])
.controller('demoController', ['$scope', function ($scope) {
var collapsibles = document.querySelectorAll('[data-collapsible]');
$scope.data = [{
email: 'adeline-s@bigcorp.com',
phone: '(202) 555-0147',
},
{
email: 'carl.h@washaway.com',
phone: '(202) 553-5247',
},
{
email: 'hortense@tinker.com',
phone: '(202) 555-0137',
},
{
email: 'barry.ly@roads.com',
phone: '(302) 663-5247',
}
];
$scope.lvSettings = {
swipe: false,
enhance: true
}
$scope.settings = {
lang: '',
theme: ''
};
$scope.hideAll = function () {
for (var i = 0; i < collapsibles.length; ++i) {
mobiscroll.instances[collapsibles[i].id].hide();
}
}
$scope.toggleLast = function () {
mobiscroll.instances[collapsibles[3].id].toggle();
}
}]);
<div ng-app="demoApp" ng-controller="demoController">
<div mobiscroll-form="settings">
<div class="mbsc-align-center">
<div class="mbsc-note mbsc-note-primary">Use the accordion on forms to open only one panel at a time.</div>
</div>
<div class="mbsc-btn-group-block">
<button ng-click="toggleLast()">Toggle last panel</button>
<button ng-click="hideAll()">Close all panels</button>
</div>
</div>
<div mobiscroll-form mbsc-accordion>
<div mobiscroll-card data-collapsible data-open>
<div class="mbsc-card-header">
<img src="https://img.mobiscroll.com/demos/f2.png" class="mbsc-avatar">
<h5 class="mbsc-card-title mbsc-bold">Adeline Sharman</h5>
<div class="mbsc-card-subtitle">Bigcorp Inc.</div>
</div>
<div class="mbsc-card-content">
<ul class="mbsc-cloak" mobiscroll-listview="lvSettings" mobiscroll-data="[data[0]]">
<li data-icon="material-email">
<p>Email</p>
<h4><a href="hortense@tinker.com">{{item.email}}</a></h4>
</li>
<li data-icon="material-phone-iphone">
<p>Mobile</p>
<h4><a href="tel:(202) 555-0137">{{item.phone}}</a></h4>
</li>
</ul>
</div>
</div>
<div mobiscroll-card data-collapsible>
<div class="mbsc-card-header">
<img src="https://img.mobiscroll.com/demos/m2.png" class="mbsc-avatar">
<h5 class="mbsc-card-title mbsc-bold">Carl Hambledon</h5>
<div class="mbsc-card-subtitle">Washaway Ltd.</div>
</div>
<div class="mbsc-card-content">
<ul class="mbsc-cloak" mobiscroll-listview="lvSettings" mobiscroll-data="[data[1]]">
<li data-icon="material-email">
<p>Email</p>
<h4><a href="hortense@tinker.com">{{item.email}}</a></h4>
</li>
<li data-icon="material-phone-iphone">
<p>Mobile</p>
<h4><a href="tel:(202) 555-0137">{{item.phone}}</a></h4>
</li>
</ul>
</div>
</div>
<div mobiscroll-card data-collapsible>
<div class="mbsc-card-header">
<img src="https://img.mobiscroll.com/demos/f1.png" class="mbsc-avatar">
<h5 class="mbsc-card-title mbsc-bold">Hortense Tinker</h5>
<div class="mbsc-card-subtitle">Tinker Records</div>
</div>
<div class="mbsc-card-content">
<ul mobiscroll-listview="lvSettings" mobiscroll-data="[data[2]]">
<li data-icon="material-email">
<p>Email</p>
<h4><a href="hortense@tinker.com">{{item.email}}</a></h4>
</li>
<li data-icon="material-phone-iphone">
<p>Mobile</p>
<h4><a href="tel:(202) 555-0137">{{item.phone}}</a></h4>
</li>
</ul>
</div>
</div>
<div mobiscroll-card data-collapsible>
<div class="mbsc-card-header">
<img src="https://img.mobiscroll.com/demos/m1.png" class="mbsc-avatar">
<h5 class="mbsc-card-title mbsc-bold">Barry Lyon</h5>
<div class="mbsc-card-subtitle">Road Scrapers Inc</div>
</div>
<div class="mbsc-card-content">
<ul class="mbsc-cloak" mobiscroll-listview="lvSettings" mobiscroll-data="[data[3]]">
<li data-icon="material-email">
<p>Email</p>
<h4><a href="hortense@tinker.com">{{item.email}}</a></h4>
</li>
<li data-icon="material-phone-iphone">
<p>Mobile</p>
<h4><a href="tel:(202) 555-0137">{{item.phone}}</a></h4>
</li>
</ul>
</div>
</div>
</div>
</div>
Cards - Masonry layout
angular
.module('demoApp', ['mobiscroll-cards'])
.controller('demoController', ['$scope', function ($scope) {
$scope.settings = {
lang: '',
theme: ''
};
}]);
<div ng-app="demoApp" ng-controller="demoController">
<div class="mbsc-grid-lg mbsc-grid-fixed mbsc-no-padding">
<div class="mbsc-row">
<div class="mbsc-col">
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/world-cup-1.jpg">
</mobiscroll-card>
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/world-cup-2.jpg">
</mobiscroll-card>
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/world-cup-3.jpg">
</mobiscroll-card>
</div>
<div class="mbsc-col">
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/world-cup-4.jpg">
</mobiscroll-card>
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/world-cup-5.jpg">
</mobiscroll-card>
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/world-cup-6.jpg">
</mobiscroll-card>
</div>
<div class="mbsc-col">
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/world-cup-7.jpg">
</mobiscroll-card>
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/world-cup-8.jpg">
</mobiscroll-card>
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/world-cup-9.jpg">
</mobiscroll-card>
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/world-cup-10.jpg">
</mobiscroll-card>
</div>
<div class="mbsc-col">
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/world-cup-11.jpg">
</mobiscroll-card>
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/world-cup-12.jpg">
</mobiscroll-card>
<mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/world-cup-13.jpg">
</mobiscroll-card>
</div>
</div>
</div>
</div>
Cards - Grid layout
mobiscroll.settings = {
lang: '',
theme: ''
}
angular
.module('demoApp', ['mobiscroll-cards', 'mobiscroll-scrollview', 'mobiscroll-form'])
.controller('demoController', ['$scope', function ($scope) {
$scope.birds = [{
img: 'toucan.jpg',
name: 'Toucan'
}, {
img: 'kingfisher.jpg',
name: 'Kingfisher'
}, {
img: 'swift.jpg',
name: 'Swift'
}, {
img: 'humming.jpg',
name: 'Humming bird'
}, {
img: 'columbidae.jpg',
name: 'Columbidae'
}, {
img: 'hornbill.jpg',
name: 'Hornbill'
}, {
img: 'spoonbill.jpg',
name: 'Spoonbill'
}, {
img: 'bee-eater.jpg',
name: 'Bee-eater'
}, {
img: 'parrot.jpg',
name: 'Parrot'
}, {
img: 'goose.jpg',
name: 'Goose bird'
}, {
img: 'woodpecker.jpg',
name: 'Woodpecker'
}, {
img: 'penguin.jpg',
name: 'Penguin'
}]
$scope.animals = [{
img: 'okapi.jpg',
name: 'Okapi',
about: 'The okapi is an animal native to the Democratic Republic of Congo in Africa.'
}, {
img: 'dragon.jpg',
name: 'The Blue Dragon',
about: 'These little dragon-like creatures can be found in the Indian Pacific Oceans.'
}, {
img: 'wolf.jpg',
name: 'The Maned Wolf',
about: 'The maned wolf is often found in south, CW, and SE parts of Brazil.'
}, {
img: 'fossa.jpg',
name: 'Fossa',
about: 'A carnivorous animal located in Madagascar related to the Mongoose.'
}, {
img: 'shark.jpg',
name: 'Goblin Shark',
about: 'Last representative of sharks that lived about 125 million years ago.'
}, {
img: 'deer.jpg',
name: 'Leaf Deer',
about: 'The leaf deer is usually found in dense forests in the NW of Putao.'
}, {
img: 'spidercrab.jpg',
name: 'Japanese Spider Crab',
about: 'As the name suggestions, it inhabits the waters surrounding Japan.'
}, {
img: 'rabbit.jpg',
name: 'Angora Rabbit',
about: 'These rabbits originated in Turkey but managed to spread throughout Europe.'
}, {
img: 'axolotl.jpg',
name: 'Axolotl',
about: 'The "Mexican salamander" is often spotted in lakes around Mexico.'
}, {
img: 'liger.jpg',
name: 'Liger',
about: 'The liger is a real animal created by a lion and a tiger mating.'
}, {
img: 'panda.jpg',
name: 'Red Panda',
about: 'This cute, small panda lives in the eastern Himalayas and SW China.'
}, {
img: 'superbird.jpg',
name: 'Superbird',
about: 'Found in New Guinea, it is unsure how many of these birds there are.'
}]
$scope.settings = {
layout: 'fixed',
itemWidth: 134,
snap: false
};
}]);
<div ng-app="demoApp" ng-controller="demoController" class="mbsc-padding">
<h3>Scrollable list</h3>
<ul mobiscroll-scrollview="settings">
<li mobiscroll-card ng-repeat="bird in birds">
<img ng-src="https://img.mobiscroll.com/demos/gridlayout/{{bird.img}}" draggable="false">
<mobiscroll-card-content>{{bird.name}}</mobiscroll-card-content>
</li>
</ul>
<h3>Grid view</h3>
<div class="mbsc-grid md-cards-layout">
<div class="mbsc-row mbsc-justify-content-center mbsc-no-padding">
<div class="mbsc-col-12 mbsc-col-sm-6 mbsc-col-lg-4 mbsc-col-xl-3" ng-repeat="animal in animals">
<div mobiscroll-card>
<img src="https://img.mobiscroll.com/demos/gridlayout/{{animal.img}}" draggable="false">
<mobiscroll-card-content>
<div class="mbsc-card-title">{{animal.name}}</div>
<p class="mbsc-txt-muted">{{animal.about}}</p>
</mobiscroll-card-content>
</div>
</div>
</div>
</div>
</div>
Looking for something you didn't see or have a sales question?
Ask us about it, we're here to help.
Component license
Purchase component licenses if you are looking for specific funcionality.
All
Framework license
Get all 36 components, including
Framework license
Get all 36 components, including
- Use it when building with plain and simple JS
- Compatible with vanilla JS app or frameworks like Vue
- Royalty-free commercial usage
- Technical support is included with the license
- Use it with jQuery and jQuery Mobile
- Enjoy the familiar API if you already use jQuery
- Royalty-free commercial usage
- Technical support is included with the license
- Use it with Angular JS and Ionic 1
- For web and mobile apps based on Angular 1.x
- Royalty-free commercial usage
- Technical support is included with the license
- Use it with Angular 2/4/5/6/7 and Ionic 2/3/4
- Visual Studio and VS Code integration
- Royalty-free commercial usage
- Technical support is included with the license
- Use it when building with React JS
- Collection of UI components for web and mobile
- Royalty-free commercial usage
- Technical support is included with the license
Framework license
Select the development framework you are using. Get all 36 components with the license.
- Use it when building with plain and simple JS
- Compatible with vanilla JS app or frameworks like Vue
- Royalty-free commercial usage
- Technical support is included with the license
- Use it with jQuery and jQuery Mobile
- Enjoy the familiar API if you already use jQuery
- Royalty-free commercial usage
- Technical support is included with the license
- Use it with Angular JS and Ionic 1
- For web and mobile apps based on Angular 1.x
- Royalty-free commercial usage
- Technical support is included with the license
- Use it with Angular 2/4/5/6/7 and Ionic 2/3/4
- Visual Studio and VS Code integration
- Royalty-free commercial usage
- Technical support is included with the license
- Use it when building with React JS
- Collection of UI components for web and mobile
- Royalty-free commercial usage
- Technical support is included with the license
Select the framework you are interested in
Use Javascript when building with plain and simple JS.
Use jQuery when you have jQuery already included or if you are building with jQuery Mobile.
Use AngularJS when building with Angular 1.x or Ionic 1.
Use Angular when building with Angular 2/4/5/6/7 or Ionic 2/3/4.
Use it when you are building your app or website with React.
Do you need additional support seats?
The framework license comes with one support seat. ( +$50/seat )
Add the source code?
What framework are you using?
We have to set you up with a trial for this to run 👍
What framework are you using?
Step 1.Install the Mobiscroll CLI from npm
$ npm install -g @mobiscroll/cli
The CLI makes configuring your apps super simple 👍
Step 2.Run the following command in the root folder of your Ionic project
$ mobiscroll config ionic
$ mobiscroll config ionic --lite
You will be prompted to log in with your mobiscroll account. Set your password here
Create an Ionic 3 & Mobiscroll starter with the CLI:
Run this command for Ionic 4 & Mobiscroll starter:
Extract the zip file and run the project like any Ionic app. Make sure to have Ionic CLI installed and open the terminal in the app root folder.
$ npm install
$ ionic serve
Let us know if we can help and enjoy!
Your password has been changed!
Everything is set up so that you can dig in right away and start exploring.
We have set up a trial so that you can try the demos locally.
Extract the zip file and open the demo in your favorite browser.
To install Mobiscroll in your project
follow instructions from this page.
Let us know if we can help and enjoy! 👍
Please extract the zip file and run the project like any Angular CLI app.
Make sure to have the Angular CLI installed.
For installation and usage, extract the zip file and open a terminal window and follow these steps.
$ npm install
$ ng serve --open
Let us know if we can help and enjoy! 👍
Everything is set up so that you can dig in right away and start exploring.
We have set up a trial so that you can try the demos locally.
The easiest way to get started is to follow the installation steps and by
grabbing the code directly from the demo page. Let us know if we can help and enjoy!
You'll find a fully functional Kitchen-sink Ionic app in the zip file.
Everything is set up so that you can dig in right away and start exploring.
We have set up a trial so that you can try the demos locally.
The demos are using Babel's in-browser ES6 and JSX transformer.
Extract the zip file and open the demo in your browser. To install Mobiscroll in your project
follow instructions from this page.
Let us know if we can help and enjoy! 👍