diff options
-rw-r--r-- | src/objects/_backdrop.scss | 1 | ||||
-rw-r--r-- | src/objects/_dialog.scss | 10 | ||||
-rw-r--r-- | tpl/objects/dialog.pug | 5 | ||||
-rw-r--r-- | tpl/views/dialog.pug | 12 |
4 files changed, 25 insertions, 3 deletions
diff --git a/src/objects/_backdrop.scss b/src/objects/_backdrop.scss index 7653a99..fee5577 100644 --- a/src/objects/_backdrop.scss +++ b/src/objects/_backdrop.scss | |||
@@ -31,6 +31,7 @@ | |||
31 | left: 0; | 31 | left: 0; |
32 | box-sizing: border-box; | 32 | box-sizing: border-box; |
33 | flex-direction: column; | 33 | flex-direction: column; |
34 | overflow: auto; | ||
34 | background-color: fn.color(--bg); | 35 | background-color: fn.color(--bg); |
35 | color: fn.global-color(--fg); | 36 | color: fn.global-color(--fg); |
36 | backdrop-filter: blur(fn.dim(--blur)); | 37 | backdrop-filter: blur(fn.dim(--blur)); |
diff --git a/src/objects/_dialog.scss b/src/objects/_dialog.scss index b935f8d..a85fd1f 100644 --- a/src/objects/_dialog.scss +++ b/src/objects/_dialog.scss | |||
@@ -58,6 +58,7 @@ | |||
58 | 'sidebar footer'; | 58 | 'sidebar footer'; |
59 | position: relative; | 59 | position: relative; |
60 | box-sizing: border-box; | 60 | box-sizing: border-box; |
61 | flex: 0 0 auto; | ||
61 | width: 100%; | 62 | width: 100%; |
62 | max-width: fn.dim(--width-md); | 63 | max-width: fn.dim(--width-md); |
63 | margin: 0 auto; | 64 | margin: 0 auto; |
@@ -120,6 +121,15 @@ | |||
120 | padding: fn.dim(--body --pad-y) fn.dim(--body --pad-x); | 121 | padding: fn.dim(--body --pad-y) fn.dim(--body --pad-x); |
121 | } | 122 | } |
122 | 123 | ||
124 | @include iro.bem-modifier('scrollable') { | ||
125 | flex-shrink: 1; | ||
126 | |||
127 | @include iro.bem-elem('body') { | ||
128 | overflow: auto; | ||
129 | scrollbar-color: fn.global-color(--obj-lo) transparent; | ||
130 | } | ||
131 | } | ||
132 | |||
123 | @include iro.bem-modifier('flat') { | 133 | @include iro.bem-modifier('flat') { |
124 | @include iro.bem-elem('header') { | 134 | @include iro.bem-elem('header') { |
125 | border-bottom: 0; | 135 | border-bottom: 0; |
diff --git a/tpl/objects/dialog.pug b/tpl/objects/dialog.pug index 2a2530f..26b953b 100644 --- a/tpl/objects/dialog.pug +++ b/tpl/objects/dialog.pug | |||
@@ -10,8 +10,9 @@ mixin dialog(title) | |||
10 | block ? block() : undefined | 10 | block ? block() : undefined |
11 | 11 | ||
12 | let classes = { | 12 | let classes = { |
13 | 'o-dialog': true, | 13 | 'o-dialog': true, |
14 | 'o-dialog--flat': attributes.flat, | 14 | 'o-dialog--flat': attributes.flat, |
15 | 'o-dialog--scrollable': attributes.scrollable, | ||
15 | } | 16 | } |
16 | 17 | ||
17 | let headerClass = { | 18 | let headerClass = { |
diff --git a/tpl/views/dialog.pug b/tpl/views/dialog.pug index 6ef06df..5a659dd 100644 --- a/tpl/views/dialog.pug +++ b/tpl/views/dialog.pug | |||
@@ -8,7 +8,17 @@ mixin view-dialog | |||
8 | 8 | ||
9 | .c-box | 9 | .c-box |
10 | +backdrop(pad=true) | 10 | +backdrop(pad=true) |
11 | +dialog('Lorem ipsum')(bodyClass='l-overflow') | 11 | +dialog('Lorem ipsum') |
12 | +slot('body') | ||
13 | p.u-mt-0= loremIpsum | ||
14 | p= loremIpsum | ||
15 | p= loremIpsum | ||
16 | p= loremIpsum | ||
17 | p= loremIpsum | ||
18 | |||
19 | .c-box | ||
20 | +backdrop(pad=true) | ||
21 | +dialog('Lorem ipsum')(scrollable=true) | ||
12 | +slot('body') | 22 | +slot('body') |
13 | p.u-mt-0= loremIpsum | 23 | p.u-mt-0= loremIpsum |
14 | p= loremIpsum | 24 | p= loremIpsum |