R

ReflexKR

Reflex Docs

The Component Workshop: Reflex's 100 Library Components

·

Course overview

Layout

·

Box

·

Flex

·

Stack

·

Grid

·

Container

·

Section

·

Center

·

Spacer

·

Separator

·

Card

·

Inset

·

Aspect Ratio

·

Fragment

Typography

·

Text

·

Heading

·

Link

·

Code

·

Markdown

·

Blockquote

·

Quote

·

Strong

·

Em

·

Kbd

Forms

·

Button

·

Input

·

Text Area

·

Checkbox

·

Switch

·

Radio Group

·

Select

·

Slider

·

Form

·

Upload

Data display

·

Badge

·

Avatar

·

Icon

·

Callout

·

List

·

Data List

·

Code Block

·

Progress

·

Spinner

·

Scroll Area

·

Moment

Disclosure

·

Tabs

·

Accordion

·

Segmented Control

Overlay

·

Tooltip

·

Popover

·

Hover Card

·

Dialog

·

Alert Dialog

·

Drawer

·

Dropdown Menu

·

Context Menu

·

Toast

Dynamic rendering

·

Cond

·

Match

·

Foreach

·

Auto Scroll

Media

·

Image

·

Audio

·

Video

Tables and data grids

·

Table

·

Data Table

·

Data Editor

Charts

·

Area Chart

·

Bar Chart

·

Line Chart

·

Composed Chart

·

Pie Chart

·

Radar Chart

·

Radial Bar Chart

·

Scatter Chart

·

Funnel Chart

·

Treemap

·

Sankey Chart

·

Error Bar

Chart parts

·

Axis

·

Cartesian Grid

·

Chart Tooltip

·

Legend

·

Label

·

Reference

·

Brush

Other chart libraries

·

Plotly

·

Pyplot

HTML elements

·

HTML

·

HTML Text

·

HTML Layout

·

HTML Forms

·

HTML Media

·

HTML Tables

·

SVG

Other tools

·

Theme

·

Skeleton

·

Clipboard

·

Html Embed

·

Script

·

Memo

The Component Workshop: Reflex's 100 Library Components
Typography

Quote

rx.text.quote

Official docs

Workshop order

In the company introduction paragraph, quote two short things customers said without breaking the sentence.

rx.text.quote is a short quote inside a sentence. It renders an HTML <q> tag, set apart in an italic serif font (the Radix theme's quote font), and browsers and screen readers also know that part is a quotation. To break off from the sentence and quote something on its own, use rx.blockquote.

His famous quote, Styles come and go. Good design is a language, not a style, elegantly sums up Massimo's philosophy of design.

rx.text(
    "His famous quote, ",
    rx.text.quote("Styles come and go. Good design is a language, not a style"),
    ", elegantly sums up Massimo's philosophy of design.",
)

Props

Quote has no styling props such as size or color. It follows the size and color of the surrounding rx.text, so you set the look on the outer text. That is why this page has an example driven by State instead of a props lab.

PropValuesDefaultUse
childstring, State valuerequiredThe words being quoted
citeaddress stringnoneAddress of the quoted source (not shown on screen)

It also takes common HTML attributes such as id, title and lang, plus the standard events.

Source address: cite

Put the source address in cite and it stays as an HTML attribute. It is not shown on screen, so write any source meant for people directly in the sentence.

The guide says Simple is better than complex, and we agree.

rx.text(
    "The guide says ",
    rx.text.quote("Simple is better than complex", cite="https://peps.python.org/pep-0020/"),
    ", and we agree.",
    size="4",
)

It follows the outer text

The same Quote looks small and gray inside a small gray sentence, and large and bold inside a large bold sentence or a heading.

Small: Less is more

Large: Less is more

In a heading: Less is more

rx.flex(
    rx.text("Small: ", rx.text.quote("Less is more"), size="2", color_scheme="gray"),
    rx.text("Large: ", rx.text.quote("Less is more"), size="6", weight="bold"),
    rx.heading("In a heading: ", rx.text.quote("Less is more"), as_="h3", size="5"),
    direction="column",
    spacing="3",
)

Quoting a State value

Put a State value in as the child and the quote changes when the value does. The button below only changes the index into the list of quotes.

As The Zen of Python puts it, Simple is better than complex.

class QuoteSayingState(rx.State):
    sayings: list[dict[str, str]] = [
        {"text": "Simple is better than complex", "who": "The Zen of Python"},
        {"text": "Readability counts", "who": "The Zen of Python"},
        {"text": "Now is better than never", "who": "The Zen of Python"},
    ]
    pick: int = 0

    @rx.event
    def next_saying(self):
        self.pick = (self.pick + 1) % len(self.sayings)


rx.flex(
    rx.text(
        "As ",
        QuoteSayingState.sayings[QuoteSayingState.pick]["who"],
        " puts it, ",
        rx.text.quote(QuoteSayingState.sayings[QuoteSayingState.pick]["text"]),
        ".",
        size="4",
    ),
    rx.button("Another one", on_click=QuoteSayingState.next_saying, size="1", variant="soft"),
    direction="column",
    align="start",
    spacing="3",
)

Filling the order

Keep the introduction as a single rx.text and wrap only the customers' two remarks in rx.text.quote. The sentence flows on naturally without a break.

Our support lead calls this the ten-minute rule: every message gets a first reply within ten minutes. Customers say it feels like talking to a friend.

rx.card(
    rx.text(
        "Our support lead calls this the ",
        rx.text.quote("ten-minute rule"),
        ": every message gets a first reply within ten minutes. Customers say it feels ",
        rx.text.quote("like talking to a friend"),
        ".",
        size="3",
    ),
    max_width="440px",
)

Workshop notes

  • rx.text.quote("…") is a short quote inside a sentence (<q>). Put it in an rx.text as a child.

  • It has no styling props and follows the size and color of the surrounding text.

  • cite keeps the source address in the HTML only.

  • For a long quote shown on its own, use rx.blockquote.

← Previous

Typography · Blockquote

Next →

Typography · Strong

Get news about new lessons

We'll email you when this course gets new lessons or a follow-up course opens.

We collect: your email address · Purpose: news about new lessons or the launch of this course · Kept until: you ask us to remove it. We never use it for anything else or share it. Reply to any notice email and we'll delete it right away.

Questions & answers

Ask anything about this lesson. Questions from every language version of this page appear together.

Shown as plain text, without links or formatting.

R

ReflexKR

Learn Python and Reflex by doing. Every example was run and verified on Reflex 0.10.0.

ReflexKR is free, with no banner ads. If it helped you, you can support it with a coffee. ☕ Buy us a coffee

Affiliate disclosure
한국어English日本語简体中文EspañolDeutsch

© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0

Built with Reflex