Struct freya_elements::elements::rect  
source · pub struct rect;Expand description
Implementations§
source§impl rect
 
impl rect
sourcepub const padding: AttributeDescription = _
 
pub const padding: AttributeDescription = _
padding
Specify the inner paddings of an element. You can do so by three different ways, just like in CSS.
Example:
fn app(cx: Scope) -> Element {
    render!(
        rect {
            padding: "25" // 25 in all sides
            padding: "100 50" // 100 in top and bottom, and 50 in left and right
            padding: "5 7 3 9" // 5 in top, 7 in right, 3 in bottom and 9 in left
        }
    )
}sourcepub const height: AttributeDescription = _
 
pub const height: AttributeDescription = _
width and height
Specify the width and height for the given element.
See syntax in Size Units.
Example:
fn app(cx: Scope) -> Element {
    render!(
        rect {
            background: "red",
            width: "15",
            height: "50",
        }
    )
}pub const width: AttributeDescription = _
sourcepub const min_height: AttributeDescription = _
 
pub const min_height: AttributeDescription = _
min_width & min_height
rect supports specifying a minimum width and height, this can be useful if you use it alongside a percentage for the target size.
See syntax for Size Units.
Usage
fn app(cx: Scope) -> Element {
    render!(
        rect {
            background: "red",
            min_width: "100",
            min_height: "100",
            width: "50%",
            height: "50%",
        }
    )
}pub const min_width: AttributeDescription = _
sourcepub const max_height: AttributeDescription = _
 
pub const max_height: AttributeDescription = _
max_width & max_height
rect supports specifying a maximum width and height.
See syntax for Size Units.
Usage
fn app(cx: Scope) -> Element {
    render!(
        rect {
            background: "red",
            max_width: "50%",
            max_height: "50%",
            width: "500",
            height: "500",
        }
    )
}pub const max_width: AttributeDescription = _
sourcepub const background: AttributeDescription = _
 
pub const background: AttributeDescription = _
background
Specify a color as the background of an element.
You can learn about the syntax of this attribute here.
Example:
fn app(cx: Scope) -> Element {
    render!(
        rect {
            background: "red"
        }
    )
}sourcepub const border: AttributeDescription = _
 
pub const border: AttributeDescription = _
border
You can add a border to an element using the border and border_align attributes.
bordersyntax:[width] <solid | none> [color].border_alignsyntax:<inner | outer | center>.
Example:
fn app(cx: Scope) -> Element {
    render!(
        rect {
            border: "2 solid black",
            border_align: "inner"
        }
    )
}pub const border_align: AttributeDescription = _
sourcepub const direction: AttributeDescription = _
 
pub const direction: AttributeDescription = _
direction
Control how the inner elements will be stacked, possible values are vertical (default) and horizontal.
Usage
fn app(cx: Scope) -> Element {
    render!(
        rect {
            width: "100%",
            height: "100%",
            direction: "vertical",
            rect {
                width: "100%",
                height: "50%",
                background: "red"
            },
            rect {
                width: "100%",
                height: "50%",
                background: "green"
            }
        }
    )
}sourcepub const corner_radius: AttributeDescription = _
 
pub const corner_radius: AttributeDescription = _
corner_radius & corner_smoothing
The corner_radius attribute let’s you smooth the corners of the element, with corner_smoothing you can give a “squircle” effect.
Example:
fn app(cx: Scope) -> Element {
    render!(
        rect {
            corner_radius: "10",
            corner_smoothing: "75%"
        }
    )
}pub const corner_smoothing: AttributeDescription = _
sourcepub const color: AttributeDescription = _
 
pub const color: AttributeDescription = _
color
The color attribute let’s you specify the color of the text.
You can learn about the syntax of this attribute in Color Syntax.
Example:
fn app(cx: Scope) -> Element {
    render!(
        label {
            color: "green",
            "Hello, World!"
        }
    )
}Another example showing inheritance:
fn app(cx: Scope) -> Element {
    render!(
        rect {
            color: "blue",
            label {
                "Hello, World!"
            }
        }
    )
}
sourcepub const font_size: AttributeDescription = _
 
pub const font_size: AttributeDescription = _
font_size
You can specify the size of the text using font_size.
Example:
fn app(cx: Scope) -> Element {
    render!(
        label {
            font_size: "50",
            "Hellooooo!"
        }
    )
}sourcepub const font_family: AttributeDescription = _
 
pub const font_family: AttributeDescription = _
font_family
With the font_family you can specify what font do you want to use for the inner text.
Limitation: Only fonts installed in the system are supported for now.
Example:
fn app(cx: Scope) -> Element {
    render!(
        label {
            font_family: "Inter",
            "Hello, World!"
        }
    )
}sourcepub const font_style: AttributeDescription = _
 
