# Customization & Themes

`dtsmartr` supports deep interface customization through `dtsmartr_options()`. Developers can toggle UI panels, control access to analytical utilities, customize missing cell representations, and switch between light and dark themes.

## 1. Visual Color Themes (Dark Mode)

`dtsmartr` features a modern, premium dark palette designed for clinical environments and night shifts.

- `theme = "auto"` (Default): Automatically detects browser/system settings and matches the theme of your IDE (RStudio or Positron).
- `theme = "light"`: Forces the clean light theme.
- `theme = "dark"`: Forces the sleek dark theme.

## 2. Optional UI Feature Toggles

You can enable or disable individual layout elements depending on the context:

- `advanced_filter`: Set `FALSE` to hide the rule-based Query Builder toolbar.
- `column_picker`: Set `FALSE` to remove the column dropdown visibility picker in the top-right toolbar.
- `allow_export`: Set `FALSE` to remove the clipboard code generator modal button.
- `header_summary`: Set `FALSE` to collapse the column headers into clean, flat labels—removing the spark-histograms, top categories bar, and missingness progress indicators.

## 3. Custom Missing Value Strings (`na_string`)

Control how missing/null values are represented. Cells containing `NA` or `null` will render as italicized, muted-gray cells:

- Default: Displays `"NA"`.
- Custom: Set `na_string = "—"` or `na_string = "Missing"` to specify custom text.

## 4. Pre-Hidden Columns (`hidden_columns`)

Specify a vector of column names to hide by default on initial rendering. Users can still show them using the column picker (if enabled):

- Example: `hidden_columns = c("cyl", "hp")`.

## 5. Grid Layout & Row Densities (`header_density` and `row_density`)

Configure the initial layout density programmatically:

- `header_density`: Sets the initial header layout height.
  - `"auto"` (Default): Scales dynamically based on screen height.
  - `"minimal"`: Forces a super-flat 48px header height.
  - `"detailed"`: Forces the full Kaggle-style summary zone.
- `row_density`: Sets the row padding and vertical spacing.
  - `"standard"` (Default): Balanced 32px row height.
  - `"compact"`: Ultra-dense 24px row height (max visibility).
  - `"comfortable"`: Relaxed 40px row height.

## 6. Live Theme & Customization Example

Below is a live interactive grid rendering in Dark Mode with pre-hidden variables (`hp`, `vs`), custom missing cell markers (`na_string = "—"`), and compact density preset:

    library(dtsmartr)

    dtsmartr(
      data = mtcars,
      options = dtsmartr_options(
        theme           = "dark",
        hidden_columns  = c("hp", "vs"),
        na_string       = "—",
        header_density  = "minimal",
        row_density     = "compact"
      )
    )