From 069ac65e24ca617a7bbb41f808ebcce34874f902 Mon Sep 17 00:00:00 2001 From: Adam Bradley Date: Tue, 25 Aug 2015 13:17:29 -0500 Subject: [PATCH] list/item/button/card css overhaul --- .gitignore | 11 +- ionic/components/app/app.ts | 6 +- ionic/components/badge/badge.scss | 2 +- ionic/components/button/button-icon.scss | 16 ++- ionic/components/button/button-size.scss | 10 +- ionic/components/button/button.scss | 7 +- ionic/components/button/modes/material.scss | 8 +- ionic/components/card/card.scss | 5 +- ionic/components/card/card.ts | 5 +- ionic/components/card/modes/ios.scss | 56 ++++++---- ionic/components/card/modes/material.scss | 81 ++++++++------ ionic/components/card/test/advanced/main.html | 17 ++- ionic/components/card/test/basic/main.html | 42 +++++--- ionic/components/card/test/images/main.html | 21 ++-- ionic/components/card/test/links/e2e.ts | 1 - ionic/components/card/test/links/index.ts | 10 -- ionic/components/card/test/links/main.html | 81 -------------- ionic/components/checkbox/checkbox.ts | 2 +- ionic/components/form/label.scss | 6 +- ionic/components/item/item.scss | 78 ++++---------- ionic/components/item/modes/ios.scss | 101 +++++++++--------- ionic/components/item/modes/material.scss | 80 ++++++++------ ionic/components/item/test/buttons/main.html | 33 +++++- ionic/components/item/test/icons/main.html | 31 ++++-- ionic/components/radio/radio.ts | 2 +- ionic/components/switch/modes/ios.scss | 2 +- ionic/components/switch/modes/material.scss | 2 +- ionic/components/switch/switch.ts | 2 +- ionic/components/text-input/modes/ios.scss | 9 +- .../components/text-input/modes/material.scss | 9 +- .../test/fixed-inline-labels/main.html | 10 +- .../text-input/test/inline-labels/main.html | 12 +-- .../text-input/test/inset-inputs/main.html | 16 +-- .../test/placeholder-labels/main.html | 4 +- .../text-input/test/stacked-labels/main.html | 3 - scripts/e2e/e2e.template.html | 12 --- 36 files changed, 370 insertions(+), 423 deletions(-) delete mode 100644 ionic/components/card/test/links/e2e.ts delete mode 100644 ionic/components/card/test/links/index.ts delete mode 100644 ionic/components/card/test/links/main.html diff --git a/.gitignore b/.gitignore index 718092f0b1..f326d36052 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ *~ -.DS_Store *.sw[mnpcod] *.log *.tmp @@ -7,14 +6,20 @@ log.txt *.sublime-project *.sublime-workspace -UserInterfaceState.xcuserstate .idea/ .sass-cache/ +.versions/ +coverage/ +dist/ node_modules/ tmp/ temp/ -dist/ +$RECYCLE.BIN/ + +.DS_Store +Thumbs.db +UserInterfaceState.xcuserstate scripts/resources/web-animations-js/test/ scripts/resources/web-animations-js/inter-* diff --git a/ionic/components/app/app.ts b/ionic/components/app/app.ts index b5d9b66cfb..63986448ce 100644 --- a/ionic/components/app/app.ts +++ b/ionic/components/app/app.ts @@ -87,11 +87,11 @@ export class IonicApp { let platformVersion = versions[platformName]; if (platformVersion) { - // platform-ios_8 - platformClass += '_' + platformVersion.major; + // platform-ios9 + platformClass += platformVersion.major; bodyEle.classList.add(platformClass); - // platform-ios_8_3 + // platform-ios9_3 bodyEle.classList.add(platformClass + '_' + platformVersion.minor); } }); diff --git a/ionic/components/badge/badge.scss b/ionic/components/badge/badge.scss index 2e6cd204d1..af56ee6889 100644 --- a/ionic/components/badge/badge.scss +++ b/ionic/components/badge/badge.scss @@ -7,7 +7,7 @@ $badge-font-weight: bold !default; $badge-border-radius: 10px !default; -.badge { +item-badge { display: inline-block; padding: 3px 8px; diff --git a/ionic/components/button/button-icon.scss b/ionic/components/button/button-icon.scss index 73e4e8512d..443cd4870e 100644 --- a/ionic/components/button/button-icon.scss +++ b/ionic/components/button/button-icon.scss @@ -7,20 +7,21 @@ button, [button] { &.icon-left icon { - margin-left: -0.6rem; - padding-right: 0.6rem; + margin-left: -0.2em; + padding-right: 0.4em; } &.icon-right icon { - margin-right: -0.6rem; - padding-left: 0.6rem; + margin-right: -0.2em; + padding-left: 0.3em; } &.icon-only { padding: 0; + min-width: 0.9em; icon { - padding: 0 1.6rem; + padding: 0 0.9em; } } @@ -29,11 +30,6 @@ button, border: none; } - &[large] icon { - margin-left: 0; - margin-right: 0; - } - &[small] icon { margin-left: 0; margin-right: 0; diff --git a/ionic/components/button/button-size.scss b/ionic/components/button/button-size.scss index a1800e0d4a..a414cb6eab 100644 --- a/ionic/components/button/button-size.scss +++ b/ionic/components/button/button-size.scss @@ -3,12 +3,12 @@ // -------------------------------------------------- $button-large-font-size: 2rem !default; -$button-large-height: 5.4rem !default; -$button-large-padding: 1.4rem !default; +$button-large-height: 2.8em !default; +$button-large-padding: 1.0em !default; $button-small-font-size: 1.3rem !default; -$button-small-height: 2.8rem !default; -$button-small-padding: 1.1rem !default; +$button-small-height: 2.1em !default; +$button-small-padding: 0.9em !default; button, @@ -16,14 +16,12 @@ button, &[large] { padding: 0 $button-large-padding; - min-width: ($button-large-padding * 4); min-height: $button-large-height; font-size: $button-large-font-size; } &[small] { padding: 0 $button-small-padding; - min-width: ($button-small-padding * 3); min-height: $button-small-height; font-size: $button-small-font-size; } diff --git a/ionic/components/button/button.scss b/ionic/components/button/button.scss index 6f7af095a3..2319e5b20e 100644 --- a/ionic/components/button/button.scss +++ b/ionic/components/button/button.scss @@ -4,13 +4,12 @@ $button-font-size: 1.6rem !default; $button-margin: 0.4rem 0 !default; -$button-padding: 0 2rem !default; -$button-height: 4.4rem !default; -$button-border-width: 1px !default; +$button-padding: 0 1em !default; +$button-height: 2.8em !default; $button-border-radius: 4px !default; -$button-round-border-radius: 64px !default; $button-round-padding: 0 2.6rem !default; +$button-round-border-radius: 64px !default; $button-color: color(primary) !default; $button-color-activated: darken-or-lighten($button-color) !default; diff --git a/ionic/components/button/modes/material.scss b/ionic/components/button/modes/material.scss index ffc696672c..9a98e42ef6 100644 --- a/ionic/components/button/modes/material.scss +++ b/ionic/components/button/modes/material.scss @@ -4,7 +4,7 @@ $button-md-font-size: 1.4rem !default; $button-md-min-height: 3.6rem !default; -$button-md-padding: 0 1.6rem !default; +$button-md-padding: 0 1.2em !default; $button-md-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) !default; $button-md-box-shadow-active: 0 4px 5px 0 rgba(0, 0, 0, 0.14),0 1px 10px 0 rgba(0, 0, 0, 0.12),0 2px 4px -1px rgba(0, 0, 0, 0.2); //0 1px 3px 0 rgba(0, 0, 0, 0.3); //0 2px 5px 0 rgba(0, 0, 0, 0.26) !default; $button-md-border-radius: 2px !default; @@ -72,14 +72,12 @@ $button-md-clear-active-bg-color: rgba(158, 158, 158, 0.2); &[large] { padding: 0 $button-large-padding; - min-width: ($button-large-padding * 4); min-height: $button-large-height; font-size: $button-large-font-size; } &[small] { padding: 0 $button-small-padding; - min-width: ($button-small-padding * 3); min-height: $button-small-height; font-size: $button-small-font-size; } @@ -90,10 +88,6 @@ $button-md-clear-active-bg-color: rgba(158, 158, 158, 0.2); &.icon-only { padding: 0; - - icon { - padding: 0 1.6rem; - } } // Generate iOS Checkbox Auxiliary Colors diff --git a/ionic/components/card/card.scss b/ionic/components/card/card.scss index 614c3d6786..f5aa26f32d 100644 --- a/ionic/components/card/card.scss +++ b/ionic/components/card/card.scss @@ -3,11 +3,12 @@ // -------------------------------------------------- -.card { +ion-card { display: block; } -.card img { +ion-card img { + display: block; width: 100%; } diff --git a/ionic/components/card/card.ts b/ionic/components/card/card.ts index 8244aa5f14..845a5de832 100644 --- a/ionic/components/card/card.ts +++ b/ionic/components/card/card.ts @@ -8,10 +8,7 @@ import * as util from 'ionic/util'; @IonicDirective({ - selector: 'ion-card', - host: { - 'class': 'list' - } + selector: 'ion-card' }) export class Card extends Ion { constructor(elementRef: ElementRef, ionicConfig: IonicConfig) { diff --git a/ionic/components/card/modes/ios.scss b/ionic/components/card/modes/ios.scss index a64df34af4..e28a08aef7 100644 --- a/ionic/components/card/modes/ios.scss +++ b/ionic/components/card/modes/ios.scss @@ -12,6 +12,9 @@ $card-ios-padding-right: 16px !default; $card-ios-padding-bottom: 14px !default; $card-ios-padding-left: 16px !default; +$card-ios-padding-media-top: 10px !default; +$card-ios-padding-media-bottom: 10px !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; @@ -28,31 +31,27 @@ $card-ios-header-padding: 16px !default; $card-ios-header-color: #333 !default; -.card.list[mode=ios] { +ion-card[mode=ios] { margin: $card-ios-margin-top $card-ios-margin-right $card-ios-margin-bottom $card-ios-margin-left; + font-size: $card-ios-font-size; background: $card-ios-background-color; box-shadow: $card-ios-box-shadow; border-radius: $card-ios-border-radius; - font-size: $card-ios-font-size; overflow: hidden; - .item:first-child { - margin-top: 0; + .item { + padding-right: ($card-ios-padding-right / 2); + padding-left: ($card-ios-padding-left / 2); } - .item:last-child { - margin-bottom: 0; + ion-item-content { + padding: $card-ios-padding-top ($card-ios-padding-right / 2) $card-ios-padding-bottom ($card-ios-padding-left / 2); } - .item:first-child:before, - .item:last-child:after { - border: none; - } - - .item:before, - .item:after { - left: 0; + ion-card-content { + padding: $card-ios-padding-top $card-ios-padding-right $card-ios-padding-bottom $card-ios-padding-left; + font-size: $card-ios-font-size; } ion-card-header { @@ -62,9 +61,19 @@ $card-ios-header-color: #333 !default; color: $card-ios-header-color; } - ion-card-content { - padding: $card-ios-padding-top $card-ios-padding-right $card-ios-padding-bottom $card-ios-padding-left; - font-size: $card-ios-font-size; + [item-left], + [item-right] { + margin: $card-ios-padding-media-top ($card-ios-padding-right / 2) $card-ios-padding-media-bottom ($card-ios-padding-left / 2); + } + + button[item-left], + button[item-right], + [button][item-left], + [button][item-right], { + margin: $item-ios-padding-icon-top ($item-ios-padding-right / 2) $item-ios-padding-icon-bottom ($item-ios-padding-left / 2); + padding: 2px 6px; + min-height: 26px; + font-size: 1.3rem; } .card-title { @@ -73,6 +82,17 @@ $card-ios-header-color: #333 !default; color: $card-ios-title-text-color; } + .avatar { + max-width: $item-ios-avatar-size; + max-height: $item-ios-avatar-size; + border-radius: $item-ios-avatar-size / 2; + } + + .thumbnail { + max-width: $item-ios-thumbnail-size; + max-height: $item-ios-thumbnail-size; + } + h1 { margin: 0 0 2px; font-size: 2.4rem; @@ -103,6 +123,6 @@ $card-ios-header-color: #333 !default; } -.card.list[mode=ios] + .card { +ion-card[mode=ios] + ion-card { margin-top: 0; } diff --git a/ionic/components/card/modes/material.scss b/ionic/components/card/modes/material.scss index 547bef2eb7..d7a480baab 100644 --- a/ionic/components/card/modes/material.scss +++ b/ionic/components/card/modes/material.scss @@ -12,6 +12,12 @@ $card-md-padding-right: 16px !default; $card-md-padding-bottom: 13px !default; $card-md-padding-left: 16px !default; +$card-md-padding-media-top: 10px !default; +$card-md-padding-media-bottom: 10px !default; + +$card-md-avatar-size: 4rem !default; +$card-md-thumbnail-size: 8rem !default; + $card-md-background-color: $list-background-color !default; $card-md-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) !default; $card-md-border-radius: 2px !default; @@ -28,45 +34,22 @@ $card-md-header-padding: 16px !default; $card-md-header-color: #222 !default; -.card.list[mode=md] { +ion-card[mode=md] { margin: $card-md-margin-top $card-md-margin-right $card-md-margin-bottom $card-md-margin-left; + font-size: $card-md-font-size; background: $card-md-background-color; box-shadow: $card-md-box-shadow; border-radius: $card-md-border-radius; - font-size: $card-md-font-size; overflow: hidden; - .item:before, - .item:after { - left: 0; + .item { + padding-right: ($card-md-padding-right / 2); + padding-left: ($card-md-padding-left / 2); } - .item:first-child { - margin-top: 0; - - &:before { - border-top: none; - } - } - - .item:last-child { - margin-bottom: 0; - - &:after { - border-top: none; - } - } - - ion-item-content button:first-child, - ion-item-content [button]:first-child { - margin-left: 0; - } - - ion-card-header { - padding: $card-md-header-padding; - font-size: $card-md-header-font-size; - color: $card-md-header-color; + ion-item-content { + padding: $card-md-padding-top ($card-md-padding-right / 2) $card-md-padding-bottom ($card-md-padding-left / 2); } ion-card-content { @@ -75,21 +58,55 @@ $card-md-header-color: #222 !default; line-height: $card-md-line-height; } + ion-card-header { + padding: $card-md-header-padding; + font-size: $card-md-header-font-size; + color: $card-md-header-color; + } + + [item-left], + [item-right] { + margin: $card-md-padding-media-top ($card-md-padding-right / 2) $card-md-padding-media-bottom ($card-md-padding-left / 2); + } + + button[item-left], + button[item-right], + [button][item-left], + [button][item-right], { + margin: 0 ($card-md-padding-right / 2) 0 ($card-md-padding-left / 2); + padding: 2px 6px; + min-height: 26px; + font-size: 1.3rem; + } + .card-title { padding: $card-md-title-padding; font-size: $card-md-title-font-size; color: $card-md-title-text-color; } + .avatar { + max-width: $card-md-avatar-size; + max-height: $card-md-avatar-size; + border-radius: $card-md-avatar-size / 2; + } + + .thumbnail { + max-width: $card-md-thumbnail-size; + max-height: $card-md-thumbnail-size; + } + h1 { margin: 0 0 2px; font-size: 2.4rem; + font-weight: normal; color: $card-md-text-color; } h2 { margin: 2px 0 2px; font-size: 1.6rem; + font-weight: normal; color: $card-md-text-color; } @@ -99,6 +116,7 @@ $card-md-header-color: #222 !default; h6 { margin: 2px 0 2px; font-size: 1.4rem; + font-weight: normal; color: $card-md-text-color; } @@ -106,11 +124,12 @@ $card-md-header-color: #222 !default; font-size: 1.4rem; margin: 0 0 2px; line-height: 1.5; + font-weight: normal; color: $card-md-text-color; } } -.card.list[mode=md] + .card { +ion-card[mode=md] + ion-card { margin-top: 0; } diff --git a/ionic/components/card/test/advanced/main.html b/ionic/components/card/test/advanced/main.html index bfa92b2077..a165042c68 100644 --- a/ionic/components/card/test/advanced/main.html +++ b/ionic/components/card/test/advanced/main.html @@ -4,11 +4,10 @@ -
+
-

Card Title Goes Here @@ -35,17 +34,15 @@ -
-
+ +
- -

Card With An Inset Picture

-

Isn't it beautiful

-
-
+

Card With An Inset Picture

+

Isn't it beautiful

+ -
+
diff --git a/ionic/components/card/test/basic/main.html b/ionic/components/card/test/basic/main.html index e2835ef3c7..2abb23648f 100644 --- a/ionic/components/card/test/basic/main.html +++ b/ionic/components/card/test/basic/main.html @@ -18,17 +18,15 @@ -
- - - All Out Card - - -
+ + + ion-iteam in a card, icon left, button right + + - This is a multiline content within a card that should - take up multiple lines and stuff. + This is content, without any paragraph or header tags, + within an ion-card-content element.
@@ -36,8 +34,28 @@ - - Card, no header - + + + Card Link Item 1 + + + + + + Card Link Item 2 + + + + + + diff --git a/ionic/components/card/test/images/main.html b/ionic/components/card/test/images/main.html index 727ae4fc6e..1ec08e325a 100644 --- a/ionic/components/card/test/images/main.html +++ b/ionic/components/card/test/images/main.html @@ -3,7 +3,7 @@ -
+
@@ -15,24 +15,19 @@ -
-
+ +
- -

Card With An Inset Picture, H2 text

-

Isn't it beautiful.

-
-
+

Card With An Inset Picture, H2 text

+

Isn't it beautiful.

+ -
- - - -
+ +