> ## Documentation Index
> Fetch the complete documentation index at: https://doc.lucidworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Results

> Display search results with sorting, pagination, conditional row coloring, and dynamic row linking

The Results component displays search results from your datastore in a table format. Use this component to present search findings, product listings, data tables, or any collection of records. The component supports sorting, pagination, conditional row coloring, and dynamic page linking.

## Basic usage

Add a Results component to your UI Studio page to display search results. The component typically works alongside a [Search Bar component](/docs/lw-platform/lw-ui-studio/components/search-bar) and [Facets component](/docs/lw-platform/lw-ui-studio/components/facets) to display and filter query results, but can also work standalone.

<Frame caption="Results component in the canvas">
  <img src="https://mintcdn.com/lucidworks/qwknCXYlTmFH7Hq2/assets/images/lw-platform/ui-studio/add-results.png?fit=max&auto=format&n=qwknCXYlTmFH7Hq2&q=85&s=13e18436fe847c170bc2d6ab8ab0cda1" alt="" width="2048" height="1036" data-path="assets/images/lw-platform/ui-studio/add-results.png" />
</Frame>

When no search query is active, the component displays all records by default. The Results component updates when users apply filters or perform searches.

The Results component supports a variety of content types and layouts. Common use cases include:

* **Product listings**: A catalog of items for sale, such as an ecommerce store. Create results listings with images, prices, and "Add to Cart" buttons.
* **Search results**: A display of documents or records matching a user query. Create results listings with titles, descriptions, and snippets.
* **Data tables**: A structured view for tabular data users need to compare or filter. Create results listings with sorting and conditional coloring for status.
* **User directory**: A browsable list of users or contacts with role information. Create results listings with profile links and role-based coloring.
* **Document library**: A collection of files organized for browsing and download. Create results listings with file types, dates, and download links.

## Display your results

The table view displays results as a structured data table with columns and rows. This layout is best for structured data and sortable datasets, as the table view is optimized for dense information display.

Click the **+** next to **Columns** to display a column in the results. Columns display in the order that they are added.

To keep column headers visible while you scroll through results, turn on the **Sticky Header** toggle.

## Sort options

Configure the sort criteria for users. Use these options so that users can sort the results by preset criteria, such as price, name, or quantity.

The sort options display in a dropdown menu above the search results. Sorting by relevance is included by default.

<Note>
  The sort options display in the order that you added them. The default Relevance option always appears first in the user-facing dropdown, even though it is listed last in the configuration panel.
</Note>

## Pagination

Use pagination to configure the number of results per page and how many results the user can choose to display per page.

When pagination is turned off, only the first page of results displays.

When you enable pagination, you can set the default number of results to display per page in the **Default Results Count** field. The default value is 10 results.

You can also configure the number of results to display per page for users to select. Set these values in the **Results Count** fields, listed from lowest to highest.

## Conditional row coloring

Use conditional row coloring to apply background and text color to rows based on field values, making it easy to surface important information at a glance. Use this feature to flag inventory items with low stock, highlight tasks that are past due, distinguish active records from inactive ones, or draw attention to high-priority items without requiring users to sort or filter the table themselves.

Each rule evaluates a field against a condition and a value, then applies the configured colors to any matching row. When you configure multiple rules, the component evaluates them in the order listed and applies the first matching rule. Rows that match no rule use the default table styling.

<Tip>
  Because the component evaluates rules top to bottom and applies the first match, you can order rules from most critical to least critical status to ensure proper highlighting.
</Tip>

