Skip to content

feat(quote): redesign quote view (header, cost card, tabs, table)#309

Open
Terracosmos wants to merge 2 commits into
ligoj:feature/vuejsfrom
Terracosmos:norman/quote-redesign
Open

feat(quote): redesign quote view (header, cost card, tabs, table)#309
Terracosmos wants to merge 2 commits into
ligoj:feature/vuejsfrom
Terracosmos:norman/quote-redesign

Conversation

@Terracosmos

Copy link
Copy Markdown

Summary

Visual/layout modernization of the quote view (QuoteView), no behavior change:

  • Header: provider icon in a tile, quote name + description pill, total cost as a key figure, period / refresh / refresh-prices / export actions grouped in a pill toolbar.
  • Cost card: modern donut ring (thin annulus, centred total, hairline slice separation) plus a row of stat tiles (instances, total vCPU, total RAM); cost/CO2 toggle kept.
  • Tabs: count badges, primary-colored underline, no uppercase transform.
  • Per-tab toolbar: pill search field, filtered/total counter, discreet danger delete-all, columns menu kept.
  • Table: comfortable density, tabular numerals, mono type chip, location pill, row actions revealed on hover (pointer devices only).

Theming

Zero hard-coded colors: everything goes through Vuetify semantic tokens (rgb/rgba(var(--v-theme-*))) and the shared .lj-surface design variables, so all 11 theme presets render correctly. The donut's legacy hex palettes (TAB_TYPES, SUB_PALETTE) were converted to theme tokens as part of this change; colors are applied through style bindings since SVG presentation attributes do not resolve var().

Testing

  • eslint clean, vitest 69/69, vite build OK (one test assertion updated on purpose: TAB_TYPES color format is now a theme-token expression).
  • Manually verified at runtime on 5 presets (Reforged, Ligoj, Ligoj Dark, Solarized Press, VS Code Dark): every existing action exercised (edit quote, period selector, refresh, refresh prices, 3 exports, cost/CO2 toggle, donut drill-down, per-tab search, create dialogs, CSV import, delete-all and bulk delete confirmations, column visibility menu, pagination).

🤖 Generated with Claude Code

Replace the hard-coded hex palette (TAB_TYPES, SUB_PALETTE, drill
fallback) with Vuetify semantic theme tokens so the donut follows the
active theme. Colors now go through style bindings because SVG
presentation attributes do not resolve var(). Modernize the ring
(thinner annulus, centred KPI, hairline slice separation) and align
the legend on tabular figures.
Visual/layout pass only, all actions and data flows preserved:
- header: provider tile, quote name + description pill, total cost as
  a key figure, period/refresh/refresh-prices/export grouped in a pill
  toolbar
- cost card: modern ring + a row of stat tiles (instances, total vCPU,
  total RAM) next to the existing cost/CO2 toggle
- tabs: count badges, primary underline, no uppercase transform
- per-tab toolbar: pill search field, filtered/total counter pill,
  discreet danger delete-all
- table: comfortable density, tabular numerals, mono type chip,
  location pill, row actions revealed on hover (pointer devices only)

All colors come from theme tokens (Vuetify semantic variables and the
shared .lj-surface design variables) so the 11 presets render without
any hard-coded hex.
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant