inset lists, card updates

This commit is contained in:
Adam Bradley
2015-08-12 15:44:27 -05:00
parent 8e053f18de
commit db0413b2dd
27 changed files with 275 additions and 187 deletions

View File

@ -30,18 +30,18 @@ import {App, ActionMenu, IonicApp, IonicView, Register} from 'ionic/ionic';
</ion-list>
<div class="padding">
<div class="card">
<div class="card-header">
<ion-card>
<ion-header>
New Post
</div>
</ion-header>
<div class="card-content">
Keep close to Nature's heart... and break clear away, once in awhile, and climb a mountain or spend a week in the woods. Wash your spirit clean.
</div>
<img src="http://ionic-io-assets.s3.amazonaws.com/images/p4.png">
<div class="card-footer">
<ion-footer>
Posted 5 days ago
</div>
</div>
</ion-footer>
</ion-card>
</div>
` +

View File

@ -17,15 +17,12 @@ import {SinkPage} from '../sink-page';
Cards are great for displaying contextual information in a small space,
like a Tweet, todays weather report, or a photo.
</p>
<div class="card">
<div class="item card-header">
<div class="item-content">
<div class="item-label">
<ion-card>
<ion-header>
Card Header
</div>
</div>
</div>
</ion-header>
<div class="item">
<div class="item-media">
@ -33,15 +30,12 @@ import {SinkPage} from '../sink-page';
</div>
</div>
<div class="item card-footer">
<div class="item-content">
<div class="item-label">
<ion-footer>
Card Footer
</div>
</div>
</div>
</ion-footer>
</ion-card>
</div>
</ion-content>
`
})

View File

@ -19,9 +19,9 @@ import {SinkPage} from '../sink-page';
<ion-list inset>
<ion-list-header>
<ion-header>
List Header
</ion-list-header>
</ion-header>
<ion-item>
<input control="email" type="email" placeholder="Your email">
@ -35,9 +35,9 @@ import {SinkPage} from '../sink-page';
</div>
<ion-item>Item</ion-item>
<ion-list-footer>
<ion-footer>
List Footer
</ion-list-footer>
</ion-footer>
</ion-list>
</ion-content>

View File

@ -1,13 +1,19 @@
<ion-navbar *navbar id="p2toolbar"><ion-title>Post</ion-title></ion-navbar>
<ion-content>
<div class="card">
<ion-card>
<div class="card-content">
{{post.text}}
</div>
<img src="{{post.image}}">
<div class="card-footer">
<ion-footer>
Posted {{post.day}} ago
</div>
</div>
</ion-footer>
</ion-card>
</ion-content>

View File

@ -1,7 +1,7 @@
<ion-view>
<ion-aside #aside [content]="content" [register]="aside" register-id="mainMenu">
<ion-list inset>
<ion-list>
<ion-item>
About
</ion-item>

View File

@ -2,22 +2,18 @@
// Card
// --------------------------------------------------
$card-inset-margin: $list-inset-margin !default;
.card.card {
margin: 10px;
margin: $card-inset-margin;
}
.card {
display: block;
img {
width: 100%;
}
}
.card-header,
.card-footer {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}

View File

