mirror of
https://github.com/typst/typst
synced 2025-05-16 01:55:28 +08:00
94 lines
2.2 KiB
Typst
94 lines
2.2 KiB
Typst
// Test shape fill & stroke.
|
|
|
|
---
|
|
#let variant = rect.with(width: 20pt, height: 10pt)
|
|
#let items = for (i, item) in (
|
|
variant(stroke: none),
|
|
variant(),
|
|
variant(fill: none),
|
|
variant(stroke: 2pt),
|
|
variant(stroke: eastern),
|
|
variant(stroke: eastern + 2pt),
|
|
variant(fill: eastern),
|
|
variant(fill: eastern, stroke: none),
|
|
variant(fill: forest, stroke: none),
|
|
variant(fill: forest, stroke: conifer),
|
|
variant(fill: forest, stroke: black + 2pt),
|
|
variant(fill: forest, stroke: conifer + 2pt),
|
|
).enumerate() {
|
|
(align(horizon)[#(i + 1).], item, [])
|
|
}
|
|
|
|
#grid(
|
|
columns: (auto, auto, 1fr, auto, auto, 0fr),
|
|
gutter: 5pt,
|
|
..items,
|
|
)
|
|
|
|
---
|
|
// Test stroke folding.
|
|
#let sq(..args) = box(square(size: 10pt, ..args))
|
|
|
|
#set square(stroke: none)
|
|
#sq()
|
|
#set square(stroke: auto)
|
|
#sq()
|
|
#sq(fill: teal)
|
|
#sq(stroke: 2pt)
|
|
#sq(stroke: blue)
|
|
#sq(fill: teal, stroke: blue)
|
|
#sq(fill: teal, stroke: 2pt + blue)
|
|
|
|
---
|
|
// Test stroke composition.
|
|
#set square(stroke: 4pt)
|
|
#set text(font: "Roboto")
|
|
#stack(
|
|
dir: ltr,
|
|
square(
|
|
stroke: (left: red, top: yellow, right: green, bottom: blue),
|
|
radius: 50%, align(center+horizon)[*G*],
|
|
inset: 8pt
|
|
),
|
|
h(0.5cm),
|
|
square(
|
|
stroke: (left: red, top: yellow + 8pt, right: green, bottom: blue + 2pt),
|
|
radius: 50%, align(center+horizon)[*G*],
|
|
inset: 8pt
|
|
),
|
|
h(0.5cm),
|
|
square(
|
|
stroke: (left: red, top: yellow, right: green, bottom: blue),
|
|
radius: 100%, align(center+horizon)[*G*],
|
|
inset: 8pt
|
|
),
|
|
)
|
|
|
|
// Join between different solid strokes
|
|
#set square(size: 20pt, stroke: 2pt)
|
|
#set square(stroke: (left: green + 4pt, top: black + 2pt, right: blue, bottom: black + 2pt))
|
|
#stack(
|
|
dir: ltr,
|
|
square(),
|
|
h(0.2cm),
|
|
square(radius: (top-left: 0pt, rest: 1pt)),
|
|
h(0.2cm),
|
|
square(radius: (top-left: 0pt, rest: 8pt)),
|
|
h(0.2cm),
|
|
square(radius: (top-left: 0pt, rest: 100pt)),
|
|
)
|
|
|
|
|
|
// Join between solid and dotted strokes
|
|
#set square(stroke: (left: green + 4pt, top: black + 2pt, right: (paint: blue, dash: "dotted"), bottom: (paint: black, dash: "dotted")))
|
|
#stack(
|
|
dir: ltr,
|
|
square(),
|
|
h(0.2cm),
|
|
square(radius: (top-left: 0pt, rest: 1pt)),
|
|
h(0.2cm),
|
|
square(radius: (top-left: 0pt, rest: 8pt)),
|
|
h(0.2cm),
|
|
square(radius: (top-left: 0pt, rest: 100pt)),
|
|
)
|