-
Notifications
You must be signed in to change notification settings - Fork 6
WIP: GO UI Update #2025
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
WIP: GO UI Update #2025
Conversation
|
1a73cbd to
b4e9749
Compare
b4e9749 to
6f678d0
Compare
6f678d0 to
88d5f5d
Compare
88d5f5d to
5de6aea
Compare
5de6aea to
2057b22
Compare
2057b22 to
db6cfb4
Compare
db6cfb4 to
6f3c82e
Compare
6f3c82e to
3c289d5
Compare
3c289d5 to
749cfde
Compare
d2ee2c4 to
93ae00b
Compare
93ae00b to
9371f9e
Compare
9371f9e to
16af892
Compare
16af892 to
129bdce
Compare
129bdce to
c6ea9d8
Compare
c6ea9d8 to
be6dcfd
Compare
Design System Philosophy
The layout system establishes a foundation for building interfaces that feel fluid, consistent, and naturally responsive. It minimizes repetitive styling decisions while maintaining precise spatial rhythm across the UI.
Tight, Opinionated Layouts
Ad‑hoc manual styling is discouraged. Layout components provide default spacing and alignment, ensuring design rhythm consistency.
Composition Over Customization
Use pre‑defined primitives (
Container,InlineLayout,BlockView, etc.) instead of manual CSS tweaks.Naturally Responsive Fluid Layouts
Every layout primitive flows naturally with available space. Components expand, shrink, and align seamlessly without relying on fixed widths or explicit breakpoints.
Responsiveness is inherent—inline flows align, block flows stack, and grids re‑flow automatically. Developers rarely need to write custom media queries.
Consistent Spacing System
All spacing uses a unified token scale, ensuring predictable rhythm and easy collaboration between design and development.
Optical Correction
Subtle optical adjustments compensate for line‑height inconsistencies (e.g., in ListView), producing visually balanced layouts.
UI Layout Concepts
ListView
ListViewrepresents a layout structure designed to display multiple related items following a consistent spatial rhythm It abstracts repetitive spacing/alignment so each item can focus on content. It supports three predefined layout modes — inline, block, and grid — to cover a wide range of patterns without manual styling.Design goals
Visual mental models
Inline: one‑dimensional flow (chips/actions)
Block: vertical reading flow (rows)
Grid: two‑dimensional gallery (cards)
Conceptual behaviors by mode
Inline – flows left→right; supports wrapping or truncation.
Block – stacks vertically; uses consistent rhythm and dividers.
Grid – manages both target column count and minimum card width, reserving gutter space for balance.
Spacing and semantics
Composition examples
ListView(block)+ inset dividers.ListView(grid)+ cards usingBlockView.ListView(inline)with compact density.InlineLayout
InlineLayoutarranges elements horizontally in a single visual line. It’s designed for content with clear before and after anchors.Structure
Before: leading visuals or icons.
Content: main label or text; expands to fill space.
After: trailing actions or indicators.
Key ideas
When to use
InlineView — Concept
InlineViewadapts the InlineLayout model for constrained spaces. It keeps Before + Content on the same line and lets After lift above when width is limited.Visual model
Normal width:
Constrained width:
Principles
Use cases
InlineLayout vs InlineView
BlockView
BlockViewdefines vertical stacking for header–content–footer structures — cards, forms, panels, or page sections.Mental model
Principles
Composition
InlineLayoutfor titles/actions.Use cases
Cards, dashboards, forms, or document sections that need predictable vertical rhythm.
Container
Containeris the universal section wrapper used across pages, cards, sidebars, and in‑page groups. It provides alignment, gutters, and visual context for nested layout primitives and is intended to cover most common layout use case scenarios throughout the system.Mental model
Principles
Use cases
Spacing System — Tokens & Scaling
The spacing system provides a shared vocabulary paddings and gaps across all layout primitives.
Principles
5xs→5xl) define a modular scale.useSpacingToken()hook resolves tokens to values.useSpacingTokenresolves semantic spacing tokens into usable CSS values for gaps, padding, or margins.Design intent
Ensures the entire system speaks one spacing language, decoupling meaning from measurement for future‑proof, theme‑driven design.