Skip to main content

TabStripAppearance

Struct TabStripAppearance 

Source
pub struct TabStripAppearance {
    pub tone: Tone,
    pub style: TabStripStyle,
    pub text_role: TextRole,
}

Fields§

§tone: Tone§style: TabStripStyle§text_role: TextRole

Implementations§

Source§

impl TabStripAppearance

Source

pub fn new(tone: Tone, style: TabStripStyle, text_role: TextRole) -> Self

Examples found in repository?
examples/plugin_view.rs (line 122)
72fn plugin_demo_theme() -> ThemeSpec {
73    let mut theme = ThemeSpec::default();
74    theme.typography.font_family = "\"Space Grotesk\", \"Noto Sans\", sans-serif".to_string();
75    theme.typography.mono_font_family = "\"JetBrains Mono\", monospace".to_string();
76    theme.palette.bg_0 = "#0f1318".to_string();
77    theme.palette.bg_1 = "#18202a".to_string();
78    theme.palette.workbench = "#0c1015".to_string();
79    theme.palette.panel_left = "#131920".to_string();
80    theme.palette.panel_right = "#131a22".to_string();
81    theme.palette.panel_bottom = "#0a0d12".to_string();
82    theme.palette.border = "#27303c".to_string();
83    theme.palette.border_strong = "#3d4959".to_string();
84    theme.palette.text_0 = "#e3edf7".to_string();
85    theme.palette.text_1 = "#acb9c8".to_string();
86    theme.palette.text_2 = "#738197".to_string();
87    theme.palette.accent = "#36c2a3".to_string();
88    theme.palette.accent_strong = "#72f0cf".to_string();
89    theme.density.radius_medium = 10;
90    theme.density.radius_large = 14;
91    theme.density.toolbar_height = 42;
92    theme.density.tab_height = 30;
93
94    theme
95        .with_surface_appearance(
96            "topbar",
97            SurfaceAppearance::new(Tone::Primary, SurfaceLevel::Flat, TextRole::BodyStrong),
98        )
99        .with_surface_appearance(
100            "toolbar",
101            SurfaceAppearance::new(Tone::Primary, SurfaceLevel::Raised, TextRole::Body),
102        )
103        .with_surface_appearance(
104            "demo-workbench",
105            SurfaceAppearance::new(Tone::Neutral, SurfaceLevel::Sunken, TextRole::Body)
106                .borderless(),
107        )
108        .with_surface_appearance(
109            "demo-header",
110            SurfaceAppearance::new(Tone::Secondary, SurfaceLevel::Flat, TextRole::SectionLabel),
111        )
112        .with_button_appearance(
113            "primary",
114            ButtonAppearance::new(Tone::Accent, ButtonStyle::Solid, TextRole::BodyStrong),
115        )
116        .with_button_appearance(
117            "ghost",
118            ButtonAppearance::new(Tone::Secondary, ButtonStyle::Ghost, TextRole::Body),
119        )
120        .with_tab_strip_appearance(
121            "demo-tabs",
122            TabStripAppearance::new(Tone::Secondary, TabStripStyle::Editor, TextRole::TabLabel),
123        )
124}
More examples
Hide additional examples
examples/semantic_appearance.rs (line 200)
118fn semantic_theme() -> ThemeSpec {
119    let mut theme = ThemeSpec::default();
120    theme.typography.font_family = "\"Azeret Mono\", \"Noto Sans\", sans-serif".to_string();
121    theme.typography.mono_font_family = "\"IBM Plex Mono\", monospace".to_string();
122    theme.typography.font_size_base = 14;
123    theme.typography.font_size_ui = 13;
124    theme.typography.font_size_small = 12;
125    theme.typography.font_size_tiny = 11;
126    theme.typography.font_size_title = 28;
127    theme.palette.bg_0 = "#f1efe6".to_string();
128    theme.palette.bg_1 = "#e3dfd3".to_string();
129    theme.palette.workbench = "#f8f6ef".to_string();
130    theme.palette.panel_left = "#d7e1dd".to_string();
131    theme.palette.panel_right = "#e7ddd0".to_string();
132    theme.palette.panel_bottom = "#d9d5df".to_string();
133    theme.palette.border = "#b5b0a3".to_string();
134    theme.palette.border_strong = "#8f8777".to_string();
135    theme.palette.text_0 = "#1f1e1a".to_string();
136    theme.palette.text_1 = "#4b463d".to_string();
137    theme.palette.text_2 = "#6d665a".to_string();
138    theme.palette.accent = "#0f766e".to_string();
139    theme.palette.accent_strong = "#0b5f58".to_string();
140    theme.density.radius_medium = 12;
141    theme.density.radius_large = 16;
142    theme.density.toolbar_height = 46;
143    theme.density.tab_height = 32;
144    theme.density.panel_header_height = 30;
145
146    theme
147        .with_surface_appearance(
148            "primary-panel",
149            SurfaceAppearance::new(Tone::Primary, SurfaceLevel::Raised, TextRole::Body),
150        )
151        .with_surface_appearance(
152            "secondary-panel",
153            SurfaceAppearance::new(Tone::Secondary, SurfaceLevel::Raised, TextRole::Body),
154        )
155        .with_surface_appearance(
156            "console-panel",
157            SurfaceAppearance::new(Tone::Tertiary, SurfaceLevel::Sunken, TextRole::Code),
158        )
159        .with_surface_appearance(
160            "canvas-panel",
161            SurfaceAppearance::new(Tone::Neutral, SurfaceLevel::Sunken, TextRole::Body)
162                .borderless(),
163        )
164        .with_surface_appearance(
165            "panel-header",
166            SurfaceAppearance::new(Tone::Neutral, SurfaceLevel::Flat, TextRole::SectionLabel),
167        )
168        .with_button_appearance(
169            "primary",
170            ButtonAppearance::new(Tone::Accent, ButtonStyle::Solid, TextRole::BodyStrong),
171        )
172        .with_button_appearance(
173            "secondary",
174            ButtonAppearance::new(Tone::Primary, ButtonStyle::Soft, TextRole::Body),
175        )
176        .with_button_appearance(
177            "ghost",
178            ButtonAppearance::new(Tone::Neutral, ButtonStyle::Ghost, TextRole::Body),
179        )
180        .with_input_appearance(
181            "search",
182            InputAppearance::new(Tone::Secondary, SurfaceLevel::Sunken, TextRole::Body),
183        )
184        .with_text_appearance(
185            "title",
186            TextAppearance {
187                role: TextRole::Title,
188                tone: Tone::Accent,
189            },
190        )
191        .with_text_appearance(
192            "meta",
193            TextAppearance {
194                role: TextRole::Meta,
195                tone: Tone::Neutral,
196            },
197        )
198        .with_tab_strip_appearance(
199            "side-tabs",
200            TabStripAppearance::new(Tone::Primary, TabStripStyle::Utility, TextRole::TabLabel),
201        )
202        .with_tab_strip_appearance(
203            "editor-tabs",
204            TabStripAppearance::new(Tone::Neutral, TabStripStyle::Editor, TextRole::TabLabel),
205        )
206        .with_tab_strip_appearance(
207            "console-tabs",
208            TabStripAppearance::new(Tone::Tertiary, TabStripStyle::Console, TextRole::TabLabel),
209        )
210}
examples/notebook.rs (line 262)
155fn notebook_theme() -> ThemeSpec {
156    let mut theme = ThemeSpec::default();
157    theme.typography.font_family = "\"IBM Plex Sans\", \"Cantarell\", sans-serif".to_string();
158    theme.typography.mono_font_family = "\"IBM Plex Mono\", monospace".to_string();
159    theme.typography.font_size_base = 15;
160    theme.typography.font_size_ui = 14;
161    theme.typography.font_size_small = 13;
162    theme.typography.font_size_tiny = 12;
163    theme.typography.font_size_title = 26;
164    theme.palette.bg_0 = "#f5f0e6".to_string();
165    theme.palette.bg_1 = "#ebe1d2".to_string();
166    theme.palette.workbench = "#fbf7f0".to_string();
167    theme.palette.panel_left = "#f1e7d8".to_string();
168    theme.palette.panel_right = "#f4ebde".to_string();
169    theme.palette.panel_bottom = "#e7d9c6".to_string();
170    theme.palette.border = "#ceb89a".to_string();
171    theme.palette.border_strong = "#b99669".to_string();
172    theme.palette.text_0 = "#2f2418".to_string();
173    theme.palette.text_1 = "#5d4a37".to_string();
174    theme.palette.text_2 = "#8a7258".to_string();
175    theme.palette.accent = "#9b5f2b".to_string();
176    theme.palette.accent_strong = "#bc753b".to_string();
177    theme.density.radius_small = 8;
178    theme.density.radius_medium = 14;
179    theme.density.radius_large = 18;
180    theme.density.space_sm = 6;
181    theme.density.space_md = 10;
182    theme.density.space_lg = 14;
183    theme.density.space_xl = 20;
184    theme.density.control_height_small = 26;
185    theme.density.control_height_medium = 36;
186    theme.density.control_height_large = 40;
187    theme.density.toolbar_height = 58;
188    theme.density.tab_height = 36;
189    theme.density.search_width_min = 360;
190    theme.density.search_width_max = 560;
191    theme.density.panel_header_height = 32;
192    theme.density.min_side_panel_width = 266;
193    theme.density.min_bottom_panel_height = 176;
194
195    theme
196        .with_surface_appearance(
197            "app-shell",
198            SurfaceAppearance::new(Tone::Neutral, SurfaceLevel::Sunken, TextRole::Body)
199                .borderless(),
200        )
201        .with_surface_appearance(
202            "topbar",
203            SurfaceAppearance::new(Tone::Primary, SurfaceLevel::Flat, TextRole::BodyStrong),
204        )
205        .with_surface_appearance(
206            "toolbar",
207            SurfaceAppearance::new(Tone::Primary, SurfaceLevel::Raised, TextRole::Body),
208        )
209        .with_surface_appearance(
210            "library-panel",
211            SurfaceAppearance::new(Tone::Primary, SurfaceLevel::Raised, TextRole::Body),
212        )
213        .with_surface_appearance(
214            "library-header",
215            SurfaceAppearance::new(Tone::Primary, SurfaceLevel::Flat, TextRole::SectionLabel),
216        )
217        .with_surface_appearance(
218            "detail-panel",
219            SurfaceAppearance::new(Tone::Secondary, SurfaceLevel::Raised, TextRole::Body),
220        )
221        .with_surface_appearance(
222            "detail-header",
223            SurfaceAppearance::new(Tone::Secondary, SurfaceLevel::Flat, TextRole::SectionLabel),
224        )
225        .with_surface_appearance(
226            "writing-surface",
227            SurfaceAppearance::new(Tone::Neutral, SurfaceLevel::Raised, TextRole::Body)
228                .borderless(),
229        )
230        .with_button_appearance(
231            "primary",
232            ButtonAppearance::new(Tone::Accent, ButtonStyle::Solid, TextRole::BodyStrong),
233        )
234        .with_button_appearance(
235            "secondary",
236            ButtonAppearance::new(Tone::Primary, ButtonStyle::Soft, TextRole::Body),
237        )
238        .with_button_appearance(
239            "ghost",
240            ButtonAppearance::new(Tone::Secondary, ButtonStyle::Ghost, TextRole::Body),
241        )
242        .with_input_appearance(
243            "search",
244            InputAppearance::new(Tone::Secondary, SurfaceLevel::Sunken, TextRole::Body),
245        )
246        .with_text_appearance(
247            "title",
248            TextAppearance {
249                role: TextRole::Title,
250                tone: Tone::Primary,
251            },
252        )
253        .with_text_appearance(
254            "meta",
255            TextAppearance {
256                role: TextRole::Meta,
257                tone: Tone::Secondary,
258            },
259        )
260        .with_tab_strip_appearance(
261            "library-strip",
262            TabStripAppearance::new(Tone::Primary, TabStripStyle::Utility, TextRole::TabLabel),
263        )
264        .with_tab_strip_appearance(
265            "editor",
266            TabStripAppearance::new(Tone::Neutral, TabStripStyle::Editor, TextRole::TabLabel),
267        )
268        .with_tab_strip_appearance(
269            "console",
270            TabStripAppearance::new(Tone::Tertiary, TabStripStyle::Console, TextRole::TabLabel),
271        )
272}

Trait Implementations§

Source§

impl Clone for TabStripAppearance

Source§

fn clone(&self) -> TabStripAppearance

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for TabStripAppearance

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.