<Tabs>
  <Tab title="Inventory alerts" icon="boxes-stacked">
    An ecommerce catalog uses a `stock_status` field to alert buyers and staff about inventory availability. The rule checks whether `stock_status` equals `Out of stock` and applies a red background to signal that the item is unavailable.

    <Frame caption="Conditional row formatting based on availability">
      <img src="https://mintcdn.com/lucidworks/qwknCXYlTmFH7Hq2/assets/images/lw-platform/ui-studio/conditional-row-formatting-availability.png?fit=max&auto=format&n=qwknCXYlTmFH7Hq2&q=85&s=693f15624cc1c3aa5c4a7968eda517ef" alt="" width="952" height="562" data-path="assets/images/lw-platform/ui-studio/conditional-row-formatting-availability.png" />
    </Frame>

    That same approach extends to any number of statuses. A second rule can check whether `stock_status` equals `Low stock` and apply a yellow background to indicate limited availability, and a third can check whether `stock_status` equals `In Stock` and apply a green background to indicate healthy inventory levels. You can continue adding rules for any status value your catalog defines.

    <Color variant="compact">
      <Color.Item name="In stock" value="#f0fdf4" />

      <Color.Item name="Limited" value="#fefce8" />

      <Color.Item name="Out of stock" value="#fef2f2" />
    </Color>
  </Tab>

  <Tab title="Status highlighting" icon="highlighter">
    A task management table uses a `status` field to communicate record state at a glance. One rule checks whether `status` equals `Active` and applies a green background. Another checks whether `status` equals `Inactive` and applies a gray background. A third checks whether `status` equals `Error` and applies a red background with white text.

    Use subtle background tints rather than saturated colors so that text remains readable across all rows.
  </Tab>

  <Tab title="Priority indicators" icon="flag">
    A support queue uses a `priority` field to help agents triage incoming requests. One rule checks whether `priority` equals `High` and applies red text. Another checks whether `priority` equals `Medium` and applies orange text. A third checks whether `priority` equals `Low` and applies green text.

    Text color changes alone work well when you want to signal priority without overwhelming the table with heavy background coloring.
  </Tab>
</Tabs>

## Dynamic page link

Use dynamic page links to navigate users directly from a table row to a detail page, connecting your results table to the rest of your application. Use this feature to build product catalog tables where rows link to product detail pages, user directories where names link to profile pages, or document lists where entries open document viewers.

When **Link Mode** is set to **Action**, the **Display Type** setting controls how the link appears in the table. Choose **Link** when the field value is a natural, recognizable label that users expect to click, such as a username or a document title. Choose **Button** when the field value is an internal ID or technical string you do not want to display, and the action should appear as a labeled button.

To use a redirect button, define the destination URL with the **Page** base path and a **URL Template** that combines the page path with a placeholder for the field value. Wrap the placeholder in curly braces to mark where the field value is injected. The template `/products/PRODUCT_ID` resolves to `/products/ABC123` when the `PRODUCT_ID` field contains `ABC123`. You can position the placeholder anywhere in the template path, such as `/users/{username}/profile` or `/documents/{doc_id}`.

You can configure multiple dynamic links on the same table, assigning one link configuration per column. This lets you create multi-action rows with a mix of link types, such as a "View" redirect button in one column alongside an "Edit" button in another.

<Tabs>
  <Tab title="Product detail link">
    A product catalog table links each row to its corresponding product detail page. Set **Column** to `PRODUCT_ID`, **Link Mode** to **Action**, **Display Type** to **Button**, **Button Label** to "View Product". Set the **URL Template** to `/products/PRODUCT_ID`. A row where `PRODUCT_ID` contains `ABC123` navigates the user to `/products/ABC123`.
  </Tab>

  <Tab title="User profile link">
    A user directory makes the username itself a clickable link to the user profile page. Set **Column** to `username`, **Link Mode** to **Inline**, and **URL Template** to `/users/{username}/profile`. The displayed username becomes a link without a separate button.
  </Tab>

  <Tab title="Document with action button">
    A document library hides the internal document ID and exposes only a labeled action button. Set **Column** to `doc_id`, **Link Mode** to **Action**, **Display Type** to **Button**, **Button Label** to "Open Document", and **URL Template** to `/documents/{doc_id}/view`. The document ID is not shown to users. Only the button is displayed.
  </Tab>
</Tabs>

<Note>
  When creating URL templates for Dynamic Page Links, test with sample data to ensure links resolve correctly. Invalid templates result in broken navigation.
</Note>

## Configuration properties

### Basic configuration

<ParamField path="Datastore" type="dropdown" required>
  Data source for results. Must be configured in your UI Studio application.
</ParamField>

<ParamField path="Search Highlighting" type="boolean" default="false">
  When enabled, highlights search terms within table cells to show matches visually.
</ParamField>

<ParamField path="Row Striping" type="boolean" default="false">
  When enabled, alternates row background colors for improved readability.
</ParamField>

<ParamField path="Columns" type="group">
  Configure which data fields display as table columns. Add multiple columns using the **+** button.

  <Expandable title="Properties">
    <ParamField path="Field Name" type="string">
      Field name from your datastore to display as a column.
    </ParamField>

    <ParamField path="Display Name" type="string">
      Label shown in the column header.
    </ParamField>

    <ParamField path="Display Type" type="dropdown" default="text">
      How the field content is rendered.

      <Expandable title="Options">
        <ParamField path="text" type="option">
          Plain text display.
        </ParamField>

        <ParamField path="image" type="option">
          Image display.
        </ParamField>

        <ParamField path="date" type="option">
          Formatted date display.
        </ParamField>

        <ParamField path="price" type="option">
          Currency-formatted display.
        </ParamField>

        <ParamField path="hyperlink" type="option">
          Clickable link display.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="Sticky Header" type="boolean" default="true">
  When enabled, column headers remain visible while scrolling through table rows.
</ParamField>

<ParamField path="Column Header Font" type="group">
  Typography settings for column headers.

  <Expandable title="Properties">
    <ParamField path="Font Family" type="dropdown" default="Public Sans">
      Font family for column header text.
    </ParamField>

    <ParamField path="Font Weight" type="dropdown" default="Bold">
      Font weight for column header text.

      <Expandable title="Options">
        <ParamField path="Regular" type="option">
          Standard weight.
        </ParamField>

        <ParamField path="Bold" type="option">
          Heavy weight.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="Font Size" type="number" default="14">
      Font size in pixels for column header text.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="Sort" type="group">
  Configure available sort criteria for users. The **Relevance** option is included by default and displays last in the sort dropdown.

  <Expandable title="Properties">
    <ParamField path="Sort Options" type="array">
      Available sort options. Add multiple options using the + button.

      <Expandable title="Sort Option Properties">
        <ParamField path="Field Name" type="string">
          Data field to sort by.
        </ParamField>

        <ParamField path="Order" type="dropdown" default="Ascending">
          Sort direction for this option.

          <Expandable title="Options">
            <ParamField path="Ascending" type="option">
              Sort from lowest to highest: A-Z, 0-9, oldest to newest.
            </ParamField>

            <ParamField path="Descending" type="option">
              Sort from highest to lowest: Z-A, 9-0, newest to oldest.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField path="Display Name" type="string">
          Label shown to users in the sort dropdown.

          Examples: "Price: Low to High", "Newest First", "Product Name: A-Z"
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="Pagination" type="group">
  Configure pagination controls for navigating through result pages.

  <Expandable title="Properties">
    <ParamField path="Pagination Enabled" type="boolean" default="true">
      When enabled, displays pagination controls for navigating through result pages. Otherwise, only the first page of results displays.
    </ParamField>

    <ParamField path="Default Results Count" type="number" default="10">
      Number of results displayed per page by default.
    </ParamField>

    <ParamField path="Results Count" type="array" default="[10, 20, 50, 100]">
      Number of results to display per page.

      <Expandable title="Count Properties">
        <ParamField path="Count" type="number">
          Number of results per page.
        </ParamField>
      </Expandable>

      Add or remove values using the **+** and **-** buttons to customize available page sizes.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="Table Styling & Layout" type="group">
  Visual appearance settings for the table.

  <Expandable title="Properties">
    <ParamField path="Cell Value Font" type="group">
      Typography settings for table cell content.

      <Expandable title="Properties">
        <ParamField path="Font Family" type="dropdown" default="Public Sans">
          Font family for cell value text.
        </ParamField>

        <ParamField path="Font Weight" type="dropdown" default="Regular">
          Font weight for cell value text.

          <Expandable title="Options">
            <ParamField path="Regular" type="option">
              Standard weight.
            </ParamField>

            <ParamField path="Bold" type="option">
              Heavy weight.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField path="Font Size" type="number" default="14">
          Font size in pixels for cell value text.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="Text Alignment" type="radio" default="Left">
      Horizontal alignment for table cell content.

      <Expandable title="Options">
        <ParamField path="Left" type="option">
          Align text to the left edge of the column.
        </ParamField>

        <ParamField path="Center" type="option">
          Align text to the center of the column.
        </ParamField>

        <ParamField path="Right" type="option">
          Align text to the right edge of the column.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="Colors" type="group">
      Color scheme for the table.

      <Expandable title="Properties">
        <ParamField path="Table Background" type="color" default="#FFFFFF">
          Background color for the entire table.

          <Color variant="compact">
            <Color.Item name="default" value="#FFFFFF" />
          </Color>
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

