SuperAPI AI Directory

personal-ui-taste

Frontend & websites

View repository

Updated 10-16 05:01

About this skill

Personal UI Taste · Personal Frontend Taste and Interaction Design

You design products continuously for the same user. These are preferences confirmed through multiple rounds of actual interface feedback, not a general aesthetics ranking. First use the confirmed taste to produce a usable interface, then improve it based on specific feedback; do not repeatedly ask about a style that has already been made clear.

Taste also includes "how information is organized and how operations fit the purpose." First let the interface answer the user's questions, then decide on appearance; do not just add a layer of theme after the functionality is done.

Usage and Reading

  • Read this file first each time: it is the entry point for general preferences and the scenario index; for specific scenarios, load only the corresponding rules.
  • When multi-series charts or tooltips are involved, must-read patterns.md §1's focus linkage and acceptance requirements; for filtering, state history, responsiveness, etc., read the corresponding sections as needed.
  • When it involves who used what resources, consumption attribution, joint rankings, or multi-dimensional investigation, read S04 Analysis and Investigation Workbench. When metric aggregation, snapshot collection, history retention, or restart recovery needs to be handled, read as needed Data and Runtime Conventions。
  • When the user gives new aesthetic feedback, approves a new solution, or asks you to remember it, read evolution.md, and update the actual loaded copy of this skill.
  • For installation, explicit invocation, and cross-server migration, see README.md. All design knowledge is carried along with the directory.
  • The explicit requirements of the current task take precedence over the default taste; brand requirements, accessibility, and local project constraints need to be satisfied at the same time.

Quick Index of User Questions

When the user reports a problem, first go directly to the corresponding pattern by symptom, reproduce their actual data density, then choose the smallest fix. Do not require predicting all problems in advance, and do not force every local solution to apply to all pages.

Symptom described by the user Consult directly
Legend button lit/unlit does not match curve visibility; some are grayed out but still visible patterns.md §1: Legend toggle selects by name; duplicate series names cause disconnection
The baseline/starting point is drawn as a lone dot and does not participate in the curve S03 §2: Scalar fixed values are drawn as a water-level reference line; first determine mutual exclusivity, then choose pagination or overlay
The bar chart shows nothing useful / want to remove it; want to see a line chart S03 §1.6 / §3: The line chart is the main view; put the metric selector in the header of the line chart
Datasets/methods are made select-one-only; want to view both at once but be able to hide them S03 §1.3 / §2: One chart per dataset + visibility toggle; only experimental batches are mutually exclusive
The curve is highlighted, but the info box does not highlight the corresponding entry; other entries are not dimmed patterns.md §1: Unified focus and real-hit acceptance
The tooltip blocks the line chart and other lines cannot be clicked; too much information to see fully and cannot scroll; the canvas is too small when two charts are side by side patterns.md §2.1: Detail occlusion in dense charts
Information is moved below the chart, requiring the user to look down, losing the intuition of viewing on hover patterns.md §2.1: Restore the floating layer near the target, prioritizing enlarging the canvas, automatic avoidance, and height-limited scrolling
The rightmost info box is squeezed narrow, names wrap, and it exceeds the boundary patterns.md §2: Natural width and positioning flip
Filters require repeatedly scrolling to the top of the page patterns.md §3: Filters stay close
There are separate object/resource/service rankings, yet it's still impossible to find out who did what through what S04 §1–§2: Deriving joint rankings and combined detail from relationship questions
Want to merge a distinction while also expanding layer by layer to find the cause S04 §3: Different semantics of dimension aggregation and collapsible drill-down
Status/action also appear in the resource list, filters contradict each other S04 §4: Semantic deduplication and dependency filtering
After expanding or paginating, subtotals don't add up, and filters are lost after going back S04 §5–§6: Complete subtotals, state continuity, and troubleshooting path acceptance
Aggregated ratios, peaks, deduplicated counts, or direct sums don't add up Data and operational conventions §1: Metric merge conditions
Snapshot polling, missing measurements, rolling windows, and historical figures after restart are untrustworthy Data and operational conventions §2–§3: Collection deltas, time boundaries, and quality states
The page is done, but historical retention, process restart, or upgrade recovery hasn't been verified Data and operational conventions §4–§5: Persistence and operating modes

First determine what the interface should help accomplish

  1. From the user's goal, write an operational path of "compare what → how to locate → what evidence to view."
  2. Check whether the data contains the required relationships; multiple independent totals do not equal one combined detail view.
  3. Choose tables, grouped trees, trends, or states according to the task, and read the applicable scenarios. Don't just pile up total cards and charts first because it's called a dashboard.
  4. Distinguish filtering, aggregation, collapsing, and legend visibility toggling; control names should match actual effects.
  5. Complete the entire operation with one real problem, then check the visual, keyboard, and narrow-screen behavior.

Currently confirmed design preferences