@ -2,7 +2,7 @@
// iOS Card
// --------------------------------------------------
$card-ios-background-color: #fff !default;
$card-ios-background-color: $list-background-color !default;
$card-ios-box-shadow: 0 1px 2px rgba(0,0,0,.3) !default;
$card-ios-border-radius: 2px !default;
$card-ios-font-size: 1.4rem !default;
@ -13,27 +13,35 @@ $card-ios-footer-background-color: $card-ios-background-color !default;
$card-ios-footer-padding: 10px;
.card[mode=ios] {
.card.list[mode=ios] {
background: $card-ios-background-color;
box-shadow: $card-ios-box-shadow;
border-radius: $card-ios-border-radius;
font-size: $card-ios-font-size;
.item::before,
.item::after {
.item {
&:last-child {
margin-bottom: -1px;
}
&:before,
&:after {
left: 0;
}
}
.item:first-child:before {
border: none;
}
.card-header {
ion-header {
padding: $card-ios-header-padding;
background-color: $card-ios-footer-background-color;
}
.card-footer {
ion-footer {
padding: $card-ios-footer-padding;
background-color: $card-ios-footer-background-color;
}

View File

@ -2,7 +2,7 @@
// Material Design Card
// --------------------------------------------------
$card-md-background-color: #fff !default;
$card-md-background-color: $list-background-color !default;
$card-md-box-shadow: 0 1px 2px rgba(0,0,0,.3) !default;
$card-md-border-radius: 2px !default;
$card-md-font-size: 1.4rem !default;
@ -13,27 +13,39 @@ $card-md-footer-background-color: $card-md-background-color !default;
$card-md-footer-padding: 10px;
.card[mode=md] {
.card.list[mode=md] {
background: $card-md-background-color;
box-shadow: $card-md-box-shadow;
border-radius: $card-md-border-radius;
font-size: $card-md-font-size;
.item::before,
.item::after {
.item {
&:last-child {
margin-bottom: -1px;
}
&:before,
&:after {
left: 0;
}
}
.item:first-child {
margin-top: 1px;
}
.item:first-child:before {
border: none;
}
.card-header {
ion-header {
padding: $card-md-header-padding;
background-color: $card-md-footer-background-color;
}
.card-footer {
ion-footer {
padding: $card-md-footer-padding;
background-color: $card-md-footer-background-color;
}

View File

@ -3,17 +3,21 @@
<ion-card>
<div class="card-header">
<ion-header>
Card Header
</div>
</ion-header>
<div class="item item-text-wrap">
<div class="item-content">
Keep close to Nature's heart... and break clear away, once in awhile, and climb a mountain or spend a week in the woods. Wash your spirit clean.
</div>
</div>
<div class="card-footer">
<ion-footer>
Card Footer
</div>
</ion-footer>
</ion-card>
@ -49,8 +53,19 @@
</div>
</div>
<div class="card-footer">
<ion-footer>
Card Footer
</ion-footer>
</ion-card>
<ion-card>
<div class="item">
<div class="item-content">
Card, no header or footer
</div>
</div>
</ion-card>

View File

@ -41,9 +41,9 @@
<ion-card>
<div class="card-header">
<ion-header>
Card Header
</div>
</ion-header>
<a class="item" href="#">
<icon name="ion-ionic"></icon>

View File

@ -29,6 +29,7 @@ $input-label-color: #888 !default;
.input-label {
align-self: stretch;
margin-bottom: 0;
max-width: 100%;
}

View File

@ -186,71 +186,3 @@ button.item.item {
}
}
/*
.item-group-title {
display: block;
padding: $item-padding;
padding-top: ceil($item-padding / 2);
padding-bottom: ceil($item-padding / 2);
min-height: 30px;
background-color: $item-divider-bg;
color: $item-divider-color;
font-weight: 500;
width: 100%;
z-index: 100;
&.sticky {
position: -webkit-sticky;
top: 0;
}
}
ion-primary-swipe-buttons,
.item-content {
transition: transform 0.3s;
}
ion-primary-swipe-buttons {
position: absolute;
top: 0;
left: 0;
bottom: 0;
z-index: 100;
transform: translate3d(-100%,0,0);
&:not(.open):not(.changing) {
display: none;
}
&.open {
transform: translate3d(100%, 0, 0);
}
}
// Some testing things
.item-media-placeholder {
width: 40px;
height: 40px;
border-radius: 50%;
background: #aaa;
margin-right: 16px;
}
.item-label h3 {
margin: 0;
font-size: 16px;
margin: 0 0 6px;
line-height: .75em;
color: #222;
font-weight: normal;
}
.item-label h4 {
margin: 10px 0 0px;
font-size: 14px;
line-height: 14px;
color: #858585;
}
*/

View File

@ -12,34 +12,10 @@ import {dom} from 'ionic/util';
}
})
@View({
template: `
<!--
<ng-content select="ion-primary-options"></ng-content>
<ng-content select="ion-primary-swipe-buttons"></ng-content>
-->
<div class="item-content">
<div class="item-media">
</div>
<div class="item-accessory">
<!--<ng-content select="ion-item-accessory"></ng-content>-->
</div>
<div class="item-label">
<ng-content></ng-content>
</div>
</div>
<!--
<ng-content select="ion-secondary-options"></ng-content>
<ng-content select="ion-secondary-swipe-buttons"></ng-content>
-->
`
/*
directives: [
ItemPrimarySwipeButtons,
// ItemSecondarySwipeButtons,
// ItemPrimaryOptions,
// ItemSecondaryOptions
]
*/
template:
'<div class="item-content">' +
'<ng-content></ng-content>'+
'</div>'
})
export class Item {
constructor(elementRef: ElementRef) {

View File

@ -42,6 +42,17 @@ $item-ios-forward-icon-color: $item-ios-border-color !default;
left: $item-ios-padding-left;
border-top: 1px solid $item-ios-border-color;
}
&:last-child {
margin-bottom: -1px;
}
}
&[inset] .item {
&:before,
&:after {
left: 0;
}
}
.input-label,
@ -55,8 +66,8 @@ $item-ios-forward-icon-color: $item-ios-border-color !default;
}
.text-input {
margin: 0 $item-ios-padding-right 0 $item-ios-padding-left;
padding: $item-ios-padding-top 0 $item-ios-padding-bottom 0;
margin: $item-ios-padding-top $item-ios-padding-right $item-ios-padding-bottom $item-ios-padding-left;
padding: 0;
}
.item-note {
@ -109,10 +120,13 @@ $item-ios-forward-icon-color: $item-ios-border-color !default;
.hairlines .list[mode=ios] .item {
margin-top: -0.5px;
&:last-child {
margin-bottom: -0.5px;
}
&:before,
&:after {
border-top-width: 0.5px;
}
}

View File

@ -2,18 +2,30 @@
// List
// --------------------------------------------------
$list-inset-margin: 10px !default;
.list {
display: block;
margin: 0;
padding: 0;
list-style-type: none;
}
ion-list-header,
ion-list-footer {
ion-header,
ion-footer {
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
.list[inset] {
margin: $list-inset-margin;
border: 1px solid $list-border-color;
}
.hairlines .list[inset] {
border-width: 0.5px;
}

View File

@ -45,7 +45,7 @@ export class List extends Ion {
@Directive({
selector: 'ion-list-header',
selector: 'ion-header',
properties: [
'id'
],

View File

@ -8,7 +8,7 @@ $list-ios-header-font-weight: 500 !default;
$list-ios-header-letter-spacing: 0.1rem !default;
$list-ios-header-color: #333 !default;
$list-ios-footer-padding: 10px $item-ios-padding-right 0 $item-ios-padding-left !default;
$list-ios-footer-padding: 10px $item-ios-padding-right 10px $item-ios-padding-left !default;
$list-ios-footer-font-size: 1.2rem !default;
$list-ios-footer-font-weight: 500 !default;
$list-ios-footer-letter-spacing: 0.1rem !default;
@ -17,7 +17,7 @@ $list-ios-footer-color: #333 !default;
.list[mode=ios] {
ion-list-header {
ion-header {
padding: $list-ios-header-padding;
font-size: $list-ios-header-font-size;
font-weight: $list-ios-header-font-weight;
@ -26,7 +26,7 @@ $list-ios-footer-color: #333 !default;
color: $list-ios-header-color;
}
ion-list-footer {
ion-footer {
padding: $list-ios-footer-padding;
font-size: $list-ios-footer-font-size;
font-weight: $list-ios-footer-font-weight;
@ -35,4 +35,8 @@ $list-ios-footer-color: #333 !default;
color: $list-ios-footer-color;
}
&[inset] ion-header {
padding-top: 10px;
}
}

View File

@ -13,14 +13,14 @@ $list-md-footer-color: #8f8f94 !default;
.list[mode=md] {
ion-list-header {
ion-header {
padding: $list-md-header-padding;
font-size: $list-md-header-font-size;
text-transform: uppercase;
color: $list-md-header-color;
}
ion-list-footer {
ion-footer {
padding: $list-md-footer-padding;
font-size: $list-md-footer-font-size;
text-transform: uppercase;

View File

@ -2,9 +2,9 @@
<ion-list>
<ion-list-header>
<ion-header>
List Header
</ion-list-header>
</ion-header>
<div class="item">
<icon name="ion-wifi"></icon>
@ -30,9 +30,9 @@
<ion-list>
<ion-list-header>
<ion-header>
List Header
</ion-list-header>
</ion-header>
<div class="item">
<icon name="ion-wand"></icon>
@ -44,17 +44,17 @@
</div>
</div>
<ion-list-footer>
<ion-footer>
List Footer
</ion-list-footer>
</ion-footer>
</ion-list>
<ion-list>
<ion-list-header>
<ion-header>
List Header with text that is too long to fit inside the list header
</ion-list-header>
</ion-header>
<div class="item">
<icon name="ion-pizza"></icon>
@ -76,8 +76,8 @@
</div>
</div>
<ion-list-footer>
<ion-footer>
List Footer with text that is also too long why do you do this all the time plz stop its too long!
</ion-list-footer>
</ion-footer>
</ion-list>

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,7 @@
import {App} from 'ionic/ionic';
@App({
templateUrl: 'main.html'
})
class IonicApp {}

View File

@ -0,0 +1,67 @@
<ion-toolbar><ion-title>Inset List</ion-title></ion-toolbar>
<ion-list inset>
<ion-header>
Inset List Header
</ion-header>
<div class="item item-text-wrap">
<div class="item-content">
Keep close to Nature's heart... and break clear away, once in awhile, and climb a mountain or spend a week in the woods. Wash your spirit clean.
</div>
</div>
<ion-footer>
List Footer
</ion-footer>
</ion-list>
<ion-list inset>
<div class="item">
<icon name="ion-location"></icon>
<div class="item-content">
All Out Inset List
</div>
<button outline>View</button>
</div>
<div class="item item-text-wrap">
<div class="item-content">
This is a multiline content within a list that should
take up multiple lines and stuff.
</div>
</div>
<div class="item">
<div class="item-content">
<icon small name="ion-star"></icon>
<span>255</span>
</div>
<div class="item-content">
<icon small name="ion-reply"></icon>
<span>Reply</span>
</div>
<div class="item-content">
<icon small name="ion-forward"></icon>
Forward
</div>
</div>
<ion-footer>
list Footer
</ion-footer>
</ion-list>
<ion-list inset>
<div class="item">
<div class="item-content">
Inset List, no header or footer
</div>
</div>
</ion-list>

View File

@ -8,9 +8,9 @@
<ion-radio-group ng-control="fruits">
<ion-list-header>
<ion-header>
Fruits
</ion-list-header>
</ion-header>
<ion-radio value="apple" checked="true">
Apple

View File

@ -0,0 +1 @@

View File

@ -0,0 +1,7 @@
import {App} from 'ionic/ionic';
@App({
templateUrl: 'main.html'
})
class IonicApp {}

View File

@ -0,0 +1,35 @@
<ion-toolbar><ion-title>Inset Inputs</ion-title></ion-toolbar>
<ion-content>
<ion-list>
<ion-input inset>
<icon name="ion-home"></icon>
<input value="Inset text input inside a list" type="text">
</ion-input>
<ion-input inset>
<input value="Inset text input inside a list" type="text">
</ion-input>
</ion-list>
<ion-card>
<ion-input>
<input value="Text input inside a card" type="text">
<icon name="ion-home"></icon>
</ion-input>
<ion-input>
<input value="Text input inside a card" type="text">
<icon name="ion-star"></icon>
</ion-input>
</ion-card>
</ion-content>

View File

@ -23,7 +23,6 @@
"components/button/button-size",
"components/button/button-icon",
"components/button/button-fab",
"components/card/card",
"components/checkbox/checkbox",
"components/content/content",
"components/item/item",
@ -31,6 +30,7 @@
"components/form/label",
"components/text-input/text-input",
"components/list/list",
"components/card/card",
"components/modal/modal",
"components/nav-bar/nav-bar",
"components/popup/popup",