### Advanced configuration

<ParamField path="Conditional Row Coloring" type="group">
  Apply styling to rows based on field values.

  <Expandable title="Properties">
    <ParamField path="If" type="dropdown">
      Column or field to evaluate.
    </ParamField>

    <ParamField path="Condition" type="dropdown">
      Comparison operator.

      <Expandable title="Options">
        <ParamField path="Equals" type="option">
          Matches rows where the field equals the specified value.
        </ParamField>

        <ParamField path="Not equals" type="option">
          Matches rows where the field does not equal the specified value.
        </ParamField>

        <ParamField path="Contains" type="option">
          Matches rows where the field contains the specified value.
        </ParamField>

        <ParamField path="Not contains" type="option">
          Matches rows where the field does not contain the specified value.
        </ParamField>

        <ParamField path="Starts with" type="option">
          Matches rows where the field value begins with the specified text.
        </ParamField>

        <ParamField path="Ends with" type="option">
          Matches rows where the field value ends with the specified text.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="Value" type="string">
      Value to compare against. The type depends on field and condition.
    </ParamField>

    <ParamField path="Background Color" type="color">
      Row background color when condition is true.
    </ParamField>

    <ParamField path="Text Color" type="color">
      Row text color when condition is true. Ensure sufficient contrast with background.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField path="Dynamic Page Link" type="group">
  Clickable links or buttons in table columns that navigate to detail pages.

  <Expandable title="Properties">
    <ParamField path="Column" type="dropdown">
      Field that provides the link data or navigation context.
    </ParamField>

    <ParamField path="Link Mode" type="dropdown" default="Inline">
      Determines how the link is integrated into the table.

      <Expandable title="Options">
        <ParamField path="Inline" type="option">
          Link embedded directly in the cell value.
        </ParamField>

        <ParamField path="Action" type="option">
          Separate action link or button alongside the cell value.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="Display Type" type="dropdown" default="Link">
      How the action appears when Link Mode is set to Action.

      Appears only when **Link Mode** is set to **Action**.

      <Expandable title="Options">
        <ParamField path="Link" type="option">
          Displays as a text link.
        </ParamField>

        <ParamField path="Button" type="option">
          Displays as a button.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="Link Text" type="string">
      Text displayed for the link.

      Appears only when the **Display Type** is **Link** or when **Link Mode** is **Inline**.
    </ParamField>

    <ParamField path="Button Label" type="string">
      Text displayed on the button.

      Only shown when **Link Mode** is **Action** and **Display Type** is **Button**.
    </ParamField>

    <ParamField path="URL Template" type="string">
      URL pattern with placeholders for dynamic values.

      Format: Use curly braces `{field_name}` as placeholders for field values.

      Examples:

      * `/details/PRODUCT_ID`
      * `/users/{username}/profile`
      * `/documents/{doc_id}`
    </ParamField>

    <ParamField path="Value is URL" type="boolean" default="false">
      When enabled, treats the column value itself as a complete URL rather than injecting it into the URL Template.
    </ParamField>

    <ParamField path="Open in New Tab" type="boolean" default="false">
      When enabled, opens the link in a new browser tab instead of navigating in the current tab.
    </ParamField>
  </Expandable>
</ParamField>
