Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Side by Side Diff: sky/framework/components/floating_action_button.dart

Issue 1003553002: Update Button to be made of Material (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 import '../fn.dart'; 5 import '../fn.dart';
6 import 'material.dart'; 6 import 'material.dart';
7 import '../theme/colors.dart'; 7 import '../theme/colors.dart';
8 import '../theme/shadows.dart'; 8 import '../theme/shadows.dart';
9 9
10 class FloatingActionButton extends Component { 10 class FloatingActionButton extends Component {
11 static final Style _style = new Style(''' 11 static final Style _style = new Style('''
12 position: absolute; 12 position: absolute;
13 bottom: 16px; 13 bottom: 16px;
14 right: 16px; 14 right: 16px;
15 z-index: 5; 15 z-index: 5;
16 transform: translateX(0); 16 transform: translateX(0);
17 width: 56px; 17 width: 56px;
18 height: 56px; 18 height: 56px;
19 background-color: ${Red[500]}; 19 background-color: ${Red[500]};
20 color: white; 20 color: white;
21 box-shadow: ${Shadow[3]};
22 border-radius: 28px;''' 21 border-radius: 28px;'''
23 ); 22 );
24 static final Style _clipStyle = new Style(''' 23 static final Style _clipStyle = new Style('''
25 transform: translateX(0); 24 transform: translateX(0);
26 position: absolute; 25 position: absolute;
27 display: flex; 26 display: flex;
28 justify-content: center; 27 justify-content: center;
29 align-items: center; 28 align-items: center;
30 top: 0; 29 top: 0;
31 left: 0; 30 left: 0;
32 right: 0; 31 right: 0;
33 bottom: 0; 32 bottom: 0;
34 -webkit-clip-path: circle(28px at center);'''); 33 -webkit-clip-path: circle(28px at center);''');
35 34
36 Node content; 35 Node content;
36 int level;
37 37
38 FloatingActionButton({ Object key, this.content }) : super(key: key); 38 FloatingActionButton({ Object key, this.content, this.level: 0 })
39 : super(key: key);
39 40
40 Node build() { 41 Node build() {
41 List<Node> children = []; 42 List<Node> children = [];
42 43
43 if (content != null) 44 if (content != null)
44 children.add(content); 45 children.add(content);
45 46
47 List<Style> containerStyle = [_style];
48 if (level > 0)
49 containerStyle.add(Material.shadowStyle[level]);
50
46 return new Container( 51 return new Container(
47 key: "Container", 52 key: "Container",
48 style: _style, 53 styles: containerStyle,
49 children: [ 54 children: [
50 new Material( 55 new Material(
51 key: "Clip", 56 key: "Clip",
52 style: _clipStyle, 57 styles: [_clipStyle],
53 children: children 58 children: children
54 ) 59 )
55 ] 60 ]
56 ); 61 );
57 } 62 }
58 } 63 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698