playbook_ui 4.12.0 → 4.13.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/pb_kits/playbook/_playbook.scss +2 -1
- data/app/pb_kits/playbook/data/menu.yml +2 -1
- data/app/pb_kits/playbook/index.js +3 -0
- data/app/pb_kits/playbook/packs/examples.js +4 -0
- data/app/pb_kits/playbook/packs/site_styles/docs/_color_utilities.scss +2 -0
- data/app/pb_kits/playbook/pb_card/_card.jsx +61 -3
- data/app/pb_kits/playbook/pb_card/_card.scss +51 -4
- data/app/pb_kits/playbook/pb_card/card_header.rb +22 -0
- data/app/pb_kits/playbook/pb_card/child_kits/_card_header.html.erb +7 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_header.html.erb +19 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_header.jsx +41 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_header.md +1 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_highlight.jsx +6 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_highlight.md +1 -0
- data/app/pb_kits/playbook/pb_card/docs/_card_separator.jsx +8 -5
- data/app/pb_kits/playbook/pb_card/docs/_card_shadow.jsx +0 -4
- data/app/pb_kits/playbook/pb_card/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_card/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.html.erb +15 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.jsx +46 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/_date_time_stacked.scss +6 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/date_time_stacked.rb +16 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_dark.html.erb +1 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_dark.jsx +13 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.html.erb +1 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/_date_time_stacked_default.jsx +10 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/example.yml +11 -0
- data/app/pb_kits/playbook/pb_date_time_stacked/docs/index.js +2 -0
- data/app/pb_kits/playbook/pb_kit/dateTime.js +12 -0
- data/app/pb_kits/playbook/pb_kit/pb_date_time.rb +4 -0
- data/app/pb_kits/playbook/pb_logistic/_logistic.jsx +1 -1
- data/app/pb_kits/playbook/pb_table/_table.scss +24 -0
- data/app/pb_kits/playbook/pb_table/_table_row.html.erb +6 -0
- data/app/pb_kits/playbook/pb_table/_table_row.jsx +27 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.html.erb +85 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.jsx +96 -0
- data/app/pb_kits/playbook/pb_table/docs/_table_side_highlight.md +1 -0
- data/app/pb_kits/playbook/pb_table/docs/example.yml +2 -0
- data/app/pb_kits/playbook/pb_table/docs/index.js +1 -0
- data/app/pb_kits/playbook/pb_table/table_row.rb +22 -0
- data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.html.erb +11 -0
- data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.jsx +58 -0
- data/app/pb_kits/playbook/pb_time_stacked/_time_stacked.scss +20 -0
- data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_caption.html.erb +2 -0
- data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_caption.jsx +15 -0
- data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_dark.html.erb +1 -0
- data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_dark.jsx +15 -0
- data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_default.html.erb +2 -0
- data/app/pb_kits/playbook/pb_time_stacked/docs/_time_stacked_default.jsx +14 -0
- data/app/pb_kits/playbook/pb_time_stacked/docs/example.yml +13 -0
- data/app/pb_kits/playbook/pb_time_stacked/docs/index.js +3 -0
- data/app/pb_kits/playbook/pb_time_stacked/time_stacked.rb +63 -0
- data/app/pb_kits/playbook/tokens/_colors.scss +47 -0
- data/app/pb_kits/playbook/tokens/_spacing.scss +10 -10
- data/app/views/playbook/pages/utilities.html.slim +27 -0
- data/lib/playbook/version.rb +1 -1
- metadata +37 -5
- data/app/pb_kits/playbook/pb_card/child_kits/_card_body.scss +0 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1be22e2e31021ee0a7a970883b04f65e7e541070e540c2ddba647b4f028d4c67
|
4
|
+
data.tar.gz: 5b91f50a2036f661848c738bac4610db06f6cb694fd90b25a09f452964c3ff22
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2af0a12153b59178ef27ef590a46d2f232d988200c9a936f441ebe77bd60b69dcd63969dab3f040ed39a768d4abb6fa38a96d4f9aa1f150d5a847ed8898c136
|
7
|
+
data.tar.gz: c6e9df307edb260eb3e32c7e912a9159870107af9b90b9ef40474009fd1768efa0cb876d844a6ef4b70ce30049f48b72e343c45f539451f9491ced45bce73198
|
@@ -62,6 +62,7 @@ kits:
|
|
62
62
|
- date_range_inline
|
63
63
|
- date_range_stacked
|
64
64
|
- date_stacked
|
65
|
+
- date_time_stacked
|
65
66
|
- date_year_stacked
|
66
67
|
- home_address_street
|
67
68
|
- label_pill
|
@@ -71,6 +72,7 @@ kits:
|
|
71
72
|
- person_contact
|
72
73
|
- stat_value
|
73
74
|
- time
|
75
|
+
- time_stacked
|
74
76
|
- timestamp
|
75
77
|
- time_range_inline
|
76
78
|
- title_count
|
@@ -78,4 +80,3 @@ kits:
|
|
78
80
|
- weekday_stacked
|
79
81
|
- user
|
80
82
|
- user_badge
|
81
|
-
|
@@ -15,6 +15,7 @@ export Date from './pb_date/_date.jsx'
|
|
15
15
|
export DateRangeInline from './pb_date_range_inline/_date_range_inline.jsx'
|
16
16
|
export DateRangeStacked from './pb_date_range_stacked/_date_range_stacked.jsx'
|
17
17
|
export DateStacked from './pb_date_stacked/_date_stacked.jsx'
|
18
|
+
export DateTimeStacked from './pb_date_time_stacked/_date_time_stacked.jsx'
|
18
19
|
export DateYearStacked from './pb_date_year_stacked/_date_year_stacked.jsx'
|
19
20
|
export DistributionBar from './pb_distribution_bar/_distribution_bar.jsx'
|
20
21
|
export FileUpload from './pb_file_upload/_file_upload.jsx'
|
@@ -60,9 +61,11 @@ export StarRating from './pb_star_rating/_star_rating.jsx'
|
|
60
61
|
export StatChange from './pb_stat_change/_stat_change.jsx'
|
61
62
|
export StatValue from './pb_stat_value/_stat_value.jsx'
|
62
63
|
export Table from './pb_table/_table.jsx'
|
64
|
+
export TableRow from './pb_table/_table_row.jsx'
|
63
65
|
export Textarea from './pb_textarea/_textarea.jsx'
|
64
66
|
export TextInput from './pb_text_input/_text_input.jsx'
|
65
67
|
export Time from './pb_time/_time.jsx'
|
68
|
+
export TimeStacked from './pb_time_stacked/_time_stacked.jsx'
|
66
69
|
export TimeStamp from './pb_timestamp/_timestamp.jsx'
|
67
70
|
export TimeRangeInline from './pb_time_range_inline/_time_range_inline.jsx'
|
68
71
|
export Title from './pb_title/_title.jsx'
|
@@ -29,6 +29,7 @@ import * as Date from 'pb_date/docs'
|
|
29
29
|
import * as DateRangeInline from 'pb_date_range_inline/docs'
|
30
30
|
import * as DateRangeStacked from 'pb_date_range_stacked/docs'
|
31
31
|
import * as DateStacked from 'pb_date_stacked/docs'
|
32
|
+
import * as DateTimeStacked from 'pb_date_time_stacked/docs'
|
32
33
|
import * as DateYearStacked from 'pb_date_year_stacked/docs'
|
33
34
|
import * as DistributionBar from 'pb_distribution_bar/docs'
|
34
35
|
import * as FileUpload from 'pb_file_upload/docs'
|
@@ -74,6 +75,7 @@ import * as Table from 'pb_table/docs'
|
|
74
75
|
import * as Textarea from 'pb_textarea/docs'
|
75
76
|
import * as TextInput from 'pb_text_input/docs'
|
76
77
|
import * as Time from 'pb_time/docs'
|
78
|
+
import * as TimeStacked from 'pb_time_stacked/docs'
|
77
79
|
import * as Timestamp from 'pb_timestamp/docs'
|
78
80
|
import * as TimeRangeInline from 'pb_time_range_inline/docs'
|
79
81
|
import * as Title from 'pb_title/docs'
|
@@ -101,6 +103,7 @@ WebpackerReact.setup({
|
|
101
103
|
...DateRangeInline,
|
102
104
|
...DateRangeStacked,
|
103
105
|
...DateStacked,
|
106
|
+
...DateTimeStacked,
|
104
107
|
...DateYearStacked,
|
105
108
|
...DistributionBar,
|
106
109
|
...FileUpload,
|
@@ -146,6 +149,7 @@ WebpackerReact.setup({
|
|
146
149
|
...Textarea,
|
147
150
|
...TextInput,
|
148
151
|
...Time,
|
152
|
+
...TimeStacked,
|
149
153
|
...Timestamp,
|
150
154
|
...TimeRangeInline,
|
151
155
|
...Title,
|
@@ -23,6 +23,7 @@
|
|
23
23
|
@include doc-color($data_colors);
|
24
24
|
@include doc-color($status_colors);
|
25
25
|
@include doc-color($product_colors);
|
26
|
+
@include doc-color($category_colors);
|
26
27
|
|
27
28
|
.pb--color_bg_gradient {
|
28
29
|
background: $gradient_start;
|
@@ -43,6 +44,7 @@ ul {
|
|
43
44
|
border-radius: 4px;
|
44
45
|
border: 1px solid $border-light;
|
45
46
|
padding: 10px;
|
47
|
+
flex-wrap: wrap;
|
46
48
|
|
47
49
|
li {
|
48
50
|
border-radius: 4px;
|
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
import React from 'react'
|
4
4
|
import classnames from 'classnames'
|
5
|
-
|
6
5
|
import { buildCss } from '../utilities/props'
|
7
6
|
|
8
7
|
type CardPropTypes = {
|
@@ -14,10 +13,52 @@ type CardPropTypes = {
|
|
14
13
|
},
|
15
14
|
padding?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl',
|
16
15
|
selected?: Boolean,
|
17
|
-
shadow?: 'none' | '
|
16
|
+
shadow?: 'none' | 'deep' | 'deeper' | 'deepest',
|
18
17
|
dark?: Boolean,
|
19
18
|
}
|
20
19
|
|
20
|
+
type CardHeaderProps = {
|
21
|
+
children: Array<React.ReactNode> | React.ReactNode,
|
22
|
+
className?: String,
|
23
|
+
padding?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl',
|
24
|
+
categoryColor?: Number,
|
25
|
+
}
|
26
|
+
|
27
|
+
type CardBodyProps = {
|
28
|
+
children: Array<React.ReactNode> | React.ReactNode | String,
|
29
|
+
className?: String,
|
30
|
+
padding?: 'none' | 'xs' | 'sm' | 'md' | 'lg' | 'xl',
|
31
|
+
}
|
32
|
+
|
33
|
+
// Header component
|
34
|
+
const Header = ({
|
35
|
+
children,
|
36
|
+
className,
|
37
|
+
padding = 'sm',
|
38
|
+
categoryColor = 1,
|
39
|
+
}: CardHeaderProps) => {
|
40
|
+
const headerCSS = buildCss('pb_card_header_kit', padding, `category_${categoryColor}`)
|
41
|
+
return (
|
42
|
+
<div className={classnames(headerCSS, className)}>
|
43
|
+
{children}
|
44
|
+
</div>
|
45
|
+
)
|
46
|
+
}
|
47
|
+
|
48
|
+
// Body component
|
49
|
+
const Body = ({
|
50
|
+
children,
|
51
|
+
className,
|
52
|
+
padding = 'sm',
|
53
|
+
}: CardBodyProps) => {
|
54
|
+
const bodyCSS = buildCss('pb_card_body_kit', padding)
|
55
|
+
return (
|
56
|
+
<div className={classnames(bodyCSS, className)}>
|
57
|
+
{children}
|
58
|
+
</div>
|
59
|
+
)
|
60
|
+
}
|
61
|
+
|
21
62
|
const Card = ({
|
22
63
|
children,
|
23
64
|
className,
|
@@ -36,13 +77,30 @@ const Card = ({
|
|
36
77
|
[`highlight_${highlight.color}`]: highlight.color,
|
37
78
|
})
|
38
79
|
|
80
|
+
// coerce to array
|
81
|
+
const cardChildren = typeof(children) === 'object' && children.length ? children : [children]
|
82
|
+
|
83
|
+
const subComponentTags = (tagName) => {
|
84
|
+
return cardChildren.filter((c) => {
|
85
|
+
return c.type && c.type.displayName === tagName
|
86
|
+
}).map((child, i) => {
|
87
|
+
return React.cloneElement(child, { key: `${tagName.toLowerCase()}-${i}` })
|
88
|
+
})
|
89
|
+
}
|
90
|
+
|
91
|
+
const nonHeaderChildren = cardChildren.filter((child) => !child.type || child.type.displayName !== 'Header')
|
92
|
+
|
39
93
|
return (
|
40
94
|
<div className={classnames(cardCss, className)}>
|
95
|
+
{subComponentTags('Header')}
|
41
96
|
<div className={bodyCSS}>
|
42
|
-
{
|
97
|
+
{nonHeaderChildren}
|
43
98
|
</div>
|
44
99
|
</div>
|
45
100
|
)
|
46
101
|
}
|
47
102
|
|
103
|
+
Card.Header = Header
|
104
|
+
Card.Body = Body
|
105
|
+
|
48
106
|
export default Card
|
@@ -1,15 +1,24 @@
|
|
1
1
|
@import "../tokens/shadows";
|
2
2
|
@import "../tokens/border_radius";
|
3
|
-
@import "../tokens/
|
3
|
+
@import "../tokens/spacing";
|
4
4
|
@import "../tokens/colors";
|
5
5
|
@import "../tokens/transition";
|
6
6
|
@import "../tokens/animation-curves";
|
7
|
-
@import "child_kits/card_body";
|
8
7
|
|
9
8
|
$pb_card_border_width: 1px;
|
10
9
|
$pb_card_border_radius: $border_rad_heavier;
|
11
|
-
$pb_card_highlight_colors: map-merge($status_colors, $product_colors);
|
10
|
+
$pb_card_highlight_colors: map-merge(map-merge($status_colors, $product_colors), $category_colors);
|
12
11
|
$pb_card_highlight_size: 4px;
|
12
|
+
$pb_card_header_colors: $category_colors;
|
13
|
+
$pb_card_header_border_radius: $border_rad_heavy;
|
14
|
+
$pb_card_padding:(
|
15
|
+
none: 0,
|
16
|
+
xs: $space_xs,
|
17
|
+
sm: $space_sm,
|
18
|
+
md: $space_md,
|
19
|
+
lg: $space_lg,
|
20
|
+
xl: $space_xl,
|
21
|
+
);
|
13
22
|
|
14
23
|
@mixin pb_card_selected($border_color: $primary) {
|
15
24
|
border-color: $border_color;
|
@@ -58,20 +67,58 @@ $pb_card_highlight_size: 4px;
|
|
58
67
|
z-index: 10;
|
59
68
|
}
|
60
69
|
|
70
|
+
@mixin pb_card_header_color($category_color) {
|
71
|
+
background: $category_color;
|
72
|
+
}
|
73
|
+
|
74
|
+
|
61
75
|
[class^=pb_card_kit] {
|
62
76
|
@include pb_card;
|
63
77
|
|
64
78
|
&[class*=_selected] {
|
65
79
|
@include pb_card_selected;
|
66
80
|
}
|
81
|
+
|
67
82
|
&[class*=_dark] {
|
68
83
|
@include pb_card_dark;
|
69
|
-
|
84
|
+
|
70
85
|
&[class*=_selected] {
|
71
86
|
@include pb_card_selected_dark;
|
72
87
|
}
|
73
88
|
}
|
74
89
|
|
90
|
+
[class^=pb_card_header_kit] {
|
91
|
+
flex-grow: 0;
|
92
|
+
flex-shrink: 0;
|
93
|
+
flex-basis: auto;
|
94
|
+
min-height: 1px;
|
95
|
+
border: 0;
|
96
|
+
border-radius: $pb_card_header_border_radius $pb_card_header_border_radius 0px 0px;
|
97
|
+
@each $color_name, $color_value in $category_colors {
|
98
|
+
&[class*=_#{$color_name}] {
|
99
|
+
@include pb_card_header_color($color_value);
|
100
|
+
}
|
101
|
+
}
|
102
|
+
@each $padding_name, $padding_value in $pb_card_padding {
|
103
|
+
&[class*=_#{$padding_name}] {
|
104
|
+
padding: $padding_value;
|
105
|
+
}
|
106
|
+
}
|
107
|
+
}
|
108
|
+
|
109
|
+
[class^=pb_card_body_kit] {
|
110
|
+
flex-grow: 0;
|
111
|
+
flex-shrink: 0;
|
112
|
+
flex-basis: auto;
|
113
|
+
min-height: 1px;
|
114
|
+
border: 0;
|
115
|
+
@each $name, $padding_size in $pb_card_padding {
|
116
|
+
&[class*=_#{$name}] {
|
117
|
+
padding: $padding_size;
|
118
|
+
}
|
119
|
+
}
|
120
|
+
}
|
121
|
+
|
75
122
|
@each $name, $shadow in $box_shadows {
|
76
123
|
&[class*=_#{$name}] {
|
77
124
|
box-shadow: $shadow;
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Playbook
|
4
|
+
module PbCard
|
5
|
+
class CardHeader
|
6
|
+
include Playbook::Props
|
7
|
+
|
8
|
+
partial "pb_card/child_kits/card_header"
|
9
|
+
|
10
|
+
prop :padding, type: Playbook::Props::Enum,
|
11
|
+
values: %w[none xs sm md lg xl],
|
12
|
+
default: "none"
|
13
|
+
prop :category_color, type: Playbook::Props::Numeric,
|
14
|
+
default: 1
|
15
|
+
|
16
|
+
def classname
|
17
|
+
generate_classname("pb_card_header_kit", padding, "category_#{category_color}")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<%= pb_rails("card", props: { padding: "none", header: true}) do %>
|
2
|
+
<%= pb_rails("card/card_header", props: { padding: "sm" }) do %>
|
3
|
+
<%= pb_rails("body", props: { text: "Header", dark: true }) %>
|
4
|
+
<% end %>
|
5
|
+
<%= pb_rails("card/card_body", props: { padding: "sm" }) do %>
|
6
|
+
Body
|
7
|
+
<% end %>
|
8
|
+
<% end %>
|
9
|
+
|
10
|
+
<br />
|
11
|
+
|
12
|
+
<%= pb_rails("card", props: { padding: "none", header: true}) do %>
|
13
|
+
<%= pb_rails("card/card_header", props: { padding: "md", category_color: 2 }) do %>
|
14
|
+
<%= pb_rails("body", props: { text: "Header", dark: true }) %>
|
15
|
+
<% end %>
|
16
|
+
<%= pb_rails("card/card_body", props: { padding: "lg" }) do %>
|
17
|
+
Body
|
18
|
+
<% end %>
|
19
|
+
<% end %>
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import React from 'react'
|
2
|
+
import { Body, Card } from '../../'
|
3
|
+
|
4
|
+
const CardHeader = () => {
|
5
|
+
return (
|
6
|
+
<div>
|
7
|
+
<Card padding="none">
|
8
|
+
<Card.Header>
|
9
|
+
<Body
|
10
|
+
dark
|
11
|
+
text="Header"
|
12
|
+
/>
|
13
|
+
</Card.Header>
|
14
|
+
<Card.Body>
|
15
|
+
<Body text="Body" />
|
16
|
+
</Card.Body>
|
17
|
+
</Card>
|
18
|
+
|
19
|
+
<br />
|
20
|
+
|
21
|
+
<Card padding="none">
|
22
|
+
<Card.Header
|
23
|
+
categoryColor={2}
|
24
|
+
padding="md"
|
25
|
+
>
|
26
|
+
<Body
|
27
|
+
dark
|
28
|
+
text="Header"
|
29
|
+
/>
|
30
|
+
</Card.Header>
|
31
|
+
<Card.Body
|
32
|
+
padding="lg"
|
33
|
+
>
|
34
|
+
<Body text="Body" />
|
35
|
+
</Card.Body>
|
36
|
+
</Card>
|
37
|
+
</div>
|
38
|
+
)
|
39
|
+
}
|
40
|
+
|
41
|
+
export default CardHeader
|
@@ -0,0 +1 @@
|
|
1
|
+
Card headers passes category colors only. List of all category colors can be viewed <a href="https://playbook.powerapp.cloud/utilities" target="_blank">here</a>.
|
@@ -13,6 +13,12 @@ const CardHighlight = () => {
|
|
13
13
|
<Card highlight={{ position: 'top', color: 'warning' }}>
|
14
14
|
{'Card content'}
|
15
15
|
</Card>
|
16
|
+
|
17
|
+
<br />
|
18
|
+
|
19
|
+
<Card highlight={{ position: 'side', color: 'category_2' }}>
|
20
|
+
{'Card content'}
|
21
|
+
</Card>
|
16
22
|
</div>
|
17
23
|
)
|
18
24
|
}
|
@@ -0,0 +1 @@
|
|
1
|
+
Card highlight can pass status, product, and category colors. List of all colors can be viewed <a href="https://playbook.powerapp.cloud/utilities" target="_blank">here</a>.
|
@@ -1,20 +1,23 @@
|
|
1
1
|
import React from 'react'
|
2
2
|
import { Card } from '../../'
|
3
|
-
import { Body } from '../../'
|
4
3
|
import { SectionSeparator } from '../../'
|
5
4
|
|
6
5
|
const CardSeparator = () => {
|
7
6
|
return (
|
8
7
|
<Card padding="none">
|
9
|
-
<Body>
|
8
|
+
<Card.Body>
|
9
|
+
{'Header'}
|
10
|
+
</Card.Body>
|
10
11
|
<SectionSeparator variant="card" />
|
11
|
-
<Body>
|
12
|
+
<Card.Body>
|
12
13
|
{
|
13
14
|
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec iaculis, risus a fringilla luctus, sapien eros sodales ex, quis molestie est nulla non turpis. Vestibulum aliquet at ipsum eget posuere. Morbi sed laoreet erat. Sed commodo posuere lectus, at porta nulla ornare a. Suspendisse quam est, sollicitudin ut enim sit amet, commodo placerat enim. Donec laoreet metus ac mauris pellentesque mattis. Pellentesque luctus vel mauris non aliquam. Mauris hendrerit mattis porttitor. Curabitur vehicula justo non ex consectetur commodo. Quisque posuere aliquet quam. Maecenas malesuada magna mauris, ac tempor metus euismod at. Cras ornare fermentum magna mollis efficitur. Sed vitae nulla vel purus ultrices mollis. Maecenas id nulla id libero faucibus feugiat quis sit amet turpis. In commodo pellentesque risus at fringilla. Integer non interdum leo, non commodo ante. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut mi augue, dignissim at orci vel, egestas aliquam mi. Proin finibus aliquet tempor. Integer cursus, ex quis gravida rhoncus, nisi elit viverra ipsum, non efficitur est ex ac tortor. Praesent vitae odio massa.'
|
14
15
|
}
|
15
|
-
</Body>
|
16
|
+
</Card.Body>
|
16
17
|
<SectionSeparator variant="card" />
|
17
|
-
<Body>
|
18
|
+
<Card.Body>
|
19
|
+
{'Footer'}
|
20
|
+
</Card.Body>
|
18
21
|
</Card>
|
19
22
|
)
|
20
23
|
}
|
@@ -6,10 +6,6 @@ const CardShadow = () => {
|
|
6
6
|
<div>
|
7
7
|
<Card shadow="none">{'Card content'}</Card>
|
8
8
|
<br />
|
9
|
-
<Card shadow="shallow">{'Card content'}</Card>
|
10
|
-
<br />
|
11
|
-
<Card shadow="default">{'Card content'}</Card>
|
12
|
-
<br />
|
13
9
|
<Card shadow="deep">{'Card content'}</Card>
|
14
10
|
<br />
|
15
11
|
<Card shadow="deeper">{'Card content'}</Card>
|