Skip to main content

gpui-styling

Styling GPUI elements with Tailwind-like utility methods. Use when applying styles, layouts, colors, spacing, or creating responsive designs.

Informações da origem

Repositório
zerx-lab/rmx
Última atividade na origem
5 de fevereiro de 2026 às 09:49
Idioma detectado do SKILL.md
inglês
Estrelas
70
Forks
2

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
gpui-styling
description
Styling GPUI elements with Tailwind-like utility methods. Use when applying styles, layouts, colors, spacing, or creating responsive designs.
# GPUI Styling This skill covers styling GPUI elements using Tailwind-like utility methods. ## Overview GPUI provides chainable methods similar to Tailwind CSS: - **Sizing**: `.w()`, `.h()`, `.size_full()` - **Flexbox**: `.flex()`, `.flex_col()`, `.items_center()`, `.justify_center()` - **Spacing**: `.p()`, `.m()`, `.gap()` - **Colors**: `.bg()`, `.text_color()`, `.border_color()` - **Borders**: `.border()`, `.rounded()` ## Sizing ### Width and Height ```rust use gpui::*; div() .w(px(200.0)) // Fixed width .h(px(100.0)) // Fixed height .w_full() // Width: 100% .h_full() // Height: 100% .size_full() // Width & Height: 100% ``` ### Relative Units ```rust div() .w(relative(0.5)) // 50% of parent .h(relative(1.0)) // 100% of parent ``` ### Min/Max Sizes ```rust div() .min_w(px(100.0)) .max_w(px(500.0)) .min_h(px(50.0)) .max_h(px(300.0)) ``` ## Flexbox Layout ### Flex Direction ```rust div() .flex() // Enable flexbox .flex_row() // Horizontal (default) .flex_col() // Vertical // Short forms (from gpui-component) div() .v_flex() // flex + flex_col .h_flex() // flex + flex_row ``` ### Alignment ```rust div() .flex() .items_start() // Align items to start .items_center() // Center items .items_end() // Align items to end .items_stretch() // Stretch items .justify_start() // Justify to start .justify_center() // Center justify .justify_end() // Justify to end .justify_between() // Space between .justify_around() // Space around ``` ### Flex Properties ```rust div() .flex_1() // flex: 1 (grow to fill) .flex_grow() // Allow growing .flex_shrink() // Allow shrinking .flex_none() // Don't grow or shrink .flex_wrap() // Wrap items ``` ## Spacing ### Padding ```rust div() .p(px(16.0)) // All sides .p_1() // 4px (0.25rem) .p_2() // 8px (0.5rem) .p_4() // 16px (1rem) .p_6() // 24px (1.5rem) .p_8() // 32px (2rem) .px(px(16.0)) // Horizontal padding .py(px(16.0)) // Vertical padding .px_4() // Horizontal 16px .py_2() // Vertical 8px .pt(px(8.0)) // Top padding .pr(px(8.0)) // Right padding .pb(px(8.0)) // Bottom padding .pl(px(8.0)) // Left padding ``` ### Margin ```rust div() .m(px(16.0)) // All sides .m_4() // 16px .mx(px(16.0)) // Horizontal margin .my(px(16.0)) // Vertical margin .mx_4() // Horizontal 16px .mt(px(8.0)) // Top margin .mr(px(8.0)) // Right margin .mb(px(8.0)) // Bottom margin .ml(px(8.0)) // Left margin ``` ### Gap ```rust div() .flex() .flex_col() .gap(px(16.0)) // Gap between children .gap_1() // 4px .gap_2() // 8px .gap_4() // 16px .gap_6() // 24px ``` ## Colors ### Background Colors ```rust use gpui::*; div() .bg(rgb(0x3b82f6)) // Hex color .bg(rgb(59, 130, 246)) // RGB .bg(rgba(59, 130, 246, 0.5)) // RGBA with alpha .bg(hsla(0.6, 0.8, 0.6, 1.0)) // HSLA ``` ### Text Colors ```rust div() .text_color(rgb(0xffffff)) .text_color(rgba(255, 255, 255, 0.9)) ``` ### Border Colors ```rust div() .border_color(rgb(0x4a4a4a)) ``` ## Borders ### Border Width ```rust div() .border() // 1px all sides .border_1() // 1px .border_2() // 2px .border_t() // Top border .border_r() // Right border .border_b() // Bottom border .border_l() // Left border ``` ### Border Radius ```rust div() .rounded(px(4.0)) // Custom radius .rounded_sm() // Small radius .rounded_md() // Medium radius .rounded_lg() // Large radius .rounded_full() // Fully rounded (circle/pill) ``` ## Typography ### Font Sizes ```rust div() .text_xs() // Extra small .text_sm() // Small .text_base() // Base size (default) .text_lg() // Large .text_xl() // Extra large .text_2xl() // 2x extra large .text_3xl() // 3x extra large ``` ### Font Weight ```rust div() .font_normal() // Normal weight .font_medium() // Medium weight .font_semibold() // Semibold .font_bold() // Bold ``` ### Text Alignment ```rust div() .text_left() .text_center() .text_right() ``` ## Cursor ```rust div() .cursor_pointer() // Pointer cursor on hover .cursor_default() // Default cursor .cursor_text() // Text cursor ``` ## Hover States ```rust div() .bg(rgb(0x3b82f6)) .hover(|style| { style.bg(rgb(0x2563eb)) }) ``` ## Visibility ```rust div() .visible() .invisible() ``` ## Common Patterns ### Card Component ```rust div() .p_6() .bg(rgb(0x1a1a1a)) .rounded_lg() .border_1() .border_color(rgb(0x2a2a2a)) .flex() .flex_col() .gap_4() ``` ### Button ```rust div() .px_6() .py_3() .bg(rgb(0x3b82f6)) .text_color(rgb(0xffffff)) .rounded_md() .cursor_pointer() .font_semibold() .hover(|style| { style.bg(rgb(0x2563eb)) }) ``` ### Input Field ```rust div() .w_full() .px_3() .py_2() .bg(rgb(0x1a1a1a)) .border_1() .border_color(rgb(0x4a4a4a)) .rounded_md() .text_base() ``` ### Navbar ```rust div() .w_full() .h(px(64.0)) .px_6() .bg(rgb(0x1a1a1a)) .flex() .flex_row() .items_center() .justify_between() .border_b_1() .border_color(rgb(0x2a2a2a)) ``` ### Centered Container ```rust div() .flex() .items_center() .justify_center() .size_full() ``` ### Grid Layout ```rust div() .flex() .flex_wrap() .gap_4() .children((0..12).map(|i| { div() .w(px(200.0)) .h(px(150.0)) .bg(rgb(0x3b82f6)) .rounded_md() })) ``` ## Color Utilities ### Common Colors ```rust // Grays rgb(0x1a1a1a) // Dark gray rgb(0x2a2a2a) // Medium dark gray rgb(0x4a4a4a) // Medium gray rgb(0x9ca3af) // Light gray rgb(0xf3f4f6) // Very light gray // Blues rgb(0x3b82f6) // Primary blue rgb(0x2563eb) // Darker blue rgb(0x60a5fa) // Lighter blue // Greens rgb(0x22c55e) // Success green rgb(0x16a34a) // Darker green // Reds rgb(0xef4444) // Error red rgb(0xdc2626) // Darker red // Yellows rgb(0xf59e0b) // Warning yellow ``` ### HSLA Colors ```rust // More flexible color manipulation hsla(0.0, 0.0, 0.1, 1.0) // Dark gray hsla(0.6, 0.8, 0.5, 1.0) // Blue hsla(0.33, 0.7, 0.5, 1.0) // Green hsla(0.0, 0.8, 0.6, 1.0) // Red hsla(0.15, 0.9, 0.5, 1.0) // Yellow/Orange ``` ## Theme System ### Constant Colors ```rust // In theme.rs pub const BG_PRIMARY: Hsla = hsla(0.0, 0.0, 0.05, 1.0); pub const BG_SECONDARY: Hsla = hsla(0.0, 0.0, 0.1, 1.0); pub const TEXT_PRIMARY: Hsla = hsla(0.0, 0.0, 0.9, 1.0); pub const TEXT_SECONDARY: Hsla = hsla(0.0, 0.0, 0.6, 1.0); pub const ACCENT: Hsla = hsla(0.6, 0.8, 0.5, 1.0); // Usage div() .bg(theme::BG_PRIMARY) .text_color(theme::TEXT_PRIMARY) ``` ## Best Practices
Ver no GitHub
Este SKILL.md e muito grande, entao o SkillsMP mostra aqui apenas a primeira secao. Ver no GitHub