t

tiefbubbles

@preview

Chat bubbles for everybody. Simple template for whatever bubbly future you aspire to.

v0.1.0
MIT

Package Information

Last Updated
Minimum Typst Version
0.13.1
Categories
fun

1. Get the package

Download the package using the TPIX CLI:

tpix get @preview/tiefbubbles:0.1.0

2. Import in your Typst file

Add this to your .typ file:

#import "@preview/tiefbubbles:0.1.0": *

Version History

0.1.00.13.1
d78333b4a895...

TiefBubbles

Bubbles! Well. Chat bubbles. But bubbles!

Welcome to TiefBubbles, the one and (probably not) only library to create chat bubbles.
If you are writing chats in block quotes still, you need tiefbubbles! Create beautiful
bubbles that adapt to your vision, not mine.

With features like naming, colored boxes, simple alternating mode, so on, it's possible
to simply create beautiful chat bubbles!

Usage

To import the package manually in your Typst project, use:

#import "@preview/tiefbubbles:0.1.0": bubbles

Then simply bubble along like a mad chatter!

#bubbles(
    [First message],
    [Second message],
    [#lorem(20)],
)

Bubbles Formatting and Creation

Due to the simplicity of the task, there is only one function in TiefBubbles: bubbles.

However, bubbles has multiple ways to create and format bubbles. These are described below:

Simple Mode

Simply add as many contents (messages) as you want to the parameters of bubbles to create
an alternating chat. Each message begins on the opposite side of the previous message.

If so desired, the side of the message appearing may be swapped using swap-sides.

Modes

There are two modes in TiefBubbles. alternating, which is the above described default,
simply alternating between left and right, and named, which allows for naming participants
and defining a primary participant (displayed to the opposite side of other participants).

Participant Selection

You can use an arbitrary number of participants. A participant for a chat message can be
selected in two ways: You may either pass an array as the message, with the participant being
the first argument and the content the second, or you can use a dictionary with name and
content keys.

To change which participant appears opposite to the others, use the primary-participant
field. Set it to the name (the strings are compared) of the participant you want to use.

You may also show the name of the participant above the message using the show-name option.

Bubble Styling

There are two styling dictionaries that are used for styling the messages:

  1. name-style gets applied to the name text
  2. box-style gets applied to the bubble box

These dictionaries can contain keys of the respective built-in function. For example, to set
the text size of names, use:

#bubbles(
    //...
    name-style: (size: 20pt),
    //...
)

Similarly, you can set the bubble style like so:

#bubbles(
    //...
    box-style: (fill: blue),
    //...
)

However, if desired, the bubble style can be different for the left and right messages. This
can be done by providing two dictionaries, one for the left and one for the right bubble, like so:

#bubbles(
    //...
    box-style: (left: (fill: blue), right: (fill: green)),
    //...
)

Both left and right must be populated for this to work.

Reference

bubbles

#bubbles(
  mode: "alternating", // The mode to display the bubbles with
  primary-participant: "A", // Participant name appearing on the primary side
  show-name: false, // Whether to display the names of the participants
  name-style: (:), // Styling dictionary of the names
  box-style: (:), // Styling dictionary of the boxes (allows left/right distinction)
  swap-sides: false, // Whether to swap the sides of the bubbles
  ..contents, // Bubble contents
)