Hello.
IMO, if you are trying to do something, then it means you have some progress or something that you’ve tried, therefore this should be present in the post. So far you’ve only described and showed how it should look like and how can this be done. This sends conflicting signals, as if you are trying, but actually you didn’t try anything, which is not great. Perhaps a wrong verb was chosen.
Here is something that looks like what you want, not sure about corner specifics:
#let frame-shape(width: 10cm, height: 5cm, radius: 15pt, a: 0pt, ..args) = {
set curve.quad(relative: true)
set curve.line(relative: true)
curve(
..args,
curve.move((0pt, radius)),
curve.line((0pt, height - radius * 2)), // Left
curve.quad((-a + radius, a), (radius, radius)), // Bottom-left
curve.line((width - radius * 2, 0pt)), // Bottom
curve.quad((a, a - radius), (radius, 0pt - radius)), // Bottom-right
curve.line((0pt, -height + radius * 2)), // Right
curve.quad((a - radius, -a), (-radius, -radius)), // Top-right
curve.line((-width + radius * 2, 0pt)), // Top edge
curve.quad((-a, -a + radius), (-radius, radius)), // Top-left
)
}
#let frame(
width: 10cm,
height: auto,
radius: 15pt,
inner: 2pt,
stroke: 1pt,
inner-stroke: 0.5pt,
body,
) = {
layout(size => {
let body-block = block.with(width: width, inset: radius + inner)
let (height, body) = if height != auto {
(height, body-block(height: height, body))
} else {
let body = body-block(body)
(measure(body, ..size).height, body)
}
place(frame-shape(
width: width,
height: height,
radius: radius,
stroke: stroke,
))
place(dx: inner, dy: inner, frame-shape(
width: width - inner * 2,
height: height - inner * 2,
radius: radius,
stroke: inner-stroke,
a: inner / 2,
))
body
})
}
#set par(justify: true)
#frame(lorem(25))
#frame(width: 13cm)[
#align(center, lorem(5))
#align(center, lorem(7))
#lorem(59)
#lorem(6)
]
About redacting. I don’t see why you can’t just remove the text and only leave the clean empty frame. Why going half-way and bother blurring if it’s not important anyway and can be stripped completely. A rule of thumb is to always avoid blurring, if you really don’t want to share the content, or it’s not important/relevant (it’s shape, etc).