pub const font_style: AttributeDescription = _
font_style
You can choose a style for a text using the font_style attribute.
Accepted values: upright (default), italic and oblique.
Example:
fn app(cx: Scope) -> Element {
    render!(
        label {
            font_style: "italic",
            "Hello, World!"
        }
    )
}sourcepub const font_weight: AttributeDescription = _
 
pub const font_weight: AttributeDescription = _
font_weight
You can choose a weight for a text using the font_weight attribute.
Accepted values:
invisiblethinextra-lightlightnormal(default)mediumsemi-boldboldextra-boldblackextra-black50100200300400500600700800900950
Example:
fn app(cx: Scope) -> Element {
    render!(
        label {
            font_weight: "bold",
            "Hello, World!"
        }
    )
}sourcepub const font_width: AttributeDescription = _
 
pub const font_width: AttributeDescription = _
font_width
You can choose a width for a text using the font_width attribute.
Accepted values:
ultra-condensedextra-condensedcondensednormal(default)semi-expandedexpandedextra-expandedultra-expanded
Example:
fn app(cx: Scope) -> Element {
    render!(
        label {
            font_weight: "bold",
            "Hello, World!"
        }
    )
}sourcepub const main_align: AttributeDescription = _
 
pub const main_align: AttributeDescription = _
main_align & cross_align
Control how the inner elements are positioned inside the element. You can combine it with the direction attribute to create complex flows.
Possible values for both attributes are:
start(default): At the begining of the axiscenter: At the center of the axisend: At the end of the axis
When using the vertical direction, main_align will be the Y axis and cross_align will be the X axis. But when using the horizontal direction, the
main_align will be the X axis and the cross_align will be the Y axis.
Example on how to center the inner elements in both axis:
fn app(cx: Scope) -> Element {
    render!(
        rect {
            width: "100%",
            height: "100%",
            main_align: "center",
            cross_align: "center",
            rect {
                width: "50%",
                height: "50%",
                background: "red"
            },
        }
    )
}pub const cross_align: AttributeDescription = _
sourcepub const text_align: AttributeDescription = _
 
pub const text_align: AttributeDescription = _
text_align
You can change the alignment of the text using the text_align attribute.
Accepted values: center, end, justify, left, right, start
Example
fn app(cx: Scope) -> Element {
    render!(
        label {
            text_align: "right",
            "Hello, World!"
        }
    )
}sourcepub const margin: AttributeDescription = _
 
pub const margin: AttributeDescription = _
margin
Specify the margin of an element. You can do so by three different ways, just like in CSS.
fn app(cx: Scope) -> Element {
    render!(
        rect {
            margin: "25" // 25 in all sides
            margin: "100 50" // 100 in top and bottom, and 50 in left and right
            margin: "5 7 3 9" 5 // in top, 7 in right, 3 in bottom and 9 in left
        }
    )
}sourcepub const position: AttributeDescription = _
 
pub const position: AttributeDescription = _
position
Specify how you want the element to be positioned inside it’s parent Area
Possible values for position:
stacked(default)absolute
When using the absolute mode, you can also combine it with the following attributes:
position_topposition_rightposition_bottomposition_left
These only support pixels.
Example:
fn app(cx: Scope) -> Element {
    render!(
        rect {
            width: "100%",
            height: "100%",
            rect {
                position: "absolute",
                position_bottom: "15",
                position_right: "15",
                background: "black",
                width: "100",
                height: "100",
            }
        }
    )
}pub const position_top: AttributeDescription = _
pub const position_right: AttributeDescription = _
pub const position_bottom: AttributeDescription = _
pub const position_left: AttributeDescription = _
pub const name: AttributeDescription = _
pub const focusable: AttributeDescription = _
pub const role: AttributeDescription = _
pub const focus_id: AttributeDescription = _
pub const alt: AttributeDescription = _
pub const canvas_reference: AttributeDescription = _
pub const layer: AttributeDescription = _
pub const offset_y: AttributeDescription = _
pub const offset_x: AttributeDescription = _
pub const reference: AttributeDescription = _
pub const cursor_reference: AttributeDescription = _
Auto Trait Implementations§
impl RefUnwindSafe for rect
impl Send for rect
impl Sync for rect
impl Unpin for rect
impl UnwindSafe for rect
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
    T: Any,
 
impl<T> Downcast for Twhere T: Any,
§fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
 
fn into_any(self: Box<T, Global>) -> Box<dyn Any, Global>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
 
fn into_any_rc(self: Rc<T, Global>) -> Rc<dyn Any, Global>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
 
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
 
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.