coveragebook_components 0.5.5 → 0.5.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/build/coco/app.css +286 -61
- data/app/assets/build/coco/app.js +1 -1
- data/app/assets/build/coco/book.css +347 -62
- data/app/assets/build/coco/img/test/slides/slide-bg.jpg +0 -0
- data/app/assets/build/coco/img/test/slides/slide-foreground-landscape.jpg +0 -0
- data/app/assets/build/coco/img/test/slides/slide-foreground-portrait.jpg +0 -0
- data/app/assets/img/test/slides/slide-bg.jpg +0 -0
- data/app/assets/img/test/slides/slide-foreground-landscape.jpg +0 -0
- data/app/assets/img/test/slides/slide-foreground-portrait.jpg +0 -0
- data/app/components/coco/book/blocks/slides/editable_slide/editable_slide.css +243 -37
- data/app/components/coco/book/blocks/slides/editable_slide/editable_slide.html.erb +30 -12
- data/app/components/coco/book/blocks/slides/editable_slide/editable_slide.rb +28 -1
- data/lib/coco.rb +1 -1
- metadata +8 -4
- data/app/assets/build/coco/img/slide-bg.jpg +0 -0
- data/app/assets/img/slide-bg.jpg +0 -0
@@ -1,40 +1,46 @@
|
|
1
1
|
@layer components {
|
2
2
|
[data-coco][data-component="book-editable-slide"] {
|
3
3
|
/*
|
4
|
-
*
|
5
|
-
*
|
4
|
+
* slide-padding-md at max (1480px): 240px (16.2%)
|
5
|
+
* slide-padding-md at min (320px): 16.2% x 320px = 52px
|
6
6
|
*/
|
7
|
-
--
|
7
|
+
--slide-padding-lg: max(38px, clamp(52px, 16.2cqw, 240px));
|
8
8
|
|
9
9
|
/*
|
10
|
-
*
|
11
|
-
*
|
10
|
+
* slide-padding-md at max (1480px): 120px (8.1%)
|
11
|
+
* slide-padding-md at min (320px): 8.1% x 320px = 26px
|
12
12
|
*/
|
13
|
-
--
|
13
|
+
--slide-padding-md: max(24px, clamp(26px, 8.1cqw, 120px));
|
14
14
|
|
15
15
|
/*
|
16
|
-
*
|
17
|
-
*
|
18
|
-
|
16
|
+
* slide-padding-sm at max (1480px): 80px (5.4%)
|
17
|
+
* slide-padding-sm at min (320px): 5.4% x 320px = 17px
|
18
|
+
*/
|
19
|
+
--slide-padding-sm: max(24px, clamp(17px, 5.4cqw, 80px));
|
20
|
+
|
21
|
+
/*
|
22
|
+
* Small title font size at max (1480px): 64px (4.3%)
|
23
|
+
* Small title font size at min (320px): 4.3% x 320px = 13.8px
|
19
24
|
*/
|
20
25
|
--title-font-size: max(
|
21
|
-
|
22
|
-
clamp(
|
26
|
+
32px,
|
27
|
+
clamp(13.8px, 4.3cqw, theme(fontSize.display-3))
|
23
28
|
);
|
24
29
|
|
25
30
|
/*
|
26
|
-
* Text font size at max (1480px):
|
27
|
-
* Text font size at min (320px):
|
28
|
-
* Text font size at reflow (700px): 14px
|
31
|
+
* Text font size at max (1480px): 24px / 1.62%
|
32
|
+
* Text font size at min (320px): 1.62% x 320px = 5.2px
|
29
33
|
*/
|
30
34
|
--text-font-size: max(
|
31
|
-
|
32
|
-
clamp(
|
35
|
+
16px,
|
36
|
+
clamp(5.2px, 1.62cqw, theme(fontSize.subheading-2))
|
33
37
|
);
|
34
38
|
|
35
39
|
/* ------------- */
|
36
40
|
|
37
|
-
@apply
|
41
|
+
@apply relative rounded-md @container;
|
42
|
+
@apply bg-white bg-no-repeat bg-cover;
|
43
|
+
|
38
44
|
min-width: 320px;
|
39
45
|
|
40
46
|
.slide-aspect {
|
@@ -42,13 +48,14 @@
|
|
42
48
|
}
|
43
49
|
|
44
50
|
.slide-container {
|
45
|
-
@apply @slide-fluid:absolute @slide-fluid:inset-0;
|
46
|
-
@apply
|
51
|
+
@apply @slide-fluid:absolute @slide-fluid:inset-0 overflow-hidden;
|
52
|
+
@apply px-6 py-10 @slide-fluid:p-[var(--slide-padding-md)];
|
47
53
|
}
|
48
54
|
|
49
55
|
[data-slide-region],
|
56
|
+
.slide-header,
|
50
57
|
.slide-text,
|
51
|
-
.slide-
|
58
|
+
.slide-image {
|
52
59
|
@apply hidden;
|
53
60
|
}
|
54
61
|
|
@@ -56,10 +63,53 @@
|
|
56
63
|
@apply contents;
|
57
64
|
}
|
58
65
|
|
66
|
+
.slide-title {
|
67
|
+
@apply font-bold text-current;
|
68
|
+
overflow-wrap: anywhere;
|
69
|
+
line-height: 1.1;
|
70
|
+
font-size: var(--title-font-size);
|
71
|
+
}
|
72
|
+
|
73
|
+
.slide-text {
|
74
|
+
@apply text-current;
|
75
|
+
line-height: 1.5;
|
76
|
+
font-size: var(--text-font-size);
|
77
|
+
}
|
78
|
+
|
79
|
+
.slide-media {
|
80
|
+
@apply w-full;
|
81
|
+
|
82
|
+
img {
|
83
|
+
@apply w-full h-full object-contain;
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
59
87
|
/* layouts */
|
60
88
|
|
61
|
-
&[data-layout="
|
62
|
-
|
89
|
+
&[data-layout="one-col-title"] {
|
90
|
+
/*
|
91
|
+
* Title font size at max (1480px): 80px (5.4%)
|
92
|
+
* Title font size at min (320px): 5.4% x 320px = 17px
|
93
|
+
*/
|
94
|
+
--title-font-size: max(
|
95
|
+
35px,
|
96
|
+
clamp(17px, 5.4cqw, theme(fontSize.display-2))
|
97
|
+
);
|
98
|
+
|
99
|
+
/*
|
100
|
+
* Text font size at max (1480px): 32px / 2.16%
|
101
|
+
* Text font size at min (320px): 2.16% x 320px = 7px
|
102
|
+
*/
|
103
|
+
--text-font-size: max(
|
104
|
+
16px,
|
105
|
+
clamp(7px, 2.16cqw, theme(fontSize.subheading-1))
|
106
|
+
);
|
107
|
+
|
108
|
+
@apply text-center;
|
109
|
+
|
110
|
+
.slide-container {
|
111
|
+
@apply @slide-fluid:px-[var(--slide-padding-lg)];
|
112
|
+
}
|
63
113
|
|
64
114
|
[data-slide-region="content-1"] {
|
65
115
|
@apply block;
|
@@ -69,17 +119,16 @@
|
|
69
119
|
}
|
70
120
|
}
|
71
121
|
|
72
|
-
.slide-
|
73
|
-
|
74
|
-
|
75
|
-
|
122
|
+
&.with-title [data-slide-region="content-1"] .slide-text {
|
123
|
+
margin-top: 0.875em;
|
124
|
+
}
|
125
|
+
|
126
|
+
.slide-layout {
|
127
|
+
@apply flex flex-col items-center justify-center text-center w-full h-full;
|
76
128
|
}
|
77
129
|
|
78
130
|
.slide-header {
|
79
|
-
@apply w-full;
|
80
|
-
margin-bottom: 0.3em;
|
81
|
-
line-height: 1.1;
|
82
|
-
font-size: var(--title-font-size);
|
131
|
+
@apply w-full block;
|
83
132
|
}
|
84
133
|
|
85
134
|
.slide-content {
|
@@ -91,16 +140,173 @@
|
|
91
140
|
@apply mx-auto w-full max-w-[360px] @slide-fluid:max-w-full;
|
92
141
|
}
|
93
142
|
|
143
|
+
.slide-text {
|
144
|
+
line-height: 1.4;
|
145
|
+
}
|
146
|
+
}
|
147
|
+
|
148
|
+
&[data-layout="one-col-text"] {
|
149
|
+
.slide-container {
|
150
|
+
@apply flex items-center;
|
151
|
+
}
|
152
|
+
|
153
|
+
.slide-layout {
|
154
|
+
@apply @slide-fluid:grid w-full;
|
155
|
+
height: min-content;
|
156
|
+
grid-template-columns: 1fr;
|
157
|
+
grid-template-rows: auto;
|
158
|
+
grid-gap: var(--slide-padding-sm);
|
159
|
+
}
|
160
|
+
|
161
|
+
&.with-title {
|
162
|
+
.slide-container {
|
163
|
+
@apply block;
|
164
|
+
}
|
165
|
+
|
166
|
+
.slide-layout {
|
167
|
+
@apply h-full;
|
168
|
+
grid-template-rows: min-content auto;
|
169
|
+
}
|
170
|
+
}
|
171
|
+
|
172
|
+
.slide-header {
|
173
|
+
@apply w-full block;
|
174
|
+
@apply mb-6 @slide-fluid:mb-0;
|
175
|
+
}
|
176
|
+
|
177
|
+
[data-slide-region="content-1"] {
|
178
|
+
@apply block;
|
179
|
+
|
180
|
+
.slide-text {
|
181
|
+
@apply block;
|
182
|
+
}
|
183
|
+
}
|
184
|
+
}
|
185
|
+
|
186
|
+
&[data-layout="one-col-media"] {
|
187
|
+
.slide-container {
|
188
|
+
@apply py-6 @slide-fluid:py-[var(--slide-padding-sm)];
|
189
|
+
}
|
190
|
+
|
191
|
+
.slide-layout,
|
192
|
+
.slide-content {
|
193
|
+
@apply h-full;
|
194
|
+
}
|
195
|
+
|
196
|
+
[data-slide-region="content-1"] {
|
197
|
+
@apply block;
|
198
|
+
|
199
|
+
.slide-media {
|
200
|
+
@apply block w-full h-full;
|
201
|
+
|
202
|
+
img {
|
203
|
+
@apply h-full w-full object-contain;
|
204
|
+
}
|
205
|
+
}
|
206
|
+
}
|
207
|
+
}
|
208
|
+
|
209
|
+
&[data-layout="two-col-text"],
|
210
|
+
&[data-layout="two-col-media"] {
|
211
|
+
.slide-container {
|
212
|
+
@apply flex items-center;
|
213
|
+
@apply py-6 @slide-fluid:py-[var(--slide-padding-sm)];
|
214
|
+
}
|
215
|
+
|
216
|
+
.slide-layout {
|
217
|
+
@apply @slide-fluid:grid w-full;
|
218
|
+
height: min-content;
|
219
|
+
grid-template-columns: 1fr 1fr;
|
220
|
+
grid-template-rows: auto;
|
221
|
+
grid-gap: var(--slide-padding-sm);
|
222
|
+
}
|
223
|
+
|
224
|
+
&.with-title {
|
225
|
+
.slide-container {
|
226
|
+
@apply block;
|
227
|
+
}
|
228
|
+
|
229
|
+
.slide-layout {
|
230
|
+
@apply h-full;
|
231
|
+
grid-template-rows: min-content auto;
|
232
|
+
}
|
233
|
+
}
|
234
|
+
|
235
|
+
.slide-header {
|
236
|
+
@apply w-full block;
|
237
|
+
@apply mb-10 @slide-fluid:mb-0;
|
238
|
+
grid-column-start: 1;
|
239
|
+
grid-column-end: -1;
|
240
|
+
}
|
241
|
+
|
242
|
+
[data-slide-region="content-1"],
|
243
|
+
[data-slide-region="content-2"] {
|
244
|
+
@apply block;
|
245
|
+
|
246
|
+
.slide-text,
|
247
|
+
.slide-media {
|
248
|
+
@apply block;
|
249
|
+
}
|
250
|
+
}
|
251
|
+
|
252
|
+
[data-slide-region="content-1"] {
|
253
|
+
@apply mb-[var(--slide-padding-sm)] @slide-fluid:mb-0;
|
254
|
+
}
|
255
|
+
}
|
256
|
+
|
257
|
+
&[data-layout="two-col-media"] {
|
258
|
+
.slide-layout {
|
259
|
+
@apply @slide-fluid:h-full;
|
260
|
+
}
|
261
|
+
|
262
|
+
.slide-content {
|
263
|
+
@apply relative @slide-fluid:flex @slide-fluid:items-center @slide-fluid:h-full;
|
264
|
+
}
|
265
|
+
|
266
|
+
.slide-media {
|
267
|
+
@apply @slide-fluid:absolute @slide-fluid:inset-0;
|
268
|
+
}
|
269
|
+
}
|
270
|
+
|
271
|
+
&[data-layout="two-col-mixed"] {
|
272
|
+
.slide-layout {
|
273
|
+
@apply @slide-fluid:grid w-full h-full;
|
274
|
+
grid-template-columns: 1fr 1fr;
|
275
|
+
grid-template-rows: auto;
|
276
|
+
grid-gap: var(--slide-padding-sm);
|
277
|
+
}
|
278
|
+
|
279
|
+
.slide-group {
|
280
|
+
@apply flex flex-col justify-center;
|
281
|
+
@apply mb-[var(--slide-padding-sm)] @slide-fluid:mb-0;
|
282
|
+
}
|
283
|
+
|
284
|
+
.slide-header {
|
285
|
+
@apply w-full block;
|
286
|
+
}
|
287
|
+
|
94
288
|
.slide-title {
|
95
|
-
|
96
|
-
overflow-wrap: anywhere;
|
97
|
-
line-height: 1.1;
|
289
|
+
margin-bottom: 0.5em;
|
98
290
|
}
|
99
291
|
|
100
|
-
|
101
|
-
@apply
|
102
|
-
|
103
|
-
|
292
|
+
[data-slide-region="content-1"] {
|
293
|
+
@apply block;
|
294
|
+
|
295
|
+
.slide-text {
|
296
|
+
@apply block;
|
297
|
+
}
|
298
|
+
}
|
299
|
+
|
300
|
+
[data-slide-region="content-2"] {
|
301
|
+
@apply relative block @slide-fluid:flex @slide-fluid:items-center @slide-fluid:h-full;
|
302
|
+
|
303
|
+
.slide-media {
|
304
|
+
@apply block @slide-fluid:absolute @slide-fluid:inset-0;
|
305
|
+
|
306
|
+
img {
|
307
|
+
@apply h-full w-full object-contain;
|
308
|
+
}
|
309
|
+
}
|
104
310
|
}
|
105
311
|
}
|
106
312
|
}
|
@@ -1,21 +1,39 @@
|
|
1
|
-
<%= render component_tag(style: slide_styles) do %>
|
1
|
+
<%= render component_tag(style: slide_styles, class: {"with-title": title?}) do %>
|
2
2
|
<div class="slide-aspect">
|
3
3
|
<div class="slide-container">
|
4
4
|
|
5
|
-
<div class="slide-
|
6
|
-
<
|
5
|
+
<div class="slide-layout">
|
6
|
+
<div class="slide-group">
|
7
7
|
<% if title? %>
|
8
|
-
<
|
9
|
-
|
10
|
-
|
8
|
+
<header class="slide-header">
|
9
|
+
<h3 class="slide-title" data-role="title">
|
10
|
+
<%= title %>
|
11
|
+
</h3>
|
12
|
+
</header>
|
11
13
|
<% end %>
|
12
|
-
</header>
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
15
|
+
<div class="slide-content" data-slide-region="content-1">
|
16
|
+
<% if text_1? %>
|
17
|
+
<div class="slide-text" data-role="text-1">
|
18
|
+
<%= text_1 %>
|
19
|
+
</div>
|
20
|
+
<% elsif image_1? %>
|
21
|
+
<div class="slide-media" data-role="media-1">
|
22
|
+
<img src="<%= image_1 %>">
|
23
|
+
</div>
|
24
|
+
<% end %>
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
|
28
|
+
<div class="slide-content" data-slide-region="content-2">
|
29
|
+
<% if text_2? %>
|
30
|
+
<div class="slide-text" data-role="text-2">
|
31
|
+
<%= text_2 %>
|
32
|
+
</div>
|
33
|
+
<% elsif image_2? %>
|
34
|
+
<div class="slide-media" data-role="media-2">
|
35
|
+
<img src="<%= image_2 %>">
|
36
|
+
</div>
|
19
37
|
<% end %>
|
20
38
|
</div>
|
21
39
|
</div>
|
@@ -7,7 +7,7 @@ module Coco
|
|
7
7
|
include Coco::TagHelper
|
8
8
|
include Coco::FormatHelper
|
9
9
|
|
10
|
-
accepts_option :layout, from: %w[
|
10
|
+
accepts_option :layout, from: %w[one-col-title one-col-text one-col-media two-col-text two-col-media two-col-mixed], default: "one-col-title"
|
11
11
|
|
12
12
|
renders_one :title,
|
13
13
|
->(&block) do
|
@@ -21,6 +21,33 @@ module Coco
|
|
21
21
|
block.call
|
22
22
|
end
|
23
23
|
|
24
|
+
renders_one :text_2,
|
25
|
+
->(&block) do
|
26
|
+
@has_content = true
|
27
|
+
block.call
|
28
|
+
end
|
29
|
+
|
30
|
+
renders_one :image_1,
|
31
|
+
->(href:) do
|
32
|
+
@has_content = true
|
33
|
+
href
|
34
|
+
end
|
35
|
+
|
36
|
+
renders_one :image_2,
|
37
|
+
->(href:) do
|
38
|
+
@has_content = true
|
39
|
+
href
|
40
|
+
end
|
41
|
+
|
42
|
+
before_initialize do |kwargs|
|
43
|
+
if kwargs[:layout]
|
44
|
+
kwargs[:layout] = kwargs[:layout].to_s.tr("_", "-")
|
45
|
+
kwargs[:layout] = "one-col-title" if kwargs[:layout] == "basic" # handle legacy layout name
|
46
|
+
end
|
47
|
+
|
48
|
+
kwargs
|
49
|
+
end
|
50
|
+
|
24
51
|
attr_reader :bg_image, :text_color_hex, :bg_color_hex
|
25
52
|
|
26
53
|
def initialize(bg_image: nil, bg_color_hex: nil, text_color_hex: nil, render_empty: false, **kwargs)
|
data/lib/coco.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: coveragebook_components
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mark Perkins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-07-
|
11
|
+
date: 2023-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -1257,7 +1257,9 @@ files:
|
|
1257
1257
|
- app/assets/build/coco/icons/zoom-out.svg
|
1258
1258
|
- app/assets/build/coco/img/coveragebook-landscape-white.svg
|
1259
1259
|
- app/assets/build/coco/img/coveragebook-logomark-white.svg
|
1260
|
-
- app/assets/build/coco/img/slide-bg.jpg
|
1260
|
+
- app/assets/build/coco/img/test/slides/slide-bg.jpg
|
1261
|
+
- app/assets/build/coco/img/test/slides/slide-foreground-landscape.jpg
|
1262
|
+
- app/assets/build/coco/img/test/slides/slide-foreground-portrait.jpg
|
1261
1263
|
- app/assets/config/coco/manifest.js
|
1262
1264
|
- app/assets/css/app.css
|
1263
1265
|
- app/assets/css/app/config.css
|
@@ -1274,7 +1276,9 @@ files:
|
|
1274
1276
|
- app/assets/css/libs/tippy.css
|
1275
1277
|
- app/assets/img/coveragebook-landscape-white.svg
|
1276
1278
|
- app/assets/img/coveragebook-logomark-white.svg
|
1277
|
-
- app/assets/img/slide-bg.jpg
|
1279
|
+
- app/assets/img/test/slides/slide-bg.jpg
|
1280
|
+
- app/assets/img/test/slides/slide-foreground-landscape.jpg
|
1281
|
+
- app/assets/img/test/slides/slide-foreground-portrait.jpg
|
1278
1282
|
- app/assets/js/app.js
|
1279
1283
|
- app/assets/js/app/components.js
|
1280
1284
|
- app/assets/js/app/mixins/dropdown.js
|
Binary file
|
data/app/assets/img/slide-bg.jpg
DELETED
Binary file
|