# TabsItem: the look of each part of the component, by the part's id.# A value in {{ }} is one of the component's parameters.styles:-id:rootstyle:width:"{{width}}"height:if:"{{icon}}"then:64else:48background:surfaceflex_direction:verticalalign_content:center-id:tabstyle:height:if:"{{icon}}"then:64else:48flex_direction:vertical-id:topstyle:height:3background:transparent-id:contentstyle:flex:expand_verticalflex_direction:verticalalign_content:centergap:2-id:iconstyle:width:24height:24foreground:if:"{{selected}}"then:primaryelse:on_surface_variant-id:labelstyle:foreground:if:"{{selected}}"then:primaryelse:on_surface_variant-id:indicatorstyle:height:3corner_radius:3background:if:"{{selected}}"then:primaryelse:transparent
TabsItem_Component.yaml holds the structure: the parts, each with an id. This file holds the look: each rule's id names a part, and its style is what that part looks like. When a view uses component: TabsItem, Tesserae fills in the parameters (a value like "{{ width }}" becomes the width the view passed), picks a branch of any if:, and puts each rule under the style the part already has, so a part's own style: always wins.
Pixels, auto (its content's size, or stretched), or a percentage of the parent such as 50%.
height
64 if icon, else 48
Pixels, auto (its content's size, or stretched), or a percentage of the parent such as 50%.
background
surface
Its fill: a theme role such as surface, #RRGGBB, any CSS colour, or a gradient such as linear-gradient(90deg, primary, tertiary).
flex_direction
vertical
How its children are laid out: horizontal (the default) or vertical.
align_content
center
Where its children sit: top_left, top, top_right, left, center, right, bottom_left, bottom or bottom_right. Not set, they fill the space across the layout.
How it takes room in its parent: none (the default) is as big as its content and never squeezed, expand_horizontal and expand_vertical take the room left over in that direction, fill both.
flex_direction
vertical
How its children are laid out: horizontal (the default) or vertical.
align_content
center
Where its children sit: top_left, top, top_right, left, center, right, bottom_left, bottom or bottom_right. Not set, they fill the space across the layout.
Pixels, auto (its content's size, or stretched), or a percentage of the parent such as 50%.
corner_radius
3
Pixels, or a shape token (none to extra_large, or full for a pill or circle). Per corner: a list [top_left, top_right, bottom_right, bottom_left], or a mapping of corners and edges (top, right, bottom, left) with the rest square.
background
primary if selected, else transparent
Its fill: a theme role such as surface, #RRGGBB, any CSS colour, or a gradient such as linear-gradient(90deg, primary, tertiary).