ID Scope Users like Users dislike
T01 Work-oriented interfaces, admin consoles Compact, layered light white/gray interfaces, small controls, vertical lists and tables; moderate blue accents; use S02 card layout when content is mainly images/previews Stacking large cards for a small amount of text, excessive whitespace, attention-grabbing everywhere
T02 All product controls Proportional sans-serif UI fonts; fields, item names, and attribute key-values also presented naturally Monospace fonts + square outlines + dense hard frames creating a Markdown code block/terminal feel
T03 Forms, filters, buttons Soft gray backgrounds, subtle borders, moderate rounded corners, light shadows, clear hover/focus/selected states Every element looks like an independent code box; high-contrast thick outlines, heavy shadows
T04 Overall consistency Navigation, overview, lists, details, settings, and statistics share a visual language Beautifying only one page while other pages retain the old code-box style
T05 Multi-series charts (bars, lines, data points, including dense curves without dots) When hovering over or selecting a target, the graphic, the corresponding tooltip entry, and the legend highlight in sync, while the rest fade in sync; clicking can lock it. For specific states and acceptance, see patterns.md §1 Only graphics highlighted while tip entries have the same weight; axis hover highlights all series together; excessive animation
T06 Information readability Latest data on the right is prioritized and easy to read; chart details float nearby, automatically avoid collisions, and can scroll when there are many entries, see patterns.md §2.1 Being flush against the edge squeezes names into multiple lines and splits words; moving floating details below the chart without permission to avoid occlusion forces the gaze away from the data point
T07 Operation distance Filters stay close to the chart they control; when necessary, provide local filters synchronized with the top Repeatedly scrolling up and down across two charts for filtering; the two filters each hold a conflicting state
T08 Ordered lists, dense status history Direct drag-and-drop sorting; for dense states use a thin rectangular red-yellow-green history light strip, a sufficiently long time axis, and hover explanations; for sparse and jumpable states use S02 Only buttons can adjust sorting; dense history is shortened by thick light blocks; colors have no explanation
T09 Preview-style workbench, cards and theme Cool gray-blue canvas, white panels, blue-purple accents; large rounded rectangles with soft thin borders; proportional fonts, restrained buttons and light overlays, see S02 Compressing all content cards into dense tables; making large rectangles into pills; heavy strokes/heavy shadows
T10 Daily time point selection Explicit 24-hour format 00–23; default minutes for newly added times 00, allowing other minutes to be actively selected AM/PM toggle; after an empty value pops up, minutes follow the current time; default values are mistakenly added as time points when saving
T11 Research metrics and curves dashboard The left filter bar and top server switcher are approved; charts prefer bright blue-purple, cyan, and green, with clear line charts; line charts are the main view for metric comparison; visual acceptance is independent of functional acceptance Reject the "plastic feel" of layer upon layer of cards and stacked pills, and also reject dark, heavy chart color schemes; reject horizontal bar charts for multi-run metrics; do not mistake rejecting container styles for rejecting bright chart colors
T12 Multidimensional analysis and troubleshooting workbench Organize joint rankings from the relationships to be investigated; when needed, support both dimension merging and hierarchical collapsing, inheriting filters to view combined trends/details Each dimension is ranked separately but cannot be correlated; columns are only hidden rather than aggregated; actions and resources are mixed in the same filter; the interface is not derived by function

Scenario index

Scenario ID Confirmed scenario Rule location Scope of use
S01 Light information-dense interface: forms, lists, tables, data charts, status timelines Visual baseline of this document + patterns.md read selectively according to the required components, not requiring all components to be included at the same time
S02 Cool gray-blue preview-style workbench: theme, card gallery, sparse jumpable states preview-workbench.md Theme and basic elements can be reused across scenarios; card/status block density is chosen according to content and coexists with S01
S03 Scientific research metric plotting: data shape→graphic mapping, family overlay vs pagination mutual exclusivity, reference lines research-charts.md Experiment metric dashboards, training curves, method comparison charts; used together with S01 chart rules
S04 Analysis and troubleshooting workbench: relationship question→joint ranking→aggregation/hierarchy→details analytical-workbench.md; data and runtime conventions are read selectively according to S04 §6 Multi-dimensional investigation such as usage, resources, cost, and runtime attribution; not a fixed template for all dashboards

After a new scenario has gone through actual design and feedback, incrementally add index entries. When there is little content, add a subsection within the existing pattern; when an independent style or more rules emerge, then create scenarios/<scene-name>.md, record the applicable scope, confirmed preferences, counterexamples, and interaction points, and link here. Do not create empty scenarios in advance, and do not automatically promote new scenario rules to global defaults.

Reference examples

Example Location Content
Experiment metrics dashboard (desensitized) research-dashboard.md Complete implementation example of S03: data model, page structure, form→drawing method comparison table, pitfall checklist. Dataset/method/platform names have all been generalized

Examples only carry structure and decisions; do not copy the style values of a specific project. Put new examples in examples/, remove local project information, and keep them readable by anyone.

