R

ReflexKR

Documentación de Reflex

Fundamentos de Reflex, con las manos

·

Resumen del curso

1

Haz clic y cambia: State y eventos

2

Ahora lo ves: renderizado condicional

3

Dibujar listas: rx.foreach

4

¿Por qué no funciona if? Compilación vs. ejecución

5

Darle estilo: componentes, props y estilos

6

Apps, páginas y una cesta de frutas

Fundamentos de Reflex, con las manos
Lección 5

Tiempo 0:28–0:34

Darle estilo: componentes, props y estilos

Hasta ahora has usado con toda naturalidad componentes como rx.button, rx.heading y rx.box. En esta lección repasamos las reglas para crear, combinar y dar estilo a los componentes. Son solo dos.

5-1. Un componente es lo que devuelve una función (1 min)

Un componente es una pieza de la interfaz, como un botón, un texto o una imagen. Reflex incluye muchos componentes integrados, y si escribes una función que devuelve un componente, ya tienes tu propio componente.

def my_button():
    return rx.button("Click Me")

localhost:3000

Vista previa
Una función que devuelve un solo rx.button ya es un componente.

5-2. Regla 1: los argumentos posicionales son hijos (2 min)

Para meter un componente dentro de otro, pásalo como argumento posicional. Abajo, rx.text y my_button() son hijos de rx.box. Los componentes creados en otras funciones también se añaden simplemente llamándolos.

def my_container():
    return rx.box(
        rx.text("This is a page"),
        # Reference components defined in other functions.
        my_button(),
    )

localhost:3000

Vista previa

This is a page

Dentro de rx.box van, en orden, el texto y my_button.

Si no existe el componente que necesitas, puedes usar etiquetas HTML directamente con rx.el. rx.el.div es <div> y rx.el.p es <p>.

def my_div():
    return rx.el.div(
        rx.el.p("Use base html!"),
    )

localhost:3000

Vista previa

Use base html!

Elementos HTML puros creados con rx.el.

Y si aun así te falta algo, también puedes envolver componentes de React disponibles en npm.

5-3. Regla 2: los argumentos con nombre son props y estilos (2 min)

El comportamiento y el aspecto de un componente se definen con argumentos con nombre (keyword arguments). Estos se llaman props. Cada componente tiene sus propias props, así que, cuando uses uno por primera vez, consulta en la documentación qué props tiene.

def half_filled_progress():
    return rx.progress(value=50)

localhost:3000

Vista previa
Una barra de progreso llena hasta la mitad gracias a la prop value=50.

Además de las props propias del componente, puedes pasar propiedades CSS directamente como props para darle estilo.

def round_button():
    return rx.button("Click Me", border_radius="15px", font_size="18px")

localhost:3000

Vista previa
Un botón con las esquinas y el tamaño de letra cambiados con border_radius y font_size.

Para saber — Los nombres de las propiedades CSS se escriben en snake_case: border-radius → border_radius, font-size → font_size. Encontrarás más opciones en la guía de estilos.

En resumen, un componente se compone de hijos y props.

Hijos (children)Props
Qué sonEl texto u otros componentes que van dentroAtributos que definen el comportamiento y el aspecto
Cómo se pasanArgumentos posicionalesArgumentos con nombre
Ejemplorx.box(rx.text("hi"), my_button())rx.button("Go", color_scheme="green")

Cuando en la lección 1 pusiste una Var tanto de hijo como de prop, como en rx.heading(MyState.count, color=MyState.color), estabas aplicando exactamente estas dos reglas.

Ejercicios

  1. Añade color_scheme="green" y size="3" a round_button.
  2. Dale al rx.box de my_container las props padding="16px", border="1px solid #ccc" y border_radius="12px" para que parezca una tarjeta.
  3. ¿Qué pasa si cambias el value de rx.progress por el CounterState.count de la lección 1? Haz que la barra se llene un poco más con cada clic del botón.

Lista de comprobación de esta lección

  • Sé explicar en qué se convierten los argumentos posicionales y los argumentos con nombre.
  • Sé escribir propiedades CSS como props en snake_case.
  • Sé usar rx.el cuando no existe el componente que necesito.

← Anterior

Lección 4 · ¿Por qué no funciona if? Compilación vs. ejecución

Siguiente →

Lección 6 · Apps, páginas y una cesta de frutas

Recibe avisos de nuevas lecciones

Te avisaremos por correo cuando este curso tenga lecciones nuevas o se abra un curso de continuación.

Datos: tu correo electrónico · Finalidad: avisos de nuevas lecciones o de la publicación de este curso · Conservación: hasta que pidas que lo borremos. No lo usamos para nada más ni lo compartimos. Responde a cualquier aviso y lo borraremos enseguida.

Preguntas y respuestas

Pregunta lo que quieras sobre esta lección. Aquí se reúnen las preguntas de todas las versiones de idioma de esta página.

Se muestra como texto plano, sin enlaces ni formato.

R

ReflexKR

Aprende Python y Reflex haciendo. Todos los ejemplos se ejecutaron y verificaron en Reflex 0.10.0.

ReflexKR es gratis y sin banners publicitarios. Si te ayudó, puedes apoyarlo con un café. ☕ Invítanos un café

Aviso de afiliados
한국어English日本語简体中文EspañolDeutsch

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

Built with Reflex