How to use visual references

  • The user explicitly mentioned NewAPI、Firecrawl、Mixedbreadand likes its modern, lightweight, natural product UI feel.
  • Take its sans-serif typography, grayscale surfaces, restrained borders, selection feedback, and information organization, but do not copy the brand colors, marketing homepage layout, or specific components.
  • Compact navigation + list/table is the baseline for information-dense interfaces, but it does not mean every product should adopt this layout.
  • Existing UIs already approved by the user should be distilled from the real frontend source code first: theme tokens, font inheritance, border radius, borders, button states, and component structure; the browser is used for interaction and presentation verification, not as a replacement for source code analysis.
  • When a new page needs reference, actual pages can be searched; do not claim to have researched if you have not visited. Internet access is not a prerequisite for using this skill.

Visual implementation baseline

Below arestarting reference values for interfaces already approved, not hard rules that every scenario must copy.

Item Starting point Adjustment principle
Font System UI font:-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", sans-serif Prefer a suitable font already used in the project; no need to download a new font
Surfaces canvas #f7f8fa;panel #fff;control #f3f4f6 Hierarchy comes from slight grayscale differences; do not put a frame around every cell
Text primary #252b35;secondary #626c7b Auxiliary text still needs to be readable; do not use low contrast to create a "premium feel"
Borders/emphasis border #e9ecf1;accent #3b63dc;selected #edf2ff Blue is used for primary actions/selection; status colors only carry status
Border radius Controls about 8–10px, panels about 10–14px, short status labels can use pills Restrained and consistent; do not make all large containers pill-shaped
Density Compact form text about 12–14px, control height about 32–36px; body text scales up by scenario Increase hit areas for small screens/touch targets; making text smaller is not what makes something compact
Motion hover/focus about 120–180ms, chart bars slightly scale about 1.02–1.07 No layout shift; follow prefers-reduced-motion
Numbers UI font + font-variant-numeric: tabular-nums Number alignment does not require the whole page to be monospaced

Specific controls

  • Input/selector: soft gray background, thin or transparent border, non-monospaced font; focus can become white background with a clear focus ring. Selectors have a natural small arrow.
  • Segmented control: gray track + light/white active item, subtle shadow; selection conveyed by background/text color, not a thick border.
  • Multi-select menu: light overlay, rounded search box, full-row hover, clear checkbox selected state and selected count; native semantics preferred.
  • Table: light header, thin row dividers, subtle row hover; property names displayed directly, no code font/code background needed.
  • Ordered list: compact rows, ordinal numbers, primary name + secondary info, discoverable drag handle; also provide keyboard sorting or a button alternative.
  • Status label: soft colored background + readable text, with a dot or icon; do not let color be the sole source of information.
  • Daily time points: use T10; prefer reusing existing controls, and when native time cannot reliably display 24-hour format, native hour/minute selects may be used. The default minute does not mean the user has selected an hour; for specific behavior see patterns.md。
  • Cross-page: modify in the shared tokens/components/style layer, then handle dedicated overrides; don't pile up a global !important override to mask conflicts.
  • Real code editors, raw log text, etc. may still use monospace; "disliking the code-block feel" does not equal altering the presentation requirements of real code.

Working approach

  1. Understand the current state: first clarify the judgment and actions the user needs to complete, then read the actual pages, data relationships, shared styles and interaction flows. Investigate information organization, filtering meaning, inherited font, hit layers or overlay positioning according to the problem, not just the appearance.
  2. Minimal implementation: reuse the existing tech stack, native controls, CSS/SVG or installed chart libraries. Do not build a separate component system, switch frameworks, or add dependencies just for appearance.
  3. Complete experience: consider loading/empty data/failure/disabled/selected/hover/focus/small screens together; keep graphical display and real data meaning separate.
  4. Browser-based verification: use an available browser to inspect the real pages, prioritizing the paths users use most, such as the rightmost latest bar, long names, menus flush to the edge, and returning to the original position after filtering. Check the console and layout, not just whether the code compiles.
  5. Interactive preview: use local drafts or independent demo data to check editing, dragging and state changes, clearly distinguishing preview from formal submission.
  6. Re-verification scope: changes to shared CSS require checking all consuming pages, including pages that are already satisfactory; run the checks required by the codebase you are in. No need to create a new test framework just to change colors.
  7. Delivery and learning: briefly explain the changes and the evidence. When clear preference feedback is encountered, update according to the evolution protocol; "technical verification passed" is not "the user has approved the aesthetics".

Scope boundaries

  • Record only visual preferences, information organization, component interaction and accessibility; always express cases in general UI language.
  • Choose components according to requirements; do not create dashboards, status timelines or trend curves by default.
  • The current default baseline comes from light-colored data/configuration products; S02 provides a same-style dark pairing reference, which does not mean all dark scenarios have been approved. New scenarios such as native mobile, editors and marketing pages need to form their own branch rules, and should not be arbitrarily applied.
  • New user feedback can change these default values; supports querying, adding, modifying, and deleting by scenario. The main file stays concise and presents only valid rules, managed and updated by evolution.md .